]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR tree-optimization/58513 (*var and MEM[(const int &)var] (var has int* type...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
f40333af
RB
12013-09-24 Richard Biener <rguenther@suse.de>
2
3 PR middle-end/58513
4 * tree.c (reference_alias_ptr_type): Move ...
5 * alias.c (reference_alias_ptr_type): ... here and implement
6 in terms of the new reference_alias_ptr_type_1.
7 (ref_all_alias_ptr_type_p): New helper.
8 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
9 use ref_all_alias_ptr_type_p.
10 (get_deref_alias_set): Add flag_strict_aliasing check here.
11 (reference_alias_ptr_type_1): New function, split out from ...
12 (get_alias_set): ... here.
13 (alias_ptr_types_compatible_p): New function.
14 * alias.h (reference_alias_ptr_type): Declare.
15 (alias_ptr_types_compatible_p): Likewise.
16 * tree.h (reference_alias_ptr_type): Remove.
17 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
18 to compare MEM_REF alias types.
19
583e8bf5
RB
202013-09-24 Richard Biener <rguenther@suse.de>
21
22 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
23
5e8586d7
MM
242013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
25
19c3e797
MM
26 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
27 reload helper function arrays into a single array reg_addr.
28 (reload_fpr_gpr): Likewise.
29 (reload_gpr_vsx): Likewise.
30 (reload_vsx_gpr): Likewise.
31 (struct rs6000_reg_addr): Likewise.
32 (reg_addr): Likewise.
33 (rs6000_debug_reg_global): Change rs6000_vector_reload,
34 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
35 (rs6000_init_hard_regno_mode_ok): Likewise.
36 (rs6000_secondary_reload_direct_move): Likewise.
37 (rs6000_secondary_reload): Likewise.
38
5e8586d7
MM
39 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
40 constraints: wu, ww, and wy. Repurpose wv constraint added during
41 power8 changes. Put wg constraint in alphabetical order.
42
43 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
44 for future work to add ISA 2.07 VSX single precision support.
45 (-mvsx-scalar-double): Change default from -1 to 1, update
46 documentation comment.
47 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
48 (-mupper-regs-df): New debug switch to control whether DF values
49 can go in the traditional Altivec registers.
50 (-mupper-regs-sf): New debug switch to control whether SF values
51 can go in the traditional Altivec registers.
52
53 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
54 and wy constraints.
55 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
56 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
57 Add new constraints, wu/ww/wy. Repurpose wv constraint.
58 (rs6000_debug_legitimate_address_p): Print if we are running
59 before, during, or after reload.
60 (rs6000_secondary_reload): Add a comment.
61 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
62
63 * config/rs6000/constraints.md (wa constraint): Sort w<x>
64 constraints. Update documentation string.
65 (wd constraint): Likewise.
66 (wf constraint): Likewise.
67 (wg constraint): Likewise.
68 (wn constraint): Likewise.
69 (ws constraint): Likewise.
70 (wt constraint): Likewise.
71 (wx constraint): Likewise.
72 (wz constraint): Likewise.
73 (wu constraint): New constraint for ISA 2.07 SFmode scalar
74 instructions.
75 (ww constraint): Likewise.
76 (wy constraint): Likewise.
77 (wv constraint): Repurpose ISA 2.07 constraint that we not used in
78 the previous submissions.
79 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
80
e5af9ddd
RS
812013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
82
83 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
84 (REG_BR_PROB): Say that the probability is stored in an int_list.
85 * reg-notes.def: Update commentary to mention INT_LIST.
86 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
87 (INT_LIST): New rtx.
88 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
89 * rtlanal.c (int_reg_note_p): New function.
90 (alloc_reg_note): Assert that the note does not have an int argument.
91 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
92 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
93 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
94 rather than an INSN_LIST. Handle INT_LIST.
95 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
96 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
97 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
98 Manipulate them as ints rather than rtxes.
99 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
100 * regmove.c (copy_src_to_dest): Likewise.
101 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
102
103 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
104 into the cases that need it.
105 * config/arm/arm.c (arm_unwind_emit): Likewise.
106
107 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
108 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
109 * loop-doloop.c (add_test, doloop_modify): Likewise.
110 * loop-unswitch.c (compare_and_jump_seq): Likewise.
111 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
112 * predict.c (combine_predictions_for_insn): Likewise.
113 * print-rtl.c (print_rtx): Handle INT_LIST.
114 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
115 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
116 * config/arm/arm.c (emit_unlikely_jump): Likewise.
117 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
118 (ix86_split_fp_branch, predict_jump): Likewise.
119 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
120 * config/sh/sh.c (expand_cbranchsi4): Likewise.
121 * config/spu/spu.c (ea_load_store_inline): Likewise.
122
123 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
124 value of a REG_BR_PROB note.
125 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
126 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
127 * emit-rtl.c (try_split): Likewise.
128 * predict.c (br_prob_note_reliable_p): Likewise.
129 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
130 * reorg.c (mostly_true_jump): Likewise.
131 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
132 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
133 * config/i386/i386.c (ix86_print_operand): Likewise.
134 * config/ia64/ia64.c (ia64_print_operand): Likewise.
135 * config/mmix/mmix.c (mmix_print_operand): Likewise.
136 * config/rs6000/rs6000.c (output_cbranch): Likewise.
137 * config/s390/s390.c (s390_expand_tbegin): Likewise.
138 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
139 * config/sparc/sparc.c (output_cbranch): Likewise.
140 * config/spu/spu.c (get_branch_target): Likewise.
141 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
142 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
143
450ad0cd
JH
1442013-09-23 Jan Hubicka <jh@suse.cz>
145
146 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
147 for ipa-devirt.
148 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
149 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
150 of external calls
151 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
152 (gimple_fold_call): Dump inconsistent devirtualizations; add
153 sanity check for type based devirtualizations.
154 * ipa-prop.c: Include ipa-utils.h
155 (ipa_intraprocedural_devirtualization): Add sanity check.
156 (try_make_edge_direct_virtual_call): Likewise.
157
cefce769
EB
1582013-09-23 Eric Botcazou <ebotcazou@adacore.com>
159
160 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
161 assignment statements.
162
a895a2b8
KV
1632013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
164
165 * gimple-pretty-print.c (dump_ssaname_info): New function.
166 (dump_gimple_phi): Call it.
167 (pp_gimple_stmt_1): Likewise.
168 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
169 (range_info_def): Declare.
170 * tree-pretty-print.c (pp_double_int): New function.
171 (dump_generic_node): Call it.
172 * tree-pretty-print.h (pp_double_int): Declare.
173 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
174 * tree-ssanames.h (range_info_def): New structure.
175 (value_range_type): Move definition here.
176 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
177 Declare.
178 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
179 initialization.
180 (set_range_info): New function.
181 (get_range_info): Likewise.
182 (duplicate_ssa_name_range_info): Likewise.
183 (duplicate_ssa_name_fn): Check pointer type and call
184 duplicate_ssa_name_range_info.
185 * tree-ssa-copy.c (fini_copy_prop): Likewise.
186 * tree-vrp.c (value_range_type): Remove definition, now in
187 tree-ssanames.h.
188 (vrp_finalize): Call set_range_info to update value range of
189 SSA_NAMEs.
190 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
191 (SSA_NAME_RANGE_INFO): New macro.
192
984af6ac
RB
1932013-09-23 Richard Biener <rguenther@suse.de>
194
195 PR tree-optimization/58464
196 * tree-ssa-pre.c (phi_trans_lookup): Remove.
197 (phi_trans_add): Change to add conditionally on being not
198 present.
199 (phi_translate_1): Remove recursion detection here.
200 (phi_translate): Pre-seed the cache with NULL to catch
201 recursion here in a more generic way.
202 (bitmap_find_leader): Adjust comment.
203 (get_representative_for): Dump value-numbers.
204 (create_expression_by_pieces): Likewise.
205 (insert_into_preds_of_block): Likewise.
206
0e26cf79
CB
2072013-09-23 Christian Bruel <christian.bruel@st.com>
208
209 PR target/58475
210 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
211 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
212
4d0e5b54
JG
2132013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
214
215 Revert r202780:
216 2013-09-20 Renlin Li <renlin.li@arm.com>
217
218 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
219 (aarch64_expand_epilogue): Likewise.
220 (aarch64_legitimize_reload_address): Likewise.
221
ca081cc8
EB
2222013-09-22 Eric Botcazou <ebotcazou@adacore.com>
223
224 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
225 NULL_TREE before pushing them onto the vector. Likewise for labels.
226
8fc53a5f
EB
2272013-09-21 Eric Botcazou <ebotcazou@adacore.com>
228
229 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
230 comparison operators when -fno-trapping-math is in effect.
231 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
232 comparison operators in TFmode and assert that unsupported operators
233 cannot reach here.
234 (ia64_print_operand): Likewise.
235
2362013-09-21 Jan Hubicka <jh@suse.cz>
0ca6c49f
JH
237
238 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
239 (sse_typeless_stores): Enable for core
240 (sse_load0_by_pxor): Likewise.
241 (four_jump_limit): Disable for core.
242 (pad_returns): Likewise.
243 (avoid_vector_decode): Likewise.
244 (fuse_cmp_and_branch): Enable for cores.
245 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
246
578e51e6
JDA
2472013-09-20 John David Anglin <danglin@gcc.gnu.org>
248
96ce28a3
JDA
249 PR middle-end/56791
250 * config/pa/pa.c (pa_option_override): Disable auto increment and
251 decrement instructions until reload is completed.
252
578e51e6
JDA
253 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
254 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
255 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
256
6fcd3a13
DD
2572013-09-20 DJ Delorie <dj@redhat.com>
258 Nick Clifton <nickc@redhat.com>
259
260 * config/rl78/rl78.c: Various whitespace and comment tweaks.
261 (need_to_save): Save bank 0 on interrupts.
262 (characterize_address): Strip far address wrappers.
263 (rl78_as_legitimate_address): Likewise.
264 (transcode_memory_rtx): Likewise.
265 (rl78_peep_movhi_p): Disable this peephole after devirt.
266 (rl78_propogate_register_origins): Forget all origins when a
267 CLOBBER is seen.
268 * config/rl78/rl78-virt.md: Various whitespace tweaks.
269 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
270 peephole2's.
271 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
272 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
273 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
274 relocating.
275 * config/rl78/constraints.md: Various whitespace and paren tweaks.
276
4a08db33
JDA
2772013-09-20 John David Anglin <danglin@gcc.gnu.org>
278
279 * config/pa/pa.md: In "scc" insn patterns, change output template to
280 handle const0_rtx in reg_or_0_operand operands.
281
7691132c
JBG
2822013-09-20 Martin Husemann <martin@NetBSD.org>
283
284 PR target/56875
285 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
286 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
287
a3cc13cc
RB
2882013-09-20 Richard Biener <rguenther@suse.de>
289
290 PR middle-end/58484
291 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
292 remembering SSA name version and block index.
293 (new_scev_info_str): Adjust.
294 (hash_scev_info): Likewise. Also hash the block index.
295 (eq_scev_info): Adjust.
296 (find_var_scev_info): Likewise.
297 (struct instantiate_cache_entry): Remove.
298 (struct instantiate_cache_type): Use a htab to map name, block
299 to chrec.
300 (instantiate_cache_type::~instantiate_cache_type): Adjust.
301 (get_instantiated_value_entry): Likewise.
302 (hash_idx_scev_info, eq_idx_scev_info): New functions.
303 (instantiate_scev_name): Adjust.
304
925f3871
JL
3052013-09-20 Jeff Law <law@redhat.com>
306
307 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
308
2888c331
YZ
3092013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
310
311 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
312 Call aarch64_simd_expand_args to update op[argc].
313
0a811e96
BS
3142013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
315
316 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
317 plugin argument.
318
0078f462
BS
3192013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
320
321 * gengtype.c (file_rules): Added rule for *.cc files.
322 (get_output_file_with_visibility): Give fatal message when no
323 rules found.
324
d20e48b0
RL
3252013-09-20 Renlin Li <renlin.li@arm.com>
326
327 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
328 (aarch64_expand_epilogue): Likewise.
329 (aarch64_legitimize_reload_address): Likewise.
330
59bb1544
BE
3312013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
332
333 PR middle-end/57748
334 * expr.c (expand_assignment): Remove misalignp code path.
335
a5430019
MP
3362013-09-20 Marek Polacek <polacek@redhat.com>
337
338 PR sanitizer/58413
339 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
340 TYPE_PRECISION. Add asserts.
341
9fed7f3a
RB
3422013-09-20 Richard Biener <rguenther@suse.de>
343
344 PR tree-optimization/58453
345 * tree-loop-distribution.c (distribute_loop): Apply the cost
346 model for -ftree-loop-distribute-patterns, too.
347
a820c834
RB
3482013-09-20 Richard Biener <rguenther@suse.de>
349
350 PR middle-end/58473
351 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
352 make type comparison less strict.
353
3cbe17f7
AM
3542013-09-20 Alan Modra <amodra@gmail.com>
355
356 * configure: Regenerate.
357 * aclocal.m4: Regenerate.
358
87fccdbb
MP
3592013-09-20 Marek Polacek <polacek@redhat.com>
360
361 PR other/58467
362 * doc/extend.texi: Document that attribute used is meant to be used
363 on variables with static storage duration.
364
8928eff3
JJ
3652013-09-19 Jakub Jelinek <jakub@redhat.com>
366
367 PR tree-optimization/58472
368 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
369 simd_lane_access set inv_p = false.
370 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
371 the simduid magic VAR_DECL.
372
b7b28c53
JH
3732013-09-19 Jan Hubicka <jh@suse.cz>
374
375 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
376
83ae86f5
JL
3772013-09-17 Jeff Law <law@redhat.com>
378
379 * tree-ssa-dom.c (record_temporary_equivalences): New function
380 split out of dom_opt_dom_walker::after_dom_children.
381 (dom_opt_dom_walker::thread_across_edge): Move common code
382 in here from dom_opt_dom_walker::after_dom_children.
383 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
384
9d532162
JH
3852013-09-19 Jan Hubicka <jh@suse.cz>
386
387 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
388 (TARGET_GENERIC): Use PROCESOR_GENERIC
389 (enum processor_type): Unify generic32 and 64.
390 * i386.md (cpu): Likewise.
391 * x86-tune.def (use_leave): Enable for generic32.
392 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
393 * athlon.md: Change generic64 to generic in all occurences.
394 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
395 (ix86_target_macros_internal): Likewise.
396 * driver-i386.c (host_detect_local_cpu): Likewise.
397 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename to ..
398 (generic_memcpy, generic_memset, generic_cost): This one.
399 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
400 (m_GENERIC32, m_GENERIC64): Remove.
401 (m_GENERIC): Turn into one flag.
402 (processor_target): Unify generic tunnings.
403 (ix86_option_override_internal): Replace generic32/64 by generic.
404 (ix86_issue_rate): Likewise.
405 (ix86_adjust_cost): Likewise.
406
188c7d00
JH
4072013-09-19 Jan Hubicka <jh@suse.cz>
408
409 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
410 of speculative flag.
411
4befd127
JJ
4122013-09-19 Jakub Jelinek <jakub@redhat.com>
413
414 * omp-low.c (expand_omp_sections): Always pass len - 1 to
415 GOMP_sections_start, even if !exit_reachable.
416
8a26ad39
VM
4172013-09-18 Vladimir Makarov <vmakarov@redhat.com>
418
419 * lra-constraints.c (need_for_all_save_p): Use macro
420 HARD_REGNO_CALL_PART_CLOBBERED.
421 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
422 set up pseudo conflict hard regs.
423
09487185
MM
4242013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
425
426 PR target/58452
427 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
428 operands.
429
080cbf9e
VM
4302013-09-18 Vladimir Makarov <vmakarov@redhat.com>
431
432 PR rtl-optimization/58438
433 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
434 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
435 from previous subpasses.
436
a0f70fcb
RE
4372013-09-18 Richard Earnshaw <rearnsha@arm.com>
438
439 * arm.c (arm_get_frame_offsets): Validate architecture supports
440 LDRD/STRD before accepting the tuning preference.
441 (arm_expand_prologue): Likewise.
442 (arm_expand_epilogue): Likewise.
443
0547c9b6
RB
4442013-09-18 Richard Biener <rguenther@suse.de>
445
446 PR tree-optimization/58417
447 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
448 have chrecs with symbols defined in the loop as operands.
449 (chrec_fold_multiply): Likewise.
450 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
451 parameters before folding binary operations.
452 (struct instantiate_cache_entry_hasher): Remove.
453 (struct instantiate_cache_type): Use a pointer-map.
454 (instantiate_cache_type::instantiate_cache_type): New function.
455 (instantiate_cache_type::get): Likewise.
456 (instantiate_cache_type::set): Likewise.
457 (instantiate_cache_type::~instantiate_cache_type): Adjust.
458 (get_instantiated_value_entry): Likewise.
459 (global_cache): New global.
460 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
461 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
462 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
463 (instantiate_scev_name): Adjust.
464 (instantiate_scev): Construct global instead of local cache.
465 (resolve_mixers): Likewise.
466
309dc1aa
DM
4672013-09-18 Daniel Morris <danielm@ecoscentric.com>
468 Paolo Carlini <paolo.carlini@oracle.com>
469
470 PR c++/58458
471 * doc/implement-cxx.texi: Fix references to the C++ standards.
472
995a1b4a
JJ
4732013-09-18 Jakub Jelinek <jakub@redhat.com>
474
475 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
476 * tree-vect-data-refs.c (vect_analyze_data_refs): For
477 simd_lane_access drs, update also DR_ALIGNED_TO.
478
ce6923c5
MP
4792013-09-18 Marek Polacek <polacek@redhat.com>
480
481 PR sanitizer/58411
482 * doc/extend.texi: Document no_sanitize_undefined attribute.
483 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
484 no_sanitize_undefined attribute.
485
d30d00a2
NC
4862013-09-18 Nick Clifton <nickc@redhat.com>
487
488 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
489 (ASM_DECLARE_FUNCTION_NAME): Define.
490
4d9192b5
TS
4912013-09-17 Trevor Saunders <tsaunders@mozilla.com>
492
493 * compare-elim.c (find_comparison_dom_walker): New class
494 (find_comparisons_in_bb): Rename to
495 find_comparison_dom_walker::before_dom_children
496 (find_comparisons): Adjust
497 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
498 adjust.
499 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
500 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
501 (init_walk_dominator_tree): Remove declaration.
502 (fini_walk_dominator_tree): Remove declaration.
503 * fwprop.c (single_def_use_dom_walker): New class
504 (single_def_use_enter_block): Convert to
505 single_def_use_dom_walker::before_dom_children.
506 (single_def_use_leave_block): Convert to
507 single_def_use_dom_walker::after_dom_children.
508 (build_single_def_use_links): Adjust.
509 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
510 class.
511 (find_candidates_in_block): Convert to
512 find_candidates_dom_walker::before_dom_children.
513 (execute_strength_reduction): Adjust.
514 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
515 (sese_dom_walker): New class.
516 (sese_dom_walker::sese_dom_walker): New constructor.
517 (sese_dom_walker::~sese_dom_walker): New destructor.
518 (build_sese_conditions_before): Convert to
519 sese_dom_walker::before_dom_children.
520 (build_sese_conditions_after): Convert to
521 sese_dom_walker::after_dom_children.
522 (build_poly_scop): Adjust
523 * tree-into-ssa.c (rewrite_dom_walker): New class
524 (rewrite_enter_block): Convert to
525 rewrite_dom_walker::before_dom_children.
526 (rewrite_leave_block): Convert to
527 rewrite_dom_walker::after_dom_children.
528 (rewrite_update_dom_walker): New class.
529 (rewrite_update_enter_block): Convert to
530 rewrite_update_dom_walker::before_dom_children.
531 (rewrite_update_leave_block): Convert to
532 rewrite_update_dom_walker::after_dom_children.
533 (rewrite_blocks, rewrite_into_ssa): Adjust.
534 (mark_def_dom_walker): New class.
535 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
536 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
537 (mark_def_sites_blocks): Convert to
538 mark_def_dom_walker::before_dom_children.
539 (mark_def_site_blocks): Remove.
540 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
541 (tree_ssa_dominator_optimize): Adjust.
542 (dom_thread_across_edge): Convert to method
543 dom_opt_dom_walker::thread_across_edge.
544 (dom_opt_enter_block): Convert to member function
545 dom_opt_dom_walker::before_dom_children.
546 (dom_opt_leave_block): Convert to member function
547 dom_opt_dom_walker::after_dom_children.
548 * tree-ssa-dse.c (dse_dom_walker): New class.
549 (dse_enter_block): Convert to member function
550 dse_dom_walker::before_dom_children.
551 (tree_ssa_dse): Adjust.
552 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
553 (determine_invariantness_stmt): Convert to method
554 invariantness_dom_walker::before_dom_children.
555 (determine_invariantness): Remove
556 (move_computations_dom_walker): New class.
557 (move_computations_stmt): Convert to method
558 move_computations_dom_walker::before_dom_children.
559 (move_computations, tree_ssa_lim): Adjust.
560 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
561 (nt_init_block): Make method
562 notrappping_dom_walker::before_dom_children.
563 (nt_fini_block): Make
564 method nontrapping_dom_walker::after_dom_children.
565 (get_non_trapping): Adjust.
566 * tree-ssa-pre.c (eliminate_dom_walker): New class.
567 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
568 (eliminate_leave_block): Make method.
569 eliminate_dom_walker::after_dom_children.
570 (eliminate): Adjust
571 * tree-ssa-strlen.c (strlen_dom_walker): New class.
572 (strlen_enter_block): Make method
573 strlen_dom_walker::before_dom_children.
574 (strlen_leave_block): Make
575 method strlen_dom_walker::after_dom_children.
576 (tree_ssa_strlen): Adjust.
577 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
578 (tree_ssa_uncprop): Adjust.
579 (uncprop_leave_block): Make method
580 uncprop_dom_walker::after_dom_children.
581 (uncprop_leave_block): Make method
582 uncprop_dom_walker::before_dom_children.
583
3b3cc26b
BC
5842013-09-18 Bin Cheng <bin.cheng@arm.com>
585
586 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn
587 before branch in same basic block. Check both src and dest of
588 the move insn.
589
b5ba3a9b
NC
5902013-09-17 Nick Clifton <nickc@redhat.com>
591
592 * config/rl78/rl78-real.md (bf): New pattern.
593 (bt): New pattern.
594 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
595 (rl78_print_operand): Do not put a # before a %B.
596 * config/rl78/rl78.opt: Tweak doc strings.
597
09d5094b
DD
5982013-09-17 DJ Delorie <dj@redhat.com>
599
600 * config/rl78/constraints.md (Wcv): Allow up to $r31.
601 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
602 (rl78_option_override): Likewise, if -mallregs.
603 (is_virtual_register): Likewise.
604 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
605 (REGNO_OK_FOR_BASE_P): Likewise.
606 * config/rl78/rl78.opt (-mallregs): New.
607
2ba1dca1
NC
6082013-09-17 Nick Clifton <nickc@redhat.com>
609
610 * config/rl78/rl78.c (need_to_save): Change return type to bool.
611 For interrupt functions: save all call clobbered registers if the
612 interrupt handler is not a leaf function.
613 (rl78_expand_prologue): Always recompute the frame information.
614 For interrupt functions: only select bank 0 if one of the bank 0
615 registers is going to be psuhed.
616
2e7c3f21
DD
6172013-09-17 DJ Delorie <dj@redhat.com>
618
619 * config/rl78/constraints.md: For each W* constraint, rename to C*
620 and create a W* constraint that checks for an optional ES: prefix
621 pattern also.
622 * config/rl78/rl78.md (UNS_ES_ADDR): New.
623 (es_addr): New. Used to wrap far addresses.
624 * config/rl78/rl78-protos.h (rl78_es_addr): New.
625 (rl78_es_base): New.
626 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
627 wrapped far addresses.
628 (rl78_print_operand_1): Unwrap far addresses before processing.
629 (rl78_lo16): Wrap far addresses in unspecs.
630 (rl78_es_addr): New.
631 (rl78_es_base): New.
632 (insn_ok_now): Check for not-yet-wrapped far addresses.
633 (transcode_memory_rtx): Properly re-wrap far addresses.
634
5c26a69a
SH
6352013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
636
637 * config/sparc/t-rtems: Add leon3 multilibs.
638
181f5f3e
CH
6392013-09-17 Cong Hou <congh@google.com>
640
641 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
642 when checking the dot production pattern. The type of rhs operand
643 of multiply is now checked correctly.
644
8d34e421
JL
6452013-09-17 Jeff Law <law@redhat.com>
646
647 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
648 edge implied equivalences into successor phis.
649 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
650 here from tree-ssa-threadedge.c.
651 (mark_threaded_blocks): When threading through a joiner, if both
652 successors of the joiner's clone reach the same block, verify the
653 PHI arguments are equal. If not, cancel the jump threading request.
654 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
655 tree-ssa-threadupdate.c
656 (thread_across_edge): Don't check PHI argument equality when
657 threading through joiner block here.
658
c152901f
AM
6592013-09-17 Andrew MacLeod <amacleod@redhat.com>
660
661 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
662 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
663 (warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized,
664 make_pass_early_warn_uninitialized): Move to tree-ssa-uninit.c.
665 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c
666 (has_undefined_value_p): New. Pass dependant parts of
667 ssa_undefined_value_p.
668 (uninit_undefined_value_p): Use has_undefined_value_p.
669 (warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized,
670 make_pass_early_warn_uninitialized): Move from tree-ssa.c
671 * tree-ssa.h: Adjust prototypes
672
b631d45a
JH
6732013-09-17 Jan Hubicka <jh@suse.cz>
674
675 PR middle-end/58332
676 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
677 * ipa-inline.c (can_inline_edge_p): Do not downgrade
678 FUNCTION_NOT_OPTIMIZED.
679 * ipa-inline-analysis.c (compute_inline_parameters): Function
680 not optimized is not inlinable unless it is alwaysinline.
681 (inline_analyze_function): Force calls in not optimized
682 function not inlinable.
683
5b79657a
JH
6842013-09-17 Jan Hubicka <jh@suse.cz>
685
686 PR middle-end/58329
687 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
688 to return NULL.
689 * ipa.c (function_and_variable_visibility): Likewise.
690 * ipa-profile.c (ipa_profile): Likewise.
691
27442c24
BE
6922013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
693
694 PR ipa/58398
695 * cgraph.c (cgraph_function_body_availability): Check for ifunc
696 attribute, and don't inline the resolver in this case.
697
753b9bc3
TJ
6982013-09-17 Teresa Johnson <tejohnson@google.com>
699
700 * coverage.c (get_coverage_counts): Add missing newline.
701
e3d3cfb4
KT
7022013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
703
704 PR tree-optimization/58088
705 * fold-const.c (mask_with_trailing_zeros): New function.
706 (fold_binary_loc): Make sure we don't recurse infinitely
707 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
708 Use mask_with_trailing_zeros where appropriate.
709
9a0ac98f
YR
7102013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
711
712 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
713 of 'prev' var to get better distance estimation.
714
78bbd765
EB
7152013-09-17 Eric Botcazou <ebotcazou@adacore.com>
716
717 * tree-inline.h (struct copy_body_data): Add transform_parameter.
718 * tree-inline.c (is_parameter_of): New predicate.
719 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
720 a parameter has been remapped.
721 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
722 (optimize_inline_calls): Initialize transform_parameter.
723 (copy_gimple_seq_and_replace_locals): Likewise.
724 (tree_function_versioning): Likewise.
725 (maybe_inline_call_in_expr): Likewise.
726
cad055a4
NC
7272013-09-17 Nick Clifton <nickc@redhat.com>
728
729 * config/msp430/msp430-protos.h: Add prototypes for new functions.
730 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
731 interrupt handlers.
732 (is_attr_func): New function.
733 (msp430_is_interrupt_func): New function.
734 (is_naked_func): New function.
735 (is_reentrant_func): New function.
736 (is_critical_func): New function.
737 (msp430_start_function): Add annotations for function attributes.
738 (msp430_attr): New function.
739 (msp430_attribute_table): New.
740 (msp430_function_section): New function.
741 (TARGET_ASM_FUNCTION_SECTION): Define.
742 (msp430_builtin): New enum.
743 (msp430_init_builtins): New function.
744 (msp430_builtin_devl): New function.
745 (msp430_expand_builtin): New function.
746 (TARGET_INIT_BUILTINS): Define.
747 (TARGET_EXPAND_BUILTINS): Define.
748 (TARGET_BUILTIN_DECL): Define.
749 (msp430_expand_prologue): Add support for naked, interrupt,
750 critical and reentrant functions.
751 (msp430_expand_epilogue): Likewise.
752 (msp430_print_operand): Handle 'O' character.
753 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
754 NO_TRAMPOLINES.
755 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
756 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
757 (pushm): Use a 'n' rather than an 'i' constraint.
758 (msp_return): Add generation of the interrupt return instruction.
759 (disable_interrupts): New pattern.
760 (enable_interrupts): New pattern.
761 (push_intr_state): New pattern.
762 (pop_intr_state): New pattern.
763 (bic_SR): New pattern.
764 (bis_SR): New pattern.
765 * doc/extend.texi: Document MSP430 function attributes and builtin
766 functions.
767
deb6c11a
RB
7682013-09-17 Richard Biener <rguenther@suse.de>
769
770 PR tree-optimization/58432
771 * tree-loop-distribution.c (tree_loop_distribution): Also
772 scan PHIs for outside loop uses and seed a partition from them.
773
c068654b
BC
7742013-09-17 Bin Cheng <bin.cheng@arm.com>
775
776 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
777 (restructure_reference): Call backtrace_base_for_ref.
778
567969e4
AM
7792013-09-17 Alan Modra <amodra@gmail.com>
780
781 PR target/57589
782 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11 patch.
783
5c0029de
DD
7842013-09-16 DJ Delorie <dj@redhat.com>
785
786 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
787 vregs location for RL78/G10.
788 (rl78_expand_prologue): Avoid SEL on G10.
789 (rl78_expand_epilogue): Likewise.
790 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
791 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
792 __RL78_G10__ when appropriate.
793 (ASM_SPEC): Pass -mg10 along to the assembler.
794 * config/rl78/rl78.md (sel_rb): Disable for G10.
795 * config/rl78/rl78.opt: Add -mg10 option.
796 * config/rl78/t-rl78: Add -mg10 multilib.
797
ea0f3e87
XDL
7982013-09-16 Xinliang David Li <davidxl@google.com>
799
800 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
801 * omp-low.c (omp_max_vf): Ditto.
802 (expand_omp_simd): Ditto.
803 * tree-vectorizer.c (vectorize_loops): Ditto.
804 (gate_vect_slp): Ditto.
805 (gate_increase_alignment): Ditto.
806 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
807 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
808 (gate_tree_vectorize): Name change.
809 (tree_vectorize): Ditto.
810 (pass_vectorize::gate): Call new function.
811 (pass_vectorize::execute): Ditto.
812 opts.c: O3 default setting change.
813 (finish_options): Check new flag.
814 * doc/invoke.texi: Document new flags.
815 * common.opt: New flags.
816
4f3da2e5
AS
8172013-09-16 Andreas Schwab <schwab@linux-m68k.org>
818
819 * doc/tm.texi.in (Cond Exec Macros): Remove node.
820 (Condition Code): Don't reference it.
821 * doc/tm.texi: Regenerate.
822
aa940f7c
VM
8232013-09-16 Vladimir Makarov <vmakarov@redhat.com>
824
825 PR middle-end/58418
826 * lra-constraints.c (undo_optional_reloads): Consider all optional
827 reload even if it did not get a hard reg.
828
e645e942
TJ
8292013-09-16 Teresa Johnson <tejohnson@google.com>
830
831 * dumpfile.c (dump_loc): Remove newline emission.
832 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
833 emission to dump_printf_loc calls where missing.
834 (vect_mark_for_runtime_alias_test): Ditto.
835 (vect_analyze_data_ref_dependence): Ditto.
836 (vect_analyze_data_ref_dependences): Ditto.
837 (vect_slp_analyze_data_ref_dependence): Ditto.
838 (vect_slp_analyze_data_ref_dependences): Ditto.
839 (vect_compute_data_ref_alignment): Ditto.
840 (vect_update_misalignment_for_peel): Ditto.
841 (vect_verify_datarefs_alignment): Ditto.
842 (vector_alignment_reachable_p): Ditto.
843 (vect_get_data_access_cost): Ditto.
844 (vect_enhance_data_refs_alignment): Ditto.
845 (vect_find_same_alignment_drs): Ditto.
846 (vect_analyze_data_refs_alignment): Ditto.
847 (vect_analyze_group_access): Ditto.
848 (vect_analyze_data_ref_access): Ditto.
849 (vect_analyze_data_ref_accesses): Ditto.
850 (vect_prune_runtime_alias_test_list): Ditto.
851 (vect_analyze_data_refs): Ditto.
852 (vect_create_addr_base_for_vector_ref): Ditto.
853 (vect_create_data_ref_ptr): Ditto.
854 (vect_grouped_store_supported): Ditto.
855 (vect_grouped_load_supported): Ditto.
856 * value-prof.c (check_counter): Ditto.
857 (check_ic_target): Ditto.
858 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
859 (vect_recog_widen_mult_pattern): Ditto.
860 (vect_recog_widen_sum_pattern): Ditto.
861 (vect_recog_over_widening_pattern): Ditto.
862 (vect_recog_widen_shift_pattern): Ditto.
863 (vect_recog_rotate_pattern): Ditto.
864 (vect_recog_vector_vector_shift_pattern): Ditto.
865 (vect_recog_divmod_pattern): Ditto.
866 (vect_recog_mixed_size_cond_pattern): Ditto.
867 (vect_recog_bool_pattern): Ditto.
868 (vect_pattern_recog_1): Ditto.
869 (vect_pattern_recog): Ditto.
870 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
871 (vect_is_simple_iv_evolution): Ditto.
872 (vect_analyze_scalar_cycles_1): Ditto.
873 (vect_get_loop_niters): Ditto.
874 (vect_analyze_loop_1): Ditto.
875 (vect_analyze_loop_form): Ditto.
876 (vect_analyze_loop_operations): Ditto.
877 (vect_analyze_loop_2): Ditto.
878 (vect_analyze_loop): Ditto.
879 (report_vect_op): Ditto.
880 (vect_is_slp_reduction): Ditto.
881 (vect_is_simple_reduction_1): Ditto.
882 (vect_get_known_peeling_cost): Ditto.
883 (vect_estimate_min_profitable_iters): Ditto.
884 (vect_model_reduction_cost): Ditto.
885 (vect_model_induction_cost): Ditto.
886 (get_initial_def_for_induction): Ditto.
887 (vect_create_epilog_for_reduction): Ditto.
888 (vectorizable_reduction): Ditto.
889 (vectorizable_induction): Ditto.
890 (vectorizable_live_operation): Ditto.
891 (vect_loop_kill_debug_uses): Ditto.
892 (vect_transform_loop): Ditto.
893 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
894 (vect_stmt_relevant_p): Ditto.
895 (process_use): Ditto.
896 (vect_mark_stmts_to_be_vectorized): Ditto.
897 (vect_model_simple_cost): Ditto.
898 (vect_model_promotion_demotion_cost): Ditto.
899 (vect_model_store_cost): Ditto.
900 (vect_get_store_cost): Ditto.
901 (vect_model_load_cost): Ditto.
902 (vect_get_load_cost): Ditto.
903 (vect_init_vector_1): Ditto.
904 (vect_get_vec_def_for_operand): Ditto.
905 (vect_finish_stmt_generation): Ditto.
906 (vectorizable_call): Ditto.
907 (vectorizable_conversion): Ditto.
908 (vectorizable_assignment): Ditto.
909 (vectorizable_shift): Ditto.
910 (vectorizable_operation): Ditto.
911 (vectorizable_store): Ditto.
912 (vectorizable_load): Ditto.
913 (vectorizable_condition): Ditto.
914 (vect_analyze_stmt): Ditto.
915 (vect_transform_stmt): Ditto.
916 (vect_is_simple_use): Ditto.
917 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
918 (vect_can_advance_ivs_p): Ditto.
919 (vect_update_ivs_after_vectorizer): Ditto.
920 (vect_do_peeling_for_loop_bound): Ditto.
921 (vect_gen_niters_for_prolog_loop): Ditto.
922 (vect_update_inits_of_drs): Ditto.
923 (vect_create_cond_for_alias_checks): Ditto.
924 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
925 (vect_build_slp_tree_1): Ditto.
926 (vect_supported_load_permutation_p): Ditto.
927 (vect_analyze_slp_instance): Ditto.
928 (vect_analyze_slp): Ditto.
929 (vect_make_slp_decision): Ditto.
930 (vect_detect_hybrid_slp): Ditto.
931 (vect_bb_vectorization_profitable_p): Ditto.
932 (vect_slp_analyze_bb_1): Ditto.
933 (vect_update_slp_costs_according_to_vf): Ditto.
934 (vect_get_mask_element): Ditto.
935 (vect_transform_slp_perm_load): Ditto.
936 (vect_schedule_slp_instance): Ditto.
937 (vect_schedule_slp): Ditto.
938 (vect_slp_transform_bb): Ditto.
939 * profile.c (read_profile_edge_counts): Ditto.
940 (compute_branch_probabilities): Ditto.
941 * coverage.c (get_coverage_counts): Ditto.
942
46f851f3
DN
9432013-09-16 Diego Novillo <dnovillo@google.com>
944
945 * tree-core.h: Add missing comment lines from refactoring
946 of tree.h.
947
1632a686
JH
9482013-09-16 Jan Hubicka <jh@suse.cz>
949
950 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
951 abstract functions; for static functions check the presence
952 of body.
953
828e70c1
JG
9542013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
955
956 * config/aarch64/aarch64-simd-builtins.def (fma): New.
957 * config/aarch64/aarch64-simd.md
958 (aarch64_mla_elt<mode>): New.
959 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
960 (aarch64_mls_elt<mode>): Likewise.
961 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
962 (aarch64_fma4_elt<mode>): Likewise.
963 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
964 (aarch64_fma4_elt_to_128v2df): Likewise.
965 (aarch64_fma4_elt_to_64df): Likewise.
966 (fnma<mode>4): Likewise.
967 (aarch64_fnma4_elt<mode>): Likewise.
968 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
969 (aarch64_fnma4_elt_to_128v2df): Likewise.
970 (aarch64_fnma4_elt_to_64df): Likewise.
971 * config/aarch64/iterators.md (VDQSF): New.
972 * config/aarch64/arm_neon.h
973 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
974 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
975
779aea46
JG
9762013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
977
978 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
979 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
980 (aarch64_mul3_elt_to_128df): Likewise.
981 (aarch64_mul3_elt_to_64v2df): Likewise.
982 * config/aarch64/iterators.md (VEL): Also handle DFmode.
983 (VMUL): New.
984 (VMUL_CHANGE_NLANES) Likewise.
985 (h_con): Likewise.
986 (f): Likewise.
987 * config/aarch64/arm_neon.h
988 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
989
a407a750
JG
9902013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
991
992 * config/aarch64/arm_neon.h
993 (vcvtx_high_f32_f64): Fix parameters.
994
f77e2d2d 9952013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 996 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 997
a5bd71fa 998 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 999
36875e8f
RB
10002013-09-16 Richard Biener <rguenther@suse.de>
1001
1002 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
1003 (dot_rdg_1): Handle control_dd.
1004 (create_edge_for_control_dependence): New function.
1005 (create_rdg_edges): Add control dependences if asked for.
1006 (build_rdg): Likewise.
1007 (generate_loops_for_partition): If there are not necessary
1008 control stmts remove all their dependencies.
1009 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
1010 (distribute_loop): Pass on control dependences.
1011 (tree_loop_distribution): Compute control dependences and remove
1012 restriction on number of loop nodes.
1013
96e24d49
JJ
10142013-09-16 Jakub Jelinek <jakub@redhat.com>
1015
1016 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
1017 for internal calls.
1018
40dbb05c
RS
10192013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
1020
1021 * cse.c (try_const_anchors): Punt on CC modes.
1022
97191ad0
JBG
10232013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1024
1025 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
1026
403a3fb7
JDA
10272013-09-14 John David Anglin <danglin@gcc.gnu.org>
1028
1029 PR target/58382
1030 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
1031 calls to word_mode.
1032
fb5610fb
IS
10332013-09-14 Iain Sandoe <iain@codesourcery.com>
1034
1035 PR target/48094
1036 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
1037 seen.
1038 (darwin_objc1_section): Likewise.
fb5610fb
IS
1039 (darwin_file_end): Emit Image Info section when required.
1040
afdec9bd
JH
10412013-09-14 Jan Hubicka <jh@suse.cz>
1042
1043 * tree-into-ssa.c (gate_into_ssa): New.
1044 (pass_data_build_ssa): Use it.
1045 * cgraph.h (expand_thunk): Update prototype.
1046 * cgraphunit.c (analyze_function): Expand thunks early.
1047 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
1048 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
1049 set lowered flag; do not add new function.
1050 (assemble_thunks_and_aliases): Update.
1051 * tree-ssa.c (gate_init_datastructures): New gate.
1052 (pass_data_init_datastructures): Use it.
1053
492d1e0a
IS
10542013-09-14 Iain Sandoe <iain@codesourcery.com>
1055
1056 PR target/58269
f77e2d2d 1057 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
1058 xmm register set described in the psABI.
1059
d13c6b70
EG
10602013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
1061
f77e2d2d
JBG
1062 * dwarf2out.c (should_emit_struct_debug): Add check
1063 for type_decl variable is not NULL.
d13c6b70 1064
88b0e79e
JC
10652013-09-13 Jacek Caban <jacek@codeweavers.com>
1066
1067 * config.gcc: Use new winnt-c.c target hooks
1068 * config/t-winnt: New file
1069 * config/winnt-c.c: New file
1070 * doc/tm.texi.in: Document new hook
1071 * doc/tm.texi: Regenerated
1072
19ba6aab
JH
10732013-09-13 Jan Hubicka <jh@suse.cz>
1074
1075 PR middle-end/58094
1076 * ipa-inline.c (check_callers): New function.
1077 (check_caller_edge): Remove.
1078 (want_inline_function_to_all_callers_p): Also permit alises that are
1079 called dirrectly.
1080 (inline_to_all_callers): Terminate the walk when devirtualization
1081 introduce new calls.
1082
a93c18c8
JH
10832013-09-13 Jan Hubicka <jh@suse.cz>
1084
1085 * ipa-inline-analysis.c (struct growth_data): Add node.
1086 (do_estimate_growth_1): Fix detection of recursion.
1087
f3b331d1
JJ
10882013-09-13 Jakub Jelinek <jakub@redhat.com>
1089
1090 PR tree-optimization/58392
1091 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
1092 to avoid shadowing of outer loop variable. If
1093 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
1094 replace_by_duplicate_decl simduid of loops that have it set and
1095 set dest_cfun->has_simduid_loops and/or
1096 dest_cfun->has_force_vect_loops.
1097 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
1098 instead of maybe_lookup_decl.
1099 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
1100 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
1101 call. Copy over force_vect and copy and remap simduid. Set
1102 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
1103 (copy_cfg_body): Remove blocks_to_copy argument. Use
1104 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
1105 caller. Don't set cfun->has_simduid_loops and/or
1106 cfun->has_force_vect_loops here.
1107 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
1108 caller.
1109 (expand_call_inline, tree_function_versioning): Adjust copy_body
1110 callers.
1111
ae6d0907
MJ
11122013-09-13 Martin Jambor <mjambor@suse.cz>
1113
1114 PR bootstrap/58388
1115 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
1116 the assert if the edge was a speculative one.
1117
2fd5894f
RB
11182013-09-13 Richard Biener <rguenther@suse.de>
1119
1120 * tree-data-ref.h (known_dependences_p): Move here ...
1121 * tree-loop-distribution.c (known_dependences_p): ... from here.
1122 (dump_rdg_component, debug_rdg_component): Remove.
1123 (dump_rdg): Adjust.
1124 (generate_loops_for_partition): Use gimple_uid instead of
1125 relying on matching stmt visit order.
1126 (rdg_build_partitions): Take starting stmt vector.
1127 (ldist_gen): Merge into ...
1128 (distribute_loop): ... this function. Do not compute starting
1129 vertices vector.
1130 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
1131
86eb4bd7
KT
11322013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1133
1134 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
1135 Set type attribute correctly. Set predicable_short_it attribute.
1136 (cmpsi_shiftsi): Remove %? from output template.
1137
83a95546
RB
11382013-09-13 Richard Biener <rguenther@suse.de>
1139
1140 * tree-loop-distribution.c (struct rdg_component,
1141 rdg_defs_used_in_other_loops_p, free_rdg_components,
1142 rdg_build_components): Remove.
1143 (stmts_from_loop): Do not record virtual PHIs.
1144 (generate_loops_for_partition): Skip virtual PHIs.
1145 (build_rdg_partition_for_component): Rename to ...
1146 (build_rdg_partition_for_vertex): ... this and adjust.
1147 (rdg_build_partitions): Take a vector of starting vertices
1148 instead of components. Remove unnecessary leftover handling.
1149 (ldist_gen): Do not build components or record other stores.
1150 (distribute_loop): Do not distribute loops containing stmts
1151 with side-effects.
1152
c0ecf7f1
CB
11532013-09-13 Christian Bruel <christian.bruel@st.com>
1154
1155 PR target/58314
1156 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
1157
34f56efc
KT
11582013-09-13 Kai Tietz <ktietz@redhat.com>
1159
740f2bf3
KT
1160 * config.gcc: Separate cases for mingw and cygwin targets,
1161 and add 64-bit cygwin target case.
1162
34f56efc
KT
1163 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
1164 dll-export inline-functions.
1165 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
1166
1167
11682013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
1169
1170 PR middle-end/58387
1171 Revert:
1172 2013-09-06 Jeff Law <law@redhat.com>
1173
1174 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
1175 edge implied equivalences into successor phis.
1176
aadb52ad
DD
11772013-09-12 DJ Delorie <dj@redhat.com>
1178
1179 * config/rl78/rl78-virt.md: Change from | to \; for asm line
1180 separators.
1181
90ae7019
BM
11822013-09-12 Brooks Moses <bmoses@google.com>
1183
1184 PR driver/42955
1185 * Makefile.in: Do not install driver binaries in $(target)/bin.
1186
17b2557c
DD
11872013-09-12 DJ Delorie <dj@redhat.com>
1188
c5215a9b
DD
1189 * config/rl78/rl78.opt (mrelax): New.
1190 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
1191 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
1192
17b2557c
DD
1193 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
1194 between SP and FP.
1195 (rl78_expand_epilogue): Likewise.
1196
ecafcf05
VM
11972013-09-12 Vladimir Makarov <vmakarov@redhat.com>
1198
1199 PR middle-end/58335
84f6d9fa 1200 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
1201 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
1202 pointer elimination with using remove_reg_equal_offset_note.
1203
8369f38a
DD
12042013-09-12 DJ Delorie <dj@redhat.com>
1205
f6a83b4a
DD
1206 * config/msp430/: New port.
1207 * config.gcc (msp430): Added.
1208 * doc/invoke.texi: Document MSP430 options.
1209 * doc/install.texi: Document msp430-elf
1210 * doc/md.texi: Document msp430-elf
1211 * doc/contrib.texi: Document msp430-elf
1212
8369f38a
DD
1213 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
1214 PSImode.
1215
a854f856
MJ
12162013-09-12 Martin Jambor <mjambor@suse.cz>
1217
1218 PR ipa/58389
1219 * ipa-prop.c (remove_described_reference): Give up if the edge in the
1220 reference descriptor is NULL.
1221 (ipa_edge_removal_hook): If owning a reference descriptor, set its
1222 edge to NULL.
1223
b12ebd96
AM
12242013-09-12 Andrew MacLeod <amacleod@redhat.com>
1225
1226 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
1227 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
1228 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
1229 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
1230 make_temp_ssa_name): move to tree-ssanames.h
1231 * tree-ssa-alias.h: Move prototype.
1232 * tree-ssa.h: Include tree-ssanames.h.
1233 * tree-ssanames.c (FREE_SSANAMES): Move to here.
1234 * tree-ssanames.h: New. Move items from tree-flow*.h
1235 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
1236
e1fb4ad3
RB
12372013-09-12 Richard Biener <rguenther@suse.de>
1238
1239 PR tree-optimization/58404
1240 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
1241 propagate non-invariant addresses into dereferences wrapped
1242 in component references.
1243
154c9188
RB
12442013-09-12 Richard Biener <rguenther@suse.de>
1245
1246 PR tree-optimization/58402
1247 * passes.def: Move pass_late_warn_uninitialized later.
1248
7a300452
AM
12492013-09-12 Andrew MacLeod <amacleod@redhat.com>
1250
1251 * tree-ssa.h: New. Move content from tree-flow.h and
1252 tree-flow-inline.h.
1253 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
1254 Move prototypes belonging to tree-ssa.c.
f77e2d2d 1255 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
1256 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
1257 tree-ssa.h.
1258 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
1259 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
1260 to...
1261 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
1262 * tree.h: Move prototype to tree-ssa.h.
1263 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
1264 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
1265 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
1266 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
1267 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
1268 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
1269 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
1270 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
1271 graphite-blocking.c, graphite-clast-to-gimple.c,
1272 graphite-dependences.c, graphite-interchange.c,
1273 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
1274 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
1275 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
1276 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
1277 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
1278 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
1279 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
1280 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
1281 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
1282 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
1283 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
1284 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
1285 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
1286 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
1287 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
1288 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
1289 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
1290 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
1291 value-prof.c, var-tracking.c,
1292 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
1293
97463b2b
RB
12942013-09-12 Richard Biener <rguenther@suse.de>
1295
1296 PR tree-optimization/58396
1297 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
1298 (build_rdg): Take a loop-nest parameter, fix memleaks.
1299 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
1300
80ecd89d
YR
13012013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
1302
1303 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
1304 for SLM.
1305
893e85fa
CM
13062013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
1307
1308 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
1309 The FMA instruction names should have a 'v' prefix.
1310
174ec470
RB
13112013-09-12 Richard Biener <rguenther@suse.de>
1312
1313 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
1314 (dot_rdg): Use popen instead of system in optional code.
1315 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
1316 (already_processed_vertex_p): Adjust.
1317 (has_anti_or_output_dependence, predecessor_has_mem_write,
1318 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
1319 rdg_flag_uses): Remove.
1320 (rdg_flag_vertex): Simplify.
1321 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
1322 remove recursion.
1323 (build_rdg_partition_for_component): Process the first vertex
1324 of a component only.
1325 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
1326
38c89763
AM
13272013-09-12 Alan Modra <amodra@gmail.com>
1328
1329 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
1330
3e3d9d17
DD
13312013-09-11 DJ Delorie <dj@redhat.com>
1332 Nick Clifton <nickc@redhat.com>
1333
1334 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
1335 (rl78_stack_based_mem): New.
1336 * config/rl78/constraints.md (Iv08): New.
1337 (Iv16): New.
1338 (Iv24): New.
1339 (Is09): New.
1340 (Is17): New.
1341 (Is25): New.
1342 (ISsi): New.
1343 (IShi): New.
1344 (ISqi): New.
1345 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
1346 (movhi): Likewise.
1347 (movsi): Change from expand to insn-and-split.
1348 (ashrsi3): Clobber AX.
1349 (lshrsi3): New.
1350 (ashlsi3): New.
1351 (cbranchsi4): New.
1352 * config/rl78/rl78.md (CC_REG): Fix.
1353 (addsi3): Allow memory and immediate operands.
1354 (addsi3_internal): Split into...
1355 (addsi3_internal_virt): ...new, and ...
1356 (addsi3_internal_real): ...new.
1357 (subsi): New.
1358 (subsi3_internal_virt): New.
1359 (subsi3_internal_real): New.
1360 (mulsi3): Add memory operand.
1361 (mulsi3_rl78): Likewise.
1362 (mulsi3_g13): Likewise.
1363 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
1364 (cbranchqi4_real): Add more constraint options.
1365 (cbranchhi4_real): Expand pattern.
1366 (cbranchhi4_real_signed): New.
1367 (cbranchhi4_real_inverted): New.
1368 (cbranchsi4_real_lt): New.
1369 (cbranchsi4_real_ge): New.
1370 (cbranchsi4_real_signed): New.
1371 (cbranchsi4_real): New.
1372 (peephole2): New.
893e85fa
CM
1373 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
1374 constant shifts.
3e3d9d17
DD
1375 (lshrsi3_virt): Likewise.
1376 (ashlsi3_virt): Likewise.
1377 (cbranchqi4_virt_signed): New.
1378 (cbranchhi4_virt_signed): New.
1379 (cbranchsi4_virt): New.
1380 * config/rl78/rl78.c: Whitespace fixes throughout.
1381 (move_elim_pass): New.
1382 (pass_data_rl78_move_elim): New.
1383 (pass_rl78_move_elim): New.
1384 (make_pass_rl78_move_elim): New.
1385 (rl78_devirt_info): Run devirt earlier.
1386 (rl78_move_elim_info): New.
1387 (rl78_asm_file_start): Register it.
1388 (rl78_split_movsi): New.
1389 (rl78_as_legitimate_address): Allow virtual base registers when
1390 appropriate.
1391 (rl78_addr_space_convert): Remove spurious debug stuff.
1392 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
1393 (rl78_print_operand): More cases for not printing '#'.
1394 (rl78_expand_compare): Remove most of the logic.
1395 (content_memory): New.
1396 (clear_content_memory): New.
1397 (get_content_index): New.
1398 (get_content_name): New.
1399 (display_content_memory): New.
1400 (update_content): New.
1401 (record_content): New.
1402 (already_contains): New.
1403 (insn_ok_now): Re-recog insns with virtual registers.
1404 (add_postponed_content_update): New.
1405 (process_postponed_content_update): New.
1406 (gen_and_emit_move): New.
893e85fa
CM
1407 (transcode_memory_rtx): Record new location content.
1408 Use gen_and_emit_move.
3e3d9d17
DD
1409 (force_into_acc): New.
1410 (move_to_acc): Use gen_and_emit_move.
1411 (move_from_acc): Likewise.
1412 (move_acc_to_reg): Likewise.
1413 (move_to_x): Likewise.
1414 (move_to_hl): Likewise.
1415 (move_to_de): Likewise.
1416 (rl78_alloc_physical_registers_op1): Record location content.
1417 (has_constraint): New.
1418 (rl78_alloc_physical_registers_op2): Record location content.
1419 Optimize use of HL.
1420 (rl78_alloc_physical_registers_ro1): Likewise.
1421 (rl78_alloc_physical_registers_cmp): Likewise.
1422 (rl78_alloc_physical_registers_umul): Likewise.
1423 (rl78_alloc_address_registers_macax): New.
1424 (rl78_alloc_physical_registers): Initialize and set location
1425 content memory as needed.
1426 (rl78_reorg): Make sure split2 is called.
1427 (rl78_rtx_costs): New.
1428
088845a5
RS
14292013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
1430
1431 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
1432 for (not (neg ...)) and (neg (not ...)) cases.
1433
5c2961cf
RB
14342013-09-11 Richard Biener <rguenther@suse.de>
1435
1436 PR middle-end/58377
1437 * passes.def: Split critical edges before late uninit warning passes.
1438 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
1439
427e6a14
JJ
14402013-09-11 Jakub Jelinek <jakub@redhat.com>
1441
1442 PR tree-optimization/58385
1443 * fold-const.c (build_range_check): If both low and high are NULL,
1444 use omit_one_operand_loc to preserve exp side-effects.
1445
df45c0cc
KT
14462013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1447
1448 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
1449
80ab0b19
RB
14502013-09-11 Richard Biener <rguenther@suse.de>
1451
1452 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
1453 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
1454 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
1455 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
1456 stmts_from_loop, known_dependences_p, build_empty_rdg,
1457 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
1458 * tree-loop-distribution.c: ... here.
1459 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
1460 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
1461 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
1462 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
1463 * tree-loop-distribution.c: ... here.
1464 * tree-loop-distribution.c: Include gimple-pretty-print.h.
1465 (struct partition_s): Add loops member.
1466 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
1467 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
1468 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
1469
85a77221
AI
14702013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1471 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1472 Sergey Lega <sergey.s.lega@intel.com>
1473 Anna Tikhonova <anna.tikhonova@intel.com>
1474 Ilya Tocar <ilya.tocar@intel.com>
1475 Andrey Turetskiy <andrey.turetskiy@intel.com>
1476 Ilya Verbin <ilya.verbin@intel.com>
1477 Kirill Yukhin <kirill.yukhin@intel.com>
1478 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1479
1480 * config/i386/constraints.md (k): New.
1481 (Yk): Ditto.
1482 * config/i386/i386.c (const regclass_map): Add new mask registers.
1483 (dbx_register_map): Ditto.
1484 (dbx64_register_map): Ditto.
1485 (svr4_dbx_register_map): Ditto.
1486 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
1487 disabled.
1488 (ix86_preferred_reload_class): Disable constants for mask registers.
1489 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
1490 (ix86_hard_regno_mode_ok): Support new mask registers.
1491 (x86_order_regs_for_local_alloc): Ditto.
1492 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
1493 (FIXED_REGISTERS): Add new mask registers.
1494 (CALL_USED_REGISTERS): Ditto.
1495 (REG_ALLOC_ORDER): Ditto.
1496 (VALID_MASK_REG_MODE): New.
1497 (FIRST_MASK_REG): Ditto.
1498 (LAST_MASK_REG): Ditto.
1499 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
1500 (MAYBE_MASK_CLASS_P): New.
1501 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
1502 (REG_CLASS_CONTENTS): Ditto.
1503 (MASK_REGNO_P): New.
1504 (ANY_MASK_REG_P): Ditto.
1505 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
1506 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
1507 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
1508 mask registers.
85a77221
AI
1509 (attribute "type"): Add mskmov, msklog.
1510 (attribute "length_immediate"): Support them.
1511 (attribute "memory"): Ditto.
1512 (attribute "prefix_0f"): Ditto.
1513 (*movhi_internal): Support new mask registers.
1514 (*movqi_internal): Ditto.
1515 (define_split): Split out clobber pattern is a logic
1516 insn on mask registers.
1517 (*k<logic><mode>): New.
1518 (*andhi_1): Extend to support mask regs.
1519 (*andqi_1): Extend to support mask regs.
1520 (kandn<mode>): New.
1521 (define_split): Split and-not to and and not if operands
1522 are not mask regs.
1523 (*<code><mode>_1): Separate HI mode to new pattern...
1524 (*<code>hi_1): This.
1525 (*<code>qi_1): Extend to support mask regs.
1526 (kxnor<mode>): New.
1527 (kortestzhi): Ditto.
1528 (kortestchi): Ditto.
1529 (kunpckhi): Ditto.
1530 (*one_cmpl<mode>2_1): Remove HImode and handle it...
1531 (*one_cmplhi2_1): ...Here, now with mask registers support.
1532 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
1533 (HI/QImode arithmetics splitter): Don't split if mask registers
1534 are used.
85a77221
AI
1535 (HI/QImode not splitter): Ditto.
1536 * config/i386/predicated.md (mask_reg_operand): New.
1537 (general_reg_operand): Ditto.
1538
7e570821
AI
15392013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1540
1541 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
1542 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
1543
9e1376e9
JL
15442013-09-10 Jeff Law <law@redhat.com>
1545
1546 PR tree-optimization/58380
1547 * tree-ssa-threadupdate.c (thread_block): Recognize another case
1548 of threading through a buried loop header.
1549
1550 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
1551 return value for single successor case.
1552
5bbcb888
JH
15532013-09-10 Jan Hubicka <jh@suse.cz>
1554
1555 * ipa-devirt.c (ipa_devirt): Enable with LTO.
1556
d742ff4b
RE
15572013-09-10 Richard Earnshaw <rearnsha@arm.com>
1558
1559 PR target/58361
1560 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
1561 support conditional execution.
1562 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
1563
b0681c9e
VM
15642013-09-10 Vladimir Makarov <vmakarov@redhat.com>
1565
1566 * lra.c (lra): Clear lra_optional_reload_pseudos before every
1567 constraint pass.
f77e2d2d
JBG
1568 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
1569 Check destination too to check move insn.
b0681c9e 1570 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
1571 changed its allocation and the optional reload was inherited on last
1572 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
1573 (lra_undo_inheritance): Add check that inherited pseudo still in
1574 memory.
1575
c9b1c957
JG
15762013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
1577
1578 * config/aarch64/aarch64.md (generic_sched): New.
1579 * config/aarch64/aarch64-generic.md (load): Make conditional
1580 on generic_sched attribute.
1581 (nonload): Likewise.
1582
82d618d3
JH
15832013-09-10 Jan Hubicka <jh@suse.cz>
1584
1585 * lto-cgraph.c: Include ipa-utils.h.
1586 (compute_ltrans_boundary): Also add possible targets into the boundary.
1587
668b6894
JH
15882013-09-10 Jan Hubicka <jh@suse.cz>
1589
1590 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
1591 VAR_DECL of vtable rather than full expression.
1592
4f90d3e0
JH
15932013-09-10 Jan Hubicka <jh@suse.cz>
1594 Paolo Carlini <paolo.carlini@oracle.com>
1595
1596 * cgraphunit.c (analyze_functions): Save input_location, set it
1597 to UNKNOWN_LOCATION and restore it at the end.
1598
39e87baf
MJ
15992013-09-10 Martin Jambor <mjambor@suse.cz>
1600
1601 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
1602 represented by a thunk.
1603
581aedec
JL
16042013-09-10 Jeff Law <law@redhat.com>
1605
1606 PR tree-optimization/58343
1607 * tree-ssa-threadupdate.c (thread_block): Identify and disable
1608 jump threading requests through loop headers buried in the middle
1609 of a jump threading path.
1610
1611 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
1612 in return value/type.
1613
84cf4ab6
JJ
16142013-09-10 Jakub Jelinek <jakub@redhat.com>
1615
1616 PR rtl-optimization/58365
1617 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
1618 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
1619 it differs.
1620
447dd906
RB
16212013-09-10 Richard Biener <rguenther@suse.de>
1622
1623 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
1624 * tree-data-ref.c (create_rdg_vertices): Collect all data
1625 references, signal failure to the caller, use data-ref API.
893e85fa
CM
1626 (build_rdg): Compute data references only once. Maintain lifetime
1627 of data references and data dependences from within RDG.
447dd906
RB
1628 (free_rdg): Free dependence relations.
1629 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
1630 inventing extra dependences.
1631 (distribute_loop): Update for RDG API changes.
1632
f14a7324
KT
16332013-09-10 Kai Tietz <ktietz@redhat.com>
1634
1635 * doc/invoke.texi (fms-extensions): Document changed
1636 behavior for ms-abi targets.
1637 * config/i386/i386.c (ix86_option_override_internal):
1638 Set default value of option -fms-extension for ms-abi targets.
1639
ff131f26
MZ
16402013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
1641
1642 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
1643
33115a2c
AM
16442013-09-10 Alan Modra <amodra@gmail.com>
1645
1646 PR target/58330
1647 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
1648
b6872a13
AM
16492013-09-10 Alan Modra <amodra@gmail.com>
1650
1651 * config/rs6000/predicates.md (add_cint_operand): New.
1652 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
1653 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
1654 using add_cint_operand.
1655 (largetoc_high_plus_aix): Likewise.
1656
28fd0ba2
JJ
16572013-09-09 Jakub Jelinek <jakub@redhat.com>
1658
1659 PR tree-optimization/58364
1660 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
1661 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
1662 the current range can't be an unconditional true or false.
1663
552d99fe
JG
16642013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
1665
1666 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
1667
f43245d1
UB
16682013-09-09 Uros Bizjak <ubizjak@gmail.com>
1669
1670 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
1671
c9b0866a
PC
16722013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
1673
1674 PR c++/43452
1675 * doc/invoke.texi (-Wdelete-incomplete): Document it.
1676
78d8b9f0
IB
16772013-09-09 Ian Bolton <ian.bolton@arm.com>
1678
1679 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
1680 NO_REGS for immediate that can't be moved directly into FP_REGS.
1681
274b2532
KT
16822013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1683
1684 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
1685 comparison with negated operand.
c9b0866a
PC
1686 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
1687 RTL form.
274b2532 1688
467a3558
RB
16892013-09-09 Richard Biener <rguenther@suse.de>
1690
1691 PR middle-end/58326
1692 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
1693 of a subloop record all its block as affecting loop-closed SSA form.
1694
088c5368
RS
16952013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1696
1697 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
1698 of an rtx/bitpos pair.
1699 (store_fixed_bit_field): Update accordingly.
1700
69db2d57
RS
17012013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1702
1703 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
1704 GEN_INT.
1705 * builtins.c (expand_errno_check): Likewise.
1706 * dwarf2cfi.c (init_return_column_size): Likewise.
1707 * except.c (sjlj_mark_call_sites): Likewise.
1708 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
1709 * lra-constraints.c (emit_inc): Likewise.
1710 * ree.c (combine_set_extension): Likewise.
1711 * regmove.c (fixup_match_2): Likewise.
1712 * reload1.c (inc_for_reload): Likewise.
1713
69a59f0f
RS
17142013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1715
1716 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
1717 (force_to_mode, simplify_shift_const_1, simplify_comparison):
1718 Use gen_int_mode with the mode of the associated simplify_* call.
1719 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
1720 * expmed.c (expand_shift_1): Likewise.
1721 * function.c (instantiate_virtual_regs_in_insn): Likewise.
1722 * loop-iv.c (iv_number_of_iterations): Likewise.
1723 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
1724 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
1725
2f1cd2eb
RS
17262013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1727
1728 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
1729 of the associated expand_* call.
1730 (asan_emit_stack_protection): Likewise.
1731 * builtins.c (round_trampoline_addr): Likewise.
1732 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
1733 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
1734 (emit_store_flag): Likewise.
1735 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
1736 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
1737 Likewise.
1738 * function.c (instantiate_virtual_regs_in_insn): Likewise.
1739 * ifcvt.c (noce_try_store_flag_constants): Likewise.
1740 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
1741 * modulo-sched.c (generate_prolog_epilog): Likewise.
1742 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
1743 (expand_ctz, expand_ffs, expand_unop): Likewise.
1744
4789c0ce
RS
17452013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1746
1747 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
1748 of the associated gen_rtx_* call.
1749 * caller-save.c (init_caller_save): Likewise.
1750 * combine.c (find_split_point, make_extraction): Likewise.
1751 (make_compound_operation): Likewise.
1752 * dwarf2out.c (mem_loc_descriptor): Likewise.
1753 * explow.c (plus_constant, probe_stack_range): Likewise.
1754 * expmed.c (expand_mult_const): Likewise.
1755 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
1756 * reload1.c (init_reload): Likewise.
1757 * valtrack.c (cleanup_auto_inc_dec): Likewise.
1758 * var-tracking.c (adjust_mems): Likewise.
1759 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
1760 rather than gen_rtx_fmt_ee.
1761
a811f7cb
JH
17622013-09-09 Jan Hubicka <jh@suse.cz>
1763
1764 PR middle-end/58294
1765 * value-prof.c (gimple_ic): Copy also abnormal edges.
1766
dcad1dd3
RS
17672013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1768
1769 * asan.c (asan_shadow_cst): Use gen_int_mode.
1770
daf5c770
JH
17712013-09-08 Jan Hubicka <jh@suse.cz>
1772
1773 * ipa-profile.c: Add toplevel comment.
1774 (ipa_propagate_frequency_1): Be more conservative when profile is read.
1775 (contains_hot_call_p): New function.
1776 (ipa_propagate_frequency): Set frequencies based on counts when
1777 profile is read.
1778 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
1779 profile; do not tamper with profile after inlining if it is read.
1780
a12cd2db
JH
17812013-09-08 Jan Hubicka <jh@suse.cz>
1782
1783 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
1784 speculative edges.
1785
856a1588
JH
17862013-09-08 Jan Hubicka <jh@suse.cz>
1787
1788 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
1789 summary generation.
1790
4f4b0b73
JL
17912013-09-08 Jeff Law <law@redhat.com>
1792
1793 PR bootstrap/58340
1794 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
1795 of 'found'.
1796
cc4029ee
AK
17972013-09-08 Andi Kleen <ak@linux.intel.com>
1798
1799 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
1800
7b395ddd
JH
18012013-09-08 Jan Hubicka <jh@suse.cz>
1802
1803 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
1804
c34c46dd
RS
18052013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
1806
1807 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
1808 for non-debug insns.
1809 * lra.c (new_insn_reg): Take the containing insn as a parameter.
1810 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
1811 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
1812 accordingly.
1813
3462aa02
JH
18142013-09-08 Jan Hubicka <jh@suse.cz>
1815
1816 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
1817 targets and devirtualize to BUILT_IN_UNREACHABLE.
1818 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
1819 * ipa.c (walk_polymorphic_call_targets): New function.
1820 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
1821 functions; use the new timevar.
1822 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
1823 was removed from the program.
1824 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
1825 not consider it in the walk when its vtable is dead.
1826 (possible_polymorphic_call_targets_1): Pass anonymous flag to
1827 record_binfo.
1828 (devirt_variable_node_removal_hook): New function.
1829 (possible_polymorphic_call_targets): Also register
1830 devirt_variable_node_removal_hook.
1831 (ipa_devirt): Do not do non-speculative devirtualization.
1832 (gate_ipa_devirt): One execute if devirtualizing speculatively.
1833
26e5b0fd
JH
18342013-09-08 Jan Hubicka <jh@suse.cz>
1835
1836 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
1837 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
1838 varpool_remove_variable_insertion_hook): Declare.
1839 * varpool.c (varpool_node_hook_list): New structure.
1840 (first_varpool_node_removal_hook,
1841 first_varpool_variable_insertion_hook): New variables.
1842 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
1843 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
1844 varpool_remove_variable_insertion_hook,
1845 varpool_call_variable_insertion_hooks): New functions.
1846 (varpool_remove_node): Use it.
1847
97f1f314 18482013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 1849
97f1f314
PC
1850 PR c++/54941
1851 * diagnostic.c (diagnostic_build_prefix): When s.file is
1852 "<built-in>" don't output line and column numbers.
6df2ca09 1853
bcb650cb
JH
18542013-09-06 Jan Hubicka <jh@suse.cz>
1855
1856 * cgraphunit.c (expand_thunk): Get body before touching arguments.
1857 * lto-streamer-out.c: Stream thunks, too.
1858 * lto-streamer-in.c (input_function): Pop cfun here
1859 (lto_read_body): Instead of here.
1860
87f3fea8
CT
18612013-09-06 Caroline Tice <cmtice@google.com>
1862
1863 * doc/install.texi: Add documentation for the --enable-vtable-verify
1864 and the --disable-libvtv configure options.
1865
5e8d9b45
JL
18662013-09-06 Jeff Law <law@redhat.com>
1867
1868 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
1869 edge implied equivalences into successor phis.
1870
3a001aff
JR
18712013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
1872
1873 * resource.c (mark_referenced_resources): Handle COND_EXEC.
1874
18752013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
1876
1877 * resource.c (mark_target_live_regs): Compute resources taking
1878 into account if a call is predicated or not.
1879
2c641f8b
EB
18802013-09-06 Eric Botcazou <ebotcazou@adacore.com>
1881
1882 * toplev.c (output_stack_usage): Be prepared for suffixes created by
1883 the compiler in the function names.
1884
a81b0a3d
JH
18852013-09-06 Jan Hubicka <jh@suse.cz>
1886
1887 PR middle-end/58094
1888 * ipa-inline.c (has_caller_p): New function.
1889 (want_inline_function_to_all_callers_p): Use it.
1890 (sum_callers, inline_to_all_callers): Break out from ...
1891 (ipa_inline): ... here.
1892
68e4ca7e
JH
18932013-09-06 Jan Hubicka <jh@suse.cz>
1894
2c641f8b
EB
1895 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
1896 only when AVX is enabled.
68e4ca7e 1897
3c73e2fe
JG
18982013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1899
1900 * config/aarch64/aarch64.md
1901 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
1902 is fpsimd_<load/store>2.
1903 (load_pair<mode>): Likewise.
1904 (store_pair<mode>): Likewise.
1905
8c48eecd
JG
19062013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1907
1908 * config/arm/types.md (type): Add "mrs" type.
1909 * config/aarch64/aarch64.md
1910 (aarch64_load_tp_hard): Make type "mrs".
1911 * config/arm/arm.md
1912 (load_tp_hard): Make type "mrs".
1913 * config/arm/cortex-a15.md: Update with new attributes.
1914 * config/arm/cortex-a5.md: Update with new attributes.
1915 * config/arm/cortex-a53.md: Update with new attributes.
1916 * config/arm/cortex-a7.md: Update with new attributes.
1917 * config/arm/cortex-a8.md: Update with new attributes.
1918 * config/arm/cortex-a9.md: Update with new attributes.
1919 * config/arm/cortex-m4.md: Update with new attributes.
1920 * config/arm/cortex-r4.md: Update with new attributes.
1921 * config/arm/fa526.md: Update with new attributes.
1922 * config/arm/fa606te.md: Update with new attributes.
1923 * config/arm/fa626te.md: Update with new attributes.
1924 * config/arm/fa726te.md: Update with new attributes.
1925
9ea187a5
JG
19262013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1927
1928 * config/aarch64/aarch64.md
1929 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
1930 (*movtf_aarch64): Likewise.
1931 * config/arm/arm.md
1932 (thumb1_movdi_insn): Use "multiple" for type where more than one
1933 instruction is used for a move.
1934 (*arm32_movhf): Likewise.
1935 (*thumb_movdf_insn): Likewise.
1936
292b89b3
JG
19372013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1938
1939 * config/arm/types.md (type): Rename fcpys to fmov.
1940 * config/arm/vfp.md
1941 (*arm_movsi_vfp): Rename type fcpys as fmov.
1942 (*thumb2_movsi_vfp): Likewise
1943 (*movhf_vfp_neon): Likewise
1944 (*movhf_vfp): Likewise
1945 (*movsf_vfp): Likewise
1946 (*thumb2_movsf_vfp): Likewise
1947 (*movsfcc_vfp): Likewise
1948 (*thumb2_movsfcc_vfp): Likewise
1949 * config/aarch64/aarch64-simd.md
1950 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
1951 * config/aarch64/aarch64.md
1952 (*movsi_aarch64): Replace type mov_reg with fmovs.
1953 (*movdi_aarch64): Likewise
1954 (*movsf_aarch64): Likewise
1955 (*movdf_aarch64): Likewise
1956 * config/arm/arm.c
1957 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
1958 * config/arm/iwmmxt.md
1959 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
1960 * config/arm/arm1020e.md: Update with new attributes.
1961 * config/arm/cortex-a15-neon.md: Update with new attributes.
1962 * config/arm/cortex-a5.md: Update with new attributes.
1963 * config/arm/cortex-a53.md: Update with new attributes.
1964 * config/arm/cortex-a7.md: Update with new attributes.
1965 * config/arm/cortex-a8-neon.md: Update with new attributes.
1966 * config/arm/cortex-a9.md: Update with new attributes.
1967 * config/arm/cortex-m4-fpu.md: Update with new attributes.
1968 * config/arm/cortex-r4f.md: Update with new attributes.
1969 * config/arm/marvell-pj4.md: Update with new attributes.
1970 * config/arm/vfp11.md: Update with new attributes.
1971
6a24a83e
JG
19722013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1973
1974 * config/aarch64/aarch64.md
1975 (*madd<mode>): Fix type attribute.
1976 (*maddsi_uxtw): Likewise.
1977 (*msub<mode>): Likewise.
1978 (*msubsi_uxtw): Likewise.
1979 (<su_optab>maddsidi4): Likewise.
1980 (<su_optab>msubsidi4): Likewise.
1981
b86923f0
JG
19822013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1983
1984 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
1985 * config/arm/arm.md (core_cycles): Remove fdiv.
1986 * config/arm/vfp.md:
1987 (*sqrtsf2_vfp): Update for attribute changes.
1988 (*sqrtdf2_vfp): Likewise.
1989 * config/aarch64/aarch64.md:
1990 (sqrt<mode>2): Update for attribute changes.
1991 * config/arm/arm1020e.md: Update with new attributes.
1992 * config/arm/cortex-a15-neon.md: Update with new attributes.
1993 * config/arm/cortex-a5.md: Update with new attributes.
1994 * config/arm/cortex-a53.md: Update with new attributes.
1995 * config/arm/cortex-a7.md: Update with new attributes.
1996 * config/arm/cortex-a8-neon.md: Update with new attributes.
1997 * config/arm/cortex-a9.md: Update with new attributes.
1998 * config/arm/cortex-m4-fpu.md: Update with new attributes.
1999 * config/arm/cortex-r4f.md: Update with new attributes.
2000 * config/arm/marvell-pj4.md: Update with new attributes.
2001 * config/arm/vfp11.md: Update with new attributes.
2002
7b49c9e1
JG
20032013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
2004
2005 * config/arm/types.md
2006 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
2007 * config/aarch64/aarch64.md
2008 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
2009 new attributes.
2010 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
2011 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
2012 (float<GPI:mode><GPF:mode>2): Likewise.
2013 * config/arm/vfp.md
2014 (*truncsisf2_vfp): Update with new attributes.
2015 (*truncsidf2_vfp): Likewise.
2016 (fixuns_truncsfsi2): Likewise.
2017 (fixuns_truncdfsi2): Likewise.
2018 (*floatsisf2_vfp): Likewise.
2019 (*floatsidf2_vfp): Likewise.
2020 (floatunssisf2): Likewise.
2021 (floatunssidf2): Likewise.
2022 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
2023 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
2024 * config/arm/arm1020e.md: Update with new attributes.
2025 * config/arm/cortex-a15-neon.md: Update with new attributes.
2026 * config/arm/cortex-a5.md: Update with new attributes.
2027 * config/arm/cortex-a53.md: Update with new attributes.
2028 * config/arm/cortex-a7.md: Update with new attributes.
2029 * config/arm/cortex-a8-neon.md: Update with new attributes.
2030 * config/arm/cortex-a9.md: Update with new attributes.
2031 * config/arm/cortex-m4-fpu.md: Update with new attributes.
2032 * config/arm/cortex-r4f.md: Update with new attributes.
2033 * config/arm/marvell-pj4.md: Update with new attributes.
2034 * config/arm/vfp11.md: Update with new attributes.
2035
e7df8af8
JG
20362013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
2037
2038 * config/aarch64/arm_neon.h
2039 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
2040 (vqtbx<1,2,3,4><q>_s8): Likewise.
2041
594726e4
JG
20422013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
2043
f43245d1
UB
2044 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
2045 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
2046 (add<mode>3): Add type attribute.
2047 (add<mode>3): Likewise.
2048 (usadd<mode>3): Likewise.
2049 (ssadd<mode>3): Likewise.
2050 (sub<mode>3): Likewise.
2051 (sub<mode>3): Likewise.
2052 (ussub<mode>3): Likewise.
2053 (sssub<mode>3): Likewise.
2054 (ssmulsa3): Likewise.
2055 (usmulusa3): Likewise.
2056 (arm_usatsihi): Likewise.
2057 * config/arm/vfp.md
2058 (*movdi_vfp): Add types for all instructions.
2059 (*movdi_vfp_cortexa8): Likewise.
2060 (*movhf_vfp_neon): Likewise.
2061 (*movhf_vfp): Likewise.
2062 (*movdf_vfp): Likewise.
2063 (*thumb2_movdf_vfp): Likewise.
2064 (*thumb2_movdfcc_vfp): Likewise.
2065 * config/arm/arm.md: Add type attribute to all insn patterns.
2066 (*thumb1_adddi3): Add type attribute.
2067 (*arm_adddi3): Likewise.
2068 (*adddi_sesidi_di): Likewise.
2069 (*adddi_zesidi_di): Likewise.
2070 (*thumb1_addsi3): Likewise.
2071 (addsi3_compare0): Likewise.
2072 (*addsi3_compare0_scratch): Likewise.
2073 (*compare_negsi_si): Likewise.
2074 (cmpsi2_addneg): Likewise.
2075 (*addsi3_carryin_<optab>): Likewise.
2076 (*addsi3_carryin_alt2_<optab>): Likewise.
2077 (*addsi3_carryin_clobercc_<optab>): Likewise.
2078 (*subsi3_carryin): Likewise.
2079 (*subsi3_carryin_const): Likewise.
2080 (*subsi3_carryin_compare): Likewise.
2081 (*subsi3_carryin_compare_const): Likewise.
2082 (*arm_subdi3): Likewise.
2083 (*thumb_subdi3): Likewise.
2084 (*subdi_di_zesidi): Likewise.
2085 (*subdi_di_sesidi): Likewise.
2086 (*subdi_zesidi_di): Likewise.
2087 (*subdi_sesidi_di): Likewise.
2088 (*subdi_zesidi_ze): Likewise.
2089 (thumb1_subsi3_insn): Likewise.
2090 (*arm_subsi3_insn): Likewise.
2091 (*anddi3_insn): Likewise.
2092 (*anddi_zesidi_di): Likewise.
2093 (*anddi_sesdi_di): Likewise.
2094 (*ne_zeroextracts): Likewise.
2095 (*ne_zeroextracts): Likewise.
2096 (*ite_ne_zeroextr): Likewise.
2097 (*ite_ne_zeroextr): Likewise.
2098 (*anddi_notdi_di): Likewise.
2099 (*anddi_notzesidi): Likewise.
2100 (*anddi_notsesidi): Likewise.
2101 (andsi_notsi_si): Likewise.
2102 (thumb1_bicsi3): Likewise.
2103 (*iordi3_insn): Likewise.
2104 (*iordi_zesidi_di): Likewise.
2105 (*iordi_sesidi_di): Likewise.
2106 (*thumb1_iorsi3_insn): Likewise.
2107 (*xordi3_insn): Likewise.
2108 (*xordi_zesidi_di): Likewise.
2109 (*xordi_sesidi_di): Likewise.
2110 (*arm_xorsi3): Likewise.
2111 (*andsi_iorsi3_no): Likewise.
2112 (*smax_0): Likewise.
2113 (*smax_m1): Likewise.
2114 (*arm_smax_insn): Likewise.
2115 (*smin_0): Likewise.
2116 (*arm_smin_insn): Likewise.
2117 (*arm_umaxsi3): Likewise.
2118 (*arm_uminsi3): Likewise.
2119 (*minmax_arithsi): Likewise.
2120 (*minmax_arithsi_): Likewise.
2121 (*satsi_<SAT:code>): Likewise.
2122 (arm_ashldi3_1bit): Likewise.
2123 (arm_ashrdi3_1bit): Likewise.
2124 (arm_lshrdi3_1bit): Likewise.
2125 (*arm_negdi2): Likewise.
2126 (*thumb1_negdi2): Likewise.
2127 (*arm_negsi2): Likewise.
2128 (*thumb1_negsi2): Likewise.
2129 (*negdi_extendsid): Likewise.
2130 (*negdi_zero_extend): Likewise.
2131 (*arm_abssi2): Likewise.
2132 (*thumb1_abssi2): Likewise.
2133 (*arm_neg_abssi2): Likewise.
2134 (*thumb1_neg_abss): Likewise.
2135 (one_cmpldi2): Likewise.
2136 (extend<mode>di2): Likewise.
2137 (*compareqi_eq0): Likewise.
2138 (*arm_extendhisi2addsi): Likewise.
2139 (*arm_movdi): Likewise.
2140 (*thumb1_movdi_insn): Likewise.
2141 (*arm_movt): Likewise.
2142 (*thumb1_movsi_insn): Likewise.
2143 (pic_add_dot_plus_four): Likewise.
2144 (pic_add_dot_plus_eight): Likewise.
2145 (tls_load_dot_plus_eight): Likewise.
2146 (*thumb1_movhi_insn): Likewise.
2147 (*thumb1_movsf_insn): Likewise.
2148 (*movdf_soft_insn): Likewise.
2149 (*thumb_movdf_insn): Likewise.
2150 (cbranchsi4_insn): Likewise.
2151 (cbranchsi4_scratch): Likewise.
2152 (*negated_cbranchsi4): Likewise.
2153 (*tbit_cbranch): Likewise.
2154 (*tlobits_cbranch): Likewise.
2155 (*tstsi3_cbranch): Likewise.
2156 (*cbranchne_decr1): Likewise.
2157 (*addsi3_cbranch): Likewise.
2158 (*addsi3_cbranch_scratch): Likewise.
2159 (*arm_cmpdi_insn): Likewise.
2160 (*arm_cmpdi_unsig): Likewise.
2161 (*arm_cmpdi_zero): Likewise.
2162 (*thumb_cmpdi_zero): Likewise.
2163 (*deleted_compare): Likewise.
2164 (*mov_scc): Likewise.
2165 (*mov_negscc): Likewise.
2166 (*mov_notscc): Likewise.
2167 (*cstoresi_eq0_thumb1_insn): Likewise.
2168 (cstoresi_nltu_thumb1): Likewise.
2169 (cstoresi_ltu_thu): Likewise.
2170 (thumb1_addsi3_addgeu): Likewise.
2171 (*arm_jump): Likewise.
2172 (*thumb_jump): Likewise.
2173 (*check_arch2): Likewise.
2174 (arm_casesi_internal): Likewise.
2175 (thumb1_casesi_dispatch): Likewise.
2176 (*arm_indirect_jump): Likewise.
2177 (*thumb1_indirect_jump): Likewise.
2178 (nop): Likewise.
2179 (*and_scc): Likewise.
2180 (*ior_scc): Likewise.
2181 (*compare_scc): Likewise.
2182 (*cond_move): Likewise.
2183 (*cond_arith): Likewise.
2184 (*cond_sub): Likewise.
2185 (*cmp_ite0): Likewise.
2186 (*cmp_ite1): Likewise.
2187 (*cmp_and): Likewise.
2188 (*cmp_ior): Likewise.
2189 (*ior_scc_scc): Likewise.
2190 (*ior_scc_scc_cmp): Likewise.
2191 (*and_scc_scc): Likewise.
2192 (*and_scc_scc_cmp): Likewise.
2193 (*and_scc_scc_nod): Likewise.
2194 (*negscc): Likewise.
2195 (movcond_addsi): Likewise.
2196 (movcond): Likewise.
2197 (*ifcompare_plus_move): Likewise.
2198 (*if_plus_move): Likewise.
2199 (*ifcompare_move_plus): Likewise.
2200 (*if_move_plus): Likewise.
2201 (*ifcompare_arith_arith): Likewise.
2202 (*if_arith_arith): Likewise.
2203 (*ifcompare_arith_move): Likewise.
2204 (*if_arith_move): Likewise.
2205 (*ifcompare_move_arith): Likewise.
2206 (*if_move_arith): Likewise.
2207 (*ifcompare_move_not): Likewise.
2208 (*if_move_not): Likewise.
2209 (*ifcompare_not_move): Likewise.
2210 (*if_not_move): Likewise.
2211 (*ifcompare_shift_move): Likewise.
2212 (*if_shift_move): Likewise.
2213 (*ifcompare_move_shift): Likewise.
2214 (*if_move_shift): Likewise.
2215 (*ifcompare_shift_shift): Likewise.
2216 (*ifcompare_not_arith): Likewise.
2217 (*ifcompare_arith_not): Likewise.
2218 (*if_arith_not): Likewise.
2219 (*ifcompare_neg_move): Likewise.
2220 (*if_neg_move): Likewise.
2221 (*ifcompare_move_neg): Likewise.
2222 (*if_move_neg): Likewise.
2223 (prologue_thumb1_interwork): Likewise.
2224 (*cond_move_not): Likewise.
2225 (*sign_extract_onebit): Likewise.
2226 (*not_signextract_onebit): Likewise.
2227 (stack_tie): Likewise.
2228 (align_4): Likewise.
2229 (align_8): Likewise.
2230 (consttable_end): Likewise.
2231 (consttable_1): Likewise.
2232 (consttable_2): Likewise.
2233 (consttable_4): Likewise.
2234 (consttable_8): Likewise.
2235 (consttable_16): Likewise.
2236 (*thumb1_tablejump): Likewise.
2237 (prefetch): Likewise.
2238 (force_register_use): Likewise.
2239 (thumb_eh_return): Likewise.
2240 (load_tp_hard): Likewise.
2241 (load_tp_soft): Likewise.
2242 (tlscall): Likewise.
2243 (*arm_movtas_ze): Likewise.
2244 (*arm_rev): Likewise.
2245 (*arm_revsh): Likewise.
2246 (*arm_rev16): Likewise.
2247 * config/arm/thumb2.md
2248 (*thumb2_smaxsi3): Likewise.
2249 (*thumb2_sminsi3): Likewise.
2250 (*thumb32_umaxsi3): Likewise.
2251 (*thumb2_uminsi3): Likewise.
2252 (*thumb2_negdi2): Likewise.
2253 (*thumb2_abssi2): Likewise.
2254 (*thumb2_neg_abss): Likewise.
2255 (*thumb2_movsi_insn): Likewise.
2256 (tls_load_dot_plus_four): Likewise.
2257 (*thumb2_movhi_insn): Likewise.
2258 (*thumb2_mov_scc): Likewise.
2259 (*thumb2_mov_negs): Likewise.
2260 (*thumb2_mov_negs): Likewise.
2261 (*thumb2_mov_nots): Likewise.
2262 (*thumb2_mov_nots): Likewise.
2263 (*thumb2_movsicc_): Likewise.
2264 (*thumb2_movsfcc_soft_insn): Likewise.
2265 (*thumb2_indirect_jump): Likewise.
2266 (*thumb2_and_scc): Likewise.
2267 (*thumb2_ior_scc): Likewise.
2268 (*thumb2_ior_scc_strict_it): Likewise.
2269 (*thumb2_cond_move): Likewise.
2270 (*thumb2_cond_arith): Likewise.
2271 (*thumb2_cond_ari): Likewise.
2272 (*thumb2_cond_sub): Likewise.
2273 (*thumb2_negscc): Likewise.
2274 (*thumb2_movcond): Likewise.
2275 (thumb2_casesi_internal): Likewise.
2276 (thumb2_casesi_internal_pic): Likewise.
2277 (*thumb2_alusi3_short): Likewise.
2278 (*thumb2_mov<mode>_shortim): Likewise.
2279 (*thumb2_addsi_short): Likewise.
2280 (*thumb2_subsi_short): Likewise.
2281 (thumb2_addsi3_compare0): Likewise.
2282 (*thumb2_cbz): Likewise.
2283 (*thumb2_cbnz): Likewise.
2284 (*thumb2_one_cmplsi2_short): Likewise.
2285 (*thumb2_negsi2_short): Likewise.
2286 (*orsi_notsi_si): Likewise.
2287 * config/arm/arm1020e.md: Update with new attributes.
2288 * config/arm/arm1026ejs.md: Update with new attributes.
2289 * config/arm/arm1136jfs.md: Update with new attributes.
2290 * config/arm/arm926ejs.md: Update with new attributes.
2291 * config/arm/cortex-a15.md: Update with new attributes.
2292 * config/arm/cortex-a5.md: Update with new attributes.
2293 * config/arm/cortex-a53.md: Update with new attributes.
2294 * config/arm/cortex-a7.md: Update with new attributes.
2295 * config/arm/cortex-a8.md: Update with new attributes.
2296 * config/arm/cortex-a9.md: Update with new attributes.
2297 * config/arm/cortex-m4.md: Update with new attributes.
2298 * config/arm/cortex-r4.md: Update with new attributes.
2299 * config/arm/fa526.md: Update with new attributes.
2300 * config/arm/fa606te.md: Update with new attributes.
2301 * config/arm/fa626te.md: Update with new attributes.
2302 * config/arm/fa726te.md: Update with new attributes.
2303
1c83b673
JG
23042013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
2305
2306 * config/aarch64/aarch64-simd.md
2307 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
2308 <vwx> iterator to ensure correct register choice.
2309 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
2310 (aarch64_sqdmull_n<mode>): Likewise.
2311 (aarch64_sqdmull2_n<mode>_internal): Likewise.
2312 * config/aarch64/arm_neon.h
2313 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
2314 (vml<as><q>_n_<su>16): Likewise.
2315 (vml<as>l_high_lane<q>_<su>16): Likewise.
2316 (vml<as>l_high_n_<su>16): Likewise.
2317 (vml<as>l_lane<q>_<su>16): Likewise.
2318 (vml<as>l_n_<su>16): Likewise.
2319 (vmul<q>_lane<q>_<su>16): Likewise.
2320 (vmul<q>_n_<su>16): Likewise.
2321 (vmull_lane<q>_<su>16): Likewise.
2322 (vmull_n_<su>16): Likewise.
2323 (vmull_high_lane<q>_<su>16): Likewise.
2324 (vmull_high_n_<su>16): Likewise.
2325 (vqrdmulh<q>_n_s16): Likewise.
2326
bb1ae543
TB
23272013-09-06 Tejas Belagod <tejas.belagod@arm.com>
2328
2329 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
2330 have the correct lane parameter.
2331
f23c0742
RB
23322013-09-06 Richard Biener <rguenther@suse.de>
2333
2334 * cfganal.c (control_dependences::~control_dependences):
2335 Properly free all of the vector.
2336
c1d49770
KY
23372013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
2338
2339 PR target/58269
2340 * config/i386/i386.c (ix86_conditional_register_usage):
2341 Proper initialize extended SSE registers.
2342
6da47f52
JH
23432013-09-06 Jan Hubicka <jh@suse.cz>
2344
2345 PR tree-optimization/58311
2346 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
2347
23482013-09-06 Jan Hubicka <jh@suse.cz>
2349
2350 * Makefile.in (tree-sra.o): Update dependencies.
2351 * tree-sra.c: Include ipa-utils.h
2352 (scan_function): Use recursive_call_p.
2353 (has_caller_p): New function.
2354 (cgraph_for_node_and_aliases): Count also callers of aliases.
2355
fc11f321
JH
23562013-09-06 Jan Hubicka <jh@suse.cz>
2357
2358 PR middle-end/58094
2359 * cgraph.h (symtab_semantically_equivalent_p): Declare.
2360 * tree-tailcall.c: Include ipa-utils.h.
2361 (find_tail_calls): Use it.
2362 * ipa-pure-const.c (check_call): Likewise.
2363 * ipa-utils.c (recursive_call_p): New function.
2364 * ipa-utils.h (recursive_call_p): Dclare.
2365 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
2366 (symtab_semantically_equivalent_p): New function.
2367 * Makefile.in (tree-tailcall.o): Update dependencies.
2368
9a6af450
EB
23692013-09-06 Eric Botcazou <ebotcazou@adacore.com>
2370
2371 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
2372 non-inlinable part.
2373
35f32ad4
RB
23742013-09-06 Richard Biener <rguenther@suse.de>
2375
2376 * lto-streamer.h (lto_global_var_decls): Remove.
2377 * Makefile.in (OBJS): Remove lto-symtab.o.
2378 (lto-symtab.o): Remove.
2379 (GTFILES): Remove lto-symtab.c
2380 * lto-symtab.c: Move to lto/
2381
d12a76f3
AK
23822013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2383
2384 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
2385 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
2386 (UNSPEC_FPINT_RINT): New constant definitions.
2387 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
2388 definition with 2 attributes.
2389 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
2390 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
2391 definitions.
2392
23932013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2394
f43245d1 2395 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
2396 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
2397 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
2398 attribute to "z196_alone".
2399 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
2400 "zEC12_simple".
2401
c8e9d8c3
RB
24022013-09-06 Richard Biener <rguenther@suse.de>
2403
2404 * basic-block.h (class control_dependences): New.
2405 * tree-ssa-dce.c (control_dependence_map): Remove.
2406 (cd): New global.
2407 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
2408 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
2409 find_pdom, find_control_dependence, find_all_control_dependences):
2410 Move to cfganal.c.
f43245d1
UB
2411 (mark_control_dependent_edges_necessary,
2412 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
2413 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
2414 * cfganal.c (set_control_dependence_map_bit,
2415 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
2416 find_all_control_dependences): Move from tree-ssa-dce.c and
2417 implement as methods of control_dependences class.
2418 (control_dependences::control_dependences): New.
2419 (control_dependences::~control_dependences): Likewise.
2420 (control_dependences::get_edges_dependent_on): Likewise.
2421 (control_dependences::get_edge): Likewise.
2422
7d2ba471
JH
24232013-09-04 Jan Hubicka <jh@suse.cz>
2424
2425 * tree.c (types_same_for_odr): Drop overactive check.
2426 * ipa-devirt.c (hash_type_name): Likewise.
2427
e18412fc
JH
24282013-09-04 Jan Hubicka <jh@suse.cz>
2429
2430 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
2431 (analyze_functions): ... here.
2432
d352b245
JH
24332013-09-04 Jan Hubicka <jh@suse.cz>
2434
2435 PR middle-end/58201
2436 * cgraphunit.c (analyze_functions): Clear AUX fields
2437 after processing; initialize assembler name has.
2438
770da076
JL
24392013-09-05 Jeff Law <law@redhat.com>
2440
2441 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
2442 from thread_around_empty_block. Record threading path into PATH.
2443 Recurse if threading through the initial block is successful.
2444 (thread_across_edge): Corresponding changes to slightly simplify.
2445
fe6f68e2
JG
24462013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
2447
2448 * config/aarch64/aarch64.md
2449 (type): Remove frecpe, frecps, frecpx.
2450 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
2451 fix to be a TARGET_SIMD instruction.
2452 (aarch64_frecps): Remove.
2453 * config/aarch64/aarch64-simd.md
2454 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
2455 (aarch64_frecps<mode>): Handle all float/vector of float modes.
2456
6e4150e1
JG
24572013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
2458 Sofiane Naci <sofiane.naci@arm.com>
2459
f43245d1 2460 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 2461 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
2462 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
2463 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
2464 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
2465 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
2466 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
2467 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
2468 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 2469 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 2470 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
2471 shift* types.
2472 * config/arm/arm-fixed.md: Update for attribute changes
2473 all occurrences of arlo_* types.
2474 * config/arm/thumb2.md: Update for attribute changes all occurrences
2475 of arlo_* types.
2476 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
2477 (cortexa7_older_only): Likewise.
2478 (cortexa7_younger): Likewise.
2479 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
2480 (1020alu_shift_op): Likewise.
2481 (1020alu_shift_reg_op): Likewise.
2482 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
2483 (alu_shift_op): Likewise.
2484 (alu_shift_reg_op): Likewise.
f43245d1 2485 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
2486 (11_alu_shift_op): Likewise.
2487 (11_alu_shift_reg_op): Likewise.
2488 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
2489 (9_alu_shift_reg_op): Likewise.
2490 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
2491 attribute changes.
2492 (cortex_a15_alu_shift): Likewise.
2493 (cortex_a15_alu_shift_reg): Likewise.
2494 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
2495 attribute changes.
2496 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
2497 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
2498 attribute changes.
6e4150e1 2499 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
2500 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
2501 attribute changes.
6e4150e1
JG
2502 (cortex_a7_alu_reg): Likewise.
2503 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
2504 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
2505 attribute changes.
6e4150e1
JG
2506 (cortex_a8_alu_shift): Likewise.
2507 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 2508 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 2509 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
2510 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
2511 attribute changes.
6e4150e1
JG
2512 * config/arm/cortex-r4.md
2513 (cortex_r4_alu): Update for attribute changes.
2514 (cortex_r4_mov): Likewise.
2515 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 2516 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 2517 (526_alu_shift_op): Likewise.
f43245d1
UB
2518 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
2519 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 2520 (626te_alu_shift_op): Likewise.
f43245d1 2521 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
2522 (726te_alu_shift_op): Likewise.
2523 (726te_alu_shift_reg_op): Likewise.
2524 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
2525 (mp626_alu_shift_op): Likewise.
2526 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
2527 (pj4_alu_conds): Likewise.
2528 (pj4_shift): Likewise.
2529 (pj4_shift_conds): Likewise.
2530 (pj4_alu_shift): Likewise.
2531 (pj4_alu_shift_conds): Likewise.
2532 * config/aarch64/aarch64.md: Update for attribute change
2533 all occurrences of arlo_* and shift* types.
2534
e6523306
MS
25352013-09-05 Mike Stump <mikestump@comcast.net>
2536
2537 * tree.h: Move documentation for tree_function_decl to tree-core.h
2538 with the declaration.
2539
80a18161
PB
25402013-09-05 Peter Bergner <bergner@vnet.ibm.com>
2541
2542 PR target/58139
2543 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
2544 looking for widest mode.
2545
6994430a
EB
25462013-09-05 Eric Botcazou <ebotcazou@adacore.com>
2547
2548 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
2549
e67f39f7
RB
25502013-09-05 Richard Biener <rguenther@suse.de>
2551
2552 PR tree-optimization/58137
2553 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
2554 Do not create vectors of pointers.
2555 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
2556 types for the components of the vector initializer.
2557 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
2558 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
2559
568cda29
MJ
25602013-09-05 Martin Jambor <mjambor@suse.cz>
2561
2562 * ipa-prop.c (remove_described_reference): Accept missing references,
2563 return false if that hppens, otherwise return true.
2564 (cgraph_node_for_jfunc): New function.
2565 (try_decrement_rdesc_refcount): Likewise.
2566 (try_make_edge_direct_simple_call): Use them.
2567 (ipa_edge_removal_hook): Remove references from rdescs.
2568 (ipa_edge_duplication_hook): Clone rdescs and their references
2569 when the new edge has the same caller as the old one.
2570 * cgraph.c (cgraph_resolve_speculation): Remove speculative
2571 reference before removing any edges.
2572
5a200acb
RE
25732013-09-05 Richard Earnshaw <rearnsha@arm.com>
2574
2575 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
2576 initial store.
2577 * thumb2.md (thumb2_storewb_parisi): New pattern.
2578
5922847b
YZ
25792013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
2580
2581 * config/aarch64/aarch64-option-extensions.def: Add
2582 AARCH64_OPT_EXTENSION of 'crc'.
2583 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
2584 (AARCH64_ISA_CRC): Ditto.
2585 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
2586 description of the CRC extension.
2587
996746aa
AI
25882013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
2589
2590 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
2591 * config/rs6000/linux.h: Ditto.
2592 * alpha/linux.h: Ditto.
2593 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
2594 no_c99_libc_has_function.
2595 * config/c6x/uclinux-elf.h: Ditto.
2596 * config/lm32/uclinux-elf.h: Ditto.
2597 * config/m68k/uclinux.h: Ditto.
2598 * config/moxie/uclinux.h: Ditto.
2599 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
2600 (crisv32-*-linux*, cris-*-linux*): Ditto.
2601 * config/bfin/bfin.c: Include "tm_p.h".
2602
c370d99f
RB
26032013-09-05 Richard Biener <rguenther@suse.de>
2604
2605 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
2606 check for a definition without a basic-block.
2607
003bb7f3
JG
26082013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
2609 Sofiane Naci <sofiane.naci@arm.com>
2610
2611 * config/aarch64/aarch64.md
2612 (*movti_aarch64): Rename r_2_f and f_2_r.
2613 (*movsf_aarch64): Likewise.
2614 (*movdf_aarch64): Likewise.
2615 (*movtf_aarch64): Likewise.
2616 (aarch64_movdi_<mode>low): Likewise.
2617 (aarch64_movdi_<mode>high): Likewise.
2618 (aarch64_mov<mode>high_di): Likewise.
2619 (aarch64_mov<mode>low_di): Likewise.
2620 (aarch64_movtilow_tilow): Likewise.
2621 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
2622 values to config/arm/types.md
2623 (attribute "conds"): Update for attribute change.
2624 (anddi3_insn): Likewise.
2625 (iordi3_insn): Likewise.
2626 (xordi3_insn): Likewise.
2627 (one_cmpldi2): Likewise.
2628 * config/arm/types.md (type): Add Neon types.
2629 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
2630 use "type" attribute.
2631 (movmisalign<mode>_neon_store): Likewise.
2632 (movmisalign<mode>_neon_load): Likewise.
2633 (vec_set<mode>_internal): Likewise.
2634 (vec_setv2di_internal): Likewise.
2635 (vec_extract<mode>): Likewise.
2636 (vec_extractv2di): Likewise.
2637 (add<mode>3_neon): Likewise.
2638 (adddi3_neon): Likewise.
2639 (sub<mode>3_neon): Likewise.
2640 (subdi3_neon): Likewise.
2641 (mul<mode>3_neon): Likewise.
2642 (mul<mode>3add<mode>_neon): Likewise.
2643 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
2644 (fma<VCVTF:mode>4)): Likewise.
2645 (fma<VCVTF:mode>4_intrinsic): Likewise.
2646 (fmsub<VCVTF:mode>4)): Likewise.
2647 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
2648 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
2649 (ior<mode>3): Likewise.
2650 (and<mode>3): Likewise.
2651 (anddi3_neon): Likewise.
2652 (orn<mode>3_neon): Likewise.
2653 (orndi3_neon): Likewise.
2654 (bic<mode>3_neon): Likewise.
2655 (bicdi3_neon): Likewise.
2656 (xor<mode>3): Likewise.
2657 (one_cmpl<mode>2): Likewise.
2658 (abs<mode>2): Likewise.
2659 (neg<mode>2): Likewise.
2660 (umin<mode>3_neon): Likewise.
2661 (umax<mode>3_neon): Likewise.
2662 (smin<mode>3_neon): Likewise.
2663 (smax<mode>3_neon): Likewise.
2664 (vashl<mode>3): Likewise.
2665 (vashr<mode>3_imm): Likewise.
2666 (vlshr<mode>3_imm): Likewise.
2667 (ashl<mode>3_signed): Likewise.
2668 (ashl<mode>3_unsigned): Likewise.
2669 (neon_load_count): Likewise.
2670 (ashldi3_neon_noclobber): Likewise.
2671 (signed_shift_di3_neon): Likewise.
2672 (unsigned_shift_di3_neon): Likewise.
2673 (ashrdi3_neon_imm_noclobber): Likewise.
2674 (lshrdi3_neon_imm_noclobber): Likewise.
2675 (widen_ssum<mode>3): Likewise.
2676 (widen_usum<mode>3): Likewise.
2677 (quad_halves_<code>v4si): Likewise.
2678 (quad_halves_<code>v4sf): Likewise.
2679 (quad_halves_<code>v8hi): Likewise.
2680 (quad_halves_<code>v16qi): Likewise.
2681 (reduc_splus_v2di): Likewise.
2682 (neon_vpadd_internal<mode>): Likewise.
2683 (neon_vpsmin<mode>): Likewise.
2684 (neon_vpsmax<mode>): Likewise.
2685 (neon_vpumin<mode>): Likewise.
2686 (neon_vpumax<mode>): Likewise.
2687 (ss_add<mode>_neon): Likewise.
2688 (us_add<mode>_neon): Likewise.
2689 (ss_sub<mode>_neon): Likewise.
2690 (us_sub<mode>_neon): Likewise.
2691 (neon_vadd<mode>_unspec): Likewise.
2692 (neon_vaddl<mode>): Likewise.
2693 (neon_vaddw<mode>): Likewise.
2694 (neon_vhadd<mode>): Likewise.
2695 (neon_vqadd<mode>): Likewise.
2696 (neon_vaddhn<mode>): Likewise.
2697 (neon_vmul<mode>): Likewise.
2698 (neon_vmla<mode>): Likewise.
2699 (neon_vmlal<mode>): Likewise.
2700 (neon_vmls<mode>): Likewise.
2701 (neon_vmlsl<mode>): Likewise.
2702 (neon_vqdmulh<mode>): Likewise.
2703 (neon_vqdmlal<mode>): Likewise.
2704 (neon_vqdmlsl<mode>): Likewise.
2705 (neon_vmull<mode>): Likewise.
2706 (neon_vqdmull<mode>): Likewise.
2707 (neon_vsub<mode>_unspec): Likewise.
2708 (neon_vsubl<mode>): Likewise.
2709 (neon_vsubw<mode>): Likewise.
2710 (neon_vqsub<mode>): Likewise.
2711 (neon_vhsub<mode>): Likewise.
2712 (neon_vsubhn<mode>): Likewise.
2713 (neon_vceq<mode>): Likewise.
2714 (neon_vcge<mode>): Likewise.
2715 (neon_vcgeu<mode>): Likewise.
2716 (neon_vcgt<mode>): Likewise.
2717 (neon_vcgtu<mode>): Likewise.
2718 (neon_vcle<mode>): Likewise.
2719 (neon_vclt<mode>): Likewise.
2720 (neon_vcage<mode>): Likewise.
2721 (neon_vcagt<mode>): Likewise.
2722 (neon_vtst<mode>): Likewise.
2723 (neon_vabd<mode>): Likewise.
2724 (neon_vabdl<mode>): Likewise.
2725 (neon_vaba<mode>): Likewise.
2726 (neon_vabal<mode>): Likewise.
2727 (neon_vmax<mode>): Likewise.
2728 (neon_vmin<mode>): Likewise.
2729 (neon_vpaddl<mode>): Likewise.
2730 (neon_vpadal<mode>): Likewise.
2731 (neon_vpmax<mode>): Likewise.
2732 (neon_vpmin<mode>): Likewise.
2733 (neon_vrecps<mode>): Likewise.
2734 (neon_vrsqrts<mode>): Likewise.
2735 (neon_vqabs<mode>): Likewise.
2736 (neon_vqneg<mode>): Likewise.
2737 (neon_vcls<mode>): Likewise.
2738 (clz<mode>2): Likewise.
2739 (popcount<mode>2): Likewise.
2740 (neon_vrecpe): Likewise.
2741 (neon_vrsqrte): Likewise.
2742 (neon_vget_lane<mode>_sext_internal): Likewise.
2743 (neon_vget_lane<mode>_zext_internal): Likewise.
2744 (neon_vdup_n<mode>): Likewise.
2745 (neon_vdup_nv2di): Likewise.
2746 (neon_vdpu_lane<mode>_internal): Likewise.
2747 (neon_vswp<mode>): Likewise.
2748 (float<mode><V_cvtto>2): Likewise.
2749 (floatuns<mode><V_cvtto>2): Likewise.
2750 (fix_trunc<mode><V_cvtto>)2): Likewise
2751 (fixuns_trunc<mode><V_cvtto)2): Likewise.
2752 (neon_vcvt<mode>): Likewise.
2753 (neon_vcvtv4sfv4hf): Likewise.
2754 (neon_vcvtv4hfv4sf): Likewise.
2755 (neon_vcvt_n<mode>): Likewise.
2756 (neon_vmovn<mode>): Likewise.
2757 (neon_vqmovn<mode>): Likewise.
2758 (neon_vqmovun<mode>): Likewise.
2759 (neon_vmovl<mode>): Likewise.
2760 (neon_vmul_lane<mode>): Likewise.
2761 (neon_vmull_lane<mode>): Likewise.
2762 (neon_vqdmull_lane<mode>): Likewise.
2763 (neon_vqdmulh_lane<mode>): Likewise.
2764 (neon_vmla_lane<mode>): Likewise.
2765 (neon_vmlal_lane<mode>): Likewise.
2766 (neon_vqdmlal_lane<mode>): Likewise.
2767 (neon_vmls_lane<mode>): Likewise.
2768 (neon_vmlsl_lane<mode>): Likewise.
2769 (neon_vqdmlsl_lane<mode>): Likewise.
2770 (neon_vext<mode>): Likewise.
2771 (neon_vrev64<mode>): Likewise.
2772 (neon_vrev32<mode>): Likewise.
2773 (neon_vrev16<mode>): Likewise.
2774 (neon_vbsl<mode>_internal): Likewise.
2775 (neon_vshl<mode>): Likewise.
2776 (neon_vqshl<mode>): Likewise.
2777 (neon_vshr_n<mode>): Likewise.
2778 (neon_vshrn_n<mode>): Likewise.
2779 (neon_vqshrn_n<mode>): Likewise.
2780 (neon_vqshrun_n<mode>): Likewise.
2781 (neon_vshl_n<mode>): Likewise.
2782 (neon_vqshl_n<mode>): Likewise.
2783 (neon_vqshlu_n<mode>): Likewise.
2784 (neon_vshll_n<mode>): Likewise.
2785 (neon_vsra_n<mode>): Likewise.
2786 (neon_vsri_n<mode>): Likewise.
2787 (neon_vsli_n<mode>): Likewise.
2788 (neon_vtbl1v8qi): Likewise.
2789 (neon_vtbl2v8qi): Likewise.
2790 (neon_vtbl3v8qi): Likewise.
2791 (neon_vtbl4v8qi): Likewise.
2792 (neon_vtbx1v8qi): Likewise.
2793 (neon_vtbx2v8qi): Likewise.
2794 (neon_vtbx3v8qi): Likewise.
2795 (neon_vtbx4v8qi): Likewise.
2796 (neon_vtrn<mode>_internal): Likewise.
2797 (neon_vzip<mode>_internal): Likewise.
2798 (neon_vuzp<mode>_internal): Likewise.
2799 (neon_vld1<mode>): Likewise.
2800 (neon_vld1_lane<mode>): Likewise.
2801 (neon_vld1_dup<mode>): Likewise.
2802 (neon_vld1_dupv2di): Likewise.
2803 (neon_vst1<mode>): Likewise.
2804 (neon_vst1_lane<mode>): Likewise.
2805 (neon_vld2<mode>): Likewise.
2806 (neon_vld2_lane<mode>): Likewise.
2807 (neon_vld2_dup<mode>): Likewise.
2808 (neon_vst2<mode>): Likewise.
2809 (neon_vst2_lane<mode>): Likewise.
2810 (neon_vld3<mode>): Likewise.
2811 (neon_vld3qa<mode>): Likewise.
2812 (neon_vld3qb<mode>): Likewise.
2813 (neon_vld3_lane<mode>): Likewise.
2814 (neon_vld3_dup<mode>): Likewise.
2815 (neon_vst3<mode>): Likewise.
2816 (neon_vst3qa<mode>): Likewise.
2817 (neon_vst3qb<mode>): Likewise.
2818 (neon_vst3_lane<mode>): Likewise.
2819 (neon_vld4<mode>): Likewise.
2820 (neon_vld4qa<mode>): Likewise.
2821 (neon_vld4qb<mode>): Likewise.
2822 (neon_vld4_lane<mode>): Likewise.
2823 (neon_vld4_dup<mode>): Likewise.
2824 (neon_vst4<mode>): Likewise.
2825 (neon_vst4qa<mode>): Likewise.
2826 (neon_vst4qb<mode>): Likewise.
2827 (neon_vst4_lane<mode>): Likewise.
2828 (neon_vec_unpack<US>_lo_<mode>): Likewise.
2829 (neon_vec_unpack<US>_hi_<mode>): Likewise.
2830 (neon_vec_<US>mult_lo_<mode>): Likewise.
2831 (neon_vec_<US>mult_hi_<mode>): Likewise.
2832 (neon_vec_<US>shiftl_<mode>): Likewise.
2833 (neon_unpack<US>_<mode>): Likewise.
2834 (neon_vec_<US>mult_<mode>): Likewise.
2835 (vec_pack_trunc_<mode>): Likewise.
2836 (neon_vec_pack_trunk_<mode>): Likewise.
2837 (neon_vabd<mode>_2): Likewise.
2838 (neon_vabd<mode>_3): Likewise.
2839 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
2840 (thumb2_movsi_vfp): Likewise.
2841 (movdi_vfp): Likewise.
2842 (movdi_vfp_cortexa8): Likewise.
2843 (movhf_vfp_neon): Likewise.
2844 (movhf_vfp): Likewiwse.
2845 (movsf_vfp): Likewiwse.
2846 (thumb2_movsf_vfp): Likewiwse.
2847 (movdf_vfp): Likewise.
2848 (thumb2_movdf_vfp): Likewise.
2849 (movsfcc_vfp): Likewise.
2850 (thumb2_movsfcc_vfp): Likewise.
2851 (movdfcc_vfp): Likewise.
2852 (thumb2_movdfcc_vfp): Likewise.
2853 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
2854 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
2855 (v10_v2c): Likewise.
2856 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
2857 attribute change.
2858 (cortex_a15_neon_int_2): Likewise.
2859 (cortex_a15_neon_int_3): Likewise.
2860 (cortex_a15_neon_int_4): Likewise.
2861 (cortex_a15_neon_int_5): Likewise.
2862 (cortex_a15_neon_vqneg_vqabs): Likewise.
2863 (cortex_a15_neon_vmov): Likewise.
2864 (cortex_a15_neon_vaba): Likewise.
2865 (cortex_a15_neon_vaba_qqq): Likewise.
2866 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2867 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
2868 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
2869 scalar_64_32_long_scalar): Likewise.
2870 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2871 (cortex_a15_neon_mla_qqq_8_16): Likewise.
2872 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
2873 lotype_qdd_64_32_long): Likewise.
2874 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
2875 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
2876 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
2877 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
2878 (cortex_a15_neon_shift_1): Likewise.
2879 (cortex_a15_neon_shift_2): Likewise.
2880 (cortex_a15_neon_shift_3): Likewise.
2881 (cortex_a15_neon_vshl_ddd): Likewise.
2882 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
2883 (cortex_a15_neon_vsra_vrsra): Likewise.
2884 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
2885 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
2886 (cortex_a15_neon_fp_vmul_ddd): Likewise.
2887 (cortex_a15_neon_fp_vmul_qqd): Likewise.
2888 (cortex_a15_neon_fp_vmla_ddd): Likewise.
2889 (cortex_a15_neon_fp_vmla_qqq): Likewise.
2890 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
2891 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
2892 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
2893 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
2894 (cortex_a15_neon_bp_simple): Likewise.
2895 (cortex_a15_neon_bp_2cycle): Likewise.
2896 (cortex_a15_neon_bp_3cycle): Likewise.
2897 (cortex_a15_neon_vld1_1_2_regs): Likewise.
2898 (cortex_a15_neon_vld1_3_4_regs): Likewise.
2899 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
2900 (cortex_a15_neon_vld2_4_regs): Likewise.
2901 (cortex_a15_neon_vld3_vld4): Likewise.
2902 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
2903 (cortex_a15_neon_vst1_3_4_regs): Likewise.
2904 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
2905 (cortex_a15_neon_vst3_vst4): Likewise.
2906 (cortex_a15_neon_vld1_vld2_lane): Likewise.
2907 (cortex_a15_neon_vld3_vld4_lane" 10
2908 (cortex_a15_neon_vst1_vst2_lane): Likewise.
2909 (cortex_a15_neon_vst3_vst4_lane): Likewise.
2910 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
2911 (cortex_a15_neon_ldm_2): Likewise.0
2912 (cortex_a15_neon_stm_2): Likewise.
2913 (cortex_a15_neon_mcr): Likewise.
2914 (cortex_a15_neon_mcr_2_mcrr): Likewise.
2915 (cortex_a15_neon_mrc): Likewise.
2916 (cortex_a15_neon_mrrc): Likewise.
2917 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
2918 change.
2919 (cortex_a15_alu_shift): Likewise.
2920 (cortex_a15_alu_shift_reg): Likewise.
2921 (cortex_a15_mult32): Likewise.
2922 (cortex_a15_mult64): Likewise.
2923 (cortex_a15_block): Likewise.
2924 (cortex_a15_branch): Likewise.
2925 (cortex_a15_load1): Likewise.
2926 (cortex_a15_load3): Likewise.
2927 (cortex_a15_store1): Likewise.
2928 (cortex_a15_store3): Likewise.
2929 (cortex_a15_call): Likewise.
f43245d1 2930 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
2931 (cortex_a5_f2r): Likewise.
2932 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
2933 change.
2934 (cortex_a53_f2r): Likewise.
2935 * config/arm/cortex-a7.md
2936 (cortex_a7_branch): Update for attribute change.
2937 (cortex_a7_call): Likewise.
2938 (cortex_a7_alu_imm): Likewise.
2939 (cortex_a7_alu_reg): Likewise.
2940 (cortex_a7_alu_shift): Likewise.
2941 (cortex_a7_mul): Likewise.
2942 (cortex_a7_load1): Likewise.
2943 (cortex_a7_store1): Likewise.
2944 (cortex_a7_load2): Likewise.
2945 (cortex_a7_store2): Likewise.
2946 (cortex_a7_load3): Likewise.
2947 (cortex_a7_store3): Likewise.
2948 (cortex_a7_load4): Likewise.
2949 (cortex_a7_store4): Likewise.
2950 (cortex_a7_fpalu): Likewise.
2951 (cortex_a7_fconst): Likewise.
2952 (cortex_a7_fpmuls): Likewise.
2953 (cortex_a7_neon_mul): Likewise.
2954 (cortex_a7_fpmacs): Likewise.
2955 (cortex_a7_neon_mla: Likewise.
2956 (cortex_a7_fpmuld: Likewise.
2957 (cortex_a7_fpmacd: Likewise.
2958 (cortex_a7_fpfmad: Likewise.
2959 (cortex_a7_fdivs: Likewise.
2960 (cortex_a7_fdivd: Likewise.
2961 (cortex_a7_r2f: Likewise.
2962 (cortex_a7_f2r: Likewise.
2963 (cortex_a7_f_flags: Likewise.
2964 (cortex_a7_f_loads: Likewise.
2965 (cortex_a7_f_loadd: Likewise.
2966 (cortex_a7_f_stores: Likewise.
2967 (cortex_a7_f_stored: Likewise.
2968 (cortex_a7_neon): Likewise.
2969 * config/arm/cortex-a8-neon.md
2970 (cortex_a8_neon_mrc): Update for attribute change.
2971 (cortex_a8_neon_mrrc): Likewise.
2972 (cortex_a8_neon_int_1): Likewise.
2973 (cortex_a8_neon_int_2): Likewise.
2974 (cortex_a8_neon_int_3): Likewise.
2975 (cortex_a8_neon_int_4): Likewise.
2976 (cortex_a8_neon_int_5): Likewise.
2977 (cortex_a8_neon_vqneg_vqabs): Likewise.
2978 (cortex_a8_neon_vmov): Likewise.
2979 (cortex_a8_neon_vaba): Likewise.
2980 (cortex_a8_neon_vaba_qqq): Likewise.
2981 (cortex_a8_neon_vsma): Likewise.
2982 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2983 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
2984 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
2985 long_scalar): Likewise.
003bb7f3
JG
2986 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2987 (cortex_a8_neon_mla_qqq_8_16): Likewise.
2988 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
2989 long_scalar_qdd_64_32_long): Likewise.
2990 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
2991 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
2992 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
2993 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
2994 (cortex_a8_neon_shift_1): Likewise.
2995 (cortex_a8_neon_shift_2): Likewise.
2996 (cortex_a8_neon_shift_3): Likewise.
2997 (cortex_a8_neon_vshl_ddd): Likewise.
2998 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
2999 (cortex_a8_neon_vsra_vrsra): Likewise.
3000 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
3001 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
3002 (cortex_a8_neon_fp_vsum): Likewise.
3003 (cortex_a8_neon_fp_vmul_ddd): Likewise.
3004 (cortex_a8_neon_fp_vmul_qqd): Likewise.
3005 (cortex_a8_neon_fp_vmla_ddd): Likewise.
3006 (cortex_a8_neon_fp_vmla_qqq): Likewise.
3007 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
3008 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
3009 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
3010 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
3011 (cortex_a8_neon_bp_simple): Likewise.
3012 (cortex_a8_neon_bp_2cycle): Likewise.
3013 (cortex_a8_neon_bp_3cycle): Likewise.
3014 (cortex_a8_neon_ldr): Likewise.
3015 (cortex_a8_neon_str): Likewise.
3016 (cortex_a8_neon_vld1_1_2_regs): Likewise.
3017 (cortex_a8_neon_vld1_3_4_regs): Likewise.
3018 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
3019 (cortex_a8_neon_vld2_4_regs): Likewise.
3020 (cortex_a8_neon_vld3_vld4): Likewise.
3021 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
3022 (cortex_a8_neon_vst1_3_4_regs): Likewise.
3023 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
3024 (cortex_a8_neon_vst3_vst4): Likewise.
3025 (cortex_a8_neon_vld1_vld2_lane): Likewise.
3026 (cortex_a8_neon_vld3_vld4_lane): Likewise.
3027 (cortex_a8_neon_vst1_vst2_lane): Likewise.
3028 (cortex_a8_neon_vst3_vst4_lane): Likewise.
3029 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
3030 (cortex_a8_neon_mcr): Likewise.
3031 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 3032 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
3033 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
3034 change.
3035 (ca9_neon_mrrc): Likewise.
3036 (cortex_a9_neon_int_1): Likewise.
3037 (cortex_a9_neon_int_2): Likewise.
3038 (cortex_a9_neon_int_3): Likewise.
3039 (cortex_a9_neon_int_4): Likewise.
3040 (cortex_a9_neon_int_5): Likewise.
3041 (cortex_a9_neon_vqneg_vqabs): Likewise.
3042 (cortex_a9_neon_vmov): Likewise.
3043 (cortex_a9_neon_vaba): Likewise.
3044 (cortex_a9_neon_vaba_qqq): Likewise.
3045 (cortex_a9_neon_vsma): Likewise.
3046 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
3047 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
3048 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
3049 long_scalar): Likewise.
003bb7f3
JG
3050 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
3051 (cortex_a9_neon_mla_qqq_8_16): Likewise.
3052 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
3053 long_scalar_qdd_64_32_long): Likewise.
3054 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
3055 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
3056 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
3057 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
3058 (cortex_a9_neon_shift_1): Likewise.
3059 (cortex_a9_neon_shift_2): Likewise.
3060 (cortex_a9_neon_shift_3): Likewise.
3061 (cortex_a9_neon_vshl_ddd): Likewise.
3062 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
3063 (cortex_a9_neon_vsra_vrsra): Likewise.
3064 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
3065 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
3066 (cortex_a9_neon_fp_vsum): Likewise.
3067 (cortex_a9_neon_fp_vmul_ddd): Likewise.
3068 (cortex_a9_neon_fp_vmul_qqd): Likewise.
3069 (cortex_a9_neon_fp_vmla_ddd): Likewise.
3070 (cortex_a9_neon_fp_vmla_qqq): Likewise.
3071 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
3072 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
3073 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
3074 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
3075 (cortex_a9_neon_bp_simple): Likewise.
3076 (cortex_a9_neon_bp_2cycle): Likewise.
3077 (cortex_a9_neon_bp_3cycle): Likewise.
3078 (cortex_a9_neon_ldr): Likewise.
3079 (cortex_a9_neon_str): Likewise.
3080 (cortex_a9_neon_vld1_1_2_regs): Likewise.
3081 (cortex_a9_neon_vld1_3_4_regs): Likewise.
3082 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
3083 (cortex_a9_neon_vld2_4_regs): Likewise.
3084 (cortex_a9_neon_vld3_vld4): Likewise.
3085 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
3086 (cortex_a9_neon_vst1_3_4_regs): Likewise.
3087 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
3088 (cortex_a9_neon_vst3_vst4): Likewise.
3089 (cortex_a9_neon_vld1_vld2_lane): Likewise.
3090 (cortex_a9_neon_vld3_vld4_lane): Likewise.
3091 (cortex_a9_neon_vst1_vst2_lane): Likewise.
3092 (cortex_a9_neon_vst3_vst4_lane): Likewise.
3093 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
3094 (cortex_a9_neon_mcr): Likewise.
3095 (cortex_a9_neon_mcr_2_mcrr): Likewise.
3096 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
3097 (cortex_a9_fps): Likewise.
3098 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
3099 change.
3100 (cortex_m4_fmuls): Likewise.
3101 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
3102 change.
3103 (cortex_r4_mrc): Likewise.
3104 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 3105 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 3106 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
3107 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
3108 attribute change.
003bb7f3
JG
3109 (pj4_core_to_vfp): Likewise.
3110 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
3111 attribute change.
3112 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
3113 (vfp_fstore): Likewise.
3114 * doc/md.texi: Change references to neon_type to refer to type.
3115
fbe0dc78
DS
31162013-09-04 Dodji Seketeli <dodji@redhat.com>
3117
3118 * tree.h (DECL_BUILT_IN): Fix typo in comment.
3119
c167bc5b
DE
31202013-09-04 David Edelsohn <dje.gcc@gmail.com>
3121
3122 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
3123 lglobl if not weak.
3124
035cb59f
ER
31252013-09-04 Easwaran Raman <eraman@google.com>
3126
3127 PR middle-end/57370
3128 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
3129 (build_and_add_sum): Use it.
3130 (appears_later_in_bb): Simplify code.
3131
71191083
TJ
31322013-09-04 Teresa Johnson <tejohnson@google.com>
3133
3134 * dumpfile.c (dump_finish): Don't close stderr/stdout.
3135
0c488213
JG
31362013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
3137
3138 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
3139
61a74079
JH
31402013-09-04 Jan Hubicka <jh@suse.cz>
3141
3142 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
3143 * ipa-devirt.c: Include diganostic.h
3144 (odr_type_d): Add types and types_set.
3145 (hash_type_name): Work for types with vtables during LTO.
3146 (odr_hasher::remove): Fix comment; destroy types_set.
3147 (add_type_duplicate): New function,
3148 (get_odr_type): Use it.
3149 (dump_type_inheritance_graph): Dump type duplicates.
3150 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
3151 graph.
3152 * tree.c (types_same_for_odr): Give exact answers on types with
3153 virtual tables.
3154
24ba8195
DS
31552013-09-04 Dodji Seketeli <dodji@redhat.com>
3156
3157 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
3158 explaining their differences.
3159
0a04869e
SKS
31602013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
3161
3162 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
3163
3b18bc42
JL
31642013-09-03 Jeff Law <law@redhat.com>
3165
3166 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
3167 when not threading through a joiner block. Pass joiner/no joiner
3168 state to register_jump_thread.
3169 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
3170 state from argument rather than implying on path length.
3171 Dump the entire jump thread path into debugging dump.
3172 * tree-flow.h (register_jump_thread): Update prototype.
3173
ae84e151
XDL
31742013-08-29 Xinliang David Li <davidxl@google.com>
3175
3176 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
3177 Remove a trivial gcc_assert.
3178
c716e67f
XDL
31792013-08-29 Xinliang David Li <davidxl@google.com>
3180
3181 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
3182 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
3183 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
3184 Delay base decl alignment adjustment.
3185 * tree-vectorizer.c (vect_destroy_datarefs): New function.
3186 * tree-vectorizer.h: New data structure.
3187 (set_dr_misalignment): New function.
3188 (dr_misalignment): Ditto.
3189 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
3190 (vectorizable_load): Ditto.
3191 (ensure_base_align): New function.
3192 (vectorize_loops): Add dbg_cnt support.
3193 (execute_vect_slp): Ditto.
3194 * dbgcnt.def: New debug counter.
3195 * Makefile: New dependency.
3196
db8800bc
MI
31972013-09-03 Meador Inge <meadori@codesourcery.com>
3198
3199 Revert:
3200
3201 2013-08-30 Meador Inge <meadori@codesourcery.com>
3202
3203 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
3204
0d9b4f5c
DE
32052013-09-03 David Edelsohn <dje.gcc@gmail.com>
3206
3207 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
3208 function descriptor.
3209
29e810b9
RB
32102013-09-03 Richard Biener <rguenther@suse.de>
3211
3212 * tree-affine.c (add_elt_to_tree): Fix association issue,
3213 avoid useless converts and make sure to always return a
3214 properly typed result.
3215
dbfc2894
RB
32162013-09-03 Richard Biener <rguenther@suse.de>
3217
3218 PR middle-end/57656
3219 * fold-const.c (negate_expr_p): Fix division case.
3220 (negate_expr): Likewise.
3221
fa3bf4ce
RB
32222013-09-03 Richard Biener <rguenther@suse.de>
3223
3224 PR lto/58285
3225 * tree-streamer-out.c: Include tm.h.
3226 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
3227
a64bbb3f
JH
32282013-09-03 Jan Hubicka <jh@suse.cz>
3229
3230 * tree-profile.c (tree_profiling): Cleanup CFG when done.
3231
93ed07e2
AM
32322013-09-03 Alan Modra <amodra@gmail.com>
3233
3234 * config.gcc (powerpc*-*-linux*): Add support for little-endian
3235 multilibs to big-endian target and vice versa.
3236 * config/rs6000/t-linux64: Use := assignment on all vars.
3237 (MULTILIB_EXTRA_OPTS): Remove fPIC.
3238 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
3239 * config/rs6000/t-linux64le: New file.
3240 * config/rs6000/t-linux64bele: New file.
3241 * config/rs6000/t-linux64lebe: New file.
3242
07d6cd64
JH
32432013-09-02 Jan Hubicka <jh@suse.cz>
3244
3245 * ipa-inline-transform.c (inline_transform): Do not
3246 optimize_inline_calls when not optimizing.
3247
8e4c9a10
JH
32482013-09-02 Jan Hubicka <jh@suse.cz>
3249
3250 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
3251 duplicated nodes for assembler names.
3252 * symtab.c (symtab_unregister_node): Do not attempt to unlink
3253 hard registers from assembler name hash.
3254
c91061e6
JH
32552013-09-02 Jan Hubicka <jh@suse.cz>
3256
3257 * ipa-split.c (execute_split_functions): Split externally visible
3258 functions called once.
3259
2fd0985c
MJ
32602013-09-02 Martin Jambor <mjambor@suse.cz>
3261
3262 PR ipa/58106
3263 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
3264 linked list. When finding the correct duplicate, also consider also
3265 the caller in additon to its inlined_to node.
3266
91bd4114
JG
32672013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
3268
3269 * config/aarch64/aarch64-simd-builtins.def
3270 (dup_lane_scalar): Remove.
3271 * config/aarch64/aarch64-simd.md
3272 (aarch64_simd_dup): Add 'w->w' alternative.
3273 (aarch64_dup_lane<mode>): Allow for VALL.
3274 (aarch64_dup_lane_scalar<mode>): Remove.
3275 (aarch64_dup_lane_<vswap_width_name><mode>): New.
3276 (aarch64_get_lane_signed<mode>): Add w->w altenative.
3277 (aarch64_get_lane_unsigned<mode>): Likewise.
3278 (aarch64_get_lane<mode>): Likewise.
3279 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
3280 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
3281 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
3282 (VCON): Change container of V2SF.
3283 (vswap_width_name): Likewise.
3284 * config/aarch64/arm_neon.h
3285 (__aarch64_vdup_lane_any): New.
3286 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
3287 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
3288 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
3289
d617d2d8
EB
32902013-09-02 Eric Botcazou <ebotcazou@adacore.com>
3291
3292 PR middle-end/56382
3293 * expr.c (emit_move_complex): Do not move complex FP values as parts if
3294 the source or the destination is a single hard register.
3295
63fdb7be
RB
32962013-09-02 Richard Biener <rguenther@suse.de>
3297
3298 PR middle-end/57511
3299 * tree-scalar-evolution.c (instantiate_scev_name): Allow
3300 non-linear SCEVs.
3301
78de2333
RB
33022013-09-02 Richard Biener <rguenther@suse.de>
3303
3304 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
3305 arithmetic to sizetype.
3306
85ff4ec6
BC
33072013-09-02 Bin Cheng <bin.cheng@arm.com>
3308
3309 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
3310 Find auto-increment use both before and after candidate.
3311
576016fe
MP
33122013-09-02 Marek Polacek <polacek@redhat.com>
3313
3314 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
3315
08f835dc
JH
33162013-09-01 Jan Hubicka <jh@suse.cz>
3317
3318 * Makefile.in: Add ipa-profile.o
3319 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
3320 * cgraph.c (struct cgraph_propagate_frequency_data,
3321 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
3322 ipa-profile.c; replace cgraph_ by ipa_ prefix.
3323 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
3324 * ipa-inline-analysis.c: Include ipa-utils.h;
3325 drop duplicated cfgloop.h.
08f835dc
JH
3326 (inline_update_callee_summaries): Update.
3327 * ipa-profile.c: New file.
3328 * ipa-utils.h (ipa_propagate_frequency): Declare.
3329 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 3330 data-streamer.h, value-prof.h.
08f835dc
JH
3331 (symtab_remove_unreachable_nodes): Update profile.
3332 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
3333 account_time_size, cmp_counts, dump_histogram,
3334 ipa_profile_generate_summary, ipa_profile_write_summary,
3335 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
3336 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 3337 Move to ipa-profile.c.
08f835dc 3338
cec8583c
JDA
33392013-09-01 John David Anglin <danglin@gcc.gnu.org>
3340
3341 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
3342
bbc9396b
JH
33432013-09-01 Jan Hubicka <jh@suse.cz>
3344
3345 * common.opt (fdevirtualize-speculatively): New function.
3346 * invoke.texi (fdevirtualize-speculatively): Document.
3347 * ipa-devirt.c: Include ipa-inline.h
3348 (likely_target_p): New function.
3349 (ipa_devirt): New function.
3350 (gate_ipa_devirt): New function.
3351 (pass_data_ipa_devirt): New static var.
3352 (pass_ipa_devirt): Likewise.
3353 (make_pass_ipa_devirt): New function.
3354 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
3355 (common_handle_option): Disable devirtualization when
3356 value range profiling is available.
3357 * passes.def (pass_ipa_devirt): Add.
3358 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 3359 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 3360
0cea211e
IS
33612013-09-01 Iain Sandoe <iain@codesourcery.com>
3362
3363 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
3364 include sanitize(undefined).
3365
5e351e96
DN
33662013-08-31 Diego Novillo <dnovillo@google.com>
3367
3368 * Makefile.in (TREE_CORE_H): Define.
3369 (TREE_H): Use.
3370 (GTFILES): Add tree-core.h.
3371 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
3372 size the array.
3373 * tree-core.h: New file.
3374 Move all data structures, enum, typedefs, global
3375 declarations and constants from ...
3376 * tree.h: ... here.
3377
63bf9a90
JH
33782013-08-31 Jan Hubicka <jh@suse.cz>
3379
3380 * bulitins.c (expand_builtin): Do not early exit for gcov
3381 instrumented functions.
3382
5c0abd6a
MP
33832013-08-31 Marek Polacek <polacek@redhat.com>
3384
3385 * ubsan.c: Include tm_p.h.
3386
4843f032
JH
33872013-08-31 Jan Hubicka <jh@suse.cz>
3388
8356c89c
JH
3389 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
3390 warning.
3391
4843f032
JH
3392 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
3393 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 3394 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
3395 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
3396 (ipa_merge_profiles): New function.
3397 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
3398 (lto_input_function_body): Likewise.
5e581212
JH
3399 * ipa-utils.h (ipa_merge_profiles): Declare.
3400 * lto-streamer.h (lto_input_function_body): Update prototype.
3401 (emit_label_in_global_context_p): Remove.
3402 * lto-symtab.c: Include ipa-utils.h
3403 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 3404
57292ce9
JH
34052013-08-31 Jan Hubicka <jh@suse.cz>
3406
3407 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
3408
b9cbfeeb
JH
34092013-08-31 Jan Hubicka <jh@suse.cz>
3410
3411 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
3412
41dedebd
UB
34132013-08-31 Uros Bizjak <ubizjak@gmail.com>
3414
3415 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
3416 "cmp" RTX before signed_comparison_operator check to account
3417 for "code" changes.
3418
06d65050
JH
34192013-08-30 Jan Hubicka <jh@suse.cz>
3420
41dedebd 3421 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
3422 (detect_type_change_1): Rename to ...
3423 (detect_type_change): ... this one; early return on non-polymorphic
3424 types.
41dedebd 3425 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
3426 use of detect_type_change.
3427 (compute_complex_assign_jump_func): Add param_type parameter;
3428 update use of detect_type_change_ssa.
3429 (compute_complex_ancestor_jump_func): Likewise.
3430 (ipa_get_callee_param_type): New function.
3431 (ipa_compute_jump_functions_for_edge): Compute parameter type;
3432 update calls to the jump function computation functions.
3433
600b5b1d
TJ
34342013-08-30 Teresa Johnson <tejohnson@google.com>
3435 Steven Bosscher <steven@gcc.gnu.org>
3436
3437 * cfgrtl.c (fixup_new_cold_bb): New routine.
3438 (commit_edge_insertions): Invoke fixup_partitions.
3439 (find_partition_fixes): New routine.
3440 (fixup_partitions): Ditto.
3441 (verify_hot_cold_block_grouping): Update comments.
3442 (rtl_verify_edges): Invoke find_partition_fixes.
3443 (rtl_verify_bb_pointers): Update comments.
3444 (rtl_verify_bb_layout): Ditto.
3445 * basic-block.h (probably_never_executed_edge_p): Declare.
3446 (fixup_partitions): Ditto.
3447 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
3448 * bb-reorder.c (sanitize_hot_paths): New function.
3449 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
3450 sanitize_hot_paths.
3451 * predict.c (probably_never_executed_edge_p): New routine.
3452 * cfg.c (check_bb_profile): Add partition insanity warnings.
3453
0a6ea5c9
MI
34542013-08-30 Meador Inge <meadori@codesourcery.com>
3455
3456 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
3457
de5a5fa1
MP
34582013-08-30 Marek Polacek <polacek@redhat.com>
3459
3460 * Makefile.in (ubsan.o): Add.
3461 (c-family/c-ubsan.o): Add.
3462 (builtins.o): Add ubsan.h dependency.
3463 * ubsan.h: New file.
3464 * ubsan.c: New file.
3465 * common.opt: Add -fsanitize=undefined option.
3466 (flag_sanitize): Add variable.
3467 (fsanitize=): Add option. Add Driver.
3468 (fsanitize=thread): Remove option.
3469 (fsanitize=address): Likewise.
3470 (static-libubsan): New option.
3471 * doc/invoke.texi: Document the new flag and -static-libubsan.
3472 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
3473 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
3474 * builtin-attrs.def (ATTR_COLD): Define.
3475 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
3476 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
3477 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
3478 * flag-types.h (sanitize_code): New enum.
3479 * opts.c (common_handle_option): Parse command line arguments
3480 of -fsanitize=. Add -fsanitize=unreachable option.
3481 * varasm.c (get_variable_section): Adjust.
3482 (assemble_noswitch_variable): Likewise.
3483 (assemble_variable): Likewise.
3484 (output_constant_def_contents): Likewise.
3485 (categorize_decl_for_section): Likewise.
3486 (place_block_symbol): Likewise.
3487 (output_object_block): Likewise.
3488 * builtins.def: Likewise.
3489 * toplev.c (compile_file): Likewise.
3490 (process_options): Likewise.
3491 * cppbuiltin.c: Likewise.
3492 * tsan.c (tsan_pass): Likewise.
3493 (tsan_gate): Likewise.
3494 (tsan_gate_O0): Likewise.
3495 * cfgexpand.c (partition_stack_vars): Likewise.
3496 (expand_stack_vars): Likewise.
3497 (defer_stack_allocation): Likewise.
3498 (expand_used_vars): Likewise.
3499 * cfgcleanup.c (old_insns_match_p): Likewise.
3500 * asan.c (asan_finish_file): Likewise.
3501 (asan_instrument): Likewise.
3502 (gate_asan): Likewise.
3503 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
3504 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
3505 (asan_global_struct): Use pointer_sized_int_node instead
3506 calling build_nonstandard_integer_type.
3507 (initialize_sanitizer_builtins): Likewise.
3508 (asan_finish_file): Likewise.
3509 * gcc.c: Document %{%:function(args):X}.
3510 (static_spec_functions): Add sanitize.
3511 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
3512 store funcval != NULL there.
3513 (do_spec_1): Adjust handle_spec_function caller.
3514 (handle_braces): Allow %:function(args) as condition.
3515 (sanitize_spec_function): New function.
3516 (ADD_STATIC_LIBUBSAN_LIBS): Define.
3517 (LIBUBSAN_SPEC): Likewise.
3518 (LIBUBSAN_EARLY_SPEC): Likewise.
3519 (SANITIZER_SPEC): Handle libubsan.
3520 (SANITIZER_EARLY_SPEC): Likewise.
3521 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
3522 instead of fsanitize=address.
3523 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
3524 instead of fsanitize=address*.
3525 * builtins.c: Include ubsan.h.
3526 (fold_builtin_0): Instrument __builtin_unreachable.
3527 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
3528 instead of flag_asan.
3529 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
3530 (pointer_sized_int_node): Define.
41dedebd 3531 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 3532
f07f30cf
MS
35332013-08-30 Mike Stump <mikestump@comcast.net>
3534
3535 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
3536 with RE patterns.
3537
8a41354f
JH
35382013-08-29 Jan Hubicka <jh@suse.cz>
3539
3540 * cgraph.c (cgraph_function_body_availability): Handle weakref
3541 correctly.
3542 * passes.def: Remove pass_fixup_cfg.
3543 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
3544 track when we need to remove functions.
3545 (gate_ipa_inline): Execute inlining always; add comment why.
3546 (pass_data_ipa_inline): Remove TODO_remove_functions.
3547 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
3548 do not produce summaries.
3549 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
3550 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
3551 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
3552 constant pool and vtable.
3553
dc8d7a0f
TB
35542013-08-30 Tejas Belagod <tejas.belagod@arm.com>
3555
41dedebd
UB
3556 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
3557 New arm_neon.h's internal macros to specify 64-bit constants.
3558 Avoid using stdint.h's macros.
dc8d7a0f 3559
ac7eacd2
JR
35602013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
3561
3562 * recog.c (verify_changes): Verify that changes[i].old is non-zero
3563 before applying REG_P.
3564
8b29fd4e
JJ
35652013-08-30 Jakub Jelinek <jakub@redhat.com>
3566
3567 PR tree-optimization/58277
3568 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
3569 after seeing too many stmts with vdef in between dombb and current
3570 bb, invalidate everything.
3571
26d75703
RB
35722013-08-30 Richard Biener <rguenther@suse.de>
3573
3574 * fold-const.c (fold_single_bit_test): Fix overflow test.
3575
f7e088e7
EB
35762013-08-30 Eric Botcazou <ebotcazou@adacore.com>
3577
3578 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
3579 and which can live in a register, always retrieve the value on entry.
3580 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
3581 passed by invisible reference specially.
3582 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
3583 (vt_add_function_parameter): Correctly deal with a parameter passed by
3584 invisible reference.
3585
35862013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
3587
3588 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
3589
6e8dad05
RB
35902013-08-30 Richard Biener <rguenther@suse.de>
3591
3592 PR tree-optimization/58228
3593 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
3594 allow invariant loads in nested loop vectorization.
3595
062ef2c8
RB
35962013-08-30 Richard Biener <rguenther@suse.de>
3597
3598 PR tree-optimization/58223
3599 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
3600 (has_anti_or_output_dependence): ... this and adjust to also
3601 look for output dependences.
3602 (mark_nodes_having_upstream_mem_writes): Adjust.
3603 (rdg_flag_uses): Likewise.
3604
7a764c60
RB
36052013-08-30 Richard Biener <rguenther@suse.de>
3606
3607 PR tree-optimization/58010
3608 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
3609 assert that we have a loop-closed PHI.
3610
82e9d642
JH
36112013-08-29 Jan Hubicka <jh@suse.cz>
3612
3613 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
3614 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
3615 * lto-section-in.c (lto_free_function_in_decl_state): New function.
3616 (lto_free_function_in_decl_state_for_node): New function.
3617
9cc1fb4b
XDL
36182013-08-29 Xinliang David Li <davidxl@google.com>
3619
41dedebd 3620 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
3621 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
3622 Emit alignment peeling message with default -fopt-info.
3623 (vect_loop_versioning): Emit loop version info message.
41dedebd 3624 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
3625 (execute_vect_slp): Ditto.
3626
440a5082
EB
36272013-08-29 Eric Botcazou <ebotcazou@adacore.com>
3628
3629 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
3630 of the clone from the DECL_NAME of the original function.
3631
3fa3690d
OE
36322013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
3633
3634 * passes.c (register_pass): Add overload.
3635 * tree-pass.h (register_pass): Forward declare it. Add comment.
3636
0170f33c
JH
36372013-08-29 Jan Hubicka <jh@suse.cz>
3638
41dedebd
UB
3639 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
3640 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
3641 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
3642 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
3643 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
3644 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 3645 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
3646 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
3647
103ff0d6
TJ
36482013-08-29 Teresa Johnson <tejohnson@google.com>
3649
3650 * dumpfile.c (dump_loc): Output column number.
3651 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
3652 * doc/invoke.texi: Document optall -fopt-info flag.
3653 * profile.c (read_profile_edge_counts): Use new dump framework.
3654 (compute_branch_probabilities): Ditto.
3655 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
3656 when pass not in any opt group.
3657 * pass_manager.h (pass_manager::get_pass_profile): New method.
3658 * value-prof.c (check_counter): Use new dump framework.
3659 (check_ic_target): Ditto.
3660 * coverage.c (get_coverage_counts): Ditto.
3661 (coverage_init): Setup new dump framework.
3662
301bbc16
RB
36632013-08-29 Richard Biener <rguenther@suse.de>
3664
3665 PR tree-optimization/58246
3666 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
3667 handle the dominance check inside a basic-block.
3668
1b275000
RB
36692013-08-29 Richard Biener <rguenther@suse.de>
3670
3671 PR middle-end/57287
3672 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
3673 of default defs that appear in abnormal PHI nodes.
3674
6b1184ba
RB
36752013-08-29 Richard Biener <rguenther@suse.de>
3676
3677 PR tree-optimization/57685
3678 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
3679 single-use operands to avoid exponential complexity.
3680
1b08b734
DC
36812013-08-28 Dehao Chen <dehao@google.com>
3682
3683 * ipa-inline.c (edge_badness): Fix integer underflow.
3684
48a3fa69
UB
36852013-08-28 Uros Bizjak <ubizjak@gmail.com>
3686
3687 * gtm-builtins.def (_ITM_free): Declare leaf.
3688
215f73e6
JJ
36892013-08-28 Jakub Jelinek <jakub@redhat.com>
3690
3691 PR target/58067
3692 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
3693 (*tls_local_dynamic_base_64_largepic): Likewise.
3694 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
3695 Remove predicate from call operand.
3696 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
3697 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
3698
34554d1a
JL
36992013-08-28 Jeff Law <law@redhat.com>
3700
3701 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
3702 checks for the number of predecessors and successors allowed.
3703 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
3704 which require copying a joiner block if there is a request which
3705 is a subpath that requires no joiner block copying.
3706
c01c111b
JH
37072013-08-28 Jan Hubicka <jh@suse.cz>
3708
3709 * lto-streamer-out.c (DFS_write_tree_body): Drop
3710 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
3711 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
3712 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
3713 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
3714 Do not read DECL_ERROR_ISSUED.
3715 (unpack_ts_decl_with_vis_value_fields): Do not read
3716 DECL_DEFER_OUTPUT.
48a3fa69
UB
3717 (lto_input_ts_binfo_tree_pointers): Do not read
3718 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
3719 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
3720 write DECL_ERROR_ISSUED..
3721 (pack_ts_decl_with_vis_value_fields): Do not write
3722 DECL_DEFER_OUTPUT.
3723 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 3724 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
3725 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
3726 * tree.h (tree_decl_common): Update comment.
3727 (DECL_ERROR_ISSUED): Remove.
3728
4b128ece
JJ
37292013-08-28 Jakub Jelinek <jakub@redhat.com>
3730
3731 PR middle-end/58257
3732 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
3733
12211b99 37342013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
3735
3736 * builtins.def (free): Declare leaf.
3737
8dce4dbc
DM
37382013-08-27 David Malcolm <dmalcolm@redhat.com>
3739
3740 * gdbhooks.py: New.
3741 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
3742 * configure: Regenerate.
3743
b8f6e610
MJ
37442013-08-27 Martin Jambor <mjambor@suse.cz>
3745
3746 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
3747 (ipa_ancestor_jf_data): Likewise.
3748 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
3749 (ipa_get_jf_pass_through_type_preserved): New function.
3750 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
3751 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 3752 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
3753 (ipa_get_jf_ancestor_result): Likewise.
3754 (propagate_vals_accross_pass_through): Use
3755 ipa_get_jf_pass_through_result to do all the value mappings.
3756 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
3757 type_preserved flag.
3758 (ipa_set_jf_cst_copy): New function.
3759 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
3760 (ipa_set_jf_arith_pass_through): Likewise.
3761 (ipa_set_ancestor_jf): Likewise.
3762 (compute_complex_assign_jump_func): Set type_preserved instead of
3763 punting.
3764 (ipa_compute_jump_functions_for_edge): Likewise.
3765 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
3766 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 3767 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
3768 (ipa_write_jump_function): Stream the type_preserved flags.
3769 (ipa_read_jump_function): Likewise.
3770
74bf76ed
JJ
37712013-08-27 Jakub Jelinek <jakub@redhat.com>
3772 Aldy Hernandez <aldyh@redhat.com>
3773
3774 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
3775 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
3776 * function.h (struct function): Add has_force_vect_loops and
3777 has_simduid_loops.
12211b99 3778 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
3779 * gimple.c (gimple_build_omp_critical): Add KIND argument and
3780 handle it.
3781 * gimple.def: Update CLAUSES comments.
3782 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
3783 (gimple_build_omp_for): Add argument to prototype.
3784 (gimple_omp_for_kind): New.
3785 (gimple_omp_for_set_kind): New.
3786 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
3787 GOVD_DATA_SHARE_CLASS.
3788 (enum omp_region_type): Add ORT_SIMD.
3789 (gimple_add_tmp_var): Handle ORT_SIMD.
3790 (gimplify_var_or_parm_decl): Same.
3791 (is_gimple_stmt): Same.
3792 (omp_firstprivatize_variable): Same.
3793 (omp_add_variable): Only use splay_tree_insert if lookup failed.
3794 (omp_notice_variable): Handle ORT_SIMD.
12211b99 3795 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
3796 (omp_check_private): Handle ORT_SIMD.
3797 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
3798 OMP_CLAUSE_SAFELEN.
3799 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
3800 Handle OMP_CLAUSE_LASTPRIVATE.
3801 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
3802 OMP_CLAUSE_SAFELEN.
3803 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
3804 (gimplify_expr): Handle OMP_SIMD.
3805 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
3806 (expand_GOMP_SIMD_VF): New.
3807 (expand_GOMP_SIMD_LAST_LANE): New.
3808 * internal-fn.def (GOMP_SIMD_LANE): New.
3809 (GOMP_SIMD_VF): New.
3810 (GOMP_SIMD_LAST_LANE): New.
3811 * omp-low.c: Include target.h.
3812 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
3813 OMP_CLAUSE_SAFELEN.
3814 (check_omp_nesting_restrictions): Same.
3815 (omp_max_vf): New.
3816 (lower_rec_simd_input_clauses): New.
3817 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
3818 OMP_CLAUSE_LINEAR.
3819 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
3820 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
3821 (expand_omp_build_assign): New.
3822 (expand_omp_for_init_counts): New.
3823 (expand_omp_for_init_vars): New.
3824 (extract_omp_for_update_vars): New.
3825 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
3826 and rewrite accordingly.
3827 (expand_omp_simd): New.
3828 (expand_omp_for): Use expand_omp_simd.
3829 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
3830 (lower_omp_for): Do not lower the body.
3831 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
3832 in their own loops.
3833 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
3834 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
3835 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
3836 (gate_tree_if_conversion): Similarly.
3837 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
3838 gimple_build_omp_for.
3839 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
3840 * tree-parloops (create_parallel_loop): Pass kind argument to
3841 gimple_build_omp_for.
3842 * tree-pretty-print.c (dump_omp_clause): Add cases for
3843 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
3844 OMP_CLAUSE__SIMDUID_.
3845 (dump_generic_node): Handle OMP_SIMD.
3846 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
3847 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
3848 unroll OMP_SIMD loops here.
12211b99 3849 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 3850 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 3851 loop->safelen.
74bf76ed
JJ
3852 (vect_analyze_data_refs): Handle simd loops.
3853 * tree-vect-loop.c (vectorizable_live_operation): Handle
3854 IFN_GOMP_SIMD*.
12211b99 3855 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
3856 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
3857 (vectorizable_load): Same.
12211b99 3858 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
3859 (struct simduid_to_vf): New.
3860 (simduid_to_vf::hash): New.
3861 (simduid_to-vf::equal): New.
3862 (struct simd_array_to_simduid): New.
3863 (simd_array_to_simduid::hash): New.
3864 (simd_array_to_simduid::equal): New.
3865 (adjust_simduid_builtins): New.
3866 (struct note_simd_array_uses_struct): New.
3867 (note_simd_array_uses_cb): New.
3868 (note_simd_array_uses): New.
3869 (vectorize_loops): Handle simd hints and adjust simd builtins
3870 accordingly.
3871 * tree-vectorizer.h (struct _stmt_vec_info): Add
3872 simd_lane_access_p field.
3873 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
3874 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
3875 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
3876 (omp_clause_code_name): Same.
3877 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
3878 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
3879 * tree.def (OMP_SIMD): New entry.
12211b99
UB
3880 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
3881 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
3882 (OMP_CLAUSE_DECL): Adjust range for new clauses.
3883 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
3884 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
3885 (OMP_CLAUSE_LINEAR_STEP): New.
3886 (OMP_CLAUSE_SAFELEN_EXPR): New.
3887 (OMP_CLAUSE__SIMDUID__DECL): New.
3888 (find_omp_clause): New prototype.
3889
d0cf4e84
L
38902013-08-27 H.J. Lu <hongjiu.lu@intel.com>
3891
3892 * config/i386/driver-i386.c (host_detect_local_cpu): Update
3893 Haswell processor detection.
3894
992592ec
CW
38952013-08-27 Christian Widmer <shadow@umbrox.de>
3896
3897 PR target/57927
3898 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
3899 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
3900 AVX2 capable processors.
3901
9116eb22
TB
39022013-08-27 Tejas Belagod <tejas.belagod@arm.com>
3903
3904 * config/aarch64/arm_neon.h: Replace all inline asm implementations
3905 of vget_low_* with implementations in terms of other intrinsics.
3906
1c5abb53
MG
39072013-08-27 Marc Glisse <marc.glisse@inria.fr>
3908
3909 PR middle-end/57219
3910 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
3911 values to -1, 0 and 1.
3912
2e100703
VP
39132013-08-27 Vidya Praveen <vidyapraveen@arm.com>
3914
3915 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
3916 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
3917 (<optab><mode>3_insn): Remove.
3918 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
3919 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
3920 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
3921 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
3922 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
3923 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
3924 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
3925 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
3926 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
3927 (ror<mode>3_insn): Likewise.
3928 * config/aarch64/predicates.md (aarch64_simd_register): New.
3929
4ded8276
RB
39302013-08-27 Richard Biener <rguenther@suse.de>
3931
3932 PR tree-optimization/57521
3933 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
3934 one edge is non-critical.
3935 (find_phi_replacement_condition): Make sure to use a non-critical
3936 edge. Cleanup and remove old bug workarounds.
3937 (bb_postdominates_preds): Remove.
3938 (if_convertible_loop_p_1): Do not compute post-dominators.
3939 (combine_blocks): Do not free post-dominators.
3940 (main_tree_if_conversion): Likewise.
3941 (pass_data_if_conversion): Add TODO_verify_ssa.
3942
5aa11061
DD
39432013-08-27 DJ Delorie <dj@redhat.com>
3944
3945 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
3946
fd91cfe3
YZ
39472013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
3948
3949 * function.c (assign_parm_find_data_types): Set passed_mode and
3950 nominal_mode to the TYPE_MODE of nominal_type for the built
3951 pointer type in case of the struct-pass-by-reference.
3952
907555ce
JR
39532013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
3954
3955 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
3956 (UINT16_TYPE): Change default to "unsigned int".
3957
67518c93
JR
3958 * config/avr/avr.opt (mfract-convert-truncate): New option.
3959 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
3960 is set, round negative fractional integers according to n1169
3961 when converting to integer types.
3962
d6d989fc
JH
39632013-08-26 Jan Hubicka <jh@suse.cz>
3964
3965 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
3966 methods can not be called indirectly when their address is not taken.
3967
2aa3da06
JH
39682013-08-26 Jan Hubicka <jh@suse.cz>
3969
12211b99
UB
3970 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
3971 ctor_for_folding.
2aa3da06 3972
0987ffe7
JH
39732013-08-26 Jan Hubicka <jh@suse.cz>
3974
3975 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
3976 can be unshared.
3977
befe8647
JR
39782013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
3979
3980 * reload.c (find_valid_class): Allow classes that do not include
3981 FIRST_PSEUDO_REGISTER - 1.
3982
a21e735e
JH
39832013-08-26 Jan Hubicka <jh@suse.cz>
3984
3985 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
3986 fix edge count/frequency when speculation failed; fix type check
3987 for the direct call.
3988
e067bd43
JH
39892013-08-26 Jan Hubicka <jh@suse.cz>
3990
3991 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
3992
e8aec975
JH
39932013-08-26 Jan Hubicka <jh@suse.cz>
3994
3995 * ipa-inline-transform.c (inline_transform): Be ready for basic block
3996 to be changed by edge redirection.
3997
d0b66480
JH
39982013-08-26 Jan Hubicka <jh@suse.cz>
3999
12211b99
UB
4000 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
4001 formating; add sanity check.
d0b66480
JH
4002 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
4003 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
4004 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
4005 (resolve_noninline_speculation): Update callee keys, too.
4006
0f9aaac7
JH
40072013-08-26 Jan Hubicka <jh@suse.cz>
4008
4009 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
4010 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
4011
4b37444e
JR
40122013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
4013
4014 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
4015 into proper place.
4016
5339fc0c
UB
40172013-08-26 Uros Bizjak <ubizjak@gmail.com>
4018
4019 * config/i386/i386.c (ix86_debug_options): Remove prototype.
4020 (x86_64_elf_select_section): Ditto.
4021 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
4022 arguments.
4023 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
4024 (output_set_got): Ditto.
4025 (ix86_unary_operator_ok): Ditto.
4026 (ix86_expand_builtin): Ditto.
4027
d5c3d3ef
JH
40282013-08-23 Jan Hubicka <jh@suse.cz>
4029
5339fc0c 4030 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 4031
5b1e7435
JH
40322013-08-23 Jan Hubicka <jh@suse.cz>
4033
4034 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
4035 (tree_decl_with_vis): Add FINAL field.
4036
ead69dac
JL
40372013-08-23 Jeff Law <law@redhat.com>
4038
4039 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
4040 the debugging dump when the expression is fully redundant.
4041
025311c4
GDR
40422013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
4043
4044 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
4045 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
4046 * pretty-print.c (pp_formatted_text_data): Likewise.
4047 (pp_write_text_to_stream): Likewise.
4048 (pp_write_text_as_dot_label_to_stream): Likewise.
4049 (pp_append_r): Likewise.
4050 (pp_format): Likewise.
4051 (pp_flush): Likewise.
4052 (pp_clear_output_area): Likewise.
4053 (pp_append_text): Likewise.
4054 (pp_formatted_text): Likewise.
4055 (pp_remaining_character_count_for_line): Likewise.
4056 (pp_newline): Likewise.
4057 (pp_character): Likewise.
4058 (output_buffer::~output_buffer): Define.
4059 (pretty_printer::~pretty_printer): Destruct output buffer.
4060 * pretty-print.h (output_buffer::~output_buffer): Declare.
4061 (pretty_printer::~pretty_printer): Declare virtual.
4062
0cadbfaa
MG
40632013-08-24 Marc Glisse <marc.glisse@inria.fr>
4064
4065 PR other/57324
4066 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
4067 HOST_WIDE_INT_M1U): New macros.
4068 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
4069 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
4070 unsigned -1 for lshift.
4071 * cse.c (cse_insn): Likewise.
4072 * double-int.c (rshift_double, lshift_double): Likewise.
4073 * builtins.c (fold_builtin_bitop): Likewise.
4074 * combine.c (force_to_mode): Likewise.
4075 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
4076 * simplify-rtx.c (simplify_const_unary_operation,
4077 simplify_const_binary_operation): Likewise.
4078 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
4079 check_va_list_escapes): Likewise.
4080 * rtlanal.c (nonzero_bits1): Likewise.
4081 * expmed.c (expand_smod_pow2): Likewise.
4082 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
4083
009e5353
JH
40842013-08-23 Jan Hubicka <jh@suse.cz>
4085
4086 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
4087 as having address taken.
4088
c4be6568
JH
40892013-08-23 Jan Hubicka <jh@suse.cz>
4090
64cbf23d
JH
4091 * ipa-utils.h (method_class_type): Declare.
4092 * ipa-devirt.c (method_class_type): Export.
4093
c4be6568
JH
4094 * cgraphunit.c (analyze_functions): Do basic devirtualization;
4095 do not walk base classes of anonymous types.
4096
97aba8e9
KK
40972013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
4098
4099 PR rtl-optimization/58220
4100 PR regression/58221
4101 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
4102 handle SEQUENCE insns properly.
4103
0fc80001
GDR
41042013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
4105
4106 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
4107 definition.
4108 (pp_newline_and_indent): Likewise.
4109 (pp_separate_with): Likewise.
4110 * pretty-print.c (pp_newline_and_flush): Define.
4111 (pp_newline_and_indent): Likewise.
4112 (pp_separate_with): Likewise.
4113
520a5868
JJ
41142013-08-23 Jakub Jelinek <jakub@redhat.com>
4115
4116 PR target/58218
4117 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
4118 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
4119
e500c62a
KY
41202013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
4121
f43245d1
UB
4122 * config/i386/predicates.md (ext_sse_reg_operand): New.
4123 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
4124 predicate to determine if EVEX is needed.
4125 (*movsi_internal): Ditto.
4126 (*movdf_internal): Ditto.
4127 (*movsf_internal): Ditto.
f43245d1 4128 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 4129
6b00d7dd
JJ
41302013-08-23 Jakub Jelinek <jakub@redhat.com>
4131
4132 PR tree-optimization/58209
4133 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
4134 (find_tail_calls): Give up for pointer result types if m is non-NULL.
4135 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
4136 emit POINTER_PLUS_EXPR.
4137 (create_tailcall_accumulator): For pointer result type accumulate in
4138 sizetype type.
4139
4f2a9f90
PC
41402013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
4141
4142 * configure.ac: Add backslashes missing from the last change.
4143 * configure: Regenerate.
4144
7bf4274e
JH
41452013-08-22 Jan Hubicka <jh@susue.cz>
4146
4f2a9f90
PC
4147 * ipa.c (function_and_variable_visibility): First remember function
4148 was global and then make it local.
7bf4274e 4149
1bea243d
JB
41502013-08-22 Julian Brown <julian@codesourcery.com>
4151
4152 * configure.ac: Add aarch64 to list of arches which use "nop" in
4153 debug_line test.
4154 * configure: Regenerate.
4155
bcba7ecc
AK
41562013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4157
4158 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
4159 gnu_libc_has_function.
4160 * config/s390/tpf.h: Likewise.
4161
4c495b0d
JH
41622013-08-22 Jan Hubicka <jh@susue.cz>
4163
4164 * timevar.c (validate_phases): Add cast.
4165
5e302bca
JH
41662013-08-22 Jan Hubicka <jh@susue.cz>
4167
4168 * timevar.c (validate_phases): Use size_t for memory.
4169 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
4170
da6ca2b5
GDR
41712013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
4172
4173 * pretty-print.h (output_buffer::output_buffer): Declare.
4174 (pretty_printer::pretty_printer): Likewise.
4175 (pp_construct): Remove.
4176 * pretty-print.c (output_buffer::output_buffer): Define.
4177 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
4178 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
4179 (print_gimple_expr): Likewise.
4180 (print_gimple_seq): Likewise.
4181 (gimple_dump_bb): Likewise.
4182 * sched-vis.c (dump_value_slim): Likewise.
4183 (dump_insn_slim): Likewise.
4184 (dump_rtl_slim): Likewise.
4185 (str_pattern_slim): Likewise.
4186 * tree-mudflap.c (mf_varname_tree): Likewise.
4187 * graph.c (print_graph_cfg): Likewise.
4188 (start_graph_dump): Likewise.
4189 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
4190 placement-new.
4191 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
4192 pretty printer initialization.
4193 * coretypes.h (diagnostic_context): Remove superflous type alias
4194 declaration.
4195 (pretty_printer): Likewise. Declare directly as a class.
4196 (pretty_print_info): Remove declaration as class.
4197 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
4198 and pp_clear_output_area.
4199 (asan_add_global): Likewise.
4200
0e1474e5
JH
42012013-08-22 Jan Hubicka <jh@suse.cz>
4202
4203 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
4204 * ipa-utils.h (update_type_inheritance_graph): Declare.
4205 (possible_polymorphic_call_target_p): Declare.
4206 (possible_polymorphic_call_target_p): New.
4207 * ipa-devirt.c: Update toplevel comments.
4208 (cached_polymorphic_call_targets): Move up.
4209 (odr_type_d): Move ID down.
4210 (polymorphic_type_binfo_p): Update comment.
4211 (odr_hasher::remove): Likewise;
4212 (get_odr_type): Set anonymous_namespace.
4213 (dump_odr_type): Dump it.
4214 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
4215 (maybe_record_node): Record node in cached_polymorphic_call_targets.
4216 (record_binfo): Add comment.
5339fc0c
UB
4217 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
4218 built.
0e1474e5
JH
4219 (devirt_node_removal_hook): Do not iCE when cache is freed.
4220 (possible_polymorphic_call_target_p): New predicate.
4221 (update_type_inheritance_graph): New function.
4222
3f97cb0b
AI
42232013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
4224 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4225 Sergey Lega <sergey.s.lega@intel.com>
4226 Anna Tikhonova <anna.tikhonova@intel.com>
4227 Ilya Tocar <ilya.tocar@intel.com>
4228 Andrey Turetskiy <andrey.turetskiy@intel.com>
4229 Ilya Verbin <ilya.verbin@intel.com>
4230 Kirill Yukhin <kirill.yukhin@intel.com>
4231 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4232
4233 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
4234 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
4235 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
4236 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
4237 (OPTION_MASK_ISA_AVX2_UNSET): Update.
4238 (OPTION_MASK_ISA_AVX512F_UNSET): New.
4239 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
4240 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
4241 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
4242 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
4243 OPT_mavx512pf, OPT_mavx512er cases.
4244 * config/i386/constraints.md (v): New constraint.
4245 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
4246 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
4247 (bit_AVX512CD): New.
4248 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
4249 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
4250 * config/i386/i386-c.c (ix86_target_macros_internal):
4251 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
4252 __AVX512PF__.
4253 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
4254 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
4255 * config/i386/i386.c (regclass_map, dbx_register_map)
4256 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
4257 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
4258 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
4259 -mavx512pf options.
4260 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
4261 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
4262 -mavx512pf options. Fix formatting.
4263 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
4264 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
4265 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
4266 -mavx512cd, -mavx512pf options.
4267 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
4268 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
4269 (ix86_preferred_output_reload_class): Replace SSE_REGS with
4270 ALL_SSE_REGS.
4271 (ix86_hard_regno_mode_ok): Support 512-bit registers.
4272 (ix86_set_reg_reg_cost): Ditto.
4273 (x86_order_regs_for_local_alloc): Ditto.
4274 (MAX_VECT_LEN): Extend to 64-byte.
4275 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
4276 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
4277 (TARGET_AVX512ER, TARGET_AVX512CD): New.
4278 (BIGGEST_ALIGNMENT): Extend to 512-bits.
4279 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
4280 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
4281 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
4282 (SSE_REG_MODE_P): Support new modes.
4283 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
4284 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
4285 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
4286 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
4287 (REG_CLASS_CONTENTS): Add new registers.
4288 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
4289 (EXT_REX_SSE_REGNO_P): New.
4290 (HI_REGISTER_NAMES): Add new registers.
4291 * config/i386/i386.md: Define constants for new registers.
4292 (mode): Add new 512-bit modes.
4293 (prefix): Support evex prefix.
4294 (isa): Support avx512f, noavx512f, fma_avx512f.
4295 (ssemodesuffix): Add new 512-bit modes.
4296 (movxi): New.
4297 (*movxi_internal_avx512f): Ditto.
4298 (*movdi_internal): Replace constraint "x" with the new constraint "v".
4299 Support MODE_XI.
4300 (*movsi_internal): Likewise.
4301 (*movdf_internal): Likewise.
4302 (*movsf_internal): Likewise.
4303 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
4304 (<code><mode>3): Likewise.
5339fc0c
UB
4305 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
4306 New.
3f97cb0b
AI
4307 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
4308 with the new constraint "v".
4309 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
4310 modes.
4311 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
4312 with the new constraint "v".
4313 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
4314 (<sse2>_storedqu<avxsizesuffix>): Likewise.
4315 (*<plusminus_insn><mode>3): Likewise.
4316 (<sse>_vm<plusminus_insn><mode>3): Likewise.
4317 (*mul<mode>3): Likewise.
4318 (<sse>_vmmul<mode>3): Likewise.
4319 (<sse>_div<mode>3): Likewise.
4320 (<sse>_vmdiv<mode>3): Likewise.
4321 (<sse>_sqrt<mode>2): Likewise.
4322 (<sse>_vmsqrt<mode>2): Likewise.
4323 (*<code><mode>3_finite): Likewise.
4324 (*<code><mode>3) <smaxmin>: Likewise.
4325 (<sse>_vm<code><mode>3): Likewise.
4326 (*<code><mode>3) <any_logic>: Likewise.
4327 (*fma_fmadd_<mode>): Likewise.
4328 (*fma_fmsub_<mode>): Likewise.
4329 (*fma_fnmadd_<mode>): Likewise.
4330 (*fma_fnmsub_<mode>): Likewise.
4331 (*fma_fmaddsub_<mode>): Likewise.
4332 (*fma_fmsubadd_<mode>): Likewise.
4333 (*fmai_fmadd_<mode>): Likewise.
4334 (*fmai_fmsub_<mode>): Likewise.
4335 (*fmai_fnmadd_<mode>): Likewise.
4336 (*fmai_fnmsub_<mode>): Likewise.
4337 (sse_cvtsi2ss): Likewise.
4338 (sse_cvtsi2ssq): Likewise.
4339 (sse_cvtss2si): Likewise.
4340 (sse_cvtss2si_2): Likewise.
4341 (sse_cvtss2siq): Likewise.
4342 (sse_cvtss2siq_2): Likewise.
4343 (sse_cvttss2si): Likewise.
4344 (sse_cvtss2siq_2): Likewise.
4345 (float<sseintvecmodelower><mode>2): Likewise.
4346 (sse2_cvtsd2si_2): Likewise.
4347 (sse2_cvtsd2siq_2): Likewise.
4348 (*<plusminus_insn><mode>3): Likewise.
4349 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
4350 (*<sse4_1_avx2>_mul<mode>3): Likewise.
4351 (ashr<mode>3): Likewise.
4352 (<shift_insn><mode>3): Likewise.
4353 (avx2_<code><mode>3): Likewise.
4354 (*avx2_<code><mode>3): Likewise.
4355 (*andnot<mode>3): Likewise.
4356 (*<code><mode>3) <any_logic>: Likewise.
4357 (abs<mode>2): Likewise.
4358 (avx2_permvar<mode>): Likewise.
4359 (avx2_perm<mode>_1): Likewise.
4360 (*avx_vpermilp<mode>): Likewise.
4361 (avx_vpermilvar<mode>3): Likewise.
4362 (avx2_ashrv<mode>): Likewise.
4363 (avx2_<shift_insn>v<mode>): Likewise.
4364 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
4365 -mavx512cd.
4366 * doc/rtl.texi: Document XImode.
4367
dd5e8423
JL
43682013-08-21 Jeff Law <law@redhat.com>
4369
b9ebee5d
JL
4370 * tree-flow.h (register_jump_thread): Pass vector of edges
4371 instead of each important edge.
4372 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
4373 thread path into a vector and pass that to register_jump_thread.
4374 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
4375 passed in edge vector to the current 3-edge form.
4376
dd5e8423
JL
4377 Revert:
4378 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
4379
9bb6628e 4380 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
4381 delete_unmarked_insns removed anything.
4382
445dc8df
JR
43832013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
4384
4385 * reload.h (struct reg_equivs): Rename to ..
4386 (struct reg_equivs_s): .. this.
4387
e0df53dd
ML
43882013-08-20 Martin Liska <marxin.liska@gmail.com>
4389
4390 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
4391
e7d1d3eb
RO
43922013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4393
5339fc0c 4394 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 4395
5562e26e
JL
43962013-08-21 Jeff Law <law@redhat.com>
4397
4398 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
4399 simplify assignments too. If the RHS collapses to a singleton
4400 range, then return the value for the range.
4401
c7ecdec6
KY
44022013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
4403
4404 * config/i386/sse.md (V16): Rename to...
4405 (VMOVE): this.
4406 (mov<mode>): Update iterator name.
4407 (*mov<mode>_internal): Ditto.
4408 (push<mode>1): Ditto.
4409 (movmisalign<mode>): Ditto.
4410
bfa3b50a
JH
44112013-08-20 Jan Hubicka <jh@suse.cz>
4412
4413 PR bootstrap/58186
4414 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
4415 entry for direct edges.
4416 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
4417
6cd4d135
DM
44182013-08-20 David Malcolm <dmalcolm@redhat.com>
4419
4420 Revert my last two changes, r201865 and r201864:
4421
4422 Revert r201865:
4423 2013-08-20 David Malcolm <dmalcolm@redhat.com>
4424
4425 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
4426 instances can own GC refs.
4427
4428 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
4429 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
4430 (gcc::context::gt_pch_nx): Likewise.
4431 (gcc::context::gt_pch_nx): Likewise.
4432 * ggc.h (gt_ggc_mx <T>): New.
4433 (gt_pch_nx_with_op <T>): New.
4434 (gt_pch_nx <T>): New.
4435 * passes.c (opt_pass::gt_ggc_mx): New.
4436 (opt_pass::gt_pch_nx): New.
4437 (opt_pass::gt_pch_nx_with_op): New.
4438 (pass_manager::gt_ggc_mx): New.
4439 (pass_manager::gt_pch_nx): New.
4440 (pass_manager::gt_pch_nx_with_op): New.
4441 (pass_manager::operator new): Use
4442 ggc_internal_cleared_alloc_stat rather than xcalloc.
4443 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
4444 (pass_manager::gt_ggc_mx): New.
4445 (pass_manager::gt_pch_nx): New.
4446 (pass_manager::gt_pch_nx_with_op): New.
4447 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
4448 (opt_pass::operator new): New.
4449 (opt_pass::gt_ggc_mx): New.
4450 (opt_pass::gt_pch_nx): New.
4451 (opt_pass::gt_pch_nx_with_op): New.
4452
4453 Revert r201864:
4454 2013-08-20 David Malcolm <dmalcolm@redhat.com>
4455
4456 * Makefile.in (GTFILES): Add context.h.
4457 * context.c (gcc::context::operator new): New.
4458 (gcc::context::gt_ggc_mx): New.
4459 (gcc::context::gt_pch_nx): New.
4460 (gcc::context::gt_pch_nx): New.
4461 * context.h (gcc::context): Add GTY((user)) marking.
4462 (gcc::context::operator new): New.
4463 (gcc::context::gt_ggc_mx): New.
4464 (gcc::context::gt_pch_nx): New.
4465 (gcc::context::gt_pch_nx): New.
4466 (g): Add GTY marking.
4467 (gt_ggc_mx (gcc::context *)): New.
4468 (gt_pch_nx (gcc::context *)): New.
4469 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
4470 void *cookie)): New.
4471 * gengtype.c (open_base_files) <ifiles>: Add context.h.
4472
a046136a
AM
44732013-08-20 Alexey Makhalov <makhaloff@gmail.com>
4474
4475 * dce.c (fini_dce): Call df_analyze again just in case
4476 delete_unmarked_insns removed anything.
4477
67598720
TJ
44782013-08-20 Teresa Johnson <tejohnson@google.com>
4479
4480 PR rtl-optimizations/57451
4481 * final.c (reemit_insn_block_notes): Prevent lexical blocks
4482 from crossing split section boundaries.
4483
f8693faf
MGD
44842013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4485
4486 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
4487 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
4488 with MULTLIB_DEFAULTS.
4489
7d0b9a9c
NC
44902013-08-20 Nick Clifton <nickc@redhat.com>
4491
4492 * target.def (narrow_volatile_bitfield): Note that the default
4493 value is false, not !TARGET_STRICT_ALIGN.
4494 * doc/tm.texi: Regenerate.
4495
8edb8dc8
PC
44962013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
4497
4498 Fix LIB_SPEC for systems without libpthread.
4499
4500 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
4501 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
4502 for Android.
4503 * config/i386/linux-common.h: Likewise.
4504 * config/mips/linux-common.h: Likewise.
4505
12211b99 45062013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
4507
4508 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
4509 checks.
4510
e42c64cb
DM
45112013-08-20 David Malcolm <dmalcolm@redhat.com>
4512
4513 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
4514 instances can own GC refs.
4515
4516 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
4517 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
4518 (gcc::context::gt_pch_nx): Likewise.
4519 (gcc::context::gt_pch_nx): Likewise.
4520 * ggc.h (gt_ggc_mx <T>): New.
4521 (gt_pch_nx_with_op <T>): New.
4522 (gt_pch_nx <T>): New.
4523 * passes.c (opt_pass::gt_ggc_mx): New.
4524 (opt_pass::gt_pch_nx): New.
4525 (opt_pass::gt_pch_nx_with_op): New.
4526 (pass_manager::gt_ggc_mx): New.
4527 (pass_manager::gt_pch_nx): New.
4528 (pass_manager::gt_pch_nx_with_op): New.
4529 (pass_manager::operator new): Use
4530 ggc_internal_cleared_alloc_stat rather than xcalloc.
4531 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
4532 (pass_manager::gt_ggc_mx): New.
4533 (pass_manager::gt_pch_nx): New.
4534 (pass_manager::gt_pch_nx_with_op): New.
4535 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
4536 (opt_pass::operator new): New.
4537 (opt_pass::gt_ggc_mx): New.
4538 (opt_pass::gt_pch_nx): New.
4539 (opt_pass::gt_pch_nx_with_op): New.
4540
910c02a0
DM
45412013-08-20 David Malcolm <dmalcolm@redhat.com>
4542
4543 * Makefile.in (GTFILES): Add context.h.
4544 * context.c (gcc::context::operator new): New.
4545 (gcc::context::gt_ggc_mx): New.
4546 (gcc::context::gt_pch_nx): New.
4547 (gcc::context::gt_pch_nx): New.
4548 * context.h (gcc::context): Add GTY((user)) marking.
4549 (gcc::context::operator new): New.
4550 (gcc::context::gt_ggc_mx): New.
4551 (gcc::context::gt_pch_nx): New.
4552 (gcc::context::gt_pch_nx): New.
4553 (g): Add GTY marking.
4554 (gt_ggc_mx (gcc::context *)): New.
4555 (gt_pch_nx (gcc::context *)): New.
4556 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
4557 void *cookie)): New.
4558 * gengtype.c (open_base_files) <ifiles>: Add context.h.
4559
af4b4236
AM
45602013-08-20 Alan Modra <amodra@gmail.com>
4561
4562 PR target/57865
4563 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
4564 (rs6000_emit_epilogue): Likewise.
4565
12211b99 45662013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
4567
4568 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
4569
e2323f5b
PB
45702013-08-19 Peter Bergner <bergner@vnet.ibm.com>
4571 Jakub Jelinek <jakub@redhat.com>
4572
4573 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
4574 (BUILT_IN_FABSD64): Likewise.
4575 (BUILT_IN_FABSD128): Likewise.
4576 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
4577 (fold_builtin_1): Likewise.
5339fc0c
UB
4578 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
4579 destination and source operands.
e2323f5b
PB
4580 (*abstd2_fpr): Likewise.
4581 (*nabstd2_fpr): Likewise.
4582
cfbf3ee8
RS
45832013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
4584
4585 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
4586 JUMP_P and INSN_P.
4587
d3136aeb
AH
45882013-08-19 Aldy Hernandez <aldyh@redhat.com>
4589
4590 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
4591 incomplete.
4592
d33d9e47
AI
45932013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
4594
4595 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
4596 * builtins.c (default_libc_has_function): New.
4597 (gnu_libc_has_function): Ditto.
4598 (no_c99_libc_has_function): Ditto.
4599 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
4600 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
4601 (fold_builtin_sincos): Likewise.
4602 (fold_builtin_cexp): Likewise.
4603 * builtins.def (DEF_C94_BUILTIN): Likewise.
4604 (DEF_C99_BUILTIN): Likewise.
4605 (DEF_C99_C90RES_BUILTIN): Likewise.
4606 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
4607 definitions to using this define.
4608 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 4609 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
4610 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
4611 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
4612 * config/darwin.h: Ditto.
4613 * config/elfos.h: Ditto.
4614 * config/freebsd.h: Ditto.
4615 * config/i386/cygming.h: Ditto.
4616 * config/i386/djgpp.h: Ditto.
4617 * config/i386/i386-interix.h: Ditto.
4618 * config/microblaze/microblaze.h: Ditto.
4619 * config/mmix/mmix.h: Ditto.
4620 * config/gnu-user.h: Ditto.
4621 * config/ia64/hpux.h: Ditto.
4622 * config/pa/pa-hpux.h: Ditto.
4623 * config/pdp11/pdp11.h: Ditto.
4624 * config/picochip/picochip.h: Ditto.
4625 * config/linux.h: Ditto.
4626 * config/netbsd.h: Ditto.
4627 * config/openbsd.h: Ditto.
4628 * config/rs6000/aix43.h: Ditto.
4629 * config/rs6000/aix51.h: Ditto.
4630 * config/rs6000/aix52.h: Ditto.
4631 * config/rs6000/aix53.h: Ditto.
4632 * config/rs6000/aix61.h: Ditto.
4633 * config/rs6000/darwin.h: Ditto.
4634 * config/rs6000/linux.h: Ditto.
4635 * config/rs6000/linux64.h: Ditto.
4636 * config/s390/tpf.h: Ditto.
4637 * config/sol2-10.h: Ditto.
4638 * config/sol2.h: Ditto.
4639 * config/vms/vms.h: Ditto.
4640 * config/vxworks.h: Ditto.
4641 * config/linux-android.c (linux_android_libc_has_function):
4642 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
4643 * config/linux-protos.h (linux_android_libc_has_function):
4644 New declaration.
4645 * config/i386/i386.c (ix86_libc_has_function): New.
4646 * config/i386/i386-protos.h
4647 (ix86_libc_has_function): New declaration.
4648 * config/i386/i386.md
4649 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
4650 ("isinf<mode>2): Likewise.
4651 * convert.c (convert_to_integer): Using new target hook
4652 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
4653 TARGET_C99_FUNCTIONS.
4654 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
4655 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
4656 * coretypes.h (function_class): New enum for different
4657 classes of functions.
4658 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
4659 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
4660 (TARGET_HAS_SINCOS): Likewise.
4661 (TARGET_LIBC_HAS_FUNCTION): New.
4662 * doc/tm.texi: Regenerated.
4663 * targhooks.h (default_libc_has_function): New declaration.
4664 (no_c99_libc_has_function): Ditto.
4665 (gnu_libc_has_function): Ditto.
4666 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
4667 and TARGET_HAS_SINCOS.
4668
eefe9a99
JH
46692013-08-18 Jan Hubicka <jh@suse.cz>
4670
4671 * Makeifle-in (ipa-devirt.o): New.
4672 (GTFILES): Add ipa-utils.h and ipa-devirt.c
4673 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
4674 (analyze_functions): Look into possible targets of polymorphic call.
4675 * dumpfile.c (dump_files): Add type-inheritance dump.
4676 * dumpfile.h (TDI_inheritance): New.
4677 * ipa-devirt.c: New file.
4678 * ipa-utils.h (odr_type_d): Forward declare.
4679 (odr_type): New type.
4680 (build_type_inheritance_graph): Declare.
4681 (possible_polymorphic_call_targets): Declare and introduce inline
4682 variant when only edge is pased.
4683 (dump_possible_polymorphic_call_targets): Likewise.
4684 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
4685 * tree.c (type_in_anonymous_namespace_p): Break out from ...
4686 (types_same_for_odr): ... here.
4687 * tree.h (type_in_anonymous_namespace_p): Declare.
4688
29b89442
JJ
46892013-08-18 Jakub Jelinek <jakub@redhat.com>
4690
4691 PR tree-optimization/58006
4692 * tree-parloops.c (take_address_of): Don't ICE if get_name
4693 returns NULL.
4694 (eliminate_local_variables_stmt): Remove clobber stmts.
4695
4f219961
EB
46962013-08-18 Eric Botcazou <ebotcazou@adacore.com>
4697
4698 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
4699 error message is issued for an alias to undefined symbol.
4700
1d5755ef
JH
47012013-08-18 Jan Hubicka <jh@suse.cz>
4702
4703 * cgraph.c (cgraph_create_indirect_edge): Discover
4704 polymorphic calls and record basic info into indirect_info.
4705 * gimple-fold.c (gimple_fold_call): When doing BINFO based
4706 devirtualization, ignore objc function calls.
4707 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
4708 call with no parm index info.
4709 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
4710 * tree.c (virtual_method_call_p): New function.
4711 * tree.h (virtual_method_call_p): Declare.
4712
5945bebf
JH
47132013-08-16 Jan Hubicka <jh@suse.cz>
4714
4715 PR middle-end/58179
4716 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
4717
47fa5d23
DE
47182013-08-16 David Edelsohn <dje.gcc@gmail.com>
4719
4720 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
4721 attribute.
4722
c74f54a0
DM
47232013-08-16 David Malcolm <dmalcolm@redhat.com>
4724
4725 * gengtype.c (type_for_name): Add special-case support for
4726 locating types within the "gcc::" namespace.
4727 (open_base_files): Emit a "using namespace gcc" directive.
4728
f758f299
MM
47292013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
4730
4731 PR target/58160
4732 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
4733 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
4734
4735 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
4736 array instead of each individual operand as a separate argument.
4737 (emit_fusion_gpr_load): Likewise.
4738 (expand_fusion_gpr_load): Add new function declaration.
4739
4740 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
4741 signature to have the operands passed as an array, instead of as
4742 separate arguments. Allow ZERO_EXTEND to be in the memory
4743 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
4744 depend on the register live/dead flags when peepholes are run.
4745 (expand_fusion_gpr_load): New function to be called from the
4746 peephole2 pass, to change the register that addis sets to be the
4747 target register.
4748 (emit_fusion_gpr_load): Change the calling signature to have the
4749 operands passed as an array, instead of as separate arguments.
4750 Allow ZERO_EXTEND to be in the memory address, and also
4751 SIGN_EXTEND if -mpower8-fusion-sign.
4752
4753 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
4754 unspec enumeration.
4755 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
4756 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 4757 depend on the register live/dead state when the peephole pass is done.
f758f299 4758
158f4e4f
DM
47592013-08-16 David Malcolm <dmalcolm@redhat.com>
4760
4761 * gengtype.c (create_user_defined_type): Ensure that the kind
4762 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
4763 declaration is seen before the GTY((user)) marking.
4764
22f8cea5
BE
47652013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
4766
4767 PR target/58105
4768 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
4769
c49bdb2e
JH
47702013-08-16 Jan Hubicka <jh@suse.cz>
4771
4772 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
4773 arugment expected_type.
4774 (gimple_fold_call): Use it.
4775 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
4776 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 4777 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
4778 (try_make_edge_direct_virtual_call): Likewise.
4779 * tree.c (obj_type_ref_class): New.
4780 * tree.h (obj_type_ref_class): Use it.
4781
4042dca9
GDR
47822013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
4783
4784 * sched-vis.c (rtl_slim_pp_initialized): Remove.
4785 (rtl_slim_pp): Likewise.
4786 (init_rtl_slim_pretty_print): Likewise.
4787 (dump_value_slim): Don't call it. Use local pretty printer.
4788 (dump_insn_slim): Likewise.
4789 (dump_rtl_slim): Likewise.
4790 (str_pattern_slim): Likewise.
4791 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
4792 Simplify.
4793
7a460594
JJ
47942013-08-16 Jakub Jelinek <jakub@redhat.com>
4795
639dc669
JJ
4796 PR tree-optimization/58164
4797 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
4798 walk gimple_goto_dest of GIMPLE_GOTO.
4799
7a460594
JJ
4800 PR tree-optimization/58165
4801 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
4802 bi_call must be the last stmt in a bb, don't split_block, instead
4803 use fallthru edge from it and give up if there is none.
4804 Release conds vector when returning early.
4805
e3c02cc7
XDL
48062013-08-14 Xinliang David Li <davidxl@google.com>
4807
4808 * config/i386/i386.c (ix86_option_override_internal):
4809 Remove unused variable and field.
4810
6469da2c
BS
48112013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4812
4813 PR target/57949
22f8cea5 4814 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
4815 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
4816 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
4817 and Linux, correct BLKmode alignment when 128-bit alignment is
4818 required and compatibility flag is not set.
22f8cea5
BE
4819 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
4820 for zero-size arguments when compatibility flag is not set.
6469da2c 4821
4ca890e2
JJ
48222013-08-14 Jakub Jelinek <jakub@redhat.com>
4823
4824 PR tree-optimization/58145
4825 * tree-sra.c (build_ref_for_offset): If prev_base has
4826 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
4827
daec1759 48282013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 4829
daec1759 4830 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 4831 Fix uninitialized variable error.
daec1759 4832
3ad20bd4
XDL
48332013-08-14 Xinliang David Li <davidxl@google.com>
4834
4835 * config/i386/i386.opt: Define two new options.
4836 * config/i386/x86-tune.def: Add arch selector field in macros.
4837 * config/i386/i386.h: Adjust macro definition.
4838 * config/i386/i386.c (ix86_option_override_internal):
4839 Refactor the code.
4840 (parse_mtune_ctrl_str): New function.
4841 (set_ix86_tune_features): New function.
4842 (ix86_function_specific_restore): Call the new helper function.
4843
e839e2a9
AB
48442013-08-14 Andrey Belevantsev <abel@ispras.ru>
4845
4846 PR rtl-optimization/57662
4847 * sel-sched.c (code_motion_process_successors): When the current insn
4848 is removed after the recursive traversal, break from the loop.
4849 Add comments and debug printouts.
4850
27ed665f
JJ
48512013-08-14 Jakub Jelinek <jakub@redhat.com>
4852 Alexandre Oliva <aoliva@redhat.com>
4853
4854 PR target/58067
4855 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
4856 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
4857 there also UNSPEC_PLTOFF.
4858
61c1a609
MP
48592013-08-14 Marek Polacek <polacek@redhat.com>
4860
4861 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
4862 NUM_CONDITIONS bit positions.
4863
0e901c67
CC
48642013-08-13 Cary Coutant <ccoutant@google.com>
4865
4866 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
4867 (attr_checksum): Hash vector contents instead of pointer.
4868 (attr_checksum_ordered): Likewise.
4869
061eff6d
UB
48702013-08-13 Uros Bizjak <ubizjak@gmail.com>
4871
4872 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
4873 when Pmode != word_mode. Add length_address attribute.
4874 (sse3_monitor_<mode>): Merge from sse3_monitor and
4875 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
4876 Pmode != word_mode. Update insn length attribute.
4877 * config/i386/i386.c (ix86_option_override_internal): Update
4878 ix86_gen_monitor selection for merged sse3_monitor insn.
4879
8ec9249b
JB
48802013-08-13 Julian Brown <julian@codesourcery.com>
4881
4882 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
4883 perform invalid legitimization on greater-than-word-size modes for
4884 TARGET_E500_DOUBLE.
4885
761a8eb7
VM
48862013-08-13 Vladimir Makarov <vmakarov@redhat.com>
4887
4888 * ira.c (setup_class_translate_array): Use aclass instead of cl
4889 for classes not fully covered by allocno classes.
4890
99c2bd54
JJ
48912013-08-13 Jakub Jelinek <jakub@redhat.com>
4892
4029a5e0
JJ
4893 PR tree-optimization/57661
4894 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
4895 * tree-inline.c (tree_function_versioning): Initialize it.
4896 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
4897 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
4898 that is not being copied.
4899
99c2bd54
JJ
4900 PR sanitizer/56417
4901 * asan.c (instrument_strlen_call): Fix typo in comment.
4902 Use char * type even for the lhs of POINTER_PLUS_EXPR.
4903
b5f8f063
SE
49042013-08-13 Steve Ellcey <sellcey@mips.com>
4905
4906 * config/mips/mips.md (prefetch): Use lw instead of ld on
4907 loongson in 32bit mode.
4908
4de80584
NC
49092013-08-13 Nick Clifton <nickc@redhat.com>
4910
4911 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
4912
09ce3660
JH
49132013-08-13 Jan Hubicka <jh@suse.cz>
4914
4915 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
4916 introduced edge; fix typo in sanity check.
4917 (cgraph_resolve_speculation): Export; improve diagnostic.
4918 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
4919 speculation at type mismatch.
4920 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
4921 (cgraph_resolve_speculation): Declare.
4922 (symtab_can_be_discarded): New function.
4923 * value-prof.c (gimple_ic_transform): Remove actual transform code.
4924 * ipa-inline-transform.c (speculation_removed): New global var.
4925 (clone_inlined_nodes): See if speculation can be removed.
4926 (inline_call): If speculations was removed, we growths may not match.
4927 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
4928 (speculation_useful_p): New function.
4929 (resolve_noninline_speculation): New function.
4930 (inline_small_functions): Resolve useless speculations.
4931 * ipa-inline.h (speculation_useful_p): Declare
4932 * ipa.c (can_replace_by_local_alias): Simplify.
4933 (ipa_profile): Produce speculative calls in non-lto, too;
4934 add simple cost model; produce local aliases.
4935
f971dc24
DM
49362013-08-13 David Malcolm <dmalcolm@redhat.com>
4937
4938 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 4939 PASS_MANAGER_H.
f971dc24 4940
2e507b9a
PC
49412013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
4942
4943 * config/i386/i386.c (ix86_function_versions): Use error + inform.
4944
c97fd4b8
UB
49452013-08-12 Uros Bizjak <ubizjak@gmail.com>
4946
4947 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
4948 iterator instead of X87MODEF.
4949
49502013-08-12 Perez Read <netfirewall@gmail.com>
4951
4952 PR target/58132
4953 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
4954 operand 0 for intel asm alternative.
4955 (*movabs<mode>_2): Ditto for operand 1.
4956
f4f4204c
JG
49572013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
4958
4959 * config/aarch64/arm_none.h
4960 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
4961
133b1a8e
NC
49622013-08-12 Nick Clifton <nickc@redhat.com>
4963
4964 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
4965
15dd8b3a
YR
49662013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
4967
4968 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
4969 expand for QI/HImode operand to produce more effictive code for
4970 unsigned char(short) --> float(double) conversion.
4971
94109a6a
AM
49722013-08-12 Alexander Monakov <amonakov@ispras.ru>
4973
4974 * doc/invoke.texi: Mention that -ftls-model does not force the final
4975 model.
4976
4e115102
MP
49772013-08-12 Marek Polacek <polacek@redhat.com>
4978 Marc Glisse <marc.glisse@inria.fr>
4979
4980 PR tree-optimization/57980
4981 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
4982 when creating -1 constant.
4983
748d71f3
JH
49842013-08-10 Jan Hubicka <jh@suse.cz>
4985
1f97e193 4986 Workaround binutils PR14342.
748d71f3
JH
4987 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
4988 (gimple_init_edge_profiler): Likewise.
4989 (gimple_gen_ic_func_profiler): Likewise.
4990
5979aa54
JH
49912013-08-09 Jan Hubicka <jh@suse.cz>
4992
4993 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
4994
ad83025e
XDL
49952013-08-09 Xinliang David Li <davidxl@google.com>
4996
4997 * config/i386/stringop.def: New file.
4998 * config/i386/stringop.opt: New file.
4999 * config/i386/i386-opts.h: Include stringopt.def.
5000 * config/i386/i386.opt: Include stringopt.opt.
5001 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 5002 Override default size based stringop inline strategies with options.
ad83025e
XDL
5003 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
5004 New function.
5005
e59df5fd
JH
50062013-08-09 Jan Hubicka <jh@suse.cz>
5007
c97fd4b8 5008 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 5009
634ab819
JH
50102013-08-09 Jan Hubicka <jh@suse.cz>
5011
5012 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
5013 CGRAPH_FREQ_MAX.
5014 (dump_cgraph_node): Dump profile-id.
5015 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
5016 and common_target_probability.
5017 * lto-cgraph.c (lto_output_edge): Stream common targets.
5018 (lto_output_node): Stream profile ids.
5019 (input_node): Stream profile ids.
5020 (input_edge): Stream common targets.
5021 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
5022 * ipa.c: Include value-prof.h
5023 (ipa_profile_generate_summary): Turn indirect call statement histograms
5024 into common targets.
5025 (ipa_profile): Turn common targets into speculative edges.
5026
2fa3d31b
JH
50272013-08-09 Jan Hubicka <jh@suse.cz>
5028
5029 * cgraph.h (cgraph_node): Add profile_id.
5030 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 5031 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
5032 (del_node_map): Update.
5033 (find_func_by_funcdef_no): Replace by ...
5034 (find_func_by_profile_id): ... this one.
5035 (gimple_ic_transform): Do not remove useful histograms when
5036 speculation is not done; dump info when indirect call removal
5037 can happen at LTO.
5038 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
5039 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
5040 (__gcov_indirect_call_profiler_v2): .. this one.
5041 * profile.h (init_node_map): Update.
5042 * coverage.c (coverage_compute_profile_id): New function.
5043 * coverage.h (coverage_compute_profile_id): Declare.
5044 * tree-profile.c (init_ic_make_global_vars): Make
5045 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
5046 (gimple_init_edge_profiler): Update prototype of
5047 __gcov_indirect_call_profiler.
5048 (gimple_gen_ic_func_profiler): Simplify.
5049 (tree_profiling): Use init_node_map
5050
042ae7d2
JH
50512013-08-09 Jan Hubicka <jh@suse.cz>
5052
c97fd4b8
UB
5053 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
5054 non-speculative refs.
042ae7d2
JH
5055 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
5056 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
5057 (cgraph_set_call_stmt): Likewise.
5058 (cgraph_create_edge_1): Fix release checking compilatoin;
5059 clear lto_stmt_uid.
5060 (cgraph_free_edge): Free indirect info.
5061 (cgraph_turn_edge_to_speculative): New function.
5062 (cgraph_speculative_call_info): New function.
5063 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 5064 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
5065 (dump_cgraph_node): Dump speculation.
5066 (verify_edge_count_and_frequency): Accept speculative edges.
5067 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
5068 (verify_cgraph_node): Handle speculation.
5069 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
5070 (cgraph_set_call_stmt): Update prototype.
5071 (cgraph_make_edge_direct): Update prototype.
5072 (cgraph_speculative_call_info): Declare.
5073 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
5074 to change; update call of ipa_find_references.
5075 * ipa-ref.c (ipa_record_reference): Fix return value; clear
5076 lto_stmt_uid and speculative flags.
5077 (ipa_dump_references): Dump speculation.
5078 (ipa_clone_references): Clone speculative flag.
5079 (ipa_clone_referring): Likewise.
5080 (ipa_clone_ref): New function.
5081 (ipa_find_reference): Look into lto_stmt_uids
5082 (ipa_clear_stmts_in_references): Do not clear speculative calls.
5083 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
5084 (ipa_find_reference): Update declaration.
5085 (ipa_clone_ref): Declare.
5086 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
5087 stream speculative flag.
5088 (lto_output_ref): Stream statements uids and speculation.
5089 (input_ref): Likewise.
5090 (input_edge): Stream speuclation.
5091 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
5092 (cgraph_set_call_stmt_including_clones): Handle speculation.
5093 * ipa-inline.c (heap_edge_removal_hook): New function.
5094 (inline_small_functions): Register it.
5095 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
5096 also initialize refs.
5097 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
5098 edge to change.
5099 (try_make_edge_direct_simple_call): Likewise.
5100 (try_make_edge_direct_simple_call): Likewise.
5101 (update_indirect_edges_after_inlining): Likewise.
5102 (remove_described_reference): Look proper lto_stmt_uid.
5103 (propagate_controlled_uses): Likewise.
5104 (propagate_controlled_uses): Liekwise.
5105 * tree-inline.c (copy_bb): Copy speculative edges.
5106 (redirect_all_calls): New function.
c97fd4b8
UB
5107 (copy_cfg_body): Do redirection after loop info is updated.
5108 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 5109
aa1e10cc
JH
51102013-08-09 Jan Hubicka <jh@suse.cz>
5111
5112 * lto-streamer-out.c (output_function): Renumber PHIs.
5113 * lto-streamer-in.c (input_function): Likewise.
5114
66adb8eb
JG
51152013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
5116
5117 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
5118 (get_lane_unsigned): Likewise.
5119 (dup_lane_scalar): Likewise.
5120 (get_lane): enable for VALL.
5121 * config/aarch64/aarch64-simd.md
5122 (aarch64_dup_lane_scalar<mode>): Remove.
5123 (aarch64_get_lane_signed<mode>): Likewise.
5124 (aarch64_get_lane_unsigned<mode>): Likewise.
5125 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
5126 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
5127 (aarch64_get_lane<mode>): Enable for all vector modes.
5128 (aarch64_get_lanedi): Remove misleading constraints.
5129 * config/aarch64/arm_neon.h
5130 (__aarch64_vget_lane_any): Define.
5131 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
5132 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
5133 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
5134 * config/aarch64/iterators.md (VDQQH): New.
5135 (VDQQHS): Likewise.
5136 (vwcore): Likewise.
5137
1f65ae7a
EB
51382013-08-09 Eric Botcazou <ebotcazou@adacore.com>
5139
5140 * configure.ac: Add GAS check for LEON instructions on SPARC.
5141 * configure: Regenerate.
5142 * config.in: Likewise.
5143 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
5144 sparc*-*-* block.
5145 * config/sparc/sparc.opt (LEON, LEON3): New masks.
5146 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
5147 for LEON or LEON3.
5148 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
5149 (AS_LEON_FLAG): New macro.
5150 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
5151 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
5152 Deal with LEON and LEON3 for the memory model.
23a6cb78 5153 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
5154 (atomic_compare_and_swap<mode>_1): Likewise.
5155 (*atomic_compare_and_swap<mode>_1): Likewise.
5156
ff522f7f
ZC
51572013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
5158
5159 * config/arm/neon.md (vcond): Fix floating-point vector
5160 comparisons against 0.
5161
cb1cca12
VM
51622013-08-08 Vladimir Makarov <vmakarov@redhat.com>
5163
5164 * lra-constraints.c (emit_spill_move): Remove assert.
5165 (process_alt_operands): Add more debugging
5166 output. Increase reject for spilling into memory. Decrease
5167 reject for reloading scratch.
5168 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
5169
a3719e31
SE
51702013-08-08 Steve Ellcey <sellcey@mips.com>
5171
5172 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
5173 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
5174 micromips incompatible. Add nan2008.
5175 (MULTILIB_DIRNAMES): Add nan2008.
5176 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
5177 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
5178 and micromips incompatible. Add nan2008.
5179 (MULTILIB_DIRNAMES): Add nan2008.
5180 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
5181
f40423e2
RS
51822013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
5183
5184 PR rtl-optimization/58079
5185 * combine.c (combine_simplify_rtx): Avoid using SUBST if
5186 simplify_comparison has widened a comparison with an integer.
5187
869b9125
KT
51882013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5189
5190 * config/arm/neon.md (movmisalign<mode>): Disable when we
5191 don't allow unaligned accesses.
5192 (*movmisalign<mode>_neon_store): Likewise.
5193 (*movmisalign<mode>_neon_load): Likewise.
5194 (*movmisalign<mode>_neon_store): Likewise.
5195 (*movmisalign<mode>_neon_load): Likewise.
5196
71cafea9
JH
51972013-08-08 Jan Hubicka <jh@suse.cz>
5198
5199 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
5200 (make_pass_rebuild_cgraph_edges): Also clear references.
5201 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
5202 * ipa-inline-transform.c (inline_transform): Remove all references
5203 after inlining.
c97fd4b8
UB
5204 * cgraphunit.c (expand_function): Remove all references after
5205 expansion.
71cafea9
JH
5206 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
5207 (ipa_find_reference): Rewrite to iterator.
5208 (remove_stmt_references): Likewise.
5209 (ipa_clear_stmts_in_references): New function.
5210 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
5211 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
5212 clear references.
71cafea9
JH
5213 * ipa-split.c (split_function): Remove references in split function.
5214
27d2e612
RE
52152013-08-08 Richard Earnshaw <rearnsha@arm.com>
5216
5217 PR target/57431
1f65ae7a 5218 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
5219 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
5220
5efc661c
RE
52212013-08-08 Richard Earnshaw <rearnsha@arm.com>
5222
5223 PR target/56979
1f65ae7a 5224 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
5225 suggested mode for the assignment isn't compatible with the
5226 registers required.
5227
f276d31d
BE
52282013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
5229
5230 PR target/58065
5231 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
5232
4b8bc035
XDL
52332013-08-07 Xinliang David Li <davidxl@google.com>
5234
5235 * config/i386/i386.opt: New option -mtune-ctrl=.
5236 * config/i386/x86-tune.def: New file.
5237 * config/i386/i386.h: include x86-tune.def.
5238 * config/i386/i386.c (ix86_option_override_internal):
5239 Parsing -mtune-ctrl= option and set tune features.
5240
12211b99 52412013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
5242
5243 PR other/12081
03b0ee0a 5244 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
5245 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
5246 to gen_2arg_fn_t.
5247
5cf6635b
EB
52482013-08-07 Eric Botcazou <ebotcazou@adacore.com>
5249
5250 * rtl.h (update_alignments): Declare.
5251 * final.c (grow_label_align): New function extracted from...
5252 (shorten_branches): ...here. Call it.
5253 (update_alignments): New function.
5254 * reorg.c (sibling_labels): New variable.
5255 (get_label_before): Add SIBLING parameter. If it is non-zero, push
5256 the new label along with it onto the sibling_labels vector.
5257 (fill_simple_delay_slots): Adjust call to get_label_before.
5258 (fill_slots_from_thread): Likewise.
5259 (relax_delay_slots): Likewise.
5260 (make_return_insns): Likewise.
5261 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
5262
3c8ca1ab
EB
52632013-08-07 Eric Botcazou <ebotcazou@adacore.com>
5264
5265 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
5266 document its semantics.
5267 (diagnostic_report_diagnostic): Adjust accordingly.
5268
5ee5b32c
DM
52692013-08-07 David Malcolm <dmalcolm@redhat.com>
5270
03b0ee0a 5271 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
5272 (sparc_option_override): ...and port to new C++ pass API.
5273 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
5274
abd566fa
PB
52752013-08-07 Peter Bergner <bergner@vnet.ibm.com>
5276
5277 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
5278
2077db1b
CT
52792013-08-06 Caroline Tice <cmtice@google.com>
5280
5281 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
5282 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
5283 * tree-pass.h: Add pass_vtable_verify.
5284 * varasm.c (assemble_variable): Add code to properly set the comdat
5285 section and name for the .vtable_map_vars section.
5286 (assemble_vtyv_preinit_initializer): New function.
5287 (default_sectin_type_flags): Make sure .vtable_map_vars section has
5288 LINK_ONCE flag.
5289 * output.h: Add function decl for assemble_vtv_preinit_initializer.
5290 * vtable-verify.c: New file.
5291 * vtable-verify.h: New file.
5292 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
5293 initialiation levels.
5294 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
5295 * passes.def: Insert pass_vtable_verify.
5296 * aclocal.m4: Reorder includes.
5297 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
5298 -fvtv-counts options.
5299 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
5300 as appropriate, if -fvtable-verify=... is used.
5301 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
5302 -fvtable-verify=... is used.
5303 * Makefile.in (OBJS): Add vtable-verify.o to list.
5304 (vtable-verify.o): Add new build rule.
5305 (GTFILES): Add vtable-verify.c to list.
5306 * common.opt (fvtable-verify=): New flag.
5307 (vtv_priority): Values for fvtable-verify= flag.
5308 (fvtv-counts): New flag.
5309 (fvtv-debug): New flag.
5310 * tree.h (save_vtable_map_decl): New extern function decl.
5311
03085d1c
DM
53122013-08-07 David Malcolm <dmalcolm@redhat.com>
5313
5314 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
5315 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
5316 (pass_data_rl78_devirt): ...new pass_data instance and...
5317 (make_pass_rl78_devirt): ...new function.
5318 (rl78_asm_file_start): Port pass registration to new C++ API.
5319
05555c4a
DM
53202013-08-07 David Malcolm <dmalcolm@redhat.com>
5321
5322 * coretypes.h (rtl_opt_pass): Add.
5323 (gcc::context): Add.
5324 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
5325 (epiphany_init): Port to new C++ pass API.
5326 (epiphany_optimize_mode_switching): Likewise.
5327 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
5328 (pass_manager::get_pass_mode_switching): New.
5329 (pass_manager::get_pass_peephole2): New.
5330 * mode-switching.c (pass_mode_switching): Add clone method.
5331 * recog.c (pass_peephole2): Add clone method.
5332 (pass_split_all_insns): Add clone method.
5333
c5a12e26
DM
53342013-08-06 David Malcolm <dmalcolm@redhat.com>
5335
03b0ee0a
UB
5336 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
5337 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 5338
a2e2a668
JH
53392013-08-06 Jan Hubicka <jh@suse.cz>
5340
5341 * cgraph.c (cgraph_get_body): New function based on lto.c
5342 implementation.
5343 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
5344 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
5345 LTO paths.
a2e2a668
JH
5346 * cgraphunit.c (expand_function): Get body prior expanding.
5347 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
5348 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
5349 really need.
a2e2a668
JH
5350 * passes.c (do_per_function_toporder): Get body.
5351 * tree-inline.c (expand_call_inline): Get body prior inlining it.
5352 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
5353
15682f24
MJ
53542013-08-06 Martin Jambor <mjambor@suse.cz>
5355
5356 PR fortran/57987
5357 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
5358 is not re-finalized. Rename second parameter to no_collect.
5359
78f6dd68
MJ
53602013-08-06 Martin Jambor <mjambor@suse.cz>
5361
5362 PR middle-end/58041
5363 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
5364 MEM_REF has proper alignment information.
5365
12211b99 53662013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
5367
5368 PR other/12081
5369 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
5370 class insn_gen_fn.
5371 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
5372 rtx (*) (rtx, ...) with insn_gen_fn.
5373 * genoutput.c (output_insn_data): Cast gen_? function pointers to
5374 insn_gen_fn::stored_funcptr. Add initializer braces.
5375
8ac69a6c
DM
53762013-08-05 David Malcolm <dmalcolm@redhat.com>
5377
5378 Rewrite how instances of passes are cloned to remove assumptions
5379 about their sizes (thus allowing pass subclasses to have
5380 additional data fields, albeit non-GC-managed ones at this point).
5381
5382 * passes.c (make_pass_instance): Now that passes have clone
5383 methods, rewrite this function to eliminate XNEW and memcpy
5384 calls that used hardcoded sizes. Since this function no longer
5385 creates pass instances, rename it to...
03b0ee0a
UB
5386 (add_pass_instance): ...this. Document the old way that passes were
5387 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
5388 (next_pass_1): Add an initial_pass argument for use by
5389 add_pass_instance.
5390 (position_pass): When adding multiple instances of a pass, use
5391 the pass's clone method, rather than relying on the XNEW/memcpy
5392 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
5393 (pass_manager::pass_manager): When invoking next_pass_1, also supply
5394 the initial instance of the current pass within the pass manager.
8ac69a6c 5395
27a4cd48
DM
53962013-08-05 David Malcolm <dmalcolm@redhat.com>
5397
5398 This is the automated part of the conversion of passes from C
5399 structs to C++ classes.
5400
5401 Patch autogenerated by refactor_passes.py from
5402 https://github.com/davidmalcolm/gcc-refactoring-scripts
5403 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
5404
5405 * asan.c (pass_asan): Convert from a global struct to a subclass of
5406 gimple_opt_pass along with...
5407 (pass_data_asan): ...new pass_data instance and...
5408 (make_pass_asan): ...new function.
5409 (pass_asan_O0): Convert from a global struct to a subclass of
5410 gimple_opt_pass along with...
5411 (pass_data_asan_O0): ...new pass_data instance and...
5412 (make_pass_asan_O0): ...new function.
5413 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
5414 subclass of rtl_opt_pass along with...
5415 (pass_data_inc_dec): ...new pass_data instance and...
5416 (make_pass_inc_dec): ...new function.
5417 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
5418 a subclass of rtl_opt_pass along with...
5419 (pass_data_reorder_blocks): ...new pass_data instance and...
5420 (make_pass_reorder_blocks): ...new function.
5421 (pass_duplicate_computed_gotos): Convert from a global struct to a
5422 subclass of rtl_opt_pass along with...
5423 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
5424 (make_pass_duplicate_computed_gotos): ...new function.
5425 (pass_partition_blocks): Convert from a global struct to a subclass of
5426 rtl_opt_pass along with...
5427 (pass_data_partition_blocks): ...new pass_data instance and...
5428 (make_pass_partition_blocks): ...new function.
5429 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
5430 struct to a subclass of rtl_opt_pass along with...
5431 (pass_data_branch_target_load_optimize1): ...new pass_data instance
5432 and...
5433 (make_pass_branch_target_load_optimize1): ...new function.
5434 (pass_branch_target_load_optimize2): Convert from a global struct to a
5435 subclass of rtl_opt_pass along with...
5436 (pass_data_branch_target_load_optimize2): ...new pass_data instance
5437 and...
5438 (make_pass_branch_target_load_optimize2): ...new function.
5439 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
5440 of rtl_opt_pass along with...
5441 (pass_data_jump): ...new pass_data instance and...
5442 (make_pass_jump): ...new function.
5443 (pass_jump2): Convert from a global struct to a subclass of
5444 rtl_opt_pass along with...
5445 (pass_data_jump2): ...new pass_data instance and...
5446 (make_pass_jump2): ...new function.
5447 * cfgexpand.c (pass_expand): Convert from a global struct to a
5448 subclass of rtl_opt_pass along with...
5449 (pass_data_expand): ...new pass_data instance and...
5450 (make_pass_expand): ...new function.
5451 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
5452 of rtl_opt_pass along with...
5453 (pass_data_free_cfg): ...new pass_data instance and...
5454 (make_pass_free_cfg): ...new function.
5455 (pass_into_cfg_layout_mode): Convert from a global struct to a
5456 subclass of rtl_opt_pass along with...
5457 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
5458 (make_pass_into_cfg_layout_mode): ...new function.
5459 (pass_outof_cfg_layout_mode): Convert from a global struct to a
5460 subclass of rtl_opt_pass along with...
5461 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
5462 (make_pass_outof_cfg_layout_mode): ...new function.
5463 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
5464 struct to a subclass of gimple_opt_pass along with...
5465 (pass_data_build_cgraph_edges): ...new pass_data instance and...
5466 (make_pass_build_cgraph_edges): ...new function.
5467 (pass_rebuild_cgraph_edges): Convert from a global struct to a
5468 subclass of gimple_opt_pass along with...
5469 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
5470 (make_pass_rebuild_cgraph_edges): ...new function.
5471 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
5472 subclass of gimple_opt_pass along with...
5473 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
5474 and...
5475 (make_pass_remove_cgraph_callee_edges): ...new function.
5476 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
5477 struct to a subclass of rtl_opt_pass along with...
5478 (pass_data_stack_adjustments): ...new pass_data instance and...
5479 (make_pass_stack_adjustments): ...new function.
5480 * combine.c (pass_combine): Convert from a global struct to a subclass
5481 of rtl_opt_pass along with...
5482 (pass_data_combine): ...new pass_data instance and...
5483 (make_pass_combine): ...new function.
5484 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
5485 global struct to a subclass of rtl_opt_pass along with...
5486 (pass_data_compare_elim_after_reload): ...new pass_data instance
5487 and...
5488 (make_pass_compare_elim_after_reload): ...new function.
5489 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
5490 of rtl_opt_pass along with...
5491 (pass_data_rtl_cprop): ...new pass_data instance and...
5492 (make_pass_rtl_cprop): ...new function.
5493 * cse.c (pass_cse): Convert from a global struct to a subclass of
5494 rtl_opt_pass along with...
5495 (pass_data_cse): ...new pass_data instance and...
5496 (make_pass_cse): ...new function.
5497 (pass_cse2): Convert from a global struct to a subclass of
5498 rtl_opt_pass along with...
5499 (pass_data_cse2): ...new pass_data instance and...
5500 (make_pass_cse2): ...new function.
5501 (pass_cse_after_global_opts): Convert from a global struct to a
5502 subclass of rtl_opt_pass along with...
5503 (pass_data_cse_after_global_opts): ...new pass_data instance and...
5504 (make_pass_cse_after_global_opts): ...new function.
5505 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
5506 of rtl_opt_pass along with...
5507 (pass_data_ud_rtl_dce): ...new pass_data instance and...
5508 (make_pass_ud_rtl_dce): ...new function.
5509 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
5510 rtl_opt_pass along with...
5511 (pass_data_fast_rtl_dce): ...new pass_data instance and...
5512 (make_pass_fast_rtl_dce): ...new function.
5513 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
5514 a subclass of rtl_opt_pass along with...
5515 (pass_data_df_initialize_opt): ...new pass_data instance and...
5516 (make_pass_df_initialize_opt): ...new function.
5517 (pass_df_initialize_no_opt): Convert from a global struct to a
5518 subclass of rtl_opt_pass along with...
5519 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
5520 (make_pass_df_initialize_no_opt): ...new function.
5521 (pass_df_finish): Convert from a global struct to a subclass of
5522 rtl_opt_pass along with...
5523 (pass_data_df_finish): ...new pass_data instance and...
5524 (make_pass_df_finish): ...new function.
5525 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
5526 rtl_opt_pass along with...
5527 (pass_data_rtl_dse1): ...new pass_data instance and...
5528 (make_pass_rtl_dse1): ...new function.
5529 (pass_rtl_dse2): Convert from a global struct to a subclass of
5530 rtl_opt_pass along with...
5531 (pass_data_rtl_dse2): ...new pass_data instance and...
5532 (make_pass_rtl_dse2): ...new function.
5533 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
5534 subclass of rtl_opt_pass along with...
5535 (pass_data_dwarf2_frame): ...new pass_data instance and...
5536 (make_pass_dwarf2_frame): ...new function.
5537 * except.c (pass_set_nothrow_function_flags): Convert from a global
5538 struct to a subclass of rtl_opt_pass along with...
5539 (pass_data_set_nothrow_function_flags): ...new pass_data instance
5540 and...
5541 (make_pass_set_nothrow_function_flags): ...new function.
5542 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
5543 subclass of rtl_opt_pass along with...
5544 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
5545 and...
5546 (make_pass_convert_to_eh_region_ranges): ...new function.
5547 * final.c (pass_compute_alignments): Convert from a global struct to a
5548 subclass of rtl_opt_pass along with...
5549 (pass_data_compute_alignments): ...new pass_data instance and...
5550 (make_pass_compute_alignments): ...new function.
5551 (pass_final): Convert from a global struct to a subclass of
5552 rtl_opt_pass along with...
5553 (pass_data_final): ...new pass_data instance and...
5554 (make_pass_final): ...new function.
5555 (pass_shorten_branches): Convert from a global struct to a subclass of
5556 rtl_opt_pass along with...
5557 (pass_data_shorten_branches): ...new pass_data instance and...
5558 (make_pass_shorten_branches): ...new function.
5559 (pass_clean_state): Convert from a global struct to a subclass of
5560 rtl_opt_pass along with...
5561 (pass_data_clean_state): ...new pass_data instance and...
5562 (make_pass_clean_state): ...new function.
5563 * function.c (pass_instantiate_virtual_regs): Convert from a global
5564 struct to a subclass of rtl_opt_pass along with...
5565 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
5566 (make_pass_instantiate_virtual_regs): ...new function.
5567 (pass_leaf_regs): Convert from a global struct to a subclass of
5568 rtl_opt_pass along with...
5569 (pass_data_leaf_regs): ...new pass_data instance and...
5570 (make_pass_leaf_regs): ...new function.
5571 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
5572 subclass of rtl_opt_pass along with...
5573 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
5574 and...
5575 (make_pass_thread_prologue_and_epilogue): ...new function.
5576 (pass_match_asm_constraints): Convert from a global struct to a
5577 subclass of rtl_opt_pass along with...
5578 (pass_data_match_asm_constraints): ...new pass_data instance and...
5579 (make_pass_match_asm_constraints): ...new function.
5580 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
5581 subclass of rtl_opt_pass along with...
5582 (pass_data_rtl_fwprop): ...new pass_data instance and...
5583 (make_pass_rtl_fwprop): ...new function.
5584 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
5585 rtl_opt_pass along with...
5586 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
5587 (make_pass_rtl_fwprop_addr): ...new function.
5588 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
5589 rtl_opt_pass along with...
5590 (pass_data_rtl_pre): ...new pass_data instance and...
5591 (make_pass_rtl_pre): ...new function.
5592 (pass_rtl_hoist): Convert from a global struct to a subclass of
5593 rtl_opt_pass along with...
5594 (pass_data_rtl_hoist): ...new pass_data instance and...
5595 (make_pass_rtl_hoist): ...new function.
5596 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
5597 subclass of gimple_opt_pass along with...
5598 (pass_data_lower_cf): ...new pass_data instance and...
5599 (make_pass_lower_cf): ...new function.
5600 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
5601 from a global struct to a subclass of gimple_opt_pass along with...
5602 (pass_data_strength_reduction): ...new pass_data instance and...
5603 (make_pass_strength_reduction): ...new function.
5604 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
5605 of rtl_opt_pass along with...
5606 (pass_data_rtl_ifcvt): ...new pass_data instance and...
5607 (make_pass_rtl_ifcvt): ...new function.
5608 (pass_if_after_combine): Convert from a global struct to a subclass of
5609 rtl_opt_pass along with...
5610 (pass_data_if_after_combine): ...new pass_data instance and...
5611 (make_pass_if_after_combine): ...new function.
5612 (pass_if_after_reload): Convert from a global struct to a subclass of
5613 rtl_opt_pass along with...
5614 (pass_data_if_after_reload): ...new pass_data instance and...
5615 (make_pass_if_after_reload): ...new function.
5616 * init-regs.c (pass_initialize_regs): Convert from a global struct to
5617 a subclass of rtl_opt_pass along with...
5618 (pass_data_initialize_regs): ...new pass_data instance and...
5619 (make_pass_initialize_regs): ...new function.
5620 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
5621 of ipa_opt_pass_d along with...
5622 (pass_data_ipa_cp): ...new pass_data instance and...
5623 (make_pass_ipa_cp): ...new function.
5624 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
5625 global struct to a subclass of gimple_opt_pass along with...
5626 (pass_data_inline_parameters): ...new pass_data instance and...
5627 (make_pass_inline_parameters): ...new function.
5628 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
5629 subclass of gimple_opt_pass along with...
5630 (pass_data_early_inline): ...new pass_data instance and...
5631 (make_pass_early_inline): ...new function.
5632 (pass_ipa_inline): Convert from a global struct to a subclass of
5633 ipa_opt_pass_d along with...
5634 (pass_data_ipa_inline): ...new pass_data instance and...
5635 (make_pass_ipa_inline): ...new function.
5636 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
5637 struct to a subclass of gimple_opt_pass along with...
5638 (pass_data_local_pure_const): ...new pass_data instance and...
5639 (make_pass_local_pure_const): ...new function.
5640 (pass_ipa_pure_const): Convert from a global struct to a subclass of
5641 ipa_opt_pass_d along with...
5642 (pass_data_ipa_pure_const): ...new pass_data instance and...
5643 (make_pass_ipa_pure_const): ...new function.
5644 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
5645 to a subclass of ipa_opt_pass_d along with...
5646 (pass_data_ipa_reference): ...new pass_data instance and...
5647 (make_pass_ipa_reference): ...new function.
5648 * ipa-split.c (pass_split_functions): Convert from a global struct to
5649 a subclass of gimple_opt_pass along with...
5650 (pass_data_split_functions): ...new pass_data instance and...
5651 (make_pass_split_functions): ...new function.
5652 (pass_feedback_split_functions): Convert from a global struct to a
5653 subclass of gimple_opt_pass along with...
5654 (pass_data_feedback_split_functions): ...new pass_data instance and...
5655 (make_pass_feedback_split_functions): ...new function.
5656 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
5657 global struct to a subclass of simple_ipa_opt_pass along with...
5658 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
5659 instance and...
5660 (make_pass_ipa_function_and_variable_visibility): ...new function.
5661 (pass_ipa_free_inline_summary): Convert from a global struct to a
5662 subclass of simple_ipa_opt_pass along with...
5663 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
5664 (make_pass_ipa_free_inline_summary): ...new function.
5665 (pass_ipa_whole_program_visibility): Convert from a global struct to a
5666 subclass of ipa_opt_pass_d along with...
5667 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
5668 and...
5669 (make_pass_ipa_whole_program_visibility): ...new function.
5670 (pass_ipa_profile): Convert from a global struct to a subclass of
5671 ipa_opt_pass_d along with...
5672 (pass_data_ipa_profile): ...new pass_data instance and...
5673 (make_pass_ipa_profile): ...new function.
5674 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
5675 ipa_opt_pass_d along with...
5676 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
5677 (make_pass_ipa_cdtor_merge): ...new function.
5678 * ira.c (pass_ira): Convert from a global struct to a subclass of
5679 rtl_opt_pass along with...
5680 (pass_data_ira): ...new pass_data instance and...
5681 (make_pass_ira): ...new function.
5682 (pass_reload): Convert from a global struct to a subclass of
5683 rtl_opt_pass along with...
5684 (pass_data_reload): ...new pass_data instance and...
5685 (make_pass_reload): ...new function.
5686 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
5687 subclass of rtl_opt_pass along with...
5688 (pass_data_cleanup_barriers): ...new pass_data instance and...
5689 (make_pass_cleanup_barriers): ...new function.
5690 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
5691 of rtl_opt_pass along with...
5692 (pass_data_loop2): ...new pass_data instance and...
5693 (make_pass_loop2): ...new function.
5694 (pass_rtl_loop_init): Convert from a global struct to a subclass of
5695 rtl_opt_pass along with...
5696 (pass_data_rtl_loop_init): ...new pass_data instance and...
5697 (make_pass_rtl_loop_init): ...new function.
5698 (pass_rtl_loop_done): Convert from a global struct to a subclass of
5699 rtl_opt_pass along with...
5700 (pass_data_rtl_loop_done): ...new pass_data instance and...
5701 (make_pass_rtl_loop_done): ...new function.
5702 (pass_rtl_move_loop_invariants): Convert from a global struct to a
5703 subclass of rtl_opt_pass along with...
5704 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
5705 (make_pass_rtl_move_loop_invariants): ...new function.
5706 (pass_rtl_unswitch): Convert from a global struct to a subclass of
5707 rtl_opt_pass along with...
5708 (pass_data_rtl_unswitch): ...new pass_data instance and...
5709 (make_pass_rtl_unswitch): ...new function.
5710 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
5711 subclass of rtl_opt_pass along with...
5712 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
5713 and...
5714 (make_pass_rtl_unroll_and_peel_loops): ...new function.
5715 (pass_rtl_doloop): Convert from a global struct to a subclass of
5716 rtl_opt_pass along with...
5717 (pass_data_rtl_doloop): ...new pass_data instance and...
5718 (make_pass_rtl_doloop): ...new function.
5719 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
5720 a subclass of rtl_opt_pass along with...
5721 (pass_data_lower_subreg): ...new pass_data instance and...
5722 (make_pass_lower_subreg): ...new function.
5723 (pass_lower_subreg2): Convert from a global struct to a subclass of
5724 rtl_opt_pass along with...
5725 (pass_data_lower_subreg2): ...new pass_data instance and...
5726 (make_pass_lower_subreg2): ...new function.
5727 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
5728 struct to a subclass of ipa_opt_pass_d along with...
5729 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
5730 (make_pass_ipa_lto_gimple_out): ...new function.
5731 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
5732 of ipa_opt_pass_d along with...
5733 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
5734 (make_pass_ipa_lto_finish_out): ...new function.
5735 * mode-switching.c (pass_mode_switching): Convert from a global struct
5736 to a subclass of rtl_opt_pass along with...
5737 (pass_data_mode_switching): ...new pass_data instance and...
5738 (make_pass_mode_switching): ...new function.
5739 * modulo-sched.c (pass_sms): Convert from a global struct to a
5740 subclass of rtl_opt_pass along with...
5741 (pass_data_sms): ...new pass_data instance and...
5742 (make_pass_sms): ...new function.
5743 * omp-low.c (pass_expand_omp): Convert from a global struct to a
5744 subclass of gimple_opt_pass along with...
5745 (pass_data_expand_omp): ...new pass_data instance and...
5746 (make_pass_expand_omp): ...new function.
5747 (pass_lower_omp): Convert from a global struct to a subclass of
5748 gimple_opt_pass along with...
5749 (pass_data_lower_omp): ...new pass_data instance and...
5750 (make_pass_lower_omp): ...new function.
5751 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
5752 of gimple_opt_pass along with...
5753 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
5754 (make_pass_diagnose_omp_blocks): ...new function.
5755 * passes.c (pass_early_local_passes): Convert from a global struct to
5756 a subclass of simple_ipa_opt_pass along with...
5757 (pass_data_early_local_passes): ...new pass_data instance and...
5758 (make_pass_early_local_passes): ...new function.
5759 (pass_all_early_optimizations): Convert from a global struct to a
5760 subclass of gimple_opt_pass along with...
5761 (pass_data_all_early_optimizations): ...new pass_data instance and...
5762 (make_pass_all_early_optimizations): ...new function.
5763 (pass_all_optimizations): Convert from a global struct to a subclass
5764 of gimple_opt_pass along with...
5765 (pass_data_all_optimizations): ...new pass_data instance and...
5766 (make_pass_all_optimizations): ...new function.
5767 (pass_all_optimizations_g): Convert from a global struct to a subclass
5768 of gimple_opt_pass along with...
5769 (pass_data_all_optimizations_g): ...new pass_data instance and...
5770 (make_pass_all_optimizations_g): ...new function.
5771 (pass_rest_of_compilation): Convert from a global struct to a subclass
5772 of rtl_opt_pass along with...
5773 (pass_data_rest_of_compilation): ...new pass_data instance and...
5774 (make_pass_rest_of_compilation): ...new function.
5775 (pass_postreload): Convert from a global struct to a subclass of
5776 rtl_opt_pass along with...
5777 (pass_data_postreload): ...new pass_data instance and...
5778 (make_pass_postreload): ...new function.
5779 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
5780 subclass of rtl_opt_pass along with...
5781 (pass_data_gcse2): ...new pass_data instance and...
5782 (make_pass_gcse2): ...new function.
5783 * postreload.c (pass_postreload_cse): Convert from a global struct to
5784 a subclass of rtl_opt_pass along with...
5785 (pass_data_postreload_cse): ...new pass_data instance and...
5786 (make_pass_postreload_cse): ...new function.
5787 * predict.c (pass_profile): Convert from a global struct to a subclass
5788 of gimple_opt_pass along with...
5789 (pass_data_profile): ...new pass_data instance and...
5790 (make_pass_profile): ...new function.
5791 (pass_strip_predict_hints): Convert from a global struct to a subclass
5792 of gimple_opt_pass along with...
5793 (pass_data_strip_predict_hints): ...new pass_data instance and...
5794 (make_pass_strip_predict_hints): ...new function.
5795 * recog.c (pass_peephole2): Convert from a global struct to a subclass
5796 of rtl_opt_pass along with...
5797 (pass_data_peephole2): ...new pass_data instance and...
5798 (make_pass_peephole2): ...new function.
5799 (pass_split_all_insns): Convert from a global struct to a subclass of
5800 rtl_opt_pass along with...
5801 (pass_data_split_all_insns): ...new pass_data instance and...
5802 (make_pass_split_all_insns): ...new function.
5803 (pass_split_after_reload): Convert from a global struct to a subclass
5804 of rtl_opt_pass along with...
5805 (pass_data_split_after_reload): ...new pass_data instance and...
5806 (make_pass_split_after_reload): ...new function.
5807 (pass_split_before_regstack): Convert from a global struct to a
5808 subclass of rtl_opt_pass along with...
5809 (pass_data_split_before_regstack): ...new pass_data instance and...
5810 (make_pass_split_before_regstack): ...new function.
5811 (pass_split_before_sched2): Convert from a global struct to a subclass
5812 of rtl_opt_pass along with...
5813 (pass_data_split_before_sched2): ...new pass_data instance and...
5814 (make_pass_split_before_sched2): ...new function.
5815 (pass_split_for_shorten_branches): Convert from a global struct to a
5816 subclass of rtl_opt_pass along with...
5817 (pass_data_split_for_shorten_branches): ...new pass_data instance
5818 and...
5819 (make_pass_split_for_shorten_branches): ...new function.
5820 * ree.c (pass_ree): Convert from a global struct to a subclass of
5821 rtl_opt_pass along with...
5822 (pass_data_ree): ...new pass_data instance and...
5823 (make_pass_ree): ...new function.
5824 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
5825 subclass of rtl_opt_pass along with...
5826 (pass_data_stack_regs): ...new pass_data instance and...
5827 (make_pass_stack_regs): ...new function.
5828 (pass_stack_regs_run): Convert from a global struct to a subclass of
5829 rtl_opt_pass along with...
5830 (pass_data_stack_regs_run): ...new pass_data instance and...
5831 (make_pass_stack_regs_run): ...new function.
5832 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
5833 subclass of rtl_opt_pass along with...
5834 (pass_data_cprop_hardreg): ...new pass_data instance and...
5835 (make_pass_cprop_hardreg): ...new function.
5836 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
5837 subclass of rtl_opt_pass along with...
5838 (pass_data_reginfo_init): ...new pass_data instance and...
5839 (make_pass_reginfo_init): ...new function.
5840 * regmove.c (pass_regmove): Convert from a global struct to a subclass
5841 of rtl_opt_pass along with...
5842 (pass_data_regmove): ...new pass_data instance and...
5843 (make_pass_regmove): ...new function.
5844 * regrename.c (pass_regrename): Convert from a global struct to a
5845 subclass of rtl_opt_pass along with...
5846 (pass_data_regrename): ...new pass_data instance and...
5847 (make_pass_regrename): ...new function.
5848 * reorg.c (pass_delay_slots): Convert from a global struct to a
5849 subclass of rtl_opt_pass along with...
5850 (pass_data_delay_slots): ...new pass_data instance and...
5851 (make_pass_delay_slots): ...new function.
5852 (pass_machine_reorg): Convert from a global struct to a subclass of
5853 rtl_opt_pass along with...
5854 (pass_data_machine_reorg): ...new pass_data instance and...
5855 (make_pass_machine_reorg): ...new function.
5856 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
5857 of rtl_opt_pass along with...
5858 (pass_data_sched): ...new pass_data instance and...
5859 (make_pass_sched): ...new function.
5860 (pass_sched2): Convert from a global struct to a subclass of
5861 rtl_opt_pass along with...
5862 (pass_data_sched2): ...new pass_data instance and...
5863 (make_pass_sched2): ...new function.
5864 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
5865 to a subclass of rtl_opt_pass along with...
5866 (pass_data_stack_ptr_mod): ...new pass_data instance and...
5867 (make_pass_stack_ptr_mod): ...new function.
5868 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
5869 to a subclass of rtl_opt_pass along with...
5870 (pass_data_rtl_store_motion): ...new pass_data instance and...
5871 (make_pass_rtl_store_motion): ...new function.
5872 * tracer.c (pass_tracer): Convert from a global struct to a subclass
5873 of gimple_opt_pass along with...
5874 (pass_data_tracer): ...new pass_data instance and...
5875 (make_pass_tracer): ...new function.
5876 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
5877 to a subclass of gimple_opt_pass along with...
5878 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
5879 (make_pass_diagnose_tm_blocks): ...new function.
5880 (pass_lower_tm): Convert from a global struct to a subclass of
5881 gimple_opt_pass along with...
5882 (pass_data_lower_tm): ...new pass_data instance and...
5883 (make_pass_lower_tm): ...new function.
5884 (pass_tm_init): Convert from a global struct to a subclass of
5885 gimple_opt_pass along with...
5886 (pass_data_tm_init): ...new pass_data instance and...
5887 (make_pass_tm_init): ...new function.
5888 (pass_tm_mark): Convert from a global struct to a subclass of
5889 gimple_opt_pass along with...
5890 (pass_data_tm_mark): ...new pass_data instance and...
5891 (make_pass_tm_mark): ...new function.
5892 (pass_tm_edges): Convert from a global struct to a subclass of
5893 gimple_opt_pass along with...
5894 (pass_data_tm_edges): ...new pass_data instance and...
5895 (make_pass_tm_edges): ...new function.
5896 (pass_tm_memopt): Convert from a global struct to a subclass of
5897 gimple_opt_pass along with...
5898 (pass_data_tm_memopt): ...new pass_data instance and...
5899 (make_pass_tm_memopt): ...new function.
5900 (pass_ipa_tm): Convert from a global struct to a subclass of
5901 simple_ipa_opt_pass along with...
5902 (pass_data_ipa_tm): ...new pass_data instance and...
5903 (make_pass_ipa_tm): ...new function.
5904 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
5905 subclass of gimple_opt_pass along with...
5906 (pass_data_call_cdce): ...new pass_data instance and...
5907 (make_pass_call_cdce): ...new function.
5908 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
5909 subclass of gimple_opt_pass along with...
5910 (pass_data_build_cfg): ...new pass_data instance and...
5911 (make_pass_build_cfg): ...new function.
5912 (pass_split_crit_edges): Convert from a global struct to a subclass of
5913 gimple_opt_pass along with...
5914 (pass_data_split_crit_edges): ...new pass_data instance and...
5915 (make_pass_split_crit_edges): ...new function.
5916 (pass_warn_function_return): Convert from a global struct to a
5917 subclass of gimple_opt_pass along with...
5918 (pass_data_warn_function_return): ...new pass_data instance and...
5919 (make_pass_warn_function_return): ...new function.
5920 (pass_warn_function_noreturn): Convert from a global struct to a
5921 subclass of gimple_opt_pass along with...
5922 (pass_data_warn_function_noreturn): ...new pass_data instance and...
5923 (make_pass_warn_function_noreturn): ...new function.
5924 (pass_warn_unused_result): Convert from a global struct to a subclass
5925 of gimple_opt_pass along with...
5926 (pass_data_warn_unused_result): ...new pass_data instance and...
5927 (make_pass_warn_unused_result): ...new function.
5928 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
5929 a subclass of gimple_opt_pass along with...
5930 (pass_data_merge_phi): ...new pass_data instance and...
5931 (make_pass_merge_phi): ...new function.
5932 * tree-complex.c (pass_lower_complex): Convert from a global struct to
5933 a subclass of gimple_opt_pass along with...
5934 (pass_data_lower_complex): ...new pass_data instance and...
5935 (make_pass_lower_complex): ...new function.
5936 (pass_lower_complex_O0): Convert from a global struct to a subclass of
5937 gimple_opt_pass along with...
5938 (pass_data_lower_complex_O0): ...new pass_data instance and...
5939 (make_pass_lower_complex_O0): ...new function.
5940 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
5941 subclass of gimple_opt_pass along with...
5942 (pass_data_lower_eh): ...new pass_data instance and...
5943 (make_pass_lower_eh): ...new function.
5944 (pass_refactor_eh): Convert from a global struct to a subclass of
5945 gimple_opt_pass along with...
5946 (pass_data_refactor_eh): ...new pass_data instance and...
5947 (make_pass_refactor_eh): ...new function.
5948 (pass_lower_resx): Convert from a global struct to a subclass of
5949 gimple_opt_pass along with...
5950 (pass_data_lower_resx): ...new pass_data instance and...
5951 (make_pass_lower_resx): ...new function.
5952 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
5953 of gimple_opt_pass along with...
5954 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
5955 (make_pass_lower_eh_dispatch): ...new function.
5956 (pass_cleanup_eh): Convert from a global struct to a subclass of
5957 gimple_opt_pass along with...
5958 (pass_data_cleanup_eh): ...new pass_data instance and...
5959 (make_pass_cleanup_eh): ...new function.
5960 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
5961 to a subclass of simple_ipa_opt_pass along with...
5962 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
5963 (make_pass_ipa_lower_emutls): ...new function.
5964 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
5965 a subclass of gimple_opt_pass along with...
5966 (pass_data_if_conversion): ...new pass_data instance and...
5967 (make_pass_if_conversion): ...new function.
5968 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
5969 subclass of gimple_opt_pass along with...
5970 (pass_data_build_ssa): ...new pass_data instance and...
5971 (make_pass_build_ssa): ...new function.
5972 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
5973 global struct to a subclass of gimple_opt_pass along with...
5974 (pass_data_loop_distribution): ...new pass_data instance and...
5975 (make_pass_loop_distribution): ...new function.
5976 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
5977 subclass of gimple_opt_pass along with...
5978 (pass_data_mudflap_1): ...new pass_data instance and...
5979 (make_pass_mudflap_1): ...new function.
5980 (pass_mudflap_2): Convert from a global struct to a subclass of
5981 gimple_opt_pass along with...
5982 (pass_data_mudflap_2): ...new pass_data instance and...
5983 (make_pass_mudflap_2): ...new function.
5984 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
5985 subclass of gimple_opt_pass along with...
5986 (pass_data_mudflap_1): ...new pass_data instance and...
5987 (make_pass_mudflap_1): ...new function.
5988 (pass_mudflap_2): Convert from a global struct to a subclass of
5989 gimple_opt_pass along with...
5990 (pass_data_mudflap_2): ...new pass_data instance and...
5991 (make_pass_mudflap_2): ...new function.
5992 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
5993 gimple_opt_pass along with...
5994 (pass_data_nrv): ...new pass_data instance and...
5995 (make_pass_nrv): ...new function.
5996 (pass_return_slot): Convert from a global struct to a subclass of
5997 gimple_opt_pass along with...
5998 (pass_data_return_slot): ...new pass_data instance and...
5999 (make_pass_return_slot): ...new function.
6000 * tree-object-size.c (pass_object_sizes): Convert from a global struct
6001 to a subclass of gimple_opt_pass along with...
6002 (pass_data_object_sizes): ...new pass_data instance and...
6003 (make_pass_object_sizes): ...new function.
6004 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
6005 global struct to a subclass of gimple_opt_pass along with...
6006 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
6007 and...
6008 (make_pass_cleanup_cfg_post_optimizing): ...new function.
6009 (pass_fixup_cfg): Convert from a global struct to a subclass of
6010 gimple_opt_pass along with...
6011 (pass_data_fixup_cfg): ...new pass_data instance and...
6012 (make_pass_fixup_cfg): ...new function.
6013 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
6014 (make_pass_mudflap_1): ...new function.
6015 (pass_mudflap_2): Replace declaration with that of...
6016 (make_pass_mudflap_2): ...new function.
6017 (pass_asan): Replace declaration with that of...
6018 (make_pass_asan): ...new function.
6019 (pass_asan_O0): Replace declaration with that of...
6020 (make_pass_asan_O0): ...new function.
6021 (pass_tsan): Replace declaration with that of...
6022 (make_pass_tsan): ...new function.
6023 (pass_tsan_O0): Replace declaration with that of...
6024 (make_pass_tsan_O0): ...new function.
6025 (pass_lower_cf): Replace declaration with that of...
6026 (make_pass_lower_cf): ...new function.
6027 (pass_refactor_eh): Replace declaration with that of...
6028 (make_pass_refactor_eh): ...new function.
6029 (pass_lower_eh): Replace declaration with that of...
6030 (make_pass_lower_eh): ...new function.
6031 (pass_lower_eh_dispatch): Replace declaration with that of...
6032 (make_pass_lower_eh_dispatch): ...new function.
6033 (pass_lower_resx): Replace declaration with that of...
6034 (make_pass_lower_resx): ...new function.
6035 (pass_build_cfg): Replace declaration with that of...
6036 (make_pass_build_cfg): ...new function.
6037 (pass_early_tree_profile): Replace declaration with that of...
6038 (make_pass_early_tree_profile): ...new function.
6039 (pass_cleanup_eh): Replace declaration with that of...
6040 (make_pass_cleanup_eh): ...new function.
6041 (pass_sra): Replace declaration with that of...
6042 (make_pass_sra): ...new function.
6043 (pass_sra_early): Replace declaration with that of...
6044 (make_pass_sra_early): ...new function.
6045 (pass_early_ipa_sra): Replace declaration with that of...
6046 (make_pass_early_ipa_sra): ...new function.
6047 (pass_tail_recursion): Replace declaration with that of...
6048 (make_pass_tail_recursion): ...new function.
6049 (pass_tail_calls): Replace declaration with that of...
6050 (make_pass_tail_calls): ...new function.
6051 (pass_tree_loop): Replace declaration with that of...
6052 (make_pass_tree_loop): ...new function.
6053 (pass_tree_loop_init): Replace declaration with that of...
6054 (make_pass_tree_loop_init): ...new function.
6055 (pass_lim): Replace declaration with that of...
6056 (make_pass_lim): ...new function.
6057 (pass_tree_unswitch): Replace declaration with that of...
6058 (make_pass_tree_unswitch): ...new function.
6059 (pass_predcom): Replace declaration with that of...
6060 (make_pass_predcom): ...new function.
6061 (pass_iv_canon): Replace declaration with that of...
6062 (make_pass_iv_canon): ...new function.
6063 (pass_scev_cprop): Replace declaration with that of...
6064 (make_pass_scev_cprop): ...new function.
6065 (pass_empty_loop): Replace declaration with that of...
6066 (make_pass_empty_loop): ...new function.
6067 (pass_record_bounds): Replace declaration with that of...
6068 (make_pass_record_bounds): ...new function.
6069 (pass_graphite): Replace declaration with that of...
6070 (make_pass_graphite): ...new function.
6071 (pass_graphite_transforms): Replace declaration with that of...
6072 (make_pass_graphite_transforms): ...new function.
6073 (pass_if_conversion): Replace declaration with that of...
6074 (make_pass_if_conversion): ...new function.
6075 (pass_loop_distribution): Replace declaration with that of...
6076 (make_pass_loop_distribution): ...new function.
6077 (pass_vectorize): Replace declaration with that of...
6078 (make_pass_vectorize): ...new function.
6079 (pass_slp_vectorize): Replace declaration with that of...
6080 (make_pass_slp_vectorize): ...new function.
6081 (pass_complete_unroll): Replace declaration with that of...
6082 (make_pass_complete_unroll): ...new function.
6083 (pass_complete_unrolli): Replace declaration with that of...
6084 (make_pass_complete_unrolli): ...new function.
6085 (pass_parallelize_loops): Replace declaration with that of...
6086 (make_pass_parallelize_loops): ...new function.
6087 (pass_loop_prefetch): Replace declaration with that of...
6088 (make_pass_loop_prefetch): ...new function.
6089 (pass_iv_optimize): Replace declaration with that of...
6090 (make_pass_iv_optimize): ...new function.
6091 (pass_tree_loop_done): Replace declaration with that of...
6092 (make_pass_tree_loop_done): ...new function.
6093 (pass_ch): Replace declaration with that of...
6094 (make_pass_ch): ...new function.
6095 (pass_ccp): Replace declaration with that of...
6096 (make_pass_ccp): ...new function.
6097 (pass_phi_only_cprop): Replace declaration with that of...
6098 (make_pass_phi_only_cprop): ...new function.
6099 (pass_build_ssa): Replace declaration with that of...
6100 (make_pass_build_ssa): ...new function.
6101 (pass_build_alias): Replace declaration with that of...
6102 (make_pass_build_alias): ...new function.
6103 (pass_build_ealias): Replace declaration with that of...
6104 (make_pass_build_ealias): ...new function.
6105 (pass_dominator): Replace declaration with that of...
6106 (make_pass_dominator): ...new function.
6107 (pass_dce): Replace declaration with that of...
6108 (make_pass_dce): ...new function.
6109 (pass_dce_loop): Replace declaration with that of...
6110 (make_pass_dce_loop): ...new function.
6111 (pass_cd_dce): Replace declaration with that of...
6112 (make_pass_cd_dce): ...new function.
6113 (pass_call_cdce): Replace declaration with that of...
6114 (make_pass_call_cdce): ...new function.
6115 (pass_merge_phi): Replace declaration with that of...
6116 (make_pass_merge_phi): ...new function.
6117 (pass_split_crit_edges): Replace declaration with that of...
6118 (make_pass_split_crit_edges): ...new function.
6119 (pass_pre): Replace declaration with that of...
6120 (make_pass_pre): ...new function.
6121 (pass_profile): Replace declaration with that of...
6122 (make_pass_profile): ...new function.
6123 (pass_strip_predict_hints): Replace declaration with that of...
6124 (make_pass_strip_predict_hints): ...new function.
6125 (pass_lower_complex_O0): Replace declaration with that of...
6126 (make_pass_lower_complex_O0): ...new function.
6127 (pass_lower_complex): Replace declaration with that of...
6128 (make_pass_lower_complex): ...new function.
6129 (pass_lower_vector): Replace declaration with that of...
6130 (make_pass_lower_vector): ...new function.
6131 (pass_lower_vector_ssa): Replace declaration with that of...
6132 (make_pass_lower_vector_ssa): ...new function.
6133 (pass_lower_omp): Replace declaration with that of...
6134 (make_pass_lower_omp): ...new function.
6135 (pass_diagnose_omp_blocks): Replace declaration with that of...
6136 (make_pass_diagnose_omp_blocks): ...new function.
6137 (pass_expand_omp): Replace declaration with that of...
6138 (make_pass_expand_omp): ...new function.
6139 (pass_expand_omp_ssa): Replace declaration with that of...
6140 (make_pass_expand_omp_ssa): ...new function.
6141 (pass_object_sizes): Replace declaration with that of...
6142 (make_pass_object_sizes): ...new function.
6143 (pass_strlen): Replace declaration with that of...
6144 (make_pass_strlen): ...new function.
6145 (pass_fold_builtins): Replace declaration with that of...
6146 (make_pass_fold_builtins): ...new function.
6147 (pass_stdarg): Replace declaration with that of...
6148 (make_pass_stdarg): ...new function.
6149 (pass_early_warn_uninitialized): Replace declaration with that of...
6150 (make_pass_early_warn_uninitialized): ...new function.
6151 (pass_late_warn_uninitialized): Replace declaration with that of...
6152 (make_pass_late_warn_uninitialized): ...new function.
6153 (pass_cse_reciprocals): Replace declaration with that of...
6154 (make_pass_cse_reciprocals): ...new function.
6155 (pass_cse_sincos): Replace declaration with that of...
6156 (make_pass_cse_sincos): ...new function.
6157 (pass_optimize_bswap): Replace declaration with that of...
6158 (make_pass_optimize_bswap): ...new function.
6159 (pass_optimize_widening_mul): Replace declaration with that of...
6160 (make_pass_optimize_widening_mul): ...new function.
6161 (pass_warn_function_return): Replace declaration with that of...
6162 (make_pass_warn_function_return): ...new function.
6163 (pass_warn_function_noreturn): Replace declaration with that of...
6164 (make_pass_warn_function_noreturn): ...new function.
6165 (pass_cselim): Replace declaration with that of...
6166 (make_pass_cselim): ...new function.
6167 (pass_phiopt): Replace declaration with that of...
6168 (make_pass_phiopt): ...new function.
6169 (pass_forwprop): Replace declaration with that of...
6170 (make_pass_forwprop): ...new function.
6171 (pass_phiprop): Replace declaration with that of...
6172 (make_pass_phiprop): ...new function.
6173 (pass_tree_ifcombine): Replace declaration with that of...
6174 (make_pass_tree_ifcombine): ...new function.
6175 (pass_dse): Replace declaration with that of...
6176 (make_pass_dse): ...new function.
6177 (pass_nrv): Replace declaration with that of...
6178 (make_pass_nrv): ...new function.
6179 (pass_rename_ssa_copies): Replace declaration with that of...
6180 (make_pass_rename_ssa_copies): ...new function.
6181 (pass_sink_code): Replace declaration with that of...
6182 (make_pass_sink_code): ...new function.
6183 (pass_fre): Replace declaration with that of...
6184 (make_pass_fre): ...new function.
6185 (pass_check_data_deps): Replace declaration with that of...
6186 (make_pass_check_data_deps): ...new function.
6187 (pass_copy_prop): Replace declaration with that of...
6188 (make_pass_copy_prop): ...new function.
6189 (pass_vrp): Replace declaration with that of...
6190 (make_pass_vrp): ...new function.
6191 (pass_uncprop): Replace declaration with that of...
6192 (make_pass_uncprop): ...new function.
6193 (pass_return_slot): Replace declaration with that of...
6194 (make_pass_return_slot): ...new function.
6195 (pass_reassoc): Replace declaration with that of...
6196 (make_pass_reassoc): ...new function.
6197 (pass_rebuild_cgraph_edges): Replace declaration with that of...
6198 (make_pass_rebuild_cgraph_edges): ...new function.
6199 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
6200 (make_pass_remove_cgraph_callee_edges): ...new function.
6201 (pass_build_cgraph_edges): Replace declaration with that of...
6202 (make_pass_build_cgraph_edges): ...new function.
6203 (pass_local_pure_const): Replace declaration with that of...
6204 (make_pass_local_pure_const): ...new function.
6205 (pass_tracer): Replace declaration with that of...
6206 (make_pass_tracer): ...new function.
6207 (pass_warn_unused_result): Replace declaration with that of...
6208 (make_pass_warn_unused_result): ...new function.
6209 (pass_diagnose_tm_blocks): Replace declaration with that of...
6210 (make_pass_diagnose_tm_blocks): ...new function.
6211 (pass_lower_tm): Replace declaration with that of...
6212 (make_pass_lower_tm): ...new function.
6213 (pass_tm_init): Replace declaration with that of...
6214 (make_pass_tm_init): ...new function.
6215 (pass_tm_mark): Replace declaration with that of...
6216 (make_pass_tm_mark): ...new function.
6217 (pass_tm_memopt): Replace declaration with that of...
6218 (make_pass_tm_memopt): ...new function.
6219 (pass_tm_edges): Replace declaration with that of...
6220 (make_pass_tm_edges): ...new function.
6221 (pass_split_functions): Replace declaration with that of...
6222 (make_pass_split_functions): ...new function.
6223 (pass_feedback_split_functions): Replace declaration with that of...
6224 (make_pass_feedback_split_functions): ...new function.
6225 (pass_strength_reduction): Replace declaration with that of...
6226 (make_pass_strength_reduction): ...new function.
6227 (pass_ipa_lower_emutls): Replace declaration with that of...
6228 (make_pass_ipa_lower_emutls): ...new function.
6229 (pass_ipa_function_and_variable_visibility): Replace declaration with
6230 that of...
6231 (make_pass_ipa_function_and_variable_visibility): ...new function.
6232 (pass_ipa_tree_profile): Replace declaration with that of...
6233 (make_pass_ipa_tree_profile): ...new function.
6234 (pass_early_local_passes): Replace declaration with that of...
6235 (make_pass_early_local_passes): ...new function.
6236 (pass_ipa_whole_program_visibility): Replace declaration with that
6237 of...
6238 (make_pass_ipa_whole_program_visibility): ...new function.
6239 (pass_ipa_lto_gimple_out): Replace declaration with that of...
6240 (make_pass_ipa_lto_gimple_out): ...new function.
6241 (pass_ipa_increase_alignment): Replace declaration with that of...
6242 (make_pass_ipa_increase_alignment): ...new function.
6243 (pass_ipa_inline): Replace declaration with that of...
6244 (make_pass_ipa_inline): ...new function.
6245 (pass_ipa_free_lang_data): Replace declaration with that of...
6246 (make_pass_ipa_free_lang_data): ...new function.
6247 (pass_ipa_free_inline_summary): Replace declaration with that of...
6248 (make_pass_ipa_free_inline_summary): ...new function.
6249 (pass_ipa_cp): Replace declaration with that of...
6250 (make_pass_ipa_cp): ...new function.
6251 (pass_ipa_reference): Replace declaration with that of...
6252 (make_pass_ipa_reference): ...new function.
6253 (pass_ipa_pure_const): Replace declaration with that of...
6254 (make_pass_ipa_pure_const): ...new function.
6255 (pass_ipa_pta): Replace declaration with that of...
6256 (make_pass_ipa_pta): ...new function.
6257 (pass_ipa_lto_finish_out): Replace declaration with that of...
6258 (make_pass_ipa_lto_finish_out): ...new function.
6259 (pass_ipa_tm): Replace declaration with that of...
6260 (make_pass_ipa_tm): ...new function.
6261 (pass_ipa_profile): Replace declaration with that of...
6262 (make_pass_ipa_profile): ...new function.
6263 (pass_ipa_cdtor_merge): Replace declaration with that of...
6264 (make_pass_ipa_cdtor_merge): ...new function.
6265 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
6266 of...
6267 (make_pass_cleanup_cfg_post_optimizing): ...new function.
6268 (pass_init_datastructures): Replace declaration with that of...
6269 (make_pass_init_datastructures): ...new function.
6270 (pass_fixup_cfg): Replace declaration with that of...
6271 (make_pass_fixup_cfg): ...new function.
6272 (pass_expand): Replace declaration with that of...
6273 (make_pass_expand): ...new function.
6274 (pass_instantiate_virtual_regs): Replace declaration with that of...
6275 (make_pass_instantiate_virtual_regs): ...new function.
6276 (pass_rtl_fwprop): Replace declaration with that of...
6277 (make_pass_rtl_fwprop): ...new function.
6278 (pass_rtl_fwprop_addr): Replace declaration with that of...
6279 (make_pass_rtl_fwprop_addr): ...new function.
6280 (pass_jump): Replace declaration with that of...
6281 (make_pass_jump): ...new function.
6282 (pass_jump2): Replace declaration with that of...
6283 (make_pass_jump2): ...new function.
6284 (pass_lower_subreg): Replace declaration with that of...
6285 (make_pass_lower_subreg): ...new function.
6286 (pass_cse): Replace declaration with that of...
6287 (make_pass_cse): ...new function.
6288 (pass_fast_rtl_dce): Replace declaration with that of...
6289 (make_pass_fast_rtl_dce): ...new function.
6290 (pass_ud_rtl_dce): Replace declaration with that of...
6291 (make_pass_ud_rtl_dce): ...new function.
6292 (pass_rtl_dce): Replace declaration with that of...
6293 (make_pass_rtl_dce): ...new function.
6294 (pass_rtl_dse1): Replace declaration with that of...
6295 (make_pass_rtl_dse1): ...new function.
6296 (pass_rtl_dse2): Replace declaration with that of...
6297 (make_pass_rtl_dse2): ...new function.
6298 (pass_rtl_dse3): Replace declaration with that of...
6299 (make_pass_rtl_dse3): ...new function.
6300 (pass_rtl_cprop): Replace declaration with that of...
6301 (make_pass_rtl_cprop): ...new function.
6302 (pass_rtl_pre): Replace declaration with that of...
6303 (make_pass_rtl_pre): ...new function.
6304 (pass_rtl_hoist): Replace declaration with that of...
6305 (make_pass_rtl_hoist): ...new function.
6306 (pass_rtl_store_motion): Replace declaration with that of...
6307 (make_pass_rtl_store_motion): ...new function.
6308 (pass_cse_after_global_opts): Replace declaration with that of...
6309 (make_pass_cse_after_global_opts): ...new function.
6310 (pass_rtl_ifcvt): Replace declaration with that of...
6311 (make_pass_rtl_ifcvt): ...new function.
6312 (pass_into_cfg_layout_mode): Replace declaration with that of...
6313 (make_pass_into_cfg_layout_mode): ...new function.
6314 (pass_outof_cfg_layout_mode): Replace declaration with that of...
6315 (make_pass_outof_cfg_layout_mode): ...new function.
6316 (pass_loop2): Replace declaration with that of...
6317 (make_pass_loop2): ...new function.
6318 (pass_rtl_loop_init): Replace declaration with that of...
6319 (make_pass_rtl_loop_init): ...new function.
6320 (pass_rtl_move_loop_invariants): Replace declaration with that of...
6321 (make_pass_rtl_move_loop_invariants): ...new function.
6322 (pass_rtl_unswitch): Replace declaration with that of...
6323 (make_pass_rtl_unswitch): ...new function.
6324 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
6325 (make_pass_rtl_unroll_and_peel_loops): ...new function.
6326 (pass_rtl_doloop): Replace declaration with that of...
6327 (make_pass_rtl_doloop): ...new function.
6328 (pass_rtl_loop_done): Replace declaration with that of...
6329 (make_pass_rtl_loop_done): ...new function.
6330 (pass_web): Replace declaration with that of...
6331 (make_pass_web): ...new function.
6332 (pass_cse2): Replace declaration with that of...
6333 (make_pass_cse2): ...new function.
6334 (pass_df_initialize_opt): Replace declaration with that of...
6335 (make_pass_df_initialize_opt): ...new function.
6336 (pass_df_initialize_no_opt): Replace declaration with that of...
6337 (make_pass_df_initialize_no_opt): ...new function.
6338 (pass_reginfo_init): Replace declaration with that of...
6339 (make_pass_reginfo_init): ...new function.
6340 (pass_inc_dec): Replace declaration with that of...
6341 (make_pass_inc_dec): ...new function.
6342 (pass_stack_ptr_mod): Replace declaration with that of...
6343 (make_pass_stack_ptr_mod): ...new function.
6344 (pass_initialize_regs): Replace declaration with that of...
6345 (make_pass_initialize_regs): ...new function.
6346 (pass_combine): Replace declaration with that of...
6347 (make_pass_combine): ...new function.
6348 (pass_if_after_combine): Replace declaration with that of...
6349 (make_pass_if_after_combine): ...new function.
6350 (pass_ree): Replace declaration with that of...
6351 (make_pass_ree): ...new function.
6352 (pass_partition_blocks): Replace declaration with that of...
6353 (make_pass_partition_blocks): ...new function.
6354 (pass_match_asm_constraints): Replace declaration with that of...
6355 (make_pass_match_asm_constraints): ...new function.
6356 (pass_regmove): Replace declaration with that of...
6357 (make_pass_regmove): ...new function.
6358 (pass_split_all_insns): Replace declaration with that of...
6359 (make_pass_split_all_insns): ...new function.
6360 (pass_fast_rtl_byte_dce): Replace declaration with that of...
6361 (make_pass_fast_rtl_byte_dce): ...new function.
6362 (pass_lower_subreg2): Replace declaration with that of...
6363 (make_pass_lower_subreg2): ...new function.
6364 (pass_mode_switching): Replace declaration with that of...
6365 (make_pass_mode_switching): ...new function.
6366 (pass_sms): Replace declaration with that of...
6367 (make_pass_sms): ...new function.
6368 (pass_sched): Replace declaration with that of...
6369 (make_pass_sched): ...new function.
6370 (pass_ira): Replace declaration with that of...
6371 (make_pass_ira): ...new function.
6372 (pass_reload): Replace declaration with that of...
6373 (make_pass_reload): ...new function.
6374 (pass_clean_state): Replace declaration with that of...
6375 (make_pass_clean_state): ...new function.
6376 (pass_branch_prob): Replace declaration with that of...
6377 (make_pass_branch_prob): ...new function.
6378 (pass_value_profile_transformations): Replace declaration with that
6379 of...
6380 (make_pass_value_profile_transformations): ...new function.
6381 (pass_postreload_cse): Replace declaration with that of...
6382 (make_pass_postreload_cse): ...new function.
6383 (pass_gcse2): Replace declaration with that of...
6384 (make_pass_gcse2): ...new function.
6385 (pass_split_after_reload): Replace declaration with that of...
6386 (make_pass_split_after_reload): ...new function.
6387 (pass_branch_target_load_optimize1): Replace declaration with that
6388 of...
6389 (make_pass_branch_target_load_optimize1): ...new function.
6390 (pass_thread_prologue_and_epilogue): Replace declaration with that
6391 of...
6392 (make_pass_thread_prologue_and_epilogue): ...new function.
6393 (pass_stack_adjustments): Replace declaration with that of...
6394 (make_pass_stack_adjustments): ...new function.
6395 (pass_peephole2): Replace declaration with that of...
6396 (make_pass_peephole2): ...new function.
6397 (pass_if_after_reload): Replace declaration with that of...
6398 (make_pass_if_after_reload): ...new function.
6399 (pass_regrename): Replace declaration with that of...
6400 (make_pass_regrename): ...new function.
6401 (pass_cprop_hardreg): Replace declaration with that of...
6402 (make_pass_cprop_hardreg): ...new function.
6403 (pass_reorder_blocks): Replace declaration with that of...
6404 (make_pass_reorder_blocks): ...new function.
6405 (pass_branch_target_load_optimize2): Replace declaration with that
6406 of...
6407 (make_pass_branch_target_load_optimize2): ...new function.
6408 (pass_leaf_regs): Replace declaration with that of...
6409 (make_pass_leaf_regs): ...new function.
6410 (pass_split_before_sched2): Replace declaration with that of...
6411 (make_pass_split_before_sched2): ...new function.
6412 (pass_compare_elim_after_reload): Replace declaration with that of...
6413 (make_pass_compare_elim_after_reload): ...new function.
6414 (pass_sched2): Replace declaration with that of...
6415 (make_pass_sched2): ...new function.
6416 (pass_stack_regs): Replace declaration with that of...
6417 (make_pass_stack_regs): ...new function.
6418 (pass_stack_regs_run): Replace declaration with that of...
6419 (make_pass_stack_regs_run): ...new function.
6420 (pass_df_finish): Replace declaration with that of...
6421 (make_pass_df_finish): ...new function.
6422 (pass_compute_alignments): Replace declaration with that of...
6423 (make_pass_compute_alignments): ...new function.
6424 (pass_duplicate_computed_gotos): Replace declaration with that of...
6425 (make_pass_duplicate_computed_gotos): ...new function.
6426 (pass_variable_tracking): Replace declaration with that of...
6427 (make_pass_variable_tracking): ...new function.
6428 (pass_free_cfg): Replace declaration with that of...
6429 (make_pass_free_cfg): ...new function.
6430 (pass_machine_reorg): Replace declaration with that of...
6431 (make_pass_machine_reorg): ...new function.
6432 (pass_cleanup_barriers): Replace declaration with that of...
6433 (make_pass_cleanup_barriers): ...new function.
6434 (pass_delay_slots): Replace declaration with that of...
6435 (make_pass_delay_slots): ...new function.
6436 (pass_split_for_shorten_branches): Replace declaration with that of...
6437 (make_pass_split_for_shorten_branches): ...new function.
6438 (pass_split_before_regstack): Replace declaration with that of...
6439 (make_pass_split_before_regstack): ...new function.
6440 (pass_convert_to_eh_region_ranges): Replace declaration with that
6441 of...
6442 (make_pass_convert_to_eh_region_ranges): ...new function.
6443 (pass_shorten_branches): Replace declaration with that of...
6444 (make_pass_shorten_branches): ...new function.
6445 (pass_set_nothrow_function_flags): Replace declaration with that of...
6446 (make_pass_set_nothrow_function_flags): ...new function.
6447 (pass_dwarf2_frame): Replace declaration with that of...
6448 (make_pass_dwarf2_frame): ...new function.
6449 (pass_final): Replace declaration with that of...
6450 (make_pass_final): ...new function.
6451 (pass_rtl_seqabstr): Replace declaration with that of...
6452 (make_pass_rtl_seqabstr): ...new function.
6453 (pass_release_ssa_names): Replace declaration with that of...
6454 (make_pass_release_ssa_names): ...new function.
6455 (pass_early_inline): Replace declaration with that of...
6456 (make_pass_early_inline): ...new function.
6457 (pass_inline_parameters): Replace declaration with that of...
6458 (make_pass_inline_parameters): ...new function.
6459 (pass_update_address_taken): Replace declaration with that of...
6460 (make_pass_update_address_taken): ...new function.
6461 (pass_convert_switch): Replace declaration with that of...
6462 (make_pass_convert_switch): ...new function.
6463 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
6464 to a subclass of simple_ipa_opt_pass along with...
6465 (pass_data_ipa_tree_profile): ...new pass_data instance and...
6466 (make_pass_ipa_tree_profile): ...new function.
6467 * tree-sra.c (pass_sra_early): Convert from a global struct to a
6468 subclass of gimple_opt_pass along with...
6469 (pass_data_sra_early): ...new pass_data instance and...
6470 (make_pass_sra_early): ...new function.
6471 (pass_sra): Convert from a global struct to a subclass of
6472 gimple_opt_pass along with...
6473 (pass_data_sra): ...new pass_data instance and...
6474 (make_pass_sra): ...new function.
6475 (pass_early_ipa_sra): Convert from a global struct to a subclass of
6476 gimple_opt_pass along with...
6477 (pass_data_early_ipa_sra): ...new pass_data instance and...
6478 (make_pass_early_ipa_sra): ...new function.
6479 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
6480 subclass of gimple_opt_pass along with...
6481 (pass_data_ccp): ...new pass_data instance and...
6482 (make_pass_ccp): ...new function.
6483 (pass_fold_builtins): Convert from a global struct to a subclass of
6484 gimple_opt_pass along with...
6485 (pass_data_fold_builtins): ...new pass_data instance and...
6486 (make_pass_fold_builtins): ...new function.
6487 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
6488 subclass of gimple_opt_pass along with...
6489 (pass_data_copy_prop): ...new pass_data instance and...
6490 (make_pass_copy_prop): ...new function.
6491 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
6492 global struct to a subclass of gimple_opt_pass along with...
6493 (pass_data_rename_ssa_copies): ...new pass_data instance and...
6494 (make_pass_rename_ssa_copies): ...new function.
6495 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
6496 subclass of gimple_opt_pass along with...
6497 (pass_data_dce): ...new pass_data instance and...
6498 (make_pass_dce): ...new function.
6499 (pass_dce_loop): Convert from a global struct to a subclass of
6500 gimple_opt_pass along with...
6501 (pass_data_dce_loop): ...new pass_data instance and...
6502 (make_pass_dce_loop): ...new function.
6503 (pass_cd_dce): Convert from a global struct to a subclass of
6504 gimple_opt_pass along with...
6505 (pass_data_cd_dce): ...new pass_data instance and...
6506 (make_pass_cd_dce): ...new function.
6507 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
6508 subclass of gimple_opt_pass along with...
6509 (pass_data_dominator): ...new pass_data instance and...
6510 (make_pass_dominator): ...new function.
6511 (pass_phi_only_cprop): Convert from a global struct to a subclass of
6512 gimple_opt_pass along with...
6513 (pass_data_phi_only_cprop): ...new pass_data instance and...
6514 (make_pass_phi_only_cprop): ...new function.
6515 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
6516 subclass of gimple_opt_pass along with...
6517 (pass_data_dse): ...new pass_data instance and...
6518 (make_pass_dse): ...new function.
6519 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
6520 a subclass of gimple_opt_pass along with...
6521 (pass_data_forwprop): ...new pass_data instance and...
6522 (make_pass_forwprop): ...new function.
6523 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
6524 struct to a subclass of gimple_opt_pass along with...
6525 (pass_data_tree_ifcombine): ...new pass_data instance and...
6526 (make_pass_tree_ifcombine): ...new function.
6527 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
6528 subclass of gimple_opt_pass along with...
6529 (pass_data_ch): ...new pass_data instance and...
6530 (make_pass_ch): ...new function.
6531 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
6532 subclass of gimple_opt_pass along with...
6533 (pass_data_tree_loop): ...new pass_data instance and...
6534 (make_pass_tree_loop): ...new function.
6535 (pass_tree_loop_init): Convert from a global struct to a subclass of
6536 gimple_opt_pass along with...
6537 (pass_data_tree_loop_init): ...new pass_data instance and...
6538 (make_pass_tree_loop_init): ...new function.
6539 (pass_lim): Convert from a global struct to a subclass of
6540 gimple_opt_pass along with...
6541 (pass_data_lim): ...new pass_data instance and...
6542 (make_pass_lim): ...new function.
6543 (pass_tree_unswitch): Convert from a global struct to a subclass of
6544 gimple_opt_pass along with...
6545 (pass_data_tree_unswitch): ...new pass_data instance and...
6546 (make_pass_tree_unswitch): ...new function.
6547 (pass_predcom): Convert from a global struct to a subclass of
6548 gimple_opt_pass along with...
6549 (pass_data_predcom): ...new pass_data instance and...
6550 (make_pass_predcom): ...new function.
6551 (pass_vectorize): Convert from a global struct to a subclass of
6552 gimple_opt_pass along with...
6553 (pass_data_vectorize): ...new pass_data instance and...
6554 (make_pass_vectorize): ...new function.
6555 (pass_graphite): Convert from a global struct to a subclass of
6556 gimple_opt_pass along with...
6557 (pass_data_graphite): ...new pass_data instance and...
6558 (make_pass_graphite): ...new function.
6559 (pass_graphite_transforms): Convert from a global struct to a subclass
6560 of gimple_opt_pass along with...
6561 (pass_data_graphite_transforms): ...new pass_data instance and...
6562 (make_pass_graphite_transforms): ...new function.
6563 (pass_check_data_deps): Convert from a global struct to a subclass of
6564 gimple_opt_pass along with...
6565 (pass_data_check_data_deps): ...new pass_data instance and...
6566 (make_pass_check_data_deps): ...new function.
6567 (pass_iv_canon): Convert from a global struct to a subclass of
6568 gimple_opt_pass along with...
6569 (pass_data_iv_canon): ...new pass_data instance and...
6570 (make_pass_iv_canon): ...new function.
6571 (pass_scev_cprop): Convert from a global struct to a subclass of
6572 gimple_opt_pass along with...
6573 (pass_data_scev_cprop): ...new pass_data instance and...
6574 (make_pass_scev_cprop): ...new function.
6575 (pass_record_bounds): Convert from a global struct to a subclass of
6576 gimple_opt_pass along with...
6577 (pass_data_record_bounds): ...new pass_data instance and...
6578 (make_pass_record_bounds): ...new function.
6579 (pass_complete_unroll): Convert from a global struct to a subclass of
6580 gimple_opt_pass along with...
6581 (pass_data_complete_unroll): ...new pass_data instance and...
6582 (make_pass_complete_unroll): ...new function.
6583 (pass_complete_unrolli): Convert from a global struct to a subclass of
6584 gimple_opt_pass along with...
6585 (pass_data_complete_unrolli): ...new pass_data instance and...
6586 (make_pass_complete_unrolli): ...new function.
6587 (pass_parallelize_loops): Convert from a global struct to a subclass
6588 of gimple_opt_pass along with...
6589 (pass_data_parallelize_loops): ...new pass_data instance and...
6590 (make_pass_parallelize_loops): ...new function.
6591 (pass_loop_prefetch): Convert from a global struct to a subclass of
6592 gimple_opt_pass along with...
6593 (pass_data_loop_prefetch): ...new pass_data instance and...
6594 (make_pass_loop_prefetch): ...new function.
6595 (pass_iv_optimize): Convert from a global struct to a subclass of
6596 gimple_opt_pass along with...
6597 (pass_data_iv_optimize): ...new pass_data instance and...
6598 (make_pass_iv_optimize): ...new function.
6599 (pass_tree_loop_done): Convert from a global struct to a subclass of
6600 gimple_opt_pass along with...
6601 (pass_data_tree_loop_done): ...new pass_data instance and...
6602 (make_pass_tree_loop_done): ...new function.
6603 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
6604 struct to a subclass of gimple_opt_pass along with...
6605 (pass_data_cse_reciprocals): ...new pass_data instance and...
6606 (make_pass_cse_reciprocals): ...new function.
6607 (pass_cse_sincos): Convert from a global struct to a subclass of
6608 gimple_opt_pass along with...
6609 (pass_data_cse_sincos): ...new pass_data instance and...
6610 (make_pass_cse_sincos): ...new function.
6611 (pass_optimize_bswap): Convert from a global struct to a subclass of
6612 gimple_opt_pass along with...
6613 (pass_data_optimize_bswap): ...new pass_data instance and...
6614 (make_pass_optimize_bswap): ...new function.
6615 (pass_optimize_widening_mul): Convert from a global struct to a
6616 subclass of gimple_opt_pass along with...
6617 (pass_data_optimize_widening_mul): ...new pass_data instance and...
6618 (make_pass_optimize_widening_mul): ...new function.
6619 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
6620 subclass of gimple_opt_pass along with...
6621 (pass_data_phiopt): ...new pass_data instance and...
6622 (make_pass_phiopt): ...new function.
6623 (pass_cselim): Convert from a global struct to a subclass of
6624 gimple_opt_pass along with...
6625 (pass_data_cselim): ...new pass_data instance and...
6626 (make_pass_cselim): ...new function.
6627 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
6628 subclass of gimple_opt_pass along with...
6629 (pass_data_phiprop): ...new pass_data instance and...
6630 (make_pass_phiprop): ...new function.
6631 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
6632 subclass of gimple_opt_pass along with...
6633 (pass_data_pre): ...new pass_data instance and...
6634 (make_pass_pre): ...new function.
6635 (pass_fre): Convert from a global struct to a subclass of
6636 gimple_opt_pass along with...
6637 (pass_data_fre): ...new pass_data instance and...
6638 (make_pass_fre): ...new function.
6639 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
6640 subclass of gimple_opt_pass along with...
6641 (pass_data_reassoc): ...new pass_data instance and...
6642 (make_pass_reassoc): ...new function.
6643 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
6644 subclass of gimple_opt_pass along with...
6645 (pass_data_sink_code): ...new pass_data instance and...
6646 (make_pass_sink_code): ...new function.
6647 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
6648 subclass of gimple_opt_pass along with...
6649 (pass_data_strlen): ...new pass_data instance and...
6650 (make_pass_strlen): ...new function.
6651 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
6652 struct to a subclass of gimple_opt_pass along with...
6653 (pass_data_build_alias): ...new pass_data instance and...
6654 (make_pass_build_alias): ...new function.
6655 (pass_build_ealias): Convert from a global struct to a subclass of
6656 gimple_opt_pass along with...
6657 (pass_data_build_ealias): ...new pass_data instance and...
6658 (make_pass_build_ealias): ...new function.
6659 (pass_ipa_pta): Convert from a global struct to a subclass of
6660 simple_ipa_opt_pass along with...
6661 (pass_data_ipa_pta): ...new pass_data instance and...
6662 (make_pass_ipa_pta): ...new function.
6663 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
6664 subclass of gimple_opt_pass along with...
6665 (pass_data_uncprop): ...new pass_data instance and...
6666 (make_pass_uncprop): ...new function.
6667 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
6668 global struct to a subclass of gimple_opt_pass along with...
6669 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
6670 (make_pass_late_warn_uninitialized): ...new function.
6671 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
6672 to a subclass of gimple_opt_pass along with...
6673 (pass_data_init_datastructures): ...new pass_data instance and...
6674 (make_pass_init_datastructures): ...new function.
6675 (pass_early_warn_uninitialized): Convert from a global struct to a
6676 subclass of gimple_opt_pass along with...
6677 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
6678 (make_pass_early_warn_uninitialized): ...new function.
6679 (pass_update_address_taken): Convert from a global struct to a
6680 subclass of gimple_opt_pass along with...
6681 (pass_data_update_address_taken): ...new pass_data instance and...
6682 (make_pass_update_address_taken): ...new function.
6683 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
6684 struct to a subclass of gimple_opt_pass along with...
6685 (pass_data_release_ssa_names): ...new pass_data instance and...
6686 (make_pass_release_ssa_names): ...new function.
6687 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
6688 subclass of gimple_opt_pass along with...
6689 (pass_data_stdarg): ...new pass_data instance and...
6690 (make_pass_stdarg): ...new function.
6691 * tree-switch-conversion.c (pass_convert_switch): Convert from a
6692 global struct to a subclass of gimple_opt_pass along with...
6693 (pass_data_convert_switch): ...new pass_data instance and...
6694 (make_pass_convert_switch): ...new function.
6695 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
6696 to a subclass of gimple_opt_pass along with...
6697 (pass_data_tail_recursion): ...new pass_data instance and...
6698 (make_pass_tail_recursion): ...new function.
6699 (pass_tail_calls): Convert from a global struct to a subclass of
6700 gimple_opt_pass along with...
6701 (pass_data_tail_calls): ...new pass_data instance and...
6702 (make_pass_tail_calls): ...new function.
6703 * tree-vect-generic.c (pass_lower_vector): Convert from a global
6704 struct to a subclass of gimple_opt_pass along with...
6705 (pass_data_lower_vector): ...new pass_data instance and...
6706 (make_pass_lower_vector): ...new function.
6707 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
6708 gimple_opt_pass along with...
6709 (pass_data_lower_vector_ssa): ...new pass_data instance and...
6710 (make_pass_lower_vector_ssa): ...new function.
6711 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
6712 to a subclass of gimple_opt_pass along with...
6713 (pass_data_slp_vectorize): ...new pass_data instance and...
6714 (make_pass_slp_vectorize): ...new function.
6715 (pass_ipa_increase_alignment): Convert from a global struct to a
6716 subclass of simple_ipa_opt_pass along with...
6717 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
6718 (make_pass_ipa_increase_alignment): ...new function.
6719 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
6720 gimple_opt_pass along with...
6721 (pass_data_vrp): ...new pass_data instance and...
6722 (make_pass_vrp): ...new function.
6723 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
6724 subclass of simple_ipa_opt_pass along with...
6725 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
6726 (make_pass_ipa_free_lang_data): ...new function.
6727 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
6728 gimple_opt_pass along with...
6729 (pass_data_tsan): ...new pass_data instance and...
6730 (make_pass_tsan): ...new function.
6731 (pass_tsan_O0): Convert from a global struct to a subclass of
6732 gimple_opt_pass along with...
6733 (pass_data_tsan_O0): ...new pass_data instance and...
6734 (make_pass_tsan_O0): ...new function.
6735 * var-tracking.c (pass_variable_tracking): Convert from a global
6736 struct to a subclass of rtl_opt_pass along with...
6737 (pass_data_variable_tracking): ...new pass_data instance and...
6738 (make_pass_variable_tracking): ...new function.
6739 * web.c (pass_web): Convert from a global struct to a subclass of
6740 rtl_opt_pass along with...
6741 (pass_data_web): ...new pass_data instance and...
6742 (make_pass_web): ...new function.
6743 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
6744 declaration with that of...
6745 (make_pass_mode_switch_use): ...new function.
6746 (pass_resolve_sw_modes): Replace declaration with that of...
6747 (make_pass_resolve_sw_modes): ...new function.
6748 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
6749 from a global struct to a subclass of rtl_opt_pass along with...
6750 (pass_data_mode_switch_use): ...new pass_data instance and...
6751 (make_pass_mode_switch_use): ...new function.
6752 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
6753 from a global struct to a subclass of rtl_opt_pass along with...
6754 (pass_data_resolve_sw_modes): ...new pass_data instance and...
6755 (make_pass_resolve_sw_modes): ...new function.
6756 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
6757 struct to a subclass of rtl_opt_pass along with...
6758 (pass_data_insert_vzeroupper): ...new pass_data instance and...
6759 (make_pass_insert_vzeroupper): ...new function.
6760 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
6761 global struct to a subclass of rtl_opt_pass along with...
6762 (pass_data_work_around_errata): ...new pass_data instance and...
6763 (make_pass_work_around_errata): ...new function.
6764 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
6765 struct to a subclass of rtl_opt_pass along with...
6766 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
6767 (make_pass_mips_machine_reorg2): ...new function.
6768
6a389ed5
DM
67692013-08-05 David Malcolm <dmalcolm@redhat.com>
6770
6771 * passes.c (pass_manager::operator new): New.
6772
f7695dbf
DM
67732013-08-05 David Malcolm <dmalcolm@redhat.com>
6774
6775 Handwritten part of conversion of passes to C++ classes.
6776
6777 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
6778 (toplev.o): Add dep on PASS_MANAGER_H.
6779 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
6780 of early local pases to reflect this moving from a global to a
6781 member of gcc::pass_manager.
6782 (cgraph_add_new_function): Likewise.
6783 * lto-cgraph.c (lto_output_node): Update for conversion of
6784 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
6785 * passes.c (opt_pass::clone): New.
6786 (opt_pass::gate): New.
6787 (opt_pass::execute): New.
6788 (opt_pass::opt_pass): New.
6789 (pass_manager::execute_early_local_passes): New.
6790 (pass_manager::execute_pass_mode_switching): new.
6791 (finish_optimization_passes): Convert to...
6792 (pass_manager::finish_optimization_passes): ...this.
6793 (finish_optimization_passes): Update for conversion of passes to
6794 C++ classes.
6795 (register_dump_files_1): Use has_gate since we cannot portably
6796 check a vtable entry against NULL.
6797 (dump_one_pass): Likewise.
6798 (ipa_write_summaries_2): Likewise.
6799 (ipa_write_optimization_summaries_1): Likewise.
6800 (ipa_read_summaries_1): Likewise.
6801 (ipa_read_optimization_summaries_1): Likewise.
6802 (execute_ipa_stmt_fixups): Likewise.
6803 (pass_manager::pass_manager): Rewrite pass-creation, invoking
6804 pass-creation functions rather than wiring up globals, and
6805 storing the results in fields of pass_manager generated using
6806 pass-instances.def.
6807 (pass_manager::dump_profile_report): Update for conversion of
6808 passes to C++ classes.
6809 (pass_manager::execute_ipa_summary_passes): Likewise.
6810 (execute_one_ipa_transform_pass): Likewise.
6811 (execute_one_pass): Use has_gate and has_execute since we cannot
6812 portably check a vtable entry against NULL.
6813 * pass_manager.h (pass_manager::finish_optimization_passes): New.
6814 (pass_manager): Use pass-instances.def to add fields for the
6815 various pass instances.
6816 * toplev.c (finalize): Update for move of
6817 finish_optimization_passes to a method of gcc::pass_manager.
6818 * toplev.h (finish_optimization_passes): Move to method of class
6819 pass_manager.
6820 * tree-pass.h (struct pass_data): New.
03b0ee0a 6821 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
6822 (opt_pass::gate): Convert to virtual function.
6823 (opt_pass::~opt_pass): New.
6824 (opt_pass::clone): New.
6825 (opt_pass::execute): Convert to virtual function.
6826 (opt_pass::opt_pass): New.
6827 (opt_pass::ctxt_): new.
6828 (gimple_opt_pass): Convert to subclass of opt_pass.
6829 (gimple_opt_pass::gimple_opt_pass): New.
6830 (rtl_opt_pass): Convert to subclass of opt_pass.
6831 (rtl_opt_pass::rtl_opt_pass): New.
6832 (ipa_opt_pass_d): Convert to subclass of opt_pass.
6833 (ipa_opt_pass_d::ipa_opt_pass_d): New.
6834 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
6835 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
6836 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
6837 invocation of pass_mode_switching to reflect this moving from a
6838 global to a member of gcc::pass_manager.
6839 (ix86_option_override): Rework how pass_insert_vzeroupper is
6840 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 6841 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 6842
d0b2f831
RE
68432013-08-05 Richard Earnshaw <rearnsha@arm.com>
6844
6845 PR rtl-optimization/57708
6846 * recog.c (peep2_find_free_register): Validate all regs in a
6847 multi-reg mode.
6848
51a5c0c2
JH
68492013-08-05 Jan Hubicka <jh@suse.cz>
6850
6851 PR lto/57602
03b0ee0a
UB
6852 * cgraph.c (verify_cgraph_node): Accept local flags from other
6853 partitions.
51a5c0c2
JH
6854 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
6855 (function_and_variable_visibility): Likewise.
6856 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
6857
65f0a120
GDR
68582013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6859
6860 * graph.c (init_graph_slim_pretty_print): Remove.
6861 (print_graph_cfg): Do not call it. Use local pretty printer.
6862 (start_graph_dump): Likewise.
6863
b3f80694
GDR
68642013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6865
6866 * gimple-pretty-print.c (buffer): Remove.
6867 (initialized): Likewise.
6868 (maybe_init_pretty_print): Likewise.
6869 (print_gimple_stmt): Do not call it. Use non-static local
6870 pretty_printer variable.
6871 (print_gimple_expr): Likewise.
6872 (print_gimple_seq): Likewise.
6873 (gimple_dump_bb): Likewise.
6874
11a877b3
GDR
68752013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6876
6877 * asan.c (asan_pp): Remove.
6878 (asan_pp_initialized): Likewise.
6879 (asan_pp_initialize): Likewise.
6880 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
6881 (asan_emit_stack_protection): Tidy. Use local pretty printer.
6882 (asan_add_global): Likewise.
6883
b066401f
GDR
68842013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
6885
6886 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
6887 * diagnostic.h (diagnostic_flush_buffer): Adjust.
6888 * pretty-print.c (pp_formatted_text_data): Likewise.
6889 (pp_indent): Rename from pp_base_indent.
6890 (pp_format): Rename from pp_base_format.
6891 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
6892 (pp_format_verbatim): Rename from pp_base_format_verbatim.
6893 (pp_flush): Rename from pp_base_flush.
6894 (pp_set_line_maximum_length): Rename from
6895 pp_base_set_line_maximum_length.
6896 (pp_clear_output_area): Rename from pp_base_clear_output_area.
6897 (pp_set_prefix): Rename from pp_base_set_prefix.
6898 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
6899 (pp_emit_prefix): Rename from pp_base_emit_prefix.
6900 (pp_append_text): Rename from pp_base_append_text.
6901 (pp_formatted_text): Rename from pp_base_formatted_text.
6902 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
6903 (pp_remaining_character_count_for_line): Rename from
6904 pp_base_remaining_character_count_for_line.
6905 (pp_newline): Rename from pp_base_newline.
6906 (pp_character): Rename from pp_base_character.
6907 (pp_string): Rename from pp_base_string.
6908 (pp_maybe_space): Rename from pp_base_maybe_space.
6909 * asan.c (asan_pp_string): Adjust.
6910 (asan_emit_stack_protection): Likewise.
6911 (asan_add_global): Likewise.
6912 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
6913 * tree-mudflap.c (mf_varname_tree): Likewise.
6914 * tree-pretty-print.c (pp_tree_identifier): Rename from
6915 pp_base_tree_identifier.
6916 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
6917 Declare as function.
6918
137a1a27
GDR
69192013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
6920
6921 * pretty-print.h (pp_bar_bar): New.
6922 (pp_ampersand_ampersand): Likewise.
6923 (pp_less_equal): Likewise.
6924 (pp_greater_equal): Likewise.
6925 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
6926 printer functions instead of pp_string or operators and punctuators.
6927 (dump_gimple_call): Likewise.
6928 (dump_gimple_omp_for): Likewise.
6929 (dump_gimple_transaction): Likewise.
6930 (dump_gimple_phi): Likewise.
6931 (pp_gimple_stmt_1): Likewise.
6932 * sched-vis.c (print_insn): Likewise.
6933 * tree-mudflap.c (mf_varname_tree): Likewise.
6934 * tree-pretty-print.c (dump_block_node): Likewise.
6935 (dump_generic_node): Likewise.
6936
815effe1
JH
69372013-08-02 Jan Hubicka <jh@suse.cz>
6938
6939 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
6940 boundaries.
6941 * lto-streamer-out.c (tree_is_indexable): Results decls and
6942 parm decls are not indexable.
6943 (DFS_write_tree_body): Do not follow args and results.
6944 (hash_tree): Likewise.
6945 (output_functions): Rearrange so struct function is needed
6946 only when real body is output; be able to also ouptut abstract
6947 functions; output DECL_ARGUMENTS and DECL_RESULT.
6948 (lto_output): When not in WPA, ale store abstract functions.
6949 (write_symbol): Do not care about RESULT_DECL.
6950 (output_symbol_p): Handle correctly sbtract decls.
6951 * lto-streamer-in.c (input_function): Rearrange so struct
6952 function can be NULL at entry; allow streaming of
6953 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
6954 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
6955 sanity check during LTO.
6956 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
6957 RESULT_DECl and DECL_ARGUMENTS.
6958 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
6959 Likewise.
6960
07838b13
GDR
69612013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
6962
6963 * pretty-print.h (pp_underscore): New.
6964 (pp_comma): Tidy.
6965 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
6966 printer functions instead of pp_character.
6967 (dump_binary_rhs): Likewise.
6968 (dump_ternary_rhs): Likewise.
6969 (dump_gimple_call_args): Likewise.
6970 (pp_points_to_solution): Likewise.
6971 (dump_gimple_call): Likewise.
6972 (dump_gimple_switch): Likewise.
6973 (dump_gimple_cond): Likewise.
6974 (dump_gimple_bind): Likewise.
6975 (dump_gimple_try): Likewise.
6976 (dump_gimple_omp_for): Likewise.
6977 (dump_gimple_omp_continue): Likewise.
6978 (dump_gimple_omp_single): Likewise.
6979 (dump_gimple_omp_sections): Likewise.
6980 (dump_gimple_omp_block): Likewise.
6981 (dump_gimple_omp_critical): Likewise.
6982 (dump_gimple_transaction): Likewise.
6983 (dump_gimple_asm): Likewise.
6984 (dump_gimple_phi): Likewise.
6985 (dump_gimple_omp_parallel): Likewise.
6986 (dump_gimple_omp_task): Likewise.
6987 (dump_gimple_omp_atomic_load): Likewise.
6988 (dump_gimple_omp_atomic_store): Likewise.
6989 (dump_gimple_mem_ops): Likewise.
6990 (pp_gimple_stmt_1): Likewise.
6991 (pp_cfg_jump): Likewise.
6992 (dump_implicit_edges): Likewise.
6993 (gimple_dump_bb_for_graph): Likewise.
6994 * graph.c (draw_cfg_node): Likewise.
6995 * langhooks.c (lhd_print_error_function): Likewise.
6996 * sched-vis.c (print_exp): Likewise.
6997 (print_value): Likewise.
6998 (print_pattern): Likewise.
6999 (print_insn): Likewise.
7000 (rtl_dump_bb_for_graph): Likewise.
7001 * tree-pretty-print.c (dump_function_declaration): Likewise.
7002 (dump_array_domain): Likewise.
7003 (dump_omp_clause): Likewise.
7004 (dump_location): Likewise.
7005 (dump_generic_node): Likewise.
7006 (print_struct_decl): Likewise.
7007 * diagnostic.c (diagnostic_show_locus): Use pp_space.
7008
bb0d2039
BS
70092013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
7010
7011 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
7012 candidate table when replacing a candidate statement.
7013 (replace_rhs_if_not_dup): Likewise.
7014 (replace_one_candidate): Likewise.
7015
bc0ec027 70162013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 7017 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
7018
7019 * cgraphunit.c (add_new_function): Fix logic when adding from
7020 late IPA pass.
7021 (assemble_thunk): Rename to ...
03b0ee0a
UB
7022 (expand_thunk); .. this one; export; get it working with
7023 general functions; make produced gimple valid.
bc0ec027
JH
7024 * cgraph.h (expand_thunk): Declare.
7025
0e8853ee
JH
70262013-08-02 Jan Hubicka <jh@suse.cz>
7027
03b0ee0a
UB
7028 * ipa-cp.c (gather_context_independent_values): Use
7029 ipa_get_param_move_cost.
7030 (get_replacement_map): Remove PARAM; move parameter folding
7031 into tree-inline.c
0e8853ee
JH
7032 (create_specialized_node): Update.
7033 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
7034 assert that we have gimple body; update move_cost.
7035 (count_formal_params): Assert that we have gimple body.
7036 (ipa_dump_param): New function.
7037 (ipa_alloc_node_params): Break out from ...
7038 (ipa_initialize_node_params): ... here.
7039 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
7040 (ipa_write_node_info): Stream move costs.
7041 (ipa_read_node_info): Read move costs.
7042 (ipa_update_after_lto_read): Do not recompute node params.
7043 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
7044 (ipa_get_param): Check we are not in WPA.
7045 (ipa_get_param_move_cost): New.
7046 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
7047 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
7048 parm numbers to be present.
7049
ecee672b
VM
70502013-08-02 Vladimir Makarov <vmakarov@redhat.com>
7051
7052 PR rtl-optimization/58048
7053 * lra-constraints.c (process_alt_operands): Don't check asm
7054 operand on register.
7055
13ec0527
EB
70562013-08-02 Eric Botcazou <ebotcazou@adacore.com>
7057
7058 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
7059 the implied StoreLoad barrier for atomic operations if before.
7060
af15184a
JH
70612013-08-02 Jan Hubicka <jh@suse.cz>
7062 Martin Liska <marxin.liska@gmail.com>
7063
03b0ee0a
UB
7064 * cgraph.c (cgraph_function_body_availability): Do not check
7065 cgraph flags.
af15184a
JH
7066 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
7067 symtab_node_availability): Declare.
7068 * ipa.c (can_replace_by_local_alias): New.
7069 (function_and_variable_visibility): Use it.
03b0ee0a
UB
7070 * symtab.c (symtab_for_node_and_aliases,
7071 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 7072
01e54ef8
VM
70732013-08-02 Vladimir Makarov <vmakarov@redhat.com>
7074
7075 PR rtl-optimization/57963
03b0ee0a 7076 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
7077 (lra_constraints): Use them.
7078
e2fd7ca7
SN
70792013-08-02 Sofiane Naci <sofiane.naci@arm.com>
7080
03b0ee0a
UB
7081 * config/arm/types.md (define_attr "type"): Add "load_acq"
7082 and "store_rel".
e2fd7ca7
SN
7083 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
7084 changes.
7085 (cortex_a53_store1): Likewise.
7086
0dcc26c3
JH
70872013-08-01 Jan Hubicka <jh@suse.cz>
7088
03b0ee0a
UB
7089 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
7090 partitions are not needed.
0dcc26c3 7091
0bd72901
UB
70922013-08-01 Uros Bizjak <ubizjak@gmail.com>
7093
7094 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
7095 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
7096 MAYBE_NON_Q_CLASS_P where appropriate.
7097
12123452
JH
70982013-08-01 Jan Hubicka <jh@suse.cz>
7099
7100 * cgraph.h (release_function_body): Declare.
7101 * tree.c (free_lang_data_in_decl): Free, parameters and return values
7102 of unused delcarations.
7103
ce852f9c
KT
71042013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7105
03b0ee0a
UB
7106 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
7107 RTL form when subtracting a constant.
ce852f9c 7108
c743b246
KT
71092013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7110
7111 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
7112 Generate canonical plus rtx with negated immediate instead of minus
7113 where appropriate.
7114 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
7115
c0c123ef
JH
71162013-08-01 Jan Hubicka <jh@suse.cz>
7117
7118 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
7119 (cgraph_release_function_body): Likewise.
7120 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
7121 * cgraph.h (cgrpah_node): Rename abstract_and_needed
7122 to used_as_abstract_origin.
7123 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
7124 symbols used as abstract origins.
7125 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
7126 * ipa.c (symtab_remove_unreachable_nodes): Recompute
7127 used_as_abstract_origin.
c0c123ef 7128 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
7129 used_as_abstract_origin; be ready for DECL_RESULT and
7130 DECL_ARGUMENTS to be NULL.
c0c123ef 7131
0bd72901
UB
7132 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
7133 for abstract functions.
7134 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
7135 real symbols.
c0c123ef 7136
1f029433
JH
71372013-08-01 Jan Hubicka <jh@suse.cz>
7138
7139 * profile.c (compute_value_histograms): Fix thinko.
7140
c451f4d6
SN
71412013-08-01 Sofiane Naci <sofiane.naci@arm.com>
7142
7143 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
7144 aarch-common-protos.h to extra_headers.
7145 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
7146 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
7147 * config/aarch64/t-aarch64 (aarch-common.o): Define.
7148
34b512f5
SN
71492013-08-01 Sofiane Naci <sofiane.naci@arm.com>
7150
7151 * config/aarch64/aarch64.md (define_attr "type"): Delete.
7152 Include "../arm/types.md". Define "type" attribute for all patterns.
7153 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
7154 attribute changes.
7155
d86e633a
MM
71562013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
7157
7158 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
7159 to support power8 load fusion.
7160 (fusion_gpr_mem_load): Likewise.
7161
7162 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
7163
7164 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
7165 declarations for power8 load fusion.
7166 (emit_fusion_gpr_load): Likewise.
7167
7168 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
7169 tuning for power8, turn on fusion mode by default. Turn on sign
7170 extending fusion mode if normal fusion mode is on, and we are at
7171 -O2 or -O3.
7172 (fusion_gpr_load_p): New function, return true if we can fuse an
7173 addis instruction with a dependent load to a GPR.
7174 (emit_fusion_gpr_load): Emit the instructions for power8 load
7175 fusion to GPRs.
7176
0bd72901 7177 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
7178 (VSX load fusion peepholes): New peepholes to fuse together an
7179 addi instruction with a VSX load instruction.
7180
7181 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
7182 peepholes to fuse an addis instruction with a load to a GPR base
7183 register. If we are supporting sign extending fusions, convert
7184 sign extending loads to zero extending loads and add an explicit
7185 sign extension.
7186
c3f35647
SN
71872013-07-31 Sofiane Naci <sofiane.naci@arm.com>
7188
7189 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
7190 aarch-common-protos.h to extra_headers.
7191 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
7192 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
7193 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
7194 (arm_no_early_alu_shift_dep): Likewise.
7195 (arm_no_early_alu_shift_value_dep): Likewise.
7196 (arm_no_early_mul_dep): Likewise.
7197 (arm_no_early_store_addr_dep): Likewise.
7198 (arm_mac_accumulator_is_mul_result): Likewise.
7199 (arm_mac_accumulator_is_result): Likewise.
c3f35647 7200 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
7201 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
7202 here to ...
c3f35647 7203 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
7204 (arm_no_early_alu_shift_dep): Likewise.
7205 (arm_no_early_alu_shift_value_dep): Likewise.
7206 (arm_no_early_mul_dep): Likewise.
7207 (arm_no_early_store_addr_dep): Likewise.
7208 (arm_mac_accumulator_is_mul_result): Likewise.
7209 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
7210 * config/arm/aarch-common-protos.h: ... here. New file.
7211 * config/arm/t-arm (aarch-common.o): Define.
7212
72132013-07-31 Sofiane Naci <sofiane.naci@arm.com>
7214
7215 * config/arm/arm.md: Include new file "types.md".
7216 (define_attr "type"): Move from here to ...
7217 (define_attr "mul32"): Likewise.
7218 (define_attr "mul64"): Likewise.
7219 * config/arm/types.md: ... here. New file.
7220
228c1313
SH
72212013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
7222
7223 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
7224 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
7225
d6e9046d 72262013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
7227
7228 * gen-pass-instances.awk: Fix offset of substr().
7229
a167b052
DM
72302013-07-31 David Malcolm <dmalcolm@redhat.com>
7231
7232 * Makefile.in (pass-instances.def): New.
7233 (passes.o): Replace dependency on passes.def with one on
7234 pass-instances.def
7235
7236 * gen-pass-instances.awk: New.
7237
7238 * passes.c (pass_manager::pass_manager): Use pass-instances.def
7239 rather than passes.def, updating local definition of NEXT_PASS
7240 macro to add an extra NUM parameter (currently unused).
7241
315f8c0e
DM
72422013-07-30 David Malcolm <dmalcolm@redhat.com>
7243
7244 * Makefile.in (PASS_MANAGER_H): New.
7245 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
7246 (passes.o): Likewise.
7247 (statistics.o): Likewise.
7248 (cgraphunit.o): Likewise.
7249 (context.o): Depend on PASS_MANAGER_H.
7250
7251 * pass_manager.h: New.
7252
7253 * cgraphunit.c (cgraph_add_new_function): Update for moves
7254 of globals to fields of pass_manager.
7255 (analyze_function): Likewise.
7256 (expand_function): Likewise.
7257 (ipa_passes): Likewise.
7258 (compile): Likewise.
7259
7260 * context.c (context::context): New.
7261 * context.h (context::context): New.
7262 (context::get_passes): New.
7263 (context::passes_): New.
7264
7265 * lto-cgraph.c (input_node): Update for moves of globals to
7266 fields of pass_manager.
7267
7268 * passes.c (all_passes): Remove, in favor of a field of the
7269 same name within the new class pass_manager.
7270 (all_small_ipa_passes): Likewise.
7271 (all_lowering_passes): Likewise.
7272 (all_regular_ipa_passes): Likewise.
7273 (all_late_ipa_passes): Likewise.
7274 (all_lto_gen_passes): Likewise.
7275 (passes_by_id): Likewise.
7276 (passes_by_id_size): Likewise.
7277 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
7278 the new class pass_manager.
7279 (set_pass_for_id): Convert to...
7280 (pass_manager::set_pass_for_id): ...method.
7281 (get_pass_for_id): Convert to...
7282 (pass_manager::get_pass_for_id): ...method.
7283 (register_one_dump_file): Move body of implementation into...
7284 (pass_manager::register_one_dump_file): ...here.
7285 (register_dump_files_1): Convert to...
7286 (pass_manager::register_dump_files_1): ...method.
7287 (register_dump_files): Convert to...
7288 (pass_manager::register_dump_files): ...method.
7289 (create_pass_tab): Update for moves of globals to fields of
7290 pass_manager.
7291 (dump_passes): Move body of implementation into...
7292 (pass_manager::dump_passes): ...here.
7293 (register_pass): Move body of implementation into...
7294 (pass_manager::register_pass): ...here.
7295 (init_optimization_passes): Convert into...
7296 (pass_manager::pass_manager): ...constructor for new
7297 pass_manager class, and initialize the pass_lists array.
7298 (check_profile_consistency): Update for moves of globals to
7299 fields of pass_manager.
7300 (dump_profile_report): Move body of implementation into...
7301 (pass_manager::dump_profile_report): ...here.
7302 (ipa_write_summaries_1): Update for moves of pass lists from
7303 being globals to fields of pass_manager.
7304 (ipa_write_optimization_summaries): Likewise.
7305 (ipa_read_summaries): Likewise.
7306 (ipa_read_optimization_summaries): Likewise.
7307 (execute_all_ipa_stmt_fixups): Likewise.
7308
7309 * statistics.c (statistics_fini): Update for moves of globals to
7310 fields of pass_manager.
7311
7312 * toplev.c (general_init): Replace call to
7313 init_optimization_passes with construction of the pass_manager
7314 instance.
7315
7316 * tree-pass.h (all_passes): Remove, in favor of a field of the
7317 same name within the new class pass_manager.
7318 (all_small_ipa_passes): Likewise.
7319 (all_lowering_passes): Likewise.
7320 (all_regular_ipa_passes): Likewise.
7321 (all_lto_gen_passes): Likewise.
7322 (all_late_ipa_passes): Likewise.
7323 (passes_by_id): Likewise.
7324 (passes_by_id_size): Likewise.
7325 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
7326 the new class pass_manager.
7327 (get_pass_for_id): Remove.
7328
02cab1c1
RE
73292013-07-30 Richard Earnshaw <rearnsha@arm.com>
7330
7331 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
7332 configs.
7333
b2d3f886
RE
73342013-07-30 Richard Earnshaw <rearnsha@arm.com>
7335
7336 * arm.md (mulhi3): New expand pattern.
7337
605e86fa
JH
73382013-07-30 Jan Hubicka <jh@suse.cz>
7339 Martin Liska <marxin.liska@gmail.com>
7340
7341 * profile.c (compute_value_histograms): Do not ICE when
7342 there is mismatch only on some counters.
7343
14a87636
ZC
73442013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
7345
7346 PR rtl-optimization/57637
7347 * function.c (move_insn_for_shrink_wrap): Also check the
7348 GEN set of the LIVE problem for the liveness analysis
7349 if it exists, otherwise give up.
7350
0100cd3f
BS
73512013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
7352
7353 PR tree-optimization/57993
7354 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
7355 replaced statement in the candidate table.
7356 (phi_add_costs): Return infinite cost when the hidden basis does
7357 not dominate all phis on which the candidate is dependent.
7358 (replace_one_candidate): Record replaced statement in the
7359 candidate table.
7360
f0d811f7
JR
73612013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
7362
7363 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
7364 (ashlv2si3): New expander.
7365 (*ashlv2si3_i): New define_insn_and_split.
7366 * predicates.md (float_operation): Allow patterns with three
7367 basic sub-patterns.
7368
bba33211
JR
7369 PR rtl-optimization/58021
7370 * mode-switching.c (create_pre_exit): Always split off preceding
7371 insns if we are not at the basic block head.
7372
ff3f3951
MR
73732013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
7374
7375 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
7376 (UCLIBC_DYNAMIC_LINKER): New macro.
7377 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
7378 `-mnan=2008'.
7379 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
7380 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
7381 `-mnan=2008'.
7382 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
7383 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
7384 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
7385 for SF and DF modes. Use ieee_quad_format for TF mode.
7386 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
7387 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
7388 (mips_option_override): Handle `-mnan=legacy'.
7389 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
7390 `-mabs=2008' and `-mnan=2008'.
7391 (OPTION_DEFAULT_SPECS): Add "nan" default.
7392 (ASM_SPEC): Handle `-mnan='.
7393 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
7394 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
7395 comment accordingly.
7396 (neg<mode>2): Likewise.
7397 * config/mips/mips.opt (mabs, mnan): New options.
7398 * doc/install.texi (Configuration): Document `--with-nan=' option.
7399 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
7400 `-mnan=' options.
7401 (MIPS Options): Document them.
7402 * config.gcc <mips*-*-*>: Handle `--with-nan='.
7403 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
7404 * configure: Regenerate.
7405 * config.in: Regenerate.
7406
576e2f37
UB
74072013-07-29 Uros Bizjak <ubizjak@gmail.com>
7408
7409 * config/i386/i386.md (float post-reload splitters): Do not check
7410 for subregs of SSE registers.
7411
74122013-07-29 Uros Bizjak <ubizjak@gmail.com>
7413 H.J. Lu <hongjiu.lu@intel.com>
7414
7415 PR target/57954
7416 PR target/57988
7417 * config/i386/i386.md (post-reload splitter
7418 to avoid partial SSE reg dependency stalls): New pattern.
7419
a71f0749
DV
74202013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
7421
7422 * config/s390/s390.md ("movcc"): Swap load and store instructions.
7423
4c97f1cc
JR
74242013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
7425
7426 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
7427 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
7428
b0c733d8
CC
74292013-07-26 Cary Coutant <ccoutant@google.com>
7430
7431 * dwarf2out.c (die_checksum_ordered): Don't include template
7432 instantiations in signature.
7433 (is_template_parameter): New function.
7434 (is_template_instantiation): New function.
7435 (generate_skeleton_bottom_up): Don't include template instantiations
7436 in type unit DIE.
7437 (generate_skeleton): Likewise.
7438 (break_out_comdat_types): Move recursive call to break out nested
7439 types earlier.
7440 (prune_unused_types_mark_generic_parms_dies): Call
7441 is_template_parameter.
7442
040d8a1c
IB
74432013-07-26 Ian Bolton <ian.bolton@arm.com>
7444
7445 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
7446 uses vector registers.
89fdc743 7447 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 7448
85bd4ac6 74492013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 7450 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
7451
7452 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 7453 where appropriate.
85bd4ac6
KT
7454 * config/arm/arm.md (movcond_addsi): New splitter.
7455
b6051207
SA
74562013-07-25 Sterling Augustine <saugustine@google.com>
7457
7458 * dwarf2out.c (size_of_pubnames): Move code to...
7459 (include_pubname_in_output): ...here. New.
7460 (want_pubnames): Rearrange.
7461 (output_pubnames): Call include_pubname_in_output. Move assertion.
7462
41a7c215
CM
74632013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
7464
7465 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
7466
74672013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
7468
7469 PR target/38836
7470 * doc/extend.texi: Remove obsolete builtins. Fix
7471 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
7472
49bde175
JH
74732013-07-25 Jan Hubicka <jh@suse.cz>
7474
7475 * cgraph.c (release_function_body): Break out from ...
7476 (cgraph_release_function_body): ... this one; also release DECL_RESULT
7477 and DECL_ARGUMENTS.
7478 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
7479 old_tree in the map.
7480 (create_specialized_node): Update.
7481 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
7482 into index.
41a7c215
CM
7483 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
7484 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
7485 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
7486 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
7487 DECL_RESULT.
7488
4870352d
KT
74892013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7490
7491 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
7492 addsi3_carryin_alt2_<optab>): Correct output template.
7493
1d6aee1c
KT
74942013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7495
7496 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
7497 Adjust for arm_restrict_it.
7498 Remove trailing whitespace.
7499
c7cafd75
MK
75002013-07-25  Mark Kettenis  <kettenis@openbsd.org>
7501
017d38f5
MK
7502 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
7503 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
7504
c7cafd75
MK
7505 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
7506
00b7527b
VM
75072013-07-25 Vladimir Makarov <vmakarov@redhat.com>
7508
7509 PR rtl-optimization/57960
7510 * lra-constraints.c (process_alt_operands): Use the right mode
7511 when checking strict_low.
7512
4f63dfc6
JH
75132013-07-25 Jan Hubicka <jh@suse.cz>
7514
7515 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
7516 * cgraph.c (cgraph_remove_node): Do not release function body
7517 when in cgraph streaming.
7518 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
7519 in other partitions are not considered reachable; fix handling of
7520 clones.
4f63dfc6 7521
e6dcfa18
RR
75222013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7523
7524 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
7525
0b93d3b6
RR
75262013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7527
7528 PR target/19599
7529 PR target/57731
bb80c2eb 7530 PR target/57837
e6dcfa18 7531 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 7532 Ss with US. Adjust output for v5 and v4t.
41a7c215 7533 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 7534
0b93d3b6
RR
7535 * config/arm/constraints.md ("Ss"): Rename to US.
7536
690688b3
TG
75372013-07-25 Terry Guo <terry.guo@arm.com>
7538
7539 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
7540 shift_add/shift_sub0/shift_sub1 RTXs.
7541
a4ad093b 75422013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 7543 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
7544
7545 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
7546 (altivec_vpks<VI_char>ss): Likewise.
7547 (altivec_vpks<VI_char>us): Likewise.
7548 (altivec_vpku<VI_char>us): Likewise.
7549 (altivec_vpku<VI_char>um): Likewise.
7550
8c5005ce
DM
75512013-07-24 David Malcolm <dmalcolm@redhat.com>
7552
7553 Introduce context class.
7554
7555 * Makefile.in (CONTEXT_H): New.
7556 (OBJS): Add context.o.
7557 (toplev.o): Add CONTEXT_H to dependencies.
7558 (context.o): New.
7559
41a7c215 7560 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
7561
7562 * context.c: New.
7563
7564 * context.h: New.
7565
ce4a9422
JR
75662013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
7567
7568 PR rtl-optimization/57968
7569 * mode-switching.c (create_pre_exit): Allow instructions that
7570 don't set a return register to need a non-exit mode.
7571
493f4c9e 75722013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 7573 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 7574
b5860fd3
WS
7575 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
7576 operands to vperm for little endian.
7577 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
7578 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 7579
73792b92 75802013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 7581 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
7582
7583 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
7584 two operands for little-endian.
7585
14c21302
SE
75862013-07-23 Steve Ellcey <sellcey@mips.com>
7587
7588 * config/mips/mips.c (mips_case_values_threshold): New.
7589 (TARGET_CASE_VALUES_THRESHOLD): Define.
7590
a6056198 75912013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 7592 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
7593
7594 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
7595 selection of field for vector splat in little endian mode.
7596
dd7a40e1
MM
75972013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
7598
7599 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
7600 expanders to rs6000.md.
7601 (ior<mode>3): Likewise.
7602 (and<mode>3): Likewise.
7603 (one_cmpl<mode>2): Likewise.
7604 (nor<mode>3): Likewise.
7605 (andc<mode>3): Likewise.
7606 (eqv<mode>3): Likewise.
7607 (nand<mode>3): Likewise.
7608 (orc<mode>3): Likewise.
7609
7610 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
7611 declaration.
7612
7613 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
7614 to split multi-word logical operations.
7615 (rs6000_split_logical_di): Likewise.
7616 (rs6000_split_logical): Likewise.
7617
7618 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
7619 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
7620 and allow TImode operations in 32-bit.
7621 (vsx_and<mode>3_64bit): Likewise.
7622 (vsx_ior<mode>3_32bit): Likewise.
7623 (vsx_ior<mode>3_64bit): Likewise.
7624 (vsx_xor<mode>3_32bit): Likewise.
7625 (vsx_xor<mode>3_64bit): Likewise.
7626 (vsx_one_cmpl<mode>2_32bit): Likewise.
7627 (vsx_one_cmpl<mode>2_64bit): Likewise.
7628 (vsx_nor<mode>3_32bit): Likewise.
7629 (vsx_nor<mode>3_64bit): Likewise.
7630 (vsx_andc<mode>3_32bit): Likewise.
7631 (vsx_andc<mode>3_64bit): Likewise.
7632 (vsx_eqv<mode>3_32bit): Likewise.
7633 (vsx_eqv<mode>3_64bit): Likewise.
7634 (vsx_nand<mode>3_32bit): Likewise.
7635 (vsx_nand<mode>3_64bit): Likewise.
7636 (vsx_orc<mode>3_32bit): Likewise.
7637 (vsx_orc<mode>3_64bit): Likewise.
7638
7639 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
7640 logical types in GPRs.
7641
7642 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
7643 logical insns to rs6000.md, and allow TImode operations in
7644 32-bit.
7645 (altivec_ior<mode>3): Likewise.
7646 (altivec_xor<mode>3): Likewise.
7647 (altivec_one_cmpl<mode>2): Likewise.
7648 (altivec_nor<mode>3): Likewise.
7649 (altivec_andc<mode>3): Likewise.
7650
7651 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
7652 attributes for moving the 128-bit logical operations into
7653 rs6000.md.
7654 (BOOL_REGS_OUTPUT): Likewise.
7655 (BOOL_REGS_OP1): Likewise.
7656 (BOOL_REGS_OP2): Likewise.
7657 (BOOL_REGS_UNARY): Likewise.
7658 (BOOL_REGS_AND_CR0): Likewise.
7659 (one_cmpl<mode>2): Add support for DI logical operations on
7660 32-bit, splitting the operations to 32-bit.
7661 (anddi3): Likewise.
7662 (iordi3): Likewise.
7663 (xordi3): Likewise.
7664 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
7665 changes to combine the 32/64-bit code, allow logical operations on
7666 TI mode in 32-bit, and to use similar match_operator patterns like
7667 scalar mode uses. Combine the Altivec and VSX code for logical
7668 operations, and move it here.
7669 (ior<mode>3, 128-bit types): Likewise.
7670 (xor<mode>3, 128-bit types): Likewise.
7671 (one_cmpl<mode>3, 128-bit types): Likewise.
7672 (nor<mode>3, 128-bit types): Likewise.
7673 (andc<mode>3, 128-bit types): Likewise.
7674 (eqv<mode>3, 128-bit types): Likewise.
7675 (nand<mode>3, 128-bit types): Likewise.
7676 (orc<mode>3, 128-bit types): Likewise.
7677 (and<mode>3_internal): Likewise.
7678 (bool<mode>3_internal): Likewise.
7679 (boolc<mode>3_internal1): Likewise.
7680 (boolc<mode>3_internal2): Likewise.
7681 (boolcc<mode>3_internal1): Likewise.
7682 (boolcc<mode>3_internal2): Likewise.
7683 (eqv<mode>3_internal1): Likewise.
7684 (eqv<mode>3_internal2): Likewise.
7685 (one_cmpl1<mode>3_internal): Likewise.
7686
12211b99 76872013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
7688
7689 * config/microblaze/microblaze.c (microblaze_expand_prologue):
7690 Rename flag_stack_usage to flag_stack_usage_info.
7691
12211b99 76922013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 7693
a5f257fd
ME
7694 * config/microblaze/sync.md: New file.
7695 * config/microblaze/microblaze.md: Include sync.md
7696 * config/microblaze/microblaze.c: Add print_operand 'y'.
7697 * config/microblaze/constraints.md: Add memory_contraint
7698 'Q' which is a single register.
450b0ebb 7699
49fba14f
EB
77002013-07-23 Eric Botcazou <ebotcazou@adacore.com>
7701
7702 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
7703
c7b3b99f
PCC
77042013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
7705
7706 * reload.c (find_reloads): Exit loop once we find this operand
7707 cannot be reloaded somehow for this alternative.
7708
7709 * reload.c (find_reloads): Exit loop once we find a hard register.
7710
7711 * rtlanal.c (computed_jump_p): Exit loop once we find label
7712 reference is used.
7713
7714 * i386.c (ix86_pad_returns): Exit loop after setting replace.
7715
7716 * cfgloopmanip.c (remove_path): Exit loop after setting
7717 irred_invalidated.
7718
7719 * gensupport.c (subst_dup): Avoid loop if code is not
7720 MATCH_DUP nor MATCH_OP_DUP.
7721
c8fbf1fa
NBJ
77222013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
7723
7724 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
7725
9259db42
YZ
77262013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7727
7728 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
7729 true for SP_REGNUM if mode == ptr_mode.
7730 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
7731 with value R0_REGNUM + 31.
7732
00edcfbe
YZ
77332013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7734
7735 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
7736 pad pointer-typed argument downward.
7737
43be9a95
YZ
77382013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7739
7740 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
7741 and __ILP32__ when the ILP32 model is in use.
7742
28514dda
YZ
77432013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7744
7745 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
7746 (aarch64_load_symref_appropriately): In the case of
7747 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
7748 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
7749 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
7750 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
7751 if 'mode' doesn't equal to 'ptr_mode'.
7752 (aarch64_output_mi_thunk): Add an assertion on the alignment of
7753 'vcall_offset'; change to call aarch64_emit_move differently depending
7754 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
7755 to calculate the upper bound of 'vcall_offset'.
7756 (aarch64_cannot_force_const_mem): Change to also return true if
7757 mode != ptr_mode.
7758 (aarch64_legitimize_reload_address): In the case of large
7759 displacements, add new local variable 'xmode' and an assertion
7760 based on it; change to use 'xmode' to generate the new rtx and
7761 reload.
7762 (aarch64_asm_trampoline_template): Change to generate the template
7763 differently depending on TARGET_ILP32 or not; change to use
7764 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
7765 (aarch64_trampoline_size): Removed.
7766 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
7767 and replace immediate literals with it. Change to use 'ptr_mode'
7768 instead of 'DImode' and call convert_memory_address if the mode
7769 of 'fnaddr' doesn't equal to 'ptr_mode'.
7770 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
7771 to output symbol.
7772 (aarch64_elf_asm_destructor): Likewise.
7773 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
7774 on TARGET_ILP32 instead of aarch64_trampoline_size.
7775 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
7776 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
7777 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
7778 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
7779 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
7780 (storewb_pair<GPI:mode>_<P:mode>): ... this.
7781 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
7782 depending on the value of 'mode'.
7783 (add_losym_<mode>): New.
7784 (ldr_got_small_<mode>): New, based on ldr_got_small.
7785 (ldr_got_small): Remove.
7786 (ldr_got_small_sidi): New.
7787 * config/aarch64/iterators.md (P): New.
7788 (PTR): Change to 'ptr_mode' in the condition.
7789
17a819cb
YZ
77902013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7791
7792 * config.gcc (aarch64*-*-*): Support --with-abi.
7793 (aarch64*-*-elf): Support --with-multilib-list.
7794 (aarch64*-*-linux*): Likewise.
7795 (supported_defaults): Add abi to aarch64*-*-*.
7796 * configure.ac: Mention AArch64 for --with-multilib-list.
7797 * configure: Re-generated.
7798 * config/aarch64/biarchilp32.h: New file.
7799 * config/aarch64/biarchlp64.h: New file.
7800 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
7801 (ABI_SPEC): Ditto.
7802 (MULTILIB_DEFAULTS): Ditto.
7803 (DRIVER_SELF_SPECS): Ditto.
7804 (ASM_SPEC): Update to also substitute -mabi.
7805 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
7806 file whose name depends on -mabi= and -mbig-endian.
7807 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
7808 TARGET_ILP32.
7809 (POINTER_SIZE): New define.
7810 (POINTERS_EXTEND_UNSIGNED): Ditto.
7811 (enum aarch64_abi_type): New enumeration tag.
7812 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
7813 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
7814 (TARGET_ILP32): New define.
7815 * config/aarch64/aarch64.opt (mabi): New.
7816 (aarch64_abi): New.
7817 (ilp32, lp64): New values for -mabi.
7818 * config/aarch64/t-aarch64 (comma): New define.
7819 (MULTILIB_OPTIONS): Ditto.
7820 (MULTILIB_DIRNAMES): Ditto.
7821 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
7822 * doc/invoke.texi: Document -mabi for AArch64.
7823
9f9cbdce
GJL
78242013-07-23 Georg-Johann Lay <avr@gjlay.de>
7825
7826 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
7827
7061977b 78282013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 7829 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
7830
7831 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
7832 endianness when selecting field to splat.
7833
75a41878
EC
78342013-07-22 Eric Christopher <echristo@gmail.com>
7835
7836 * dwarf2out.c (die_odr_checksum): New function to use
7837 CHECKSUM_ macros and ULEB128 for DIE tag.
7838 (generate_type_signature): Use.
41a7c215 7839
38ae58ca
EB
78402013-07-22 Eric Botcazou <ebotcazou@adacore.com>
7841
7842 * config.gcc (sparc*-*-*): Accept leon3 processor.
7843 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
7844 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
7845 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
7846 * config/sparc/sparc.opt (enum processor_type): Add leon3.
7847 (mfix-ut699): Adjust comment.
7848 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
7849 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
7850 (CPP_CPU_SPEC): Likewise.
7851 (ASM_CPU_SPEC): Likewise.
7852 * config/sparc/sparc.c (leon3_cost): New constant.
7853 (sparc_option_override): Add leon3 support.
7854 (mem_ref): New function.
7855 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
7856 (sparc_do_work_around_errata): Look into the instruction in the delay
7857 slot and adjust accordingly. Add fix for the data cache nullify issues
7858 of the UT699. Change insertion position for the NOP.
7859 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
7860 (leon3_load): New reservation.
7861 (leon_store): Bump latency to 2.
7862 (grfpu): New automaton.
7863 (grfpu_alu): New unit.
7864 (grfpu_ds): Likewise.
7865 (leon_fp_alu): Adjust.
7866 (leon_fp_mult): Delete.
7867 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
7868 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
7869 * config/sparc/sparc.md (cpu): Add leon3.
7870 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
7871 (swapsi): Likewise.
7872 (atomic_test_and_set): Likewise.
7873 (ldstub): Likewise.
7874
04dfc6df
JU
78752013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
7876
7877 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
7878 default for R5900 targets.
7879 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
7880 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
7881 * config/mips/mips.c (mips_option_override): Report an error for
7882 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
7883 for -march=r5900 -mhard-float.
7884
c7b3b99f 78852013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
7886
7887 * df-problems.c (can_move_insns_across): Exit loop once we
7888 find a non-fixed, non-global register.
7889
7890 * ipa-pure-const.c (propagate_nothrow): Exit loop after
7891 setting can_throw.
7892
7893 * omega.c (omega_eliminate_red): Break after setting red_found.
7894 (omega_problem_has_red_equations): Similarly after setting found.
7895 (omega_query_variable): Similarly after setting coupled.
7896
9b6e6981
MP
78972013-07-22 Marek Polacek <polacek@redhat.com>
7898
7899 * gimplify.c: Don't include gimple.h twice.
7900
5e5f7673
KT
79012013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7902
7903 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
7904 instead of TARGET_THUMB1.
7905 (Pz): New constraint.
7906 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
7907 encodings.
7908 (compare_negsi_si): Likewise.
7909 (compare_addsi2_op0): Likewise.
7910 (compare_addsi2_op1): Likewise.
7911 (addsi3_carryin_<optab>): Likewise.
7912 (addsi3_carryin_alt2_<optab>): Likewise.
7913 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
7914 for arm_restrict_it.
7915 (subsi3_carryin): Likewise.
7916 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
7917 (minmax_arithsi): Disable for arm_restrict_it.
7918 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
7919 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
7920 (satsi_<SAT:code>_shift): Likewise.
7921 (arm_shiftsi3): Add alternative for 16-bit encoding.
7922 (arm32_movhf): Disable for arm_restrict_it.
7923 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
7924 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
7925
859abddd
SN
79262013-07-22 Sofiane Naci <sofiane.naci@arm.com>
7927
7928 * config/arm/arm.md (attribute "insn"): Delete.
7929 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
7930 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
7931 (not_shiftsi): Update for attribute change.
7932 (not_shiftsi_compare0): Likewise.
7933 (not_shiftsi_compare0_scratch): Likewise.
7934 (arm_one_cmplsi2): Likewise.
7935 (thumb1_one_cmplsi2): Likewise.
7936 (notsi_compare0): Likewise.
7937 (notsi_compare0_scratch): Likewise.
7938 (thumb1_movdi_insn): Likewise.
7939 (arm_movsi_insn): Likewise.
7940 (movhi_insn_arch4): Likewise.
7941 (movhi_bytes): Likewise.
7942 (arm_movqi_insn): Likewise.
7943 (thumb1_movqi_insn): Likewise.
7944 (arm32_movhf): Likewise.
7945 (thumb1_movhf): Likewise.
7946 (arm_movsf_soft_insn): Likewise.
7947 (thumb1_movsf_insn): Likewise.
7948 (thumb_movdf_insn): Likewise.
7949 (movsicc_insn): Likewise.
7950 (movsfcc_soft_insn): Likewise.
7951 (and_scc): Likewise.
7952 (cond_move): Likewise.
7953 (if_move_not): Likewise.
7954 (if_not_move): Likewise.
7955 (if_shift_move): Likewise.
7956 (if_move_shift): Likewise.
7957 (if_shift_shift): Likewise.
7958 (if_not_arith): Likewise.
7959 (if_arith_not): Likewise.
7960 (cond_move_not): Likewise.
7961 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
7962 (neon_mov<mode>): Likewise.
7963 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
7964 (thumb2_movsi_vfp): Likewise.
7965 (movsf_vfp): Likewise.
7966 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
7967 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
7968 change.
859abddd
SN
7969 (cortexa7_older_only): Likewise.
7970 (cortexa7_younger): Likewise.
7971 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
7972 (1020alu_shift_op): Likewise.
7973 (1020alu_shift_reg_op): Likewise.
7974 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
7975 (alu_shift_op): Likewise.
7976 (alu_shift_reg_op): Likewise.
7977 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
7978 (11_alu_shift_op): Likewise.
7979 (11_alu_shift_reg_op): Likewise.
7980 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
7981 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
7982 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
7983 change.
859abddd
SN
7984 (cortex_a15_alu_shift): Likewise.
7985 (cortex_a15_alu_shift_reg): Likewise.
7986 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
7987 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
7988 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
7989 change.
859abddd 7990 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
7991 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
7992 change.
859abddd
SN
7993 (cortex_a7_alu_reg): Likewise.
7994 (cortex_a7_alu_shift): Likewise.
7995 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
7996 (cortex_a8_alu_shift): Likewise.
7997 (cortex_a8_alu_shift_reg): Likewise.
7998 (cortex_a8_mov): Likewise.
7999 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
8000 (cortex_a9_dp_shift): Likewise.
8001 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
8002 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
8003 (cortex_r4_mov): Likewise.
8004 (cortex_r4_alu_shift): Likewise.
8005 (cortex_r4_alu_shift_reg): Likewise.
8006 * config/arm/fa526.md (526_alu_op): Update for attribute change.
8007 (526_alu_shift_op): Likewise.
8008 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
8009 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
8010 (626te_alu_shift_op): Likewise.
8011 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
8012 (726te_alu_op): Likewise.
8013 (726te_alu_shift_op): Likewise.
8014 (726te_alu_shift_reg_op): Likewise.
8015 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
8016 (mp626_alu_shift_op): Likewise.
8017 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
8018 (pj4_alu_e1_conds): Likewise.
8019 (pj4_alu): Likewise.
8020 (pj4_alu_conds): Likewise.
8021 (pj4_shift): Likewise.
8022 (pj4_shift_conds): Likewise.
8023 (pj4_alu_shift): Likewise.
8024 (pj4_alu_shift_conds): Likewise.
8025
95b97fac
KT
80262013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8027
8028 * config/arm/predicates.md (shiftable_operator_strict_it):
8029 New predicate.
8030 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
8031 Disable cond_exec version for arm_restrict_it.
8032 (thumb2_smaxsi3): Convert to generate cond_exec.
8033 (thumb2_sminsi3): Likewise.
8034 (thumb32_umaxsi3): Likewise.
8035 (thumb2_uminsi3): Likewise.
8036 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
8037 (thumb2_neg_abssi2): Likewise.
8038 (thumb2_mov_scc): Add alternative for 16-bit encoding.
8039 (thumb2_movsicc_insn): Adjust alternatives.
8040 (thumb2_mov_negscc): Disable for arm_restrict_it.
8041 (thumb2_mov_negscc_strict_it): New pattern.
8042 (thumb2_mov_notscc_strict_it): New pattern.
8043 (thumb2_mov_notscc): Disable for arm_restrict_it.
8044 (thumb2_ior_scc): Likewise.
8045 (thumb2_ior_scc_strict_it): New pattern.
8046 (thumb2_cond_move): Adjust for arm_restrict_it.
8047 (thumb2_cond_arith): Disable for arm_restrict_it.
8048 (thumb2_cond_arith_strict_it): New pattern.
8049 (thumb2_cond_sub): Adjust for arm_restrict_it.
8050 (thumb2_movcond): Likewise.
8051 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
8052 (thumb2_zero_extendhisi2_v6): Likewise.
8053 (thumb2_zero_extendqisi2_v6): Likewise.
8054 (orsi_notsi_si): Likewise.
8055 (orsi_not_shiftsi_si): Likewise.
8056
d5a6ef82
GJL
80572013-07-22 Georg-Johann Lay <avr@gjlay.de>
8058
8059 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
8060 instruction sequence is 1 byte shorter.
8061
d9e71154
UB
80622013-07-22 Uros Bizjak <ubizjak@gmail.com>
8063
8064 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
8065 it is not needed after split.
8066
8c6381ec
IS
80672013-07-20 Iain Sandoe <iain@codesourcery.com>
8068
8069 PR target/51784
8070 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
8071 second label for nonlocal goto receivers. Don't output pic base labels
8072 unless we're producing PIC; mark that action unreachable().
8073 (ix86_save_reg): If the function contains a nonlocal label, save the
8074 PIC base reg.
8075 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 8076 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
8077 (update_pic_label_number_if_needed): New.
8078 (machopic_output_function_base_name): Adjust for nonlocal receiver
8079 case.
8080 (machopic_should_output_picbase_label): New.
8081 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
8082 (nonlocal_goto_receiver): New insn and split.
8083
d05d0709
JG
80842013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
8085
8086 * config/aarch64/aarch64-builtins.c
8087 (aarch64_fold_builtin): Fold abs in all modes.
8088 * config/aarch64/aarch64-simd-builtins.def
8089 (abs): Enable for all modes.
8090 * config/aarch64/arm_neon.h
8091 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
8092 (vabs_f64): Add missing intrinsic.
8093
ba590e63
IB
80942013-07-19 Ian Bolton <ian.bolton@arm.com>
8095
8096 * config/aarch64/arm_neon.h (vabs_s64): New function
8097
02371798
GJL
80982013-07-19 Georg-Johann Lay <avr@gjlay.de>
8099
8100 PR target/57516
8101 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
8102 * config/avr/avr.md (adjust_len): Add `round'.
8103 * config/avr/avr-protos.h (avr_out_round): New prototype.
8104 (avr_out_plus): Add `out_label' argument.
8105 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
8106 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
8107 Handle the case where `insn' is just a pattern.
8108 (avr_out_bitop): Handle the case where `insn' is just a pattern.
8109 (avr_out_round): New function.
8110 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
8111
12211b99 81122013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
8113
8114 * config/microblaze/microblaze.c (microblaze_expand_prologue):
8115 Add check for flag_stack_usage to handle -fstack-usage support
8116
12211b99 81172013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
8118
8119 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
8120 interaction for new Power8 flags and VSX.
8121
df9dda2d
ST
81222013-07-18 Sriraman Tallam <tmsriram@google.com>
8123
8124 PR middle-end/57698
8125 * tree-inline.c (expand_call_inline): Emit errors during
8126 early_inlining only if optimization is not turned on.
8127
0f9cdef4
DM
81282013-07-18 David Malcolm <dmalcolm@redhat.com>
8129
8130 * passes.def: New.
8131
8132 * passes.c (init_optimization_passes): Move the construction of
8133 the pass hierarchy into a new passes.def file.
8134
8135 * Makefile.in (passes.o): Add dependency on passes.def.
8136
2efa4087
DM
81372013-07-18 David Malcolm <dmalcolm@redhat.com>
8138
8139 * passes.c (init_optimization_passes): Introduce macros for
8140 constructing the tree of passes (INSERT_PASSES_AFTER,
8141 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
8142 TERMINATE_PASS_LIST).
8143
bc404e1b
VM
81442013-07-18 Vladimir Makarov <vmakarov@redhat.com>
8145 Wei Mi <wmi@google.com>
8146
8147 PR rtl-optimization/57878
8148 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
8149 top.
8150 (reload_pseudo_compare_func): Check nregs first for reload
8151 pseudos.
8152
d675843f
DM
81532013-07-18 David Malcolm <dmalcolm@redhat.com>
8154
8155 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
8156
c7b3b99f 81572013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
8158
8159 * read-rtl.c (validate_const_int): Once an invalid character is
8160 seen, quit the loop.
8161
8162 * gengtype.c (write_roots): Similarly once we find the "deletable"
8163 or "if_marked" option.
8164
52fceb44
SN
81652013-07-18 Sofiane Naci <sofiane.naci@arm.com>
8166
8167 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
8168 "xtab" and "sat". Move value "clz" from here to ...
8169 (attriubte "type"): ... here.
8170 (satsi_<SAT:code>): Delete "insn" attribute.
8171 (satsi_<SAT:code>_shift): Likewise.
8172 (arm_zero_extendqisi2addsi): Likewise.
8173 (arm_extendqisi2addsi): Likewise.
8174 (clzsi2): Update for attribute changes.
8175 (rbitsi2): Likewise.
371e77e3
UB
8176 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
8177 attribute.
52fceb44
SN
8178 (arm_usatsihi): Likewise.
8179 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
8180
006bd006
SN
81812013-07-18 Sofiane Naci <sofiane.naci@arm.com>
8182
8183 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
8184 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
8185 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
8186 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
8187 in alphabetical order.
8188 (attribute "core_cycles"): Update for attribute changes.
8189 (arm_addsi3): Likewise.
8190 (addsi3_compare0): Likewise.
8191 (addsi3_compare0_scratch): Likewise.
8192 (addsi3_compare_op1): Likewise.
8193 (addsi3_compare_op2): Likewise.
8194 (compare_addsi2_op0): Likewise.
8195 (compare_addsi2_op1): Likewise.
8196 (addsi3_carryin_shift_<optab>): Likewise.
8197 (subsi3_carryin_shift): Likewise.
8198 (rsbsi3_carryin_shift): Likewise.
8199 (arm_subsi3_insn): Likewise.
8200 (subsi3_compare0): Likewise.
8201 (subsi3_compare): Likewise.
8202 (arm_andsi3_insn): Likewise.
8203 (thumb1_andsi3_insn): Likewise.
8204 (andsi3_compare0): Likewise.
8205 (andsi3_compare0_scratch): Likewise.
8206 (zeroextractsi_compare0_scratch
8207 (andsi_not_shiftsi_si): Likewise.
8208 (iorsi3_insn): Likewise.
8209 (iorsi3_compare0): Likewise.
8210 (iorsi3_compare0_scratch): Likewise.
8211 (arm_xorsi3): Likewise.
8212 (thumb1_xorsi3_insn): Likewise.
8213 (xorsi3_compare0): Likewise.
8214 (xorsi3_compare0_scratch): Likewise.
8215 (satsi_<SAT:code>_shift): Likewise.
8216 (rrx): Likewise.
8217 (arm_shiftsi3): Likewise.
8218 (shiftsi3_compare0): Likewise.
8219 (not_shiftsi): Likewise.
8220 (not_shiftsi_compare0): Likewise.
8221 (not_shiftsi_compare0_scratch): Likewise.
8222 (arm_one_cmplsi2): Likewise.
8223 (thumb_one_complsi2): Likewise.
8224 (notsi_compare0): Likewise.
8225 (notsi_compare0_scratch): Likewise.
8226 (thumb1_zero_extendhisi2): Likewise.
8227 (arm_zero_extendhisi2): Likewise.
8228 (arm_zero_extendhisi2_v6): Likewise.
8229 (arm_zero_extendhisi2addsi): Likewise.
8230 (thumb1_zero_extendqisi2): Likewise.
8231 (thumb1_zero_extendqisi2_v6): Likewise.
8232 (arm_zero_extendqisi2): Likewise.
8233 (arm_zero_extendqisi2_v6): Likewise.
8234 (arm_zero_extendqisi2addsi): Likewise.
8235 (thumb1_extendhisi2): Likewise.
8236 (arm_extendhisi2): Likewise.
8237 (arm_extendhisi2_v6): Likewise.
8238 (arm_extendqisi): Likewise.
8239 (arm_extendqisi_v6): Likewise.
8240 (arm_extendqisi2addsi): Likewise.
8241 (thumb1_extendqisi2): Likewise.
8242 (thumb1_movdi_insn): Likewise.
8243 (arm_movsi_insn): Likewise.
8244 (movsi_compare0): Likewise.
8245 (movhi_insn_arch4): Likewise.
8246 (movhi_bytes): Likewise.
8247 (arm_movqi_insn): Likewise.
8248 (thumb1_movqi_insn): Likewise.
8249 (arm32_movhf): Likewise.
8250 (thumb1_movhf): Likewise.
8251 (arm_movsf_soft_insn): Likewise.
8252 (thumb1_movsf_insn): Likewise.
8253 (movdf_soft_insn): Likewise.
8254 (thumb_movdf_insn): Likewise.
8255 (arm_cmpsi_insn): Likewise.
8256 (cmpsi_shiftsi): Likewise.
8257 (cmpsi_shiftsi_swp): Likewise.
8258 (arm_cmpsi_negshiftsi_si): Likewise.
8259 (movsicc_insn): Likewise.
8260 (movsfcc_soft_insn): Likewise.
8261 (arith_shiftsi): Likewise.
8262 (arith_shiftsi_compare0
8263 (arith_shiftsi_compare0_scratch
8264 (sub_shiftsi): Likewise.
8265 (sub_shiftsi_compare0
8266 (sub_shiftsi_compare0_scratch
8267 (and_scc): Likewise.
8268 (cond_move): Likewise.
8269 (if_plus_move): Likewise.
8270 (if_move_plus): Likewise.
8271 (if_move_not): Likewise.
8272 (if_not_move): Likewise.
8273 (if_shift_move): Likewise.
8274 (if_move_shift): Likewise.
8275 (if_shift_shift): Likewise.
8276 (if_not_arith): Likewise.
8277 (if_arith_not): Likewise.
8278 (cond_move_not): Likewise.
8279 (thumb1_ashlsi3): Set type attribute.
8280 (thumb1_ashrsi3): Likewise.
8281 (thumb1_lshrsi3): Likewise.
8282 (thumb1_rotrsi3): Likewise.
8283 (shiftsi3_compare0_scratch): Likewise.
8284 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
8285 (neon_mov<mode>): Likewise.
371e77e3
UB
8286 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
8287 attribute changes.
006bd006
SN
8288 (thumb2_movsi_insn): Likewise.
8289 (thumb2_cmpsi_neg_shiftsi): Likewise.
8290 (thumb2_extendqisi_v6): Likewise.
8291 (thumb2_zero_extendhisi2_v6): Likewise.
8292 (thumb2_zero_extendqisi2_v6): Likewise.
8293 (thumb2_shiftsi3_short): Likewise.
8294 (thumb2_addsi3_compare0_scratch): Likewise.
8295 (orsi_not_shiftsi_si): Likewise.
8296 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
8297 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
8298 changes.
8299 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
8300 (1020alu_shift_op): Likewise.
8301 (1020alu_shift_reg_op): Likewise.
8302 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
8303 (alu_shift_op): Likewise.
8304 (alu_shift_reg_op): Likewise.
8305 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
8306 (11_alu_shift_op): Likewise.
8307 (11_alu_shift_reg_op): Likewise.
8308 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
8309 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
8310 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
8311 changes.
006bd006
SN
8312 (cortex_a15_alu_shift): Likewise.
8313 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
8314 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
8315 changes.
006bd006
SN
8316 (cortex_a5_alu_shift): Likewise.
8317 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
8318 changes.
8319 (cortex_a53_alu_shift): Likewise.
8320 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
8321 changes.
8322 (cortex_a7_alu_reg): Likewise.
8323 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
8324 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
8325 changes.
006bd006
SN
8326 (cortex_a8_alu_shift): Likewise.
8327 (cortex_a8_alu_shift_reg): Likewise.
8328 (cortex_a8_mov): Likewise.
8329 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
8330 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
8331 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
8332 changes.
8333 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
8334 changes.
006bd006
SN
8335 (cortex_r4_mov): Likewise.
8336 (cortex_r4_alu_shift): Likewise.
8337 (cortex_r4_alu_shift_reg): Likewise.
8338 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
8339 (526_alu_shift_op): Likewise.
8340 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
8341 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
8342 (626te_alu_shift_op): Likewise.
8343 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
8344 (726te_alu_op): Likewise.
8345 (726te_alu_shift_op): Likewise.
8346 (726te_alu_shift_reg_op): Likewise.
8347 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
8348 (mp626_alu_shift_op): Likewise.
8349 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
8350 (pj4_alu_e1_conds): Likewise.
8351 (pj4_alu): Likewise.
8352 (pj4_alu_conds): Likewise.
8353 (pj4_shift): Likewise.
8354 (pj4_shift_conds): Likewise.
8355 (pj4_alu_shift): Likewise.
8356 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
8357 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
8358 changes.
006bd006
SN
8359 (cortexa7_older_only): Likewise.
8360 (cortexa7_younger): Likewise.
8361
651df1b2
DM
83622013-07-18 David Malcolm <dmalcolm@redhat.com>
8363
8364 * ipa-pure-const.c (generate_summary): Rename to...
8365 (pure_const_generate_summary): ... this.
8366
ea717bd7
IS
83672013-07-17 Iain Sandoe <iain@codesourcery.com>
8368
8369 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
8370
a1259a13
YR
83712013-07-17 Yvan Roux <yvan.roux@linaro.org>
8372
8373 PR target/57909
8374 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
8375 usage in HI mode.
8376
167f68ed
AK
83772013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8378
8379 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
8380 enabled without -march=zEC12.
8381 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
8382 flags to be set.
8383
f900a982
MR
83842013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
8385
8386 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
8387 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
8388 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
8389 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
8390 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
8391 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
8392 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
8393 ISA_HAS_FP4.
8394 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
8395 and ISA_HAS_NMADD3_NMSUB3.
8396 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
8397 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
8398 (nmsub4<mode>, nmsub3<mode>): Likewise.
8399 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
8400
d4ed27eb
MR
84012013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
8402
8403 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
8404 TARGET_MIPS5400 checking.
8405
7a5add18
PB
84062013-07-16 Jakub Jelinek <jakub@redhat.com>
8407 Peter Bergner <bergner@vnet.ibm.com>
8408
8409 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
8410 registers in the comment.
8411 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
8412 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
8413 rather than FIRST_PSEUDO_REGISTERS.
8414
84152013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
8416
8417 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
8418 enable extra ISA flags with TARGET_HTM.
8419
d2ab0929
MR
84202013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
8421
8422 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
8423 Fix comment typos.
8424
839c74bc
CH
84252013-07-15 Cong Hou <congh@google.com>
8426
8427 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
8428 in compare function for sorting.
8429
7a5add18 84302013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
8431
8432 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
8433 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
8434 * config/rs6000/rs6000.opt: Add -mhtm option.
8435 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
8436 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
8437 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
8438 __HTM__ if the HTM instructions are available.
8439 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
8440 htm_spr_reg_operand): New define_predicates.
8441 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
8442 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
8443 Include htm.md.
8444 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
8445 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
8446 HTM builtin functions.
8447 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
8448 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
8449 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
8450 (rs6000_builtin_mask_calculate): Likewise.
8451 (rs6000_option_override_internal): Likewise.
8452 (bdesc_htm): Add new HTM builtin support.
8453 (htm_spr_num): New function.
8454 (htm_spr_regno): Likewise.
8455 (rs6000_htm_spr_icode): Likewise.
8456 (htm_expand_builtin): Likewise.
8457 (htm_init_builtins): Likewise.
8458 (rs6000_expand_builtin): Add support for HTM builtin functions.
8459 (rs6000_init_builtins): Likewise.
371e77e3
UB
8460 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
8461 option.
0258b6e4
PB
8462 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
8463 (TARGET_HTM, MASK_HTM): Define macros.
8464 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
8465 (FIXED_REGISTERS): Likewise.
8466 (CALL_USED_REGISTERS): Likewise.
8467 (CALL_REALLY_USED_REGISTERS): Likewise.
8468 (REG_ALLOC_ORDER): Likewise.
8469 (enum reg_class): Likewise.
8470 (REG_CLASS_NAMES): Likewise.
8471 (REG_CLASS_CONTENTS): Likewise.
8472 (REGISTER_NAMES): Likewise.
8473 (ADDITIONAL_REGISTER_NAMES): Likewise.
8474 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
8475 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
8476 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
8477 * config/rs6000/htm.md: New file.
8478 * config/rs6000/htmintrin.h: New file.
8479 * config/rs6000/htmxlintrin.h: New file.
8480
87dd8ab0
MS
84812013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
8482
8483 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
8484 Define SYMBOL_TINY_GOT, update comment.
8485 * config/aarch64/aarch64.c
8486 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
8487 (aarch64_expand_mov_immediate): Likewise.
8488 (aarch64_print_operand): Likewise.
8489 (aarch64_classify_symbol): Likewise.
8490 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
8491 (ldr_got_tiny): Define.
8492
52d676b6
TG
84932013-07-13 Tobias Grosser <tobias@grosser.es>
8494
8495 PR tree-optimization/54094
8496 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
8497 scheduling dimension for the parallelism check from the polyhedral
8498 information in the AST.
8499 * graphite-dependences.c (carries_deps): Do not assume the schedule is
8500 in 2D + 1 form.
8501
286e8fc1
JM
85022013-07-13 Jason Merrill <jason@redhat.com>
8503
8504 * print-tree.c (debug_vec_tree): Use debug_raw.
8505 (debug_raw (vec<tree, va_gc> &)): New.
8506 (debug_raw (vec<tree, va_gc> *)): New.
8507 * tree.h: Declare them.
8508
e43257e8
BC
85092013-07-13 Bin Cheng <bin.cheng@arm.com>
8510
8511 * ifcvt.c (ifcvt_after_combine): New static variable.
8512 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
8513 for size.
8514 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
8515 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
8516 rest_of_handle_if_after_reload): Pass new argument for if_convert.
8517
da582d46
MR
85182013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
8519
8520 * config/mips/mips.c (mips_expand_call): Remove empty statement.
8521
18b0ea8f
MM
85222013-07-12 Michael Matz <matz@suse.de>
8523
8524 PR middle-end/55771
8525 * convert.c (convert_to_real): Reject non-float inner types.
8526
e4f0f84d
TB
85272013-07-12 Tejas Belagod <tejas.belagod@arm.com>
8528
8529 * config/aarch64/aarch64-protos.h
8530 (aarch64_simd_immediate_valid_for_move): Remove.
8531 * config/aarch64/aarch64.c (simd_immediate_info): New member.
8532 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
8533 cases.
8534 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
8535
76500022
SE
85362013-07-11 Steve Ellcey <sellcey@mips.com>
8537
8538 * config/mips/mips.c (mips_conditional_register_usage): Do not
8539 use t[0-7] registers in MIPS16 mode when optimizing for size.
8540
78039734
ST
85412013-07-11 Sriraman Tallam <tmsriram@google.com>
8542
8543 * config/i386/i386.c (dispatch_function_versions): Fix array
8544 indexing of function_version_info to match actual_versions.
8545
7b24b675
TJ
85462013-07-11 Teresa Johnson <tejohnson@google.com>
8547
8548 * vec.h (struct va_gc): Move release out-of-line.
8549 (va_gc::release): Call ggc_free on released vec.
8550
85d4cbb8
UW
85512013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8552
8553 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
8554 Require GOT register as additional operand in UNSPEC.
8555 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
8556 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
8557 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
8558 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
8559 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
8560 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
8561 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
8562
52b3f9e2
GJL
85632013-07-11 Georg-Johann Lay <avr@gjlay.de>
8564
8565 PR target/57631
8566 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
8567 name seen by assembler/linker rather if available.
8568
3f3e266e
AS
85692013-07-11 Andreas Schwab <schwab@suse.de>
8570
8571 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
8572
21231ca6
VM
85732013-07-10 Vladimir Makarov <vmakarov@redhat.com>
8574
371e77e3 8575 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 8576
d331d374
JM
85772013-07-10 Joseph Myers <joseph@codesourcery.com>
8578
673c2f63
JM
8579 * doc/tm.texi.in: Move hook documentation to ....
8580 * target.def: ... here.
8581
d331d374
JM
8582 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
8583 text on @hook line.
8584 * doc/tm.texi: Regenerate.
8585
dfeadaa0
PC
85862013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
8587
8588 PR c++/57869
8589 * doc/invoke.texi: Document -Wconditionally-supported.
8590
bb6f2bac
GJL
85912013-07-10 Georg-Johann Lay <avr@gjlay.de>
8592
8593 PR target/57844
8594 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
8595 of my_fp.
8596
5219b232
GJL
85972013-07-10 Georg-Johann Lay <avr@gjlay.de>
8598
8599 PR target/57506
8600 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
8601 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
8602 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
8603 Remove duplicate devices.
8604 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
8605 * config/avr/t-multilib: Regenerate.
8606 * config/avr/avr-tables.opt: Regenerate.
8607 * doc/avr-mmcu.texi: Regenerate.
8608
283045c0
GJL
86092013-07-10 Georg-Johann Lay <avr@gjlay.de>
8610
8611 PR target/56987
8612 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
8613
ceb2d59f 86142013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 8615
ceb2d59f
GS
8616 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
8617 the cost of MULT when optimizing for size.
8618
055e0a99
JBG
86192013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8620
8621 * config/cr16/cr16-protos.h: Don't include target.h.
8622
ef43e868
JM
86232013-07-09 Joseph Myers <joseph@codesourcery.com>
8624
8625 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
8626 adjust register size for TDmode and TFmode for VSX registers.
8627
4a283fdf
KT
86282013-07-08 Kai Tietz <ktietz@redhat.com>
8629
8630 PR target/56892
8631 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
8632 hook_bool_const_tree_true.
8633
2cf4c39e
AK
86342013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8635
8636 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
8637 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
8638 * config/s390/s390.md: Define FPR*_REGNUM constants.
8639 Fix FPR2_REGNUM constant (18 -> 17).
8640 ("*trunc<BFP:mode><DFP_ALL:mode>2")
8641 ("*trunc<DFP_ALL:mode><BFP:mode>2")
8642 ("trunc<BFP:mode><DFP_ALL:mode>2")
8643 ("trunc<DFP_ALL:mode><BFP:mode>2")
8644 ("*extend<BFP:mode><DFP_ALL:mode>2")
8645 ("*extend<DFP_ALL:mode><BFP:mode>2")
8646 ("extend<BFP:mode><DFP_ALL:mode>2")
8647 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
8648 FPR4_REGNUM.
8649
e6ac0270 86502013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 8651
6a2fa4b2 8652 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 8653
b89b22fc
AK
86542013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8655
8656 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
8657 and cfun_fpr_bit_p to cfun_fpr_save_p.
8658 (s390_frame_area, s390_register_info, s390_frame_info)
8659 (s390_emit_prologue, s390_emit_epilogue)
8660 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
8661 register numbers.
8662 * config/s390/s390.h: Define *_REGNUM macros for floating point
8663 register numbers.
8664
07f398aa
EB
86652013-07-08 Eric Botcazou <ebotcazou@adacore.com>
8666
8667 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
8668
75fefa91
PCC
86692013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
8670
8671 PR rtl-optimization/57786
8672 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
8673 and break out of the loop when it is set to false.
8674
046f1eee
JJ
86752013-07-08 Jakub Jelinek <jakub@redhat.com>
8676
8140c065
JJ
8677 PR target/57819
8678 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
8679 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
8680 (const_int 63)) 0)).
8681 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
8682 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
8683 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
8684
046f1eee
JJ
8685 PR rtl-optimization/57829
8686 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
8687 mask bits outside of mode are just sign-extension from mode to HWI.
8688
930b700b
MZ
86892013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
8690
8691 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
8692 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
8693 adjust_address instead of change_address to keep info about alignment.
8694 (emit_strmov): Remove.
8695 (emit_memmov): New function.
8696 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
8697 (expand_movmem_epilogue): Likewise and return updated rtx for
8698 destination.
8699 (expand_constant_movmem_prologue): Likewise and return updated rtx for
8700 destination and source.
8701 (decide_alignment): Refactor, handle vector_loop.
8702 (ix86_expand_movmem): Likewise.
8703 (ix86_expand_setmem): Likewise.
8704 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
8705
7b9d1bd8
UB
87062013-07-07 Uros Bizjak <ubizjak@gmail.com>
8707
8708 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
8709 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
8710
eabb5f48
UB
87112013-07-06 Uros Bizjak <ubizjak@gmail.com>
8712
8713 * config/i386/sse.md (sse_movlhps): Change alternative 3
8714 of operand 2 to "m".
8715
87162013-07-06 Uros Bizjak <ubizjak@gmail.com>
8717
8718 PR target/57807
8719 * config/i386/sse.md (iptr): New mode attribute.
8720 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
8721 (<sse>_vm<plusminus_insn><mode>3): Ditto.
8722 (<sse>_vmmul<mode>3): Ditto.
8723 (<sse>_vmdiv<mode>3): Ditto.
8724 (sse_vmrcpv4sf2): Ditto.
8725 (<sse>_vmsqrt<mode>2): Ditto.
8726 (sse_vmrsqrtv4sf2): Ditto.
8727 (<sse>_vm<code><mode>3): Ditto.
8728 (avx_vmcmp<mode>3): Ditto.
8729 (<sse>_vmmaskcmp<mode>3): Ditto.
8730 (<sse>_comi): Ditto.
8731 (<sse>_ucomi): Ditto.
8732 (*xop_vmfrcz_<mode>): Ditto.
8733 (*fmai_fmadd_<mode>): Ditto.
8734 (*fmai_fmsub_<mode>): Ditto.
8735 (*fmai_fnmadd_<mode>): Ditto.
8736 (*fmai_fnmsub_<mode>): Ditto.
8737 (*fma4i_vmfmadd_<mode>): Ditto.
8738 (*fma4i_vmfmsub_<mode>): Ditto.
8739 (*fma4i_vmfnmadd_<mode>): Ditto.
8740 (*fma4i_vmfnmsub_<mode>): Ditto.
8741 (*xop_vmfrcz_<mode>): Ditto.
8742 (sse_cvtps2pi): Ditto.
8743 (sse_cvttps2pi): Ditto.
8744 (sse_cvtss2si): Ditto.
8745 (sse_cvtss2si_2): Ditto.
8746 (sse_cvtss2siq_2): Ditto.
8747 (sse_cvttss2si): Ditto.
8748 (sse_cvttss2siq): Ditto.
8749 (sse_cvtsd2si): Ditto.
8750 (sse_cvtsd2si_2): Ditto.
8751 (sse_cvtsd2siq_2): Ditto.
8752 (sse_cvttsd2si): Ditto.
8753 (sse_cvttsd2siq): Ditto.
8754 (sse_cvtsd2ss): Ditto.
8755 (sse_cvtss2sd): Ditto.
8756 (avx2_pbroadcast<mode>): Ditto.
8757 (avx2_pbroadcast<mode>_1): Ditto.
8758 (*avx_vperm_broadcast_v4sf): Ditto.
8759
8760 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
8761 (sse_movlhps): Ditto.
8762 (sse_storehps): Ditto.
8763 (sse_loadhps): Ditto.
8764 (sse_storelps): Ditto.
8765 (sse_loadlps): Ditto.
8766 (*vec_concatv4sf): Ditto.
8767 (*vec_interleave_highv2df): Ditto.
8768 (*vec_interleave_lowv2df): Ditto.
8769 (*vec_extractv2df_1_sse): Ditto.
8770 (*vec_extractv2df_0_sse): Ditto.
8771 (sse2_storelpd): Ditto.
8772 (sse2_loadlpd): Ditto.
8773 (sse2_movsd): Ditto.
8774 (*vec_concatv4si): Ditto.
8775 (vec_concatv2di): Ditto.
8776
8777 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
8778 for Intel asm dialect.
8779 (mmx_punpcklwd): Ditto.
8780 (mmx_punpckldq): Ditto.
8781
8782 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
8783 for intel assembler dialect.
8784
1f6eac90
JJ
87852013-07-06 Jakub Jelinek <jakub@redhat.com>
8786
8787 PR target/29776
8788 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
8789 for BUILT_IN_C{LZ,LRSB}*.
8790 * tree.h (CASE_INT_FN): Add FN##IMAX case.
8791 * tree-vrp.c (extract_range_basic): Handle
8792 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
8793 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
8794 fall thru to code calling set_value*.
8795 * builtins.c (expand_builtin): Remove *IMAX cases.
8796 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
8797 if width is bigger than 2*HWI.
8798
2b778c9d
VM
87992013-07-05 Vladimir Makarov <vmakarov@redhat.com>
8800
8801 PR rtl-optimization/55342
8802 * lra-int.h (lra_subreg_reload_pseudos): New.
8803 * lra.c: Add undoing optional reloads to the block diagram.
8804 (lra_subreg_reload_pseudos): New.
8805 (lra_optional_reload_pseudos): Change comments.
8806 (lra): Init and clear lra_subreg_reload_pseudos. Clear
8807 lra_optional_reload_pseudos after undo transformations.
8808 * lra-assigns.c (pseudo_prefix_title): New.
8809 (lra_setup_reg_renumber): Use it.
8810 (spill_for): Ditto. Check subreg reload pseudos too.
8811 (assign_by_spills): Consider subreg reload pseudos too.
8812 * lra-constraints.c (simplify_operand_subreg): Use
8813 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
8814 (curr_insn_transform): Recognize and do optional reloads.
8815 (undo_optional_reloads): New.
8816 (lra_undo_inheritance): Call undo_optional_reloads.
8817
207156e4
TQ
88182013-07-05 Thomas Quinot <quinot@adacore.com>
8819
8820 * tree-complex.c (expand_complex_operations_1): Fix typo.
8821
8990e73a
TB
88222013-07-04 Tejas Belagod <tejas.belagod@arm.com>
8823
8824 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
8825 (tune_params): New member 'const vec_costs'.
8826 * config/aarch64/aarch64.c (generic_vector_cost): New.
8827 (generic_tunings): New member 'generic_vector_cost'.
8828 (aarch64_builtin_vectorization_cost): New.
8829 (aarch64_add_stmt_cost): New.
8830 (TARGET_VECTORIZE_ADD_STMT_COST): New.
8831 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
8832
f7bc421d
JJ
88332013-07-03 Jakub Jelinek <jakub@redhat.com>
8834
8835 PR target/57777
8836 * config/i386/predicates.md (vsib_address_operand): Disallow
8837 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
8838
e90d1568
HPN
88392013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
8840
8841 PR middle-end/55030
8842 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
8843 expand_builtin_setjmp_receiver.
8844 (expand_label): Adjust, call expand_builtin_setjmp_receiver
8845 with NULL for the label parameter.
8846 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
8847 the frame-pointer. Adjust comments.
8848 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
8849 only if LABEL is non-NULL.
8850
cbd7413b
YZ
88512013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
8852
8853 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
8854 (ARM_ABI_AAPCS64): Ditto.
8855 (arm_abi): Ditto.
8856 (ARM_DEFAULT_ABI): Ditto.
8857
dec11868
JG
88582013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
8859
8860 * config/aarch64/aarch64-builtins.c
8861 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
8862 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
8863 (st1): Likewise.
8864 * config/aarch64/aarch64-simd.md
8865 (aarch64_ld1<VALL:mode>): New.
8866 (aarch64_st1<VALL:mode>): Likewise.
8867 * config/aarch64/arm_neon.h
8868 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
8869
786fb9b6
ST
88702013-07-02 Sriraman Tallam <tmsriram@google.com>
8871
0ba6aff3
UB
8872 * config/i386/i386.c (gate_insert_vzeroupper): Check if
8873 target ISA is AVX.
786fb9b6
ST
8874 (ix86_option_override_internal):Turn on all -mavx target flags by
8875 default as they are dependent on AVX anyway.
8876
4b043553
CC
88772013-07-02 Cary Coutant <ccoutant@google.com>
8878
8879 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
8880 deterministic hash.
8881 (loc_checksum_ordered): Likewise.
8882 (hash_loc_operands): Remove inline keyword.
8883
c4e87a13
JJ
88842013-07-02 Jakub Jelinek <jakub@redhat.com>
8885
8886 PR tree-optimization/57741
8887 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
8888 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
8889 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
8890 Allow REAL_CST step_exprs if flag_associative_math.
8891 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
8892
26366d28
IB
88932013-07-02 Ian Bolton <ian.bolton@arm.com>
8894
0ba6aff3 8895 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 8896
2879bb2b
IB
88972013-07-02 Ian Bolton <ian.bolton@arm.com>
8898
8899 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
8900
afc5e8a6
KT
89012013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8902
8903 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
8904 encoding.
8905 (iorsi3_insn): Likewise.
8906 (arm_xorsi3): Likewise.
8907
31f8442b
SN
89082013-07-01 Sofiane Naci <sofiane.naci@arm.com>
8909
8910 * arm.md (attribute "wtype"): Delete. Move attribute values from here
8911 to ...
8912 (attribute "type"): ... here, and prefix with "wmmx_".
8913 (attribute "core_cycles"): Update for attribute changes.
8914 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
8915 (tbcstv4hi): Likewise.
8916 (tbcstv2si): Likewise.
8917 (iwmmxt_iordi3): Likewise.
8918 (iwmmxt_xordi3): Likewise.
8919 (iwmmxt_anddi3): Likewise.
8920 (iwmmxt_nanddi3): Likewise.
8921 (iwmmxt_arm_movdi): Likewise.
8922 (iwmmxt_movsi_insn): Likewise.
8923 (mov<mode>_internal): Likewise.
8924 (and<mode>3_iwmmxt): Likewise.
8925 (ior<mode>3_iwmmxt): Likewise.
8926 (xor<mode>3_iwmmxt): Likewise.
8927 (add<mode>3_iwmmxt): Likewise.
8928 (ssaddv8qi3): Likewise.
8929 (ssaddv4hi3): Likewise.
8930 (ssaddv2si3): Likewise.
8931 (usaddv8qi3): Likewise.
8932 (usaddv4hi3): Likewise.
8933 (usaddv2si3): Likewise.
8934 (sub<mode>3_iwmmxt): Likewise.
8935 (sssubv8qi3): Likewise.
8936 (sssubv4hi3): Likewise.
8937 (sssubv2si3): Likewise.
8938 (ussubv8qi3): Likewise.
8939 (ussubv4hi3): Likewise.
8940 (ussubv2si3): Likewise.
8941 (mulv4hi3_iwmmxt): Likewise.
8942 (smulv4hi3_highpart): Likewise.
8943 (umulv4hi3_highpart): Likewise.
8944 (iwmmxt_wmacs): Likewise.
8945 (iwmmxt_wmacsz): Likewise.
8946 (iwmmxt_wmacu): Likewise.
8947 (iwmmxt_wmacuz): Likewise.
8948 (iwmmxt_clrdi): Likewise.
8949 (iwmmxt_clrv8qi): Likewise.
8950 (iwmmxt_clr4hi): Likewise.
8951 (iwmmxt_clr2si): Likewise.
8952 (iwmmxt_uavgrndv8qi3): Likewise.
8953 (iwmmxt_uavgrndv4hi3): Likewise.
8954 (iwmmxt_uavgv8qi3): Likewise.
8955 (iwmmxt_uavgv4hi3): Likewise.
8956 (iwmmxt_tinsrb): Likewise.
8957 (iwmmxt_tinsrh): Likewise.
8958 (iwmmxt_tinsrw): Likewise.
8959 (iwmmxt_textrmub): Likewise.
8960 (iwmmxt_textrmsb): Likewise.
8961 (iwmmxt_textrmuh): Likewise.
8962 (iwmmxt_textrmsh): Likewise.
8963 (iwmmxt_textrmw): Likewise.
8964 (iwmxxt_wshufh): Likewise.
8965 (eqv8qi3): Likewise.
8966 (eqv4hi3): Likewise.
8967 (eqv2si3): Likewise.
8968 (gtuv8qi3): Likewise.
8969 (gtuv4hi3): Likewise.
8970 (gtuv2si3): Likewise.
8971 (gtv8qi3): Likewise.
8972 (gtv4hi3): Likewise.
8973 (gtv2si3): Likewise.
8974 (smax<mode>3_iwmmxt): Likewise.
8975 (umax<mode>3_iwmmxt): Likewise.
8976 (smin<mode>3_iwmmxt): Likewise.
8977 (umin<mode>3_iwmmxt): Likewise.
8978 (iwmmxt_wpackhss): Likewise.
8979 (iwmmxt_wpackwss): Likewise.
8980 (iwmmxt_wpackdss): Likewise.
8981 (iwmmxt_wpackhus): Likewise.
8982 (iwmmxt_wpackwus): Likewise.
8983 (iwmmxt_wpackdus): Likewise.
8984 (iwmmxt_wunpckihb): Likewise.
8985 (iwmmxt_wunpckihh): Likewise.
8986 (iwmmxt_wunpckihw): Likewise.
8987 (iwmmxt_wunpckilb): Likewise.
8988 (iwmmxt_wunpckilh): Likewise.
8989 (iwmmxt_wunpckilw): Likewise.
8990 (iwmmxt_wunpckehub): Likewise.
8991 (iwmmxt_wunpckehuh): Likewise.
8992 (iwmmxt_wunpckehuw): Likewise.
8993 (iwmmxt_wunpckehsb): Likewise.
8994 (iwmmxt_wunpckehsh): Likewise.
8995 (iwmmxt_wunpckehsw): Likewise.
8996 (iwmmxt_wunpckelub): Likewise.
8997 (iwmmxt_wunpckeluh): Likewise.
8998 (iwmmxt_wunpckeluw): Likewise.
8999 (iwmmxt_wunpckelsb): Likewise.
9000 (iwmmxt_wunpckelsh): Likewise.
9001 (iwmmxt_wunpckelsw): Likewise.
9002 (ror<mode>3): Likewise.
9003 (ashr<mode>3_iwmmxt): Likewise.
9004 (lshr<mode>3_iwmmxt): Likewise.
9005 (ashl<mode>3_iwmmxt): Likewise.
9006 (ror<mode>3_di): Likewise.
9007 (ashr<mode>3_di): Likewise.
9008 (lshr<mode>3_di): Likewise.
9009 (ashl<mode>3_di): Likewise.
9010 (iwmmxt_wmadds): Likewise.
9011 (iwmmxt_wmaddu): Likewise.
9012 (iwmmxt_tmia): Likewise.
9013 (iwmmxt_tmiaph): Likewise.
9014 (iwmmxt_tmiabb): Likewise.
9015 (iwmmxt_tmiatb): Likewise.
9016 (iwmmxt_tmiabt): Likewise.
9017 (iwmmxt_tmiatt): Likewise.
9018 (iwmmxt_tmovmskb): Likewise.
9019 (iwmmxt_tmovmskh): Likewise.
9020 (iwmmxt_tmovmskw): Likewise.
9021 (iwmmxt_waccb): Likewise.
9022 (iwmmxt_wacch): Likewise.
9023 (iwmmxt_waccw): Likewise.
9024 (iwmmxt_waligni): Likewise.
9025 (iwmmxt_walignr): Likewise.
9026 (iwmmxt_walignr0): Likewise.
9027 (iwmmxt_walignr1): Likewise.
9028 (iwmmxt_walignr2): Likewise.
9029 (iwmmxt_walignr3): Likewise.
9030 (iwmmxt_wsadb): Likewise.
9031 (iwmmxt_wsadh): Likewise.
9032 (iwmmxt_wsadbz): Likewise.
9033 (iwmmxt_wsadhz): Likewise.
9034 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
9035 (iwmmxt_wabsdiffb): Likewise.
9036 (iwmmxt_wabsdiffh): Likewise.
9037 (iwmmxt_wabsdiffw): Likewise.
9038 (iwmmxt_waddsubhx): Likewise
9039 (iwmmxt_wsubaddhx): Likewise.
9040 (addc<mode>3): Likewise.
9041 (iwmmxt_avg4): Likewise.
9042 (iwmmxt_avg4r): Likewise.
9043 (iwmmxt_wmaddsx): Likewise.
9044 (iwmmxt_wmaddux): Likewise.
9045 (iwmmxt_wmaddsn): Likewise.
9046 (iwmmxt_wmaddun): Likewise.
9047 (iwmmxt_wmulwsm): Likewise.
9048 (iwmmxt_wmulwum): Likewise.
9049 (iwmmxt_wmulsmr): Likewise.
9050 (iwmmxt_wmulumr): Likewise.
9051 (iwmmxt_wmulwsmr): Likewise.
9052 (iwmmxt_wmulwumr): Likewise.
9053 (iwmmxt_wmulwl): Likewise.
9054 (iwmmxt_wqmulm): Likewise.
9055 (iwmmxt_wqmulwm): Likewise.
9056 (iwmmxt_wqmulmr): Likewise.
9057 (iwmmxt_wqmulwmr): Likewise.
9058 (iwmmxt_waddbhusm): Likewise.
9059 (iwmmxt_waddbhusl): Likewise.
9060 (iwmmxt_wqmiabb): Likewise.
9061 (iwmmxt_wqmiabt): Likewise.
9062 (iwmmxt_wqmiatb): Likewise.
9063 (iwmmxt_wqmiatt): Likewise.
9064 (iwmmxt_wqmiabbn): Likewise.
9065 (iwmmxt_wqmiabtn): Likewise.
9066 (iwmmxt_wqmiatbn): Likewise.
9067 (iwmmxt_wqmiattn): Likewise.
9068 (iwmmxt_wmiabb): Likewise.
9069 (iwmmxt_wmiabt): Likewise.
9070 (iwmmxt_wmiatb): Likewise.
9071 (iwmmxt_wmiatt): Likewise.
9072 (iwmmxt_wmiabbn): Likewise.
9073 (iwmmxt_wmiabtn): Likewise.
9074 (iwmmxt_wmiatbn): Likewise.
9075 (iwmmxt_wmiattn): Likewise.
9076 (iwmmxt_wmiawbb): Likewise.
9077 (iwmmxt_wmiawbt): Likewise.
9078 (iwmmxt_wmiawtb): Likewise.
9079 (iwmmxt_wmiawtt): Likewise.
9080 (iwmmxt_wmiawbbn): Likewise.
9081 (iwmmxt_wmiawbtn): Likewise.
9082 (iwmmxt_wmiawtbn): Likewise.
9083 (iwmmxt_wmiawttn): Likewise.
9084 (iwmmxt_wmerge): Likewise.
9085 (iwmmxt_tandc<mode>3): Likewise.
9086 (iwmmxt_torc<mode>3): Likewise.
9087 (iwmmxt_torvsc<mode>3): Likewise.
9088 (iwmmxt_textrc<mode>3): Likewise.
9089 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
9090 (wmmxt_pack): Likewise.
9091 (wmmxt_mult_c1): Likewise.
9092 (wmmxt_mult_c2): Likewise.
9093 (wmmxt_alu_c1): Likewise.
9094 (wmmxt_alu_c2): Likewise.
9095 (wmmxt_alu_c3): Likewise.
9096 (wmmxt_transfer_c1): Likewise.
9097 (wmmxt_transfer_c2): Likewise.
9098 (wmmxt_transfer_c3): Likewise.
9099 (marvell_f_iwmmxt_wstr): Likewise.
9100 (marvell_f_iwmmxt_wldr): Likewise.
9101
bdb7bf8a
YZ
91022013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
9103
0ba6aff3 9104 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 9105
e6631d38
VM
91062013-06-28 Vladimir Makarov <vmakarov@redhat.com>
9107
9108 Revert:
9109 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
9110 * lra-constraints.c (need_for_split_p): Check call used hard regs
9111 living through calls.
9112
9113 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
9114 call used regs for call insn.
9115
53c1275b
JJ
91162013-06-28 Jakub Jelinek <jakub@redhat.com>
9117
9118 PR target/57736
0ba6aff3
UB
9119 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
9120 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 9121
1141ed3f
BI
91222013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
9123
9124 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 9125
e32e4c4a
VM
91262013-06-28 Vladimir Makarov <vmakarov@redhat.com>
9127
9128 * lra-constraints.c (need_for_split_p): Check call used hard regs
9129 living through calls.
9130
f161bfd3
MM
91312013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
9132
9133 PR target/57744
9134 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
9135 to tie with any other modes. Eliminate Altivec vector mode tests,
9136 since these are a subset of ALTIVEC or VSX vector modes. Simplify
9137 code, to return 0 if testing MODE2 for a condition, if we've
9138 already tested MODE1 for the same condition.
9139
7eda14e1
MS
91402013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
9141
9142 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
9143 layout.
9144
c822f852
MS
91452013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
9146
9147 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
9148 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
9149
da4f13a4
MS
91502013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
9151
0ba6aff3
UB
9152 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
9153 Define.
da4f13a4
MS
9154 (aarch64_symbolic_constant_p): Remove.
9155 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
9156 static. Fix line length and white space.
9157 (aarch64_symbolic_constant_p): Remove.
9158 * config/aarch64/predicates.md (aarch64_valid_symref):
9159 Use aarch64_classify_symbol_expression.
9160
956a95a5
KT
91612013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9162
9163 * config/arm/constraints.md (Ts): New constraint.
9164 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
9165 16-bit encodings.
9166 (compare_scc): Use "Ts" constraint for operand 0.
9167 (ior_scc_scc): Likewise.
9168 (and_scc_scc): Likewise.
9169 (and_scc_scc_nodom): Likewise.
9170 (ior_scc_scc_cmp): Likewise for operand 7.
9171 (and_scc_scc_cmp): Likewise.
9172 * config/arm/thumb2.md (thumb2_movsi_insn):
9173 Add alternatives for 16-bit encodings.
9174 (thumb2_movhi_insn): Likewise.
9175 (thumb2_movsicc_insn): Likewise.
9176 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
9177 (thumb2_negscc): Use "Ts" constraint.
9178 Move mvn instruction outside cond_exec block.
9179 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
9180 for 16-bit encodings.
9181
31dfce10
KT
91822013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9183
9184 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
9185 encoding.
9186 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
9187 (mulsi3subsi): Likewise.
9188 (mulsidi3adddi): Likewise.
9189 (mulsidi3_v6): Likewise.
9190 (umulsidi3_v6): Likewise.
9191 (umulsidi3adddi_v6): Likewise.
9192 (smulsi3_highpart_v6): Likewise.
9193 (umulsi3_highpart_v6): Likewise.
9194 (mulhisi3tb): Likewise.
9195 (mulhisi3bt): Likewise.
9196 (mulhisi3tt): Likewise.
9197 (maddhisi4): Likewise.
9198 (maddhisi4tb): Likewise.
9199 (maddhisi4tt): Likewise.
9200 (maddhidi4): Likewise.
9201 (maddhidi4tb): Likewise.
9202 (maddhidi4tt): Likewise.
9203 (zeroextractsi_compare0_scratch): Likewise.
9204 (insv_zero): Likewise.
9205 (insv_t2): Likewise.
9206 (anddi_notzesidi_di): Likewise.
9207 (anddi_notsesidi_di): Likewise.
9208 (andsi_notsi_si): Likewise.
9209 (iordi_zesidi_di): Likewise.
9210 (xordi_zesidi_di): Likewise.
9211 (andsi_iorsi3_notsi): Likewise.
9212 (smax_0): Likewise.
9213 (smax_m1): Likewise.
9214 (smin_0): Likewise.
9215 (not_shiftsi): Likewise.
9216 (unaligned_loadsi): Likewise.
9217 (unaligned_loadhis): Likewise.
9218 (unaligned_loadhiu): Likewise.
9219 (unaligned_storesi): Likewise.
9220 (unaligned_storehi): Likewise.
9221 (extv_reg): Likewise.
9222 (extzv_t2): Likewise.
9223 (divsi3): Likewise.
9224 (udivsi3): Likewise.
9225 (arm_zero_extendhisi2addsi): Likewise.
9226 (arm_zero_extendqisi2addsi): Likewise.
9227 (compareqi_eq0): Likewise.
9228 (arm_extendhisi2_v6): Likewise.
9229 (arm_extendqisi2addsi): Likewise.
9230 (arm_movt): Likewise.
9231 (thumb2_ldrd): Likewise.
9232 (thumb2_ldrd_base): Likewise.
9233 (thumb2_ldrd_base_neg): Likewise.
9234 (thumb2_strd): Likewise.
9235 (thumb2_strd_base): Likewise.
9236 (thumb2_strd_base_neg): Likewise.
9237 (arm_negsi2): Add alternative for 16-bit encoding.
9238 (arm_one_cmplsi2): Likewise.
9239
1572e697
KT
92402013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9241
9242 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
9243 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
9244 (movdfcc): Likewise.
9245 * config/arm/vfp.md (*thumb2_movsf_vfp):
9246 Disable predication for arm_restrict_it.
9247 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
9248 (*thumb2_movdfcc_vfp): Likewise.
9249 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
9250 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
9251 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
9252 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
9253 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
9254 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
9255 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
9256 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
9257 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
9258 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
9259 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
9260 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
9261 Disable predication for arm_restrict_it.
9262
ebf8f0ea
KY
92632013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
9264
9265 * config/i386/bmiintrin.h (_bextr_u32): New.
9266 (_bextr_u64): Ditto.
9267
a290fcda
RS
92682013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
9269
9270 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
9271 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
9272 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
9273 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
9274 * config/mips/n32-elf.h: ...this new file.
9275
ea169996
MG
92762013-06-27 Marc Glisse <marc.glisse@inria.fr>
9277
9278 PR target/57224
9279 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
9280 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
9281
12211b99 92822013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
9283
9284 * config/mips/mips-tables.opt: Regenerate.
9285 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 9286 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 9287 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 9288
2444244e
JJ
92892013-06-27 Jakub Jelinek <jakub@redhat.com>
9290
cd06d2a2
JJ
9291 PR target/57623
9292 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
9293 constraints of operand 1 and 2.
9294
2444244e
JJ
9295 PR target/57623
9296 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
9297 to match RTL canonicalization. Swap predicates and
9298 constraints of operand 1 and 2.
9299
2f259720
VM
93002013-06-27 Vladimir Makarov <vmakarov@redhat.com>
9301
0ba6aff3
UB
9302 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
9303 Process OP_INOUT regs for splitting too.
2f259720 9304
fef4d2b3
JJ
93052013-06-27 Jakub Jelinek <jakub@redhat.com>
9306
9307 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
9308 decl before the loop, initialize to NULL.
9309 (vectorizable_load): Initialize ptr_incr to NULL.
9310
79ee9826
MJ
93112013-06-27 Martin Jambor <mjambor@suse.cz>
9312
9313 PR lto/57208
9314 * ipa-ref.h (ipa_maybe_record_reference): Declare.
9315 * ipa-ref.c (ipa_maybe_record_reference): New function.
9316 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
9317 * ipa-cp.c (create_specialized_node): Record potential references from
9318 aggvals.
9319 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
9320
e18b4a81
YZ
93212013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
9322
9323 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
9324 parameter 'mode' of type 'enum machine_mode mode'; change to pass
9325 'mode' to force_reg.
9326 (aarch64_add_offset): Update calls to aarch64_force_temporary.
9327 (aarch64_expand_mov_immediate): Likewise.
9328
9c023bf0
YZ
93292013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
9330
9331 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
9332 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
9333
5a3fe9b6
AK
93342013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9335
9336 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
9337 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
9338 (struct machine_function): Add tbegin_p.
9339 (s390_canonicalize_comparison): Fold CC mode compares to
9340 conditional jump if possible.
9341 (s390_emit_jump): Return the emitted jump.
9342 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
9343 Handle CCRAWmode compares.
9344 (s390_option_override): Default to -mhtm if available.
9345 (s390_reg_clobbered_rtx): Handle floating point regs as well.
9346 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
9347 FPRs instead of df_regs_ever_live_p.
9348 (s390_optimize_nonescaping_tx): New function.
9349 (s390_init_frame_layout): Extend clobbered_regs array to cover
9350 FPRs as well.
9351 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
9352 (s390_expand_tbegin): New function.
9353 (enum s390_builtin): New enum definition.
9354 (code_for_builtin): New array definition.
9355 (s390_init_builtins): New function.
9356 (s390_expand_builtin): New function.
9357 (TARGET_INIT_BUILTINS): Define.
9358 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 9359 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
9360 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
9361 (s390_alc_comparison): Likewise.
9362 * config/s390/s390-modes.def: Add CCRAWmode.
9363 * config/s390/s390.h (processor_flags): Add PF_TX.
9364 (TARGET_CPU_HTM): Define macro.
9365 (TARGET_HTM): Define macro.
9366 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
9367 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
9368 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
9369 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 9370 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
9371 (TBEGIN_MASK, TBEGINC_MASK): New constants.
9372 ("*cc_to_int"): Move up.
9373 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
9374 constants other than 0.
9375 ("*ccraw_to_int"): New insn and splitter definition.
9376 ("tbegin", "tbegin_nofloat", "tbegin_retry")
9377 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
9378 ("tx_assist"): New expander.
9379 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
9380 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
9381 * config/s390/s390.opt: Add -mhtm option.
9382 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
9383 * config/s390/htmxlintrin.h: New file.
9384 * config/s390/htmintrin.h: New file.
9385 * config/s390/s390intrin.h: New file.
9386 * doc/extend.texi: Document htm builtins.
9387 * config.gcc: Add the new header files to extra_headers.
9388
9e216629
TS
93892013-06-26 Thomas Schwinge <thomas@codesourcery.com>
9390
9391 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 9392 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 9393
fd8c65e7 93942013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
9395 Pat Haugen <pthaugen@us.ibm.com>
9396 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
9397
9398 * config/rs6000/power8.md: New.
9399 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
9400 setting for power8 entry.
9401 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
9402 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
9403 test for Power4/Power5 only.
9404 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
9405 support.
9406 (force_new_group): Adjust comment.
9407 * config/rs6000/rs6000.md: Include power8.md.
9408
b24a2ce5
GY
94092013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
9410
9411 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
9412 * config/arm/arm-protos.h (arm_max_conditional_execute): New
9413 declaration.
9414 (tune_params): Update comment.
9415 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
9416 (arm_max_conditional_execute): New function.
9417 (thumb2_final_prescan_insn): Use max_insn_skipped and
9418 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
9419
f6fdeb62
JJ
94202013-06-25 Jakub Jelinek <jakub@redhat.com>
9421
9422 PR tree-optimization/57705
9423 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
9424 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 9425 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
9426 (get_initial_def_for_induction): Handle SSA_NAME IV step.
9427
c13bc3d9
MJ
94282013-06-25 Martin Jambor <mjambor@suse.cz>
9429
9430 PR middle-end/57670
9431 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
9432 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
9433 calls in the dump.
9434 (ipa_note_param_call): Initialize member_ptr flag.
9435 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
9436 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
9437 (ipa_write_indirect_edge_info): Stream member_ptr flag.
9438 (ipa_read_indirect_edge_info): Likewise.
9439
8a845901
RB
94402013-06-25 Richard Biener <rguenther@suse.de>
9441
9442 PR middle-end/56977
9443 * passes.c (init_optimization_passes): Move pass_fold_builtins
9444 and pass_dce earlier with -Og.
9445
33be0bec
EB
94462013-06-25 Eric Botcazou <ebotcazou@adacore.com>
9447
9448 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
9449 <BIT_FIELD_REF>: Remove trailing TAB.
9450 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
9451 remove blank line.
9452
5fe8e757
MJ
94532013-06-24 Martin Jambor <mjambor@suse.cz>
9454
9455 PR tree-optimization/57358
9456 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
9457 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
9458 (ipa_analyze_params_uses): Generate pessimistic info when true.
9459
44a60244
MJ
94602013-06-24 Martin Jambor <mjambor@suse.cz>
9461
9462 PR tree-optimization/57539
9463 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
9464 global.inlined_to of the new node to it. All callers changed.
9465 * ipa-inline-transform.c (clone_inlined_nodes): New variable
9466 inlining_into, pass it to cgraph_clone_node.
9467 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
9468 ipa_free_edge_args_substructures.
9469 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
9470 rdesc linked list. Do not assert rdesc edges have inlined caller.
9471 Assert we have found an rdesc in the rdesc list.
9472
7c5848b8
RB
94732013-06-24 Richard Biener <rguenther@suse.de>
9474
0ba6aff3 9475 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
9476 (pointer_set_lookup): Declare.
9477 (class pointer_map): New template class implementing a
9478 generic pointer to T map.
9479 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
9480 pointer_map<T>::contains, pointer_map<T>::insert,
9481 pointer_map<T>::traverse): New functions.
9482 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
9483 (pointer_set_lookup): New function.
9484 (pointer_set_contains): Use pointer_set_lookup.
9485 (pointer_set_insert): Likewise.
9486 (insert_aux): Remove.
9487 (struct pointer_map_t): Embed a pointer_set_t.
9488 (pointer_map_create): Adjust.
9489 (pointer_map_destroy): Likewise.
9490 (pointer_map_contains): Likewise.
9491 (pointer_map_insert): Likewise.
9492 (pointer_map_traverse): Likewise.
9493 * tree-streamer.h (struct streamer_tree_cache_d): Use a
9494 pointer_map<unsigned> instead of a pointer_map_t.
9495 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
9496 (streamer_tree_cache_lookup): Likewise.
9497 (streamer_tree_cache_create): Likewise.
9498 (streamer_tree_cache_delete): Likewise.
9499 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
9500 pointer_map<unsigned> instead of a pointer_map_t.
9501 (lto_init_tree_ref_encoder): Adjust.
9502 (lto_destroy_tree_ref_encoder): Likewise.
9503 * lto-section-out.c (lto_output_decl_index): Likewise.
9504 (lto_record_function_out_decl_state): Likewise.
9505 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
9506
3dbc97a9
RB
95072013-06-24 Richard Biener <rguenther@suse.de>
9508
9509 PR tree-optimization/57488
9510 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
9511
8345965a
AM
95122013-06-24 Alan Modra <amodra@gmail.com>
9513
9514 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
9515 (gen_easy_altivec_constant): Likewise.
9516 * config/rs6000/predicates.md (easy_vector_constant_add_self,
9517 easy_vector_constant_msb): Likewise.
9518
b7df379f
JJ
95192013-06-23 Jakub Jelinek <jakub@redhat.com>
9520
9521 PR target/57688
9522 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
9523 add missing return true.
9524
12211b99 95252013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
9526
9527 PR target/52483
9528 * config/sh/predicates.md (general_extend_operand): Invoke
9529 general_movsrc_operand for memory operands.
9530 (general_movsrc_operand): Allow reg+reg addressing, do not use
9531 general_operand for memory operands.
9532
97db2bf7
ST
95332013-06-23 Sriraman Tallam <tmsriram@google.com>
9534
9535 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
9536 when current target options does not apply.
9537 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
9538 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
9539 * config/i386/bmiintrin.h: Pass appropriate target
9540 attributes to header.
97db2bf7
ST
9541 * config/i386/mmintrin.h: Ditto.
9542 * config/i386/nmmintrin.h: Ditto.
9543 * config/i386/avx2intrin.h: Ditto.
9544 * config/i386/fxsrintrin.h: Ditto.
9545 * config/i386/tbmintrin.h: Ditto.
9546 * config/i386/xsaveintrin.h: Ditto.
9547 * config/i386/f16cintrin.h: Ditto.
9548 * config/i386/xtestintrin.h: Ditto.
9549 * config/i386/xsaveoptintrin.h: Ditto.
9550 * config/i386/bmi2intrin.h: Ditto.
9551 * config/i386/lzcntintrin.h: Ditto.
9552 * config/i386/smmintrin.h: Ditto.
9553 * config/i386/wmmintrin.h: Ditto.
9554 * config/i386/x86intrin.h: Remove all header include guards.
9555 * config/i386/prfchwintrin.h: Ditto.
9556 * config/i386/pmmintrin.h: Ditto.
9557 * config/i386/tmmintrin.h: Ditto.
9558 * config/i386/xmmintrin.h: Ditto.
9559 * config/i386/popcntintrin.h: Ditto.
9560 * config/i386/rdseedintrin.h: Ditto.
9561 * config/i386/ammintrin.h: Ditto.
9562 * config/i386/emmintrin.h: Ditto.
9563 * config/i386/immintrin.h: Remove all header include guards.
9564 * config/i386/fma4intrin.h: Ditto.
9565 * config/i386/lwpintrin.h: Ditto.
9566 * config/i386/xopintrin.h: Ditto.
9567 * config/i386/ia32intrin.h: Ditto.
9568 * config/i386/avxintrin.h: Ditto.
9569 * config/i386/rtmintrin.h: Ditto.
9570 * config/i386/fmaintrin.h: Ditto.
9571 * config/i386/mm3dnow.h: Ditto.
9572
495e6879
ST
95732013-06-22 Sriraman Tallam <tmsriram@google.com>
9574
9575 * common/config/i386/i386-common.c: Handle LZCNT.
9576
11e8f687
AK
95772013-06-22 Andi Kleen <ak@linux.intel.com>
9578
9579 * doc/extend.texi: Use __atomic_store_n instead of
9580 __atomic_store in HLE example.
9581
12211b99 95822013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
9583
9584 * config/sh/sh.c: Remove <cstdlib> workaround.
9585
927f908b
AK
95862013-06-21 Andi Kleen <ak@linux.intel.com>
9587
0ba6aff3 9588 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 9589
cca410b6
AK
95902013-06-21 Andi Kleen <ak@linux.intel.com>
9591
9592 * doc/extend.texi: Document that __atomic_clear and
9593 __atomic_test_and_set should only be used with bool.
9594
d84db1ed
JH
95952013-06-20 Jan Hubicka <jh@suse.cz>
9596
9597 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
9598 types_same_for_odr.
9599 * tree.c (decls_same_for_odr): New function.
9600 (same_for_edr): New function.
9601 (types_same_for_odr): New function.
9602 (get_binfo_at_offset): Use it.
9603 * tree.h (types_same_for_odr): Declare.
9604
12211b99 96052013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
9606 Jason Merrill <jason@redhat.com>
9607
9608 * system.h: Include <cstdlib> as well as <stdlib.h>.
9609
49b4ff63
UB
96102013-06-20 Uros Bizjak <ubizjak@gmail.com>
9611
9612 PR target/57655
9613 * config/i386/i386.c (construct_container): Report error if
9614 long double is used with disabled x87 float returns.
9615
7a89ad00
JH
96162013-06-20 Jan Hubicka <jh@suse.cz>
9617
9618 * lto-cgraph.c (input_symtab): Do not set cgraph state.
9619
12211b99 96202013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
9621
9622 PR rtl-optimization/57425
9623 PR rtl-optimization/57569
9624 * alias.c (write_dependence_p): Remove parameters mem_mode and
9625 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
9626 Changed all callers.
9627 (canon_anti_dependence): Get comments and semantics in sync.
9628 Add parameter mem_canonicalized. Changed all callers.
9629 * rtl.h (canon_anti_dependence): Update prototype.
9630
d16e9a99
RB
96312013-06-20 Richard Biener <rguenther@suse.de>
9632
9633 * data-streamer-in.c (streamer_read_uhwi): Optimize single
9634 byte case, inline streamer_read_uchar and defer section
9635 overrun check.
9636
c3a9b91b
RB
96372013-06-20 Richard Biener <rguenther@suse.de>
9638
9639 PR tree-optimization/57584
9640 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
9641 SSA names into the expanded expression that take part in
9642 abnormal coalescing.
9643
371e77e3 96442013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
9645
9646 * gcov.c (print_usage): Handle new option.
9647 (process_args): Ditto.
9648 (get_gcov_intermediate_filename): New function.
9649 (output_intermediate_file): New function.
9650 (output_gcov_file): New function
9651 (generate_results): Handle new option.
9652 (release_function): Relase demangled name.
9653 (read_graph_file): Handle demangled name.
9654 (output_lines): Ditto.
9655 * doc/gcov.texi: Document gcov intermediate format.
9656
11f5b71a
VM
96572013-06-19 Vladimir Makarov <vmakarov@redhat.com>
9658
9659 PR bootstrap/57604
9660 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
9661 (lra_emit_add): Use the functions. Add comment about Y as an
9662 address segment.
9663
e1f9340b
DE
96642013-06-19 David Edelsohn <dje.gcc@gmail.com>
9665
9666 PR driver/57652
9667 * collect2.c (collect_atexit): New.
9668 (collect_exit): Delete.
9669 (main): Register collect_atexit with atexit.
9670 (collect_wait): Change collect_exit to exit.
9671 (do_wait): Same.
9672 * collect2.h (collect_exit): Delete.
9673 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
9674
e3f9e0ac
WM
96752013-06-19 Wei Mi <wmi@google.com>
9676
9677 PR rtl-optimization/57518
9678 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
9679 if regno is used in paradoxical subreg.
9680 (update_equiv_regs): Check pdx_subregs[regno] before
9681 set a reg to be equivalent with a mem.
9682
a09f1a76
MK
96832013-06-19 Matthias Klose <doko@ubuntu.com>
9684
9685 PR driver/57651
9686 * file-find.h (find_a_file): Add a mode parameter.
9687 * file-find.c (find_a_file): Likewise.
9688 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
9689 with X_OK for the executables.
9690 * collect2.c (main): Call find_a_file with X_OK.
9691
7d18b0ad
SE
96922013-06-19 Steve Ellcey <sellcey@mips.com>
9693
9694 PR target/56942
9695 * config/mips/mips.md (casesi_internal_mips16_<mode>):
9696 Use NEXT_INSN instead of next_real_insn.
9697
6a6dac52
JH
96982013-06-19 Jan Hubicka <jh@suse.cz>
9699
9700 * cgraph.h (const_value_known_p): Replace by ...
9701 (ctor_for_folding): .. this one.
9702 * cgraphunit.c (process_function_and_variable_attributes): Use it.
9703 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
9704 * expr.c (expand_expr_real_1): Likewise.
9705 (string_constant): Likewise.
9706 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
9707 * ipa.c (process_references): Likewise.
9708 (symtab_remove_unreachable_nodes): Likewise.
9709 * ipa-inline-analysis.c (param_change_prob): Likewise.
9710 * gimple-fold.c (canonicalize_constructor_val): Likewise.
9711 (get_base_constructor): Likwise.
9712 * varpool.c (varpool_remove_node): Likewise.
9713 (varpool_remove_initializer): LIkewise.
9714 (dump_varpool_node): LIkwise.
9715 (const_value_known_p): Rewrite to ...
9716 (ctor_for_folding): ... this one.
9717
216c12ab
JJ
97182013-06-19 Jakub Jelinek <jakub@redhat.com>
9719
9720 PR driver/57651
9721 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
9722 PERSONALITY in $PATH derived prefixes.
9723
d53e2f99
JL
97242013-06-19 Jeff Law <law@redhat.com>
9725
ecdbf306
JL
9726 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
9727 in comment.
9728
d53e2f99
JL
9729 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
9730 (simplify_bitwise_binary): Use it to simpify certain binary ops on
9731 booleans.
9732
89e7fc04
SN
97332013-06-19 Sofiane Naci <sofiane.naci@arm.com>
9734
9735 * config/arm/vfp.md: Move VFP instruction classification documentation
9736 to ...
9737 * config/arm/arm.md: ... here. Update instruction classification
9738 documentation.
9739
5e7f6aaa
RE
97402013-06-19 Richard Earnshaw <rearnsha@arm.com>
9741
9742 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
9743 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
9744 pattern. Use more efficient sequences on ARMv5 and Thumb2.
9745
5fdc1e5d
SB
97462013-06-19 Steven Bosscher <steven@gcc.gnu.org>
9747
9748 PR target/57609
9749 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
9750 with NEXT_INSN. Use tablejump_p to check for jump table data
9751 insns.
9752
e952afba
PC
97532013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
9754
9755 PR c++/56544
9756 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
9757 that now in C++ the value is correct per the C++ standards.
9758
3fd0303a
RB
97592013-06-19 Richard Biener <rguenther@suse.de>
9760
9761 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
9762 for global context.
9763
b04e4b08
AK
97642013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9765
9766 Revert:
9767 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9768
9769 PR target/57609
9770 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
9771 with next_active_insn.
9772
bef8491a
ST
97732013-06-18 Sriraman Tallam <tmsriram@google.com>
9774
9775 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
9776 functions are inlined during failures to flag an error.
9777 * tree-inline.c (expand_call_inline): Allow the error to be flagged
9778 in early inline pass.
22fc7d3d 9779
c21b257d
L
97802013-06-18 H.J. Lu <hongjiu.lu@intel.com>
9781
9782 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
9783 in comments.
9784
33255ae3
JB
97852013-06-18 Julian Brown <julian@codesourcery.com>
9786
9787 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
9788 Permit virtual register pre-reload if !strict.
9789 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
9790 change.
9791 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
9792 prototype.
9793 * config/arm/neon.md (movmisalign<mode>): Use
9794 neon_perm_struct_or_reg_operand instead of
9795 neon_struct_or_register_operand.
9796 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
9797 neon_permissive_struct_operand instead of neon_struct_operand.
9798 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
9799 neon_vector_mem_operand.
9800 * config/arm/predicates.md (neon_struct_operand): Adjust call to
9801 neon_vector_mem_operand.
9802 (neon_permissive_struct_operand): New.
9803 (neon_struct_or_register_operand): Rename to...
9804 (neon_perm_struct_or_reg_operand): This. Adjust call to
9805 neon_vector_mem_operand.
9806
d579fcda
RB
98072013-06-18 Richard Biener <rguenther@suse.de>
9808
9809 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
9810 * lto-streamer.h: Include pointer-set.h.
9811 (struct lto_decl_slot): Remove.
9812 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
9813 Remove next_index entry.
9814 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
9815 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
9816 (lto_init_tree_ref_encoder): Adjust.
9817 (lto_destroy_tree_ref_encoder): Likewise.
9818 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
9819 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
9820 (lto_output_decl_index): Adjust.
9821 (lto_new_out_decl_state): Likewise.
9822 (lto_record_function_out_decl_state): Likewise.
9823 * lto-streamer-out.c (copy_function): Likewise.
9824
31ee20ba
RB
98252013-06-18 Richard Biener <rguenther@suse.de>
9826
9827 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
9828 * cgraphunit.c: Include cfgloop.h.
9829 (init_lowered_empty_function): Initialize the loop tree.
9830 (assemble_thunk): Insert new BBs into loops.
9831
ac0511f2
RB
98322013-06-18 Richard Biener <rguenther@suse.de>
9833
9834 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
9835 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
9836 the map from cache entry to cache index optional.
9837 (streamer_tree_cache_replace_tree): Adjust accordingly.
9838 (streamer_tree_cache_append): Likewise.
9839 (streamer_tree_cache_delete): Likewise.
9840 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
9841 streamer cache map from cache entry to cache index.
9842 * lto-streamer-out.c (create_output_block): Adjust.
9843
09485a08
SN
98442013-06-18 Sofiane Naci <sofiane.naci@arm.com>
9845
22fc7d3d
UB
9846 * config/arm/arm.md (attribute "insn"): Move multiplication and
9847 division attributes to...
09485a08
SN
9848 (attribute "type"): ... here. Remove mult.
9849 (attribute "mul32"): New attribute.
9850 (attribute "mul64"): Add umaal.
9851 (*arm_mulsi3): Update attributes.
9852 (*arm_mulsi3_v6): Likewise.
9853 (*thumb_mulsi3): Likewise.
9854 (*thumb_mulsi3_v6): Likewise.
9855 (*mulsi3_compare0): Likewise.
9856 (*mulsi3_compare0_v6): Likewise.
9857 (*mulsi_compare0_scratch): Likewise.
9858 (*mulsi_compare0_scratch_v6): Likewise.
9859 (*mulsi3addsi): Likewise.
9860 (*mulsi3addsi_v6): Likewise.
9861 (*mulsi3addsi_compare0): Likewise.
9862 (*mulsi3addsi_compare0_v6): Likewise.
9863 (*mulsi3addsi_compare0_scratch): Likewise.
9864 (*mulsi3addsi_compare0_scratch_v6): Likewise.
9865 (*mulsi3subsi): Likewise.
9866 (*mulsidi3adddi): Likewise.
9867 (*mulsi3addsi_v6): Likewise.
9868 (*mulsidi3adddi_v6): Likewise.
9869 (*mulsidi3_nov6): Likewise.
9870 (*mulsidi3_v6): Likewise.
9871 (*umulsidi3_nov6): Likewise.
9872 (*umulsidi3_v6): Likewise.
9873 (*umulsidi3adddi): Likewise.
9874 (*umulsidi3adddi_v6): Likewise.
9875 (*smulsi3_highpart_nov6): Likewise.
9876 (*smulsi3_highpart_v6): Likewise.
9877 (*umulsi3_highpart_nov6): Likewise.
9878 (*umulsi3_highpart_v6): Likewise.
9879 (mulhisi3): Likewise.
9880 (*mulhisi3tb): Likewise.
9881 (*mulhisi3bt): Likewise.
9882 (*mulhisi3tt): Likewise.
9883 (maddhisi4): Likewise.
9884 (*maddhisi4tb): Likewise.
9885 (*maddhisi4tt): Likewise.
9886 (maddhidi4): Likewise.
9887 (*maddhidi4tb): Likewise.
9888 (*maddhidi4tt): Likewise.
9889 (divsi3): Likewise.
9890 (udivsi3): Likewise.
9891 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
9892 (thumb2_mulsi_short_compare0): Likewise.
9893 (thumb2_mulsi_short_compare0_scratch): Likewise.
9894 * config/arm/arm1020e.md (1020mult1): Update attribute change.
9895 (1020mult2): Likewise.
9896 (1020mult3): Likewise.
9897 (1020mult4): Likewise.
9898 (1020mult5): Likewise.
9899 (1020mult6): Likewise.
22fc7d3d
UB
9900 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
9901 change.
09485a08
SN
9902 (cortex_a15_mult64): Likewise.
9903 (cortex_a15_sdiv): Likewise.
9904 (cortex_a15_udiv): Likewise.
9905 * config/arm/arm1026ejs.md (mult1): Update attribute change.
9906 (mult2): Likewise.
9907 (mult3): Likewise.
9908 (mult4): Likewise.
9909 (mult5): Likewise.
9910 (mult6): Likewise.
9911 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
9912 (pj4_ir_div): Likewise.
9913 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
9914 (11_mult2): Likewise.
9915 (11_mult3): Likewise.
9916 (11_mult4): Likewise.
9917 (11_mult5): Likewise.
9918 (11_mult6): Likewise.
9919 (11_mult7): Likewise.
9920 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
9921 (cortex_a8_mla): Likewise.
9922 (cortex_a8_mull): Likewise.
9923 (cortex_a8_smulwy): Likewise.
9924 (cortex_a8_smlald): Likewise.
9925 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
9926 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
9927 (cortex_r4_mul_3): Likewise.
9928 (cortex_r4_mla_4): Likewise.
9929 (cortex_r4_mla_3): Likewise.
9930 (cortex_r4_smlald): Likewise.
9931 (cortex_r4_mull): Likewise.
9932 (cortex_r4_sdiv): Likewise.
9933 (cortex_r4_udiv): Likewise.
9934 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
9935 (cortex_a7_idiv): Likewise.
9936 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
9937 (9_mult2): Likewise.
9938 (9_mult3): Likewise.
9939 (9_mult4): Likewise.
9940 (9_mult5): Likewise.
9941 (9_mult6): Likewise.
9942 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
9943 (cortex_a53_sdiv): Likewise.
9944 (cortex_a53_udiv): Likewise.
9945 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
9946 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
9947 (mp626_mult2): Likewise.
9948 (mp626_mult3): Likewise.
9949 (mp626_mult4): Likewise.
9950 * config/arm/fa526.md (526_mult1): Update attribute change.
9951 (526_mult2): Likewise.
9952 * config/arm/arm-generic.md (mult): Update attribute change.
9953 (mult_ldsched_strongarm): Likewise.
9954 (mult_ldsched): Likewise.
9955 (multi_cycle): Likewise.
9956 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
9957 * config/arm/fa606te.md (606te_mult1): Update attribute change.
9958 (606te_mult2): Likewise.
9959 (606te_mult3): Likewise.
9960 (606te_mult4): Likewise.
9961 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
9962 (cortex_a9_mac16): Likewise.
9963 (cortex_a9_multiply): Likewise.
9964 (cortex_a9_mac): Likewise.
9965 (cortex_a9_multiply_long): Likewise.
9966 * config/arm/fa626te.md (626te_mult1): Update attribute change.
9967 (626te_mult2): Likewise.
9968 (626te_mult3): Likewise.
9969 (626te_mult4): Likewise.
9970
8951f345
RB
99712013-06-18 Richard Biener <rguenther@suse.de>
9972
9973 PR lto/57334
9974 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
9975
d8101d05
AK
99762013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9977
9978 PR target/57609
9979 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
9980 with next_active_insn.
9981
69eff9da
AM
99822013-06-18 Alan Modra <amodra@gmail.com>
9983
9984 * config/rs6000/rs6000.h (enum data_align): New.
9985 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
9986 (DATA_ABI_ALIGNMENT): Define.
9987 (CONSTANT_ALIGNMENT): Correct comment.
9988 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
9989 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
9990
8ed00d76
DM
99912013-06-17 David Malcolm <dmalcolm@redhat.com>
9992
9993 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
9994 ATTRIBUTE_UNUSED marking.
9995
3d33d06b
SN
99962013-06-17 Sofiane Naci <sofiane.naci@arm.com>
9997
9998 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
9999 alternative and update.
10000 (aarch64_dup_lanedi): Delete.
10001 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
10002 * config/aarch64/aarch64-simd-builtins.def: Update.
10003
ee03e71d
RB
100042013-06-17 Richard Biener <rguenther@suse.de>
10005
10006 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
10007 (lto_input_scc): Declare.
10008 (lto_input_tree_1): Likewise.
10009 (struct lto_stats_d): Add num_tree_bodies_output and
10010 num_pickle_refs_output.
10011 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
10012 (lto_read_tree_1): Split out from ...
10013 (lto_read_tree): ... this.
10014 (lto_input_scc): New function.
10015 (lto_input_tree_1): Split out from ...
10016 (lto_input_tree): ... this. Handle LTO_tree_scc.
10017 (lto_data_in_create): Create the streamer cache without hashes.
10018 * lto-streamer-out.c (create_output_block): Create the streamer
10019 cache with hashes when not doing WPA.
10020 (lto_write_tree_1): Split out from ...
10021 (lto_write_tree): ... this.
10022 (get_symbol_initial_value): New function.
10023 (lto_output_tree_1): Split out from ...
10024 (lto_output_tree): ... this. Write trees as series of SCCs
10025 using a DFS walk via DFS_write_tree.
10026 (struct sccs, struct scc_entry): New types.
10027 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
10028 (DFS_write_tree_body): New function.
10029 (DFS_write_tree): Likewise.
10030 (hash_tree): Likewise.
10031 (scc_entry_compare): Likewise.
10032 (hash_scc): Likewise.
10033 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
10034 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
10035 TREE_CHAIN as regular reference.
10036 (streamer_read_integer_cst): Remove.
10037 (streamer_get_pickled_tree): Adjust.
10038 * tree-streamer-out.c (streamer_write_chain): Disable streaming
10039 of DECL_EXTERNALs in BLOCK_VARS for now.
10040 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
10041 reference.
10042 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
10043 Add hash value argument and record that if hashes are recorded
10044 in the cache.
10045 (streamer_tree_cache_insert_1): Adjust.
10046 (streamer_tree_cache_insert): Likewise.
10047 (streamer_tree_cache_insert_at): Rename to ...
10048 (streamer_tree_cache_replace_tree): ... this and adjust.
10049 (streamer_tree_cache_append): Adjust.
10050 (record_common_node): Likewise.
10051 (streamer_tree_cache_create): Add argument whether to
10052 record hash values together with trees.
10053 (streamer_tree_cache_delete): Adjust.
10054 * tree-streamer.h (struct streamer_tree_cache_d): Add
10055 vector of hashes.
10056 (streamer_read_integer_cst): Remove.
10057 (streamer_tree_cache_insert): Adjust.
10058 (streamer_tree_cache_append): Likewise.
10059 (streamer_tree_cache_insert_at): Rename to ...
10060 (streamer_tree_cache_replace_tree): ... this and adjust.
10061 (streamer_tree_cache_create): Add argument whether to record hashes.
10062 (streamer_tree_cache_get): Rename to ...
10063 (streamer_tree_cache_get_tree): ... this.
10064 (streamer_tree_cache_get_hash): New function.
10065 * tree.c (cache_integer_cst): New function.
10066 * tree.h (cache_integer_cst): Declare.
10067 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
10068 * lto-symtab.c (lto_varpool_replace_node): Only release
10069 DECL_INITIAL of non-prevailing decls.
10070 * varpool.c (varpool_remove_initializer): Do not release
10071 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
10072
0de86a92
JU
100732013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
10074
10075 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
10076 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
10077 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
10078 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
10079 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
10080 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
10081 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
10082 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
10083 instead of TARGET_64BIT.
10084 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
10085 Require ISA_HAS_<D>DIV.
10086
74240413
RS
100872013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
10088
10089 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
10090 (mips*-*-linux*): Move default with_llsc setting to where other
10091 defaults are set.
10092 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
10093 with_arch block.
10094 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
10095 Likewise. Remove default with_tune setting. Move default float
10096 setting to its own block. Handle with_llsc in the same block as above.
10097
12211b99 100982013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
10099
10100 PR rtl-optimization/57425
10101 PR rtl-optimization/57569
299a5f6a 10102 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
10103 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
10104 Changed all callers.
10105 (canon_anti_dependence): New function.
10106 * cse.c (check_dependence): Use canon_anti_dependence.
10107 * cselib.c (cselib_invalidate_mem): Likewise.
10108 * rtl.h (canon_anti_dependence): Declare.
10109
b259d352
JU
101102013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
10111
10112 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
10113 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
10114 ".set mips3" for 64-bit targets.
10115
4de09b85
DC
101162013-06-15 Dehao Chen <dehao@google.com>
10117
10118 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
10119 * gimple-low.c (gimple_check_call_matching_types): Likewise.
10120 (gimple_check_call_args): Likewise.
10121 * value-prof.c (check_ic_target): Likewise.
10122 * ipa-inline.c (early_inliner): Likewise.
10123 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
10124 * cgraph.c (cgraph_create_edge_1): Likewise.
10125 (cgraph_make_edge_direct): Likewise.
10126
d1aa4a76
MM
101272013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
10128
10129 PR target/57615
10130 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
10131 rs6000_output_move_128bit to handle emitting quad memory
10132 operations. Set attribute length to 8 bytes.
10133
12211b99 101342013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
10135
10136 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
10137 New pattern.
10138 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
10139 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
10140 (aarch64_<su>mlsl<mode>): Likewise.
10141
f5273574
MS
101422013-06-14 Mike Stump <mikestump@comcast.net>
10143
10144 * Makefile.in (TARGET_H): Add insn-codes.h.
10145
ef7e7ab2
AM
101462013-06-14 Alan Modra <amodra@gmail.com>
10147
10148 PR middle-end/57134
10149 PR middle-end/57586
10150 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
10151 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
10152 bitfield expansion when EXPAND_MEMORY.
10153 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
10154
135faab6
MM
101552013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
10156
10157 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
10158 test for clearing quad memory on 32-bit later.
10159
948a1fd9
MG
101602013-06-13 Marc Glisse <marc.glisse@inria.fr>
10161
10162 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
10163 (fold_negate_expr): Likewise.
10164 (fold_real_zero_addition_p): Handle vectors.
10165 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
10166
0597fb9c
AM
101672013-06-14 Alan Modra <amodra@gmail.com>
10168
10169 * varasm.c (force_const_mem): Revert 2013-06-07 change.
10170
e5b962d0
JH
101712013-06-13 Jan Hubicka <jh@suse.cz>
10172
10173 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
10174 Local comdats are not externally visible.
10175 * symtab.c (dump_symtab_base): Dump externally visible.
10176 (verify_symtab_base): Verify back links in the symtab hash.
10177
a8355e51
BC
101782013-06-13 Bin Cheng <bin.cheng@arm.com>
10179
10180 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
10181 CONVERT_EXPR as equal nodes.
10182
8f7e6e33
BC
101832013-06-13 Bin Cheng <bin.cheng@arm.com>
10184
22fc7d3d 10185 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 10186
5d418483
MG
101872013-06-13 Marc Glisse <marc.glisse@inria.fr>
10188
10189 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
10190 Generalize to complex and vector.
10191 * tree.c (build_all_ones_cst): New function.
10192 * tree.h (build_all_ones_cst): Declare it.
10193
50751417
AM
101942013-06-13 Alan Modra <amodra@gmail.com>
10195
10196 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
10197 * config/rs6000/rs6000.md (signbittf2): New insn.
10198 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
10199 (abstf2_internal, cmptf_internal2): Likewise.
10200 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
10201
4b02c962 102022013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
10203 Pat Haugen <pthaugen@us.ibm.com>
10204 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
10205
10206 * config/rs6000/rs6000.c (emit_load_locked): Add support for
10207 power8 byte, half-word, and quad-word atomic instructions.
10208 (emit_store_conditional): Likewise.
10209 (rs6000_expand_atomic_compare_and_swap): Likewise.
10210 (rs6000_expand_atomic_op): Likewise.
10211
10212 * config/rs6000/sync.md (larx): Add new modes for power8.
10213 (stcx): Likewise.
10214 (AINT): New mode iterator to include TImode as well as normal
10215 integer modes on power8.
10216 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
10217 that VSX registers are not considered. Use AINT mode iterator
10218 instead of INT1 to allow inclusion of quad word atomic operations
10219 on power8.
10220 (load_locked<mode>): Likewise.
10221 (store_conditional<mode>): Likewise.
10222 (atomic_compare_and_swap<mode>): Likewise.
10223 (atomic_exchange<mode>): Likewise.
10224 (atomic_nand<mode>): Likewise.
10225 (atomic_fetch_<fetchop_name><mode>): Likewise.
10226 (atomic_nand_fetch<mode>): Likewise.
10227 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
10228 each type.
10229 (ATOMIC): On power8, add QImode, HImode modes.
10230 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
10231 modes that promote to SImode.
10232 (load_lockedti): Convert TImode arguments to PTImode, so that we
10233 get a guaranteed even/odd register pair.
10234 (load_lockedpti): Likewise.
10235 (store_conditionalti): Likewise.
10236 (store_conditionalpti): Likewise.
10237
10238 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
10239 atomic load/store instructions.
10240 (HSI): Likewise.
10241
710b6cc1
RS
102422013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
10243
10244 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
10245 loads.
10246 (insn_count): New attribute, with most cases extracted from...
10247 (length): ...here. Redefine most cases in terms of insn_count.
10248 (single_insn): Delete.
10249 (can_delay): Use insn_count to check for single instructions.
10250 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
10251 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
10252 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
10253 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
10254 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
10255 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
10256 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
10257 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
10258 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
10259 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
10260 rather than "length".
10261 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
10262 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
10263 Use "insn_count" rather than "length".
10264 * config/mips/mips-dsp.md
10265 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
10266 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
10267 length attributes.
10268
1951f101
MG
102692013-06-12 Marc Glisse <marc.glisse@inria.fr>
10270
10271 PR tree-optimization/57361
10272 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
10273
8b033a8a
SN
102742013-06-12 Sofiane Naci <sofiane.naci@arm.com>
10275
22fc7d3d
UB
10276 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
10277 to split.
8b033a8a
SN
10278 (aarch64_simd_combine<mode>): New instruction expansion.
10279 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
10280 function prototype.
10281 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
10282 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
10283
ca0f62a8
JH
102842013-06-12 Jan Hubicka <jh@suse.cz>
10285
10286 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
10287 decl has when in streaming stage.
10288 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
10289 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
10290
12211b99 102912013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
10292
10293 PR target/57578
10294 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
10295
bfdeda2c
JJ
102962013-06-12 Jakub Jelinek <jakub@redhat.com>
10297
10298 PR tree-optimization/57537
10299 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
10300 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
10301
a4fa02d1
RB
103022013-06-12 Richard Biener <rguenther@suse.de>
10303
10304 * data-streamer.h (streamer_write_char_stream): CSE
10305 obs->current_pointer.
10306 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
10307 streamer_write_char_stream manually and optimize the resulting loop.
10308 (streamer_write_hwi_stream): Likewise.
10309
bbf9ad07
JH
103102013-06-12 Jan Hubicka <jh@suse.cz>
10311
10312 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
10313 * cgraph.h (varpool_create_empty_node): Declare.
10314 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
10315 duplicated nodes.
10316 * symtab.c (symtab_unregister_node): Be lax about missin entries
10317 in node hash.
10318 (symtab_get_node): Update comment.
10319 * varpool.c (varpool_create_empty_node): Break out from ...
10320 (varpool_node_for_decl): ... here.
10321 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
10322
a53f90ad
EB
103232013-06-12 Eric Botcazou <ebotcazou@adacore.com>
10324
10325 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
10326 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
10327 part. Use straight-line flow at the end.
10328 <COMPONENT_REF>: Remove superfluous else.
10329 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
10330
946f9306
JJ
103312013-06-12 Jakub Jelinek <jakub@redhat.com>
10332
10333 PR target/56564
10334 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
10335 target hook even for !TREE_PUBLIC decls. If no resolution info
10336 is available, return false for common and external decls.
10337
a7fca6f0
KP
103382013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
10339
10340 * config/rl78/constraints.md (U): New constraint.
10341 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
10342 valloc attribute.
10343
c7d8f446
MM
103442013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
10345
10346 PR target/57589
10347 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
10348 to allow returning address to AT_PLATFORM name.
10349
08346abd
JH
103502013-06-11 Jan Hubicka <jh@suse.cz>
10351
10352 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
10353 * cgraph.h (symtab_node_base): Add weakref flag.
10354 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
10355 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
10356 (output_weakrefs): Use weakref flag.
10357 * fold-const.c (simple_operand_p): Handle WEAK.
10358 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
10359 * ipa.c (varpool_externally_visible_p): Drop weakref.
10360 (function_and_variable_visibility): Update comment; fix weakref
10361 sanity checks; do not clear DECL_WEAK on them.
10362 * lto-cgraph.c (lto_output_node): update.
10363 (lto_output_varpool_node): Update.
10364 (input_overwrite_node): Update.
10365 (input_node): Update.
10366 (input_varpool_node): Update.
10367 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
10368 (lto_symtab_merge_symbols): Add sanity check.
10369 (lto_symtab_prevailing_decl): Do not special case weakrefs.
10370 * passes.c (rest_of_decl_compilation): Set static flag, too.
10371 * symtab.c (dump_symtab_base): Dump weakref.
10372 (verify_symtab_base): Sanity check weakrefs.
10373 (symtab_make_decl_local): Remove duplicated code.
10374 (symtab_alias_ultimate_target): Simplify.
10375 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 10376
2e6a2f88
TV
103772013-06-11 Tom de Vries <tom@codesourcery.com>
10378
10379 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
10380 sequence_vect == NULL.
10381
d9af3652
DD
103822013-06-11 DJ Delorie <dj@redhat.com>
10383
10384 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
10385 (rl78_unwind_word_mode): New.
10386
ffa66012
DM
103872013-06-11 David Malcolm <dmalcolm@redhat.com>
10388
10389 * final.c (debug_prefix_maps): Make static.
10390
783f2d35
DM
103912013-06-11 David Malcolm <dmalcolm@redhat.com>
10392
10393 * function.c (initial_trampoline): Remove stray copy.
10394
7af26def
SN
103952013-06-11 Sofiane Naci <sofiane.naci@arm.com>
10396
10397 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
10398
97756c0e
MJ
103992013-06-11 Martin Jambor <mjambor@suse.cz>
10400
10401 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
10402 within bounds at the beginning of the function.
10403
2c7b8bf6
AM
104042013-06-11 Alan Modra <amodra@gmail.com>
10405
10406 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
10407 reporting.
10408 (get_named_section): Don't NULL !DECL_P decl.
10409
77cea46e
IZ
104102013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
10411
10412 * doc/invoke.texi (core-avx2): Document.
10413 (slm): Likewise.
10414 (atom): Updated with MOVBE.
10415
888f0920
RB
104162013-06-11 Richard Biener <rguenther@suse.de>
10417
22fc7d3d 10418 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 10419
6b438d58
AB
104202013-06-11 Anton Blanchard <anton@samba.org>
10421
10422 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
10423 correct shift value in little-endian mode.
10424
3bc66938
JJ
104252013-06-11 Jakub Jelinek <jakub@redhat.com>
10426
10427 PR target/56564
10428 * varasm.c (get_variable_align): Move #endif to the right place.
10429
a5dc7f88
CC
104302013-06-10 Cary Coutant <ccoutant@google.com>
10431
10432 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
10433 for hash so that hash table traversal order is deterministic.
10434
19be72ab 104352013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
10436 Pat Haugen <pthaugen@us.ibm.com>
10437 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
10438
10439 * config/rs6000/vector.md (GPR move splitter): Do not split moves
10440 of vectors in GPRS if they are direct moves or quad word load or
10441 store moves.
10442
10443 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
10444 declaration.
10445 (direct_move_p): Likewise.
10446 (quad_load_store_p): Likewise.
10447
10448 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
10449 classes into bins based on the physical register type.
10450 (reg_class_to_reg_type): Likewise.
10451 (IS_STD_REG_TYPE): Likewise.
10452 (IS_FP_VECT_REG_TYPE): Likewise.
10453 (reload_fpr_gpr): Arrays to determine what insn to use if we can
10454 use direct move instructions.
10455 (reload_gpr_vsx): Likewise.
10456 (reload_vsx_gpr): Likewise.
10457 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
10458 information that is a simplification of register classes. Also
10459 precalculate direct move reload helpers.
10460 (direct_move_p): New function to return true if the operation can
10461 be done as a direct move instruciton.
10462 (quad_load_store_p): New function to return true if the operation
10463 is a quad memory operation.
10464 (rs6000_legitimize_address): If quad memory, only allow register
10465 indirect for TImode addresses.
10466 (rs6000_legitimate_address_p): Likewise.
10467 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
10468 (rs6000_reload_register_type): Likewise.
10469 (register_to_reg_type): Return register type.
10470 (rs6000_secondary_reload_simple_move): New helper function for
10471 secondary reload and secondary memory needed to identify anything
10472 that is a simple move, and does not need reloading.
10473 (rs6000_secondary_reload_direct_move): New helper function for
10474 secondary reload to identify cases that can be done with several
10475 instructions via the direct move instructions.
10476 (rs6000_secondary_reload_move): New helper function for secondary
10477 reload to identify moves between register types that can be done.
10478 (rs6000_secondary_reload): Add support for quad memory operations
10479 and for direct move.
10480 (rs6000_secondary_memory_needed): Likewise.
10481 (rs6000_debug_secondary_memory_needed): Change argument names.
10482 (rs6000_output_move_128bit): New function to return the move to
10483 use for 128-bit moves, including knowing about the various
10484 limitations of quad memory operations.
10485
10486 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
10487 memory operations. call rs6000_output_move_128bit for the actual
10488 instruciton(s) to generate.
10489 (vsx_movti_64bit): Likewise.
10490
10491 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
10492 (UNSPEC_P8V_MTVSRWZ): Likewise.
10493 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
10494 (UNSPEC_P8V_MTVSRD): Likewise.
10495 (UNSPEC_P8V_XXPERMDI): Likewise.
10496 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
10497 (UNSPEC_FUSION_GPR): Likewise.
10498 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 10499 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
10500 (f32_sv): Likewise.
10501 (f32_dm): Likewise.
10502 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
10503 loads and direct move instructions.
10504 (zero_extendsidi2_lfiwzx): Likewise.
10505 (extendsidi2_lfiwax): Likewise.
10506 (extendsidi2_nocell): Likewise.
10507 (floatsi<mode>2_lfiwax): Likewise.
10508 (lfiwax): Likewise.
10509 (floatunssi<mode>2_lfiwzx): Likewise.
10510 (lfiwzx): Likewise.
10511 (fix_trunc<mode>_stfiwx): Likewise.
10512 (fixuns_trunc<mode>_stfiwx): Likewise.
10513 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
10514 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
10515 (parity<mode>2_cmpb): Set length/type attr.
10516 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
10517 for 'mr.' to fast_compare.
10518 (bpermd_<mode>): Change type attr to popcnt.
10519 (p8_fmrgow_<mode>): New insns for power8 direct move support.
10520 (p8_mtvsrwz_1): Likewise.
10521 (p8_mtvsrwz_2): Likewise.
10522 (reload_fpr_from_gpr<mode>): Likewise.
10523 (p8_mtvsrd_1): Likewise.
10524 (p8_mtvsrd_2): Likewise.
10525 (p8_xxpermdi_<mode>): Likewise.
10526 (reload_vsx_from_gpr<mode>): Likewise.
10527 (reload_vsx_from_gprsf): Likewise.
10528 (p8_mfvsrd_3_<mode>): LIkewise.
10529 (reload_gpr_from_vsx<mode>): Likewise.
10530 (reload_gpr_from_vsxsf): Likewise.
10531 (p8_mfvsrd_4_disf): Likewise.
10532 (multi-word GPR splits): Do not split direct moves or quad memory
10533 operations.
10534
16876bdc
DM
105352013-06-10 David Malcolm <dmalcolm@redhat.com>
10536
10537 * tree-into-ssa.c (interesting_blocks): Make static.
10538
df8a1d28
JJ
105392013-06-10 Jakub Jelinek <jakub@redhat.com>
10540
10541 PR target/56564
10542 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
10543 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
10544 Use DATA_ABI_ALIGNMENT for that case instead if defined.
10545 (get_variable_align): New function.
10546 (get_variable_section, emit_bss, emit_common,
10547 assemble_variable_contents, place_block_symbol): Use
10548 get_variable_align instead of DECL_ALIGN.
10549 (assemble_noswitch_variable): Add align argument, use it
10550 instead of DECL_ALIGN.
10551 (assemble_variable): Adjust caller. Use get_variable_align
10552 instead of DECL_ALIGN.
10553 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
10554 caller.
10555 (DATA_ABI_ALIGNMENT): Define.
10556 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
10557 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
10558 opt is false, only return the psABI mandated alignment increase.
10559 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
10560 (DATA_ABI_ALIGNMENT): ... this.
10561 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
10562 (DATA_ABI_ALIGNMENT): ... this.
10563 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
10564 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
10565 (DATA_ABI_ALIGNMENT): ... this.
10566 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
10567 * doc/tm.texi: Regenerated.
10568
57b29ca6
UB
105692013-06-10 Uros Bizjak <ubizjak@gmail.com>
10570
10571 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
10572 cmp_code to construct REG_EQUAL note.
10573
3e56ed50
JJ
105742013-06-09 Jakub Jelinek <jakub@redhat.com>
10575
10576 PR target/57568
10577 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
10578 that operands[2] doesn't overlap with operands[0].
10579
74fe2a1d
DE
105802013-06-09 David Edelsohn <dje.gcc@gmail.com>
10581 Jan Hubicka <jh@suse.cz>
10582
10583 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
10584 hack to mark symbols as used.
10585
ed52a84e
VM
105862013-06-08 Vladimir Makarov <vmakarov@redhat.com>
10587
10588 PR rtl-optimization/57559
10589 * lra-constraints.c (process_alt_operands): Don't discourage
10590 memory with known offset for offsetable memory constraint.
10591 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
10592
299316ed
EB
105932013-06-08 Eric Botcazou <ebotcazou@adacore.com>
10594
10595 * varasm.c (struct oc_local_state): Reorder fields.
10596 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
10597 and adjust accordingly.
10598 (output_constructor): Reorder initialization code and adjust call to
10599 output_constructor_bitfield.
10600
88ac60d3
JH
106012013-06-07 Jan Hubicka <jh@suse.cz>
10602
10603 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
10604
4cdce1a8
DM
106052013-06-07 David Malcolm <dmalcolm@redhat.com>
10606
10607 * tree-object-size.c (unknown): Make const.
10608
b5e0425c
AK
106092013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10610
10611 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
10612 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
10613 for last alternative in the cpu_facility attribute.
10614
79678d04
KT
106152013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10616
10617 PR target/56315
10618 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
10619 (xordi3): Change operand 2 constraint to arm_xordi_operand.
10620 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
10621 * config/arm/constraints.md (Dg): New constraint.
10622 * config/arm/neon.md (xordi3_neon): Remove.
10623 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
10624 * config/arm/predicates.md (arm_xordi_operand): New predicate.
10625
b31ddbdb
KT
106262013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10627
10628 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
10629 Clean up alternatives.
10630
8f90b7d4
AM
106312013-06-07 Alan Modra <amodra@gmail.com>
10632
10633 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
10634 va_list_gpr_size.
10635
961ce119
AM
106362013-06-07 Alan Modra <amodra@gmail.com>
10637
10638 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
10639
33e49835
KT
106402013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10641
10642 * config/arm/constraints.md (Df): New constraint.
10643 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
10644 Correct length attribute for last two alternatives.
10645
acd17ae6
AM
106462013-06-07 Alan Modra <amodra@gmail.com>
10647
10648 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
10649 override user -mfp-in-toc.
10650 (offsettable_ok_by_alignment): Consider just the current access
10651 rather than the whole object, unless BLKmode. Handle
10652 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
10653 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
10654 for -mcmodel=medium.
10655 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
10656 override user -mfp-in-toc or -msum-in-toc. Default to
10657 -mno-fp-in-toc for -mcmodel=medium.
10658
73310b0e
DD
106592013-06-06 DJ Delorie <dj@redhat.com>
10660
10661 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
10662 TARGET_VALID_POINTER_MODE.
10663
0bd62dca 106642013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
10665 Pat Haugen <pthaugen@us.ibm.com>
10666 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
10667
10668 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10669 Document new power8 builtins.
10670
10671 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
10672 condition code register, to allow 128-bit logical operations to be
10673 done in the VSX or GPR registers.
10674 (nor<mode>3): Use the canonical form for nor.
10675 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
10676 vclz*, and vpopcnt* vector instructions.
10677 (nand<mode>3): Likewise.
10678 (orc<mode>3): Likewise.
10679 (clz<mode>2): LIkewise.
10680 (popcount<mode>2): Likewise.
10681
10682 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
10683 that only the GPRs are recognized.
10684
10685 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10686 support for new power8 builtins.
10687
10688 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
10689 builtin functions.
10690 (xscvdpspn): Likewise.
10691 (vclz): Likewise.
10692 (vclzb): Likewise.
10693 (vclzh): Likewise.
10694 (vclzw): Likewise.
10695 (vclzd): Likewise.
10696 (vpopcnt): Likewise.
10697 (vpopcntb): Likewise.
10698 (vpopcnth): Likewise.
10699 (vpopcntw): Likewise.
10700 (vpopcntd): Likewise.
10701 (vgbbd): Likewise.
10702 (vmrgew): Likewise.
10703 (vmrgow): Likewise.
10704 (eqv): Likewise.
10705 (eqv_v16qi3): Likewise.
10706 (eqv_v8hi3): Likewise.
10707 (eqv_v4si3): Likewise.
10708 (eqv_v2di3): Likewise.
10709 (eqv_v4sf3): Likewise.
10710 (eqv_v2df3): Likewise.
10711 (nand): Likewise.
10712 (nand_v16qi3): Likewise.
10713 (nand_v8hi3): Likewise.
10714 (nand_v4si3): Likewise.
10715 (nand_v2di3): Likewise.
10716 (nand_v4sf3): Likewise.
10717 (nand_v2df3): Likewise.
10718 (orc): Likewise.
10719 (orc_v16qi3): Likewise.
10720 (orc_v8hi3): Likewise.
10721 (orc_v4si3): Likewise.
10722 (orc_v2di3): Likewise.
10723 (orc_v4sf3): Likewise.
10724 (orc_v2df3): Likewise.
10725
10726 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
10727 allow power8 quad mode in 64-bit.
10728 (rs6000_builtin_vectorized_function): Add support to vectorize
10729 ISA 2.07 count leading zeros, population count builtins.
10730 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
10731 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
10732 (builtin_function_type): Add vgbbd builtin function which takes an
10733 unsigned argument.
10734 (altivec_expand_vec_perm_const): Add support for new power8 merge
10735 instructions.
10736
10737 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
10738 that does not include TImdoe for use with 32-bit.
10739 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
10740 instructions.
10741 (UNSPEC_VSX_CVDPSPN): Likewise.
10742 (vsx_xscvdpspn): Likewise.
10743 (vsx_xscvspdpn): Likewise.
10744 (vsx_xscvdpspn_scalar): Likewise.
10745 (vsx_xscvspdpn_directmove): Likewise.
10746 (vsx_and<mode>3): Split logical operations into 32-bit and
10747 64-bit. Add support to do logical operations on TImode as well as
10748 VSX vector types. Allow logical operations to be done in either
10749 VSX registers or in general purpose registers in 64-bit mode. Add
10750 splitters if GPRs were used. For AND, add clobber of CCmode to
10751 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
10752 encoding.
10753 (vsx_and<mode>3_32bit): Likewise.
10754 (vsx_and<mode>3_64bit): Likewise.
10755 (vsx_ior<mode>3): Likewise.
10756 (vsx_ior<mode>3_32bit): Likewise.
10757 (vsx_ior<mode>3_64bit): Likewise.
10758 (vsx_xor<mode>3): Likewise.
10759 (vsx_xor<mode>3_32bit): Likewise.
10760 (vsx_xor<mode>3_64bit): Likewise.
10761 (vsx_one_cmpl<mode>2): Likewise.
10762 (vsx_one_cmpl<mode>2_32bit): Likewise.
10763 (vsx_one_cmpl<mode>2_64bit): Likewise.
10764 (vsx_nor<mode>3): Likewise.
10765 (vsx_nor<mode>3_32bit): Likewise.
10766 (vsx_nor<mode>3_64bit): Likewise.
10767 (vsx_andc<mode>3): Likewise.
10768 (vsx_andc<mode>3_32bit): Likewise.
10769 (vsx_andc<mode>3_64bit): Likewise.
10770 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
10771 and xxlorc instructions.
10772 (vsx_eqv<mode>3_64bit): Likewise.
10773 (vsx_nand<mode>3_32bit): Likewise.
10774 (vsx_nand<mode>3_64bit): Likewise.
10775 (vsx_orc<mode>3_32bit): Likewise.
10776 (vsx_orc<mode>3_64bit): Likewise.
10777
10778 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
10779
10780 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
10781 instruction.
10782 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
10783 (p8_vmrgow): Likewise.
10784 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
10785 GPRs to be split under VSX.
10786 (p8v_clz<mode>2): Add power8 count leading zero support.
10787 (p8v_popcount<mode>2): Add power8 population count support.
10788 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
10789 support.
10790
10791 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
10792 instruction.
10793
10794 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
10795 builtin functions.
10796 (vec_nand): Likewise.
10797 (vec_vclz): Likewise.
10798 (vec_vclzb): Likewise.
10799 (vec_vclzd): Likewise.
10800 (vec_vclzh): Likewise.
10801 (vec_vclzw): Likewise.
10802 (vec_vgbbd): Likewise.
10803 (vec_vmrgew): Likewise.
10804 (vec_vmrgow): Likewise.
10805 (vec_vpopcnt): Likewise.
10806 (vec_vpopcntb): Likewise.
10807 (vec_vpopcntd): Likewise.
10808 (vec_vpopcnth): Likewise.
10809 (vec_vpopcntw): Likewise.
10810
37684c46
VM
108112013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10812
10813 PR rtl-optimization/57468
10814 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
10815 spilled pseudos.
10816
d89ae27c
VM
108172013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10818
10819 PR rtl-optimization/57459
10820 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
10821 type when setting live regs.
10822
3597e113
VM
108232013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10824
10825 * config/s390/s390.opt (mlra): New option.
10826 * config/s390/s390.c (s390_decompose_address): Check displacement
10827 for all registers for LRA.
10828 (s390_secondary_reload): Don't used secondary reloads for LRA.
10829 (s390_lra_p): New function.
10830 (TARGET_LRA_P): Define.
10831 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
10832 of attribute cpu_facility to zarch for the last alternative.
10833 (*cmpmem_short): Ditto.
10834
01037aeb
EB
108352013-06-06 Eric Botcazou <ebotcazou@adacore.com>
10836
10837 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
10838 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
10839 (arm_expand_prologue): Likewise.
10840
3371a64f
TJ
108412013-06-06 Teresa Johnson <tejohnson@google.com>
10842
10843 PR c++/53743
10844 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
10845 as this is now done by redirect_edge_and_branch_force.
10846 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
10847 barriers, and fix interaction with splitting.
10848 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
10849 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
10850 reflect changes made in the routine.
10851 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
10852 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
10853 since this is called in cfglayout mode, and replace partition fixup
10854 with assert as that is now done by force_nonfallthru_and_redirect.
10855 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
10856 already be marked with region crossing note.
10857 (insert_section_boundary_note): Make non-static, gate on flag
10858 has_bb_partition, rewrite to also check for multiple partitions.
10859 (rest_of_handle_reorder_blocks): Remove call to
10860 insert_section_boundary_note, now done later during free_cfg.
10861 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
10862 * bb-reorder.h (insert_section_boundary_note): Declare.
10863 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
10864 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
10865 invoke insert_section_boundary_note.
10866 (try_redirect_by_replacing_jump): Remove unnecessary
10867 check for region crossing note.
10868 (fixup_partition_crossing): New function.
10869 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
10870 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
10871 in non-cfglayout mode.
10872 (force_nonfallthru_and_redirect): Fixup partition boundaries,
10873 remove old code that tried to do this. Emit barrier correctly
10874 when we are in cfglayout mode.
10875 (last_bb_in_partition): New function.
10876 (rtl_split_edge): Correctly fixup partition boundaries.
10877 (commit_one_edge_insertion): Remove old code that tried to
10878 fixup region crossing edge since this is now handled in
10879 split_block, and set up insertion point correctly since
10880 block may now end in a jump.
10881 (verify_hot_cold_block_grouping): Guard against checking when not in
10882 linearized RTL mode.
10883 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
10884 notes.
10885 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
10886 rtl_verify_flow_info, so not called in cfglayout mode.
10887 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
10888 (fixup_reorder_chain): Remove old code that attempted to fixup region
10889 crossing note as this is now handled in force_nonfallthru_and_redirect.
10890 (duplicate_insn_chain): Don't duplicate switch section notes.
10891 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
10892 note.
10893 * basic-block.h (emit_barrier_after_bb): Declare.
10894
66071e10
KT
108952013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10896
10897 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
10898 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
10899 arm_usatsihi): Adjust alternatives for arm_restrict_it.
10900
0e26bf3d
KT
109012013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10902
10903 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
10904 where appropriate.
10905 * config/arm/ldmstm.md: Regenerate.
10906
12b4e7ef
KT
109072013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10908
10909 * config/arm/sync.md (atomic_loaddi_1):
10910 Disable predication for arm_restrict_it.
10911 (arm_load_exclusive<mode>): Likewise.
10912 (arm_load_exclusivesi): Likewise.
10913 (arm_load_exclusivedi): Likewise.
10914 (arm_load_acquire_exclusive<mode>): Likewise.
10915 (arm_load_acquire_exclusivesi): Likewise.
10916 (arm_load_acquire_exclusivedi): Likewise.
10917 (arm_store_exclusive<mode>): Likewise.
10918 (arm_store_exclusive<mode>): Likewise.
10919 (arm_store_release_exclusivedi): Likewise.
10920 (arm_store_release_exclusive<mode>): Likewise.
10921
15d16c8a
RB
109222013-06-06 Richard Biener <rguenther@suse.de>
10923
10924 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
10925 after LTO_null.
10926 (lto_tag_is_tree_code_p): Adjust.
10927 (lto_tag_is_gimple_code_p): Likewise.
10928 (lto_gimple_code_to_tag): Likewise.
10929 (lto_tag_to_gimple_code): Likewise.
10930 (lto_tree_code_to_tag): Likewise.
10931 (lto_tag_to_tree_code): Likewise.
10932 * data-streamer.h (streamer_write_hwi_in_range): Use
10933 uhwi streaming to stream the normalized range.
10934 (streamer_read_hwi_in_range): Likewise.
10935
17a7fc37
KT
109362013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10937
10938 * config/arm/arm.md (enabled_for_depr_it): New attribute.
10939 (predicable_short_it): Likewise.
10940 (predicated): Likewise.
10941 (enabled): Handle above.
10942 (define_cond_exec): Set predicated attribute to yes.
10943
b57ca59b
MS
109442013-06-05 Mike Stump <mikestump@comcast.net>
10945
10946 * gdbinit.in (__FUNCTION__): Add.
10947
c1e183a9
UB
109482013-06-05 Uros Bizjak <ubizjak@gmail.com>
10949
10950 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
10951 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
10952
0378bddb
JH
109532013-06-05 Jan Hubicka <jh@suse.cz>
10954
10955 * varasm.c (mark_decl_referenced): Revert the removal until targets
10956 are fixed.
10957
8f8a2057
DE
109582013-06-05 David Edelsohn <dje.gcc@gmail.com>
10959
10960 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
10961 instead of mark_decl_referenced.
10962
edb983b2
JH
109632013-06-05 Jan Hubicka <jh@suse.cz>
10964
10965 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
10966 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
10967 and symtab_used_from_object_file_p.
10968 (cgraph_make_node_local_1): Clear forced_by_abi.
10969 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
10970 * cgraph.h (symtab_node_base): Add forced_by_abi.
10971 (decide_is_variable_needed): Remove.
10972 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
10973 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
10974 (decide_is_symbol_needed): ... this one; handle symbols in general;
10975 always analyze virtuals; honnor forced_by_abi.
10976 (cgraph_finalize_function): Update.
10977 (varpool_finalize_decl): Update.
10978 (symbol_defined_and_needed): Remove.
10979 (analyze_functions): Update.
10980 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
10981 output_refs, input_overwrite_node): Handle forced_by_abi.
10982 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
10983 (address_taken_from_non_vtable_p): ... this one.
10984 (comdat_can_be_unshared_p_1): New function.
10985 (cgraph_comdat_can_be_unshared_p): Rename to ...
10986 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
10987 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
10988 (function_and_variable_visibility): Clear forced_by_abi as needed.
10989 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
10990 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
10991 * symtab.c (dump_symtab_base): Dump forced_by_abi.
10992 * varpool.c (decide_is_variable_needed): Remove.
10993
9912dbe5
KT
109942013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10995
10996 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
10997 (arm_option_override): Override arm_restrict_it where appropriate.
10998 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
10999 * config/arm/arm.opt (mrestrict-it): New command-line option.
11000 * doc/invoke.texi: Document -mrestrict-it.
11001
34c136b6
DM
110022013-06-05 David Malcolm <dmalcolm@redhat.com>
11003
11004 * tsan.c (tsan_atomic_table): Make const.
11005
a367df53
RB
110062013-06-05 Richard Biener <rguenther@suse.de>
11007
11008 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
11009 index associated with the tree we are supposed to replace.
11010 * tree-streamer-out.c (pack_ts_base_value_fields): Output
11011 TREE_ASM_WRITTEN as zero for everything but SSA names.
11012
70d51a19
DM
110132013-06-05 David Malcolm <dmalcolm@redhat.com>
11014
11015 * tree-ssa-structalias.c (call_stmt_vars): Make static.
11016
b9bd2075
JH
110172013-06-04 Jan Hubicka <jh@suse.cz>
11018
11019 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
11020 (input_node, input_varpool_node): Handle correctly external same
11021 body aliases.
11022 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
11023 nodes at ltrans stage.
11024
aaae719d
JH
110252013-06-04 Jan Hubicka <jh@suse.cz>
11026
11027 * ipa-inline.c (update_caller_keys): Fix availability test.
11028 (update_callee_keys): Likewise.
11029 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
11030 to follow ELF standard.
11031
107eea2c
JU
110322013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
11033
11034 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
11035 (mips64r5900el-*-elf*): New configurations.
11036 * config/mips/mips-cpus.def (r5900): New processor.
11037 * config/mips/mips-tables.opt: Regenerate.
11038 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
11039 (mips_issue_rate): Handle PROCESSOR_R5900.
11040 (mips_reorg_process_insns): Force reorder mode for the R5900.
11041 * config/mips/mips.h (TARGET_MIPS5900): Define.
11042 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
11043 TARGET_MIPS5900.
11044 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
11045 TARGET_MIPS5900.
11046 * config/mips/mips.md (processor): Add r5900.
11047 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
11048
b7342d25
IB
110492013-06-04 Ian Bolton <ian.bolton@arm.com>
11050
11051 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
11052 into function to generate MOVI instruction.
c1e183a9 11053 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
11054 (aarch64_preferred_simd_mode): Turn into wrapper.
11055 (aarch64_output_scalar_simd_mov_immediate): New function.
11056 * config/aarch64/aarch64-protos.h: Add prototype for above.
11057
81c2dfb9
IB
110582013-06-04 Ian Bolton <ian.bolton@arm.com>
11059
11060 * config/aarch64/aarch64.c (simd_immediate_info): Remove
11061 element_char member.
11062 (sizetochar): Return signed char.
11063 (aarch64_simd_valid_immediate): Remove elchar and other
11064 unnecessary variables.
11065 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
11066 Calculate element_char as required.
11067 * config/aarch64/aarch64-protos.h: Update and move prototype
11068 for aarch64_output_simd_mov_immediate.
11069 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
11070 Update arguments.
11071
48063b9d
IB
110722013-06-04 Ian Bolton <ian.bolton@arm.com>
11073
11074 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
11075 information completed by aarch64_simd_valid_immediate.
11076 (aarch64_legitimate_constant_p): Update arguments.
11077 (aarch64_simd_valid_immediate): Work with struct rather than many
11078 pointers.
11079 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
11080 (aarch64_simd_make_constant): Update arguments.
11081 (aarch64_output_simd_mov_immediate): Work with struct rather than
11082 many pointers. Output immediate directly rather than as operand.
11083 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
11084 Update prototype.
11085 * config/aarch64/constraints.md (Dn): Update arguments.
11086
3ea63f60
IB
110872013-06-04 Ian Bolton <ian.bolton@arm.com>
11088
11089 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
11090 longer static.
11091 (aarch64_simd_immediate_valid_for_move): Remove.
11092 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
11093 (aarch64_simd_make_constant): Update call.
11094 (aarch64_output_simd_mov_immediate): Update call.
11095 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
11096 Add prototype.
11097 * config/aarch64/constraints.md (Dn): Update call.
11098
d8edd899
IB
110992013-06-04 Ian Bolton <ian.bolton@arm.com>
11100
11101 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
11102 return type to bool for prototype.
11103 (aarch64_legitimate_constant_p): Check for true instead of not -1.
11104 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
11105 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
11106
44b20bb8
CM
111072013-06-04 Catherine Moore <clm@codesourcery.com>
11108
11109 * config/mips/mips.opt (meva): New.
c1e183a9 11110 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
11111 (ASM_SPEC): Handle -meva.
11112 * doc/invoke.texi (meva): Document.
11113
52befbd8
AM
111142013-06-04 Alan Modra <amodra@gmail.com>
11115
11116 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
11117 constant output.
11118
aadaf24e
KT
111192013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11120
11121 * rtl.def: Add extra fourth optional field to define_cond_exec.
11122 * gensupport.c (process_one_cond_exec): Process attributes from
11123 define_cond_exec.
11124 * doc/md.texi: Document fourth field in define_cond_exec.
11125
0cd9e9ee
EB
111262013-06-04 Eric Botcazou <ebotcazou@adacore.com>
11127
11128 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
11129 out the processing order as in store_bit_field_1.
11130
cb0f665d
JH
111312013-06-04 Jan Hubicka <jh@suse.cz>
11132
11133 PR middle-end/57500
11134 * cgraphunit.c (cgraph_process_same_body_aliases): Create
11135 non-VAR_DECL node if it does not exist yet.
11136
53984b9b
RS
111372013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
11138
11139 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
11140 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
11141 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
11142 target_cpu_default setting.
11143
5d318fd4
TJ
111442013-06-03 Teresa Johnson <tejohnson@google.com>
11145
11146 * dumpfile.c (opt_info_switch_p): Change -fopt-info
11147 default to -fopt-info=optimized instead of all.
11148 * doc/invoke.texi: Ditto.
11149 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
11150 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
11151 (execute_vect_slp): Emit BB vectorization success under
11152 MSG_OPTIMIZED_LOCATIONS.
11153 * tree-vect-slp.c (vect_slp_transform_bb): Change
11154 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
11155 * tree-vect-loop.c (vect_transform_loop): Ditto.
11156
ec3af349
JM
111572013-06-03 Jason Merrill <jason@redhat.com>
11158
11159 PR c++/57415
11160 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11161 Use TARGET_EXPR for C++.
11162
1baf9159
JJ
111632013-06-03 Jakub Jelinek <jakub@redhat.com>
11164
11165 PR rtl-optimization/57268
0cd9e9ee 11166 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
11167 if DEBUG_INSN_P (insn).
11168
11169 Reapply
11170 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
11171
11172 PR rtl-optimization/57268
11173 * sched-deps.c (sched_analyze_2): Flush dependence lists if
11174 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
11175
0f1d3965
YR
111762013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
11177
11178 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
11179 (ix86_avoid_lea_for_addr): Likewise.
11180 (exact_dependency_1): Likewise.
11181 (ix86_adjust_cost): Likewise.
11182 (swap_top_of_ready_list): Fix formatting and !reload_completed check
11183 removed.
11184 (do_reorder_for_imul): Fix typo, formatting and
11185 !reload_completed check removed.
11186 (ix86_sched_reorder): Fix typo and formatting.
11187 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
11188 list.
11189
3bc30db4
SN
111902013-06-03 Sofiane Naci <sofiane.naci@arm.com>
11191
11192 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
11193
19cc6fac
EB
111942013-06-03 Eric Botcazou <ebotcazou@adacore.com>
11195
11196 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
11197 <STRING_CST>: Likewise.
11198 <VECTOR_CST>: Likewise.
11199
c68a6e08
JW
112002013-06-01 Janus Weil <janus@gcc.gnu.org>
11201 Mikael Morin <mikael@gcc.gnu.org>
11202
11203 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
11204 * config.in: Regenerated.
11205 * configure: Regenerated.
11206
38e55e5c
JH
112072013-06-01 Jan Hubicka <jh@suse.cz>
11208
11209 PR middle-end/57366
11210 * cgraphunit.c (compile): When weakref is not supported,
11211 set up transparent aliases before final output pass.
11212 * varasm.c (assemble_alias): Do not try to do it here.
11213
eb51d2ff
JH
112142013-06-01 Jan Hubicka <jh@suse.cz>
11215
11216 PR middle-end/57467
11217 * passes.c (for_per_function): Skip unanalyzed functions.
11218
40a7fe1e
JH
112192013-06-01 Jan Hubicka <jh@suse.cz>
11220
11221 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
11222 (lto_symtab_merge_symbols_1): ... this one.
11223 (lto_symtab_merge_cgraph_nodes): Rename to ...
11224 (lto_symtab_merge_symbols): ... this one; simplify.
11225 * cgraph.c (same_body_aliases_done): Rename to ...
11226 (cpp_implicit_aliases_done): ... this one.
11227 (cgraph_create_function_alias): Update.
11228 (cgraph_same_body_alias): Update.
c1e183a9 11229 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 11230 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 11231 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
11232 (cgraph_node): Remove same_body_alias.
11233 (varpool_node): Remove alias_of and extra_name_alias.
11234 (same_body_aliases_done): Rename to ..
11235 (cpp_implicit_aliases_done): ... this one.
11236 (symtab_alias_ultimate_target): Add default parameter.
11237 (symtab_resolve_alias): New function.
11238 (fixup_same_cpp_alias_visibility): Declare.
11239 (cgraph_function_node): Add default parameter.
11240 (cgraph_node_asm_name): Likewise.
11241 (cgraph_function_or_thunk_node): Add default parameter; do
11242 not ICE when it is NULL.
11243 (varpool_variable_node): Likewise.
11244 * tree-emutls.c (create_emultls_var): Update.
11245 (ipa_lower_emutls): Update.
11246 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
11247 (cgraph_reset_node): Reset alias info.
11248 (cgraph_finalize_function): Update.
11249 (fixup_same_cpp_alias_visibility): Move to symtab.c.
11250 (analyze_function): Simplify.
11251 (cgraph_process_same_body_aliases): Simplify.
11252 (analyze_functions): Fixup same body aliases.
11253 (handle_alias_pairs): Simplify.
11254 (assemble_thunk): Update.
11255 (assemble_thunks_and_aliases): Update.
11256 (output_weakrefs): Rewrite.
11257 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
11258 (lto_output_varpool_node): Likewise.
11259 (compute_ltrans_boundary): Remve assert.
11260 (get_alias_symbol): New functoin.
11261 (input_node): Rewrite alias handling.
11262 (input_varpool_node): Likewise.
11263 * ipa-pure-const.c (propagate_pure_const): Fix formating.
11264 * ipa.c (process_references): Handle weakrefs correctly.
11265 (symtab_remove_unreachable_nodes): Likewise.
11266 * trans-mem.c (get_cg_data): Update.
11267 (ipa_tm_create_version_alias): Update.
11268 (ipa_tm_execute): Update.
11269 * symtab.c (dump_symtab_base): Dump aliases.
11270 (verify_symtab_base): Verify aliases.
11271 (symtab_node_availability): New function.
11272 (symtab_alias_ultimate_target): Simplify.
11273 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
11274 handle all the fixup cases.
11275 (symtab_resolve_alias): New function.
11276 * passes.c (ipa_write_summaries): Handle weakrefs.
11277 * varpool.c (varpool_analyze_node): Simplify.
11278 (assemble_aliases): Update.
11279 (varpool_create_variable_alias): Simplify.
11280 (varpool_extra_name_alias): Simplify.
11281 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
11282 (lto_symtab_merge_symbols): ... this one.
11283
21759881
DT
112842013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
11285
11286 Revert
11287 PR rtl-optimization/57268
11288 * sched-deps.c (sched_analyze_2): Flush dependence lists if
11289 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
11290
daf4e940
TB
112912013-06-01 Tobias Burnus <burnus@net-b.de>
11292
11293 Partially reverted:
11294 2013-05-31 Tobias Burnus <burnus@net-b.de>
11295
11296 PR middle-end/57073
11297 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
11298 further up.
11299
c359d8d0
DT
113002013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
11301
11302 PR rtl-optimization/57268
11303 * sched-deps.c (sched_analyze_2): Flush dependence lists if
11304 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
11305
4172215d
EB
113062013-05-31 Eric Botcazou <ebotcazou@adacore.com>
11307
11308 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
11309 unordered comparison operators when -fno-trapping-math is in effect
11310 on the e500.
11311 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
11312 and implement unordered comparison operators properly on the e500.
11313
a8c50132
EB
113142013-05-31 Eric Botcazou <ebotcazou@adacore.com>
11315
11316 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
11317 for constant scalar integers.
11318 (simplify_relational_operation_1): Likewise.
11319
44626634
SB
113202013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
11321
11322 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
11323 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
11324 Fix comment.
11325
55805e54
YR
113262013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
11327 Igor Zamyatin <igor.zamyatin@intel.com>
11328
11329 Silvermont (SLM) architecture performance tuning.
11330 * config/i386/i386.h (enum ix86_tune_indices): Add
11331 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
11332 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
11333
11334 * config/i386/i386.c (initial_ix86_tune_features)
11335 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
11336 (ix86_lea_outperforms): Handle Silvermont tuning.
11337 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
11338 call.
11339 (ix86_use_lea_for_mov): Likewise.
11340 (ix86_avoid_lea_for_addr): Likewise.
11341 (ix86_lea_for_add_ok): Likewise.
11342 (exact_dependency_1): New function.
11343 (exact_store_load_dependency): Likewise.
11344 (ix86_adjust_cost): Handle Silvermont tuning.
11345 (do_reoder_for_imul): Likewise.
11346 (swap_top_of_ready_list): New function.
11347 (ix86_sched_reorder): Changed to handle Silvermont tuning.
11348
11349 * config/i386/i386.md (peepholes that split memory operand in fp
11350 converts): New.
11351
e19c9de2
MS
113522013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
11353
11354 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
11355 Remove un-necessary braces.
11356
38e6c9a6
MS
113572013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
11358
11359 * config/aarch64/aarch64.c (aarch64_classify_symbol):
11360 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
11361
e3530904
TB
113622013-05-31 Tobias Burnus <burnus@net-b.de>
11363
11364 PR middle-end/57073
c1e183a9 11365 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 11366
b6af05a9
KT
113672013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11368
11369 PR target/56315
11370 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
11371 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
11372 * config/arm/neon.md (iordi3_neon): Remove.
11373 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
11374 * config/arm/predicates.md (imm_for_neon_logic_operand):
11375 Move to earlier in the file.
11376 (neon_logic_op2): Likewise.
11377 (arm_iordi_operand_neon): New predicate.
11378
f800c166
RB
113792013-05-31 Richard Biener <rguenther@suse.de>
11380
11381 PR tree-optimization/57478
11382 PR tree-optimization/57453
11383 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
11384 are life as well.
11385
e571fa59
KP
113862013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
11387
11388 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
11389 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
11390
0fa6e0ef
TB
113912013-05-30 Tobias Burnus <burnus@net-b.de>
11392 Thomas Koenig <tkoenig@gcc.gnu.org>
11393
11394 PR middle-end/57073
11395 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
11396 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
11397
4688ddf5
SB
113982013-05-30 Steven Bosscher <steven@gcc.gnu.org>
11399
0fa6e0ef 11400 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 11401
3b9ceb4b
VM
114022013-05-30 Vladimir Makarov <vmakarov@redhat.com>
11403
11404 * target.def (register_usage_leveling_p): New hook.
11405 * targhooks.c (default_register_usage_leveling_p): New.
11406 * targhooks.h (default_register_usage_leveling_p): New prototype.
11407 * lra-assigns.c (register_usage_leveling_p): Use the hook.
11408 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
11409 * doc/tm.texi: Update.
11410 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
11411
65f9e789
IB
114122013-05-30 Ian Bolton <ian.bolton@arm.com>
11413
11414 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
11415 (*insv_reg<mode>): New define_insn.
11416
12211b99 114172013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
11418
11419 PR rtl-optimization/57439
11420 * postreload.c (move2add_valid_value_p): Check that we have
11421 a zero subreg_regno_offset when accessing the register in
11422 the requested mode.
11423
0b871ccf
YR
114242013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
11425 Igor Zamyatin <igor.zamyatin@intel.com>
11426
11427 Silvermont (SLM) architecture pipeline model, tuning and
11428 insn selection.
11429 * config.gcc: Add slm config options and target.
11430
11431 * config/i386/slm.md: New.
11432
11433 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
11434
f43245d1 11435 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
11436 PROCESSOR_SLM.
11437 (ix86_target_macros_internal): Likewise.
11438
f43245d1 11439 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
11440 (m_SLM): New macro flag.
11441 (initial_ix86_tune_features): Set m_SLM.
11442 (x86_accumulate_outgoing_args): Likewise.
11443 (x86_arch_always_fancy_math_387): Likewise.
11444 (processor_target_table): Add slm cost.
11445 (cpu_names): Add slm cpu name.
11446 (x86_option_override_internal): Set SLM ISA.
11447 (ix86_issue_rate): New case PROCESSOR_SLM.
11448 (ia32_multipass_dfa_lookahead): Likewise.
11449 (fold_builtin_cpu): Add slm.
11450
11451 * config/i386/i386.h (TARGET_SLM): New target macro.
11452 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
11453 (processor_type): Add PROCESSOR_SLM.
11454
11455 * config/i386/i386.md (cpu): Add new value "slm".
11456 (slm.md): Include slm.md.
11457
24d5b097
XG
114582013-05-30 Bernd Schmidt <bernds@codesourcery.com>
11459 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11460
11461 * config/arm/arm-protos.h: Add and update function protos.
11462 * config/arm/arm.c (use_simple_return_p): New added.
11463 (thumb2_expand_return): Check simple_return flag.
11464 * config/arm/arm.md: Add simple_return and conditional simple_return.
11465 * config/arm/iterators.md: Add iterator for return and simple_return.
11466
c1cccc15
ZC
114672013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11468
11469 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
11470 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
11471 (arm_emit_vfp_multi_reg_pop): Likewise.
11472 (thumb2_emit_ldrd_pop): Likewise.
11473 (arm_expand_epilogue): Add misc REG_CFA notes.
11474 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
11475
3a4f280b
LC
114762013-05-29 Lawrence Crowl <crowl@google.com>
11477
11478 * config/arm/t-arm: Update for below.
11479
11480 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
11481 Change type to hash_table. Update dependent calls and types.
11482
11483 * config/i386/t-cygming: Update for below.
11484
11485 * config/i386/t-interix: Update for below.
11486
11487 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
11488 Change type to hash_table. Update dependent calls and types.
11489 (i386_find_on_wrapper_list::wrappers): Likewise.
11490
11491 * config/ia64/t-ia64: Update for below.
11492
11493 * config/ia64/ia64.c (bundle_state_table):
11494 Change type to hash_table. Update dependent calls and types.
11495
11496 * config/mips/mips.c (mips_reorg_process_insns::htab):
11497 Change type to hash_table. Update dependent calls and types.
11498
11499 * config/sol2.c (solaris_comdat_htab):
11500 Change type to hash_table. Update dependent calls and types.
11501
11502 * config/t-sol2: Update for above.
11503
1388a0e3
TJ
115042013-05-29 Teresa Johnson <tejohnson@google.com>
11505
11506 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
11507 functions are not yet marked as defined.
11508
a5965b52 115092013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
11510 Pat Haugen <pthaugen@us.ibm.com>
11511 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
11512
11513 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
11514 instructions.
11515 (VEC_A): Likewise.
11516 (VEC_C): Likewise.
11517 (vrotl<mode>3): Likewise.
11518 (vashl<mode>3): Likewise.
11519 (vlshr<mode>3): Likewise.
11520 (vashr<mode>3): Likewise.
11521
11522 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11523 support for power8 V2DI builtins.
11524
11525 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
11526 power8 V2DI builtins.
11527 (vupkhsw): Likewise.
11528 (vupklsw): Likewise.
11529 (vaddudm): Likewise.
11530 (vminsd): Likewise.
11531 (vmaxsd): Likewise.
11532 (vminud): Likewise.
11533 (vmaxud): Likewise.
11534 (vpkudum): Likewise.
11535 (vpksdss): Likewise.
11536 (vpkudus): Likewise.
11537 (vpksdus): Likewise.
11538 (vrld): Likewise.
11539 (vsld): Likewise.
11540 (vsrd): Likewise.
11541 (vsrad): Likewise.
11542 (vsubudm): Likewise.
11543 (vcmpequd): Likewise.
11544 (vcmpgtsd): Likewise.
11545 (vcmpgtud): Likewise.
11546 (vcmpequd_p): Likewise.
11547 (vcmpgtsd_p): Likewise.
11548 (vcmpgtud_p): Likewise.
11549 (vupkhsw): Likewise.
11550 (vupklsw): Likewise.
11551 (vaddudm): Likewise.
11552 (vmaxsd): Likewise.
11553 (vmaxud): Likewise.
11554 (vminsd): Likewise.
11555 (vminud): Likewise.
11556 (vpksdss): Likewise.
11557 (vpksdus): Likewise.
11558 (vpkudum): Likewise.
11559 (vpkudus): Likewise.
11560 (vrld): Likewise.
11561 (vsld): Likewise.
11562 (vsrad): Likewise.
11563 (vsrd): Likewise.
11564 (vsubudm): Likewise.
11565
11566 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
11567 support for power8 V2DI instructions.
11568
11569 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
11570 power8 V2DI instructions. Combine pack and unpack insns to use an
11571 iterator for each mode. Check whether a particular mode supports
11572 Altivec instructions instead of just checking TARGET_ALTIVEC.
11573 (UNSPEC_VPKUWUM): Likewise.
11574 (UNSPEC_VPKSHSS): Likewise.
11575 (UNSPEC_VPKSWSS): Likewise.
11576 (UNSPEC_VPKUHUS): Likewise.
11577 (UNSPEC_VPKSHUS): Likewise.
11578 (UNSPEC_VPKUWUS): Likewise.
11579 (UNSPEC_VPKSWUS): Likewise.
11580 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
11581 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
11582 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
11583 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
11584 (UNSPEC_VUPKHSB): Likewise.
11585 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
11586 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
11587 (UNSPEC_VUPKHSH): Likewise.
11588 (UNSPEC_VUPKLSB): Likewise.
11589 (UNSPEC_VUPKLSH): Likewise.
11590 (VI2): Likewise.
11591 (VI_char): Likewise.
11592 (VI_scalar): Likewise.
11593 (VI_unit): Likewise.
11594 (VP): Likewise.
11595 (VP_small): Likewise.
11596 (VP_small_lc): Likewise.
11597 (VU_char): Likewise.
11598 (add<mode>3): Likewise.
11599 (altivec_vaddcuw): Likewise.
11600 (altivec_vaddu<VI_char>s): Likewise.
11601 (altivec_vadds<VI_char>s): Likewise.
11602 (sub<mode>3): Likewise.
11603 (altivec_vsubcuw): Likewise.
11604 (altivec_vsubu<VI_char>s): Likewise.
11605 (altivec_vsubs<VI_char>s): Likewise.
11606 (altivec_vavgs<VI_char>): Likewise.
11607 (altivec_vcmpbfp): Likewise.
11608 (altivec_eq<mode>): Likewise.
11609 (altivec_gt<mode>): Likewise.
11610 (altivec_gtu<mode>): Likewise.
11611 (umax<mode>3): Likewise.
11612 (smax<mode>3): Likewise.
11613 (umin<mode>3): Likewise.
11614 (smin<mode>3): Likewise.
11615 (altivec_vpkuhum): Likewise.
11616 (altivec_vpkuwum): Likewise.
11617 (altivec_vpkshss): Likewise.
11618 (altivec_vpkswss): Likewise.
11619 (altivec_vpkuhus): Likewise.
11620 (altivec_vpkshus): Likewise.
11621 (altivec_vpkuwus): Likewise.
11622 (altivec_vpkswus): Likewise.
11623 (altivec_vpks<VI_char>ss): Likewise.
11624 (altivec_vpks<VI_char>us): Likewise.
11625 (altivec_vpku<VI_char>us): Likewise.
11626 (altivec_vpku<VI_char>um): Likewise.
11627 (altivec_vrl<VI_char>): Likewise.
11628 (altivec_vsl<VI_char>): Likewise.
11629 (altivec_vsr<VI_char>): Likewise.
11630 (altivec_vsra<VI_char>): Likewise.
11631 (altivec_vsldoi_<mode>): Likewise.
11632 (altivec_vupkhsb): Likewise.
11633 (altivec_vupkhs<VU_char>): Likewise.
11634 (altivec_vupkls<VU_char>): Likewise.
11635 (altivec_vupkhsh): Likewise.
11636 (altivec_vupklsb): Likewise.
11637 (altivec_vupklsh): Likewise.
11638 (altivec_vcmpequ<VI_char>_p): Likewise.
11639 (altivec_vcmpgts<VI_char>_p): Likewise.
11640 (altivec_vcmpgtu<VI_char>_p): Likewise.
11641 (abs<mode>2): Likewise.
11642 (vec_unpacks_hi_v16qi): Likewise.
11643 (vec_unpacks_hi_v8hi): Likewise.
11644 (vec_unpacks_lo_v16qi): Likewise.
11645 (vec_unpacks_hi_<VP_small_lc>): Likewise.
11646 (vec_unpacks_lo_v8hi): Likewise.
11647 (vec_unpacks_lo_<VP_small_lc>): Likewise.
11648 (vec_pack_trunc_v8h): Likewise.
11649 (vec_pack_trunc_v4si): Likewise.
11650 (vec_pack_trunc_<mode>): Likewise.
11651
11652 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
11653 V2DI builtins.
11654 (vec_vmaxsd): Likewise.
11655 (vec_vmaxud): Likewise.
11656 (vec_vminsd): Likewise.
11657 (vec_vminud): Likewise.
11658 (vec_vpksdss): Likewise.
11659 (vec_vpksdus): Likewise.
11660 (vec_vpkudum): Likewise.
11661 (vec_vpkudus): Likewise.
11662 (vec_vrld): Likewise.
11663 (vec_vsld): Likewise.
11664 (vec_vsrad): Likewise.
11665 (vec_vsrd): Likewise.
11666 (vec_vsubudm): Likewise.
11667 (vec_vupkhsw): Likewise.
11668 (vec_vupklsw): Likewise.
11669
e70670cf
JH
116702013-05-29 Jan Hubicka <jh@suse.cz>
11671
11672 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
11673 flags; reorder rest of fields in more consistent way.
11674 (varpool_node): Remove analyzed, finalized and alias.
11675 (cgraph_ndoe): Likewise.
11676 (symtab_alias_ultimate_target): New function.
11677 (cgraph_function_node): Move offline.
11678 (cgraph_reset_node): Declare.
11679 (cgraph_comdat_can_be_unshared_p): Remove.
11680 (varpool_remove_initializer): Declare.
11681 (varpool_first_defined_variable, varpool_next_defined_variable
11682 cgraph_first_defined_function, cgraph_next_defined_function): Update.
11683 (cgraph_function_with_gimple_body_p): Update.
11684 (varpool_all_refs_explicit_p): Update.
11685 (symtab_alias_target): New function.
11686 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
11687 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
11688 (cgraph_function_or_thunk_node): Simplify using
11689 symtab_alias_ultimate_target.
e70670cf
JH
11690 (varpool_variable_node): Likewise.
11691 * cgraph.c (cgraph_create_function_alias): Update.
11692 (cgraph_add_thunk): Update.
11693 (cgraph_remove_node): Update.
11694 (dump_cgraph_node): Do not dump removed flags.
11695 (cgraph_function_body_availability): Update.
11696 (cgraph_propagate_frequency): Update.
11697 (verify_cgraph_node): Check sanity of local flag.
11698 (cgraph_function_node): Move here from cgraph.h; revamp for
11699 cgraph_function_or_thunk_node.
11700 * lto-symtab.c (lto_varpool_replace_node): Update.
11701 (lto_symtab_resolve_can_prevail_p): Update.
11702 (lto_symtab_merge_cgraph_nodes): Update.
11703 * ipa-cp.c (determine_versionability, initialize_node_lattices,
11704 propagate_constants_accross_call, devirtualization_time_bonus,
11705 ipcp_propagate_stage): Update.
11706 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
11707 * ipa-inline-transform.c (clone_inlined_nodes,
11708 preserve_function_body_p): Update.
e70670cf
JH
11709 * ipa-reference.c (propagate): Update.
11710 (write_node_summary_p): Update.
11711 * toplev.c (wrapup_global_declaration_2): Update.
11712 * cgraphunit.c (cgraph_analyze_function): Rename to ...
11713 (analyze_function) ... this one.
11714 (cgraph_process_new_functions): Update.
11715 (cgraph_reset_node): Export.
11716 (cgraph_finalize_function): Update.
11717 (cgraph_add_new_function): Update.
11718 (process_function_and_variable_attributes): Update.
11719 (varpool_finalize_decl): Update.
11720 (symbol_finalized): Remove.
11721 (symbol_finalized_and_needed): Rename to ...
11722 (symbol_defined_and_needed): ... update.
11723 (cgraph_analyze_functions): Update.
11724 (handle_alias_pairs): Update.
11725 (mark_functions_to_output): Update.
11726 (assemble_thunk): Update.
11727 (output_in_order): Update.
11728 (output_weakrefs): Update.
11729 (finalize_compilation_unit): Update.
11730 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
11731 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
11732 input_node, input_varpool_node): Update.
11733 * dbxout.c (dbxout_expand_expr): Update.
11734 * cgraphclones.c (cgraph_clone_node): Update.
11735 (cgraph_copy_node_for_versioning): Update.
11736 (cgraph_materialize_clone): Update.
11737 (cgraph_materialize_all_clones): Update.
11738 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
11739 propagate_pure_const, propagate_nothrow): Update.
11740 * lto-streamer-out.c (lto_output, write_symbol): Update.
11741 * ipa-utils.c (ipa_reverse_postorder): Update.
11742 * ipa-inline.c (can_inline_edge_p): Update.
11743 (update_caller_keys, ipa_inline): Update.
11744 * dwarf2out.c (reference_to_unused,
11745 premark_types_used_by_global_vars_helper): Update.
11746 * tree-eh.c (tree_could_trap_p): Update.
11747 * ipa-split.c (consider_split, execute_split_functions): Update.
11748 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
11749 has_addr_references_p): Update; move ahead in file for better
11750 readability.
e70670cf
JH
11751 (process_references): Simplify.
11752 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
11753 bodies are removed.
11754 (cgraph_comdat_can_be_unshared_p): Make static.
11755 (cgraph_externally_visible_p): Update.
11756 (varpool_externally_visible_p): Update.
11757 (function_and_variable_visibility): Update.
11758 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
11759 ipa_tm_mark_force_output_node): Update.
11760 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
11761 estimate_edge_devirt_benefit, inline_generate_summary,
11762 inline_write_summary): Update.
11763 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
11764 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
11765 (ipa_print_node_params, ipa_prop_read_section,
11766 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
11767 * varasm.c (mark_decl_referenced): Update.
11768 (assemble_alias, dump_tm_clone_pairs): Update.
11769 * tree-inline.c (copy_bb): Update.
11770 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
11771 Update.
11772 * symtab.c (dump_symtab_base): Print new flags.
11773 (verify_symtab_base): Verify new flags.
11774 (symtab_alias_ultimate_target): New function.
11775 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
11776 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
11777 Update.
c1e183a9
UB
11778 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
11779 Update.
e70670cf
JH
11780 * i386.c (ix86_get_function_versions_dispatcher,
11781 ix86_generate_version_dispatcher_body): Update.
11782 (fold_builtin_cpu): Use varpool_add_new_variable.
11783 * varpool.c (varpool_remove_initializer): Break out from ...
11784 (varpool_remove_node): ... this one.
11785 (dump_varpool_node, varpool_node_for_asm,
11786 cgraph_variable_initializer_availability, varpool_analyze_node,
11787 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
11788 varpool_finalize_named_section_flags, varpool_create_variable_alias):
11789 Update.
e70670cf 11790
182802ad
JH
117912013-05-29 Jan Hubicka <jh@suse.cz>
11792
11793 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
11794
8190b609
ER
117952013-05-29 Easwaran Raman <eraman@google.com>
11796
11797 PR tree-optimization/57442
11798 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
11799 when control exits the main loop.
11800
69f5aa9b
SKS
118012013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
11802
11803 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
11804 and RX600.
c1e183a9 11805 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
11806 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
11807 * rx/t-rx: Add rx100 under multi library matches option for nofpu
11808 option.
11809
4b847da9
BS
118102013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11811
11812 PR tree-optimization/57441
11813 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
11814 Don't limit size of incr_vec to number of candidates.
11815
4fc43c39
SE
118162013-05-29 Steve Ellcey <sellcey@imgtec.com>
11817
11818 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
11819 and mips16 directories.
c1e183a9 11820 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
11821 (MULTILIB_DIRNAMES): Ditto.
11822 (MULTILIB_EXCEPTIONS): Add new exceptions.
11823 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
11824 (MULTILIB_DIRNAMES): Ditto.
11825 (MULTILIB_EXCEPTIONS): Add new exceptions.
11826
12211b99 118272012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
11828 Marcus Shawcroft <marcus.shawcroft@arm.com>
11829
11830 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
11831 SYMBOL_TINY_ABSOLUTE.
11832 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
11833 SYMBOL_TINY_ABSOLUTE.
11834 (aarch64_expand_mov_immediate): Likewise.
11835 (aarch64_classify_symbol): Likewise.
11836 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
11837 Permit SYMBOL_TINY_ABSOLUTE.
11838 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
11839
12211b99 118402013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
11841 Marcus Shawcroft <marcus.shawcroft@arm.com>
11842
11843 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
11844 Refactor if/switch. Replace gcc_assert with if.
11845
c0186656
GG
118462013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
11847
11848 * config/i386/i386.c (initial_ix86_tune_features): Enable
11849 FP Reassociation for AMD bdver1 and bdver2.
11850
d20188f3
MJ
118512013-05-29 Martin Jambor <mjambor@suse.cz>
11852
11853 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
11854 and IMAGPART_EXPR do not occur within other handled_components.
11855
292cba13
RB
118562013-05-29 Richard Biener <rguenther@suse.de>
11857
11858 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
11859 access on whether the use is in the BB we currently try to
11860 vectorize.
11861 (vect_bb_vectorization_profitable_p): Pass the BB we currently
11862 vectorize to vect_bb_slp_scalar_cost.
11863
6eddf228
RB
118642013-05-29 Richard Biener <rguenther@suse.de>
11865
11866 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
11867 computing scalar cost offsetted by stmts that are kept live
11868 by scalar uses.
11869 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
11870 for computation of scalar cost.
11871
7df36117
SE
118722013-05-28 Steve Ellcey <sellcey@mips.com>
11873
11874 * config/mips/mips-cpus.def (mips32r2): Change processor type.
11875
36536d79
BI
118762013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
11877
11878 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
11879 array notation built-in reduction functions.
11880 * doc/passes.texi (Passes): Added documentation about changes done
11881 for Cilk Plus.
11882 * doc/invoke.texi (C Dialect Options): Added documentation about
11883 the -fcilkplus flag.
11884 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
11885 (BUILTINS_DEF): Depend on cilkplus.def.
11886 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
11887 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
11888 * cilkplus.def: New file.
11889
12211b99 118902013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
11891
11892 PR rtl-optimization/57439
11893 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
11894
9daf6dbb
ER
118952013-05-28 Easwaran Raman <eraman@google.com>
11896
11897 PR tree-optimization/57337
11898 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
11899 (find_insert_point): Correctly identify the insertion point
11900 when two statements with the same UID is compared.
11901
fbd7e877
RB
119022013-05-28 Richard Biener <rguenther@suse.de>
11903
11904 PR tree-optimization/56787
11905 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
11906 from the list of data references.
11907 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
11908 clobbers.
11909 (vect_analyze_loop_operations): Likewise.
11910 (vect_transform_loop): Remove clobbers.
11911
bbba1117
MJ
119122013-05-28 Martin Jambor <mjambor@suse.cz>
11913
11914 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
11915 and REALPART_EXPRs have scalar type.
11916
bd388c2a
RB
119172013-05-28 Richard Biener <rguenther@suse.de>
11918
11919 PR tree-optimization/57411
11920 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
11921 virtual operands.
11922 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
11923 virtual operand propagation.
11924
2f56a311
EB
119252013-05-28 Eric Botcazou <ebotcazou@adacore.com>
11926
11927 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
11928 destination register for bmasksi_vis.
11929 (vector_init_bshuffle): Likewise.
11930 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
11931
5c3eacbb
EB
119322013-05-28 Eric Botcazou <ebotcazou@adacore.com>
11933
11934 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
11935 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
11936 mode if the instruction isn't available in the original mode.
11937 * config/sparc/sparc.opt (mfix-ut699): New option.
11938 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
11939 (divdf3): Turn into expander.
11940 (divdf3_nofix): New insn.
11941 (divdf3_fix): Likewise.
11942 (divsf3): Disable if -mfix-ut699.
11943 (sqrtdf2): Turn into expander.
11944 (sqrtdf2_nofix): New insn.
11945 (sqrtdf2_fix): Likewise.
11946 (sqrtsf2): Disable if -mfix-ut699.
11947
a1756c0a
RB
119482013-05-27 Richard Biener <rguenther@suse.de>
11949
11950 PR middle-end/57412
11951 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
11952 block for the new loop.
11953
5a892248
RB
119542013-05-27 Richard Biener <rguenther@suse.de>
11955
11956 PR tree-optimization/57343
11957 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
11958 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
11959 (number_of_iterations_cond): Do not build the folded tree.
11960
d1de852b
RB
119612013-05-27 Richard Biener <rguenther@suse.de>
11962
11963 Revert
11964 PR middle-end/57381
11965 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
11966 OEP_CONSTANT_ADDRESS_OF retained.
11967
11968 PR tree-optimization/57417
11969 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
11970 for unchanged base.
11971 (set_ssa_val_to): Compare addresses using
11972 get_addr_base_and_unit_offset.
11973
12211b99 119742013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
11975
11976 PR rtl-optimization/56833
11977 * postreload.c (move2add_record_mode): New function.
11978 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
11979 (move2add_use_add2_insn): Use move2add_record_sym_value.
11980 (move2add_use_add3_insn): Likewise.
11981 (reload_cse_move2add): Use move2add_valid_value_p and
11982 move2add_record_mode. Invalidate call-clobbered and REG_INC
11983 affected regs by setting reg_mode to VOIDmode.
11984 (move2add_note_store): Don't pretend the inside of a SUBREG is
11985 the actual destination. Invalidate single/leading registers by
11986 setting reg_mode to VOIDmode.
11987 Use move2add_record_sym_value, move2add_valid_value_p and
11988 move2add_record_mode.
11989
b03be25f
RB
119902013-05-27 Richard Biener <rguenther@suse.de>
11991
11992 PR tree-optimization/57396
11993 * tree-affine.c (double_int_constant_multiple_p): Properly
11994 return false for val == 0 and div != 0.
11995
44e88db2
RS
119962013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
11997
11998 * config/mips/mips.h: Use #elif in preprocessor conditions.
11999
3b859704
RS
120002013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
12001
12002 PR target/53916
12003 * config/mips/constraints.md (kl): New constraint.
12004 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
12005 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
12006 constraint for operand 0. Split after CSE for MIPS16. Emit a move
12007 from LO for MIPS16.
12008 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
12009
c979d5f5
RS
120102013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
12011
12012 PR target/55777
12013 * config/mips/mips.c (mips_can_inline_p): New function.
12014 (TARGET_CAN_INLINE_P): Define.
12015
8e90de43
SB
120162013-05-25 Steven Bosscher <steven@gcc.gnu.org>
12017
12018 * sched-int.h (ds_t, dw_t): Make unsigned int.
12019 Fix documentation that describes how all the ds_t bits are used.
12020 Reserve the last bit for delayed-branch scheduling.
12021 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
12022 (BITS_PER_DEP_WEAK): Fix definition and documentation.
12023 (gen_dep_weak_1): Remove prototype.
12024 * sched-deps.c (get_dep_weak_1): Make static.
12025 * target.def (speculate_insn, needs_block_p, gen_spec_check,
12026 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
12027 * doc/tm.texi: Regenerate.
12028 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
12029
cb5cb194
SB
120302013-05-24 Steven Bosscher <steven@gcc.gnu.org>
12031
12032 PR debug/56950
12033 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
12034
5bd93ff6
NS
120352013-05-24 Nathan Sidwell <nathan@codesourcery.com>
12036 Sandra Loosemore <sandra@codesourcery.com>
12037
12038 * config.gcc (powerpc-*): Allow native for with-cpu.
12039
2343af65
JL
120402013-05-24 Jeff Law <law@redhat.com>
12041
12042 PR tree-optimization/57124
12043 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
12044 conversion feeding a condition if the range has an overflow
12045 if -fstrict-overflow. Add warnings for when we do make the
12046 transformation.
12047
3ad695b9
DC
120482013-05-24 Dehao Chen <dehao@google.com>
12049
04960246 12050 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
12051 (locus_discrim_hasher): Likewise.
12052 (locus_discrim_hasher::hash): Likewise.
12053 (locus_discrim_hasher::equal): Likewise.
12054
82338059
MJ
120552013-05-24 Martin Jambor <mjambor@suse.cz>
12056
12057 PR tree-optimization/57294
12058 * cgraph.h (ipa_record_stmt_references): Declare.
12059 * cgraphbuild.c (ipa_record_stmt_references): New function.
12060 (build_cgraph_edges): Use ipa_record_stmt_references.
12061 (rebuild_cgraph_edges): Likewise.
12062 (cgraph_rebuild_references): Likewise.
12063 * ipa-prop.c (ipa_modify_call_arguments): Discard references
12064 associated with the old statement and build references from the
12065 newly built statements.
12066 * ipa-ref.c (ipa_remove_stmt_references): New function.
12067 * ipa-ref.h (ipa_remove_stmt_references): Declare.
12068
1ccd4874
VM
120692013-05-24 Vladimir Makarov <vmakarov@redhat.com>
12070
55805e54 12071 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 12072 mem-mem moves.
55805e54 12073 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 12074 too.
55805e54 12075 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
12076 secondary memory moves.
12077 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
12078 reg set up in the current insn.
12079
25e25c73
DC
120802013-05-24 Dehao Chen <dehao@google.com>
12081
04960246 12082 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
12083 hash function.
12084 (locus_descrim_hasher::equal): Likewise.
04960246 12085 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
12086 (make_edges): Likewise.
12087 (next_discriminator_for_locus): Likewise.
12088 (same_line_p): Likewise.
12089 (assign_discriminators): Likewise.
12090 (make_cond_expr_edges): Likewise.
12091 (make_gimple_switch_edges): Likewise.
12092 (make_goto_expr_edges): Likewise.
12093 (make_gimple_asm_edges): Likewise.
12094
50d38551
IB
120952013-05-24 Ian Bolton <ian.bolton@arm.com>
12096
12097 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
12098 X format specifier to only display bottom 16 bits.
12099 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
12100 immediate to match for operand 2, since it will be masked.
12101
aea0101d
RB
121022013-05-24 Richard Biener <rguenther@suse.de>
12103
12104 PR tree-optimization/57287
12105 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
12106 all SSA names that occur in abnormal PHIs.
12107
634e03d3
AI
121082013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
12109
12110 PR tree-ssa/57385
12111 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
12112 that index is not negative.
12113
b17c024f
EB
121142013-05-24 Eric Botcazou <ebotcazou@adacore.com>
12115
12116 PR rtl-optimization/55177
12117 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
12118 (simplify_byte_swapping_operation): New.
12119 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
12120 (simplify_relational_operation_1): Deal with BSWAP.
12121
46aeac1b
RH
121222013-05-23 Richard Henderson <rth@redhat.com>
12123
12124 PR target/56742
12125 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
12126 (ix86_reorg): Call it.
12127
70cc1536
UB
121282013-05-23 Uros Bizjak <ubizjak@gmail.com>
12129
12130 PR target/57379
12131 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
12132 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
12133 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
12134
b3851501
CB
121352013-05-23 Christian Bruel <christian.bruel@st.com>
12136
12137 PR debug/57351
12138 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
12139
12211b99 121402013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
12141 Marcus Shawcroft <marcus.shawcroft@arm.com>
12142
12143 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
12144 * config/aarch64/constraints.md (Usa): Remove.
12145 * doc/md.texi (AArch64 Usa): Remove.
12146
12211b99 121472013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
12148 Marcus Shawcroft <marcus.shawcroft@arm.com>
12149
12150 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
12151 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
12152 * config/aarch64/predicates.md (aarch64_const_address): Remove.
12153 (aarch64_mov_operand): Use aarch64_mov_operand_p.
12154
12211b99 121552013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
12156
12157 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
12158 instruction (AdvSIMD).
12159 * config/aarch64/aarch64-builtins.c
12160 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
12161 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
12162
76c36cb1 121632013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
12164
12165 PR middle-end/57347
12166 * tree.h (contains_bitfld_component_ref_p): Declare.
12167 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
12168 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
12169 caller.
7d2fb524
MJ
12170 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
12171 not access a bit-field. Assert all final offsets are byte-aligned.
12172
ce521ae6
RB
121732013-05-23 Richard Biener <rguenther@suse.de>
12174
12175 PR tree-optimization/57380
12176 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
12177 least one invariant or re-used load.
12178 * passes.c (init_optimization_passes): Move pass_phiprop before
12179 pass_forwprop.
12180
75c7257f
JG
121812013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
12182
12183 * config/aarch64/aarch64-simd.md
12184 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
12185
af6d44b5
RB
121862013-05-23 Richard Biener <rguenther@suse.de>
12187
12188 PR middle-end/57381
12189 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
12190 OEP_CONSTANT_ADDRESS_OF retained.
12191
bd3647bf
JJ
121922013-05-23 Jakub Jelinek <jakub@redhat.com>
12193
12194 PR middle-end/57344
70cc1536
UB
12195 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
12196 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 12197
a55757ea
RB
121982013-05-23 Richard Biener <rguenther@suse.de>
12199
12200 PR rtl-optimization/57341
12201 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
12202 instead of true_dependence.
12203
cfb00b41
DM
122042013-05-22 David Malcolm <dmalcolm@redhat.com>
12205
dd1c676f
DM
12206 * bb-reorder.c (branch_threshold): Make const.
12207 (exec_threshold): Ditto.
cfb00b41 12208
f62511da 122092013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
12210 Pat Haugen <pthaugen@us.ibm.com>
12211 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
12212
12213 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
12214 documentation for the power8 crypto builtins.
12215
12216 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
12217
12218 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
12219 macros for defining power8 builtin functions.
12220 (BU_P8V_AV_2): Likewise.
12221 (BU_P8V_AV_P): Likewise.
12222 (BU_P8V_VSX_1): Likewise.
12223 (BU_P8V_OVERLOAD_1): Likewise.
12224 (BU_P8V_OVERLOAD_2): Likewise.
12225 (BU_CRYPTO_1): Likewise.
12226 (BU_CRYPTO_2): Likewise.
12227 (BU_CRYPTO_3): Likewise.
12228 (BU_CRYPTO_OVERLOAD_1): Likewise.
12229 (BU_CRYPTO_OVERLOAD_2): Likewise.
12230 (XSCVSPDP): Fix typo, point to the correct instruction.
12231 (VCIPHER): Add power8 crypto builtins.
12232 (VCIPHERLAST): Likewise.
12233 (VNCIPHER): Likewise.
12234 (VNCIPHERLAST): Likewise.
12235 (VPMSUMB): Likewise.
12236 (VPMSUMH): Likewise.
12237 (VPMSUMW): Likewise.
12238 (VPERMXOR_V2DI): Likewise.
12239 (VPERMXOR_V4SI: Likewise.
12240 (VPERMXOR_V8HI: Likewise.
12241 (VPERMXOR_V16QI: Likewise.
12242 (VSHASIGMAW): Likewise.
12243 (VSHASIGMAD): Likewise.
12244 (VPMSUM): Likewise.
12245 (VPERMXOR): Likewise.
12246 (VSHASIGMA): Likewise.
12247
12248 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
12249 __CRYPTO__ if the crypto instructions are available.
12250 (altivec_overloaded_builtins): Add support for overloaded power8
12251 builtins.
12252
12253 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
12254 support for power8 crypto builtins.
12255 (builtin_function_type): Likewise.
12256 (altivec_init_builtins): Add support for builtins that take vector
12257 long long (V2DI) arguments.
12258
12259 * config/rs6000/crypto.md: New file, define power8 crypto
12260 instructions.
12261
122622013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
12263 Pat Haugen <pthaugen@us.ibm.com>
12264 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
12265
12266 * doc/invoke.texi (Option Summary): Add power8 options.
12267 (RS/6000 and PowerPC Options): Likewise.
12268
12269 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
12270 constraints.md instead of rs6000.h. Reorder w* constraints. Add
12271 wm, wn, wr documentation.
12272
f43245d1 12273 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
12274 registers if direct move instructions are enabled.
12275 (wn): New constraint for no registers.
12276 (wq): New constraint for quad word even GPR registers.
12277 (wr): New constraint if 64-bit instructions are enabled.
12278 (wv): New constraint if power8 vector instructions are enabled.
12279 (wQ): New constraint for quad word memory locations.
12280
f43245d1 12281 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
12282 constraint for 0..15 for crypto instructions.
12283 (gpc_reg_operand): If VSX allow registers in VSX registers as well
12284 as GPR and floating point registers.
12285 (int_reg_operand): New predicate to match only GPR registers.
12286 (base_reg_operand): New predicate to match base registers.
12287 (quad_int_reg_operand): New predicate to match even GPR registers
12288 for quad memory operations.
12289 (vsx_reg_or_cint_operand): New predicate to allow vector logical
12290 operations in both GPR and VSX registers.
12291 (quad_memory_operand): New predicate for quad memory operations.
12292 (reg_or_indexed_operand): New predicate for direct move support.
12293
f43245d1 12294 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
12295 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
12296 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
12297 (POWERPC_MASKS): Add power8 options.
12298 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
12299 various options.
12300
f43245d1 12301 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
12302 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
12303
f43245d1 12304 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
12305 (-mpower8-fusion): New power8 options.
12306 (-mpower8-fusion-sign): Likewise.
12307 (-mpower8-vector): Likewise.
12308 (-mcrypto): Likewise.
12309 (-mdirect-move): Likewise.
12310 (-mquad-memory): Likewise.
12311
f43245d1 12312 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
12313 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
12314 registers.
70cc1536 12315 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
12316 (rs6000_debug_vector_unit): Add p8_vector.
12317 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
12318 definitions. Also print fusion state.
12319 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
12320 (rs6000_builtin_mask_calculate): Add power8 builtin support.
12321 (rs6000_option_override_internal): Add support for power8.
12322 (rs6000_common_init_builtins): Add debugging for skipped builtins
12323 if -mdebug=builtin.
12324 (rs6000_adjust_cost): Add power8 support.
12325 (rs6000_issue_rate): Likewise.
12326 (insn_must_be_first_in_group): Likewise.
12327 (insn_must_be_last_in_group): Likewise.
12328 (force_new_group): Likewise.
12329 (rs6000_register_move_cost): Likewise.
12330 (rs6000_opt_masks): Likewise.
12331
12332 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
12333 power8 capable assembler, default to power7 options.
12334 (TARGET_DIRECT_MOVE): Likewise.
12335 (TARGET_CRYPTO): Likewise.
12336 (TARGET_P8_VECTOR): Likewise.
12337 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
12338 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
12339 (VECTOR_MEM_P8_VECTOR_P): Likewise.
12340 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
12341 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
12342 (TARGET_XSCVDPSPN): Likewise.
12343 (TARGET_XSCVSPDPN): Likewsie.
12344 (TARGET_SYNC_HI_QI): Likewise.
12345 (TARGET_SYNC_TI): Likewise.
12346 (MASK_CRYPTO): Likewise.
12347 (MASK_DIRECT_MOVE): Likewise.
12348 (MASK_P8_FUSION): Likewise.
12349 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
12350 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
12351 temporary used by some of the direct move instructions to get two FP
12352 temporary registers does not force creation of a stack frame.
f62511da
MM
12353 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
12354 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
12355 that any VSX registers are tieable, even if they are also an
12356 Altivec vector mode.
12357 (r6000_reg_class_enum): Add wm, wr, wv constraints.
12358 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
12359 (RS6000_BTM_CRYPTO): Likewise.
12360 (RS6000_BTM_COMMON): Likewise.
12361
12362 * config/rs6000/rs6000.md (cpu attribute): Add power8.
12363 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
12364 (enum rs6000_vector): Add power8 vector support.
12365
73a1a707
RR
123662013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12367
12368 PR target/19599
12369 PR target/57340
12370 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
12371 (any_sibcall_could_use_r3): this and handle indirect calls.
12372 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
12373
d28073d4
BS
123742013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12375
12376 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
12377
bee0b10c
RB
123782013-05-22 Richard Biener <rguenther@suse.de>
12379
12380 PR middle-end/57349
12381 * profile.c (branch_prob): Do not split blocks that are
12382 abnormally receiving from ECF_RETURNS_TWICE functions.
12383
98409b51
RS
123842013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
12385
12386 * recog.c (offsettable_address_addr_space_p): Fix calculation of
12387 address mode. Move pointer mode initialization to the same place.
12388
c0602ab8
MZ
123892013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12390
12391 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
12392 while it has any effect.
12393
4f7a634e
ER
123942013-05-21 Easwaran Raman <eraman@google.com>
12395
12396 PR tree-optimization/57322
9daf6dbb
ER
12397 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
12398 UID of the statement added to the BB to be 1.
4f7a634e 12399
a4ce1258
JJ
124002013-05-21 Jakub Jelinek <jakub@redhat.com>
12401
12402 PR tree-optimization/57331
70cc1536
UB
12403 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
12404 of conversion from pointer type to integral type with integer.
a4ce1258 12405
1b14621a
MJ
124062013-05-21 Martin Jambor <mjambor@suse.cz>
12407
12408 PR lto/57289
12409 * ipa-prop.c (ipa_read_node_info): Process param_used and
12410 controlled_uses in the same order as when writing.
12411
e60661f0
MG
124122013-05-21 Magnus Granberg <baldrick@free.fr>
12413
12414 PR plugins/56754
ee49aa34 12415 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 12416
4a61be9a
RB
124172013-05-21 Richard Biener <rguenther@suse.de>
12418
12419 PR tree-optimization/57318
12420 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
12421 estimate stmts with side-effects as likely eliminated.
12422
c52da5f7
RB
124232013-05-21 Richard Biener <rguenther@suse.de>
12424
12425 PR tree-optimization/57330
12426 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
12427 preserve the call stmts fntype.
12428
7ec67e2a
RB
124292013-05-21 Richard Biener <rguenther@suse.de>
12430
12431 PR tree-optimization/57303
12432 * tree-ssa-sink.c (statement_sink_location): Improve killing
12433 stmt detection and properly handle self-assignments.
12434
b112d513
CB
124352013-05-21 Christian Bruel <christian.bruel@st.com>
12436
55805e54
YR
12437 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
12438 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
12439 registers. Set register size out of the PARALLEL loop.
12440
14c2ec26
OE
124412013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
12442
12443 PR target/56547
12444 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
12445 (*fmasf4, *fmasf4_media): New insns.
12446
da734fa1
RS
124472013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
12448
12449 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
12450 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
12451 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
12452 (mips_idiv_insns): Update the comments to say that the returned
12453 instruction counts are in units of BASE_INSN_LENGTH.
12454 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
12455 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
12456 using 2 rather than 4 as the length of indirect MIPS16 and
12457 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
12458 length of a NOP. Don't divide MIPS16 lengths by 2.
12459 (mips16_split_long_branches): Assume a branch is long if the
12460 length is greater than 4 rather than 8.
12461 * config/mips/mips.md (length): Give MIPS16 lengths directly,
12462 rather than multiplying them by 2. Multiply instruction counts
12463 by BASE_INSN_LENGTH rather than 4.
12464 (*jump_mips16, tls_get_tp_mips16_<mode>)
12465 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
12466
13719e8b
RS
124672013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
12468
12469 * config/mips/mips.md (extended_mips16): Remove branch case.
12470 (length): Remove duplicated extended_mips16 test.
12471
c3850d14
RS
124722013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
12473
12474 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
12475
8da2e059
RS
124762013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
12477
12478 * recog.h (Recog_data): Rename to...
12479 (recog_data_d): ...this.
12480 (recog_data): Update accordingly.
12481 * recog.c (recog_data): Likewise.
12482 * reload.c (save_recog_data): Likewise.
12483 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
12484 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
12485
2df013f3
JB
124862013-05-17 Julian Brown <julian@codesourcery.com>
12487
12488 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
12489 found in a REG_EQUAL note, invalidate it.
12490
371e77e3 124912013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
12492
12493 * tree-ssa-reassoc.c (find_insert_point): New function.
12494 (insert_stmt_after): Likewise.
12495 (get_def_stmt): Likewise.
12496 (ensure_ops_are_available): Likewise.
12497 (not_dominated_by): Likewise.
12498 (rewrite_expr_tree): Do not move statements beyond what is
12499 necessary. Remove call to swap_ops_for_binary_stmt...
12500 (reassociate_bb): ... and move it here.
12501 (build_and_add_sum): Assign UIDs for new statements.
12502 (linearize_expr): Likewise.
12503 (do_reassoc): Renumber gimple statement UIDs.
12504
e01c7cca
JH
125052013-05-17 Jan Hubicka <jh@suse.cz>
12506
12507 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
12508 weakrefs.
12509 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
12510 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
12511 weakrefs.
e01c7cca
JH
12512 (output_weakrefs): Update.
12513
c3272a92
PCC
125142013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
12515 Martin Jambor <mjambor@suse.cz>
12516
12517 PR middle-end/57276
12518 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
12519 value that corresponds to the given aggval is found in values vector.
12520
11c2aa39
UB
125212013-05-17 Uros Bizjak <ubizjak@gmail.com>
12522
12523 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
12524 sse, sse2, sse3, ssse3 and sse4a flags to options.
12525
abecc8c6
DM
125262013-05-17 David Malcolm <dmalcolm@redhat.com>
12527
12528 * gengtype-state.c: (s_expr_writer): New class, to handle
12529 prettifying of output layout of s-expressions.
12530 (state_writer): New class, to write out gtype.state.
12531 (state_written_type_count): Move this variable into member data of
12532 state_writer.
12533 (s_expr_writer::s_expr_writer): New code: constructor for new class
12534 (state_writer::state_writer(): ditto
12535 (s_expr_writer::write_new_line): New function
12536 (s_expr_writer::write_any_indent): ditto
12537 (s_expr_writer::begin_s_expr): ditto
12538 (s_expr_writer::end_s_expr): ditto
12539 (write_state_fileloc): convert to method of state_writer...
12540 (state_writer:: write_state_fileloc): ...and use methods of
12541 s_expr_writer to write indentation into the gtype.state output file
12542 to visually represent the hierarchical structure of the list
12543 structures
12544 (write_state_fields): ditto, renaming to...
12545 (state_writer::write_state_fields)
12546 (write_state_a_string): ditto, renaming to...
12547 (state_writer::write_state_a_string)
12548 (write_state_string_option): ditto, renaming to...
12549 (state_writer::write_state_string_option)
12550 (write_state_type_option): ditto, renaming to...
12551 (state_writer::write_state_type_option)
12552 (write_state_nested_option): ditto, renaming to...
12553 (state_writer::write_state_nested_option)
12554 (write_state_option): ditto, renaming to...
12555 (state_writer::write_state_option)
12556 (write_state_options): ditto, renaming to...
12557 (state_writer::write_state_options)
12558 (write_state_lang_bitmap): ditto, renaming to...
12559 (state_writer::write_state_lang_bitmap)
12560 (write_state_version): ditto, renaming to...
12561 (state_writer::write_state_version)
12562 (write_state_scalar_type): ditto, renaming to...
12563 (state_writer::write_state_scalar_type)
12564 (write_state_string_type): ditto, renaming to...
12565 (state_writer::write_state_string_type)
12566 (write_state_undefined_type): ditto, renaming to...
12567 (state_writer::write_state_undefined_type)
12568 (write_state_struct_union_type): ditto, renaming to...
12569 (state_writer::write_state_struct_union_type)
12570 (write_state_struct_type): ditto, renaming to...
12571 (state_writer::write_state_struct_type)
12572 (write_state_user_struct_type): ditto, renaming to...
12573 (state_writer::write_state_user_struct_type)
12574 (write_state_lang_struct_type): ditto, renaming to...
12575 (state_writer::write_state_lang_struct_type)
12576 (write_state_param_struct_type): ditto, renaming to...
12577 (state_writer::write_state_param_struct_type)
12578 (write_state_pointer_type): ditto, renaming to...
12579 (state_writer::write_state_pointer_type)
12580 (write_state_array_type): ditto, renaming to...
12581 (state_writer::write_state_array_type)
12582 (write_state_gc_used): ditto, renaming to...
12583 (state_writer::write_state_gc_used)
12584 (write_state_common_type_content): ditto, renaming to...
12585 (state_writer::write_state_common_type_content)
12586 (write_state_type): ditto, renaming to...
12587 (state_writer::write_state_type)
12588 (write_state_pair_list): ditto, renaming to...
12589 (state_writer::write_state_pair_list)
12590 (write_state_pair): ditto, renaming to...
12591 (state_writer::write_state_pair)
12592 (write_state_typedefs): ditto, renaming to...
12593 (state_writer::write_state_typedefs)
12594 (write_state_structures): ditto, renaming to...
12595 (state_writer::write_state_structures)
12596 (write_state_param_structs): ditto, renaming to...
12597 (state_writer::write_state_param_structs)
12598 (write_state_variables): ditto, renaming to...
12599 (state_writer::write_state_variables)
12600 (write_state_srcdir): ditto, renaming to...
12601 (state_writer::write_state_srcdir)
12602 (write_state_files_list): ditto, renaming to...
12603 (state_writer::write_state_files_list)
12604 (write_state_languages): ditto, renaming to...
12605 (state_writer::write_state_languages)
12606 (write_state): create a state_writer instance and use it when
12607 writing out the state file
12608
d6545f29
MS
126092013-05-17 Mike Stump <mikestump@comcast.net>
12610
816a3f73 12611 PR rtl-optimization/57304
d6545f29
MS
12612 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
12613 accessing DF_REF_REAL_LOC.
12614
38c821cf
JJ
126152013-05-17 Jakub Jelinek <jakub@redhat.com>
12616
12617 PR rtl-optimization/57281
12618 PR rtl-optimization/57300
12619 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
12620 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
12621 what the other splitter did if the registers are dead.
12622
2a293391
RB
126232013-05-17 Richard Biener <rguenther@suse.de>
12624
12625 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
12626 MEM_REF offsets.
12627
17042d2b
JJ
126282013-05-17 Jakub Jelinek <jakub@redhat.com>
12629
12630 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
12631 linking.
12632
5b115c1f
MP
126332013-05-17 Marek Polacek <polacek@redhat.com>
12634
11c2aa39
UB
12635 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
12636 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 12637
52d84413
JJ
126382013-05-17 Jakub Jelinek <jakub@redhat.com>
12639
68119618
JJ
12640 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
12641 vect_external_def oprnd1 with loop_vinfo, try to emit
12642 optional cast, negation and and stmts on the loop preheader
12643 edge instead of into the pattern def seq.
12644
52d84413
JJ
12645 PR tree-optimization/57051
12646 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
12647 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
12648
17b962bd
NC
126492013-05-16 Nick Clifton <nickc@redhat.com>
12650
12651 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
12652 (rl78_is_naked_func): New function.
56aefbf7
UB
12653 (rl78_expand_prologue): Skip prologue generation for naked functions.
12654 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
12655 * doc/extend.texi (naked): Add RL78 to the list of processors
12656 that supports this attribute.
12657
b1a0f84e
JL
126582013-05-16 Jeff Law <law@redhat.com>
12659
12660 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
12661
af0e415b
UB
126622013-05-16 Uros Bizjak <ubizjak@gmail.com>
12663
12664 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
12665 cache parameters using detect_caches_amd also for CYRIX,
12666 NSC and TM2 signatures.
12667
19db293a
UB
126682013-05-16 Uros Bizjak <ubizjak@gmail.com>
12669 Dzianis Kahanovich <mahatma@eu.by>
12670
12671 PR target/45359
12672 PR target/46396
12673 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
12674 VIA/Centaur processors and determine their cache parameters
12675 using detect_caches_amd.
12676
251a41b9
TJ
126772013-05-16 Teresa Johnson <tejohnson@google.com>
12678
12679 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
12680 (rtl_verify_edges): New function.
12681 (rtl_verify_bb_insns): Ditto.
12682 (rtl_verify_bb_pointers): Ditto.
12683 (rtl_verify_bb_insn_chain): Ditto.
12684 (rtl_verify_fallthru): Ditto.
12685 (rtl_verify_bb_layout): Ditto.
12686 (rtl_verify_flow_info_1): Outline checks into new functions.
12687 (rtl_verify_flow_info): Ditto.
12688
f14540b6
SE
126892013-05-16 Steve Ellcey <sellcey@imgtec.com>
12690
12691 * cfghooks.c (copy_bbs): Add update_dominance argument.
12692 * cfghooks.h (copy_bbs): Update prototype.
12693 * tree-cfg.c (gimple_duplicate_sese_region):
12694 Add update_dominance argument.
12695 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
12696 * tree-ssa-loop-ch.c (copy_loop_headers): Update
12697 gimple_duplicate_sese_region call.
12698 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
12699 Update copy_bbs call.
12700 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
12701 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
12702
7e9a3abb
JJ
127032013-05-16 Jakub Jelinek <jakub@redhat.com>
12704
12705 * tree-vectorizer.h (NUM_PATTERNS): Increment.
12706 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
12707 vect_recog_rotate_pattern.
12708 (vect_recog_rotate_pattern): New function.
12709
427b248d
JM
127102013-05-16 Jason Merrill <jason@redhat.com>
12711
12712 * Makefile.in (LLINKER): New variable.
12713 (mostlyclean): Remove link mutex.
12714 * configure.ac: Handle --enable-link-mutex.
12715 * lock-and-run.sh: New script.
12716
b871e3d2
RR
127172013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12718
12719 PR target/19599
12720 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
12721 for NULL decl.
12722
ce858126
RO
127232013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12724
12725 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
12726
798d3d04
GY
127272013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
12728
12729 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
12730 * config/arm/arm.c (next_consecutive_mem): New function.
12731 (gen_movmem_ldrd_strd): Likewise.
12732 * config/arm/arm.md (movmemqi): Update condition and code.
12733 (unaligned_loaddi, unaligned_storedi): New patterns.
12734
0baddc45
RO
127352013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12736
12737 * config.gcc: Obsolete *-*-solaris2.9*.
12738 * doc/install.texi (Specific, *-*-solaris2*): Document it.
12739
aa9d5bcf
RB
127402013-05-16 Richard Biener <rguenther@suse.de>
12741
12742 * passes.c (init_optimization_passes): Move pass_parallelize_loops
12743 earlier, after GRAPHITE transforms and IV canonicalization.
12744
5a0f4dd3
JJ
127452013-05-16 Jakub Jelinek <jakub@redhat.com>
12746
12747 * omp-low.c (extract_omp_for_data): For collapsed loops,
12748 if at least one of the loops is known at compile time to
12749 iterate zero times, set count to 0.
12750 (expand_omp_regimplify_p): New function.
12751 (expand_omp_for_generic): For collapsed loops, if at least
12752 one of the loops isn't known to iterate at least once,
12753 add runtime check with setting count to 0.
12754 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
12755 For unsigned types if it isn't known at compile time that
12756 the loop will iterate at least once, add runtime check to bypass
12757 the whole loop if initial condition isn't true.
12758
e3753785
NS
127592013-05-16 Nathan Sidwell <nathan@codesourcery.com>
12760
12761 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
12762
43bb4dd1
MG
127632013-05-16 Marc Glisse <marc.glisse@inria.fr>
12764
12765 PR middle-end/57286
12766 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
12767 transformations to avoid an infinite loop.
12768
3571dde6
MP
127692013-05-16 Marek Polacek <polacek@redhat.com>
12770
12771 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
12772
b8b3f0ca
LE
127732013-05-15 Leif Ekblad <leif@rdos.net>
12774
12775 * config/i386/i386.c (ix86_decompose_address): Use
12776 DEFAULT_TLS_SEG_REG to access TLS segment register.
12777 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
12778 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
12779 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
12780
e299a383
RS
127812013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
12782
12783 PR target/57260
12784 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
12785 sibling calls to functions that would normally be lazily bound,
12786 unless $gp is call-clobbered.
12787
e7208ea3
UB
127882013-05-15 Uros Bizjak <ubizjak@gmail.com>
12789
19db293a 12790 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 12791 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
12792 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
12793 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
12794 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
12795 of TARGET_3DNOW.
12796 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
12797
e7413f3d
AS
127982013-05-15 Andreas Schwab <schwab@suse.de>
12799
12800 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
12801 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
12802 third operand.
12803
ad4db775
TJ
128042013-05-15 Teresa Johnson <tejohnson@google.com>
12805
12806 * loop-unroll.c (report_unroll_peel): Check decision before
12807 emitting unroll/peel message.
12808
af205f67
TJ
128092013-05-15 Teresa Johnson <tejohnson@google.com>
12810
12811 * function.h (has_bb_partition): New rtl_data flag.
12812 (bb_reorder_complete): Ditto.
12813 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
12814 instead of flag_reorder_blocks_and_partition.
12815 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
12816 with some enhancements.
12817 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
12818 * bb-reorder.c (connect_traces): Check for has_bb_partition
12819 instead of flag_reorder_blocks_and_partition.
12820 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
12821 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
12822 verify_hot_cold_block_grouping.
12823 (partition_hot_cold_basic_blocks): Set has_bb_partition.
12824
9adcfa3c
RR
128252013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12826
12827 PR target/19599
12828 * config/arm/predicates.md (call_insn_operand): New predicate.
12829 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
12830 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
12831 if insn is not a tail call.
12832 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
12833 registers.
12834 * config/arm/arm.h (enum reg_class): New caller save register class.
12835 (REG_CLASS_NAMES): Likewise.
12836 (REG_CLASS_CONTENTS): Likewise.
12837 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
12838 without decls.
12839
ccb3ad87
RB
128402013-05-15 Richard Biener <rguenther@suse.de>
12841
12842 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
12843 of MSG_OPTIMIZED_LOCATIONS.
12844 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
12845 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
12846 message.
12847 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
12848 of MSG_OPTIMIZED_LOCATIONS.
12849 (execute_vect_slp): Likewise.
12850 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
12851 (vect_create_cond_for_alias_checks): Likewise.
12852 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
12853 (vect_recog_widen_mult_pattern): Likewise.
12854 (vect_recog_widen_sum_pattern): Likewise.
12855 (vect_recog_over_widening_pattern): Likewise.
12856 (vect_recog_widen_shift_pattern): Likewise.
12857 (vect_recog_vector_vector_shift_pattern): Likewise.
12858 (vect_recog_divmod_pattern): Likewise.
12859 (vect_recog_mixed_size_cond_pattern): Likewise.
12860 (vect_recog_bool_pattern): Likewise.
12861 (vect_pattern_recog_1): Likewise.
12862
48b1474e
MJ
128632013-05-15 Martin Jambor <mjambor@suse.cz>
12864
12865 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
12866 non-functions to builtin_unreachable.
12867 * ipa-inline-transform.c (inline_call): Do not assert estimates were
12868 correct when new direct edges were discovered.
12869
9de04252
MJ
128702013-05-15 Martin Jambor <mjambor@suse.cz>
12871
12872 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
12873 header, print symbol order instead of node uid, print more information
12874 about indirect edge targets.
12875 (ipa_make_edge_direct_to_target): Print symbol order instead of node
12876 uids.
12877 (ipa_make_edge_direct_to_target): Likewise.
12878 (remove_described_reference): Likewise.
12879 (propagate_controlled_uses): Likewise.
12880 (ipa_print_node_params): Also print symbol order.
12881 (ipcp_transform_function): Print symbol order instead of node uids.
12882 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
12883 (cgraph_get_create_real_symbol_node): Likewise.
12884 * ipa-cp.c (print_lattice): Likewise.
12885 (print_all_lattices): Likewise.
12886 (determine_versionability): Likewise.
12887 (initialize_node_lattices): Likewise.
12888 (estimate_local_effects): Likewise.
12889 (update_profiling_info): Likewise.
12890 (create_specialized_node): Likewise.
12891 (perhaps_add_new_callers): Likewise.
12892 (decide_about_value): Likewise.
12893 (decide_whether_version_node): Likewise.
12894 (identify_dead_nodes): Likewise.
12895 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
12896 (dump_inline_summary): Likewise.
12897 (estimate_node_size_and_time): Likewise.
12898 (inline_analyze_function): Likewise.
12899 * ipa-inline.c (report_inline_failed_reason): Likewise.
12900 (want_early_inline_function_p): Likewise.
12901 (edge_badness): Likewise.
12902 (update_edge_key): Likewise.
12903 (inline_small_functions): Likewise. Add dumping of order to two other
12904 dumps.
12905 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
12906 instead of node uids.
12907 (propagate_pure_const): Likewise.
12908 (propagate_pure_const): Likewise.
12909 * ipa-utils.c (dump_cgraph_node_set): Likewise.
12910 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
12911 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
12912 of node uids.
12913 * tree-pretty-print.c (dump_function_header): Likewise.
12914 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
12915 Print symbol order instead of node uids.
12916
1dd03b91
AK
129172013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12918
12919 * config/s390/s390.c (s390_register_move_cost): Don't impose the
12920 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
12921
fdf6a7b9
RB
129222013-05-15 Richard Biener <rguenther@suse.de>
12923
12924 PR tree-optimization/57275
12925 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
12926 return value for fail to do runtime alias checks for gather loads.
12927
2d6e4603
JH
129282013-05-15 Jan Hubicka <jh@suse.cz>
12929
12930 PR lto/57038
12931 PR lto/47375
e7208ea3
UB
12932 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
12933 weakrefs are not external.
12934 (lto_symtab_merge_decls): Fix thinko when dealing with
12935 non-lto_symtab decls.
2d6e4603
JH
12936 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
12937 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
12938 * varpool.c (dump_varpool_node): Dump more flags.
12939
83f44b39
GG
129402013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
12941
12942 * config/i386/i386.c (processor_alias_table): Add instruction
12943 FSGSBASE for AMD bdver3 architecture.
12944
2e55d062
JJ
129452013-05-14 Jakub Jelinek <jakub@redhat.com>
12946
12947 * tree.c (warn_deprecated_use): Print file:line using locus color.
12948 * diagnostic.c (diagnostic_report_current_module): Print file:line
12949 and file:line:column using locus color.
12950
0bfdb81e
MS
129512013-05-14 Mike Stump <mikestump@comcast.net>
12952
12953 * gdbinit.in: Add __null.
12954
a508ef22
MS
129552013-05-14 Mike Stump <mikestump@comcast.net>
12956
12957 * recog.h: Rename struct recog_data to Recog_data.
12958 * recog.c: Likewise.
12959 * reload.c (can_reload_into): Likewise.
12960 * config/picochip/picochip.c: Likewise.
12961
e7180acb
MS
129622013-05-14 Mike Stump <mikestump@comcast.net>
12963
12964 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
12965
61216c26
SB
129662013-05-14 Steven Bosscher <steven@gcc.gnu.org>
12967
fd6beed4
SB
12968 * resource.h (struct resources): Remove unch_memory member.
12969 (CLEAR_RESOURCE): Don't clear unch_memory.
12970 * resource.c (mark_referenced_resources): Don't set it.
12971 (mark_set_resources): Likewise.
12972 (mark_target_live_regs): Don't clear it.
12973 (init_resource_info): Likewise.
12974 * reorg.c (resource_conflicts_p): Don't compare it.
12975 (redundant_insn): Don't set it.
12976
61216c26
SB
12977 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
12978 Remove prototypes.
12979 * emit-rtl.c (next_label): Remove unused function.
12980 (skip_consecutive_labels, link_cc0_insns): Move to ...
12981 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
12982 only place where these functions are used, and make them static.
12983
418d1b87
MG
129842013-05-14 Marc Glisse <marc.glisse@inria.fr>
12985
12986 * fold-const.c (fold_negate_expr): Handle vectors.
12987 (fold_truth_not_expr): Make it static.
12988 (fold_invert_truthvalue): New static function.
12989 (invert_truthvalue_loc): Handle vectors. Do not call
12990 fold_truth_not_expr directly.
12991 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
12992 <TRUTH_NOT_EXPR>: Do not cast to boolean.
12993 (fold_comparison): Handle vector constants.
12994 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
12995 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
12996 * tree.h (fold_truth_not_expr): Remove declaration.
12997
fc21784d
JG
129982013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
12999
13000 * config/aarch64/aarch64-simd.md
13001 (aarch64_vcond_internal<mode>): Rename to...
13002 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
13003 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
13004 float modes. Clarify all iterator modes.
13005 (vcond<mode><mode>): Use new name for vcond expanders.
13006 (vcond<v_cmp_result><mode>): Likewise.
13007 (vcondu<mode><mode>: Likewise.
13008 * config/aarch64/iterators.md (VDQF_COND): New.
13009
d4c52634
MG
130102013-05-14 Marc Glisse <marc.glisse@inria.fr>
13011
13012 PR bootstrap/57266
13013 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
13014 variable for the shift amount. Check that we shift by non-negative
13015 amounts.
13016
2b261262
CLT
130172013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
13018
13019 PR target/42017
13020 * config/arm/arm.h (EPILOGUE_USES): Only return true
13021 for LR_REGNUM after epilogue_completed.
13022
12211b99 130232013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
13024
13025 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 13026 is error_mark_node.
6e022d7b 13027
56cf7859
RO
130282013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13029
13030 PR target/57261
13031 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
13032 and Solaris 11+/x86 with gld.
13033 * configure: Regenerate.
13034
75776c6d
JJ
130352013-05-14 Jakub Jelinek <jakub@redhat.com>
13036
13037 * expmed.c (expand_shift_1): Canonicalize rotates by
13038 constant bitsize / 2 to bitsize - 1.
7f998021 13039 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
13040 case ROTATERT>: Likewise.
13041
13042 Revert:
13043 2013-05-10 Jakub Jelinek <jakub@redhat.com>
13044
13045 * config/i386/i386.md (rotateinv): New code attr.
13046 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
13047 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
13048 roll $31, %eax, etc.
13049
df35498a
RB
130502013-05-14 Richard Biener <rguenther@suse.de>
13051
13052 PR middle-end/57235
13053 * tree-eh.c (sink_clobbers): Give up for successors with
13054 multiple predecessors and no virtual uses.
13055
cc6e7ece
EB
130562013-05-14 Eric Botcazou <ebotcazou@adacore.com>
13057
13058 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
13059 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
13060
f778dd4d
JJ
130612013-05-14 Jakub Jelinek <jakub@redhat.com>
13062
13063 PR middle-end/57251
13064 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
13065 the case when both op0 and op1 have VOIDmode.
13066
bad4df9b
KP
130672013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
13068
13069 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
13070 in multiply-accumulate mode.
13071
56f3e9ac
GW
130722013-05-13 Guozhi Wei <carrot@google.com>
13073
13074 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
13075
a3d7ab92
KT
130762013-05-13 Kai Tietz <ktietz@redhat.com>
13077
13078 PR target/56975
13079 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 13080 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 13081 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 13082 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
13083 (ix86_expand_prologue): Likewise.
13084 (ix86_expand_split_stack_prologue): Likewise.
13085 (legitimate_pic_address_disp_p): Likewise.
13086 (legitimize_pic_address): Likewise.
13087 (legitimize_tls_address): Likewise.
13088 (legitimize_pe_coff_symbol): Likewise.
13089 (output_pic_addr_const): Likewise.
13090 (construct_plt_address): Likewise.
13091 (ix86_expand_call): Likewise.
13092 (x86_output_mi_thunk): Likewise.
13093 (x86_function_profiler): Likewise.
13094
c59b7e28
SN
130952013-05-13 Sofiane Naci <sofiane.naci@arm.com>
13096
13097 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
13098 similar switch cases.
13099 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
13100 (aarch64_simd_mov_to_<mode>low): Delete.
13101 (aarch64_simd_mov_to_<mode>high): Delete.
13102 (move_lo_quad_<mode>): Add w<-r alternative.
13103 (aarch64_simd_move_hi_quad_<mode>): Likewise.
13104 (aarch64_simd_mov_from_*): Update type attribute.
13105 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
13106 statement.
13107
5f28524a
JH
131082013-05-13 Jan Hubicka <jh@suse.cz>
13109
13110 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
13111 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
13112 ix86_expand_epilogue, emit_i387_cw_initialization,
13113 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
13114 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 13115
ae6fa899
JJ
131162013-05-13 Jakub Jelinek <jakub@redhat.com>
13117
13118 PR tree-optimization/45216
13119 PR tree-optimization/57157
13120 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
13121 the (-Y) & (B - 1) variant if OP is |.
13122 * expmed.c (expand_shift_1): For rotations by const0_rtx just
13123 return shifted. Use (-op1) & (prec - 1) as other_amount
13124 instead of prec - op1.
13125
4502fe8d
MJ
131262013-05-13 Martin Jambor <mjambor@suse.cz>
13127
13128 PR middle-end/42371
13129 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
13130 (ipa_constant_data): New type.
13131 (ipa_jump_func): Use ipa_constant_data to hold information about
13132 constant jump functions.
13133 (ipa_get_jf_constant): Adjust to jump function type changes.
13134 (ipa_get_jf_constant_rdesc): New function.
13135 (ipa_param_descriptor): New field controlled_uses.
13136 (ipa_get_controlled_uses): New function.
13137 (ipa_set_controlled_uses): Likewise.
13138 * ipa-ref.h (ipa_find_reference): Declare.
13139 * ipa-prop.c (ipa_cst_ref_desc): New type.
13140 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
13141 changes.
13142 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
13143 New parameter cs. Adjust all callers.
13144 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
13145 (remove_described_reference): New function.
13146 (jfunc_rdesc_usable): Likewise.
13147 (try_make_edge_direct_simple_call): Decrement controlled use count,
13148 attempt to remove reference if it hits zero.
13149 (combine_controlled_uses_counters): New function.
13150 (propagate_controlled_uses): Likewise.
13151 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
13152 (ipa_edge_duplication_hook): Duplicate reference descriptions.
13153 (ipa_print_node_params): Print described use counter.
13154 (ipa_write_jump_function): Adjust to jump function type changes.
13155 (ipa_read_jump_function): New parameter CS, pass it to
13156 ipa_set_jf_constant. Adjust caller.
13157 (ipa_write_node_info): Stream controlled use count
13158 (ipa_read_node_info): Likewise.
13159 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
13160 asserting.
13161 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
13162 count. Remove cloning-added reference if it reaches zero.
13163 * ipa-ref.c (ipa_find_reference): New function.
13164
0864bfc2
GG
131652013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
13166
e7208ea3 13167 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
13168 alignment values for AMD BD and BT architectures.
13169
640bfeb2
MG
131702013-05-13 Marc Glisse <marc.glisse@inria.fr>
13171
13172 * tree-vect-generic.c (uniform_vector_p): Move ...
13173 * tree.c (uniform_vector_p): ... here.
13174 * tree.h (uniform_vector_p): Declare it.
13175 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
13176 into a scalar.
13177
3a60f32b
JJ
131782013-05-13 Jakub Jelinek <jakub@redhat.com>
13179
198fe1bf
JJ
13180 PR tree-optimization/57230
13181 * tree-ssa-strlen.c (handle_char_store): Record length for
13182 array store from STRING_CST.
13183
3a60f32b
JJ
13184 PR tree-optimization/57230
13185 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
13186 check.
13187
566be57c
JR
131882013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
13189
13190 * config/epiphany/epiphany.c (epiphany_init): Check size of
13191 NUM_MODES_FOR_MODE_SWITCHING.
13192 (epiphany_expand_prologue):
13193 Remove CONFIG_REGNUM initial value handling code.
13194 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
13195 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 13196 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
13197 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
13198 Don't return 1 for FP_MODE_NONE.
13199 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
13200 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
13201 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
13202 * config/epiphany/epiphany.md (save_config): New pattern.
13203
0f2c2331
UB
132042013-05-12 Uros Bizjak <ubizjak@gmail.com>
13205
13206 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
13207
5b3f93c7
UB
132082013-05-10 Uros Bizjak <ubizjak@gmail.com>
13209
13210 * config/i386/i386.md (memory): Handle sseishft1.
13211 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
13212 (*vec_extractv2di_1): Ditto.
13213
1f873f0e
VM
132142013-05-10 Vladimir Makarov <vmakarov@redhat.com>
13215
13216 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
13217 saved registers.
13218
341427fa 132192013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
13220
13221 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
13222 Add mthumb/march=armv7-a multilib.
13223 Add mthumb/march=armv7-r multilib.
13224 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
13225
9e69bdde
RC
132262013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
13227
13228 * config/v850/t-rtems: Add more multilibs.
13229
9ff09a22
RB
132302013-05-10 Richard Biener <rguenther@suse.de>
13231
13232 PR tree-optimization/57214
13233 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
13234 not propagate from SSA names that occur in abnormal PHI nodes.
13235
a5e0cd1d
MG
132362013-05-10 Marc Glisse <marc.glisse@inria.fr>
13237
13238 * stor-layout.c (element_precision): New function.
13239 * machmode.h (element_precision): Declare it.
13240 * tree.c (build_minus_one_cst): New function.
13241 (element_precision): Likewise.
13242 * tree.h (build_minus_one_cst): Declare new function.
13243 (element_precision): Likewise.
13244 * fold-const.c (operand_equal_p): Use element_precision.
13245 (fold_binary_loc): Handle vector types.
13246 * convert.c (convert_to_integer): Use element_precision.
13247 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
13248 separately.
13249
cb2558bc
RS
132502013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
13251
13252 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
13253 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
13254 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
13255 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
13256 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
13257 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
13258 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
13259 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
13260 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
13261 (Uuw8): New constraints.
13262 (Usb4): Move into alphabetical order.
13263 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
13264 (sd8_operand, ub8_operand, uw8_operand): New predicates.
13265 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
13266 previously unnamed patterns.
13267 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
13268 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
13269 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
13270 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
13271 of set_attr_alternative/if_then_else. Use extended_mips16 instead
13272 of specific lengths.
13273
cb3b8d33
JJ
132742013-05-10 Jakub Jelinek <jakub@redhat.com>
13275
6f93c008
JJ
13276 * config/i386/i386.md (rotateinv): New code attr.
13277 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
13278 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
13279 roll $31, %eax, etc.
13280
cb3b8d33
JJ
13281 PR tree-optimization/45216
13282 PR tree-optimization/57157
13283 * tree-ssa-forwprop.c (simplify_rotate): New function.
13284 (ssa_forward_propagate_and_combine): Call it.
13285
afb119be
RB
132862013-05-10 Richard Biener <rguenther@suse.de>
13287
13288 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
13289 disable peeling when we version for aliasing.
13290 (vector_alignment_reachable_p): Honor explicit user alignment.
13291 (vect_supportable_dr_alignment): Likewise.
13292 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
13293 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
13294 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
13295 then peeling to arrange for the cost-model check to come first.
13296
01ae4861
AM
132972013-05-10 Alan Modra <amodra@gmail.com>
13298
13299 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
13300 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
13301 * configure: Regenerate.
13302
ebc9a431
AM
133032013-05-10 Alan Modra <amodra@gmail.com>
13304
13305 PR target/55033
13306 * varasm.c (default_elf_select_section): Move !DECL_P check..
13307 (get_named_section): ..to here before calling get_section_name.
13308 Adjust assertion.
13309 (default_section_type_flags): Add DECL_P check.
13310 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
13311 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
13312
d4bca93c
JR
133132013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
13314
13315 * config/epiphany/epiphany.c (epiphany_expand_prologue):
13316 When using gen_stack_adjust_str with a register offset, add a
13317 REG_FRAME_RELATED_EXPR note.
13318
60ca9a65
UB
133192013-05-09 Uros Bizjak <ubizjak@gmail.com>
13320
13321 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
13322 (*vec_extractv4si_zext_mem): Ditto.
13323 (*vec_extractv2di): Add 0->x and x->x alternatives.
13324 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
13325 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
13326
a3409c02
JM
133272013-05-09 Jason Merrill <jason@redhat.com>
13328
0138d6b2
JM
13329 N3639 C++1y VLA support
13330 * gimplify.c (gimplify_vla_decl): Don't touch an existing
13331 DECL_VALUE_EXPR.
13332
a3409c02
JM
13333 * tree.c (build_constructor_va): New.
13334 * tree.h: Declare it.
13335
66e6b990
MJ
133362013-05-09 Martin Jambor <mjambor@suse.cz>
13337
13338 PR lto/57084
13339 * gimple-fold.c (canonicalize_constructor_val): Call
13340 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
13341
64cfa6c0
JH
133422013-05-09 Jan Hubicka <jh@suse.cz>
13343 Richard Biener <rguenther@suse.de>
13344
13345 PR lto/54095
13346 * symtab.c (symtab_make_decl_local): Do not add private names.
13347
c3167b00
JH
133482013-05-09 Jan Hubicka <jh@suse.cz>
13349
13350 PR lto/54095
13351 * symtab.c (insert_to_assembler_name_hash): Handle clones.
13352 (unlink_from_assembler_name_hash): Likewise.
13353 (symtab_prevail_in_asm_name_hash, symtab_register_node,
13354 symtab_unregister_node, symtab_initialize_asm_name_hash,
13355 change_decl_assembler_name): Update.
13356
12dc6974
SN
133572013-05-09 Sofiane Naci <sofiane.naci@arm.com>
13358
13359 * config/aarch64/aarch64.md: New movtf split.
13360 (*movtf_aarch64): Update.
13361 (aarch64_movdi_tilow): Handle TF modes and rename to
13362 aarch64_movdi_<mode>low.
13363 (aarch64_movdi_tihigh): Handle TF modes and rename to
13364 aarch64_movdi_<mode>high
13365 (aarch64_movtihigh_di): Handle TF modes and rename to
13366 aarch64_mov<mode>high_di
13367 (aarch64_movtilow_di): Handle TF modes and rename to
13368 aarch64_mov<mode>low_di
13369 (aarch64_movtilow_tilow): Remove spurious whitespace.
13370 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
13371 splits.
13372 (aarch64_print_operand): Update.
13373
227eb343
AM
133742013-05-09 Alan Modra <amodra@gmail.com>
13375
13376 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
13377 powerpc64le.
13378 * configure: Regenerate.
13379
0b013847
UB
133802013-05-08 Uros Bizjak <ubizjak@gmail.com>
13381
13382 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
13383 splitter preparation statements.
13384 * config/i386/sse.md (*vec_extract* splitters): Ditto.
13385 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
13386 adjust_address_nv.
13387
1dc3d6e9
BS
133882013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13389
13390 * gimple-ssa-strength-reduction.c (count_candidates): Change
13391 return value to int.
13392 (analyze_candidates_and_replace): Change type of length to int.
13393
e61e7d28
UB
133942013-05-08 Uros Bizjak <ubizjak@gmail.com>
13395
13396 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
13397 (*vec_extract<mode>): Use VI12_128 mode iterator.
13398 (*vec_extract<mode>_mem): Ditto.
13399 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
13400 attribute.
13401
4fbfcf44
DN
134022013-05-08 Diego Novillo <dnovillo@google.com>
13403
13404 PR bootstrap/54659
13405
13406 Revert:
4fbfcf44
DN
13407 2012-08-17 Diego Novillo <dnovillo@google.com>
13408
e61e7d28
UB
13409 PR bootstrap/54281
13410 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
13411 * config.in: Regenerate.
13412 * configure: Regenerate.
13413 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 13414
702d8703
JH
134152013-05-08 Jan Hubicka <jh@suse.cz>
13416
13417 PR lto/54095
13418 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
13419 * cgraph.h (symtab_node_base): Add unique_name.
13420 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
13421 input_overwrite_node, input_varpool_node): Stream unique_name.
13422 * cgraphclones.c (cgraph_create_virtual_clone,
13423 cgraph_function_versioning): Set unique_name.
13424 * ipa.c (function_and_variable_visibility): Set unique_name.
13425
8b28cf47
BS
134262013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13427
13428 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
13429 (alloc_cand_and_find_basis): Restrict conditional candidate
13430 processing to CAND_MULTs.
13431
e86074fd
JH
134322013-05-08 Jan Hubicka <jh@suse.cz>
13433
13434 PR lto/54095
13435 lto-symtab.c (lto_symtab_symbol_p): New function.
13436 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
13437 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
13438 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
13439 Skip static symbols.
13440
44398cbe
PC
134412013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
13442
13443 PR tree-optimization/57200
13444 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
13445 Only call inform if the preceding warning_at returns true.
13446
f6bc1c4a
HS
134472013-05-07 Han Shen <shenhan@google.com>
13448
13449 * cfgexpand.c (record_or_union_type_has_array_p): New function.
13450 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
13451 * common.opt (fstack-protector-strong): New option.
13452 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
13453 * doc/invoke.texi (Optimization Options): Document
13454 "-fstack-protector-strong".
13455 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
13456
4ffecb1f
SB
134572013-05-06 Steven Bosscher <steven@gcc.gnu.org>
13458
13459 * config/mips/mips.c (mips_machine_reorg2): Return 0.
13460
5a107a0f
VM
134612013-05-07 Vladimir Makarov <vmakarov@redhat.com>
13462
13463 * ira.c (update_equiv_regs): Add insn having equiv memory even if
13464 it is not lhs of the insn.
13465 (setup_reg_equiv): Remove insn having equiv memory which it is not
13466 lhs of the insn.
13467 * lra-constraints.c (process_address): Try to improve generation
13468 code for address base + disp.
13469 (lra_constraints): Make correct the code for checking insn setting
13470 up backward equivalence. Remove insn only if it is in the init
13471 insn list.
13472 * lra-eliminations.c (update_reg_eliminate): Change return value.
13473 (lra_eliminate): Use the result.
13474
3f5783ea
UB
134752013-05-07 Uros Bizjak <ubizjak@gmail.com>
13476
13477 * config/i386/sse.md (ssescalarnummask): New mode attribute.
13478 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
13479 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
13480 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
13481 register target operands.
13482 (*vec_extractv8hi_sse2): New pattern.
13483 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
13484 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
13485 (*vec_extract<mode>_mem): New insn and split pattern.
13486
8a5800b8
CL
134872013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
13488
13489 * config/arm/arm.c (arm_asan_shadow_offset): New function.
13490 (TARGET_ASAN_SHADOW_OFFSET): Define.
13491 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
13492 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
13493
7bf55a70
BS
134942013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13495
13496 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
13497 (incr_vec_index): Return -1 if increment not found.
13498 (create_add_on_incoming_edge): Assert if increment not found.
13499 (record_increment): Limit number of increments recorded.
13500 (all_phi_incrs_profitable): Return false if an increment not found.
13501 (replace_profitable_candidates): Don't process increments that were
13502 not recorded.
13503 (analyze_candidates_and_replace): Limit size of incr_vec.
13504
3f8825c0
RB
135052013-05-07 Richard Biener <rguenther@suse.de>
13506
13507 * calls.c (special_function_p): setjmp-like functions are leaf.
13508 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
13509 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
13510
fd4842cd
SN
135112013-05-07 Sofiane Naci <sofiane.naci@arm.com>
13512
13513 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
13514 (aarch64_simd_mov<mode>): New expander.
13515 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
13516 (aarch64_simd_mov_to_<mode>high): Likewise.
13517 (aarch64_simd_mov_from_<mode>low): Likewise.
13518 (aarch64_simd_mov_from_<mode>high): Likewise.
13519 (aarch64_dup_lane<mode>): Update.
13520 (aarch64_dup_lanedi): New instruction pattern.
13521 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
13522 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
13523
a7a7d10e
BS
135242013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13525
13526 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
13527 (replace_mult_candidate): Remove unnecessary argument; remove
13528 unnecessary parameter from call to introduce_cast_before_cand.
13529 (replace_unconditional_candidate): Remove unnecessary parameter
13530 from call to replace_mult_candidate.
13531 (replace_conditional_candidate): Likewise.
13532 (insert_initializers): Use make_temp_ssa_name.
13533 (introduce_cast_before_cand): Remove unnecessary argument; use
13534 make_temp_ssa_name.
13535 (replace_one_candidate): Remove unnecessary argument; remove
13536 unnecessary parameter from calls to introduce_cast_before_cand.
13537 (replace_profitable_candidates): Remove unnecessary parameters
13538 from calls to replace_one_candidate.
13539
29105868
BS
135402013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13541
13542 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
13543 phi def as possibly hiding a basis for a CAND_ADD whose operands
13544 have been commuted in the analysis.
13545 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
13546
4095f9fa
N
135472013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
13548
13549 * config/aarch64/aarch64.md
13550 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
13551 shift value between 0-4.
13552
39e843e8
RB
135532013-05-07 Richard Biener <rguenther@suse.de>
13554
13555 * double-int.h (rshift): New overload.
13556 * double-int.c (rshift): New function.
13557 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
13558 (create_reference_ops_from_ref): Remove.
13559 (vn_reference_insert): Use shared ops for constructing the
13560 reference and copy it.
13561
0a1a83cb
RB
135622013-05-07 Richard Biener <rguenther@suse.de>
13563
13564 PR middle-end/57190
13565 * tree-eh.c (sink_clobbers): Properly propagate
13566 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
13567
43303d6f
JJ
135682013-05-07 Jakub Jelinek <jakub@redhat.com>
13569
ba7e83f8
JJ
13570 PR tree-optimization/57149
13571 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
13572 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
13573 collect_phi_def_edges, execute_late_warn_uninitialized): Use
13574 uninit_undefined_value_p instead of ssa_undefined_value_p.
13575
43303d6f
JJ
13576 PR debug/57184
13577 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
13578 for modifier == EXPAND_INITIALIZER.
13579
14523c25
AB
135802013-05-07 Anton Blanchard <anton@samba.org>
13581
13582 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
13583 for powerpc64 little endian.
13584 * configure: Regenerate.
13585
cb7c8be9
GS
135862013-05-06 Graham Stott <grahams@btinternet.com>
13587
13588 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
13589 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
13590 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
13591 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
13592
135932013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
13594
13595 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
13596 codes which allow non-lvalues.
13597
9a0ee7b0
MG
135982013-05-06 Marc Glisse <marc.glisse@inria.fr>
13599
13600 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
13601 components are all 1s.
13602 (integer_minus_onep): New function.
13603 * tree.h (integer_minus_onep): Declare it.
13604 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
13605 integer_minus_onep instead of integer_all_onesp.
13606
f2c17ea9
OE
136072013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
13608
13609 PR target/52933
13610 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
13611 variations of these patterns.
13612
f75e6a51
UB
136132013-05-06 Uros Bizjak <ubizjak@gmail.com>
13614
13615 * config/i386/i386.md (isa): Add x64_sse4 member.
13616 (enabled): Handle x64_sse4.
13617 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
13618 instruction for 64bit SSE4_1 targets. Update insn attributes.
13619 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
13620 instruction for SSE4_1 targets. Update insn attributes.
13621 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
13622 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
13623 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
13624 const_1 selector.
13625 (*vec_extractv4si): Rename from *sse4_1_pextrd.
13626 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
13627 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
13628
a986d468
OE
136292013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
13630
13631 PR target/57108
13632 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
13633
382522cb
MK
136342013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
13635
13636 * final.c (do_assembler_dialects): Don't handle curly braces and
13637 vertical bar escaped by % as dialect delimiters.
13638 (output_asm_insn): Print curly braces and vertical bar if escaped
13639 by % and ASSEMBLER_DIALECT defined.
13640 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
13641 * doc/tm.texi: Regenerated.
13642
fb0d5c60
SB
136432013-05-06 Steven Bosscher <steven@gcc.gnu.org>
13644
fb0d5c60
SB
13645 * config/mips/mips.c: Include tree-pass.h.
13646 (mips_reorg): Split in pre- and post-dbr_schedule parts.
13647 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
13648 (pass_mips_machine_reorg2): New machine specific pass.
13649 (insert_pass_mips_machine_reorg2): New pass plugin definition.
13650 (mips_option_override): Register the new pass.
13651 * rtl.h (cleanup_barriers): Remove prototype.
13652 (dbr_schedule): Likewise.
13653 * jump.c (cleanup_barriers): Make static.
13654 * reorg.c (dbr_schedule): Likewise.
13655
aa06a978
RB
136562013-05-06 Richard Biener <rguenther@suse.de>
13657
13658 PR tree-optimization/57185
13659 * tree-parloops.c (add_field_for_reduction): Handle anonymous
13660 SSA names properly.
13661
0b953bec
UB
136622013-05-06 Uros Bizjak <ubizjak@gmail.com>
13663
13664 PR target/57106
13665 * config/i386/i386.c (add_parameter_dependencies): Add dependence
13666 between "first_arg" and "insn", not "last" and "insn".
13667
28708525
WS
136682013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13669
13670 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
13671 (find_candidates_in_block): Re-enable slsr_process_phi.
13672 (create_phi_basis): Fix double counting of candidate adjustment.
13673
0107dca2
RB
136742013-05-06 Richard Biener <rguenther@suse.de>
13675
13676 PR middle-end/57147
13677 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
13678 the edge is also fallthru, preserve it and just clear the
13679 abnormal flag.
13680 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
13681 also complex, preserve that and just clear the fallthru flag.
13682 * tree-inline.c (update_ssa_across_abnormal_edges): Also
13683 update virtual operands.
13684
470d4d13
AM
136852013-05-06 Alan Modra <amodra@gmail.com>
13686
13687 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
13688 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
13689 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
13690 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
13691 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
13692 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
13693
8f1dbf8d
AM
136942013-05-06 Alan Modra <amodra@gmail.com>
13695
13696 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
13697 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
13698 (DEFAULT_ASM_ENDIAN): Define.
13699 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
13700 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
13701 Update -K PIC clause from sysv4.h.
13702 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
13703 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
13704
54890767
AM
137052013-05-06 Alan Modra <amodra@gmail.com>
13706
13707 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
13708 twice for little-endian.
13709 (ashrdi3_no_power, ashrdi3): Support little-endian.
13710
2353515d
OE
137112013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
13712
13713 PR target/55303
13714 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
13715 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
13716 related expanders.
13717 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
13718 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
13719 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
13720 New predicates.
13721
33e67557
SB
137222013-05-05 Steven Bosscher <steven@gcc.gnu.org>
13723 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13724
13725 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
13726 * config/pa/pa.opt: Make mbig-switch a no-op.
13727 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
13728 (CASE_VECTOR_MODE): Always return SImode.
13729 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
13730 for the !TARGET_BIG_SWITCH case.
13731 * config/pa/pa-linux.h: Likewise.
13732 * config/pa/pa-openbsd.h: Likewise.
13733 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
13734 * config/pa/pa.md (short_jump): Remove define_insn.
13735 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
13736 (casesi0): Remove define_insn.
13737 (type): Remove btable_branch.
13738 (pa_combine_type): Likewise.
13739 (in_nullified_branch_delay): Likewise.
13740 (in_call_delay): Likewise.
13741 (define_delay): Likewise.
13742 (define_insn_reservation "Z3"): Likewise.
13743 (define_insn_reservation "Z4"): Likewise.
13744 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
13745 (pa_adjust_insn_length): Remove adjustment for btable branches.
13746 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
13747 and mno-big-switch
13748
3095685e
UB
137492013-05-05 Uros Bizjak <ubizjak@gmail.com>
13750
13751 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
13752 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
13753 Add m->r,x alternatives.
13754 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
13755 splitters using SWI48x mode iterator.
13756 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
13757 TARGET_64BIT. Add m->x alternative.
13758 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
13759 Add o->x alternative. Enable for TARGET_SSE.
13760 (sse_storeq): Remove expander.
13761 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
13762 with memory input operand.
13763 (*vec_extractv2di_1 splitter): New.
13764 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
13765 * config/i386/i386.md (ssevecmodelower): New mode attribute.
13766
4b36ae28
SB
137672013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
13768
13769 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
13770 (INT_LOWPART): Delete.
13771 (extract_MB): Adjust.
13772 (extract_ME): Adjust.
13773 (print_operand): Adjust.
13774
da226db2
SB
137752013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
13776
13777 * config/rs6000/predicates.md (reg_or_add_cint_operand,
13778 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
13779 (reg_or_logical_cint_operand, easy_fp_constant,
13780 logical_const_operand): Delete "CONST_DOUBLE" case.
13781 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
13782 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 13783 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
13784 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
13785 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
13786 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
13787 test.
13788 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
13789 CONST_DOUBLE DImode/VOIDmode case.
13790 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
13791 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
13792 CONST_DOUBLE VOIDmode case.
13793 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
13794 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
13795 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
13796 Delete CONST_DOUBLE case.
13797 (splitters for mov FMOVE64 const_double): Delete
13798 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
13799 "HOST_BITS_PER_WIDE_INT >= 64" test.
13800 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
13801 case.
13802 (mov DI const_double): Delete.
13803
40de22d6
JJ
138042013-05-04 Jakub Jelinek <jakub@redhat.com>
13805
13806 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
13807 on op shows all bits zero in mode of a lowpart subreg, return zero.
13808
5ec6aff2
MM
138092013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
13810
13811 PR target/57150
13812 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
13813 to save TFmode registers and DImode to save TImode registers for
13814 caller save operations.
13815 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
13816 mark being partially clobbered since they only use the first
13817 double word.
13818
13819 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
13820 and TDmode only use the upper 64-bits of each VSX register.
13821
2cefad90
BS
138222013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13823
13824 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
13825 (find_candidates_in_block): Disable slsr_process_phi.
13826
d6d7eee1
GW
138272013-05-03 Guozhi Wei <carrot@google.com>
13828
13829 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
13830 constructor to ...
13831 (build_init_ctor): ... here.
d6d7eee1 13832
9b92d12b
BS
138332013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13834
13835 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
13836 (slsr_cand_d): Redefine def_phi.
13837 (stride_status, phi_adjust_status, count_phis_status): New enums.
13838 (find_phi_def): New.
13839 (find_basis_for_base_expr): New.
13840 (find_basis_for_candidate): Handle hidden bases.
13841 (alloc_cand_and_find_basis): Handle phi candidates.
13842 (slsr_process_phi): New.
13843 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
13844 (create_mul_imm_cand): Likewise.
13845 (create_add_ssa_cand): Exclude phi base candidates.
13846 (create_add_imm_cand): Likewise.
13847 (slsr_process_cast): Likewise.
13848 (slsr_process_copy): Likewise.
13849 (find_candidates_in_block): Handle phi candidates.
13850 (dump_candidate): Likewise.
13851 (unconditional_cands): Delete.
13852 (unconditional_cands_with_known_stride_p): Delete.
13853 (phi_dependent_cand_p): New.
13854 (cand_increment): Handle phi-dependent candidates.
13855 (replace_dependent): Delete.
13856 (replace_mult_candidate): New.
13857 (replace_unconditional_candidate): New.
13858 (incr_vec_index): Move to avoid forward reference.
13859 (create_add_on_incoming_edge): New.
13860 (create_phi_basis): New.
13861 (replace_dependents): Delete.
13862 (replace_conditional_candidate): New.
13863 (phi_add_costs): New.
13864 (replace_uncond_cands_and_profitable_phis): New.
13865 (record_increment): Handle phi adjustments.
13866 (record_phi_increments): New.
13867 (record_increments): Handle phi adjustments.
13868 (phi_incr_cost): New.
13869 (lowest_cost_path): Handle phis.
13870 (total_savings): Likewise.
13871 (analyze_increments): Likewise.
13872 (ncd_with_phi): New.
13873 (ncd_of_cand_and_phis): New.
13874 (nearest_common_dominator_for_cands): Handle phi increments.
13875 (all_phi_incrs_profitable): New.
13876 (replace_profitable_candidates): Handle phi-dependent candidates.
13877 (analyze_candidates_and_replace): Likewise.
13878
68f073d4
TJ
138792013-05-03 Teresa Johnson <tejohnson@google.com>
13880
13881 PR bootstrap/57154
13882 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
13883 do not exceed REG_BR_PROB_BASE.
13884
a4ee7cb9
JL
138852013-05-03 Jeff Law <law@redhat.com>
13886
ade67f70 13887 PR tree-optimization/57144
a4ee7cb9
JL
13888 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
13889 operand of the condition will bit into the new type when eliminating
13890 a cast feeding a condition.
13891
47954c4e
JJ
138922013-05-03 Jakub Jelinek <jakub@redhat.com>
13893
13894 PR rtl-optimization/57130
3095685e
UB
13895 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
13896 of COMPARE as in_code to the recursive call if needed.
47954c4e 13897
3c21604f
UB
138982013-05-03 Uros Bizjak <ubizjak@gmail.com>
13899
13900 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
13901 (enabled): Handle new members.
13902 * config/i386/sse.md (*vec_concatv2si): Merge from
13903 *vec_concatv2si_sse2 and vec_concatv2si_sse.
13904 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
13905
12211b99 139062013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
13907
13908 PR tree-optimization/57027
13909 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
13910 for fnms opportunity, check we got the prerequisite kind
13911 of tree / gimple before using accessor functions.
13912
07bfc9ec
RB
139132013-05-03 Richard Biener <rguenther@suse.de>
13914
13915 * double-int.h (lshift): New overload without precision
13916 and arith argument.
13917 (operator *=, operator +=, operator -=): Move ...
13918 * double-int.c (operator *=, operator +=, operator -=): ... here
13919 and implement more efficiently.
13920 (mul_double_with_sign): Remove.
13921 (lshift_double): Adjust to take unsinged shift argument, push
13922 dispatching code to callers.
13923 (mul_double_wide_with_sign): Add early out for callers that
13924 are not interested in high parts or overflow.
13925 (lshift): New function.
13926 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
13927 dispatch code here.
13928 (lrotate, rrotate): Use logical shifts.
13929 * expr.c (get_inner_reference): Use lshift.
13930 * fixed-value.c (do_fixed_divide): Likewise.
13931 * tree-dfa.c (get_ref_base_and_extent): Likewise.
13932 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
13933 (indirect_refs_may_alias_p): Likewise.
13934 (stmt_kills_ref_p_1): Likewise.
13935
7769bb64
VP
139362013-05-03 Vidya Praveen <vidyapraveen@arm.com>
13937
13938 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
13939
1d0c8e5c
VP
139402013-05-03 Vidya Praveen <vidyapraveen@arm.com>
13941
13942 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
13943 scalar form of FABD instruction.
13944
f15feaf9
VM
139452013-05-02 Vladimir Makarov <vmakarov@redhat.com>
13946
13947 * lra-constraints.c (process_alt_operands): Add checking alt
13948 number to choose the best alternative.
13949
d90e76d4
RB
139502013-05-02 Richard Biener <rguenther@suse.de>
13951
13952 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
13953 bitmap and its handling.
13954 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
13955
9f8e7a96
RB
139562013-05-02 Richard Biener <rguenther@suse.de>
13957
13958 PR middle-end/57140
13959 * tree-inline.c (copy_loops): Properly handle removed loops.
13960 (copy_cfg_body): Mark destination loops for fixup if source
13961 loops needed fixup.
13962
f3a81b39
GY
139632013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
13964
13965 PR target/56732
13966 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
13967 generating simple_return for naked functions.
13968
7b920a9a
MJ
139692013-05-02 Martin Jambor <mjambor@suse.cz>
13970
13971 PR middle-end/56988
13972 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
13973 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
13974 flags match.
13975 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
13976 ipa_agg_replacement_value structures.
13977 (known_aggs_to_agg_replacement_list): Likewise.
13978 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
13979 (read_agg_replacement_chain): Likewise.
13980 (ipcp_transform_function): Also check that by_ref flags match.
13981
2c41c19d
RB
139822013-05-02 Richard Biener <rguenther@suse.de>
13983
13984 * graphds.h (struct graph): Add obstack member.
13985 * graphds.c (new_graph): Initialize obstack and allocate
13986 vertices from it.
13987 (add_edge): Allocate edge from the obstack.
3c21604f 13988 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 13989
8b47039c
TJ
139902013-05-02 Teresa Johnson <tejohnson@google.com>
13991
13992 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
13993 divides.
13994 * cfg.c (update_bb_profile_for_threading): Ditto.
13995 * tree-inline.c (copy_bb): Ditto.
13996 (copy_edges_for_bb): Ditto.
13997 (initialize_cfun): Ditto.
13998 (copy_cfg_body): Ditto.
13999 (expand_call_inline): Ditto.
14000 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
14001 (estimate_node_size_and_time): Ditto.
14002 (inline_merge_summary): Ditto.
14003 * cgraphclones.c (cgraph_clone_edge): Ditto.
14004 (cgraph_clone_node): Ditto.
14005 * sched-rgn.c (compute_dom_prob_ps): Ditto.
14006 (compute_trg_info): Ditto.
14007
da65928c
IB
140082013-05-02 Ian Bolton <ian.bolton@arm.com>
14009
14010 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
14011 S reg when fp attribute set.
14012 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
14013
add3c965
IB
140142013-05-02 Ian Bolton <ian.bolton@arm.com>
14015
14016 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
14017 New pattern.
14018 (*and_one_cmplsi3_compare0_uxtw): Likewise.
14019 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
14020 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
14021
fdd43ac4
RB
140222013-05-02 Richard Biener <rguenther@suse.de>
14023
14024 * tree-scalar-evolution.c (scev_info_hasher): Remove.
14025 (struct instantiate_cache_entry): New type.
14026 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
14027 (struct instantiate_cache_type): New type.
14028 (set_instantiated_value, get_instantiated_value): Remove.
14029 (get_instantiated_value_entry): New function.
14030 (instantiate_scev_name): Use the new cache and adjust.
14031 (instantiate_scev_poly): Adjust.
14032 (instantiate_scev_binary): Likewise.
14033 (instantiate_array_ref): Likewise.
14034 (instantiate_scev_convert): Likewise.
14035 (instantiate_scev_not): Likewise.
14036 (instantiate_scev_3): Likewise.
14037 (instantiate_scev_2): Likewise.
14038 (instantiate_scev_r): Likewise.
14039 (instantiate_scev): Likewise.
14040 (resolve_mixers): Likewise.
14041
36ff9dfb
VM
140422013-05-01 Vladimir Makarov <vmakarov@redhat.com>
14043
14044 PR target/57091
14045 * lra-constraints.c (best_small_class_operands_num): Remove.
14046 (process_alt_operands): Remove small_class_operands_num. Take
14047 small classes operands into losers and only if the operand is not
14048 matched. Modify debugging output.
14049 (curr_insn_transform): Remove best_small_class_operands_num.
14050 Print insn name.
14051
36054fab
JG
140522013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14053
14054 * config/aarch64/aarch64-builtins.c
14055 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
14056 * config/aarch64/aarch64-simd-builtins.def
14057 (reduc_splus_): Add new modes.
14058 (reduc_uplus_): New.
14059 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
14060 (reduc_uplus_v4sf): Likewise.
14061 (reduc_splus_v4sf): Likewise.
14062 (aarch64_addv<mode>): Likewise.
14063 (reduc_uplus_<mode>): Likewise.
14064 (reduc_splus_<mode>): Likewise.
14065 (aarch64_addvv2di): Likewise.
14066 (reduc_uplus_v2di): Likewise.
14067 (reduc_splus_v2di): Likewise.
14068 (aarch64_addvv2si): Likewise.
14069 (reduc_uplus_v2si): Likewise.
14070 (reduc_splus_v2si): Likewise.
14071 (reduc_<sur>plus_<mode>): New.
14072 (reduc_<sur>plus_v2di): Likewise.
14073 (reduc_<sur>plus_v2si): Likewise.
14074 (reduc_<sur>plus_v4sf): Likewise.
14075 (aarch64_addpv4sf): Likewise.
14076 * config/aarch64/arm_neon.h
14077 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
14078 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
14079 add UNSPEC_SADDV, UNSPEC_UADDV.
14080 (SUADDV): New.
14081 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
14082
6dce23a8
JG
140832013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14084
14085 * config/aarch64/arm_neon.h
14086 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
14087
1598945b
JG
140882013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14089
14090 * config/aarch64/aarch64-builtins
14091 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
14092
998eaf97
JG
140932013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14094
14095 * config/aarch64/aarch64-simd-builtins.def
14096 (reduc_smax_): New.
14097 (reduc_smin_): Likewise.
14098 (reduc_umax_): Likewise.
14099 (reduc_umin_): Likewise.
14100 (reduc_smax_nan_): Likewise.
14101 (reduc_smin_nan_): Likewise.
14102 (fmax): Remove.
14103 (fmin): Likewise.
14104 (smax): Update for V2SF, V4SF and V2DF modes.
14105 (smin): Likewise.
14106 (smax_nan): New.
14107 (smin_nan): Likewise.
14108 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
14109 (<su><maxmin><mode>3): ...This, refactor.
14110 (s<maxmin><mode>3): New.
14111 (<maxmin_uns><mode>3): Likewise.
14112 (reduc_<maxmin_uns>_<mode>): Refactor.
14113 (reduc_<maxmin_uns>_v4sf): Likewise.
14114 (reduc_<maxmin_uns>_v2si): Likewise.
14115 (aarch64_<fmaxmin><mode>: Remove.
14116 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
14117 new builtin names.
14118 (vmin<q>_f<32,64>): Likewise.
14119 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
14120 (FMAXMIN): New.
14121 (su): Add mappings for smax, smin, umax, umin.
14122 (maxmin): New.
14123 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
14124 (FMAXMIN): Rename as...
14125 (FMAXMIN_UNS): ...This.
14126 (maxminv): Remove.
14127 (fmaxminv): Likewise.
14128 (fmaxmin): Likewise.
14129 (maxmin_uns): New.
14130 (maxmin_uns_op): Likewise.
14131
bd11644e
JG
141322013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14133
14134 * config/aarch64/arm_neon.h
14135 (vac<ge, gt><sd>_f<32, 64>): Rename to...
14136 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
14137 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
14138
75dd5ace
JG
141392013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14140
14141 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
14142 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
14143
7c19979f
JG
141442013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14145
14146 * config/aarch64/aarch64-simd.md
14147 (vcond<mode>_internal): Handle special cases for constant masks.
14148 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
14149 (vcondu<mode><mode>): Likewise.
14150 (vcond<v_cmp_result><mode>): New.
14151
bb60efd9
JG
141522013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14153
14154 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
14155 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
14156 * config/aarch64/aarch64-simd-builtins.def
14157 (cmeq): Update to BUILTIN_VALLDI.
14158 (cmgt): Likewise.
14159 (cmge): Likewise.
14160 (cmle): Likewise.
14161 (cmlt): Likewise.
14162 * config/aarch64/arm_neon.h
14163 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
14164 to builtins or C as appropriate.
14165
889b9412
JG
141662013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14167
14168 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
14169 (cmgeu): ...This.
14170 (cmhi): Rename to...
14171 (cmgtu): ...This.
14172 * config/aarch64/aarch64-simd.md
14173 (simd_mode): Add SF.
14174 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
14175 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
14176 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
14177 (cstore<mode>_neg): ...This.
14178 * config/aarch64/iterators.md
14179 (VALLF): new.
14180 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
14181 (COMPARISONS): New.
14182 (UCOMPARISONS): Likewise.
14183 (optab): Add missing comparisons.
14184 (n_optab): New.
14185 (cmp_1): Likewise.
14186 (cmp_2): Likewise.
14187 (CMP): Likewise.
14188 (cmp): Remove.
14189 (VCMP_S): Likewise.
14190 (VCMP_U): Likewise.
14191 (V_cmp_result): Add DF, SF modes.
14192 (v_cmp_result): Likewise.
14193 (v): Likewise.
14194 (vmtype): Likewise.
14195 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
14196
0a7dbb76
GY
141972013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
14198
14199 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
14200 define_insn to define_insn_and_split.
14201 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
14202 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
14203 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
14204 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
14205 (thumb2_negscc): Likewise.
14206
fb614ca6
GY
142072013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
14208
14209 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
14210
9e64a0bf
GY
142112013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
14212
14213 * config/arm/thumb2.md: Remove trailing whitespaces.
14214
d6b28156
RS
142152013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
14216
14217 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
14218 Use gen_int_mode rather than GEN_INT.
14219
f91674c3
L
142202013-04-30 H.J. Lu <hongjiu.lu@intel.com>
14221
b0dec607 14222 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
14223 debug_gimple_stmt.
14224
3551257c
RB
142252013-04-30 Richard Biener <rguenther@suse.de>
14226
14227 PR middle-end/57122
3c21604f 14228 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 14229
4c1aff1c
RB
142302013-04-30 Richard Biener <rguenther@suse.de>
14231
14232 PR middle-end/57107
14233 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
14234
54b8379a
AB
142352013-04-30 Andrey Belevantsev <abel@ispras.ru>
14236
14237 PR rtl-optimization/56957
14238 PR rtl-optimization/57105
54b8379a
AB
14239 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
14240 variable. Use just INSN_UID for determining whether an insn
14241 should be only disconnected from the insn stream.
14242 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
14243
abc27962
JJ
142442013-04-30 Jakub Jelinek <jakub@redhat.com>
14245
14246 PR tree-optimization/57104
14247 * tsan.c (instrument_expr): Don't instrument accesses to
14248 DECL_HARD_REGISTER VAR_DECLs.
14249
0fc822d0
RB
142502013-04-30 Richard Biener <rguenther@suse.de>
14251
14252 * function.h (loops_for_fn): New inline function.
14253 (set_loops_for_fn): Likewise.
14254 * cfgloop.h (place_new_loop): Add struct function parameter.
14255 (get_loop): Likewise.
14256 (get_loops): Likewise.
14257 (number_of_loops): Likewise.
14258 (fel_next): Adjust.
14259 (fel_init): Likewise.
14260 * cfg.c (get_loop_copy): Adjust.
14261 * cfgloop.c (flow_loops_dump): Likewise.
14262 (record_loop_exits): Likewise.
14263 (verify_loop_structure): Likewise.
14264 * cfgloopanal.c (mark_irreducible_loops): Likewise.
14265 (estimate_reg_pressure_cost): Likewise.
14266 (mark_loop_exit_edges): Likewise.
14267 * cfgloopmanip.c (place_new_loop): Likewise.
14268 (add_loop): Likewise.
14269 (duplicate_loop): Likewise.
14270 * graph.c (draw_cfg_nodes): Likewise.
14271 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
14272 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
14273 (extract_affine_chrec): Likewise.
14274 (build_scop_iteration_domain): Likewise.
14275 * graphite.c (graphite_initialize): Likewise.
14276 * ira-build.c (create_loop_tree_nodes): Likewise.
14277 (more_one_region_p): Likewise.
14278 (rebuild_regno_allocno_maps): Likewise.
14279 (mark_loops_for_removal): Likewise.
14280 (mark_all_loops_for_removal): Likewise.
14281 (remove_unnecessary_regions): Likewise.
14282 (ira_build): Likewise.
14283 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
14284 * loop-init.c (fix_loop_structure): Likewise.
14285 (gate_rtl_move_loop_invariants): Likewise.
14286 (gate_rtl_unswitch): Likewise.
14287 (gate_rtl_unroll_and_peel_loops): Likewise.
14288 (rtl_doloop): Likewise.
14289 * lto-streamer-in.c (input_cfg): Likewise.
14290 * lto-streamer-out.c (output_cfg): Likewise.
14291 * modulo-sched.c (sms_schedule): Likewise.
14292 * predict.c (tree_estimate_probability): Likewise.
14293 (tree_estimate_probability_driver): Likewise.
14294 (estimate_loops): Likewise.
14295 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
14296 (move_sese_region_to_fn): Likewise.
14297 (debug_loop_num): Likewise.
14298 * tree-chrec.c (chrec_evaluate): Likewise.
14299 (hide_evolution_in_other_loops_than_loop): Likewise.
14300 (chrec_component_in_loop_num): Likewise.
14301 (reset_evolution_in_loop): Likewise.
14302 (evolution_function_is_invariant_rec_p): Likewise.
14303 * tree-if-conv.c (main_tree_if_conversion): Likewise.
14304 * tree-inline.c (copy_loops): Likewise.
14305 (copy_cfg_body): Likewise.
14306 (tree_function_versioning): Likewise.
14307 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
14308 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
14309 Likewise.
14310 (add_to_evolution_1): Likewise.
14311 (scev_const_prop): Likewise.
14312 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
14313 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
14314 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
14315 (tree_ssa_lim_initialize): Likewise.
14316 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
14317 (verify_loop_closed_ssa): Likewise.
14318 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
14319 (tree_ssa_loop_im): Likewise.
14320 (tree_ssa_loop_unswitch): Likewise.
14321 (tree_vectorize): Likewise.
14322 (check_data_deps): Likewise.
14323 (tree_ssa_loop_ivcanon): Likewise.
14324 (tree_ssa_loop_bounds): Likewise.
14325 (tree_complete_unroll): Likewise.
14326 (tree_complete_unroll_inner): Likewise.
14327 (tree_parallelize_loops): Likewise.
14328 (tree_ssa_loop_prefetch): Likewise.
14329 (tree_ssa_loop_ivopts): Likewise.
14330 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
14331 * tree-vectorizer.c (vectorize_loops): Likewise.
14332
37953bd3
MF
143332013-04-29 Mike Frysinger <vapier@gentoo.org>
14334
14335 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
14336 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
14337 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
14338 with EABI_LINK_SPEC.
14339
f9ed28db
UB
143402013-04-29 Uros Bizjak <ubizjak@gmail.com>
14341
14342 PR target/44578
14343 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
14344 alternative.
14345
deca73f5
VM
143462013-04-29 Vladimir Makarov <vmakarov@redhat.com>
14347
14348 PR target/57097
37953bd3 14349 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
14350 using memory for pseudos. Print cost dump for alternatives.
14351 Modify cost values for conflicts with early clobbers.
14352 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
14353
fdca7d03
UB
143542013-04-29 Uros Bizjak <ubizjak@gmail.com>
14355
14356 PR target/57098
14357 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
14358
0b064172
IB
143592013-04-29 Ian Bolton <ian.bolton@arm.com>
14360
14361 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
14362 from/to S register.
14363 (movdi_aarch64): Support LDR/STR from/to D register.
14364
473cec55
IB
143652013-04-29 Ian Bolton <ian.bolton@arm.com>
14366
14367 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
14368 or higher by default.
14369
a6f30e66
RB
143702013-04-29 Richard Biener <rguenther@suse.de>
14371
14372 PR middle-end/57075
14373 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
14374 even if not adding abnormal edges for calls that can make
14375 abnormal gotos.
14376
0c2b2040
RB
143772013-04-29 Richard Biener <rguenther@suse.de>
14378
14379 PR middle-end/57103
14380 * tree-cfg.c (move_stmt_op): Fix condition under which to update
14381 TREE_BLOCK.
14382 (move_stmt_r): Remove redundant checking.
14383
f41f80f9
TJ
143842013-04-29 Teresa Johnson <tejohnson@google.com>
14385
14386 PR bootstrap/57077
14387 * basic-block.h (apply_scale): New function.
14388 (apply_probability): Use apply_scale.
14389 * gimple-streamer-in.c (input_bb): Ditto.
14390 * lto-streamer-in.c (input_cfg): Ditto.
14391 * lto-cgraph.c (merge_profile_summaries): Ditto.
14392 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 14393 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
14394 (copy_edges_for_bb): Ditto.
14395 (copy_cfg_body): Ditto.
14396
315bbd2e
TV
143972013-04-29 Tom de Vries <tom@codesourcery.com>
14398
14399 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
14400 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
14401 (tail_merge_optimize): Handle current_loops == NULL.
14402
ebbd90d8
JL
144032013-04-26 Jeff Law <law@redhat.com>
14404
14405 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
14406 (simplify_cond_using_ranges): Generalize code to simplify
14407 COND_EXPRs where one argument is a constant and the other
14408 is an SSA_NAME created by an integral type conversion.
14409
8b9b57eb
KT
144102013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14411
14412 * config/arm/arm.md (store_minmaxsi): Use only when
14413 optimize_insn_for_size_p.
14414
9498e5dc
CB
144152013-04-29 Christian Bruel <christian.bruel@st.com>
14416
14417 PR target/57108
14418 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
14419
6093bc06
RB
144202013-04-29 Richard Biener <rguenther@suse.de>
14421
14422 PR middle-end/57089
fdca7d03
UB
14423 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
14424 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
14425 (expand_omp_for_generic): Properly add loops.
14426 (expand_omp_for_static_nochunk): Likewise.
14427 (expand_omp_for_static_chunk): Likewise.
14428 (expand_omp_for): For the degenerate case fixup loops.
14429 (expand_omp_sections): Fix default bb placement in loops.
14430 (expand_omp_atomic_pipeline): Properly add loops.
14431
84aacbfd
KT
144322013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14433
14434 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
14435
8dee4479
TV
144362013-04-29 Tom de Vries <tom@codesourcery.com>
14437
14438 * tree-ssa-tail-merge.c: Update header comment.
14439
47934dc4
JG
144402013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14441
14442 * config/aarch64/arm_neon.h
14443 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
14444 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
14445 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
14446 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
14447 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
14448 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
14449 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
14450 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
14451
384be29f
JG
144522013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14453
14454 * config/aarch64/aarch64-simd.md
14455 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
14456 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
14457 fix_trunc, fixuns_trunc.
14458 (ftrunc<VDQF:mode>2): New.
14459 * config/aarch64/iterators.md (optab): Add fix, fixuns.
14460 (fix_trunc_optab): New.
14461
0386b123
JG
144622013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14463
14464 * config/aarch64/aarch64-builtins.c
14465 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
14466 iceilf, lround, iroundf.
14467
00fcb892
UB
144682013-04-29 Uros Bizjak <ubizjak@gmail.com>
14469
14470 PR target/54349
14471 * config/i386/i386.h (enum ix86_tune_indices)
14472 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
14473 New, split from X86_TUNE_INTER_UNIT_MOVES.
14474 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
14475 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
14476 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
14477 (TARGET_INTER_UNIT_MOVES): Remove.
14478 * config/i386/i386.c (initial_ix86_tune_features): Update.
14479 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
14480 (ix86_expand_convert_uns_didf_sse): Use
14481 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
14482 (ix86_expand_vector_init_one_nonzero): Ditto.
14483 (ix86_expand_vector_init_interleave): Ditto.
14484 (inline_secondary_memory_needed): Return true for moves from SSE class
14485 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
14486 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
14487 * config/i386/constraints.md (Yi, Ym): Depend on
14488 TARGET_INTER_UNIT_MOVES_TO_VEC.
14489 (Yj, Yn): New constraints.
14490 * config/i386/i386.md (*movdi_internal): Change constraints of
14491 operand 1 from Yi to Yj and from Ym to Yn.
14492 (*movsi_internal): Ditto.
14493 (*movdf_internal): Ditto.
14494 (*movsf_internal): Ditto.
14495 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
14496 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
14497 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
14498 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
14499 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
14500 * config/i386/sse.md (movdi_to_sse): Ditto.
14501 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
14502 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
14503 TARGET_INTER_UNIT_MOVES.
14504 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
14505 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
14506 instead of TARGET_INTER_UNIT_MOVES.
14507 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
14508 operand 1 from Yi to Yj and from Ym to Yn.
14509
4c871069
JG
145102013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14511
14512 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
14513 (float_truncate_hi_): Likewise.
14514 (float_extend_lo_): Likewise.
14515 (float_truncate_lo_): Likewise.
14516 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
14517 (aarch64_float_extend_lo_v2df): Likewise.
14518 (vec_unpacks_hi_v4sf): Likewise.
14519 (aarch64_float_truncate_lo_v2sf): Likewise.
14520 (aarch64_float_truncate_hi_v4sf): Likewise.
14521 (vec_pack_trunc_v2df): Likewise.
14522 (vec_pack_trunc_df): Likewise.
14523
1709ff9b
JG
145242013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14525
14526 * config/aarch64/aarch64-builtins.c
14527 (aarch64_fold_builtin): Fold float conversions.
14528 * config/aarch64/aarch64-simd-builtins.def
14529 (floatv2si, floatv4si, floatv2di): New.
14530 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
14531 * config/aarch64/aarch64-simd.md
14532 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
14533 * config/aarch64/iterators.md (FLOATUORS): New.
14534 (optab): Add float, floatuns.
14535 (su_optab): Likewise.
14536
ce966824
JG
145372013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14538
14539 * config/aarch64/aarch64-builtins.c
14540 (aarch64_builtin_vectorized_function): Use new names for
14541 fcvt builtins.
14542 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
14543 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
14544 (fcvtzu): Split as...
14545 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
14546 (fcvtas): Split as...
14547 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
14548 (fcvtau): Split as...
14549 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
14550 (fcvtps): Split as...
14551 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
14552 (fcvtpu): Split as...
14553 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
14554 (fcvtms): Split as...
14555 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
14556 (fcvtmu): Split as...
14557 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
14558 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
14559 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
14560 (lfrintnusf, lfrintnudf): Likewise.
14561 * config/aarch64/aarch64-simd.md
14562 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
14563 define_insn.
14564 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
14565 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
14566 (fcvt_pattern): Likewise.
14567
b9de24fe
JG
145682013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14569
14570 * config/aarch64/aarch64-simd.md
14571 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
14572 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
14573
77a205be
JG
145742013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14575
14576 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
14577 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
14578 (vrnd<a,m,n,p>_f32): Implement using builtins.
14579 (vrnd<i,x><q>_f<32, 64>): New.
14580
0659ce6f
JG
145812013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14582
14583 * config/aarch64/aarch64-builtins.c
14584 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
14585 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
14586 (frintz): Rename to...
14587 (btrunc): ...this.
14588 (frintp): Rename to...
14589 (ceil): ...this.
14590 (frintm): Rename to...
14591 (floor): ...this.
14592 (frinti): Rename to...
14593 (nearbyint): ...this.
14594 (frintx): Rename to...
14595 (rint): ...this.
14596 (frinta): Rename to...
14597 (round): ...this.
14598 * config/aarch64/aarch64-simd.md
14599 (aarch64_frint<frint_suffix><mode>): Delete.
14600 (<frint_pattern><mode>2): Convert to insn.
14601 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
14602 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
14603 (frint_pattern): Likewise.
14604 (frint_suffix): Likewise.
14605
ea78906a
RB
146062013-04-29 Richard Biener <rguenther@suse.de>
14607
14608 PR tree-optimization/57081
14609 * loop-init.c: Include tree-flow.h.
14610 (loop_optimizer_finalize): Free number of iteration estimates.
14611 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
14612
baee1763
JJ
146132013-04-29 Jakub Jelinek <jakub@redhat.com>
14614
94dc5332
JJ
14615 PR tree-optimization/57083
14616 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
14617 non-singleton shift count range, zero extend low_bound for uns case.
14618
baee1763
JJ
14619 * config/i386/predicates.md (general_vector_operand): New predicate.
14620 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
14621 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
14622 if they aren't nonimmediate operands. If their original values
14623 satisfy const_vector_equal_evenodd_p, don't shift them.
14624 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
14625 predicates. For the SSE4.1 case force operands[{1,2}] into registers
14626 if not nonimmediate_operand.
14627 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
14628 instead of register_operand.
14629 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
14630
a9073727 146312013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
14632
14633 * stor-layout.c (finalize_size_functions): Allocate a structure and
14634 reset cfun before dumping the functions.
14635
ba8011e6
JJ
146362013-04-27 Jakub Jelinek <jakub@redhat.com>
14637
d6fde69e
JJ
14638 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
14639
ba8011e6
JJ
14640 PR target/56866
14641 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
14642 use xop_pmacsdqh if uns_p.
14643 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
14644 the immediate rotate count.
14645
2c62cbaa
VM
146462013-04-26 Vladimir Makarov <vmakarov@redhat.com>
14647
14648 * rtl.h (struct rtx_def): Add comment for field jump.
14649 (LRA_SUBREG_P): New macro.
14650 * recog.c (register_operand): Check LRA_SUBREG_P.
14651 * lra.c (lra): Add note at the end of RTL code. Align non-empty
14652 stack frame.
14653 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
14654 (lra_final_code_change): Skip subreg change for operators.
14655 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
14656 if there are no operand changes.
14657 * lra-constraints.c (curr_insn_set): New.
14658 (match_reload): Set LRA_SUBREG_P.
14659 (emit_spill_move): Ditto.
14660 (check_and_process_move): Use curr_insn_set. Process only single
14661 set insns. Don't initialize sec_mem_p and change_p.
14662 (simplify_operand_subreg): Use LRA_SUBREG_P.
14663 (reg_in_class_p): New function.
14664 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
14665 of #ifdef. Add code to remove cycling.
14666 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
14667 non-null disp. Reload inner instead of disp when base and index
14668 are null. Try to put lo_sum into register.
14669 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
14670 (check_and_process_move): Move code for move cost check to
14671 simple_move_p. Remove equiv_substitution.
14672 (simple_move_p): New function.
14673 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
14674 curr_insn_set. Call check_and_process_move only for single set
14675 insns. Use the new function. Move call of check_and_process_move
14676 after operand equiv substitution and address process.
14677
e7d764f3
JJ
146782013-04-26 Jakub Jelinek <jakub@redhat.com>
14679
14680 PR go/57045
14681 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
14682 with nonlocal goto receivers or returns twice calls, ignore
14683 unininitialized values from abnormal edges to nl goto receiver
14684 or returns twice call.
14685
41e10689
JJ
146862013-04-26 Jakub Jelinek <jakub@redhat.com>
14687
14688 PR tree-optimization/57051
14689 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
14690 and VEC_RSHIFT_EXPR if shift count is a multiple of element
14691 bitsize.
14692
d7ed20db
RB
146932013-04-26 Richard Biener <rguenther@suse.de>
14694
14695 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
14696 (expand_omp_taskreg): Likewise. Mark loops for fixup.
14697 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
14698 (fixup_loop_arrays_after_move): New function.
14699 (move_sese_region_to_fn): Properly outline the loop tree parts
14700 of the SESE region.
14701
df93505e
UB
147022013-04-26 Uros Bizjak <ubizjak@gmail.com>
14703
14704 * config/i386/i386.md (type, unit): Fix long lines.
14705
dd366ec3
RB
147062013-04-26 Richard Biener <rguenther@suse.de>
14707
14708 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
14709 (lto-streamer-out.o): Likewise.
14710 * cfgloop.c (init_loops_structure): Export, add struct function
14711 argument and adjust.
14712 (flow_loops_find): Adjust.
14713 * cfgloop.h (enum loop_estimation): Add EST_LAST.
14714 (init_loops_structure): Declare.
14715 * lto-streamer-in.c: Include cfgloop.h.
14716 (input_cfg): Input the loop tree.
14717 * lto-streamer-out.c: Include cfgloop.h.
14718 (output_cfg): Output the loop tree.
14719 (output_struct_function_base): Do not drop PROP_loops.
14720
a9e0d843
RB
147212013-03-26 Richard Biener <rguenther@suse.de>
14722
14723 * tree-cfg.c (execute_build_cfg): Build the loop tree.
14724 (pass_build_cfg): Provide PROP_loops.
14725 (move_sese_region_to_fn): Remove loops that are outlined into fn
14726 for now.
14727 * tree-inline.c: Include cfgloop.h.
14728 (initialize_cfun): Do not drop PROP_loops.
14729 (copy_loops): New function.
14730 (copy_cfg_body): Copy loop structure.
14731 (tree_function_versioning): Initialize destination loop tree.
14732 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
14733 (pass_parallelize_loops): Do IL verification.
14734 * loop-init.c (loop_optimizer_init): Fixup loops if required.
14735 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
14736 the CFG make sure we fixup loops as well.
14737 * tree-ssa-tail-merge.c: Include cfgloop.h.
14738 (replace_block_by): When merging loop latches mark loops for fixup.
14739 * lto-streamer-out.c (output_struct_function_base): Drop
14740 PROP_loops for now.
14741 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
14742 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
14743 * ipa-split.c: Include cfgloop.h.
14744 (split_function): Add the new return block to the loop tree root.
14745 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
14746 whether we have removed the forwarder block.
14747 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
14748 * cfgloop.h (place_new_loop): Declare.
14749 * cfgloopmanip.c (place_new_loop): Export.
14750 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
14751 (tree-switch-conversion.o): Likewise.
14752 (tree-complex.o): Likewise.
14753 (tree-inline.o): Likewise.
14754 (tree-ssa-tailmerge.o): Likewise.
14755 (ipa-split.o): Likewise.
14756 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
14757 (tree-ssa-copy.o): Likewise.
14758 * tree-switch-conversion.c: Include cfgloop.h
14759 (process_switch): If we emit a bit-test cascade, schedule loops
14760 for fixup.
14761 * tree-complex.c: Include cfgloop.h.
14762 (expand_complex_div_wide): Properly add new basic-blocks to loops.
14763 * asan.c: Include cfgloop.h.
14764 (create_cond_insert_point): Properly add new basic-blocks to
14765 loops, schedule loop fixup.
14766 * cfgloop.c (verify_loop_structure): Check that looks are not
14767 marked for fixup.
14768 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
14769 to loops.
14770 (expand_omp_for_generic): Likewise.
14771 (expand_omp_sections): Likewise.
14772 (expand_omp_atomic_pipeline): Schedule loops for fixup.
14773 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
14774 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
14775 is initialized, not when loops are present.
14776 * tree-parloops.c (parallelize_loops): Remove checking here.
14777 * passes.c (init_optimization_passes): Schedule a copy-propagation
14778 pass before complete unrolling of inner loops.
14779
e78e8a0b
JJ
147802013-04-26 Jakub Jelinek <jakub@redhat.com>
14781
a2e836b2
JJ
14782 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
14783 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
14784 (colorize_init): Add argument to _WIN32 version.
14785 * toplev.c: Include diagnostic-color.h.
14786 (process_options): Default to -fdiagnostics-color=auto if
14787 GCC_COLORS env var is in the environment.
14788 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
14789 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
14790 env var is in the environment, the default is auto rather than never.
a2e836b2 14791
e78e8a0b
JJ
14792 * diagnostic.h (file_name_as_prefix): Add context argument.
14793 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
14794 the string as locus.
14795 * langhooks.c (lhd_print_error_function): Adjust caller.
14796
013e5ef9
LC
147972013-04-25 Lawrence Crowl <crowl@google.com>
14798
14799 * var-tracking.c (shared_hash_def::htab):
14800 Change type to hash_table. Update dependent calls and types.
14801
4a8fb1a1
LC
148022013-04-25 Lawrence Crowl <crowl@google.com>
14803
14804 * Makefile.in: Update as needed below.
14805
14806 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
14807 Move declaration to after the type's method definitons.
14808
14809 * attribs.c (htab_t scoped_attributes::attribute_hash):
14810 Change type to hash_table. Update dependent calls and types.
14811
14812 * bitmap.c (htab_t bitmap_desc_hash):
14813 Change type to hash_table. Update dependent calls and types.
14814
14815 * cselib.c (htab_t cselib_hash_table):
14816 Change type to hash_table. Update dependent calls and types.
14817
14818 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
14819 (hash_string_slot_node): Move implementation into lto-streamer.h
14820 struct string_slot_hasher.
14821 (eq_string_slot_node): Likewise.
14822
14823 * data-streamer-out.c: Update output_block::string_hash_table
14824 dependent calls and types.
14825
14826 * dwarf2cfi.c (htab_t trace_index):
14827 Change type to hash_table. Update dependent calls and types.
14828
14829 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
14830 Change type to hash_table. Update dependent calls and types.
14831 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
14832 (htab_t optimize_external_refs::map): Likewise.
14833 (htab_t output_comp_unit::extern_map): Likewise.
14834 (htab_t output_comdat_type_unit::extern_map): Likewise.
14835 (htab_t output_macinfo::macinfo_htab): Likewise.
14836 (htab_t optimize_location_lists::htab): Likewise.
14837 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
14838
14839 * except.c (htab_t ehspec_hash_type):
14840 Change type to hash_table. Update dependent calls and types.
14841 (assign_filter_values::ttypes): Likewise.
14842 (assign_filter_values::ehspec): Likewise.
14843 (sjlj_assign_call_site_values::ar_hash): Likewise.
14844 (convert_to_eh_region_ranges::ar_hash): Likewise.
14845
14846 * gcse.c (htab_t pre_ldst_table):
14847 Change type to hash_table. Update dependent calls and types.
14848
14849 * ggc-common.c (htab_t saving_htab):
14850 Change type to hash_table. Update dependent calls and types.
14851 (htab_t loc_hash): Likewise.
14852 (htab_t ptr_hash): Likewise.
14853 (call_count): Rename ggc_call_count.
14854 (call_alloc): Rename ggc_call_alloc.
14855 (loc_descriptor): Rename make_loc_descriptor.
14856 (add_statistics): Rename ggc_add_statistics.
14857
14858 * ggc-common.c (saving_htab):
14859 Change type to hash_table. Update dependent calls and types.
14860
14861 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
14862 (push_gimplify_context): Likewise.
14863 (pop_gimplify_context): Likewise.
14864 (struct gimple_temp_hash_elt): Added.
14865 (struct gimplify_hasher): Likewise.
14866 (struct gimplify_ctx.temp_htab):
14867 Change type to hash_table. Update dependent calls and types.
14868
14869 * gimple-fold.c: Include gimplify-ctx.h.
14870
14871 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
14872 Change type to hash_table. Update dependent calls and types.
14873 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
14874 avoid potential global name collision.
14875
14876 * gimplify.c: Include gimplify-ctx.h.
14877 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
14878 (htab_t gimplify_ctx::temp_htab):
14879 Update dependent calls and types for new type hash_table.
14880 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
14881 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
14882
14883 * gimplify-ctx.h: New.
14884 (struct gimple_temp_hash_elt): Move from gimplify.c.
14885 (class gimplify_hasher): New.
14886 (struct gimplify_ctx): Move from gimple.h.
14887 (htab_t gimplify_ctx::temp_htab):
14888 Change type to hash_table. Update dependent calls and types.
14889
14890 * graphite-clast-to-gimple.c: Include graphite-htab.h.
14891 (htab_t ivs_params::newivs_index):
14892 Change type to hash_table. Update dependent calls and types.
14893 (htab_t ivs_params::params_index): Likewise.
14894 (htab_t print_generated_program::params_index): Likewise.
14895 (htab_t gloog::newivs_index): Likewise.
14896 (htab_t gloog::params_index): Likewise.
14897
14898 * graphite.c: Include graphite-htab.h.
14899 4htab_t graphite_transform_loops::bb_pbb_mapping):
14900 Change type to hash_table. Update dependent calls and types.
14901
14902 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
14903 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
14904 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
14905
14906 * graphite-dependences.c: Include graphite-htab.h.
14907 (loop_is_parallel_p): Change hash table type of parameter.
14908
14909 * graphite-htab.h: New.
14910 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
14911 (extern find_pbb_via_hash): Move from graphite-poly.h.
14912 (extern loop_is_parallel_p): Move from graphite-poly.h.
14913 (extern get_loop_body_pbbs): Move from graphite-poly.h.
14914
14915 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
14916 (extern loop_is_parallel_p): Move to graphite-htab.h.
14917 (extern get_loop_body_pbbs): Move to graphite-htab.h.
14918
14919 * haifa-sched.c (htab_t delay_htab):
14920 Change type to hash_table. Update dependent calls and types.
14921 (htab_t delay_htab_i2): Likewise.
14922
14923 * ira-color.c (htab_t allocno_hard_regs_htab):
14924 Change type to hash_table. Update dependent calls and types.
14925
14926 * ira-costs.c (htab_t cost_classes_htab):
14927 Change type to hash_table. Update dependent calls and types.
14928
14929 * loop-invariant.c (htab_t merge_identical_invariants::eq):
14930 Change type to hash_table. Update dependent calls and types.
14931
14932 * loop-iv.c (htab_t bivs):
14933 Change type to hash_table. Update dependent calls and types.
14934
14935 * loop-unroll.c (htab_t opt_info::insns_to_split):
14936 Change type to hash_table. Update dependent calls and types.
14937 (htab_t opt_info::insns_with_var_to_expand): Likewise.
14938
14939 * lto-streamer.h (struct string_slot): Move from data-streamer.h
14940 (struct string_slot_hasher): New.
14941 (htab_t output_block::string_hash_table):
14942 Change type to hash_table. Update dependent calls and types.
14943
14944 * lto-streamer-in.c (freeing_string_slot_hasher): New.
14945 (htab_t file_name_hash_table):
14946 Change type to hash_table. Update dependent calls and types.
14947
14948 * lto-streamer-out.c: Update output_block::string_hash_table dependent
14949 calls and types.
14950
14951 * lto-streamer.c (htab_t tree_htab):
14952 Change type to hash_table. Update dependent calls and types.
14953
14954 * omp-low.c: Include gimplify-ctx.h.
14955
14956 * passes.c (htab_t name_to_pass_map):
14957 Change type to hash_table. Update dependent calls and types.
14958 (pass_traverse): Rename to passes_pass_traverse.
14959
14960 * plugin.c (htab_t event_tab):
14961 Change type to hash_table. Update dependent calls and types.
14962
14963 * postreload-gcse.c (htab_t expr_table):
14964 Change type to hash_table. Update dependent calls and types.
14965 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
14966
14967 * sese.c (debug_rename_map_1): Make extern.
14968 (htab_t copy_bb_and_scalar_dependences::rename_map):
14969 Change type to hash_table. Update dependent calls and types.
14970
14971 * sese.h (extern debug_rename_map): Move to .c file.
14972
14973 * store-motion.c (htab_t store_motion_mems_table):
14974 Change type to hash_table. Update dependent calls and types.
14975
14976 * trans-mem.c (htab_t tm_new_mem_hash):
14977 Change type to hash_table. Update dependent calls and types.
14978
14979 * tree-browser.c (htab_t TB_up_ht):
14980 Change type to hash_table. Update dependent calls and types.
14981
14982 * tree-cfg.c (htab_t discriminator_per_locus):
14983 Change type to hash_table. Update dependent calls and types.
14984
14985 * tree-complex.c: Include tree-hasher.h
14986 (htab_t complex_variable_components):
14987 Change type to hash_table. Update dependent calls and types.
14988
14989 * tree-eh.c (htab_t finally_tree):
14990 Change type to hash_table. Update dependent calls and types.
14991
14992 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
14993 struct int_tree_hasher.
14994 (extern int_tree_map_eq): Likewise.
14995 (uid_decl_map_hash): Removed.
14996 (extern decl_tree_map_eq): Likewise.
14997
14998 * tree-hasher.h: New.
14999 (struct int_tree_hasher): New.
15000 (typedef int_tree_htab_type): New.
15001
15002 * tree-inline.c: Include gimplify-ctx.h.
15003
15004 * tree-mudflap.c: Include gimplify-ctx.h.
15005
15006 * tree-parloops.c: Include tree-hasher.h.
15007 (htab_t eliminate_local_variables_stmt::decl_address):
15008 Change type to hash_table. Update dependent calls and types.
15009 (htab_t separate_decls_in_region::decl_copies): Likewise.
15010
15011 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
15012 Change type to hash_table. Update dependent calls and types.
15013
15014 * tree-sra.c (candidates):
15015 Change type to hash_table. Update dependent calls and types.
15016
15017 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
15018 in tree-flow.h.
15019 (int_tree_map_hash): Likewise.
15020
15021 * tree-ssa-dom.c (htab_t avail_exprs):
15022 Change type to hash_table. Update dependent calls and types.
15023
15024 * tree-ssa-live.c (var_map_base_init::tree_to_index):
15025 Change type to hash_table. Update dependent calls and types.
15026
15027 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
15028 Change type to hash_table. Update dependent calls and types.
15029
15030 * tree-ssa-phiopt.c (seen_ssa_names):
15031 Change type to hash_table. Update dependent calls and types.
15032
15033 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
15034 Change type to hash_table. Update dependent calls and types.
15035
15036 * tree-ssa-uncprop.c (equiv):
15037 Change type to hash_table. Update dependent calls and types.
15038
c5a44004
JJ
150392013-04-25 Jakub Jelinek <jakub@redhat.com>
15040
15041 PR rtl-optimization/57003
15042 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
15043 call note_stores with kill_clobbered_value callback again after
15044 killing regs_invalidated_by_call.
15045
09962a4a
JG
150462013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
15047
15048 * config/aarch64/aarch64-simd.md
15049 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
15050 (aarch64_simd_bsl<mode>): Likewise.
15051 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
15052
ea28bb0b
MP
150532013-04-25 Marek Polacek <polacek@redhat.com>
15054
15055 PR tree-optimization/57066
3c21604f 15056 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 15057
96659611
JG
150582013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
15059
15060 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
15061
9697e620
JG
150622013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
15063
15064 * config/aarch64/aarch64-builtins.c
15065 (aarch64_fold_builtin): New.
15066 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
15067 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
15068 * config/aarch64/aarch64-simd-builtins.def (abs): New.
15069 * config/aarch64/arm_neon.h
15070 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
15071
0ac198d3
JG
150722013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
15073 Tejas Belagod <tejas.belagod@arm.com>
15074
15075 * config/aarch64/aarch64-builtins.c
15076 (aarch64_gimple_fold_builtin): New.
15077 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
15078 * config/aarch64/aarch64-simd-builtins.def (addv): New.
15079 * config/aarch64/aarch64-simd.md (addpv4sf): New.
15080 (addvv4sf): Update.
15081 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
15082
58cff58c
N
150832013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
15084
df93505e 15085 * config/aarch64/aarch64.md
58cff58c
N
15086 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
15087
7e0228bf
N
150882013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
15089
15090 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
15091 (*ngcsi_uxtw): New pattern.
15092
5819f96f 150932013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 15094 Julian Brown <julian@codesourcery.com>
5819f96f
KT
15095
15096 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
15097 (TB_DREG): Add T_V4HF.
15098 (v4hf_UP): New macro.
15099 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 15100 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
15101 Handle initialisation of V4HF. Adjust initialisation of reinterpret
15102 built-ins.
df93505e 15103 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
15104 (arm_vector_mode_supported_p): Handle V4HF.
15105 (arm_mangle_map): Handle V4HFmode.
15106 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
15107 * config/arm/arm_neon_builtins.def: Add entries for
15108 vcvtv4hfv4sf, vcvtv4sfv4hf.
15109 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
15110 (neon_vcvtv4hfv4sf): Likewise.
15111 * config/arm/neon-gen.ml: Handle half-precision floating point
15112 features.
15113 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
15114 * config/arm/arm_neon.h: Regenerate.
15115 * config/arm/neon.ml (type elts): Add F16.
15116 (type vectype): Add T_float16x4, T_floatHF.
15117 (type vecmode): Add V4HF.
15118 (type features): Add Requires_FP_bit feature.
15119 (elt_width): Handle F16.
15120 (elt_class): Likewise.
15121 (elt_of_class_width): Likewise.
15122 (mode_of_elt): Refactor.
15123 (type_for_elt): Handle F16, fix error messages.
15124 (vectype_size): Handle T_float16x4.
15125 (vcvt_sh): New function.
15126 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
15127 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
15128 (string_of_mode): Handle V4HF.
15129 * doc/arm-neon-intrinsics.texi: Regenerate.
15130
1ef395e4
JG
151312013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
15132
15133 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
15134 format specifier in 'X' case.
15135
41c34e94
AM
151362013-04-25 Alan Modra <amodra@gmail.com>
15137
15138 PR target/57052
15139 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
15140 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
15141 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
15142 Repeat for many other rotate/shift and mask patterns using subregs.
15143 Name lshiftrt insns.
15144 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
15145 on WORDS_BIG_ENDIAN.
15146
b9a7eb5d
AM
151472013-04-25 Alan Modra <amodra@gmail.com>
15148
15149 * config.gcc: Support little-endian powerpc-linux targets.
15150 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
15151 (LINK_OS_LINUX_SPEC): Define.
15152 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
15153 Preserve MASK_LITTLE_ENDIAN.
15154 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
15155 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
15156 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
15157 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
15158 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
15159 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
15160 Correct fp word order for little-endian. Don't shift toc entries
15161 smaller than a word for little-endian.
15162 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
15163 (bswapdi2 splits): Correct low-part subreg for little-endian.
15164 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
15165 low/high where such is correct only for be.
15166 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
15167 little-endian for -mcall-aixdesc.
15168
87f73374
AM
151692013-04-25 Alan Modra <amodra@gmail.com>
15170
15171 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
15172 replace_equiv_address_nv.
15173
cabf91cd
AM
151742013-04-25 Alan Modra <amodra@gmail.com>
15175
15176 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
15177
0ae24cc8
VM
151782013-04-24 Vladimir Makarov <vmakarov@redhat.com>
15179
15180 Revert:
15181 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
15182 * rtl.h (struct rtx_def): ...
cabf91cd 15183
77bce07c
VM
151842013-04-24 Vladimir Makarov <vmakarov@redhat.com>
15185
15186 PR rtl-optimizations/57046
15187 * lra-constraints (split_reg): Set up lra_risky_transformations_p
15188 for multi-reg splits.
15189
0db63e7f
L
151902013-04-24 H.J. Lu <hongjiu.lu@intel.com>
15191
15192 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
15193
3362b6b6
SA
151942013-04-24 Sterling Augustine <saugustine@google.com>
15195
15196 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
15197 (comp_dir_string, debug_str_dwo_section): New.
15198 (DEBUG_STR_DWO_SECTION): Rename to ...
15199 (DEBUG_DWO_STR_SECTION): ... this.
15200 (DEBUG_NORM_STR_SECTION): Delete.
15201 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
15202 (DEBUG_STR_DWO_SECTION_FLAGS): New.
15203 (find_AT_string): Move most logic to ...
15204 (find_AT_string_in_table): ... here. New.
15205 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
15206 add_skeleton_AT_string. Delete logic.
15207 (output_skeleton_debug_sections): Remove call to
15208 add_top_level_skeleton_die_attrs.
15209 (add_comp_dir_attribute): Move logic to comp_dir_string.
15210 (dwarf2out_init): Initialize debug_str_dwo_section.
15211 (output_indirect_string): Call find_string_form.
15212 (output_indirect_strings): Rewrite.
15213 (prune_unused_types): Empty skeleton_debug_str_hash.
15214 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
15215 (dwarf2out_finish): Call output_indirect_strings.
15216
e93e18e9
PC
152172013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
15218
15219 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
15220
f6ce35ac
VM
152212013-04-24 Vladimir Makarov <vmakarov@redhat.com>
15222
cabf91cd 15223 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
15224 (LRA_SUBREG_P): New macro.
15225 * recog.c (register_operand): Check LRA_SUBREG_P.
15226 * lra.c (lra): Add note at the end of RTL code. Align non-empty
15227 stack frame.
15228 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
15229 (lra_final_code_change): Skip subreg change for operators.
15230 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
15231 if there are no operand changes.
15232 * lra-constraints.c (curr_insn_set): New.
15233 (match_reload): Set LRA_SUBREG_P.
15234 (emit_spill_move): Ditto.
15235 (check_and_process_move): Use curr_insn_set. Process only single
15236 set insns. Don't initialize sec_mem_p and change_p.
15237 (simplify_operand_subreg): Use LRA_SUBREG_P.
15238 (reg_in_class_p): New function.
15239 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
15240 of #ifdef. Add code to remove cycling.
15241 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
15242 non-null disp. Reload inner instead of disp when base and index
15243 are null. Try to put lo_sum into register.
15244 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 15245 (check_and_process_move): Move code for move cost check to
f6ce35ac 15246 simple_move_p. Remove equiv_substitution.
cabf91cd 15247 (simple_move_p): New function.
f6ce35ac
VM
15248 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
15249 curr_insn_set. Call check_and_process_move only for single set
15250 insns. Use the new function. Move call of check_and_process_move
15251 after operand equiv substitution and address process.
15252
38047d90
JG
152532013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
15254
15255 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
15256 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
15257 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
15258
13f39b2e
PC
152592013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
15260
15261 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
15262
97c116dc
MP
152632013-04-24 Marek Polacek <polacek@redhat.com>
15264
15265 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
15266 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
15267 (select_loops_exit_conditions): Likewise.
15268 (number_of_iterations_for_all_loops): Likewise.
15269 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
15270 (scev_analysis): Likewise.
15271
83082391 152722013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 15273 Chao-ying Fu <fu@mips.com>
83082391 15274
cabf91cd
AM
15275 * config/mips/micromips.md (jraddiusp): New pattern.
15276 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
15277 instruction if possible.
83082391 15278
19e34aa2
AM
152792013-04-24 Alan Modra <amodra@gmail.com>
15280
15281 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
15282
fdb6603c
JB
152832013-04-24 Julian Brown <julian@codesourcery.com>
15284 Chung-Lin Tang <cltang@codesourcery.com>
15285
15286 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
15287 dependency behavior in enumeration type DIE generation. Add TODO note
15288 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 15289
bf190e8d
LC
152902013-04-23 Lawrence Crowl <crowl@google.com>
15291
15292 * Makefile.in: Update as needed below.
15293
15294 * hash-table.h (class hash_table):
15295 Correct many methods with parameter types compare_type to the correct
15296 value_type. (Correct code was unlikely to notice the change.)
15297 (hash_table::elements_with_deleted) New.
15298 (class hashtable::iterator): New.
15299 (hashtable::begin()): New.
15300 (hashtable::end()): New.
15301 (FOR_EACH_HASH_TABLE_ELEMENT): New.
15302
15303 * statistics.c (statistics_hashes):
15304 Change type to hash_table. Update dependent calls and types.
15305
15306 * tree-into-ssa.c (var_infos):
15307 Change type to hash_table. Update dependent calls and types.
15308
15309 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
15310 Change type to hash_table. Update dependent calls and types.
15311
15312 * tree-ssa-loop-im.c (struct mem_ref.refs):
15313 Change type to hash_table. Update dependent calls and types.
15314
15315 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
15316 Change type to hash_table. Update dependent calls and types.
15317
15318 * tree-ssa-sccvn.c (vn_tables_s::nary):
15319 Change type to hash_table. Update dependent calls and types.
15320 (vn_tables_s::phis): Likewise.
15321 (vn_tables_s::references): Likewise.
15322
15323 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
15324 (vn_reference_eq): Update parameter and return types.
15325
15326 * tree-ssa-structalias.c (pointer_equiv_class_table):
15327 Change type to hash_table. Update dependent calls and types.
15328 (location_equiv_class_table): Likewise.
15329
15330 * tree-vect-data-refs.c: Consequential changes for making
15331 peeling a hash_table.
15332
15333 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
15334 (destroy_loop_vec_info): Dependent hash_table update.
15335
15336 * tree-vectorizer.h (peeling_htab):
15337 Change type to hash_table. Update dependent calls and types.
15338
d70a81dd
SC
153392013-04-23 Shiva Chen <shiva0217@gmail.com>
15340
cabf91cd
AM
15341 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
15342 to check the register content is equal or not.
15343 * lra-constraints.c (match_reload): Use lra_assign_reg_val
15344 to assign register content record.
15345 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 15346 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
15347 * lra-int.h (struct lra_reg): Add offset member.
15348 (lra_reg_val_equal_p): New static inline function.
15349 (lra_update_reg_val_offset): New static inline function.
15350 (lra_assign_reg_val): New static inline function.
15351 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
15352 to assign register content record.
15353 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 15354
b894a1f3
CM
153552013-04-23 Catherine Moore <clm@codesourcery.com>
15356
15357 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
15358 operands. Record compression.
15359
ecd14de9
XDL
153602013-04-23 Xinliang David Li <davidxl@google.com>
15361
15362 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
15363
92e776e9
RB
153642013-04-23 Richard Biener <rguenther@suse.de>
15365
15366 PR middle-end/57036
15367 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
15368 parameter, only add abnormal goto edges from the copied body
15369 if the call could perform abnormal gotos.
15370 (copy_cfg_body): Adjust.
15371
a15ee567
SN
153722013-04-23 Sofiane Naci <sofiane.naci@arm.com>
15373
15374 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
15375
08c52234
AS
153762013-04-23 Andreas Schwab <schwab@linux-m68k.org>
15377
15378 * coretypes.h (gimple_stmt_iterator): Add struct to make
15379 compatible with C.
15380
999c1171
RB
153812013-04-23 Richard Biener <rguenther@suse.de>
15382
15383 PR tree-optimization/57026
15384 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
15385 from SSA names occuring in abnormal PHI nodes.
15386
53669259
AK
153872013-04-22 Andi Kleen <ak@linux.intel.com>
15388
15389 * lto/lto.c (print_lto_report_1): Fix LTO report names.
15390
1a0ad150
AK
153912013-04-22 Andi Kleen <ak@linux.intel.com>
15392
15393 * lto/lto.c (print_lto_report_1): Declare early.
15394 (read_cgraph_and_symbols): Call print_lto_report_1 early.
15395
057f8f20
AK
153962013-04-22 Andi Kleen <ak@linux.intel.com>
15397
15398 * common.opt (-flto-report-wpa): Add.
15399 * doc/invoke.texi (-flto-report-wpa): Add.
15400 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
15401 (lto_main): dito.
15402
473b1e05
XDL
154032013-04-22 Xinliang David Li <davidxl@google.com>
15404
15405 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
15406 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
15407 * Makefile.in: New dependency
15408
cabf91cd 15409 David Daney <ddaney.cavm@gmail.com>
b1485a33 15410
cabf91cd
AM
15411 * configure.ac (gcc_cv_as_micromips_support): Use the
15412 --fatal-warnings option.
15413 * configure: Regenerate.
b1485a33 15414
829d0168
MP
154152013-04-22 Marek Polacek <polacek@redhat.com>
15416
15417 PR sanitizer/56990
15418 * tsan.c (instrument_expr): Don't instrument expression
15419 in case its size is zero.
15420
6d9b7208
UB
154212013-04-22 Uros Bizjak <ubizjak@gmail.com>
15422
15423 PR target/57032
15424 Revert:
15425 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
15426
15427 * config/alpha/alpha.c (TARGET_LRA_P): New define.
15428
ea679d55
JG
154292013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
15430
15431 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
15432 (gimple_stmt_iterator): New typedef.
15433 * gimple.h (gimple_stmt_iterator): Rename to...
15434 (gimple_stmt_iterator_d): ... This.
15435 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
15436 trees be valid for GIMPLE and GENERIC.
15437 (TARGET_GIMPLE_FOLD_BUILTIN): New.
15438 * gimple-fold.c (gimple_fold_call): Call target hook
15439 gimple_fold_builtin.
15440 * hooks.c (hook_bool_gsiptr_false): New.
15441 * hooks.h (hook_bool_gsiptr_false): New.
15442 * target.def (fold_stmt): New.
15443 * doc/tm.texi: Regenerate.
15444
88a581da
VM
154452013-04-22 Vladimir Makarov <vmakarov@redhat.com>
15446
15447 PR target/57018
15448 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
15449 a set sp if no stack realignment.
15450
92be22dc
NC
154512013-04-22 Nick Clifton <nickc@redhat.com>
15452
15453 * config.gcc (tilegx-linux): Extend extra_objs rather than
15454 overwriting it.
15455 (tilepro-linux): Likewise.
15456
0ddec79f
JG
154572013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
15458
15459 * config/aarch64/aarch64-builtins.c
15460 (CF): Remove.
15461 (CF0, CF1, CF2, CF3, CF4, CF10): New.
15462 (VAR<1-12>): Add MAP parameter.
15463 (BUILTIN_*): Likewise.
15464 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
15465 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
15466 (aarch64_ushl_n<mode>): Likewise.
15467 (aarch64_sshr_n<mode>): Likewise.
15468 (aarch64_ushr_n<mode>): Likewise.
15469 (aarch64_<maxmin><mode>): Likewise.
15470 (aarch64_sqrt<mode>): Likewise.
15471 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
15472 (vshr<q>_n_*): Likewise.
15473
0050faf8
JG
154742013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
15475
15476 * config/aarch64/aarch64-builtins.c
15477 (aarch64_simd_builtin_type_mode): Handle SF types.
15478 (sf_UP): Define.
15479 (BUILTIN_GPF): Define.
15480 (aarch64_init_simd_builtins): Handle SF types.
15481 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
15482 (frecps): Likewise.
15483 (frecpx): Likewise.
15484 * config/aarch64/aarch64-simd.md
15485 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
15486 (aarch64_frecpe<mode>): New.
15487 (aarch64_frecps<mode>): Likewise.
15488 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
15489 (v8type): Add frecp<esx>.
15490 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
15491 (aarch64_frecps<mode>): Likewise.
15492 * config/aarch64/iterators.md (FRECP): New.
15493 (frecp_suffix): Likewise.
15494 * config/aarch64/arm_neon.h
15495 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
15496
0fad3dbc 154972013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
15498
15499 PR target/56995
15500 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
15501 (REG_CLASS_NAMES): Idem.
15502 (REG_CLASS_CONTENTS): Idem.
15503 (REGCLASS_HAS_FP_REG): Idem.
15504 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
15505 (sh_conditional_register_usage): Idem.
15506
3e8a33f9
JL
155072013-04-21 Jeff Law <law@redhat.com>
15508
15509 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
15510 (ssa_forward_propagate_and_combine): Use it.
15511
f38e1b0a
VM
155122013-04-19 Vladimir Makarov <vmakarov@redhat.com>
15513
15514 * lra.c: Update the flow chart diagram.
15515
682303da
VM
155162013-04-19 Vladimir Makarov <vmakarov@redhat.com>
15517
15518 PR rtl-optimization/56847
15519 * lra-constraints.c (process_alt_operands): Discourage alternative
15520 with non-matche doffsettable memory constraint fro memory with
15521 known offset.
15522
f6b64c35
RB
155232013-04-19 Richard Biener <rguenther@suse.de>
15524
15525 PR tree-optimization/56982
15526 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
15527 function.
15528 * gimplify.c (gimplify_call_expr): Notice special calls.
15529 (gimplify_modify_expr): Likewise.
15530 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
15531 abnormal control flow receivers.
15532 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
15533 in the same way as cfun->has_nonlocal_labels.
15534 (gimple_purge_dead_abnormal_call_edges): Likewise.
15535 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
15536 receivers start a basic-block.
15537
01d8bf07
RB
155382013-04-19 Richard Biener <rguenther@suse.de>
15539
15540 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
15541 member ...
15542 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
15543 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
15544 (SLP_TREE_LOAD_PERMUTATION): Add.
15545 (vect_transform_slp_perm_load): Adjust prototype.
15546 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
15547 (vect_free_slp_instance): Likewise.
15548 (vect_create_new_slp_node): Likewise.
15549 (vect_supported_slp_permutation_p): Remove.
15550 (vect_slp_rearrange_stmts): Adjust.
15551 (vect_supported_load_permutation_p): Likewise. Inline
15552 vect_supported_slp_permutation_p here.
15553 (vect_analyze_slp_instance): Compute load permutations per
15554 slp node instead of per instance.
15555 (vect_get_slp_defs): Adjust.
15556 (vect_transform_slp_perm_load): Likewise.
15557 (vect_schedule_slp_instance): Remove redundant code.
15558 (vect_schedule_slp): Remove hack for PR56270, add it ...
15559 * tree-vect-stmts.c (vectorizable_load): ... here, do not
15560 CSE loads for SLP. Adjust.
15561
ede22fc3
GY
155622013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
15563
15564 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
15565 spelling in two comments.
15566
67bc84fb
GY
155672013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
15568
15569 PR target/56797
15570 * config/arm/arm.c (load_multiple_sequence): Require SP
15571 as base register for loads if SP is in the register list.
15572
e248d83f
MJ
155732013-04-19 Martin Jambor <mjambor@suse.cz>
15574
15575 PR tree-optimization/56718
15576 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
15577 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
15578 and made public. Adjusted all callers.
15579 (ipa_intraprocedural_devirtualization): New function.
15580 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
15581 (ipa_intraprocedural_devirtualization): Likewise.
15582 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
15583
4891e8f8
RB
155842013-04-19 Richard Biener <rguenther@suse.de>
15585
15586 PR tree-optimization/57000
15587 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
15588
dad89f7c
TG
155892013-04-19 Terry Guo <terry.guo@arm.com>
15590
15591 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
15592 Replace with ...
15593 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
15594 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
15595 (cortex_m4_fmacs): Use new reservations.
15596 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
15597
72ea0d47
VM
155982013-04-18 Vladimir Makarov <vmakarov@redhat.com>
15599
f1e6512c 15600 PR rtl-optimization/56999
72ea0d47
VM
15601 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
15602 related code.
15603 (lra_coalesce): Remove split_origin_bitmap and related code.
15604 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
15605 ranges if necessary.
15606
780a5b71
UB
156072013-04-18 Uros Bizjak <ubizjak@gmail.com>
15608
15609 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
15610 New array.
15611 (ix86_expand_call): Remove clobbered_registers array and use
15612 x86_64_ms_sysv_extra_clobbered_registers instead.
15613 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
15614 Declare here.
15615 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
15616 predicate.
15617 * config/i386/i386.md (*call_rex64_ms_sysv): Use
15618 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
15619 (*call_value_rex64_ms_sysv): Ditto.
15620
6f5a366a
CC
156212013-04-18 Cary Coutant <ccoutant@google.com>
15622
15623 * dwarf2out.c (output_pubnames): Check die_perennial_p of
15624 parent instead of die_mark.
15625
475b8f37
DN
156262013-04-18 Diego Novillo <dnovillo@google.com>
15627
15628 * gimple.c (create_gimple_tmp): New.
15629 (get_expr_type): New.
15630 (build_assign): New.
15631 (build_type_cast): New.
15632 * gimple.h (enum ssa_mode): Define.
15633 (gimple_seq_set_location): New.
15634 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 15635 to use build_assign and build_type_cast.
475b8f37 15636
08940f33
RB
156372013-04-18 Richard Biener <rguenther@suse.de>
15638
15639 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
15640 handle negative step. Remove redundant checks.
15641 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
15642 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
15643 for negative step and grouped loads fail to vectorize.
15644
0e0f87d4
SB
156452013-04-18 Steven Bosscher <steven@gcc.gnu.org>
15646
15647 * emit-rtl.c (reset_insn_used_flags): New function.
15648 (reset_all_used_flags): Use it.
15649 (verify_insn_sharing): New function.
15650 (verify_rtl_sharing): Fix verification for SEQUENCEs.
15651
4c445590
JJ
156522013-04-18 Jakub Jelinek <jakub@redhat.com>
15653
15654 PR tree-optimization/56984
15655 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
15656 and (x >> M) >= N don't register any assertion if N << M is the
15657 minimum value.
15658
6873ecab
SB
156592013-04-18 Steven Bosscher <steven@gcc.gnu.org>
15660
15661 * lower-subreg.c (resolve_simple_move): If called self-recursive,
15662 do not delete_insn insns that have not yet been emitted, only
15663 unlink them with remove_insn.
15664 * df-scan.c (df_insn_delete): Revert r197492.
15665
3ccb989e
SB
156662013-04-17 Steven Bosscher <steven@gcc.gnu.org>
15667
15668 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
15669 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
15670
156712013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
15672
15673 * config/arm/arm.md (movsicc_insn): Convert define_insn into
15674 define_insn_and_split.
15675 (and_scc,ior_scc,negscc): Likewise.
15676 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
15677
3ccb989e 156782013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
15679
15680 * config/arm/arm.c (use_return_insn): Return 0 for targets that
15681 can benefit from using a sequence of LDRD instructions in epilogue
15682 instead of a single LDM instruction.
15683
6d10a203
MLI
156842013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
15685
15686 PR 45688
15687 * doc/extend.texi: Fix typo.
15688
6983e6b5
RB
156892013-04-17 Richard Biener <rguenther@suse.de>
15690
15691 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
15692 (vect_build_slp_tree): ... here.
15693 (vect_build_slp_tree_1): Compute which stmts of the SLP group
15694 match. Remove special-casing of mismatched complex loads.
15695 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
15696 re-try the match with swapped commutative operands.
15697 (vect_supported_load_permutation_p): Remove special-casing of
15698 mismatched complex loads.
15699 (vect_analyze_slp_instance): Adjust.
15700
ef23e6a2
RB
157012013-04-17 Richard Biener <rguenther@suse.de>
15702
15703 PR rtl-optimization/56921
15704 * cfgloop.h (struct loop): Add simple_loop_desc member.
15705 (struct niter_desc): Mark with GTY(()).
15706 (simple_loop_desc): Do not use aux field but simple_loop_desc.
15707 * loop-iv.c (get_simple_loop_desc): Likewise.
15708 (free_simple_loop_desc): Likewise.
15709
15710 Revert
15711 2013-04-16 Richard Biener <rguenther@suse.de>
15712
15713 PR rtl-optimization/56921
15714 * loop-init.c (pass_rtl_move_loop_invariants): Add
15715 TODO_do_not_ggc_collect to todo_flags_finish.
15716 (pass_rtl_unswitch): Same.
15717 (pass_rtl_unroll_and_peel_loops): Same.
15718 (pass_rtl_doloop): Same.
15719
fc6f94f5
EB
157202013-04-17 Eric Botcazou <ebotcazou@adacore.com>
15721
15722 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
15723 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
15724 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
15725 references.
15726 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
15727 * tree-streamer.c (record_common_node): Adjust reference in comment.
15728
10a88311
TG
157292013-04-17 Terry Guo <terry.guo@arm.com>
15730
15731 * config/arm/cortex-m4.md: Add a new bypass.
15732
6d9b7208 157332013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
15734
15735 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
15736 New pattern.
15737 (*subs_<optab><mode>_multp2): New pattern.
15738 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
15739 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
15740
6d9b7208 157412013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
15742
15743 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
15744 (*subs_mul_imm_<mode>): New pattern.
15745
18a6701e
DE
157462013-04-16 David Edelsohn <dje.gcc@gmail.com>
15747
15748 PR target/56948
15749 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
15750 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
15751 (vsx_movti_32bit): Change j->wa to O->wa.
15752
07c37b2f
RB
157532013-04-16 Richard Biener <rguenther@suse.de>
15754
15755 PR rtl-optimization/56921
15756 * loop-init.c (pass_rtl_move_loop_invariants): Add
15757 TODO_do_not_ggc_collect to todo_flags_finish.
15758 (pass_rtl_unswitch): Same.
15759 (pass_rtl_unroll_and_peel_loops): Same.
15760 (pass_rtl_doloop): Same.
15761
0e0f87d4 157622013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
15763
15764 * config/arm/arm.c (emit_multi_reg_push): New declaration
15765 for an existing function.
15766 (arm_emit_strd_push): New function.
15767 (arm_expand_prologue): Used here.
15768 (arm_emit_ldrd_pop): New function.
15769 (arm_expand_epilogue): Used here.
15770 (arm_get_frame_offsets): Update condition.
15771 (arm_emit_multi_reg_pop): Add a special case for load of a single
15772 register with writeback.
15773
5e8e2af4
UB
157742013-04-16 Uros Bizjak <ubizjak@gmail.com>
15775
15776 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
15777 description.
15778
9fd9ccf7
RB
157792013-04-16 Richard Biener <rguenther@suse.de>
15780
15781 PR tree-optimization/56756
15782 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
15783 (first_mem_ref_loc): New.
15784 (execute_sm): Place the load temporarily before a previous
15785 access instead of in the latch edge to ensure its SSA dependencies
15786 are defined at points dominating the load.
15787
96fba521
SB
157882013-04-16 Steven Bosscher <steven@gcc.gnu.org>
15789
4c8af858
SB
15790 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
15791 correct fix by moving header and footer insn to the footer of
15792 the merged basic block. Clear BB_END of the merged-away block.
15793
96fba521
SB
15794 PR middle-end/43631
15795 * emit-rtl.c (make_note_raw): New function.
15796 (link_insn_into_chain): New static inline function.
15797 (add_insn): Use it.
15798 (add_insn_before, add_insn_after): Factor insn chain linking code...
15799 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
15800 using link_insn_into_chain.
15801 (note_outside_basic_block_p): New helper function for emit_note_after
15802 and emit_note_before.
15803 (emit_note_after): Use nobb variant of add_insn_after if the note
15804 should not be contained in a basic block.
15805 (emit_note_before): Use nobb variant of add_insn_before if the note
15806 should not be contained in a basic block.
15807 (emit_note_copy): Use make_note_raw.
15808 (emit_note): Likewise.
15809 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
15810 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
15811 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
15812 the moved barrier the tail of the basic block it follows.
15813 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
15814
7b8265ba
JJ
158152013-04-15 Jakub Jelinek <jakub@redhat.com>
15816
15817 PR tree-optimization/56962
15818 * gimple-ssa-strength-reduction.c (record_increment): Only set
15819 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
15820 either rhs1 or rhs2 is equal to c->base_expr.
15821
5185d248
RB
158222013-04-15 Richard Biener <rguenther@suse.de>
15823
15824 PR tree-optimization/56933
15825 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
15826 member.
15827 (GROUP_READ_WRITE_DEPENDENCE): Remove.
15828 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
15829 * tree-vect-data-refs.c (vect_analyze_group_access): Move
15830 dependence check ...
15831 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
15832 ... here.
15833 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
15834 GROUP_READ_WRITE_DEPENDENCE.
15835
a24243a0
AK
158362013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15837
15838 * emit-rtl.c (reset_all_used_flags): New function.
15839 (verify_rtl_sharing): Call reset_all_used_flags before and after
15840 performing the checks.
15841
1c50eada
KT
158422013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15843
15844 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
15845 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
15846 * config/arm/constraints.md (De): New constraint.
15847 * config/arm/neon.md (anddi3_neon): Delete.
15848 (neon_vand<mode>): Expand to standard anddi3 pattern.
15849 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
15850 Move earlier in the file.
15851 (neon_inv_logic_op2): Likewise.
15852 (arm_anddi_operand_neon): New predicate.
15853
e927b6ad
RO
158542013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15855
15856 * configure.ac (gcc_cv_ld_as_needed): Set
15857 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
15858 Use -z ignore, -z record on *-*-solaris2*.
15859 (HAVE_LD_AS_NEEDED): Update comment.
15860 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
15861 * configure: Regenerate.
15862 * config.in: Regenerate.
15863 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
15864 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
15865 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
15866 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
15867 equivalents. Fix markup.
15868 * doc/tm.texi: Regenerate.
15869
e0ea8797
AH
158702013-04-15 Andrew Hsieh <andrewhsieh.google.com>
15871
15872 * config/i386/i386.opt: New option mstack-protector-guard=.
15873 * config/i386/i386-opts.h: Add enum stack_protector_guard.
15874 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
15875 TARGET_SSP_TLS_GUARD.
15876 * config/i386/i386.c (ix86_option_override_internal): Set
15877 ix86_stack_protector_guard.
15878 * config/i386/i386.md (stack_protect_set): Enable for
15879 TARGET_SSP_TLS_GUARD only.
15880 (stack_protect_set_<mode>): Ditto.
15881 (stack_protect_test): Ditto.
15882 (stack_protect_test_<mode>): Ditto.
15883 * doc/invoke.texi (i386 Option): Document.
15884
811b72f9
EB
158852013-04-15 Eric Botcazou <ebotcazou@adacore.com>
15886
15887 PR target/56890
15888 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
15889 (S_MODES): Set H_MODE bit.
15890 (SF_MODES): Set only S_MODE and SF_MODE bits.
15891 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
15892 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
15893 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
15894 <MODE_FLOAT>: Likewise.
15895
5529fdd6
JY
158962013-04-15 Joey Ye <joey.ye@arm.com>
15897
15898 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
15899
517b1da2
JY
159002013-04-15 Joey Ye <joey.ye@arm.com>
15901
15902 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
15903 for real far jump.
15904 (thumb_far_jump_used_p): Count instruction size and set
15905 far_jump_used.
15906
01007ae0
EB
159072013-04-14 Eric Botcazou <ebotcazou@adacore.com>
15908
15909 * reorg.c (fill_simple_delay_slots): Reindent block of code.
15910 * resource.c (mark_target_live_regs): Reformat conditional block.
15911
c46f6580
SB
159122013-04-13 Steven Bosscher <steven@gcc.gnu.org>
15913
15914 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
15915 notes, they are emitted only just before final.
15916 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
15917
1f397f45
SB
159182013-04-13 Steven Bosscher <steven@gcc.gnu.org>
15919
15920 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
15921 * cfgrtl.c (delete_insn): Call it here instead.
15922 * lra-spills.c (lra_final_code_change): Use delete_insn.
15923 * haifa-sched.c (sched_remove_insn): Likewise.
15924 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
15925 returning to the nop pool.
15926 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
15927 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
15928
58a51369
SB
159292013-04-12 Steven Bosscher <steven@gcc.gnu.org>
15930
15931 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
15932 * doc/tm.texi: Regenerated.
15933
33159866
UB
159342013-04-12 Uros Bizjak <ubizjak@gmail.com>
15935
15936 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
15937 QImode checks.
15938
226e378f
SB
159392013-04-12 Steven Bosscher <steven@gcc.gnu.org>
15940
15941 * df-core.c (df_find_def): Compare register numbers.
15942 (df_find_use): Likewise.
15943
fafb9b18
VM
159442013-04-12 Vladimir Makarov <vmakarov@redhat.com>
15945
15946 PR target/56903
15947 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
15948 lra_in_progress for return.
15949
9a946fd6
GY
159502013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
15951
15952 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
15953 define_insn into define_insn_and_split and emit movsicc patterns.
15954
41b83758
GY
159552013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
15956
15957 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
15958
d3afd9aa
RB
159592013-04-12 Richard Biener <rguenther@suse.de>
15960
15961 * tree-pass.h (TODO_do_not_ggc_collect): New.
15962 * passes.c (execute_one_ipa_transform_pass): Honor
15963 TODO_do_not_ggc_collect.
15964 (execute_one_pass): Likewise.
15965
15966 Revert
15967 2013-04-10 Richard Biener <rguenther@suse.de>
15968
15969 * passes.c (init_optimization_passes): Remove reload pass.
15970 * ira.c (do_reload): Merge into ...
15971 (ira): ... this.
15972 (rest_of_handle_reload): Remove.
15973 (pass_reload): Likewise.
15974 * config/i386/i386.c (ix86_option_override): Refer to ira instead
15975 of reload for vzeroupper pass placement.
15976
06f9b387
JJ
159772013-04-12 Jakub Jelinek <jakub@redhat.com>
15978
15979 PR tree-optimization/56918
15980 PR tree-optimization/56920
15981 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
15982 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
15983 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
15984 use wide_mul_with_sign method.
15985
953094d2
RB
159862013-04-12 Richard Biener <rguenther@suse.de>
15987
15988 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
15989 not be considered a gimple constant.
15990
bb506982
MG
159912013-04-12 Marc Glisse <marc.glisse@inria.fr>
15992
15993 * fold-const.c (const_binop): Handle vector shifts by a scalar.
15994 (fold_binary_loc): Call const_binop also for mixed vector-scalar
15995 operations.
15996
4b84d650
JJ
159972013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
15998 Jakub Jelinek <jakub@redhat.com>
15999
16000 * opts.c: Include diagnostic-color.h.
16001 (common_handle_option): Handle OPT_fdiagnostics_color_.
16002 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
16003 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
16004 (diagnostic-color.o): New.
16005 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
16006 (diagnostic_color_rule): New enum.
16007 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
16008 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
16009 the location string.
16010 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
16011 either NULL, or color kind.
16012 * diagnostic-color.c: New file.
16013 * diagnostic-color.h: New file.
16014 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
16015 arguments.
16016 * doc/invoke.texi (-fdiagnostics-color): Document.
16017 * pretty-print.h (pp_show_color): Define.
16018 (struct pretty_print_info): Add show_color field.
16019 * diagnostic.c: Include diagnostic-color.h.
16020 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
16021 macros. Colorize error:, warning: etc. strings and also the location
16022 string.
16023 (diagnostic_show_locus): Colorize the caret line.
16024 * pretty-print.c: Include diagnostic-color.h.
16025 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
16026 inside of %< %> quotes or quoted through q format modifier.
16027
067a1e71
AK
160282013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16029
33159866 16030 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 16031
33159866 160322013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
16033
16034 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
16035 code in CC_NZ mode.
16036 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
16037 pattern.
16038
7b55f98f
MP
160392013-04-11 Marek Polacek <polacek@redhat.com>
16040
16041 PR tree-optimization/48184
33159866 16042 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 16043
966b587e
EB
160442013-04-11 Eric Botcazou <ebotcazou@adacore.com>
16045
16046 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
16047 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
16048 (skip_simple_arithmetic): Tidy up.
16049 * tree.h (skip_simple_constant_arithmetic): Declare.
16050
33159866 160512013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
16052
16053 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
16054
1d42c1ec
RB
160552013-04-11 Richard Biener <rguenther@suse.de>
16056
16057 * tree-vect-loop.c (get_initial_def_for_induction): Properly
16058 generate vector constants.
16059
4ba5ea11
RB
160602013-04-11 Richard Biener <rguenther@suse.de>
16061
16062 PR tree-optimization/56878
16063 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
16064 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
16065 New function.
16066 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
16067 Prefer to align the DR with the most invariant base address.
16068
f0defe58
SKS
160692013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
16070
16071 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
16072 comment.
16073
d07458be
JG
160742013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
16075
16076 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
16077 floating-point vector comparisons against 0.
16078
146b8692
JJ
160792013-04-11 Jakub Jelinek <jakub@redhat.com>
16080
16081 PR tree-optimization/56899
16082 * fold-const.c (extract_muldiv_1): Apply distributive law
16083 only if TYPE_OVERFLOW_WRAPS (ctype).
16084
b8578ff7
BC
160852013-04-11 Bin Cheng <bin.cheng@arm.com>
16086
16087 PR target/56124
16088 * ira-costs.c (scan_one_insn): Check whether the source rtx of
16089 loading has side effect.
16090
0ea8a6f9
SB
160912013-04-10 Steven Bosscher <steven@gcc.gnu.org>
16092
16093 * config/sparc/sparc.c: Include tree-pass.h.
16094 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
16095 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
16096 head of file. Change return type. Split off gate function.
16097 (sparc_gate_work_around_errata): New function.
16098 (pass_work_around_errata): New pass definition.
16099 (insert_pass_work_around_errata) New pass insert definition to
16100 insert pass_work_around_errata just after delayed-branch scheduling.
16101 (sparc_option_override): Insert the pass.
16102 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
16103
42e37616
DM
161042013-04-10 David S. Miller <davem@davemloft.net>
16105
89deeb3b
DM
16106 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
16107 or -mcpu=hypersparc.
16108
42e37616
DM
16109 * target.def (cstore_mode): New hook.
16110 * target.h: Include insn-codes.h
16111 * targhooks.c: Likewise.
16112 (default_cstore_mode): New function.
16113 * targhooks.h: Declare it.
16114 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
16115 * doc/tm.texi: Rebuild.
16116 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
16117 target hook, rather than inspecting the insn_data.
16118 * config/sparc/sparc.c (sparc_cstore_mode): New function.
16119 (TARGET_CSTORE_MODE): Redefine.
16120 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
16121 result patterns.
16122 * config/sparc/predicates.md (cstore_result_operand): New special
16123 predicate.
16124 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
16125 Use it for operand 0.
16126 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
16127 (*snesi_special): Likewise.
16128 (*snesi_zero): Likewise.
16129 (*seqsi_zero): Likewise.
16130 (*sltu_insn): Likewise.
16131 (*sgeu_insn): Likewise.
16132 (*seqdi_special): Make operand 0 and comparison operation be of
16133 DImode.
16134 (*snedi_special): Likewise.
16135 (*snedi_special_vis3): Likewise.
16136 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
16137 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
16138 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
16139 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
16140 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
16141 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
16142 (*sltu_extend_sp64): Likewise.
16143 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
16144 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
16145 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
16146 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
16147 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
16148
95ca411e
YZ
161492013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
16150
16151 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
16152 (aarch64_start_file): Use the new function.
16153
6782438d 161542013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 16155 Jason Merrill <jason@redhat.com>
6782438d
SKS
16156
16157 * common.opt: Add -gdwarf.
16158 * opts.c (common_handle_option): Handle it.
16159 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
16160
bb313b93
RB
161612013-04-10 Richard Biener <rguenther@suse.de>
16162
16163 * passes.c (execute_todo): Do not call ggc_collect conditional here.
16164 (execute_one_ipa_transform_pass): But unconditionally here.
16165 (execute_one_pass): And here.
16166 (init_optimization_passes): Remove reload pass.
16167 * tree-pass.h (TODO_ggc_collect): Remove.
16168 (pass_reload): Likewise.
16169 * ira.c (do_reload): Merge into ...
16170 (ira): ... this.
16171 (rest_of_handle_reload): Remove.
16172 (pass_reload): Likewise.
16173 * config/i386/i386.c (ix86_option_override): Refer to ira instead
16174 of reload for vzeroupper pass placement.
16175 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
16176 and todo_flags_finish of all passes.
16177
793d9a16
RB
161782013-04-10 Richard Biener <rguenther@suse.de>
16179
16180 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
16181 first_const_oprnd field, rename first_def_type to first_op_type.
16182 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
16183 (vect_get_and_check_slp_defs): Always use the type of the
16184 operand. Allow mixed vect_external_def, vect_constant_def types.
16185 (vect_get_constant_vectors): Handle mixed vect_external_def,
16186 vect_constant_def types.
16187
12211b99 161882013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
16189
16190 PR tree-optimization/55524
16191 * tree-ssa-math-opts.c
16192 (convert_mult_to_fma): Don't use an fms construct
16193 when we don't have an fms operation, but fnma, and it looks
16194 likely that we'll be able to use the latter.
16195
12211b99 161962013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
16197
16198 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
16199 function.
16200 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
16201 inline fail caused by overwritable functions.
16202
34ab4a5b
CJW
162032013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
16204
16205 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
16206 unnecessary bits in the constant power of two case.
16207
abf9bfbc
RB
162082013-04-10 Richard Biener <rguenther@suse.de>
16209
16210 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
16211 broken code swapping operands.
16212 (vect_build_slp_tree): Do not compute load permutations here.
16213 (vect_analyze_slp_instance): Compute load permutations here,
16214 after building the SLP tree.
16215
f408477e
CB
162162013-04-09 Christian Bruel <christian.bruel@st.com>
16217
16218 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
16219 of next/prev_real_insn.
16220
5ac42672
JH
162212013-04-09 Jan Hubicka <jh@suse.cz>
16222
abf9bfbc
RB
16223 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
16224 Drop aliased parameter.
5ac42672
JH
16225 (function_and_variable_visibility): Do not handle alias pairs.
16226 * cgraph.c (varpool_externally_visible_p): Update prototype.
16227 * varpool.c (varpool_add_new_variable): Update.
16228
5017f1d2
KT
162292013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16230
16231 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
16232
48eecbee
SB
162332013-04-09 Steven Bosscher <steven@gcc.gnu.org>
16234
a949cf1c
SB
16235 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
16236
48eecbee
SB
16237 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
16238
75ef8e3d
MP
162392013-04-09 Marek Polacek <polacek@redhat.com>
16240
16241 PR tree-optimization/48762
33159866 16242 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 16243
23847df4
RB
162442013-04-09 Richard Biener <rguenther@suse.de>
16245
16246 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
16247 dealing with cost.
16248 (vect_build_slp_tree): Likewise.
16249 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
16250 calculating the cost of a SLP instance.
16251 (vect_analyze_slp_instance): Use it from here, after building
16252 the SLP tree.
16253
ea3a0fde
JJ
162542013-04-09 Jakub Jelinek <jakub@redhat.com>
16255
16256 PR middle-end/56883
16257 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
16258 expand_omp_for_static_chunk): Use simple_p = true in
16259 force_gimple_operand_gsi calls when assigning to addressable decls.
16260
a32dfe9d
JL
162612013-04-09 Jeff Law <law@redhat.com>
16262
16263 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
16264 when the boolean was created by converting a wider object which
16265 had a boolean range.
16266
d755c7ef
RB
162672013-04-09 Richard Biener <rguenther@suse.de>
16268
16269 * tree-vectorizer.h (slp_void_p): Remove.
16270 (slp_tree): Typedef before _slp_tree declaration.
16271 (struct _slp_tree): Use a vector of slp_tree as children.
16272 (vect_get_place_in_interleaving_chain): Remove.
16273 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
16274 Move ...
16275 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
16276 and make static.
16277 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
16278 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
16279 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
16280 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
16281 Use slp_node instead of slp_void_p and adjust.
16282
3d741091
RB
162832013-04-09 Richard Biener <rguenther@suse.de>
16284
16285 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
16286 work that is not necessary.
16287
39307ba7
JJ
162882013-04-09 Jakub Jelinek <jakub@redhat.com>
16289
16290 PR tree-optimization/56854
16291 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
16292 forward into clobber stmts if it would change MEM_REF lhs into
16293 non-MEM_REF.
16294
343881fd
MK
162952013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
16296
16297 * tree.c (type_hash_lookup, type_hash_add): Make static.
16298 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
16299
3922658a
RB
163002013-04-09 Richard Biener <rguenther@suse.de>
16301
16302 * tree.h (unsave_expr_now): Remove.
16303 * tree-inline.c (mark_local_for_remap_r): Remove.
16304 (unsave_expr_1): Likewise.
16305 (unsave_r): Likewise.
16306 (unsave_expr_now): Likewise.
16307 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
16308 (propagate_tree_value): Likewise.
16309
9fb6b620
SB
163102013-04-08 Steven Bosscher <steven@gcc.gnu.org>
16311
16312 * doc/rtl.texi (sequence): Rewrite documentation to match the
16313 current use of SEQUENCE rtl objects.
16314 * rtl.def (SEQUENCE): Likewise.
16315
16316 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
16317 Update documentation.
16318 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
16319 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
16320
16321 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
16322
8ddb5a29
TJ
163232013-04-08 Teresa Johnson <tejohnson@google.com>
16324
16325 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
16326 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 16327 methods.
8ddb5a29
TJ
16328 (estimate_edge_size_and_time): Add comment to suggest using rounding
16329 methods.
16330 (estimate_node_size_and_time): Ditto.
16331 (remap_edge_change_prob): Use helper rounding divide methods.
16332 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
16333 (gimple_mod_pow2_value_transform): Ditto.
16334 (gimple_mod_subtract_transform): Ditto.
16335 (gimple_ic_transform): Ditto.
16336 (gimple_stringops_transform): Ditto.
16337 * stmt.c (conditional_probability): Ditto.
16338 (emit_case_dispatch_table): Ditto.
16339 * lto-cgraph.c (merge_profile_summaries): Ditto.
16340 * tree-optimize.c (execute_fixup_cfg): Ditto.
16341 * cfgcleanup.c (try_forward_edges): Ditto.
16342 * cfgloopmanip.c (scale_loop_profile): Ditto.
16343 (loopify): Ditto.
16344 (duplicate_loop_to_header_edge): Ditto.
16345 (lv_adjust_loop_entry_edge): Ditto.
16346 * tree-vect-loop.c (vect_transform_loop): Ditto.
16347 * profile.c (compute_branch_probabilities): Ditto.
16348 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
16349 * lto-streamer-in.c (input_cfg): Ditto.
16350 * gimple-streamer-in.c (input_bb): Ditto.
16351 * ipa-cp.c (update_profiling_info): Ditto.
16352 (update_specialized_profile): Ditto.
16353 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
16354 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 16355 rounding methods.
8ddb5a29
TJ
16356 * sched-rgn.c (compute_dom_prob_ps): Ditto.
16357 (compute_trg_info): Ditto.
16358 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
16359 (purge_dead_edges): Ditto.
16360 * loop-unswitch.c (unswitch_loop): Ditto.
16361 * cgraphclones.c (cgraph_clone_edge): Ditto.
16362 (cgraph_clone_node): Ditto.
16363 * tree-inline.c (copy_bb): Ditto.
16364 (copy_edges_for_bb): Ditto.
16365 (initialize_cfun): Ditto.
16366 (copy_cfg_body): Ditto.
16367 (expand_call_inline): Ditto.
16368
661e6bd7
KT
163692013-04-08 Kai Tietz <ktietz@redhat.com>
16370
16371 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
16372 TARGET_CYGWIN64 by TARGET_64BIT.
16373
105766f3
JR
163742013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
16375
16376 * config/epiphany/epiphany.md (GPR_1): New constant.
16377 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
16378 * config/epiphany/epiphany.c (gen_compare_reg):
16379 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
16380 is already in place.
16381 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
16382 Don't require being called during rtl expansion; If y operlaps r0,
16383 return 0.
16384 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
16385 (epiphany_expand_epilogue): Likewise.
16386
8afab237
JR
16387 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
16388 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 16389 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 16390
fa7707d6
JR
16391 * config/epiphany/constraints.md (CnL): New constraint.
16392 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
16393 * config/epiphany/predicates.md (add_operand): Allow 1024.
16394
5138e18d
JR
16395 * config/epiphany/epiphany.md (logical_op): New code iterator.
16396 (op_mnc): New code attribute.
16397 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
16398 (mov_f+1, mov_f+2): New peephole2 patterns.
16399
2ccc703d
JR
16400 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
16401 (cstoresi4): Also allow re-use of zero result when doing a NE
16402 comparison to a non-zero operand.
aefb0819 16403 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 16404
093ac0a5
JR
16405 * config/epiphany/epiphany.md (<insn_opname>v2si3):
16406 Use gen_addsi3_i / gen_subsi3_i.
16407
f223bb13
JJ
164082013-04-08 Jakub Jelinek <jakub@redhat.com>
16409
16410 PR c++/34949
16411 PR c++/50243
16412 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
16413 contain anything but clobbers, at most one __builtin_stack_restore,
16414 optionally debug stmts and final resx, and if it has at least one
16415 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
16416 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
16417 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
16418 which isn't defaut definition, remove them.
16419 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
16420 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
16421 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
16422 with MEM_REF LHS with SSA_NAME address.
16423
4481581f
JL
164242013-04-08 Jeff Law <law@redhat.com>
16425
16426 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 16427
451dabda
RB
164282013-04-08 Richard Biener <rguenther@suse.de>
16429
16430 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
16431 extra newline.
16432 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
16433 determined vector type.
16434 (vect_analyze_data_refs): Likewise.
16435 (vect_get_new_vect_var): Adjust.
16436 (vect_create_destination_var): Preserve SSA name versions.
16437 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
16438 not dump anything here.
16439
3b088b47
JR
164402013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
16441
16442 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
16443 Add member lr_slot_known.
16444 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
16445 if necessary.
16446 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
16447 Remove code that sets lr_slot_offset according to what a previous
16448 version of epiphany_emit_save_restore used to do.
16449 (epiphany_emit_save_restore): When doing an lr save or restore,
16450 set/verify lr_slot_known and lr_slot_offset.
16451
d8484d41
XQ
164522013-04-08 Xinyu Qi <xyqi@marvell.com>
16453
33159866
UB
16454 PR target/54338
16455 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
16456 in ALL_REGS.
16457
481be1c4
RB
164582013-04-08 Richard Biener <rguenther@suse.de>
16459
16460 * alias.c (find_base_term): Fix thinko in previous change.
16461
401f3a81
JJ
164622013-04-08 Jakub Jelinek <jakub@redhat.com>
16463
16464 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
16465 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
16466 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
16467 if possible to compute val.
16468 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
16469 For QImode integers don't require anything about precision. Use
16470 const_with_all_bytes_same to find out if the constant doesn't have
16471 repeated bytes in it.
16472
03ed99a8
AK
164732013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16474
16475 * config/s390/s390.c (s390_expand_insv): Only accept insertions
16476 within mode size.
16477
781b2e62
MP
164782013-04-08 Marek Polacek <polacek@redhat.com>
16479
16480 PR rtl-optimization/48182
16481 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
16482 value to 1.
16483
27e430a2
JDA
164842013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16485
16486 PR target/55487
16487 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
16488 nuses, make sure we have a label.
16489
4902aa64
BS
164902013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16491
16492 PR target/56843
16493 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
16494 (rs6000_emit_swdiv_low_precision): Remove.
16495 (rs6000_emit_swdiv): Rewrite to handle between one and four
16496 iterations of Newton-Raphson generally; modify required number of
16497 iterations for some cases.
16498 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
16499
7bca81dc
SB
165002013-04-05 Steven Bosscher <steven@gcc.gnu.org>
16501
16502 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
16503 set-but-unused variable.
16504
16505 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
16506 basic blocks of released function bodies garbage-collectable.
16507
16508 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
16509 (struct rtl_opt_pass): Add TODO_df_finish.
16510
16511 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
16512
4542a38a
GY
165132013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16514
16515 * config/arm/constraints.md (q): New constraint.
16516 * config/arm/ldrdstrd.md: New file.
16517 * config/arm/arm.md (ldrdstrd.md) New include.
16518 (arm_movdi): Use "q" instead of "r" constraint
16519 for double-word memory access.
16520 (movdf_soft_insn): Likewise.
16521 * config/arm/vfp.md (movdi_vfp): Likewise.
16522 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 16523 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
16524 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
16525 (mem_ok_for_ldrd_strd): Likewise.
16526 (output_move_double): Update assertion.
16527
2385b218
GY
165282013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16529
16530 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
16531
75fe1cb5
GY
165322013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16533
16534 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
16535 define_insn_and_split.
16536 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
16537
dd660e8e
GY
165382013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16539
16540 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
16541 define_insn_and_split.
33159866 16542 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
16543 (shiftsi3_compare): New pattern.
16544 (rrx): New pattern.
16545 * config/arm/unspecs.md (UNSPEC_RRX): New.
16546
045e472c
GY
165472013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16548
16549 * config/arm/arm.md (negdi_extendsidi): New pattern.
16550 (negdi_zero_extendsidi): Likewise.
16551
3f3bf1a8
GY
165522013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16553
16554 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
16555 define_insn_and_split.
16556 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
16557 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
16558
b0b49556
GY
165592013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16560
16561 * config/arm/arm.md (arm_subdi3): Convert define_insn into
16562 define_insn_and_split.
16563 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
16564 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
16565
d633dd84
GY
165662013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16567
16568 * config/arm/arm.md (subsi3_carryin): New pattern.
16569 (subsi3_carryin_const): Likewise.
16570 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
16571 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
16572
f4499066
GY
165732013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16574
16575 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
16576
ceef6fd9
GY
165772013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16578
16579 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 16580 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 16581
ddbdd8a7
KT
165822013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16583
16584 * config/arm/arm.c (arm_expand_builtin): Change fcode
16585 type to unsigned int.
16586
8456d78a
RR
165872013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16588
16589 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
16590
526c230f
ILT
165912013-04-04 Ian Lance Taylor <iant@google.com>
16592
33159866
UB
16593 * doc/standards.texi (Standards): The Go frontend supports the Go 1
16594 language standard.
526c230f 16595
3cfbe04d
SB
165962013-04-04 Steven Bosscher <steven@gcc.gnu.org>
16597
16598 PR middle-end/56729
16599 * df-scan.c (df_insn_delete): Disable failing assert.
16600
dfa3f8d0
KT
166012013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16602
16603 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
16604 New function prototype.
16605 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
16606 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
16607 (arm_builtin_vectorized_function): New function.
16608
f7837758
KT
166092013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16610
16611 * config/arm/arm_neon_builtins.def: New file.
16612 * config/arm/arm.c (neon_builtin_data): Move contents to
16613 arm_neon_builtins.def.
16614 (enum arm_builtins): Include neon builtin definitions.
16615 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 16616 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 16617
39c1b6db
MP
166182013-04-04 Marek Polacek <polacek@redhat.com>
16619
16620 PR tree-optimization/48186
16621 * predict.c (maybe_hot_frequency_p): Return false if
16622 HOT_BB_FREQUENCY_FRACTION is 0.
16623 (cgraph_maybe_hot_edge_p): Likewise.
16624
314f64eb
RB
166252013-04-04 Richard Biener <rguenther@suse.de>
16626
16627 PR tree-optimization/56826
16628 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
16629 more accurately.
16630
51a905b2
RB
166312013-04-04 Richard Biener <rguenther@suse.de>
16632
16633 PR tree-optimization/56213
16634 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 16635 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 16636
f1bf4f3a
RB
166372013-04-04 Richard Biener <rguenther@suse.de>
16638
16639 PR tree-optimization/56837
16640 * tree-loop-distribution.c (classify_partition): For non-zero
16641 values require that the value has the same precision as its
16642 mode to be useful as memset value.
16643
0bca7ded
NC
166442013-04-03 Nick Clifton <nickc@redhat.com>
16645
33159866 16646 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
16647 (fmssf4): Use fmsf.s on E3V5 architectures.
16648 (fnmasf4): Use fnmaf.s on E3V5 architectures.
16649 (fnmssf4): Use fnmsf.s on E3V5 architectures.
16650
b4019227
JL
166512013-04-03 Jeff Law <law@redhat.com>
16652
16653 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
16654 (lra-eliminations.o): Likewise.
16655
f57ddb5b
TJ
166562013-04-03 Teresa Johnson <tejohnson@google.com>
16657
16658 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 16659 compute_working_sets here from profile.c.
f57ddb5b 16660 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
16661 (gcov_working_set_t): Moved typedef here from basic-block.h
16662 (compute_working_set): Declare.
f57ddb5b
TJ
16663 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
16664 (get_working_sets): Renamed from compute_working_set,
33159866 16665 replace most of body with call to new compute_working_sets.
f57ddb5b 16666 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
16667 to get_working_sets.
16668 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 16669 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 16670 to get_working_sets.
f57ddb5b
TJ
16671 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
16672 * gcov-dump.c (dump_working_sets): New function.
16673
12211b99 166742013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
16675
16676 * hwint.c (sext_hwi, zext_hwi): New functions.
16677 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
16678 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
16679 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
16680 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
16681 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
16682 (sext_hwi, zext_hwi): New functions.
0bca7ded 16683
be672e08
JL
166842013-04-03 Jeff Law <law@redhat.com>
16685
16686 PR tree-optimization/56799
33159866
UB
16687 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
16688 back test for widening conversion erroneously dropped in prior change.
be672e08 16689
9d821fa5
KT
166902013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16691
16692 PR target/56809
16693 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
16694 instead of next_real_insn.
16695
71c581e7
MP
166962013-04-03 Marek Polacek <polacek@redhat.com>
16697
16698 PR sanitizer/55702
33159866 16699 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 16700
4a32ef80
KT
167012013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16702
16703 PR target/56809
16704 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
16705 next_real_insn.
16706 (thumb1_output_casesi): Likewise.
16707 (thumb2_output_casesi): Likewise.
16708
1b2253d4
RB
167092013-04-03 Richard Biener <rguenther@suse.de>
16710
16711 PR tree-optimization/56817
16712 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
16713 Split out ...
16714 (tree_unroll_loops_completely_1): ... new function to manually
16715 walk the loop tree, properly defering outer loops of unrolled
16716 loops to later iterations.
16717
38000232
MG
167182013-04-03 Marc Glisse <marc.glisse@inria.fr>
16719
16720 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
16721 (vectorizable_load): Likewise.
16722 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
16723 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
16724
3fa35298
MG
167252013-04-03 Marc Glisse <marc.glisse@inria.fr>
16726
16727 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
16728 BIT_FIELD_REF.
16729
b3d45ff0
UW
167302013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16731
16732 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
16733
ec9202a8
BC
167342013-04-03 Bin Cheng <bin.cheng@arm.com>
16735
16736 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
16737
6805bd36
MG
167382013-04-03 Marc Glisse <marc.glisse@inria.fr>
16739
16740 PR tree-optimization/56790
33159866
UB
16741 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
16742 folding.
6805bd36 16743
da694a77
MG
167442013-04-03 Marc Glisse <marc.glisse@inria.fr>
16745
16746 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
16747 Handle VEC_MERGE.
16748 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
16749 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
16750 equal arguments.
16751
4e7d7b3d
JJ
167522013-04-03 Jakub Jelinek <jakub@redhat.com>
16753
16754 PR c/19449
16755 * tree.h (force_folding_builtin_constant_p): New decl.
16756 * builtins.c (force_folding_builtin_constant_p): New variable.
16757 (fold_builtin_constant_p): Fold immediately also if
16758 force_folding_builtin_constant_p.
16759
e6c9d234
RB
167602013-04-03 Richard Biener <rguenther@suse.de>
16761
16762 PR tree-optimization/56812
16763 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
16764 DRs of the same interleaving chain are independent.
16765
984d07dd
JM
167662013-04-02 Jason Merrill <jason@redhat.com>
16767
16768 * gdbinit.in (pbb): Use debug fn.
16769
622849c9
LC
167702013-04-02 Lawrence Crowl <crowl@google.com>
16771
16772 * sese.h (struct ivtype_map_elt_s): Remove unused.
16773 (extern debug_ivtype_map): Remove unused.
16774 (extern eq_ivtype_map_elts): Remove unused.
16775 * sese.c (debug_ivtype_map): Removed unused.
16776 (debug_ivtype_map_1): Removed unused.
16777 (debug_ivtype_elt): Remove unused.
16778 (eq_ivtype_map_elts): Remove unused.
16779
16780
82c0e1a0
KT
167812013-04-02 Kai Tietz <ktietz@redhat.com>
16782
16783 PR target/52790
16784 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
16785 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
16786 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
16787 function.
82c0e1a0
KT
16788 (legitimize_pe_coff_symbol): Likewise.
16789 (is_imported_p): New helper-function.
16790 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
16791 for Windows x64 targets.
16792 (ix86_expand_prologue): Optimize for pe-coff targets.
16793 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
16794 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
16795 medium/large code-model.
16796 (legitimize_pic_address): Likewise.
16797 (legitimize_tls_address): Likewise.
16798 (ix86_expand_call): Likewise.
16799 (x86_output_mi_thunk): Likewise.
16800 (get_dllimport_decl): Add new beimport argument.
16801 (construct_plt_address): Don't assert for x64 pe-coff targets.
16802 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
16803 targets.
16804 (SYMBOL_FLAG_STUBVAR): New macro.
16805 (SYMBOL_REF_STUBVAR_P): Likewise.
16806 * config/i386/winnt.c (stub_list): New structure.
16807 (stub_head): New local variable.
16808 (i386_pe_record_stub): New function.
16809 (i386_pe_file_end): Emit refptr-stubs.
16810
5d751b0c
JJ
168112013-04-02 Jakub Jelinek <jakub@redhat.com>
16812
09bb4c99
JJ
16813 PR rtl-optimization/56745
16814 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
16815 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
16816
a1d8947a
JJ
16817 PR c++/34949
16818 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
16819 and both of them are MEM_REFs, just compare first argument for
16820 equality and attempt to deal even with differing offsets.
16821
5d751b0c
JJ
16822 PR c++/34949
16823 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
16824 of gimple_clobber_p to be MEM_REF.
16825 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
16826 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
16827 after gimplification.
16828 * asan.c (get_mem_ref_of_assignment): Don't instrument
16829 gimple_clobber_p stmts.
16830 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
16831 gimple_clobber_p stmt if they have MEM_REF lhs and
16832 are dead because of another gimple_clobber_p stmt.
16833 * tree-ssa-live.c (clear_unused_block_pointer): Treat
16834 gimple_clobber_p stmts like debug stmts.
16835 (remove_unused_locals): Remove clobbers with MEM_REF lhs
16836 that refer to unused VAR_DECLs or uninitialized values.
16837 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
16838 gimple_clobber_p stmts if they refer to removed parameters.
16839 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
16840 formatting.
16841
e594716a
UB
168422013-04-02 Uros Bizjak <ubizjak@gmail.com>
16843
16844 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
16845 using SWI48 mode attribute.
16846
7a80735b
WM
168472013-04-02 Wei Mi <wmi@google.com>
16848
16849 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
16850 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
16851 *<rotate_insn><mode>3_mask in i386.md.
16852
f423a9e4
AI
168532013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
16854
16855 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
16856
90eb75f2
RB
168572013-04-02 Richard Biener <rguenther@suse.de>
16858
16859 PR tree-optimization/56778
16860 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
16861 Runtime alias tests are not supported for gather loads.
16862 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
16863 stmts referenced from SSA operands before updating SSA form.
16864
d8c69a92
IC
168652013-04-02 Ian Caulfield <ian.caulfield@arm.com>
16866 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16867
16868 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
16869 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
16870 * config/arm/cortex-a53.md: New file.
16871 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
16872 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
16873 * config/arm/arm.c (arm_issue_rate): Likewise.
16874 * config/arm/arm-tune.md: Regenerate
16875 * config/arm/arm-tables.opt: Regenerate.
16876 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 16877
239eb04c
ZC
168782013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
16879
16880 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
16881 non-static link.
16882
c902d3c8
SN
168832013-04-02 Sofiane Naci <sofiane.naci@arm.com>
16884
d8c69a92
IC
16885 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
16886 scalar load/store operations using B/H registers.
c902d3c8
SN
16887 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
16888
051d0e2f
SN
168892013-04-02 Sofiane Naci <sofiane.naci@arm.com>
16890
16891 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
16892 scalar move.
16893 * config/aarch64/aarch64.c
16894 (aarch64_simd_scalar_immediate_valid_for_move): New.
16895 * config/aarch64/aarch64-protos.h
16896 (aarch64_simd_scalar_immediate_valid_for_move): New.
16897 * config/aarch64/constraints.md (Dh, Dq): New.
16898 * config/aarch64/iterators.md (hq): New.
16899
0ee1e3d9
EB
169002013-04-02 Eric Botcazou <ebotcazou@adacore.com>
16901
16902 * reorg.c (get_branch_condition): Deal with conditional returns.
16903 (fill_simple_delay_slots): Remove dead code dealing with jumps.
16904
136fb3f7
WM
169052013-04-01 Wei Mi <wmi@google.com>
16906
16907 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
16908 Truncate operand 2 using %b asm operand modifier.
16909 (*<shift_insn><mode>3_mask): Ditto.
16910 (*<rotate_insn><mode>3_mask): Ditto.
16911
6388c738
SB
169122013-04-01 Steven Bosscher <steven@gcc.gnu.org>
16913
16914 PR middle-end/56798
16915 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
16916
f7a4d826
KK
169172013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
16918
16919 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
16920 of next_real_insn.
16921 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
16922
4b943a49
LC
169232013-03-30 Lawrence Crowl <crowl@google.com>
16924
16925 * dse.c (clear_alias_sets): Remove never set.
16926 (disqualified_clear_alias_sets): Remove never set.
16927 (clear_alias_mode_pool): Remove never set.
16928 (dse_step0): Remove condition that is never true.
16929 (canon_address): Remove condition that is never true.
16930 (dse_step7): Remove condition that is never true.
16931 (rest_of_handle_dse): Remove condition that is never true.
16932 (rest_of_handle_dse::did_global): Remove never read from above.
16933 (dse_step2_spill): Remove never called from above.
16934 (dse_step5_spill): Remove never called from above.
16935
39718607
SB
169362013-03-30 Steven Bosscher <steven@gcc.gnu.org>
16937
da5c6bde
SB
16938 * doc/md.texi (Standard Names) <casesi>: Update documentation for
16939 JUMP_TABLE_DATA changes.
16940 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
16941 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
16942 (Insns) <jump_table_data>: New entry.
16943 * doc/tm.texi: Regenerate.
16944
39718607
SB
16945 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
16946
16947 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
16948 for table jump at the end of a basic block using tablejump_p.
16949 * targhooks.c (default_invalid_within_doloop): Likewise.
16950 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
16951 target hook implementation that is identical to the default hook.
16952 (rs6000_invalid_within_doloop): Remove.
16953
16954 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
16955 unused variable from tablejump_p call.
16956
16957 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
16958 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
16959 (INSN_DELETED_P): Likewise.
16960 (emit_jump_table_data): New prototype.
16961 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
16962 after 4th as unused.
16963 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
16964 * sched-vis.c (print_insn): Likewise.
16965 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
16966 insn for compatibility with back ends that use next_active_insn to
16967 identify jump table data.
16968 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
16969 (remove_insn): Likewise.
16970 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
16971 to be emitted.
16972 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
16973 (emit_jump_table_data): New function.
16974
16975 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
16976 basic block, a JUMP_TABLE_DATA never is.
16977 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
16978 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
16979 off from code handling real insns.
16980 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
16981 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
16982 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
16983 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
16984 is not a NONDEBUG_INSN_P.
16985 * ira-costs.c (scan_one_insn): Likewise.
16986 * jump.c (mark_all_labels): Likewise.
16987 (mark_jump_label_1): Likewise.
16988 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
16989 * lra.c (get_insn_freq): Expect all insns reaching here to be in
16990 a basic block.
16991 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
16992 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
16993 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
16994 JUMP_TABLE_DATA_P insns.
16995 (calculate_elim_costs_all_insns): Likewise.
16996 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
16997 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
16998 (delete_output_reload): Code style fixups.
16999 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
17000 insn flags on this non-insn.
17001 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
17002 as scheduling barriers, for pre-change compatibility.
17003 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
17004 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
17005
17006 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
17007 redundant JUMP_TABLE_DATA_P test.
17008 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
17009 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
17010 (frv_for_each_packet): Likewise.
17011 * config/i386/i386.c (min_insn_size): Likewise.
17012 (ix86_avoid_jump_mispredicts): Likewise.
17013 * config/m32r/m32r.c (m32r_is_insn): Likewise.
17014 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
17015 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
17016 (mips16_insn_length): Robustify.
17017 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
17018 (mips16_split_long_branches): Likewise.
17019 * config/pa/pa.c (pa_combine_instructions): Likewise.
17020 * config/rs6000/rs6000.c (get_next_active_insn): Treat
17021 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
17022 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
17023 as contributing to pool range lengths.
17024 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
17025 Remove redundant JUMP_TABLE_DATA_P test.
17026 (sh_loop_align): Likewise.
17027 (split_branches): Likewise.
17028 (sh_insn_length_adjustment): Likewise.
17029 * config/spu/spu.c (get_branch_target): Likewise.
17030
0208f7da
JH
170312013-03-29 Jan Hubicka <jh@suse.cz>
17032
17033 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
17034 gcov streaming; stream hot bb threshold to ltrans.
17035 * predict.c (get_hot_bb_threshold): Break out from ....
17036 (maybe_hot_count_p): ... here.
17037 (set_hot_bb_threshold): New function.
17038 * lto-section-in.c (lto_section_name): Add profile.
17039 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
17040 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
17041 and data-streamer.h
17042 (histogram_entry): New structure.
17043 (histogram, histogram_pool): New global vars.
17044 (histogram_hash): New structure.
17045 (histogram_hash::hash): New method.
17046 (histogram_hash::equal): Likewise.
17047 (account_time_size): New function.
17048 (cmp_counts): New function.
17049 (dump_histogram): New function.
17050 (ipa_profile_generate_summary): New function.
17051 (ipa_profile_write_summary): New function.
17052 (ipa_profile_read_summary): New function.
17053 (ipa_profile): Decide on threshold.
e594716a
UB
17054 (pass_ipa_profile): Add ipa_profile_write_summary and
17055 ipa_profile_read_summary.
0208f7da
JH
17056 * Makefile.in (ipa.o): Update dependencies.
17057 * lto-streamer.h (LTO_section_ipa_profile): New section.
17058
5a6ccc94
GDR
170592013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
17060
17061 * tree.h (VAR_P): New.
17062
39385fa6
PC
170632013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
17064
17065 PR lto/56777
17066 * doc/invoke.texi ([-fwhole-program]): Fix typo.
17067
34f0d87a
SB
170682013-03-29 Steven Bosscher <steven@gcc.gnu.org>
17069
17070 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
17071 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
17072 (control_flow_insn_p): Likewise.
17073 * cfgrtl.c (duplicate_insn_chain): Likewise.
17074 * final.c (get_attr_length_1): Likewise.
17075 (shorten_branches): Likewise.
17076 (final_scan_insn): Likewise.
17077 * function.c (instantiate_virtual_regs): Likewise.
17078 * gcse.c (insert_insn_end_basic_block): Likewise.
17079 * ira-costs.c (scan_one_insn): Likewise.
17080 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
17081 * lra.c (check_rtl): Likewise.
17082 * reload1.c (elimination_costs_in_insn): Likewise.
17083 * reorg.c (follow_jumps): Likewise.
17084
17085 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
17086 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
17087 (thumb_far_jump_used_p): Likewise.
17088 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
17089 (workaround_speculation): Likewise.
17090 (add_sched_insns_for_speculation): Likewise.
17091 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
17092 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
17093 (frv_for_each_packet): Likewise.
17094 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
17095 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
17096 (final_emit_insn_group_barriers): Likewise.
17097 * config/m32r/m32r.c (m32r_is_insn): Likewise.
17098 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
17099 (mips16_insn_length): Likewise.
17100 * config/pa/pa.c (pa_reorg): Likewise.
17101 (pa_combine_instructions): Likewise.
17102 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
17103 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
17104 (sh_reorg): Likewise.
17105 (split_branches): Likewise.
17106 * config/spu/spu.c (get_branch_target): Likewise.
17107
17108 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
17109 JUMP_TABLE_DATA_P.
17110
4ac761b0
KY
171112013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
17112
39385fa6 17113 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
17114 Fix declaration name.
17115
58a49189
LC
171162013-03-28 Lawrence Crowl <crowl@google.com>
17117
17118 * graphds.h (struct graph.indicies): Remove unused.
17119 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
17120 (SCOP_ORIGINAL_PDDRS): Remove unused.
17121 * sese.h (extern insert_loop_close_phis): Removed unused.
17122 (extern insert_guard_phis): Removed unused.
17123 (extern ivtype_map_elt_info): Removed unused.
17124 (new_ivtype_map_elt): Removed unused.
17125 * sese.c (ivtype_map_elt_info): Removed unused.
17126
7b3b6ae4
LC
171272013-03-28 Lawrence Crowl <crowl@google.com>
17128
17129 * Makefile.in: Add several missing include dependences.
17130 (DUMPFILE_H): New.
17131 (test-dump.o): New. This object is not added to any executable,
17132 but is present for ad-hoc testing.
17133 * bitmap.c
17134 (debug (const bitmap_head_def &)): New.
17135 (debug (const bitmap_head_def *)): New.
17136 * bitmap.h
17137 (extern debug (const bitmap_head_def &)): New.
17138 (extern debug (const bitmap_head_def *)): New.
17139 * cfg.c
17140 (debug (edge_def &)): New.
17141 (debug (edge_def *)): New.
17142 * cfghooks.c
17143 (debug (basic_block_def &)): New.
17144 (debug (basic_block_def *)): New.
17145 * dumpfile.h
17146 (dump_node (const_tree, int, FILE *)): Correct source file.
17147 * dwarf2out.c
17148 (debug (die_struct &)): New.
17149 (debug (die_struct *)): New.
17150 * dwarf2out.h
17151 (extern debug (die_struct &)): New.
17152 (extern debug (die_struct *)): New.
17153 * gimple-pretty-print.c
17154 (debug (gimple_statement_d &)): New.
17155 (debug (gimple_statement_d *)): New.
17156 * gimple-pretty-print.h
17157 (extern debug (gimple_statement_d &)): New.
17158 (extern debug (gimple_statement_d *)): New.
17159 * ira-build.c
17160 (debug (ira_allocno_copy &)): New.
17161 (debug (ira_allocno_copy *)): New.
17162 (debug (ira_allocno &)): New.
17163 (debug (ira_allocno *)): New.
17164 * ira-int.h
17165 (extern debug (ira_allocno_copy &)): New.
17166 (extern debug (ira_allocno_copy *)): New.
17167 (extern debug (ira_allocno &)): New.
17168 (extern debug (ira_allocno *)): New.
17169 * ira-lives.c
17170 (debug (live_range &)): New.
17171 (debug (live_range *)): New.
17172 * lra-int.h
17173 (debug (lra_live_range &)): New.
17174 (debug (lra_live_range *)): New.
17175 * lra-lives.c
17176 (debug (lra_live_range &)): New.
17177 (debug (lra_live_range *)): New.
17178 * omega.c
17179 (debug (omega_pb_d &)): New.
17180 (debug (omega_pb_d *)): New.
17181 * omega.h
17182 (extern debug (omega_pb_d &)): New.
17183 (extern debug (omega_pb_d *)): New.
17184 * print-rtl.c
17185 (debug (const rtx_def &)): New.
17186 (debug (const rtx_def *)): New.
17187 * print-tree.c
17188 (debug_tree (tree): Move within file.
17189 (debug_raw (const tree_node &)): New.
17190 (debug_raw (const tree_node *)): New.
17191 (dump_tree_via_hooks (const tree_node *, int)): New.
17192 (debug (const tree_node &)): New.
17193 (debug (const tree_node *)): New.
17194 (debug_verbose (const tree_node &)): New.
17195 (debug_verbose (const tree_node *)): New.
17196 (debug_head (const tree_node &)): New.
17197 (debug_head (const tree_node *)): New.
17198 (debug_body (const tree_node &)): New.
17199 (debug_body (const tree_node *)): New.
17200 (debug_vec_tree (tree): Move and reimplement in terms of dump.
17201 (debug (vec<tree, va_gc> &)): New.
17202 (debug (vec<tree, va_gc> *)): New.
17203 * rtl.h
17204 (extern debug (const rtx_def &)): New.
17205 (extern debug (const rtx_def *)): New.
17206 * sbitmap.c
17207 (debug_raw (simple_bitmap_def &)): New.
17208 (debug_raw (simple_bitmap_def *)): New.
17209 (debug (simple_bitmap_def &)): New.
17210 (debug (simple_bitmap_def *)): New.
17211 * sbitmap.h
17212 (extern debug (simple_bitmap_def &)): New.
17213 (extern debug (simple_bitmap_def *)): New.
17214 (extern debug_raw (simple_bitmap_def &)): New.
17215 (extern debug_raw (simple_bitmap_def *)): New.
17216 * sel-sched-dump.c
17217 (debug (vinsn_def &)): New.
17218 (debug (vinsn_def *)): New.
17219 (debug_verbose (vinsn_def &)): New.
17220 (debug_verbose (vinsn_def *)): New.
17221 (debug (expr_def &)): New.
17222 (debug (expr_def *)): New.
17223 (debug_verbose (expr_def &)): New.
17224 (debug_verbose (expr_def *)): New.
17225 (debug (vec<rtx> &)): New.
17226 (debug (vec<rtx> *)): New.
17227 * sel-sched-dump.h
17228 (extern debug (vinsn_def &)): New.
17229 (extern debug (vinsn_def *)): New.
17230 (extern debug_verbose (vinsn_def &)): New.
17231 (extern debug_verbose (vinsn_def *)): New.
17232 (extern debug (expr_def &)): New.
17233 (extern debug (expr_def *)): New.
17234 (extern debug_verbose (expr_def &)): New.
17235 (extern debug_verbose (expr_def *)): New.
17236 (extern debug (vec<rtx> &)): New.
17237 (extern debug (vec<rtx> *)): New.
17238 * sel-sched-ir.h
17239 (_list_iter_cond_expr): Make inline instead of static.
17240 * sreal.c
17241 (debug (sreal &)): New.
17242 (debug (sreal *)): New.
17243 * sreal.h
17244 (extern debug (sreal &)): New.
17245 (extern debug (sreal *)): New.
17246 * tree.h
17247 (extern debug_raw (const tree_node &)): New.
17248 (extern debug_raw (const tree_node *)): New.
17249 (extern debug (const tree_node &)): New.
17250 (extern debug (const tree_node *)): New.
17251 (extern debug_verbose (const tree_node &)): New.
17252 (extern debug_verbose (const tree_node *)): New.
17253 (extern debug_head (const tree_node &)): New.
17254 (extern debug_head (const tree_node *)): New.
17255 (extern debug_body (const tree_node &)): New.
17256 (extern debug_body (const tree_node *)): New.
17257 (extern debug (vec<tree, va_gc> &)): New.
17258 (extern debug (vec<tree, va_gc> *)): New.
17259 * tree-cfg.c
17260 (debug (struct loop &)): New.
17261 (debug (struct loop *)): New.
17262 (debug_verbose (struct loop &)): New.
17263 (debug_verbose (struct loop *)): New.
17264 * tree-dump.c: Add header dependence.
17265 * tree-flow.h
17266 (extern debug (struct loop &)): New.
17267 (extern debug (struct loop *)): New.
17268 (extern debug_verbose (struct loop &)): New.
17269 (extern debug_verbose (struct loop *)): New.
17270 * tree-data-ref.c
17271 (debug (data_reference &)): New.
17272 (debug (data_reference *)): New.
17273 (debug (vec<data_reference_p> &)): New.
17274 (debug (vec<data_reference_p> *)): New.
17275 (debug (vec<ddr_p> &)): New.
17276 (debug (vec<ddr_p> *)): New.
17277 * tree-data-ref.h
17278 (extern debug (data_reference &)): New.
17279 (extern debug (data_reference *)): New.
17280 (extern debug (vec<data_reference_p> &)): New.
17281 (extern debug (vec<data_reference_p> *)): New.
17282 (extern debug (vec<ddr_p> &)): New.
17283 (extern debug (vec<ddr_p> *)): New.
17284 * tree-ssa-alias.c
17285 (debug (pt_solution &)): New.
17286 (debug (pt_solution *)): New.
17287 * tree-ssa-alias.h
17288 (extern debug (pt_solution &)): New.
17289 (extern debug (pt_solution *)): New.
17290 * tree-ssa-alias.c
17291 (debug (_var_map &)): New.
17292 (debug (_var_map *)): New.
17293 (debug (tree_live_info_d &)): New.
17294 (debug (tree_live_info_d *)): New.
17295 * tree-ssa-alias.h
17296 (extern debug (_var_map &)): New.
17297 (extern debug (_var_map *)): New.
17298 (extern debug (tree_live_info_d &)): New.
17299 (extern debug (tree_live_info_d *)): New.
17300
be77e1e5
JH
173012013-03-28 Jan Hubicka <jh@suse.cz>
17302
17303 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
17304
777e6976
IB
173052013-03-28 Ian Bolton <ian.bolton@arm.com>
17306
17307 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
17308 record only when desired or required.
17309
9cd347ae
UB
173102013-03-28 Uros Bizjak <ubizjak@gmail.com>
17311
17312 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
17313 *vec_extractv2di_1_rex64. Use x64 isa attribute.
17314
33159866 173152013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
17316
17317 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
17318 (*andsi3_compare0_uxtw): New pattern.
17319 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
17320 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
17321
89ab31c1
JH
173222013-03-28 Jan Hubicka <jh@suse.cz>
17323
17324 * data-streamer-in.c (streamer_read_gcov_count): New function.
17325 * gimple-streamer-out.c: Include value-prof.h.
17326 (output_gimple_stmt): Output histogram.
17327 (output_bb): Use streamer_write_gcov_count.
17328 * value-prof.c: Include data-streamer.h
17329 (dump_histogram_value): Add HIST_TYPE_MAX.
17330 (stream_out_histogram_value): New function.
17331 (stream_in_histogram_value): New function.
17332 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
17333 (stream_out_histogram_value, stream_in_histogram_value): Declare.
17334 * data-streamer-out.c (streamer_write_gcov_count): New function.
17335 (streamer_write_gcov_count_stream): New function.
17336 * lto-cgraph.c (lto_output_edge): Update counter streaming.
17337 (lto_output_node): Likewise.
17338 (input_node, input_edge): Likewise.
17339 * lto-streamer-out.c (output_cfg): Update streaming.
17340 * lto-streamer-in.c (input_cfg): Likewise.
17341 * data-streamer.h (streamer_write_gcov_count,
17342 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
17343 * gimple-streamer-in.c: Include value-prof.h
17344 (input_gimple_stmt): Input histograms.
17345 (input_bb): Update profile streaming.
17346
e594716a 173472013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 17348
33159866 17349 * genmodes.c (emit_max_int): New function.
8697be17 17350 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
17351 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
17352 Added doc.
8697be17 17353 * machmode.def: Fixed comment.
89ab31c1 17354
e594716a 173552013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
17356
17357 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
17358 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
17359
74946978
MP
173602013-03-28 Marek Polacek <polacek@redhat.com>
17361 Richard Biener <rguenther@suse.de>
17362
17363 PR tree-optimization/56695
17364 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
17365 build signed result of a vector comparison.
17366 * tree-cfg.c (verify_gimple_comparison): Check that a result
17367 of a vector comparison has signed type.
17368
a64b9c26
RB
173692013-03-28 Richard Biener <rguenther@suse.de>
17370
17371 PR tree-optimization/37021
17372 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
17373 do not restrict gaps between groups.
17374 * tree-vect-stmts.c (vectorizable_load): Properly account for
17375 a gap between groups.
17376
a9dc2a2f
EB
173772013-03-28 Eric Botcazou <ebotcazou@adacore.com>
17378
17379 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
17380 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
17381 is not enabled.
17382
53cb97f9
GP
173832013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
17384
17385 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
17386 * doc/extend.texi (Named Address Spaces): Ditto.
17387 (Variable Attributes): Ditto.
17388
b802ae5c
KT
173892013-03-27 Kai Tietz <ktietz@redhat.com>
17390
eddae10a
KT
17391 * config.build: Add support for cygwin x64 target.
17392 * config.gcc: Likewise.
17393 * config.host: Likewise.
17394 * configure.ac: Likewise
17395 * configure: Regenerated.
b802ae5c 17396
371e77e3 173972013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
17398
17399 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
17400 * config/i386/t-cygwin-w64: New file.
17401 * config/i386/cygwin-w64.h: New file.
17402 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
17403 and add support for x64-cygwin target.
17404 (CPP_SPEC): Likewise.
17405 (CXX_WRAP_SPEC_LIST): Undefine before define.
17406 (LIBGCJ_SONAME): Use 15 as version.
17407
f49b33cb
RB
174082013-03-27 Richard Biener <rguenther@suse.de>
17409
17410 PR tree-optimization/56716
17411 * tree-ssa-structalias.c (perform_var_substitution): Adjust
17412 dumping for ref nodes.
17413
b37a6ce5
MJ
174142013-03-27 Martin Jambor <mjambor@suse.cz>
17415
17416 PR tree-optimization/55334
17417 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
17418 restricted pointers to arrays.
17419
9469b9b2
GDR
174202013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
17421
17422 * Makefile.in (.SUFFIXES): Add .cc.
17423 (.c.o): Apply same recipe for implicit rule .cc.o.
17424
7d24f650
RB
174252013-03-27 Richard Biener <rguenther@suse.de>
17426
17427 PR tree-optimization/37021
17428 * tree-vect-data-refs.c (vect_check_strided_load): Allow
17429 REALPART/IMAGPART_EXPRs around the supported refs.
17430 * tree-ssa-structalias.c (find_func_aliases): Assume that
17431 floating-point values are not used to transfer pointers.
17432
2f251a05
AI
174332013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
17434
f43245d1
UB
17435 * target.def (TARGET_HAS_IFUNC_P): New target hook.
17436 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
17437 * doc/tm.texi: Regenerate.
17438 * targhooks.h (default_has_ifunc_p): New.
17439 * targhooks.c (default_has_ifunc_p): Ditto.
17440 * config/linux-protos.h: New file.
17441 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
17442 hook for linux which disables support of indirect functions in android.
17443 * config/linux-android.c: New file.
17444 * config/t-linux-android.c: Ditto.
17445 * config.gcc: Added new object file linux-android.o.
17446 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 17447 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 17448 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
17449 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
17450 doesn't support indirect functions.
17451 * configure: Regenerate.
17452
78b4e425
BC
174532013-03-27 Bin Cheng <bin.cheng@arm.com>
17454
17455 PR target/56102
17456 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
17457 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
17458 mult-word mode.
17459
a5ba7b92
AK
174602013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17461
17462 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
17463
be624986
TG
174642013-03-27 Terry Guo <terry.guo@arm.com>
17465
17466 * config/arm/arm-cores.def: Added core cortex-r7.
17467 * config/arm/arm-tune.md: Regenerated.
17468 * config/arm/arm-tables.opt: Regenerated.
17469 * doc/invoke.texi: Added entry for core cortex-r7.
17470
0a514f47
WL
174712013-03-27 Walter Lee <walt@tilera.com>
17472
17473 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
17474 double-decrement of next_scratch_regno.
17475
9332b0d2
WL
174762013-03-27 Walter Lee <walt@tilera.com>
17477
801d9b2a 17478 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
17479 input operands.
17480 (insn_v1mulus): Ditto.
17481 (insn_v2muls): Ditto.
17482
f54ea5dd
WL
174832013-03-27 Walter Lee <walt@tilera.com>
17484
e594716a 17485 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
17486 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
17487
bf60f4ca
WL
174882013-03-27 Walter Lee <walt@tilera.com>
17489
e594716a 17490 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
17491 (*sibcall_value): Ditto.
17492
e3b51eeb
WL
174932013-03-27 Walter Lee <walt@tilera.com>
17494
17495 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
17496 (insn_mnz_v8qi): ... this ...
17497 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
17498 vector equivalent.
17499 (insn_v<n>mnz): Replaced by ...
17500 (insn_v1mnz): ... this ...
17501 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
17502 equivalent.
17503 (insn_mz_<mode>): Replaced by ...
17504 (insn_mz_v8qi): ... this ...
17505 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
17506 vector equivalent.
17507 (insn_v<n>mz): Replaced by ...
17508 (insn_v1mz): ... this ...
17509 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
17510 equivalent.
17511
4fc7b145
EB
175122013-03-26 Eric Botcazou <ebotcazou@adacore.com>
17513
17514 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
17515
6f33817e
RM
175162013-03-26 Roland McGrath <mcgrathr@google.com>
17517
17518 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
17519 than fprintf with a non-constant, non-format string.
17520
93a4145b
UB
175212013-03-26 Uros Bizjak <ubizjak@gmail.com>
17522
17523 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
17524 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
17525 operand 0 predicate.
17526 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
17527 attribute. Use general_x64nomem_operand as operand 1 predicate.
17528 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
17529 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
17530 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
17531 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
17532 (mov<mode>_insv_1): Remove expander. Merge insn with
17533 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
17534 Use general_x64nomem_operand as operand 1 predicate.
17535 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
17536 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
17537 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
17538 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
17539 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
17540 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
17541 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
17542 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
17543 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
17544 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
17545 (general_x64nomem_operand): Ditto.
17546
c6a9ed5a 175472013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
17548
17549 * config/rtems.opt: Add -pthread option.
17550
31b0a960
RB
175512013-03-26 Richard Biener <rguenther@suse.de>
17552
93a4145b
UB
17553 * alias.c (find_base_term): Avoid redundant and not used recursion.
17554 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
17555 (true_dependence_1): Compute and pass base terms to base_alias_check.
17556 (write_dependence_p): Likewise.
17557 (may_alias_p): Likewise.
17558
79517551
SN
175592013-03-26 Sofiane Naci <sofiane.naci@arm.com>
17560
17561 * config/aarch64/aarch64.c (aarch64_classify_address): Support
17562 PC-relative load in SI modes and above only.
17563
a76213b9
XQ
175642013-03-26 Xinyu Qi <xyqi@marvell.com>
17565
17566 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
17567 * config/arm/iwmmxt.md (WCGR0): Update.
17568 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 17569
37ff9355
UB
175702013-03-26 Uros Bizjak <ubizjak@gmail.com>
17571
17572 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
17573 Use x64 and nox64 isa attributes.
17574
30b0317c
RB
175752013-03-26 Richard Biener <rguenther@suse.de>
17576
17577 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
17578 alignment computations and rely on get_object_alignment_1
17579 for the !TYPE_P case.
17580 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
17581
cbcdb140
WL
175822013-03-26 Walter Lee <walt@tilera.com>
17583
17584 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
17585 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
17586
dd884525 175872013-03-25 Jeff Law <law@redhat.com>
be672e08 17588
33159866
UB
17589 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
17590 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
17591 wrong version of prior patch.
17592
0051d3ec
WL
175932013-03-25 Walter Lee <walt@tilera.com>
17594
17595 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
17596 TILEGX_INSN_SHUFFLEBYTES1.
17597 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
17598 shufflebytes1.
17599 (tilegx_builtins): Ditto.
17600 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
17601
065a3605
WL
176022013-03-25 Walter Lee <walt@tilera.com>
17603
17604 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
17605 (floatunssisf2): New pattern.
17606 (floatsidf2): New pattern.
17607 (floatunssidf2): New pattern.
065a3605 17608
5b2a3c82
WL
176092013-03-25 Walter Lee <walt@tilera.com>
17610
17611 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
17612 tests for constraint J, K, N, P.
17613
192ea533
WL
176142013-03-25 Walter Lee <walt@tilera.com>
17615
17616 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
17617 Use indirect/pcrel encoding.
17618 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
17619 Ditto.
17620
855e0d0b
SE
176212013-03-25 Steve Ellcey <sellcey@mips.com>
17622
17623 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
17624 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
17625 * config/mips/mips.c (mips_option_override): Set IMADD default.
17626 * config/mips/mips.h (PTF_AVOID_IMADD): New.
17627 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
17628 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
17629 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
17630 * doc/invoke.texi (-mimadd/-mno-imadd): New.
17631
39e45653
JL
176322013-03-25 Jeff Law <law@redhat.com>
17633
17634 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
17635 slightly to avoid creating and folding useless trees. Simplify
17636 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
17637
7482c470
UB
176382013-03-25 Uros Bizjak <ubizjak@gmail.com>
17639
17640 * config/i386/i386.md (*zero_extendsidi2): Merge with
17641 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
17642 * config/i386/predicates.md (x86_64_zext_operand): Rename from
17643 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
17644 targets. Clarify comment.
17645
4a53743e
MJ
176462013-03-25 Martin Jambor <mjambor@suse.cz>
17647
17648 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
17649 pass-through jump functions differently.
17650 (ipa_read_jump_function): Likewise. Also use setter functions to set
17651 up jump functions.
17652
162712de
MJ
176532013-03-25 Martin Jambor <mjambor@suse.cz>
17654
17655 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
17656 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
17657 process it.
17658 (ipa_get_indirect_edge_target): New function.
17659 (devirtualization_time_bonus): New parameter known_aggs, pass it to
17660 ipa_get_indirect_edge_target. Update all callers.
17661 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
17662 ipa_get_indirect_edge_target_1 instead of calling
17663 ipa_get_indirect_edge_target.
17664 (create_specialized_node): Pass aggvlas to
17665 ipcp_discover_new_direct_edges.
17666
a5a4c20a
KT
176672013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17668
17669 * config/arm/arm.md (f_sels, f_seld): New types.
17670 (*cmov<mode>): New pattern.
17671 * config/arm/predicates.md (arm_vsel_comparison_operator): New
17672 predicate.
17673
f992b9fc
KT
176742013-03-25 Kai Tietz <ktietz@redhat.com>
17675
17676 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
17677 POSIX-printf for mingw-hosted builds.
17678
c16fd676
RB
176792013-03-25 Richard Biener <rguenther@suse.de>
17680
17681 PR middle-end/56694
17682 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
17683 must-not-throw stmt location.
17684
5ad29f12
KT
176852013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17686
17687 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
17688 Emit load-acquire versions when acq is true.
17689 (arm_emit_store_exclusive): Add rel parameter.
17690 Emit store-release versions when rel is true.
17691 (arm_split_compare_and_swap): Use acquire-release instructions
17692 instead.
17693 of barriers when appropriate.
17694 (arm_split_atomic_op): Likewise.
17695 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
17696 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
17697 (VUNSPEC_SLX): Likewise.
17698 (VUNSPEC_LDA): Likewise.
17699 (VUNSPEC_STL): Likewise.
17700 * config/arm/sync.md (atomic_load<mode>): New pattern.
17701 (atomic_store<mode>): Likewise.
17702 (arm_load_acquire_exclusive<mode>): Likewise.
17703 (arm_load_acquire_exclusivesi): Likewise.
17704 (arm_load_acquire_exclusivedi): Likewise.
17705 (arm_store_release_exclusive<mode>): Likewise.
17706
03a7dddb
CM
177072013-03-25 Catherine Moore <clm@codesourcery.com>
17708
17709 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
17710 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
17711 * config/mip/predicates.md (lwsp_swsp_operand,
17712 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
17713 sb16_operand, db4_operand, db7_operand, ib3_operand,
17714 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
17715 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
17716 andi16_operand): New predicates.
17717 * config/mips/mips.md (compression): New attribute.
17718 (enabled): New attribute.
17719 (length): Consider compression in computing length.
17720 (shift_compression): New code attribute.
17721 (*add<mode>3): New operands. Record compression.
17722 (sub<mode>3): Likewise.
17723 (one_cmpl<mode>2): Likewise.
17724 (*and<mode>3): Likewise.
17725 (*ior<mode>3): Likewise.
17726 (unnamed pattern for xor): Likewise.
17727 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
17728 (*<optab><mode>3): Likewise.
17729 (*mov<mode>_internal: Likewise.
17730 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
17731 (mips_unsigned_immediate_p): New.
17732 (umips_lwsp_swsp_address_p): New.
17733 (m16_based_address_p): New.
17734 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
17735 (mips_unsigned_immediate_p): New prototype.
17736 (lwsp_swsp_address_p): New prototype.
17737 (m16_based_address_p): New prototype.
17738 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
17739 (mips_signed_immediate_p): New function.
17740 (m16_based_address_p): New function.
17741 (lwsp_swsp_address_p): New function.
17742 (mips_print_operand_punctuation): Recognize short delay slot insns
17743 for microMIPS.add<mode>3"
17744
f35c297f 177452013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 17746
f35c297f
KT
17747 PR target/56720
17748 * config/arm/iterators.md (v_cmp_result): New mode attribute.
17749 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
17750
051b9446
RB
177512013-03-25 Richard Biener <rguenther@suse.de>
17752
17753 PR tree-optimization/56689
17754 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
17755 any edge.
17756
374001cb
RB
177572013-03-25 Richard Biener <rguenther@suse.de>
17758
17759 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
17760 of bitmap.
17761 (memory_references): Likewise.
17762 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
17763 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
17764 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
17765 (gather_mem_refs_in_loops): Fold into ...
17766 (analyze_memory_references): ... this. Move initialization
17767 to tree_ssa_lim_initialize.
17768 (fill_always_executed_in): Rename to ...
17769 (fill_always_executed_in_1): ... this.
17770 (fill_always_executed_in): Move contains_call computation to
17771 this new function from ...
17772 (tree_ssa_lim_initialize): ... here.
17773 (tree_ssa_lim): Call fill_always_executed_in.
17774
57895947
EB
177752013-03-25 Eric Botcazou <ebotcazou@adacore.com>
17776
17777 * postreload.c (reload_combine): Fix code detecting returns.
17778
1e1b18c1
EB
177792013-03-25 Eric Botcazou <ebotcazou@adacore.com>
17780
17781 * function.c (emit_use_return_register_into_block): On cc0 targets,
17782 do not emit the sequence between cc0 setter and user.
17783
9216baf1
KT
177842013-03-25 Kai Tietz <ktietz@redhat.com>
17785
1e1b18c1
EB
17786 * config/i386/predicates.md (local_symbolic_operand): Interpret
17787 dll-imported symbols as none-local.
9216baf1 17788
76421b44
RB
177892013-03-25 Richard Biener <rguenther@suse.de>
17790
17791 * tree-ssa-loop-im.c (struct depend): Remove.
17792 (struct lim_aux_data): Make depends a vec of gimples.
17793 (free_lim_aux_data): Adjust.
17794 (add_dependency): Likewise.
17795 (set_level): Likewise.
17796
d154bfa2
RB
177972013-03-25 Richard Biener <rguenther@suse.de>
17798
17799 PR middle-end/56434
17800 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
17801 the pointer returned by calls with ECF_MALLOC set.
17802
2cd9804e
UB
178032013-03-24 Uros Bizjak <ubizjak@gmail.com>
17804
acef5fe0
UB
17805 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
17806
178072013-03-24 Uros Bizjak <ubizjak@gmail.com>
17808
17809 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
17810 using MMXMODE mode iterator.
17811 (*move<mode>_internal): Merge with *movv2sf_internal and
17812 *movv2sf_internal_rex64 using MMXMODE mode iterator.
17813
225ccc68
SB
178142013-03-23 Steven Bosscher <steven@gcc.gnu.org>
17815
85c0f02d
SB
17816 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
17817 (record_last_mem_set_info): Likewise.
17818
225ccc68
SB
17819 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
17820 of XNEWVEC followed by memset.
17821 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
17822
b64925dc
SB
178232013-03-23 Steven Bosscher <steven@gcc.gnu.org>
17824
17825 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
17826 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
17827 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
17828 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
17829 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
17830 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
17831 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
17832 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
17833 BARRIER_P instead of GET_CODE.
17834
b9aaf52e
EB
178352013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17836
17837 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
17838 inaccuracy in the probing code.
17839
17840 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
17841 (ctrapdi4): Likewise.
17842
66de4d7c
EB
178432013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17844
17845 * calls.c (expand_call): Add missing guard to code handling return
17846 of non-BLKmode structures in MSB.
17847 * function.c (expand_function_end): Likewise.
17848
4f25c8fb
EB
178492013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17850
17851 * combine.c (try_combine): Adjust comment. Do not add the set of
17852 insn #0 if the destination indirectly is set or dies in insn #2.
17853 Tidy up code to distribute a new note.
17854
23b7850d
UB
178552013-03-22 Uros Bizjak <ubizjak@gmail.com>
17856
17857 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
17858 also for alternatives 16 and 17.
17859
bed852cf
UB
178602013-03-22 Uros Bizjak <ubizjak@gmail.com>
17861
17862 * config/i386/sse.md (*mov<mode>_internal): Merge with
17863 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
17864 Emit insn template depending on type attribute. Use
17865 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
17866 movd instead of movq mnemonic for interunit moves. Rewrite mode
17867 attribute calculation. Remove unit attribute calculation.
17868 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
17869 Set prefix_data16 attribute for DImode ssemov types.
17870 Use Ym instead of y for SSE-MMX conversion alternatives.
17871 Reorder operand constraints.
17872
1e8a7937
SB
178732013-03-22 Steven Bosscher <steven@gcc.gnu.org>
17874
17875 * df.h (df_insn_delete): Adjust prototype.
17876 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
17877 and let it decide whether mark the basic block dirty.
17878 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
17879 * df-scan.c (df_insn_info_delete): New helper function, split
17880 off from df_insn_delete.
17881 (df_scan_free_bb_info): Use it.
17882 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
17883 Likewise.
17884 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
17885 that the insn is actually an insn and it has a non-NULL basic block.
17886 Do not mark basic block dirty if only deleting a DEBUG_INSN.
17887
e14d094c
RB
178882013-03-22 Richard Biener <rguenther@suse.de>
17889
17890 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
17891 dep_ref members.
17892 (mem_ref_alloc): Do not allocate them.
17893 (refs_independent_p): Do not query or maintain a cache.
17894
e9cf7316
RB
178952013-03-22 Richard Biener <rguenther@suse.de>
17896
17897 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
17898 (gather_mem_refs_in_loops): Do not compute it.
17899 (analyze_memory_references): Do not allocate it.
17900 (tree_ssa_lim_finalize): Do not free it.
17901 (for_all_locs_in_loop): Do not query all_refs_in_loop.
17902
f046e81b
RB
179032013-03-22 Richard Biener <rguenther@suse.de>
17904
17905 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 17906
a05c0ddf
IB
179072013-03-22 Ian Bolton <ian.bolton@arm.com>
17908
17909 * config/aarch64/aarch64.c (aarch64_print_operand): New
17910 format specifier for printing a constant in hex.
17911 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
17912 format specifier for printing second operand.
17913
c00217fc
RB
179142013-03-22 Richard Biener <rguenther@suse.de>
17915
17916 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
17917 bitmaps.
17918 (gather_mem_refs_in_loops): Perform store accumulation here.
17919 (create_vop_ref_mapping_loop): Remove.
17920 (create_vop_ref_mapping): Likewise.
17921 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 17922 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
17923 (record_indep_loop): Remove.
17924 (record_dep_loop): New function.
17925 (ref_indep_loop_p_1): Adjust to only walk over references
17926 in the loop, not its subloops.
17927 (ref_indep_loop_p): Rename to ...
17928 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
17929 maintaining a more fine-grained cache.
17930 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
17931 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
17932
15d19bf8
RB
179332013-03-22 Richard Biener <rguenther@suse.de>
17934
17935 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
17936 (struct mem_ref): Make accesses_in_loop a vec of a vec of
17937 aggregate mem_ref_loc.
17938 (free_mem_ref_locs): Inline into ...
17939 (memref_free): ... this and adjust.
17940 (mem_ref_alloc): Adjust.
17941 (mem_ref_locs_alloc): Remove.
17942 (record_mem_ref_loc): Adjust.
17943 (get_all_locs_in_loop): Rewrite into ...
17944 (for_all_locs_in_loop): ... this iterator.
17945 (rewrite_mem_ref_loc): New functor.
17946 (rewrite_mem_refs): Use for_all_locs_in_loop.
17947 (sm_set_flag_if_changed): New functor.
17948 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
17949 (ref_always_accessed): New functor.
17950 (ref_always_accessed_p): Use for_all_locs_in_loop.
17951
6f37411d
MG
179522013-03-21 Marc Glisse <marc.glisse@inria.fr>
17953
17954 * tree-pass.h (PROP_gimple_lvec): New.
17955 * passes.c (dump_properties): Handle PROP_gimple_lvec.
17956 (init_optimization_passes): Move pass_lower_vector.
17957 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
17958 PROP_gimple_lvec.
17959 (pass_lower_vector): Provide PROP_gimple_lvec.
17960 (pass_lower_vector_ssa): Likewise.
17961 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
17962
511ef689
MW
179632013-03-21 Mark Wielaard <mjw@redhat.com>
17964
17965 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
17966
cc1df30b
UB
179672013-03-21 Uros Bizjak <ubizjak@gmail.com>
17968
17969 * config/i386/i386.md (*movdi_internal): Disparage slightly
17970 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
17971 conversion alternatives.
17972
c845cfe1
JJ
179732013-03-21 Jakub Jelinek <jakub@redhat.com>
17974
37e99116
JJ
17975 PR middle-end/48087
17976 * diagnostic.def (DK_WERROR): New kind.
17977 * diagnostic.h (werrorcount): Define.
17978 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
17979 promoted to DK_ERROR, increment DK_WERROR counter instead of
17980 DK_ERROR counter.
17981 * toplev.c (toplev_main): Call print_ignored_options even if
17982 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
17983 even if just werrorcount is non-zero.
17984
c845cfe1
JJ
17985 PR debug/55608
17986 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
17987 on failure.
17988 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
17989 (string_cst_pool_decl): New function.
17990 (optimize_one_addr_into_implicit_ptr): New function.
17991 (resolve_addr_in_expr): Optimize DWARF location expression
17992 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
17993 which doesn't live in memory, but has DW_AT_location or
17994 DW_AT_const_value, or refers to a string literal, into
17995 DW_OP_GNU_implicit_pointer.
17996 (optimize_location_into_implicit_ptr): New function.
17997 (resolve_addr): If removing DW_AT_location of a variable because
17998 it was DW_OP_addr of address of the variable, but the variable doesn't
17999 live in memory, try to emit const value attribute for the initializer.
18000
08e0cda6
MG
180012013-03-21 Marc Glisse <marc.glisse@inria.fr>
18002
18003 * tree.h (VECTOR_TYPE_P): New macro.
18004 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
18005 TYPE_MODE): Use it.
18006 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
18007 VEC_COND_EXPR cannot be lvalues.
18008 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
18009
d08633b4
MG
180102013-03-21 Marc Glisse <marc.glisse@inria.fr>
18011
18012 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
18013 Restrict the transformation to equal modes.
18014
e6647190
RB
180152013-03-21 Richard Biener <rguenther@suse.de>
18016
18017 PR tree-optimization/39326
18018 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
18019 (MEM_ANALYZABLE): Adjust.
18020 (record_mem_ref_loc): Move bitmap ops ...
18021 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
18022 unanalyzable refs, do not record locations for it.
18023 (analyze_memory_references): Allocate ref zero as shared
18024 unanalyzable ref.
18025 (refs_independent_p): Do not test for unanalyzed mems here.
18026 (ref_indep_loop_p_1): Special-case disambiguation against
18027 the unanalyzed ref.
cc1df30b 18028 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 18029
65074f54
CL
180302013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
18031
18032 * config/arm/arm-protos.h (tune_params): Add
18033 prefer_neon_for_64bits field.
18034 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
18035 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
18036 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
18037 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
18038 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
18039 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
18040 (arm_option_override): Handle -mneon-for-64bits new option.
18041 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
18042 (prefer_neon_for_64bits): Declare new variable.
18043 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 18044 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
18045 (arch_enabled): Handle new arch types. Remove support for onlya8
18046 and nota8.
18047 (one_cmpldi2): Use new arch names.
bc5faa5b 18048 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
18049 * config/arm/arm.opt (mneon-for-64bits): Add option.
18050 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
18051 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
18052 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
18053 of onlya8.
18054 * doc/invoke.texi (-mneon-for-64bits): Document.
18055
5a2d2a79
RB
180562013-03-21 Richard Biener <rguenther@suse.de>
18057
18058 PR tree-optimization/39326
18059 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
18060 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 18061 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 18062
5abe1e05
RB
180632013-03-21 Richard Biener <rguenther@suse.de>
18064
18065 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
18066 (vect_insert_into_interleaving_chain): Likewise.
18067 (vect_drs_dependent_in_basic_block): Inline ...
18068 (vect_slp_analyze_data_ref_dependence): ... here. New function,
18069 split out from ...
18070 (vect_analyze_data_ref_dependence): ... here. Simplify.
18071 (vect_check_interleaving): Simplify.
18072 (vect_analyze_data_ref_dependences): Likewise. Split out ...
18073 (vect_slp_analyze_data_ref_dependences): ... this new function.
18074 (dr_group_sort_cmp): New function.
18075 (vect_analyze_data_ref_accesses): Compute data-reference groups
18076 here instead of in vect_analyze_data_ref_dependence. Use
18077 a more efficient algorithm.
18078 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
18079 vect_slp_analyze_data_ref_dependences. Call
18080 vect_analyze_data_ref_accesses earlier.
18081 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
18082 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
18083 (vect_slp_analyze_data_ref_dependences): New prototype.
18084
cad1735b
RB
180852013-03-21 Richard Biener <rguenther@suse.de>
18086
18087 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
18088 ref is stored in the loop.
18089 (find_refs_for_sm): Walk only over all stores.
18090 (store_motion_loop): Allocate from lim_bitmap_obstack.
18091 (store_motion): Likewise.
18092
141310ef
RB
180932013-03-21 Richard Biener <rguenther@suse.de>
18094
18095 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
18096 Update virtual SSA form.
18097
5022315a
RO
180982013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18099
18100 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
18101 * configure: Regenerate.
18102 * config.in: Regenerate.
18103 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
18104 if !HAVE_LD_EH_FRAME_CIEV3.
18105
50d4421c
RB
181062013-03-21 Richard Biener <rguenther@suse.de>
18107
18108 * tree-cfg.c (verify_expr_no_block): New function.
18109 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
18110 nor DECL_VALUE_EXPR have locations with associated blocks.
18111 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
18112 (clear_unused_block_pointer): Remove code dealing with
18113 blocks in DECL_DEBUG_EXPR locations.
18114
839b422f
RB
181152013-03-21 Richard Biener <rguenther@suse.de>
18116
18117 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
18118 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
18119 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
18120 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
18121 instead of DECL_DEBUG_EXPR_IS_FROM.
18122 * gimplify.c (gimplify_modify_expr): Likewise.
18123 * tree-cfg.c (verify_expr_location_1): Likewise.
18124 * tree-complex.c (create_one_component_var): Likewise.
18125 * tree-sra.c (create_access_replacement): Likewise.
18126 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
18127 (clear_unused_block_pointer): Likewise.
18128 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
18129 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
18130 * var-tracking.c (var_debug_decl): Likewise.
18131 (track_expr_p): Likewise.
18132 * tree-inline.c (add_local_variables): Likewise. Set
18133 DECL_HAS_DEBUG_EXPR_P after copying it.
18134 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
18135 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
18136
fe04878d
UB
181372013-03-21 Uros Bizjak <ubizjak@gmail.com>
18138
18139 PR bootstrap/56656
18140 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
18141 * configure: Regenerate.
18142 * config.in: Regenerate.
18143 * config/i386/i386.md (*movdf_internal): Use
18144 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
18145 movd instead of movq mnemonic for interunit moves.
18146 (*movdi_internal): Ditto.
18147
bd059b26 181482013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
18149
18150 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
18151 (abd<mode>_3): New pattern.
18152 (aba<mode>_3): New pattern.
18153 (fabd<mode>_3): New pattern.
18154
bd059b26 181552013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
18156
18157 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
18158 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
18159 occurrence of REGISTER_PREFIX as its empty string.
18160
4f1f78b9
JL
181612013-03-20 Jeff Law <law@redhat.com>
18162
18163 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
18164 addititional equivalences for equality comparisons between an SSA_NAME
18165 and a constant where the SSA_NAME was set from a widening conversion.
18166
327a1118
WL
181672013-03-20 Walter Lee <walt@tilera.com>
18168
18169 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
18170
813e0036
UB
181712013-03-20 Uros Bizjak <ubizjak@gmail.com>
18172
18173 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
18174 depending on type attribute.
18175 (*movti_internal): Ditto.
18176 (*movtf_internal): Ditto.
18177 (*movxf_internal): Ditto.
18178 (*movdf_internal): Ditto.
18179 (*movsf_internal): Ditto.
18180
7cf34aae
UB
181812013-03-20 Uros Bizjak <ubizjak@gmail.com>
18182
18183 * config/i386/i386.md (*movti_internal): Set prefix attribute to
18184 maybe_vex for sselog1 and ssemov types.
18185 (*movdi_internal): Reorder operand constraints.
18186 (*movsi_internal): Ditto. Set prefix attribute to
18187 maybe_vex for sselog1 and ssemov types.
18188 (*movtf_internal): Set prefix attribute to maybe_vex
18189 for sselog1 and ssemov types.
18190 (*movdf_internal): Ditto. Set prefix_data16 attribute for
18191 DImode ssemov types. Reorder operand constraints.
18192 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
18193 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
18194 attribute for SImode ssemov types. Reorder operand constraints.
18195
19321415
MJ
181962013-03-20 Martin Jambor <mjambor@suse.cz>
18197
18198 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
18199 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
18200
12211b99 182012013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
18202
18203 * config/rs6000/predicates.md (indexed_address, update_address_mem
18204 update_indexed_address_mem): New predicates.
18205 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
18206 attribute for load/store instructions.
18207 * config/rs6000/dfp.md (movsd_store): Likewise.
18208 (movsd_load): Likewise.
18209 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
18210 (unnamed HI->DI extend define_insn): Likewise.
18211 (unnamed SI->DI extend define_insn): Likewise.
18212 (unnamed QI->SI extend define_insn): Likewise.
18213 (unnamed QI->HI extend define_insn): Likewise.
18214 (unnamed HI->SI extend define_insn): Likewise.
18215 (unnamed HI->SI extend define_insn): Likewise.
18216 (extendsfdf2_fpr): Likewise.
18217 (movsi_internal1): Likewise.
18218 (movsi_internal1_single): Likewise.
18219 (movhi_internal): Likewise.
18220 (movqi_internal): Likewise.
18221 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
18222 attribute for load/store instructions.
18223 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
18224 instructions.
18225 (mov<mode>_softfloat): Likewise.
18226 (mov<mode>_hardfloat32): Likewise.
18227 (mov<mode>_hardfloat64): Likewise.
18228 (mov<mode>_softfloat64): Likewise.
18229 (movdi_internal32): Likewise.
18230 (movdi_internal64): Likewise.
18231 (probe_stack_<mode>): Likewise.
18232
182332013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
18234
18235 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
18236 floating point, and decimal floating point to reload iterator.
18237
18238 * config/rs6000/constraints.md (wl constraint): New constraints to
18239 return FLOAT_REGS if certain options are used to reduce the number
18240 of separate patterns that exist in the file.
18241 (wx constraint): Likewise.
18242 (wz constraint): Likewise.
18243
18244 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
18245 -mdebug=reg, print wg, wl, wx, and wz constraints.
18246 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
18247 Initialize the reload functions for 64-bit binary/decimal floating
18248 point types.
18249 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
18250 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
18251 create the buffer on the stack to overcome not having a 32-bit
18252 load and store.
18253 (rs6000_emit_move): Likewise.
18254 (rs6000_secondary_memory_needed_rtx): Likewise.
18255 (rs6000_alloc_sdmode_stack_slot): Likewise.
18256 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
18257 via xxlxor, just like DFmode 0.0.
18258
18259 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
18260 define as 1 if we are running on a power7 or newer.
18261 (enum r6000_reg_class_enum): Add new constraints.
18262
18263 * config/rs6000/dfp.md (movsd): Delete, combine with binary
18264 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
18265 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 18266 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
18267 (movsd splitter): Likewise.
18268 (movsd_hardfloat): Likewise.
18269 (movsd_softfloat): Likewise.
18270
18271 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
18272 binary and decimal floating point moves.
18273 (fmove_ok): New attributes to combine binary and decimal floating
18274 point moves, and to combine power6x (mfpgpr) moves along normal
18275 floating moves.
18276 (real_value_to_target): Likewise.
18277 (f32_lr): Likewise.
18278 (f32_lm): Likewise.
18279 (f32_li): Likewise.
18280 (f32_sr): Likewise.
18281 (f32_sm): Likewise.
18282 (f32_si): Likewise.
18283 (movsf): Combine binary and decimal floating point moves. Combine
18284 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 18285 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
18286 (mov<mode> for SFmode/SDmode); Likewise.
18287 (SFmode/SDmode splitters): Likewise.
18288 (movsf_hardfloat): Likewise.
18289 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
18290 (movsf_softfloat): Likewise.
18291 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
18292
18293 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
18294 wx and wz constraints.
18295
18296 * config/rs6000/constraints.md (wg constraint): New constraint to
18297 return FLOAT_REGS if -mmfpgpr (power6x) was used.
18298
18299 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
18300 constraint.
18301
18302 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
18303 -mdebug=reg, print wg, wl, wx, and wz constraints.
18304 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
18305 Initialize the reload functions for 64-bit binary/decimal floating
18306 point types.
18307 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
18308 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
18309 create the buffer on the stack to overcome not having a 32-bit
18310 load and store.
18311 (rs6000_emit_move): Likewise.
18312 (rs6000_secondary_memory_needed_rtx): Likewise.
18313 (rs6000_alloc_sdmode_stack_slot): Likewise.
18314 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
18315 via xxlxor, just like DFmode 0.0.
18316
c6d5ff83
MM
18317 * config/rs6000/dfp.md (movdd): Delete, combine with binary
18318 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
18319 with other moves by using conditional constraits (wg). Use LFIWZX
18320 and STFIWX for loading SDmode on power7.
18321 (movdd splitters): Likewise.
18322 (movdd_hardfloat32): Likewise.
18323 (movdd_softfloat32): Likewise.
18324 (movdd_hardfloat64_mfpgpr): Likewise.
18325 (movdd_hardfloat64): Likewise.
18326 (movdd_softfloat64): Likewise.
18327
18328 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
18329 64-bit binary and decimal floating point moves.
18330 (FMOVE64X): Likewise.
18331 (movdf): Combine 64-bit binary and decimal floating point moves.
18332 Combine power6x (mfpgpr) moves with other moves by using
18333 conditional constraits (wg).
18334 (mov<mode> for DFmode/DDmode): Likewise.
18335 (DFmode/DDmode splitters): Likewise.
18336 (movdf_hardfloat32): Likewise.
18337 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
18338 (movdf_softfloat32): Likewise.
18339 (movdf_hardfloat64_mfpgpr): Likewise.
18340 (movdf_hardfloat64): Likewise.
18341 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
18342 (movdf_softfloat64): Likewise.
18343 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
18344 (reload_<mode>_load): Move to later in the file so they aren't in
18345 the middle of the floating point move insns.
18346 (reload_<mode>_store): Likewise.
18347
18348 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
18349 constraint.
18350
18351 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
18352 constraint if -mdebug=reg.
bd059b26
UB
18353 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
18354 Enable using dd reload support if needed.
c6d5ff83
MM
18355
18356 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
18357 binary and decimal floating point moves in rs6000.md.
18358 (movtd_internal): Likewise.
18359
18360 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
18361 decimal floating point moves.
18362 (movtf): Likewise.
18363 (movtf_internal): Likewise.
18364 (mov<mode>_internal, TDmode/TFmode): Likewise.
18365 (movtf_softfloat): Likewise.
18366 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
18367
18368 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
18369 movdi_internal64, using wg constraint for move direct operations.
18370 (movdi_internal64): Likewise.
18371
18372 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
18373 MODES_TIEABLE_P for selected modes. Print the numerical value of
18374 the various virtual registers. Use GPR/FPR first/last values,
18375 instead of hard coding the register numbers. Print which modes
18376 have reload functions registered.
bd059b26
UB
18377 (rs6000_option_override_internal): If -mdebug=reg, trace the options
18378 settings before/after setting cpu, target and subtarget settings.
18379 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
18380 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
18381 (rs6000_secondary_reload_fail): Likewise.
18382 (rs6000_secondary_reload_inner): Likewise.
18383
18384 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
18385 macros for first/last GPR and FPR registers.
18386 (LAST_GPR_REGNO): Likewise.
18387 (FIRST_FPR_REGNO): Likewise.
18388 (LAST_FPR_REGNO): Likewise.
18389
18390 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
18391 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
18392 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
18393 (vcond<mode><mode>): Likewise.
18394 (vcondu<mode><mode>): Likewise.
18395 (vector_gtu<mode>): Likewise.
18396 (vector_gte<mode>): Likewise.
18397 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 18398 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
18399 (ior<mode>3): Likewise.
18400 (and<mode>3): Likewise.
18401 (one_cmpl<mode>2): Likewise.
18402 (nor<mode>3): Likewise.
18403 (andc<mode>3): Likewise.
18404
18405 * config/rs6000/constraints.md (wt constraint): New constraint
18406 that returns VSX_REGS if TImode is allowed in VSX registers.
18407
18408 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
18409 constant under VSX.
18410
18411 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
18412 similar to TImode, but it is restricted to being in the GPRs.
18413
18414 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
18415 TImode to occupy a single VSX register.
18416
18417 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
18418 -mvsx-timode for power7/power8.
18419 (power7 cpu): Likewise.
18420 (power8 cpu): Likewise.
18421
18422 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
18423 sure that TFmode/TDmode take up two registers if they are ever
18424 allowed in the upper VSX registers.
18425 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
18426 registers.
18427 (rs6000_init_hard_regno_mode_ok): Likewise.
18428 (rs6000_debug_reg_global): Add debugging for PTImode and wt
18429 constraint. Print if LRA is turned on.
18430 (rs6000_option_override_internal): Give an error if -mvsx-timode
18431 and VSX is not enabled.
18432 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
18433 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
18434 to reg+offset addressing. Use PTImode when checking offset
18435 addresses for validity.
18436 (reg_offset_addressing_ok_p): Likewise.
18437 (rs6000_legitimate_offset_address_p): Likewise.
18438 (rs6000_legitimize_address): Likewise.
18439 (rs6000_legitimize_reload_address): Likewise.
18440 (rs6000_legitimate_address_p): Likewise.
18441 (rs6000_eliminate_indexed_memrefs): Likewise.
18442 (rs6000_emit_move): Likewise.
18443 (rs6000_secondary_reload): Likewise.
18444 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
18445 reloads to fpr registers to continue to use reg+offset addressing,
18446 but 64-bit reloads to altivec registers need reg+reg addressing.
18447 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
18448 it. Treat LO_SUM like a PLUS operation.
18449 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 18450 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
18451 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
18452 registers to share a register with a smaller sized type, since VSX
18453 puts scalars in the upper 64-bits.
18454 (print_operand): Add support for PTImode.
18455 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
18456 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
18457 registers, but don't have arithmetic support.
18458 (rs6000_memory_move_cost): Add test for VSX.
18459 (rs6000_opt_masks): Add -mvsx-timode.
18460
18461 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
18462 for TImode.
18463 (VSs): Likewise.
18464 (VSr): Use wt constraint for TImode.
18465 (VSv): Drop TImode support.
18466 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
18467 (vsx_movti_64bit): Likewise.
18468 (vsx_movti_32bit): Likewise.
18469 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
18470 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
18471 one '?' on the appropriate output constraint. Do not allow TImode
18472 logical operations on 32-bit systems.
18473 (vsx_ior<mode>3): Likewise.
18474 (vsx_xor<mode>3): Likewise.
18475 (vsx_one_cmpl<mode>2): Likewise.
18476 (vsx_nor<mode>3): Likewise.
18477 (vsx_andc<mode>3): Likewise.
18478 (vsx_concat_<mode>): Likewise.
18479 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
18480
18481 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
18482 OPTION_MASK_VSX_TIMODE.
18483 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
18484 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
18485
18486 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
18487 (TI2 iterator): New iterator for TImode, PTImode.
18488 (wd mode attribute): Add values for vector types.
bd059b26
UB
18489 (movti_string): Replace TI move operations with operations for TImode
18490 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
18491 (mov<mode>_string, TImode/PTImode): Likewise.
18492 (movti_ppc64): Likewise.
18493 (mov<mode>_ppc64, TImode/PTImode): Likewise.
18494 (TI mode splitters): Likewise.
18495
18496 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
18497 constraint.
18498
1fc5eced
MG
184992013-03-20 Marc Glisse <marc.glisse@inria.fr>
18500
18501 PR tree-optimization/56355
18502 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
18503 Also handle integers with undefined overflow.
18504
22c4c869
CM
185052013-03-20 Catherine Moore <clm@codesourcery.com>
18506 Maciej W. Rozycki <macro@codesourcery.com>
18507 Tom de Vries <tom@codesourcery.com>
12211b99 18508 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
18509 Iain Sandoe <iain@codesourcery.com>
18510 Nathan Froyd <froydnj@codesourcery.com>
12211b99 18511 Chao-ying Fu <fu@mips.com>
22c4c869
CM
18512
18513 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 18514 Document new function attributes.
22c4c869
CM
18515 * doc/invoke.texi (minterlink-compressed, mmicromips,
18516 m14k, m14ke, m14kec): Document new options.
18517 (minterlink-mips16): Update documentation.
18518 * doc/md.texi (ZC, ZD): Document new constraints.
18519 * configure.ac (gcc_cv_as_micromips): Check if linker
18520 supports the .set micromips directive.
18521 * configure: Regenerate.
18522 * config.in: Regenerate.
18523 * config/mips/mips-tables.opt: Regenerate.
18524 * config/mips/micromips.md: New file.
18525 * constraints.md (ZC, ZD): New constraints.
18526 * config/mips/predicates.md (movep_src_register): New predicate.
18527 (movep_src_operand): New predicate.
18528 (non_volatile_mem_operand): New predicate.
18529 * config/mips/mips.md (multimem): New type.
18530 (length): Differentiate between 17-bit and 18-bit branch offsets.
18531 (MOVEP1, MOVEP2): New mode iterator.
33159866 18532 (mov_<load>l): Use ZC constraint.
22c4c869
CM
18533 (mov_<load>r): Likewise.
18534 (mov_<store>l): Likewise.
18535 (mov_<store>r): Likewise.
18536 (*branch_equality<mode>_inverted): Add microMIPS support.
18537 (*branch_equality<mode>): Likewise.
18538 (*jump_absolute): Likewise.
18539 (indirect_jump_<mode>): Likewise.
18540 (tablejump_<mode>): Likewise.
18541 (<optab>_internal): Likewise.
18542 (sibcall_internal): Likewise.
18543 (sibcall_value_internal): Likewise.
18544 (prefetch): Use constraint ZD.
18545 * config/mips/mips.opt (minterlink-compressed): New option.
18546 (minterlink-mips16): Now an alias for minterlink-compressed.
18547 (mmicromips): New option.
18548 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
18549 (compare_and_swap_12): Likewise.
18550 (sync_add<mode>): Likewise.
18551 (sync_<optab>_12): Likewise.
18552 (sync_old_<optab>_12): Likewise.
18553 (sync_new_<optab>_12): Likewise.
18554 (sync_nand_12): Likewise.
18555 (sync_old_nand_12): Likewise.
18556 (sync_new_nand_12): Likewise.
18557 (sync_sub<mode>): Likewise.
18558 (sync_old_add<mode>): Likewise.
18559 (sync_old_sub<mode>): Likewise.
18560 (sync_new_add<mode>): Likewise.
18561 (sync_new_sub<mode>): Likewise.
18562 (sync_<optab><mode>): Likewise.
18563 (sync_old_<optab><mode>): Likewise.
18564 (sync_new_<optab><mode>): Likewise.
18565 (sync_nand<mode>): Likewise.
18566 (sync_old_nand<mode>): Likewise.
18567 (sync_new_nand<mode>): Likewise.
18568 (sync_lock_test_and_set<mode>): Likewise.
18569 (test_and_set_12): Likewise.
18570 (atomic_compare_and_swap<mode>): Likewise.
18571 (atomic_exchange<mode>_llsc): Likewise.
18572 (atomic_fetch_add<mode>_llsc): Likewise.
18573 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
18574 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
18575 (umips_save_restore_pattern_p): Likewise.
18576 (umips_load_store_pair_p): Likewise.
18577 (umips_output_load_store_pair): Likewise.
18578 (umips_movep_target_p): Likewise.
18579 (umips_12bit_offset_address_p): Likewise.
18580 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
18581 (mips_base_mips16): Rename this...
18582 (mips_base_compression_flags): ...to this. Update all uses.
18583 (mips_attribute_table): Add micromips, nomicromips and nocompression.
18584 (mips_mips16_decl_p): Delete.
18585 (mips_nomips16_decl_p): Delete.
33159866 18586 (mips_get_compress_on_flags): New function.
22c4c869
CM
18587 (mips_get_compress_off_flags): New function.
18588 (mips_get_compress_mode): New function.
18589 (mips_get_compress_on_name): New function.
18590 (mips_get_compress_off_name): New function.
18591 (mips_insert_attributes): Support multiple compression types.
18592 (mips_merge_decl_attributes): Likewise.
18593 (umips_12bit_offset_address_p): New function.
18594 (mips_start_function_definition): Emit .set micromips directive.
18595 (mips_call_may_need_jalx_p): New function.
18596 (mips_function_ok_for_sibcall): Add microMIPS support.
18597 (mips_print_operand_punctuation): Support short delay slots and
18598 compact jumps.
18599 (umips_swm_mask, umips_swm_encoding): New.
18600 (umips_build_save_restore): New function.
18601 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
18602 (was_mips16_p): Remove.
18603 (old_compression_mode): New.
18604 (mips_set_compression_mode): New function.
18605 (mips_set_current_function): Add microMIPS support.
18606 (mips_option_override): Likewise.
18607 (umips_save_restore_pattern_p): New function.
18608 (umips_output_save_restore): New function.
18609 (umips_load_store_pair_p_1): New function.
18610 (umips_load_store_pair_p): New function.
18611 (umips_output_load_store_pair_1): New function.
18612 (umips_output_load_store_pair): New function.
18613 (umips_movep_target_p) New function.
18614 (mips_prepare_pch_save): Add microMIPS support.
18615 * config/mips/mips.h (TARGET_COMPRESSION): New.
18616 (TARGET_CPU_CPP_BUILTINS): Update macro
18617 to use new compression flags and to support microMIPS.
18618 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
18619 (MIPS_ARCH_FLOAT_SPEC): Likewise.
18620 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
18621 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
18622 (ASM_SPEC): Support mmicromips and mno-micromips.
18623 (M16STORE_REG_P): New macro.
18624 (MIPS_CALL): Support TARGET_MICROMIPS.
18625 (MICROMIPS_J): New macro.
18626 (mips_base_mips16): Rename this...
18627 (mips_base_compression_flags): ...to this.
18628 (UMIPS_12BIT_OFFSET_P): New macro.
18629 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
18630 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
186312013-03-20 Richard Biener <rguenther@suse.de>
18632
18633 PR tree-optimization/56661
18634 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
18635 the result does not have to be distinct.
18636
54714c68
RB
186372013-03-20 Richard Biener <rguenther@suse.de>
18638
18639 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
18640 remap_gimple_op_r.
18641
cca1130d 186422013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 18643 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
18644
18645 PR rtl-optimization/56605
18646 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
18647
2a930377
UB
186482013-03-20 Uros Bizjak <ubizjak@gmail.com>
18649
18650 PR bootstrap/56656
18651 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
18652 that require movd instead of movq.
18653
d6d305fe
RB
186542013-03-20 Richard Biener <rguenther@suse.de>
18655
18656 * tree-ssa-structalias.c (struct variable_info): Add pointer
18657 to the first field of an aggregate with sub-vars. Make
18658 this and the pointer to the next subfield its ID.
18659 (vi_next): New function.
18660 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
18661 storedanything_id, integer_id): Increment by one.
18662 (new_var_info, get_call_vi, lookup_call_clobber_vi,
18663 get_call_clobber_vi): Adjust.
18664 (solution_set_expand): Simplify and speedup.
18665 (solution_set_add): Inline into ...
18666 (set_union_with_increment): ... this. Adjust accordingly.
18667 (do_sd_constraint): Likewise.
18668 (do_ds_constraint): Likewise.
18669 (do_complex_constraint): Simplify.
18670 (build_pred_graph): Adjust.
18671 (solve_graph): Likewise. Simplify and speedup.
18672 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
18673 get_constraint_for_component_ref, get_constraint_for_1,
18674 first_vi_for_offset, first_or_preceding_vi_for_offset,
18675 create_function_info_for, create_variable_info_for_1,
18676 create_variable_info_for, intra_create_variable_infos): Adjust.
18677 (init_base_vars): Push NULL for ID zero.
18678 (compute_points_to_sets): Adjust.
18679
a271b42d
RB
186802013-03-20 Richard Biener <rguenther@suse.de>
18681
18682 * cfgloop.c (verify_loop_structure): Streamline and avoid
18683 ICEing on corrupt loop tree.
18684 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
18685 loop tree.
18686
ebd65954
RB
186872013-03-20 Richard Biener <rguenther@suse.de>
18688
18689 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
18690 check whether an SSA update is needed.
18691
4547b7ee
RS
186922013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
18693
18694 * config/mips/constraints.md (T): Rename to...
18695 (Yf): ...this.
18696 (U): Rename to...
18697 (Yd): ...this.
18698 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
18699 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
18700
0b8cdc58
IB
187012013-03-19 Ian Bolton <ian.bolton@arm.com>
18702
18703 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
18704 (*subsi3_carryin_uxtw): Likewise.
18705
5977a10d
IB
187062013-03-19 Ian Bolton <ian.bolton@arm.com>
18707
18708 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
18709 (*rorsi3_insn_uxtw): Likewise.
18710
bd83ff2c
IB
187112013-03-19 Ian Bolton <ian.bolton@arm.com>
18712
18713 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
18714 (*extrsi5_insn_uxtw): Likewise.
18715
ba65123c
RB
187162013-03-19 Richard Biener <rguenther@suse.de>
18717
18718 PR tree-optimization/56273
18719 * passes.c (init_optimization_passes): Move second VRP after DOM.
18720
2eac0476
UB
187212013-03-19 Uros Bizjak <ubizjak@gmail.com>
18722
18723 * config/i386/i386.md (*movti_internal): Merge from
18724 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
18725 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
18726 nox64 isa attributes.
18727
6e55eda7
RB
187282013-03-18 Richard Biener <rguenther@suse.de>
18729
18730 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
18731 (unite): Likewise.
18732 (merge_node_constraints): Likewise.
18733 (build_succ_graph): Likewise.
18734 (valid_graph_edge): Inline into single caller.
18735 (unify_nodes): Likewise. Use bitmap_set_bit return value
18736 and cache varinfo.
18737 (scc_visit): Fix formatting and variable use.
18738 (do_sd_constraint): Use gcc_checking_assert.
18739 (do_ds_constraint): Likewise.
18740 (do_complex_constraint): Likewise.
18741 (condense_visit): Likewise. Cleanup.
18742 (dump_pred_graph): New function.
18743 (perform_var_substitution): Dump the pred-graph before
18744 variable substitution.
18745 (find_equivalent_node): Use gcc_checking_assert.
18746 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
18747
4bdd44c4
RB
187482013-03-18 Richard Biener <rguenther@suse.de>
18749
18750 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
18751 Remove cond_expr_stmt_list argument and do not gimplify the
18752 built expression.
18753 (vect_loop_versioning): Adjust.
18754 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
18755 Cleanup to use less temporaries.
18756 (vect_create_data_ref_ptr): Cleanup.
18757
38c56a5b
JJ
187582013-03-18 Jakub Jelinek <jakub@redhat.com>
18759
18760 PR tree-optimization/56635
18761 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
18762 require types_compatible_p types.
18763
20b2e6a0
NC
187642013-03-18 Nick Clifton <nickc@redhat.com>
18765
a6178a25
NC
18766 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
18767 spurious backslash.
18768
20b2e6a0
NC
18769 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
18770 Add missing line to comment describing function.
18771
92608d0e
RB
187722013-03-18 Richard Biener <rguenther@suse.de>
18773
18774 PR tree-optimization/56210
18775 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
18776 Handle string / character search functions.
18777 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
18778
31348d52
RB
187792013-03-18 Richard Biener <rguenther@suse.de>
18780
18781 PR middle-end/56483
18782 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
18783 and implement properly.
18784 * gimple.h (gimple_cond_single_var_p): Remove.
18785
fcac74a1
RB
187862013-03-18 Richard Biener <rguenther@suse.de>
18787
18788 * tree-data-ref.h (find_data_references_in_loop): Declare.
18789 * tree-data-ref.c (get_references_in_stmt): Use a stack
18790 vector pre-allocated in the callers.
18791 (find_data_references_in_stmt): Adjust.
18792 (graphite_find_data_references_in_stmt): Likewise.
18793 (create_rdg_vertices): Likewise.
18794 (find_data_references_in_loop): Export.
18795 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
18796 Compute dependences here...
18797 (vect_analyze_data_refs): ...not here. When we encounter
18798 a non-vectorizable data reference in basic-block vectorization
18799 truncate the data reference vector. Do not bother to
18800 fixup data-dependence information for gather loads.
18801 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
18802 of data references, as reported.
18803
0d5a1b56
RB
188042013-03-18 Richard Biener <rguenther@suse.de>
18805
18806 PR tree-optimization/3713
18807 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
18808 has_constants and expr.
18809 (stmt_has_constants): Properly valueize SSA names when deciding
18810 whether the stmt has constants.
18811
789c34e3
RB
188122013-03-18 Richard Biener <rguenther@suse.de>
18813
18814 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
18815 whole function when there is nothing to do.
18816 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
18817 * tree-vectorizer.c (vectorize_loops): Update virtual and
18818 loop-closed SSA once.
18819 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
18820
076b4605
RB
188212013-03-18 Richard Biener <rguenther@suse.de>
18822
18823 PR middle-end/56113
18824 * domwalk.c (bb_postorder): New global static.
18825 (cmp_bb_postorder): New function.
18826 (walk_dominator_tree): Replace scheme imposing an order for
18827 visiting dominator sons by one sorting them at the time they
18828 are pushed on the stack.
18829
bdb01696
RB
188302013-03-18 Richard Biener <rguenther@suse.de>
18831
18832 PR tree-optimization/39326
18833 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
18834 (struct mem_ref): Replace mem member with ao_ref typed member.
18835 (MEM_ANALYZABLE): Adjust.
18836 (memref_eq): Likewise.
18837 (mem_ref_alloc): Likewise.
18838 (gather_mem_refs_stmt): Likewise.
18839 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
18840 (execute_sm_if_changed_flag_set): Adjust.
18841 (execute_sm): Likewise.
18842 (ref_always_accessed_p): Likewise.
18843 (refs_independent_p): Likewise.
18844 (can_sm_ref_p): Likewise.
18845
12d2dc5e
JJ
188462013-03-18 Jakub Jelinek <jakub@redhat.com>
18847
18848 PR c/56566
18849 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
18850 return 1 even for !unsignedp.
18851
286fb677
UB
188522013-03-17 Uros Bizjak <ubizjak@gmail.com>
18853
18854 * config/i386/i386.md (isa): Add x64 and nox64.
18855 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
18856 (*pushtf): Enable *roF alternative for x64 isa only.
18857 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
18858 mode attribute of integer alternatives to DImode for TARGET_64BIT.
18859 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
18860 (*movtf_internal): Merge from *movtf_internal_rex64 and
18861 *movtf_internal_sse. Use x64 and nox64 isa attributes.
18862 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
18863 nox64 isa attributes.
18864 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
18865 nox64 isa attributes.
18866 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
18867
88b97037
UB
188682013-03-17 Uros Bizjak <ubizjak@gmail.com>
18869
18870 * config/alpha/alpha.c (TARGET_LRA_P): New define.
18871
9f4f1735
JJ
188722013-03-17 Jakub Jelinek <jakub@redhat.com>
18873
18874 PR target/56640
18875 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
18876 class names. Remove trailing comma after "ALL_REGS".
18877
48f4a6fa
JH
188782013-03-16 Jan Hubicka <jh@suse.cz>
18879
18880 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
18881 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
18882 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
18883 of cgraph_get_create_node.
18884 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
18885
98e81123
JM
188862013-03-16 Jason Merrill <jason@redhat.com>
18887
18888 PR debug/49090
18889 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
18890 with DW_AT_default_value.
18891
8a298c04
JJ
188922013-03-16 Jakub Jelinek <jakub@redhat.com>
18893
18894 * BASE-VER: Set to 4.9.0.
18895
4323afa0
AK
188962013-03-14 Andi Kleen <ak@linux.intel.com>
18897
18898 PR target/56619
18899 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
18900 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
18901 Document _x* TSX intrinsics.
18902
b3c0d469
JJ
189032013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
18904 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
18905
18906 * configure.ac: Add MicroBlaze TLS support detection.
18907 * configure: Regenerate.
88b97037
UB
18908 * config/microblaze/microblaze-protos.h
18909 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
18910 symbol_mentioned_p, label_mentioned_p): Add prototypes.
18911 * config/microblaze/microblaze.c (microblaze_address_type): Add
18912 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
18913 (microblaze_address_info): Add tls_reloc.
18914 (TARGET_HAVE_TLS): Define.
18915 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
18916 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
18917 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
18918 load_tls_operand, microblaze_call_tls_get_addr,
18919 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
18920 (microblaze_classify_unspec): Handle UNSPEC_TLS.
18921 (get_base_reg): Use microblaze_tls_symbol_p.
18922 (microblaze_classify_address): Handle TLS.
88b97037
UB
18923 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
18924 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
18925 (microblaze_legitimize_address): Handle TLS.
18926 (microblaze_address_insns): Handle ADDRESS_TLS.
18927 (pic_address_needs_scratch): Handle TLS.
18928 (print_operand_address): Handle TLS.
18929 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
18930 (microblaze_expand_move): Handle TLS.
88b97037
UB
18931 (microblaze_legitimate_constant_p): Check
18932 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
18933 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
18934 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
18935 (PIC_OFFSET_TABLE_REGNUM): Set.
18936 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
18937 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
18938 (addsi3, movsi_internal2, movdf_internal): Update constraints
18939 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
18940 (move_operand): Redefine as move_src_operand,
18941 check microblaze_tls_referenced_p.
8cc9a5a5 18942
d803a491
IB
189432013-03-14 Ian Bolton <ian.bolton@arm.com>
18944
18945 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
18946 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
18947
a8504f22
IB
189482013-03-14 Ian Bolton <ian.bolton@arm.com>
18949
18950 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
18951 CC mode for AND.
18952
df2dfaea
JJ
189532013-03-14 Jakub Jelinek <jakub@redhat.com>
18954
fbd28bc3
JJ
18955 PR tree-optimization/53265
18956 * common.opt (Waggressive-loop-optimizations): New option.
18957 * tree-ssa-loop-niter.c: Include tree-pass.h.
18958 (do_warn_aggressive_loop_optimizations): New function.
18959 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
18960 if number_of_latch_executions returned constant.
18961 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
18962 early. If number_of_latch_executions returned constant, set
18963 nb_iterations_upper_bound back to it.
18964 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
18965 field.
18966 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
18967 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
18968
df2dfaea
JJ
18969 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
18970 (MULTILIB_OSDIRNAMES): Set.
18971 * genmultilib: If defaultosdirname doesn't start with :: , set
18972 defaultosdirname2 instead, clear it and emit two . multilib_raw
18973 entries instead of just one.
18974
ee0d2b68
KK
189752013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
18976
18977 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
18978 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
18979 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
18980 (SUBTARGET_OVERRIDE_OPTIONS): New.
18981
decc676e
OE
189822013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
18983
18984 PR target/49880
18985 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
18986 (musermode): Convert to Var(TARGET_USERMODE).
18987 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
18988 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
18989 * config/sh/sh.c (sh_option_override): Use
18990 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
18991 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
18992 condition.
18993 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
18994 TARGET_SH4.
18995 (udivsi3_i4_single, divsi3_i4_single): Use
18996 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
18997
f4b719c7
DK
189982013-03-13 Dave Korn <dave.korn.cygwin@....>
18999
19000 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
19001 default setting.
19002
c40eced0
RB
190032013-03-13 Richard Biener <rguenther@suse.de>
19004
19005 PR tree-optimization/56608
19006 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
19007 calls when vectorizing basic-blocks.
19008
1bfa5973
JJ
190092013-03-13 Jakub Jelinek <jakub@redhat.com>
19010
19011 PR plugins/45078
19012 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
19013 tm_file.
19014
6fcf5434
JJ
190152013-03-12 Jakub Jelinek <jakub@redhat.com>
19016
19017 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
19018
4f38fa8c
JH
190192013-03-11 Jan Hubicka <jh@suse.cz>
19020
19021 PR lto/56557
19022 * lto-streamer-out.c (output_symbol_p): Skip references from
19023 constructors of external variables.
19024
c5c5ba89
JH
190252013-03-11 Jan Hubicka <jh@suse.cz>
19026
19027 PR middle-end/56571
19028 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
19029 from pseudos.
19030 * emit-rtl.c (verify_rtx_sharing): Likewise.
19031 (copy_insn_1): Likewise.
19032 * rtl.c (copy_rtx): Likewise.
19033
c2a939b1
GJL
190342013-03-11 Georg-Johann Lay <avr@gjlay.de>
19035
19036 PR target/56591
19037 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
19038 output_operand_lossage message.
88b97037 19039
3c3279fb
RE
190402013-03-11 Richard Earnshaw <rearnsha@arm.com>
19041
19042 PR target/56470
19043 * arm.c (shift_op): Validate RTL pattern on the fly.
19044 (arm_print_operand, case 'S'): Don't use shift_operator to validate
19045 the RTL.
19046
aef5ef9d
JDA
190472013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19048
19049 PR target/56347
19050 * config/pa/pa.md (call_value): Check for calls to powf and direct to
19051 new call patterns that clobber %fr12.
19052 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
19053 split and postreload patterns.
19054 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
19055 registers %fr12 and %fr12R as call used.
19056
456610d3
SB
190572013-03-09 Steven Bosscher <steven@gcc.gnu.org>
19058
19059 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
19060 (canon_address, record_store, replace_read, check_mem_read_rtx,
19061 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
19062 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
19063 rest_of_handle_dse): Likewise.
19064
4b1baac8
RS
190652013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
19066
19067 PR middle-end/56524
19068 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
19069 Add base_optabs.
19070 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
19071 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
19072 (save_optabs_if_changed): Replace with...
19073 (init_tree_optimization_optabs): ...this.
19074 * optabs.c (save_optabs_if_changed): Rename to...
19075 (init_tree_optimization_optabs): ...this. Take the optimization node
19076 as argument. Do nothing if the base optabs are already correct.
19077 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
19078 to recompute optabs.
19079 * function.h (function): Remove optabs field.
19080 * function.c (invoke_set_current_function_hook): Call
19081 init_tree_optimization_optabs. Use the result to initialize
19082 this_fn_optabs.
19083
b7a78683
AH
190842013-02-27 Aldy Hernandez <aldyh@redhat.com>
19085
19086 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
19087 if GTMA_HAS_NO_INSTRUMENTATION.
19088 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
19089 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
19090 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
19091 * gimple-pretty-print.c (dump_gimple_transaction): Handle
19092 GTMA_HAS_NO_INSTRUMENTATION.
19093
6384c29b
JJ
190942013-03-08 Jakub Jelinek <jakub@redhat.com>
19095
19096 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
19097 libasan_preinit.o.
19098
ecd4f20a
MP
190992013-03-08 Marek Polacek <polacek@redhat.com>
19100 Jakub Jelinek <jakub@redhat.com>
19101
19102 PR tree-optimization/56478
19103 * predict.c (is_comparison_with_loop_invariant_p): Change the
19104 type of loop_step to tree.
19105 (predict_loops): Adjust.
19106 (predict_iv_comparison): Perform the computations on double_ints.
19107
64366d35
RB
191082013-03-08 Richard Biener <rguenther@suse.de>
19109
19110 PR tree-optimization/56570
19111 * tree-cfg.c (verify_expr_location_1): Verify locations for
19112 DECL_DEBUG_EXPR.
19113 * tree-sra.c (create_access_replacement): Strip locations
19114 from DECL_DEBUG_EXPRs.
19115
a9d5a059
RB
191162013-03-08 Richard Biener <rguenther@suse.de>
19117
19118 * tree-inline.c (expand_call_inline): Do not associate
19119 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
19120 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
19121
b7aa4e9a
RB
191222013-03-08 Richard Biener <rguenther@suse.de>
19123
19124 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
19125 or block changes with -Og. Fix for location / block encoding
19126 changes and PHI arguments with locations.
19127
c4c2f9fa
SB
191282013-03-07 Steven Bosscher <steven@gcc.gnu.org>
19129
19130 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
19131 for all counters.
19132 (struct output_info): Likewise.
19133 (register_overhead): Remove bad gcc_assert.
19134 (bitmap_find_bit): If there is only a single bitmap element, do not
19135 count a miss as a search.
19136 (print_statistics): Update for counter type changes.
19137 (dump_bitmap_statistics): Likewise. Print headers such that they
19138 are properly lined up with the printed counters.
19139
5bf6606a
JJ
191402013-03-07 Jakub Jelinek <jakub@redhat.com>
19141
19142 PR tree-optimization/56559
19143 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
19144 check that it has only a single use.
19145
2c653d46
RB
191462013-03-07 Richard Biener <rguenther@suse.de>
19147
19148 * doc/invoke.texi (fwhole-program): Discourage use in combination
19149 with -flto.
19150
a72d8780
JJ
191512013-03-06 Jakub Jelinek <jakub@redhat.com>
19152
01a454df
JJ
19153 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
19154
c1781047
JJ
19155 PR tree-optimization/56539
19156 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
19157 instead of GSI_CONTINUE_LINKING as last argument to
19158 force_gimple_operand_gsi. Adjust function comment.
19159
9772c47a
JJ
19160 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
19161 aarch64-cores.def.
19162
a72d8780
JJ
19163 PR middle-end/56548
19164 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
19165 promoted mode, convert the result back to the original mode.
19166
fa5556de
RB
191672013-03-06 Richard Biener <rguenther@suse.de>
19168
19169 PR middle-end/56294
19170 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
19171 (insert_updated_phi_nodes_compare_uids): New function.
19172 (update_ssa): Sort symbols_to_rename after UID before
19173 traversing it to insert PHI nodes.
19174
010403d1
RB
191752013-03-06 Richard Biener <rguenther@suse.de>
19176
19177 PR middle-end/50494
19178 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
19179 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
19180
19181 Revert
19182 2013-02-13 Richard Biener <rguenther@suse.de>
19183
19184 PR lto/50494
19185 * varasm.c (output_constant_def_1): Get the decl representing
19186 the constant as argument.
19187 (output_constant_def): Wrap output_constant_def_1.
19188 (make_decl_rtl): Use output_constant_def_1 with the decl
19189 representing the constant.
19190 (build_constant_desc): Optionally re-use a decl already
19191 representing the constant.
19192 (tree_output_constant_def): Adjust.
19193
3c27ce4c
JY
191942013-03-06 Joey Ye <joey.ye@arm.com>
19195
19196 PR lto/50293
19197 * gcc.c (convert_white_space): New function.
19198 (main): Handles white space in function name.
19199
8f6d1c86
OE
192002013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
19201
19202 PR target/56529
19203 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
19204 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
19205 to SH_DIV_CALL_TABLE for TARGET_SH2.
19206 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
19207 list.
19208 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
19209 call-table options.
19210
798a209f
SA
192112013-03-05 Sterling Augustine <saugustine@google.com>
19212 Cary Coutant <ccoutant@google.com>
19213
19214 PR debug/55364
19215 * dwarf2out.c (resolve_addr): Don't call
19216 remove_loc_list_addr_table_entries a second time for the same
19217 expression.
19218
6cfa417f 192192013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 19220
6cfa417f
JJ
19221 PR debug/56510
19222 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
19223 (avoid_complex_debug_insns): New function.
19224 (expand_debug_locations): Call it.
19225
19226 PR rtl-optimization/56484
19227 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
19228 lifetimes of hard registers on small register class machines.
19229
192302013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
19231
19232 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 19233 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 19234 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
19235 fast_interrupt.
19236 (microblaze_fast_interrupt_function_p): New function.
19237 (microblaze_is_interrupt_handler): Rename to
19238 microblaze_is_interrupt_variant and add fast_interrupt check.
19239 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
19240 (save_restore_insns): Likewise.
19241 (compute_frame_size): Likewise.
19242 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
19243 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
19244 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
19245 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
19246 microblaze_is_interrupt_variant.
19247
731aefac
KT
192482013-03-05 Kai Tietz <ktietz@redhat.com>
19249
19250 * sdbout.c (sdbout_one_type): Switch to current function's section
19251 supporting cold/hot.
19252
a72d8780 192532013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
19254
19255 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
19256 -mxl-reorder.
19257
334e71e8
JJ
192582013-03-05 Jakub Jelinek <jakub@redhat.com>
19259
0b50e654
JJ
19260 PR middle-end/56461
19261 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
19262 if VALGRIND_GET_VBITS is defined, temporarily make object
19263 memory all defined, and restore previous valgrind addressability
19264 and definability afterwards. Free this_object at the end.
19265
4ccf8f43
JJ
19266 PR middle-end/56461
19267 * lra.c (lra): Call lra_clear_live_ranges if live_p,
19268 right before calling lra_create_live_ranges, also call it
19269 when clearing live_p. Only call lra_clear_live_ranges
19270 at the end if live_p.
19271
334e71e8
JJ
19272 PR middle-end/56461
19273 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
19274
9ca966ca
RB
192752013-03-05 Richard Biener <rguenther@suse.de>
19276
19277 PR tree-optimization/56521
19278 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
19279 value-id.
19280
d273b176
SB
192812013-03-05 Steven Bosscher <steven@gcc.gnu.org>
19282
19283 PR c++/55135
19284 * except.h (remove_unreachable_eh_regions): New prototype.
19285 * except.c (remove_eh_handler_splicer): New function, split out
19286 of remove_eh_handler.
19287 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
19288 warning about running it on many EH regions one at a time.
19289 (remove_unreachable_eh_regions_worker): New function, walk the
19290 EH tree in depth-first order and remove non-marked regions.
19291 (remove_unreachable_eh_regions): New function.
19292 * tree-eh.c (mark_reachable_handlers): New function, split out
19293 from remove_unreachable_handlers.
19294 (remove_unreachable_handlers): Use mark_reachable_handlers and
19295 remove_unreachable_eh_regions.
19296 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
19297 and remove_unreachable_eh_regions.
19298
5e7f1aef
RB
192992013-03-05 Richard Biener <rguenther@suse.de>
19300
19301 PR middle-end/56525
19302 * loop-init.c (fix_loop_structure): Remove loops in two stages,
19303 not freeing them until the end.
19304
f276b762
AK
193052013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19306
19307 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
19308
12a43ab8
RB
193092013-03-05 Richard Biener <rguenther@suse.de>
19310
19311 PR tree-optimization/56270
19312 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
19313 of loads after scheduling an SLP instance.
19314
93675444
JJ
193152013-03-05 Jakub Jelinek <jakub@redhat.com>
19316
db4138e3
JJ
19317 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
19318 tic6x.exp.
19319 (check_gcc_parallelize): Run guality.exp as a separate job from
19320 vect.exp with unsorted.exp and $(dg_target_exps) separately from
19321 struct-layout-1.exp with stackalign.exp.
19322
dd3d1ec0
JJ
19323 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
19324
b8d381a3
JJ
19325 PR middle-end/56461
19326 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
19327 load_index sbitmap even if some bit in it isn't set.
19328
b4f9786b
JJ
19329 PR middle-end/56461
19330 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
19331 (discover_iteration_bound_by_body_walk): Change queues to
19332 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
19333 spelling in comment. Call safe_push on queues[bound_index] directly.
19334 Release queues[queue_index] in every iteration unconditionally.
19335 Release bounds vector.
19336
93675444
JJ
19337 PR middle-end/56461
19338 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
19339 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
19340 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
19341 inner_phis vector.
19342
3e492e9c
RB
193432013-03-05 Richard Biener <rguenther@suse.de>
19344
19345 PR lto/56515
19346 * tree-inline.c (remap_blocks_to_null): New function.
19347 (expand_call_inline): When expanding a call stmt without
19348 an associated block inline remap all callee blocks to NULL.
19349
a5d1569a
JJ
193502013-03-05 Jakub Jelinek <jakub@redhat.com>
19351
86efb5cd
JJ
19352 PR rtl-optimization/56494
19353 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
19354 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
19355 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
19356
85f5dbea
JJ
19357 PR middle-end/56461
19358 * sel-sched-ir.c (free_sched_pools): Release
19359 succs_info_pool.stack[succs_info_pool.max_top] vectors too
19360 if succs_info_pool.max_top isn't -1.
19361
a5d1569a
JJ
19362 PR bootstrap/56509
19363 * opts.c (opts_obstack, opts_concat): Moved to...
19364 * opts-common.c (opts_obstack, opts_concat): ... here.
19365
4432aa6c
JJ
193662013-03-04 Jakub Jelinek <jakub@redhat.com>
19367
19368 PR middle-end/56461
19369 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
19370
f3a1fb91
MJ
193712013-03-04 Martin Jambor <mjambor@suse.cz>
19372
19373 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
19374 all appropriate places.
19375
22110e6c
EB
193762013-01-04 Eric Botcazou <ebotcazou@adacore.com>
19377
19378 PR tree-optimization/56424
19379 * ipa-split.c (split_function): Do not set the RSO flag if result is
19380 not by reference and its type is a register type.
19381
a72d8780 193822013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 19383
88b97037 19384 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 19385 (microblaze_legitimate_pic_operand): Likewise
88b97037 19386 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
19387 new function microblaze_legitimate_pic_operand
19388 * config/microblaze/microblaze-protos.h
19389 (microblaze_legitimate_pic_operand): Declare.
19390
a72d8780 193912013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 19392
a72d8780 19393 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 19394 New predicate for supported rtx code types.
a72d8780 19395 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
19396 call_insn_simple_operand predicate.
19397
541d9ac8
JJ
193982013-03-04 Jakub Jelinek <jakub@redhat.com>
19399
5eb010bc
JJ
19400 PR middle-end/56461
19401 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
19402 partitions.ordered_remove.
19403
30862efc
JJ
19404 PR middle-end/56461
19405 * tree-vect-stmts.c (vectorizable_conversion): Don't call
19406 vec_oprnds0.create (1) for modifier == NONE.
19407
8930f723
JJ
19408 PR middle-end/56461
19409 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
19410 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
19411 vec_oprnds1 right before pushing anything to it for
19412 scalar_shift_arg.
19413
541d9ac8
JJ
19414 PR middle-end/56461
19415 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
19416 set nbbs to 0 instead of having separate code path.
19417 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
19418 instead of false as last argument if returning NULL.
19419
7aa7f2e3
SL
194202013-03-03 Sandra Loosemore <sandra@codesourcery.com>
19421
19422 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
19423 the attribute is now called "target" instead of "option".
19424 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
19425 * doc/tm.texi.in (Target Attributes): Likewise document the correct
19426 attribute/pragma name for TARGET_OPTION_VALID_P and
19427 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
19428 * doc/tm.texi: Regenerated.
19429
8930f723 194302013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 19431
8930f723 19432 * config/microblaze/microblaze.c:
cb8a1637 19433 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
19434 * config/microblaze/microblaze.h: Add -mxl-reorder to
19435 DRIVER_SELF_SPECS.
19436 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
19437 instructions emitted if TARGET_REORDER.
88b97037
UB
19438 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
19439 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 19440 separately.
cb8a1637 19441
4dc1d68c
XDL
194422013-03-01 Xinliang David Li <davidxl@google.com>
19443
19444 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
19445 walk length.
19446
689eaba3
JJ
194472013-03-01 Jakub Jelinek <jakub@redhat.com>
19448
9d676bf6
JJ
19449 PR middle-end/56461
19450 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
19451 vector even when returning true. Fix up function comment formatting.
19452
caff7edf
JJ
19453 PR middle-end/56461
19454 * ira-build.c (ira_loop_nodes_count): New variable.
19455 (create_loop_tree_nodes): Initialize it.
19456 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
19457
b6b9227d
JJ
19458 PR middle-end/56461
19459 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
19460 method on dr_chain and result_chain.
19461 * tree-vect-stmts.c (vectorizable_store): Only call
19462 result_chain.create if j == 0.
19463
689eaba3
JJ
19464 PR middle-end/56461
19465 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
19466 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
19467 before overwriting it.
19468
40bf31ed
TB
194692013-03-01 Tobias Burnus <burnus@net-b.de>
19470
19471 * doc/extended.texi (C Extensions): Change order in @menu
19472 to match @node.
19473 (Other MIPS Built-in Functions): Move last MIPS entry before
19474 "picoChip Built-in Functions".
19475 (SH Built-in Functions): Move after RX Built-in Functions.
19476 * doc/gcc.texi (Introduction): Change order in @menu
19477 to match @node.
19478 * doc/md.texi (Constraints): Ditto.
19479 * gty.texi (Type Information): Ditto.
19480 (User-provided marking routines for template types): Make
19481 subsection.
19482 * doc/invoke.texi (AArch64 Options): Move before
19483 "Adapteva Epiphany Options".
19484
e664c61c
KS
194852013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
19486 Jakub Jelinek <jakub@redhat.com>
19487
19488 PR sanitizer/56454
19489 * asan.c (gate_asan): Lookup no_sanitize_address instead of
19490 no_address_safety_analysis attribute.
19491 * doc/extend.texi (no_address_safety_attribute): Rename to
19492 no_sanitize_address attribute, mention no_address_safety_analysis
19493 attribute as deprecated alias.
19494
37b5ec8f
JJ
194952013-02-28 Jakub Jelinek <jakub@redhat.com>
19496
19497 PR middle-end/56461
19498 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
19499 type to vec<vec<tree> > *.
19500 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
19501 to be vec<tree> instead of vec<tree> *, set vec_defs
19502 to vNULL and call vec_defs.create (number_of_vects), adjust other
19503 uses of vec_defs.
19504 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
19505 vectorizable_condition): Adjust vect_get_slp_defs callers.
19506
ba96cdfb
JG
195072013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19508
19509 * config/aarch64/aarch64.c
19510 (aarch64_float_const_representable): Remove unused variable.
19511
6f549691
JG
195122013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19513
19514 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
19515
af55e82d
JG
195162013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19517
19518 * config/aarch64/aarch64-builtins.c
19519 (aarch64_init_simd_builtins): Make static.
19520
1df3f464
JG
195212013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19522
19523 * config/aarch64/aarch64.c
19524 (aarch64_simd_make_constant): Make static.
19525
f8f42513
MJ
195262013-02-28 Martin Jambor <mjambor@suse.cz>
19527
19528 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
19529 with no initialization to the RHS of debug statements.
19530
b48b3fc4
MJ
195312013-02-28 Martin Jambor <mjambor@suse.cz>
19532
19533 PR tree-optimization/56294
19534 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
19535 Adjust dumping.
19536 (get_access_replacement): Do not call create_access_replacement.
19537 Assert a replacement exists.
19538 (get_repl_default_def_ssa_name): Create the replacement declaration
19539 itself.
19540
c3ae224c
RR
195412013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19542
19543 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
19544 final_end_function.
19545
45fa0eef
MP
195462013-02-28 Marek Polacek <polacek@redhat.com>
19547
19548 PR rtl-optimization/56466
19549 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
19550 if we're changing a loop.
19551 (peel_loops_completely): Likewise.
19552
502c067d
PC
195532013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
19554
19555 PR c++/55813
19556 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
19557
ff24afc8
GJL
195582013-02-28 Georg-Johann Lay <avr@gjlay.de>
19559
19560 PR target/56445
19561 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
19562 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
19563 INTX_FTYPE_FX, FX_FTYPE_INTX.
19564 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
19565
c7b1fc1b
GJL
195662013-02-28 Georg-Johann Lay <avr@gjlay.de>
19567
19568 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
19569 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
19570 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
19571 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
19572 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
19573 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
19574 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
19575 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
19576 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
19577 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
19578 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
19579 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
19580 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
19581 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
19582 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
19583 (avrxmega6): Increase max flash segments from 5 to 6.
19584 * config/avr/t-multilib: Regenerate.
19585 * config/avr/avr-tables.opt: Regenerate.
19586 * doc/avr-mmcu.texi: Regenerate.
19587
4a0e3cfe
GJL
195882013-02-28 Georg-Johann Lay <avr@gjlay.de>
19589
19590 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
19591 (avr_device_to_arch): Rename to avr_device_to_ld.
19592 (avr_device_to_as): New prototype.
19593 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
19594 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
19595 * config/avr/driver-avr.c (avr_device_to_as): New.
19596 (avr_device_to_arch): Rename to avr_device_to_ld.
19597
97785e52
JJ
195982013-02-27 Jakub Jelinek <jakub@redhat.com>
19599
3f292312
JJ
19600 PR middle-end/56461
19601 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
19602 method on dr_chain and result_chain.
19603
a344216b
JJ
19604 PR middle-end/56461
19605 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
19606 pointer_set_destroy on not_executed_last_iteration.
19607
f121ad02 19608 PR middle-end/56461
88b97037 19609 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 19610
307f83a3
JJ
19611 PR middle-end/56461
19612 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
19613 FOR_EACH_DEFINED_FUNCTION when freeing state.
19614
e19624ee
JJ
19615 PR middle-end/56461
19616 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
19617 pool_free.
19618 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
19619 overwriting it.
19620
90e709fd
JJ
19621 PR middle-end/56461
19622 * ipa-cp.c (decide_whether_version_node): Call vec_free on
19623 known_aggs[i].items and release known_aggs vector.
19624
97785e52
JJ
19625 PR middle-end/56461
19626 * ipa-reference.c (propagate): Free node_info even for alias nodes.
19627
196282013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 19629
97785e52
JJ
19630 * config/microblaze/microblaze.c (microblaze_emit_compare):
19631 Use xor for EQ/NE comparisions.
19632 * config/microblaze/microblaze.md (cstoresf4): Add constraints
19633 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 19634
6fa5e0ed
JJ
196352013-02-27 Jakub Jelinek <jakub@redhat.com>
19636
19637 PR middle-end/56461
19638 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
19639 vector.
19640 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
19641 vec_safe_push, always update *slot.
19642 (redirect_edge_var_map_clear): Use vec_free.
19643 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
19644 (free_var_map_entry): Use vec_free.
19645 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
19646 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
19647
436a956a
AB
196482013-02-27 Andrey Belevantsev <abel@ispras.ru>
19649
19650 PR middle-end/45472
436a956a
AB
19651 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
19652 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
19653 Reorder tests for speculativeness in the logical and operator.
19654
f5c2caca
JJ
196552013-02-27 Jakub Jelinek <jakub@redhat.com>
19656
0fcb564b
JJ
19657 * incpath.c (add_standard_paths): Use reconcat instead of concat
19658 where appropriate and avoid leaking memory.
19659
dc357798
JJ
19660 * opts.h: Include obstack.h.
19661 (opts_concat): New prototype.
19662 (opts_obstack): New declaration.
19663 * opts.c (opts_concat): New function.
19664 (opts_obstack): New variable.
19665 (init_options_struct): Call gcc_init_obstack on opts_obstack.
19666 (finish_options): Use opts_concat instead of concat
19667 and XOBNEWVEC instead of XNEWVEC.
19668 * opts-common.c (generate_canonical_option, decode_cmdline_option,
19669 generate_option): Likewise.
19670 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
19671 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
19672
f5c2caca
JJ
19673 PR target/56455
19674 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
19675 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
19676
d0163673
JJ
196772013-02-26 Jakub Jelinek <jakub@redhat.com>
19678
19679 PR middle-end/56461
19680 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
19681
b5ad2b8e
JR
196822013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
19683
19684 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
19685 (arm_block_move_unaligned_straight): Likewise.
19686 (arm_adjust_block_mem): Likewise.
19687
9b639e2c
JR
196882013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
19689
19690 PR target/48901
19691 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
19692 temp, cond and label.
19693 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
19694
e13a0ccb
JR
19695 PR target/52500
19696 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
19697 * config/c6x/c6x.h (dbx_register_map): Update declaration.
19698
fbe4f171
JR
19699 PR target/52501
19700 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
19701 of prologue/epilogue functions.
19702
ae006543
JR
19703 PR target/52550
19704 * config/tilegx/tilegx.c (tilegx_expand_prologue):
19705 Remove unused variable cfa_offset.
19706 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
19707
c81369fa
JR
19708 PR target/54639
19709 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
19710 type promotion to unsigned.
19711
f8a8fea7
JR
19712 PR target/54640
19713 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
19714 for HOST_WIDE_INT of 32 bit / same size as int.
19715 (arm_block_move_unaligned_straight): Likewise.
19716 (arm_adjust_block_mem): Likewise.
19717
f8be5169
JR
19718 PR target/54662
19719 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
19720 ALL_CFLAGS.
19721
f1ad3354
MP
197222013-02-26 Marek Polacek <polacek@redhat.com>
19723
19724 PR tree-optimization/56426
88b97037 19725 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 19726
a6af0f42
RB
197272013-02-26 Richard Biener <rguenther@suse.de>
19728
19729 PR target/56444
19730 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
19731 unused variable loops.
19732
aca43c6c
JJ
197332013-02-26 Jakub Jelinek <jakub@redhat.com>
19734
cecbe5d9
JJ
19735 PR tree-optimization/56448
19736 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
19737 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
19738 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
19739 later operands of the references, or even first operand for
19740 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
19741
aca43c6c
JJ
19742 PR tree-optimization/56443
19743 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
19744 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
19745 to type_for_mode langhook.
19746
53e2e141
MT
197472013-02-25 Matt Turner <mattst88@gmail.com>
19748
19749 * doc/invoke.texi: Document r4700.
19750
259ee451
RB
197512013-02-25 Richard Biener <rguenther@suse.de>
19752
19753 PR tree-optimization/56175
19754 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
19755 split out from ...
19756 (simplify_bitwise_binary): ... here. Also guard the conversion
19757 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
19758
6d65e8f1
CM
197592013-02-25 Catherine Moore <clm@codesourcery.com>
19760
19761 Revert:
19762 2013-02-24 Catherine Moore <clm@codesourcery.com>
19763 Maciej W. Rozycki <macro@codesourcery.com>
19764 Tom de Vries <tom@codesourcery.com>
a72d8780 19765 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
19766 Iain Sandoe <iain@codesourcery.com>
19767 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 19768 Chao-ying Fu <fu@mips.com>
88b97037 19769
6d65e8f1 19770 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 19771 Document new function attributes.
6d65e8f1
CM
19772 * doc/invoke.texi (minterlink-compressed, mmicromips,
19773 m14k, m14ke, m14kec): Document new options.
19774 (minterlink-mips16): Update documentation.
19775 * doc/md.texi (ZC, ZD): Document new constraints.
19776 * configure.ac (gcc_cv_as_micromips): Check if linker
19777 supports the .set micromips directive.
19778 * configure: Regenerate.
19779 * config.in: Regenerate.
19780 * config/mips/mips-tables.opt: Regenerate.
19781 * config/mips/micromips.md: New file.
19782 * constraints.md (ZC, AD): New constraints.
19783 * config/mips/predicates.md (movep_src_register): New predicate.
19784 (movep_src_operand): New predicate.
19785 (non_volatile_mem_operand): New predicate.
19786 * config/mips/mips.md (multimem): New type.
19787 (length): Differentiate between 17-bit and 18-bit branch offsets.
19788 (MOVEP1, MOVEP2): New mode iterator.
19789 (mov_<load>l): Use ZC constraint.
19790 (mov_<load>r): Likewise.
19791 (mov_<store>l): Likewise.
19792 (mov_<store>r): Likewise.
19793 (*branch_equality<mode>_inverted): Add microMIPS support.
19794 (*branch_equality<mode>): Likewise.
19795 (*jump_absolute): Likewise.
19796 (indirect_jump_<mode>): Likewise.
19797 (tablejump_<mode>): Likewise.
19798 (<optab>_internal): Likewise.
19799 (sibcall_internal): Likewise.
19800 (sibcall_value_internal): Likewise.
19801 (prefetch): Use constraint ZD.
19802 * config/mips/mips.opt (minterlink-compressed): New option.
19803 (minterlink-mips16): Now an alias for minterlink-compressed.
19804 (mmicromips): New option.
19805 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
19806 (compare_and_swap_12): Likewise.
19807 (sync_add<mode>): Likewise.
19808 (sync_<optab>_12): Likewise.
19809 (sync_old_<optab>_12): Likewise.
19810 (sync_new_<optab>_12): Likewise.
19811 (sync_nand_12): Likewise.
19812 (sync_old_nand_12): Likewise.
19813 (sync_new_nand_12): Likewise.
19814 (sync_sub<mode>): Likewise.
19815 (sync_old_add<mode>): Likewise.
19816 (sync_old_sub<mode>): Likewise.
19817 (sync_new_add<mode>): Likewise.
19818 (sync_new_sub<mode>): Likewise.
19819 (sync_<optab><mode>): Likewise.
19820 (sync_old_<optab><mode>): Likewise.
19821 (sync_new_<optab><mode>): Likewise.
19822 (sync_nand<mode>): Likewise.
19823 (sync_old_nand<mode>): Likewise.
19824 (sync_new_nand<mode>): Likewise.
19825 (sync_lock_test_and_set<mode>): Likewise.
19826 (test_and_set_12): Likewise.
19827 (atomic_compare_and_swap<mode>): Likewise.
19828 (atomic_exchange<mode>_llsc): Likewise.
19829 (atomic_fetch_add<mode>_llsc): Likewise.
19830 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
19831 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
19832 (umips_save_restore_pattern_p): Likewise.
19833 (umips_load_store_pair_p): Likewise.
19834 (umips_output_load_store_pair): Likewise.
19835 (umips_movep_target_p): Likewise.
19836 (umips_12bit_offset_address_p): Likewise.
19837 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
19838 (mips_base_mips16): Rename this...
19839 (mips_base_compression_flags): ...to this. Update all uses.
19840 (mips_attribute_table): Add micromips, nomicromips and nocompression.
19841 (mips_mips16_decl_p): Delete.
19842 (mips_nomips16_decl_p): Delete.
19843 (mips_get_compress_on_flags): New function.
19844 (mips_get_compress_off_flags): New function.
19845 (mips_get_compress_mode): New function.
19846 (mips_get_compress_on_name): New function.
19847 (mips_get_compress_off_name): New function.
19848 (mips_insert_attributes): Support multiple compression types.
19849 (mips_merge_decl_attributes): Likewise.
19850 (umips_12bit_offset_address_p): New function.
19851 (mips_start_function_definition): Emit .set micromips directive.
19852 (mips_call_may_need_jalx_p): New function.
19853 (mips_function_ok_for_sibcall): Add microMIPS support.
19854 (mips_print_operand_punctuation): Support short delay slots and
19855 compact jumps.
19856 (umips_swm_mask, umips_swm_encoding): New.
19857 (umips_build_save_restore): New function.
19858 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
19859 (was_mips16_p): Remove.
19860 (old_compression_mode): New.
19861 (mips_set_compression_mode): New function.
19862 (mips_set_current_function): Add microMIPS support.
19863 (mips_option_override): Likewise.
19864 (umips_save_restore_pattern_p): New function.
19865 (umips_output_save_restore): New function.
19866 (umips_load_store_pair_p_1): New function.
19867 (umips_load_store_pair_p): New function.
19868 (umips_output_load_store_pair_1): New function.
19869 (umips_output_load_store_pair): New function.
19870 (umips_movep_target_p) New function.
19871 (mips_prepare_pch_save): Add microMIPS support.
19872 * config/mips/mips.h (TARGET_COMPRESSION): New.
19873 (TARGET_CPU_CPP_BUILTINS): Update macro
19874 to use new compression flags and to support microMIPS.
19875 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
19876 (MIPS_ARCH_FLOAT_SPEC): Likewise.
19877 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
19878 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
19879 (ASM_SPEC): Support mmicromips and mno-micromips.
19880 (M16STORE_REG_P): New macro.
19881 (MIPS_CALL): Support TARGET_MICROMIPS.
19882 (MICROMIPS_J): New macro.
19883 (mips_base_mips16): Rename this...
19884 (mips_base_compression_flags): ...to this.
19885 (UMIPS_12BIT_OFFSET_P): New macro.
19886 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
19887 (MULTILIB_DIRNAMES): Likewise.
19888
5e5df392
TV
198892013-02-25 Tom de Vries <tom@codesourcery.com>
19890
19891 PR rtl-optimization/56131
19892 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
19893 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
19894 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
19895
3fdb53c1
TB
198962013-02-25 Tobias Burnus <burnus@net-b.de>
19897
19898 * doc/invoke.texi (-fsanitize=): Move from optimization
19899 to debugging options.
19900
ed358aea
AB
199012013-02-25 Andrey Belevantsev <abel@ispras.ru>
19902
19903 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
19904
f45e9053
AB
199052013-02-25 Andrey Belevantsev <abel@ispras.ru>
19906 Alexander Monakov <amonakov@ispras.ru>
19907
19908 PR middle-end/56077
19909 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
19910 flush pending lists also on non-jumps. Adjust comment.
19911
6941b508
CM
199122013-02-24 Catherine Moore <clm@codesourcery.com>
19913 Maciej W. Rozycki <macro@codesourcery.com>
19914 Tom de Vries <tom@codesourcery.com>
a72d8780 19915 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
19916 Iain Sandoe <iain@codesourcery.com>
19917 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 19918 Chao-ying Fu <fu@mips.com>
6941b508
CM
19919
19920 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 19921 Document new function attributes.
6941b508
CM
19922 * doc/invoke.texi (minterlink-compressed, mmicromips,
19923 m14k, m14ke, m14kec): Document new options.
19924 (minterlink-mips16): Update documentation.
19925 * doc/md.texi (ZC, ZD): Document new constraints.
19926 * configure.ac (gcc_cv_as_micromips): Check if linker
19927 supports the .set micromips directive.
19928 * configure: Regenerate.
19929 * config.in: Regenerate.
19930 * config/mips/mips-tables.opt: Regenerate.
19931 * config/mips/micromips.md: New file.
19932 * constraints.md (ZC, AD): New constraints.
19933 * config/mips/predicates.md (movep_src_register): New predicate.
19934 (movep_src_operand): New predicate.
19935 (non_volatile_mem_operand): New predicate.
19936 * config/mips/mips.md (multimem): New type.
19937 (length): Differentiate between 17-bit and 18-bit branch offsets.
19938 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 19939 (mov_<load>l): Use ZC constraint.
6941b508
CM
19940 (mov_<load>r): Likewise.
19941 (mov_<store>l): Likewise.
19942 (mov_<store>r): Likewise.
19943 (*branch_equality<mode>_inverted): Add microMIPS support.
19944 (*branch_equality<mode>): Likewise.
19945 (*jump_absolute): Likewise.
19946 (indirect_jump_<mode>): Likewise.
19947 (tablejump_<mode>): Likewise.
19948 (<optab>_internal): Likewise.
19949 (sibcall_internal): Likewise.
19950 (sibcall_value_internal): Likewise.
19951 (prefetch): Use constraint ZD.
19952 * config/mips/mips.opt (minterlink-compressed): New option.
19953 (minterlink-mips16): Now an alias for minterlink-compressed.
19954 (mmicromips): New option.
19955 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
19956 (compare_and_swap_12): Likewise.
19957 (sync_add<mode>): Likewise.
19958 (sync_<optab>_12): Likewise.
19959 (sync_old_<optab>_12): Likewise.
19960 (sync_new_<optab>_12): Likewise.
19961 (sync_nand_12): Likewise.
19962 (sync_old_nand_12): Likewise.
19963 (sync_new_nand_12): Likewise.
19964 (sync_sub<mode>): Likewise.
19965 (sync_old_add<mode>): Likewise.
19966 (sync_old_sub<mode>): Likewise.
19967 (sync_new_add<mode>): Likewise.
19968 (sync_new_sub<mode>): Likewise.
19969 (sync_<optab><mode>): Likewise.
19970 (sync_old_<optab><mode>): Likewise.
19971 (sync_new_<optab><mode>): Likewise.
19972 (sync_nand<mode>): Likewise.
19973 (sync_old_nand<mode>): Likewise.
19974 (sync_new_nand<mode>): Likewise.
19975 (sync_lock_test_and_set<mode>): Likewise.
19976 (test_and_set_12): Likewise.
19977 (atomic_compare_and_swap<mode>): Likewise.
19978 (atomic_exchange<mode>_llsc): Likewise.
19979 (atomic_fetch_add<mode>_llsc): Likewise.
19980 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
19981 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
19982 (umips_save_restore_pattern_p): Likewise.
19983 (umips_load_store_pair_p): Likewise.
19984 (umips_output_load_store_pair): Likewise.
19985 (umips_movep_target_p): Likewise.
19986 (umips_12bit_offset_address_p): Likewise.
19987 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
19988 (mips_base_mips16): Rename this...
19989 (mips_base_compression_flags): ...to this. Update all uses.
19990 (mips_attribute_table): Add micromips, nomicromips and nocompression.
19991 (mips_mips16_decl_p): Delete.
19992 (mips_nomips16_decl_p): Delete.
3fdb53c1 19993 (mips_get_compress_on_flags): New function.
6941b508
CM
19994 (mips_get_compress_off_flags): New function.
19995 (mips_get_compress_mode): New function.
19996 (mips_get_compress_on_name): New function.
19997 (mips_get_compress_off_name): New function.
19998 (mips_insert_attributes): Support multiple compression types.
19999 (mips_merge_decl_attributes): Likewise.
20000 (umips_12bit_offset_address_p): New function.
20001 (mips_start_function_definition): Emit .set micromips directive.
20002 (mips_call_may_need_jalx_p): New function.
20003 (mips_function_ok_for_sibcall): Add microMIPS support.
20004 (mips_print_operand_punctuation): Support short delay slots and
20005 compact jumps.
20006 (umips_swm_mask, umips_swm_encoding): New.
20007 (umips_build_save_restore): New function.
20008 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
20009 (was_mips16_p): Remove.
20010 (old_compression_mode): New.
20011 (mips_set_compression_mode): New function.
20012 (mips_set_current_function): Add microMIPS support.
20013 (mips_option_override): Likewise.
20014 (umips_save_restore_pattern_p): New function.
20015 (umips_output_save_restore): New function.
20016 (umips_load_store_pair_p_1): New function.
20017 (umips_load_store_pair_p): New function.
20018 (umips_output_load_store_pair_1): New function.
20019 (umips_output_load_store_pair): New function.
20020 (umips_movep_target_p) New function.
20021 (mips_prepare_pch_save): Add microMIPS support.
20022 * config/mips/mips.h (TARGET_COMPRESSION): New.
20023 (TARGET_CPU_CPP_BUILTINS): Update macro
20024 to use new compression flags and to support microMIPS.
20025 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
20026 (MIPS_ARCH_FLOAT_SPEC): Likewise.
20027 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
20028 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
20029 (ASM_SPEC): Support mmicromips and mno-micromips.
20030 (M16STORE_REG_P): New macro.
20031 (MIPS_CALL): Support TARGET_MICROMIPS.
20032 (MICROMIPS_J): New macro.
20033 (mips_base_mips16): Rename this...
20034 (mips_base_compression_flags): ...to this.
20035 (UMIPS_12BIT_OFFSET_P): New macro.
20036 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
20037 (MULTILIB_DIRNAMES): Likewise.
20038
cdebbc6d
JJ
200392013-02-24 Jakub Jelinek <jakub@redhat.com>
20040
20041 PR target/52555
20042 * target-globals.c (save_target_globals): For init_reg_sets and
20043 target_reinit remporarily set this_fn_optabs to this_target_optabs.
20044
18c63565
JG
200452013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
20046
20047 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
20048 * config/aarch64/t-aarch64
20049 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
20050
2194f7a2
VM
200512013-02-22 Vladimir Makarov <vmakarov@redhat.com>
20052
20053 PR inline-asm/56148
20054 * lra-constraints.c (process_alt_operands): Reload operand
20055 conflicting with earlier clobber only if no more other conflicting
20056 operands.
20057
7d613735
JJ
200582013-02-22 Jakub Jelinek <jakub@redhat.com>
20059
20060 PR sanitizer/56393
20061 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
20062 if not linking a shared library.
20063
ac8d93a7
SL
200642013-02-22 Seth LaForge <sethml@google.com>
20065
20066 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
20067
e0237780
GY
200682013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
20069
3fdb53c1
TB
20070 * config/arm/arm.md (split for extendsidi): Update condition.
20071 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
20072 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
20073 (qhs_zextenddi_cstr): Likewise.
e0237780 20074
d7fde18c
JJ
200752013-02-21 Jakub Jelinek <jakub@redhat.com>
20076
be63b77d
JJ
20077 PR middle-end/56420
20078 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
20079 avoid signed wrapping.
20080 (expand_mult): Handle properly multiplication by
20081 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
20082 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
20083 in the compiler if coeff is HOST_WIDE_INT_MIN.
20084 (expand_divmod): Don't make ext_op1 static, change it's type to
20085 uhwi. Avoid undefined behavior in -INTVAL (op1).
20086
d7fde18c
JJ
20087 PR rtl-optimization/50339
20088 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
20089 field.
20090 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
20091 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
20092 into splitting_ashiftrt field.
20093 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
20094 ASHIFTRT.
20095 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
20096 choices.
20097
6aad4455
AH
200982013-02-20 Aldy Hernandez <aldyh@redhat.com>
20099
20100 PR middle-end/56108
20101 * trans-mem.c (execute_tm_mark): Do not expand transactions that
20102 are sure to go irrevocable.
20103
38fe784d
HPN
201042013-02-21 Hans-Peter Nilsson <hp@axis.com>
20105
20106 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
20107 scalars are valid operands.
20108
0fd44da3
MJ
201092013-02-21 Martin Jambor <mjambor@suse.cz>
20110
20111 PR tree-optimization/56310
20112 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
20113 only matching indices and non-negative final offsets.
20114 (intersect_aggregates_with_edge): Pass src_idx to
20115 agg_replacements_to_vector. Pass src_idx insstead of index to
20116 intersect_with_agg_replacements.
20117
7a92038b
MJ
201182013-02-21 Martin Jambor <mjambor@suse.cz>
20119
20120 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
20121 instead of hard-wired defaults.
20122
c0da9c37
MR
201232013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
20124
20125 * doc/invoke.texi (MIPS Options): Update documentation of the
20126 floating-point multiply-accumulate instruction restrictions.
20127
d247ea0c 201282013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
20129
20130 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
20131 asan_shadow_offset on x86_64 linux.
20132
22deefcb
RB
201332013-02-21 Richard Biener <rguenther@suse.de>
20134
20135 PR tree-optimization/56415
20136 Revert
20137 2013-02-11 Richard Biener <rguenther@suse.de>
20138
20139 PR tree-optimization/56273
20140 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
20141 first VRP run.
20142
7bcc6e75
JJ
201432013-02-21 Jakub Jelinek <jakub@redhat.com>
20144
a0ad148f
JJ
20145 PR bootstrap/56258
20146 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
20147 instead of @itemx.
20148
7bcc6e75
JJ
20149 PR inline-asm/56405
20150 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
20151 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
20152
a0a7b611
JH
201532013-02-20 Jan Hubicka <jh@suse.cz>
20154
20155 PR tree-optimization/56265
88b97037
UB
20156 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
20157 when target is referenced for first time.
a0a7b611 20158
c0e50f72
RB
201592013-02-20 Richard Biener <rguenther@suse.de>
20160
20161 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
20162 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
20163 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
20164 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
20165 not return anything.
20166 (rename_ssa_copies): Do not remove unused locals.
20167 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 20168 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
20169 * passes.c (execute_function_todo): Do not schedule unused locals
20170 removal if cleanup_tree_cfg did something.
20171 * tree-ssa-live.c (remove_unused_locals): Dump statistics
20172 about the number of removed locals.
20173
a52ca739
RB
201742013-02-20 Richard Biener <rguenther@suse.de>
20175
20176 PR tree-optimization/56398
88b97037 20177 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 20178
ec9c9d1b
MJ
201792013-02-20 Martin Jambor <mjambor@suse.cz>
20180
20181 PR tree-optimization/55334
20182 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
20183 restricted pointers to arrays.
20184
e91c8ed6 201852013-02-20 Richard Biener <rguenther@suse.de>
88b97037 20186 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
20187
20188 PR tree-optimization/56396
20189 * tree-ssa-ccp.c (n_const_val): New static variable.
20190 (get_value): Return NULL for SSA names we don't have a lattice
20191 entry for.
20192 (ccp_initialize): Initialize n_const_val.
20193 * tree-ssa-copy.c (n_copy_of): New static variable.
20194 (init_copy_prop): Initialize n_copy_of.
20195 (get_value): Return NULL_TREE for SSA names we don't have a
20196 lattice entry for.
20197
3d916479
MJ
201982013-02-20 Martin Jambor <mjambor@suse.cz>
20199
20200 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
20201
71a86758
RB
202022013-02-20 Richard Biener <rguenther@suse.de>
20203
20204 * genpreds.c (write_lookup_constraint): Do not compare first
20205 letter of the constraint again.
20206
79836a12
RB
202072013-02-20 Richard Biener <rguenther@suse.de>
20208
20209 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
20210 and ceil_log2.
20211 (get_use_iv_cost): Terminate hashtable walk when coming across
20212 an empty entry.
20213
bbe4fb2c
IZ
202142013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
20215
20216 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
20217 reassociation for avx2 targets.
20218
a72d8780 202192012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 20220
c77f83d5
EI
20221 * config/microblaze/microblaze.c: microblaze_has_clz = 0
20222 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 20223 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
20224 version and TARGET_PATTERN_COMPARE check
20225 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 20226
a72d8780 202272012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 20228
a72d8780 20229 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
20230 function before branching.
20231
242387fa
AB
202322012-02-19 Andrey Belevantsev <abel@ispras.ru>
20233
20234 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
20235 DUMP_INSN_RTX_UID.
20236 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
20237
b4979ab9
AB
202382012-02-19 Andrey Belevantsev <abel@ispras.ru>
20239
20240 PR middle-end/55889
b4979ab9
AB
20241 * sel-sched.c: Include ira.h.
20242 (implicit_clobber_conflict_p): New function.
20243 (moveup_expr): Use it.
88b97037 20244 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 20245
24d63016
RB
202462013-02-19 Richard Biener <rguenther@suse.de>
20247
20248 PR tree-optimization/56384
20249 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
20250 (vn_hash_type): Split out from ...
20251 (vn_hash_constant_with_type): ... here.
20252 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
20253 (vn_phi_eq): Compare types from vn_phi_s structure.
20254 (vn_phi_lookup): Populate vn_phi_s type.
20255 (vn_phi_insert): Likewise.
20256
a475fd3d
JJ
202572013-02-19 Jakub Jelinek <jakub@redhat.com>
20258
47cc28f5
JJ
20259 PR tree-optimization/56350
20260 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
20261 if haven't found reduction or nested cycle operand, rather than
20262 asserting we must find it.
20263
a475fd3d
JJ
20264 PR tree-optimization/56381
20265 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
20266 to fold_build3.
20267
202682013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
20269 Jakub Jelinek <jakub@redhat.com>
20270
20271 PR target/52555
20272 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
20273 (swap_optab_enable): Same.
20274 (init_all_optabs): Use argument instead of global.
88b97037 20275 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
20276 * expr.h (init_all_optabs): Add argument to prototype.
20277 (TREE_OPTIMIZATION_OPTABS): New.
20278 (save_optabs_if_changed): Protoize.
20279 * optabs.h: Declare this_fn_optabs.
20280 * optabs.c (save_optabs_if_changed): New.
20281 Declare this_fn_optabs.
20282 (init_optabs): Add argument to init_all_optabs() call.
20283 * function.c (invoke_set_current_function_hook): Handle per
20284 function optabs.
20285 * function.h (struct function): New field optabs.
20286 * config/mips/mips.c (mips_set_mips16_mode): Handle when
20287 optimization_current_node has changed.
20288 * target-globals.h (save_target_globals_default_opts): Protoize.
20289 * target-globals.c (save_target_globals_default_opts): New.
20290
3f587ca3
JDA
202912013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20292
20293 PR target/56347
20294 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
20295 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
20296
20297 PR target/56214
20298 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
20299 and HImode, require all displacements to be an integer multiple of
20300 their mode size.
ceaca33e
JDA
20301 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
20302 only allow QImode and HImode when reload is in progress and strict is
20303 true. Likewise for symbolic addresses. Use base14_operand to check
20304 displacements in REG+BASE addresses.
20305
fe0b4796
RB
203062013-02-18 Richard Biener <rguenther@suse.de>
20307
20308 PR tree-optimization/56366
20309 * tree-vect-loop.c (get_initial_def_for_induction): Properly
20310 handle sign-conversion of outer-loop initial induction value.
20311
6aaf596b
RB
203122013-02-18 Richard Biener <rguenther@suse.de>
20313
73db8ff1 20314 PR middle-end/56349
6aaf596b
RB
20315 * cfghooks.c (merge_blocks): If we merge a latch into another
20316 block adjust references to it.
20317 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
20318 (verify_loop_structure): Verify that a recorded latch is in fact
20319 a latch.
20320
5e97dfb6
RB
203212013-02-18 Richard Biener <rguenther@suse.de>
20322
20323 PR tree-optimization/56321
20324 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
20325 order SSA name release and virtual operand unlinking.
20326
825527e8
EI
203272013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
20328
20329 * config/microblaze/microblaze.md (save_stack_block): Define.
20330 (restore_stack_block): Likewise.
20331
debd11d9
EI
203322013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
20333
20334 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
20335 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
20336 * config/microblaze/microblaze.c (microblaze_option_override):
20337 Bail out early for PIC modes when target does not support PIC.
20338
8ec77be0
EI
203392013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
20340
88b97037 20341 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
20342 Replace with a microblaze version.
20343 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 20344 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
20345 microblaze.
20346
b41288b3
JJ
203472013-02-16 Jakub Jelinek <jakub@redhat.com>
20348 Dodji Seketeli <dodji@redhat.com>
20349
20350 PR asan/56330
88b97037 20351 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
20352 (instrument_mem_region_access): Do not forget to always put
20353 instrumentation of the of 'base' and 'base + len' in a "if (len !=
20354 0) statement, even for cases where either 'base' or 'base + len'
20355 are not instrumented -- because they have been previously
20356 instrumented. Simplify the logic by putting all the statements
20357 instrument 'base + len' inside a sequence, and then insert that
20358 sequence right before the current insertion point. Then, to
20359 instrument 'base + len', just get an iterator on that statement.
20360 And do not forget to update the pointer to iterator the function
20361 received as argument.
20362
47918951
VM
203632013-02-15 Vladimir Makarov <vmakarov@redhat.com>
20364
20365 PR rtl-optimization/56348
20366 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
20367
3fb7c699
SB
203682013-02-15 Steven Bosscher <steven@gcc.gnu.org>
20369
20370 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
20371 (clean_graph_dump_file): Pass base to start_graph_dump.
20372
576fe41a
RH
203732013-02-14 Richard Henderson <rth@redhat.com>
20374
20375 PR target/55941
20376 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
20377
bb3accfa
SB
203782013-02-14 Steven Bosscher <steven@gcc.gnu.org>
20379
20380 * collect2-aix.h: Define F_LOADONLY.
20381
03143140
RB
203822013-02-14 Richard Biener <rguenther@suse.de>
20383
20384 PR lto/50494
20385 * varasm.c (output_constant_def_1): Get the decl representing
20386 the constant as argument.
20387 (output_constant_def): Wrap output_constant_def_1.
20388 (make_decl_rtl): Use output_constant_def_1 with the decl
20389 representing the constant.
20390 (build_constant_desc): Optionally re-use a decl already
20391 representing the constant.
20392 (tree_output_constant_def): Adjust.
20393
8fb06726
DS
203942013-02-14 Dodji Seketeli <dodji@redhat.com>
20395
20396 Fix an asan crash
20397 * asan.c (instrument_builtin_call): Really put the length of the
20398 second source argument into src1_len.
20399
c4bfe8bf
JJ
204002013-02-13 Jakub Jelinek <jakub@redhat.com>
20401
20402 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
20403 argument. If it is false, don't create edge from then_bb to
20404 fallthru_bb.
20405 (insert_if_then_before_iter): Pass true to it.
20406 (build_check_stmt): Pass false to it.
20407 (transform_statements): Flush hash table only on extended basic
20408 block boundaries, rather than at the beginning of every bb.
20409 Don't flush hash table on nonfreeing_call_p calls.
20410 * tree-flow.h (nonfreeing_call_p): New prototype.
20411 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
20412
7afe2801
DM
204132013-02-13 David S. Miller <davem@davemloft.net>
20414
20415 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
20416
70cc3288
VM
204172013-02-13 Vladimir Makarov <vmakarov@redhat.com>
20418
20419 PR target/56184
20420 * ira.c (max_regno_before_ira): Move from ...
20421 (ira): ... here.
20422 (fix_reg_equiv_init): Use max_regno_before_ira instead of
20423 vec_safe_length.
20424
6422242b
JJ
204252013-02-13 Jakub Jelinek <jakub@redhat.com>
20426
20427 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
20428
976a81ee
RB
204292013-02-13 Richard Biener <rguenther@suse.de>
20430
20431 PR lto/56295
20432 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
20433 globals in MEM_REFs.
20434
c1874a87
RB
204352013-02-13 Richard Biener <rguenther@suse.de>
20436
20437 * loop-init.c (loop_optimizer_init): Clear loop state when
20438 re-initializing preserved loops.
20439 * loop-unswitch.c (unswitch_single_loop): Return whether
20440 we unswitched the loop. Do not verify loop state here.
88b97037 20441 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 20442
b4ab7d34
KS
204432013-02-13 Kostya Serebryany <kcc@google.com>
20444
88b97037
UB
20445 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
20446 on x86_64 linux.
b4ab7d34
KS
20447 * sanitizer.def: Rename __asan_init to __asan_init_v1.
20448
bdcbe80c
DS
204492013-02-12 Dodji Seketeli <dodji@redhat.com>
20450
20451 Avoid instrumenting duplicated memory access in the same basic block
20452 * Makefile.in (asan.o): Add new dependency on hash-table.h
20453 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
20454 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
20455 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
20456 (free_mem_ref_resources, has_mem_ref_been_instrumented)
20457 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
20458 (get_mem_ref_of_assignment): New functions.
20459 (get_mem_refs_of_builtin_call): Extract from
20460 instrument_builtin_call and tweak a little bit to make it fit with
20461 the new signature.
20462 (instrument_builtin_call): Use the new
20463 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
20464 of is_gimple_builtin_call.
20465 (instrument_derefs, instrument_mem_region_access): Insert the
20466 instrumented memory reference into the hash table.
20467 (maybe_instrument_assignment): Renamed instrument_assignment into
20468 this, and change it to advance the iterator when instrumentation
20469 actually happened and return true in that case. This makes it
20470 homogeneous with maybe_instrument_assignment, and thus give a
20471 chance to callers to be more 'regular'.
20472 (transform_statements): Clear the memory reference hash table
20473 whenever we enter a new BB, when we cross a function call, or when
20474 we are done transforming statements. Use
20475 maybe_instrument_assignment instead of instrumentation. No more
20476 need to special case maybe_instrument_assignment and advance the
20477 iterator after calling it; it's now handled just like
20478 maybe_instrument_call. Update comment.
20479
4861a1f7
RB
204802013-02-13 Richard Biener <rguenther@suse.de>
20481
20482 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
20483 Fix loop discovery code.
20484
1c86bd80
VM
204852013-02-12 Vladimir Makarov <vmakarov@redhat.com>
20486
20487 PR inline-asm/56148
20488 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 20489 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
20490 the operand is not reloaded. Prefer to reload conflicting operand
20491 if earlyclobber and matching operands are the same.
20492
7cbda518
RB
204932013-02-12 Richard Biener <rguenther@suse.de>
20494
20495 PR lto/56297
20496 * lto-streamer-out.c (write_symbol): Do not output symbols
20497 for hard register variables.
20498
e68a4ef6
GJL
204992013-02-12 Georg-Johann Lay <avr@gjlay.de>
20500
20501 PR target/54222
20502 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
20503 (umulsidi3_insn, mulsidi3_insn): New insns.
20504
a72d8780 205052013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
20506
20507 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
20508 (struct tune_params): Add vec_costs field.
20509 * config/arm/arm.c (arm_builtin_vectorization_cost)
20510 (arm_add_stmt_cost): New functions.
20511 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
20512 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
20513 (arm_default_vec_cost): New struct of type cpu_vec_costs.
20514 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
20515 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
20516 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
20517 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
20518
43320568
RB
205192013-02-12 Richard Biener <rguenther@suse.de>
20520
20521 PR lto/56295
20522 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
20523 decls again if possible.
20524
a011aa39
RB
205252013-02-12 Richard Biener <rguenther@suse.de>
20526
20527 PR middle-end/56288
20528 * tree-ssa.c (verify_ssa_name): Fix check, move
20529 SSA_NAME_IN_FREE_LIST check up.
20530
6da26889
JJ
205312013-02-12 Jakub Jelinek <jakub@redhat.com>
20532 Steven Bosscher <steven@gcc.gnu.org>
20533
20534 PR rtl-optimization/56151
20535 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
20536 equal to op0 or op1, and last_insn pattern is CODE operation
20537 with MEM dest and one of the operands matches that MEM.
20538
f80e0faf
ST
205392013-02-11 Sriraman Tallam <tmsriramgoogle.com>
20540
20541 * doc/extend.texi: Document Function Multiversioning and "default"
20542 parameter string to target attribute.
20543 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
20544 target attribute parameter is "default".
20545 (ix86_compare_version_priority): Remove checks for target attribute.
20546 (ix86_mangle_function_version_assembler_name): Change error to sorry.
20547 Remove check for target attribute equal to NULL. Add assert.
20548 (ix86_generate_version_dispatcher_body): Change error to sorry.
20549
6c59ffd1
IS
205502013-02-11 Iain Sandoe <iain@codesourcery.com>
20551 Jack Howarth <howarth@bromo.med.uc.edu>
20552 Patrick Marlier <patrick.marlier@gmail.com>
20553
20554 PR libitm/55693
20555 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
20556 define ENDFILE_SPEC as TM_DESTRUCTOR.
20557 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
20558
a72d8780 205592013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
20560 Jack Howarth <howarth@bromo.med.uc.edu>
20561 Jakub Jelinek <jakub@redhat.com>
20562
20563 PR sanitizer/55617
20564 * config/darwin.c (cdtor_record): Rename ctor_record.
20565 (sort_cdtor_records): Rename sort_ctor_records.
20566 (finalize_dtors): New routine to sort destructors by
20567 priority before use in assemble_integer.
20568 (machopic_asm_out_destructor): Use finalize_dtors if needed.
20569
b63fe007
UB
205702013-02-11 Uros Bizjak <ubizjak@gmail.com>
20571
20572 PR rtl-optimization/56275
20573 * simplify-rtx.c (avoid_constant_pool_reference): Check that
20574 offset is non-negative and less than cmode size before
20575 calling simplify_subreg.
20576
8e89b5b5
RB
205772013-02-11 Richard Biener <rguenther@suse.de>
20578
20579 PR tree-optimization/56264
20580 * cfgloop.h (fix_loop_structure): Adjust prototype.
20581 * loop-init.c (fix_loop_structure): Return the number of
20582 newly discovered loops.
20583 * tree-cfgcleanup.c (repair_loop_structures): When new loops
20584 are discovered, do a full loop-closed SSA rewrite.
20585
b4a4b56d
RB
205862013-02-11 Richard Biener <rguenther@suse.de>
20587
20588 PR tree-optimization/56273
20589 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
20590 first VRP run.
20591 (check_array_ref): Fix missing newline in dumps.
20592 (search_for_addr_array): Likewise.
20593
0c885229
DE
205942013-02-09 David Edelsohn <dje.gcc@gmail.com>
20595
20596 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
20597
59ac9a55
JJ
205982013-02-09 Jakub Jelinek <jakub@redhat.com>
20599
20600 PR target/56256
20601 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
20602
25bb0bb5
VM
206032013-02-08 Vladimir Makarov <vmakarov@redhat.com>
20604
20605 PR rtl-optimization/56246
0c885229 20606 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
20607 reload pseudo.
20608 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
20609 constraints are satisfied.
20610
a698cc03
JL
206112013-02-08 Jeff Law <law@redhat.com>
20612
20613 PR debug/53948
20614 * emit-rtl.c (reg_is_parm_p): New function.
20615 * regs.h (reg_is_parm_p): New prototype.
20616 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
20617 callee-clobbered registers.
20618
e1122ddd
MM
206192013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
20620
20621 PR target/56043
20622 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
20623 If there is no implicit builtin declaration, just return NULL.
20624
19c5f6e6
UB
206252013-02-08 Uros Bizjak <ubizjak@gmail.com>
20626
20627 * config/i386/sse.md (FMAMODEM): New mode iterator.
20628 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
20629 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
20630
2480f2ca 206312013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 20632
2480f2ca
UB
20633 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
20634 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
20635 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
20636
206372013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
20638
20639 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
20640 (microblaze*-*-elf): Likewise.
20641 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
20642 LINK_SPEC.
20643 * config/microblaze/microblaze-c.c: Add builtin defines for
20644 _LITTLE_ENDIAN and _BIG_ENDIAN.
20645 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
20646 add to TARGET_DEFAULT flags.
76ef61fb 20647 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
20648 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
20649 * config/microblaze/microblaze.md: Update extendsidi2 and
20650 movdi_internal instructions to use low-order / high-order reg
20651 print_operands.
20652 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
20653 options and inversemask / mask of LITTLE_ENDIAN.
20654 * config/microblaze/t-microblaze: Expand multilib options to
20655 include mlittle-endian (le) and update exceptions patterns.
20656
600a5961
JJ
206572013-02-08 Jakub Jelinek <jakub@redhat.com>
20658
5df81313
JJ
20659 PR rtl-optimization/56195
20660 * lra-constraints.c (get_reload_reg): Don't reuse regs
20661 if they have smaller mode than requested, if they have
20662 wider mode than requested, try to return a SUBREG.
20663
600a5961
JJ
20664 PR tree-optimization/56250
20665 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
20666 if type is unsigned and code isn't MULT_EXPR.
20667
ff544649
GJL
206682013-02-08 Georg-Johann Lay <avr@gjlay.de>
20669
20670 PR tree-optimization/56064
20671 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
20672 bits according to mode.
20673 * fixed-value.h (fixed_from_double_int)
20674 (const_fixed_from_double_int): Adjust comments.
20675
e45cde98
RB
206762013-02-08 Richard Biener <rguenther@suse.de>
20677
20678 PR lto/56231
20679 * lto-streamer.h (struct data_in): Remove current_file, current_line
20680 and current_col members.
20681 * lto-streamer-out.c (lto_output_location): Stream changed bits
20682 en-block for efficiency.
20683 * lto-streamer-in.c (clear_line_info): Remove.
20684 (lto_input_location): Cache current file, line and column
20685 globally via local statics. Read changed bits en-block.
20686 (input_function): Do not call clear_line_info.
20687 (lto_read_body): Likewise.
20688 (lto_input_toplevel_asms): Likewise.
20689
c1ca73d8
MM
206902013-02-08 Michael Matz <matz@suse.de>
20691
20692 PR tree-optimization/52448
20693 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
20694 (nt_call_phase): New static.
20695 (add_or_mark_expr): Only mark accesses with newer phase than any
20696 call seen.
20697 (nonfreeing_call_p): New.
20698 (nt_init_block): Update nt_call_phase, mark blocks as visited.
20699 (nt_fini_block): Keep blocks marked as visited.
20700 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
20701
57548aa2
RB
207022013-02-08 Richard Biener <rguenther@suse.de>
20703
20704 * ira.c (ira): Free broken dominator information.
20705
8e10366f
UB
207062013-02-08 Uros Bizjak <ubizjak@gmail.com>
20707
20708 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
20709
f64fb0fa
MP
207102013-02-08 Marek Polacek <polacek@redhat.com>
20711
8e10366f 20712 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 20713
0375167b
RB
207142013-02-08 Richard Biener <rguenther@suse.de>
20715
20716 PR middle-end/56181
20717 * cfgloop.h (flow_loops_find): Adjust.
20718 (bb_loop_header_p): Declare.
20719 * cfgloop.c (bb_loop_header_p): New function split out from ...
20720 (flow_loops_find): ... here. Adjust function signature,
20721 support incremental loop structure update.
20722 (verify_loop_structure): Cleanup. Verify a loop is a loop.
20723 * cfgloopmanip.c (fix_loop_structure): Move ...
20724 * loop-init.c (fix_loop_structure): ... here.
20725 (apply_loop_flags): Split out from ...
20726 (loop_optimizer_init): ... here.
20727 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
20728 in incremental mode, only remove dead loops here.
20729
85d768f3
GJL
207302013-02-08 Georg-Johann Lay <avr@gjlay.de>
20731
20732 PR target/54222
20733 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
20734 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
20735 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
20736 (*round<mode>3.libgcc): New insns for fixed-modes.
20737 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
20738 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
20739 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
20740 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
20741 implementations. Define to __builtin_avr_absFX,
20742 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
20743 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
20744 __builtin_avr_countlsFX, respectively.
20745 * config/avr/avr-c.c (target.h): Include it.
20746 (enum avr_builtin_id): New enum.
20747 (avr_resolve_overloaded_builtin): New static function.
20748 (avr_register_target_pragmas): Use it to set
20749 targetm.resolve_overloaded_builtin.
20750 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
20751 tree nodes used by DEF_BUILTIN.
20752 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
20753 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
20754 <AVR_BUILTIN_xxBITS>: Same.
20755
661bc682
RB
207562013-02-08 Richard Biener <rguenther@suse.de>
20757
20758 * cfgloop.c (verify_loop_structure): Properly handle
20759 a loop exiting to another loop header.
20760 * ira-int.h (ira_loops): Remove.
20761 * ira.c (ira_loops): Remove.
20762 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
20763 (do_reload): Use loop_optimizer_finalize.
20764 * ira-build.c (create_loop_tree_nodes): Use get_loops and
20765 number_of_loops to access the loop tree.
20766 (more_one_region_p): Likewise.
20767 (finish_loop_tree_nodes): Likewise.
20768 (rebuild_regno_allocno_maps): Likewise.
20769 (mark_loops_for_removal): Likewise.
20770 (mark_all_loops_for_removal): Likewise.
20771 (remove_unnecessary_regions): Likewise.
20772 (ira_build): Likewise.
20773 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
20774
0d5049b2
RB
207752013-02-08 Richard Biener <rguenther@suse.de>
20776
20777 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
20778 * ipa-pure-const.c (analyze_function): Avoid calling
20779 mark_irreducible_loops twice.
8e10366f 20780 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 20781
499f32e8
DM
207822013-02-07 David S. Miller <davem@davemloft.net>
20783
20784 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
20785 on 'reg'.
20786 * var-tracking.c (vt_add_function_parameter): Test the presence of
20787 HAVE_window_save properly and do not remap argument registers when
20788 we have a leaf function.
20789
6edc3e32
UB
207902013-02-07 Uros Bizjak <ubizjak@gmail.com>
20791
20792 PR bootstrap/56227
20793 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
20794 instead of "ll".
20795 * config/i386/i386.c (ix86_print_operand): Ditto.
20796
5306401f
VM
207972013-02-07 Vladimir Makarov <vmakarov@redhat.com>
20798
6edc3e32 20799 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 20800
027ece11
VM
208012013-02-07 Vladimir Makarov <vmakarov@redhat.com>
20802
20803 PR rtl-optimization/56225
20804 * lra-constraints.c (process_alt_operands): Check that reload hard
20805 reg can hold value for strict_low_part.
20806
f980dfdb
JJ
208072013-02-07 Jakub Jelinek <jakub@redhat.com>
20808
20809 PR debug/56154
20810 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
20811 dwarf2out_end_function.
20812 (in_first_function_p, maybe_at_text_label_p,
20813 first_loclabel_num_not_at_text_label): New variables.
20814 (dwarf2out_var_location): In the first function find out
6edc3e32 20815 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
20816 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
20817 functions.
20818
73dd3123
EB
208192013-02-07 Eric Botcazou <ebotcazou@adacore.com>
20820
20821 PR rtl-optimization/56178
20822 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
20823 SUBREG of a register. Tidy up related block of code.
20824 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
20825 note if the source is a register or a SUBREG of a register.
20826
e3936f47
JJ
208272013-02-07 Jakub Jelinek <jakub@redhat.com>
20828
20829 PR target/56228
20830 * config/rs6000/rs6000.md (ptrm): New mode attr.
20831 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
20832 call_value_indirect_aix<pttrsize>,
20833 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
20834 m in constraints.
20835
d96d674b
MH
208362013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
20837
20838 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
20839 if -bnortl. Convert to strcmp and strncmp.
20840
921f2dee
AM
208412013-02-07 Alan Modra <amodra@gmail.com>
20842
20843 PR target/54009
20844 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
20845 addresses won't wrap when offsetting.
20846 (rs6000_secondary_reload): Provide secondary reloads needed for
20847 wrapping LO_SUM addresses.
20848
d09c7dba
TS
208492013-02-06 Thomas Schwinge <thomas@codesourcery.com>
20850
20851 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
20852 MACH, just __MACH__.
20853
a44bbd48
RB
208542013-02-06 Richard Biener <rguenther@suse.de>
20855
20856 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
20857 instead of calling fix_loop_structure.
20858
6d840d99
JJ
208592013-02-06 Jakub Jelinek <jakub@redhat.com>
20860
20861 PR middle-end/56217
20862 * omp-low.c (use_pointer_for_field): Return false if
20863 lower_send_shared_vars doesn't generate any copy-out code.
20864
0f33baa9
TV
208652013-02-06 Tom de Vries <tom@codesourcery.com>
20866
20867 PR rtl-optimization/56131
20868 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
20869 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
20870 of the label is NULL. Add comment.
20871
11f1e3ab
JJ
208722013-02-05 Jakub Jelinek <jakub@redhat.com>
20873
31502f9f
JJ
20874 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
20875
a74db9bd
JJ
20876 PR sanitizer/55374
20877 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
20878 (STATIC_LIBTSAN_LIBS): Likewise.
20879 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
20880 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
20881 is defined, don't add anything else beyond that.
20882 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
20883 (LINK_COMMAND_SPEC): Use them.
20884
11f1e3ab
JJ
20885 PR tree-optimization/56205
20886 * tree-stdarg.c (check_all_va_list_escapes): Return true if
20887 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
20888 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
20889
14ac6aa2
RB
208902013-02-05 Richard Biener <rguenther@suse.de>
20891
20892 PR tree-optimization/53342
20893 PR tree-optimization/53185
20894 * tree-vectorizer.h (vect_check_strided_load): Remove.
20895 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
20896 not disallow peeling for vectorized strided loads.
20897 (vect_check_strided_load): Make static and simplify.
20898 (vect_analyze_data_refs): Adjust.
20899 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
20900 correctly when vectorizing strided loads.
20901
6f22445a
RB
209022013-02-05 Richard Biener <rguenther@suse.de>
20903
20904 * doc/install.texi: Refer to ISL, not PPL.
20905
39f9719e
JH
209062013-02-05 Jan Hubicka <jh@suse.cz>
20907
ec4224ac
JH
20908 PR tree-optimization/55789
20909 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
20910
209112013-02-05 Jan Hubicka <jh@suse.cz>
20912
20913 PR tree-optimization/55789
39f9719e
JH
20914 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
20915 the dead call anyway.
20916
956d3b33
EB
209172013-02-05 Eric Botcazou <ebotcazou@adacore.com>
20918
20919 PR sanitizer/55374
20920 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
20921
209222013-02-04 Alexander Potapenko <glider@google.com>
20923 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
20924 Jakub Jelinek <jakub@redhat.com>
20925
20926 PR sanitizer/55617
20927 * config/darwin.c (sort_ctor_records): Stabilized qsort
20928 on constructor priority by using original position.
20929 (finalize_ctors): New routine to sort constructors by
20930 priority before use in assemble_integer.
20931 (machopic_asm_out_constructor): Use finalize_ctors if needed.
20932
7ac3af38
JJ
209332013-02-04 Jakub Jelinek <jakub@redhat.com>
20934
20935 PR libstdc++/54314
20936 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
20937 about visibility on artificial decls.
20938 * config/sol2.c (solaris_assemble_visibility): Likewise.
20939
152689dc
KT
209402013-02-04 Kai Tietz <ktietz@redhat.com>
20941
20942 PR target/56186
20943 * config/i386/i386.c (function_value_ms_64): Add additional valtype
20944 argument and improve checking of return-argument types for 16-byte
20945 modes.
20946 (ix86_function_value_1): Add additional valtype argument on call
20947 of function_value_64.
20948 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
20949 handling infunction_value_64 function.
20950
2b5987b5
MGD
209512013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
20952
7ac3af38 20953 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 20954
14597080
RB
209552013-02-04 Richard Biener <rguenther@suse.de>
20956
20957 PR tree-optimization/56188
20958 * tree-ssa-structalias.c (label_visit): Consider case with
20959 initially non-empty points-to set.
20960 (perform_var_substitution): Dump node mapping and clean up.
20961
ed73881e
RG
209622013-02-04 Richard Guenther <rguenther@suse.de>
20963
20964 PR lto/56168
20965 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
20966 node prevail as last resort.
20967 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 20968 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 20969
139a0707
RB
209702013-02-04 Richard Biener <rguenther@suse.de>
20971
20972 PR tree-optimization/56113
20973 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
20974 Merge into ...
20975 (equiv_class_lookup_or_add): ... this.
20976 (label_visit): Adjust and fix error in previous patch.
20977 (perform_var_substitution): Adjust.
20978
50fe8924
OE
209792013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
20980
20981 * config/sh/divtab.c: Fix formatting and comments throughout the file.
20982 * config/sh/sh4-300.md: Likewise.
20983 * config/sh/sh4a.md: Likewise.
20984 * config/sh/constraints.md: Likewise.
20985 * config/sh/sh.md: Likewise.
20986 * config/sh/netbsd-elf.h: Likewise.
20987 * config/sh/predicates.md: Likewise.
20988 * config/sh/sh-protos.h: Likewise.
20989 * config/sh/ushmedia.h: Likewise.
20990 * config/sh/linux.h: Likewise.
20991 * config/sh/sh.c: Likewise.
20992 * config/sh/superh.h: Likewise.
20993 * config/sh/elf.h: Likewise.
20994 * config/sh/sh4.md: Likewise.
20995 * config/sh/sh.h: Likewise.
20996
1a04ac2b
JDA
209972013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20998
20999 * config/pa/constraints.md: Adjust unused letters. Change "T"
21000 constraint to match_test floating_point_store_memory_operand().
21001 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
21002 (base14_operand): New.
21003 (floating_point_store_memory_operand): New.
21004 (integer_store_memory_operand): Revise to use base14_operand and
21005 reg_plus_base_memory_operand.
21006 (move_dest_operand): Allow symbolic_memory_operands.
21007 (symbolic_memory_operand): Check for LO_SOM.
21008 (symbolic_operand): Change default case to break.
21009 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
21010 CONST_DOUBLE values to be reloaded by putting them into memory when
21011 the destination is a floating point register.
21012 (movdf): Remove code to handle CONST_DOUBLE.
21013 (movsf): Likewise.
21014 (reload_indf_r1): New.
21015 (reload_insf_r1): New.
21016 Consistently use "Q" and "T" constraints with integer and floating
21017 point move instructions, respectively.
21018 (movdi): Remove FAIL.
21019 Change predicate for source operand unamed DImode move from
21020 general_operand to move_src_operand.
21021 (umulsidi3): Change predicate for destination operand to
21022 register_operand.
21023 Likewise for similar unamed patterns.
21024 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
21025 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
21026 (hppa_legitimize_address): Simplify mask calculation.
21027 (pa_emit_move_sequence): Revised handling of secondary reloads from
21028 REG+D addresses for floating point loads and stores. Directly handle
21029 loading CONST0_RTX (mode) to a floating point register.
21030 (pa_secondary_reload): Handle reloading DF and SFmode constant values
21031 to floating point registers. Don't restrict secondary reloads to
21032 floating point registers to integer modes. Revise some comments and
21033 cleanup some code.
21034 (TARGET_LEGITIMATE_ADDRESS_P): Define.
21035 (pa_legitimate_address_p): New.
21036 (pa_legitimize_reload_address): New.
21037 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
21038 (STRICT_REG_OK_FOR_BASE_P): New.
21039 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
21040 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
21041
3bf65591
DE
210422013-02-03 David Edelsohn <dje.gcc@gmail.com>
21043 Andrew Dixie <andrewd@gentrack.com>
21044
21045 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
21046 flag set.
21047
c0a8a3e6
RS
210482013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
21049
21050 * expmed.c (extract_bit_field_1): Pass the full width of the
21051 structure to get_best_reg_extraction_insn.
21052
99113dff
DE
210532013-02-01 David Edelsohn <dje.gcc@gmail.com>
21054
21055 PR target/54601
21056 * configure.ac (use_cxa_atexit): Add AIX.
21057 * configure: Regenerate.
21058
21059 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
21060
ddd84654
JJ
210612013-02-01 Jakub Jelinek <jakub@redhat.com>
21062
21063 PR debug/54793
21064 * final.c (need_profile_function): New variable.
21065 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
21066 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
21067 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
21068 notes, targetm.asm_out.function_prologue doesn't emit anything,
21069 HAVE_prologue and profiler should be emitted before prologue,
21070 set need_profile_function instead of emitting it.
21071 (final_scan_insn): If need_profile_function, emit
21072 profile_function on the first NOTE_INSN_BASIC_BLOCK or
21073 NOTE_INSN_FUNCTION_BEG note.
21074
210752013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
21076
21077 * config/rs6000/rs6000.md (smulditi3): New.
21078 (umulditi3): New.
21079
ff2a9d88
RH
21080 * config/alpha/alpha.md (umulditi3): New.
21081
14d52b90
DE
210822013-02-01 David Edelsohn <dje.gcc@gmail.com>
21083
21084 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
21085 (ASM_OUTPUT_ALIGNED_LOCAL): New.
21086
8c7ca45c
RB
210872013-02-01 Richard Biener <rguenther@suse.de>
21088
21089 PR tree-optimization/56113
21090 * tree-ssa-structalias.c (label_visit): Reduce work for
21091 single-predecessor nodes.
21092
9f419393
EB
210932013-02-01 Eric Botcazou <ebotcazou@adacore.com>
21094
21095 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
21096 range isn't testing for zero.
21097
c5f4be84
SB
210982013-01-31 Steven Bosscher <steven@gcc.gnu.org>
21099
21100 PR middle-end/56113
21101 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
21102
dbdbd982
NC
211032013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
21104 Nick Clifton <nickc@redhat.com>
21105
21106 * config/v850/constraints.md (Q): Define as a memory constraint.
21107 * config/v850/predicates.md (label_ref_operand): New predicate.
21108 (e3v5_shift_operand): New predicate.
21109 (ior_operator): New predicate.
21110 * config/v850/t-v850: Add e3v5 multilib.
21111 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
21112 (v850_gen_movdi): Prototype.
21113 * config/v850/v850.c: Add support for e3v5 architecture.
21114 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
21115 TARGET_V850E_UP.
21116 (construct_save_jarl): Add e3v5 long JARL support.
21117 (v850_adjust_insn_length): New function. Adjust length of call
21118 insns when using e3v5 instructions.
21119 (v850_gen_movdi): New function: Generate instructions to move a
21120 DImode value.
21121 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
21122 (CPP_SPEC): Define __v850e3v5__ as appropriate.
21123 (TARGET_USE_FPU): Enable for e3v5.
21124 (CONST_OK_FOR_W): New macro.
21125 (ADJUST_INSN_LENGTH): Define.
21126 * config/v850/v850.md (UNSPEC_LOOP): Define.
21127 (attr cpu): Add v850e3v5.
21128 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
21129 (movdi): New pattern.
21130 (movdi_internal): New pattern.
21131 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
21132 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
21133 (cstoresf4): Likewise.
21134 (cstoredf4): Likewise.
21135 (insv): New pattern.
21136 (rotlso3_a): New pattern.
21137 (rotlsi3_b): New pattern
21138 (rotlsi3_v850e3v5): New pattern.
21139 (doloop_begin): New pattern.
21140 (fix_loop_counter): New pattern.
21141 (doloop_end): New pattern.
21142 (branch_normal): Add e3v5 long branch support.
21143 (branch_invert): Likewise.
21144 (branch_z_normal): Likewise.
21145 (branch_z_invert): Likewise.
21146 (branch_nz_normal): Likewise.
21147 (branch_nz_invert): Likewise.
21148 (call_internal_short): Add e3v5 register-indirect JARL support.
21149 (call_internal_long): Likewise.
21150 (call_value_internal_short): Likewise.
21151 (call_value_internal_long): Likewise.
21152 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
21153 (mloop): New option.
21154 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 21155 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 21156
73861a41
PK
211572013-01-31 Paul Koning <ni1d@arrl.net>
21158
21159 PR debug/55059
21160 PR debug/54508
21161 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
21162 children if parent is a class.
21163 (prune_unused_types_prune): Don't add DW_AT_declaration.
21164
e44978dc
RB
211652013-01-31 Richard Biener <rguenther@suse.de>
21166
21167 PR tree-optimization/56157
21168 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
21169 match up operand with SLP child.
21170
90b10dec
JM
211712013-01-31 Jason Merrill <jason@redhat.com>
21172
04d2dadd 21173 PR debug/54410
90b10dec
JM
21174 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
21175 parameters the first time.
21176 (gen_scheduled_generic_parms_dies): Check completeness here.
21177
6e616110
RB
211782013-01-31 Richard Biener <rguenther@suse.de>
21179
21180 PR middle-end/53073
21181 * common.opt (faggressive-loop-optimizations): New flag,
21182 enabled by default.
21183 * doc/invoke.texi (faggressive-loop-optimizations): Document.
21184 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
21185 infer_loop_bounds_from_undefined by it.
21186
636f59cf
RB
211872013-01-31 Richard Biener <rguenther@suse.de>
21188
21189 PR tree-optimization/56150
21190 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
21191 visit virtual operands.
21192 (find_uses_to_rename_bb): Likewise.
21193
211942013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
21195
21196 PR tree-optimization/56150
21197 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
21198 mixed store non-store stmts.
21199
32887460
JJ
212002013-01-30 Jakub Jelinek <jakub@redhat.com>
21201
e60e09a0
JJ
21202 PR sanitizer/55374
21203 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
21204 LIBASAN_EARLY_SPEC is defined.
21205 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
21206 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
21207 before %o.
21208 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
21209
32887460
JJ
21210 PR c++/55742
21211 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
21212 invalid args instead of ICEing on it.
21213 (ix86_valid_target_attribute_tree): Return error_mark_node if
21214 ix86_valid_target_attribute_inner_p failed.
21215 (ix86_valid_target_attribute_p): Return false only if
21216 ix86_valid_target_attribute_tree returned error_mark_node. Allow
21217 target("default") attribute.
21218 (sorted_attr_string): Change argument from const char * to tree,
21219 merge in all target attribute arguments rather than just one.
21220 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
21221 instead of free. Avoid using strcat.
21222 (ix86_mangle_function_version_assembler_name): Mangle
21223 target("default") as if no target attribute is present. Adjust
21224 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
21225 instead of xmalloc and XDELETEVEC instead of free.
21226 (ix86_function_versions): Don't return true if one of the decls
21227 doesn't have target attribute. If they don't and one of the decls
21228 is DECL_FUNCTION_VERSIONED, report an error. Adjust
21229 sorted_attr_string caller. Use XDELETEVEC instead of free.
21230 (ix86_supports_function_versions): Remove.
21231 (make_name): Fix up formatting.
21232 (make_dispatcher_decl): Remove resolver_name and its initialization.
21233 Avoid leaking memory.
21234 (is_function_default_version): Return true if there is
21235 target("default") attribute rather than no target attribute at all.
21236 (make_resolver_func): Avoid leaking memory.
21237 (ix86_generate_version_dispatcher_body): Likewise.
21238 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
21239 * target.def (supports_function_versions): Remove.
21240 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
21241 * doc/tm.texi: Regenerated.
21242
73cca0cc
VM
212432013-01-30 Vladimir Makarov <vmakarov@redhat.com>
21244
21245 PR rtl-optimization/56144
21246 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
21247 for values with side effects.
21248
11452e7b
RB
212492013-01-30 Richard Biener <rguenther@suse.de>
21250
21251 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
21252 (sparseset_pop): Likewise.
21253 * cfganal.c (compute_idf): Likewise. Increase work-stack size
21254 to be able to use quick_push in the worker loop.
21255
01cb1ef5
MP
212562013-01-30 Marek Polacek <polacek@redhat.com>
21257
21258 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
21259
e892936e
RB
212602013-01-30 Richard Biener <rguenther@suse.de>
21261
21262 PR lto/56147
6edc3e32 21263 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 21264
cc06c01d
GJL
212652013-01-30 Georg-Johann Lay <avr@gjlay.de>
21266
21267 PR tree-optimization/56064
21268 * fixed-value.c (fixed_from_double_int): New function.
21269 * fixed-value.h (fixed_from_double_int): New prototype.
21270 (const_fixed_from_double_int): New static inline function.
21271 * fold-const.c (native_interpret_fixed): New static function.
21272 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
21273 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
21274 (native_encode_fixed): New static function.
21275 (native_encode_expr) <FIXED_CST>: Use it.
21276 (native_interpret_int): Move double_int worker code to...
21277 * double-int.c (double_int::from_buffer): ...this new static method.
21278 * double-int.h (double_int::from_buffer): Prototype it.
21279
d394a308
RB
212802013-01-30 Richard Biener <rguenther@suse.de>
21281
21282 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
21283 New pointer-map and obstack.
21284 (init_alias_vars): Allocate pointer-map and obstack.
21285 (delete_points_to_sets): Free them.
21286 (find_what_var_points_to): Cache result.
21287 (find_what_p_points_to): Adjust for changed interface of
21288 find_what_var_points_to.
21289 (compute_points_to_sets): Likewise.
21290 (ipa_pta_execute): Likewise.
21291
20804d96
RO
212922013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21293
21294 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
21295 * configure: Regenerate.
21296 * config.in: Regenerate.
21297 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
21298 #nobits/#progbits if supported.
21299
a7ad88a2
OE
213002013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
21301
21302 PR target/56121
21303 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
21304 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
21305 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
21306
7af79f92
GY
213072013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
21308
91bfca59
OE
21309 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
21310 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 21311
753bcf7b
GY
213122013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
21313
91bfca59
OE
21314 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
21315 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 21316
8cbc2ea8
GY
213172013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
21318
91bfca59
OE
21319 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
21320 declaration.
21321 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
21322 * config/arm/cortex-a7.md: New bypasses using
21323 arm_mac_accumulator_is_result.
8cbc2ea8 21324
697a3325
GY
213252013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
21326
91bfca59 21327 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 21328 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
21329 (cortex_a7_fpfmad): New reservation.
21330 (cortex_a7_fpmacs): Use ffmas and update required units.
21331 (cortex_a7_fpmuld): Update required units and latency.
21332 (cortex_a7_fpmacd): Likewise.
21333 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
21334 (cortex_a7_neon). Likewise.
21335 (bypass) Update participating units.
697a3325 21336
29637783
GY
213372013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
21338
91bfca59
OE
21339 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
21340 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
21341 from fmac to ffma.
21342 * config/arm/vfp11.md (vfp_farith): Use ffmas.
21343 (vfp_fmul): Use ffmad.
21344 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
21345 (cortex_r4_fmacd): Use ffmad.
21346 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
21347 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
21348 (cortex_a9_fmacd): Use ffmad.
21349 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
21350 (cortex_a8_vfp_macd): Use ffmad.
21351 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
21352 (cortex_a5_fpmacd): Use ffmad.
21353 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
21354 (cortex_a15_vfp_macd): Use ffmad.
21355 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 21356
2ee8a2d5
JM
213572013-01-29 Jason Merrill <jason@redhat.com>
21358
21359 PR libstdc++/54314
21360 * varasm.c (default_assemble_visibility): Don't warn about
21361 visibility on artificial decls.
21362
78d087bc
RB
213632013-01-29 Richard Biener <rguenther@suse.de>
21364
21365 PR tree-optimization/56113
21366 * tree-ssa-structalias.c (equiv_class_lookup): Also return
21367 the bitmap leader.
21368 (label_visit): Free duplicate bitmaps and record the leader instead.
21369 (perform_var_substitution): Adjust.
21370
83ba4d6f
RB
213712013-01-29 Richard Biener <rguenther@suse.de>
21372
21373 PR tree-optimization/55270
21374 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
21375 the CFG, schedule loops for fixup.
21376
66dfe13f
NC
213772013-01-29 Nick Clifton <nickc@redhat.com>
21378
21379 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
21380 SP_REG.
21381
5a579c3b
LE
213822013-01-28 Leif Ekblad <leif@rdos.net>
21383
21384 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
21385 * config/i386/i386.h (TARGET_RDOS): New macro.
21386 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
21387 * config/i386/i386.c (ix86_option_override_internal): For 64bit
21388 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
21389 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
21390 DEFAULT_LARGE_SECTION_THRESHOLD.
21391 * config/i386/i386.md (R14_REG, R15_REG): New constants.
21392 * config/i386/rdos.h: New file.
21393 * config/i386/rdos64.h: New file.
21394
51e44392
BS
213952013-01-28 Bernd Schmidt <bernds@codesourcery.com>
21396
21397 PR other/54814
21398 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
21399 TEST_HARD_REG_BIT.
21400
db1fb332
JJ
214012013-01-28 Jakub Jelinek <jakub@redhat.com>
21402
21403 PR rtl-optimization/56117
21404 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
21405 call cselib_lookup_from_insn on the MEM before calling
21406 add_insn_mem_dependence.
21407
16917761
RB
214082013-01-28 Richard Biener <rguenther@suse.de>
21409
21410 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
21411 to a stmt that didn't have one.
21412 (copy_phis_for_bb): Likewise for PHI arguments.
21413 (copy_debug_stmt): Likewise for debug stmts.
21414
b9fc0497
RB
214152013-01-28 Richard Biener <rguenther@suse.de>
21416
21417 PR tree-optimization/56034
6edc3e32 21418 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
21419 (partition_builtin_p): Adjust.
21420 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
21421 it is the last partition.
21422 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
21423 up the vertex for the definition.
21424 (classify_partition): Classify whether a partition is a
21425 PKIND_REDUCTION, thus has uses outside of the loop.
21426 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
21427 Merge all PKIND_REDUCTION partitions into the last partition.
21428 (tree_loop_distribution): Seed partitions from reductions as well.
21429
aa710d25
JJ
214302013-01-28 Jakub Jelinek <jakub@redhat.com>
21431
0bfbca58
JJ
21432 PR tree-optimization/56125
21433 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
21434 pow(x,c) into sqrt(x) * powi(x, n/2) or
21435 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
21436 optimizing for size.
21437 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
21438 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
21439 integer.
21440
aa710d25
JJ
21441 PR tree-optimization/56094
21442 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
21443 to UNKNOWN_LOCATION while gimplifying expr.
21444
77dc5297
UB
214452013-01-27 Uros Bizjak <ubizjak@gmail.com>
21446
21447 PR target/56114
21448 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
21449 operand 0 in movabs insn template for -masm=intel asm alternative.
21450 (*movabs<mode>_2): Ditto for operand 1.
21451
0bfbca58 214522013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
21453
21454 PR target/54663
21455 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
21456 of microblaze-c.o
21457
0bfbca58 214582013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
21459
21460 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
21461 tm_file.
21462
0bfbca58 214632013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
21464
21465 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
21466 Undef to avoid warning.
21467
478f60f9
MH
214682013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
21469
21470 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
21471 * configure: Regenerate.
21472
d7fa6ee2
JJ
214732013-01-25 Jakub Jelinek <jakub@redhat.com>
21474
21475 PR tree-optimization/56098
21476 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
21477 for stmts with volatile ops.
21478 (cond_store_replacement): Don't optimize if assign has volatile ops.
21479 (cond_if_else_store_replacement_1): Don't optimize if either
21480 then_assign or else_assign have volatile ops.
21481 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
21482 volatile ops.
21483
f8fe87bd
GJL
214842013-01-25 Georg-Johann Lay <avr@gjlay.de>
21485
21486 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
21487
28398d0d
GJL
214882013-01-25 Georg-Johann Lay <avr@gjlay.de>
21489
21490 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
21491 missing ':' in asm example.
21492
b7d7d917
TB
214932013-01-25 Tejas Belagod <tejas.belagod@arm.com>
21494
21495 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
21496 entries into lane and laneq entries.
77dc5297
UB
21497 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
21498 Remove AdvSIMD scalar modes.
b7d7d917
TB
21499 (aarch64_sq<r>dmulh_laneq<mode>): New.
21500 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
21501 modes.
21502 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
21503 builtin implementations to relfect changes in RTL in aarch64-simd.md.
21504 * config/aarch64/iterators.md (VCOND): New.
21505 (VCONQ): New.
21506
556f9906
GJL
215072013-01-25 Georg-Johann Lay <avr@gjlay.de>
21508
21509 PR target/54222
21510 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
21511 Add NULL LIBNAME argument to existing definitions.
21512 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
21513 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
21514 * config/avr/avr.c (DEF_BUILTIN): Same.
21515 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
21516 (avr_expand_builtin): Expand to a vanilla call if a libgcc
21517 implementation is available (DECL_ASSEMBLER_NAME is set).
21518 (avr_fold_absfx): New static function.
21519 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
21520 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
21521 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
21522 AVR_BUILTIN_ABSLLK.
21523 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
21524 (abshk, absk, abslk, absllk): Provide as static inline functions.
21525
1f546bbb
MP
215262013-01-25 Marek Polacek <polacek@redhat.com>
21527
21528 PR tree-optimization/56035
21529 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
21530
7e184bd7
UB
215312012-01-24 Uros Bizjak <ubizjak@gmail.com>
21532
21533 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
21534 (*movtf_internal_rex64): Add (!o,C) alternative
21535 (*movxf_internal_rex64): Ditto.
21536 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
21537
f5ba49ac
SM
215382013-01-24 Shenghou Ma <minux.ma@gmail.com>
21539
21540 * doc/invoke.texi: fix typo.
21541 * doc/objc.texi: fix typo.
21542
a6343728
RS
215432013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
21544
21545 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
21546 for the first two alternatives.
21547
cd030c07
DN
215482013-01-24 Diego Novillo <dnovillo@google.com>
21549
77dc5297 21550 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
21551 (ggc-zone.o): Remove.
21552 * configure.ac: Remove option --with-gc.
21553 * configure: Re-generate.
21554 * doc/install.texi: Remove documentation for --with-gc.
21555 * gengtype.c (write_enum_defn): Remove. Update all users.
21556 (write_Types_process_field): Remove generation of gt_e_* argument.
21557 (output_type_enum): Remove. Update all users.
21558 (write_enum_defn): Remove. Update all users.
21559 (enum alloc_zone): Remove. Update all users.
77dc5297 21560 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
21561 * ggc-common.c (ggc_splay_alloc): Remove first argument.
21562 Update all callers.
21563 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 21564 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
21565 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
21566 Update all users.
aaf1e810 21567 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
21568 (struct alloc_zone): Remove.
21569 (ggc_internal_alloc_zone_stat): Remove.
21570 (ggc_internal_cleared_alloc_zone_stat): Remove.
21571 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
21572 (ggc_pch_count_object): Remove last argument. Update all users.
21573 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
21574 (struct alloc_zone): Remove.
21575 * ggc-zone.c: Remove.
77dc5297 21576 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
21577 (struct alloc_zone): Remove.
21578 (ggc_alloc_typed_stat): Remove.
21579 (ggc_alloc_typed): Remove.
21580 (ggc_splay_alloc): Remove first argument.
21581 (rtl_zone): Remove. Update all users.
21582 (tree_zone): Remove. Update all users.
21583 (tree_id_zone): Remove. Update all users.
21584 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 21585 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 21586 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 21587 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 21588
a861ffa4
GJL
215892013-01-24 Georg-Johann Lay <avr@gjlay.de>
21590
21591 * config/avr/avr.c (avr_out_fract): Make register numbers that
21592 might be outside of source operand signed.
21593
593c0ddd
UB
215942013-01-24 Uros Bizjak <ubizjak@gmail.com>
21595
21596 * config/i386/constraints.md (Yf): New constraint.
21597 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
21598 of f constraint to conditionaly disable x87 register preferences.
21599 (*movdf_internal): Ditto.
21600 (*movsf_internal): Ditto.
21601
e86c0101
SB
216022013-01-24 Steven Bosscher <steven@gcc.gnu.org>
21603
21604 PR inline-asm/55934
21605 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
21606 that have operands with impossible constraints.
21607 Add a FIXME for a speed-up opportunity.
21608 * lra-constraints.c (process_alt_operands): Verify that a class
21609 selected from constraints on asms is valid for the operand mode.
21610 (curr_insn_transform): Remove incorrect comment.
21611
f6fee35f
DE
216122013-01-23 David Edelsohn <dje.gcc@gmail.com>
21613
21614 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
21615 TOC operand is a valid symbol ref in the constant pool.
21616
216172013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 21618
aaf1e810 21619 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 21620
dc62d7d1
GJL
216212013-01-23 Georg-Johann Lay <avr@gjlay.de>
21622
21623 PR target/54222
21624 * config/avr/stdfix.h: New file.
21625 * t-avr (stdfix-gcc.h): New rule to build it.
21626 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
21627
2660d12d
KS
216282013-01-23 Kostya Serebryany <kcc@google.com>
21629
77dc5297
UB
21630 * config/darwin.h: remove dependency on
21631 CoreFoundation (asan on Mac OS).
2660d12d 21632
a70418fc
JJ
216332013-01-23 Jakub Jelinek <jakub@redhat.com>
21634
21635 PR target/49069
21636 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
21637 instead of cmpdi_operand for first comparison operand.
21638 Don't assert that comparison operands aren't both constants.
21639
47876a2a
JW
216402013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
21641
21642 * doc/install.texi (Downloading the Source): Update references to
21643 downloading separate components.
21644
216452013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
21646
21647 * doc/extend.texi (__int128): Improve grammar.
21648
47876a2a 216492013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
21650
21651 PR target/56028
21652 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
21653 alternative to (o,r).
21654 (*movdi_internal_rex64): Remove (!o,n) alternative.
21655 (DImode immediate->memory splitter): Remove.
21656 (DImode immediate->memory peephole2): Remove.
21657 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
21658 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
21659 alternative to (!o,*r).
21660 (*movtf_internal_sse): New pattern.
21661 (*movxf_internal_rex64): New pattern.
21662 (*movxf_internal): Disable for TARGET_64BIT.
21663 (*movdf_internal_rex64): Remove (!o,F) alternative.
21664
3a984f10
JJ
216652013-01-22 Jakub Jelinek <jakub@redhat.com>
21666
502498d5
JJ
21667 PR middle-end/56074
21668 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
21669 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
21670 * tree-vect-loop-manip.c (find_loop_location): Also ignore
21671 stmt locations where LOCATION_LOCUS of the stmt location is
21672 UNKNOWN_LOCATION or BUILTINS_LOCATION.
21673
3a984f10
JJ
21674 PR target/55686
21675 * config/i386/i386.md (UNSPEC_STOS): New.
21676 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
21677 *strsetqi_1): Add UNSPEC_STOS.
21678
fa817f7f
PC
216792013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
21680
21681 PR c++/56067
21682 * doc/invoke.texi: Remove left over -Wsynth example.
21683
8f498c1b
JJ
216842013-01-21 Jakub Jelinek <jakub@redhat.com>
21685
21686 PR tree-optimization/56051
21687 * fold-const.c (fold_binary_loc): Don't fold
21688 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
21689 a narrowing conversion, or widening conversion from signed
21690 to unsigned.
21691
47876a2a 216922013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
21693
21694 PR rtl-optimization/56023
21695 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
21696 dependent on debug instruction.
21697
5b9db1bc
MJ
216982013-01-21 Martin Jambor <mjambor@suse.cz>
21699
21700 PR middle-end/56022
21701 * function.c (allocate_struct_function): Call
21702 invoke_set_current_function_hook earlier.
21703
e8bb7d68
JJ
217042013-01-21 Jakub Jelinek <jakub@redhat.com>
21705
21706 * reload1.c (init_reload): Only initialize reload_obstack
21707 during the first call.
21708
616a4e32
MP
217092013-01-21 Marek Polacek <polacek@redhat.com>
21710
21711 * cfgloop.c (verify_loop_structure): Fix up grammar.
21712
4401981b
YHH
217132013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
21714
21715 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
21716 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
21717
8e87740b
RR
217182013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21719
21720 PR target/56058
21721 * config/arm/marvell-pj4.md: Update copyright year.
21722 Fix up use of alu to alu_reg and simple_alu_imm.
21723
47876a2a 217242013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
21725
21726 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
21727
89d56d79
VM
217282013-01-20 Vladimir Makarov <vmakarov@redhat.com>
21729
21730 PR target/55433
21731 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 21732 insn for secondary memory move when memory mode should be different.
89d56d79 21733
fe603553
JDA
217342013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21735
21736 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
21737 atomic_storedi_1): New patterns.
21738
01284895
VK
217392013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
21740
21741 btver2 pipeline descriptions.
21742 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
21743 descriptions.
21744 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 21745 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
21746 type attributes.
21747 * config/i386/btver2.md: New file describing btver2 pipelines.
21748
5630e3e1
JL
217492013-01-19 Andrew Pinski <apinski@cavium.com>
21750
21751 PR tree-optimization/52631
21752 * tree-ssa-sccvn (visit_use): Before looking up the original
21753 statement, try looking up the simplified expression.
21754
650ae806
AG
217552013-01-19 Anthony Green <green@moxielogic.com>
21756
21757 * config/moxie/moxie.c (moxie_expand_prologue): Set
21758 current_function_static_stack_size.
21759
e300ec2d
JJ
217602013-01-18 Jakub Jelinek <jakub@redhat.com>
21761
21762 PR tree-optimization/56029
21763 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
21764 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
21765
a3d7af04
SS
217662013-01-18 Sharad Singhai <singhai@google.com>
21767
21768 PR tree-optimization/55995
21769 * dumpfile.c (dump_loc): Print location only if available.
21770 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
21771
66aa7879
VM
217722013-01-18 Vladimir Makarov <vmakarov@redhat.com>
21773
21774 PR target/55433
21775 * lra-constraints.c (curr_insn_transform): Reuse original insn for
21776 secondary memory move.
21777 (inherit_reload_reg): Use rclass instead of cl for
21778 check_secondary_memory_needed_p.
21779
3f0fee7b
JJ
217802013-01-18 Jakub Jelinek <jakub@redhat.com>
21781
21782 PR middle-end/56015
21783 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 21784 the case where writing real complex part of target modifies op1.
3f0fee7b 21785
70c67693
JG
217862013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
21787
21788 * config/aarch64/aarch64-simd.md
21789 (aarch64_vcond_internal<mode>): Handle unordered cases.
21790 * config/aarch64/iterators.md (v_cmp_result): New.
21791
df8de9b3
YHH
217922013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
21793 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21794
21795 * config/arm/marvell-pj4.md: New file.
21796 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
21797 * config/arm/arm.md (generic_sched): Add marvell_pj4.
21798 (generic_vfp): Likewise.
21799 * config/arm/arm-cores.def: Add marvell-pj4.
21800 * config/arm/arm-tune.md: Regenerate.
21801 * config/arm/arm-tables.opt: Regenerate.
21802 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
21803 * doc/invoke.texi: Document marvell-pj4.
21804
be30c356
TB
218052013-01-18 Tejas Belagod <tejas.belagod@arm.com>
21806
21807 * config/aarch64/arm_neon.h: Map scalar types to standard types.
21808
0bfbca58 218092013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
21810
21811 PR debug/54114
21812 PR debug/54402
21813 PR debug/49888
21814 * var-tracking.c (negative_power_of_two_p): New.
21815 (global_get_addr_cache, local_get_addr_cache): New.
21816 (get_addr_from_global_cache, get_addr_from_local_cache): New.
21817 (vt_canonicalize_addr): Rewrite using the above. Adjust the
21818 heading comment.
21819 (vt_stack_offset_p): Remove.
21820 (vt_canon_true_dep): Always canonicalize loc's address.
21821 (clobber_overlapping_mems): Make sure we have a MEM.
21822 (local_get_addr_clear_given_value): New.
21823 (val_reset): Clear local cached entries.
21824 (compute_bb_dataflow): Create and release the local cache.
21825 Disable duplicate MEMs clobbering.
21826 (emit_notes_in_bb): Clobber MEMs likewise.
21827 (vt_emit_notes): Create and release the local cache.
21828 (vt_initialize, vt_finalize): Create and release the global
21829 cache, respectively.
1f6bc337 21830 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 21831
0bfbca58 218322013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
21833
21834 PR libmudflap/53359
21835 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
21836 not found in the symtab.
21837
0bfbca58 218382013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 21839
c350ba53 21840 PR debug/56006
3aa03517
AO
21841 PR rtl-optimization/55547
21842 PR rtl-optimization/53827
21843 PR debug/53671
21844 PR debug/49888
21845 * alias.c (offset_overlap_p): New, factored out of...
21846 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
21847 the conservative special case for symbolic constants. Don't
21848 adjust zero sizes on alignment.
21849
c664546f
JL
218502013-01-18 Bernd Schmidt <bernds@codesourcery.com>
21851
21852 PR rtl-optimization/52573
21853 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
21854 REG_UNUSED for the same register.
21855
1bd3f750
MP
218562013-01-17 Richard Biener <rguenther@suse.de>
21857 Marek Polacek <polacek@redhat.com>
21858
21859 PR rtl-optimization/55833
21860 * loop-unswitch.c (unswitch_loops): Move loop verification...
21861 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
21862 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
21863 Set it to true when we're removing a loop from hierarchy tree in
21864 an irreducible region.
21865 (fix_bb_placements): Adjust caller.
21866 (fix_loop_placements): Likewise.
21867
e52a8b71
GJL
218682013-01-17 Georg-Johann Lay <avr@gjlay.de>
21869
21870 * config/avr/builtins.def (DEF_BUILTIN): Factor out
21871 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
21872 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
21873 Remove ID. Adjust comments.
21874 * config/avr/avr-c.c (avr_builtin_name): Remove.
21875 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
21876 * config/avr/avr.c (avr_tolower): New static function.
21877 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
21878 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
21879 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
21880 default expansion.
21881
8386a7ea
JH
218822013-01-17 Jan Hubicka <jh@suse.cz>
21883
610fb637 21884 PR tree-optimization/55273
8386a7ea
JH
21885 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
21886
47876a2a 218872013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
21888
21889 PR target/55981
21890 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
21891 store through atomic_store<mode>_1.
21892 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
21893
8222c37e
MJ
218942013-01-17 Martin Jambor <mjambor@suse.cz>
21895
21896 PR tree-optimizations/55264
21897 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
21898 for virtual methods.
21899 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
21900 virtual methods before inlining is over.
21901 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
21902 virtual functions.
21903 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
21904 non-virtual.
21905
79f01c76
VM
219062013-01-16 Vladimir Makarov <vmakarov@redhat.com>
21907
21908 PR rtl-optimization/56005
21909 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
21910 pending reads for prefetch.
21911
d0b6bb1b
IB
219122013-01-16 Ian Bolton <ian.bolton@arm.com>
21913
aaf1e810 21914 * config/aarch64/aarch64.md
d0b6bb1b
IB
21915 (*cstoresi_neg_uxtw): New pattern.
21916 (*cmovsi_insn_uxtw): New pattern.
21917 (*<optab>si3_uxtw): New pattern.
21918 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
21919 (*<optab>si3_insn_uxtw): New pattern.
21920 (*bswapsi2_uxtw): New pattern.
21921
cb9cf03b
RB
219222013-01-16 Richard Biener <rguenther@suse.de>
21923
21924 * tree-inline.c (tree_function_versioning): Remove set but
21925 never used variable.
21926
2cfc56b9
RB
219272013-01-16 Richard Biener <rguenther@suse.de>
21928
21929 PR tree-optimization/55964
21930 * tree-flow.h (rename_variables_in_loop): Remove.
21931 (rename_variables_in_bb): Likewise.
21932 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
21933 (copy_loop_before): Adjust and delete update-ssa status.
21934 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 21935 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
21936 (rename_variables_in_loop): Remove.
21937 (slpeel_update_phis_for_duplicate_loop): Likewise.
21938 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
21939 use available cfg machinery instead of duplicating it.
21940 Update PHI nodes and perform poor-mans SSA update here.
21941 (slpeel_tree_peel_loop_to_edge): Adjust.
21942
c25a0c60
RB
219432013-01-16 Richard Biener <rguenther@suse.de>
21944
21945 PR tree-optimization/54767
21946 PR tree-optimization/53465
21947 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
21948 (vrp_visit_phi_node): For PHI arguments coming via backedges
21949 drop all symbolical range information.
21950 (execute_vrp): Compute backedges.
21951
04b535af
RB
219522013-01-16 Richard Biener <rguenther@suse.de>
21953
21954 * doc/install.texi: Update CLooG and ISL requirements to
21955 0.18.0 and 0.11.1.
21956
8b0a1e0b
CB
219572013-01-16 Christian Bruel <christian.bruel@st.com>
21958
21959 PR target/55301
21960 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
21961 (broken_move): Handle UNSPECV_SP_SWITCH_B.
21962 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
21963
219642013-01-16 DJ Delorie <dj@redhat.com>
21965
21966 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
21967 (UNSPECV_SP_SWITCH_E): New.
21968 (sp_switch_1): Change to an unspec.
21969 (sp_switch_2): Change to an unspec. Don't use post-inc when we
21970 replace $r15.
21971
219722013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
21973
21974 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
21975 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
21976 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
21977 (expand_mem_thread_fence): Ditto.
21978 (expand_mem_signal_fence): Ditto.
21979 (expand_atomic_load): Ditto.
21980 (expand_atomic_store): Ditto.
21981
0bfbca58 219822013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
21983
21984 PR rtl-optimization/55547
21985 PR rtl-optimization/53827
21986 PR debug/53671
21987 PR debug/49888
21988 * alias.c (memrefs_conflict_p): Set sizes to negative after
21989 AND adjustments.
21990
305e3ac1
JJ
219912013-01-15 Jakub Jelinek <jakub@redhat.com>
21992
21993 PR target/55940
21994 * function.c (thread_prologue_and_epilogue_insns): Always
21995 add crtl->drap_reg to set_up_by_prologue.set, even if
21996 stack_realign_drap is false.
21997
f78ac4f2
JBG
219982013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
21999
22000 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
22001 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
22002 *call): Fix indention.
22003
a78a8cc4
TV
220042013-01-15 Tom de Vries <tom@codesourcery.com>
22005
22006 PR target/55876
22007 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
22008 Update comment.
22009
0e80383f
VM
220102013-01-15 Vladimir Makarov <vmakarov@redhat.com>
22011
305e3ac1 22012 PR rtl-optimization/55153
0e80383f
VM
22013 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
22014
207b5956
MJ
220152013-01-15 Martin Jambor <mjambor@suse.cz>
22016
22017 PR tree-optimization/55920
22018 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
22019 accesses as grp_to_be_debug_replaced.
22020
a7818b54
JJ
220212013-01-15 Jakub Jelinek <jakub@redhat.com>
22022
22023 PR tree-optimization/55920
22024 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
22025 there is non-useless type conversion needed from debug rhs to lhs,
22026 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
22027
b0fe107e
JM
220282013-01-15 Joseph Myers <joseph@codesourcery.com>
22029 Mikael Pettersson <mikpe@it.uu.se>
22030
22031 PR target/43961
22032 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
22033 Thumb.
22034 (ASM_OUTPUT_CASE_LABEL): Remove.
22035 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
22036 * final.c (shorten_branches): Update alignment of labels before
22037 jump tables if CASE_VECTOR_SHORTEN_MODE.
22038
34ab62ee
RB
220392013-01-15 Richard Biener <rguenther@suse.de>
22040
22041 PR bootstrap/55961
22042 * system.h: Do not include gmp.h for building host tools.
22043
783a3a05
RB
220442013-01-15 Richard Biener <rguenther@suse.de>
22045
22046 PR middle-end/55882
22047 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
22048 account for bitpos when computing alignment.
22049
3a579e09
VY
220502013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
22051
22052 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
22053 (ix86_target_macros_internal): Likewise.
22054
22055 * config/i386/i386.c (m_CORE2I7): Removed.
22056 (m_CORE_HASWELL): New macro.
22057 (m_CORE_ALL): Likewise.
22058 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
22059 (initial_ix86_arch_features): Likewise.
22060 (processor_target_table): Initializations for Core avx2.
22061 (cpu_names): New names "core-avx2".
22062 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
22063 PROCESSOR_CORE_HASWELL.
22064 (ix86_issue_rate): New case.
22065 (ia32_multipass_dfa_lookahead): Likewise.
22066 (ix86_sched_init_global): Likewise.
22067
22068 * config/i386/i386.h (TARGET_HASWELL): New macro.
22069 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
22070 (processor_type): New PROCESSOR_HASWELL.
22071
955f5a07
JJ
220722013-01-15 Jakub Jelinek <jakub@redhat.com>
22073
ff784829
JJ
22074 PR tree-optimization/55955
22075 * tree-vect-loop.c (vectorizable_reduction): Give up early on
22076 *SHIFT_EXPR and *ROTATE_EXPR codes.
22077
955f5a07
JJ
22078 PR tree-optimization/48766
22079 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
22080 -ftrapv disable -fwrapv.
22081
aeb8b4e9
GJL
220822013-01-14 Georg-Johann Lay <avr@gjlay.de>
22083
22084 PR target/55974
22085 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
22086 etc. to 1 and not to __flash.
22087 Use LL suffix for __INT24_MAX__ with -mint8.
22088 Use ULL suffix for __UINT24_MAX__ with -mint8.
22089
1c494c6a
GJL
220902013-01-14 Georg-Johann Lay <avr@gjlay.de>
22091
22092 * config/avr/avr-arch.h
22093 (struct base_arch_s): Use typedef avr_arch_t instead.
22094 (struct arch_info_s): Use typedef avr_arch_info_t instead.
22095 (struct mcu_type_s): Use typedef avr_mcu_t instead.
22096 * config/avr/avr.c: Same.
22097 * config/avr/avr-devices.c: Same.
22098 * config/avr/driver-avr.c: Same.
22099 * config/avr/gen-avr-mmcu-texi.c: Same.
22100 * config/avr/avr-mcus.def: Adjust comment.
22101
a50344cb
TB
221022013-01-14 Tejas Belagod <tejas.belagod@arm.com>
22103
88e784e6
UB
22104 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
22105 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 22106
47876a2a 221072013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
22108 Andi Kleen <ak@linux.intel.com>
22109
22110 PR target/55948
22111 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
22112 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
22113 memmodel flag.
22114
00892272
GJL
221152013-01-14 Georg-Johann Lay <avr@gjlay.de>
22116
22117 * config/avr/avr-stdint.h: Remove trailing blanks.
22118 * config/avr/avr-log.h: Same.
22119 * config/avr/avr-arch.h: Same.
22120 * config/avr/avr-devices.c: Same.
22121 * config/avr/avr-dimode.md: Same.
22122 * config/avr/predicates.md: Same.
22123 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 22124
00892272
GJL
22125 * config/avr/avr-protos.h: Same. And:
22126 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
22127 (init_cumulative_args): Rename to avr_init_cumulative_args.
22128 (expand_prologue): Rename to avr_expand_prologue.
22129 (expand_epilogue): Rename to avr_expand_epilogue.
22130 (adjust_insn_length): Rename to avr_adjust_insn_length.
22131 (notice_update_cc): Rename to avr_notice_update_cc.
22132 (final_prescan_insn): Rename to avr_final_prescan_insn.
22133 * config/avr/avr.c: Same.
22134 * config/avr/avr.h: Same.
22135 * config/avr/avr.md: Remove trailing blanks.
22136 (prologue): Use avr_expand_prologue.
22137 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
22138
7bb01996
RB
221392013-01-14 Richard Biener <rguenther@suse.de>
22140
22141 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
22142 verify_location, collect_subblocks): New functions.
22143 (verify_gimple_in_cfg): Verify that locations only reference
22144 BLOCKs in the functions BLOCK tree.
22145
2724573f
RB
221462013-01-14 Richard Biener <rguenther@suse.de>
22147
22148 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
22149 PHI argument.
22150 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
22151 unshare reference.
22152 (insert_out_of_ssa_copy_on_edge): Likewise.
22153 (rewrite_close_phi_out_of_ssa): Likewise.
22154 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
22155 debug expressions.
22156 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
22157 propagated constants.
22158 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
22159 can not be shared.
22160
9a0bbab6
GJL
221612013-01-14 Georg-Johann Lay <avr@gjlay.de>
22162
22163 * config/avr/avr-modes.def: Add GPL copyright notice.
22164
45805f17
UB
221652013-01-13 Uros Bizjak <ubizjak@gmail.com>
22166
22167 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
22168 MEMMODEL_MASK to determine memory model.
22169 (atomic_store<mode>): Ditto from operands[2].
22170 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
22171
9d60be38
JJ
221722013-01-13 Jakub Jelinek <jakub@redhat.com>
22173
22174 PR fortran/55935
45805f17 22175 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
22176 (fold_gimple_assign): Don't call unshare_expr here.
22177 (fold_ctor_reference): Call unshare_expr.
22178
e7f49d92
TG
221792013-01-13 Terry Guo <terry.guo@arm.com>
22180
aaf1e810
EB
22181 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
22182 * doc/fragments.texi: Document MULTILIB_REUSE.
22183 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 22184 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 22185 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
22186 (tmpmultilib4): Ditto.
22187 (multilib_reuse): New multilib argument.
22188
fbd03a27
RS
221892013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
22190
22191 * Makefile.in: Update copyright.
22192
b3681f13
TV
221932013-01-12 Tom de Vries <tom@codesourcery.com>
22194
22195 PR middle-end/55890
22196 * calls.c (expand_call): Check if arg_nr is valid.
22197
3f287e4b
MM
221982013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
22199
22200 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
22201 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
22202 documentation. Add missing '__' in front of
22203 __builtin_ia32_packssdw256.
3f287e4b 22204
1abcd5eb
AK
222052013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22206
22207 PR target/55719
22208 * config/s390/s390.c (s390_preferred_reload_class): Do not return
22209 NO_REGS for larl operands.
22210 (s390_reload_larl_operand): Use s390_load_address instead of
22211 emit_move_insn.
22212
980d0812
RB
222132013-01-11 Richard Biener <rguenther@suse.de>
22214
22215 * tree-cfg.c (verify_node_sharing_1): Split out from ...
22216 (verify_node_sharing): ... here.
22217 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
22218
7cb9fd07
EB
222192013-01-11 Eric Botcazou <ebotcazou@adacore.com>
22220
22221 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
22222 Substitute TREECHECKING.
22223 * configure: Regenerate.
22224 * Makefile.in (TREECHECKING): New.
22225
47876a2a 222262013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
22227
22228 PR tree-optimization/44061
22229 * tree-vrp.c (extract_range_basic): Compute zero as
22230 value-range for __builtin_constant_p of function parameters.
22231
d1e082c2
RS
222322013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
22233
45805f17 22234 Update copyright years.
d1e082c2 22235
f85021b0
VM
222362013-01-10 Vladimir Makarov <vmakarov@redhat.com>
22237
9d60be38 22238 PR rtl-optimization/55672
0160442c
VM
22239 * lra-eliminations.c (mark_not_eliminable): Permit addition with
22240 const to be eliminable.
f85021b0 22241
7a8b1ec4
DE
222422013-01-10 David Edelsohn <dje.gcc@gmail.com>
22243
22244 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
22245 * configure: Regenerate.
22246
ad2e5b71
RB
222472013-01-10 Richard Biener <rguenther@suse.de>
22248
ddf9322d 22249 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 22250
ffc5b2bb
RB
222512013-01-10 Richard Biener <rguenther@suse.de>
22252
22253 PR bootstrap/55792
22254 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
22255 locations for virtual PHI arguments.
22256 (rewrite_update_phi_arguments): Likewise.
22257
e1f674e4
JS
222582013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
22259
22260 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
22261 on to assembler.
22262
a57fc743
JJ
222632013-01-10 Jakub Jelinek <jakub@redhat.com>
22264
22265 PR tree-optimization/55921
22266 * tree-complex.c (expand_complex_asm): New function.
22267 (expand_complex_operations_1): Call it for GIMPLE_ASM.
22268
0ff4390d
AK
222692013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22270
22271 PR target/55718
22272 * config/s390/s390.c (s390_symref_operand_p)
22273 (s390_loadrelative_operand_p): Merge the two functions.
22274 (s390_check_qrst_address, print_operand_address): Add parameters
22275 to s390_loadrelative_operand_p invokation.
22276 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
22277 (s390_reload_larl_operand, s390_secondary_reload): Use
22278 s390_loadrelative_operand_p instead of s390_symref_operand_p.
22279 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
22280
6f557e0e
MS
222812013-01-09 Mike Stump <mikestump@comcast.net>
22282
22283 * dse.c (record_store): Remove unnecessary assert.
22284
7770c9e9
JH
222852013-01-09 Jan Hubicka <jh@suse.cz>
22286
22287 PR tree-optimization/55569
22288 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
22289 * cfgloop.h (scale_loop_profile): Likewise.
22290
a19b1432
JH
222912013-01-09 Jan Hubicka <jh@suse.cz>
22292
22293 PR lto/45375
ddf9322d
UB
22294 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
22295 functions.
a19b1432
JH
22296 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
22297
9a002da8
RS
222982013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
22299
22300 PR middle-end/55114
22301 * expr.h (maybe_emit_group_store): Declare.
22302 * expr.c (maybe_emit_group_store): New function.
22303 * builtins.c (expand_builtin_int_roundingfn): Call it.
22304 (expand_builtin_int_roundingfn_2): Likewise.
22305
511dcace
VM
223062013-01-09 Vladimir Makarov <vmakarov@redhat.com>
22307
e1f2b729 22308 PR rtl-optimization/55829
511dcace
VM
22309 * lra-constraints.c (match_reload): Add code for absent output.
22310 (curr_insn_transform): Add code for reloads of matched inputs
22311 without output.
22312
7b0fe4f4
UB
223132013-01-09 Uros Bizjak <ubizjak@gmail.com>
22314
22315 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
22316 attribute of movddup insn to DF.
22317 (*vec_interleave_lowv2df): Ditto.
22318 (vec_dupv2df): Ditto.
22319
870ca331
JH
223202013-01-09 Jan Hubicka <jh@suse.cz>
22321
22322 PR tree-optimiation/55875
22323 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
22324 EVERY_ITERATION parameter.
7b0fe4f4 22325 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
22326 (idx_infer_loop_bounds): Similarly here.
22327 (n_of_executions_at_most): Simplify
22328 to only test for cases where statement is dominated by the
7b0fe4f4 22329 particular bound; handle correctly the "postdominance" test.
870ca331
JH
22330 (scev_probably_wraps_p): Use max loop iterations info
22331 as a global bound first.
22332
6f575fe4 223332013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
22334 Nick Clifton <nickc@redhat.com>
22335
22336 * config/v850/v850.md (cbranchsf4): New pattern.
22337 (cstoresf4): New pattern.
22338 (cbranchdf4): New pattern.
22339 (cstoredf4): New pattern.
22340 (movsicc): Disallow floating point comparisons.
22341 (cmpsf_le_insn): Fix order of operators.
22342 (cmpsf_lt_insn): Likewise.
22343 (cmpsf_eq_insn): Likewise.
22344 (cmpdf_le_insn): Likewise.
22345 (cmpdf_lt_insn): Likewise.
22346 (cmpdf_eq_insn): Likewise.
22347 (cmpsf_ge_insn): Use LE comparison.
22348 (cmpdf_ge_insn): Likewise.
22349 (cmpsf_gt_insn): Use LT comparison.
22350 (cmpdf_gt_insn): Likewise.
22351 (cmpsf_ne_insn): Delete pattern.
22352 (cmpdf_ne_insn): Delete pattern.
22353 * config/v850/v850.c (v850_gen_float_compare): Use
22354 gen_cmpdf_eq_insn for NE comparison.
22355 (v850_float_z_comparison_operator)
22356 (v850_float_nz_comparison_operator): Move from here ...
22357 * config/v850/predicates.md: ... to here. Move GT and GE
22358 comparisons into v850_float_z_comparison_operator.
22359 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
22360 Delete prototype.
22361 (v850_float_nz_comparison_operator): Likewise.
22362
f0d54148
JDA
223632013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22364
22365 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
22366 with calls to gen_insvsi/gen_insvdi.
22367
8f01beca
VK
223682013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
22369
22370 * config/i386/i386.c (initial_ix86_tune_features): Set up
22371 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
22372
2aa579ad
JJ
223732013-01-09 Steven Bosscher <steven@gcc.gnu.org>
22374 Jakub Jelinek <jakub@redhat.com>
22375
22376 PR tree-optimization/48189
22377 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
22378 If nitercst is 0, don't predict the exit edge.
22379
6edc3e32 223802013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
22381
22382 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
22383 in asm_fprintf with reg_names.
22384 (aarch64_print_operand_address): Likewise.
22385 (aarch64_return_addr): Likewise.
22386 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
22387
f6f94d94
JDA
223882013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22389
22390 * config/pa/pa.h (VAL_U6_BITS_P): Define.
22391 (INT_U6_BITS): Likewise.
22392 * config/pa/predicates.md (uint6_operand): New predicate.
22393 (shift5_operand, shift6_operand): Likewise.
22394 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
22395 arith32_operand.
22396 (lshrdi3): Use shift6_operand.
22397 (shrpsi4, shrpdi4): New insn patterns.
22398 (extzv): Delete expander.
22399 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
22400 predicates in unamed zero extract patterns. Tighten common constraint.
22401 (extv): Delete expander.
22402 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
22403 predicates in unamed sign extract patterns. Tighten common constraint.
22404 (insv): Delete expander.
22405 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
22406 predicates in unamed insert patterns. Tighten common constraint.
22407 Change uint32_operand predicate to uint6_operand predicate in unamed
22408 DImode pattern to insert constant values of type 1...1xxxx.
22409
36b72910
JH
224102013-01-04 Jan Hubicka <jh@suse.cz>
22411
22412 PR tree-optimization/55823
7b0fe4f4
UB
22413 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
22414 issue.
36b72910 22415
47876a2a 224162013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
22417 Uros Bizjak <ubizjak@gmail.com>
22418
22419 PR rtl-optimization/55845
22420 * df-problems.c (can_move_insns_across): Stop scanning at
22421 volatile_insn_p source instruction or give up if
22422 across_from .. across_to range contains any volatile_insn_p
22423 instructions.
22424
4369c11e
TB
224252013-01-08 Tejas Belagod <tejas.belagod@arm.com>
22426
7b0fe4f4
UB
22427 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
22428 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
22429 Declare.
4369c11e 22430 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 22431 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 22432
aeb7e7c1
JJ
224332013-01-08 Jakub Jelinek <jakub@redhat.com>
22434
22435 PR fortran/55341
22436 * asan.c (asan_clear_shadow): New function.
22437 (asan_emit_stack_protection): Use it.
22438
a02ad1aa
TB
224392013-01-08 Tejas Belagod <tejas.belagod@arm.com>
22440
22441 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
22442 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
22443 with tab instead of space.
22444
f90d87f5
NC
224452013-01-08 Nick Clifton <nickc@redhat.com>
22446
22447 * config/rl78/rl78.c (rl78_expand_prologue): Always select
22448 register bank 0 at the start of an interrupt handler.
83ffd964
NC
22449 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
22450 MDBH registers.
f90d87f5 22451
385eb93d
JG
224522013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
22453
22454 * config/aarch64/aarch64-simd.md
22455 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
22456 (aarch64_simd_bsl): Likewise.
22457 (aarch64_vcond_internal<mode>): Likewise.
22458 (vcond<mode><mode>): Likewise.
22459 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
22460 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
22461
4dcd1054
JG
224622013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
22463
22464 * config/aarch64/aarch64-builtins.c
22465 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
22466
4267a4a6
MJ
224672013-01-08 Martin Jambor <mjambor@suse.cz>
22468
22469 PR debug/55579
22470 * tree-sra.c (analyze_access_subtree): Return true also after
22471 potentially creating a debug-only replacement.
22472
5f4e6de3
JJ
224732013-01-08 Jakub Jelinek <jakub@redhat.com>
22474
3138f224
JJ
22475 PR middle-end/55890
22476 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
22477
5f4e6de3
JJ
22478 PR tree-optimization/54120
22479 * tree-vrp.c (range_fits_type_p): Don't allow
22480 src_precision < precision from signed vr to unsigned_p
22481 if vr->min or vr->max is negative.
22482 (simplify_float_conversion_using_ranges): Test can_float_p
22483 against CODE_FOR_nothing.
22484
f3ef18ff
JJ
224852013-01-08 Jakub Jelinek <jakub@redhat.com>
22486 Richard Biener <rguenther@suse.de>
22487
22488 PR middle-end/55851
22489 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
22490 types instead of just INTEGER_TYPE types.
22491
25c210f9
MK
224922013-01-07 Mark Kettenis <kettenis@openbsd.org>
22493
22494 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
22495 TF_SIZE): Define.
f90d87f5 22496
81826a7b
SE
224972013-01-07 Steve Ellcey <sellcey@mips.com>
22498
22499 PR target/42661
22500 * config/mips/mips.opt: Change mad to mmad to match documentation.
22501
35678514
GJL
225022013-01-07 Georg-Johann Lay <avr@gjlay.de>
22503
22504 PR target/55897
22505 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
22506 .progmemx.data now.
22507
e5669488
GJL
225082013-01-07 Georg-Johann Lay <avr@gjlay.de>
22509
22510 PR target/55897
22511 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
22512 (avr_addrspace_t): Add .section_name field.
22513 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
22514 array size.
22515 (avr_addrspace): Same. Initialize .section_name. Remove last
22516 NULL entry. Put __memx into .progmemx.data.
22517 (progmem_section_prefix): Remove.
22518 (avr_asm_init_sections): No need to initialize progmem_section.
22519 (avr_asm_named_section): Use avr_addrspace[].section_name to get
22520 section name prefix.
22521 (avr_asm_select_section): Ditto. And use get_unnamed_section to
22522 retrieve the progmem section.
22523 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
22524 boundary to run over avr_addrspace[].
22525 (avr_register_target_pragmas): Ditto.
22526
656e6f37
JJ
225272013-01-06 Jakub Jelinek <jakub@redhat.com>
22528
22529 * varasm.c (output_constant_def_contents): For asan_protect_global
22530 protected strings, adjust DECL_ALIGN if needed, before testing for
22531 anchored symbols.
22532 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
22533 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
22534 normal decls.
22535 (output_object_block): For asan protected decls, emit asan padding
22536 after their contents.
22537 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
22538 (asan_finish_file): Test it here instead.
22539
6edc3e32
UB
225402013-01-07 Nick Clifton <nickc@redhat.com>
22541 Matthias Klose <doko@debian.org>
22542 Doug Kwan <dougkwan@google.com>
22543 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
22544
22545 PR driver/55470
22546 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
22547
22548 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
22549
22550 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
22551
7b0fe4f4 22552 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
22553
22554 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
22555
2a095093
GJL
225562013-01-07 Georg-Johann Lay <avr@gjlay.de>
22557
f3b503f4 22558 PR target/54461
2a095093
GJL
22559 * doc/install.texi (Cross-Compiler-Specific Options): Document
22560 --with-avrlibc.
22561
383f9b34
TB
225622013-01-07 Tejas Belagod <tejas.belagod@arm.com>
22563
22564 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
22565 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
22566 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
22567 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
22568 vqmovun_high_s64): Fix source operand number and update copyright.
22569
3626621a
RB
225702013-01-07 Richard Biener <rguenther@suse.de>
22571
22572 PR middle-end/55890
22573 * gimple.h (gimple_call_builtin_p): New overload.
22574 * gimple.c (validate_call): New function.
22575 (gimple_call_builtin_p): Likewise.
22576 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
22577 Use gimple_call_builtin_p.
22578 (find_func_clobbers): Likewise.
22579 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
22580 (strlen_optimize_stmt): Likewise.
22581
8b2ea410
JG
225822013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
22583
22584 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
22585 (vld1q_dup_*): Likewise.
22586 (vld1_*): Likewise.
22587 (vld1q_*): Likewise.
22588 (vld1_lane_*): Likewise.
22589 (vld1q_lane_*): Likewise.
22590
9713d329
RB
225912013-01-07 Richard Biener <rguenther@suse.de>
22592
22593 * lto-streamer.h (LTO_minor_version): Bump to 2.
22594
3520f7cc
JG
225952013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
22596
22597 * config/aarch64/aarch64-protos.h
22598 (aarch64_const_double_zero_rtx_p): Rename to...
22599 (aarch64_float_const_zero_rtx_p): ...this.
22600 (aarch64_float_const_representable_p): New.
22601 (aarch64_output_simd_mov_immediate): Likewise.
22602 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
22603 move immediate case.
22604 * config/aarch64/aarch64.c
22605 (aarch64_const_double_zero_rtx_p): Rename to...
22606 (aarch64_float_const_zero_rtx_p): ...this.
22607 (aarch64_print_operand): Allow printing of new constants.
22608 (aarch64_valid_floating_const): New.
22609 (aarch64_legitimate_constant_p): Check for valid floating-point
22610 constants.
22611 (aarch64_simd_valid_immediate): Likewise.
22612 (aarch64_vect_float_const_representable_p): New.
22613 (aarch64_float_const_representable_p): Likewise.
22614 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
22615 (aarch64_output_simd_mov_immediate): New.
22616 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
22617 (*movdf_aarch64): Likewise.
22618 * config/aarch64/constraints.md (Ufc): New.
22619 (Y): call aarch64_float_const_zero_rtx.
22620 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
22621
e167c04d
RB
226222013-01-07 Richard Biener <rguenther@suse.de>
22623
22624 PR tree-optimization/55888
22625 PR tree-optimization/55862
22626 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
22627 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
22628 not if it is contained therein.
22629
0139aaab
GJL
226302013-01-07 Georg-Johann Lay <avr@gjlay.de>
22631
22632 * config/avr/t-avr: Typo.
22633
4a176b23
GJL
226342013-01-07 Georg-Johann Lay <avr@gjlay.de>
22635
22636 PR55243
22637 * config/avr/t-avr: Don't automatically rebuild
22638 $(srcdir)/config/avr/t-multilib
22639 $(srcdir)/config/avr/avr-tables.opt
22640 $(srcdir)/doc/avr-mmcu.texi
22641 (avr-mcus): New phony target to build them on request.
22642 (s-avr-mlib, s-avr-mmcu-texi): Remove.
22643 * avr/avr-mcus.def: Adjust comments.
22644
c7afdc98
UB
226452013-01-07 Uros Bizjak <ubizjak@gmail.com>
22646
22647 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
22648
1ab05c31
RS
226492013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
22650
22651 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
22652
488e3acc
RS
226532013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
22654
22655 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
22656
a89599d2
DE
226572013-01-05 David Edelsohn <dje.gcc@gmail.com>
22658
22659 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
22660 to generate profiling.
22661 * config/rs6000/aix64.h (LIB_SPEC): Same.
22662
70f09188
AP
226632013-01-04 Andrew Pinski <apinski@cavium.com>
22664
22665 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
22666 New function.
22667 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
22668
918d445f
UB
226692013-01-04 Uros Bizjak <ubizjak@gmail.com>
22670
22671 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
22672 unconditionally.
22673 (ix86_expand_move): Ditto.
22674 (ix86_zero_extend_to_Pmode): Ditto.
22675 (ix86_expand_call): Ditto.
22676 (ix86_expand_special_args_builtin): Ditto.
22677 (ix86_expand_builtin): Ditto.
22678
361618ec
RB
226792013-01-04 Richard Biener <rguenther@suse.de>
22680
22681 PR tree-optimization/55862
22682 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
22683 translating them through PHI nodes.
22684
87eab554
MJ
226852013-01-04 Martin Jambor <mjambor@suse.cz>
22686
22687 PR tree-optimization/55755
22688 * tree-sra.c (sra_modify_assign): Do not check that an access has no
22689 children when trying to avoid producing a VIEW_CONVERT_EXPR.
22690
33879b9f
MP
226912013-01-04 Marek Polacek <polacek@redhat.com>
22692
22693 PR middle-end/55859
22694 * opts.c (default_options_optimization): Clarify error message.
22695
3068819a
RB
226962013-01-04 Richard Biener <rguenther@suse.de>
22697
22698 PR middle-end/55863
22699 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
22700 reassociation.
22701
0e4ae794
JDA
227022013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22703
22704 PR target/53789
22705 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
22706 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
22707 references.
0e4ae794 22708
65c88cef
RH
227092013-01-03 Richard Henderson <rth@redhat.com>
22710
22711 * config/i386/i386.c (ix86_expand_move): Always assign to op1
22712 after eliminating TLS symbols.
22713
8ac16127
MG
227142013-01-03 Marc Glisse <marc.glisse@inria.fr>
22715
22716 PR bootstrap/50167
22717 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
22718 * graphite-poly.c (debug_gmp_value): Likewise.
22719
bb664f09
UB
227202013-01-03 Uros Bizjak <ubizjak@gmail.com>
22721
22722 PR target/55712
22723 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
22724 selected code model, define __code_mode_small__, __code_model_medium__,
22725 __code_model_large__, __code_model_32__ or __code_model_kernel__.
22726 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
22727 xchg temporary register with %k. Declare temporary register as
22728 early clobbered.
22729 [__x86_64__]: For medium and large code models, preserve %rbx register.
22730
bcf1ef00
RB
227312013-01-03 Richard Biener <rguenther@suse.de>
22732
0506634a 22733 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
22734 (dump_subscript): Adjust.
22735 (finalize_ddr_dependent): Do not dump redundant info.
22736 (analyze_siv_subscript): Adjust.
22737 (subscript_dependence_tester): Likewise.
22738 (compute_affine_dependence): Likewise.
22739
59fd17e3
RB
227402013-01-03 Richard Biener <rguenther@suse.de>
22741
22742 Revert
22743 2013-01-03 Richard Biener <rguenther@suse.de>
22744
22745 PR tree-optimization/55857
22746 * tree-vect-stmts.c (vectorizable_load): Do not setup
22747 re-alignment for invariant loads.
22748
22749 2013-01-02 Richard Biener <rguenther@suse.de>
22750
22751 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 22752 invariant load do not generate a vector load from the scalar location.
59fd17e3 22753
595c2679
RB
227542013-01-03 Richard Biener <rguenther@suse.de>
22755
22756 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
22757 for not vectorizing.
22758 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
22759 not build INDIRECT_REFs, call get_name once only.
22760 (vect_create_data_ref_ptr): Likewise. Dump base object kind
22761 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
22762
90bb7d7a
RB
227632013-01-03 Richard Biener <rguenther@suse.de>
22764
22765 PR tree-optimization/55857
22766 * tree-vect-stmts.c (vectorizable_load): Do not setup
22767 re-alignment for invariant loads.
22768
f09b77ca
RB
227692013-01-03 Richard Biener <rguenther@suse.de>
22770
22771 PR lto/55848
22772 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
22773 prefer a built-in decl.
22774
3461a16e
JJ
227752013-01-03 Jakub Jelinek <jakub@redhat.com>
22776
df8e2b4f
JJ
22777 * gcc.c (process_command): Update copyright notice dates.
22778 * gcov.c (print_version): Likewise.
22779 * gcov-dump.c (print_version): Likewise.
22780
3461a16e
JJ
22781 PR rtl-optimization/55838
22782 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
22783 iv0.step, iv1.step and step.
22784
8b5546d6
JJ
227852013-01-03 Jakub Jelinek <jakub@redhat.com>
22786 Marc Glisse <marc.glisse@inria.fr>
22787
22788 PR tree-optimization/55832
22789 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
22790 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
22791 integer_{one,zero}_node.
22792
8ab1d2e9
JJ
227932013-01-03 Jakub Jelinek <jakub@redhat.com>
22794
22795 PR debug/54402
22796 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
22797 * var-tracking.c (reverse_op): Don't add reverse ops to
22798 VALUEs that have already
0506634a 22799 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 22800
5b9ad1d4
GP
228012013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
22802
22803 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
22804
e25a6711
TJ
228052013-01-02 Teresa Johnson <tejohnson@google.com>
22806
22807 * dumpfile.c (dump_loc): Print filename with location.
22808 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
22809 new location_t parameter to emit complete unroll message with
22810 new dump framework.
22811 (canonicalize_loop_induction_variables): Compute loops location
22812 and pass to try_unroll_loop_completely.
22813 * loop-unroll.c (report_unroll_peel): New function.
22814 (peel_loops_completely): Use new dump format with location
22815 for main dumpfile message, and invoke report_unroll_peel on success.
22816 (decide_unrolling_and_peeling): Ditto.
22817 (decide_peel_once_rolling): Remove old dumpfile message subsumed
22818 by report_unroll_peel.
22819 (decide_peel_completely): Ditto.
22820 (decide_unroll_constant_iterations): Ditto.
22821 (decide_unroll_runtime_iterations): Ditto.
22822 (decide_peel_simple): Ditto.
22823 (decide_unroll_stupid): Ditto.
22824 * cfgloop.c (get_loop_location): New function.
22825 * cfgloop.h (get_loop_location): Declare.
22826
77878621
ST
228272013-01-02 Sriraman Tallam <tmsriram@google.com>
22828
22829 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
22830 NULL.
22831
9e65d03e
JDA
228322013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22833
22834 PR middle-end/55198
22835 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
22836 BLKmode objects when EXPAND_MEMORY is specified.
22837
6a7da30f
ST
228382013-01-02 Sriraman Tallam <tmsriram@google.com>
22839
22840 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
22841 in loop predicate.
22842 (fold_builtin_cpu): Do not share cpu model decls across statements.
22843
e78167f2
JM
228442013-01-02 Jason Merrill <jason@redhat.com>
22845
22846 PR c++/55804
22847 * tree.c (build_array_type_1): Revert earlier change.
22848
8c075fb4
YZ
228492013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
22850
22851 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
22852 "cortex-a57".
22853 * config/aarch64/aarch64-tune.md: Re-generate.
22854
0682ed3e
RB
228552013-01-02 Richard Biener <rguenther@suse.de>
22856
22857 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 22858 invariant load do not generate a vector load from the scalar location.
0682ed3e 22859
b8f6a302
RB
228602013-01-02 Richard Biener <rguenther@suse.de>
22861
22862 PR bootstrap/55784
22863 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
22864 * configure: Regenerate.
22865
04b80dbb
RS
228662013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
22867
22868 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
22869 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
22870 (expand_builtin_int_roundingfn_2): Keep the original target around
22871 for the fallback case.
22872
635b0b0c
RS
228732013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
22874
22875 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
22876 to be clear for sign changes.
22877
42d57399
JH
228782013-01-01 Jan Hubicka <jh@suse.cz>
22879
22880 * ipa-inline-analysis.c: Fix formatting.
22881
5bb6669d
JJ
228822013-01-01 Jakub Jelinek <jakub@redhat.com>
22883
22884 PR tree-optimization/55831
22885 * tree-vect-loop.c (get_initial_def_for_induction): Use
22886 gsi_after_labels instead of gsi_start_bb.
ad41bd84 22887\f
86a2db33 22888Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
22889
22890Copying and distribution of this file, with or without modification,
22891are permitted in any medium without royalty provided the copyright
22892notice and this notice are preserved.