]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR bootstrap/58521 (bootstrap failure: ICE in mem_ref_in_stmt, at tree-ssa-loop...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
ed0d3051
RB
12013-09-25 Richard Biener <rguenther@suse.de>
2
3 PR middle-end/58521
4 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
5
123485ca
JH
62013-09-25 Jan Hubicka <jh@suse.cz>
7
8 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
9 test.
10
d70b0f1f
MP
112013-09-25 Marek Polacek <polacek@redhat.com>
12
13 PR sanitizer/58420
14 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
15 when determining the type name.
16
e3f02798
OE
172013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
18
19 * config/sh/sh.md: Fix formatting.
20
4f17aa0b
XDL
212013-09-24 Xinliang David Li <davidxl@google.com>
22
23 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
24 Check max peel iterations parameter.
25 * param.def: New parameter.
26 * doc/invoke.texi: Document New parameter.
27
0498471b
CL
282013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
29
30 * gimple-pretty-print.c: Various whitespace tweaks.
31 * tree-core.h: Likewise.
32 * tree-pretty-print.c: Likewise.
33 * tree-ssa-alias.c: Likewise.
34 * tree-ssa-copy.c: Likewise.
35 * tree-ssanames.c: Likewise.
36 * tree-ssanames.h: Likewise.
37 * tree-vrp.c: Likewise.
38
5a8c2b57
AM
392013-09-24 Alan Modra <amodra@gmail.com>
40
41 PR middle-end/57134
42 PR middle-end/57586
43 * stmt.c (expand_asm_operands): Call expand_expr with
44 EXPAND_MEMORY for output operands that disallow regs. Don't
45 use EXPAND_WRITE on inout operands.
46
f40333af
RB
472013-09-24 Richard Biener <rguenther@suse.de>
48
49 PR middle-end/58513
50 * tree.c (reference_alias_ptr_type): Move ...
51 * alias.c (reference_alias_ptr_type): ... here and implement
52 in terms of the new reference_alias_ptr_type_1.
53 (ref_all_alias_ptr_type_p): New helper.
54 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
55 use ref_all_alias_ptr_type_p.
56 (get_deref_alias_set): Add flag_strict_aliasing check here.
57 (reference_alias_ptr_type_1): New function, split out from ...
58 (get_alias_set): ... here.
59 (alias_ptr_types_compatible_p): New function.
60 * alias.h (reference_alias_ptr_type): Declare.
61 (alias_ptr_types_compatible_p): Likewise.
62 * tree.h (reference_alias_ptr_type): Remove.
63 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
64 to compare MEM_REF alias types.
65
583e8bf5
RB
662013-09-24 Richard Biener <rguenther@suse.de>
67
68 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
69
5e8586d7
MM
702013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
71
19c3e797
MM
72 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
73 reload helper function arrays into a single array reg_addr.
74 (reload_fpr_gpr): Likewise.
75 (reload_gpr_vsx): Likewise.
76 (reload_vsx_gpr): Likewise.
77 (struct rs6000_reg_addr): Likewise.
78 (reg_addr): Likewise.
79 (rs6000_debug_reg_global): Change rs6000_vector_reload,
80 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
81 (rs6000_init_hard_regno_mode_ok): Likewise.
82 (rs6000_secondary_reload_direct_move): Likewise.
83 (rs6000_secondary_reload): Likewise.
84
5e8586d7
MM
85 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
86 constraints: wu, ww, and wy. Repurpose wv constraint added during
87 power8 changes. Put wg constraint in alphabetical order.
88
89 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
90 for future work to add ISA 2.07 VSX single precision support.
91 (-mvsx-scalar-double): Change default from -1 to 1, update
92 documentation comment.
93 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
94 (-mupper-regs-df): New debug switch to control whether DF values
95 can go in the traditional Altivec registers.
96 (-mupper-regs-sf): New debug switch to control whether SF values
97 can go in the traditional Altivec registers.
98
99 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
100 and wy constraints.
101 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
102 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
103 Add new constraints, wu/ww/wy. Repurpose wv constraint.
104 (rs6000_debug_legitimate_address_p): Print if we are running
105 before, during, or after reload.
106 (rs6000_secondary_reload): Add a comment.
107 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
108
109 * config/rs6000/constraints.md (wa constraint): Sort w<x>
110 constraints. Update documentation string.
111 (wd constraint): Likewise.
112 (wf constraint): Likewise.
113 (wg constraint): Likewise.
114 (wn constraint): Likewise.
115 (ws constraint): Likewise.
116 (wt constraint): Likewise.
117 (wx constraint): Likewise.
118 (wz constraint): Likewise.
119 (wu constraint): New constraint for ISA 2.07 SFmode scalar
120 instructions.
121 (ww constraint): Likewise.
122 (wy constraint): Likewise.
123 (wv constraint): Repurpose ISA 2.07 constraint that we not used in
124 the previous submissions.
125 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
126
e5af9ddd
RS
1272013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
128
129 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
130 (REG_BR_PROB): Say that the probability is stored in an int_list.
131 * reg-notes.def: Update commentary to mention INT_LIST.
132 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
133 (INT_LIST): New rtx.
134 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
135 * rtlanal.c (int_reg_note_p): New function.
136 (alloc_reg_note): Assert that the note does not have an int argument.
137 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
138 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
139 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
140 rather than an INSN_LIST. Handle INT_LIST.
141 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
142 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
143 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
144 Manipulate them as ints rather than rtxes.
145 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
146 * regmove.c (copy_src_to_dest): Likewise.
147 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
148
149 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
150 into the cases that need it.
151 * config/arm/arm.c (arm_unwind_emit): Likewise.
152
153 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
154 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
155 * loop-doloop.c (add_test, doloop_modify): Likewise.
156 * loop-unswitch.c (compare_and_jump_seq): Likewise.
157 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
158 * predict.c (combine_predictions_for_insn): Likewise.
159 * print-rtl.c (print_rtx): Handle INT_LIST.
160 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
161 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
162 * config/arm/arm.c (emit_unlikely_jump): Likewise.
163 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
164 (ix86_split_fp_branch, predict_jump): Likewise.
165 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
166 * config/sh/sh.c (expand_cbranchsi4): Likewise.
167 * config/spu/spu.c (ea_load_store_inline): Likewise.
168
169 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
170 value of a REG_BR_PROB note.
171 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
172 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
173 * emit-rtl.c (try_split): Likewise.
174 * predict.c (br_prob_note_reliable_p): Likewise.
175 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
176 * reorg.c (mostly_true_jump): Likewise.
177 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
178 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
179 * config/i386/i386.c (ix86_print_operand): Likewise.
180 * config/ia64/ia64.c (ia64_print_operand): Likewise.
181 * config/mmix/mmix.c (mmix_print_operand): Likewise.
182 * config/rs6000/rs6000.c (output_cbranch): Likewise.
183 * config/s390/s390.c (s390_expand_tbegin): Likewise.
184 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
185 * config/sparc/sparc.c (output_cbranch): Likewise.
186 * config/spu/spu.c (get_branch_target): Likewise.
187 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
188 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
189
450ad0cd
JH
1902013-09-23 Jan Hubicka <jh@suse.cz>
191
192 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
193 for ipa-devirt.
194 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
195 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
196 of external calls
197 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
198 (gimple_fold_call): Dump inconsistent devirtualizations; add
199 sanity check for type based devirtualizations.
200 * ipa-prop.c: Include ipa-utils.h
201 (ipa_intraprocedural_devirtualization): Add sanity check.
202 (try_make_edge_direct_virtual_call): Likewise.
203
cefce769
EB
2042013-09-23 Eric Botcazou <ebotcazou@adacore.com>
205
206 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
207 assignment statements.
208
a895a2b8
KV
2092013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
210
211 * gimple-pretty-print.c (dump_ssaname_info): New function.
212 (dump_gimple_phi): Call it.
213 (pp_gimple_stmt_1): Likewise.
214 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
215 (range_info_def): Declare.
216 * tree-pretty-print.c (pp_double_int): New function.
217 (dump_generic_node): Call it.
218 * tree-pretty-print.h (pp_double_int): Declare.
219 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
220 * tree-ssanames.h (range_info_def): New structure.
221 (value_range_type): Move definition here.
222 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
223 Declare.
224 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
225 initialization.
226 (set_range_info): New function.
227 (get_range_info): Likewise.
228 (duplicate_ssa_name_range_info): Likewise.
229 (duplicate_ssa_name_fn): Check pointer type and call
230 duplicate_ssa_name_range_info.
231 * tree-ssa-copy.c (fini_copy_prop): Likewise.
232 * tree-vrp.c (value_range_type): Remove definition, now in
233 tree-ssanames.h.
234 (vrp_finalize): Call set_range_info to update value range of
235 SSA_NAMEs.
236 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
237 (SSA_NAME_RANGE_INFO): New macro.
238
984af6ac
RB
2392013-09-23 Richard Biener <rguenther@suse.de>
240
241 PR tree-optimization/58464
242 * tree-ssa-pre.c (phi_trans_lookup): Remove.
243 (phi_trans_add): Change to add conditionally on being not
244 present.
245 (phi_translate_1): Remove recursion detection here.
246 (phi_translate): Pre-seed the cache with NULL to catch
247 recursion here in a more generic way.
248 (bitmap_find_leader): Adjust comment.
249 (get_representative_for): Dump value-numbers.
250 (create_expression_by_pieces): Likewise.
251 (insert_into_preds_of_block): Likewise.
252
0e26cf79
CB
2532013-09-23 Christian Bruel <christian.bruel@st.com>
254
255 PR target/58475
256 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
257 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
258
4d0e5b54
JG
2592013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
260
261 Revert r202780:
262 2013-09-20 Renlin Li <renlin.li@arm.com>
263
264 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
265 (aarch64_expand_epilogue): Likewise.
266 (aarch64_legitimize_reload_address): Likewise.
267
ca081cc8
EB
2682013-09-22 Eric Botcazou <ebotcazou@adacore.com>
269
270 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
271 NULL_TREE before pushing them onto the vector. Likewise for labels.
272
8fc53a5f
EB
2732013-09-21 Eric Botcazou <ebotcazou@adacore.com>
274
275 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
276 comparison operators when -fno-trapping-math is in effect.
277 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
278 comparison operators in TFmode and assert that unsupported operators
279 cannot reach here.
280 (ia64_print_operand): Likewise.
281
2822013-09-21 Jan Hubicka <jh@suse.cz>
0ca6c49f
JH
283
284 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
285 (sse_typeless_stores): Enable for core
286 (sse_load0_by_pxor): Likewise.
287 (four_jump_limit): Disable for core.
288 (pad_returns): Likewise.
289 (avoid_vector_decode): Likewise.
290 (fuse_cmp_and_branch): Enable for cores.
291 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
292
578e51e6
JDA
2932013-09-20 John David Anglin <danglin@gcc.gnu.org>
294
96ce28a3
JDA
295 PR middle-end/56791
296 * config/pa/pa.c (pa_option_override): Disable auto increment and
297 decrement instructions until reload is completed.
298
578e51e6
JDA
299 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
300 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
301 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
302
6fcd3a13
DD
3032013-09-20 DJ Delorie <dj@redhat.com>
304 Nick Clifton <nickc@redhat.com>
305
306 * config/rl78/rl78.c: Various whitespace and comment tweaks.
307 (need_to_save): Save bank 0 on interrupts.
308 (characterize_address): Strip far address wrappers.
309 (rl78_as_legitimate_address): Likewise.
310 (transcode_memory_rtx): Likewise.
311 (rl78_peep_movhi_p): Disable this peephole after devirt.
312 (rl78_propogate_register_origins): Forget all origins when a
313 CLOBBER is seen.
314 * config/rl78/rl78-virt.md: Various whitespace tweaks.
315 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
316 peephole2's.
317 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
318 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
319 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
320 relocating.
321 * config/rl78/constraints.md: Various whitespace and paren tweaks.
322
4a08db33
JDA
3232013-09-20 John David Anglin <danglin@gcc.gnu.org>
324
325 * config/pa/pa.md: In "scc" insn patterns, change output template to
326 handle const0_rtx in reg_or_0_operand operands.
327
7691132c
JBG
3282013-09-20 Martin Husemann <martin@NetBSD.org>
329
330 PR target/56875
331 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
332 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
333
a3cc13cc
RB
3342013-09-20 Richard Biener <rguenther@suse.de>
335
336 PR middle-end/58484
337 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
338 remembering SSA name version and block index.
339 (new_scev_info_str): Adjust.
340 (hash_scev_info): Likewise. Also hash the block index.
341 (eq_scev_info): Adjust.
342 (find_var_scev_info): Likewise.
343 (struct instantiate_cache_entry): Remove.
344 (struct instantiate_cache_type): Use a htab to map name, block
345 to chrec.
346 (instantiate_cache_type::~instantiate_cache_type): Adjust.
347 (get_instantiated_value_entry): Likewise.
348 (hash_idx_scev_info, eq_idx_scev_info): New functions.
349 (instantiate_scev_name): Adjust.
350
925f3871
JL
3512013-09-20 Jeff Law <law@redhat.com>
352
353 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
354
2888c331
YZ
3552013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
356
357 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
358 Call aarch64_simd_expand_args to update op[argc].
359
0a811e96
BS
3602013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
361
362 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
363 plugin argument.
364
0078f462
BS
3652013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
366
367 * gengtype.c (file_rules): Added rule for *.cc files.
368 (get_output_file_with_visibility): Give fatal message when no
369 rules found.
370
d20e48b0
RL
3712013-09-20 Renlin Li <renlin.li@arm.com>
372
373 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
374 (aarch64_expand_epilogue): Likewise.
375 (aarch64_legitimize_reload_address): Likewise.
376
59bb1544
BE
3772013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
378
379 PR middle-end/57748
380 * expr.c (expand_assignment): Remove misalignp code path.
381
a5430019
MP
3822013-09-20 Marek Polacek <polacek@redhat.com>
383
384 PR sanitizer/58413
385 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
386 TYPE_PRECISION. Add asserts.
387
9fed7f3a
RB
3882013-09-20 Richard Biener <rguenther@suse.de>
389
390 PR tree-optimization/58453
391 * tree-loop-distribution.c (distribute_loop): Apply the cost
392 model for -ftree-loop-distribute-patterns, too.
393
a820c834
RB
3942013-09-20 Richard Biener <rguenther@suse.de>
395
396 PR middle-end/58473
397 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
398 make type comparison less strict.
399
3cbe17f7
AM
4002013-09-20 Alan Modra <amodra@gmail.com>
401
402 * configure: Regenerate.
403 * aclocal.m4: Regenerate.
404
87fccdbb
MP
4052013-09-20 Marek Polacek <polacek@redhat.com>
406
407 PR other/58467
408 * doc/extend.texi: Document that attribute used is meant to be used
409 on variables with static storage duration.
410
8928eff3
JJ
4112013-09-19 Jakub Jelinek <jakub@redhat.com>
412
413 PR tree-optimization/58472
414 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
415 simd_lane_access set inv_p = false.
416 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
417 the simduid magic VAR_DECL.
418
b7b28c53
JH
4192013-09-19 Jan Hubicka <jh@suse.cz>
420
421 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
422
83ae86f5
JL
4232013-09-17 Jeff Law <law@redhat.com>
424
425 * tree-ssa-dom.c (record_temporary_equivalences): New function
426 split out of dom_opt_dom_walker::after_dom_children.
427 (dom_opt_dom_walker::thread_across_edge): Move common code
428 in here from dom_opt_dom_walker::after_dom_children.
429 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
430
9d532162
JH
4312013-09-19 Jan Hubicka <jh@suse.cz>
432
433 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
434 (TARGET_GENERIC): Use PROCESOR_GENERIC
435 (enum processor_type): Unify generic32 and 64.
436 * i386.md (cpu): Likewise.
437 * x86-tune.def (use_leave): Enable for generic32.
438 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
439 * athlon.md: Change generic64 to generic in all occurences.
440 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
441 (ix86_target_macros_internal): Likewise.
442 * driver-i386.c (host_detect_local_cpu): Likewise.
443 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename to ..
444 (generic_memcpy, generic_memset, generic_cost): This one.
445 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
446 (m_GENERIC32, m_GENERIC64): Remove.
447 (m_GENERIC): Turn into one flag.
448 (processor_target): Unify generic tunnings.
449 (ix86_option_override_internal): Replace generic32/64 by generic.
450 (ix86_issue_rate): Likewise.
451 (ix86_adjust_cost): Likewise.
452
188c7d00
JH
4532013-09-19 Jan Hubicka <jh@suse.cz>
454
455 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
456 of speculative flag.
457
4befd127
JJ
4582013-09-19 Jakub Jelinek <jakub@redhat.com>
459
460 * omp-low.c (expand_omp_sections): Always pass len - 1 to
461 GOMP_sections_start, even if !exit_reachable.
462
8a26ad39
VM
4632013-09-18 Vladimir Makarov <vmakarov@redhat.com>
464
465 * lra-constraints.c (need_for_all_save_p): Use macro
466 HARD_REGNO_CALL_PART_CLOBBERED.
467 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
468 set up pseudo conflict hard regs.
469
09487185
MM
4702013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
471
472 PR target/58452
473 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
474 operands.
475
080cbf9e
VM
4762013-09-18 Vladimir Makarov <vmakarov@redhat.com>
477
478 PR rtl-optimization/58438
479 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
480 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
481 from previous subpasses.
482
a0f70fcb
RE
4832013-09-18 Richard Earnshaw <rearnsha@arm.com>
484
485 * arm.c (arm_get_frame_offsets): Validate architecture supports
486 LDRD/STRD before accepting the tuning preference.
487 (arm_expand_prologue): Likewise.
488 (arm_expand_epilogue): Likewise.
489
0547c9b6
RB
4902013-09-18 Richard Biener <rguenther@suse.de>
491
492 PR tree-optimization/58417
493 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
494 have chrecs with symbols defined in the loop as operands.
495 (chrec_fold_multiply): Likewise.
496 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
497 parameters before folding binary operations.
498 (struct instantiate_cache_entry_hasher): Remove.
499 (struct instantiate_cache_type): Use a pointer-map.
500 (instantiate_cache_type::instantiate_cache_type): New function.
501 (instantiate_cache_type::get): Likewise.
502 (instantiate_cache_type::set): Likewise.
503 (instantiate_cache_type::~instantiate_cache_type): Adjust.
504 (get_instantiated_value_entry): Likewise.
505 (global_cache): New global.
506 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
507 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
508 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
509 (instantiate_scev_name): Adjust.
510 (instantiate_scev): Construct global instead of local cache.
511 (resolve_mixers): Likewise.
512
309dc1aa
DM
5132013-09-18 Daniel Morris <danielm@ecoscentric.com>
514 Paolo Carlini <paolo.carlini@oracle.com>
515
516 PR c++/58458
517 * doc/implement-cxx.texi: Fix references to the C++ standards.
518
995a1b4a
JJ
5192013-09-18 Jakub Jelinek <jakub@redhat.com>
520
521 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
522 * tree-vect-data-refs.c (vect_analyze_data_refs): For
523 simd_lane_access drs, update also DR_ALIGNED_TO.
524
ce6923c5
MP
5252013-09-18 Marek Polacek <polacek@redhat.com>
526
527 PR sanitizer/58411
528 * doc/extend.texi: Document no_sanitize_undefined attribute.
529 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
530 no_sanitize_undefined attribute.
531
d30d00a2
NC
5322013-09-18 Nick Clifton <nickc@redhat.com>
533
534 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
535 (ASM_DECLARE_FUNCTION_NAME): Define.
536
4d9192b5
TS
5372013-09-17 Trevor Saunders <tsaunders@mozilla.com>
538
539 * compare-elim.c (find_comparison_dom_walker): New class
540 (find_comparisons_in_bb): Rename to
541 find_comparison_dom_walker::before_dom_children
542 (find_comparisons): Adjust
543 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
544 adjust.
545 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
546 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
547 (init_walk_dominator_tree): Remove declaration.
548 (fini_walk_dominator_tree): Remove declaration.
549 * fwprop.c (single_def_use_dom_walker): New class
550 (single_def_use_enter_block): Convert to
551 single_def_use_dom_walker::before_dom_children.
552 (single_def_use_leave_block): Convert to
553 single_def_use_dom_walker::after_dom_children.
554 (build_single_def_use_links): Adjust.
555 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
556 class.
557 (find_candidates_in_block): Convert to
558 find_candidates_dom_walker::before_dom_children.
559 (execute_strength_reduction): Adjust.
560 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
561 (sese_dom_walker): New class.
562 (sese_dom_walker::sese_dom_walker): New constructor.
563 (sese_dom_walker::~sese_dom_walker): New destructor.
564 (build_sese_conditions_before): Convert to
565 sese_dom_walker::before_dom_children.
566 (build_sese_conditions_after): Convert to
567 sese_dom_walker::after_dom_children.
568 (build_poly_scop): Adjust
569 * tree-into-ssa.c (rewrite_dom_walker): New class
570 (rewrite_enter_block): Convert to
571 rewrite_dom_walker::before_dom_children.
572 (rewrite_leave_block): Convert to
573 rewrite_dom_walker::after_dom_children.
574 (rewrite_update_dom_walker): New class.
575 (rewrite_update_enter_block): Convert to
576 rewrite_update_dom_walker::before_dom_children.
577 (rewrite_update_leave_block): Convert to
578 rewrite_update_dom_walker::after_dom_children.
579 (rewrite_blocks, rewrite_into_ssa): Adjust.
580 (mark_def_dom_walker): New class.
581 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
582 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
583 (mark_def_sites_blocks): Convert to
584 mark_def_dom_walker::before_dom_children.
585 (mark_def_site_blocks): Remove.
586 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
587 (tree_ssa_dominator_optimize): Adjust.
588 (dom_thread_across_edge): Convert to method
589 dom_opt_dom_walker::thread_across_edge.
590 (dom_opt_enter_block): Convert to member function
591 dom_opt_dom_walker::before_dom_children.
592 (dom_opt_leave_block): Convert to member function
593 dom_opt_dom_walker::after_dom_children.
594 * tree-ssa-dse.c (dse_dom_walker): New class.
595 (dse_enter_block): Convert to member function
596 dse_dom_walker::before_dom_children.
597 (tree_ssa_dse): Adjust.
598 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
599 (determine_invariantness_stmt): Convert to method
600 invariantness_dom_walker::before_dom_children.
601 (determine_invariantness): Remove
602 (move_computations_dom_walker): New class.
603 (move_computations_stmt): Convert to method
604 move_computations_dom_walker::before_dom_children.
605 (move_computations, tree_ssa_lim): Adjust.
606 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
607 (nt_init_block): Make method
608 notrappping_dom_walker::before_dom_children.
609 (nt_fini_block): Make
610 method nontrapping_dom_walker::after_dom_children.
611 (get_non_trapping): Adjust.
612 * tree-ssa-pre.c (eliminate_dom_walker): New class.
613 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
614 (eliminate_leave_block): Make method.
615 eliminate_dom_walker::after_dom_children.
616 (eliminate): Adjust
617 * tree-ssa-strlen.c (strlen_dom_walker): New class.
618 (strlen_enter_block): Make method
619 strlen_dom_walker::before_dom_children.
620 (strlen_leave_block): Make
621 method strlen_dom_walker::after_dom_children.
622 (tree_ssa_strlen): Adjust.
623 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
624 (tree_ssa_uncprop): Adjust.
625 (uncprop_leave_block): Make method
626 uncprop_dom_walker::after_dom_children.
627 (uncprop_leave_block): Make method
628 uncprop_dom_walker::before_dom_children.
629
3b3cc26b
BC
6302013-09-18 Bin Cheng <bin.cheng@arm.com>
631
632 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn
633 before branch in same basic block. Check both src and dest of
634 the move insn.
635
b5ba3a9b
NC
6362013-09-17 Nick Clifton <nickc@redhat.com>
637
638 * config/rl78/rl78-real.md (bf): New pattern.
639 (bt): New pattern.
640 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
641 (rl78_print_operand): Do not put a # before a %B.
642 * config/rl78/rl78.opt: Tweak doc strings.
643
09d5094b
DD
6442013-09-17 DJ Delorie <dj@redhat.com>
645
646 * config/rl78/constraints.md (Wcv): Allow up to $r31.
647 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
648 (rl78_option_override): Likewise, if -mallregs.
649 (is_virtual_register): Likewise.
650 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
651 (REGNO_OK_FOR_BASE_P): Likewise.
652 * config/rl78/rl78.opt (-mallregs): New.
653
2ba1dca1
NC
6542013-09-17 Nick Clifton <nickc@redhat.com>
655
656 * config/rl78/rl78.c (need_to_save): Change return type to bool.
657 For interrupt functions: save all call clobbered registers if the
658 interrupt handler is not a leaf function.
659 (rl78_expand_prologue): Always recompute the frame information.
660 For interrupt functions: only select bank 0 if one of the bank 0
661 registers is going to be psuhed.
662
2e7c3f21
DD
6632013-09-17 DJ Delorie <dj@redhat.com>
664
665 * config/rl78/constraints.md: For each W* constraint, rename to C*
666 and create a W* constraint that checks for an optional ES: prefix
667 pattern also.
668 * config/rl78/rl78.md (UNS_ES_ADDR): New.
669 (es_addr): New. Used to wrap far addresses.
670 * config/rl78/rl78-protos.h (rl78_es_addr): New.
671 (rl78_es_base): New.
672 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
673 wrapped far addresses.
674 (rl78_print_operand_1): Unwrap far addresses before processing.
675 (rl78_lo16): Wrap far addresses in unspecs.
676 (rl78_es_addr): New.
677 (rl78_es_base): New.
678 (insn_ok_now): Check for not-yet-wrapped far addresses.
679 (transcode_memory_rtx): Properly re-wrap far addresses.
680
5c26a69a
SH
6812013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
682
683 * config/sparc/t-rtems: Add leon3 multilibs.
684
181f5f3e
CH
6852013-09-17 Cong Hou <congh@google.com>
686
687 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
688 when checking the dot production pattern. The type of rhs operand
689 of multiply is now checked correctly.
690
8d34e421
JL
6912013-09-17 Jeff Law <law@redhat.com>
692
693 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
694 edge implied equivalences into successor phis.
695 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
696 here from tree-ssa-threadedge.c.
697 (mark_threaded_blocks): When threading through a joiner, if both
698 successors of the joiner's clone reach the same block, verify the
699 PHI arguments are equal. If not, cancel the jump threading request.
700 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
701 tree-ssa-threadupdate.c
702 (thread_across_edge): Don't check PHI argument equality when
703 threading through joiner block here.
704
c152901f
AM
7052013-09-17 Andrew MacLeod <amacleod@redhat.com>
706
707 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
708 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
709 (warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized,
710 make_pass_early_warn_uninitialized): Move to tree-ssa-uninit.c.
711 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c
712 (has_undefined_value_p): New. Pass dependant parts of
713 ssa_undefined_value_p.
714 (uninit_undefined_value_p): Use has_undefined_value_p.
715 (warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized,
716 make_pass_early_warn_uninitialized): Move from tree-ssa.c
717 * tree-ssa.h: Adjust prototypes
718
b631d45a
JH
7192013-09-17 Jan Hubicka <jh@suse.cz>
720
721 PR middle-end/58332
722 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
723 * ipa-inline.c (can_inline_edge_p): Do not downgrade
724 FUNCTION_NOT_OPTIMIZED.
725 * ipa-inline-analysis.c (compute_inline_parameters): Function
726 not optimized is not inlinable unless it is alwaysinline.
727 (inline_analyze_function): Force calls in not optimized
728 function not inlinable.
729
5b79657a
JH
7302013-09-17 Jan Hubicka <jh@suse.cz>
731
732 PR middle-end/58329
733 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
734 to return NULL.
735 * ipa.c (function_and_variable_visibility): Likewise.
736 * ipa-profile.c (ipa_profile): Likewise.
737
27442c24
BE
7382013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
739
740 PR ipa/58398
741 * cgraph.c (cgraph_function_body_availability): Check for ifunc
742 attribute, and don't inline the resolver in this case.
743
753b9bc3
TJ
7442013-09-17 Teresa Johnson <tejohnson@google.com>
745
746 * coverage.c (get_coverage_counts): Add missing newline.
747
e3d3cfb4
KT
7482013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
749
750 PR tree-optimization/58088
751 * fold-const.c (mask_with_trailing_zeros): New function.
752 (fold_binary_loc): Make sure we don't recurse infinitely
753 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
754 Use mask_with_trailing_zeros where appropriate.
755
9a0ac98f
YR
7562013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
757
758 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
759 of 'prev' var to get better distance estimation.
760
78bbd765
EB
7612013-09-17 Eric Botcazou <ebotcazou@adacore.com>
762
763 * tree-inline.h (struct copy_body_data): Add transform_parameter.
764 * tree-inline.c (is_parameter_of): New predicate.
765 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
766 a parameter has been remapped.
767 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
768 (optimize_inline_calls): Initialize transform_parameter.
769 (copy_gimple_seq_and_replace_locals): Likewise.
770 (tree_function_versioning): Likewise.
771 (maybe_inline_call_in_expr): Likewise.
772
cad055a4
NC
7732013-09-17 Nick Clifton <nickc@redhat.com>
774
775 * config/msp430/msp430-protos.h: Add prototypes for new functions.
776 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
777 interrupt handlers.
778 (is_attr_func): New function.
779 (msp430_is_interrupt_func): New function.
780 (is_naked_func): New function.
781 (is_reentrant_func): New function.
782 (is_critical_func): New function.
783 (msp430_start_function): Add annotations for function attributes.
784 (msp430_attr): New function.
785 (msp430_attribute_table): New.
786 (msp430_function_section): New function.
787 (TARGET_ASM_FUNCTION_SECTION): Define.
788 (msp430_builtin): New enum.
789 (msp430_init_builtins): New function.
790 (msp430_builtin_devl): New function.
791 (msp430_expand_builtin): New function.
792 (TARGET_INIT_BUILTINS): Define.
793 (TARGET_EXPAND_BUILTINS): Define.
794 (TARGET_BUILTIN_DECL): Define.
795 (msp430_expand_prologue): Add support for naked, interrupt,
796 critical and reentrant functions.
797 (msp430_expand_epilogue): Likewise.
798 (msp430_print_operand): Handle 'O' character.
799 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
800 NO_TRAMPOLINES.
801 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
802 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
803 (pushm): Use a 'n' rather than an 'i' constraint.
804 (msp_return): Add generation of the interrupt return instruction.
805 (disable_interrupts): New pattern.
806 (enable_interrupts): New pattern.
807 (push_intr_state): New pattern.
808 (pop_intr_state): New pattern.
809 (bic_SR): New pattern.
810 (bis_SR): New pattern.
811 * doc/extend.texi: Document MSP430 function attributes and builtin
812 functions.
813
deb6c11a
RB
8142013-09-17 Richard Biener <rguenther@suse.de>
815
816 PR tree-optimization/58432
817 * tree-loop-distribution.c (tree_loop_distribution): Also
818 scan PHIs for outside loop uses and seed a partition from them.
819
c068654b
BC
8202013-09-17 Bin Cheng <bin.cheng@arm.com>
821
822 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
823 (restructure_reference): Call backtrace_base_for_ref.
824
567969e4
AM
8252013-09-17 Alan Modra <amodra@gmail.com>
826
827 PR target/57589
828 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11 patch.
829
5c0029de
DD
8302013-09-16 DJ Delorie <dj@redhat.com>
831
832 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
833 vregs location for RL78/G10.
834 (rl78_expand_prologue): Avoid SEL on G10.
835 (rl78_expand_epilogue): Likewise.
836 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
837 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
838 __RL78_G10__ when appropriate.
839 (ASM_SPEC): Pass -mg10 along to the assembler.
840 * config/rl78/rl78.md (sel_rb): Disable for G10.
841 * config/rl78/rl78.opt: Add -mg10 option.
842 * config/rl78/t-rl78: Add -mg10 multilib.
843
ea0f3e87
XDL
8442013-09-16 Xinliang David Li <davidxl@google.com>
845
846 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
847 * omp-low.c (omp_max_vf): Ditto.
848 (expand_omp_simd): Ditto.
849 * tree-vectorizer.c (vectorize_loops): Ditto.
850 (gate_vect_slp): Ditto.
851 (gate_increase_alignment): Ditto.
852 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
853 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
854 (gate_tree_vectorize): Name change.
855 (tree_vectorize): Ditto.
856 (pass_vectorize::gate): Call new function.
857 (pass_vectorize::execute): Ditto.
858 opts.c: O3 default setting change.
859 (finish_options): Check new flag.
860 * doc/invoke.texi: Document new flags.
861 * common.opt: New flags.
862
4f3da2e5
AS
8632013-09-16 Andreas Schwab <schwab@linux-m68k.org>
864
865 * doc/tm.texi.in (Cond Exec Macros): Remove node.
866 (Condition Code): Don't reference it.
867 * doc/tm.texi: Regenerate.
868
aa940f7c
VM
8692013-09-16 Vladimir Makarov <vmakarov@redhat.com>
870
871 PR middle-end/58418
872 * lra-constraints.c (undo_optional_reloads): Consider all optional
873 reload even if it did not get a hard reg.
874
e645e942
TJ
8752013-09-16 Teresa Johnson <tejohnson@google.com>
876
877 * dumpfile.c (dump_loc): Remove newline emission.
878 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
879 emission to dump_printf_loc calls where missing.
880 (vect_mark_for_runtime_alias_test): Ditto.
881 (vect_analyze_data_ref_dependence): Ditto.
882 (vect_analyze_data_ref_dependences): Ditto.
883 (vect_slp_analyze_data_ref_dependence): Ditto.
884 (vect_slp_analyze_data_ref_dependences): Ditto.
885 (vect_compute_data_ref_alignment): Ditto.
886 (vect_update_misalignment_for_peel): Ditto.
887 (vect_verify_datarefs_alignment): Ditto.
888 (vector_alignment_reachable_p): Ditto.
889 (vect_get_data_access_cost): Ditto.
890 (vect_enhance_data_refs_alignment): Ditto.
891 (vect_find_same_alignment_drs): Ditto.
892 (vect_analyze_data_refs_alignment): Ditto.
893 (vect_analyze_group_access): Ditto.
894 (vect_analyze_data_ref_access): Ditto.
895 (vect_analyze_data_ref_accesses): Ditto.
896 (vect_prune_runtime_alias_test_list): Ditto.
897 (vect_analyze_data_refs): Ditto.
898 (vect_create_addr_base_for_vector_ref): Ditto.
899 (vect_create_data_ref_ptr): Ditto.
900 (vect_grouped_store_supported): Ditto.
901 (vect_grouped_load_supported): Ditto.
902 * value-prof.c (check_counter): Ditto.
903 (check_ic_target): Ditto.
904 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
905 (vect_recog_widen_mult_pattern): Ditto.
906 (vect_recog_widen_sum_pattern): Ditto.
907 (vect_recog_over_widening_pattern): Ditto.
908 (vect_recog_widen_shift_pattern): Ditto.
909 (vect_recog_rotate_pattern): Ditto.
910 (vect_recog_vector_vector_shift_pattern): Ditto.
911 (vect_recog_divmod_pattern): Ditto.
912 (vect_recog_mixed_size_cond_pattern): Ditto.
913 (vect_recog_bool_pattern): Ditto.
914 (vect_pattern_recog_1): Ditto.
915 (vect_pattern_recog): Ditto.
916 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
917 (vect_is_simple_iv_evolution): Ditto.
918 (vect_analyze_scalar_cycles_1): Ditto.
919 (vect_get_loop_niters): Ditto.
920 (vect_analyze_loop_1): Ditto.
921 (vect_analyze_loop_form): Ditto.
922 (vect_analyze_loop_operations): Ditto.
923 (vect_analyze_loop_2): Ditto.
924 (vect_analyze_loop): Ditto.
925 (report_vect_op): Ditto.
926 (vect_is_slp_reduction): Ditto.
927 (vect_is_simple_reduction_1): Ditto.
928 (vect_get_known_peeling_cost): Ditto.
929 (vect_estimate_min_profitable_iters): Ditto.
930 (vect_model_reduction_cost): Ditto.
931 (vect_model_induction_cost): Ditto.
932 (get_initial_def_for_induction): Ditto.
933 (vect_create_epilog_for_reduction): Ditto.
934 (vectorizable_reduction): Ditto.
935 (vectorizable_induction): Ditto.
936 (vectorizable_live_operation): Ditto.
937 (vect_loop_kill_debug_uses): Ditto.
938 (vect_transform_loop): Ditto.
939 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
940 (vect_stmt_relevant_p): Ditto.
941 (process_use): Ditto.
942 (vect_mark_stmts_to_be_vectorized): Ditto.
943 (vect_model_simple_cost): Ditto.
944 (vect_model_promotion_demotion_cost): Ditto.
945 (vect_model_store_cost): Ditto.
946 (vect_get_store_cost): Ditto.
947 (vect_model_load_cost): Ditto.
948 (vect_get_load_cost): Ditto.
949 (vect_init_vector_1): Ditto.
950 (vect_get_vec_def_for_operand): Ditto.
951 (vect_finish_stmt_generation): Ditto.
952 (vectorizable_call): Ditto.
953 (vectorizable_conversion): Ditto.
954 (vectorizable_assignment): Ditto.
955 (vectorizable_shift): Ditto.
956 (vectorizable_operation): Ditto.
957 (vectorizable_store): Ditto.
958 (vectorizable_load): Ditto.
959 (vectorizable_condition): Ditto.
960 (vect_analyze_stmt): Ditto.
961 (vect_transform_stmt): Ditto.
962 (vect_is_simple_use): Ditto.
963 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
964 (vect_can_advance_ivs_p): Ditto.
965 (vect_update_ivs_after_vectorizer): Ditto.
966 (vect_do_peeling_for_loop_bound): Ditto.
967 (vect_gen_niters_for_prolog_loop): Ditto.
968 (vect_update_inits_of_drs): Ditto.
969 (vect_create_cond_for_alias_checks): Ditto.
970 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
971 (vect_build_slp_tree_1): Ditto.
972 (vect_supported_load_permutation_p): Ditto.
973 (vect_analyze_slp_instance): Ditto.
974 (vect_analyze_slp): Ditto.
975 (vect_make_slp_decision): Ditto.
976 (vect_detect_hybrid_slp): Ditto.
977 (vect_bb_vectorization_profitable_p): Ditto.
978 (vect_slp_analyze_bb_1): Ditto.
979 (vect_update_slp_costs_according_to_vf): Ditto.
980 (vect_get_mask_element): Ditto.
981 (vect_transform_slp_perm_load): Ditto.
982 (vect_schedule_slp_instance): Ditto.
983 (vect_schedule_slp): Ditto.
984 (vect_slp_transform_bb): Ditto.
985 * profile.c (read_profile_edge_counts): Ditto.
986 (compute_branch_probabilities): Ditto.
987 * coverage.c (get_coverage_counts): Ditto.
988
46f851f3
DN
9892013-09-16 Diego Novillo <dnovillo@google.com>
990
991 * tree-core.h: Add missing comment lines from refactoring
992 of tree.h.
993
1632a686
JH
9942013-09-16 Jan Hubicka <jh@suse.cz>
995
996 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
997 abstract functions; for static functions check the presence
998 of body.
999
828e70c1
JG
10002013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
1001
1002 * config/aarch64/aarch64-simd-builtins.def (fma): New.
1003 * config/aarch64/aarch64-simd.md
1004 (aarch64_mla_elt<mode>): New.
1005 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
1006 (aarch64_mls_elt<mode>): Likewise.
1007 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
1008 (aarch64_fma4_elt<mode>): Likewise.
1009 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
1010 (aarch64_fma4_elt_to_128v2df): Likewise.
1011 (aarch64_fma4_elt_to_64df): Likewise.
1012 (fnma<mode>4): Likewise.
1013 (aarch64_fnma4_elt<mode>): Likewise.
1014 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
1015 (aarch64_fnma4_elt_to_128v2df): Likewise.
1016 (aarch64_fnma4_elt_to_64df): Likewise.
1017 * config/aarch64/iterators.md (VDQSF): New.
1018 * config/aarch64/arm_neon.h
1019 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
1020 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
1021
779aea46
JG
10222013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
1023
1024 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
1025 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
1026 (aarch64_mul3_elt_to_128df): Likewise.
1027 (aarch64_mul3_elt_to_64v2df): Likewise.
1028 * config/aarch64/iterators.md (VEL): Also handle DFmode.
1029 (VMUL): New.
1030 (VMUL_CHANGE_NLANES) Likewise.
1031 (h_con): Likewise.
1032 (f): Likewise.
1033 * config/aarch64/arm_neon.h
1034 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
1035
a407a750
JG
10362013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
1037
1038 * config/aarch64/arm_neon.h
1039 (vcvtx_high_f32_f64): Fix parameters.
1040
f77e2d2d 10412013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 1042 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 1043
a5bd71fa 1044 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 1045
36875e8f
RB
10462013-09-16 Richard Biener <rguenther@suse.de>
1047
1048 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
1049 (dot_rdg_1): Handle control_dd.
1050 (create_edge_for_control_dependence): New function.
1051 (create_rdg_edges): Add control dependences if asked for.
1052 (build_rdg): Likewise.
1053 (generate_loops_for_partition): If there are not necessary
1054 control stmts remove all their dependencies.
1055 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
1056 (distribute_loop): Pass on control dependences.
1057 (tree_loop_distribution): Compute control dependences and remove
1058 restriction on number of loop nodes.
1059
96e24d49
JJ
10602013-09-16 Jakub Jelinek <jakub@redhat.com>
1061
1062 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
1063 for internal calls.
1064
40dbb05c
RS
10652013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
1066
1067 * cse.c (try_const_anchors): Punt on CC modes.
1068
97191ad0
JBG
10692013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1070
1071 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
1072
403a3fb7
JDA
10732013-09-14 John David Anglin <danglin@gcc.gnu.org>
1074
1075 PR target/58382
1076 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
1077 calls to word_mode.
1078
fb5610fb
IS
10792013-09-14 Iain Sandoe <iain@codesourcery.com>
1080
1081 PR target/48094
1082 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
1083 seen.
1084 (darwin_objc1_section): Likewise.
fb5610fb
IS
1085 (darwin_file_end): Emit Image Info section when required.
1086
afdec9bd
JH
10872013-09-14 Jan Hubicka <jh@suse.cz>
1088
1089 * tree-into-ssa.c (gate_into_ssa): New.
1090 (pass_data_build_ssa): Use it.
1091 * cgraph.h (expand_thunk): Update prototype.
1092 * cgraphunit.c (analyze_function): Expand thunks early.
1093 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
1094 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
1095 set lowered flag; do not add new function.
1096 (assemble_thunks_and_aliases): Update.
1097 * tree-ssa.c (gate_init_datastructures): New gate.
1098 (pass_data_init_datastructures): Use it.
1099
492d1e0a
IS
11002013-09-14 Iain Sandoe <iain@codesourcery.com>
1101
1102 PR target/58269
f77e2d2d 1103 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
1104 xmm register set described in the psABI.
1105
d13c6b70
EG
11062013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
1107
f77e2d2d
JBG
1108 * dwarf2out.c (should_emit_struct_debug): Add check
1109 for type_decl variable is not NULL.
d13c6b70 1110
88b0e79e
JC
11112013-09-13 Jacek Caban <jacek@codeweavers.com>
1112
1113 * config.gcc: Use new winnt-c.c target hooks
1114 * config/t-winnt: New file
1115 * config/winnt-c.c: New file
1116 * doc/tm.texi.in: Document new hook
1117 * doc/tm.texi: Regenerated
1118
19ba6aab
JH
11192013-09-13 Jan Hubicka <jh@suse.cz>
1120
1121 PR middle-end/58094
1122 * ipa-inline.c (check_callers): New function.
1123 (check_caller_edge): Remove.
1124 (want_inline_function_to_all_callers_p): Also permit alises that are
1125 called dirrectly.
1126 (inline_to_all_callers): Terminate the walk when devirtualization
1127 introduce new calls.
1128
a93c18c8
JH
11292013-09-13 Jan Hubicka <jh@suse.cz>
1130
1131 * ipa-inline-analysis.c (struct growth_data): Add node.
1132 (do_estimate_growth_1): Fix detection of recursion.
1133
f3b331d1
JJ
11342013-09-13 Jakub Jelinek <jakub@redhat.com>
1135
1136 PR tree-optimization/58392
1137 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
1138 to avoid shadowing of outer loop variable. If
1139 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
1140 replace_by_duplicate_decl simduid of loops that have it set and
1141 set dest_cfun->has_simduid_loops and/or
1142 dest_cfun->has_force_vect_loops.
1143 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
1144 instead of maybe_lookup_decl.
1145 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
1146 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
1147 call. Copy over force_vect and copy and remap simduid. Set
1148 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
1149 (copy_cfg_body): Remove blocks_to_copy argument. Use
1150 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
1151 caller. Don't set cfun->has_simduid_loops and/or
1152 cfun->has_force_vect_loops here.
1153 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
1154 caller.
1155 (expand_call_inline, tree_function_versioning): Adjust copy_body
1156 callers.
1157
ae6d0907
MJ
11582013-09-13 Martin Jambor <mjambor@suse.cz>
1159
1160 PR bootstrap/58388
1161 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
1162 the assert if the edge was a speculative one.
1163
2fd5894f
RB
11642013-09-13 Richard Biener <rguenther@suse.de>
1165
1166 * tree-data-ref.h (known_dependences_p): Move here ...
1167 * tree-loop-distribution.c (known_dependences_p): ... from here.
1168 (dump_rdg_component, debug_rdg_component): Remove.
1169 (dump_rdg): Adjust.
1170 (generate_loops_for_partition): Use gimple_uid instead of
1171 relying on matching stmt visit order.
1172 (rdg_build_partitions): Take starting stmt vector.
1173 (ldist_gen): Merge into ...
1174 (distribute_loop): ... this function. Do not compute starting
1175 vertices vector.
1176 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
1177
86eb4bd7
KT
11782013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1179
1180 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
1181 Set type attribute correctly. Set predicable_short_it attribute.
1182 (cmpsi_shiftsi): Remove %? from output template.
1183
83a95546
RB
11842013-09-13 Richard Biener <rguenther@suse.de>
1185
1186 * tree-loop-distribution.c (struct rdg_component,
1187 rdg_defs_used_in_other_loops_p, free_rdg_components,
1188 rdg_build_components): Remove.
1189 (stmts_from_loop): Do not record virtual PHIs.
1190 (generate_loops_for_partition): Skip virtual PHIs.
1191 (build_rdg_partition_for_component): Rename to ...
1192 (build_rdg_partition_for_vertex): ... this and adjust.
1193 (rdg_build_partitions): Take a vector of starting vertices
1194 instead of components. Remove unnecessary leftover handling.
1195 (ldist_gen): Do not build components or record other stores.
1196 (distribute_loop): Do not distribute loops containing stmts
1197 with side-effects.
1198
c0ecf7f1
CB
11992013-09-13 Christian Bruel <christian.bruel@st.com>
1200
1201 PR target/58314
1202 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
1203
34f56efc
KT
12042013-09-13 Kai Tietz <ktietz@redhat.com>
1205
740f2bf3
KT
1206 * config.gcc: Separate cases for mingw and cygwin targets,
1207 and add 64-bit cygwin target case.
1208
34f56efc
KT
1209 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
1210 dll-export inline-functions.
1211 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
1212
1213
12142013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
1215
1216 PR middle-end/58387
1217 Revert:
1218 2013-09-06 Jeff Law <law@redhat.com>
1219
1220 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
1221 edge implied equivalences into successor phis.
1222
aadb52ad
DD
12232013-09-12 DJ Delorie <dj@redhat.com>
1224
1225 * config/rl78/rl78-virt.md: Change from | to \; for asm line
1226 separators.
1227
90ae7019
BM
12282013-09-12 Brooks Moses <bmoses@google.com>
1229
1230 PR driver/42955
1231 * Makefile.in: Do not install driver binaries in $(target)/bin.
1232
17b2557c
DD
12332013-09-12 DJ Delorie <dj@redhat.com>
1234
c5215a9b
DD
1235 * config/rl78/rl78.opt (mrelax): New.
1236 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
1237 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
1238
17b2557c
DD
1239 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
1240 between SP and FP.
1241 (rl78_expand_epilogue): Likewise.
1242
ecafcf05
VM
12432013-09-12 Vladimir Makarov <vmakarov@redhat.com>
1244
1245 PR middle-end/58335
84f6d9fa 1246 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
1247 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
1248 pointer elimination with using remove_reg_equal_offset_note.
1249
8369f38a
DD
12502013-09-12 DJ Delorie <dj@redhat.com>
1251
f6a83b4a
DD
1252 * config/msp430/: New port.
1253 * config.gcc (msp430): Added.
1254 * doc/invoke.texi: Document MSP430 options.
1255 * doc/install.texi: Document msp430-elf
1256 * doc/md.texi: Document msp430-elf
1257 * doc/contrib.texi: Document msp430-elf
1258
8369f38a
DD
1259 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
1260 PSImode.
1261
a854f856
MJ
12622013-09-12 Martin Jambor <mjambor@suse.cz>
1263
1264 PR ipa/58389
1265 * ipa-prop.c (remove_described_reference): Give up if the edge in the
1266 reference descriptor is NULL.
1267 (ipa_edge_removal_hook): If owning a reference descriptor, set its
1268 edge to NULL.
1269
b12ebd96
AM
12702013-09-12 Andrew MacLeod <amacleod@redhat.com>
1271
1272 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
1273 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
1274 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
1275 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
1276 make_temp_ssa_name): move to tree-ssanames.h
1277 * tree-ssa-alias.h: Move prototype.
1278 * tree-ssa.h: Include tree-ssanames.h.
1279 * tree-ssanames.c (FREE_SSANAMES): Move to here.
1280 * tree-ssanames.h: New. Move items from tree-flow*.h
1281 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
1282
e1fb4ad3
RB
12832013-09-12 Richard Biener <rguenther@suse.de>
1284
1285 PR tree-optimization/58404
1286 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
1287 propagate non-invariant addresses into dereferences wrapped
1288 in component references.
1289
154c9188
RB
12902013-09-12 Richard Biener <rguenther@suse.de>
1291
1292 PR tree-optimization/58402
1293 * passes.def: Move pass_late_warn_uninitialized later.
1294
7a300452
AM
12952013-09-12 Andrew MacLeod <amacleod@redhat.com>
1296
1297 * tree-ssa.h: New. Move content from tree-flow.h and
1298 tree-flow-inline.h.
1299 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
1300 Move prototypes belonging to tree-ssa.c.
f77e2d2d 1301 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
1302 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
1303 tree-ssa.h.
1304 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
1305 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
1306 to...
1307 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
1308 * tree.h: Move prototype to tree-ssa.h.
1309 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
1310 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
1311 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
1312 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
1313 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
1314 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
1315 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
1316 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
1317 graphite-blocking.c, graphite-clast-to-gimple.c,
1318 graphite-dependences.c, graphite-interchange.c,
1319 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
1320 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
1321 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
1322 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
1323 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
1324 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
1325 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
1326 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
1327 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
1328 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
1329 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
1330 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
1331 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
1332 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
1333 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
1334 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
1335 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
1336 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
1337 value-prof.c, var-tracking.c,
1338 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
1339
97463b2b
RB
13402013-09-12 Richard Biener <rguenther@suse.de>
1341
1342 PR tree-optimization/58396
1343 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
1344 (build_rdg): Take a loop-nest parameter, fix memleaks.
1345 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
1346
80ecd89d
YR
13472013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
1348
1349 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
1350 for SLM.
1351
893e85fa
CM
13522013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
1353
1354 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
1355 The FMA instruction names should have a 'v' prefix.
1356
174ec470
RB
13572013-09-12 Richard Biener <rguenther@suse.de>
1358
1359 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
1360 (dot_rdg): Use popen instead of system in optional code.
1361 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
1362 (already_processed_vertex_p): Adjust.
1363 (has_anti_or_output_dependence, predecessor_has_mem_write,
1364 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
1365 rdg_flag_uses): Remove.
1366 (rdg_flag_vertex): Simplify.
1367 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
1368 remove recursion.
1369 (build_rdg_partition_for_component): Process the first vertex
1370 of a component only.
1371 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
1372
38c89763
AM
13732013-09-12 Alan Modra <amodra@gmail.com>
1374
1375 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
1376
3e3d9d17
DD
13772013-09-11 DJ Delorie <dj@redhat.com>
1378 Nick Clifton <nickc@redhat.com>
1379
1380 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
1381 (rl78_stack_based_mem): New.
1382 * config/rl78/constraints.md (Iv08): New.
1383 (Iv16): New.
1384 (Iv24): New.
1385 (Is09): New.
1386 (Is17): New.
1387 (Is25): New.
1388 (ISsi): New.
1389 (IShi): New.
1390 (ISqi): New.
1391 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
1392 (movhi): Likewise.
1393 (movsi): Change from expand to insn-and-split.
1394 (ashrsi3): Clobber AX.
1395 (lshrsi3): New.
1396 (ashlsi3): New.
1397 (cbranchsi4): New.
1398 * config/rl78/rl78.md (CC_REG): Fix.
1399 (addsi3): Allow memory and immediate operands.
1400 (addsi3_internal): Split into...
1401 (addsi3_internal_virt): ...new, and ...
1402 (addsi3_internal_real): ...new.
1403 (subsi): New.
1404 (subsi3_internal_virt): New.
1405 (subsi3_internal_real): New.
1406 (mulsi3): Add memory operand.
1407 (mulsi3_rl78): Likewise.
1408 (mulsi3_g13): Likewise.
1409 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
1410 (cbranchqi4_real): Add more constraint options.
1411 (cbranchhi4_real): Expand pattern.
1412 (cbranchhi4_real_signed): New.
1413 (cbranchhi4_real_inverted): New.
1414 (cbranchsi4_real_lt): New.
1415 (cbranchsi4_real_ge): New.
1416 (cbranchsi4_real_signed): New.
1417 (cbranchsi4_real): New.
1418 (peephole2): New.
893e85fa
CM
1419 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
1420 constant shifts.
3e3d9d17
DD
1421 (lshrsi3_virt): Likewise.
1422 (ashlsi3_virt): Likewise.
1423 (cbranchqi4_virt_signed): New.
1424 (cbranchhi4_virt_signed): New.
1425 (cbranchsi4_virt): New.
1426 * config/rl78/rl78.c: Whitespace fixes throughout.
1427 (move_elim_pass): New.
1428 (pass_data_rl78_move_elim): New.
1429 (pass_rl78_move_elim): New.
1430 (make_pass_rl78_move_elim): New.
1431 (rl78_devirt_info): Run devirt earlier.
1432 (rl78_move_elim_info): New.
1433 (rl78_asm_file_start): Register it.
1434 (rl78_split_movsi): New.
1435 (rl78_as_legitimate_address): Allow virtual base registers when
1436 appropriate.
1437 (rl78_addr_space_convert): Remove spurious debug stuff.
1438 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
1439 (rl78_print_operand): More cases for not printing '#'.
1440 (rl78_expand_compare): Remove most of the logic.
1441 (content_memory): New.
1442 (clear_content_memory): New.
1443 (get_content_index): New.
1444 (get_content_name): New.
1445 (display_content_memory): New.
1446 (update_content): New.
1447 (record_content): New.
1448 (already_contains): New.
1449 (insn_ok_now): Re-recog insns with virtual registers.
1450 (add_postponed_content_update): New.
1451 (process_postponed_content_update): New.
1452 (gen_and_emit_move): New.
893e85fa
CM
1453 (transcode_memory_rtx): Record new location content.
1454 Use gen_and_emit_move.
3e3d9d17
DD
1455 (force_into_acc): New.
1456 (move_to_acc): Use gen_and_emit_move.
1457 (move_from_acc): Likewise.
1458 (move_acc_to_reg): Likewise.
1459 (move_to_x): Likewise.
1460 (move_to_hl): Likewise.
1461 (move_to_de): Likewise.
1462 (rl78_alloc_physical_registers_op1): Record location content.
1463 (has_constraint): New.
1464 (rl78_alloc_physical_registers_op2): Record location content.
1465 Optimize use of HL.
1466 (rl78_alloc_physical_registers_ro1): Likewise.
1467 (rl78_alloc_physical_registers_cmp): Likewise.
1468 (rl78_alloc_physical_registers_umul): Likewise.
1469 (rl78_alloc_address_registers_macax): New.
1470 (rl78_alloc_physical_registers): Initialize and set location
1471 content memory as needed.
1472 (rl78_reorg): Make sure split2 is called.
1473 (rl78_rtx_costs): New.
1474
088845a5
RS
14752013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
1476
1477 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
1478 for (not (neg ...)) and (neg (not ...)) cases.
1479
5c2961cf
RB
14802013-09-11 Richard Biener <rguenther@suse.de>
1481
1482 PR middle-end/58377
1483 * passes.def: Split critical edges before late uninit warning passes.
1484 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
1485
427e6a14
JJ
14862013-09-11 Jakub Jelinek <jakub@redhat.com>
1487
1488 PR tree-optimization/58385
1489 * fold-const.c (build_range_check): If both low and high are NULL,
1490 use omit_one_operand_loc to preserve exp side-effects.
1491
df45c0cc
KT
14922013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1493
1494 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
1495
80ab0b19
RB
14962013-09-11 Richard Biener <rguenther@suse.de>
1497
1498 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
1499 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
1500 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
1501 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
1502 stmts_from_loop, known_dependences_p, build_empty_rdg,
1503 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
1504 * tree-loop-distribution.c: ... here.
1505 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
1506 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
1507 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
1508 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
1509 * tree-loop-distribution.c: ... here.
1510 * tree-loop-distribution.c: Include gimple-pretty-print.h.
1511 (struct partition_s): Add loops member.
1512 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
1513 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
1514 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
1515
85a77221
AI
15162013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1517 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1518 Sergey Lega <sergey.s.lega@intel.com>
1519 Anna Tikhonova <anna.tikhonova@intel.com>
1520 Ilya Tocar <ilya.tocar@intel.com>
1521 Andrey Turetskiy <andrey.turetskiy@intel.com>
1522 Ilya Verbin <ilya.verbin@intel.com>
1523 Kirill Yukhin <kirill.yukhin@intel.com>
1524 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1525
1526 * config/i386/constraints.md (k): New.
1527 (Yk): Ditto.
1528 * config/i386/i386.c (const regclass_map): Add new mask registers.
1529 (dbx_register_map): Ditto.
1530 (dbx64_register_map): Ditto.
1531 (svr4_dbx_register_map): Ditto.
1532 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
1533 disabled.
1534 (ix86_preferred_reload_class): Disable constants for mask registers.
1535 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
1536 (ix86_hard_regno_mode_ok): Support new mask registers.
1537 (x86_order_regs_for_local_alloc): Ditto.
1538 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
1539 (FIXED_REGISTERS): Add new mask registers.
1540 (CALL_USED_REGISTERS): Ditto.
1541 (REG_ALLOC_ORDER): Ditto.
1542 (VALID_MASK_REG_MODE): New.
1543 (FIRST_MASK_REG): Ditto.
1544 (LAST_MASK_REG): Ditto.
1545 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
1546 (MAYBE_MASK_CLASS_P): New.
1547 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
1548 (REG_CLASS_CONTENTS): Ditto.
1549 (MASK_REGNO_P): New.
1550 (ANY_MASK_REG_P): Ditto.
1551 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
1552 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
1553 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
1554 mask registers.
85a77221
AI
1555 (attribute "type"): Add mskmov, msklog.
1556 (attribute "length_immediate"): Support them.
1557 (attribute "memory"): Ditto.
1558 (attribute "prefix_0f"): Ditto.
1559 (*movhi_internal): Support new mask registers.
1560 (*movqi_internal): Ditto.
1561 (define_split): Split out clobber pattern is a logic
1562 insn on mask registers.
1563 (*k<logic><mode>): New.
1564 (*andhi_1): Extend to support mask regs.
1565 (*andqi_1): Extend to support mask regs.
1566 (kandn<mode>): New.
1567 (define_split): Split and-not to and and not if operands
1568 are not mask regs.
1569 (*<code><mode>_1): Separate HI mode to new pattern...
1570 (*<code>hi_1): This.
1571 (*<code>qi_1): Extend to support mask regs.
1572 (kxnor<mode>): New.
1573 (kortestzhi): Ditto.
1574 (kortestchi): Ditto.
1575 (kunpckhi): Ditto.
1576 (*one_cmpl<mode>2_1): Remove HImode and handle it...
1577 (*one_cmplhi2_1): ...Here, now with mask registers support.
1578 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
1579 (HI/QImode arithmetics splitter): Don't split if mask registers
1580 are used.
85a77221
AI
1581 (HI/QImode not splitter): Ditto.
1582 * config/i386/predicated.md (mask_reg_operand): New.
1583 (general_reg_operand): Ditto.
1584
7e570821
AI
15852013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1586
1587 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
1588 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
1589
9e1376e9
JL
15902013-09-10 Jeff Law <law@redhat.com>
1591
1592 PR tree-optimization/58380
1593 * tree-ssa-threadupdate.c (thread_block): Recognize another case
1594 of threading through a buried loop header.
1595
1596 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
1597 return value for single successor case.
1598
5bbcb888
JH
15992013-09-10 Jan Hubicka <jh@suse.cz>
1600
1601 * ipa-devirt.c (ipa_devirt): Enable with LTO.
1602
d742ff4b
RE
16032013-09-10 Richard Earnshaw <rearnsha@arm.com>
1604
1605 PR target/58361
1606 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
1607 support conditional execution.
1608 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
1609
b0681c9e
VM
16102013-09-10 Vladimir Makarov <vmakarov@redhat.com>
1611
1612 * lra.c (lra): Clear lra_optional_reload_pseudos before every
1613 constraint pass.
f77e2d2d
JBG
1614 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
1615 Check destination too to check move insn.
b0681c9e 1616 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
1617 changed its allocation and the optional reload was inherited on last
1618 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
1619 (lra_undo_inheritance): Add check that inherited pseudo still in
1620 memory.
1621
c9b1c957
JG
16222013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
1623
1624 * config/aarch64/aarch64.md (generic_sched): New.
1625 * config/aarch64/aarch64-generic.md (load): Make conditional
1626 on generic_sched attribute.
1627 (nonload): Likewise.
1628
82d618d3
JH
16292013-09-10 Jan Hubicka <jh@suse.cz>
1630
1631 * lto-cgraph.c: Include ipa-utils.h.
1632 (compute_ltrans_boundary): Also add possible targets into the boundary.
1633
668b6894
JH
16342013-09-10 Jan Hubicka <jh@suse.cz>
1635
1636 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
1637 VAR_DECL of vtable rather than full expression.
1638
4f90d3e0
JH
16392013-09-10 Jan Hubicka <jh@suse.cz>
1640 Paolo Carlini <paolo.carlini@oracle.com>
1641
1642 * cgraphunit.c (analyze_functions): Save input_location, set it
1643 to UNKNOWN_LOCATION and restore it at the end.
1644
39e87baf
MJ
16452013-09-10 Martin Jambor <mjambor@suse.cz>
1646
1647 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
1648 represented by a thunk.
1649
581aedec
JL
16502013-09-10 Jeff Law <law@redhat.com>
1651
1652 PR tree-optimization/58343
1653 * tree-ssa-threadupdate.c (thread_block): Identify and disable
1654 jump threading requests through loop headers buried in the middle
1655 of a jump threading path.
1656
1657 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
1658 in return value/type.
1659
84cf4ab6
JJ
16602013-09-10 Jakub Jelinek <jakub@redhat.com>
1661
1662 PR rtl-optimization/58365
1663 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
1664 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
1665 it differs.
1666
447dd906
RB
16672013-09-10 Richard Biener <rguenther@suse.de>
1668
1669 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
1670 * tree-data-ref.c (create_rdg_vertices): Collect all data
1671 references, signal failure to the caller, use data-ref API.
893e85fa
CM
1672 (build_rdg): Compute data references only once. Maintain lifetime
1673 of data references and data dependences from within RDG.
447dd906
RB
1674 (free_rdg): Free dependence relations.
1675 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
1676 inventing extra dependences.
1677 (distribute_loop): Update for RDG API changes.
1678
f14a7324
KT
16792013-09-10 Kai Tietz <ktietz@redhat.com>
1680
1681 * doc/invoke.texi (fms-extensions): Document changed
1682 behavior for ms-abi targets.
1683 * config/i386/i386.c (ix86_option_override_internal):
1684 Set default value of option -fms-extension for ms-abi targets.
1685
ff131f26
MZ
16862013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
1687
1688 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
1689
33115a2c
AM
16902013-09-10 Alan Modra <amodra@gmail.com>
1691
1692 PR target/58330
1693 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
1694
b6872a13
AM
16952013-09-10 Alan Modra <amodra@gmail.com>
1696
1697 * config/rs6000/predicates.md (add_cint_operand): New.
1698 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
1699 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
1700 using add_cint_operand.
1701 (largetoc_high_plus_aix): Likewise.
1702
28fd0ba2
JJ
17032013-09-09 Jakub Jelinek <jakub@redhat.com>
1704
1705 PR tree-optimization/58364
1706 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
1707 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
1708 the current range can't be an unconditional true or false.
1709
552d99fe
JG
17102013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
1711
1712 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
1713
f43245d1
UB
17142013-09-09 Uros Bizjak <ubizjak@gmail.com>
1715
1716 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
1717
c9b0866a
PC
17182013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
1719
1720 PR c++/43452
1721 * doc/invoke.texi (-Wdelete-incomplete): Document it.
1722
78d8b9f0
IB
17232013-09-09 Ian Bolton <ian.bolton@arm.com>
1724
1725 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
1726 NO_REGS for immediate that can't be moved directly into FP_REGS.
1727
274b2532
KT
17282013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1729
1730 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
1731 comparison with negated operand.
c9b0866a
PC
1732 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
1733 RTL form.
274b2532 1734
467a3558
RB
17352013-09-09 Richard Biener <rguenther@suse.de>
1736
1737 PR middle-end/58326
1738 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
1739 of a subloop record all its block as affecting loop-closed SSA form.
1740
088c5368
RS
17412013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1742
1743 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
1744 of an rtx/bitpos pair.
1745 (store_fixed_bit_field): Update accordingly.
1746
69db2d57
RS
17472013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1748
1749 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
1750 GEN_INT.
1751 * builtins.c (expand_errno_check): Likewise.
1752 * dwarf2cfi.c (init_return_column_size): Likewise.
1753 * except.c (sjlj_mark_call_sites): Likewise.
1754 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
1755 * lra-constraints.c (emit_inc): Likewise.
1756 * ree.c (combine_set_extension): Likewise.
1757 * regmove.c (fixup_match_2): Likewise.
1758 * reload1.c (inc_for_reload): Likewise.
1759
69a59f0f
RS
17602013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1761
1762 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
1763 (force_to_mode, simplify_shift_const_1, simplify_comparison):
1764 Use gen_int_mode with the mode of the associated simplify_* call.
1765 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
1766 * expmed.c (expand_shift_1): Likewise.
1767 * function.c (instantiate_virtual_regs_in_insn): Likewise.
1768 * loop-iv.c (iv_number_of_iterations): Likewise.
1769 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
1770 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
1771
2f1cd2eb
RS
17722013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1773
1774 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
1775 of the associated expand_* call.
1776 (asan_emit_stack_protection): Likewise.
1777 * builtins.c (round_trampoline_addr): Likewise.
1778 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
1779 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
1780 (emit_store_flag): Likewise.
1781 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
1782 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
1783 Likewise.
1784 * function.c (instantiate_virtual_regs_in_insn): Likewise.
1785 * ifcvt.c (noce_try_store_flag_constants): Likewise.
1786 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
1787 * modulo-sched.c (generate_prolog_epilog): Likewise.
1788 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
1789 (expand_ctz, expand_ffs, expand_unop): Likewise.
1790
4789c0ce
RS
17912013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1792
1793 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
1794 of the associated gen_rtx_* call.
1795 * caller-save.c (init_caller_save): Likewise.
1796 * combine.c (find_split_point, make_extraction): Likewise.
1797 (make_compound_operation): Likewise.
1798 * dwarf2out.c (mem_loc_descriptor): Likewise.
1799 * explow.c (plus_constant, probe_stack_range): Likewise.
1800 * expmed.c (expand_mult_const): Likewise.
1801 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
1802 * reload1.c (init_reload): Likewise.
1803 * valtrack.c (cleanup_auto_inc_dec): Likewise.
1804 * var-tracking.c (adjust_mems): Likewise.
1805 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
1806 rather than gen_rtx_fmt_ee.
1807
a811f7cb
JH
18082013-09-09 Jan Hubicka <jh@suse.cz>
1809
1810 PR middle-end/58294
1811 * value-prof.c (gimple_ic): Copy also abnormal edges.
1812
dcad1dd3
RS
18132013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1814
1815 * asan.c (asan_shadow_cst): Use gen_int_mode.
1816
daf5c770
JH
18172013-09-08 Jan Hubicka <jh@suse.cz>
1818
1819 * ipa-profile.c: Add toplevel comment.
1820 (ipa_propagate_frequency_1): Be more conservative when profile is read.
1821 (contains_hot_call_p): New function.
1822 (ipa_propagate_frequency): Set frequencies based on counts when
1823 profile is read.
1824 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
1825 profile; do not tamper with profile after inlining if it is read.
1826
a12cd2db
JH
18272013-09-08 Jan Hubicka <jh@suse.cz>
1828
1829 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
1830 speculative edges.
1831
856a1588
JH
18322013-09-08 Jan Hubicka <jh@suse.cz>
1833
1834 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
1835 summary generation.
1836
4f4b0b73
JL
18372013-09-08 Jeff Law <law@redhat.com>
1838
1839 PR bootstrap/58340
1840 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
1841 of 'found'.
1842
cc4029ee
AK
18432013-09-08 Andi Kleen <ak@linux.intel.com>
1844
1845 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
1846
7b395ddd
JH
18472013-09-08 Jan Hubicka <jh@suse.cz>
1848
1849 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
1850
c34c46dd
RS
18512013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
1852
1853 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
1854 for non-debug insns.
1855 * lra.c (new_insn_reg): Take the containing insn as a parameter.
1856 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
1857 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
1858 accordingly.
1859
3462aa02
JH
18602013-09-08 Jan Hubicka <jh@suse.cz>
1861
1862 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
1863 targets and devirtualize to BUILT_IN_UNREACHABLE.
1864 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
1865 * ipa.c (walk_polymorphic_call_targets): New function.
1866 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
1867 functions; use the new timevar.
1868 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
1869 was removed from the program.
1870 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
1871 not consider it in the walk when its vtable is dead.
1872 (possible_polymorphic_call_targets_1): Pass anonymous flag to
1873 record_binfo.
1874 (devirt_variable_node_removal_hook): New function.
1875 (possible_polymorphic_call_targets): Also register
1876 devirt_variable_node_removal_hook.
1877 (ipa_devirt): Do not do non-speculative devirtualization.
1878 (gate_ipa_devirt): One execute if devirtualizing speculatively.
1879
26e5b0fd
JH
18802013-09-08 Jan Hubicka <jh@suse.cz>
1881
1882 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
1883 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
1884 varpool_remove_variable_insertion_hook): Declare.
1885 * varpool.c (varpool_node_hook_list): New structure.
1886 (first_varpool_node_removal_hook,
1887 first_varpool_variable_insertion_hook): New variables.
1888 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
1889 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
1890 varpool_remove_variable_insertion_hook,
1891 varpool_call_variable_insertion_hooks): New functions.
1892 (varpool_remove_node): Use it.
1893
97f1f314 18942013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 1895
97f1f314
PC
1896 PR c++/54941
1897 * diagnostic.c (diagnostic_build_prefix): When s.file is
1898 "<built-in>" don't output line and column numbers.
6df2ca09 1899
bcb650cb
JH
19002013-09-06 Jan Hubicka <jh@suse.cz>
1901
1902 * cgraphunit.c (expand_thunk): Get body before touching arguments.
1903 * lto-streamer-out.c: Stream thunks, too.
1904 * lto-streamer-in.c (input_function): Pop cfun here
1905 (lto_read_body): Instead of here.
1906
87f3fea8
CT
19072013-09-06 Caroline Tice <cmtice@google.com>
1908
1909 * doc/install.texi: Add documentation for the --enable-vtable-verify
1910 and the --disable-libvtv configure options.
1911
5e8d9b45
JL
19122013-09-06 Jeff Law <law@redhat.com>
1913
1914 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
1915 edge implied equivalences into successor phis.
1916
3a001aff
JR
19172013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
1918
1919 * resource.c (mark_referenced_resources): Handle COND_EXEC.
1920
19212013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
1922
1923 * resource.c (mark_target_live_regs): Compute resources taking
1924 into account if a call is predicated or not.
1925
2c641f8b
EB
19262013-09-06 Eric Botcazou <ebotcazou@adacore.com>
1927
1928 * toplev.c (output_stack_usage): Be prepared for suffixes created by
1929 the compiler in the function names.
1930
a81b0a3d
JH
19312013-09-06 Jan Hubicka <jh@suse.cz>
1932
1933 PR middle-end/58094
1934 * ipa-inline.c (has_caller_p): New function.
1935 (want_inline_function_to_all_callers_p): Use it.
1936 (sum_callers, inline_to_all_callers): Break out from ...
1937 (ipa_inline): ... here.
1938
68e4ca7e
JH
19392013-09-06 Jan Hubicka <jh@suse.cz>
1940
2c641f8b
EB
1941 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
1942 only when AVX is enabled.
68e4ca7e 1943
3c73e2fe
JG
19442013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1945
1946 * config/aarch64/aarch64.md
1947 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
1948 is fpsimd_<load/store>2.
1949 (load_pair<mode>): Likewise.
1950 (store_pair<mode>): Likewise.
1951
8c48eecd
JG
19522013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1953
1954 * config/arm/types.md (type): Add "mrs" type.
1955 * config/aarch64/aarch64.md
1956 (aarch64_load_tp_hard): Make type "mrs".
1957 * config/arm/arm.md
1958 (load_tp_hard): Make type "mrs".
1959 * config/arm/cortex-a15.md: Update with new attributes.
1960 * config/arm/cortex-a5.md: Update with new attributes.
1961 * config/arm/cortex-a53.md: Update with new attributes.
1962 * config/arm/cortex-a7.md: Update with new attributes.
1963 * config/arm/cortex-a8.md: Update with new attributes.
1964 * config/arm/cortex-a9.md: Update with new attributes.
1965 * config/arm/cortex-m4.md: Update with new attributes.
1966 * config/arm/cortex-r4.md: Update with new attributes.
1967 * config/arm/fa526.md: Update with new attributes.
1968 * config/arm/fa606te.md: Update with new attributes.
1969 * config/arm/fa626te.md: Update with new attributes.
1970 * config/arm/fa726te.md: Update with new attributes.
1971
9ea187a5
JG
19722013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1973
1974 * config/aarch64/aarch64.md
1975 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
1976 (*movtf_aarch64): Likewise.
1977 * config/arm/arm.md
1978 (thumb1_movdi_insn): Use "multiple" for type where more than one
1979 instruction is used for a move.
1980 (*arm32_movhf): Likewise.
1981 (*thumb_movdf_insn): Likewise.
1982
292b89b3
JG
19832013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1984
1985 * config/arm/types.md (type): Rename fcpys to fmov.
1986 * config/arm/vfp.md
1987 (*arm_movsi_vfp): Rename type fcpys as fmov.
1988 (*thumb2_movsi_vfp): Likewise
1989 (*movhf_vfp_neon): Likewise
1990 (*movhf_vfp): Likewise
1991 (*movsf_vfp): Likewise
1992 (*thumb2_movsf_vfp): Likewise
1993 (*movsfcc_vfp): Likewise
1994 (*thumb2_movsfcc_vfp): Likewise
1995 * config/aarch64/aarch64-simd.md
1996 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
1997 * config/aarch64/aarch64.md
1998 (*movsi_aarch64): Replace type mov_reg with fmovs.
1999 (*movdi_aarch64): Likewise
2000 (*movsf_aarch64): Likewise
2001 (*movdf_aarch64): Likewise
2002 * config/arm/arm.c
2003 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
2004 * config/arm/iwmmxt.md
2005 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
2006 * config/arm/arm1020e.md: Update with new attributes.
2007 * config/arm/cortex-a15-neon.md: Update with new attributes.
2008 * config/arm/cortex-a5.md: Update with new attributes.
2009 * config/arm/cortex-a53.md: Update with new attributes.
2010 * config/arm/cortex-a7.md: Update with new attributes.
2011 * config/arm/cortex-a8-neon.md: Update with new attributes.
2012 * config/arm/cortex-a9.md: Update with new attributes.
2013 * config/arm/cortex-m4-fpu.md: Update with new attributes.
2014 * config/arm/cortex-r4f.md: Update with new attributes.
2015 * config/arm/marvell-pj4.md: Update with new attributes.
2016 * config/arm/vfp11.md: Update with new attributes.
2017
6a24a83e
JG
20182013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
2019
2020 * config/aarch64/aarch64.md
2021 (*madd<mode>): Fix type attribute.
2022 (*maddsi_uxtw): Likewise.
2023 (*msub<mode>): Likewise.
2024 (*msubsi_uxtw): Likewise.
2025 (<su_optab>maddsidi4): Likewise.
2026 (<su_optab>msubsidi4): Likewise.
2027
b86923f0
JG
20282013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
2029
2030 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
2031 * config/arm/arm.md (core_cycles): Remove fdiv.
2032 * config/arm/vfp.md:
2033 (*sqrtsf2_vfp): Update for attribute changes.
2034 (*sqrtdf2_vfp): Likewise.
2035 * config/aarch64/aarch64.md:
2036 (sqrt<mode>2): Update for attribute changes.
2037 * config/arm/arm1020e.md: Update with new attributes.
2038 * config/arm/cortex-a15-neon.md: Update with new attributes.
2039 * config/arm/cortex-a5.md: Update with new attributes.
2040 * config/arm/cortex-a53.md: Update with new attributes.
2041 * config/arm/cortex-a7.md: Update with new attributes.
2042 * config/arm/cortex-a8-neon.md: Update with new attributes.
2043 * config/arm/cortex-a9.md: Update with new attributes.
2044 * config/arm/cortex-m4-fpu.md: Update with new attributes.
2045 * config/arm/cortex-r4f.md: Update with new attributes.
2046 * config/arm/marvell-pj4.md: Update with new attributes.
2047 * config/arm/vfp11.md: Update with new attributes.
2048
7b49c9e1
JG
20492013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
2050
2051 * config/arm/types.md
2052 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
2053 * config/aarch64/aarch64.md
2054 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
2055 new attributes.
2056 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
2057 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
2058 (float<GPI:mode><GPF:mode>2): Likewise.
2059 * config/arm/vfp.md
2060 (*truncsisf2_vfp): Update with new attributes.
2061 (*truncsidf2_vfp): Likewise.
2062 (fixuns_truncsfsi2): Likewise.
2063 (fixuns_truncdfsi2): Likewise.
2064 (*floatsisf2_vfp): Likewise.
2065 (*floatsidf2_vfp): Likewise.
2066 (floatunssisf2): Likewise.
2067 (floatunssidf2): Likewise.
2068 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
2069 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
2070 * config/arm/arm1020e.md: Update with new attributes.
2071 * config/arm/cortex-a15-neon.md: Update with new attributes.
2072 * config/arm/cortex-a5.md: Update with new attributes.
2073 * config/arm/cortex-a53.md: Update with new attributes.
2074 * config/arm/cortex-a7.md: Update with new attributes.
2075 * config/arm/cortex-a8-neon.md: Update with new attributes.
2076 * config/arm/cortex-a9.md: Update with new attributes.
2077 * config/arm/cortex-m4-fpu.md: Update with new attributes.
2078 * config/arm/cortex-r4f.md: Update with new attributes.
2079 * config/arm/marvell-pj4.md: Update with new attributes.
2080 * config/arm/vfp11.md: Update with new attributes.
2081
e7df8af8
JG
20822013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
2083
2084 * config/aarch64/arm_neon.h
2085 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
2086 (vqtbx<1,2,3,4><q>_s8): Likewise.
2087
594726e4
JG
20882013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
2089
f43245d1
UB
2090 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
2091 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
2092 (add<mode>3): Add type attribute.
2093 (add<mode>3): Likewise.
2094 (usadd<mode>3): Likewise.
2095 (ssadd<mode>3): Likewise.
2096 (sub<mode>3): Likewise.
2097 (sub<mode>3): Likewise.
2098 (ussub<mode>3): Likewise.
2099 (sssub<mode>3): Likewise.
2100 (ssmulsa3): Likewise.
2101 (usmulusa3): Likewise.
2102 (arm_usatsihi): Likewise.
2103 * config/arm/vfp.md
2104 (*movdi_vfp): Add types for all instructions.
2105 (*movdi_vfp_cortexa8): Likewise.
2106 (*movhf_vfp_neon): Likewise.
2107 (*movhf_vfp): Likewise.
2108 (*movdf_vfp): Likewise.
2109 (*thumb2_movdf_vfp): Likewise.
2110 (*thumb2_movdfcc_vfp): Likewise.
2111 * config/arm/arm.md: Add type attribute to all insn patterns.
2112 (*thumb1_adddi3): Add type attribute.
2113 (*arm_adddi3): Likewise.
2114 (*adddi_sesidi_di): Likewise.
2115 (*adddi_zesidi_di): Likewise.
2116 (*thumb1_addsi3): Likewise.
2117 (addsi3_compare0): Likewise.
2118 (*addsi3_compare0_scratch): Likewise.
2119 (*compare_negsi_si): Likewise.
2120 (cmpsi2_addneg): Likewise.
2121 (*addsi3_carryin_<optab>): Likewise.
2122 (*addsi3_carryin_alt2_<optab>): Likewise.
2123 (*addsi3_carryin_clobercc_<optab>): Likewise.
2124 (*subsi3_carryin): Likewise.
2125 (*subsi3_carryin_const): Likewise.
2126 (*subsi3_carryin_compare): Likewise.
2127 (*subsi3_carryin_compare_const): Likewise.
2128 (*arm_subdi3): Likewise.
2129 (*thumb_subdi3): Likewise.
2130 (*subdi_di_zesidi): Likewise.
2131 (*subdi_di_sesidi): Likewise.
2132 (*subdi_zesidi_di): Likewise.
2133 (*subdi_sesidi_di): Likewise.
2134 (*subdi_zesidi_ze): Likewise.
2135 (thumb1_subsi3_insn): Likewise.
2136 (*arm_subsi3_insn): Likewise.
2137 (*anddi3_insn): Likewise.
2138 (*anddi_zesidi_di): Likewise.
2139 (*anddi_sesdi_di): Likewise.
2140 (*ne_zeroextracts): Likewise.
2141 (*ne_zeroextracts): Likewise.
2142 (*ite_ne_zeroextr): Likewise.
2143 (*ite_ne_zeroextr): Likewise.
2144 (*anddi_notdi_di): Likewise.
2145 (*anddi_notzesidi): Likewise.
2146 (*anddi_notsesidi): Likewise.
2147 (andsi_notsi_si): Likewise.
2148 (thumb1_bicsi3): Likewise.
2149 (*iordi3_insn): Likewise.
2150 (*iordi_zesidi_di): Likewise.
2151 (*iordi_sesidi_di): Likewise.
2152 (*thumb1_iorsi3_insn): Likewise.
2153 (*xordi3_insn): Likewise.
2154 (*xordi_zesidi_di): Likewise.
2155 (*xordi_sesidi_di): Likewise.
2156 (*arm_xorsi3): Likewise.
2157 (*andsi_iorsi3_no): Likewise.
2158 (*smax_0): Likewise.
2159 (*smax_m1): Likewise.
2160 (*arm_smax_insn): Likewise.
2161 (*smin_0): Likewise.
2162 (*arm_smin_insn): Likewise.
2163 (*arm_umaxsi3): Likewise.
2164 (*arm_uminsi3): Likewise.
2165 (*minmax_arithsi): Likewise.
2166 (*minmax_arithsi_): Likewise.
2167 (*satsi_<SAT:code>): Likewise.
2168 (arm_ashldi3_1bit): Likewise.
2169 (arm_ashrdi3_1bit): Likewise.
2170 (arm_lshrdi3_1bit): Likewise.
2171 (*arm_negdi2): Likewise.
2172 (*thumb1_negdi2): Likewise.
2173 (*arm_negsi2): Likewise.
2174 (*thumb1_negsi2): Likewise.
2175 (*negdi_extendsid): Likewise.
2176 (*negdi_zero_extend): Likewise.
2177 (*arm_abssi2): Likewise.
2178 (*thumb1_abssi2): Likewise.
2179 (*arm_neg_abssi2): Likewise.
2180 (*thumb1_neg_abss): Likewise.
2181 (one_cmpldi2): Likewise.
2182 (extend<mode>di2): Likewise.
2183 (*compareqi_eq0): Likewise.
2184 (*arm_extendhisi2addsi): Likewise.
2185 (*arm_movdi): Likewise.
2186 (*thumb1_movdi_insn): Likewise.
2187 (*arm_movt): Likewise.
2188 (*thumb1_movsi_insn): Likewise.
2189 (pic_add_dot_plus_four): Likewise.
2190 (pic_add_dot_plus_eight): Likewise.
2191 (tls_load_dot_plus_eight): Likewise.
2192 (*thumb1_movhi_insn): Likewise.
2193 (*thumb1_movsf_insn): Likewise.
2194 (*movdf_soft_insn): Likewise.
2195 (*thumb_movdf_insn): Likewise.
2196 (cbranchsi4_insn): Likewise.
2197 (cbranchsi4_scratch): Likewise.
2198 (*negated_cbranchsi4): Likewise.
2199 (*tbit_cbranch): Likewise.
2200 (*tlobits_cbranch): Likewise.
2201 (*tstsi3_cbranch): Likewise.
2202 (*cbranchne_decr1): Likewise.
2203 (*addsi3_cbranch): Likewise.
2204 (*addsi3_cbranch_scratch): Likewise.
2205 (*arm_cmpdi_insn): Likewise.
2206 (*arm_cmpdi_unsig): Likewise.
2207 (*arm_cmpdi_zero): Likewise.
2208 (*thumb_cmpdi_zero): Likewise.
2209 (*deleted_compare): Likewise.
2210 (*mov_scc): Likewise.
2211 (*mov_negscc): Likewise.
2212 (*mov_notscc): Likewise.
2213 (*cstoresi_eq0_thumb1_insn): Likewise.
2214 (cstoresi_nltu_thumb1): Likewise.
2215 (cstoresi_ltu_thu): Likewise.
2216 (thumb1_addsi3_addgeu): Likewise.
2217 (*arm_jump): Likewise.
2218 (*thumb_jump): Likewise.
2219 (*check_arch2): Likewise.
2220 (arm_casesi_internal): Likewise.
2221 (thumb1_casesi_dispatch): Likewise.
2222 (*arm_indirect_jump): Likewise.
2223 (*thumb1_indirect_jump): Likewise.
2224 (nop): Likewise.
2225 (*and_scc): Likewise.
2226 (*ior_scc): Likewise.
2227 (*compare_scc): Likewise.
2228 (*cond_move): Likewise.
2229 (*cond_arith): Likewise.
2230 (*cond_sub): Likewise.
2231 (*cmp_ite0): Likewise.
2232 (*cmp_ite1): Likewise.
2233 (*cmp_and): Likewise.
2234 (*cmp_ior): Likewise.
2235 (*ior_scc_scc): Likewise.
2236 (*ior_scc_scc_cmp): Likewise.
2237 (*and_scc_scc): Likewise.
2238 (*and_scc_scc_cmp): Likewise.
2239 (*and_scc_scc_nod): Likewise.
2240 (*negscc): Likewise.
2241 (movcond_addsi): Likewise.
2242 (movcond): Likewise.
2243 (*ifcompare_plus_move): Likewise.
2244 (*if_plus_move): Likewise.
2245 (*ifcompare_move_plus): Likewise.
2246 (*if_move_plus): Likewise.
2247 (*ifcompare_arith_arith): Likewise.
2248 (*if_arith_arith): Likewise.
2249 (*ifcompare_arith_move): Likewise.
2250 (*if_arith_move): Likewise.
2251 (*ifcompare_move_arith): Likewise.
2252 (*if_move_arith): Likewise.
2253 (*ifcompare_move_not): Likewise.
2254 (*if_move_not): Likewise.
2255 (*ifcompare_not_move): Likewise.
2256 (*if_not_move): Likewise.
2257 (*ifcompare_shift_move): Likewise.
2258 (*if_shift_move): Likewise.
2259 (*ifcompare_move_shift): Likewise.
2260 (*if_move_shift): Likewise.
2261 (*ifcompare_shift_shift): Likewise.
2262 (*ifcompare_not_arith): Likewise.
2263 (*ifcompare_arith_not): Likewise.
2264 (*if_arith_not): Likewise.
2265 (*ifcompare_neg_move): Likewise.
2266 (*if_neg_move): Likewise.
2267 (*ifcompare_move_neg): Likewise.
2268 (*if_move_neg): Likewise.
2269 (prologue_thumb1_interwork): Likewise.
2270 (*cond_move_not): Likewise.
2271 (*sign_extract_onebit): Likewise.
2272 (*not_signextract_onebit): Likewise.
2273 (stack_tie): Likewise.
2274 (align_4): Likewise.
2275 (align_8): Likewise.
2276 (consttable_end): Likewise.
2277 (consttable_1): Likewise.
2278 (consttable_2): Likewise.
2279 (consttable_4): Likewise.
2280 (consttable_8): Likewise.
2281 (consttable_16): Likewise.
2282 (*thumb1_tablejump): Likewise.
2283 (prefetch): Likewise.
2284 (force_register_use): Likewise.
2285 (thumb_eh_return): Likewise.
2286 (load_tp_hard): Likewise.
2287 (load_tp_soft): Likewise.
2288 (tlscall): Likewise.
2289 (*arm_movtas_ze): Likewise.
2290 (*arm_rev): Likewise.
2291 (*arm_revsh): Likewise.
2292 (*arm_rev16): Likewise.
2293 * config/arm/thumb2.md
2294 (*thumb2_smaxsi3): Likewise.
2295 (*thumb2_sminsi3): Likewise.
2296 (*thumb32_umaxsi3): Likewise.
2297 (*thumb2_uminsi3): Likewise.
2298 (*thumb2_negdi2): Likewise.
2299 (*thumb2_abssi2): Likewise.
2300 (*thumb2_neg_abss): Likewise.
2301 (*thumb2_movsi_insn): Likewise.
2302 (tls_load_dot_plus_four): Likewise.
2303 (*thumb2_movhi_insn): Likewise.
2304 (*thumb2_mov_scc): Likewise.
2305 (*thumb2_mov_negs): Likewise.
2306 (*thumb2_mov_negs): Likewise.
2307 (*thumb2_mov_nots): Likewise.
2308 (*thumb2_mov_nots): Likewise.
2309 (*thumb2_movsicc_): Likewise.
2310 (*thumb2_movsfcc_soft_insn): Likewise.
2311 (*thumb2_indirect_jump): Likewise.
2312 (*thumb2_and_scc): Likewise.
2313 (*thumb2_ior_scc): Likewise.
2314 (*thumb2_ior_scc_strict_it): Likewise.
2315 (*thumb2_cond_move): Likewise.
2316 (*thumb2_cond_arith): Likewise.
2317 (*thumb2_cond_ari): Likewise.
2318 (*thumb2_cond_sub): Likewise.
2319 (*thumb2_negscc): Likewise.
2320 (*thumb2_movcond): Likewise.
2321 (thumb2_casesi_internal): Likewise.
2322 (thumb2_casesi_internal_pic): Likewise.
2323 (*thumb2_alusi3_short): Likewise.
2324 (*thumb2_mov<mode>_shortim): Likewise.
2325 (*thumb2_addsi_short): Likewise.
2326 (*thumb2_subsi_short): Likewise.
2327 (thumb2_addsi3_compare0): Likewise.
2328 (*thumb2_cbz): Likewise.
2329 (*thumb2_cbnz): Likewise.
2330 (*thumb2_one_cmplsi2_short): Likewise.
2331 (*thumb2_negsi2_short): Likewise.
2332 (*orsi_notsi_si): Likewise.
2333 * config/arm/arm1020e.md: Update with new attributes.
2334 * config/arm/arm1026ejs.md: Update with new attributes.
2335 * config/arm/arm1136jfs.md: Update with new attributes.
2336 * config/arm/arm926ejs.md: Update with new attributes.
2337 * config/arm/cortex-a15.md: Update with new attributes.
2338 * config/arm/cortex-a5.md: Update with new attributes.
2339 * config/arm/cortex-a53.md: Update with new attributes.
2340 * config/arm/cortex-a7.md: Update with new attributes.
2341 * config/arm/cortex-a8.md: Update with new attributes.
2342 * config/arm/cortex-a9.md: Update with new attributes.
2343 * config/arm/cortex-m4.md: Update with new attributes.
2344 * config/arm/cortex-r4.md: Update with new attributes.
2345 * config/arm/fa526.md: Update with new attributes.
2346 * config/arm/fa606te.md: Update with new attributes.
2347 * config/arm/fa626te.md: Update with new attributes.
2348 * config/arm/fa726te.md: Update with new attributes.
2349
1c83b673
JG
23502013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
2351
2352 * config/aarch64/aarch64-simd.md
2353 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
2354 <vwx> iterator to ensure correct register choice.
2355 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
2356 (aarch64_sqdmull_n<mode>): Likewise.
2357 (aarch64_sqdmull2_n<mode>_internal): Likewise.
2358 * config/aarch64/arm_neon.h
2359 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
2360 (vml<as><q>_n_<su>16): Likewise.
2361 (vml<as>l_high_lane<q>_<su>16): Likewise.
2362 (vml<as>l_high_n_<su>16): Likewise.
2363 (vml<as>l_lane<q>_<su>16): Likewise.
2364 (vml<as>l_n_<su>16): Likewise.
2365 (vmul<q>_lane<q>_<su>16): Likewise.
2366 (vmul<q>_n_<su>16): Likewise.
2367 (vmull_lane<q>_<su>16): Likewise.
2368 (vmull_n_<su>16): Likewise.
2369 (vmull_high_lane<q>_<su>16): Likewise.
2370 (vmull_high_n_<su>16): Likewise.
2371 (vqrdmulh<q>_n_s16): Likewise.
2372
bb1ae543
TB
23732013-09-06 Tejas Belagod <tejas.belagod@arm.com>
2374
2375 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
2376 have the correct lane parameter.
2377
f23c0742
RB
23782013-09-06 Richard Biener <rguenther@suse.de>
2379
2380 * cfganal.c (control_dependences::~control_dependences):
2381 Properly free all of the vector.
2382
c1d49770
KY
23832013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
2384
2385 PR target/58269
2386 * config/i386/i386.c (ix86_conditional_register_usage):
2387 Proper initialize extended SSE registers.
2388
6da47f52
JH
23892013-09-06 Jan Hubicka <jh@suse.cz>
2390
2391 PR tree-optimization/58311
2392 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
2393
23942013-09-06 Jan Hubicka <jh@suse.cz>
2395
2396 * Makefile.in (tree-sra.o): Update dependencies.
2397 * tree-sra.c: Include ipa-utils.h
2398 (scan_function): Use recursive_call_p.
2399 (has_caller_p): New function.
2400 (cgraph_for_node_and_aliases): Count also callers of aliases.
2401
fc11f321
JH
24022013-09-06 Jan Hubicka <jh@suse.cz>
2403
2404 PR middle-end/58094
2405 * cgraph.h (symtab_semantically_equivalent_p): Declare.
2406 * tree-tailcall.c: Include ipa-utils.h.
2407 (find_tail_calls): Use it.
2408 * ipa-pure-const.c (check_call): Likewise.
2409 * ipa-utils.c (recursive_call_p): New function.
2410 * ipa-utils.h (recursive_call_p): Dclare.
2411 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
2412 (symtab_semantically_equivalent_p): New function.
2413 * Makefile.in (tree-tailcall.o): Update dependencies.
2414
9a6af450
EB
24152013-09-06 Eric Botcazou <ebotcazou@adacore.com>
2416
2417 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
2418 non-inlinable part.
2419
35f32ad4
RB
24202013-09-06 Richard Biener <rguenther@suse.de>
2421
2422 * lto-streamer.h (lto_global_var_decls): Remove.
2423 * Makefile.in (OBJS): Remove lto-symtab.o.
2424 (lto-symtab.o): Remove.
2425 (GTFILES): Remove lto-symtab.c
2426 * lto-symtab.c: Move to lto/
2427
d12a76f3
AK
24282013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2429
2430 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
2431 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
2432 (UNSPEC_FPINT_RINT): New constant definitions.
2433 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
2434 definition with 2 attributes.
2435 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
2436 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
2437 definitions.
2438
24392013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2440
f43245d1 2441 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
2442 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
2443 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
2444 attribute to "z196_alone".
2445 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
2446 "zEC12_simple".
2447
c8e9d8c3
RB
24482013-09-06 Richard Biener <rguenther@suse.de>
2449
2450 * basic-block.h (class control_dependences): New.
2451 * tree-ssa-dce.c (control_dependence_map): Remove.
2452 (cd): New global.
2453 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
2454 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
2455 find_pdom, find_control_dependence, find_all_control_dependences):
2456 Move to cfganal.c.
f43245d1
UB
2457 (mark_control_dependent_edges_necessary,
2458 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
2459 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
2460 * cfganal.c (set_control_dependence_map_bit,
2461 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
2462 find_all_control_dependences): Move from tree-ssa-dce.c and
2463 implement as methods of control_dependences class.
2464 (control_dependences::control_dependences): New.
2465 (control_dependences::~control_dependences): Likewise.
2466 (control_dependences::get_edges_dependent_on): Likewise.
2467 (control_dependences::get_edge): Likewise.
2468
7d2ba471
JH
24692013-09-04 Jan Hubicka <jh@suse.cz>
2470
2471 * tree.c (types_same_for_odr): Drop overactive check.
2472 * ipa-devirt.c (hash_type_name): Likewise.
2473
e18412fc
JH
24742013-09-04 Jan Hubicka <jh@suse.cz>
2475
2476 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
2477 (analyze_functions): ... here.
2478
d352b245
JH
24792013-09-04 Jan Hubicka <jh@suse.cz>
2480
2481 PR middle-end/58201
2482 * cgraphunit.c (analyze_functions): Clear AUX fields
2483 after processing; initialize assembler name has.
2484
770da076
JL
24852013-09-05 Jeff Law <law@redhat.com>
2486
2487 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
2488 from thread_around_empty_block. Record threading path into PATH.
2489 Recurse if threading through the initial block is successful.
2490 (thread_across_edge): Corresponding changes to slightly simplify.
2491
fe6f68e2
JG
24922013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
2493
2494 * config/aarch64/aarch64.md
2495 (type): Remove frecpe, frecps, frecpx.
2496 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
2497 fix to be a TARGET_SIMD instruction.
2498 (aarch64_frecps): Remove.
2499 * config/aarch64/aarch64-simd.md
2500 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
2501 (aarch64_frecps<mode>): Handle all float/vector of float modes.
2502
6e4150e1
JG
25032013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
2504 Sofiane Naci <sofiane.naci@arm.com>
2505
f43245d1 2506 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 2507 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
2508 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
2509 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
2510 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
2511 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
2512 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
2513 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
2514 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 2515 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 2516 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
2517 shift* types.
2518 * config/arm/arm-fixed.md: Update for attribute changes
2519 all occurrences of arlo_* types.
2520 * config/arm/thumb2.md: Update for attribute changes all occurrences
2521 of arlo_* types.
2522 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
2523 (cortexa7_older_only): Likewise.
2524 (cortexa7_younger): Likewise.
2525 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
2526 (1020alu_shift_op): Likewise.
2527 (1020alu_shift_reg_op): Likewise.
2528 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
2529 (alu_shift_op): Likewise.
2530 (alu_shift_reg_op): Likewise.
f43245d1 2531 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
2532 (11_alu_shift_op): Likewise.
2533 (11_alu_shift_reg_op): Likewise.
2534 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
2535 (9_alu_shift_reg_op): Likewise.
2536 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
2537 attribute changes.
2538 (cortex_a15_alu_shift): Likewise.
2539 (cortex_a15_alu_shift_reg): Likewise.
2540 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
2541 attribute changes.
2542 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
2543 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
2544 attribute changes.
6e4150e1 2545 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
2546 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
2547 attribute changes.
6e4150e1
JG
2548 (cortex_a7_alu_reg): Likewise.
2549 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
2550 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
2551 attribute changes.
6e4150e1
JG
2552 (cortex_a8_alu_shift): Likewise.
2553 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 2554 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 2555 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
2556 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
2557 attribute changes.
6e4150e1
JG
2558 * config/arm/cortex-r4.md
2559 (cortex_r4_alu): Update for attribute changes.
2560 (cortex_r4_mov): Likewise.
2561 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 2562 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 2563 (526_alu_shift_op): Likewise.
f43245d1
UB
2564 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
2565 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 2566 (626te_alu_shift_op): Likewise.
f43245d1 2567 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
2568 (726te_alu_shift_op): Likewise.
2569 (726te_alu_shift_reg_op): Likewise.
2570 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
2571 (mp626_alu_shift_op): Likewise.
2572 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
2573 (pj4_alu_conds): Likewise.
2574 (pj4_shift): Likewise.
2575 (pj4_shift_conds): Likewise.
2576 (pj4_alu_shift): Likewise.
2577 (pj4_alu_shift_conds): Likewise.
2578 * config/aarch64/aarch64.md: Update for attribute change
2579 all occurrences of arlo_* and shift* types.
2580
e6523306
MS
25812013-09-05 Mike Stump <mikestump@comcast.net>
2582
2583 * tree.h: Move documentation for tree_function_decl to tree-core.h
2584 with the declaration.
2585
80a18161
PB
25862013-09-05 Peter Bergner <bergner@vnet.ibm.com>
2587
2588 PR target/58139
2589 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
2590 looking for widest mode.
2591
6994430a
EB
25922013-09-05 Eric Botcazou <ebotcazou@adacore.com>
2593
2594 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
2595
e67f39f7
RB
25962013-09-05 Richard Biener <rguenther@suse.de>
2597
2598 PR tree-optimization/58137
2599 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
2600 Do not create vectors of pointers.
2601 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
2602 types for the components of the vector initializer.
2603 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
2604 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
2605
568cda29
MJ
26062013-09-05 Martin Jambor <mjambor@suse.cz>
2607
2608 * ipa-prop.c (remove_described_reference): Accept missing references,
2609 return false if that hppens, otherwise return true.
2610 (cgraph_node_for_jfunc): New function.
2611 (try_decrement_rdesc_refcount): Likewise.
2612 (try_make_edge_direct_simple_call): Use them.
2613 (ipa_edge_removal_hook): Remove references from rdescs.
2614 (ipa_edge_duplication_hook): Clone rdescs and their references
2615 when the new edge has the same caller as the old one.
2616 * cgraph.c (cgraph_resolve_speculation): Remove speculative
2617 reference before removing any edges.
2618
5a200acb
RE
26192013-09-05 Richard Earnshaw <rearnsha@arm.com>
2620
2621 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
2622 initial store.
2623 * thumb2.md (thumb2_storewb_parisi): New pattern.
2624
5922847b
YZ
26252013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
2626
2627 * config/aarch64/aarch64-option-extensions.def: Add
2628 AARCH64_OPT_EXTENSION of 'crc'.
2629 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
2630 (AARCH64_ISA_CRC): Ditto.
2631 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
2632 description of the CRC extension.
2633
996746aa
AI
26342013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
2635
2636 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
2637 * config/rs6000/linux.h: Ditto.
2638 * alpha/linux.h: Ditto.
2639 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
2640 no_c99_libc_has_function.
2641 * config/c6x/uclinux-elf.h: Ditto.
2642 * config/lm32/uclinux-elf.h: Ditto.
2643 * config/m68k/uclinux.h: Ditto.
2644 * config/moxie/uclinux.h: Ditto.
2645 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
2646 (crisv32-*-linux*, cris-*-linux*): Ditto.
2647 * config/bfin/bfin.c: Include "tm_p.h".
2648
c370d99f
RB
26492013-09-05 Richard Biener <rguenther@suse.de>
2650
2651 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
2652 check for a definition without a basic-block.
2653
003bb7f3
JG
26542013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
2655 Sofiane Naci <sofiane.naci@arm.com>
2656
2657 * config/aarch64/aarch64.md
2658 (*movti_aarch64): Rename r_2_f and f_2_r.
2659 (*movsf_aarch64): Likewise.
2660 (*movdf_aarch64): Likewise.
2661 (*movtf_aarch64): Likewise.
2662 (aarch64_movdi_<mode>low): Likewise.
2663 (aarch64_movdi_<mode>high): Likewise.
2664 (aarch64_mov<mode>high_di): Likewise.
2665 (aarch64_mov<mode>low_di): Likewise.
2666 (aarch64_movtilow_tilow): Likewise.
2667 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
2668 values to config/arm/types.md
2669 (attribute "conds"): Update for attribute change.
2670 (anddi3_insn): Likewise.
2671 (iordi3_insn): Likewise.
2672 (xordi3_insn): Likewise.
2673 (one_cmpldi2): Likewise.
2674 * config/arm/types.md (type): Add Neon types.
2675 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
2676 use "type" attribute.
2677 (movmisalign<mode>_neon_store): Likewise.
2678 (movmisalign<mode>_neon_load): Likewise.
2679 (vec_set<mode>_internal): Likewise.
2680 (vec_setv2di_internal): Likewise.
2681 (vec_extract<mode>): Likewise.
2682 (vec_extractv2di): Likewise.
2683 (add<mode>3_neon): Likewise.
2684 (adddi3_neon): Likewise.
2685 (sub<mode>3_neon): Likewise.
2686 (subdi3_neon): Likewise.
2687 (mul<mode>3_neon): Likewise.
2688 (mul<mode>3add<mode>_neon): Likewise.
2689 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
2690 (fma<VCVTF:mode>4)): Likewise.
2691 (fma<VCVTF:mode>4_intrinsic): Likewise.
2692 (fmsub<VCVTF:mode>4)): Likewise.
2693 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
2694 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
2695 (ior<mode>3): Likewise.
2696 (and<mode>3): Likewise.
2697 (anddi3_neon): Likewise.
2698 (orn<mode>3_neon): Likewise.
2699 (orndi3_neon): Likewise.
2700 (bic<mode>3_neon): Likewise.
2701 (bicdi3_neon): Likewise.
2702 (xor<mode>3): Likewise.
2703 (one_cmpl<mode>2): Likewise.
2704 (abs<mode>2): Likewise.
2705 (neg<mode>2): Likewise.
2706 (umin<mode>3_neon): Likewise.
2707 (umax<mode>3_neon): Likewise.
2708 (smin<mode>3_neon): Likewise.
2709 (smax<mode>3_neon): Likewise.
2710 (vashl<mode>3): Likewise.
2711 (vashr<mode>3_imm): Likewise.
2712 (vlshr<mode>3_imm): Likewise.
2713 (ashl<mode>3_signed): Likewise.
2714 (ashl<mode>3_unsigned): Likewise.
2715 (neon_load_count): Likewise.
2716 (ashldi3_neon_noclobber): Likewise.
2717 (signed_shift_di3_neon): Likewise.
2718 (unsigned_shift_di3_neon): Likewise.
2719 (ashrdi3_neon_imm_noclobber): Likewise.
2720 (lshrdi3_neon_imm_noclobber): Likewise.
2721 (widen_ssum<mode>3): Likewise.
2722 (widen_usum<mode>3): Likewise.
2723 (quad_halves_<code>v4si): Likewise.
2724 (quad_halves_<code>v4sf): Likewise.
2725 (quad_halves_<code>v8hi): Likewise.
2726 (quad_halves_<code>v16qi): Likewise.
2727 (reduc_splus_v2di): Likewise.
2728 (neon_vpadd_internal<mode>): Likewise.
2729 (neon_vpsmin<mode>): Likewise.
2730 (neon_vpsmax<mode>): Likewise.
2731 (neon_vpumin<mode>): Likewise.
2732 (neon_vpumax<mode>): Likewise.
2733 (ss_add<mode>_neon): Likewise.
2734 (us_add<mode>_neon): Likewise.
2735 (ss_sub<mode>_neon): Likewise.
2736 (us_sub<mode>_neon): Likewise.
2737 (neon_vadd<mode>_unspec): Likewise.
2738 (neon_vaddl<mode>): Likewise.
2739 (neon_vaddw<mode>): Likewise.
2740 (neon_vhadd<mode>): Likewise.
2741 (neon_vqadd<mode>): Likewise.
2742 (neon_vaddhn<mode>): Likewise.
2743 (neon_vmul<mode>): Likewise.
2744 (neon_vmla<mode>): Likewise.
2745 (neon_vmlal<mode>): Likewise.
2746 (neon_vmls<mode>): Likewise.
2747 (neon_vmlsl<mode>): Likewise.
2748 (neon_vqdmulh<mode>): Likewise.
2749 (neon_vqdmlal<mode>): Likewise.
2750 (neon_vqdmlsl<mode>): Likewise.
2751 (neon_vmull<mode>): Likewise.
2752 (neon_vqdmull<mode>): Likewise.
2753 (neon_vsub<mode>_unspec): Likewise.
2754 (neon_vsubl<mode>): Likewise.
2755 (neon_vsubw<mode>): Likewise.
2756 (neon_vqsub<mode>): Likewise.
2757 (neon_vhsub<mode>): Likewise.
2758 (neon_vsubhn<mode>): Likewise.
2759 (neon_vceq<mode>): Likewise.
2760 (neon_vcge<mode>): Likewise.
2761 (neon_vcgeu<mode>): Likewise.
2762 (neon_vcgt<mode>): Likewise.
2763 (neon_vcgtu<mode>): Likewise.
2764 (neon_vcle<mode>): Likewise.
2765 (neon_vclt<mode>): Likewise.
2766 (neon_vcage<mode>): Likewise.
2767 (neon_vcagt<mode>): Likewise.
2768 (neon_vtst<mode>): Likewise.
2769 (neon_vabd<mode>): Likewise.
2770 (neon_vabdl<mode>): Likewise.
2771 (neon_vaba<mode>): Likewise.
2772 (neon_vabal<mode>): Likewise.
2773 (neon_vmax<mode>): Likewise.
2774 (neon_vmin<mode>): Likewise.
2775 (neon_vpaddl<mode>): Likewise.
2776 (neon_vpadal<mode>): Likewise.
2777 (neon_vpmax<mode>): Likewise.
2778 (neon_vpmin<mode>): Likewise.
2779 (neon_vrecps<mode>): Likewise.
2780 (neon_vrsqrts<mode>): Likewise.
2781 (neon_vqabs<mode>): Likewise.
2782 (neon_vqneg<mode>): Likewise.
2783 (neon_vcls<mode>): Likewise.
2784 (clz<mode>2): Likewise.
2785 (popcount<mode>2): Likewise.
2786 (neon_vrecpe): Likewise.
2787 (neon_vrsqrte): Likewise.
2788 (neon_vget_lane<mode>_sext_internal): Likewise.
2789 (neon_vget_lane<mode>_zext_internal): Likewise.
2790 (neon_vdup_n<mode>): Likewise.
2791 (neon_vdup_nv2di): Likewise.
2792 (neon_vdpu_lane<mode>_internal): Likewise.
2793 (neon_vswp<mode>): Likewise.
2794 (float<mode><V_cvtto>2): Likewise.
2795 (floatuns<mode><V_cvtto>2): Likewise.
2796 (fix_trunc<mode><V_cvtto>)2): Likewise
2797 (fixuns_trunc<mode><V_cvtto)2): Likewise.
2798 (neon_vcvt<mode>): Likewise.
2799 (neon_vcvtv4sfv4hf): Likewise.
2800 (neon_vcvtv4hfv4sf): Likewise.
2801 (neon_vcvt_n<mode>): Likewise.
2802 (neon_vmovn<mode>): Likewise.
2803 (neon_vqmovn<mode>): Likewise.
2804 (neon_vqmovun<mode>): Likewise.
2805 (neon_vmovl<mode>): Likewise.
2806 (neon_vmul_lane<mode>): Likewise.
2807 (neon_vmull_lane<mode>): Likewise.
2808 (neon_vqdmull_lane<mode>): Likewise.
2809 (neon_vqdmulh_lane<mode>): Likewise.
2810 (neon_vmla_lane<mode>): Likewise.
2811 (neon_vmlal_lane<mode>): Likewise.
2812 (neon_vqdmlal_lane<mode>): Likewise.
2813 (neon_vmls_lane<mode>): Likewise.
2814 (neon_vmlsl_lane<mode>): Likewise.
2815 (neon_vqdmlsl_lane<mode>): Likewise.
2816 (neon_vext<mode>): Likewise.
2817 (neon_vrev64<mode>): Likewise.
2818 (neon_vrev32<mode>): Likewise.
2819 (neon_vrev16<mode>): Likewise.
2820 (neon_vbsl<mode>_internal): Likewise.
2821 (neon_vshl<mode>): Likewise.
2822 (neon_vqshl<mode>): Likewise.
2823 (neon_vshr_n<mode>): Likewise.
2824 (neon_vshrn_n<mode>): Likewise.
2825 (neon_vqshrn_n<mode>): Likewise.
2826 (neon_vqshrun_n<mode>): Likewise.
2827 (neon_vshl_n<mode>): Likewise.
2828 (neon_vqshl_n<mode>): Likewise.
2829 (neon_vqshlu_n<mode>): Likewise.
2830 (neon_vshll_n<mode>): Likewise.
2831 (neon_vsra_n<mode>): Likewise.
2832 (neon_vsri_n<mode>): Likewise.
2833 (neon_vsli_n<mode>): Likewise.
2834 (neon_vtbl1v8qi): Likewise.
2835 (neon_vtbl2v8qi): Likewise.
2836 (neon_vtbl3v8qi): Likewise.
2837 (neon_vtbl4v8qi): Likewise.
2838 (neon_vtbx1v8qi): Likewise.
2839 (neon_vtbx2v8qi): Likewise.
2840 (neon_vtbx3v8qi): Likewise.
2841 (neon_vtbx4v8qi): Likewise.
2842 (neon_vtrn<mode>_internal): Likewise.
2843 (neon_vzip<mode>_internal): Likewise.
2844 (neon_vuzp<mode>_internal): Likewise.
2845 (neon_vld1<mode>): Likewise.
2846 (neon_vld1_lane<mode>): Likewise.
2847 (neon_vld1_dup<mode>): Likewise.
2848 (neon_vld1_dupv2di): Likewise.
2849 (neon_vst1<mode>): Likewise.
2850 (neon_vst1_lane<mode>): Likewise.
2851 (neon_vld2<mode>): Likewise.
2852 (neon_vld2_lane<mode>): Likewise.
2853 (neon_vld2_dup<mode>): Likewise.
2854 (neon_vst2<mode>): Likewise.
2855 (neon_vst2_lane<mode>): Likewise.
2856 (neon_vld3<mode>): Likewise.
2857 (neon_vld3qa<mode>): Likewise.
2858 (neon_vld3qb<mode>): Likewise.
2859 (neon_vld3_lane<mode>): Likewise.
2860 (neon_vld3_dup<mode>): Likewise.
2861 (neon_vst3<mode>): Likewise.
2862 (neon_vst3qa<mode>): Likewise.
2863 (neon_vst3qb<mode>): Likewise.
2864 (neon_vst3_lane<mode>): Likewise.
2865 (neon_vld4<mode>): Likewise.
2866 (neon_vld4qa<mode>): Likewise.
2867 (neon_vld4qb<mode>): Likewise.
2868 (neon_vld4_lane<mode>): Likewise.
2869 (neon_vld4_dup<mode>): Likewise.
2870 (neon_vst4<mode>): Likewise.
2871 (neon_vst4qa<mode>): Likewise.
2872 (neon_vst4qb<mode>): Likewise.
2873 (neon_vst4_lane<mode>): Likewise.
2874 (neon_vec_unpack<US>_lo_<mode>): Likewise.
2875 (neon_vec_unpack<US>_hi_<mode>): Likewise.
2876 (neon_vec_<US>mult_lo_<mode>): Likewise.
2877 (neon_vec_<US>mult_hi_<mode>): Likewise.
2878 (neon_vec_<US>shiftl_<mode>): Likewise.
2879 (neon_unpack<US>_<mode>): Likewise.
2880 (neon_vec_<US>mult_<mode>): Likewise.
2881 (vec_pack_trunc_<mode>): Likewise.
2882 (neon_vec_pack_trunk_<mode>): Likewise.
2883 (neon_vabd<mode>_2): Likewise.
2884 (neon_vabd<mode>_3): Likewise.
2885 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
2886 (thumb2_movsi_vfp): Likewise.
2887 (movdi_vfp): Likewise.
2888 (movdi_vfp_cortexa8): Likewise.
2889 (movhf_vfp_neon): Likewise.
2890 (movhf_vfp): Likewiwse.
2891 (movsf_vfp): Likewiwse.
2892 (thumb2_movsf_vfp): Likewiwse.
2893 (movdf_vfp): Likewise.
2894 (thumb2_movdf_vfp): Likewise.
2895 (movsfcc_vfp): Likewise.
2896 (thumb2_movsfcc_vfp): Likewise.
2897 (movdfcc_vfp): Likewise.
2898 (thumb2_movdfcc_vfp): Likewise.
2899 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
2900 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
2901 (v10_v2c): Likewise.
2902 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
2903 attribute change.
2904 (cortex_a15_neon_int_2): Likewise.
2905 (cortex_a15_neon_int_3): Likewise.
2906 (cortex_a15_neon_int_4): Likewise.
2907 (cortex_a15_neon_int_5): Likewise.
2908 (cortex_a15_neon_vqneg_vqabs): Likewise.
2909 (cortex_a15_neon_vmov): Likewise.
2910 (cortex_a15_neon_vaba): Likewise.
2911 (cortex_a15_neon_vaba_qqq): Likewise.
2912 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2913 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
2914 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
2915 scalar_64_32_long_scalar): Likewise.
2916 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2917 (cortex_a15_neon_mla_qqq_8_16): Likewise.
2918 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
2919 lotype_qdd_64_32_long): Likewise.
2920 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
2921 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
2922 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
2923 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
2924 (cortex_a15_neon_shift_1): Likewise.
2925 (cortex_a15_neon_shift_2): Likewise.
2926 (cortex_a15_neon_shift_3): Likewise.
2927 (cortex_a15_neon_vshl_ddd): Likewise.
2928 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
2929 (cortex_a15_neon_vsra_vrsra): Likewise.
2930 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
2931 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
2932 (cortex_a15_neon_fp_vmul_ddd): Likewise.
2933 (cortex_a15_neon_fp_vmul_qqd): Likewise.
2934 (cortex_a15_neon_fp_vmla_ddd): Likewise.
2935 (cortex_a15_neon_fp_vmla_qqq): Likewise.
2936 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
2937 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
2938 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
2939 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
2940 (cortex_a15_neon_bp_simple): Likewise.
2941 (cortex_a15_neon_bp_2cycle): Likewise.
2942 (cortex_a15_neon_bp_3cycle): Likewise.
2943 (cortex_a15_neon_vld1_1_2_regs): Likewise.
2944 (cortex_a15_neon_vld1_3_4_regs): Likewise.
2945 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
2946 (cortex_a15_neon_vld2_4_regs): Likewise.
2947 (cortex_a15_neon_vld3_vld4): Likewise.
2948 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
2949 (cortex_a15_neon_vst1_3_4_regs): Likewise.
2950 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
2951 (cortex_a15_neon_vst3_vst4): Likewise.
2952 (cortex_a15_neon_vld1_vld2_lane): Likewise.
2953 (cortex_a15_neon_vld3_vld4_lane" 10
2954 (cortex_a15_neon_vst1_vst2_lane): Likewise.
2955 (cortex_a15_neon_vst3_vst4_lane): Likewise.
2956 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
2957 (cortex_a15_neon_ldm_2): Likewise.0
2958 (cortex_a15_neon_stm_2): Likewise.
2959 (cortex_a15_neon_mcr): Likewise.
2960 (cortex_a15_neon_mcr_2_mcrr): Likewise.
2961 (cortex_a15_neon_mrc): Likewise.
2962 (cortex_a15_neon_mrrc): Likewise.
2963 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
2964 change.
2965 (cortex_a15_alu_shift): Likewise.
2966 (cortex_a15_alu_shift_reg): Likewise.
2967 (cortex_a15_mult32): Likewise.
2968 (cortex_a15_mult64): Likewise.
2969 (cortex_a15_block): Likewise.
2970 (cortex_a15_branch): Likewise.
2971 (cortex_a15_load1): Likewise.
2972 (cortex_a15_load3): Likewise.
2973 (cortex_a15_store1): Likewise.
2974 (cortex_a15_store3): Likewise.
2975 (cortex_a15_call): Likewise.
f43245d1 2976 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
2977 (cortex_a5_f2r): Likewise.
2978 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
2979 change.
2980 (cortex_a53_f2r): Likewise.
2981 * config/arm/cortex-a7.md
2982 (cortex_a7_branch): Update for attribute change.
2983 (cortex_a7_call): Likewise.
2984 (cortex_a7_alu_imm): Likewise.
2985 (cortex_a7_alu_reg): Likewise.
2986 (cortex_a7_alu_shift): Likewise.
2987 (cortex_a7_mul): Likewise.
2988 (cortex_a7_load1): Likewise.
2989 (cortex_a7_store1): Likewise.
2990 (cortex_a7_load2): Likewise.
2991 (cortex_a7_store2): Likewise.
2992 (cortex_a7_load3): Likewise.
2993 (cortex_a7_store3): Likewise.
2994 (cortex_a7_load4): Likewise.
2995 (cortex_a7_store4): Likewise.
2996 (cortex_a7_fpalu): Likewise.
2997 (cortex_a7_fconst): Likewise.
2998 (cortex_a7_fpmuls): Likewise.
2999 (cortex_a7_neon_mul): Likewise.
3000 (cortex_a7_fpmacs): Likewise.
3001 (cortex_a7_neon_mla: Likewise.
3002 (cortex_a7_fpmuld: Likewise.
3003 (cortex_a7_fpmacd: Likewise.
3004 (cortex_a7_fpfmad: Likewise.
3005 (cortex_a7_fdivs: Likewise.
3006 (cortex_a7_fdivd: Likewise.
3007 (cortex_a7_r2f: Likewise.
3008 (cortex_a7_f2r: Likewise.
3009 (cortex_a7_f_flags: Likewise.
3010 (cortex_a7_f_loads: Likewise.
3011 (cortex_a7_f_loadd: Likewise.
3012 (cortex_a7_f_stores: Likewise.
3013 (cortex_a7_f_stored: Likewise.
3014 (cortex_a7_neon): Likewise.
3015 * config/arm/cortex-a8-neon.md
3016 (cortex_a8_neon_mrc): Update for attribute change.
3017 (cortex_a8_neon_mrrc): Likewise.
3018 (cortex_a8_neon_int_1): Likewise.
3019 (cortex_a8_neon_int_2): Likewise.
3020 (cortex_a8_neon_int_3): Likewise.
3021 (cortex_a8_neon_int_4): Likewise.
3022 (cortex_a8_neon_int_5): Likewise.
3023 (cortex_a8_neon_vqneg_vqabs): Likewise.
3024 (cortex_a8_neon_vmov): Likewise.
3025 (cortex_a8_neon_vaba): Likewise.
3026 (cortex_a8_neon_vaba_qqq): Likewise.
3027 (cortex_a8_neon_vsma): Likewise.
3028 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
3029 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
3030 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
3031 long_scalar): Likewise.
003bb7f3
JG
3032 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
3033 (cortex_a8_neon_mla_qqq_8_16): Likewise.
3034 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
3035 long_scalar_qdd_64_32_long): Likewise.
3036 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
3037 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
3038 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
3039 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
3040 (cortex_a8_neon_shift_1): Likewise.
3041 (cortex_a8_neon_shift_2): Likewise.
3042 (cortex_a8_neon_shift_3): Likewise.
3043 (cortex_a8_neon_vshl_ddd): Likewise.
3044 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
3045 (cortex_a8_neon_vsra_vrsra): Likewise.
3046 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
3047 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
3048 (cortex_a8_neon_fp_vsum): Likewise.
3049 (cortex_a8_neon_fp_vmul_ddd): Likewise.
3050 (cortex_a8_neon_fp_vmul_qqd): Likewise.
3051 (cortex_a8_neon_fp_vmla_ddd): Likewise.
3052 (cortex_a8_neon_fp_vmla_qqq): Likewise.
3053 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
3054 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
3055 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
3056 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
3057 (cortex_a8_neon_bp_simple): Likewise.
3058 (cortex_a8_neon_bp_2cycle): Likewise.
3059 (cortex_a8_neon_bp_3cycle): Likewise.
3060 (cortex_a8_neon_ldr): Likewise.
3061 (cortex_a8_neon_str): Likewise.
3062 (cortex_a8_neon_vld1_1_2_regs): Likewise.
3063 (cortex_a8_neon_vld1_3_4_regs): Likewise.
3064 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
3065 (cortex_a8_neon_vld2_4_regs): Likewise.
3066 (cortex_a8_neon_vld3_vld4): Likewise.
3067 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
3068 (cortex_a8_neon_vst1_3_4_regs): Likewise.
3069 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
3070 (cortex_a8_neon_vst3_vst4): Likewise.
3071 (cortex_a8_neon_vld1_vld2_lane): Likewise.
3072 (cortex_a8_neon_vld3_vld4_lane): Likewise.
3073 (cortex_a8_neon_vst1_vst2_lane): Likewise.
3074 (cortex_a8_neon_vst3_vst4_lane): Likewise.
3075 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
3076 (cortex_a8_neon_mcr): Likewise.
3077 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 3078 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
3079 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
3080 change.
3081 (ca9_neon_mrrc): Likewise.
3082 (cortex_a9_neon_int_1): Likewise.
3083 (cortex_a9_neon_int_2): Likewise.
3084 (cortex_a9_neon_int_3): Likewise.
3085 (cortex_a9_neon_int_4): Likewise.
3086 (cortex_a9_neon_int_5): Likewise.
3087 (cortex_a9_neon_vqneg_vqabs): Likewise.
3088 (cortex_a9_neon_vmov): Likewise.
3089 (cortex_a9_neon_vaba): Likewise.
3090 (cortex_a9_neon_vaba_qqq): Likewise.
3091 (cortex_a9_neon_vsma): Likewise.
3092 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
3093 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
3094 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
3095 long_scalar): Likewise.
003bb7f3
JG
3096 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
3097 (cortex_a9_neon_mla_qqq_8_16): Likewise.
3098 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
3099 long_scalar_qdd_64_32_long): Likewise.
3100 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
3101 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
3102 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
3103 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
3104 (cortex_a9_neon_shift_1): Likewise.
3105 (cortex_a9_neon_shift_2): Likewise.
3106 (cortex_a9_neon_shift_3): Likewise.
3107 (cortex_a9_neon_vshl_ddd): Likewise.
3108 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
3109 (cortex_a9_neon_vsra_vrsra): Likewise.
3110 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
3111 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
3112 (cortex_a9_neon_fp_vsum): Likewise.
3113 (cortex_a9_neon_fp_vmul_ddd): Likewise.
3114 (cortex_a9_neon_fp_vmul_qqd): Likewise.
3115 (cortex_a9_neon_fp_vmla_ddd): Likewise.
3116 (cortex_a9_neon_fp_vmla_qqq): Likewise.
3117 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
3118 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
3119 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
3120 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
3121 (cortex_a9_neon_bp_simple): Likewise.
3122 (cortex_a9_neon_bp_2cycle): Likewise.
3123 (cortex_a9_neon_bp_3cycle): Likewise.
3124 (cortex_a9_neon_ldr): Likewise.
3125 (cortex_a9_neon_str): Likewise.
3126 (cortex_a9_neon_vld1_1_2_regs): Likewise.
3127 (cortex_a9_neon_vld1_3_4_regs): Likewise.
3128 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
3129 (cortex_a9_neon_vld2_4_regs): Likewise.
3130 (cortex_a9_neon_vld3_vld4): Likewise.
3131 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
3132 (cortex_a9_neon_vst1_3_4_regs): Likewise.
3133 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
3134 (cortex_a9_neon_vst3_vst4): Likewise.
3135 (cortex_a9_neon_vld1_vld2_lane): Likewise.
3136 (cortex_a9_neon_vld3_vld4_lane): Likewise.
3137 (cortex_a9_neon_vst1_vst2_lane): Likewise.
3138 (cortex_a9_neon_vst3_vst4_lane): Likewise.
3139 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
3140 (cortex_a9_neon_mcr): Likewise.
3141 (cortex_a9_neon_mcr_2_mcrr): Likewise.
3142 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
3143 (cortex_a9_fps): Likewise.
3144 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
3145 change.
3146 (cortex_m4_fmuls): Likewise.
3147 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
3148 change.
3149 (cortex_r4_mrc): Likewise.
3150 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 3151 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 3152 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
3153 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
3154 attribute change.
003bb7f3
JG
3155 (pj4_core_to_vfp): Likewise.
3156 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
3157 attribute change.
3158 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
3159 (vfp_fstore): Likewise.
3160 * doc/md.texi: Change references to neon_type to refer to type.
3161
fbe0dc78
DS
31622013-09-04 Dodji Seketeli <dodji@redhat.com>
3163
3164 * tree.h (DECL_BUILT_IN): Fix typo in comment.
3165
c167bc5b
DE
31662013-09-04 David Edelsohn <dje.gcc@gmail.com>
3167
3168 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
3169 lglobl if not weak.
3170
035cb59f
ER
31712013-09-04 Easwaran Raman <eraman@google.com>
3172
3173 PR middle-end/57370
3174 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
3175 (build_and_add_sum): Use it.
3176 (appears_later_in_bb): Simplify code.
3177
71191083
TJ
31782013-09-04 Teresa Johnson <tejohnson@google.com>
3179
3180 * dumpfile.c (dump_finish): Don't close stderr/stdout.
3181
0c488213
JG
31822013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
3183
3184 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
3185
61a74079
JH
31862013-09-04 Jan Hubicka <jh@suse.cz>
3187
3188 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
3189 * ipa-devirt.c: Include diganostic.h
3190 (odr_type_d): Add types and types_set.
3191 (hash_type_name): Work for types with vtables during LTO.
3192 (odr_hasher::remove): Fix comment; destroy types_set.
3193 (add_type_duplicate): New function,
3194 (get_odr_type): Use it.
3195 (dump_type_inheritance_graph): Dump type duplicates.
3196 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
3197 graph.
3198 * tree.c (types_same_for_odr): Give exact answers on types with
3199 virtual tables.
3200
24ba8195
DS
32012013-09-04 Dodji Seketeli <dodji@redhat.com>
3202
3203 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
3204 explaining their differences.
3205
0a04869e
SKS
32062013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
3207
3208 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
3209
3b18bc42
JL
32102013-09-03 Jeff Law <law@redhat.com>
3211
3212 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
3213 when not threading through a joiner block. Pass joiner/no joiner
3214 state to register_jump_thread.
3215 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
3216 state from argument rather than implying on path length.
3217 Dump the entire jump thread path into debugging dump.
3218 * tree-flow.h (register_jump_thread): Update prototype.
3219
ae84e151
XDL
32202013-08-29 Xinliang David Li <davidxl@google.com>
3221
3222 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
3223 Remove a trivial gcc_assert.
3224
c716e67f
XDL
32252013-08-29 Xinliang David Li <davidxl@google.com>
3226
3227 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
3228 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
3229 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
3230 Delay base decl alignment adjustment.
3231 * tree-vectorizer.c (vect_destroy_datarefs): New function.
3232 * tree-vectorizer.h: New data structure.
3233 (set_dr_misalignment): New function.
3234 (dr_misalignment): Ditto.
3235 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
3236 (vectorizable_load): Ditto.
3237 (ensure_base_align): New function.
3238 (vectorize_loops): Add dbg_cnt support.
3239 (execute_vect_slp): Ditto.
3240 * dbgcnt.def: New debug counter.
3241 * Makefile: New dependency.
3242
db8800bc
MI
32432013-09-03 Meador Inge <meadori@codesourcery.com>
3244
3245 Revert:
3246
3247 2013-08-30 Meador Inge <meadori@codesourcery.com>
3248
3249 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
3250
0d9b4f5c
DE
32512013-09-03 David Edelsohn <dje.gcc@gmail.com>
3252
3253 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
3254 function descriptor.
3255
29e810b9
RB
32562013-09-03 Richard Biener <rguenther@suse.de>
3257
3258 * tree-affine.c (add_elt_to_tree): Fix association issue,
3259 avoid useless converts and make sure to always return a
3260 properly typed result.
3261
dbfc2894
RB
32622013-09-03 Richard Biener <rguenther@suse.de>
3263
3264 PR middle-end/57656
3265 * fold-const.c (negate_expr_p): Fix division case.
3266 (negate_expr): Likewise.
3267
fa3bf4ce
RB
32682013-09-03 Richard Biener <rguenther@suse.de>
3269
3270 PR lto/58285
3271 * tree-streamer-out.c: Include tm.h.
3272 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
3273
a64bbb3f
JH
32742013-09-03 Jan Hubicka <jh@suse.cz>
3275
3276 * tree-profile.c (tree_profiling): Cleanup CFG when done.
3277
93ed07e2
AM
32782013-09-03 Alan Modra <amodra@gmail.com>
3279
3280 * config.gcc (powerpc*-*-linux*): Add support for little-endian
3281 multilibs to big-endian target and vice versa.
3282 * config/rs6000/t-linux64: Use := assignment on all vars.
3283 (MULTILIB_EXTRA_OPTS): Remove fPIC.
3284 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
3285 * config/rs6000/t-linux64le: New file.
3286 * config/rs6000/t-linux64bele: New file.
3287 * config/rs6000/t-linux64lebe: New file.
3288
07d6cd64
JH
32892013-09-02 Jan Hubicka <jh@suse.cz>
3290
3291 * ipa-inline-transform.c (inline_transform): Do not
3292 optimize_inline_calls when not optimizing.
3293
8e4c9a10
JH
32942013-09-02 Jan Hubicka <jh@suse.cz>
3295
3296 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
3297 duplicated nodes for assembler names.
3298 * symtab.c (symtab_unregister_node): Do not attempt to unlink
3299 hard registers from assembler name hash.
3300
c91061e6
JH
33012013-09-02 Jan Hubicka <jh@suse.cz>
3302
3303 * ipa-split.c (execute_split_functions): Split externally visible
3304 functions called once.
3305
2fd0985c
MJ
33062013-09-02 Martin Jambor <mjambor@suse.cz>
3307
3308 PR ipa/58106
3309 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
3310 linked list. When finding the correct duplicate, also consider also
3311 the caller in additon to its inlined_to node.
3312
91bd4114
JG
33132013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
3314
3315 * config/aarch64/aarch64-simd-builtins.def
3316 (dup_lane_scalar): Remove.
3317 * config/aarch64/aarch64-simd.md
3318 (aarch64_simd_dup): Add 'w->w' alternative.
3319 (aarch64_dup_lane<mode>): Allow for VALL.
3320 (aarch64_dup_lane_scalar<mode>): Remove.
3321 (aarch64_dup_lane_<vswap_width_name><mode>): New.
3322 (aarch64_get_lane_signed<mode>): Add w->w altenative.
3323 (aarch64_get_lane_unsigned<mode>): Likewise.
3324 (aarch64_get_lane<mode>): Likewise.
3325 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
3326 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
3327 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
3328 (VCON): Change container of V2SF.
3329 (vswap_width_name): Likewise.
3330 * config/aarch64/arm_neon.h
3331 (__aarch64_vdup_lane_any): New.
3332 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
3333 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
3334 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
3335
d617d2d8
EB
33362013-09-02 Eric Botcazou <ebotcazou@adacore.com>
3337
3338 PR middle-end/56382
3339 * expr.c (emit_move_complex): Do not move complex FP values as parts if
3340 the source or the destination is a single hard register.
3341
63fdb7be
RB
33422013-09-02 Richard Biener <rguenther@suse.de>
3343
3344 PR middle-end/57511
3345 * tree-scalar-evolution.c (instantiate_scev_name): Allow
3346 non-linear SCEVs.
3347
78de2333
RB
33482013-09-02 Richard Biener <rguenther@suse.de>
3349
3350 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
3351 arithmetic to sizetype.
3352
85ff4ec6
BC
33532013-09-02 Bin Cheng <bin.cheng@arm.com>
3354
3355 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
3356 Find auto-increment use both before and after candidate.
3357
576016fe
MP
33582013-09-02 Marek Polacek <polacek@redhat.com>
3359
3360 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
3361
08f835dc
JH
33622013-09-01 Jan Hubicka <jh@suse.cz>
3363
3364 * Makefile.in: Add ipa-profile.o
3365 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
3366 * cgraph.c (struct cgraph_propagate_frequency_data,
3367 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
3368 ipa-profile.c; replace cgraph_ by ipa_ prefix.
3369 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
3370 * ipa-inline-analysis.c: Include ipa-utils.h;
3371 drop duplicated cfgloop.h.
08f835dc
JH
3372 (inline_update_callee_summaries): Update.
3373 * ipa-profile.c: New file.
3374 * ipa-utils.h (ipa_propagate_frequency): Declare.
3375 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 3376 data-streamer.h, value-prof.h.
08f835dc
JH
3377 (symtab_remove_unreachable_nodes): Update profile.
3378 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
3379 account_time_size, cmp_counts, dump_histogram,
3380 ipa_profile_generate_summary, ipa_profile_write_summary,
3381 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
3382 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 3383 Move to ipa-profile.c.
08f835dc 3384
cec8583c
JDA
33852013-09-01 John David Anglin <danglin@gcc.gnu.org>
3386
3387 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
3388
bbc9396b
JH
33892013-09-01 Jan Hubicka <jh@suse.cz>
3390
3391 * common.opt (fdevirtualize-speculatively): New function.
3392 * invoke.texi (fdevirtualize-speculatively): Document.
3393 * ipa-devirt.c: Include ipa-inline.h
3394 (likely_target_p): New function.
3395 (ipa_devirt): New function.
3396 (gate_ipa_devirt): New function.
3397 (pass_data_ipa_devirt): New static var.
3398 (pass_ipa_devirt): Likewise.
3399 (make_pass_ipa_devirt): New function.
3400 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
3401 (common_handle_option): Disable devirtualization when
3402 value range profiling is available.
3403 * passes.def (pass_ipa_devirt): Add.
3404 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 3405 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 3406
0cea211e
IS
34072013-09-01 Iain Sandoe <iain@codesourcery.com>
3408
3409 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
3410 include sanitize(undefined).
3411
5e351e96
DN
34122013-08-31 Diego Novillo <dnovillo@google.com>
3413
3414 * Makefile.in (TREE_CORE_H): Define.
3415 (TREE_H): Use.
3416 (GTFILES): Add tree-core.h.
3417 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
3418 size the array.
3419 * tree-core.h: New file.
3420 Move all data structures, enum, typedefs, global
3421 declarations and constants from ...
3422 * tree.h: ... here.
3423
63bf9a90
JH
34242013-08-31 Jan Hubicka <jh@suse.cz>
3425
3426 * bulitins.c (expand_builtin): Do not early exit for gcov
3427 instrumented functions.
3428
5c0abd6a
MP
34292013-08-31 Marek Polacek <polacek@redhat.com>
3430
3431 * ubsan.c: Include tm_p.h.
3432
4843f032
JH
34332013-08-31 Jan Hubicka <jh@suse.cz>
3434
8356c89c
JH
3435 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
3436 warning.
3437
4843f032
JH
3438 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
3439 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 3440 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
3441 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
3442 (ipa_merge_profiles): New function.
3443 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
3444 (lto_input_function_body): Likewise.
5e581212
JH
3445 * ipa-utils.h (ipa_merge_profiles): Declare.
3446 * lto-streamer.h (lto_input_function_body): Update prototype.
3447 (emit_label_in_global_context_p): Remove.
3448 * lto-symtab.c: Include ipa-utils.h
3449 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 3450
57292ce9
JH
34512013-08-31 Jan Hubicka <jh@suse.cz>
3452
3453 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
3454
b9cbfeeb
JH
34552013-08-31 Jan Hubicka <jh@suse.cz>
3456
3457 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
3458
41dedebd
UB
34592013-08-31 Uros Bizjak <ubizjak@gmail.com>
3460
3461 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
3462 "cmp" RTX before signed_comparison_operator check to account
3463 for "code" changes.
3464
06d65050
JH
34652013-08-30 Jan Hubicka <jh@suse.cz>
3466
41dedebd 3467 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
3468 (detect_type_change_1): Rename to ...
3469 (detect_type_change): ... this one; early return on non-polymorphic
3470 types.
41dedebd 3471 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
3472 use of detect_type_change.
3473 (compute_complex_assign_jump_func): Add param_type parameter;
3474 update use of detect_type_change_ssa.
3475 (compute_complex_ancestor_jump_func): Likewise.
3476 (ipa_get_callee_param_type): New function.
3477 (ipa_compute_jump_functions_for_edge): Compute parameter type;
3478 update calls to the jump function computation functions.
3479
600b5b1d
TJ
34802013-08-30 Teresa Johnson <tejohnson@google.com>
3481 Steven Bosscher <steven@gcc.gnu.org>
3482
3483 * cfgrtl.c (fixup_new_cold_bb): New routine.
3484 (commit_edge_insertions): Invoke fixup_partitions.
3485 (find_partition_fixes): New routine.
3486 (fixup_partitions): Ditto.
3487 (verify_hot_cold_block_grouping): Update comments.
3488 (rtl_verify_edges): Invoke find_partition_fixes.
3489 (rtl_verify_bb_pointers): Update comments.
3490 (rtl_verify_bb_layout): Ditto.
3491 * basic-block.h (probably_never_executed_edge_p): Declare.
3492 (fixup_partitions): Ditto.
3493 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
3494 * bb-reorder.c (sanitize_hot_paths): New function.
3495 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
3496 sanitize_hot_paths.
3497 * predict.c (probably_never_executed_edge_p): New routine.
3498 * cfg.c (check_bb_profile): Add partition insanity warnings.
3499
0a6ea5c9
MI
35002013-08-30 Meador Inge <meadori@codesourcery.com>
3501
3502 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
3503
de5a5fa1
MP
35042013-08-30 Marek Polacek <polacek@redhat.com>
3505
3506 * Makefile.in (ubsan.o): Add.
3507 (c-family/c-ubsan.o): Add.
3508 (builtins.o): Add ubsan.h dependency.
3509 * ubsan.h: New file.
3510 * ubsan.c: New file.
3511 * common.opt: Add -fsanitize=undefined option.
3512 (flag_sanitize): Add variable.
3513 (fsanitize=): Add option. Add Driver.
3514 (fsanitize=thread): Remove option.
3515 (fsanitize=address): Likewise.
3516 (static-libubsan): New option.
3517 * doc/invoke.texi: Document the new flag and -static-libubsan.
3518 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
3519 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
3520 * builtin-attrs.def (ATTR_COLD): Define.
3521 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
3522 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
3523 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
3524 * flag-types.h (sanitize_code): New enum.
3525 * opts.c (common_handle_option): Parse command line arguments
3526 of -fsanitize=. Add -fsanitize=unreachable option.
3527 * varasm.c (get_variable_section): Adjust.
3528 (assemble_noswitch_variable): Likewise.
3529 (assemble_variable): Likewise.
3530 (output_constant_def_contents): Likewise.
3531 (categorize_decl_for_section): Likewise.
3532 (place_block_symbol): Likewise.
3533 (output_object_block): Likewise.
3534 * builtins.def: Likewise.
3535 * toplev.c (compile_file): Likewise.
3536 (process_options): Likewise.
3537 * cppbuiltin.c: Likewise.
3538 * tsan.c (tsan_pass): Likewise.
3539 (tsan_gate): Likewise.
3540 (tsan_gate_O0): Likewise.
3541 * cfgexpand.c (partition_stack_vars): Likewise.
3542 (expand_stack_vars): Likewise.
3543 (defer_stack_allocation): Likewise.
3544 (expand_used_vars): Likewise.
3545 * cfgcleanup.c (old_insns_match_p): Likewise.
3546 * asan.c (asan_finish_file): Likewise.
3547 (asan_instrument): Likewise.
3548 (gate_asan): Likewise.
3549 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
3550 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
3551 (asan_global_struct): Use pointer_sized_int_node instead
3552 calling build_nonstandard_integer_type.
3553 (initialize_sanitizer_builtins): Likewise.
3554 (asan_finish_file): Likewise.
3555 * gcc.c: Document %{%:function(args):X}.
3556 (static_spec_functions): Add sanitize.
3557 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
3558 store funcval != NULL there.
3559 (do_spec_1): Adjust handle_spec_function caller.
3560 (handle_braces): Allow %:function(args) as condition.
3561 (sanitize_spec_function): New function.
3562 (ADD_STATIC_LIBUBSAN_LIBS): Define.
3563 (LIBUBSAN_SPEC): Likewise.
3564 (LIBUBSAN_EARLY_SPEC): Likewise.
3565 (SANITIZER_SPEC): Handle libubsan.
3566 (SANITIZER_EARLY_SPEC): Likewise.
3567 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
3568 instead of fsanitize=address.
3569 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
3570 instead of fsanitize=address*.
3571 * builtins.c: Include ubsan.h.
3572 (fold_builtin_0): Instrument __builtin_unreachable.
3573 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
3574 instead of flag_asan.
3575 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
3576 (pointer_sized_int_node): Define.
41dedebd 3577 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 3578
f07f30cf
MS
35792013-08-30 Mike Stump <mikestump@comcast.net>
3580
3581 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
3582 with RE patterns.
3583
8a41354f
JH
35842013-08-29 Jan Hubicka <jh@suse.cz>
3585
3586 * cgraph.c (cgraph_function_body_availability): Handle weakref
3587 correctly.
3588 * passes.def: Remove pass_fixup_cfg.
3589 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
3590 track when we need to remove functions.
3591 (gate_ipa_inline): Execute inlining always; add comment why.
3592 (pass_data_ipa_inline): Remove TODO_remove_functions.
3593 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
3594 do not produce summaries.
3595 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
3596 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
3597 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
3598 constant pool and vtable.
3599
dc8d7a0f
TB
36002013-08-30 Tejas Belagod <tejas.belagod@arm.com>
3601
41dedebd
UB
3602 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
3603 New arm_neon.h's internal macros to specify 64-bit constants.
3604 Avoid using stdint.h's macros.
dc8d7a0f 3605
ac7eacd2
JR
36062013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
3607
3608 * recog.c (verify_changes): Verify that changes[i].old is non-zero
3609 before applying REG_P.
3610
8b29fd4e
JJ
36112013-08-30 Jakub Jelinek <jakub@redhat.com>
3612
3613 PR tree-optimization/58277
3614 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
3615 after seeing too many stmts with vdef in between dombb and current
3616 bb, invalidate everything.
3617
26d75703
RB
36182013-08-30 Richard Biener <rguenther@suse.de>
3619
3620 * fold-const.c (fold_single_bit_test): Fix overflow test.
3621
f7e088e7
EB
36222013-08-30 Eric Botcazou <ebotcazou@adacore.com>
3623
3624 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
3625 and which can live in a register, always retrieve the value on entry.
3626 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
3627 passed by invisible reference specially.
3628 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
3629 (vt_add_function_parameter): Correctly deal with a parameter passed by
3630 invisible reference.
3631
36322013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
3633
3634 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
3635
6e8dad05
RB
36362013-08-30 Richard Biener <rguenther@suse.de>
3637
3638 PR tree-optimization/58228
3639 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
3640 allow invariant loads in nested loop vectorization.
3641
062ef2c8
RB
36422013-08-30 Richard Biener <rguenther@suse.de>
3643
3644 PR tree-optimization/58223
3645 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
3646 (has_anti_or_output_dependence): ... this and adjust to also
3647 look for output dependences.
3648 (mark_nodes_having_upstream_mem_writes): Adjust.
3649 (rdg_flag_uses): Likewise.
3650
7a764c60
RB
36512013-08-30 Richard Biener <rguenther@suse.de>
3652
3653 PR tree-optimization/58010
3654 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
3655 assert that we have a loop-closed PHI.
3656
82e9d642
JH
36572013-08-29 Jan Hubicka <jh@suse.cz>
3658
3659 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
3660 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
3661 * lto-section-in.c (lto_free_function_in_decl_state): New function.
3662 (lto_free_function_in_decl_state_for_node): New function.
3663
9cc1fb4b
XDL
36642013-08-29 Xinliang David Li <davidxl@google.com>
3665
41dedebd 3666 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
3667 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
3668 Emit alignment peeling message with default -fopt-info.
3669 (vect_loop_versioning): Emit loop version info message.
41dedebd 3670 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
3671 (execute_vect_slp): Ditto.
3672
440a5082
EB
36732013-08-29 Eric Botcazou <ebotcazou@adacore.com>
3674
3675 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
3676 of the clone from the DECL_NAME of the original function.
3677
3fa3690d
OE
36782013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
3679
3680 * passes.c (register_pass): Add overload.
3681 * tree-pass.h (register_pass): Forward declare it. Add comment.
3682
0170f33c
JH
36832013-08-29 Jan Hubicka <jh@suse.cz>
3684
41dedebd
UB
3685 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
3686 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
3687 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
3688 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
3689 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
3690 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 3691 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
3692 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
3693
103ff0d6
TJ
36942013-08-29 Teresa Johnson <tejohnson@google.com>
3695
3696 * dumpfile.c (dump_loc): Output column number.
3697 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
3698 * doc/invoke.texi: Document optall -fopt-info flag.
3699 * profile.c (read_profile_edge_counts): Use new dump framework.
3700 (compute_branch_probabilities): Ditto.
3701 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
3702 when pass not in any opt group.
3703 * pass_manager.h (pass_manager::get_pass_profile): New method.
3704 * value-prof.c (check_counter): Use new dump framework.
3705 (check_ic_target): Ditto.
3706 * coverage.c (get_coverage_counts): Ditto.
3707 (coverage_init): Setup new dump framework.
3708
301bbc16
RB
37092013-08-29 Richard Biener <rguenther@suse.de>
3710
3711 PR tree-optimization/58246
3712 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
3713 handle the dominance check inside a basic-block.
3714
1b275000
RB
37152013-08-29 Richard Biener <rguenther@suse.de>
3716
3717 PR middle-end/57287
3718 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
3719 of default defs that appear in abnormal PHI nodes.
3720
6b1184ba
RB
37212013-08-29 Richard Biener <rguenther@suse.de>
3722
3723 PR tree-optimization/57685
3724 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
3725 single-use operands to avoid exponential complexity.
3726
1b08b734
DC
37272013-08-28 Dehao Chen <dehao@google.com>
3728
3729 * ipa-inline.c (edge_badness): Fix integer underflow.
3730
48a3fa69
UB
37312013-08-28 Uros Bizjak <ubizjak@gmail.com>
3732
3733 * gtm-builtins.def (_ITM_free): Declare leaf.
3734
215f73e6
JJ
37352013-08-28 Jakub Jelinek <jakub@redhat.com>
3736
3737 PR target/58067
3738 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
3739 (*tls_local_dynamic_base_64_largepic): Likewise.
3740 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
3741 Remove predicate from call operand.
3742 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
3743 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
3744
34554d1a
JL
37452013-08-28 Jeff Law <law@redhat.com>
3746
3747 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
3748 checks for the number of predecessors and successors allowed.
3749 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
3750 which require copying a joiner block if there is a request which
3751 is a subpath that requires no joiner block copying.
3752
c01c111b
JH
37532013-08-28 Jan Hubicka <jh@suse.cz>
3754
3755 * lto-streamer-out.c (DFS_write_tree_body): Drop
3756 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
3757 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
3758 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
3759 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
3760 Do not read DECL_ERROR_ISSUED.
3761 (unpack_ts_decl_with_vis_value_fields): Do not read
3762 DECL_DEFER_OUTPUT.
48a3fa69
UB
3763 (lto_input_ts_binfo_tree_pointers): Do not read
3764 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
3765 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
3766 write DECL_ERROR_ISSUED..
3767 (pack_ts_decl_with_vis_value_fields): Do not write
3768 DECL_DEFER_OUTPUT.
3769 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 3770 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
3771 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
3772 * tree.h (tree_decl_common): Update comment.
3773 (DECL_ERROR_ISSUED): Remove.
3774
4b128ece
JJ
37752013-08-28 Jakub Jelinek <jakub@redhat.com>
3776
3777 PR middle-end/58257
3778 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
3779
12211b99 37802013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
3781
3782 * builtins.def (free): Declare leaf.
3783
8dce4dbc
DM
37842013-08-27 David Malcolm <dmalcolm@redhat.com>
3785
3786 * gdbhooks.py: New.
3787 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
3788 * configure: Regenerate.
3789
b8f6e610
MJ
37902013-08-27 Martin Jambor <mjambor@suse.cz>
3791
3792 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
3793 (ipa_ancestor_jf_data): Likewise.
3794 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
3795 (ipa_get_jf_pass_through_type_preserved): New function.
3796 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
3797 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 3798 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
3799 (ipa_get_jf_ancestor_result): Likewise.
3800 (propagate_vals_accross_pass_through): Use
3801 ipa_get_jf_pass_through_result to do all the value mappings.
3802 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
3803 type_preserved flag.
3804 (ipa_set_jf_cst_copy): New function.
3805 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
3806 (ipa_set_jf_arith_pass_through): Likewise.
3807 (ipa_set_ancestor_jf): Likewise.
3808 (compute_complex_assign_jump_func): Set type_preserved instead of
3809 punting.
3810 (ipa_compute_jump_functions_for_edge): Likewise.
3811 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
3812 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 3813 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
3814 (ipa_write_jump_function): Stream the type_preserved flags.
3815 (ipa_read_jump_function): Likewise.
3816
74bf76ed
JJ
38172013-08-27 Jakub Jelinek <jakub@redhat.com>
3818 Aldy Hernandez <aldyh@redhat.com>
3819
3820 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
3821 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
3822 * function.h (struct function): Add has_force_vect_loops and
3823 has_simduid_loops.
12211b99 3824 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
3825 * gimple.c (gimple_build_omp_critical): Add KIND argument and
3826 handle it.
3827 * gimple.def: Update CLAUSES comments.
3828 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
3829 (gimple_build_omp_for): Add argument to prototype.
3830 (gimple_omp_for_kind): New.
3831 (gimple_omp_for_set_kind): New.
3832 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
3833 GOVD_DATA_SHARE_CLASS.
3834 (enum omp_region_type): Add ORT_SIMD.
3835 (gimple_add_tmp_var): Handle ORT_SIMD.
3836 (gimplify_var_or_parm_decl): Same.
3837 (is_gimple_stmt): Same.
3838 (omp_firstprivatize_variable): Same.
3839 (omp_add_variable): Only use splay_tree_insert if lookup failed.
3840 (omp_notice_variable): Handle ORT_SIMD.
12211b99 3841 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
3842 (omp_check_private): Handle ORT_SIMD.
3843 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
3844 OMP_CLAUSE_SAFELEN.
3845 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
3846 Handle OMP_CLAUSE_LASTPRIVATE.
3847 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
3848 OMP_CLAUSE_SAFELEN.
3849 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
3850 (gimplify_expr): Handle OMP_SIMD.
3851 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
3852 (expand_GOMP_SIMD_VF): New.
3853 (expand_GOMP_SIMD_LAST_LANE): New.
3854 * internal-fn.def (GOMP_SIMD_LANE): New.
3855 (GOMP_SIMD_VF): New.
3856 (GOMP_SIMD_LAST_LANE): New.
3857 * omp-low.c: Include target.h.
3858 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
3859 OMP_CLAUSE_SAFELEN.
3860 (check_omp_nesting_restrictions): Same.
3861 (omp_max_vf): New.
3862 (lower_rec_simd_input_clauses): New.
3863 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
3864 OMP_CLAUSE_LINEAR.
3865 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
3866 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
3867 (expand_omp_build_assign): New.
3868 (expand_omp_for_init_counts): New.
3869 (expand_omp_for_init_vars): New.
3870 (extract_omp_for_update_vars): New.
3871 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
3872 and rewrite accordingly.
3873 (expand_omp_simd): New.
3874 (expand_omp_for): Use expand_omp_simd.
3875 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
3876 (lower_omp_for): Do not lower the body.
3877 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
3878 in their own loops.
3879 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
3880 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
3881 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
3882 (gate_tree_if_conversion): Similarly.
3883 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
3884 gimple_build_omp_for.
3885 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
3886 * tree-parloops (create_parallel_loop): Pass kind argument to
3887 gimple_build_omp_for.
3888 * tree-pretty-print.c (dump_omp_clause): Add cases for
3889 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
3890 OMP_CLAUSE__SIMDUID_.
3891 (dump_generic_node): Handle OMP_SIMD.
3892 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
3893 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
3894 unroll OMP_SIMD loops here.
12211b99 3895 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 3896 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 3897 loop->safelen.
74bf76ed
JJ
3898 (vect_analyze_data_refs): Handle simd loops.
3899 * tree-vect-loop.c (vectorizable_live_operation): Handle
3900 IFN_GOMP_SIMD*.
12211b99 3901 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
3902 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
3903 (vectorizable_load): Same.
12211b99 3904 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
3905 (struct simduid_to_vf): New.
3906 (simduid_to_vf::hash): New.
3907 (simduid_to-vf::equal): New.
3908 (struct simd_array_to_simduid): New.
3909 (simd_array_to_simduid::hash): New.
3910 (simd_array_to_simduid::equal): New.
3911 (adjust_simduid_builtins): New.
3912 (struct note_simd_array_uses_struct): New.
3913 (note_simd_array_uses_cb): New.
3914 (note_simd_array_uses): New.
3915 (vectorize_loops): Handle simd hints and adjust simd builtins
3916 accordingly.
3917 * tree-vectorizer.h (struct _stmt_vec_info): Add
3918 simd_lane_access_p field.
3919 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
3920 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
3921 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
3922 (omp_clause_code_name): Same.
3923 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
3924 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
3925 * tree.def (OMP_SIMD): New entry.
12211b99
UB
3926 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
3927 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
3928 (OMP_CLAUSE_DECL): Adjust range for new clauses.
3929 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
3930 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
3931 (OMP_CLAUSE_LINEAR_STEP): New.
3932 (OMP_CLAUSE_SAFELEN_EXPR): New.
3933 (OMP_CLAUSE__SIMDUID__DECL): New.
3934 (find_omp_clause): New prototype.
3935
d0cf4e84
L
39362013-08-27 H.J. Lu <hongjiu.lu@intel.com>
3937
3938 * config/i386/driver-i386.c (host_detect_local_cpu): Update
3939 Haswell processor detection.
3940
992592ec
CW
39412013-08-27 Christian Widmer <shadow@umbrox.de>
3942
3943 PR target/57927
3944 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
3945 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
3946 AVX2 capable processors.
3947
9116eb22
TB
39482013-08-27 Tejas Belagod <tejas.belagod@arm.com>
3949
3950 * config/aarch64/arm_neon.h: Replace all inline asm implementations
3951 of vget_low_* with implementations in terms of other intrinsics.
3952
1c5abb53
MG
39532013-08-27 Marc Glisse <marc.glisse@inria.fr>
3954
3955 PR middle-end/57219
3956 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
3957 values to -1, 0 and 1.
3958
2e100703
VP
39592013-08-27 Vidya Praveen <vidyapraveen@arm.com>
3960
3961 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
3962 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
3963 (<optab><mode>3_insn): Remove.
3964 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
3965 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
3966 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
3967 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
3968 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
3969 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
3970 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
3971 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
3972 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
3973 (ror<mode>3_insn): Likewise.
3974 * config/aarch64/predicates.md (aarch64_simd_register): New.
3975
4ded8276
RB
39762013-08-27 Richard Biener <rguenther@suse.de>
3977
3978 PR tree-optimization/57521
3979 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
3980 one edge is non-critical.
3981 (find_phi_replacement_condition): Make sure to use a non-critical
3982 edge. Cleanup and remove old bug workarounds.
3983 (bb_postdominates_preds): Remove.
3984 (if_convertible_loop_p_1): Do not compute post-dominators.
3985 (combine_blocks): Do not free post-dominators.
3986 (main_tree_if_conversion): Likewise.
3987 (pass_data_if_conversion): Add TODO_verify_ssa.
3988
5aa11061
DD
39892013-08-27 DJ Delorie <dj@redhat.com>
3990
3991 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
3992
fd91cfe3
YZ
39932013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
3994
3995 * function.c (assign_parm_find_data_types): Set passed_mode and
3996 nominal_mode to the TYPE_MODE of nominal_type for the built
3997 pointer type in case of the struct-pass-by-reference.
3998
907555ce
JR
39992013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
4000
4001 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
4002 (UINT16_TYPE): Change default to "unsigned int".
4003
67518c93
JR
4004 * config/avr/avr.opt (mfract-convert-truncate): New option.
4005 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
4006 is set, round negative fractional integers according to n1169
4007 when converting to integer types.
4008
d6d989fc
JH
40092013-08-26 Jan Hubicka <jh@suse.cz>
4010
4011 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
4012 methods can not be called indirectly when their address is not taken.
4013
2aa3da06
JH
40142013-08-26 Jan Hubicka <jh@suse.cz>
4015
12211b99
UB
4016 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
4017 ctor_for_folding.
2aa3da06 4018
0987ffe7
JH
40192013-08-26 Jan Hubicka <jh@suse.cz>
4020
4021 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
4022 can be unshared.
4023
befe8647
JR
40242013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
4025
4026 * reload.c (find_valid_class): Allow classes that do not include
4027 FIRST_PSEUDO_REGISTER - 1.
4028
a21e735e
JH
40292013-08-26 Jan Hubicka <jh@suse.cz>
4030
4031 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
4032 fix edge count/frequency when speculation failed; fix type check
4033 for the direct call.
4034
e067bd43
JH
40352013-08-26 Jan Hubicka <jh@suse.cz>
4036
4037 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
4038
e8aec975
JH
40392013-08-26 Jan Hubicka <jh@suse.cz>
4040
4041 * ipa-inline-transform.c (inline_transform): Be ready for basic block
4042 to be changed by edge redirection.
4043
d0b66480
JH
40442013-08-26 Jan Hubicka <jh@suse.cz>
4045
12211b99
UB
4046 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
4047 formating; add sanity check.
d0b66480
JH
4048 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
4049 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
4050 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
4051 (resolve_noninline_speculation): Update callee keys, too.
4052
0f9aaac7
JH
40532013-08-26 Jan Hubicka <jh@suse.cz>
4054
4055 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
4056 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
4057
4b37444e
JR
40582013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
4059
4060 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
4061 into proper place.
4062
5339fc0c
UB
40632013-08-26 Uros Bizjak <ubizjak@gmail.com>
4064
4065 * config/i386/i386.c (ix86_debug_options): Remove prototype.
4066 (x86_64_elf_select_section): Ditto.
4067 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
4068 arguments.
4069 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
4070 (output_set_got): Ditto.
4071 (ix86_unary_operator_ok): Ditto.
4072 (ix86_expand_builtin): Ditto.
4073
d5c3d3ef
JH
40742013-08-23 Jan Hubicka <jh@suse.cz>
4075
5339fc0c 4076 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 4077
5b1e7435
JH
40782013-08-23 Jan Hubicka <jh@suse.cz>
4079
4080 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
4081 (tree_decl_with_vis): Add FINAL field.
4082
ead69dac
JL
40832013-08-23 Jeff Law <law@redhat.com>
4084
4085 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
4086 the debugging dump when the expression is fully redundant.
4087
025311c4
GDR
40882013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
4089
4090 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
4091 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
4092 * pretty-print.c (pp_formatted_text_data): Likewise.
4093 (pp_write_text_to_stream): Likewise.
4094 (pp_write_text_as_dot_label_to_stream): Likewise.
4095 (pp_append_r): Likewise.
4096 (pp_format): Likewise.
4097 (pp_flush): Likewise.
4098 (pp_clear_output_area): Likewise.
4099 (pp_append_text): Likewise.
4100 (pp_formatted_text): Likewise.
4101 (pp_remaining_character_count_for_line): Likewise.
4102 (pp_newline): Likewise.
4103 (pp_character): Likewise.
4104 (output_buffer::~output_buffer): Define.
4105 (pretty_printer::~pretty_printer): Destruct output buffer.
4106 * pretty-print.h (output_buffer::~output_buffer): Declare.
4107 (pretty_printer::~pretty_printer): Declare virtual.
4108
0cadbfaa
MG
41092013-08-24 Marc Glisse <marc.glisse@inria.fr>
4110
4111 PR other/57324
4112 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
4113 HOST_WIDE_INT_M1U): New macros.
4114 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
4115 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
4116 unsigned -1 for lshift.
4117 * cse.c (cse_insn): Likewise.
4118 * double-int.c (rshift_double, lshift_double): Likewise.
4119 * builtins.c (fold_builtin_bitop): Likewise.
4120 * combine.c (force_to_mode): Likewise.
4121 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
4122 * simplify-rtx.c (simplify_const_unary_operation,
4123 simplify_const_binary_operation): Likewise.
4124 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
4125 check_va_list_escapes): Likewise.
4126 * rtlanal.c (nonzero_bits1): Likewise.
4127 * expmed.c (expand_smod_pow2): Likewise.
4128 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
4129
009e5353
JH
41302013-08-23 Jan Hubicka <jh@suse.cz>
4131
4132 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
4133 as having address taken.
4134
c4be6568
JH
41352013-08-23 Jan Hubicka <jh@suse.cz>
4136
64cbf23d
JH
4137 * ipa-utils.h (method_class_type): Declare.
4138 * ipa-devirt.c (method_class_type): Export.
4139
c4be6568
JH
4140 * cgraphunit.c (analyze_functions): Do basic devirtualization;
4141 do not walk base classes of anonymous types.
4142
97aba8e9
KK
41432013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
4144
4145 PR rtl-optimization/58220
4146 PR regression/58221
4147 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
4148 handle SEQUENCE insns properly.
4149
0fc80001
GDR
41502013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
4151
4152 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
4153 definition.
4154 (pp_newline_and_indent): Likewise.
4155 (pp_separate_with): Likewise.
4156 * pretty-print.c (pp_newline_and_flush): Define.
4157 (pp_newline_and_indent): Likewise.
4158 (pp_separate_with): Likewise.
4159
520a5868
JJ
41602013-08-23 Jakub Jelinek <jakub@redhat.com>
4161
4162 PR target/58218
4163 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
4164 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
4165
e500c62a
KY
41662013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
4167
f43245d1
UB
4168 * config/i386/predicates.md (ext_sse_reg_operand): New.
4169 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
4170 predicate to determine if EVEX is needed.
4171 (*movsi_internal): Ditto.
4172 (*movdf_internal): Ditto.
4173 (*movsf_internal): Ditto.
f43245d1 4174 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 4175
6b00d7dd
JJ
41762013-08-23 Jakub Jelinek <jakub@redhat.com>
4177
4178 PR tree-optimization/58209
4179 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
4180 (find_tail_calls): Give up for pointer result types if m is non-NULL.
4181 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
4182 emit POINTER_PLUS_EXPR.
4183 (create_tailcall_accumulator): For pointer result type accumulate in
4184 sizetype type.
4185
4f2a9f90
PC
41862013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
4187
4188 * configure.ac: Add backslashes missing from the last change.
4189 * configure: Regenerate.
4190
7bf4274e
JH
41912013-08-22 Jan Hubicka <jh@susue.cz>
4192
4f2a9f90
PC
4193 * ipa.c (function_and_variable_visibility): First remember function
4194 was global and then make it local.
7bf4274e 4195
1bea243d
JB
41962013-08-22 Julian Brown <julian@codesourcery.com>
4197
4198 * configure.ac: Add aarch64 to list of arches which use "nop" in
4199 debug_line test.
4200 * configure: Regenerate.
4201
bcba7ecc
AK
42022013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4203
4204 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
4205 gnu_libc_has_function.
4206 * config/s390/tpf.h: Likewise.
4207
4c495b0d
JH
42082013-08-22 Jan Hubicka <jh@susue.cz>
4209
4210 * timevar.c (validate_phases): Add cast.
4211
5e302bca
JH
42122013-08-22 Jan Hubicka <jh@susue.cz>
4213
4214 * timevar.c (validate_phases): Use size_t for memory.
4215 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
4216
da6ca2b5
GDR
42172013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
4218
4219 * pretty-print.h (output_buffer::output_buffer): Declare.
4220 (pretty_printer::pretty_printer): Likewise.
4221 (pp_construct): Remove.
4222 * pretty-print.c (output_buffer::output_buffer): Define.
4223 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
4224 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
4225 (print_gimple_expr): Likewise.
4226 (print_gimple_seq): Likewise.
4227 (gimple_dump_bb): Likewise.
4228 * sched-vis.c (dump_value_slim): Likewise.
4229 (dump_insn_slim): Likewise.
4230 (dump_rtl_slim): Likewise.
4231 (str_pattern_slim): Likewise.
4232 * tree-mudflap.c (mf_varname_tree): Likewise.
4233 * graph.c (print_graph_cfg): Likewise.
4234 (start_graph_dump): Likewise.
4235 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
4236 placement-new.
4237 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
4238 pretty printer initialization.
4239 * coretypes.h (diagnostic_context): Remove superflous type alias
4240 declaration.
4241 (pretty_printer): Likewise. Declare directly as a class.
4242 (pretty_print_info): Remove declaration as class.
4243 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
4244 and pp_clear_output_area.
4245 (asan_add_global): Likewise.
4246
0e1474e5
JH
42472013-08-22 Jan Hubicka <jh@suse.cz>
4248
4249 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
4250 * ipa-utils.h (update_type_inheritance_graph): Declare.
4251 (possible_polymorphic_call_target_p): Declare.
4252 (possible_polymorphic_call_target_p): New.
4253 * ipa-devirt.c: Update toplevel comments.
4254 (cached_polymorphic_call_targets): Move up.
4255 (odr_type_d): Move ID down.
4256 (polymorphic_type_binfo_p): Update comment.
4257 (odr_hasher::remove): Likewise;
4258 (get_odr_type): Set anonymous_namespace.
4259 (dump_odr_type): Dump it.
4260 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
4261 (maybe_record_node): Record node in cached_polymorphic_call_targets.
4262 (record_binfo): Add comment.
5339fc0c
UB
4263 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
4264 built.
0e1474e5
JH
4265 (devirt_node_removal_hook): Do not iCE when cache is freed.
4266 (possible_polymorphic_call_target_p): New predicate.
4267 (update_type_inheritance_graph): New function.
4268
3f97cb0b
AI
42692013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
4270 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4271 Sergey Lega <sergey.s.lega@intel.com>
4272 Anna Tikhonova <anna.tikhonova@intel.com>
4273 Ilya Tocar <ilya.tocar@intel.com>
4274 Andrey Turetskiy <andrey.turetskiy@intel.com>
4275 Ilya Verbin <ilya.verbin@intel.com>
4276 Kirill Yukhin <kirill.yukhin@intel.com>
4277 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4278
4279 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
4280 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
4281 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
4282 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
4283 (OPTION_MASK_ISA_AVX2_UNSET): Update.
4284 (OPTION_MASK_ISA_AVX512F_UNSET): New.
4285 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
4286 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
4287 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
4288 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
4289 OPT_mavx512pf, OPT_mavx512er cases.
4290 * config/i386/constraints.md (v): New constraint.
4291 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
4292 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
4293 (bit_AVX512CD): New.
4294 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
4295 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
4296 * config/i386/i386-c.c (ix86_target_macros_internal):
4297 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
4298 __AVX512PF__.
4299 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
4300 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
4301 * config/i386/i386.c (regclass_map, dbx_register_map)
4302 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
4303 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
4304 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
4305 -mavx512pf options.
4306 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
4307 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
4308 -mavx512pf options. Fix formatting.
4309 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
4310 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
4311 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
4312 -mavx512cd, -mavx512pf options.
4313 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
4314 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
4315 (ix86_preferred_output_reload_class): Replace SSE_REGS with
4316 ALL_SSE_REGS.
4317 (ix86_hard_regno_mode_ok): Support 512-bit registers.
4318 (ix86_set_reg_reg_cost): Ditto.
4319 (x86_order_regs_for_local_alloc): Ditto.
4320 (MAX_VECT_LEN): Extend to 64-byte.
4321 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
4322 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
4323 (TARGET_AVX512ER, TARGET_AVX512CD): New.
4324 (BIGGEST_ALIGNMENT): Extend to 512-bits.
4325 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
4326 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
4327 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
4328 (SSE_REG_MODE_P): Support new modes.
4329 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
4330 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
4331 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
4332 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
4333 (REG_CLASS_CONTENTS): Add new registers.
4334 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
4335 (EXT_REX_SSE_REGNO_P): New.
4336 (HI_REGISTER_NAMES): Add new registers.
4337 * config/i386/i386.md: Define constants for new registers.
4338 (mode): Add new 512-bit modes.
4339 (prefix): Support evex prefix.
4340 (isa): Support avx512f, noavx512f, fma_avx512f.
4341 (ssemodesuffix): Add new 512-bit modes.
4342 (movxi): New.
4343 (*movxi_internal_avx512f): Ditto.
4344 (*movdi_internal): Replace constraint "x" with the new constraint "v".
4345 Support MODE_XI.
4346 (*movsi_internal): Likewise.
4347 (*movdf_internal): Likewise.
4348 (*movsf_internal): Likewise.
4349 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
4350 (<code><mode>3): Likewise.
5339fc0c
UB
4351 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
4352 New.
3f97cb0b
AI
4353 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
4354 with the new constraint "v".
4355 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
4356 modes.
4357 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
4358 with the new constraint "v".
4359 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
4360 (<sse2>_storedqu<avxsizesuffix>): Likewise.
4361 (*<plusminus_insn><mode>3): Likewise.
4362 (<sse>_vm<plusminus_insn><mode>3): Likewise.
4363 (*mul<mode>3): Likewise.
4364 (<sse>_vmmul<mode>3): Likewise.
4365 (<sse>_div<mode>3): Likewise.
4366 (<sse>_vmdiv<mode>3): Likewise.
4367 (<sse>_sqrt<mode>2): Likewise.
4368 (<sse>_vmsqrt<mode>2): Likewise.
4369 (*<code><mode>3_finite): Likewise.
4370 (*<code><mode>3) <smaxmin>: Likewise.
4371 (<sse>_vm<code><mode>3): Likewise.
4372 (*<code><mode>3) <any_logic>: Likewise.
4373 (*fma_fmadd_<mode>): Likewise.
4374 (*fma_fmsub_<mode>): Likewise.
4375 (*fma_fnmadd_<mode>): Likewise.
4376 (*fma_fnmsub_<mode>): Likewise.
4377 (*fma_fmaddsub_<mode>): Likewise.
4378 (*fma_fmsubadd_<mode>): Likewise.
4379 (*fmai_fmadd_<mode>): Likewise.
4380 (*fmai_fmsub_<mode>): Likewise.
4381 (*fmai_fnmadd_<mode>): Likewise.
4382 (*fmai_fnmsub_<mode>): Likewise.
4383 (sse_cvtsi2ss): Likewise.
4384 (sse_cvtsi2ssq): Likewise.
4385 (sse_cvtss2si): Likewise.
4386 (sse_cvtss2si_2): Likewise.
4387 (sse_cvtss2siq): Likewise.
4388 (sse_cvtss2siq_2): Likewise.
4389 (sse_cvttss2si): Likewise.
4390 (sse_cvtss2siq_2): Likewise.
4391 (float<sseintvecmodelower><mode>2): Likewise.
4392 (sse2_cvtsd2si_2): Likewise.
4393 (sse2_cvtsd2siq_2): Likewise.
4394 (*<plusminus_insn><mode>3): Likewise.
4395 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
4396 (*<sse4_1_avx2>_mul<mode>3): Likewise.
4397 (ashr<mode>3): Likewise.
4398 (<shift_insn><mode>3): Likewise.
4399 (avx2_<code><mode>3): Likewise.
4400 (*avx2_<code><mode>3): Likewise.
4401 (*andnot<mode>3): Likewise.
4402 (*<code><mode>3) <any_logic>: Likewise.
4403 (abs<mode>2): Likewise.
4404 (avx2_permvar<mode>): Likewise.
4405 (avx2_perm<mode>_1): Likewise.
4406 (*avx_vpermilp<mode>): Likewise.
4407 (avx_vpermilvar<mode>3): Likewise.
4408 (avx2_ashrv<mode>): Likewise.
4409 (avx2_<shift_insn>v<mode>): Likewise.
4410 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
4411 -mavx512cd.
4412 * doc/rtl.texi: Document XImode.
4413
dd5e8423
JL
44142013-08-21 Jeff Law <law@redhat.com>
4415
b9ebee5d
JL
4416 * tree-flow.h (register_jump_thread): Pass vector of edges
4417 instead of each important edge.
4418 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
4419 thread path into a vector and pass that to register_jump_thread.
4420 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
4421 passed in edge vector to the current 3-edge form.
4422
dd5e8423
JL
4423 Revert:
4424 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
4425
9bb6628e 4426 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
4427 delete_unmarked_insns removed anything.
4428
445dc8df
JR
44292013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
4430
4431 * reload.h (struct reg_equivs): Rename to ..
4432 (struct reg_equivs_s): .. this.
4433
e0df53dd
ML
44342013-08-20 Martin Liska <marxin.liska@gmail.com>
4435
4436 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
4437
e7d1d3eb
RO
44382013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4439
5339fc0c 4440 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 4441
5562e26e
JL
44422013-08-21 Jeff Law <law@redhat.com>
4443
4444 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
4445 simplify assignments too. If the RHS collapses to a singleton
4446 range, then return the value for the range.
4447
c7ecdec6
KY
44482013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
4449
4450 * config/i386/sse.md (V16): Rename to...
4451 (VMOVE): this.
4452 (mov<mode>): Update iterator name.
4453 (*mov<mode>_internal): Ditto.
4454 (push<mode>1): Ditto.
4455 (movmisalign<mode>): Ditto.
4456
bfa3b50a
JH
44572013-08-20 Jan Hubicka <jh@suse.cz>
4458
4459 PR bootstrap/58186
4460 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
4461 entry for direct edges.
4462 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
4463
6cd4d135
DM
44642013-08-20 David Malcolm <dmalcolm@redhat.com>
4465
4466 Revert my last two changes, r201865 and r201864:
4467
4468 Revert r201865:
4469 2013-08-20 David Malcolm <dmalcolm@redhat.com>
4470
4471 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
4472 instances can own GC refs.
4473
4474 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
4475 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
4476 (gcc::context::gt_pch_nx): Likewise.
4477 (gcc::context::gt_pch_nx): Likewise.
4478 * ggc.h (gt_ggc_mx <T>): New.
4479 (gt_pch_nx_with_op <T>): New.
4480 (gt_pch_nx <T>): New.
4481 * passes.c (opt_pass::gt_ggc_mx): New.
4482 (opt_pass::gt_pch_nx): New.
4483 (opt_pass::gt_pch_nx_with_op): New.
4484 (pass_manager::gt_ggc_mx): New.
4485 (pass_manager::gt_pch_nx): New.
4486 (pass_manager::gt_pch_nx_with_op): New.
4487 (pass_manager::operator new): Use
4488 ggc_internal_cleared_alloc_stat rather than xcalloc.
4489 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
4490 (pass_manager::gt_ggc_mx): New.
4491 (pass_manager::gt_pch_nx): New.
4492 (pass_manager::gt_pch_nx_with_op): New.
4493 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
4494 (opt_pass::operator new): New.
4495 (opt_pass::gt_ggc_mx): New.
4496 (opt_pass::gt_pch_nx): New.
4497 (opt_pass::gt_pch_nx_with_op): New.
4498
4499 Revert r201864:
4500 2013-08-20 David Malcolm <dmalcolm@redhat.com>
4501
4502 * Makefile.in (GTFILES): Add context.h.
4503 * context.c (gcc::context::operator new): New.
4504 (gcc::context::gt_ggc_mx): New.
4505 (gcc::context::gt_pch_nx): New.
4506 (gcc::context::gt_pch_nx): New.
4507 * context.h (gcc::context): Add GTY((user)) marking.
4508 (gcc::context::operator new): New.
4509 (gcc::context::gt_ggc_mx): New.
4510 (gcc::context::gt_pch_nx): New.
4511 (gcc::context::gt_pch_nx): New.
4512 (g): Add GTY marking.
4513 (gt_ggc_mx (gcc::context *)): New.
4514 (gt_pch_nx (gcc::context *)): New.
4515 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
4516 void *cookie)): New.
4517 * gengtype.c (open_base_files) <ifiles>: Add context.h.
4518
a046136a
AM
45192013-08-20 Alexey Makhalov <makhaloff@gmail.com>
4520
4521 * dce.c (fini_dce): Call df_analyze again just in case
4522 delete_unmarked_insns removed anything.
4523
67598720
TJ
45242013-08-20 Teresa Johnson <tejohnson@google.com>
4525
4526 PR rtl-optimizations/57451
4527 * final.c (reemit_insn_block_notes): Prevent lexical blocks
4528 from crossing split section boundaries.
4529
f8693faf
MGD
45302013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4531
4532 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
4533 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
4534 with MULTLIB_DEFAULTS.
4535
7d0b9a9c
NC
45362013-08-20 Nick Clifton <nickc@redhat.com>
4537
4538 * target.def (narrow_volatile_bitfield): Note that the default
4539 value is false, not !TARGET_STRICT_ALIGN.
4540 * doc/tm.texi: Regenerate.
4541
8edb8dc8
PC
45422013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
4543
4544 Fix LIB_SPEC for systems without libpthread.
4545
4546 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
4547 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
4548 for Android.
4549 * config/i386/linux-common.h: Likewise.
4550 * config/mips/linux-common.h: Likewise.
4551
12211b99 45522013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
4553
4554 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
4555 checks.
4556
e42c64cb
DM
45572013-08-20 David Malcolm <dmalcolm@redhat.com>
4558
4559 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
4560 instances can own GC refs.
4561
4562 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
4563 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
4564 (gcc::context::gt_pch_nx): Likewise.
4565 (gcc::context::gt_pch_nx): Likewise.
4566 * ggc.h (gt_ggc_mx <T>): New.
4567 (gt_pch_nx_with_op <T>): New.
4568 (gt_pch_nx <T>): New.
4569 * passes.c (opt_pass::gt_ggc_mx): New.
4570 (opt_pass::gt_pch_nx): New.
4571 (opt_pass::gt_pch_nx_with_op): New.
4572 (pass_manager::gt_ggc_mx): New.
4573 (pass_manager::gt_pch_nx): New.
4574 (pass_manager::gt_pch_nx_with_op): New.
4575 (pass_manager::operator new): Use
4576 ggc_internal_cleared_alloc_stat rather than xcalloc.
4577 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
4578 (pass_manager::gt_ggc_mx): New.
4579 (pass_manager::gt_pch_nx): New.
4580 (pass_manager::gt_pch_nx_with_op): New.
4581 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
4582 (opt_pass::operator new): New.
4583 (opt_pass::gt_ggc_mx): New.
4584 (opt_pass::gt_pch_nx): New.
4585 (opt_pass::gt_pch_nx_with_op): New.
4586
910c02a0
DM
45872013-08-20 David Malcolm <dmalcolm@redhat.com>
4588
4589 * Makefile.in (GTFILES): Add context.h.
4590 * context.c (gcc::context::operator new): New.
4591 (gcc::context::gt_ggc_mx): New.
4592 (gcc::context::gt_pch_nx): New.
4593 (gcc::context::gt_pch_nx): New.
4594 * context.h (gcc::context): Add GTY((user)) marking.
4595 (gcc::context::operator new): New.
4596 (gcc::context::gt_ggc_mx): New.
4597 (gcc::context::gt_pch_nx): New.
4598 (gcc::context::gt_pch_nx): New.
4599 (g): Add GTY marking.
4600 (gt_ggc_mx (gcc::context *)): New.
4601 (gt_pch_nx (gcc::context *)): New.
4602 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
4603 void *cookie)): New.
4604 * gengtype.c (open_base_files) <ifiles>: Add context.h.
4605
af4b4236
AM
46062013-08-20 Alan Modra <amodra@gmail.com>
4607
4608 PR target/57865
4609 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
4610 (rs6000_emit_epilogue): Likewise.
4611
12211b99 46122013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
4613
4614 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
4615
e2323f5b
PB
46162013-08-19 Peter Bergner <bergner@vnet.ibm.com>
4617 Jakub Jelinek <jakub@redhat.com>
4618
4619 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
4620 (BUILT_IN_FABSD64): Likewise.
4621 (BUILT_IN_FABSD128): Likewise.
4622 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
4623 (fold_builtin_1): Likewise.
5339fc0c
UB
4624 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
4625 destination and source operands.
e2323f5b
PB
4626 (*abstd2_fpr): Likewise.
4627 (*nabstd2_fpr): Likewise.
4628
cfbf3ee8
RS
46292013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
4630
4631 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
4632 JUMP_P and INSN_P.
4633
d3136aeb
AH
46342013-08-19 Aldy Hernandez <aldyh@redhat.com>
4635
4636 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
4637 incomplete.
4638
d33d9e47
AI
46392013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
4640
4641 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
4642 * builtins.c (default_libc_has_function): New.
4643 (gnu_libc_has_function): Ditto.
4644 (no_c99_libc_has_function): Ditto.
4645 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
4646 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
4647 (fold_builtin_sincos): Likewise.
4648 (fold_builtin_cexp): Likewise.
4649 * builtins.def (DEF_C94_BUILTIN): Likewise.
4650 (DEF_C99_BUILTIN): Likewise.
4651 (DEF_C99_C90RES_BUILTIN): Likewise.
4652 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
4653 definitions to using this define.
4654 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 4655 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
4656 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
4657 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
4658 * config/darwin.h: Ditto.
4659 * config/elfos.h: Ditto.
4660 * config/freebsd.h: Ditto.
4661 * config/i386/cygming.h: Ditto.
4662 * config/i386/djgpp.h: Ditto.
4663 * config/i386/i386-interix.h: Ditto.
4664 * config/microblaze/microblaze.h: Ditto.
4665 * config/mmix/mmix.h: Ditto.
4666 * config/gnu-user.h: Ditto.
4667 * config/ia64/hpux.h: Ditto.
4668 * config/pa/pa-hpux.h: Ditto.
4669 * config/pdp11/pdp11.h: Ditto.
4670 * config/picochip/picochip.h: Ditto.
4671 * config/linux.h: Ditto.
4672 * config/netbsd.h: Ditto.
4673 * config/openbsd.h: Ditto.
4674 * config/rs6000/aix43.h: Ditto.
4675 * config/rs6000/aix51.h: Ditto.
4676 * config/rs6000/aix52.h: Ditto.
4677 * config/rs6000/aix53.h: Ditto.
4678 * config/rs6000/aix61.h: Ditto.
4679 * config/rs6000/darwin.h: Ditto.
4680 * config/rs6000/linux.h: Ditto.
4681 * config/rs6000/linux64.h: Ditto.
4682 * config/s390/tpf.h: Ditto.
4683 * config/sol2-10.h: Ditto.
4684 * config/sol2.h: Ditto.
4685 * config/vms/vms.h: Ditto.
4686 * config/vxworks.h: Ditto.
4687 * config/linux-android.c (linux_android_libc_has_function):
4688 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
4689 * config/linux-protos.h (linux_android_libc_has_function):
4690 New declaration.
4691 * config/i386/i386.c (ix86_libc_has_function): New.
4692 * config/i386/i386-protos.h
4693 (ix86_libc_has_function): New declaration.
4694 * config/i386/i386.md
4695 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
4696 ("isinf<mode>2): Likewise.
4697 * convert.c (convert_to_integer): Using new target hook
4698 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
4699 TARGET_C99_FUNCTIONS.
4700 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
4701 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
4702 * coretypes.h (function_class): New enum for different
4703 classes of functions.
4704 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
4705 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
4706 (TARGET_HAS_SINCOS): Likewise.
4707 (TARGET_LIBC_HAS_FUNCTION): New.
4708 * doc/tm.texi: Regenerated.
4709 * targhooks.h (default_libc_has_function): New declaration.
4710 (no_c99_libc_has_function): Ditto.
4711 (gnu_libc_has_function): Ditto.
4712 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
4713 and TARGET_HAS_SINCOS.
4714
eefe9a99
JH
47152013-08-18 Jan Hubicka <jh@suse.cz>
4716
4717 * Makeifle-in (ipa-devirt.o): New.
4718 (GTFILES): Add ipa-utils.h and ipa-devirt.c
4719 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
4720 (analyze_functions): Look into possible targets of polymorphic call.
4721 * dumpfile.c (dump_files): Add type-inheritance dump.
4722 * dumpfile.h (TDI_inheritance): New.
4723 * ipa-devirt.c: New file.
4724 * ipa-utils.h (odr_type_d): Forward declare.
4725 (odr_type): New type.
4726 (build_type_inheritance_graph): Declare.
4727 (possible_polymorphic_call_targets): Declare and introduce inline
4728 variant when only edge is pased.
4729 (dump_possible_polymorphic_call_targets): Likewise.
4730 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
4731 * tree.c (type_in_anonymous_namespace_p): Break out from ...
4732 (types_same_for_odr): ... here.
4733 * tree.h (type_in_anonymous_namespace_p): Declare.
4734
29b89442
JJ
47352013-08-18 Jakub Jelinek <jakub@redhat.com>
4736
4737 PR tree-optimization/58006
4738 * tree-parloops.c (take_address_of): Don't ICE if get_name
4739 returns NULL.
4740 (eliminate_local_variables_stmt): Remove clobber stmts.
4741
4f219961
EB
47422013-08-18 Eric Botcazou <ebotcazou@adacore.com>
4743
4744 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
4745 error message is issued for an alias to undefined symbol.
4746
1d5755ef
JH
47472013-08-18 Jan Hubicka <jh@suse.cz>
4748
4749 * cgraph.c (cgraph_create_indirect_edge): Discover
4750 polymorphic calls and record basic info into indirect_info.
4751 * gimple-fold.c (gimple_fold_call): When doing BINFO based
4752 devirtualization, ignore objc function calls.
4753 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
4754 call with no parm index info.
4755 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
4756 * tree.c (virtual_method_call_p): New function.
4757 * tree.h (virtual_method_call_p): Declare.
4758
5945bebf
JH
47592013-08-16 Jan Hubicka <jh@suse.cz>
4760
4761 PR middle-end/58179
4762 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
4763
47fa5d23
DE
47642013-08-16 David Edelsohn <dje.gcc@gmail.com>
4765
4766 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
4767 attribute.
4768
c74f54a0
DM
47692013-08-16 David Malcolm <dmalcolm@redhat.com>
4770
4771 * gengtype.c (type_for_name): Add special-case support for
4772 locating types within the "gcc::" namespace.
4773 (open_base_files): Emit a "using namespace gcc" directive.
4774
f758f299
MM
47752013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
4776
4777 PR target/58160
4778 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
4779 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
4780
4781 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
4782 array instead of each individual operand as a separate argument.
4783 (emit_fusion_gpr_load): Likewise.
4784 (expand_fusion_gpr_load): Add new function declaration.
4785
4786 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
4787 signature to have the operands passed as an array, instead of as
4788 separate arguments. Allow ZERO_EXTEND to be in the memory
4789 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
4790 depend on the register live/dead flags when peepholes are run.
4791 (expand_fusion_gpr_load): New function to be called from the
4792 peephole2 pass, to change the register that addis sets to be the
4793 target register.
4794 (emit_fusion_gpr_load): Change the calling signature to have the
4795 operands passed as an array, instead of as separate arguments.
4796 Allow ZERO_EXTEND to be in the memory address, and also
4797 SIGN_EXTEND if -mpower8-fusion-sign.
4798
4799 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
4800 unspec enumeration.
4801 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
4802 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 4803 depend on the register live/dead state when the peephole pass is done.
f758f299 4804
158f4e4f
DM
48052013-08-16 David Malcolm <dmalcolm@redhat.com>
4806
4807 * gengtype.c (create_user_defined_type): Ensure that the kind
4808 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
4809 declaration is seen before the GTY((user)) marking.
4810
22f8cea5
BE
48112013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
4812
4813 PR target/58105
4814 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
4815
c49bdb2e
JH
48162013-08-16 Jan Hubicka <jh@suse.cz>
4817
4818 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
4819 arugment expected_type.
4820 (gimple_fold_call): Use it.
4821 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
4822 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 4823 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
4824 (try_make_edge_direct_virtual_call): Likewise.
4825 * tree.c (obj_type_ref_class): New.
4826 * tree.h (obj_type_ref_class): Use it.
4827
4042dca9
GDR
48282013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
4829
4830 * sched-vis.c (rtl_slim_pp_initialized): Remove.
4831 (rtl_slim_pp): Likewise.
4832 (init_rtl_slim_pretty_print): Likewise.
4833 (dump_value_slim): Don't call it. Use local pretty printer.
4834 (dump_insn_slim): Likewise.
4835 (dump_rtl_slim): Likewise.
4836 (str_pattern_slim): Likewise.
4837 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
4838 Simplify.
4839
7a460594
JJ
48402013-08-16 Jakub Jelinek <jakub@redhat.com>
4841
639dc669
JJ
4842 PR tree-optimization/58164
4843 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
4844 walk gimple_goto_dest of GIMPLE_GOTO.
4845
7a460594
JJ
4846 PR tree-optimization/58165
4847 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
4848 bi_call must be the last stmt in a bb, don't split_block, instead
4849 use fallthru edge from it and give up if there is none.
4850 Release conds vector when returning early.
4851
e3c02cc7
XDL
48522013-08-14 Xinliang David Li <davidxl@google.com>
4853
4854 * config/i386/i386.c (ix86_option_override_internal):
4855 Remove unused variable and field.
4856
6469da2c
BS
48572013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4858
4859 PR target/57949
22f8cea5 4860 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
4861 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
4862 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
4863 and Linux, correct BLKmode alignment when 128-bit alignment is
4864 required and compatibility flag is not set.
22f8cea5
BE
4865 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
4866 for zero-size arguments when compatibility flag is not set.
6469da2c 4867
4ca890e2
JJ
48682013-08-14 Jakub Jelinek <jakub@redhat.com>
4869
4870 PR tree-optimization/58145
4871 * tree-sra.c (build_ref_for_offset): If prev_base has
4872 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
4873
daec1759 48742013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 4875
daec1759 4876 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 4877 Fix uninitialized variable error.
daec1759 4878
3ad20bd4
XDL
48792013-08-14 Xinliang David Li <davidxl@google.com>
4880
4881 * config/i386/i386.opt: Define two new options.
4882 * config/i386/x86-tune.def: Add arch selector field in macros.
4883 * config/i386/i386.h: Adjust macro definition.
4884 * config/i386/i386.c (ix86_option_override_internal):
4885 Refactor the code.
4886 (parse_mtune_ctrl_str): New function.
4887 (set_ix86_tune_features): New function.
4888 (ix86_function_specific_restore): Call the new helper function.
4889
e839e2a9
AB
48902013-08-14 Andrey Belevantsev <abel@ispras.ru>
4891
4892 PR rtl-optimization/57662
4893 * sel-sched.c (code_motion_process_successors): When the current insn
4894 is removed after the recursive traversal, break from the loop.
4895 Add comments and debug printouts.
4896
27ed665f
JJ
48972013-08-14 Jakub Jelinek <jakub@redhat.com>
4898 Alexandre Oliva <aoliva@redhat.com>
4899
4900 PR target/58067
4901 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
4902 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
4903 there also UNSPEC_PLTOFF.
4904
61c1a609
MP
49052013-08-14 Marek Polacek <polacek@redhat.com>
4906
4907 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
4908 NUM_CONDITIONS bit positions.
4909
0e901c67
CC
49102013-08-13 Cary Coutant <ccoutant@google.com>
4911
4912 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
4913 (attr_checksum): Hash vector contents instead of pointer.
4914 (attr_checksum_ordered): Likewise.
4915
061eff6d
UB
49162013-08-13 Uros Bizjak <ubizjak@gmail.com>
4917
4918 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
4919 when Pmode != word_mode. Add length_address attribute.
4920 (sse3_monitor_<mode>): Merge from sse3_monitor and
4921 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
4922 Pmode != word_mode. Update insn length attribute.
4923 * config/i386/i386.c (ix86_option_override_internal): Update
4924 ix86_gen_monitor selection for merged sse3_monitor insn.
4925
8ec9249b
JB
49262013-08-13 Julian Brown <julian@codesourcery.com>
4927
4928 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
4929 perform invalid legitimization on greater-than-word-size modes for
4930 TARGET_E500_DOUBLE.
4931
761a8eb7
VM
49322013-08-13 Vladimir Makarov <vmakarov@redhat.com>
4933
4934 * ira.c (setup_class_translate_array): Use aclass instead of cl
4935 for classes not fully covered by allocno classes.
4936
99c2bd54
JJ
49372013-08-13 Jakub Jelinek <jakub@redhat.com>
4938
4029a5e0
JJ
4939 PR tree-optimization/57661
4940 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
4941 * tree-inline.c (tree_function_versioning): Initialize it.
4942 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
4943 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
4944 that is not being copied.
4945
99c2bd54
JJ
4946 PR sanitizer/56417
4947 * asan.c (instrument_strlen_call): Fix typo in comment.
4948 Use char * type even for the lhs of POINTER_PLUS_EXPR.
4949
b5f8f063
SE
49502013-08-13 Steve Ellcey <sellcey@mips.com>
4951
4952 * config/mips/mips.md (prefetch): Use lw instead of ld on
4953 loongson in 32bit mode.
4954
4de80584
NC
49552013-08-13 Nick Clifton <nickc@redhat.com>
4956
4957 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
4958
09ce3660
JH
49592013-08-13 Jan Hubicka <jh@suse.cz>
4960
4961 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
4962 introduced edge; fix typo in sanity check.
4963 (cgraph_resolve_speculation): Export; improve diagnostic.
4964 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
4965 speculation at type mismatch.
4966 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
4967 (cgraph_resolve_speculation): Declare.
4968 (symtab_can_be_discarded): New function.
4969 * value-prof.c (gimple_ic_transform): Remove actual transform code.
4970 * ipa-inline-transform.c (speculation_removed): New global var.
4971 (clone_inlined_nodes): See if speculation can be removed.
4972 (inline_call): If speculations was removed, we growths may not match.
4973 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
4974 (speculation_useful_p): New function.
4975 (resolve_noninline_speculation): New function.
4976 (inline_small_functions): Resolve useless speculations.
4977 * ipa-inline.h (speculation_useful_p): Declare
4978 * ipa.c (can_replace_by_local_alias): Simplify.
4979 (ipa_profile): Produce speculative calls in non-lto, too;
4980 add simple cost model; produce local aliases.
4981
f971dc24
DM
49822013-08-13 David Malcolm <dmalcolm@redhat.com>
4983
4984 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 4985 PASS_MANAGER_H.
f971dc24 4986
2e507b9a
PC
49872013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
4988
4989 * config/i386/i386.c (ix86_function_versions): Use error + inform.
4990
c97fd4b8
UB
49912013-08-12 Uros Bizjak <ubizjak@gmail.com>
4992
4993 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
4994 iterator instead of X87MODEF.
4995
49962013-08-12 Perez Read <netfirewall@gmail.com>
4997
4998 PR target/58132
4999 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
5000 operand 0 for intel asm alternative.
5001 (*movabs<mode>_2): Ditto for operand 1.
5002
f4f4204c
JG
50032013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
5004
5005 * config/aarch64/arm_none.h
5006 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
5007
133b1a8e
NC
50082013-08-12 Nick Clifton <nickc@redhat.com>
5009
5010 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
5011
15dd8b3a
YR
50122013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
5013
5014 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
5015 expand for QI/HImode operand to produce more effictive code for
5016 unsigned char(short) --> float(double) conversion.
5017
94109a6a
AM
50182013-08-12 Alexander Monakov <amonakov@ispras.ru>
5019
5020 * doc/invoke.texi: Mention that -ftls-model does not force the final
5021 model.
5022
4e115102
MP
50232013-08-12 Marek Polacek <polacek@redhat.com>
5024 Marc Glisse <marc.glisse@inria.fr>
5025
5026 PR tree-optimization/57980
5027 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
5028 when creating -1 constant.
5029
748d71f3
JH
50302013-08-10 Jan Hubicka <jh@suse.cz>
5031
1f97e193 5032 Workaround binutils PR14342.
748d71f3
JH
5033 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
5034 (gimple_init_edge_profiler): Likewise.
5035 (gimple_gen_ic_func_profiler): Likewise.
5036
5979aa54
JH
50372013-08-09 Jan Hubicka <jh@suse.cz>
5038
5039 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
5040
ad83025e
XDL
50412013-08-09 Xinliang David Li <davidxl@google.com>
5042
5043 * config/i386/stringop.def: New file.
5044 * config/i386/stringop.opt: New file.
5045 * config/i386/i386-opts.h: Include stringopt.def.
5046 * config/i386/i386.opt: Include stringopt.opt.
5047 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 5048 Override default size based stringop inline strategies with options.
ad83025e
XDL
5049 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
5050 New function.
5051
e59df5fd
JH
50522013-08-09 Jan Hubicka <jh@suse.cz>
5053
c97fd4b8 5054 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 5055
634ab819
JH
50562013-08-09 Jan Hubicka <jh@suse.cz>
5057
5058 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
5059 CGRAPH_FREQ_MAX.
5060 (dump_cgraph_node): Dump profile-id.
5061 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
5062 and common_target_probability.
5063 * lto-cgraph.c (lto_output_edge): Stream common targets.
5064 (lto_output_node): Stream profile ids.
5065 (input_node): Stream profile ids.
5066 (input_edge): Stream common targets.
5067 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
5068 * ipa.c: Include value-prof.h
5069 (ipa_profile_generate_summary): Turn indirect call statement histograms
5070 into common targets.
5071 (ipa_profile): Turn common targets into speculative edges.
5072
2fa3d31b
JH
50732013-08-09 Jan Hubicka <jh@suse.cz>
5074
5075 * cgraph.h (cgraph_node): Add profile_id.
5076 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 5077 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
5078 (del_node_map): Update.
5079 (find_func_by_funcdef_no): Replace by ...
5080 (find_func_by_profile_id): ... this one.
5081 (gimple_ic_transform): Do not remove useful histograms when
5082 speculation is not done; dump info when indirect call removal
5083 can happen at LTO.
5084 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
5085 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
5086 (__gcov_indirect_call_profiler_v2): .. this one.
5087 * profile.h (init_node_map): Update.
5088 * coverage.c (coverage_compute_profile_id): New function.
5089 * coverage.h (coverage_compute_profile_id): Declare.
5090 * tree-profile.c (init_ic_make_global_vars): Make
5091 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
5092 (gimple_init_edge_profiler): Update prototype of
5093 __gcov_indirect_call_profiler.
5094 (gimple_gen_ic_func_profiler): Simplify.
5095 (tree_profiling): Use init_node_map
5096
042ae7d2
JH
50972013-08-09 Jan Hubicka <jh@suse.cz>
5098
c97fd4b8
UB
5099 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
5100 non-speculative refs.
042ae7d2
JH
5101 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
5102 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
5103 (cgraph_set_call_stmt): Likewise.
5104 (cgraph_create_edge_1): Fix release checking compilatoin;
5105 clear lto_stmt_uid.
5106 (cgraph_free_edge): Free indirect info.
5107 (cgraph_turn_edge_to_speculative): New function.
5108 (cgraph_speculative_call_info): New function.
5109 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 5110 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
5111 (dump_cgraph_node): Dump speculation.
5112 (verify_edge_count_and_frequency): Accept speculative edges.
5113 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
5114 (verify_cgraph_node): Handle speculation.
5115 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
5116 (cgraph_set_call_stmt): Update prototype.
5117 (cgraph_make_edge_direct): Update prototype.
5118 (cgraph_speculative_call_info): Declare.
5119 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
5120 to change; update call of ipa_find_references.
5121 * ipa-ref.c (ipa_record_reference): Fix return value; clear
5122 lto_stmt_uid and speculative flags.
5123 (ipa_dump_references): Dump speculation.
5124 (ipa_clone_references): Clone speculative flag.
5125 (ipa_clone_referring): Likewise.
5126 (ipa_clone_ref): New function.
5127 (ipa_find_reference): Look into lto_stmt_uids
5128 (ipa_clear_stmts_in_references): Do not clear speculative calls.
5129 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
5130 (ipa_find_reference): Update declaration.
5131 (ipa_clone_ref): Declare.
5132 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
5133 stream speculative flag.
5134 (lto_output_ref): Stream statements uids and speculation.
5135 (input_ref): Likewise.
5136 (input_edge): Stream speuclation.
5137 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
5138 (cgraph_set_call_stmt_including_clones): Handle speculation.
5139 * ipa-inline.c (heap_edge_removal_hook): New function.
5140 (inline_small_functions): Register it.
5141 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
5142 also initialize refs.
5143 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
5144 edge to change.
5145 (try_make_edge_direct_simple_call): Likewise.
5146 (try_make_edge_direct_simple_call): Likewise.
5147 (update_indirect_edges_after_inlining): Likewise.
5148 (remove_described_reference): Look proper lto_stmt_uid.
5149 (propagate_controlled_uses): Likewise.
5150 (propagate_controlled_uses): Liekwise.
5151 * tree-inline.c (copy_bb): Copy speculative edges.
5152 (redirect_all_calls): New function.
c97fd4b8
UB
5153 (copy_cfg_body): Do redirection after loop info is updated.
5154 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 5155
aa1e10cc
JH
51562013-08-09 Jan Hubicka <jh@suse.cz>
5157
5158 * lto-streamer-out.c (output_function): Renumber PHIs.
5159 * lto-streamer-in.c (input_function): Likewise.
5160
66adb8eb
JG
51612013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
5162
5163 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
5164 (get_lane_unsigned): Likewise.
5165 (dup_lane_scalar): Likewise.
5166 (get_lane): enable for VALL.
5167 * config/aarch64/aarch64-simd.md
5168 (aarch64_dup_lane_scalar<mode>): Remove.
5169 (aarch64_get_lane_signed<mode>): Likewise.
5170 (aarch64_get_lane_unsigned<mode>): Likewise.
5171 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
5172 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
5173 (aarch64_get_lane<mode>): Enable for all vector modes.
5174 (aarch64_get_lanedi): Remove misleading constraints.
5175 * config/aarch64/arm_neon.h
5176 (__aarch64_vget_lane_any): Define.
5177 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
5178 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
5179 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
5180 * config/aarch64/iterators.md (VDQQH): New.
5181 (VDQQHS): Likewise.
5182 (vwcore): Likewise.
5183
1f65ae7a
EB
51842013-08-09 Eric Botcazou <ebotcazou@adacore.com>
5185
5186 * configure.ac: Add GAS check for LEON instructions on SPARC.
5187 * configure: Regenerate.
5188 * config.in: Likewise.
5189 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
5190 sparc*-*-* block.
5191 * config/sparc/sparc.opt (LEON, LEON3): New masks.
5192 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
5193 for LEON or LEON3.
5194 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
5195 (AS_LEON_FLAG): New macro.
5196 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
5197 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
5198 Deal with LEON and LEON3 for the memory model.
23a6cb78 5199 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
5200 (atomic_compare_and_swap<mode>_1): Likewise.
5201 (*atomic_compare_and_swap<mode>_1): Likewise.
5202
ff522f7f
ZC
52032013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
5204
5205 * config/arm/neon.md (vcond): Fix floating-point vector
5206 comparisons against 0.
5207
cb1cca12
VM
52082013-08-08 Vladimir Makarov <vmakarov@redhat.com>
5209
5210 * lra-constraints.c (emit_spill_move): Remove assert.
5211 (process_alt_operands): Add more debugging
5212 output. Increase reject for spilling into memory. Decrease
5213 reject for reloading scratch.
5214 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
5215
a3719e31
SE
52162013-08-08 Steve Ellcey <sellcey@mips.com>
5217
5218 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
5219 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
5220 micromips incompatible. Add nan2008.
5221 (MULTILIB_DIRNAMES): Add nan2008.
5222 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
5223 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
5224 and micromips incompatible. Add nan2008.
5225 (MULTILIB_DIRNAMES): Add nan2008.
5226 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
5227
f40423e2
RS
52282013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
5229
5230 PR rtl-optimization/58079
5231 * combine.c (combine_simplify_rtx): Avoid using SUBST if
5232 simplify_comparison has widened a comparison with an integer.
5233
869b9125
KT
52342013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5235
5236 * config/arm/neon.md (movmisalign<mode>): Disable when we
5237 don't allow unaligned accesses.
5238 (*movmisalign<mode>_neon_store): Likewise.
5239 (*movmisalign<mode>_neon_load): Likewise.
5240 (*movmisalign<mode>_neon_store): Likewise.
5241 (*movmisalign<mode>_neon_load): Likewise.
5242
71cafea9
JH
52432013-08-08 Jan Hubicka <jh@suse.cz>
5244
5245 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
5246 (make_pass_rebuild_cgraph_edges): Also clear references.
5247 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
5248 * ipa-inline-transform.c (inline_transform): Remove all references
5249 after inlining.
c97fd4b8
UB
5250 * cgraphunit.c (expand_function): Remove all references after
5251 expansion.
71cafea9
JH
5252 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
5253 (ipa_find_reference): Rewrite to iterator.
5254 (remove_stmt_references): Likewise.
5255 (ipa_clear_stmts_in_references): New function.
5256 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
5257 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
5258 clear references.
71cafea9
JH
5259 * ipa-split.c (split_function): Remove references in split function.
5260
27d2e612
RE
52612013-08-08 Richard Earnshaw <rearnsha@arm.com>
5262
5263 PR target/57431
1f65ae7a 5264 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
5265 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
5266
5efc661c
RE
52672013-08-08 Richard Earnshaw <rearnsha@arm.com>
5268
5269 PR target/56979
1f65ae7a 5270 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
5271 suggested mode for the assignment isn't compatible with the
5272 registers required.
5273
f276d31d
BE
52742013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
5275
5276 PR target/58065
5277 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
5278
4b8bc035
XDL
52792013-08-07 Xinliang David Li <davidxl@google.com>
5280
5281 * config/i386/i386.opt: New option -mtune-ctrl=.
5282 * config/i386/x86-tune.def: New file.
5283 * config/i386/i386.h: include x86-tune.def.
5284 * config/i386/i386.c (ix86_option_override_internal):
5285 Parsing -mtune-ctrl= option and set tune features.
5286
12211b99 52872013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
5288
5289 PR other/12081
03b0ee0a 5290 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
5291 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
5292 to gen_2arg_fn_t.
5293
5cf6635b
EB
52942013-08-07 Eric Botcazou <ebotcazou@adacore.com>
5295
5296 * rtl.h (update_alignments): Declare.
5297 * final.c (grow_label_align): New function extracted from...
5298 (shorten_branches): ...here. Call it.
5299 (update_alignments): New function.
5300 * reorg.c (sibling_labels): New variable.
5301 (get_label_before): Add SIBLING parameter. If it is non-zero, push
5302 the new label along with it onto the sibling_labels vector.
5303 (fill_simple_delay_slots): Adjust call to get_label_before.
5304 (fill_slots_from_thread): Likewise.
5305 (relax_delay_slots): Likewise.
5306 (make_return_insns): Likewise.
5307 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
5308
3c8ca1ab
EB
53092013-08-07 Eric Botcazou <ebotcazou@adacore.com>
5310
5311 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
5312 document its semantics.
5313 (diagnostic_report_diagnostic): Adjust accordingly.
5314
5ee5b32c
DM
53152013-08-07 David Malcolm <dmalcolm@redhat.com>
5316
03b0ee0a 5317 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
5318 (sparc_option_override): ...and port to new C++ pass API.
5319 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
5320
abd566fa
PB
53212013-08-07 Peter Bergner <bergner@vnet.ibm.com>
5322
5323 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
5324
2077db1b
CT
53252013-08-06 Caroline Tice <cmtice@google.com>
5326
5327 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
5328 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
5329 * tree-pass.h: Add pass_vtable_verify.
5330 * varasm.c (assemble_variable): Add code to properly set the comdat
5331 section and name for the .vtable_map_vars section.
5332 (assemble_vtyv_preinit_initializer): New function.
5333 (default_sectin_type_flags): Make sure .vtable_map_vars section has
5334 LINK_ONCE flag.
5335 * output.h: Add function decl for assemble_vtv_preinit_initializer.
5336 * vtable-verify.c: New file.
5337 * vtable-verify.h: New file.
5338 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
5339 initialiation levels.
5340 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
5341 * passes.def: Insert pass_vtable_verify.
5342 * aclocal.m4: Reorder includes.
5343 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
5344 -fvtv-counts options.
5345 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
5346 as appropriate, if -fvtable-verify=... is used.
5347 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
5348 -fvtable-verify=... is used.
5349 * Makefile.in (OBJS): Add vtable-verify.o to list.
5350 (vtable-verify.o): Add new build rule.
5351 (GTFILES): Add vtable-verify.c to list.
5352 * common.opt (fvtable-verify=): New flag.
5353 (vtv_priority): Values for fvtable-verify= flag.
5354 (fvtv-counts): New flag.
5355 (fvtv-debug): New flag.
5356 * tree.h (save_vtable_map_decl): New extern function decl.
5357
03085d1c
DM
53582013-08-07 David Malcolm <dmalcolm@redhat.com>
5359
5360 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
5361 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
5362 (pass_data_rl78_devirt): ...new pass_data instance and...
5363 (make_pass_rl78_devirt): ...new function.
5364 (rl78_asm_file_start): Port pass registration to new C++ API.
5365
05555c4a
DM
53662013-08-07 David Malcolm <dmalcolm@redhat.com>
5367
5368 * coretypes.h (rtl_opt_pass): Add.
5369 (gcc::context): Add.
5370 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
5371 (epiphany_init): Port to new C++ pass API.
5372 (epiphany_optimize_mode_switching): Likewise.
5373 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
5374 (pass_manager::get_pass_mode_switching): New.
5375 (pass_manager::get_pass_peephole2): New.
5376 * mode-switching.c (pass_mode_switching): Add clone method.
5377 * recog.c (pass_peephole2): Add clone method.
5378 (pass_split_all_insns): Add clone method.
5379
c5a12e26
DM
53802013-08-06 David Malcolm <dmalcolm@redhat.com>
5381
03b0ee0a
UB
5382 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
5383 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 5384
a2e2a668
JH
53852013-08-06 Jan Hubicka <jh@suse.cz>
5386
5387 * cgraph.c (cgraph_get_body): New function based on lto.c
5388 implementation.
5389 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
5390 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
5391 LTO paths.
a2e2a668
JH
5392 * cgraphunit.c (expand_function): Get body prior expanding.
5393 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
5394 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
5395 really need.
a2e2a668
JH
5396 * passes.c (do_per_function_toporder): Get body.
5397 * tree-inline.c (expand_call_inline): Get body prior inlining it.
5398 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
5399
15682f24
MJ
54002013-08-06 Martin Jambor <mjambor@suse.cz>
5401
5402 PR fortran/57987
5403 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
5404 is not re-finalized. Rename second parameter to no_collect.
5405
78f6dd68
MJ
54062013-08-06 Martin Jambor <mjambor@suse.cz>
5407
5408 PR middle-end/58041
5409 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
5410 MEM_REF has proper alignment information.
5411
12211b99 54122013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
5413
5414 PR other/12081
5415 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
5416 class insn_gen_fn.
5417 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
5418 rtx (*) (rtx, ...) with insn_gen_fn.
5419 * genoutput.c (output_insn_data): Cast gen_? function pointers to
5420 insn_gen_fn::stored_funcptr. Add initializer braces.
5421
8ac69a6c
DM
54222013-08-05 David Malcolm <dmalcolm@redhat.com>
5423
5424 Rewrite how instances of passes are cloned to remove assumptions
5425 about their sizes (thus allowing pass subclasses to have
5426 additional data fields, albeit non-GC-managed ones at this point).
5427
5428 * passes.c (make_pass_instance): Now that passes have clone
5429 methods, rewrite this function to eliminate XNEW and memcpy
5430 calls that used hardcoded sizes. Since this function no longer
5431 creates pass instances, rename it to...
03b0ee0a
UB
5432 (add_pass_instance): ...this. Document the old way that passes were
5433 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
5434 (next_pass_1): Add an initial_pass argument for use by
5435 add_pass_instance.
5436 (position_pass): When adding multiple instances of a pass, use
5437 the pass's clone method, rather than relying on the XNEW/memcpy
5438 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
5439 (pass_manager::pass_manager): When invoking next_pass_1, also supply
5440 the initial instance of the current pass within the pass manager.
8ac69a6c 5441
27a4cd48
DM
54422013-08-05 David Malcolm <dmalcolm@redhat.com>
5443
5444 This is the automated part of the conversion of passes from C
5445 structs to C++ classes.
5446
5447 Patch autogenerated by refactor_passes.py from
5448 https://github.com/davidmalcolm/gcc-refactoring-scripts
5449 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
5450
5451 * asan.c (pass_asan): Convert from a global struct to a subclass of
5452 gimple_opt_pass along with...
5453 (pass_data_asan): ...new pass_data instance and...
5454 (make_pass_asan): ...new function.
5455 (pass_asan_O0): Convert from a global struct to a subclass of
5456 gimple_opt_pass along with...
5457 (pass_data_asan_O0): ...new pass_data instance and...
5458 (make_pass_asan_O0): ...new function.
5459 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
5460 subclass of rtl_opt_pass along with...
5461 (pass_data_inc_dec): ...new pass_data instance and...
5462 (make_pass_inc_dec): ...new function.
5463 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
5464 a subclass of rtl_opt_pass along with...
5465 (pass_data_reorder_blocks): ...new pass_data instance and...
5466 (make_pass_reorder_blocks): ...new function.
5467 (pass_duplicate_computed_gotos): Convert from a global struct to a
5468 subclass of rtl_opt_pass along with...
5469 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
5470 (make_pass_duplicate_computed_gotos): ...new function.
5471 (pass_partition_blocks): Convert from a global struct to a subclass of
5472 rtl_opt_pass along with...
5473 (pass_data_partition_blocks): ...new pass_data instance and...
5474 (make_pass_partition_blocks): ...new function.
5475 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
5476 struct to a subclass of rtl_opt_pass along with...
5477 (pass_data_branch_target_load_optimize1): ...new pass_data instance
5478 and...
5479 (make_pass_branch_target_load_optimize1): ...new function.
5480 (pass_branch_target_load_optimize2): Convert from a global struct to a
5481 subclass of rtl_opt_pass along with...
5482 (pass_data_branch_target_load_optimize2): ...new pass_data instance
5483 and...
5484 (make_pass_branch_target_load_optimize2): ...new function.
5485 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
5486 of rtl_opt_pass along with...
5487 (pass_data_jump): ...new pass_data instance and...
5488 (make_pass_jump): ...new function.
5489 (pass_jump2): Convert from a global struct to a subclass of
5490 rtl_opt_pass along with...
5491 (pass_data_jump2): ...new pass_data instance and...
5492 (make_pass_jump2): ...new function.
5493 * cfgexpand.c (pass_expand): Convert from a global struct to a
5494 subclass of rtl_opt_pass along with...
5495 (pass_data_expand): ...new pass_data instance and...
5496 (make_pass_expand): ...new function.
5497 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
5498 of rtl_opt_pass along with...
5499 (pass_data_free_cfg): ...new pass_data instance and...
5500 (make_pass_free_cfg): ...new function.
5501 (pass_into_cfg_layout_mode): Convert from a global struct to a
5502 subclass of rtl_opt_pass along with...
5503 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
5504 (make_pass_into_cfg_layout_mode): ...new function.
5505 (pass_outof_cfg_layout_mode): Convert from a global struct to a
5506 subclass of rtl_opt_pass along with...
5507 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
5508 (make_pass_outof_cfg_layout_mode): ...new function.
5509 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
5510 struct to a subclass of gimple_opt_pass along with...
5511 (pass_data_build_cgraph_edges): ...new pass_data instance and...
5512 (make_pass_build_cgraph_edges): ...new function.
5513 (pass_rebuild_cgraph_edges): Convert from a global struct to a
5514 subclass of gimple_opt_pass along with...
5515 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
5516 (make_pass_rebuild_cgraph_edges): ...new function.
5517 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
5518 subclass of gimple_opt_pass along with...
5519 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
5520 and...
5521 (make_pass_remove_cgraph_callee_edges): ...new function.
5522 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
5523 struct to a subclass of rtl_opt_pass along with...
5524 (pass_data_stack_adjustments): ...new pass_data instance and...
5525 (make_pass_stack_adjustments): ...new function.
5526 * combine.c (pass_combine): Convert from a global struct to a subclass
5527 of rtl_opt_pass along with...
5528 (pass_data_combine): ...new pass_data instance and...
5529 (make_pass_combine): ...new function.
5530 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
5531 global struct to a subclass of rtl_opt_pass along with...
5532 (pass_data_compare_elim_after_reload): ...new pass_data instance
5533 and...
5534 (make_pass_compare_elim_after_reload): ...new function.
5535 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
5536 of rtl_opt_pass along with...
5537 (pass_data_rtl_cprop): ...new pass_data instance and...
5538 (make_pass_rtl_cprop): ...new function.
5539 * cse.c (pass_cse): Convert from a global struct to a subclass of
5540 rtl_opt_pass along with...
5541 (pass_data_cse): ...new pass_data instance and...
5542 (make_pass_cse): ...new function.
5543 (pass_cse2): Convert from a global struct to a subclass of
5544 rtl_opt_pass along with...
5545 (pass_data_cse2): ...new pass_data instance and...
5546 (make_pass_cse2): ...new function.
5547 (pass_cse_after_global_opts): Convert from a global struct to a
5548 subclass of rtl_opt_pass along with...
5549 (pass_data_cse_after_global_opts): ...new pass_data instance and...
5550 (make_pass_cse_after_global_opts): ...new function.
5551 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
5552 of rtl_opt_pass along with...
5553 (pass_data_ud_rtl_dce): ...new pass_data instance and...
5554 (make_pass_ud_rtl_dce): ...new function.
5555 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
5556 rtl_opt_pass along with...
5557 (pass_data_fast_rtl_dce): ...new pass_data instance and...
5558 (make_pass_fast_rtl_dce): ...new function.
5559 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
5560 a subclass of rtl_opt_pass along with...
5561 (pass_data_df_initialize_opt): ...new pass_data instance and...
5562 (make_pass_df_initialize_opt): ...new function.
5563 (pass_df_initialize_no_opt): Convert from a global struct to a
5564 subclass of rtl_opt_pass along with...
5565 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
5566 (make_pass_df_initialize_no_opt): ...new function.
5567 (pass_df_finish): Convert from a global struct to a subclass of
5568 rtl_opt_pass along with...
5569 (pass_data_df_finish): ...new pass_data instance and...
5570 (make_pass_df_finish): ...new function.
5571 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
5572 rtl_opt_pass along with...
5573 (pass_data_rtl_dse1): ...new pass_data instance and...
5574 (make_pass_rtl_dse1): ...new function.
5575 (pass_rtl_dse2): Convert from a global struct to a subclass of
5576 rtl_opt_pass along with...
5577 (pass_data_rtl_dse2): ...new pass_data instance and...
5578 (make_pass_rtl_dse2): ...new function.
5579 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
5580 subclass of rtl_opt_pass along with...
5581 (pass_data_dwarf2_frame): ...new pass_data instance and...
5582 (make_pass_dwarf2_frame): ...new function.
5583 * except.c (pass_set_nothrow_function_flags): Convert from a global
5584 struct to a subclass of rtl_opt_pass along with...
5585 (pass_data_set_nothrow_function_flags): ...new pass_data instance
5586 and...
5587 (make_pass_set_nothrow_function_flags): ...new function.
5588 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
5589 subclass of rtl_opt_pass along with...
5590 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
5591 and...
5592 (make_pass_convert_to_eh_region_ranges): ...new function.
5593 * final.c (pass_compute_alignments): Convert from a global struct to a
5594 subclass of rtl_opt_pass along with...
5595 (pass_data_compute_alignments): ...new pass_data instance and...
5596 (make_pass_compute_alignments): ...new function.
5597 (pass_final): Convert from a global struct to a subclass of
5598 rtl_opt_pass along with...
5599 (pass_data_final): ...new pass_data instance and...
5600 (make_pass_final): ...new function.
5601 (pass_shorten_branches): Convert from a global struct to a subclass of
5602 rtl_opt_pass along with...
5603 (pass_data_shorten_branches): ...new pass_data instance and...
5604 (make_pass_shorten_branches): ...new function.
5605 (pass_clean_state): Convert from a global struct to a subclass of
5606 rtl_opt_pass along with...
5607 (pass_data_clean_state): ...new pass_data instance and...
5608 (make_pass_clean_state): ...new function.
5609 * function.c (pass_instantiate_virtual_regs): Convert from a global
5610 struct to a subclass of rtl_opt_pass along with...
5611 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
5612 (make_pass_instantiate_virtual_regs): ...new function.
5613 (pass_leaf_regs): Convert from a global struct to a subclass of
5614 rtl_opt_pass along with...
5615 (pass_data_leaf_regs): ...new pass_data instance and...
5616 (make_pass_leaf_regs): ...new function.
5617 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
5618 subclass of rtl_opt_pass along with...
5619 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
5620 and...
5621 (make_pass_thread_prologue_and_epilogue): ...new function.
5622 (pass_match_asm_constraints): Convert from a global struct to a
5623 subclass of rtl_opt_pass along with...
5624 (pass_data_match_asm_constraints): ...new pass_data instance and...
5625 (make_pass_match_asm_constraints): ...new function.
5626 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
5627 subclass of rtl_opt_pass along with...
5628 (pass_data_rtl_fwprop): ...new pass_data instance and...
5629 (make_pass_rtl_fwprop): ...new function.
5630 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
5631 rtl_opt_pass along with...
5632 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
5633 (make_pass_rtl_fwprop_addr): ...new function.
5634 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
5635 rtl_opt_pass along with...
5636 (pass_data_rtl_pre): ...new pass_data instance and...
5637 (make_pass_rtl_pre): ...new function.
5638 (pass_rtl_hoist): Convert from a global struct to a subclass of
5639 rtl_opt_pass along with...
5640 (pass_data_rtl_hoist): ...new pass_data instance and...
5641 (make_pass_rtl_hoist): ...new function.
5642 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
5643 subclass of gimple_opt_pass along with...
5644 (pass_data_lower_cf): ...new pass_data instance and...
5645 (make_pass_lower_cf): ...new function.
5646 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
5647 from a global struct to a subclass of gimple_opt_pass along with...
5648 (pass_data_strength_reduction): ...new pass_data instance and...
5649 (make_pass_strength_reduction): ...new function.
5650 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
5651 of rtl_opt_pass along with...
5652 (pass_data_rtl_ifcvt): ...new pass_data instance and...
5653 (make_pass_rtl_ifcvt): ...new function.
5654 (pass_if_after_combine): Convert from a global struct to a subclass of
5655 rtl_opt_pass along with...
5656 (pass_data_if_after_combine): ...new pass_data instance and...
5657 (make_pass_if_after_combine): ...new function.
5658 (pass_if_after_reload): Convert from a global struct to a subclass of
5659 rtl_opt_pass along with...
5660 (pass_data_if_after_reload): ...new pass_data instance and...
5661 (make_pass_if_after_reload): ...new function.
5662 * init-regs.c (pass_initialize_regs): Convert from a global struct to
5663 a subclass of rtl_opt_pass along with...
5664 (pass_data_initialize_regs): ...new pass_data instance and...
5665 (make_pass_initialize_regs): ...new function.
5666 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
5667 of ipa_opt_pass_d along with...
5668 (pass_data_ipa_cp): ...new pass_data instance and...
5669 (make_pass_ipa_cp): ...new function.
5670 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
5671 global struct to a subclass of gimple_opt_pass along with...
5672 (pass_data_inline_parameters): ...new pass_data instance and...
5673 (make_pass_inline_parameters): ...new function.
5674 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
5675 subclass of gimple_opt_pass along with...
5676 (pass_data_early_inline): ...new pass_data instance and...
5677 (make_pass_early_inline): ...new function.
5678 (pass_ipa_inline): Convert from a global struct to a subclass of
5679 ipa_opt_pass_d along with...
5680 (pass_data_ipa_inline): ...new pass_data instance and...
5681 (make_pass_ipa_inline): ...new function.
5682 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
5683 struct to a subclass of gimple_opt_pass along with...
5684 (pass_data_local_pure_const): ...new pass_data instance and...
5685 (make_pass_local_pure_const): ...new function.
5686 (pass_ipa_pure_const): Convert from a global struct to a subclass of
5687 ipa_opt_pass_d along with...
5688 (pass_data_ipa_pure_const): ...new pass_data instance and...
5689 (make_pass_ipa_pure_const): ...new function.
5690 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
5691 to a subclass of ipa_opt_pass_d along with...
5692 (pass_data_ipa_reference): ...new pass_data instance and...
5693 (make_pass_ipa_reference): ...new function.
5694 * ipa-split.c (pass_split_functions): Convert from a global struct to
5695 a subclass of gimple_opt_pass along with...
5696 (pass_data_split_functions): ...new pass_data instance and...
5697 (make_pass_split_functions): ...new function.
5698 (pass_feedback_split_functions): Convert from a global struct to a
5699 subclass of gimple_opt_pass along with...
5700 (pass_data_feedback_split_functions): ...new pass_data instance and...
5701 (make_pass_feedback_split_functions): ...new function.
5702 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
5703 global struct to a subclass of simple_ipa_opt_pass along with...
5704 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
5705 instance and...
5706 (make_pass_ipa_function_and_variable_visibility): ...new function.
5707 (pass_ipa_free_inline_summary): Convert from a global struct to a
5708 subclass of simple_ipa_opt_pass along with...
5709 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
5710 (make_pass_ipa_free_inline_summary): ...new function.
5711 (pass_ipa_whole_program_visibility): Convert from a global struct to a
5712 subclass of ipa_opt_pass_d along with...
5713 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
5714 and...
5715 (make_pass_ipa_whole_program_visibility): ...new function.
5716 (pass_ipa_profile): Convert from a global struct to a subclass of
5717 ipa_opt_pass_d along with...
5718 (pass_data_ipa_profile): ...new pass_data instance and...
5719 (make_pass_ipa_profile): ...new function.
5720 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
5721 ipa_opt_pass_d along with...
5722 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
5723 (make_pass_ipa_cdtor_merge): ...new function.
5724 * ira.c (pass_ira): Convert from a global struct to a subclass of
5725 rtl_opt_pass along with...
5726 (pass_data_ira): ...new pass_data instance and...
5727 (make_pass_ira): ...new function.
5728 (pass_reload): Convert from a global struct to a subclass of
5729 rtl_opt_pass along with...
5730 (pass_data_reload): ...new pass_data instance and...
5731 (make_pass_reload): ...new function.
5732 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
5733 subclass of rtl_opt_pass along with...
5734 (pass_data_cleanup_barriers): ...new pass_data instance and...
5735 (make_pass_cleanup_barriers): ...new function.
5736 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
5737 of rtl_opt_pass along with...
5738 (pass_data_loop2): ...new pass_data instance and...
5739 (make_pass_loop2): ...new function.
5740 (pass_rtl_loop_init): Convert from a global struct to a subclass of
5741 rtl_opt_pass along with...
5742 (pass_data_rtl_loop_init): ...new pass_data instance and...
5743 (make_pass_rtl_loop_init): ...new function.
5744 (pass_rtl_loop_done): Convert from a global struct to a subclass of
5745 rtl_opt_pass along with...
5746 (pass_data_rtl_loop_done): ...new pass_data instance and...
5747 (make_pass_rtl_loop_done): ...new function.
5748 (pass_rtl_move_loop_invariants): Convert from a global struct to a
5749 subclass of rtl_opt_pass along with...
5750 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
5751 (make_pass_rtl_move_loop_invariants): ...new function.
5752 (pass_rtl_unswitch): Convert from a global struct to a subclass of
5753 rtl_opt_pass along with...
5754 (pass_data_rtl_unswitch): ...new pass_data instance and...
5755 (make_pass_rtl_unswitch): ...new function.
5756 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
5757 subclass of rtl_opt_pass along with...
5758 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
5759 and...
5760 (make_pass_rtl_unroll_and_peel_loops): ...new function.
5761 (pass_rtl_doloop): Convert from a global struct to a subclass of
5762 rtl_opt_pass along with...
5763 (pass_data_rtl_doloop): ...new pass_data instance and...
5764 (make_pass_rtl_doloop): ...new function.
5765 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
5766 a subclass of rtl_opt_pass along with...
5767 (pass_data_lower_subreg): ...new pass_data instance and...
5768 (make_pass_lower_subreg): ...new function.
5769 (pass_lower_subreg2): Convert from a global struct to a subclass of
5770 rtl_opt_pass along with...
5771 (pass_data_lower_subreg2): ...new pass_data instance and...
5772 (make_pass_lower_subreg2): ...new function.
5773 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
5774 struct to a subclass of ipa_opt_pass_d along with...
5775 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
5776 (make_pass_ipa_lto_gimple_out): ...new function.
5777 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
5778 of ipa_opt_pass_d along with...
5779 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
5780 (make_pass_ipa_lto_finish_out): ...new function.
5781 * mode-switching.c (pass_mode_switching): Convert from a global struct
5782 to a subclass of rtl_opt_pass along with...
5783 (pass_data_mode_switching): ...new pass_data instance and...
5784 (make_pass_mode_switching): ...new function.
5785 * modulo-sched.c (pass_sms): Convert from a global struct to a
5786 subclass of rtl_opt_pass along with...
5787 (pass_data_sms): ...new pass_data instance and...
5788 (make_pass_sms): ...new function.
5789 * omp-low.c (pass_expand_omp): Convert from a global struct to a
5790 subclass of gimple_opt_pass along with...
5791 (pass_data_expand_omp): ...new pass_data instance and...
5792 (make_pass_expand_omp): ...new function.
5793 (pass_lower_omp): Convert from a global struct to a subclass of
5794 gimple_opt_pass along with...
5795 (pass_data_lower_omp): ...new pass_data instance and...
5796 (make_pass_lower_omp): ...new function.
5797 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
5798 of gimple_opt_pass along with...
5799 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
5800 (make_pass_diagnose_omp_blocks): ...new function.
5801 * passes.c (pass_early_local_passes): Convert from a global struct to
5802 a subclass of simple_ipa_opt_pass along with...
5803 (pass_data_early_local_passes): ...new pass_data instance and...
5804 (make_pass_early_local_passes): ...new function.
5805 (pass_all_early_optimizations): Convert from a global struct to a
5806 subclass of gimple_opt_pass along with...
5807 (pass_data_all_early_optimizations): ...new pass_data instance and...
5808 (make_pass_all_early_optimizations): ...new function.
5809 (pass_all_optimizations): Convert from a global struct to a subclass
5810 of gimple_opt_pass along with...
5811 (pass_data_all_optimizations): ...new pass_data instance and...
5812 (make_pass_all_optimizations): ...new function.
5813 (pass_all_optimizations_g): Convert from a global struct to a subclass
5814 of gimple_opt_pass along with...
5815 (pass_data_all_optimizations_g): ...new pass_data instance and...
5816 (make_pass_all_optimizations_g): ...new function.
5817 (pass_rest_of_compilation): Convert from a global struct to a subclass
5818 of rtl_opt_pass along with...
5819 (pass_data_rest_of_compilation): ...new pass_data instance and...
5820 (make_pass_rest_of_compilation): ...new function.
5821 (pass_postreload): Convert from a global struct to a subclass of
5822 rtl_opt_pass along with...
5823 (pass_data_postreload): ...new pass_data instance and...
5824 (make_pass_postreload): ...new function.
5825 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
5826 subclass of rtl_opt_pass along with...
5827 (pass_data_gcse2): ...new pass_data instance and...
5828 (make_pass_gcse2): ...new function.
5829 * postreload.c (pass_postreload_cse): Convert from a global struct to
5830 a subclass of rtl_opt_pass along with...
5831 (pass_data_postreload_cse): ...new pass_data instance and...
5832 (make_pass_postreload_cse): ...new function.
5833 * predict.c (pass_profile): Convert from a global struct to a subclass
5834 of gimple_opt_pass along with...
5835 (pass_data_profile): ...new pass_data instance and...
5836 (make_pass_profile): ...new function.
5837 (pass_strip_predict_hints): Convert from a global struct to a subclass
5838 of gimple_opt_pass along with...
5839 (pass_data_strip_predict_hints): ...new pass_data instance and...
5840 (make_pass_strip_predict_hints): ...new function.
5841 * recog.c (pass_peephole2): Convert from a global struct to a subclass
5842 of rtl_opt_pass along with...
5843 (pass_data_peephole2): ...new pass_data instance and...
5844 (make_pass_peephole2): ...new function.
5845 (pass_split_all_insns): Convert from a global struct to a subclass of
5846 rtl_opt_pass along with...
5847 (pass_data_split_all_insns): ...new pass_data instance and...
5848 (make_pass_split_all_insns): ...new function.
5849 (pass_split_after_reload): Convert from a global struct to a subclass
5850 of rtl_opt_pass along with...
5851 (pass_data_split_after_reload): ...new pass_data instance and...
5852 (make_pass_split_after_reload): ...new function.
5853 (pass_split_before_regstack): Convert from a global struct to a
5854 subclass of rtl_opt_pass along with...
5855 (pass_data_split_before_regstack): ...new pass_data instance and...
5856 (make_pass_split_before_regstack): ...new function.
5857 (pass_split_before_sched2): Convert from a global struct to a subclass
5858 of rtl_opt_pass along with...
5859 (pass_data_split_before_sched2): ...new pass_data instance and...
5860 (make_pass_split_before_sched2): ...new function.
5861 (pass_split_for_shorten_branches): Convert from a global struct to a
5862 subclass of rtl_opt_pass along with...
5863 (pass_data_split_for_shorten_branches): ...new pass_data instance
5864 and...
5865 (make_pass_split_for_shorten_branches): ...new function.
5866 * ree.c (pass_ree): Convert from a global struct to a subclass of
5867 rtl_opt_pass along with...
5868 (pass_data_ree): ...new pass_data instance and...
5869 (make_pass_ree): ...new function.
5870 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
5871 subclass of rtl_opt_pass along with...
5872 (pass_data_stack_regs): ...new pass_data instance and...
5873 (make_pass_stack_regs): ...new function.
5874 (pass_stack_regs_run): Convert from a global struct to a subclass of
5875 rtl_opt_pass along with...
5876 (pass_data_stack_regs_run): ...new pass_data instance and...
5877 (make_pass_stack_regs_run): ...new function.
5878 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
5879 subclass of rtl_opt_pass along with...
5880 (pass_data_cprop_hardreg): ...new pass_data instance and...
5881 (make_pass_cprop_hardreg): ...new function.
5882 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
5883 subclass of rtl_opt_pass along with...
5884 (pass_data_reginfo_init): ...new pass_data instance and...
5885 (make_pass_reginfo_init): ...new function.
5886 * regmove.c (pass_regmove): Convert from a global struct to a subclass
5887 of rtl_opt_pass along with...
5888 (pass_data_regmove): ...new pass_data instance and...
5889 (make_pass_regmove): ...new function.
5890 * regrename.c (pass_regrename): Convert from a global struct to a
5891 subclass of rtl_opt_pass along with...
5892 (pass_data_regrename): ...new pass_data instance and...
5893 (make_pass_regrename): ...new function.
5894 * reorg.c (pass_delay_slots): Convert from a global struct to a
5895 subclass of rtl_opt_pass along with...
5896 (pass_data_delay_slots): ...new pass_data instance and...
5897 (make_pass_delay_slots): ...new function.
5898 (pass_machine_reorg): Convert from a global struct to a subclass of
5899 rtl_opt_pass along with...
5900 (pass_data_machine_reorg): ...new pass_data instance and...
5901 (make_pass_machine_reorg): ...new function.
5902 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
5903 of rtl_opt_pass along with...
5904 (pass_data_sched): ...new pass_data instance and...
5905 (make_pass_sched): ...new function.
5906 (pass_sched2): Convert from a global struct to a subclass of
5907 rtl_opt_pass along with...
5908 (pass_data_sched2): ...new pass_data instance and...
5909 (make_pass_sched2): ...new function.
5910 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
5911 to a subclass of rtl_opt_pass along with...
5912 (pass_data_stack_ptr_mod): ...new pass_data instance and...
5913 (make_pass_stack_ptr_mod): ...new function.
5914 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
5915 to a subclass of rtl_opt_pass along with...
5916 (pass_data_rtl_store_motion): ...new pass_data instance and...
5917 (make_pass_rtl_store_motion): ...new function.
5918 * tracer.c (pass_tracer): Convert from a global struct to a subclass
5919 of gimple_opt_pass along with...
5920 (pass_data_tracer): ...new pass_data instance and...
5921 (make_pass_tracer): ...new function.
5922 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
5923 to a subclass of gimple_opt_pass along with...
5924 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
5925 (make_pass_diagnose_tm_blocks): ...new function.
5926 (pass_lower_tm): Convert from a global struct to a subclass of
5927 gimple_opt_pass along with...
5928 (pass_data_lower_tm): ...new pass_data instance and...
5929 (make_pass_lower_tm): ...new function.
5930 (pass_tm_init): Convert from a global struct to a subclass of
5931 gimple_opt_pass along with...
5932 (pass_data_tm_init): ...new pass_data instance and...
5933 (make_pass_tm_init): ...new function.
5934 (pass_tm_mark): Convert from a global struct to a subclass of
5935 gimple_opt_pass along with...
5936 (pass_data_tm_mark): ...new pass_data instance and...
5937 (make_pass_tm_mark): ...new function.
5938 (pass_tm_edges): Convert from a global struct to a subclass of
5939 gimple_opt_pass along with...
5940 (pass_data_tm_edges): ...new pass_data instance and...
5941 (make_pass_tm_edges): ...new function.
5942 (pass_tm_memopt): Convert from a global struct to a subclass of
5943 gimple_opt_pass along with...
5944 (pass_data_tm_memopt): ...new pass_data instance and...
5945 (make_pass_tm_memopt): ...new function.
5946 (pass_ipa_tm): Convert from a global struct to a subclass of
5947 simple_ipa_opt_pass along with...
5948 (pass_data_ipa_tm): ...new pass_data instance and...
5949 (make_pass_ipa_tm): ...new function.
5950 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
5951 subclass of gimple_opt_pass along with...
5952 (pass_data_call_cdce): ...new pass_data instance and...
5953 (make_pass_call_cdce): ...new function.
5954 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
5955 subclass of gimple_opt_pass along with...
5956 (pass_data_build_cfg): ...new pass_data instance and...
5957 (make_pass_build_cfg): ...new function.
5958 (pass_split_crit_edges): Convert from a global struct to a subclass of
5959 gimple_opt_pass along with...
5960 (pass_data_split_crit_edges): ...new pass_data instance and...
5961 (make_pass_split_crit_edges): ...new function.
5962 (pass_warn_function_return): Convert from a global struct to a
5963 subclass of gimple_opt_pass along with...
5964 (pass_data_warn_function_return): ...new pass_data instance and...
5965 (make_pass_warn_function_return): ...new function.
5966 (pass_warn_function_noreturn): Convert from a global struct to a
5967 subclass of gimple_opt_pass along with...
5968 (pass_data_warn_function_noreturn): ...new pass_data instance and...
5969 (make_pass_warn_function_noreturn): ...new function.
5970 (pass_warn_unused_result): Convert from a global struct to a subclass
5971 of gimple_opt_pass along with...
5972 (pass_data_warn_unused_result): ...new pass_data instance and...
5973 (make_pass_warn_unused_result): ...new function.
5974 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
5975 a subclass of gimple_opt_pass along with...
5976 (pass_data_merge_phi): ...new pass_data instance and...
5977 (make_pass_merge_phi): ...new function.
5978 * tree-complex.c (pass_lower_complex): Convert from a global struct to
5979 a subclass of gimple_opt_pass along with...
5980 (pass_data_lower_complex): ...new pass_data instance and...
5981 (make_pass_lower_complex): ...new function.
5982 (pass_lower_complex_O0): Convert from a global struct to a subclass of
5983 gimple_opt_pass along with...
5984 (pass_data_lower_complex_O0): ...new pass_data instance and...
5985 (make_pass_lower_complex_O0): ...new function.
5986 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
5987 subclass of gimple_opt_pass along with...
5988 (pass_data_lower_eh): ...new pass_data instance and...
5989 (make_pass_lower_eh): ...new function.
5990 (pass_refactor_eh): Convert from a global struct to a subclass of
5991 gimple_opt_pass along with...
5992 (pass_data_refactor_eh): ...new pass_data instance and...
5993 (make_pass_refactor_eh): ...new function.
5994 (pass_lower_resx): Convert from a global struct to a subclass of
5995 gimple_opt_pass along with...
5996 (pass_data_lower_resx): ...new pass_data instance and...
5997 (make_pass_lower_resx): ...new function.
5998 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
5999 of gimple_opt_pass along with...
6000 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
6001 (make_pass_lower_eh_dispatch): ...new function.
6002 (pass_cleanup_eh): Convert from a global struct to a subclass of
6003 gimple_opt_pass along with...
6004 (pass_data_cleanup_eh): ...new pass_data instance and...
6005 (make_pass_cleanup_eh): ...new function.
6006 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
6007 to a subclass of simple_ipa_opt_pass along with...
6008 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
6009 (make_pass_ipa_lower_emutls): ...new function.
6010 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
6011 a subclass of gimple_opt_pass along with...
6012 (pass_data_if_conversion): ...new pass_data instance and...
6013 (make_pass_if_conversion): ...new function.
6014 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
6015 subclass of gimple_opt_pass along with...
6016 (pass_data_build_ssa): ...new pass_data instance and...
6017 (make_pass_build_ssa): ...new function.
6018 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
6019 global struct to a subclass of gimple_opt_pass along with...
6020 (pass_data_loop_distribution): ...new pass_data instance and...
6021 (make_pass_loop_distribution): ...new function.
6022 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
6023 subclass of gimple_opt_pass along with...
6024 (pass_data_mudflap_1): ...new pass_data instance and...
6025 (make_pass_mudflap_1): ...new function.
6026 (pass_mudflap_2): Convert from a global struct to a subclass of
6027 gimple_opt_pass along with...
6028 (pass_data_mudflap_2): ...new pass_data instance and...
6029 (make_pass_mudflap_2): ...new function.
6030 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
6031 subclass of gimple_opt_pass along with...
6032 (pass_data_mudflap_1): ...new pass_data instance and...
6033 (make_pass_mudflap_1): ...new function.
6034 (pass_mudflap_2): Convert from a global struct to a subclass of
6035 gimple_opt_pass along with...
6036 (pass_data_mudflap_2): ...new pass_data instance and...
6037 (make_pass_mudflap_2): ...new function.
6038 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
6039 gimple_opt_pass along with...
6040 (pass_data_nrv): ...new pass_data instance and...
6041 (make_pass_nrv): ...new function.
6042 (pass_return_slot): Convert from a global struct to a subclass of
6043 gimple_opt_pass along with...
6044 (pass_data_return_slot): ...new pass_data instance and...
6045 (make_pass_return_slot): ...new function.
6046 * tree-object-size.c (pass_object_sizes): Convert from a global struct
6047 to a subclass of gimple_opt_pass along with...
6048 (pass_data_object_sizes): ...new pass_data instance and...
6049 (make_pass_object_sizes): ...new function.
6050 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
6051 global struct to a subclass of gimple_opt_pass along with...
6052 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
6053 and...
6054 (make_pass_cleanup_cfg_post_optimizing): ...new function.
6055 (pass_fixup_cfg): Convert from a global struct to a subclass of
6056 gimple_opt_pass along with...
6057 (pass_data_fixup_cfg): ...new pass_data instance and...
6058 (make_pass_fixup_cfg): ...new function.
6059 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
6060 (make_pass_mudflap_1): ...new function.
6061 (pass_mudflap_2): Replace declaration with that of...
6062 (make_pass_mudflap_2): ...new function.
6063 (pass_asan): Replace declaration with that of...
6064 (make_pass_asan): ...new function.
6065 (pass_asan_O0): Replace declaration with that of...
6066 (make_pass_asan_O0): ...new function.
6067 (pass_tsan): Replace declaration with that of...
6068 (make_pass_tsan): ...new function.
6069 (pass_tsan_O0): Replace declaration with that of...
6070 (make_pass_tsan_O0): ...new function.
6071 (pass_lower_cf): Replace declaration with that of...
6072 (make_pass_lower_cf): ...new function.
6073 (pass_refactor_eh): Replace declaration with that of...
6074 (make_pass_refactor_eh): ...new function.
6075 (pass_lower_eh): Replace declaration with that of...
6076 (make_pass_lower_eh): ...new function.
6077 (pass_lower_eh_dispatch): Replace declaration with that of...
6078 (make_pass_lower_eh_dispatch): ...new function.
6079 (pass_lower_resx): Replace declaration with that of...
6080 (make_pass_lower_resx): ...new function.
6081 (pass_build_cfg): Replace declaration with that of...
6082 (make_pass_build_cfg): ...new function.
6083 (pass_early_tree_profile): Replace declaration with that of...
6084 (make_pass_early_tree_profile): ...new function.
6085 (pass_cleanup_eh): Replace declaration with that of...
6086 (make_pass_cleanup_eh): ...new function.
6087 (pass_sra): Replace declaration with that of...
6088 (make_pass_sra): ...new function.
6089 (pass_sra_early): Replace declaration with that of...
6090 (make_pass_sra_early): ...new function.
6091 (pass_early_ipa_sra): Replace declaration with that of...
6092 (make_pass_early_ipa_sra): ...new function.
6093 (pass_tail_recursion): Replace declaration with that of...
6094 (make_pass_tail_recursion): ...new function.
6095 (pass_tail_calls): Replace declaration with that of...
6096 (make_pass_tail_calls): ...new function.
6097 (pass_tree_loop): Replace declaration with that of...
6098 (make_pass_tree_loop): ...new function.
6099 (pass_tree_loop_init): Replace declaration with that of...
6100 (make_pass_tree_loop_init): ...new function.
6101 (pass_lim): Replace declaration with that of...
6102 (make_pass_lim): ...new function.
6103 (pass_tree_unswitch): Replace declaration with that of...
6104 (make_pass_tree_unswitch): ...new function.
6105 (pass_predcom): Replace declaration with that of...
6106 (make_pass_predcom): ...new function.
6107 (pass_iv_canon): Replace declaration with that of...
6108 (make_pass_iv_canon): ...new function.
6109 (pass_scev_cprop): Replace declaration with that of...
6110 (make_pass_scev_cprop): ...new function.
6111 (pass_empty_loop): Replace declaration with that of...
6112 (make_pass_empty_loop): ...new function.
6113 (pass_record_bounds): Replace declaration with that of...
6114 (make_pass_record_bounds): ...new function.
6115 (pass_graphite): Replace declaration with that of...
6116 (make_pass_graphite): ...new function.
6117 (pass_graphite_transforms): Replace declaration with that of...
6118 (make_pass_graphite_transforms): ...new function.
6119 (pass_if_conversion): Replace declaration with that of...
6120 (make_pass_if_conversion): ...new function.
6121 (pass_loop_distribution): Replace declaration with that of...
6122 (make_pass_loop_distribution): ...new function.
6123 (pass_vectorize): Replace declaration with that of...
6124 (make_pass_vectorize): ...new function.
6125 (pass_slp_vectorize): Replace declaration with that of...
6126 (make_pass_slp_vectorize): ...new function.
6127 (pass_complete_unroll): Replace declaration with that of...
6128 (make_pass_complete_unroll): ...new function.
6129 (pass_complete_unrolli): Replace declaration with that of...
6130 (make_pass_complete_unrolli): ...new function.
6131 (pass_parallelize_loops): Replace declaration with that of...
6132 (make_pass_parallelize_loops): ...new function.
6133 (pass_loop_prefetch): Replace declaration with that of...
6134 (make_pass_loop_prefetch): ...new function.
6135 (pass_iv_optimize): Replace declaration with that of...
6136 (make_pass_iv_optimize): ...new function.
6137 (pass_tree_loop_done): Replace declaration with that of...
6138 (make_pass_tree_loop_done): ...new function.
6139 (pass_ch): Replace declaration with that of...
6140 (make_pass_ch): ...new function.
6141 (pass_ccp): Replace declaration with that of...
6142 (make_pass_ccp): ...new function.
6143 (pass_phi_only_cprop): Replace declaration with that of...
6144 (make_pass_phi_only_cprop): ...new function.
6145 (pass_build_ssa): Replace declaration with that of...
6146 (make_pass_build_ssa): ...new function.
6147 (pass_build_alias): Replace declaration with that of...
6148 (make_pass_build_alias): ...new function.
6149 (pass_build_ealias): Replace declaration with that of...
6150 (make_pass_build_ealias): ...new function.
6151 (pass_dominator): Replace declaration with that of...
6152 (make_pass_dominator): ...new function.
6153 (pass_dce): Replace declaration with that of...
6154 (make_pass_dce): ...new function.
6155 (pass_dce_loop): Replace declaration with that of...
6156 (make_pass_dce_loop): ...new function.
6157 (pass_cd_dce): Replace declaration with that of...
6158 (make_pass_cd_dce): ...new function.
6159 (pass_call_cdce): Replace declaration with that of...
6160 (make_pass_call_cdce): ...new function.
6161 (pass_merge_phi): Replace declaration with that of...
6162 (make_pass_merge_phi): ...new function.
6163 (pass_split_crit_edges): Replace declaration with that of...
6164 (make_pass_split_crit_edges): ...new function.
6165 (pass_pre): Replace declaration with that of...
6166 (make_pass_pre): ...new function.
6167 (pass_profile): Replace declaration with that of...
6168 (make_pass_profile): ...new function.
6169 (pass_strip_predict_hints): Replace declaration with that of...
6170 (make_pass_strip_predict_hints): ...new function.
6171 (pass_lower_complex_O0): Replace declaration with that of...
6172 (make_pass_lower_complex_O0): ...new function.
6173 (pass_lower_complex): Replace declaration with that of...
6174 (make_pass_lower_complex): ...new function.
6175 (pass_lower_vector): Replace declaration with that of...
6176 (make_pass_lower_vector): ...new function.
6177 (pass_lower_vector_ssa): Replace declaration with that of...
6178 (make_pass_lower_vector_ssa): ...new function.
6179 (pass_lower_omp): Replace declaration with that of...
6180 (make_pass_lower_omp): ...new function.
6181 (pass_diagnose_omp_blocks): Replace declaration with that of...
6182 (make_pass_diagnose_omp_blocks): ...new function.
6183 (pass_expand_omp): Replace declaration with that of...
6184 (make_pass_expand_omp): ...new function.
6185 (pass_expand_omp_ssa): Replace declaration with that of...
6186 (make_pass_expand_omp_ssa): ...new function.
6187 (pass_object_sizes): Replace declaration with that of...
6188 (make_pass_object_sizes): ...new function.
6189 (pass_strlen): Replace declaration with that of...
6190 (make_pass_strlen): ...new function.
6191 (pass_fold_builtins): Replace declaration with that of...
6192 (make_pass_fold_builtins): ...new function.
6193 (pass_stdarg): Replace declaration with that of...
6194 (make_pass_stdarg): ...new function.
6195 (pass_early_warn_uninitialized): Replace declaration with that of...
6196 (make_pass_early_warn_uninitialized): ...new function.
6197 (pass_late_warn_uninitialized): Replace declaration with that of...
6198 (make_pass_late_warn_uninitialized): ...new function.
6199 (pass_cse_reciprocals): Replace declaration with that of...
6200 (make_pass_cse_reciprocals): ...new function.
6201 (pass_cse_sincos): Replace declaration with that of...
6202 (make_pass_cse_sincos): ...new function.
6203 (pass_optimize_bswap): Replace declaration with that of...
6204 (make_pass_optimize_bswap): ...new function.
6205 (pass_optimize_widening_mul): Replace declaration with that of...
6206 (make_pass_optimize_widening_mul): ...new function.
6207 (pass_warn_function_return): Replace declaration with that of...
6208 (make_pass_warn_function_return): ...new function.
6209 (pass_warn_function_noreturn): Replace declaration with that of...
6210 (make_pass_warn_function_noreturn): ...new function.
6211 (pass_cselim): Replace declaration with that of...
6212 (make_pass_cselim): ...new function.
6213 (pass_phiopt): Replace declaration with that of...
6214 (make_pass_phiopt): ...new function.
6215 (pass_forwprop): Replace declaration with that of...
6216 (make_pass_forwprop): ...new function.
6217 (pass_phiprop): Replace declaration with that of...
6218 (make_pass_phiprop): ...new function.
6219 (pass_tree_ifcombine): Replace declaration with that of...
6220 (make_pass_tree_ifcombine): ...new function.
6221 (pass_dse): Replace declaration with that of...
6222 (make_pass_dse): ...new function.
6223 (pass_nrv): Replace declaration with that of...
6224 (make_pass_nrv): ...new function.
6225 (pass_rename_ssa_copies): Replace declaration with that of...
6226 (make_pass_rename_ssa_copies): ...new function.
6227 (pass_sink_code): Replace declaration with that of...
6228 (make_pass_sink_code): ...new function.
6229 (pass_fre): Replace declaration with that of...
6230 (make_pass_fre): ...new function.
6231 (pass_check_data_deps): Replace declaration with that of...
6232 (make_pass_check_data_deps): ...new function.
6233 (pass_copy_prop): Replace declaration with that of...
6234 (make_pass_copy_prop): ...new function.
6235 (pass_vrp): Replace declaration with that of...
6236 (make_pass_vrp): ...new function.
6237 (pass_uncprop): Replace declaration with that of...
6238 (make_pass_uncprop): ...new function.
6239 (pass_return_slot): Replace declaration with that of...
6240 (make_pass_return_slot): ...new function.
6241 (pass_reassoc): Replace declaration with that of...
6242 (make_pass_reassoc): ...new function.
6243 (pass_rebuild_cgraph_edges): Replace declaration with that of...
6244 (make_pass_rebuild_cgraph_edges): ...new function.
6245 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
6246 (make_pass_remove_cgraph_callee_edges): ...new function.
6247 (pass_build_cgraph_edges): Replace declaration with that of...
6248 (make_pass_build_cgraph_edges): ...new function.
6249 (pass_local_pure_const): Replace declaration with that of...
6250 (make_pass_local_pure_const): ...new function.
6251 (pass_tracer): Replace declaration with that of...
6252 (make_pass_tracer): ...new function.
6253 (pass_warn_unused_result): Replace declaration with that of...
6254 (make_pass_warn_unused_result): ...new function.
6255 (pass_diagnose_tm_blocks): Replace declaration with that of...
6256 (make_pass_diagnose_tm_blocks): ...new function.
6257 (pass_lower_tm): Replace declaration with that of...
6258 (make_pass_lower_tm): ...new function.
6259 (pass_tm_init): Replace declaration with that of...
6260 (make_pass_tm_init): ...new function.
6261 (pass_tm_mark): Replace declaration with that of...
6262 (make_pass_tm_mark): ...new function.
6263 (pass_tm_memopt): Replace declaration with that of...
6264 (make_pass_tm_memopt): ...new function.
6265 (pass_tm_edges): Replace declaration with that of...
6266 (make_pass_tm_edges): ...new function.
6267 (pass_split_functions): Replace declaration with that of...
6268 (make_pass_split_functions): ...new function.
6269 (pass_feedback_split_functions): Replace declaration with that of...
6270 (make_pass_feedback_split_functions): ...new function.
6271 (pass_strength_reduction): Replace declaration with that of...
6272 (make_pass_strength_reduction): ...new function.
6273 (pass_ipa_lower_emutls): Replace declaration with that of...
6274 (make_pass_ipa_lower_emutls): ...new function.
6275 (pass_ipa_function_and_variable_visibility): Replace declaration with
6276 that of...
6277 (make_pass_ipa_function_and_variable_visibility): ...new function.
6278 (pass_ipa_tree_profile): Replace declaration with that of...
6279 (make_pass_ipa_tree_profile): ...new function.
6280 (pass_early_local_passes): Replace declaration with that of...
6281 (make_pass_early_local_passes): ...new function.
6282 (pass_ipa_whole_program_visibility): Replace declaration with that
6283 of...
6284 (make_pass_ipa_whole_program_visibility): ...new function.
6285 (pass_ipa_lto_gimple_out): Replace declaration with that of...
6286 (make_pass_ipa_lto_gimple_out): ...new function.
6287 (pass_ipa_increase_alignment): Replace declaration with that of...
6288 (make_pass_ipa_increase_alignment): ...new function.
6289 (pass_ipa_inline): Replace declaration with that of...
6290 (make_pass_ipa_inline): ...new function.
6291 (pass_ipa_free_lang_data): Replace declaration with that of...
6292 (make_pass_ipa_free_lang_data): ...new function.
6293 (pass_ipa_free_inline_summary): Replace declaration with that of...
6294 (make_pass_ipa_free_inline_summary): ...new function.
6295 (pass_ipa_cp): Replace declaration with that of...
6296 (make_pass_ipa_cp): ...new function.
6297 (pass_ipa_reference): Replace declaration with that of...
6298 (make_pass_ipa_reference): ...new function.
6299 (pass_ipa_pure_const): Replace declaration with that of...
6300 (make_pass_ipa_pure_const): ...new function.
6301 (pass_ipa_pta): Replace declaration with that of...
6302 (make_pass_ipa_pta): ...new function.
6303 (pass_ipa_lto_finish_out): Replace declaration with that of...
6304 (make_pass_ipa_lto_finish_out): ...new function.
6305 (pass_ipa_tm): Replace declaration with that of...
6306 (make_pass_ipa_tm): ...new function.
6307 (pass_ipa_profile): Replace declaration with that of...
6308 (make_pass_ipa_profile): ...new function.
6309 (pass_ipa_cdtor_merge): Replace declaration with that of...
6310 (make_pass_ipa_cdtor_merge): ...new function.
6311 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
6312 of...
6313 (make_pass_cleanup_cfg_post_optimizing): ...new function.
6314 (pass_init_datastructures): Replace declaration with that of...
6315 (make_pass_init_datastructures): ...new function.
6316 (pass_fixup_cfg): Replace declaration with that of...
6317 (make_pass_fixup_cfg): ...new function.
6318 (pass_expand): Replace declaration with that of...
6319 (make_pass_expand): ...new function.
6320 (pass_instantiate_virtual_regs): Replace declaration with that of...
6321 (make_pass_instantiate_virtual_regs): ...new function.
6322 (pass_rtl_fwprop): Replace declaration with that of...
6323 (make_pass_rtl_fwprop): ...new function.
6324 (pass_rtl_fwprop_addr): Replace declaration with that of...
6325 (make_pass_rtl_fwprop_addr): ...new function.
6326 (pass_jump): Replace declaration with that of...
6327 (make_pass_jump): ...new function.
6328 (pass_jump2): Replace declaration with that of...
6329 (make_pass_jump2): ...new function.
6330 (pass_lower_subreg): Replace declaration with that of...
6331 (make_pass_lower_subreg): ...new function.
6332 (pass_cse): Replace declaration with that of...
6333 (make_pass_cse): ...new function.
6334 (pass_fast_rtl_dce): Replace declaration with that of...
6335 (make_pass_fast_rtl_dce): ...new function.
6336 (pass_ud_rtl_dce): Replace declaration with that of...
6337 (make_pass_ud_rtl_dce): ...new function.
6338 (pass_rtl_dce): Replace declaration with that of...
6339 (make_pass_rtl_dce): ...new function.
6340 (pass_rtl_dse1): Replace declaration with that of...
6341 (make_pass_rtl_dse1): ...new function.
6342 (pass_rtl_dse2): Replace declaration with that of...
6343 (make_pass_rtl_dse2): ...new function.
6344 (pass_rtl_dse3): Replace declaration with that of...
6345 (make_pass_rtl_dse3): ...new function.
6346 (pass_rtl_cprop): Replace declaration with that of...
6347 (make_pass_rtl_cprop): ...new function.
6348 (pass_rtl_pre): Replace declaration with that of...
6349 (make_pass_rtl_pre): ...new function.
6350 (pass_rtl_hoist): Replace declaration with that of...
6351 (make_pass_rtl_hoist): ...new function.
6352 (pass_rtl_store_motion): Replace declaration with that of...
6353 (make_pass_rtl_store_motion): ...new function.
6354 (pass_cse_after_global_opts): Replace declaration with that of...
6355 (make_pass_cse_after_global_opts): ...new function.
6356 (pass_rtl_ifcvt): Replace declaration with that of...
6357 (make_pass_rtl_ifcvt): ...new function.
6358 (pass_into_cfg_layout_mode): Replace declaration with that of...
6359 (make_pass_into_cfg_layout_mode): ...new function.
6360 (pass_outof_cfg_layout_mode): Replace declaration with that of...
6361 (make_pass_outof_cfg_layout_mode): ...new function.
6362 (pass_loop2): Replace declaration with that of...
6363 (make_pass_loop2): ...new function.
6364 (pass_rtl_loop_init): Replace declaration with that of...
6365 (make_pass_rtl_loop_init): ...new function.
6366 (pass_rtl_move_loop_invariants): Replace declaration with that of...
6367 (make_pass_rtl_move_loop_invariants): ...new function.
6368 (pass_rtl_unswitch): Replace declaration with that of...
6369 (make_pass_rtl_unswitch): ...new function.
6370 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
6371 (make_pass_rtl_unroll_and_peel_loops): ...new function.
6372 (pass_rtl_doloop): Replace declaration with that of...
6373 (make_pass_rtl_doloop): ...new function.
6374 (pass_rtl_loop_done): Replace declaration with that of...
6375 (make_pass_rtl_loop_done): ...new function.
6376 (pass_web): Replace declaration with that of...
6377 (make_pass_web): ...new function.
6378 (pass_cse2): Replace declaration with that of...
6379 (make_pass_cse2): ...new function.
6380 (pass_df_initialize_opt): Replace declaration with that of...
6381 (make_pass_df_initialize_opt): ...new function.
6382 (pass_df_initialize_no_opt): Replace declaration with that of...
6383 (make_pass_df_initialize_no_opt): ...new function.
6384 (pass_reginfo_init): Replace declaration with that of...
6385 (make_pass_reginfo_init): ...new function.
6386 (pass_inc_dec): Replace declaration with that of...
6387 (make_pass_inc_dec): ...new function.
6388 (pass_stack_ptr_mod): Replace declaration with that of...
6389 (make_pass_stack_ptr_mod): ...new function.
6390 (pass_initialize_regs): Replace declaration with that of...
6391 (make_pass_initialize_regs): ...new function.
6392 (pass_combine): Replace declaration with that of...
6393 (make_pass_combine): ...new function.
6394 (pass_if_after_combine): Replace declaration with that of...
6395 (make_pass_if_after_combine): ...new function.
6396 (pass_ree): Replace declaration with that of...
6397 (make_pass_ree): ...new function.
6398 (pass_partition_blocks): Replace declaration with that of...
6399 (make_pass_partition_blocks): ...new function.
6400 (pass_match_asm_constraints): Replace declaration with that of...
6401 (make_pass_match_asm_constraints): ...new function.
6402 (pass_regmove): Replace declaration with that of...
6403 (make_pass_regmove): ...new function.
6404 (pass_split_all_insns): Replace declaration with that of...
6405 (make_pass_split_all_insns): ...new function.
6406 (pass_fast_rtl_byte_dce): Replace declaration with that of...
6407 (make_pass_fast_rtl_byte_dce): ...new function.
6408 (pass_lower_subreg2): Replace declaration with that of...
6409 (make_pass_lower_subreg2): ...new function.
6410 (pass_mode_switching): Replace declaration with that of...
6411 (make_pass_mode_switching): ...new function.
6412 (pass_sms): Replace declaration with that of...
6413 (make_pass_sms): ...new function.
6414 (pass_sched): Replace declaration with that of...
6415 (make_pass_sched): ...new function.
6416 (pass_ira): Replace declaration with that of...
6417 (make_pass_ira): ...new function.
6418 (pass_reload): Replace declaration with that of...
6419 (make_pass_reload): ...new function.
6420 (pass_clean_state): Replace declaration with that of...
6421 (make_pass_clean_state): ...new function.
6422 (pass_branch_prob): Replace declaration with that of...
6423 (make_pass_branch_prob): ...new function.
6424 (pass_value_profile_transformations): Replace declaration with that
6425 of...
6426 (make_pass_value_profile_transformations): ...new function.
6427 (pass_postreload_cse): Replace declaration with that of...
6428 (make_pass_postreload_cse): ...new function.
6429 (pass_gcse2): Replace declaration with that of...
6430 (make_pass_gcse2): ...new function.
6431 (pass_split_after_reload): Replace declaration with that of...
6432 (make_pass_split_after_reload): ...new function.
6433 (pass_branch_target_load_optimize1): Replace declaration with that
6434 of...
6435 (make_pass_branch_target_load_optimize1): ...new function.
6436 (pass_thread_prologue_and_epilogue): Replace declaration with that
6437 of...
6438 (make_pass_thread_prologue_and_epilogue): ...new function.
6439 (pass_stack_adjustments): Replace declaration with that of...
6440 (make_pass_stack_adjustments): ...new function.
6441 (pass_peephole2): Replace declaration with that of...
6442 (make_pass_peephole2): ...new function.
6443 (pass_if_after_reload): Replace declaration with that of...
6444 (make_pass_if_after_reload): ...new function.
6445 (pass_regrename): Replace declaration with that of...
6446 (make_pass_regrename): ...new function.
6447 (pass_cprop_hardreg): Replace declaration with that of...
6448 (make_pass_cprop_hardreg): ...new function.
6449 (pass_reorder_blocks): Replace declaration with that of...
6450 (make_pass_reorder_blocks): ...new function.
6451 (pass_branch_target_load_optimize2): Replace declaration with that
6452 of...
6453 (make_pass_branch_target_load_optimize2): ...new function.
6454 (pass_leaf_regs): Replace declaration with that of...
6455 (make_pass_leaf_regs): ...new function.
6456 (pass_split_before_sched2): Replace declaration with that of...
6457 (make_pass_split_before_sched2): ...new function.
6458 (pass_compare_elim_after_reload): Replace declaration with that of...
6459 (make_pass_compare_elim_after_reload): ...new function.
6460 (pass_sched2): Replace declaration with that of...
6461 (make_pass_sched2): ...new function.
6462 (pass_stack_regs): Replace declaration with that of...
6463 (make_pass_stack_regs): ...new function.
6464 (pass_stack_regs_run): Replace declaration with that of...
6465 (make_pass_stack_regs_run): ...new function.
6466 (pass_df_finish): Replace declaration with that of...
6467 (make_pass_df_finish): ...new function.
6468 (pass_compute_alignments): Replace declaration with that of...
6469 (make_pass_compute_alignments): ...new function.
6470 (pass_duplicate_computed_gotos): Replace declaration with that of...
6471 (make_pass_duplicate_computed_gotos): ...new function.
6472 (pass_variable_tracking): Replace declaration with that of...
6473 (make_pass_variable_tracking): ...new function.
6474 (pass_free_cfg): Replace declaration with that of...
6475 (make_pass_free_cfg): ...new function.
6476 (pass_machine_reorg): Replace declaration with that of...
6477 (make_pass_machine_reorg): ...new function.
6478 (pass_cleanup_barriers): Replace declaration with that of...
6479 (make_pass_cleanup_barriers): ...new function.
6480 (pass_delay_slots): Replace declaration with that of...
6481 (make_pass_delay_slots): ...new function.
6482 (pass_split_for_shorten_branches): Replace declaration with that of...
6483 (make_pass_split_for_shorten_branches): ...new function.
6484 (pass_split_before_regstack): Replace declaration with that of...
6485 (make_pass_split_before_regstack): ...new function.
6486 (pass_convert_to_eh_region_ranges): Replace declaration with that
6487 of...
6488 (make_pass_convert_to_eh_region_ranges): ...new function.
6489 (pass_shorten_branches): Replace declaration with that of...
6490 (make_pass_shorten_branches): ...new function.
6491 (pass_set_nothrow_function_flags): Replace declaration with that of...
6492 (make_pass_set_nothrow_function_flags): ...new function.
6493 (pass_dwarf2_frame): Replace declaration with that of...
6494 (make_pass_dwarf2_frame): ...new function.
6495 (pass_final): Replace declaration with that of...
6496 (make_pass_final): ...new function.
6497 (pass_rtl_seqabstr): Replace declaration with that of...
6498 (make_pass_rtl_seqabstr): ...new function.
6499 (pass_release_ssa_names): Replace declaration with that of...
6500 (make_pass_release_ssa_names): ...new function.
6501 (pass_early_inline): Replace declaration with that of...
6502 (make_pass_early_inline): ...new function.
6503 (pass_inline_parameters): Replace declaration with that of...
6504 (make_pass_inline_parameters): ...new function.
6505 (pass_update_address_taken): Replace declaration with that of...
6506 (make_pass_update_address_taken): ...new function.
6507 (pass_convert_switch): Replace declaration with that of...
6508 (make_pass_convert_switch): ...new function.
6509 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
6510 to a subclass of simple_ipa_opt_pass along with...
6511 (pass_data_ipa_tree_profile): ...new pass_data instance and...
6512 (make_pass_ipa_tree_profile): ...new function.
6513 * tree-sra.c (pass_sra_early): Convert from a global struct to a
6514 subclass of gimple_opt_pass along with...
6515 (pass_data_sra_early): ...new pass_data instance and...
6516 (make_pass_sra_early): ...new function.
6517 (pass_sra): Convert from a global struct to a subclass of
6518 gimple_opt_pass along with...
6519 (pass_data_sra): ...new pass_data instance and...
6520 (make_pass_sra): ...new function.
6521 (pass_early_ipa_sra): Convert from a global struct to a subclass of
6522 gimple_opt_pass along with...
6523 (pass_data_early_ipa_sra): ...new pass_data instance and...
6524 (make_pass_early_ipa_sra): ...new function.
6525 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
6526 subclass of gimple_opt_pass along with...
6527 (pass_data_ccp): ...new pass_data instance and...
6528 (make_pass_ccp): ...new function.
6529 (pass_fold_builtins): Convert from a global struct to a subclass of
6530 gimple_opt_pass along with...
6531 (pass_data_fold_builtins): ...new pass_data instance and...
6532 (make_pass_fold_builtins): ...new function.
6533 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
6534 subclass of gimple_opt_pass along with...
6535 (pass_data_copy_prop): ...new pass_data instance and...
6536 (make_pass_copy_prop): ...new function.
6537 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
6538 global struct to a subclass of gimple_opt_pass along with...
6539 (pass_data_rename_ssa_copies): ...new pass_data instance and...
6540 (make_pass_rename_ssa_copies): ...new function.
6541 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
6542 subclass of gimple_opt_pass along with...
6543 (pass_data_dce): ...new pass_data instance and...
6544 (make_pass_dce): ...new function.
6545 (pass_dce_loop): Convert from a global struct to a subclass of
6546 gimple_opt_pass along with...
6547 (pass_data_dce_loop): ...new pass_data instance and...
6548 (make_pass_dce_loop): ...new function.
6549 (pass_cd_dce): Convert from a global struct to a subclass of
6550 gimple_opt_pass along with...
6551 (pass_data_cd_dce): ...new pass_data instance and...
6552 (make_pass_cd_dce): ...new function.
6553 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
6554 subclass of gimple_opt_pass along with...
6555 (pass_data_dominator): ...new pass_data instance and...
6556 (make_pass_dominator): ...new function.
6557 (pass_phi_only_cprop): Convert from a global struct to a subclass of
6558 gimple_opt_pass along with...
6559 (pass_data_phi_only_cprop): ...new pass_data instance and...
6560 (make_pass_phi_only_cprop): ...new function.
6561 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
6562 subclass of gimple_opt_pass along with...
6563 (pass_data_dse): ...new pass_data instance and...
6564 (make_pass_dse): ...new function.
6565 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
6566 a subclass of gimple_opt_pass along with...
6567 (pass_data_forwprop): ...new pass_data instance and...
6568 (make_pass_forwprop): ...new function.
6569 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
6570 struct to a subclass of gimple_opt_pass along with...
6571 (pass_data_tree_ifcombine): ...new pass_data instance and...
6572 (make_pass_tree_ifcombine): ...new function.
6573 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
6574 subclass of gimple_opt_pass along with...
6575 (pass_data_ch): ...new pass_data instance and...
6576 (make_pass_ch): ...new function.
6577 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
6578 subclass of gimple_opt_pass along with...
6579 (pass_data_tree_loop): ...new pass_data instance and...
6580 (make_pass_tree_loop): ...new function.
6581 (pass_tree_loop_init): Convert from a global struct to a subclass of
6582 gimple_opt_pass along with...
6583 (pass_data_tree_loop_init): ...new pass_data instance and...
6584 (make_pass_tree_loop_init): ...new function.
6585 (pass_lim): Convert from a global struct to a subclass of
6586 gimple_opt_pass along with...
6587 (pass_data_lim): ...new pass_data instance and...
6588 (make_pass_lim): ...new function.
6589 (pass_tree_unswitch): Convert from a global struct to a subclass of
6590 gimple_opt_pass along with...
6591 (pass_data_tree_unswitch): ...new pass_data instance and...
6592 (make_pass_tree_unswitch): ...new function.
6593 (pass_predcom): Convert from a global struct to a subclass of
6594 gimple_opt_pass along with...
6595 (pass_data_predcom): ...new pass_data instance and...
6596 (make_pass_predcom): ...new function.
6597 (pass_vectorize): Convert from a global struct to a subclass of
6598 gimple_opt_pass along with...
6599 (pass_data_vectorize): ...new pass_data instance and...
6600 (make_pass_vectorize): ...new function.
6601 (pass_graphite): Convert from a global struct to a subclass of
6602 gimple_opt_pass along with...
6603 (pass_data_graphite): ...new pass_data instance and...
6604 (make_pass_graphite): ...new function.
6605 (pass_graphite_transforms): Convert from a global struct to a subclass
6606 of gimple_opt_pass along with...
6607 (pass_data_graphite_transforms): ...new pass_data instance and...
6608 (make_pass_graphite_transforms): ...new function.
6609 (pass_check_data_deps): Convert from a global struct to a subclass of
6610 gimple_opt_pass along with...
6611 (pass_data_check_data_deps): ...new pass_data instance and...
6612 (make_pass_check_data_deps): ...new function.
6613 (pass_iv_canon): Convert from a global struct to a subclass of
6614 gimple_opt_pass along with...
6615 (pass_data_iv_canon): ...new pass_data instance and...
6616 (make_pass_iv_canon): ...new function.
6617 (pass_scev_cprop): Convert from a global struct to a subclass of
6618 gimple_opt_pass along with...
6619 (pass_data_scev_cprop): ...new pass_data instance and...
6620 (make_pass_scev_cprop): ...new function.
6621 (pass_record_bounds): Convert from a global struct to a subclass of
6622 gimple_opt_pass along with...
6623 (pass_data_record_bounds): ...new pass_data instance and...
6624 (make_pass_record_bounds): ...new function.
6625 (pass_complete_unroll): Convert from a global struct to a subclass of
6626 gimple_opt_pass along with...
6627 (pass_data_complete_unroll): ...new pass_data instance and...
6628 (make_pass_complete_unroll): ...new function.
6629 (pass_complete_unrolli): Convert from a global struct to a subclass of
6630 gimple_opt_pass along with...
6631 (pass_data_complete_unrolli): ...new pass_data instance and...
6632 (make_pass_complete_unrolli): ...new function.
6633 (pass_parallelize_loops): Convert from a global struct to a subclass
6634 of gimple_opt_pass along with...
6635 (pass_data_parallelize_loops): ...new pass_data instance and...
6636 (make_pass_parallelize_loops): ...new function.
6637 (pass_loop_prefetch): Convert from a global struct to a subclass of
6638 gimple_opt_pass along with...
6639 (pass_data_loop_prefetch): ...new pass_data instance and...
6640 (make_pass_loop_prefetch): ...new function.
6641 (pass_iv_optimize): Convert from a global struct to a subclass of
6642 gimple_opt_pass along with...
6643 (pass_data_iv_optimize): ...new pass_data instance and...
6644 (make_pass_iv_optimize): ...new function.
6645 (pass_tree_loop_done): Convert from a global struct to a subclass of
6646 gimple_opt_pass along with...
6647 (pass_data_tree_loop_done): ...new pass_data instance and...
6648 (make_pass_tree_loop_done): ...new function.
6649 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
6650 struct to a subclass of gimple_opt_pass along with...
6651 (pass_data_cse_reciprocals): ...new pass_data instance and...
6652 (make_pass_cse_reciprocals): ...new function.
6653 (pass_cse_sincos): Convert from a global struct to a subclass of
6654 gimple_opt_pass along with...
6655 (pass_data_cse_sincos): ...new pass_data instance and...
6656 (make_pass_cse_sincos): ...new function.
6657 (pass_optimize_bswap): Convert from a global struct to a subclass of
6658 gimple_opt_pass along with...
6659 (pass_data_optimize_bswap): ...new pass_data instance and...
6660 (make_pass_optimize_bswap): ...new function.
6661 (pass_optimize_widening_mul): Convert from a global struct to a
6662 subclass of gimple_opt_pass along with...
6663 (pass_data_optimize_widening_mul): ...new pass_data instance and...
6664 (make_pass_optimize_widening_mul): ...new function.
6665 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
6666 subclass of gimple_opt_pass along with...
6667 (pass_data_phiopt): ...new pass_data instance and...
6668 (make_pass_phiopt): ...new function.
6669 (pass_cselim): Convert from a global struct to a subclass of
6670 gimple_opt_pass along with...
6671 (pass_data_cselim): ...new pass_data instance and...
6672 (make_pass_cselim): ...new function.
6673 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
6674 subclass of gimple_opt_pass along with...
6675 (pass_data_phiprop): ...new pass_data instance and...
6676 (make_pass_phiprop): ...new function.
6677 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
6678 subclass of gimple_opt_pass along with...
6679 (pass_data_pre): ...new pass_data instance and...
6680 (make_pass_pre): ...new function.
6681 (pass_fre): Convert from a global struct to a subclass of
6682 gimple_opt_pass along with...
6683 (pass_data_fre): ...new pass_data instance and...
6684 (make_pass_fre): ...new function.
6685 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
6686 subclass of gimple_opt_pass along with...
6687 (pass_data_reassoc): ...new pass_data instance and...
6688 (make_pass_reassoc): ...new function.
6689 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
6690 subclass of gimple_opt_pass along with...
6691 (pass_data_sink_code): ...new pass_data instance and...
6692 (make_pass_sink_code): ...new function.
6693 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
6694 subclass of gimple_opt_pass along with...
6695 (pass_data_strlen): ...new pass_data instance and...
6696 (make_pass_strlen): ...new function.
6697 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
6698 struct to a subclass of gimple_opt_pass along with...
6699 (pass_data_build_alias): ...new pass_data instance and...
6700 (make_pass_build_alias): ...new function.
6701 (pass_build_ealias): Convert from a global struct to a subclass of
6702 gimple_opt_pass along with...
6703 (pass_data_build_ealias): ...new pass_data instance and...
6704 (make_pass_build_ealias): ...new function.
6705 (pass_ipa_pta): Convert from a global struct to a subclass of
6706 simple_ipa_opt_pass along with...
6707 (pass_data_ipa_pta): ...new pass_data instance and...
6708 (make_pass_ipa_pta): ...new function.
6709 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
6710 subclass of gimple_opt_pass along with...
6711 (pass_data_uncprop): ...new pass_data instance and...
6712 (make_pass_uncprop): ...new function.
6713 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
6714 global struct to a subclass of gimple_opt_pass along with...
6715 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
6716 (make_pass_late_warn_uninitialized): ...new function.
6717 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
6718 to a subclass of gimple_opt_pass along with...
6719 (pass_data_init_datastructures): ...new pass_data instance and...
6720 (make_pass_init_datastructures): ...new function.
6721 (pass_early_warn_uninitialized): Convert from a global struct to a
6722 subclass of gimple_opt_pass along with...
6723 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
6724 (make_pass_early_warn_uninitialized): ...new function.
6725 (pass_update_address_taken): Convert from a global struct to a
6726 subclass of gimple_opt_pass along with...
6727 (pass_data_update_address_taken): ...new pass_data instance and...
6728 (make_pass_update_address_taken): ...new function.
6729 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
6730 struct to a subclass of gimple_opt_pass along with...
6731 (pass_data_release_ssa_names): ...new pass_data instance and...
6732 (make_pass_release_ssa_names): ...new function.
6733 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
6734 subclass of gimple_opt_pass along with...
6735 (pass_data_stdarg): ...new pass_data instance and...
6736 (make_pass_stdarg): ...new function.
6737 * tree-switch-conversion.c (pass_convert_switch): Convert from a
6738 global struct to a subclass of gimple_opt_pass along with...
6739 (pass_data_convert_switch): ...new pass_data instance and...
6740 (make_pass_convert_switch): ...new function.
6741 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
6742 to a subclass of gimple_opt_pass along with...
6743 (pass_data_tail_recursion): ...new pass_data instance and...
6744 (make_pass_tail_recursion): ...new function.
6745 (pass_tail_calls): Convert from a global struct to a subclass of
6746 gimple_opt_pass along with...
6747 (pass_data_tail_calls): ...new pass_data instance and...
6748 (make_pass_tail_calls): ...new function.
6749 * tree-vect-generic.c (pass_lower_vector): Convert from a global
6750 struct to a subclass of gimple_opt_pass along with...
6751 (pass_data_lower_vector): ...new pass_data instance and...
6752 (make_pass_lower_vector): ...new function.
6753 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
6754 gimple_opt_pass along with...
6755 (pass_data_lower_vector_ssa): ...new pass_data instance and...
6756 (make_pass_lower_vector_ssa): ...new function.
6757 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
6758 to a subclass of gimple_opt_pass along with...
6759 (pass_data_slp_vectorize): ...new pass_data instance and...
6760 (make_pass_slp_vectorize): ...new function.
6761 (pass_ipa_increase_alignment): Convert from a global struct to a
6762 subclass of simple_ipa_opt_pass along with...
6763 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
6764 (make_pass_ipa_increase_alignment): ...new function.
6765 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
6766 gimple_opt_pass along with...
6767 (pass_data_vrp): ...new pass_data instance and...
6768 (make_pass_vrp): ...new function.
6769 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
6770 subclass of simple_ipa_opt_pass along with...
6771 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
6772 (make_pass_ipa_free_lang_data): ...new function.
6773 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
6774 gimple_opt_pass along with...
6775 (pass_data_tsan): ...new pass_data instance and...
6776 (make_pass_tsan): ...new function.
6777 (pass_tsan_O0): Convert from a global struct to a subclass of
6778 gimple_opt_pass along with...
6779 (pass_data_tsan_O0): ...new pass_data instance and...
6780 (make_pass_tsan_O0): ...new function.
6781 * var-tracking.c (pass_variable_tracking): Convert from a global
6782 struct to a subclass of rtl_opt_pass along with...
6783 (pass_data_variable_tracking): ...new pass_data instance and...
6784 (make_pass_variable_tracking): ...new function.
6785 * web.c (pass_web): Convert from a global struct to a subclass of
6786 rtl_opt_pass along with...
6787 (pass_data_web): ...new pass_data instance and...
6788 (make_pass_web): ...new function.
6789 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
6790 declaration with that of...
6791 (make_pass_mode_switch_use): ...new function.
6792 (pass_resolve_sw_modes): Replace declaration with that of...
6793 (make_pass_resolve_sw_modes): ...new function.
6794 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
6795 from a global struct to a subclass of rtl_opt_pass along with...
6796 (pass_data_mode_switch_use): ...new pass_data instance and...
6797 (make_pass_mode_switch_use): ...new function.
6798 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
6799 from a global struct to a subclass of rtl_opt_pass along with...
6800 (pass_data_resolve_sw_modes): ...new pass_data instance and...
6801 (make_pass_resolve_sw_modes): ...new function.
6802 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
6803 struct to a subclass of rtl_opt_pass along with...
6804 (pass_data_insert_vzeroupper): ...new pass_data instance and...
6805 (make_pass_insert_vzeroupper): ...new function.
6806 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
6807 global struct to a subclass of rtl_opt_pass along with...
6808 (pass_data_work_around_errata): ...new pass_data instance and...
6809 (make_pass_work_around_errata): ...new function.
6810 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
6811 struct to a subclass of rtl_opt_pass along with...
6812 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
6813 (make_pass_mips_machine_reorg2): ...new function.
6814
6a389ed5
DM
68152013-08-05 David Malcolm <dmalcolm@redhat.com>
6816
6817 * passes.c (pass_manager::operator new): New.
6818
f7695dbf
DM
68192013-08-05 David Malcolm <dmalcolm@redhat.com>
6820
6821 Handwritten part of conversion of passes to C++ classes.
6822
6823 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
6824 (toplev.o): Add dep on PASS_MANAGER_H.
6825 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
6826 of early local pases to reflect this moving from a global to a
6827 member of gcc::pass_manager.
6828 (cgraph_add_new_function): Likewise.
6829 * lto-cgraph.c (lto_output_node): Update for conversion of
6830 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
6831 * passes.c (opt_pass::clone): New.
6832 (opt_pass::gate): New.
6833 (opt_pass::execute): New.
6834 (opt_pass::opt_pass): New.
6835 (pass_manager::execute_early_local_passes): New.
6836 (pass_manager::execute_pass_mode_switching): new.
6837 (finish_optimization_passes): Convert to...
6838 (pass_manager::finish_optimization_passes): ...this.
6839 (finish_optimization_passes): Update for conversion of passes to
6840 C++ classes.
6841 (register_dump_files_1): Use has_gate since we cannot portably
6842 check a vtable entry against NULL.
6843 (dump_one_pass): Likewise.
6844 (ipa_write_summaries_2): Likewise.
6845 (ipa_write_optimization_summaries_1): Likewise.
6846 (ipa_read_summaries_1): Likewise.
6847 (ipa_read_optimization_summaries_1): Likewise.
6848 (execute_ipa_stmt_fixups): Likewise.
6849 (pass_manager::pass_manager): Rewrite pass-creation, invoking
6850 pass-creation functions rather than wiring up globals, and
6851 storing the results in fields of pass_manager generated using
6852 pass-instances.def.
6853 (pass_manager::dump_profile_report): Update for conversion of
6854 passes to C++ classes.
6855 (pass_manager::execute_ipa_summary_passes): Likewise.
6856 (execute_one_ipa_transform_pass): Likewise.
6857 (execute_one_pass): Use has_gate and has_execute since we cannot
6858 portably check a vtable entry against NULL.
6859 * pass_manager.h (pass_manager::finish_optimization_passes): New.
6860 (pass_manager): Use pass-instances.def to add fields for the
6861 various pass instances.
6862 * toplev.c (finalize): Update for move of
6863 finish_optimization_passes to a method of gcc::pass_manager.
6864 * toplev.h (finish_optimization_passes): Move to method of class
6865 pass_manager.
6866 * tree-pass.h (struct pass_data): New.
03b0ee0a 6867 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
6868 (opt_pass::gate): Convert to virtual function.
6869 (opt_pass::~opt_pass): New.
6870 (opt_pass::clone): New.
6871 (opt_pass::execute): Convert to virtual function.
6872 (opt_pass::opt_pass): New.
6873 (opt_pass::ctxt_): new.
6874 (gimple_opt_pass): Convert to subclass of opt_pass.
6875 (gimple_opt_pass::gimple_opt_pass): New.
6876 (rtl_opt_pass): Convert to subclass of opt_pass.
6877 (rtl_opt_pass::rtl_opt_pass): New.
6878 (ipa_opt_pass_d): Convert to subclass of opt_pass.
6879 (ipa_opt_pass_d::ipa_opt_pass_d): New.
6880 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
6881 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
6882 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
6883 invocation of pass_mode_switching to reflect this moving from a
6884 global to a member of gcc::pass_manager.
6885 (ix86_option_override): Rework how pass_insert_vzeroupper is
6886 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 6887 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 6888
d0b2f831
RE
68892013-08-05 Richard Earnshaw <rearnsha@arm.com>
6890
6891 PR rtl-optimization/57708
6892 * recog.c (peep2_find_free_register): Validate all regs in a
6893 multi-reg mode.
6894
51a5c0c2
JH
68952013-08-05 Jan Hubicka <jh@suse.cz>
6896
6897 PR lto/57602
03b0ee0a
UB
6898 * cgraph.c (verify_cgraph_node): Accept local flags from other
6899 partitions.
51a5c0c2
JH
6900 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
6901 (function_and_variable_visibility): Likewise.
6902 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
6903
65f0a120
GDR
69042013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6905
6906 * graph.c (init_graph_slim_pretty_print): Remove.
6907 (print_graph_cfg): Do not call it. Use local pretty printer.
6908 (start_graph_dump): Likewise.
6909
b3f80694
GDR
69102013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6911
6912 * gimple-pretty-print.c (buffer): Remove.
6913 (initialized): Likewise.
6914 (maybe_init_pretty_print): Likewise.
6915 (print_gimple_stmt): Do not call it. Use non-static local
6916 pretty_printer variable.
6917 (print_gimple_expr): Likewise.
6918 (print_gimple_seq): Likewise.
6919 (gimple_dump_bb): Likewise.
6920
11a877b3
GDR
69212013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6922
6923 * asan.c (asan_pp): Remove.
6924 (asan_pp_initialized): Likewise.
6925 (asan_pp_initialize): Likewise.
6926 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
6927 (asan_emit_stack_protection): Tidy. Use local pretty printer.
6928 (asan_add_global): Likewise.
6929
b066401f
GDR
69302013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
6931
6932 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
6933 * diagnostic.h (diagnostic_flush_buffer): Adjust.
6934 * pretty-print.c (pp_formatted_text_data): Likewise.
6935 (pp_indent): Rename from pp_base_indent.
6936 (pp_format): Rename from pp_base_format.
6937 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
6938 (pp_format_verbatim): Rename from pp_base_format_verbatim.
6939 (pp_flush): Rename from pp_base_flush.
6940 (pp_set_line_maximum_length): Rename from
6941 pp_base_set_line_maximum_length.
6942 (pp_clear_output_area): Rename from pp_base_clear_output_area.
6943 (pp_set_prefix): Rename from pp_base_set_prefix.
6944 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
6945 (pp_emit_prefix): Rename from pp_base_emit_prefix.
6946 (pp_append_text): Rename from pp_base_append_text.
6947 (pp_formatted_text): Rename from pp_base_formatted_text.
6948 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
6949 (pp_remaining_character_count_for_line): Rename from
6950 pp_base_remaining_character_count_for_line.
6951 (pp_newline): Rename from pp_base_newline.
6952 (pp_character): Rename from pp_base_character.
6953 (pp_string): Rename from pp_base_string.
6954 (pp_maybe_space): Rename from pp_base_maybe_space.
6955 * asan.c (asan_pp_string): Adjust.
6956 (asan_emit_stack_protection): Likewise.
6957 (asan_add_global): Likewise.
6958 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
6959 * tree-mudflap.c (mf_varname_tree): Likewise.
6960 * tree-pretty-print.c (pp_tree_identifier): Rename from
6961 pp_base_tree_identifier.
6962 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
6963 Declare as function.
6964
137a1a27
GDR
69652013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
6966
6967 * pretty-print.h (pp_bar_bar): New.
6968 (pp_ampersand_ampersand): Likewise.
6969 (pp_less_equal): Likewise.
6970 (pp_greater_equal): Likewise.
6971 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
6972 printer functions instead of pp_string or operators and punctuators.
6973 (dump_gimple_call): Likewise.
6974 (dump_gimple_omp_for): Likewise.
6975 (dump_gimple_transaction): Likewise.
6976 (dump_gimple_phi): Likewise.
6977 (pp_gimple_stmt_1): Likewise.
6978 * sched-vis.c (print_insn): Likewise.
6979 * tree-mudflap.c (mf_varname_tree): Likewise.
6980 * tree-pretty-print.c (dump_block_node): Likewise.
6981 (dump_generic_node): Likewise.
6982
815effe1
JH
69832013-08-02 Jan Hubicka <jh@suse.cz>
6984
6985 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
6986 boundaries.
6987 * lto-streamer-out.c (tree_is_indexable): Results decls and
6988 parm decls are not indexable.
6989 (DFS_write_tree_body): Do not follow args and results.
6990 (hash_tree): Likewise.
6991 (output_functions): Rearrange so struct function is needed
6992 only when real body is output; be able to also ouptut abstract
6993 functions; output DECL_ARGUMENTS and DECL_RESULT.
6994 (lto_output): When not in WPA, ale store abstract functions.
6995 (write_symbol): Do not care about RESULT_DECL.
6996 (output_symbol_p): Handle correctly sbtract decls.
6997 * lto-streamer-in.c (input_function): Rearrange so struct
6998 function can be NULL at entry; allow streaming of
6999 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
7000 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
7001 sanity check during LTO.
7002 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
7003 RESULT_DECl and DECL_ARGUMENTS.
7004 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
7005 Likewise.
7006
07838b13
GDR
70072013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
7008
7009 * pretty-print.h (pp_underscore): New.
7010 (pp_comma): Tidy.
7011 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
7012 printer functions instead of pp_character.
7013 (dump_binary_rhs): Likewise.
7014 (dump_ternary_rhs): Likewise.
7015 (dump_gimple_call_args): Likewise.
7016 (pp_points_to_solution): Likewise.
7017 (dump_gimple_call): Likewise.
7018 (dump_gimple_switch): Likewise.
7019 (dump_gimple_cond): Likewise.
7020 (dump_gimple_bind): Likewise.
7021 (dump_gimple_try): Likewise.
7022 (dump_gimple_omp_for): Likewise.
7023 (dump_gimple_omp_continue): Likewise.
7024 (dump_gimple_omp_single): Likewise.
7025 (dump_gimple_omp_sections): Likewise.
7026 (dump_gimple_omp_block): Likewise.
7027 (dump_gimple_omp_critical): Likewise.
7028 (dump_gimple_transaction): Likewise.
7029 (dump_gimple_asm): Likewise.
7030 (dump_gimple_phi): Likewise.
7031 (dump_gimple_omp_parallel): Likewise.
7032 (dump_gimple_omp_task): Likewise.
7033 (dump_gimple_omp_atomic_load): Likewise.
7034 (dump_gimple_omp_atomic_store): Likewise.
7035 (dump_gimple_mem_ops): Likewise.
7036 (pp_gimple_stmt_1): Likewise.
7037 (pp_cfg_jump): Likewise.
7038 (dump_implicit_edges): Likewise.
7039 (gimple_dump_bb_for_graph): Likewise.
7040 * graph.c (draw_cfg_node): Likewise.
7041 * langhooks.c (lhd_print_error_function): Likewise.
7042 * sched-vis.c (print_exp): Likewise.
7043 (print_value): Likewise.
7044 (print_pattern): Likewise.
7045 (print_insn): Likewise.
7046 (rtl_dump_bb_for_graph): Likewise.
7047 * tree-pretty-print.c (dump_function_declaration): Likewise.
7048 (dump_array_domain): Likewise.
7049 (dump_omp_clause): Likewise.
7050 (dump_location): Likewise.
7051 (dump_generic_node): Likewise.
7052 (print_struct_decl): Likewise.
7053 * diagnostic.c (diagnostic_show_locus): Use pp_space.
7054
bb0d2039
BS
70552013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
7056
7057 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
7058 candidate table when replacing a candidate statement.
7059 (replace_rhs_if_not_dup): Likewise.
7060 (replace_one_candidate): Likewise.
7061
bc0ec027 70622013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 7063 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
7064
7065 * cgraphunit.c (add_new_function): Fix logic when adding from
7066 late IPA pass.
7067 (assemble_thunk): Rename to ...
03b0ee0a
UB
7068 (expand_thunk); .. this one; export; get it working with
7069 general functions; make produced gimple valid.
bc0ec027
JH
7070 * cgraph.h (expand_thunk): Declare.
7071
0e8853ee
JH
70722013-08-02 Jan Hubicka <jh@suse.cz>
7073
03b0ee0a
UB
7074 * ipa-cp.c (gather_context_independent_values): Use
7075 ipa_get_param_move_cost.
7076 (get_replacement_map): Remove PARAM; move parameter folding
7077 into tree-inline.c
0e8853ee
JH
7078 (create_specialized_node): Update.
7079 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
7080 assert that we have gimple body; update move_cost.
7081 (count_formal_params): Assert that we have gimple body.
7082 (ipa_dump_param): New function.
7083 (ipa_alloc_node_params): Break out from ...
7084 (ipa_initialize_node_params): ... here.
7085 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
7086 (ipa_write_node_info): Stream move costs.
7087 (ipa_read_node_info): Read move costs.
7088 (ipa_update_after_lto_read): Do not recompute node params.
7089 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
7090 (ipa_get_param): Check we are not in WPA.
7091 (ipa_get_param_move_cost): New.
7092 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
7093 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
7094 parm numbers to be present.
7095
ecee672b
VM
70962013-08-02 Vladimir Makarov <vmakarov@redhat.com>
7097
7098 PR rtl-optimization/58048
7099 * lra-constraints.c (process_alt_operands): Don't check asm
7100 operand on register.
7101
13ec0527
EB
71022013-08-02 Eric Botcazou <ebotcazou@adacore.com>
7103
7104 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
7105 the implied StoreLoad barrier for atomic operations if before.
7106
af15184a
JH
71072013-08-02 Jan Hubicka <jh@suse.cz>
7108 Martin Liska <marxin.liska@gmail.com>
7109
03b0ee0a
UB
7110 * cgraph.c (cgraph_function_body_availability): Do not check
7111 cgraph flags.
af15184a
JH
7112 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
7113 symtab_node_availability): Declare.
7114 * ipa.c (can_replace_by_local_alias): New.
7115 (function_and_variable_visibility): Use it.
03b0ee0a
UB
7116 * symtab.c (symtab_for_node_and_aliases,
7117 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 7118
01e54ef8
VM
71192013-08-02 Vladimir Makarov <vmakarov@redhat.com>
7120
7121 PR rtl-optimization/57963
03b0ee0a 7122 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
7123 (lra_constraints): Use them.
7124
e2fd7ca7
SN
71252013-08-02 Sofiane Naci <sofiane.naci@arm.com>
7126
03b0ee0a
UB
7127 * config/arm/types.md (define_attr "type"): Add "load_acq"
7128 and "store_rel".
e2fd7ca7
SN
7129 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
7130 changes.
7131 (cortex_a53_store1): Likewise.
7132
0dcc26c3
JH
71332013-08-01 Jan Hubicka <jh@suse.cz>
7134
03b0ee0a
UB
7135 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
7136 partitions are not needed.
0dcc26c3 7137
0bd72901
UB
71382013-08-01 Uros Bizjak <ubizjak@gmail.com>
7139
7140 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
7141 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
7142 MAYBE_NON_Q_CLASS_P where appropriate.
7143
12123452
JH
71442013-08-01 Jan Hubicka <jh@suse.cz>
7145
7146 * cgraph.h (release_function_body): Declare.
7147 * tree.c (free_lang_data_in_decl): Free, parameters and return values
7148 of unused delcarations.
7149
ce852f9c
KT
71502013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7151
03b0ee0a
UB
7152 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
7153 RTL form when subtracting a constant.
ce852f9c 7154
c743b246
KT
71552013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7156
7157 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
7158 Generate canonical plus rtx with negated immediate instead of minus
7159 where appropriate.
7160 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
7161
c0c123ef
JH
71622013-08-01 Jan Hubicka <jh@suse.cz>
7163
7164 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
7165 (cgraph_release_function_body): Likewise.
7166 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
7167 * cgraph.h (cgrpah_node): Rename abstract_and_needed
7168 to used_as_abstract_origin.
7169 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
7170 symbols used as abstract origins.
7171 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
7172 * ipa.c (symtab_remove_unreachable_nodes): Recompute
7173 used_as_abstract_origin.
c0c123ef 7174 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
7175 used_as_abstract_origin; be ready for DECL_RESULT and
7176 DECL_ARGUMENTS to be NULL.
c0c123ef 7177
0bd72901
UB
7178 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
7179 for abstract functions.
7180 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
7181 real symbols.
c0c123ef 7182
1f029433
JH
71832013-08-01 Jan Hubicka <jh@suse.cz>
7184
7185 * profile.c (compute_value_histograms): Fix thinko.
7186
c451f4d6
SN
71872013-08-01 Sofiane Naci <sofiane.naci@arm.com>
7188
7189 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
7190 aarch-common-protos.h to extra_headers.
7191 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
7192 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
7193 * config/aarch64/t-aarch64 (aarch-common.o): Define.
7194
34b512f5
SN
71952013-08-01 Sofiane Naci <sofiane.naci@arm.com>
7196
7197 * config/aarch64/aarch64.md (define_attr "type"): Delete.
7198 Include "../arm/types.md". Define "type" attribute for all patterns.
7199 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
7200 attribute changes.
7201
d86e633a
MM
72022013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
7203
7204 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
7205 to support power8 load fusion.
7206 (fusion_gpr_mem_load): Likewise.
7207
7208 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
7209
7210 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
7211 declarations for power8 load fusion.
7212 (emit_fusion_gpr_load): Likewise.
7213
7214 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
7215 tuning for power8, turn on fusion mode by default. Turn on sign
7216 extending fusion mode if normal fusion mode is on, and we are at
7217 -O2 or -O3.
7218 (fusion_gpr_load_p): New function, return true if we can fuse an
7219 addis instruction with a dependent load to a GPR.
7220 (emit_fusion_gpr_load): Emit the instructions for power8 load
7221 fusion to GPRs.
7222
0bd72901 7223 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
7224 (VSX load fusion peepholes): New peepholes to fuse together an
7225 addi instruction with a VSX load instruction.
7226
7227 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
7228 peepholes to fuse an addis instruction with a load to a GPR base
7229 register. If we are supporting sign extending fusions, convert
7230 sign extending loads to zero extending loads and add an explicit
7231 sign extension.
7232
c3f35647
SN
72332013-07-31 Sofiane Naci <sofiane.naci@arm.com>
7234
7235 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
7236 aarch-common-protos.h to extra_headers.
7237 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
7238 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
7239 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
7240 (arm_no_early_alu_shift_dep): Likewise.
7241 (arm_no_early_alu_shift_value_dep): Likewise.
7242 (arm_no_early_mul_dep): Likewise.
7243 (arm_no_early_store_addr_dep): Likewise.
7244 (arm_mac_accumulator_is_mul_result): Likewise.
7245 (arm_mac_accumulator_is_result): Likewise.
c3f35647 7246 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
7247 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
7248 here to ...
c3f35647 7249 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
7250 (arm_no_early_alu_shift_dep): Likewise.
7251 (arm_no_early_alu_shift_value_dep): Likewise.
7252 (arm_no_early_mul_dep): Likewise.
7253 (arm_no_early_store_addr_dep): Likewise.
7254 (arm_mac_accumulator_is_mul_result): Likewise.
7255 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
7256 * config/arm/aarch-common-protos.h: ... here. New file.
7257 * config/arm/t-arm (aarch-common.o): Define.
7258
72592013-07-31 Sofiane Naci <sofiane.naci@arm.com>
7260
7261 * config/arm/arm.md: Include new file "types.md".
7262 (define_attr "type"): Move from here to ...
7263 (define_attr "mul32"): Likewise.
7264 (define_attr "mul64"): Likewise.
7265 * config/arm/types.md: ... here. New file.
7266
228c1313
SH
72672013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
7268
7269 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
7270 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
7271
d6e9046d 72722013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
7273
7274 * gen-pass-instances.awk: Fix offset of substr().
7275
a167b052
DM
72762013-07-31 David Malcolm <dmalcolm@redhat.com>
7277
7278 * Makefile.in (pass-instances.def): New.
7279 (passes.o): Replace dependency on passes.def with one on
7280 pass-instances.def
7281
7282 * gen-pass-instances.awk: New.
7283
7284 * passes.c (pass_manager::pass_manager): Use pass-instances.def
7285 rather than passes.def, updating local definition of NEXT_PASS
7286 macro to add an extra NUM parameter (currently unused).
7287
315f8c0e
DM
72882013-07-30 David Malcolm <dmalcolm@redhat.com>
7289
7290 * Makefile.in (PASS_MANAGER_H): New.
7291 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
7292 (passes.o): Likewise.
7293 (statistics.o): Likewise.
7294 (cgraphunit.o): Likewise.
7295 (context.o): Depend on PASS_MANAGER_H.
7296
7297 * pass_manager.h: New.
7298
7299 * cgraphunit.c (cgraph_add_new_function): Update for moves
7300 of globals to fields of pass_manager.
7301 (analyze_function): Likewise.
7302 (expand_function): Likewise.
7303 (ipa_passes): Likewise.
7304 (compile): Likewise.
7305
7306 * context.c (context::context): New.
7307 * context.h (context::context): New.
7308 (context::get_passes): New.
7309 (context::passes_): New.
7310
7311 * lto-cgraph.c (input_node): Update for moves of globals to
7312 fields of pass_manager.
7313
7314 * passes.c (all_passes): Remove, in favor of a field of the
7315 same name within the new class pass_manager.
7316 (all_small_ipa_passes): Likewise.
7317 (all_lowering_passes): Likewise.
7318 (all_regular_ipa_passes): Likewise.
7319 (all_late_ipa_passes): Likewise.
7320 (all_lto_gen_passes): Likewise.
7321 (passes_by_id): Likewise.
7322 (passes_by_id_size): Likewise.
7323 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
7324 the new class pass_manager.
7325 (set_pass_for_id): Convert to...
7326 (pass_manager::set_pass_for_id): ...method.
7327 (get_pass_for_id): Convert to...
7328 (pass_manager::get_pass_for_id): ...method.
7329 (register_one_dump_file): Move body of implementation into...
7330 (pass_manager::register_one_dump_file): ...here.
7331 (register_dump_files_1): Convert to...
7332 (pass_manager::register_dump_files_1): ...method.
7333 (register_dump_files): Convert to...
7334 (pass_manager::register_dump_files): ...method.
7335 (create_pass_tab): Update for moves of globals to fields of
7336 pass_manager.
7337 (dump_passes): Move body of implementation into...
7338 (pass_manager::dump_passes): ...here.
7339 (register_pass): Move body of implementation into...
7340 (pass_manager::register_pass): ...here.
7341 (init_optimization_passes): Convert into...
7342 (pass_manager::pass_manager): ...constructor for new
7343 pass_manager class, and initialize the pass_lists array.
7344 (check_profile_consistency): Update for moves of globals to
7345 fields of pass_manager.
7346 (dump_profile_report): Move body of implementation into...
7347 (pass_manager::dump_profile_report): ...here.
7348 (ipa_write_summaries_1): Update for moves of pass lists from
7349 being globals to fields of pass_manager.
7350 (ipa_write_optimization_summaries): Likewise.
7351 (ipa_read_summaries): Likewise.
7352 (ipa_read_optimization_summaries): Likewise.
7353 (execute_all_ipa_stmt_fixups): Likewise.
7354
7355 * statistics.c (statistics_fini): Update for moves of globals to
7356 fields of pass_manager.
7357
7358 * toplev.c (general_init): Replace call to
7359 init_optimization_passes with construction of the pass_manager
7360 instance.
7361
7362 * tree-pass.h (all_passes): Remove, in favor of a field of the
7363 same name within the new class pass_manager.
7364 (all_small_ipa_passes): Likewise.
7365 (all_lowering_passes): Likewise.
7366 (all_regular_ipa_passes): Likewise.
7367 (all_lto_gen_passes): Likewise.
7368 (all_late_ipa_passes): Likewise.
7369 (passes_by_id): Likewise.
7370 (passes_by_id_size): Likewise.
7371 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
7372 the new class pass_manager.
7373 (get_pass_for_id): Remove.
7374
02cab1c1
RE
73752013-07-30 Richard Earnshaw <rearnsha@arm.com>
7376
7377 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
7378 configs.
7379
b2d3f886
RE
73802013-07-30 Richard Earnshaw <rearnsha@arm.com>
7381
7382 * arm.md (mulhi3): New expand pattern.
7383
605e86fa
JH
73842013-07-30 Jan Hubicka <jh@suse.cz>
7385 Martin Liska <marxin.liska@gmail.com>
7386
7387 * profile.c (compute_value_histograms): Do not ICE when
7388 there is mismatch only on some counters.
7389
14a87636
ZC
73902013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
7391
7392 PR rtl-optimization/57637
7393 * function.c (move_insn_for_shrink_wrap): Also check the
7394 GEN set of the LIVE problem for the liveness analysis
7395 if it exists, otherwise give up.
7396
0100cd3f
BS
73972013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
7398
7399 PR tree-optimization/57993
7400 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
7401 replaced statement in the candidate table.
7402 (phi_add_costs): Return infinite cost when the hidden basis does
7403 not dominate all phis on which the candidate is dependent.
7404 (replace_one_candidate): Record replaced statement in the
7405 candidate table.
7406
f0d811f7
JR
74072013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
7408
7409 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
7410 (ashlv2si3): New expander.
7411 (*ashlv2si3_i): New define_insn_and_split.
7412 * predicates.md (float_operation): Allow patterns with three
7413 basic sub-patterns.
7414
bba33211
JR
7415 PR rtl-optimization/58021
7416 * mode-switching.c (create_pre_exit): Always split off preceding
7417 insns if we are not at the basic block head.
7418
ff3f3951
MR
74192013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
7420
7421 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
7422 (UCLIBC_DYNAMIC_LINKER): New macro.
7423 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
7424 `-mnan=2008'.
7425 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
7426 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
7427 `-mnan=2008'.
7428 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
7429 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
7430 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
7431 for SF and DF modes. Use ieee_quad_format for TF mode.
7432 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
7433 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
7434 (mips_option_override): Handle `-mnan=legacy'.
7435 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
7436 `-mabs=2008' and `-mnan=2008'.
7437 (OPTION_DEFAULT_SPECS): Add "nan" default.
7438 (ASM_SPEC): Handle `-mnan='.
7439 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
7440 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
7441 comment accordingly.
7442 (neg<mode>2): Likewise.
7443 * config/mips/mips.opt (mabs, mnan): New options.
7444 * doc/install.texi (Configuration): Document `--with-nan=' option.
7445 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
7446 `-mnan=' options.
7447 (MIPS Options): Document them.
7448 * config.gcc <mips*-*-*>: Handle `--with-nan='.
7449 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
7450 * configure: Regenerate.
7451 * config.in: Regenerate.
7452
576e2f37
UB
74532013-07-29 Uros Bizjak <ubizjak@gmail.com>
7454
7455 * config/i386/i386.md (float post-reload splitters): Do not check
7456 for subregs of SSE registers.
7457
74582013-07-29 Uros Bizjak <ubizjak@gmail.com>
7459 H.J. Lu <hongjiu.lu@intel.com>
7460
7461 PR target/57954
7462 PR target/57988
7463 * config/i386/i386.md (post-reload splitter
7464 to avoid partial SSE reg dependency stalls): New pattern.
7465
a71f0749
DV
74662013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
7467
7468 * config/s390/s390.md ("movcc"): Swap load and store instructions.
7469
4c97f1cc
JR
74702013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
7471
7472 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
7473 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
7474
b0c733d8
CC
74752013-07-26 Cary Coutant <ccoutant@google.com>
7476
7477 * dwarf2out.c (die_checksum_ordered): Don't include template
7478 instantiations in signature.
7479 (is_template_parameter): New function.
7480 (is_template_instantiation): New function.
7481 (generate_skeleton_bottom_up): Don't include template instantiations
7482 in type unit DIE.
7483 (generate_skeleton): Likewise.
7484 (break_out_comdat_types): Move recursive call to break out nested
7485 types earlier.
7486 (prune_unused_types_mark_generic_parms_dies): Call
7487 is_template_parameter.
7488
040d8a1c
IB
74892013-07-26 Ian Bolton <ian.bolton@arm.com>
7490
7491 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
7492 uses vector registers.
89fdc743 7493 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 7494
85bd4ac6 74952013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 7496 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
7497
7498 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 7499 where appropriate.
85bd4ac6
KT
7500 * config/arm/arm.md (movcond_addsi): New splitter.
7501
b6051207
SA
75022013-07-25 Sterling Augustine <saugustine@google.com>
7503
7504 * dwarf2out.c (size_of_pubnames): Move code to...
7505 (include_pubname_in_output): ...here. New.
7506 (want_pubnames): Rearrange.
7507 (output_pubnames): Call include_pubname_in_output. Move assertion.
7508
41a7c215
CM
75092013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
7510
7511 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
7512
75132013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
7514
7515 PR target/38836
7516 * doc/extend.texi: Remove obsolete builtins. Fix
7517 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
7518
49bde175
JH
75192013-07-25 Jan Hubicka <jh@suse.cz>
7520
7521 * cgraph.c (release_function_body): Break out from ...
7522 (cgraph_release_function_body): ... this one; also release DECL_RESULT
7523 and DECL_ARGUMENTS.
7524 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
7525 old_tree in the map.
7526 (create_specialized_node): Update.
7527 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
7528 into index.
41a7c215
CM
7529 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
7530 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
7531 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
7532 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
7533 DECL_RESULT.
7534
4870352d
KT
75352013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7536
7537 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
7538 addsi3_carryin_alt2_<optab>): Correct output template.
7539
1d6aee1c
KT
75402013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7541
7542 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
7543 Adjust for arm_restrict_it.
7544 Remove trailing whitespace.
7545
c7cafd75
MK
75462013-07-25  Mark Kettenis  <kettenis@openbsd.org>
7547
017d38f5
MK
7548 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
7549 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
7550
c7cafd75
MK
7551 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
7552
00b7527b
VM
75532013-07-25 Vladimir Makarov <vmakarov@redhat.com>
7554
7555 PR rtl-optimization/57960
7556 * lra-constraints.c (process_alt_operands): Use the right mode
7557 when checking strict_low.
7558
4f63dfc6
JH
75592013-07-25 Jan Hubicka <jh@suse.cz>
7560
7561 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
7562 * cgraph.c (cgraph_remove_node): Do not release function body
7563 when in cgraph streaming.
7564 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
7565 in other partitions are not considered reachable; fix handling of
7566 clones.
4f63dfc6 7567
e6dcfa18
RR
75682013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7569
7570 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
7571
0b93d3b6
RR
75722013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7573
7574 PR target/19599
7575 PR target/57731
bb80c2eb 7576 PR target/57837
e6dcfa18 7577 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 7578 Ss with US. Adjust output for v5 and v4t.
41a7c215 7579 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 7580
0b93d3b6
RR
7581 * config/arm/constraints.md ("Ss"): Rename to US.
7582
690688b3
TG
75832013-07-25 Terry Guo <terry.guo@arm.com>
7584
7585 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
7586 shift_add/shift_sub0/shift_sub1 RTXs.
7587
a4ad093b 75882013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 7589 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
7590
7591 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
7592 (altivec_vpks<VI_char>ss): Likewise.
7593 (altivec_vpks<VI_char>us): Likewise.
7594 (altivec_vpku<VI_char>us): Likewise.
7595 (altivec_vpku<VI_char>um): Likewise.
7596
8c5005ce
DM
75972013-07-24 David Malcolm <dmalcolm@redhat.com>
7598
7599 Introduce context class.
7600
7601 * Makefile.in (CONTEXT_H): New.
7602 (OBJS): Add context.o.
7603 (toplev.o): Add CONTEXT_H to dependencies.
7604 (context.o): New.
7605
41a7c215 7606 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
7607
7608 * context.c: New.
7609
7610 * context.h: New.
7611
ce4a9422
JR
76122013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
7613
7614 PR rtl-optimization/57968
7615 * mode-switching.c (create_pre_exit): Allow instructions that
7616 don't set a return register to need a non-exit mode.
7617
493f4c9e 76182013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 7619 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 7620
b5860fd3
WS
7621 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
7622 operands to vperm for little endian.
7623 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
7624 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 7625
73792b92 76262013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 7627 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
7628
7629 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
7630 two operands for little-endian.
7631
14c21302
SE
76322013-07-23 Steve Ellcey <sellcey@mips.com>
7633
7634 * config/mips/mips.c (mips_case_values_threshold): New.
7635 (TARGET_CASE_VALUES_THRESHOLD): Define.
7636
a6056198 76372013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 7638 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
7639
7640 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
7641 selection of field for vector splat in little endian mode.
7642
dd7a40e1
MM
76432013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
7644
7645 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
7646 expanders to rs6000.md.
7647 (ior<mode>3): Likewise.
7648 (and<mode>3): Likewise.
7649 (one_cmpl<mode>2): Likewise.
7650 (nor<mode>3): Likewise.
7651 (andc<mode>3): Likewise.
7652 (eqv<mode>3): Likewise.
7653 (nand<mode>3): Likewise.
7654 (orc<mode>3): Likewise.
7655
7656 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
7657 declaration.
7658
7659 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
7660 to split multi-word logical operations.
7661 (rs6000_split_logical_di): Likewise.
7662 (rs6000_split_logical): Likewise.
7663
7664 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
7665 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
7666 and allow TImode operations in 32-bit.
7667 (vsx_and<mode>3_64bit): Likewise.
7668 (vsx_ior<mode>3_32bit): Likewise.
7669 (vsx_ior<mode>3_64bit): Likewise.
7670 (vsx_xor<mode>3_32bit): Likewise.
7671 (vsx_xor<mode>3_64bit): Likewise.
7672 (vsx_one_cmpl<mode>2_32bit): Likewise.
7673 (vsx_one_cmpl<mode>2_64bit): Likewise.
7674 (vsx_nor<mode>3_32bit): Likewise.
7675 (vsx_nor<mode>3_64bit): Likewise.
7676 (vsx_andc<mode>3_32bit): Likewise.
7677 (vsx_andc<mode>3_64bit): Likewise.
7678 (vsx_eqv<mode>3_32bit): Likewise.
7679 (vsx_eqv<mode>3_64bit): Likewise.
7680 (vsx_nand<mode>3_32bit): Likewise.
7681 (vsx_nand<mode>3_64bit): Likewise.
7682 (vsx_orc<mode>3_32bit): Likewise.
7683 (vsx_orc<mode>3_64bit): Likewise.
7684
7685 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
7686 logical types in GPRs.
7687
7688 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
7689 logical insns to rs6000.md, and allow TImode operations in
7690 32-bit.
7691 (altivec_ior<mode>3): Likewise.
7692 (altivec_xor<mode>3): Likewise.
7693 (altivec_one_cmpl<mode>2): Likewise.
7694 (altivec_nor<mode>3): Likewise.
7695 (altivec_andc<mode>3): Likewise.
7696
7697 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
7698 attributes for moving the 128-bit logical operations into
7699 rs6000.md.
7700 (BOOL_REGS_OUTPUT): Likewise.
7701 (BOOL_REGS_OP1): Likewise.
7702 (BOOL_REGS_OP2): Likewise.
7703 (BOOL_REGS_UNARY): Likewise.
7704 (BOOL_REGS_AND_CR0): Likewise.
7705 (one_cmpl<mode>2): Add support for DI logical operations on
7706 32-bit, splitting the operations to 32-bit.
7707 (anddi3): Likewise.
7708 (iordi3): Likewise.
7709 (xordi3): Likewise.
7710 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
7711 changes to combine the 32/64-bit code, allow logical operations on
7712 TI mode in 32-bit, and to use similar match_operator patterns like
7713 scalar mode uses. Combine the Altivec and VSX code for logical
7714 operations, and move it here.
7715 (ior<mode>3, 128-bit types): Likewise.
7716 (xor<mode>3, 128-bit types): Likewise.
7717 (one_cmpl<mode>3, 128-bit types): Likewise.
7718 (nor<mode>3, 128-bit types): Likewise.
7719 (andc<mode>3, 128-bit types): Likewise.
7720 (eqv<mode>3, 128-bit types): Likewise.
7721 (nand<mode>3, 128-bit types): Likewise.
7722 (orc<mode>3, 128-bit types): Likewise.
7723 (and<mode>3_internal): Likewise.
7724 (bool<mode>3_internal): Likewise.
7725 (boolc<mode>3_internal1): Likewise.
7726 (boolc<mode>3_internal2): Likewise.
7727 (boolcc<mode>3_internal1): Likewise.
7728 (boolcc<mode>3_internal2): Likewise.
7729 (eqv<mode>3_internal1): Likewise.
7730 (eqv<mode>3_internal2): Likewise.
7731 (one_cmpl1<mode>3_internal): Likewise.
7732
12211b99 77332013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
7734
7735 * config/microblaze/microblaze.c (microblaze_expand_prologue):
7736 Rename flag_stack_usage to flag_stack_usage_info.
7737
12211b99 77382013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 7739
a5f257fd
ME
7740 * config/microblaze/sync.md: New file.
7741 * config/microblaze/microblaze.md: Include sync.md
7742 * config/microblaze/microblaze.c: Add print_operand 'y'.
7743 * config/microblaze/constraints.md: Add memory_contraint
7744 'Q' which is a single register.
450b0ebb 7745
49fba14f
EB
77462013-07-23 Eric Botcazou <ebotcazou@adacore.com>
7747
7748 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
7749
c7b3b99f
PCC
77502013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
7751
7752 * reload.c (find_reloads): Exit loop once we find this operand
7753 cannot be reloaded somehow for this alternative.
7754
7755 * reload.c (find_reloads): Exit loop once we find a hard register.
7756
7757 * rtlanal.c (computed_jump_p): Exit loop once we find label
7758 reference is used.
7759
7760 * i386.c (ix86_pad_returns): Exit loop after setting replace.
7761
7762 * cfgloopmanip.c (remove_path): Exit loop after setting
7763 irred_invalidated.
7764
7765 * gensupport.c (subst_dup): Avoid loop if code is not
7766 MATCH_DUP nor MATCH_OP_DUP.
7767
c8fbf1fa
NBJ
77682013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
7769
7770 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
7771
9259db42
YZ
77722013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7773
7774 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
7775 true for SP_REGNUM if mode == ptr_mode.
7776 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
7777 with value R0_REGNUM + 31.
7778
00edcfbe
YZ
77792013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7780
7781 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
7782 pad pointer-typed argument downward.
7783
43be9a95
YZ
77842013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7785
7786 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
7787 and __ILP32__ when the ILP32 model is in use.
7788
28514dda
YZ
77892013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7790
7791 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
7792 (aarch64_load_symref_appropriately): In the case of
7793 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
7794 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
7795 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
7796 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
7797 if 'mode' doesn't equal to 'ptr_mode'.
7798 (aarch64_output_mi_thunk): Add an assertion on the alignment of
7799 'vcall_offset'; change to call aarch64_emit_move differently depending
7800 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
7801 to calculate the upper bound of 'vcall_offset'.
7802 (aarch64_cannot_force_const_mem): Change to also return true if
7803 mode != ptr_mode.
7804 (aarch64_legitimize_reload_address): In the case of large
7805 displacements, add new local variable 'xmode' and an assertion
7806 based on it; change to use 'xmode' to generate the new rtx and
7807 reload.
7808 (aarch64_asm_trampoline_template): Change to generate the template
7809 differently depending on TARGET_ILP32 or not; change to use
7810 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
7811 (aarch64_trampoline_size): Removed.
7812 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
7813 and replace immediate literals with it. Change to use 'ptr_mode'
7814 instead of 'DImode' and call convert_memory_address if the mode
7815 of 'fnaddr' doesn't equal to 'ptr_mode'.
7816 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
7817 to output symbol.
7818 (aarch64_elf_asm_destructor): Likewise.
7819 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
7820 on TARGET_ILP32 instead of aarch64_trampoline_size.
7821 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
7822 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
7823 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
7824 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
7825 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
7826 (storewb_pair<GPI:mode>_<P:mode>): ... this.
7827 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
7828 depending on the value of 'mode'.
7829 (add_losym_<mode>): New.
7830 (ldr_got_small_<mode>): New, based on ldr_got_small.
7831 (ldr_got_small): Remove.
7832 (ldr_got_small_sidi): New.
7833 * config/aarch64/iterators.md (P): New.
7834 (PTR): Change to 'ptr_mode' in the condition.
7835
17a819cb
YZ
78362013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7837
7838 * config.gcc (aarch64*-*-*): Support --with-abi.
7839 (aarch64*-*-elf): Support --with-multilib-list.
7840 (aarch64*-*-linux*): Likewise.
7841 (supported_defaults): Add abi to aarch64*-*-*.
7842 * configure.ac: Mention AArch64 for --with-multilib-list.
7843 * configure: Re-generated.
7844 * config/aarch64/biarchilp32.h: New file.
7845 * config/aarch64/biarchlp64.h: New file.
7846 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
7847 (ABI_SPEC): Ditto.
7848 (MULTILIB_DEFAULTS): Ditto.
7849 (DRIVER_SELF_SPECS): Ditto.
7850 (ASM_SPEC): Update to also substitute -mabi.
7851 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
7852 file whose name depends on -mabi= and -mbig-endian.
7853 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
7854 TARGET_ILP32.
7855 (POINTER_SIZE): New define.
7856 (POINTERS_EXTEND_UNSIGNED): Ditto.
7857 (enum aarch64_abi_type): New enumeration tag.
7858 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
7859 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
7860 (TARGET_ILP32): New define.
7861 * config/aarch64/aarch64.opt (mabi): New.
7862 (aarch64_abi): New.
7863 (ilp32, lp64): New values for -mabi.
7864 * config/aarch64/t-aarch64 (comma): New define.
7865 (MULTILIB_OPTIONS): Ditto.
7866 (MULTILIB_DIRNAMES): Ditto.
7867 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
7868 * doc/invoke.texi: Document -mabi for AArch64.
7869
9f9cbdce
GJL
78702013-07-23 Georg-Johann Lay <avr@gjlay.de>
7871
7872 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
7873
7061977b 78742013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 7875 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
7876
7877 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
7878 endianness when selecting field to splat.
7879
75a41878
EC
78802013-07-22 Eric Christopher <echristo@gmail.com>
7881
7882 * dwarf2out.c (die_odr_checksum): New function to use
7883 CHECKSUM_ macros and ULEB128 for DIE tag.
7884 (generate_type_signature): Use.
41a7c215 7885
38ae58ca
EB
78862013-07-22 Eric Botcazou <ebotcazou@adacore.com>
7887
7888 * config.gcc (sparc*-*-*): Accept leon3 processor.
7889 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
7890 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
7891 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
7892 * config/sparc/sparc.opt (enum processor_type): Add leon3.
7893 (mfix-ut699): Adjust comment.
7894 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
7895 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
7896 (CPP_CPU_SPEC): Likewise.
7897 (ASM_CPU_SPEC): Likewise.
7898 * config/sparc/sparc.c (leon3_cost): New constant.
7899 (sparc_option_override): Add leon3 support.
7900 (mem_ref): New function.
7901 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
7902 (sparc_do_work_around_errata): Look into the instruction in the delay
7903 slot and adjust accordingly. Add fix for the data cache nullify issues
7904 of the UT699. Change insertion position for the NOP.
7905 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
7906 (leon3_load): New reservation.
7907 (leon_store): Bump latency to 2.
7908 (grfpu): New automaton.
7909 (grfpu_alu): New unit.
7910 (grfpu_ds): Likewise.
7911 (leon_fp_alu): Adjust.
7912 (leon_fp_mult): Delete.
7913 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
7914 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
7915 * config/sparc/sparc.md (cpu): Add leon3.
7916 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
7917 (swapsi): Likewise.
7918 (atomic_test_and_set): Likewise.
7919 (ldstub): Likewise.
7920
04dfc6df
JU
79212013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
7922
7923 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
7924 default for R5900 targets.
7925 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
7926 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
7927 * config/mips/mips.c (mips_option_override): Report an error for
7928 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
7929 for -march=r5900 -mhard-float.
7930
c7b3b99f 79312013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
7932
7933 * df-problems.c (can_move_insns_across): Exit loop once we
7934 find a non-fixed, non-global register.
7935
7936 * ipa-pure-const.c (propagate_nothrow): Exit loop after
7937 setting can_throw.
7938
7939 * omega.c (omega_eliminate_red): Break after setting red_found.
7940 (omega_problem_has_red_equations): Similarly after setting found.
7941 (omega_query_variable): Similarly after setting coupled.
7942
9b6e6981
MP
79432013-07-22 Marek Polacek <polacek@redhat.com>
7944
7945 * gimplify.c: Don't include gimple.h twice.
7946
5e5f7673
KT
79472013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7948
7949 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
7950 instead of TARGET_THUMB1.
7951 (Pz): New constraint.
7952 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
7953 encodings.
7954 (compare_negsi_si): Likewise.
7955 (compare_addsi2_op0): Likewise.
7956 (compare_addsi2_op1): Likewise.
7957 (addsi3_carryin_<optab>): Likewise.
7958 (addsi3_carryin_alt2_<optab>): Likewise.
7959 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
7960 for arm_restrict_it.
7961 (subsi3_carryin): Likewise.
7962 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
7963 (minmax_arithsi): Disable for arm_restrict_it.
7964 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
7965 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
7966 (satsi_<SAT:code>_shift): Likewise.
7967 (arm_shiftsi3): Add alternative for 16-bit encoding.
7968 (arm32_movhf): Disable for arm_restrict_it.
7969 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
7970 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
7971
859abddd
SN
79722013-07-22 Sofiane Naci <sofiane.naci@arm.com>
7973
7974 * config/arm/arm.md (attribute "insn"): Delete.
7975 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
7976 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
7977 (not_shiftsi): Update for attribute change.
7978 (not_shiftsi_compare0): Likewise.
7979 (not_shiftsi_compare0_scratch): Likewise.
7980 (arm_one_cmplsi2): Likewise.
7981 (thumb1_one_cmplsi2): Likewise.
7982 (notsi_compare0): Likewise.
7983 (notsi_compare0_scratch): Likewise.
7984 (thumb1_movdi_insn): Likewise.
7985 (arm_movsi_insn): Likewise.
7986 (movhi_insn_arch4): Likewise.
7987 (movhi_bytes): Likewise.
7988 (arm_movqi_insn): Likewise.
7989 (thumb1_movqi_insn): Likewise.
7990 (arm32_movhf): Likewise.
7991 (thumb1_movhf): Likewise.
7992 (arm_movsf_soft_insn): Likewise.
7993 (thumb1_movsf_insn): Likewise.
7994 (thumb_movdf_insn): Likewise.
7995 (movsicc_insn): Likewise.
7996 (movsfcc_soft_insn): Likewise.
7997 (and_scc): Likewise.
7998 (cond_move): Likewise.
7999 (if_move_not): Likewise.
8000 (if_not_move): Likewise.
8001 (if_shift_move): Likewise.
8002 (if_move_shift): Likewise.
8003 (if_shift_shift): Likewise.
8004 (if_not_arith): Likewise.
8005 (if_arith_not): Likewise.
8006 (cond_move_not): Likewise.
8007 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
8008 (neon_mov<mode>): Likewise.
8009 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
8010 (thumb2_movsi_vfp): Likewise.
8011 (movsf_vfp): Likewise.
8012 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
8013 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
8014 change.
859abddd
SN
8015 (cortexa7_older_only): Likewise.
8016 (cortexa7_younger): Likewise.
8017 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
8018 (1020alu_shift_op): Likewise.
8019 (1020alu_shift_reg_op): Likewise.
8020 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
8021 (alu_shift_op): Likewise.
8022 (alu_shift_reg_op): Likewise.
8023 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
8024 (11_alu_shift_op): Likewise.
8025 (11_alu_shift_reg_op): Likewise.
8026 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
8027 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
8028 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
8029 change.
859abddd
SN
8030 (cortex_a15_alu_shift): Likewise.
8031 (cortex_a15_alu_shift_reg): Likewise.
8032 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
8033 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
8034 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
8035 change.
859abddd 8036 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
8037 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
8038 change.
859abddd
SN
8039 (cortex_a7_alu_reg): Likewise.
8040 (cortex_a7_alu_shift): Likewise.
8041 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
8042 (cortex_a8_alu_shift): Likewise.
8043 (cortex_a8_alu_shift_reg): Likewise.
8044 (cortex_a8_mov): Likewise.
8045 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
8046 (cortex_a9_dp_shift): Likewise.
8047 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
8048 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
8049 (cortex_r4_mov): Likewise.
8050 (cortex_r4_alu_shift): Likewise.
8051 (cortex_r4_alu_shift_reg): Likewise.
8052 * config/arm/fa526.md (526_alu_op): Update for attribute change.
8053 (526_alu_shift_op): Likewise.
8054 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
8055 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
8056 (626te_alu_shift_op): Likewise.
8057 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
8058 (726te_alu_op): Likewise.
8059 (726te_alu_shift_op): Likewise.
8060 (726te_alu_shift_reg_op): Likewise.
8061 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
8062 (mp626_alu_shift_op): Likewise.
8063 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
8064 (pj4_alu_e1_conds): Likewise.
8065 (pj4_alu): Likewise.
8066 (pj4_alu_conds): Likewise.
8067 (pj4_shift): Likewise.
8068 (pj4_shift_conds): Likewise.
8069 (pj4_alu_shift): Likewise.
8070 (pj4_alu_shift_conds): Likewise.
8071
95b97fac
KT
80722013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8073
8074 * config/arm/predicates.md (shiftable_operator_strict_it):
8075 New predicate.
8076 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
8077 Disable cond_exec version for arm_restrict_it.
8078 (thumb2_smaxsi3): Convert to generate cond_exec.
8079 (thumb2_sminsi3): Likewise.
8080 (thumb32_umaxsi3): Likewise.
8081 (thumb2_uminsi3): Likewise.
8082 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
8083 (thumb2_neg_abssi2): Likewise.
8084 (thumb2_mov_scc): Add alternative for 16-bit encoding.
8085 (thumb2_movsicc_insn): Adjust alternatives.
8086 (thumb2_mov_negscc): Disable for arm_restrict_it.
8087 (thumb2_mov_negscc_strict_it): New pattern.
8088 (thumb2_mov_notscc_strict_it): New pattern.
8089 (thumb2_mov_notscc): Disable for arm_restrict_it.
8090 (thumb2_ior_scc): Likewise.
8091 (thumb2_ior_scc_strict_it): New pattern.
8092 (thumb2_cond_move): Adjust for arm_restrict_it.
8093 (thumb2_cond_arith): Disable for arm_restrict_it.
8094 (thumb2_cond_arith_strict_it): New pattern.
8095 (thumb2_cond_sub): Adjust for arm_restrict_it.
8096 (thumb2_movcond): Likewise.
8097 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
8098 (thumb2_zero_extendhisi2_v6): Likewise.
8099 (thumb2_zero_extendqisi2_v6): Likewise.
8100 (orsi_notsi_si): Likewise.
8101 (orsi_not_shiftsi_si): Likewise.
8102
d5a6ef82
GJL
81032013-07-22 Georg-Johann Lay <avr@gjlay.de>
8104
8105 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
8106 instruction sequence is 1 byte shorter.
8107
d9e71154
UB
81082013-07-22 Uros Bizjak <ubizjak@gmail.com>
8109
8110 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
8111 it is not needed after split.
8112
8c6381ec
IS
81132013-07-20 Iain Sandoe <iain@codesourcery.com>
8114
8115 PR target/51784
8116 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
8117 second label for nonlocal goto receivers. Don't output pic base labels
8118 unless we're producing PIC; mark that action unreachable().
8119 (ix86_save_reg): If the function contains a nonlocal label, save the
8120 PIC base reg.
8121 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 8122 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
8123 (update_pic_label_number_if_needed): New.
8124 (machopic_output_function_base_name): Adjust for nonlocal receiver
8125 case.
8126 (machopic_should_output_picbase_label): New.
8127 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
8128 (nonlocal_goto_receiver): New insn and split.
8129
d05d0709
JG
81302013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
8131
8132 * config/aarch64/aarch64-builtins.c
8133 (aarch64_fold_builtin): Fold abs in all modes.
8134 * config/aarch64/aarch64-simd-builtins.def
8135 (abs): Enable for all modes.
8136 * config/aarch64/arm_neon.h
8137 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
8138 (vabs_f64): Add missing intrinsic.
8139
ba590e63
IB
81402013-07-19 Ian Bolton <ian.bolton@arm.com>
8141
8142 * config/aarch64/arm_neon.h (vabs_s64): New function
8143
02371798
GJL
81442013-07-19 Georg-Johann Lay <avr@gjlay.de>
8145
8146 PR target/57516
8147 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
8148 * config/avr/avr.md (adjust_len): Add `round'.
8149 * config/avr/avr-protos.h (avr_out_round): New prototype.
8150 (avr_out_plus): Add `out_label' argument.
8151 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
8152 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
8153 Handle the case where `insn' is just a pattern.
8154 (avr_out_bitop): Handle the case where `insn' is just a pattern.
8155 (avr_out_round): New function.
8156 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
8157
12211b99 81582013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
8159
8160 * config/microblaze/microblaze.c (microblaze_expand_prologue):
8161 Add check for flag_stack_usage to handle -fstack-usage support
8162
12211b99 81632013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
8164
8165 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
8166 interaction for new Power8 flags and VSX.
8167
df9dda2d
ST
81682013-07-18 Sriraman Tallam <tmsriram@google.com>
8169
8170 PR middle-end/57698
8171 * tree-inline.c (expand_call_inline): Emit errors during
8172 early_inlining only if optimization is not turned on.
8173
0f9cdef4
DM
81742013-07-18 David Malcolm <dmalcolm@redhat.com>
8175
8176 * passes.def: New.
8177
8178 * passes.c (init_optimization_passes): Move the construction of
8179 the pass hierarchy into a new passes.def file.
8180
8181 * Makefile.in (passes.o): Add dependency on passes.def.
8182
2efa4087
DM
81832013-07-18 David Malcolm <dmalcolm@redhat.com>
8184
8185 * passes.c (init_optimization_passes): Introduce macros for
8186 constructing the tree of passes (INSERT_PASSES_AFTER,
8187 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
8188 TERMINATE_PASS_LIST).
8189
bc404e1b
VM
81902013-07-18 Vladimir Makarov <vmakarov@redhat.com>
8191 Wei Mi <wmi@google.com>
8192
8193 PR rtl-optimization/57878
8194 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
8195 top.
8196 (reload_pseudo_compare_func): Check nregs first for reload
8197 pseudos.
8198
d675843f
DM
81992013-07-18 David Malcolm <dmalcolm@redhat.com>
8200
8201 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
8202
c7b3b99f 82032013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
8204
8205 * read-rtl.c (validate_const_int): Once an invalid character is
8206 seen, quit the loop.
8207
8208 * gengtype.c (write_roots): Similarly once we find the "deletable"
8209 or "if_marked" option.
8210
52fceb44
SN
82112013-07-18 Sofiane Naci <sofiane.naci@arm.com>
8212
8213 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
8214 "xtab" and "sat". Move value "clz" from here to ...
8215 (attriubte "type"): ... here.
8216 (satsi_<SAT:code>): Delete "insn" attribute.
8217 (satsi_<SAT:code>_shift): Likewise.
8218 (arm_zero_extendqisi2addsi): Likewise.
8219 (arm_extendqisi2addsi): Likewise.
8220 (clzsi2): Update for attribute changes.
8221 (rbitsi2): Likewise.
371e77e3
UB
8222 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
8223 attribute.
52fceb44
SN
8224 (arm_usatsihi): Likewise.
8225 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
8226
006bd006
SN
82272013-07-18 Sofiane Naci <sofiane.naci@arm.com>
8228
8229 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
8230 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
8231 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
8232 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
8233 in alphabetical order.
8234 (attribute "core_cycles"): Update for attribute changes.
8235 (arm_addsi3): Likewise.
8236 (addsi3_compare0): Likewise.
8237 (addsi3_compare0_scratch): Likewise.
8238 (addsi3_compare_op1): Likewise.
8239 (addsi3_compare_op2): Likewise.
8240 (compare_addsi2_op0): Likewise.
8241 (compare_addsi2_op1): Likewise.
8242 (addsi3_carryin_shift_<optab>): Likewise.
8243 (subsi3_carryin_shift): Likewise.
8244 (rsbsi3_carryin_shift): Likewise.
8245 (arm_subsi3_insn): Likewise.
8246 (subsi3_compare0): Likewise.
8247 (subsi3_compare): Likewise.
8248 (arm_andsi3_insn): Likewise.
8249 (thumb1_andsi3_insn): Likewise.
8250 (andsi3_compare0): Likewise.
8251 (andsi3_compare0_scratch): Likewise.
8252 (zeroextractsi_compare0_scratch
8253 (andsi_not_shiftsi_si): Likewise.
8254 (iorsi3_insn): Likewise.
8255 (iorsi3_compare0): Likewise.
8256 (iorsi3_compare0_scratch): Likewise.
8257 (arm_xorsi3): Likewise.
8258 (thumb1_xorsi3_insn): Likewise.
8259 (xorsi3_compare0): Likewise.
8260 (xorsi3_compare0_scratch): Likewise.
8261 (satsi_<SAT:code>_shift): Likewise.
8262 (rrx): Likewise.
8263 (arm_shiftsi3): Likewise.
8264 (shiftsi3_compare0): Likewise.
8265 (not_shiftsi): Likewise.
8266 (not_shiftsi_compare0): Likewise.
8267 (not_shiftsi_compare0_scratch): Likewise.
8268 (arm_one_cmplsi2): Likewise.
8269 (thumb_one_complsi2): Likewise.
8270 (notsi_compare0): Likewise.
8271 (notsi_compare0_scratch): Likewise.
8272 (thumb1_zero_extendhisi2): Likewise.
8273 (arm_zero_extendhisi2): Likewise.
8274 (arm_zero_extendhisi2_v6): Likewise.
8275 (arm_zero_extendhisi2addsi): Likewise.
8276 (thumb1_zero_extendqisi2): Likewise.
8277 (thumb1_zero_extendqisi2_v6): Likewise.
8278 (arm_zero_extendqisi2): Likewise.
8279 (arm_zero_extendqisi2_v6): Likewise.
8280 (arm_zero_extendqisi2addsi): Likewise.
8281 (thumb1_extendhisi2): Likewise.
8282 (arm_extendhisi2): Likewise.
8283 (arm_extendhisi2_v6): Likewise.
8284 (arm_extendqisi): Likewise.
8285 (arm_extendqisi_v6): Likewise.
8286 (arm_extendqisi2addsi): Likewise.
8287 (thumb1_extendqisi2): Likewise.
8288 (thumb1_movdi_insn): Likewise.
8289 (arm_movsi_insn): Likewise.
8290 (movsi_compare0): Likewise.
8291 (movhi_insn_arch4): Likewise.
8292 (movhi_bytes): Likewise.
8293 (arm_movqi_insn): Likewise.
8294 (thumb1_movqi_insn): Likewise.
8295 (arm32_movhf): Likewise.
8296 (thumb1_movhf): Likewise.
8297 (arm_movsf_soft_insn): Likewise.
8298 (thumb1_movsf_insn): Likewise.
8299 (movdf_soft_insn): Likewise.
8300 (thumb_movdf_insn): Likewise.
8301 (arm_cmpsi_insn): Likewise.
8302 (cmpsi_shiftsi): Likewise.
8303 (cmpsi_shiftsi_swp): Likewise.
8304 (arm_cmpsi_negshiftsi_si): Likewise.
8305 (movsicc_insn): Likewise.
8306 (movsfcc_soft_insn): Likewise.
8307 (arith_shiftsi): Likewise.
8308 (arith_shiftsi_compare0
8309 (arith_shiftsi_compare0_scratch
8310 (sub_shiftsi): Likewise.
8311 (sub_shiftsi_compare0
8312 (sub_shiftsi_compare0_scratch
8313 (and_scc): Likewise.
8314 (cond_move): Likewise.
8315 (if_plus_move): Likewise.
8316 (if_move_plus): Likewise.
8317 (if_move_not): Likewise.
8318 (if_not_move): Likewise.
8319 (if_shift_move): Likewise.
8320 (if_move_shift): Likewise.
8321 (if_shift_shift): Likewise.
8322 (if_not_arith): Likewise.
8323 (if_arith_not): Likewise.
8324 (cond_move_not): Likewise.
8325 (thumb1_ashlsi3): Set type attribute.
8326 (thumb1_ashrsi3): Likewise.
8327 (thumb1_lshrsi3): Likewise.
8328 (thumb1_rotrsi3): Likewise.
8329 (shiftsi3_compare0_scratch): Likewise.
8330 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
8331 (neon_mov<mode>): Likewise.
371e77e3
UB
8332 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
8333 attribute changes.
006bd006
SN
8334 (thumb2_movsi_insn): Likewise.
8335 (thumb2_cmpsi_neg_shiftsi): Likewise.
8336 (thumb2_extendqisi_v6): Likewise.
8337 (thumb2_zero_extendhisi2_v6): Likewise.
8338 (thumb2_zero_extendqisi2_v6): Likewise.
8339 (thumb2_shiftsi3_short): Likewise.
8340 (thumb2_addsi3_compare0_scratch): Likewise.
8341 (orsi_not_shiftsi_si): Likewise.
8342 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
8343 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
8344 changes.
8345 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
8346 (1020alu_shift_op): Likewise.
8347 (1020alu_shift_reg_op): Likewise.
8348 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
8349 (alu_shift_op): Likewise.
8350 (alu_shift_reg_op): Likewise.
8351 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
8352 (11_alu_shift_op): Likewise.
8353 (11_alu_shift_reg_op): Likewise.
8354 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
8355 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
8356 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
8357 changes.
006bd006
SN
8358 (cortex_a15_alu_shift): Likewise.
8359 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
8360 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
8361 changes.
006bd006
SN
8362 (cortex_a5_alu_shift): Likewise.
8363 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
8364 changes.
8365 (cortex_a53_alu_shift): Likewise.
8366 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
8367 changes.
8368 (cortex_a7_alu_reg): Likewise.
8369 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
8370 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
8371 changes.
006bd006
SN
8372 (cortex_a8_alu_shift): Likewise.
8373 (cortex_a8_alu_shift_reg): Likewise.
8374 (cortex_a8_mov): Likewise.
8375 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
8376 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
8377 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
8378 changes.
8379 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
8380 changes.
006bd006
SN
8381 (cortex_r4_mov): Likewise.
8382 (cortex_r4_alu_shift): Likewise.
8383 (cortex_r4_alu_shift_reg): Likewise.
8384 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
8385 (526_alu_shift_op): Likewise.
8386 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
8387 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
8388 (626te_alu_shift_op): Likewise.
8389 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
8390 (726te_alu_op): Likewise.
8391 (726te_alu_shift_op): Likewise.
8392 (726te_alu_shift_reg_op): Likewise.
8393 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
8394 (mp626_alu_shift_op): Likewise.
8395 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
8396 (pj4_alu_e1_conds): Likewise.
8397 (pj4_alu): Likewise.
8398 (pj4_alu_conds): Likewise.
8399 (pj4_shift): Likewise.
8400 (pj4_shift_conds): Likewise.
8401 (pj4_alu_shift): Likewise.
8402 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
8403 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
8404 changes.
006bd006
SN
8405 (cortexa7_older_only): Likewise.
8406 (cortexa7_younger): Likewise.
8407
651df1b2
DM
84082013-07-18 David Malcolm <dmalcolm@redhat.com>
8409
8410 * ipa-pure-const.c (generate_summary): Rename to...
8411 (pure_const_generate_summary): ... this.
8412
ea717bd7
IS
84132013-07-17 Iain Sandoe <iain@codesourcery.com>
8414
8415 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
8416
a1259a13
YR
84172013-07-17 Yvan Roux <yvan.roux@linaro.org>
8418
8419 PR target/57909
8420 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
8421 usage in HI mode.
8422
167f68ed
AK
84232013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8424
8425 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
8426 enabled without -march=zEC12.
8427 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
8428 flags to be set.
8429
f900a982
MR
84302013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
8431
8432 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
8433 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
8434 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
8435 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
8436 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
8437 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
8438 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
8439 ISA_HAS_FP4.
8440 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
8441 and ISA_HAS_NMADD3_NMSUB3.
8442 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
8443 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
8444 (nmsub4<mode>, nmsub3<mode>): Likewise.
8445 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
8446
d4ed27eb
MR
84472013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
8448
8449 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
8450 TARGET_MIPS5400 checking.
8451
7a5add18
PB
84522013-07-16 Jakub Jelinek <jakub@redhat.com>
8453 Peter Bergner <bergner@vnet.ibm.com>
8454
8455 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
8456 registers in the comment.
8457 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
8458 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
8459 rather than FIRST_PSEUDO_REGISTERS.
8460
84612013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
8462
8463 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
8464 enable extra ISA flags with TARGET_HTM.
8465
d2ab0929
MR
84662013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
8467
8468 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
8469 Fix comment typos.
8470
839c74bc
CH
84712013-07-15 Cong Hou <congh@google.com>
8472
8473 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
8474 in compare function for sorting.
8475
7a5add18 84762013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
8477
8478 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
8479 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
8480 * config/rs6000/rs6000.opt: Add -mhtm option.
8481 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
8482 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
8483 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
8484 __HTM__ if the HTM instructions are available.
8485 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
8486 htm_spr_reg_operand): New define_predicates.
8487 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
8488 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
8489 Include htm.md.
8490 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
8491 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
8492 HTM builtin functions.
8493 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
8494 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
8495 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
8496 (rs6000_builtin_mask_calculate): Likewise.
8497 (rs6000_option_override_internal): Likewise.
8498 (bdesc_htm): Add new HTM builtin support.
8499 (htm_spr_num): New function.
8500 (htm_spr_regno): Likewise.
8501 (rs6000_htm_spr_icode): Likewise.
8502 (htm_expand_builtin): Likewise.
8503 (htm_init_builtins): Likewise.
8504 (rs6000_expand_builtin): Add support for HTM builtin functions.
8505 (rs6000_init_builtins): Likewise.
371e77e3
UB
8506 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
8507 option.
0258b6e4
PB
8508 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
8509 (TARGET_HTM, MASK_HTM): Define macros.
8510 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
8511 (FIXED_REGISTERS): Likewise.
8512 (CALL_USED_REGISTERS): Likewise.
8513 (CALL_REALLY_USED_REGISTERS): Likewise.
8514 (REG_ALLOC_ORDER): Likewise.
8515 (enum reg_class): Likewise.
8516 (REG_CLASS_NAMES): Likewise.
8517 (REG_CLASS_CONTENTS): Likewise.
8518 (REGISTER_NAMES): Likewise.
8519 (ADDITIONAL_REGISTER_NAMES): Likewise.
8520 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
8521 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
8522 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
8523 * config/rs6000/htm.md: New file.
8524 * config/rs6000/htmintrin.h: New file.
8525 * config/rs6000/htmxlintrin.h: New file.
8526
87dd8ab0
MS
85272013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
8528
8529 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
8530 Define SYMBOL_TINY_GOT, update comment.
8531 * config/aarch64/aarch64.c
8532 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
8533 (aarch64_expand_mov_immediate): Likewise.
8534 (aarch64_print_operand): Likewise.
8535 (aarch64_classify_symbol): Likewise.
8536 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
8537 (ldr_got_tiny): Define.
8538
52d676b6
TG
85392013-07-13 Tobias Grosser <tobias@grosser.es>
8540
8541 PR tree-optimization/54094
8542 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
8543 scheduling dimension for the parallelism check from the polyhedral
8544 information in the AST.
8545 * graphite-dependences.c (carries_deps): Do not assume the schedule is
8546 in 2D + 1 form.
8547
286e8fc1
JM
85482013-07-13 Jason Merrill <jason@redhat.com>
8549
8550 * print-tree.c (debug_vec_tree): Use debug_raw.
8551 (debug_raw (vec<tree, va_gc> &)): New.
8552 (debug_raw (vec<tree, va_gc> *)): New.
8553 * tree.h: Declare them.
8554
e43257e8
BC
85552013-07-13 Bin Cheng <bin.cheng@arm.com>
8556
8557 * ifcvt.c (ifcvt_after_combine): New static variable.
8558 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
8559 for size.
8560 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
8561 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
8562 rest_of_handle_if_after_reload): Pass new argument for if_convert.
8563
da582d46
MR
85642013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
8565
8566 * config/mips/mips.c (mips_expand_call): Remove empty statement.
8567
18b0ea8f
MM
85682013-07-12 Michael Matz <matz@suse.de>
8569
8570 PR middle-end/55771
8571 * convert.c (convert_to_real): Reject non-float inner types.
8572
e4f0f84d
TB
85732013-07-12 Tejas Belagod <tejas.belagod@arm.com>
8574
8575 * config/aarch64/aarch64-protos.h
8576 (aarch64_simd_immediate_valid_for_move): Remove.
8577 * config/aarch64/aarch64.c (simd_immediate_info): New member.
8578 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
8579 cases.
8580 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
8581
76500022
SE
85822013-07-11 Steve Ellcey <sellcey@mips.com>
8583
8584 * config/mips/mips.c (mips_conditional_register_usage): Do not
8585 use t[0-7] registers in MIPS16 mode when optimizing for size.
8586
78039734
ST
85872013-07-11 Sriraman Tallam <tmsriram@google.com>
8588
8589 * config/i386/i386.c (dispatch_function_versions): Fix array
8590 indexing of function_version_info to match actual_versions.
8591
7b24b675
TJ
85922013-07-11 Teresa Johnson <tejohnson@google.com>
8593
8594 * vec.h (struct va_gc): Move release out-of-line.
8595 (va_gc::release): Call ggc_free on released vec.
8596
85d4cbb8
UW
85972013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8598
8599 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
8600 Require GOT register as additional operand in UNSPEC.
8601 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
8602 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
8603 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
8604 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
8605 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
8606 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
8607 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
8608
52b3f9e2
GJL
86092013-07-11 Georg-Johann Lay <avr@gjlay.de>
8610
8611 PR target/57631
8612 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
8613 name seen by assembler/linker rather if available.
8614
3f3e266e
AS
86152013-07-11 Andreas Schwab <schwab@suse.de>
8616
8617 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
8618
21231ca6
VM
86192013-07-10 Vladimir Makarov <vmakarov@redhat.com>
8620
371e77e3 8621 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 8622
d331d374
JM
86232013-07-10 Joseph Myers <joseph@codesourcery.com>
8624
673c2f63
JM
8625 * doc/tm.texi.in: Move hook documentation to ....
8626 * target.def: ... here.
8627
d331d374
JM
8628 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
8629 text on @hook line.
8630 * doc/tm.texi: Regenerate.
8631
dfeadaa0
PC
86322013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
8633
8634 PR c++/57869
8635 * doc/invoke.texi: Document -Wconditionally-supported.
8636
bb6f2bac
GJL
86372013-07-10 Georg-Johann Lay <avr@gjlay.de>
8638
8639 PR target/57844
8640 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
8641 of my_fp.
8642
5219b232
GJL
86432013-07-10 Georg-Johann Lay <avr@gjlay.de>
8644
8645 PR target/57506
8646 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
8647 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
8648 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
8649 Remove duplicate devices.
8650 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
8651 * config/avr/t-multilib: Regenerate.
8652 * config/avr/avr-tables.opt: Regenerate.
8653 * doc/avr-mmcu.texi: Regenerate.
8654
283045c0
GJL
86552013-07-10 Georg-Johann Lay <avr@gjlay.de>
8656
8657 PR target/56987
8658 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
8659
ceb2d59f 86602013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 8661
ceb2d59f
GS
8662 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
8663 the cost of MULT when optimizing for size.
8664
055e0a99
JBG
86652013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8666
8667 * config/cr16/cr16-protos.h: Don't include target.h.
8668
ef43e868
JM
86692013-07-09 Joseph Myers <joseph@codesourcery.com>
8670
8671 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
8672 adjust register size for TDmode and TFmode for VSX registers.
8673
4a283fdf
KT
86742013-07-08 Kai Tietz <ktietz@redhat.com>
8675
8676 PR target/56892
8677 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
8678 hook_bool_const_tree_true.
8679
2cf4c39e
AK
86802013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8681
8682 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
8683 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
8684 * config/s390/s390.md: Define FPR*_REGNUM constants.
8685 Fix FPR2_REGNUM constant (18 -> 17).
8686 ("*trunc<BFP:mode><DFP_ALL:mode>2")
8687 ("*trunc<DFP_ALL:mode><BFP:mode>2")
8688 ("trunc<BFP:mode><DFP_ALL:mode>2")
8689 ("trunc<DFP_ALL:mode><BFP:mode>2")
8690 ("*extend<BFP:mode><DFP_ALL:mode>2")
8691 ("*extend<DFP_ALL:mode><BFP:mode>2")
8692 ("extend<BFP:mode><DFP_ALL:mode>2")
8693 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
8694 FPR4_REGNUM.
8695
e6ac0270 86962013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 8697
6a2fa4b2 8698 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 8699
b89b22fc
AK
87002013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8701
8702 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
8703 and cfun_fpr_bit_p to cfun_fpr_save_p.
8704 (s390_frame_area, s390_register_info, s390_frame_info)
8705 (s390_emit_prologue, s390_emit_epilogue)
8706 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
8707 register numbers.
8708 * config/s390/s390.h: Define *_REGNUM macros for floating point
8709 register numbers.
8710
07f398aa
EB
87112013-07-08 Eric Botcazou <ebotcazou@adacore.com>
8712
8713 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
8714
75fefa91
PCC
87152013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
8716
8717 PR rtl-optimization/57786
8718 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
8719 and break out of the loop when it is set to false.
8720
046f1eee
JJ
87212013-07-08 Jakub Jelinek <jakub@redhat.com>
8722
8140c065
JJ
8723 PR target/57819
8724 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
8725 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
8726 (const_int 63)) 0)).
8727 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
8728 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
8729 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
8730
046f1eee
JJ
8731 PR rtl-optimization/57829
8732 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
8733 mask bits outside of mode are just sign-extension from mode to HWI.
8734
930b700b
MZ
87352013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
8736
8737 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
8738 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
8739 adjust_address instead of change_address to keep info about alignment.
8740 (emit_strmov): Remove.
8741 (emit_memmov): New function.
8742 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
8743 (expand_movmem_epilogue): Likewise and return updated rtx for
8744 destination.
8745 (expand_constant_movmem_prologue): Likewise and return updated rtx for
8746 destination and source.
8747 (decide_alignment): Refactor, handle vector_loop.
8748 (ix86_expand_movmem): Likewise.
8749 (ix86_expand_setmem): Likewise.
8750 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
8751
7b9d1bd8
UB
87522013-07-07 Uros Bizjak <ubizjak@gmail.com>
8753
8754 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
8755 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
8756
eabb5f48
UB
87572013-07-06 Uros Bizjak <ubizjak@gmail.com>
8758
8759 * config/i386/sse.md (sse_movlhps): Change alternative 3
8760 of operand 2 to "m".
8761
87622013-07-06 Uros Bizjak <ubizjak@gmail.com>
8763
8764 PR target/57807
8765 * config/i386/sse.md (iptr): New mode attribute.
8766 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
8767 (<sse>_vm<plusminus_insn><mode>3): Ditto.
8768 (<sse>_vmmul<mode>3): Ditto.
8769 (<sse>_vmdiv<mode>3): Ditto.
8770 (sse_vmrcpv4sf2): Ditto.
8771 (<sse>_vmsqrt<mode>2): Ditto.
8772 (sse_vmrsqrtv4sf2): Ditto.
8773 (<sse>_vm<code><mode>3): Ditto.
8774 (avx_vmcmp<mode>3): Ditto.
8775 (<sse>_vmmaskcmp<mode>3): Ditto.
8776 (<sse>_comi): Ditto.
8777 (<sse>_ucomi): Ditto.
8778 (*xop_vmfrcz_<mode>): Ditto.
8779 (*fmai_fmadd_<mode>): Ditto.
8780 (*fmai_fmsub_<mode>): Ditto.
8781 (*fmai_fnmadd_<mode>): Ditto.
8782 (*fmai_fnmsub_<mode>): Ditto.
8783 (*fma4i_vmfmadd_<mode>): Ditto.
8784 (*fma4i_vmfmsub_<mode>): Ditto.
8785 (*fma4i_vmfnmadd_<mode>): Ditto.
8786 (*fma4i_vmfnmsub_<mode>): Ditto.
8787 (*xop_vmfrcz_<mode>): Ditto.
8788 (sse_cvtps2pi): Ditto.
8789 (sse_cvttps2pi): Ditto.
8790 (sse_cvtss2si): Ditto.
8791 (sse_cvtss2si_2): Ditto.
8792 (sse_cvtss2siq_2): Ditto.
8793 (sse_cvttss2si): Ditto.
8794 (sse_cvttss2siq): Ditto.
8795 (sse_cvtsd2si): Ditto.
8796 (sse_cvtsd2si_2): Ditto.
8797 (sse_cvtsd2siq_2): Ditto.
8798 (sse_cvttsd2si): Ditto.
8799 (sse_cvttsd2siq): Ditto.
8800 (sse_cvtsd2ss): Ditto.
8801 (sse_cvtss2sd): Ditto.
8802 (avx2_pbroadcast<mode>): Ditto.
8803 (avx2_pbroadcast<mode>_1): Ditto.
8804 (*avx_vperm_broadcast_v4sf): Ditto.
8805
8806 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
8807 (sse_movlhps): Ditto.
8808 (sse_storehps): Ditto.
8809 (sse_loadhps): Ditto.
8810 (sse_storelps): Ditto.
8811 (sse_loadlps): Ditto.
8812 (*vec_concatv4sf): Ditto.
8813 (*vec_interleave_highv2df): Ditto.
8814 (*vec_interleave_lowv2df): Ditto.
8815 (*vec_extractv2df_1_sse): Ditto.
8816 (*vec_extractv2df_0_sse): Ditto.
8817 (sse2_storelpd): Ditto.
8818 (sse2_loadlpd): Ditto.
8819 (sse2_movsd): Ditto.
8820 (*vec_concatv4si): Ditto.
8821 (vec_concatv2di): Ditto.
8822
8823 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
8824 for Intel asm dialect.
8825 (mmx_punpcklwd): Ditto.
8826 (mmx_punpckldq): Ditto.
8827
8828 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
8829 for intel assembler dialect.
8830
1f6eac90
JJ
88312013-07-06 Jakub Jelinek <jakub@redhat.com>
8832
8833 PR target/29776
8834 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
8835 for BUILT_IN_C{LZ,LRSB}*.
8836 * tree.h (CASE_INT_FN): Add FN##IMAX case.
8837 * tree-vrp.c (extract_range_basic): Handle
8838 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
8839 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
8840 fall thru to code calling set_value*.
8841 * builtins.c (expand_builtin): Remove *IMAX cases.
8842 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
8843 if width is bigger than 2*HWI.
8844
2b778c9d
VM
88452013-07-05 Vladimir Makarov <vmakarov@redhat.com>
8846
8847 PR rtl-optimization/55342
8848 * lra-int.h (lra_subreg_reload_pseudos): New.
8849 * lra.c: Add undoing optional reloads to the block diagram.
8850 (lra_subreg_reload_pseudos): New.
8851 (lra_optional_reload_pseudos): Change comments.
8852 (lra): Init and clear lra_subreg_reload_pseudos. Clear
8853 lra_optional_reload_pseudos after undo transformations.
8854 * lra-assigns.c (pseudo_prefix_title): New.
8855 (lra_setup_reg_renumber): Use it.
8856 (spill_for): Ditto. Check subreg reload pseudos too.
8857 (assign_by_spills): Consider subreg reload pseudos too.
8858 * lra-constraints.c (simplify_operand_subreg): Use
8859 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
8860 (curr_insn_transform): Recognize and do optional reloads.
8861 (undo_optional_reloads): New.
8862 (lra_undo_inheritance): Call undo_optional_reloads.
8863
207156e4
TQ
88642013-07-05 Thomas Quinot <quinot@adacore.com>
8865
8866 * tree-complex.c (expand_complex_operations_1): Fix typo.
8867
8990e73a
TB
88682013-07-04 Tejas Belagod <tejas.belagod@arm.com>
8869
8870 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
8871 (tune_params): New member 'const vec_costs'.
8872 * config/aarch64/aarch64.c (generic_vector_cost): New.
8873 (generic_tunings): New member 'generic_vector_cost'.
8874 (aarch64_builtin_vectorization_cost): New.
8875 (aarch64_add_stmt_cost): New.
8876 (TARGET_VECTORIZE_ADD_STMT_COST): New.
8877 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
8878
f7bc421d
JJ
88792013-07-03 Jakub Jelinek <jakub@redhat.com>
8880
8881 PR target/57777
8882 * config/i386/predicates.md (vsib_address_operand): Disallow
8883 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
8884
e90d1568
HPN
88852013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
8886
8887 PR middle-end/55030
8888 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
8889 expand_builtin_setjmp_receiver.
8890 (expand_label): Adjust, call expand_builtin_setjmp_receiver
8891 with NULL for the label parameter.
8892 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
8893 the frame-pointer. Adjust comments.
8894 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
8895 only if LABEL is non-NULL.
8896
cbd7413b
YZ
88972013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
8898
8899 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
8900 (ARM_ABI_AAPCS64): Ditto.
8901 (arm_abi): Ditto.
8902 (ARM_DEFAULT_ABI): Ditto.
8903
dec11868
JG
89042013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
8905
8906 * config/aarch64/aarch64-builtins.c
8907 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
8908 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
8909 (st1): Likewise.
8910 * config/aarch64/aarch64-simd.md
8911 (aarch64_ld1<VALL:mode>): New.
8912 (aarch64_st1<VALL:mode>): Likewise.
8913 * config/aarch64/arm_neon.h
8914 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
8915
786fb9b6
ST
89162013-07-02 Sriraman Tallam <tmsriram@google.com>
8917
0ba6aff3
UB
8918 * config/i386/i386.c (gate_insert_vzeroupper): Check if
8919 target ISA is AVX.
786fb9b6
ST
8920 (ix86_option_override_internal):Turn on all -mavx target flags by
8921 default as they are dependent on AVX anyway.
8922
4b043553
CC
89232013-07-02 Cary Coutant <ccoutant@google.com>
8924
8925 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
8926 deterministic hash.
8927 (loc_checksum_ordered): Likewise.
8928 (hash_loc_operands): Remove inline keyword.
8929
c4e87a13
JJ
89302013-07-02 Jakub Jelinek <jakub@redhat.com>
8931
8932 PR tree-optimization/57741
8933 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
8934 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
8935 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
8936 Allow REAL_CST step_exprs if flag_associative_math.
8937 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
8938
26366d28
IB
89392013-07-02 Ian Bolton <ian.bolton@arm.com>
8940
0ba6aff3 8941 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 8942
2879bb2b
IB
89432013-07-02 Ian Bolton <ian.bolton@arm.com>
8944
8945 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
8946
afc5e8a6
KT
89472013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8948
8949 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
8950 encoding.
8951 (iorsi3_insn): Likewise.
8952 (arm_xorsi3): Likewise.
8953
31f8442b
SN
89542013-07-01 Sofiane Naci <sofiane.naci@arm.com>
8955
8956 * arm.md (attribute "wtype"): Delete. Move attribute values from here
8957 to ...
8958 (attribute "type"): ... here, and prefix with "wmmx_".
8959 (attribute "core_cycles"): Update for attribute changes.
8960 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
8961 (tbcstv4hi): Likewise.
8962 (tbcstv2si): Likewise.
8963 (iwmmxt_iordi3): Likewise.
8964 (iwmmxt_xordi3): Likewise.
8965 (iwmmxt_anddi3): Likewise.
8966 (iwmmxt_nanddi3): Likewise.
8967 (iwmmxt_arm_movdi): Likewise.
8968 (iwmmxt_movsi_insn): Likewise.
8969 (mov<mode>_internal): Likewise.
8970 (and<mode>3_iwmmxt): Likewise.
8971 (ior<mode>3_iwmmxt): Likewise.
8972 (xor<mode>3_iwmmxt): Likewise.
8973 (add<mode>3_iwmmxt): Likewise.
8974 (ssaddv8qi3): Likewise.
8975 (ssaddv4hi3): Likewise.
8976 (ssaddv2si3): Likewise.
8977 (usaddv8qi3): Likewise.
8978 (usaddv4hi3): Likewise.
8979 (usaddv2si3): Likewise.
8980 (sub<mode>3_iwmmxt): Likewise.
8981 (sssubv8qi3): Likewise.
8982 (sssubv4hi3): Likewise.
8983 (sssubv2si3): Likewise.
8984 (ussubv8qi3): Likewise.
8985 (ussubv4hi3): Likewise.
8986 (ussubv2si3): Likewise.
8987 (mulv4hi3_iwmmxt): Likewise.
8988 (smulv4hi3_highpart): Likewise.
8989 (umulv4hi3_highpart): Likewise.
8990 (iwmmxt_wmacs): Likewise.
8991 (iwmmxt_wmacsz): Likewise.
8992 (iwmmxt_wmacu): Likewise.
8993 (iwmmxt_wmacuz): Likewise.
8994 (iwmmxt_clrdi): Likewise.
8995 (iwmmxt_clrv8qi): Likewise.
8996 (iwmmxt_clr4hi): Likewise.
8997 (iwmmxt_clr2si): Likewise.
8998 (iwmmxt_uavgrndv8qi3): Likewise.
8999 (iwmmxt_uavgrndv4hi3): Likewise.
9000 (iwmmxt_uavgv8qi3): Likewise.
9001 (iwmmxt_uavgv4hi3): Likewise.
9002 (iwmmxt_tinsrb): Likewise.
9003 (iwmmxt_tinsrh): Likewise.
9004 (iwmmxt_tinsrw): Likewise.
9005 (iwmmxt_textrmub): Likewise.
9006 (iwmmxt_textrmsb): Likewise.
9007 (iwmmxt_textrmuh): Likewise.
9008 (iwmmxt_textrmsh): Likewise.
9009 (iwmmxt_textrmw): Likewise.
9010 (iwmxxt_wshufh): Likewise.
9011 (eqv8qi3): Likewise.
9012 (eqv4hi3): Likewise.
9013 (eqv2si3): Likewise.
9014 (gtuv8qi3): Likewise.
9015 (gtuv4hi3): Likewise.
9016 (gtuv2si3): Likewise.
9017 (gtv8qi3): Likewise.
9018 (gtv4hi3): Likewise.
9019 (gtv2si3): Likewise.
9020 (smax<mode>3_iwmmxt): Likewise.
9021 (umax<mode>3_iwmmxt): Likewise.
9022 (smin<mode>3_iwmmxt): Likewise.
9023 (umin<mode>3_iwmmxt): Likewise.
9024 (iwmmxt_wpackhss): Likewise.
9025 (iwmmxt_wpackwss): Likewise.
9026 (iwmmxt_wpackdss): Likewise.
9027 (iwmmxt_wpackhus): Likewise.
9028 (iwmmxt_wpackwus): Likewise.
9029 (iwmmxt_wpackdus): Likewise.
9030 (iwmmxt_wunpckihb): Likewise.
9031 (iwmmxt_wunpckihh): Likewise.
9032 (iwmmxt_wunpckihw): Likewise.
9033 (iwmmxt_wunpckilb): Likewise.
9034 (iwmmxt_wunpckilh): Likewise.
9035 (iwmmxt_wunpckilw): Likewise.
9036 (iwmmxt_wunpckehub): Likewise.
9037 (iwmmxt_wunpckehuh): Likewise.
9038 (iwmmxt_wunpckehuw): Likewise.
9039 (iwmmxt_wunpckehsb): Likewise.
9040 (iwmmxt_wunpckehsh): Likewise.
9041 (iwmmxt_wunpckehsw): Likewise.
9042 (iwmmxt_wunpckelub): Likewise.
9043 (iwmmxt_wunpckeluh): Likewise.
9044 (iwmmxt_wunpckeluw): Likewise.
9045 (iwmmxt_wunpckelsb): Likewise.
9046 (iwmmxt_wunpckelsh): Likewise.
9047 (iwmmxt_wunpckelsw): Likewise.
9048 (ror<mode>3): Likewise.
9049 (ashr<mode>3_iwmmxt): Likewise.
9050 (lshr<mode>3_iwmmxt): Likewise.
9051 (ashl<mode>3_iwmmxt): Likewise.
9052 (ror<mode>3_di): Likewise.
9053 (ashr<mode>3_di): Likewise.
9054 (lshr<mode>3_di): Likewise.
9055 (ashl<mode>3_di): Likewise.
9056 (iwmmxt_wmadds): Likewise.
9057 (iwmmxt_wmaddu): Likewise.
9058 (iwmmxt_tmia): Likewise.
9059 (iwmmxt_tmiaph): Likewise.
9060 (iwmmxt_tmiabb): Likewise.
9061 (iwmmxt_tmiatb): Likewise.
9062 (iwmmxt_tmiabt): Likewise.
9063 (iwmmxt_tmiatt): Likewise.
9064 (iwmmxt_tmovmskb): Likewise.
9065 (iwmmxt_tmovmskh): Likewise.
9066 (iwmmxt_tmovmskw): Likewise.
9067 (iwmmxt_waccb): Likewise.
9068 (iwmmxt_wacch): Likewise.
9069 (iwmmxt_waccw): Likewise.
9070 (iwmmxt_waligni): Likewise.
9071 (iwmmxt_walignr): Likewise.
9072 (iwmmxt_walignr0): Likewise.
9073 (iwmmxt_walignr1): Likewise.
9074 (iwmmxt_walignr2): Likewise.
9075 (iwmmxt_walignr3): Likewise.
9076 (iwmmxt_wsadb): Likewise.
9077 (iwmmxt_wsadh): Likewise.
9078 (iwmmxt_wsadbz): Likewise.
9079 (iwmmxt_wsadhz): Likewise.
9080 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
9081 (iwmmxt_wabsdiffb): Likewise.
9082 (iwmmxt_wabsdiffh): Likewise.
9083 (iwmmxt_wabsdiffw): Likewise.
9084 (iwmmxt_waddsubhx): Likewise
9085 (iwmmxt_wsubaddhx): Likewise.
9086 (addc<mode>3): Likewise.
9087 (iwmmxt_avg4): Likewise.
9088 (iwmmxt_avg4r): Likewise.
9089 (iwmmxt_wmaddsx): Likewise.
9090 (iwmmxt_wmaddux): Likewise.
9091 (iwmmxt_wmaddsn): Likewise.
9092 (iwmmxt_wmaddun): Likewise.
9093 (iwmmxt_wmulwsm): Likewise.
9094 (iwmmxt_wmulwum): Likewise.
9095 (iwmmxt_wmulsmr): Likewise.
9096 (iwmmxt_wmulumr): Likewise.
9097 (iwmmxt_wmulwsmr): Likewise.
9098 (iwmmxt_wmulwumr): Likewise.
9099 (iwmmxt_wmulwl): Likewise.
9100 (iwmmxt_wqmulm): Likewise.
9101 (iwmmxt_wqmulwm): Likewise.
9102 (iwmmxt_wqmulmr): Likewise.
9103 (iwmmxt_wqmulwmr): Likewise.
9104 (iwmmxt_waddbhusm): Likewise.
9105 (iwmmxt_waddbhusl): Likewise.
9106 (iwmmxt_wqmiabb): Likewise.
9107 (iwmmxt_wqmiabt): Likewise.
9108 (iwmmxt_wqmiatb): Likewise.
9109 (iwmmxt_wqmiatt): Likewise.
9110 (iwmmxt_wqmiabbn): Likewise.
9111 (iwmmxt_wqmiabtn): Likewise.
9112 (iwmmxt_wqmiatbn): Likewise.
9113 (iwmmxt_wqmiattn): Likewise.
9114 (iwmmxt_wmiabb): Likewise.
9115 (iwmmxt_wmiabt): Likewise.
9116 (iwmmxt_wmiatb): Likewise.
9117 (iwmmxt_wmiatt): Likewise.
9118 (iwmmxt_wmiabbn): Likewise.
9119 (iwmmxt_wmiabtn): Likewise.
9120 (iwmmxt_wmiatbn): Likewise.
9121 (iwmmxt_wmiattn): Likewise.
9122 (iwmmxt_wmiawbb): Likewise.
9123 (iwmmxt_wmiawbt): Likewise.
9124 (iwmmxt_wmiawtb): Likewise.
9125 (iwmmxt_wmiawtt): Likewise.
9126 (iwmmxt_wmiawbbn): Likewise.
9127 (iwmmxt_wmiawbtn): Likewise.
9128 (iwmmxt_wmiawtbn): Likewise.
9129 (iwmmxt_wmiawttn): Likewise.
9130 (iwmmxt_wmerge): Likewise.
9131 (iwmmxt_tandc<mode>3): Likewise.
9132 (iwmmxt_torc<mode>3): Likewise.
9133 (iwmmxt_torvsc<mode>3): Likewise.
9134 (iwmmxt_textrc<mode>3): Likewise.
9135 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
9136 (wmmxt_pack): Likewise.
9137 (wmmxt_mult_c1): Likewise.
9138 (wmmxt_mult_c2): Likewise.
9139 (wmmxt_alu_c1): Likewise.
9140 (wmmxt_alu_c2): Likewise.
9141 (wmmxt_alu_c3): Likewise.
9142 (wmmxt_transfer_c1): Likewise.
9143 (wmmxt_transfer_c2): Likewise.
9144 (wmmxt_transfer_c3): Likewise.
9145 (marvell_f_iwmmxt_wstr): Likewise.
9146 (marvell_f_iwmmxt_wldr): Likewise.
9147
bdb7bf8a
YZ
91482013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
9149
0ba6aff3 9150 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 9151
e6631d38
VM
91522013-06-28 Vladimir Makarov <vmakarov@redhat.com>
9153
9154 Revert:
9155 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
9156 * lra-constraints.c (need_for_split_p): Check call used hard regs
9157 living through calls.
9158
9159 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
9160 call used regs for call insn.
9161
53c1275b
JJ
91622013-06-28 Jakub Jelinek <jakub@redhat.com>
9163
9164 PR target/57736
0ba6aff3
UB
9165 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
9166 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 9167
1141ed3f
BI
91682013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
9169
9170 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 9171
e32e4c4a
VM
91722013-06-28 Vladimir Makarov <vmakarov@redhat.com>
9173
9174 * lra-constraints.c (need_for_split_p): Check call used hard regs
9175 living through calls.
9176
f161bfd3
MM
91772013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
9178
9179 PR target/57744
9180 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
9181 to tie with any other modes. Eliminate Altivec vector mode tests,
9182 since these are a subset of ALTIVEC or VSX vector modes. Simplify
9183 code, to return 0 if testing MODE2 for a condition, if we've
9184 already tested MODE1 for the same condition.
9185
7eda14e1
MS
91862013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
9187
9188 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
9189 layout.
9190
c822f852
MS
91912013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
9192
9193 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
9194 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
9195
da4f13a4
MS
91962013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
9197
0ba6aff3
UB
9198 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
9199 Define.
da4f13a4
MS
9200 (aarch64_symbolic_constant_p): Remove.
9201 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
9202 static. Fix line length and white space.
9203 (aarch64_symbolic_constant_p): Remove.
9204 * config/aarch64/predicates.md (aarch64_valid_symref):
9205 Use aarch64_classify_symbol_expression.
9206
956a95a5
KT
92072013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9208
9209 * config/arm/constraints.md (Ts): New constraint.
9210 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
9211 16-bit encodings.
9212 (compare_scc): Use "Ts" constraint for operand 0.
9213 (ior_scc_scc): Likewise.
9214 (and_scc_scc): Likewise.
9215 (and_scc_scc_nodom): Likewise.
9216 (ior_scc_scc_cmp): Likewise for operand 7.
9217 (and_scc_scc_cmp): Likewise.
9218 * config/arm/thumb2.md (thumb2_movsi_insn):
9219 Add alternatives for 16-bit encodings.
9220 (thumb2_movhi_insn): Likewise.
9221 (thumb2_movsicc_insn): Likewise.
9222 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
9223 (thumb2_negscc): Use "Ts" constraint.
9224 Move mvn instruction outside cond_exec block.
9225 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
9226 for 16-bit encodings.
9227
31dfce10
KT
92282013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9229
9230 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
9231 encoding.
9232 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
9233 (mulsi3subsi): Likewise.
9234 (mulsidi3adddi): Likewise.
9235 (mulsidi3_v6): Likewise.
9236 (umulsidi3_v6): Likewise.
9237 (umulsidi3adddi_v6): Likewise.
9238 (smulsi3_highpart_v6): Likewise.
9239 (umulsi3_highpart_v6): Likewise.
9240 (mulhisi3tb): Likewise.
9241 (mulhisi3bt): Likewise.
9242 (mulhisi3tt): Likewise.
9243 (maddhisi4): Likewise.
9244 (maddhisi4tb): Likewise.
9245 (maddhisi4tt): Likewise.
9246 (maddhidi4): Likewise.
9247 (maddhidi4tb): Likewise.
9248 (maddhidi4tt): Likewise.
9249 (zeroextractsi_compare0_scratch): Likewise.
9250 (insv_zero): Likewise.
9251 (insv_t2): Likewise.
9252 (anddi_notzesidi_di): Likewise.
9253 (anddi_notsesidi_di): Likewise.
9254 (andsi_notsi_si): Likewise.
9255 (iordi_zesidi_di): Likewise.
9256 (xordi_zesidi_di): Likewise.
9257 (andsi_iorsi3_notsi): Likewise.
9258 (smax_0): Likewise.
9259 (smax_m1): Likewise.
9260 (smin_0): Likewise.
9261 (not_shiftsi): Likewise.
9262 (unaligned_loadsi): Likewise.
9263 (unaligned_loadhis): Likewise.
9264 (unaligned_loadhiu): Likewise.
9265 (unaligned_storesi): Likewise.
9266 (unaligned_storehi): Likewise.
9267 (extv_reg): Likewise.
9268 (extzv_t2): Likewise.
9269 (divsi3): Likewise.
9270 (udivsi3): Likewise.
9271 (arm_zero_extendhisi2addsi): Likewise.
9272 (arm_zero_extendqisi2addsi): Likewise.
9273 (compareqi_eq0): Likewise.
9274 (arm_extendhisi2_v6): Likewise.
9275 (arm_extendqisi2addsi): Likewise.
9276 (arm_movt): Likewise.
9277 (thumb2_ldrd): Likewise.
9278 (thumb2_ldrd_base): Likewise.
9279 (thumb2_ldrd_base_neg): Likewise.
9280 (thumb2_strd): Likewise.
9281 (thumb2_strd_base): Likewise.
9282 (thumb2_strd_base_neg): Likewise.
9283 (arm_negsi2): Add alternative for 16-bit encoding.
9284 (arm_one_cmplsi2): Likewise.
9285
1572e697
KT
92862013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9287
9288 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
9289 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
9290 (movdfcc): Likewise.
9291 * config/arm/vfp.md (*thumb2_movsf_vfp):
9292 Disable predication for arm_restrict_it.
9293 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
9294 (*thumb2_movdfcc_vfp): Likewise.
9295 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
9296 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
9297 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
9298 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
9299 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
9300 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
9301 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
9302 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
9303 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
9304 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
9305 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
9306 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
9307 Disable predication for arm_restrict_it.
9308
ebf8f0ea
KY
93092013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
9310
9311 * config/i386/bmiintrin.h (_bextr_u32): New.
9312 (_bextr_u64): Ditto.
9313
a290fcda
RS
93142013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
9315
9316 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
9317 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
9318 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
9319 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
9320 * config/mips/n32-elf.h: ...this new file.
9321
ea169996
MG
93222013-06-27 Marc Glisse <marc.glisse@inria.fr>
9323
9324 PR target/57224
9325 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
9326 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
9327
12211b99 93282013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
9329
9330 * config/mips/mips-tables.opt: Regenerate.
9331 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 9332 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 9333 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 9334
2444244e
JJ
93352013-06-27 Jakub Jelinek <jakub@redhat.com>
9336
cd06d2a2
JJ
9337 PR target/57623
9338 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
9339 constraints of operand 1 and 2.
9340
2444244e
JJ
9341 PR target/57623
9342 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
9343 to match RTL canonicalization. Swap predicates and
9344 constraints of operand 1 and 2.
9345
2f259720
VM
93462013-06-27 Vladimir Makarov <vmakarov@redhat.com>
9347
0ba6aff3
UB
9348 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
9349 Process OP_INOUT regs for splitting too.
2f259720 9350
fef4d2b3
JJ
93512013-06-27 Jakub Jelinek <jakub@redhat.com>
9352
9353 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
9354 decl before the loop, initialize to NULL.
9355 (vectorizable_load): Initialize ptr_incr to NULL.
9356
79ee9826
MJ
93572013-06-27 Martin Jambor <mjambor@suse.cz>
9358
9359 PR lto/57208
9360 * ipa-ref.h (ipa_maybe_record_reference): Declare.
9361 * ipa-ref.c (ipa_maybe_record_reference): New function.
9362 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
9363 * ipa-cp.c (create_specialized_node): Record potential references from
9364 aggvals.
9365 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
9366
e18b4a81
YZ
93672013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
9368
9369 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
9370 parameter 'mode' of type 'enum machine_mode mode'; change to pass
9371 'mode' to force_reg.
9372 (aarch64_add_offset): Update calls to aarch64_force_temporary.
9373 (aarch64_expand_mov_immediate): Likewise.
9374
9c023bf0
YZ
93752013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
9376
9377 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
9378 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
9379
5a3fe9b6
AK
93802013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9381
9382 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
9383 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
9384 (struct machine_function): Add tbegin_p.
9385 (s390_canonicalize_comparison): Fold CC mode compares to
9386 conditional jump if possible.
9387 (s390_emit_jump): Return the emitted jump.
9388 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
9389 Handle CCRAWmode compares.
9390 (s390_option_override): Default to -mhtm if available.
9391 (s390_reg_clobbered_rtx): Handle floating point regs as well.
9392 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
9393 FPRs instead of df_regs_ever_live_p.
9394 (s390_optimize_nonescaping_tx): New function.
9395 (s390_init_frame_layout): Extend clobbered_regs array to cover
9396 FPRs as well.
9397 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
9398 (s390_expand_tbegin): New function.
9399 (enum s390_builtin): New enum definition.
9400 (code_for_builtin): New array definition.
9401 (s390_init_builtins): New function.
9402 (s390_expand_builtin): New function.
9403 (TARGET_INIT_BUILTINS): Define.
9404 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 9405 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
9406 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
9407 (s390_alc_comparison): Likewise.
9408 * config/s390/s390-modes.def: Add CCRAWmode.
9409 * config/s390/s390.h (processor_flags): Add PF_TX.
9410 (TARGET_CPU_HTM): Define macro.
9411 (TARGET_HTM): Define macro.
9412 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
9413 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
9414 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
9415 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 9416 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
9417 (TBEGIN_MASK, TBEGINC_MASK): New constants.
9418 ("*cc_to_int"): Move up.
9419 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
9420 constants other than 0.
9421 ("*ccraw_to_int"): New insn and splitter definition.
9422 ("tbegin", "tbegin_nofloat", "tbegin_retry")
9423 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
9424 ("tx_assist"): New expander.
9425 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
9426 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
9427 * config/s390/s390.opt: Add -mhtm option.
9428 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
9429 * config/s390/htmxlintrin.h: New file.
9430 * config/s390/htmintrin.h: New file.
9431 * config/s390/s390intrin.h: New file.
9432 * doc/extend.texi: Document htm builtins.
9433 * config.gcc: Add the new header files to extra_headers.
9434
9e216629
TS
94352013-06-26 Thomas Schwinge <thomas@codesourcery.com>
9436
9437 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 9438 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 9439
fd8c65e7 94402013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
9441 Pat Haugen <pthaugen@us.ibm.com>
9442 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
9443
9444 * config/rs6000/power8.md: New.
9445 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
9446 setting for power8 entry.
9447 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
9448 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
9449 test for Power4/Power5 only.
9450 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
9451 support.
9452 (force_new_group): Adjust comment.
9453 * config/rs6000/rs6000.md: Include power8.md.
9454
b24a2ce5
GY
94552013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
9456
9457 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
9458 * config/arm/arm-protos.h (arm_max_conditional_execute): New
9459 declaration.
9460 (tune_params): Update comment.
9461 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
9462 (arm_max_conditional_execute): New function.
9463 (thumb2_final_prescan_insn): Use max_insn_skipped and
9464 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
9465
f6fdeb62
JJ
94662013-06-25 Jakub Jelinek <jakub@redhat.com>
9467
9468 PR tree-optimization/57705
9469 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
9470 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 9471 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
9472 (get_initial_def_for_induction): Handle SSA_NAME IV step.
9473
c13bc3d9
MJ
94742013-06-25 Martin Jambor <mjambor@suse.cz>
9475
9476 PR middle-end/57670
9477 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
9478 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
9479 calls in the dump.
9480 (ipa_note_param_call): Initialize member_ptr flag.
9481 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
9482 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
9483 (ipa_write_indirect_edge_info): Stream member_ptr flag.
9484 (ipa_read_indirect_edge_info): Likewise.
9485
8a845901
RB
94862013-06-25 Richard Biener <rguenther@suse.de>
9487
9488 PR middle-end/56977
9489 * passes.c (init_optimization_passes): Move pass_fold_builtins
9490 and pass_dce earlier with -Og.
9491
33be0bec
EB
94922013-06-25 Eric Botcazou <ebotcazou@adacore.com>
9493
9494 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
9495 <BIT_FIELD_REF>: Remove trailing TAB.
9496 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
9497 remove blank line.
9498
5fe8e757
MJ
94992013-06-24 Martin Jambor <mjambor@suse.cz>
9500
9501 PR tree-optimization/57358
9502 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
9503 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
9504 (ipa_analyze_params_uses): Generate pessimistic info when true.
9505
44a60244
MJ
95062013-06-24 Martin Jambor <mjambor@suse.cz>
9507
9508 PR tree-optimization/57539
9509 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
9510 global.inlined_to of the new node to it. All callers changed.
9511 * ipa-inline-transform.c (clone_inlined_nodes): New variable
9512 inlining_into, pass it to cgraph_clone_node.
9513 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
9514 ipa_free_edge_args_substructures.
9515 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
9516 rdesc linked list. Do not assert rdesc edges have inlined caller.
9517 Assert we have found an rdesc in the rdesc list.
9518
7c5848b8
RB
95192013-06-24 Richard Biener <rguenther@suse.de>
9520
0ba6aff3 9521 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
9522 (pointer_set_lookup): Declare.
9523 (class pointer_map): New template class implementing a
9524 generic pointer to T map.
9525 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
9526 pointer_map<T>::contains, pointer_map<T>::insert,
9527 pointer_map<T>::traverse): New functions.
9528 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
9529 (pointer_set_lookup): New function.
9530 (pointer_set_contains): Use pointer_set_lookup.
9531 (pointer_set_insert): Likewise.
9532 (insert_aux): Remove.
9533 (struct pointer_map_t): Embed a pointer_set_t.
9534 (pointer_map_create): Adjust.
9535 (pointer_map_destroy): Likewise.
9536 (pointer_map_contains): Likewise.
9537 (pointer_map_insert): Likewise.
9538 (pointer_map_traverse): Likewise.
9539 * tree-streamer.h (struct streamer_tree_cache_d): Use a
9540 pointer_map<unsigned> instead of a pointer_map_t.
9541 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
9542 (streamer_tree_cache_lookup): Likewise.
9543 (streamer_tree_cache_create): Likewise.
9544 (streamer_tree_cache_delete): Likewise.
9545 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
9546 pointer_map<unsigned> instead of a pointer_map_t.
9547 (lto_init_tree_ref_encoder): Adjust.
9548 (lto_destroy_tree_ref_encoder): Likewise.
9549 * lto-section-out.c (lto_output_decl_index): Likewise.
9550 (lto_record_function_out_decl_state): Likewise.
9551 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
9552
3dbc97a9
RB
95532013-06-24 Richard Biener <rguenther@suse.de>
9554
9555 PR tree-optimization/57488
9556 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
9557
8345965a
AM
95582013-06-24 Alan Modra <amodra@gmail.com>
9559
9560 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
9561 (gen_easy_altivec_constant): Likewise.
9562 * config/rs6000/predicates.md (easy_vector_constant_add_self,
9563 easy_vector_constant_msb): Likewise.
9564
b7df379f
JJ
95652013-06-23 Jakub Jelinek <jakub@redhat.com>
9566
9567 PR target/57688
9568 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
9569 add missing return true.
9570
12211b99 95712013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
9572
9573 PR target/52483
9574 * config/sh/predicates.md (general_extend_operand): Invoke
9575 general_movsrc_operand for memory operands.
9576 (general_movsrc_operand): Allow reg+reg addressing, do not use
9577 general_operand for memory operands.
9578
97db2bf7
ST
95792013-06-23 Sriraman Tallam <tmsriram@google.com>
9580
9581 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
9582 when current target options does not apply.
9583 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
9584 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
9585 * config/i386/bmiintrin.h: Pass appropriate target
9586 attributes to header.
97db2bf7
ST
9587 * config/i386/mmintrin.h: Ditto.
9588 * config/i386/nmmintrin.h: Ditto.
9589 * config/i386/avx2intrin.h: Ditto.
9590 * config/i386/fxsrintrin.h: Ditto.
9591 * config/i386/tbmintrin.h: Ditto.
9592 * config/i386/xsaveintrin.h: Ditto.
9593 * config/i386/f16cintrin.h: Ditto.
9594 * config/i386/xtestintrin.h: Ditto.
9595 * config/i386/xsaveoptintrin.h: Ditto.
9596 * config/i386/bmi2intrin.h: Ditto.
9597 * config/i386/lzcntintrin.h: Ditto.
9598 * config/i386/smmintrin.h: Ditto.
9599 * config/i386/wmmintrin.h: Ditto.
9600 * config/i386/x86intrin.h: Remove all header include guards.
9601 * config/i386/prfchwintrin.h: Ditto.
9602 * config/i386/pmmintrin.h: Ditto.
9603 * config/i386/tmmintrin.h: Ditto.
9604 * config/i386/xmmintrin.h: Ditto.
9605 * config/i386/popcntintrin.h: Ditto.
9606 * config/i386/rdseedintrin.h: Ditto.
9607 * config/i386/ammintrin.h: Ditto.
9608 * config/i386/emmintrin.h: Ditto.
9609 * config/i386/immintrin.h: Remove all header include guards.
9610 * config/i386/fma4intrin.h: Ditto.
9611 * config/i386/lwpintrin.h: Ditto.
9612 * config/i386/xopintrin.h: Ditto.
9613 * config/i386/ia32intrin.h: Ditto.
9614 * config/i386/avxintrin.h: Ditto.
9615 * config/i386/rtmintrin.h: Ditto.
9616 * config/i386/fmaintrin.h: Ditto.
9617 * config/i386/mm3dnow.h: Ditto.
9618
495e6879
ST
96192013-06-22 Sriraman Tallam <tmsriram@google.com>
9620
9621 * common/config/i386/i386-common.c: Handle LZCNT.
9622
11e8f687
AK
96232013-06-22 Andi Kleen <ak@linux.intel.com>
9624
9625 * doc/extend.texi: Use __atomic_store_n instead of
9626 __atomic_store in HLE example.
9627
12211b99 96282013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
9629
9630 * config/sh/sh.c: Remove <cstdlib> workaround.
9631
927f908b
AK
96322013-06-21 Andi Kleen <ak@linux.intel.com>
9633
0ba6aff3 9634 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 9635
cca410b6
AK
96362013-06-21 Andi Kleen <ak@linux.intel.com>
9637
9638 * doc/extend.texi: Document that __atomic_clear and
9639 __atomic_test_and_set should only be used with bool.
9640
d84db1ed
JH
96412013-06-20 Jan Hubicka <jh@suse.cz>
9642
9643 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
9644 types_same_for_odr.
9645 * tree.c (decls_same_for_odr): New function.
9646 (same_for_edr): New function.
9647 (types_same_for_odr): New function.
9648 (get_binfo_at_offset): Use it.
9649 * tree.h (types_same_for_odr): Declare.
9650
12211b99 96512013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
9652 Jason Merrill <jason@redhat.com>
9653
9654 * system.h: Include <cstdlib> as well as <stdlib.h>.
9655
49b4ff63
UB
96562013-06-20 Uros Bizjak <ubizjak@gmail.com>
9657
9658 PR target/57655
9659 * config/i386/i386.c (construct_container): Report error if
9660 long double is used with disabled x87 float returns.
9661
7a89ad00
JH
96622013-06-20 Jan Hubicka <jh@suse.cz>
9663
9664 * lto-cgraph.c (input_symtab): Do not set cgraph state.
9665
12211b99 96662013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
9667
9668 PR rtl-optimization/57425
9669 PR rtl-optimization/57569
9670 * alias.c (write_dependence_p): Remove parameters mem_mode and
9671 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
9672 Changed all callers.
9673 (canon_anti_dependence): Get comments and semantics in sync.
9674 Add parameter mem_canonicalized. Changed all callers.
9675 * rtl.h (canon_anti_dependence): Update prototype.
9676
d16e9a99
RB
96772013-06-20 Richard Biener <rguenther@suse.de>
9678
9679 * data-streamer-in.c (streamer_read_uhwi): Optimize single
9680 byte case, inline streamer_read_uchar and defer section
9681 overrun check.
9682
c3a9b91b
RB
96832013-06-20 Richard Biener <rguenther@suse.de>
9684
9685 PR tree-optimization/57584
9686 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
9687 SSA names into the expanded expression that take part in
9688 abnormal coalescing.
9689
371e77e3 96902013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
9691
9692 * gcov.c (print_usage): Handle new option.
9693 (process_args): Ditto.
9694 (get_gcov_intermediate_filename): New function.
9695 (output_intermediate_file): New function.
9696 (output_gcov_file): New function
9697 (generate_results): Handle new option.
9698 (release_function): Relase demangled name.
9699 (read_graph_file): Handle demangled name.
9700 (output_lines): Ditto.
9701 * doc/gcov.texi: Document gcov intermediate format.
9702
11f5b71a
VM
97032013-06-19 Vladimir Makarov <vmakarov@redhat.com>
9704
9705 PR bootstrap/57604
9706 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
9707 (lra_emit_add): Use the functions. Add comment about Y as an
9708 address segment.
9709
e1f9340b
DE
97102013-06-19 David Edelsohn <dje.gcc@gmail.com>
9711
9712 PR driver/57652
9713 * collect2.c (collect_atexit): New.
9714 (collect_exit): Delete.
9715 (main): Register collect_atexit with atexit.
9716 (collect_wait): Change collect_exit to exit.
9717 (do_wait): Same.
9718 * collect2.h (collect_exit): Delete.
9719 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
9720
e3f9e0ac
WM
97212013-06-19 Wei Mi <wmi@google.com>
9722
9723 PR rtl-optimization/57518
9724 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
9725 if regno is used in paradoxical subreg.
9726 (update_equiv_regs): Check pdx_subregs[regno] before
9727 set a reg to be equivalent with a mem.
9728
a09f1a76
MK
97292013-06-19 Matthias Klose <doko@ubuntu.com>
9730
9731 PR driver/57651
9732 * file-find.h (find_a_file): Add a mode parameter.
9733 * file-find.c (find_a_file): Likewise.
9734 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
9735 with X_OK for the executables.
9736 * collect2.c (main): Call find_a_file with X_OK.
9737
7d18b0ad
SE
97382013-06-19 Steve Ellcey <sellcey@mips.com>
9739
9740 PR target/56942
9741 * config/mips/mips.md (casesi_internal_mips16_<mode>):
9742 Use NEXT_INSN instead of next_real_insn.
9743
6a6dac52
JH
97442013-06-19 Jan Hubicka <jh@suse.cz>
9745
9746 * cgraph.h (const_value_known_p): Replace by ...
9747 (ctor_for_folding): .. this one.
9748 * cgraphunit.c (process_function_and_variable_attributes): Use it.
9749 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
9750 * expr.c (expand_expr_real_1): Likewise.
9751 (string_constant): Likewise.
9752 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
9753 * ipa.c (process_references): Likewise.
9754 (symtab_remove_unreachable_nodes): Likewise.
9755 * ipa-inline-analysis.c (param_change_prob): Likewise.
9756 * gimple-fold.c (canonicalize_constructor_val): Likewise.
9757 (get_base_constructor): Likwise.
9758 * varpool.c (varpool_remove_node): Likewise.
9759 (varpool_remove_initializer): LIkewise.
9760 (dump_varpool_node): LIkwise.
9761 (const_value_known_p): Rewrite to ...
9762 (ctor_for_folding): ... this one.
9763
216c12ab
JJ
97642013-06-19 Jakub Jelinek <jakub@redhat.com>
9765
9766 PR driver/57651
9767 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
9768 PERSONALITY in $PATH derived prefixes.
9769
d53e2f99
JL
97702013-06-19 Jeff Law <law@redhat.com>
9771
ecdbf306
JL
9772 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
9773 in comment.
9774
d53e2f99
JL
9775 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
9776 (simplify_bitwise_binary): Use it to simpify certain binary ops on
9777 booleans.
9778
89e7fc04
SN
97792013-06-19 Sofiane Naci <sofiane.naci@arm.com>
9780
9781 * config/arm/vfp.md: Move VFP instruction classification documentation
9782 to ...
9783 * config/arm/arm.md: ... here. Update instruction classification
9784 documentation.
9785
5e7f6aaa
RE
97862013-06-19 Richard Earnshaw <rearnsha@arm.com>
9787
9788 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
9789 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
9790 pattern. Use more efficient sequences on ARMv5 and Thumb2.
9791
5fdc1e5d
SB
97922013-06-19 Steven Bosscher <steven@gcc.gnu.org>
9793
9794 PR target/57609
9795 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
9796 with NEXT_INSN. Use tablejump_p to check for jump table data
9797 insns.
9798
e952afba
PC
97992013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
9800
9801 PR c++/56544
9802 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
9803 that now in C++ the value is correct per the C++ standards.
9804
3fd0303a
RB
98052013-06-19 Richard Biener <rguenther@suse.de>
9806
9807 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
9808 for global context.
9809
b04e4b08
AK
98102013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9811
9812 Revert:
9813 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9814
9815 PR target/57609
9816 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
9817 with next_active_insn.
9818
bef8491a
ST
98192013-06-18 Sriraman Tallam <tmsriram@google.com>
9820
9821 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
9822 functions are inlined during failures to flag an error.
9823 * tree-inline.c (expand_call_inline): Allow the error to be flagged
9824 in early inline pass.
22fc7d3d 9825
c21b257d
L
98262013-06-18 H.J. Lu <hongjiu.lu@intel.com>
9827
9828 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
9829 in comments.
9830
33255ae3
JB
98312013-06-18 Julian Brown <julian@codesourcery.com>
9832
9833 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
9834 Permit virtual register pre-reload if !strict.
9835 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
9836 change.
9837 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
9838 prototype.
9839 * config/arm/neon.md (movmisalign<mode>): Use
9840 neon_perm_struct_or_reg_operand instead of
9841 neon_struct_or_register_operand.
9842 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
9843 neon_permissive_struct_operand instead of neon_struct_operand.
9844 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
9845 neon_vector_mem_operand.
9846 * config/arm/predicates.md (neon_struct_operand): Adjust call to
9847 neon_vector_mem_operand.
9848 (neon_permissive_struct_operand): New.
9849 (neon_struct_or_register_operand): Rename to...
9850 (neon_perm_struct_or_reg_operand): This. Adjust call to
9851 neon_vector_mem_operand.
9852
d579fcda
RB
98532013-06-18 Richard Biener <rguenther@suse.de>
9854
9855 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
9856 * lto-streamer.h: Include pointer-set.h.
9857 (struct lto_decl_slot): Remove.
9858 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
9859 Remove next_index entry.
9860 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
9861 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
9862 (lto_init_tree_ref_encoder): Adjust.
9863 (lto_destroy_tree_ref_encoder): Likewise.
9864 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
9865 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
9866 (lto_output_decl_index): Adjust.
9867 (lto_new_out_decl_state): Likewise.
9868 (lto_record_function_out_decl_state): Likewise.
9869 * lto-streamer-out.c (copy_function): Likewise.
9870
31ee20ba
RB
98712013-06-18 Richard Biener <rguenther@suse.de>
9872
9873 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
9874 * cgraphunit.c: Include cfgloop.h.
9875 (init_lowered_empty_function): Initialize the loop tree.
9876 (assemble_thunk): Insert new BBs into loops.
9877
ac0511f2
RB
98782013-06-18 Richard Biener <rguenther@suse.de>
9879
9880 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
9881 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
9882 the map from cache entry to cache index optional.
9883 (streamer_tree_cache_replace_tree): Adjust accordingly.
9884 (streamer_tree_cache_append): Likewise.
9885 (streamer_tree_cache_delete): Likewise.
9886 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
9887 streamer cache map from cache entry to cache index.
9888 * lto-streamer-out.c (create_output_block): Adjust.
9889
09485a08
SN
98902013-06-18 Sofiane Naci <sofiane.naci@arm.com>
9891
22fc7d3d
UB
9892 * config/arm/arm.md (attribute "insn"): Move multiplication and
9893 division attributes to...
09485a08
SN
9894 (attribute "type"): ... here. Remove mult.
9895 (attribute "mul32"): New attribute.
9896 (attribute "mul64"): Add umaal.
9897 (*arm_mulsi3): Update attributes.
9898 (*arm_mulsi3_v6): Likewise.
9899 (*thumb_mulsi3): Likewise.
9900 (*thumb_mulsi3_v6): Likewise.
9901 (*mulsi3_compare0): Likewise.
9902 (*mulsi3_compare0_v6): Likewise.
9903 (*mulsi_compare0_scratch): Likewise.
9904 (*mulsi_compare0_scratch_v6): Likewise.
9905 (*mulsi3addsi): Likewise.
9906 (*mulsi3addsi_v6): Likewise.
9907 (*mulsi3addsi_compare0): Likewise.
9908 (*mulsi3addsi_compare0_v6): Likewise.
9909 (*mulsi3addsi_compare0_scratch): Likewise.
9910 (*mulsi3addsi_compare0_scratch_v6): Likewise.
9911 (*mulsi3subsi): Likewise.
9912 (*mulsidi3adddi): Likewise.
9913 (*mulsi3addsi_v6): Likewise.
9914 (*mulsidi3adddi_v6): Likewise.
9915 (*mulsidi3_nov6): Likewise.
9916 (*mulsidi3_v6): Likewise.
9917 (*umulsidi3_nov6): Likewise.
9918 (*umulsidi3_v6): Likewise.
9919 (*umulsidi3adddi): Likewise.
9920 (*umulsidi3adddi_v6): Likewise.
9921 (*smulsi3_highpart_nov6): Likewise.
9922 (*smulsi3_highpart_v6): Likewise.
9923 (*umulsi3_highpart_nov6): Likewise.
9924 (*umulsi3_highpart_v6): Likewise.
9925 (mulhisi3): Likewise.
9926 (*mulhisi3tb): Likewise.
9927 (*mulhisi3bt): Likewise.
9928 (*mulhisi3tt): Likewise.
9929 (maddhisi4): Likewise.
9930 (*maddhisi4tb): Likewise.
9931 (*maddhisi4tt): Likewise.
9932 (maddhidi4): Likewise.
9933 (*maddhidi4tb): Likewise.
9934 (*maddhidi4tt): Likewise.
9935 (divsi3): Likewise.
9936 (udivsi3): Likewise.
9937 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
9938 (thumb2_mulsi_short_compare0): Likewise.
9939 (thumb2_mulsi_short_compare0_scratch): Likewise.
9940 * config/arm/arm1020e.md (1020mult1): Update attribute change.
9941 (1020mult2): Likewise.
9942 (1020mult3): Likewise.
9943 (1020mult4): Likewise.
9944 (1020mult5): Likewise.
9945 (1020mult6): Likewise.
22fc7d3d
UB
9946 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
9947 change.
09485a08
SN
9948 (cortex_a15_mult64): Likewise.
9949 (cortex_a15_sdiv): Likewise.
9950 (cortex_a15_udiv): Likewise.
9951 * config/arm/arm1026ejs.md (mult1): Update attribute change.
9952 (mult2): Likewise.
9953 (mult3): Likewise.
9954 (mult4): Likewise.
9955 (mult5): Likewise.
9956 (mult6): Likewise.
9957 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
9958 (pj4_ir_div): Likewise.
9959 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
9960 (11_mult2): Likewise.
9961 (11_mult3): Likewise.
9962 (11_mult4): Likewise.
9963 (11_mult5): Likewise.
9964 (11_mult6): Likewise.
9965 (11_mult7): Likewise.
9966 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
9967 (cortex_a8_mla): Likewise.
9968 (cortex_a8_mull): Likewise.
9969 (cortex_a8_smulwy): Likewise.
9970 (cortex_a8_smlald): Likewise.
9971 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
9972 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
9973 (cortex_r4_mul_3): Likewise.
9974 (cortex_r4_mla_4): Likewise.
9975 (cortex_r4_mla_3): Likewise.
9976 (cortex_r4_smlald): Likewise.
9977 (cortex_r4_mull): Likewise.
9978 (cortex_r4_sdiv): Likewise.
9979 (cortex_r4_udiv): Likewise.
9980 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
9981 (cortex_a7_idiv): Likewise.
9982 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
9983 (9_mult2): Likewise.
9984 (9_mult3): Likewise.
9985 (9_mult4): Likewise.
9986 (9_mult5): Likewise.
9987 (9_mult6): Likewise.
9988 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
9989 (cortex_a53_sdiv): Likewise.
9990 (cortex_a53_udiv): Likewise.
9991 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
9992 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
9993 (mp626_mult2): Likewise.
9994 (mp626_mult3): Likewise.
9995 (mp626_mult4): Likewise.
9996 * config/arm/fa526.md (526_mult1): Update attribute change.
9997 (526_mult2): Likewise.
9998 * config/arm/arm-generic.md (mult): Update attribute change.
9999 (mult_ldsched_strongarm): Likewise.
10000 (mult_ldsched): Likewise.
10001 (multi_cycle): Likewise.
10002 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
10003 * config/arm/fa606te.md (606te_mult1): Update attribute change.
10004 (606te_mult2): Likewise.
10005 (606te_mult3): Likewise.
10006 (606te_mult4): Likewise.
10007 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
10008 (cortex_a9_mac16): Likewise.
10009 (cortex_a9_multiply): Likewise.
10010 (cortex_a9_mac): Likewise.
10011 (cortex_a9_multiply_long): Likewise.
10012 * config/arm/fa626te.md (626te_mult1): Update attribute change.
10013 (626te_mult2): Likewise.
10014 (626te_mult3): Likewise.
10015 (626te_mult4): Likewise.
10016
8951f345
RB
100172013-06-18 Richard Biener <rguenther@suse.de>
10018
10019 PR lto/57334
10020 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
10021
d8101d05
AK
100222013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10023
10024 PR target/57609
10025 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
10026 with next_active_insn.
10027
69eff9da
AM
100282013-06-18 Alan Modra <amodra@gmail.com>
10029
10030 * config/rs6000/rs6000.h (enum data_align): New.
10031 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
10032 (DATA_ABI_ALIGNMENT): Define.
10033 (CONSTANT_ALIGNMENT): Correct comment.
10034 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
10035 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
10036
8ed00d76
DM
100372013-06-17 David Malcolm <dmalcolm@redhat.com>
10038
10039 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
10040 ATTRIBUTE_UNUSED marking.
10041
3d33d06b
SN
100422013-06-17 Sofiane Naci <sofiane.naci@arm.com>
10043
10044 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
10045 alternative and update.
10046 (aarch64_dup_lanedi): Delete.
10047 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
10048 * config/aarch64/aarch64-simd-builtins.def: Update.
10049
ee03e71d
RB
100502013-06-17 Richard Biener <rguenther@suse.de>
10051
10052 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
10053 (lto_input_scc): Declare.
10054 (lto_input_tree_1): Likewise.
10055 (struct lto_stats_d): Add num_tree_bodies_output and
10056 num_pickle_refs_output.
10057 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
10058 (lto_read_tree_1): Split out from ...
10059 (lto_read_tree): ... this.
10060 (lto_input_scc): New function.
10061 (lto_input_tree_1): Split out from ...
10062 (lto_input_tree): ... this. Handle LTO_tree_scc.
10063 (lto_data_in_create): Create the streamer cache without hashes.
10064 * lto-streamer-out.c (create_output_block): Create the streamer
10065 cache with hashes when not doing WPA.
10066 (lto_write_tree_1): Split out from ...
10067 (lto_write_tree): ... this.
10068 (get_symbol_initial_value): New function.
10069 (lto_output_tree_1): Split out from ...
10070 (lto_output_tree): ... this. Write trees as series of SCCs
10071 using a DFS walk via DFS_write_tree.
10072 (struct sccs, struct scc_entry): New types.
10073 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
10074 (DFS_write_tree_body): New function.
10075 (DFS_write_tree): Likewise.
10076 (hash_tree): Likewise.
10077 (scc_entry_compare): Likewise.
10078 (hash_scc): Likewise.
10079 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
10080 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
10081 TREE_CHAIN as regular reference.
10082 (streamer_read_integer_cst): Remove.
10083 (streamer_get_pickled_tree): Adjust.
10084 * tree-streamer-out.c (streamer_write_chain): Disable streaming
10085 of DECL_EXTERNALs in BLOCK_VARS for now.
10086 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
10087 reference.
10088 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
10089 Add hash value argument and record that if hashes are recorded
10090 in the cache.
10091 (streamer_tree_cache_insert_1): Adjust.
10092 (streamer_tree_cache_insert): Likewise.
10093 (streamer_tree_cache_insert_at): Rename to ...
10094 (streamer_tree_cache_replace_tree): ... this and adjust.
10095 (streamer_tree_cache_append): Adjust.
10096 (record_common_node): Likewise.
10097 (streamer_tree_cache_create): Add argument whether to
10098 record hash values together with trees.
10099 (streamer_tree_cache_delete): Adjust.
10100 * tree-streamer.h (struct streamer_tree_cache_d): Add
10101 vector of hashes.
10102 (streamer_read_integer_cst): Remove.
10103 (streamer_tree_cache_insert): Adjust.
10104 (streamer_tree_cache_append): Likewise.
10105 (streamer_tree_cache_insert_at): Rename to ...
10106 (streamer_tree_cache_replace_tree): ... this and adjust.
10107 (streamer_tree_cache_create): Add argument whether to record hashes.
10108 (streamer_tree_cache_get): Rename to ...
10109 (streamer_tree_cache_get_tree): ... this.
10110 (streamer_tree_cache_get_hash): New function.
10111 * tree.c (cache_integer_cst): New function.
10112 * tree.h (cache_integer_cst): Declare.
10113 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
10114 * lto-symtab.c (lto_varpool_replace_node): Only release
10115 DECL_INITIAL of non-prevailing decls.
10116 * varpool.c (varpool_remove_initializer): Do not release
10117 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
10118
0de86a92
JU
101192013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
10120
10121 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
10122 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
10123 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
10124 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
10125 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
10126 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
10127 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
10128 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
10129 instead of TARGET_64BIT.
10130 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
10131 Require ISA_HAS_<D>DIV.
10132
74240413
RS
101332013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
10134
10135 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
10136 (mips*-*-linux*): Move default with_llsc setting to where other
10137 defaults are set.
10138 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
10139 with_arch block.
10140 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
10141 Likewise. Remove default with_tune setting. Move default float
10142 setting to its own block. Handle with_llsc in the same block as above.
10143
12211b99 101442013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
10145
10146 PR rtl-optimization/57425
10147 PR rtl-optimization/57569
299a5f6a 10148 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
10149 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
10150 Changed all callers.
10151 (canon_anti_dependence): New function.
10152 * cse.c (check_dependence): Use canon_anti_dependence.
10153 * cselib.c (cselib_invalidate_mem): Likewise.
10154 * rtl.h (canon_anti_dependence): Declare.
10155
b259d352
JU
101562013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
10157
10158 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
10159 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
10160 ".set mips3" for 64-bit targets.
10161
4de09b85
DC
101622013-06-15 Dehao Chen <dehao@google.com>
10163
10164 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
10165 * gimple-low.c (gimple_check_call_matching_types): Likewise.
10166 (gimple_check_call_args): Likewise.
10167 * value-prof.c (check_ic_target): Likewise.
10168 * ipa-inline.c (early_inliner): Likewise.
10169 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
10170 * cgraph.c (cgraph_create_edge_1): Likewise.
10171 (cgraph_make_edge_direct): Likewise.
10172
d1aa4a76
MM
101732013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
10174
10175 PR target/57615
10176 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
10177 rs6000_output_move_128bit to handle emitting quad memory
10178 operations. Set attribute length to 8 bytes.
10179
12211b99 101802013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
10181
10182 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
10183 New pattern.
10184 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
10185 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
10186 (aarch64_<su>mlsl<mode>): Likewise.
10187
f5273574
MS
101882013-06-14 Mike Stump <mikestump@comcast.net>
10189
10190 * Makefile.in (TARGET_H): Add insn-codes.h.
10191
ef7e7ab2
AM
101922013-06-14 Alan Modra <amodra@gmail.com>
10193
10194 PR middle-end/57134
10195 PR middle-end/57586
10196 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
10197 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
10198 bitfield expansion when EXPAND_MEMORY.
10199 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
10200
135faab6
MM
102012013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
10202
10203 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
10204 test for clearing quad memory on 32-bit later.
10205
948a1fd9
MG
102062013-06-13 Marc Glisse <marc.glisse@inria.fr>
10207
10208 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
10209 (fold_negate_expr): Likewise.
10210 (fold_real_zero_addition_p): Handle vectors.
10211 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
10212
0597fb9c
AM
102132013-06-14 Alan Modra <amodra@gmail.com>
10214
10215 * varasm.c (force_const_mem): Revert 2013-06-07 change.
10216
e5b962d0
JH
102172013-06-13 Jan Hubicka <jh@suse.cz>
10218
10219 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
10220 Local comdats are not externally visible.
10221 * symtab.c (dump_symtab_base): Dump externally visible.
10222 (verify_symtab_base): Verify back links in the symtab hash.
10223
a8355e51
BC
102242013-06-13 Bin Cheng <bin.cheng@arm.com>
10225
10226 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
10227 CONVERT_EXPR as equal nodes.
10228
8f7e6e33
BC
102292013-06-13 Bin Cheng <bin.cheng@arm.com>
10230
22fc7d3d 10231 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 10232
5d418483
MG
102332013-06-13 Marc Glisse <marc.glisse@inria.fr>
10234
10235 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
10236 Generalize to complex and vector.
10237 * tree.c (build_all_ones_cst): New function.
10238 * tree.h (build_all_ones_cst): Declare it.
10239
50751417
AM
102402013-06-13 Alan Modra <amodra@gmail.com>
10241
10242 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
10243 * config/rs6000/rs6000.md (signbittf2): New insn.
10244 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
10245 (abstf2_internal, cmptf_internal2): Likewise.
10246 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
10247
4b02c962 102482013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
10249 Pat Haugen <pthaugen@us.ibm.com>
10250 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
10251
10252 * config/rs6000/rs6000.c (emit_load_locked): Add support for
10253 power8 byte, half-word, and quad-word atomic instructions.
10254 (emit_store_conditional): Likewise.
10255 (rs6000_expand_atomic_compare_and_swap): Likewise.
10256 (rs6000_expand_atomic_op): Likewise.
10257
10258 * config/rs6000/sync.md (larx): Add new modes for power8.
10259 (stcx): Likewise.
10260 (AINT): New mode iterator to include TImode as well as normal
10261 integer modes on power8.
10262 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
10263 that VSX registers are not considered. Use AINT mode iterator
10264 instead of INT1 to allow inclusion of quad word atomic operations
10265 on power8.
10266 (load_locked<mode>): Likewise.
10267 (store_conditional<mode>): Likewise.
10268 (atomic_compare_and_swap<mode>): Likewise.
10269 (atomic_exchange<mode>): Likewise.
10270 (atomic_nand<mode>): Likewise.
10271 (atomic_fetch_<fetchop_name><mode>): Likewise.
10272 (atomic_nand_fetch<mode>): Likewise.
10273 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
10274 each type.
10275 (ATOMIC): On power8, add QImode, HImode modes.
10276 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
10277 modes that promote to SImode.
10278 (load_lockedti): Convert TImode arguments to PTImode, so that we
10279 get a guaranteed even/odd register pair.
10280 (load_lockedpti): Likewise.
10281 (store_conditionalti): Likewise.
10282 (store_conditionalpti): Likewise.
10283
10284 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
10285 atomic load/store instructions.
10286 (HSI): Likewise.
10287
710b6cc1
RS
102882013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
10289
10290 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
10291 loads.
10292 (insn_count): New attribute, with most cases extracted from...
10293 (length): ...here. Redefine most cases in terms of insn_count.
10294 (single_insn): Delete.
10295 (can_delay): Use insn_count to check for single instructions.
10296 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
10297 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
10298 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
10299 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
10300 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
10301 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
10302 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
10303 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
10304 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
10305 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
10306 rather than "length".
10307 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
10308 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
10309 Use "insn_count" rather than "length".
10310 * config/mips/mips-dsp.md
10311 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
10312 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
10313 length attributes.
10314
1951f101
MG
103152013-06-12 Marc Glisse <marc.glisse@inria.fr>
10316
10317 PR tree-optimization/57361
10318 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
10319
8b033a8a
SN
103202013-06-12 Sofiane Naci <sofiane.naci@arm.com>
10321
22fc7d3d
UB
10322 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
10323 to split.
8b033a8a
SN
10324 (aarch64_simd_combine<mode>): New instruction expansion.
10325 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
10326 function prototype.
10327 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
10328 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
10329
ca0f62a8
JH
103302013-06-12 Jan Hubicka <jh@suse.cz>
10331
10332 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
10333 decl has when in streaming stage.
10334 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
10335 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
10336
12211b99 103372013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
10338
10339 PR target/57578
10340 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
10341
bfdeda2c
JJ
103422013-06-12 Jakub Jelinek <jakub@redhat.com>
10343
10344 PR tree-optimization/57537
10345 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
10346 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
10347
a4fa02d1
RB
103482013-06-12 Richard Biener <rguenther@suse.de>
10349
10350 * data-streamer.h (streamer_write_char_stream): CSE
10351 obs->current_pointer.
10352 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
10353 streamer_write_char_stream manually and optimize the resulting loop.
10354 (streamer_write_hwi_stream): Likewise.
10355
bbf9ad07
JH
103562013-06-12 Jan Hubicka <jh@suse.cz>
10357
10358 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
10359 * cgraph.h (varpool_create_empty_node): Declare.
10360 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
10361 duplicated nodes.
10362 * symtab.c (symtab_unregister_node): Be lax about missin entries
10363 in node hash.
10364 (symtab_get_node): Update comment.
10365 * varpool.c (varpool_create_empty_node): Break out from ...
10366 (varpool_node_for_decl): ... here.
10367 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
10368
a53f90ad
EB
103692013-06-12 Eric Botcazou <ebotcazou@adacore.com>
10370
10371 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
10372 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
10373 part. Use straight-line flow at the end.
10374 <COMPONENT_REF>: Remove superfluous else.
10375 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
10376
946f9306
JJ
103772013-06-12 Jakub Jelinek <jakub@redhat.com>
10378
10379 PR target/56564
10380 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
10381 target hook even for !TREE_PUBLIC decls. If no resolution info
10382 is available, return false for common and external decls.
10383
a7fca6f0
KP
103842013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
10385
10386 * config/rl78/constraints.md (U): New constraint.
10387 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
10388 valloc attribute.
10389
c7d8f446
MM
103902013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
10391
10392 PR target/57589
10393 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
10394 to allow returning address to AT_PLATFORM name.
10395
08346abd
JH
103962013-06-11 Jan Hubicka <jh@suse.cz>
10397
10398 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
10399 * cgraph.h (symtab_node_base): Add weakref flag.
10400 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
10401 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
10402 (output_weakrefs): Use weakref flag.
10403 * fold-const.c (simple_operand_p): Handle WEAK.
10404 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
10405 * ipa.c (varpool_externally_visible_p): Drop weakref.
10406 (function_and_variable_visibility): Update comment; fix weakref
10407 sanity checks; do not clear DECL_WEAK on them.
10408 * lto-cgraph.c (lto_output_node): update.
10409 (lto_output_varpool_node): Update.
10410 (input_overwrite_node): Update.
10411 (input_node): Update.
10412 (input_varpool_node): Update.
10413 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
10414 (lto_symtab_merge_symbols): Add sanity check.
10415 (lto_symtab_prevailing_decl): Do not special case weakrefs.
10416 * passes.c (rest_of_decl_compilation): Set static flag, too.
10417 * symtab.c (dump_symtab_base): Dump weakref.
10418 (verify_symtab_base): Sanity check weakrefs.
10419 (symtab_make_decl_local): Remove duplicated code.
10420 (symtab_alias_ultimate_target): Simplify.
10421 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 10422
2e6a2f88
TV
104232013-06-11 Tom de Vries <tom@codesourcery.com>
10424
10425 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
10426 sequence_vect == NULL.
10427
d9af3652
DD
104282013-06-11 DJ Delorie <dj@redhat.com>
10429
10430 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
10431 (rl78_unwind_word_mode): New.
10432
ffa66012
DM
104332013-06-11 David Malcolm <dmalcolm@redhat.com>
10434
10435 * final.c (debug_prefix_maps): Make static.
10436
783f2d35
DM
104372013-06-11 David Malcolm <dmalcolm@redhat.com>
10438
10439 * function.c (initial_trampoline): Remove stray copy.
10440
7af26def
SN
104412013-06-11 Sofiane Naci <sofiane.naci@arm.com>
10442
10443 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
10444
97756c0e
MJ
104452013-06-11 Martin Jambor <mjambor@suse.cz>
10446
10447 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
10448 within bounds at the beginning of the function.
10449
2c7b8bf6
AM
104502013-06-11 Alan Modra <amodra@gmail.com>
10451
10452 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
10453 reporting.
10454 (get_named_section): Don't NULL !DECL_P decl.
10455
77cea46e
IZ
104562013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
10457
10458 * doc/invoke.texi (core-avx2): Document.
10459 (slm): Likewise.
10460 (atom): Updated with MOVBE.
10461
888f0920
RB
104622013-06-11 Richard Biener <rguenther@suse.de>
10463
22fc7d3d 10464 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 10465
6b438d58
AB
104662013-06-11 Anton Blanchard <anton@samba.org>
10467
10468 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
10469 correct shift value in little-endian mode.
10470
3bc66938
JJ
104712013-06-11 Jakub Jelinek <jakub@redhat.com>
10472
10473 PR target/56564
10474 * varasm.c (get_variable_align): Move #endif to the right place.
10475
a5dc7f88
CC
104762013-06-10 Cary Coutant <ccoutant@google.com>
10477
10478 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
10479 for hash so that hash table traversal order is deterministic.
10480
19be72ab 104812013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
10482 Pat Haugen <pthaugen@us.ibm.com>
10483 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
10484
10485 * config/rs6000/vector.md (GPR move splitter): Do not split moves
10486 of vectors in GPRS if they are direct moves or quad word load or
10487 store moves.
10488
10489 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
10490 declaration.
10491 (direct_move_p): Likewise.
10492 (quad_load_store_p): Likewise.
10493
10494 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
10495 classes into bins based on the physical register type.
10496 (reg_class_to_reg_type): Likewise.
10497 (IS_STD_REG_TYPE): Likewise.
10498 (IS_FP_VECT_REG_TYPE): Likewise.
10499 (reload_fpr_gpr): Arrays to determine what insn to use if we can
10500 use direct move instructions.
10501 (reload_gpr_vsx): Likewise.
10502 (reload_vsx_gpr): Likewise.
10503 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
10504 information that is a simplification of register classes. Also
10505 precalculate direct move reload helpers.
10506 (direct_move_p): New function to return true if the operation can
10507 be done as a direct move instruciton.
10508 (quad_load_store_p): New function to return true if the operation
10509 is a quad memory operation.
10510 (rs6000_legitimize_address): If quad memory, only allow register
10511 indirect for TImode addresses.
10512 (rs6000_legitimate_address_p): Likewise.
10513 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
10514 (rs6000_reload_register_type): Likewise.
10515 (register_to_reg_type): Return register type.
10516 (rs6000_secondary_reload_simple_move): New helper function for
10517 secondary reload and secondary memory needed to identify anything
10518 that is a simple move, and does not need reloading.
10519 (rs6000_secondary_reload_direct_move): New helper function for
10520 secondary reload to identify cases that can be done with several
10521 instructions via the direct move instructions.
10522 (rs6000_secondary_reload_move): New helper function for secondary
10523 reload to identify moves between register types that can be done.
10524 (rs6000_secondary_reload): Add support for quad memory operations
10525 and for direct move.
10526 (rs6000_secondary_memory_needed): Likewise.
10527 (rs6000_debug_secondary_memory_needed): Change argument names.
10528 (rs6000_output_move_128bit): New function to return the move to
10529 use for 128-bit moves, including knowing about the various
10530 limitations of quad memory operations.
10531
10532 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
10533 memory operations. call rs6000_output_move_128bit for the actual
10534 instruciton(s) to generate.
10535 (vsx_movti_64bit): Likewise.
10536
10537 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
10538 (UNSPEC_P8V_MTVSRWZ): Likewise.
10539 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
10540 (UNSPEC_P8V_MTVSRD): Likewise.
10541 (UNSPEC_P8V_XXPERMDI): Likewise.
10542 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
10543 (UNSPEC_FUSION_GPR): Likewise.
10544 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 10545 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
10546 (f32_sv): Likewise.
10547 (f32_dm): Likewise.
10548 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
10549 loads and direct move instructions.
10550 (zero_extendsidi2_lfiwzx): Likewise.
10551 (extendsidi2_lfiwax): Likewise.
10552 (extendsidi2_nocell): Likewise.
10553 (floatsi<mode>2_lfiwax): Likewise.
10554 (lfiwax): Likewise.
10555 (floatunssi<mode>2_lfiwzx): Likewise.
10556 (lfiwzx): Likewise.
10557 (fix_trunc<mode>_stfiwx): Likewise.
10558 (fixuns_trunc<mode>_stfiwx): Likewise.
10559 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
10560 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
10561 (parity<mode>2_cmpb): Set length/type attr.
10562 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
10563 for 'mr.' to fast_compare.
10564 (bpermd_<mode>): Change type attr to popcnt.
10565 (p8_fmrgow_<mode>): New insns for power8 direct move support.
10566 (p8_mtvsrwz_1): Likewise.
10567 (p8_mtvsrwz_2): Likewise.
10568 (reload_fpr_from_gpr<mode>): Likewise.
10569 (p8_mtvsrd_1): Likewise.
10570 (p8_mtvsrd_2): Likewise.
10571 (p8_xxpermdi_<mode>): Likewise.
10572 (reload_vsx_from_gpr<mode>): Likewise.
10573 (reload_vsx_from_gprsf): Likewise.
10574 (p8_mfvsrd_3_<mode>): LIkewise.
10575 (reload_gpr_from_vsx<mode>): Likewise.
10576 (reload_gpr_from_vsxsf): Likewise.
10577 (p8_mfvsrd_4_disf): Likewise.
10578 (multi-word GPR splits): Do not split direct moves or quad memory
10579 operations.
10580
16876bdc
DM
105812013-06-10 David Malcolm <dmalcolm@redhat.com>
10582
10583 * tree-into-ssa.c (interesting_blocks): Make static.
10584
df8a1d28
JJ
105852013-06-10 Jakub Jelinek <jakub@redhat.com>
10586
10587 PR target/56564
10588 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
10589 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
10590 Use DATA_ABI_ALIGNMENT for that case instead if defined.
10591 (get_variable_align): New function.
10592 (get_variable_section, emit_bss, emit_common,
10593 assemble_variable_contents, place_block_symbol): Use
10594 get_variable_align instead of DECL_ALIGN.
10595 (assemble_noswitch_variable): Add align argument, use it
10596 instead of DECL_ALIGN.
10597 (assemble_variable): Adjust caller. Use get_variable_align
10598 instead of DECL_ALIGN.
10599 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
10600 caller.
10601 (DATA_ABI_ALIGNMENT): Define.
10602 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
10603 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
10604 opt is false, only return the psABI mandated alignment increase.
10605 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
10606 (DATA_ABI_ALIGNMENT): ... this.
10607 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
10608 (DATA_ABI_ALIGNMENT): ... this.
10609 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
10610 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
10611 (DATA_ABI_ALIGNMENT): ... this.
10612 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
10613 * doc/tm.texi: Regenerated.
10614
57b29ca6
UB
106152013-06-10 Uros Bizjak <ubizjak@gmail.com>
10616
10617 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
10618 cmp_code to construct REG_EQUAL note.
10619
3e56ed50
JJ
106202013-06-09 Jakub Jelinek <jakub@redhat.com>
10621
10622 PR target/57568
10623 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
10624 that operands[2] doesn't overlap with operands[0].
10625
74fe2a1d
DE
106262013-06-09 David Edelsohn <dje.gcc@gmail.com>
10627 Jan Hubicka <jh@suse.cz>
10628
10629 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
10630 hack to mark symbols as used.
10631
ed52a84e
VM
106322013-06-08 Vladimir Makarov <vmakarov@redhat.com>
10633
10634 PR rtl-optimization/57559
10635 * lra-constraints.c (process_alt_operands): Don't discourage
10636 memory with known offset for offsetable memory constraint.
10637 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
10638
299316ed
EB
106392013-06-08 Eric Botcazou <ebotcazou@adacore.com>
10640
10641 * varasm.c (struct oc_local_state): Reorder fields.
10642 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
10643 and adjust accordingly.
10644 (output_constructor): Reorder initialization code and adjust call to
10645 output_constructor_bitfield.
10646
88ac60d3
JH
106472013-06-07 Jan Hubicka <jh@suse.cz>
10648
10649 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
10650
4cdce1a8
DM
106512013-06-07 David Malcolm <dmalcolm@redhat.com>
10652
10653 * tree-object-size.c (unknown): Make const.
10654
b5e0425c
AK
106552013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10656
10657 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
10658 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
10659 for last alternative in the cpu_facility attribute.
10660
79678d04
KT
106612013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10662
10663 PR target/56315
10664 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
10665 (xordi3): Change operand 2 constraint to arm_xordi_operand.
10666 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
10667 * config/arm/constraints.md (Dg): New constraint.
10668 * config/arm/neon.md (xordi3_neon): Remove.
10669 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
10670 * config/arm/predicates.md (arm_xordi_operand): New predicate.
10671
b31ddbdb
KT
106722013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10673
10674 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
10675 Clean up alternatives.
10676
8f90b7d4
AM
106772013-06-07 Alan Modra <amodra@gmail.com>
10678
10679 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
10680 va_list_gpr_size.
10681
961ce119
AM
106822013-06-07 Alan Modra <amodra@gmail.com>
10683
10684 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
10685
33e49835
KT
106862013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10687
10688 * config/arm/constraints.md (Df): New constraint.
10689 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
10690 Correct length attribute for last two alternatives.
10691
acd17ae6
AM
106922013-06-07 Alan Modra <amodra@gmail.com>
10693
10694 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
10695 override user -mfp-in-toc.
10696 (offsettable_ok_by_alignment): Consider just the current access
10697 rather than the whole object, unless BLKmode. Handle
10698 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
10699 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
10700 for -mcmodel=medium.
10701 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
10702 override user -mfp-in-toc or -msum-in-toc. Default to
10703 -mno-fp-in-toc for -mcmodel=medium.
10704
73310b0e
DD
107052013-06-06 DJ Delorie <dj@redhat.com>
10706
10707 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
10708 TARGET_VALID_POINTER_MODE.
10709
0bd62dca 107102013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
10711 Pat Haugen <pthaugen@us.ibm.com>
10712 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
10713
10714 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10715 Document new power8 builtins.
10716
10717 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
10718 condition code register, to allow 128-bit logical operations to be
10719 done in the VSX or GPR registers.
10720 (nor<mode>3): Use the canonical form for nor.
10721 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
10722 vclz*, and vpopcnt* vector instructions.
10723 (nand<mode>3): Likewise.
10724 (orc<mode>3): Likewise.
10725 (clz<mode>2): LIkewise.
10726 (popcount<mode>2): Likewise.
10727
10728 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
10729 that only the GPRs are recognized.
10730
10731 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10732 support for new power8 builtins.
10733
10734 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
10735 builtin functions.
10736 (xscvdpspn): Likewise.
10737 (vclz): Likewise.
10738 (vclzb): Likewise.
10739 (vclzh): Likewise.
10740 (vclzw): Likewise.
10741 (vclzd): Likewise.
10742 (vpopcnt): Likewise.
10743 (vpopcntb): Likewise.
10744 (vpopcnth): Likewise.
10745 (vpopcntw): Likewise.
10746 (vpopcntd): Likewise.
10747 (vgbbd): Likewise.
10748 (vmrgew): Likewise.
10749 (vmrgow): Likewise.
10750 (eqv): Likewise.
10751 (eqv_v16qi3): Likewise.
10752 (eqv_v8hi3): Likewise.
10753 (eqv_v4si3): Likewise.
10754 (eqv_v2di3): Likewise.
10755 (eqv_v4sf3): Likewise.
10756 (eqv_v2df3): Likewise.
10757 (nand): Likewise.
10758 (nand_v16qi3): Likewise.
10759 (nand_v8hi3): Likewise.
10760 (nand_v4si3): Likewise.
10761 (nand_v2di3): Likewise.
10762 (nand_v4sf3): Likewise.
10763 (nand_v2df3): Likewise.
10764 (orc): Likewise.
10765 (orc_v16qi3): Likewise.
10766 (orc_v8hi3): Likewise.
10767 (orc_v4si3): Likewise.
10768 (orc_v2di3): Likewise.
10769 (orc_v4sf3): Likewise.
10770 (orc_v2df3): Likewise.
10771
10772 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
10773 allow power8 quad mode in 64-bit.
10774 (rs6000_builtin_vectorized_function): Add support to vectorize
10775 ISA 2.07 count leading zeros, population count builtins.
10776 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
10777 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
10778 (builtin_function_type): Add vgbbd builtin function which takes an
10779 unsigned argument.
10780 (altivec_expand_vec_perm_const): Add support for new power8 merge
10781 instructions.
10782
10783 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
10784 that does not include TImdoe for use with 32-bit.
10785 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
10786 instructions.
10787 (UNSPEC_VSX_CVDPSPN): Likewise.
10788 (vsx_xscvdpspn): Likewise.
10789 (vsx_xscvspdpn): Likewise.
10790 (vsx_xscvdpspn_scalar): Likewise.
10791 (vsx_xscvspdpn_directmove): Likewise.
10792 (vsx_and<mode>3): Split logical operations into 32-bit and
10793 64-bit. Add support to do logical operations on TImode as well as
10794 VSX vector types. Allow logical operations to be done in either
10795 VSX registers or in general purpose registers in 64-bit mode. Add
10796 splitters if GPRs were used. For AND, add clobber of CCmode to
10797 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
10798 encoding.
10799 (vsx_and<mode>3_32bit): Likewise.
10800 (vsx_and<mode>3_64bit): Likewise.
10801 (vsx_ior<mode>3): Likewise.
10802 (vsx_ior<mode>3_32bit): Likewise.
10803 (vsx_ior<mode>3_64bit): Likewise.
10804 (vsx_xor<mode>3): Likewise.
10805 (vsx_xor<mode>3_32bit): Likewise.
10806 (vsx_xor<mode>3_64bit): Likewise.
10807 (vsx_one_cmpl<mode>2): Likewise.
10808 (vsx_one_cmpl<mode>2_32bit): Likewise.
10809 (vsx_one_cmpl<mode>2_64bit): Likewise.
10810 (vsx_nor<mode>3): Likewise.
10811 (vsx_nor<mode>3_32bit): Likewise.
10812 (vsx_nor<mode>3_64bit): Likewise.
10813 (vsx_andc<mode>3): Likewise.
10814 (vsx_andc<mode>3_32bit): Likewise.
10815 (vsx_andc<mode>3_64bit): Likewise.
10816 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
10817 and xxlorc instructions.
10818 (vsx_eqv<mode>3_64bit): Likewise.
10819 (vsx_nand<mode>3_32bit): Likewise.
10820 (vsx_nand<mode>3_64bit): Likewise.
10821 (vsx_orc<mode>3_32bit): Likewise.
10822 (vsx_orc<mode>3_64bit): Likewise.
10823
10824 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
10825
10826 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
10827 instruction.
10828 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
10829 (p8_vmrgow): Likewise.
10830 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
10831 GPRs to be split under VSX.
10832 (p8v_clz<mode>2): Add power8 count leading zero support.
10833 (p8v_popcount<mode>2): Add power8 population count support.
10834 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
10835 support.
10836
10837 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
10838 instruction.
10839
10840 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
10841 builtin functions.
10842 (vec_nand): Likewise.
10843 (vec_vclz): Likewise.
10844 (vec_vclzb): Likewise.
10845 (vec_vclzd): Likewise.
10846 (vec_vclzh): Likewise.
10847 (vec_vclzw): Likewise.
10848 (vec_vgbbd): Likewise.
10849 (vec_vmrgew): Likewise.
10850 (vec_vmrgow): Likewise.
10851 (vec_vpopcnt): Likewise.
10852 (vec_vpopcntb): Likewise.
10853 (vec_vpopcntd): Likewise.
10854 (vec_vpopcnth): Likewise.
10855 (vec_vpopcntw): Likewise.
10856
37684c46
VM
108572013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10858
10859 PR rtl-optimization/57468
10860 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
10861 spilled pseudos.
10862
d89ae27c
VM
108632013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10864
10865 PR rtl-optimization/57459
10866 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
10867 type when setting live regs.
10868
3597e113
VM
108692013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10870
10871 * config/s390/s390.opt (mlra): New option.
10872 * config/s390/s390.c (s390_decompose_address): Check displacement
10873 for all registers for LRA.
10874 (s390_secondary_reload): Don't used secondary reloads for LRA.
10875 (s390_lra_p): New function.
10876 (TARGET_LRA_P): Define.
10877 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
10878 of attribute cpu_facility to zarch for the last alternative.
10879 (*cmpmem_short): Ditto.
10880
01037aeb
EB
108812013-06-06 Eric Botcazou <ebotcazou@adacore.com>
10882
10883 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
10884 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
10885 (arm_expand_prologue): Likewise.
10886
3371a64f
TJ
108872013-06-06 Teresa Johnson <tejohnson@google.com>
10888
10889 PR c++/53743
10890 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
10891 as this is now done by redirect_edge_and_branch_force.
10892 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
10893 barriers, and fix interaction with splitting.
10894 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
10895 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
10896 reflect changes made in the routine.
10897 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
10898 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
10899 since this is called in cfglayout mode, and replace partition fixup
10900 with assert as that is now done by force_nonfallthru_and_redirect.
10901 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
10902 already be marked with region crossing note.
10903 (insert_section_boundary_note): Make non-static, gate on flag
10904 has_bb_partition, rewrite to also check for multiple partitions.
10905 (rest_of_handle_reorder_blocks): Remove call to
10906 insert_section_boundary_note, now done later during free_cfg.
10907 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
10908 * bb-reorder.h (insert_section_boundary_note): Declare.
10909 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
10910 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
10911 invoke insert_section_boundary_note.
10912 (try_redirect_by_replacing_jump): Remove unnecessary
10913 check for region crossing note.
10914 (fixup_partition_crossing): New function.
10915 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
10916 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
10917 in non-cfglayout mode.
10918 (force_nonfallthru_and_redirect): Fixup partition boundaries,
10919 remove old code that tried to do this. Emit barrier correctly
10920 when we are in cfglayout mode.
10921 (last_bb_in_partition): New function.
10922 (rtl_split_edge): Correctly fixup partition boundaries.
10923 (commit_one_edge_insertion): Remove old code that tried to
10924 fixup region crossing edge since this is now handled in
10925 split_block, and set up insertion point correctly since
10926 block may now end in a jump.
10927 (verify_hot_cold_block_grouping): Guard against checking when not in
10928 linearized RTL mode.
10929 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
10930 notes.
10931 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
10932 rtl_verify_flow_info, so not called in cfglayout mode.
10933 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
10934 (fixup_reorder_chain): Remove old code that attempted to fixup region
10935 crossing note as this is now handled in force_nonfallthru_and_redirect.
10936 (duplicate_insn_chain): Don't duplicate switch section notes.
10937 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
10938 note.
10939 * basic-block.h (emit_barrier_after_bb): Declare.
10940
66071e10
KT
109412013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10942
10943 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
10944 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
10945 arm_usatsihi): Adjust alternatives for arm_restrict_it.
10946
0e26bf3d
KT
109472013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10948
10949 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
10950 where appropriate.
10951 * config/arm/ldmstm.md: Regenerate.
10952
12b4e7ef
KT
109532013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10954
10955 * config/arm/sync.md (atomic_loaddi_1):
10956 Disable predication for arm_restrict_it.
10957 (arm_load_exclusive<mode>): Likewise.
10958 (arm_load_exclusivesi): Likewise.
10959 (arm_load_exclusivedi): Likewise.
10960 (arm_load_acquire_exclusive<mode>): Likewise.
10961 (arm_load_acquire_exclusivesi): Likewise.
10962 (arm_load_acquire_exclusivedi): Likewise.
10963 (arm_store_exclusive<mode>): Likewise.
10964 (arm_store_exclusive<mode>): Likewise.
10965 (arm_store_release_exclusivedi): Likewise.
10966 (arm_store_release_exclusive<mode>): Likewise.
10967
15d16c8a
RB
109682013-06-06 Richard Biener <rguenther@suse.de>
10969
10970 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
10971 after LTO_null.
10972 (lto_tag_is_tree_code_p): Adjust.
10973 (lto_tag_is_gimple_code_p): Likewise.
10974 (lto_gimple_code_to_tag): Likewise.
10975 (lto_tag_to_gimple_code): Likewise.
10976 (lto_tree_code_to_tag): Likewise.
10977 (lto_tag_to_tree_code): Likewise.
10978 * data-streamer.h (streamer_write_hwi_in_range): Use
10979 uhwi streaming to stream the normalized range.
10980 (streamer_read_hwi_in_range): Likewise.
10981
17a7fc37
KT
109822013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10983
10984 * config/arm/arm.md (enabled_for_depr_it): New attribute.
10985 (predicable_short_it): Likewise.
10986 (predicated): Likewise.
10987 (enabled): Handle above.
10988 (define_cond_exec): Set predicated attribute to yes.
10989
b57ca59b
MS
109902013-06-05 Mike Stump <mikestump@comcast.net>
10991
10992 * gdbinit.in (__FUNCTION__): Add.
10993
c1e183a9
UB
109942013-06-05 Uros Bizjak <ubizjak@gmail.com>
10995
10996 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
10997 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
10998
0378bddb
JH
109992013-06-05 Jan Hubicka <jh@suse.cz>
11000
11001 * varasm.c (mark_decl_referenced): Revert the removal until targets
11002 are fixed.
11003
8f8a2057
DE
110042013-06-05 David Edelsohn <dje.gcc@gmail.com>
11005
11006 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
11007 instead of mark_decl_referenced.
11008
edb983b2
JH
110092013-06-05 Jan Hubicka <jh@suse.cz>
11010
11011 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
11012 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
11013 and symtab_used_from_object_file_p.
11014 (cgraph_make_node_local_1): Clear forced_by_abi.
11015 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
11016 * cgraph.h (symtab_node_base): Add forced_by_abi.
11017 (decide_is_variable_needed): Remove.
11018 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
11019 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
11020 (decide_is_symbol_needed): ... this one; handle symbols in general;
11021 always analyze virtuals; honnor forced_by_abi.
11022 (cgraph_finalize_function): Update.
11023 (varpool_finalize_decl): Update.
11024 (symbol_defined_and_needed): Remove.
11025 (analyze_functions): Update.
11026 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
11027 output_refs, input_overwrite_node): Handle forced_by_abi.
11028 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
11029 (address_taken_from_non_vtable_p): ... this one.
11030 (comdat_can_be_unshared_p_1): New function.
11031 (cgraph_comdat_can_be_unshared_p): Rename to ...
11032 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
11033 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
11034 (function_and_variable_visibility): Clear forced_by_abi as needed.
11035 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
11036 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
11037 * symtab.c (dump_symtab_base): Dump forced_by_abi.
11038 * varpool.c (decide_is_variable_needed): Remove.
11039
9912dbe5
KT
110402013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11041
11042 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
11043 (arm_option_override): Override arm_restrict_it where appropriate.
11044 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
11045 * config/arm/arm.opt (mrestrict-it): New command-line option.
11046 * doc/invoke.texi: Document -mrestrict-it.
11047
34c136b6
DM
110482013-06-05 David Malcolm <dmalcolm@redhat.com>
11049
11050 * tsan.c (tsan_atomic_table): Make const.
11051
a367df53
RB
110522013-06-05 Richard Biener <rguenther@suse.de>
11053
11054 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
11055 index associated with the tree we are supposed to replace.
11056 * tree-streamer-out.c (pack_ts_base_value_fields): Output
11057 TREE_ASM_WRITTEN as zero for everything but SSA names.
11058
70d51a19
DM
110592013-06-05 David Malcolm <dmalcolm@redhat.com>
11060
11061 * tree-ssa-structalias.c (call_stmt_vars): Make static.
11062
b9bd2075
JH
110632013-06-04 Jan Hubicka <jh@suse.cz>
11064
11065 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
11066 (input_node, input_varpool_node): Handle correctly external same
11067 body aliases.
11068 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
11069 nodes at ltrans stage.
11070
aaae719d
JH
110712013-06-04 Jan Hubicka <jh@suse.cz>
11072
11073 * ipa-inline.c (update_caller_keys): Fix availability test.
11074 (update_callee_keys): Likewise.
11075 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
11076 to follow ELF standard.
11077
107eea2c
JU
110782013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
11079
11080 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
11081 (mips64r5900el-*-elf*): New configurations.
11082 * config/mips/mips-cpus.def (r5900): New processor.
11083 * config/mips/mips-tables.opt: Regenerate.
11084 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
11085 (mips_issue_rate): Handle PROCESSOR_R5900.
11086 (mips_reorg_process_insns): Force reorder mode for the R5900.
11087 * config/mips/mips.h (TARGET_MIPS5900): Define.
11088 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
11089 TARGET_MIPS5900.
11090 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
11091 TARGET_MIPS5900.
11092 * config/mips/mips.md (processor): Add r5900.
11093 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
11094
b7342d25
IB
110952013-06-04 Ian Bolton <ian.bolton@arm.com>
11096
11097 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
11098 into function to generate MOVI instruction.
c1e183a9 11099 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
11100 (aarch64_preferred_simd_mode): Turn into wrapper.
11101 (aarch64_output_scalar_simd_mov_immediate): New function.
11102 * config/aarch64/aarch64-protos.h: Add prototype for above.
11103
81c2dfb9
IB
111042013-06-04 Ian Bolton <ian.bolton@arm.com>
11105
11106 * config/aarch64/aarch64.c (simd_immediate_info): Remove
11107 element_char member.
11108 (sizetochar): Return signed char.
11109 (aarch64_simd_valid_immediate): Remove elchar and other
11110 unnecessary variables.
11111 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
11112 Calculate element_char as required.
11113 * config/aarch64/aarch64-protos.h: Update and move prototype
11114 for aarch64_output_simd_mov_immediate.
11115 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
11116 Update arguments.
11117
48063b9d
IB
111182013-06-04 Ian Bolton <ian.bolton@arm.com>
11119
11120 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
11121 information completed by aarch64_simd_valid_immediate.
11122 (aarch64_legitimate_constant_p): Update arguments.
11123 (aarch64_simd_valid_immediate): Work with struct rather than many
11124 pointers.
11125 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
11126 (aarch64_simd_make_constant): Update arguments.
11127 (aarch64_output_simd_mov_immediate): Work with struct rather than
11128 many pointers. Output immediate directly rather than as operand.
11129 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
11130 Update prototype.
11131 * config/aarch64/constraints.md (Dn): Update arguments.
11132
3ea63f60
IB
111332013-06-04 Ian Bolton <ian.bolton@arm.com>
11134
11135 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
11136 longer static.
11137 (aarch64_simd_immediate_valid_for_move): Remove.
11138 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
11139 (aarch64_simd_make_constant): Update call.
11140 (aarch64_output_simd_mov_immediate): Update call.
11141 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
11142 Add prototype.
11143 * config/aarch64/constraints.md (Dn): Update call.
11144
d8edd899
IB
111452013-06-04 Ian Bolton <ian.bolton@arm.com>
11146
11147 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
11148 return type to bool for prototype.
11149 (aarch64_legitimate_constant_p): Check for true instead of not -1.
11150 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
11151 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
11152
44b20bb8
CM
111532013-06-04 Catherine Moore <clm@codesourcery.com>
11154
11155 * config/mips/mips.opt (meva): New.
c1e183a9 11156 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
11157 (ASM_SPEC): Handle -meva.
11158 * doc/invoke.texi (meva): Document.
11159
52befbd8
AM
111602013-06-04 Alan Modra <amodra@gmail.com>
11161
11162 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
11163 constant output.
11164
aadaf24e
KT
111652013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11166
11167 * rtl.def: Add extra fourth optional field to define_cond_exec.
11168 * gensupport.c (process_one_cond_exec): Process attributes from
11169 define_cond_exec.
11170 * doc/md.texi: Document fourth field in define_cond_exec.
11171
0cd9e9ee
EB
111722013-06-04 Eric Botcazou <ebotcazou@adacore.com>
11173
11174 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
11175 out the processing order as in store_bit_field_1.
11176
cb0f665d
JH
111772013-06-04 Jan Hubicka <jh@suse.cz>
11178
11179 PR middle-end/57500
11180 * cgraphunit.c (cgraph_process_same_body_aliases): Create
11181 non-VAR_DECL node if it does not exist yet.
11182
53984b9b
RS
111832013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
11184
11185 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
11186 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
11187 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
11188 target_cpu_default setting.
11189
5d318fd4
TJ
111902013-06-03 Teresa Johnson <tejohnson@google.com>
11191
11192 * dumpfile.c (opt_info_switch_p): Change -fopt-info
11193 default to -fopt-info=optimized instead of all.
11194 * doc/invoke.texi: Ditto.
11195 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
11196 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
11197 (execute_vect_slp): Emit BB vectorization success under
11198 MSG_OPTIMIZED_LOCATIONS.
11199 * tree-vect-slp.c (vect_slp_transform_bb): Change
11200 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
11201 * tree-vect-loop.c (vect_transform_loop): Ditto.
11202
ec3af349
JM
112032013-06-03 Jason Merrill <jason@redhat.com>
11204
11205 PR c++/57415
11206 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11207 Use TARGET_EXPR for C++.
11208
1baf9159
JJ
112092013-06-03 Jakub Jelinek <jakub@redhat.com>
11210
11211 PR rtl-optimization/57268
0cd9e9ee 11212 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
11213 if DEBUG_INSN_P (insn).
11214
11215 Reapply
11216 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
11217
11218 PR rtl-optimization/57268
11219 * sched-deps.c (sched_analyze_2): Flush dependence lists if
11220 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
11221
0f1d3965
YR
112222013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
11223
11224 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
11225 (ix86_avoid_lea_for_addr): Likewise.
11226 (exact_dependency_1): Likewise.
11227 (ix86_adjust_cost): Likewise.
11228 (swap_top_of_ready_list): Fix formatting and !reload_completed check
11229 removed.
11230 (do_reorder_for_imul): Fix typo, formatting and
11231 !reload_completed check removed.
11232 (ix86_sched_reorder): Fix typo and formatting.
11233 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
11234 list.
11235
3bc30db4
SN
112362013-06-03 Sofiane Naci <sofiane.naci@arm.com>
11237
11238 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
11239
19cc6fac
EB
112402013-06-03 Eric Botcazou <ebotcazou@adacore.com>
11241
11242 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
11243 <STRING_CST>: Likewise.
11244 <VECTOR_CST>: Likewise.
11245
c68a6e08
JW
112462013-06-01 Janus Weil <janus@gcc.gnu.org>
11247 Mikael Morin <mikael@gcc.gnu.org>
11248
11249 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
11250 * config.in: Regenerated.
11251 * configure: Regenerated.
11252
38e55e5c
JH
112532013-06-01 Jan Hubicka <jh@suse.cz>
11254
11255 PR middle-end/57366
11256 * cgraphunit.c (compile): When weakref is not supported,
11257 set up transparent aliases before final output pass.
11258 * varasm.c (assemble_alias): Do not try to do it here.
11259
eb51d2ff
JH
112602013-06-01 Jan Hubicka <jh@suse.cz>
11261
11262 PR middle-end/57467
11263 * passes.c (for_per_function): Skip unanalyzed functions.
11264
40a7fe1e
JH
112652013-06-01 Jan Hubicka <jh@suse.cz>
11266
11267 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
11268 (lto_symtab_merge_symbols_1): ... this one.
11269 (lto_symtab_merge_cgraph_nodes): Rename to ...
11270 (lto_symtab_merge_symbols): ... this one; simplify.
11271 * cgraph.c (same_body_aliases_done): Rename to ...
11272 (cpp_implicit_aliases_done): ... this one.
11273 (cgraph_create_function_alias): Update.
11274 (cgraph_same_body_alias): Update.
c1e183a9 11275 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 11276 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 11277 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
11278 (cgraph_node): Remove same_body_alias.
11279 (varpool_node): Remove alias_of and extra_name_alias.
11280 (same_body_aliases_done): Rename to ..
11281 (cpp_implicit_aliases_done): ... this one.
11282 (symtab_alias_ultimate_target): Add default parameter.
11283 (symtab_resolve_alias): New function.
11284 (fixup_same_cpp_alias_visibility): Declare.
11285 (cgraph_function_node): Add default parameter.
11286 (cgraph_node_asm_name): Likewise.
11287 (cgraph_function_or_thunk_node): Add default parameter; do
11288 not ICE when it is NULL.
11289 (varpool_variable_node): Likewise.
11290 * tree-emutls.c (create_emultls_var): Update.
11291 (ipa_lower_emutls): Update.
11292 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
11293 (cgraph_reset_node): Reset alias info.
11294 (cgraph_finalize_function): Update.
11295 (fixup_same_cpp_alias_visibility): Move to symtab.c.
11296 (analyze_function): Simplify.
11297 (cgraph_process_same_body_aliases): Simplify.
11298 (analyze_functions): Fixup same body aliases.
11299 (handle_alias_pairs): Simplify.
11300 (assemble_thunk): Update.
11301 (assemble_thunks_and_aliases): Update.
11302 (output_weakrefs): Rewrite.
11303 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
11304 (lto_output_varpool_node): Likewise.
11305 (compute_ltrans_boundary): Remve assert.
11306 (get_alias_symbol): New functoin.
11307 (input_node): Rewrite alias handling.
11308 (input_varpool_node): Likewise.
11309 * ipa-pure-const.c (propagate_pure_const): Fix formating.
11310 * ipa.c (process_references): Handle weakrefs correctly.
11311 (symtab_remove_unreachable_nodes): Likewise.
11312 * trans-mem.c (get_cg_data): Update.
11313 (ipa_tm_create_version_alias): Update.
11314 (ipa_tm_execute): Update.
11315 * symtab.c (dump_symtab_base): Dump aliases.
11316 (verify_symtab_base): Verify aliases.
11317 (symtab_node_availability): New function.
11318 (symtab_alias_ultimate_target): Simplify.
11319 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
11320 handle all the fixup cases.
11321 (symtab_resolve_alias): New function.
11322 * passes.c (ipa_write_summaries): Handle weakrefs.
11323 * varpool.c (varpool_analyze_node): Simplify.
11324 (assemble_aliases): Update.
11325 (varpool_create_variable_alias): Simplify.
11326 (varpool_extra_name_alias): Simplify.
11327 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
11328 (lto_symtab_merge_symbols): ... this one.
11329
21759881
DT
113302013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
11331
11332 Revert
11333 PR rtl-optimization/57268
11334 * sched-deps.c (sched_analyze_2): Flush dependence lists if
11335 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
11336
daf4e940
TB
113372013-06-01 Tobias Burnus <burnus@net-b.de>
11338
11339 Partially reverted:
11340 2013-05-31 Tobias Burnus <burnus@net-b.de>
11341
11342 PR middle-end/57073
11343 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
11344 further up.
11345
c359d8d0
DT
113462013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
11347
11348 PR rtl-optimization/57268
11349 * sched-deps.c (sched_analyze_2): Flush dependence lists if
11350 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
11351
4172215d
EB
113522013-05-31 Eric Botcazou <ebotcazou@adacore.com>
11353
11354 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
11355 unordered comparison operators when -fno-trapping-math is in effect
11356 on the e500.
11357 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
11358 and implement unordered comparison operators properly on the e500.
11359
a8c50132
EB
113602013-05-31 Eric Botcazou <ebotcazou@adacore.com>
11361
11362 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
11363 for constant scalar integers.
11364 (simplify_relational_operation_1): Likewise.
11365
44626634
SB
113662013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
11367
11368 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
11369 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
11370 Fix comment.
11371
55805e54
YR
113722013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
11373 Igor Zamyatin <igor.zamyatin@intel.com>
11374
11375 Silvermont (SLM) architecture performance tuning.
11376 * config/i386/i386.h (enum ix86_tune_indices): Add
11377 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
11378 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
11379
11380 * config/i386/i386.c (initial_ix86_tune_features)
11381 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
11382 (ix86_lea_outperforms): Handle Silvermont tuning.
11383 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
11384 call.
11385 (ix86_use_lea_for_mov): Likewise.
11386 (ix86_avoid_lea_for_addr): Likewise.
11387 (ix86_lea_for_add_ok): Likewise.
11388 (exact_dependency_1): New function.
11389 (exact_store_load_dependency): Likewise.
11390 (ix86_adjust_cost): Handle Silvermont tuning.
11391 (do_reoder_for_imul): Likewise.
11392 (swap_top_of_ready_list): New function.
11393 (ix86_sched_reorder): Changed to handle Silvermont tuning.
11394
11395 * config/i386/i386.md (peepholes that split memory operand in fp
11396 converts): New.
11397
e19c9de2
MS
113982013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
11399
11400 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
11401 Remove un-necessary braces.
11402
38e6c9a6
MS
114032013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
11404
11405 * config/aarch64/aarch64.c (aarch64_classify_symbol):
11406 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
11407
e3530904
TB
114082013-05-31 Tobias Burnus <burnus@net-b.de>
11409
11410 PR middle-end/57073
c1e183a9 11411 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 11412
b6af05a9
KT
114132013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11414
11415 PR target/56315
11416 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
11417 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
11418 * config/arm/neon.md (iordi3_neon): Remove.
11419 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
11420 * config/arm/predicates.md (imm_for_neon_logic_operand):
11421 Move to earlier in the file.
11422 (neon_logic_op2): Likewise.
11423 (arm_iordi_operand_neon): New predicate.
11424
f800c166
RB
114252013-05-31 Richard Biener <rguenther@suse.de>
11426
11427 PR tree-optimization/57478
11428 PR tree-optimization/57453
11429 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
11430 are life as well.
11431
e571fa59
KP
114322013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
11433
11434 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
11435 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
11436
0fa6e0ef
TB
114372013-05-30 Tobias Burnus <burnus@net-b.de>
11438 Thomas Koenig <tkoenig@gcc.gnu.org>
11439
11440 PR middle-end/57073
11441 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
11442 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
11443
4688ddf5
SB
114442013-05-30 Steven Bosscher <steven@gcc.gnu.org>
11445
0fa6e0ef 11446 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 11447
3b9ceb4b
VM
114482013-05-30 Vladimir Makarov <vmakarov@redhat.com>
11449
11450 * target.def (register_usage_leveling_p): New hook.
11451 * targhooks.c (default_register_usage_leveling_p): New.
11452 * targhooks.h (default_register_usage_leveling_p): New prototype.
11453 * lra-assigns.c (register_usage_leveling_p): Use the hook.
11454 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
11455 * doc/tm.texi: Update.
11456 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
11457
65f9e789
IB
114582013-05-30 Ian Bolton <ian.bolton@arm.com>
11459
11460 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
11461 (*insv_reg<mode>): New define_insn.
11462
12211b99 114632013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
11464
11465 PR rtl-optimization/57439
11466 * postreload.c (move2add_valid_value_p): Check that we have
11467 a zero subreg_regno_offset when accessing the register in
11468 the requested mode.
11469
0b871ccf
YR
114702013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
11471 Igor Zamyatin <igor.zamyatin@intel.com>
11472
11473 Silvermont (SLM) architecture pipeline model, tuning and
11474 insn selection.
11475 * config.gcc: Add slm config options and target.
11476
11477 * config/i386/slm.md: New.
11478
11479 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
11480
f43245d1 11481 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
11482 PROCESSOR_SLM.
11483 (ix86_target_macros_internal): Likewise.
11484
f43245d1 11485 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
11486 (m_SLM): New macro flag.
11487 (initial_ix86_tune_features): Set m_SLM.
11488 (x86_accumulate_outgoing_args): Likewise.
11489 (x86_arch_always_fancy_math_387): Likewise.
11490 (processor_target_table): Add slm cost.
11491 (cpu_names): Add slm cpu name.
11492 (x86_option_override_internal): Set SLM ISA.
11493 (ix86_issue_rate): New case PROCESSOR_SLM.
11494 (ia32_multipass_dfa_lookahead): Likewise.
11495 (fold_builtin_cpu): Add slm.
11496
11497 * config/i386/i386.h (TARGET_SLM): New target macro.
11498 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
11499 (processor_type): Add PROCESSOR_SLM.
11500
11501 * config/i386/i386.md (cpu): Add new value "slm".
11502 (slm.md): Include slm.md.
11503
24d5b097
XG
115042013-05-30 Bernd Schmidt <bernds@codesourcery.com>
11505 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11506
11507 * config/arm/arm-protos.h: Add and update function protos.
11508 * config/arm/arm.c (use_simple_return_p): New added.
11509 (thumb2_expand_return): Check simple_return flag.
11510 * config/arm/arm.md: Add simple_return and conditional simple_return.
11511 * config/arm/iterators.md: Add iterator for return and simple_return.
11512
c1cccc15
ZC
115132013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11514
11515 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
11516 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
11517 (arm_emit_vfp_multi_reg_pop): Likewise.
11518 (thumb2_emit_ldrd_pop): Likewise.
11519 (arm_expand_epilogue): Add misc REG_CFA notes.
11520 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
11521
3a4f280b
LC
115222013-05-29 Lawrence Crowl <crowl@google.com>
11523
11524 * config/arm/t-arm: Update for below.
11525
11526 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
11527 Change type to hash_table. Update dependent calls and types.
11528
11529 * config/i386/t-cygming: Update for below.
11530
11531 * config/i386/t-interix: Update for below.
11532
11533 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
11534 Change type to hash_table. Update dependent calls and types.
11535 (i386_find_on_wrapper_list::wrappers): Likewise.
11536
11537 * config/ia64/t-ia64: Update for below.
11538
11539 * config/ia64/ia64.c (bundle_state_table):
11540 Change type to hash_table. Update dependent calls and types.
11541
11542 * config/mips/mips.c (mips_reorg_process_insns::htab):
11543 Change type to hash_table. Update dependent calls and types.
11544
11545 * config/sol2.c (solaris_comdat_htab):
11546 Change type to hash_table. Update dependent calls and types.
11547
11548 * config/t-sol2: Update for above.
11549
1388a0e3
TJ
115502013-05-29 Teresa Johnson <tejohnson@google.com>
11551
11552 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
11553 functions are not yet marked as defined.
11554
a5965b52 115552013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
11556 Pat Haugen <pthaugen@us.ibm.com>
11557 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
11558
11559 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
11560 instructions.
11561 (VEC_A): Likewise.
11562 (VEC_C): Likewise.
11563 (vrotl<mode>3): Likewise.
11564 (vashl<mode>3): Likewise.
11565 (vlshr<mode>3): Likewise.
11566 (vashr<mode>3): Likewise.
11567
11568 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11569 support for power8 V2DI builtins.
11570
11571 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
11572 power8 V2DI builtins.
11573 (vupkhsw): Likewise.
11574 (vupklsw): Likewise.
11575 (vaddudm): Likewise.
11576 (vminsd): Likewise.
11577 (vmaxsd): Likewise.
11578 (vminud): Likewise.
11579 (vmaxud): Likewise.
11580 (vpkudum): Likewise.
11581 (vpksdss): Likewise.
11582 (vpkudus): Likewise.
11583 (vpksdus): Likewise.
11584 (vrld): Likewise.
11585 (vsld): Likewise.
11586 (vsrd): Likewise.
11587 (vsrad): Likewise.
11588 (vsubudm): Likewise.
11589 (vcmpequd): Likewise.
11590 (vcmpgtsd): Likewise.
11591 (vcmpgtud): Likewise.
11592 (vcmpequd_p): Likewise.
11593 (vcmpgtsd_p): Likewise.
11594 (vcmpgtud_p): Likewise.
11595 (vupkhsw): Likewise.
11596 (vupklsw): Likewise.
11597 (vaddudm): Likewise.
11598 (vmaxsd): Likewise.
11599 (vmaxud): Likewise.
11600 (vminsd): Likewise.
11601 (vminud): Likewise.
11602 (vpksdss): Likewise.
11603 (vpksdus): Likewise.
11604 (vpkudum): Likewise.
11605 (vpkudus): Likewise.
11606 (vrld): Likewise.
11607 (vsld): Likewise.
11608 (vsrad): Likewise.
11609 (vsrd): Likewise.
11610 (vsubudm): Likewise.
11611
11612 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
11613 support for power8 V2DI instructions.
11614
11615 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
11616 power8 V2DI instructions. Combine pack and unpack insns to use an
11617 iterator for each mode. Check whether a particular mode supports
11618 Altivec instructions instead of just checking TARGET_ALTIVEC.
11619 (UNSPEC_VPKUWUM): Likewise.
11620 (UNSPEC_VPKSHSS): Likewise.
11621 (UNSPEC_VPKSWSS): Likewise.
11622 (UNSPEC_VPKUHUS): Likewise.
11623 (UNSPEC_VPKSHUS): Likewise.
11624 (UNSPEC_VPKUWUS): Likewise.
11625 (UNSPEC_VPKSWUS): Likewise.
11626 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
11627 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
11628 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
11629 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
11630 (UNSPEC_VUPKHSB): Likewise.
11631 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
11632 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
11633 (UNSPEC_VUPKHSH): Likewise.
11634 (UNSPEC_VUPKLSB): Likewise.
11635 (UNSPEC_VUPKLSH): Likewise.
11636 (VI2): Likewise.
11637 (VI_char): Likewise.
11638 (VI_scalar): Likewise.
11639 (VI_unit): Likewise.
11640 (VP): Likewise.
11641 (VP_small): Likewise.
11642 (VP_small_lc): Likewise.
11643 (VU_char): Likewise.
11644 (add<mode>3): Likewise.
11645 (altivec_vaddcuw): Likewise.
11646 (altivec_vaddu<VI_char>s): Likewise.
11647 (altivec_vadds<VI_char>s): Likewise.
11648 (sub<mode>3): Likewise.
11649 (altivec_vsubcuw): Likewise.
11650 (altivec_vsubu<VI_char>s): Likewise.
11651 (altivec_vsubs<VI_char>s): Likewise.
11652 (altivec_vavgs<VI_char>): Likewise.
11653 (altivec_vcmpbfp): Likewise.
11654 (altivec_eq<mode>): Likewise.
11655 (altivec_gt<mode>): Likewise.
11656 (altivec_gtu<mode>): Likewise.
11657 (umax<mode>3): Likewise.
11658 (smax<mode>3): Likewise.
11659 (umin<mode>3): Likewise.
11660 (smin<mode>3): Likewise.
11661 (altivec_vpkuhum): Likewise.
11662 (altivec_vpkuwum): Likewise.
11663 (altivec_vpkshss): Likewise.
11664 (altivec_vpkswss): Likewise.
11665 (altivec_vpkuhus): Likewise.
11666 (altivec_vpkshus): Likewise.
11667 (altivec_vpkuwus): Likewise.
11668 (altivec_vpkswus): Likewise.
11669 (altivec_vpks<VI_char>ss): Likewise.
11670 (altivec_vpks<VI_char>us): Likewise.
11671 (altivec_vpku<VI_char>us): Likewise.
11672 (altivec_vpku<VI_char>um): Likewise.
11673 (altivec_vrl<VI_char>): Likewise.
11674 (altivec_vsl<VI_char>): Likewise.
11675 (altivec_vsr<VI_char>): Likewise.
11676 (altivec_vsra<VI_char>): Likewise.
11677 (altivec_vsldoi_<mode>): Likewise.
11678 (altivec_vupkhsb): Likewise.
11679 (altivec_vupkhs<VU_char>): Likewise.
11680 (altivec_vupkls<VU_char>): Likewise.
11681 (altivec_vupkhsh): Likewise.
11682 (altivec_vupklsb): Likewise.
11683 (altivec_vupklsh): Likewise.
11684 (altivec_vcmpequ<VI_char>_p): Likewise.
11685 (altivec_vcmpgts<VI_char>_p): Likewise.
11686 (altivec_vcmpgtu<VI_char>_p): Likewise.
11687 (abs<mode>2): Likewise.
11688 (vec_unpacks_hi_v16qi): Likewise.
11689 (vec_unpacks_hi_v8hi): Likewise.
11690 (vec_unpacks_lo_v16qi): Likewise.
11691 (vec_unpacks_hi_<VP_small_lc>): Likewise.
11692 (vec_unpacks_lo_v8hi): Likewise.
11693 (vec_unpacks_lo_<VP_small_lc>): Likewise.
11694 (vec_pack_trunc_v8h): Likewise.
11695 (vec_pack_trunc_v4si): Likewise.
11696 (vec_pack_trunc_<mode>): Likewise.
11697
11698 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
11699 V2DI builtins.
11700 (vec_vmaxsd): Likewise.
11701 (vec_vmaxud): Likewise.
11702 (vec_vminsd): Likewise.
11703 (vec_vminud): Likewise.
11704 (vec_vpksdss): Likewise.
11705 (vec_vpksdus): Likewise.
11706 (vec_vpkudum): Likewise.
11707 (vec_vpkudus): Likewise.
11708 (vec_vrld): Likewise.
11709 (vec_vsld): Likewise.
11710 (vec_vsrad): Likewise.
11711 (vec_vsrd): Likewise.
11712 (vec_vsubudm): Likewise.
11713 (vec_vupkhsw): Likewise.
11714 (vec_vupklsw): Likewise.
11715
e70670cf
JH
117162013-05-29 Jan Hubicka <jh@suse.cz>
11717
11718 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
11719 flags; reorder rest of fields in more consistent way.
11720 (varpool_node): Remove analyzed, finalized and alias.
11721 (cgraph_ndoe): Likewise.
11722 (symtab_alias_ultimate_target): New function.
11723 (cgraph_function_node): Move offline.
11724 (cgraph_reset_node): Declare.
11725 (cgraph_comdat_can_be_unshared_p): Remove.
11726 (varpool_remove_initializer): Declare.
11727 (varpool_first_defined_variable, varpool_next_defined_variable
11728 cgraph_first_defined_function, cgraph_next_defined_function): Update.
11729 (cgraph_function_with_gimple_body_p): Update.
11730 (varpool_all_refs_explicit_p): Update.
11731 (symtab_alias_target): New function.
11732 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
11733 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
11734 (cgraph_function_or_thunk_node): Simplify using
11735 symtab_alias_ultimate_target.
e70670cf
JH
11736 (varpool_variable_node): Likewise.
11737 * cgraph.c (cgraph_create_function_alias): Update.
11738 (cgraph_add_thunk): Update.
11739 (cgraph_remove_node): Update.
11740 (dump_cgraph_node): Do not dump removed flags.
11741 (cgraph_function_body_availability): Update.
11742 (cgraph_propagate_frequency): Update.
11743 (verify_cgraph_node): Check sanity of local flag.
11744 (cgraph_function_node): Move here from cgraph.h; revamp for
11745 cgraph_function_or_thunk_node.
11746 * lto-symtab.c (lto_varpool_replace_node): Update.
11747 (lto_symtab_resolve_can_prevail_p): Update.
11748 (lto_symtab_merge_cgraph_nodes): Update.
11749 * ipa-cp.c (determine_versionability, initialize_node_lattices,
11750 propagate_constants_accross_call, devirtualization_time_bonus,
11751 ipcp_propagate_stage): Update.
11752 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
11753 * ipa-inline-transform.c (clone_inlined_nodes,
11754 preserve_function_body_p): Update.
e70670cf
JH
11755 * ipa-reference.c (propagate): Update.
11756 (write_node_summary_p): Update.
11757 * toplev.c (wrapup_global_declaration_2): Update.
11758 * cgraphunit.c (cgraph_analyze_function): Rename to ...
11759 (analyze_function) ... this one.
11760 (cgraph_process_new_functions): Update.
11761 (cgraph_reset_node): Export.
11762 (cgraph_finalize_function): Update.
11763 (cgraph_add_new_function): Update.
11764 (process_function_and_variable_attributes): Update.
11765 (varpool_finalize_decl): Update.
11766 (symbol_finalized): Remove.
11767 (symbol_finalized_and_needed): Rename to ...
11768 (symbol_defined_and_needed): ... update.
11769 (cgraph_analyze_functions): Update.
11770 (handle_alias_pairs): Update.
11771 (mark_functions_to_output): Update.
11772 (assemble_thunk): Update.
11773 (output_in_order): Update.
11774 (output_weakrefs): Update.
11775 (finalize_compilation_unit): Update.
11776 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
11777 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
11778 input_node, input_varpool_node): Update.
11779 * dbxout.c (dbxout_expand_expr): Update.
11780 * cgraphclones.c (cgraph_clone_node): Update.
11781 (cgraph_copy_node_for_versioning): Update.
11782 (cgraph_materialize_clone): Update.
11783 (cgraph_materialize_all_clones): Update.
11784 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
11785 propagate_pure_const, propagate_nothrow): Update.
11786 * lto-streamer-out.c (lto_output, write_symbol): Update.
11787 * ipa-utils.c (ipa_reverse_postorder): Update.
11788 * ipa-inline.c (can_inline_edge_p): Update.
11789 (update_caller_keys, ipa_inline): Update.
11790 * dwarf2out.c (reference_to_unused,
11791 premark_types_used_by_global_vars_helper): Update.
11792 * tree-eh.c (tree_could_trap_p): Update.
11793 * ipa-split.c (consider_split, execute_split_functions): Update.
11794 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
11795 has_addr_references_p): Update; move ahead in file for better
11796 readability.
e70670cf
JH
11797 (process_references): Simplify.
11798 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
11799 bodies are removed.
11800 (cgraph_comdat_can_be_unshared_p): Make static.
11801 (cgraph_externally_visible_p): Update.
11802 (varpool_externally_visible_p): Update.
11803 (function_and_variable_visibility): Update.
11804 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
11805 ipa_tm_mark_force_output_node): Update.
11806 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
11807 estimate_edge_devirt_benefit, inline_generate_summary,
11808 inline_write_summary): Update.
11809 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
11810 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
11811 (ipa_print_node_params, ipa_prop_read_section,
11812 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
11813 * varasm.c (mark_decl_referenced): Update.
11814 (assemble_alias, dump_tm_clone_pairs): Update.
11815 * tree-inline.c (copy_bb): Update.
11816 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
11817 Update.
11818 * symtab.c (dump_symtab_base): Print new flags.
11819 (verify_symtab_base): Verify new flags.
11820 (symtab_alias_ultimate_target): New function.
11821 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
11822 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
11823 Update.
c1e183a9
UB
11824 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
11825 Update.
e70670cf
JH
11826 * i386.c (ix86_get_function_versions_dispatcher,
11827 ix86_generate_version_dispatcher_body): Update.
11828 (fold_builtin_cpu): Use varpool_add_new_variable.
11829 * varpool.c (varpool_remove_initializer): Break out from ...
11830 (varpool_remove_node): ... this one.
11831 (dump_varpool_node, varpool_node_for_asm,
11832 cgraph_variable_initializer_availability, varpool_analyze_node,
11833 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
11834 varpool_finalize_named_section_flags, varpool_create_variable_alias):
11835 Update.
e70670cf 11836
182802ad
JH
118372013-05-29 Jan Hubicka <jh@suse.cz>
11838
11839 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
11840
8190b609
ER
118412013-05-29 Easwaran Raman <eraman@google.com>
11842
11843 PR tree-optimization/57442
11844 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
11845 when control exits the main loop.
11846
69f5aa9b
SKS
118472013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
11848
11849 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
11850 and RX600.
c1e183a9 11851 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
11852 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
11853 * rx/t-rx: Add rx100 under multi library matches option for nofpu
11854 option.
11855
4b847da9
BS
118562013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11857
11858 PR tree-optimization/57441
11859 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
11860 Don't limit size of incr_vec to number of candidates.
11861
4fc43c39
SE
118622013-05-29 Steve Ellcey <sellcey@imgtec.com>
11863
11864 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
11865 and mips16 directories.
c1e183a9 11866 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
11867 (MULTILIB_DIRNAMES): Ditto.
11868 (MULTILIB_EXCEPTIONS): Add new exceptions.
11869 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
11870 (MULTILIB_DIRNAMES): Ditto.
11871 (MULTILIB_EXCEPTIONS): Add new exceptions.
11872
12211b99 118732012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
11874 Marcus Shawcroft <marcus.shawcroft@arm.com>
11875
11876 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
11877 SYMBOL_TINY_ABSOLUTE.
11878 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
11879 SYMBOL_TINY_ABSOLUTE.
11880 (aarch64_expand_mov_immediate): Likewise.
11881 (aarch64_classify_symbol): Likewise.
11882 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
11883 Permit SYMBOL_TINY_ABSOLUTE.
11884 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
11885
12211b99 118862013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
11887 Marcus Shawcroft <marcus.shawcroft@arm.com>
11888
11889 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
11890 Refactor if/switch. Replace gcc_assert with if.
11891
c0186656
GG
118922013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
11893
11894 * config/i386/i386.c (initial_ix86_tune_features): Enable
11895 FP Reassociation for AMD bdver1 and bdver2.
11896
d20188f3
MJ
118972013-05-29 Martin Jambor <mjambor@suse.cz>
11898
11899 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
11900 and IMAGPART_EXPR do not occur within other handled_components.
11901
292cba13
RB
119022013-05-29 Richard Biener <rguenther@suse.de>
11903
11904 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
11905 access on whether the use is in the BB we currently try to
11906 vectorize.
11907 (vect_bb_vectorization_profitable_p): Pass the BB we currently
11908 vectorize to vect_bb_slp_scalar_cost.
11909
6eddf228
RB
119102013-05-29 Richard Biener <rguenther@suse.de>
11911
11912 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
11913 computing scalar cost offsetted by stmts that are kept live
11914 by scalar uses.
11915 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
11916 for computation of scalar cost.
11917
7df36117
SE
119182013-05-28 Steve Ellcey <sellcey@mips.com>
11919
11920 * config/mips/mips-cpus.def (mips32r2): Change processor type.
11921
36536d79
BI
119222013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
11923
11924 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
11925 array notation built-in reduction functions.
11926 * doc/passes.texi (Passes): Added documentation about changes done
11927 for Cilk Plus.
11928 * doc/invoke.texi (C Dialect Options): Added documentation about
11929 the -fcilkplus flag.
11930 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
11931 (BUILTINS_DEF): Depend on cilkplus.def.
11932 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
11933 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
11934 * cilkplus.def: New file.
11935
12211b99 119362013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
11937
11938 PR rtl-optimization/57439
11939 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
11940
9daf6dbb
ER
119412013-05-28 Easwaran Raman <eraman@google.com>
11942
11943 PR tree-optimization/57337
11944 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
11945 (find_insert_point): Correctly identify the insertion point
11946 when two statements with the same UID is compared.
11947
fbd7e877
RB
119482013-05-28 Richard Biener <rguenther@suse.de>
11949
11950 PR tree-optimization/56787
11951 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
11952 from the list of data references.
11953 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
11954 clobbers.
11955 (vect_analyze_loop_operations): Likewise.
11956 (vect_transform_loop): Remove clobbers.
11957
bbba1117
MJ
119582013-05-28 Martin Jambor <mjambor@suse.cz>
11959
11960 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
11961 and REALPART_EXPRs have scalar type.
11962
bd388c2a
RB
119632013-05-28 Richard Biener <rguenther@suse.de>
11964
11965 PR tree-optimization/57411
11966 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
11967 virtual operands.
11968 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
11969 virtual operand propagation.
11970
2f56a311
EB
119712013-05-28 Eric Botcazou <ebotcazou@adacore.com>
11972
11973 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
11974 destination register for bmasksi_vis.
11975 (vector_init_bshuffle): Likewise.
11976 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
11977
5c3eacbb
EB
119782013-05-28 Eric Botcazou <ebotcazou@adacore.com>
11979
11980 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
11981 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
11982 mode if the instruction isn't available in the original mode.
11983 * config/sparc/sparc.opt (mfix-ut699): New option.
11984 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
11985 (divdf3): Turn into expander.
11986 (divdf3_nofix): New insn.
11987 (divdf3_fix): Likewise.
11988 (divsf3): Disable if -mfix-ut699.
11989 (sqrtdf2): Turn into expander.
11990 (sqrtdf2_nofix): New insn.
11991 (sqrtdf2_fix): Likewise.
11992 (sqrtsf2): Disable if -mfix-ut699.
11993
a1756c0a
RB
119942013-05-27 Richard Biener <rguenther@suse.de>
11995
11996 PR middle-end/57412
11997 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
11998 block for the new loop.
11999
5a892248
RB
120002013-05-27 Richard Biener <rguenther@suse.de>
12001
12002 PR tree-optimization/57343
12003 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
12004 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
12005 (number_of_iterations_cond): Do not build the folded tree.
12006
d1de852b
RB
120072013-05-27 Richard Biener <rguenther@suse.de>
12008
12009 Revert
12010 PR middle-end/57381
12011 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
12012 OEP_CONSTANT_ADDRESS_OF retained.
12013
12014 PR tree-optimization/57417
12015 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
12016 for unchanged base.
12017 (set_ssa_val_to): Compare addresses using
12018 get_addr_base_and_unit_offset.
12019
12211b99 120202013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
12021
12022 PR rtl-optimization/56833
12023 * postreload.c (move2add_record_mode): New function.
12024 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
12025 (move2add_use_add2_insn): Use move2add_record_sym_value.
12026 (move2add_use_add3_insn): Likewise.
12027 (reload_cse_move2add): Use move2add_valid_value_p and
12028 move2add_record_mode. Invalidate call-clobbered and REG_INC
12029 affected regs by setting reg_mode to VOIDmode.
12030 (move2add_note_store): Don't pretend the inside of a SUBREG is
12031 the actual destination. Invalidate single/leading registers by
12032 setting reg_mode to VOIDmode.
12033 Use move2add_record_sym_value, move2add_valid_value_p and
12034 move2add_record_mode.
12035
b03be25f
RB
120362013-05-27 Richard Biener <rguenther@suse.de>
12037
12038 PR tree-optimization/57396
12039 * tree-affine.c (double_int_constant_multiple_p): Properly
12040 return false for val == 0 and div != 0.
12041
44e88db2
RS
120422013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
12043
12044 * config/mips/mips.h: Use #elif in preprocessor conditions.
12045
3b859704
RS
120462013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
12047
12048 PR target/53916
12049 * config/mips/constraints.md (kl): New constraint.
12050 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
12051 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
12052 constraint for operand 0. Split after CSE for MIPS16. Emit a move
12053 from LO for MIPS16.
12054 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
12055
c979d5f5
RS
120562013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
12057
12058 PR target/55777
12059 * config/mips/mips.c (mips_can_inline_p): New function.
12060 (TARGET_CAN_INLINE_P): Define.
12061
8e90de43
SB
120622013-05-25 Steven Bosscher <steven@gcc.gnu.org>
12063
12064 * sched-int.h (ds_t, dw_t): Make unsigned int.
12065 Fix documentation that describes how all the ds_t bits are used.
12066 Reserve the last bit for delayed-branch scheduling.
12067 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
12068 (BITS_PER_DEP_WEAK): Fix definition and documentation.
12069 (gen_dep_weak_1): Remove prototype.
12070 * sched-deps.c (get_dep_weak_1): Make static.
12071 * target.def (speculate_insn, needs_block_p, gen_spec_check,
12072 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
12073 * doc/tm.texi: Regenerate.
12074 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
12075
cb5cb194
SB
120762013-05-24 Steven Bosscher <steven@gcc.gnu.org>
12077
12078 PR debug/56950
12079 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
12080
5bd93ff6
NS
120812013-05-24 Nathan Sidwell <nathan@codesourcery.com>
12082 Sandra Loosemore <sandra@codesourcery.com>
12083
12084 * config.gcc (powerpc-*): Allow native for with-cpu.
12085
2343af65
JL
120862013-05-24 Jeff Law <law@redhat.com>
12087
12088 PR tree-optimization/57124
12089 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
12090 conversion feeding a condition if the range has an overflow
12091 if -fstrict-overflow. Add warnings for when we do make the
12092 transformation.
12093
3ad695b9
DC
120942013-05-24 Dehao Chen <dehao@google.com>
12095
04960246 12096 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
12097 (locus_discrim_hasher): Likewise.
12098 (locus_discrim_hasher::hash): Likewise.
12099 (locus_discrim_hasher::equal): Likewise.
12100
82338059
MJ
121012013-05-24 Martin Jambor <mjambor@suse.cz>
12102
12103 PR tree-optimization/57294
12104 * cgraph.h (ipa_record_stmt_references): Declare.
12105 * cgraphbuild.c (ipa_record_stmt_references): New function.
12106 (build_cgraph_edges): Use ipa_record_stmt_references.
12107 (rebuild_cgraph_edges): Likewise.
12108 (cgraph_rebuild_references): Likewise.
12109 * ipa-prop.c (ipa_modify_call_arguments): Discard references
12110 associated with the old statement and build references from the
12111 newly built statements.
12112 * ipa-ref.c (ipa_remove_stmt_references): New function.
12113 * ipa-ref.h (ipa_remove_stmt_references): Declare.
12114
1ccd4874
VM
121152013-05-24 Vladimir Makarov <vmakarov@redhat.com>
12116
55805e54 12117 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 12118 mem-mem moves.
55805e54 12119 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 12120 too.
55805e54 12121 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
12122 secondary memory moves.
12123 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
12124 reg set up in the current insn.
12125
25e25c73
DC
121262013-05-24 Dehao Chen <dehao@google.com>
12127
04960246 12128 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
12129 hash function.
12130 (locus_descrim_hasher::equal): Likewise.
04960246 12131 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
12132 (make_edges): Likewise.
12133 (next_discriminator_for_locus): Likewise.
12134 (same_line_p): Likewise.
12135 (assign_discriminators): Likewise.
12136 (make_cond_expr_edges): Likewise.
12137 (make_gimple_switch_edges): Likewise.
12138 (make_goto_expr_edges): Likewise.
12139 (make_gimple_asm_edges): Likewise.
12140
50d38551
IB
121412013-05-24 Ian Bolton <ian.bolton@arm.com>
12142
12143 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
12144 X format specifier to only display bottom 16 bits.
12145 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
12146 immediate to match for operand 2, since it will be masked.
12147
aea0101d
RB
121482013-05-24 Richard Biener <rguenther@suse.de>
12149
12150 PR tree-optimization/57287
12151 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
12152 all SSA names that occur in abnormal PHIs.
12153
634e03d3
AI
121542013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
12155
12156 PR tree-ssa/57385
12157 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
12158 that index is not negative.
12159
b17c024f
EB
121602013-05-24 Eric Botcazou <ebotcazou@adacore.com>
12161
12162 PR rtl-optimization/55177
12163 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
12164 (simplify_byte_swapping_operation): New.
12165 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
12166 (simplify_relational_operation_1): Deal with BSWAP.
12167
46aeac1b
RH
121682013-05-23 Richard Henderson <rth@redhat.com>
12169
12170 PR target/56742
12171 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
12172 (ix86_reorg): Call it.
12173
70cc1536
UB
121742013-05-23 Uros Bizjak <ubizjak@gmail.com>
12175
12176 PR target/57379
12177 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
12178 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
12179 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
12180
b3851501
CB
121812013-05-23 Christian Bruel <christian.bruel@st.com>
12182
12183 PR debug/57351
12184 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
12185
12211b99 121862013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
12187 Marcus Shawcroft <marcus.shawcroft@arm.com>
12188
12189 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
12190 * config/aarch64/constraints.md (Usa): Remove.
12191 * doc/md.texi (AArch64 Usa): Remove.
12192
12211b99 121932013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
12194 Marcus Shawcroft <marcus.shawcroft@arm.com>
12195
12196 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
12197 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
12198 * config/aarch64/predicates.md (aarch64_const_address): Remove.
12199 (aarch64_mov_operand): Use aarch64_mov_operand_p.
12200
12211b99 122012013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
12202
12203 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
12204 instruction (AdvSIMD).
12205 * config/aarch64/aarch64-builtins.c
12206 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
12207 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
12208
76c36cb1 122092013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
12210
12211 PR middle-end/57347
12212 * tree.h (contains_bitfld_component_ref_p): Declare.
12213 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
12214 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
12215 caller.
7d2fb524
MJ
12216 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
12217 not access a bit-field. Assert all final offsets are byte-aligned.
12218
ce521ae6
RB
122192013-05-23 Richard Biener <rguenther@suse.de>
12220
12221 PR tree-optimization/57380
12222 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
12223 least one invariant or re-used load.
12224 * passes.c (init_optimization_passes): Move pass_phiprop before
12225 pass_forwprop.
12226
75c7257f
JG
122272013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
12228
12229 * config/aarch64/aarch64-simd.md
12230 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
12231
af6d44b5
RB
122322013-05-23 Richard Biener <rguenther@suse.de>
12233
12234 PR middle-end/57381
12235 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
12236 OEP_CONSTANT_ADDRESS_OF retained.
12237
bd3647bf
JJ
122382013-05-23 Jakub Jelinek <jakub@redhat.com>
12239
12240 PR middle-end/57344
70cc1536
UB
12241 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
12242 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 12243
a55757ea
RB
122442013-05-23 Richard Biener <rguenther@suse.de>
12245
12246 PR rtl-optimization/57341
12247 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
12248 instead of true_dependence.
12249
cfb00b41
DM
122502013-05-22 David Malcolm <dmalcolm@redhat.com>
12251
dd1c676f
DM
12252 * bb-reorder.c (branch_threshold): Make const.
12253 (exec_threshold): Ditto.
cfb00b41 12254
f62511da 122552013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
12256 Pat Haugen <pthaugen@us.ibm.com>
12257 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
12258
12259 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
12260 documentation for the power8 crypto builtins.
12261
12262 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
12263
12264 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
12265 macros for defining power8 builtin functions.
12266 (BU_P8V_AV_2): Likewise.
12267 (BU_P8V_AV_P): Likewise.
12268 (BU_P8V_VSX_1): Likewise.
12269 (BU_P8V_OVERLOAD_1): Likewise.
12270 (BU_P8V_OVERLOAD_2): Likewise.
12271 (BU_CRYPTO_1): Likewise.
12272 (BU_CRYPTO_2): Likewise.
12273 (BU_CRYPTO_3): Likewise.
12274 (BU_CRYPTO_OVERLOAD_1): Likewise.
12275 (BU_CRYPTO_OVERLOAD_2): Likewise.
12276 (XSCVSPDP): Fix typo, point to the correct instruction.
12277 (VCIPHER): Add power8 crypto builtins.
12278 (VCIPHERLAST): Likewise.
12279 (VNCIPHER): Likewise.
12280 (VNCIPHERLAST): Likewise.
12281 (VPMSUMB): Likewise.
12282 (VPMSUMH): Likewise.
12283 (VPMSUMW): Likewise.
12284 (VPERMXOR_V2DI): Likewise.
12285 (VPERMXOR_V4SI: Likewise.
12286 (VPERMXOR_V8HI: Likewise.
12287 (VPERMXOR_V16QI: Likewise.
12288 (VSHASIGMAW): Likewise.
12289 (VSHASIGMAD): Likewise.
12290 (VPMSUM): Likewise.
12291 (VPERMXOR): Likewise.
12292 (VSHASIGMA): Likewise.
12293
12294 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
12295 __CRYPTO__ if the crypto instructions are available.
12296 (altivec_overloaded_builtins): Add support for overloaded power8
12297 builtins.
12298
12299 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
12300 support for power8 crypto builtins.
12301 (builtin_function_type): Likewise.
12302 (altivec_init_builtins): Add support for builtins that take vector
12303 long long (V2DI) arguments.
12304
12305 * config/rs6000/crypto.md: New file, define power8 crypto
12306 instructions.
12307
123082013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
12309 Pat Haugen <pthaugen@us.ibm.com>
12310 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
12311
12312 * doc/invoke.texi (Option Summary): Add power8 options.
12313 (RS/6000 and PowerPC Options): Likewise.
12314
12315 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
12316 constraints.md instead of rs6000.h. Reorder w* constraints. Add
12317 wm, wn, wr documentation.
12318
f43245d1 12319 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
12320 registers if direct move instructions are enabled.
12321 (wn): New constraint for no registers.
12322 (wq): New constraint for quad word even GPR registers.
12323 (wr): New constraint if 64-bit instructions are enabled.
12324 (wv): New constraint if power8 vector instructions are enabled.
12325 (wQ): New constraint for quad word memory locations.
12326
f43245d1 12327 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
12328 constraint for 0..15 for crypto instructions.
12329 (gpc_reg_operand): If VSX allow registers in VSX registers as well
12330 as GPR and floating point registers.
12331 (int_reg_operand): New predicate to match only GPR registers.
12332 (base_reg_operand): New predicate to match base registers.
12333 (quad_int_reg_operand): New predicate to match even GPR registers
12334 for quad memory operations.
12335 (vsx_reg_or_cint_operand): New predicate to allow vector logical
12336 operations in both GPR and VSX registers.
12337 (quad_memory_operand): New predicate for quad memory operations.
12338 (reg_or_indexed_operand): New predicate for direct move support.
12339
f43245d1 12340 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
12341 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
12342 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
12343 (POWERPC_MASKS): Add power8 options.
12344 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
12345 various options.
12346
f43245d1 12347 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
12348 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
12349
f43245d1 12350 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
12351 (-mpower8-fusion): New power8 options.
12352 (-mpower8-fusion-sign): Likewise.
12353 (-mpower8-vector): Likewise.
12354 (-mcrypto): Likewise.
12355 (-mdirect-move): Likewise.
12356 (-mquad-memory): Likewise.
12357
f43245d1 12358 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
12359 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
12360 registers.
70cc1536 12361 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
12362 (rs6000_debug_vector_unit): Add p8_vector.
12363 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
12364 definitions. Also print fusion state.
12365 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
12366 (rs6000_builtin_mask_calculate): Add power8 builtin support.
12367 (rs6000_option_override_internal): Add support for power8.
12368 (rs6000_common_init_builtins): Add debugging for skipped builtins
12369 if -mdebug=builtin.
12370 (rs6000_adjust_cost): Add power8 support.
12371 (rs6000_issue_rate): Likewise.
12372 (insn_must_be_first_in_group): Likewise.
12373 (insn_must_be_last_in_group): Likewise.
12374 (force_new_group): Likewise.
12375 (rs6000_register_move_cost): Likewise.
12376 (rs6000_opt_masks): Likewise.
12377
12378 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
12379 power8 capable assembler, default to power7 options.
12380 (TARGET_DIRECT_MOVE): Likewise.
12381 (TARGET_CRYPTO): Likewise.
12382 (TARGET_P8_VECTOR): Likewise.
12383 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
12384 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
12385 (VECTOR_MEM_P8_VECTOR_P): Likewise.
12386 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
12387 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
12388 (TARGET_XSCVDPSPN): Likewise.
12389 (TARGET_XSCVSPDPN): Likewsie.
12390 (TARGET_SYNC_HI_QI): Likewise.
12391 (TARGET_SYNC_TI): Likewise.
12392 (MASK_CRYPTO): Likewise.
12393 (MASK_DIRECT_MOVE): Likewise.
12394 (MASK_P8_FUSION): Likewise.
12395 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
12396 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
12397 temporary used by some of the direct move instructions to get two FP
12398 temporary registers does not force creation of a stack frame.
f62511da
MM
12399 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
12400 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
12401 that any VSX registers are tieable, even if they are also an
12402 Altivec vector mode.
12403 (r6000_reg_class_enum): Add wm, wr, wv constraints.
12404 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
12405 (RS6000_BTM_CRYPTO): Likewise.
12406 (RS6000_BTM_COMMON): Likewise.
12407
12408 * config/rs6000/rs6000.md (cpu attribute): Add power8.
12409 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
12410 (enum rs6000_vector): Add power8 vector support.
12411
73a1a707
RR
124122013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12413
12414 PR target/19599
12415 PR target/57340
12416 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
12417 (any_sibcall_could_use_r3): this and handle indirect calls.
12418 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
12419
d28073d4
BS
124202013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12421
12422 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
12423
bee0b10c
RB
124242013-05-22 Richard Biener <rguenther@suse.de>
12425
12426 PR middle-end/57349
12427 * profile.c (branch_prob): Do not split blocks that are
12428 abnormally receiving from ECF_RETURNS_TWICE functions.
12429
98409b51
RS
124302013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
12431
12432 * recog.c (offsettable_address_addr_space_p): Fix calculation of
12433 address mode. Move pointer mode initialization to the same place.
12434
c0602ab8
MZ
124352013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12436
12437 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
12438 while it has any effect.
12439
4f7a634e
ER
124402013-05-21 Easwaran Raman <eraman@google.com>
12441
12442 PR tree-optimization/57322
9daf6dbb
ER
12443 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
12444 UID of the statement added to the BB to be 1.
4f7a634e 12445
a4ce1258
JJ
124462013-05-21 Jakub Jelinek <jakub@redhat.com>
12447
12448 PR tree-optimization/57331
70cc1536
UB
12449 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
12450 of conversion from pointer type to integral type with integer.
a4ce1258 12451
1b14621a
MJ
124522013-05-21 Martin Jambor <mjambor@suse.cz>
12453
12454 PR lto/57289
12455 * ipa-prop.c (ipa_read_node_info): Process param_used and
12456 controlled_uses in the same order as when writing.
12457
e60661f0
MG
124582013-05-21 Magnus Granberg <baldrick@free.fr>
12459
12460 PR plugins/56754
ee49aa34 12461 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 12462
4a61be9a
RB
124632013-05-21 Richard Biener <rguenther@suse.de>
12464
12465 PR tree-optimization/57318
12466 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
12467 estimate stmts with side-effects as likely eliminated.
12468
c52da5f7
RB
124692013-05-21 Richard Biener <rguenther@suse.de>
12470
12471 PR tree-optimization/57330
12472 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
12473 preserve the call stmts fntype.
12474
7ec67e2a
RB
124752013-05-21 Richard Biener <rguenther@suse.de>
12476
12477 PR tree-optimization/57303
12478 * tree-ssa-sink.c (statement_sink_location): Improve killing
12479 stmt detection and properly handle self-assignments.
12480
b112d513
CB
124812013-05-21 Christian Bruel <christian.bruel@st.com>
12482
55805e54
YR
12483 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
12484 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
12485 registers. Set register size out of the PARALLEL loop.
12486
14c2ec26
OE
124872013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
12488
12489 PR target/56547
12490 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
12491 (*fmasf4, *fmasf4_media): New insns.
12492
da734fa1
RS
124932013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
12494
12495 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
12496 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
12497 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
12498 (mips_idiv_insns): Update the comments to say that the returned
12499 instruction counts are in units of BASE_INSN_LENGTH.
12500 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
12501 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
12502 using 2 rather than 4 as the length of indirect MIPS16 and
12503 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
12504 length of a NOP. Don't divide MIPS16 lengths by 2.
12505 (mips16_split_long_branches): Assume a branch is long if the
12506 length is greater than 4 rather than 8.
12507 * config/mips/mips.md (length): Give MIPS16 lengths directly,
12508 rather than multiplying them by 2. Multiply instruction counts
12509 by BASE_INSN_LENGTH rather than 4.
12510 (*jump_mips16, tls_get_tp_mips16_<mode>)
12511 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
12512
13719e8b
RS
125132013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
12514
12515 * config/mips/mips.md (extended_mips16): Remove branch case.
12516 (length): Remove duplicated extended_mips16 test.
12517
c3850d14
RS
125182013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
12519
12520 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
12521
8da2e059
RS
125222013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
12523
12524 * recog.h (Recog_data): Rename to...
12525 (recog_data_d): ...this.
12526 (recog_data): Update accordingly.
12527 * recog.c (recog_data): Likewise.
12528 * reload.c (save_recog_data): Likewise.
12529 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
12530 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
12531
2df013f3
JB
125322013-05-17 Julian Brown <julian@codesourcery.com>
12533
12534 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
12535 found in a REG_EQUAL note, invalidate it.
12536
371e77e3 125372013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
12538
12539 * tree-ssa-reassoc.c (find_insert_point): New function.
12540 (insert_stmt_after): Likewise.
12541 (get_def_stmt): Likewise.
12542 (ensure_ops_are_available): Likewise.
12543 (not_dominated_by): Likewise.
12544 (rewrite_expr_tree): Do not move statements beyond what is
12545 necessary. Remove call to swap_ops_for_binary_stmt...
12546 (reassociate_bb): ... and move it here.
12547 (build_and_add_sum): Assign UIDs for new statements.
12548 (linearize_expr): Likewise.
12549 (do_reassoc): Renumber gimple statement UIDs.
12550
e01c7cca
JH
125512013-05-17 Jan Hubicka <jh@suse.cz>
12552
12553 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
12554 weakrefs.
12555 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
12556 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
12557 weakrefs.
e01c7cca
JH
12558 (output_weakrefs): Update.
12559
c3272a92
PCC
125602013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
12561 Martin Jambor <mjambor@suse.cz>
12562
12563 PR middle-end/57276
12564 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
12565 value that corresponds to the given aggval is found in values vector.
12566
11c2aa39
UB
125672013-05-17 Uros Bizjak <ubizjak@gmail.com>
12568
12569 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
12570 sse, sse2, sse3, ssse3 and sse4a flags to options.
12571
abecc8c6
DM
125722013-05-17 David Malcolm <dmalcolm@redhat.com>
12573
12574 * gengtype-state.c: (s_expr_writer): New class, to handle
12575 prettifying of output layout of s-expressions.
12576 (state_writer): New class, to write out gtype.state.
12577 (state_written_type_count): Move this variable into member data of
12578 state_writer.
12579 (s_expr_writer::s_expr_writer): New code: constructor for new class
12580 (state_writer::state_writer(): ditto
12581 (s_expr_writer::write_new_line): New function
12582 (s_expr_writer::write_any_indent): ditto
12583 (s_expr_writer::begin_s_expr): ditto
12584 (s_expr_writer::end_s_expr): ditto
12585 (write_state_fileloc): convert to method of state_writer...
12586 (state_writer:: write_state_fileloc): ...and use methods of
12587 s_expr_writer to write indentation into the gtype.state output file
12588 to visually represent the hierarchical structure of the list
12589 structures
12590 (write_state_fields): ditto, renaming to...
12591 (state_writer::write_state_fields)
12592 (write_state_a_string): ditto, renaming to...
12593 (state_writer::write_state_a_string)
12594 (write_state_string_option): ditto, renaming to...
12595 (state_writer::write_state_string_option)
12596 (write_state_type_option): ditto, renaming to...
12597 (state_writer::write_state_type_option)
12598 (write_state_nested_option): ditto, renaming to...
12599 (state_writer::write_state_nested_option)
12600 (write_state_option): ditto, renaming to...
12601 (state_writer::write_state_option)
12602 (write_state_options): ditto, renaming to...
12603 (state_writer::write_state_options)
12604 (write_state_lang_bitmap): ditto, renaming to...
12605 (state_writer::write_state_lang_bitmap)
12606 (write_state_version): ditto, renaming to...
12607 (state_writer::write_state_version)
12608 (write_state_scalar_type): ditto, renaming to...
12609 (state_writer::write_state_scalar_type)
12610 (write_state_string_type): ditto, renaming to...
12611 (state_writer::write_state_string_type)
12612 (write_state_undefined_type): ditto, renaming to...
12613 (state_writer::write_state_undefined_type)
12614 (write_state_struct_union_type): ditto, renaming to...
12615 (state_writer::write_state_struct_union_type)
12616 (write_state_struct_type): ditto, renaming to...
12617 (state_writer::write_state_struct_type)
12618 (write_state_user_struct_type): ditto, renaming to...
12619 (state_writer::write_state_user_struct_type)
12620 (write_state_lang_struct_type): ditto, renaming to...
12621 (state_writer::write_state_lang_struct_type)
12622 (write_state_param_struct_type): ditto, renaming to...
12623 (state_writer::write_state_param_struct_type)
12624 (write_state_pointer_type): ditto, renaming to...
12625 (state_writer::write_state_pointer_type)
12626 (write_state_array_type): ditto, renaming to...
12627 (state_writer::write_state_array_type)
12628 (write_state_gc_used): ditto, renaming to...
12629 (state_writer::write_state_gc_used)
12630 (write_state_common_type_content): ditto, renaming to...
12631 (state_writer::write_state_common_type_content)
12632 (write_state_type): ditto, renaming to...
12633 (state_writer::write_state_type)
12634 (write_state_pair_list): ditto, renaming to...
12635 (state_writer::write_state_pair_list)
12636 (write_state_pair): ditto, renaming to...
12637 (state_writer::write_state_pair)
12638 (write_state_typedefs): ditto, renaming to...
12639 (state_writer::write_state_typedefs)
12640 (write_state_structures): ditto, renaming to...
12641 (state_writer::write_state_structures)
12642 (write_state_param_structs): ditto, renaming to...
12643 (state_writer::write_state_param_structs)
12644 (write_state_variables): ditto, renaming to...
12645 (state_writer::write_state_variables)
12646 (write_state_srcdir): ditto, renaming to...
12647 (state_writer::write_state_srcdir)
12648 (write_state_files_list): ditto, renaming to...
12649 (state_writer::write_state_files_list)
12650 (write_state_languages): ditto, renaming to...
12651 (state_writer::write_state_languages)
12652 (write_state): create a state_writer instance and use it when
12653 writing out the state file
12654
d6545f29
MS
126552013-05-17 Mike Stump <mikestump@comcast.net>
12656
816a3f73 12657 PR rtl-optimization/57304
d6545f29
MS
12658 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
12659 accessing DF_REF_REAL_LOC.
12660
38c821cf
JJ
126612013-05-17 Jakub Jelinek <jakub@redhat.com>
12662
12663 PR rtl-optimization/57281
12664 PR rtl-optimization/57300
12665 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
12666 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
12667 what the other splitter did if the registers are dead.
12668
2a293391
RB
126692013-05-17 Richard Biener <rguenther@suse.de>
12670
12671 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
12672 MEM_REF offsets.
12673
17042d2b
JJ
126742013-05-17 Jakub Jelinek <jakub@redhat.com>
12675
12676 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
12677 linking.
12678
5b115c1f
MP
126792013-05-17 Marek Polacek <polacek@redhat.com>
12680
11c2aa39
UB
12681 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
12682 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 12683
52d84413
JJ
126842013-05-17 Jakub Jelinek <jakub@redhat.com>
12685
68119618
JJ
12686 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
12687 vect_external_def oprnd1 with loop_vinfo, try to emit
12688 optional cast, negation and and stmts on the loop preheader
12689 edge instead of into the pattern def seq.
12690
52d84413
JJ
12691 PR tree-optimization/57051
12692 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
12693 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
12694
17b962bd
NC
126952013-05-16 Nick Clifton <nickc@redhat.com>
12696
12697 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
12698 (rl78_is_naked_func): New function.
56aefbf7
UB
12699 (rl78_expand_prologue): Skip prologue generation for naked functions.
12700 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
12701 * doc/extend.texi (naked): Add RL78 to the list of processors
12702 that supports this attribute.
12703
b1a0f84e
JL
127042013-05-16 Jeff Law <law@redhat.com>
12705
12706 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
12707
af0e415b
UB
127082013-05-16 Uros Bizjak <ubizjak@gmail.com>
12709
12710 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
12711 cache parameters using detect_caches_amd also for CYRIX,
12712 NSC and TM2 signatures.
12713
19db293a
UB
127142013-05-16 Uros Bizjak <ubizjak@gmail.com>
12715 Dzianis Kahanovich <mahatma@eu.by>
12716
12717 PR target/45359
12718 PR target/46396
12719 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
12720 VIA/Centaur processors and determine their cache parameters
12721 using detect_caches_amd.
12722
251a41b9
TJ
127232013-05-16 Teresa Johnson <tejohnson@google.com>
12724
12725 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
12726 (rtl_verify_edges): New function.
12727 (rtl_verify_bb_insns): Ditto.
12728 (rtl_verify_bb_pointers): Ditto.
12729 (rtl_verify_bb_insn_chain): Ditto.
12730 (rtl_verify_fallthru): Ditto.
12731 (rtl_verify_bb_layout): Ditto.
12732 (rtl_verify_flow_info_1): Outline checks into new functions.
12733 (rtl_verify_flow_info): Ditto.
12734
f14540b6
SE
127352013-05-16 Steve Ellcey <sellcey@imgtec.com>
12736
12737 * cfghooks.c (copy_bbs): Add update_dominance argument.
12738 * cfghooks.h (copy_bbs): Update prototype.
12739 * tree-cfg.c (gimple_duplicate_sese_region):
12740 Add update_dominance argument.
12741 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
12742 * tree-ssa-loop-ch.c (copy_loop_headers): Update
12743 gimple_duplicate_sese_region call.
12744 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
12745 Update copy_bbs call.
12746 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
12747 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
12748
7e9a3abb
JJ
127492013-05-16 Jakub Jelinek <jakub@redhat.com>
12750
12751 * tree-vectorizer.h (NUM_PATTERNS): Increment.
12752 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
12753 vect_recog_rotate_pattern.
12754 (vect_recog_rotate_pattern): New function.
12755
427b248d
JM
127562013-05-16 Jason Merrill <jason@redhat.com>
12757
12758 * Makefile.in (LLINKER): New variable.
12759 (mostlyclean): Remove link mutex.
12760 * configure.ac: Handle --enable-link-mutex.
12761 * lock-and-run.sh: New script.
12762
b871e3d2
RR
127632013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12764
12765 PR target/19599
12766 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
12767 for NULL decl.
12768
ce858126
RO
127692013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12770
12771 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
12772
798d3d04
GY
127732013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
12774
12775 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
12776 * config/arm/arm.c (next_consecutive_mem): New function.
12777 (gen_movmem_ldrd_strd): Likewise.
12778 * config/arm/arm.md (movmemqi): Update condition and code.
12779 (unaligned_loaddi, unaligned_storedi): New patterns.
12780
0baddc45
RO
127812013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12782
12783 * config.gcc: Obsolete *-*-solaris2.9*.
12784 * doc/install.texi (Specific, *-*-solaris2*): Document it.
12785
aa9d5bcf
RB
127862013-05-16 Richard Biener <rguenther@suse.de>
12787
12788 * passes.c (init_optimization_passes): Move pass_parallelize_loops
12789 earlier, after GRAPHITE transforms and IV canonicalization.
12790
5a0f4dd3
JJ
127912013-05-16 Jakub Jelinek <jakub@redhat.com>
12792
12793 * omp-low.c (extract_omp_for_data): For collapsed loops,
12794 if at least one of the loops is known at compile time to
12795 iterate zero times, set count to 0.
12796 (expand_omp_regimplify_p): New function.
12797 (expand_omp_for_generic): For collapsed loops, if at least
12798 one of the loops isn't known to iterate at least once,
12799 add runtime check with setting count to 0.
12800 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
12801 For unsigned types if it isn't known at compile time that
12802 the loop will iterate at least once, add runtime check to bypass
12803 the whole loop if initial condition isn't true.
12804
e3753785
NS
128052013-05-16 Nathan Sidwell <nathan@codesourcery.com>
12806
12807 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
12808
43bb4dd1
MG
128092013-05-16 Marc Glisse <marc.glisse@inria.fr>
12810
12811 PR middle-end/57286
12812 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
12813 transformations to avoid an infinite loop.
12814
3571dde6
MP
128152013-05-16 Marek Polacek <polacek@redhat.com>
12816
12817 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
12818
b8b3f0ca
LE
128192013-05-15 Leif Ekblad <leif@rdos.net>
12820
12821 * config/i386/i386.c (ix86_decompose_address): Use
12822 DEFAULT_TLS_SEG_REG to access TLS segment register.
12823 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
12824 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
12825 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
12826
e299a383
RS
128272013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
12828
12829 PR target/57260
12830 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
12831 sibling calls to functions that would normally be lazily bound,
12832 unless $gp is call-clobbered.
12833
e7208ea3
UB
128342013-05-15 Uros Bizjak <ubizjak@gmail.com>
12835
19db293a 12836 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 12837 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
12838 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
12839 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
12840 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
12841 of TARGET_3DNOW.
12842 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
12843
e7413f3d
AS
128442013-05-15 Andreas Schwab <schwab@suse.de>
12845
12846 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
12847 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
12848 third operand.
12849
ad4db775
TJ
128502013-05-15 Teresa Johnson <tejohnson@google.com>
12851
12852 * loop-unroll.c (report_unroll_peel): Check decision before
12853 emitting unroll/peel message.
12854
af205f67
TJ
128552013-05-15 Teresa Johnson <tejohnson@google.com>
12856
12857 * function.h (has_bb_partition): New rtl_data flag.
12858 (bb_reorder_complete): Ditto.
12859 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
12860 instead of flag_reorder_blocks_and_partition.
12861 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
12862 with some enhancements.
12863 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
12864 * bb-reorder.c (connect_traces): Check for has_bb_partition
12865 instead of flag_reorder_blocks_and_partition.
12866 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
12867 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
12868 verify_hot_cold_block_grouping.
12869 (partition_hot_cold_basic_blocks): Set has_bb_partition.
12870
9adcfa3c
RR
128712013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12872
12873 PR target/19599
12874 * config/arm/predicates.md (call_insn_operand): New predicate.
12875 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
12876 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
12877 if insn is not a tail call.
12878 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
12879 registers.
12880 * config/arm/arm.h (enum reg_class): New caller save register class.
12881 (REG_CLASS_NAMES): Likewise.
12882 (REG_CLASS_CONTENTS): Likewise.
12883 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
12884 without decls.
12885
ccb3ad87
RB
128862013-05-15 Richard Biener <rguenther@suse.de>
12887
12888 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
12889 of MSG_OPTIMIZED_LOCATIONS.
12890 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
12891 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
12892 message.
12893 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
12894 of MSG_OPTIMIZED_LOCATIONS.
12895 (execute_vect_slp): Likewise.
12896 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
12897 (vect_create_cond_for_alias_checks): Likewise.
12898 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
12899 (vect_recog_widen_mult_pattern): Likewise.
12900 (vect_recog_widen_sum_pattern): Likewise.
12901 (vect_recog_over_widening_pattern): Likewise.
12902 (vect_recog_widen_shift_pattern): Likewise.
12903 (vect_recog_vector_vector_shift_pattern): Likewise.
12904 (vect_recog_divmod_pattern): Likewise.
12905 (vect_recog_mixed_size_cond_pattern): Likewise.
12906 (vect_recog_bool_pattern): Likewise.
12907 (vect_pattern_recog_1): Likewise.
12908
48b1474e
MJ
129092013-05-15 Martin Jambor <mjambor@suse.cz>
12910
12911 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
12912 non-functions to builtin_unreachable.
12913 * ipa-inline-transform.c (inline_call): Do not assert estimates were
12914 correct when new direct edges were discovered.
12915
9de04252
MJ
129162013-05-15 Martin Jambor <mjambor@suse.cz>
12917
12918 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
12919 header, print symbol order instead of node uid, print more information
12920 about indirect edge targets.
12921 (ipa_make_edge_direct_to_target): Print symbol order instead of node
12922 uids.
12923 (ipa_make_edge_direct_to_target): Likewise.
12924 (remove_described_reference): Likewise.
12925 (propagate_controlled_uses): Likewise.
12926 (ipa_print_node_params): Also print symbol order.
12927 (ipcp_transform_function): Print symbol order instead of node uids.
12928 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
12929 (cgraph_get_create_real_symbol_node): Likewise.
12930 * ipa-cp.c (print_lattice): Likewise.
12931 (print_all_lattices): Likewise.
12932 (determine_versionability): Likewise.
12933 (initialize_node_lattices): Likewise.
12934 (estimate_local_effects): Likewise.
12935 (update_profiling_info): Likewise.
12936 (create_specialized_node): Likewise.
12937 (perhaps_add_new_callers): Likewise.
12938 (decide_about_value): Likewise.
12939 (decide_whether_version_node): Likewise.
12940 (identify_dead_nodes): Likewise.
12941 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
12942 (dump_inline_summary): Likewise.
12943 (estimate_node_size_and_time): Likewise.
12944 (inline_analyze_function): Likewise.
12945 * ipa-inline.c (report_inline_failed_reason): Likewise.
12946 (want_early_inline_function_p): Likewise.
12947 (edge_badness): Likewise.
12948 (update_edge_key): Likewise.
12949 (inline_small_functions): Likewise. Add dumping of order to two other
12950 dumps.
12951 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
12952 instead of node uids.
12953 (propagate_pure_const): Likewise.
12954 (propagate_pure_const): Likewise.
12955 * ipa-utils.c (dump_cgraph_node_set): Likewise.
12956 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
12957 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
12958 of node uids.
12959 * tree-pretty-print.c (dump_function_header): Likewise.
12960 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
12961 Print symbol order instead of node uids.
12962
1dd03b91
AK
129632013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12964
12965 * config/s390/s390.c (s390_register_move_cost): Don't impose the
12966 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
12967
fdf6a7b9
RB
129682013-05-15 Richard Biener <rguenther@suse.de>
12969
12970 PR tree-optimization/57275
12971 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
12972 return value for fail to do runtime alias checks for gather loads.
12973
2d6e4603
JH
129742013-05-15 Jan Hubicka <jh@suse.cz>
12975
12976 PR lto/57038
12977 PR lto/47375
e7208ea3
UB
12978 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
12979 weakrefs are not external.
12980 (lto_symtab_merge_decls): Fix thinko when dealing with
12981 non-lto_symtab decls.
2d6e4603
JH
12982 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
12983 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
12984 * varpool.c (dump_varpool_node): Dump more flags.
12985
83f44b39
GG
129862013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
12987
12988 * config/i386/i386.c (processor_alias_table): Add instruction
12989 FSGSBASE for AMD bdver3 architecture.
12990
2e55d062
JJ
129912013-05-14 Jakub Jelinek <jakub@redhat.com>
12992
12993 * tree.c (warn_deprecated_use): Print file:line using locus color.
12994 * diagnostic.c (diagnostic_report_current_module): Print file:line
12995 and file:line:column using locus color.
12996
0bfdb81e
MS
129972013-05-14 Mike Stump <mikestump@comcast.net>
12998
12999 * gdbinit.in: Add __null.
13000
a508ef22
MS
130012013-05-14 Mike Stump <mikestump@comcast.net>
13002
13003 * recog.h: Rename struct recog_data to Recog_data.
13004 * recog.c: Likewise.
13005 * reload.c (can_reload_into): Likewise.
13006 * config/picochip/picochip.c: Likewise.
13007
e7180acb
MS
130082013-05-14 Mike Stump <mikestump@comcast.net>
13009
13010 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
13011
61216c26
SB
130122013-05-14 Steven Bosscher <steven@gcc.gnu.org>
13013
fd6beed4
SB
13014 * resource.h (struct resources): Remove unch_memory member.
13015 (CLEAR_RESOURCE): Don't clear unch_memory.
13016 * resource.c (mark_referenced_resources): Don't set it.
13017 (mark_set_resources): Likewise.
13018 (mark_target_live_regs): Don't clear it.
13019 (init_resource_info): Likewise.
13020 * reorg.c (resource_conflicts_p): Don't compare it.
13021 (redundant_insn): Don't set it.
13022
61216c26
SB
13023 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
13024 Remove prototypes.
13025 * emit-rtl.c (next_label): Remove unused function.
13026 (skip_consecutive_labels, link_cc0_insns): Move to ...
13027 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
13028 only place where these functions are used, and make them static.
13029
418d1b87
MG
130302013-05-14 Marc Glisse <marc.glisse@inria.fr>
13031
13032 * fold-const.c (fold_negate_expr): Handle vectors.
13033 (fold_truth_not_expr): Make it static.
13034 (fold_invert_truthvalue): New static function.
13035 (invert_truthvalue_loc): Handle vectors. Do not call
13036 fold_truth_not_expr directly.
13037 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
13038 <TRUTH_NOT_EXPR>: Do not cast to boolean.
13039 (fold_comparison): Handle vector constants.
13040 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
13041 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
13042 * tree.h (fold_truth_not_expr): Remove declaration.
13043
fc21784d
JG
130442013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
13045
13046 * config/aarch64/aarch64-simd.md
13047 (aarch64_vcond_internal<mode>): Rename to...
13048 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
13049 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
13050 float modes. Clarify all iterator modes.
13051 (vcond<mode><mode>): Use new name for vcond expanders.
13052 (vcond<v_cmp_result><mode>): Likewise.
13053 (vcondu<mode><mode>: Likewise.
13054 * config/aarch64/iterators.md (VDQF_COND): New.
13055
d4c52634
MG
130562013-05-14 Marc Glisse <marc.glisse@inria.fr>
13057
13058 PR bootstrap/57266
13059 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
13060 variable for the shift amount. Check that we shift by non-negative
13061 amounts.
13062
2b261262
CLT
130632013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
13064
13065 PR target/42017
13066 * config/arm/arm.h (EPILOGUE_USES): Only return true
13067 for LR_REGNUM after epilogue_completed.
13068
12211b99 130692013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
13070
13071 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 13072 is error_mark_node.
6e022d7b 13073
56cf7859
RO
130742013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13075
13076 PR target/57261
13077 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
13078 and Solaris 11+/x86 with gld.
13079 * configure: Regenerate.
13080
75776c6d
JJ
130812013-05-14 Jakub Jelinek <jakub@redhat.com>
13082
13083 * expmed.c (expand_shift_1): Canonicalize rotates by
13084 constant bitsize / 2 to bitsize - 1.
7f998021 13085 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
13086 case ROTATERT>: Likewise.
13087
13088 Revert:
13089 2013-05-10 Jakub Jelinek <jakub@redhat.com>
13090
13091 * config/i386/i386.md (rotateinv): New code attr.
13092 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
13093 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
13094 roll $31, %eax, etc.
13095
df35498a
RB
130962013-05-14 Richard Biener <rguenther@suse.de>
13097
13098 PR middle-end/57235
13099 * tree-eh.c (sink_clobbers): Give up for successors with
13100 multiple predecessors and no virtual uses.
13101
cc6e7ece
EB
131022013-05-14 Eric Botcazou <ebotcazou@adacore.com>
13103
13104 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
13105 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
13106
f778dd4d
JJ
131072013-05-14 Jakub Jelinek <jakub@redhat.com>
13108
13109 PR middle-end/57251
13110 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
13111 the case when both op0 and op1 have VOIDmode.
13112
bad4df9b
KP
131132013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
13114
13115 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
13116 in multiply-accumulate mode.
13117
56f3e9ac
GW
131182013-05-13 Guozhi Wei <carrot@google.com>
13119
13120 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
13121
a3d7ab92
KT
131222013-05-13 Kai Tietz <ktietz@redhat.com>
13123
13124 PR target/56975
13125 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 13126 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 13127 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 13128 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
13129 (ix86_expand_prologue): Likewise.
13130 (ix86_expand_split_stack_prologue): Likewise.
13131 (legitimate_pic_address_disp_p): Likewise.
13132 (legitimize_pic_address): Likewise.
13133 (legitimize_tls_address): Likewise.
13134 (legitimize_pe_coff_symbol): Likewise.
13135 (output_pic_addr_const): Likewise.
13136 (construct_plt_address): Likewise.
13137 (ix86_expand_call): Likewise.
13138 (x86_output_mi_thunk): Likewise.
13139 (x86_function_profiler): Likewise.
13140
c59b7e28
SN
131412013-05-13 Sofiane Naci <sofiane.naci@arm.com>
13142
13143 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
13144 similar switch cases.
13145 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
13146 (aarch64_simd_mov_to_<mode>low): Delete.
13147 (aarch64_simd_mov_to_<mode>high): Delete.
13148 (move_lo_quad_<mode>): Add w<-r alternative.
13149 (aarch64_simd_move_hi_quad_<mode>): Likewise.
13150 (aarch64_simd_mov_from_*): Update type attribute.
13151 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
13152 statement.
13153
5f28524a
JH
131542013-05-13 Jan Hubicka <jh@suse.cz>
13155
13156 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
13157 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
13158 ix86_expand_epilogue, emit_i387_cw_initialization,
13159 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
13160 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 13161
ae6fa899
JJ
131622013-05-13 Jakub Jelinek <jakub@redhat.com>
13163
13164 PR tree-optimization/45216
13165 PR tree-optimization/57157
13166 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
13167 the (-Y) & (B - 1) variant if OP is |.
13168 * expmed.c (expand_shift_1): For rotations by const0_rtx just
13169 return shifted. Use (-op1) & (prec - 1) as other_amount
13170 instead of prec - op1.
13171
4502fe8d
MJ
131722013-05-13 Martin Jambor <mjambor@suse.cz>
13173
13174 PR middle-end/42371
13175 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
13176 (ipa_constant_data): New type.
13177 (ipa_jump_func): Use ipa_constant_data to hold information about
13178 constant jump functions.
13179 (ipa_get_jf_constant): Adjust to jump function type changes.
13180 (ipa_get_jf_constant_rdesc): New function.
13181 (ipa_param_descriptor): New field controlled_uses.
13182 (ipa_get_controlled_uses): New function.
13183 (ipa_set_controlled_uses): Likewise.
13184 * ipa-ref.h (ipa_find_reference): Declare.
13185 * ipa-prop.c (ipa_cst_ref_desc): New type.
13186 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
13187 changes.
13188 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
13189 New parameter cs. Adjust all callers.
13190 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
13191 (remove_described_reference): New function.
13192 (jfunc_rdesc_usable): Likewise.
13193 (try_make_edge_direct_simple_call): Decrement controlled use count,
13194 attempt to remove reference if it hits zero.
13195 (combine_controlled_uses_counters): New function.
13196 (propagate_controlled_uses): Likewise.
13197 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
13198 (ipa_edge_duplication_hook): Duplicate reference descriptions.
13199 (ipa_print_node_params): Print described use counter.
13200 (ipa_write_jump_function): Adjust to jump function type changes.
13201 (ipa_read_jump_function): New parameter CS, pass it to
13202 ipa_set_jf_constant. Adjust caller.
13203 (ipa_write_node_info): Stream controlled use count
13204 (ipa_read_node_info): Likewise.
13205 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
13206 asserting.
13207 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
13208 count. Remove cloning-added reference if it reaches zero.
13209 * ipa-ref.c (ipa_find_reference): New function.
13210
0864bfc2
GG
132112013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
13212
e7208ea3 13213 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
13214 alignment values for AMD BD and BT architectures.
13215
640bfeb2
MG
132162013-05-13 Marc Glisse <marc.glisse@inria.fr>
13217
13218 * tree-vect-generic.c (uniform_vector_p): Move ...
13219 * tree.c (uniform_vector_p): ... here.
13220 * tree.h (uniform_vector_p): Declare it.
13221 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
13222 into a scalar.
13223
3a60f32b
JJ
132242013-05-13 Jakub Jelinek <jakub@redhat.com>
13225
198fe1bf
JJ
13226 PR tree-optimization/57230
13227 * tree-ssa-strlen.c (handle_char_store): Record length for
13228 array store from STRING_CST.
13229
3a60f32b
JJ
13230 PR tree-optimization/57230
13231 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
13232 check.
13233
566be57c
JR
132342013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
13235
13236 * config/epiphany/epiphany.c (epiphany_init): Check size of
13237 NUM_MODES_FOR_MODE_SWITCHING.
13238 (epiphany_expand_prologue):
13239 Remove CONFIG_REGNUM initial value handling code.
13240 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
13241 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 13242 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
13243 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
13244 Don't return 1 for FP_MODE_NONE.
13245 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
13246 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
13247 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
13248 * config/epiphany/epiphany.md (save_config): New pattern.
13249
0f2c2331
UB
132502013-05-12 Uros Bizjak <ubizjak@gmail.com>
13251
13252 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
13253
5b3f93c7
UB
132542013-05-10 Uros Bizjak <ubizjak@gmail.com>
13255
13256 * config/i386/i386.md (memory): Handle sseishft1.
13257 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
13258 (*vec_extractv2di_1): Ditto.
13259
1f873f0e
VM
132602013-05-10 Vladimir Makarov <vmakarov@redhat.com>
13261
13262 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
13263 saved registers.
13264
341427fa 132652013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
13266
13267 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
13268 Add mthumb/march=armv7-a multilib.
13269 Add mthumb/march=armv7-r multilib.
13270 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
13271
9e69bdde
RC
132722013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
13273
13274 * config/v850/t-rtems: Add more multilibs.
13275
9ff09a22
RB
132762013-05-10 Richard Biener <rguenther@suse.de>
13277
13278 PR tree-optimization/57214
13279 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
13280 not propagate from SSA names that occur in abnormal PHI nodes.
13281
a5e0cd1d
MG
132822013-05-10 Marc Glisse <marc.glisse@inria.fr>
13283
13284 * stor-layout.c (element_precision): New function.
13285 * machmode.h (element_precision): Declare it.
13286 * tree.c (build_minus_one_cst): New function.
13287 (element_precision): Likewise.
13288 * tree.h (build_minus_one_cst): Declare new function.
13289 (element_precision): Likewise.
13290 * fold-const.c (operand_equal_p): Use element_precision.
13291 (fold_binary_loc): Handle vector types.
13292 * convert.c (convert_to_integer): Use element_precision.
13293 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
13294 separately.
13295
cb2558bc
RS
132962013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
13297
13298 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
13299 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
13300 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
13301 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
13302 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
13303 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
13304 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
13305 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
13306 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
13307 (Uuw8): New constraints.
13308 (Usb4): Move into alphabetical order.
13309 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
13310 (sd8_operand, ub8_operand, uw8_operand): New predicates.
13311 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
13312 previously unnamed patterns.
13313 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
13314 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
13315 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
13316 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
13317 of set_attr_alternative/if_then_else. Use extended_mips16 instead
13318 of specific lengths.
13319
cb3b8d33
JJ
133202013-05-10 Jakub Jelinek <jakub@redhat.com>
13321
6f93c008
JJ
13322 * config/i386/i386.md (rotateinv): New code attr.
13323 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
13324 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
13325 roll $31, %eax, etc.
13326
cb3b8d33
JJ
13327 PR tree-optimization/45216
13328 PR tree-optimization/57157
13329 * tree-ssa-forwprop.c (simplify_rotate): New function.
13330 (ssa_forward_propagate_and_combine): Call it.
13331
afb119be
RB
133322013-05-10 Richard Biener <rguenther@suse.de>
13333
13334 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
13335 disable peeling when we version for aliasing.
13336 (vector_alignment_reachable_p): Honor explicit user alignment.
13337 (vect_supportable_dr_alignment): Likewise.
13338 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
13339 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
13340 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
13341 then peeling to arrange for the cost-model check to come first.
13342
01ae4861
AM
133432013-05-10 Alan Modra <amodra@gmail.com>
13344
13345 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
13346 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
13347 * configure: Regenerate.
13348
ebc9a431
AM
133492013-05-10 Alan Modra <amodra@gmail.com>
13350
13351 PR target/55033
13352 * varasm.c (default_elf_select_section): Move !DECL_P check..
13353 (get_named_section): ..to here before calling get_section_name.
13354 Adjust assertion.
13355 (default_section_type_flags): Add DECL_P check.
13356 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
13357 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
13358
d4bca93c
JR
133592013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
13360
13361 * config/epiphany/epiphany.c (epiphany_expand_prologue):
13362 When using gen_stack_adjust_str with a register offset, add a
13363 REG_FRAME_RELATED_EXPR note.
13364
60ca9a65
UB
133652013-05-09 Uros Bizjak <ubizjak@gmail.com>
13366
13367 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
13368 (*vec_extractv4si_zext_mem): Ditto.
13369 (*vec_extractv2di): Add 0->x and x->x alternatives.
13370 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
13371 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
13372
a3409c02
JM
133732013-05-09 Jason Merrill <jason@redhat.com>
13374
0138d6b2
JM
13375 N3639 C++1y VLA support
13376 * gimplify.c (gimplify_vla_decl): Don't touch an existing
13377 DECL_VALUE_EXPR.
13378
a3409c02
JM
13379 * tree.c (build_constructor_va): New.
13380 * tree.h: Declare it.
13381
66e6b990
MJ
133822013-05-09 Martin Jambor <mjambor@suse.cz>
13383
13384 PR lto/57084
13385 * gimple-fold.c (canonicalize_constructor_val): Call
13386 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
13387
64cfa6c0
JH
133882013-05-09 Jan Hubicka <jh@suse.cz>
13389 Richard Biener <rguenther@suse.de>
13390
13391 PR lto/54095
13392 * symtab.c (symtab_make_decl_local): Do not add private names.
13393
c3167b00
JH
133942013-05-09 Jan Hubicka <jh@suse.cz>
13395
13396 PR lto/54095
13397 * symtab.c (insert_to_assembler_name_hash): Handle clones.
13398 (unlink_from_assembler_name_hash): Likewise.
13399 (symtab_prevail_in_asm_name_hash, symtab_register_node,
13400 symtab_unregister_node, symtab_initialize_asm_name_hash,
13401 change_decl_assembler_name): Update.
13402
12dc6974
SN
134032013-05-09 Sofiane Naci <sofiane.naci@arm.com>
13404
13405 * config/aarch64/aarch64.md: New movtf split.
13406 (*movtf_aarch64): Update.
13407 (aarch64_movdi_tilow): Handle TF modes and rename to
13408 aarch64_movdi_<mode>low.
13409 (aarch64_movdi_tihigh): Handle TF modes and rename to
13410 aarch64_movdi_<mode>high
13411 (aarch64_movtihigh_di): Handle TF modes and rename to
13412 aarch64_mov<mode>high_di
13413 (aarch64_movtilow_di): Handle TF modes and rename to
13414 aarch64_mov<mode>low_di
13415 (aarch64_movtilow_tilow): Remove spurious whitespace.
13416 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
13417 splits.
13418 (aarch64_print_operand): Update.
13419
227eb343
AM
134202013-05-09 Alan Modra <amodra@gmail.com>
13421
13422 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
13423 powerpc64le.
13424 * configure: Regenerate.
13425
0b013847
UB
134262013-05-08 Uros Bizjak <ubizjak@gmail.com>
13427
13428 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
13429 splitter preparation statements.
13430 * config/i386/sse.md (*vec_extract* splitters): Ditto.
13431 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
13432 adjust_address_nv.
13433
1dc3d6e9
BS
134342013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13435
13436 * gimple-ssa-strength-reduction.c (count_candidates): Change
13437 return value to int.
13438 (analyze_candidates_and_replace): Change type of length to int.
13439
e61e7d28
UB
134402013-05-08 Uros Bizjak <ubizjak@gmail.com>
13441
13442 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
13443 (*vec_extract<mode>): Use VI12_128 mode iterator.
13444 (*vec_extract<mode>_mem): Ditto.
13445 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
13446 attribute.
13447
4fbfcf44
DN
134482013-05-08 Diego Novillo <dnovillo@google.com>
13449
13450 PR bootstrap/54659
13451
13452 Revert:
4fbfcf44
DN
13453 2012-08-17 Diego Novillo <dnovillo@google.com>
13454
e61e7d28
UB
13455 PR bootstrap/54281
13456 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
13457 * config.in: Regenerate.
13458 * configure: Regenerate.
13459 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 13460
702d8703
JH
134612013-05-08 Jan Hubicka <jh@suse.cz>
13462
13463 PR lto/54095
13464 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
13465 * cgraph.h (symtab_node_base): Add unique_name.
13466 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
13467 input_overwrite_node, input_varpool_node): Stream unique_name.
13468 * cgraphclones.c (cgraph_create_virtual_clone,
13469 cgraph_function_versioning): Set unique_name.
13470 * ipa.c (function_and_variable_visibility): Set unique_name.
13471
8b28cf47
BS
134722013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13473
13474 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
13475 (alloc_cand_and_find_basis): Restrict conditional candidate
13476 processing to CAND_MULTs.
13477
e86074fd
JH
134782013-05-08 Jan Hubicka <jh@suse.cz>
13479
13480 PR lto/54095
13481 lto-symtab.c (lto_symtab_symbol_p): New function.
13482 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
13483 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
13484 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
13485 Skip static symbols.
13486
44398cbe
PC
134872013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
13488
13489 PR tree-optimization/57200
13490 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
13491 Only call inform if the preceding warning_at returns true.
13492
f6bc1c4a
HS
134932013-05-07 Han Shen <shenhan@google.com>
13494
13495 * cfgexpand.c (record_or_union_type_has_array_p): New function.
13496 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
13497 * common.opt (fstack-protector-strong): New option.
13498 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
13499 * doc/invoke.texi (Optimization Options): Document
13500 "-fstack-protector-strong".
13501 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
13502
4ffecb1f
SB
135032013-05-06 Steven Bosscher <steven@gcc.gnu.org>
13504
13505 * config/mips/mips.c (mips_machine_reorg2): Return 0.
13506
5a107a0f
VM
135072013-05-07 Vladimir Makarov <vmakarov@redhat.com>
13508
13509 * ira.c (update_equiv_regs): Add insn having equiv memory even if
13510 it is not lhs of the insn.
13511 (setup_reg_equiv): Remove insn having equiv memory which it is not
13512 lhs of the insn.
13513 * lra-constraints.c (process_address): Try to improve generation
13514 code for address base + disp.
13515 (lra_constraints): Make correct the code for checking insn setting
13516 up backward equivalence. Remove insn only if it is in the init
13517 insn list.
13518 * lra-eliminations.c (update_reg_eliminate): Change return value.
13519 (lra_eliminate): Use the result.
13520
3f5783ea
UB
135212013-05-07 Uros Bizjak <ubizjak@gmail.com>
13522
13523 * config/i386/sse.md (ssescalarnummask): New mode attribute.
13524 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
13525 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
13526 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
13527 register target operands.
13528 (*vec_extractv8hi_sse2): New pattern.
13529 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
13530 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
13531 (*vec_extract<mode>_mem): New insn and split pattern.
13532
8a5800b8
CL
135332013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
13534
13535 * config/arm/arm.c (arm_asan_shadow_offset): New function.
13536 (TARGET_ASAN_SHADOW_OFFSET): Define.
13537 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
13538 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
13539
7bf55a70
BS
135402013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13541
13542 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
13543 (incr_vec_index): Return -1 if increment not found.
13544 (create_add_on_incoming_edge): Assert if increment not found.
13545 (record_increment): Limit number of increments recorded.
13546 (all_phi_incrs_profitable): Return false if an increment not found.
13547 (replace_profitable_candidates): Don't process increments that were
13548 not recorded.
13549 (analyze_candidates_and_replace): Limit size of incr_vec.
13550
3f8825c0
RB
135512013-05-07 Richard Biener <rguenther@suse.de>
13552
13553 * calls.c (special_function_p): setjmp-like functions are leaf.
13554 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
13555 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
13556
fd4842cd
SN
135572013-05-07 Sofiane Naci <sofiane.naci@arm.com>
13558
13559 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
13560 (aarch64_simd_mov<mode>): New expander.
13561 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
13562 (aarch64_simd_mov_to_<mode>high): Likewise.
13563 (aarch64_simd_mov_from_<mode>low): Likewise.
13564 (aarch64_simd_mov_from_<mode>high): Likewise.
13565 (aarch64_dup_lane<mode>): Update.
13566 (aarch64_dup_lanedi): New instruction pattern.
13567 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
13568 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
13569
a7a7d10e
BS
135702013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13571
13572 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
13573 (replace_mult_candidate): Remove unnecessary argument; remove
13574 unnecessary parameter from call to introduce_cast_before_cand.
13575 (replace_unconditional_candidate): Remove unnecessary parameter
13576 from call to replace_mult_candidate.
13577 (replace_conditional_candidate): Likewise.
13578 (insert_initializers): Use make_temp_ssa_name.
13579 (introduce_cast_before_cand): Remove unnecessary argument; use
13580 make_temp_ssa_name.
13581 (replace_one_candidate): Remove unnecessary argument; remove
13582 unnecessary parameter from calls to introduce_cast_before_cand.
13583 (replace_profitable_candidates): Remove unnecessary parameters
13584 from calls to replace_one_candidate.
13585
29105868
BS
135862013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13587
13588 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
13589 phi def as possibly hiding a basis for a CAND_ADD whose operands
13590 have been commuted in the analysis.
13591 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
13592
4095f9fa
N
135932013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
13594
13595 * config/aarch64/aarch64.md
13596 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
13597 shift value between 0-4.
13598
39e843e8
RB
135992013-05-07 Richard Biener <rguenther@suse.de>
13600
13601 * double-int.h (rshift): New overload.
13602 * double-int.c (rshift): New function.
13603 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
13604 (create_reference_ops_from_ref): Remove.
13605 (vn_reference_insert): Use shared ops for constructing the
13606 reference and copy it.
13607
0a1a83cb
RB
136082013-05-07 Richard Biener <rguenther@suse.de>
13609
13610 PR middle-end/57190
13611 * tree-eh.c (sink_clobbers): Properly propagate
13612 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
13613
43303d6f
JJ
136142013-05-07 Jakub Jelinek <jakub@redhat.com>
13615
ba7e83f8
JJ
13616 PR tree-optimization/57149
13617 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
13618 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
13619 collect_phi_def_edges, execute_late_warn_uninitialized): Use
13620 uninit_undefined_value_p instead of ssa_undefined_value_p.
13621
43303d6f
JJ
13622 PR debug/57184
13623 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
13624 for modifier == EXPAND_INITIALIZER.
13625
14523c25
AB
136262013-05-07 Anton Blanchard <anton@samba.org>
13627
13628 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
13629 for powerpc64 little endian.
13630 * configure: Regenerate.
13631
cb7c8be9
GS
136322013-05-06 Graham Stott <grahams@btinternet.com>
13633
13634 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
13635 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
13636 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
13637 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
13638
136392013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
13640
13641 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
13642 codes which allow non-lvalues.
13643
9a0ee7b0
MG
136442013-05-06 Marc Glisse <marc.glisse@inria.fr>
13645
13646 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
13647 components are all 1s.
13648 (integer_minus_onep): New function.
13649 * tree.h (integer_minus_onep): Declare it.
13650 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
13651 integer_minus_onep instead of integer_all_onesp.
13652
f2c17ea9
OE
136532013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
13654
13655 PR target/52933
13656 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
13657 variations of these patterns.
13658
f75e6a51
UB
136592013-05-06 Uros Bizjak <ubizjak@gmail.com>
13660
13661 * config/i386/i386.md (isa): Add x64_sse4 member.
13662 (enabled): Handle x64_sse4.
13663 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
13664 instruction for 64bit SSE4_1 targets. Update insn attributes.
13665 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
13666 instruction for SSE4_1 targets. Update insn attributes.
13667 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
13668 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
13669 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
13670 const_1 selector.
13671 (*vec_extractv4si): Rename from *sse4_1_pextrd.
13672 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
13673 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
13674
a986d468
OE
136752013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
13676
13677 PR target/57108
13678 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
13679
382522cb
MK
136802013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
13681
13682 * final.c (do_assembler_dialects): Don't handle curly braces and
13683 vertical bar escaped by % as dialect delimiters.
13684 (output_asm_insn): Print curly braces and vertical bar if escaped
13685 by % and ASSEMBLER_DIALECT defined.
13686 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
13687 * doc/tm.texi: Regenerated.
13688
fb0d5c60
SB
136892013-05-06 Steven Bosscher <steven@gcc.gnu.org>
13690
fb0d5c60
SB
13691 * config/mips/mips.c: Include tree-pass.h.
13692 (mips_reorg): Split in pre- and post-dbr_schedule parts.
13693 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
13694 (pass_mips_machine_reorg2): New machine specific pass.
13695 (insert_pass_mips_machine_reorg2): New pass plugin definition.
13696 (mips_option_override): Register the new pass.
13697 * rtl.h (cleanup_barriers): Remove prototype.
13698 (dbr_schedule): Likewise.
13699 * jump.c (cleanup_barriers): Make static.
13700 * reorg.c (dbr_schedule): Likewise.
13701
aa06a978
RB
137022013-05-06 Richard Biener <rguenther@suse.de>
13703
13704 PR tree-optimization/57185
13705 * tree-parloops.c (add_field_for_reduction): Handle anonymous
13706 SSA names properly.
13707
0b953bec
UB
137082013-05-06 Uros Bizjak <ubizjak@gmail.com>
13709
13710 PR target/57106
13711 * config/i386/i386.c (add_parameter_dependencies): Add dependence
13712 between "first_arg" and "insn", not "last" and "insn".
13713
28708525
WS
137142013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13715
13716 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
13717 (find_candidates_in_block): Re-enable slsr_process_phi.
13718 (create_phi_basis): Fix double counting of candidate adjustment.
13719
0107dca2
RB
137202013-05-06 Richard Biener <rguenther@suse.de>
13721
13722 PR middle-end/57147
13723 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
13724 the edge is also fallthru, preserve it and just clear the
13725 abnormal flag.
13726 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
13727 also complex, preserve that and just clear the fallthru flag.
13728 * tree-inline.c (update_ssa_across_abnormal_edges): Also
13729 update virtual operands.
13730
470d4d13
AM
137312013-05-06 Alan Modra <amodra@gmail.com>
13732
13733 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
13734 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
13735 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
13736 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
13737 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
13738 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
13739
8f1dbf8d
AM
137402013-05-06 Alan Modra <amodra@gmail.com>
13741
13742 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
13743 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
13744 (DEFAULT_ASM_ENDIAN): Define.
13745 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
13746 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
13747 Update -K PIC clause from sysv4.h.
13748 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
13749 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
13750
54890767
AM
137512013-05-06 Alan Modra <amodra@gmail.com>
13752
13753 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
13754 twice for little-endian.
13755 (ashrdi3_no_power, ashrdi3): Support little-endian.
13756
2353515d
OE
137572013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
13758
13759 PR target/55303
13760 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
13761 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
13762 related expanders.
13763 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
13764 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
13765 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
13766 New predicates.
13767
33e67557
SB
137682013-05-05 Steven Bosscher <steven@gcc.gnu.org>
13769 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13770
13771 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
13772 * config/pa/pa.opt: Make mbig-switch a no-op.
13773 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
13774 (CASE_VECTOR_MODE): Always return SImode.
13775 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
13776 for the !TARGET_BIG_SWITCH case.
13777 * config/pa/pa-linux.h: Likewise.
13778 * config/pa/pa-openbsd.h: Likewise.
13779 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
13780 * config/pa/pa.md (short_jump): Remove define_insn.
13781 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
13782 (casesi0): Remove define_insn.
13783 (type): Remove btable_branch.
13784 (pa_combine_type): Likewise.
13785 (in_nullified_branch_delay): Likewise.
13786 (in_call_delay): Likewise.
13787 (define_delay): Likewise.
13788 (define_insn_reservation "Z3"): Likewise.
13789 (define_insn_reservation "Z4"): Likewise.
13790 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
13791 (pa_adjust_insn_length): Remove adjustment for btable branches.
13792 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
13793 and mno-big-switch
13794
3095685e
UB
137952013-05-05 Uros Bizjak <ubizjak@gmail.com>
13796
13797 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
13798 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
13799 Add m->r,x alternatives.
13800 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
13801 splitters using SWI48x mode iterator.
13802 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
13803 TARGET_64BIT. Add m->x alternative.
13804 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
13805 Add o->x alternative. Enable for TARGET_SSE.
13806 (sse_storeq): Remove expander.
13807 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
13808 with memory input operand.
13809 (*vec_extractv2di_1 splitter): New.
13810 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
13811 * config/i386/i386.md (ssevecmodelower): New mode attribute.
13812
4b36ae28
SB
138132013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
13814
13815 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
13816 (INT_LOWPART): Delete.
13817 (extract_MB): Adjust.
13818 (extract_ME): Adjust.
13819 (print_operand): Adjust.
13820
da226db2
SB
138212013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
13822
13823 * config/rs6000/predicates.md (reg_or_add_cint_operand,
13824 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
13825 (reg_or_logical_cint_operand, easy_fp_constant,
13826 logical_const_operand): Delete "CONST_DOUBLE" case.
13827 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
13828 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 13829 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
13830 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
13831 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
13832 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
13833 test.
13834 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
13835 CONST_DOUBLE DImode/VOIDmode case.
13836 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
13837 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
13838 CONST_DOUBLE VOIDmode case.
13839 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
13840 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
13841 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
13842 Delete CONST_DOUBLE case.
13843 (splitters for mov FMOVE64 const_double): Delete
13844 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
13845 "HOST_BITS_PER_WIDE_INT >= 64" test.
13846 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
13847 case.
13848 (mov DI const_double): Delete.
13849
40de22d6
JJ
138502013-05-04 Jakub Jelinek <jakub@redhat.com>
13851
13852 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
13853 on op shows all bits zero in mode of a lowpart subreg, return zero.
13854
5ec6aff2
MM
138552013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
13856
13857 PR target/57150
13858 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
13859 to save TFmode registers and DImode to save TImode registers for
13860 caller save operations.
13861 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
13862 mark being partially clobbered since they only use the first
13863 double word.
13864
13865 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
13866 and TDmode only use the upper 64-bits of each VSX register.
13867
2cefad90
BS
138682013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13869
13870 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
13871 (find_candidates_in_block): Disable slsr_process_phi.
13872
d6d7eee1
GW
138732013-05-03 Guozhi Wei <carrot@google.com>
13874
13875 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
13876 constructor to ...
13877 (build_init_ctor): ... here.
d6d7eee1 13878
9b92d12b
BS
138792013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13880
13881 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
13882 (slsr_cand_d): Redefine def_phi.
13883 (stride_status, phi_adjust_status, count_phis_status): New enums.
13884 (find_phi_def): New.
13885 (find_basis_for_base_expr): New.
13886 (find_basis_for_candidate): Handle hidden bases.
13887 (alloc_cand_and_find_basis): Handle phi candidates.
13888 (slsr_process_phi): New.
13889 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
13890 (create_mul_imm_cand): Likewise.
13891 (create_add_ssa_cand): Exclude phi base candidates.
13892 (create_add_imm_cand): Likewise.
13893 (slsr_process_cast): Likewise.
13894 (slsr_process_copy): Likewise.
13895 (find_candidates_in_block): Handle phi candidates.
13896 (dump_candidate): Likewise.
13897 (unconditional_cands): Delete.
13898 (unconditional_cands_with_known_stride_p): Delete.
13899 (phi_dependent_cand_p): New.
13900 (cand_increment): Handle phi-dependent candidates.
13901 (replace_dependent): Delete.
13902 (replace_mult_candidate): New.
13903 (replace_unconditional_candidate): New.
13904 (incr_vec_index): Move to avoid forward reference.
13905 (create_add_on_incoming_edge): New.
13906 (create_phi_basis): New.
13907 (replace_dependents): Delete.
13908 (replace_conditional_candidate): New.
13909 (phi_add_costs): New.
13910 (replace_uncond_cands_and_profitable_phis): New.
13911 (record_increment): Handle phi adjustments.
13912 (record_phi_increments): New.
13913 (record_increments): Handle phi adjustments.
13914 (phi_incr_cost): New.
13915 (lowest_cost_path): Handle phis.
13916 (total_savings): Likewise.
13917 (analyze_increments): Likewise.
13918 (ncd_with_phi): New.
13919 (ncd_of_cand_and_phis): New.
13920 (nearest_common_dominator_for_cands): Handle phi increments.
13921 (all_phi_incrs_profitable): New.
13922 (replace_profitable_candidates): Handle phi-dependent candidates.
13923 (analyze_candidates_and_replace): Likewise.
13924
68f073d4
TJ
139252013-05-03 Teresa Johnson <tejohnson@google.com>
13926
13927 PR bootstrap/57154
13928 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
13929 do not exceed REG_BR_PROB_BASE.
13930
a4ee7cb9
JL
139312013-05-03 Jeff Law <law@redhat.com>
13932
ade67f70 13933 PR tree-optimization/57144
a4ee7cb9
JL
13934 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
13935 operand of the condition will bit into the new type when eliminating
13936 a cast feeding a condition.
13937
47954c4e
JJ
139382013-05-03 Jakub Jelinek <jakub@redhat.com>
13939
13940 PR rtl-optimization/57130
3095685e
UB
13941 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
13942 of COMPARE as in_code to the recursive call if needed.
47954c4e 13943
3c21604f
UB
139442013-05-03 Uros Bizjak <ubizjak@gmail.com>
13945
13946 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
13947 (enabled): Handle new members.
13948 * config/i386/sse.md (*vec_concatv2si): Merge from
13949 *vec_concatv2si_sse2 and vec_concatv2si_sse.
13950 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
13951
12211b99 139522013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
13953
13954 PR tree-optimization/57027
13955 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
13956 for fnms opportunity, check we got the prerequisite kind
13957 of tree / gimple before using accessor functions.
13958
07bfc9ec
RB
139592013-05-03 Richard Biener <rguenther@suse.de>
13960
13961 * double-int.h (lshift): New overload without precision
13962 and arith argument.
13963 (operator *=, operator +=, operator -=): Move ...
13964 * double-int.c (operator *=, operator +=, operator -=): ... here
13965 and implement more efficiently.
13966 (mul_double_with_sign): Remove.
13967 (lshift_double): Adjust to take unsinged shift argument, push
13968 dispatching code to callers.
13969 (mul_double_wide_with_sign): Add early out for callers that
13970 are not interested in high parts or overflow.
13971 (lshift): New function.
13972 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
13973 dispatch code here.
13974 (lrotate, rrotate): Use logical shifts.
13975 * expr.c (get_inner_reference): Use lshift.
13976 * fixed-value.c (do_fixed_divide): Likewise.
13977 * tree-dfa.c (get_ref_base_and_extent): Likewise.
13978 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
13979 (indirect_refs_may_alias_p): Likewise.
13980 (stmt_kills_ref_p_1): Likewise.
13981
7769bb64
VP
139822013-05-03 Vidya Praveen <vidyapraveen@arm.com>
13983
13984 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
13985
1d0c8e5c
VP
139862013-05-03 Vidya Praveen <vidyapraveen@arm.com>
13987
13988 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
13989 scalar form of FABD instruction.
13990
f15feaf9
VM
139912013-05-02 Vladimir Makarov <vmakarov@redhat.com>
13992
13993 * lra-constraints.c (process_alt_operands): Add checking alt
13994 number to choose the best alternative.
13995
d90e76d4
RB
139962013-05-02 Richard Biener <rguenther@suse.de>
13997
13998 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
13999 bitmap and its handling.
14000 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
14001
9f8e7a96
RB
140022013-05-02 Richard Biener <rguenther@suse.de>
14003
14004 PR middle-end/57140
14005 * tree-inline.c (copy_loops): Properly handle removed loops.
14006 (copy_cfg_body): Mark destination loops for fixup if source
14007 loops needed fixup.
14008
f3a81b39
GY
140092013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
14010
14011 PR target/56732
14012 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
14013 generating simple_return for naked functions.
14014
7b920a9a
MJ
140152013-05-02 Martin Jambor <mjambor@suse.cz>
14016
14017 PR middle-end/56988
14018 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
14019 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
14020 flags match.
14021 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
14022 ipa_agg_replacement_value structures.
14023 (known_aggs_to_agg_replacement_list): Likewise.
14024 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
14025 (read_agg_replacement_chain): Likewise.
14026 (ipcp_transform_function): Also check that by_ref flags match.
14027
2c41c19d
RB
140282013-05-02 Richard Biener <rguenther@suse.de>
14029
14030 * graphds.h (struct graph): Add obstack member.
14031 * graphds.c (new_graph): Initialize obstack and allocate
14032 vertices from it.
14033 (add_edge): Allocate edge from the obstack.
3c21604f 14034 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 14035
8b47039c
TJ
140362013-05-02 Teresa Johnson <tejohnson@google.com>
14037
14038 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
14039 divides.
14040 * cfg.c (update_bb_profile_for_threading): Ditto.
14041 * tree-inline.c (copy_bb): Ditto.
14042 (copy_edges_for_bb): Ditto.
14043 (initialize_cfun): Ditto.
14044 (copy_cfg_body): Ditto.
14045 (expand_call_inline): Ditto.
14046 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
14047 (estimate_node_size_and_time): Ditto.
14048 (inline_merge_summary): Ditto.
14049 * cgraphclones.c (cgraph_clone_edge): Ditto.
14050 (cgraph_clone_node): Ditto.
14051 * sched-rgn.c (compute_dom_prob_ps): Ditto.
14052 (compute_trg_info): Ditto.
14053
da65928c
IB
140542013-05-02 Ian Bolton <ian.bolton@arm.com>
14055
14056 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
14057 S reg when fp attribute set.
14058 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
14059
add3c965
IB
140602013-05-02 Ian Bolton <ian.bolton@arm.com>
14061
14062 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
14063 New pattern.
14064 (*and_one_cmplsi3_compare0_uxtw): Likewise.
14065 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
14066 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
14067
fdd43ac4
RB
140682013-05-02 Richard Biener <rguenther@suse.de>
14069
14070 * tree-scalar-evolution.c (scev_info_hasher): Remove.
14071 (struct instantiate_cache_entry): New type.
14072 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
14073 (struct instantiate_cache_type): New type.
14074 (set_instantiated_value, get_instantiated_value): Remove.
14075 (get_instantiated_value_entry): New function.
14076 (instantiate_scev_name): Use the new cache and adjust.
14077 (instantiate_scev_poly): Adjust.
14078 (instantiate_scev_binary): Likewise.
14079 (instantiate_array_ref): Likewise.
14080 (instantiate_scev_convert): Likewise.
14081 (instantiate_scev_not): Likewise.
14082 (instantiate_scev_3): Likewise.
14083 (instantiate_scev_2): Likewise.
14084 (instantiate_scev_r): Likewise.
14085 (instantiate_scev): Likewise.
14086 (resolve_mixers): Likewise.
14087
36ff9dfb
VM
140882013-05-01 Vladimir Makarov <vmakarov@redhat.com>
14089
14090 PR target/57091
14091 * lra-constraints.c (best_small_class_operands_num): Remove.
14092 (process_alt_operands): Remove small_class_operands_num. Take
14093 small classes operands into losers and only if the operand is not
14094 matched. Modify debugging output.
14095 (curr_insn_transform): Remove best_small_class_operands_num.
14096 Print insn name.
14097
36054fab
JG
140982013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14099
14100 * config/aarch64/aarch64-builtins.c
14101 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
14102 * config/aarch64/aarch64-simd-builtins.def
14103 (reduc_splus_): Add new modes.
14104 (reduc_uplus_): New.
14105 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
14106 (reduc_uplus_v4sf): Likewise.
14107 (reduc_splus_v4sf): Likewise.
14108 (aarch64_addv<mode>): Likewise.
14109 (reduc_uplus_<mode>): Likewise.
14110 (reduc_splus_<mode>): Likewise.
14111 (aarch64_addvv2di): Likewise.
14112 (reduc_uplus_v2di): Likewise.
14113 (reduc_splus_v2di): Likewise.
14114 (aarch64_addvv2si): Likewise.
14115 (reduc_uplus_v2si): Likewise.
14116 (reduc_splus_v2si): Likewise.
14117 (reduc_<sur>plus_<mode>): New.
14118 (reduc_<sur>plus_v2di): Likewise.
14119 (reduc_<sur>plus_v2si): Likewise.
14120 (reduc_<sur>plus_v4sf): Likewise.
14121 (aarch64_addpv4sf): Likewise.
14122 * config/aarch64/arm_neon.h
14123 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
14124 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
14125 add UNSPEC_SADDV, UNSPEC_UADDV.
14126 (SUADDV): New.
14127 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
14128
6dce23a8
JG
141292013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14130
14131 * config/aarch64/arm_neon.h
14132 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
14133
1598945b
JG
141342013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14135
14136 * config/aarch64/aarch64-builtins
14137 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
14138
998eaf97
JG
141392013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14140
14141 * config/aarch64/aarch64-simd-builtins.def
14142 (reduc_smax_): New.
14143 (reduc_smin_): Likewise.
14144 (reduc_umax_): Likewise.
14145 (reduc_umin_): Likewise.
14146 (reduc_smax_nan_): Likewise.
14147 (reduc_smin_nan_): Likewise.
14148 (fmax): Remove.
14149 (fmin): Likewise.
14150 (smax): Update for V2SF, V4SF and V2DF modes.
14151 (smin): Likewise.
14152 (smax_nan): New.
14153 (smin_nan): Likewise.
14154 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
14155 (<su><maxmin><mode>3): ...This, refactor.
14156 (s<maxmin><mode>3): New.
14157 (<maxmin_uns><mode>3): Likewise.
14158 (reduc_<maxmin_uns>_<mode>): Refactor.
14159 (reduc_<maxmin_uns>_v4sf): Likewise.
14160 (reduc_<maxmin_uns>_v2si): Likewise.
14161 (aarch64_<fmaxmin><mode>: Remove.
14162 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
14163 new builtin names.
14164 (vmin<q>_f<32,64>): Likewise.
14165 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
14166 (FMAXMIN): New.
14167 (su): Add mappings for smax, smin, umax, umin.
14168 (maxmin): New.
14169 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
14170 (FMAXMIN): Rename as...
14171 (FMAXMIN_UNS): ...This.
14172 (maxminv): Remove.
14173 (fmaxminv): Likewise.
14174 (fmaxmin): Likewise.
14175 (maxmin_uns): New.
14176 (maxmin_uns_op): Likewise.
14177
bd11644e
JG
141782013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14179
14180 * config/aarch64/arm_neon.h
14181 (vac<ge, gt><sd>_f<32, 64>): Rename to...
14182 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
14183 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
14184
75dd5ace
JG
141852013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14186
14187 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
14188 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
14189
7c19979f
JG
141902013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14191
14192 * config/aarch64/aarch64-simd.md
14193 (vcond<mode>_internal): Handle special cases for constant masks.
14194 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
14195 (vcondu<mode><mode>): Likewise.
14196 (vcond<v_cmp_result><mode>): New.
14197
bb60efd9
JG
141982013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14199
14200 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
14201 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
14202 * config/aarch64/aarch64-simd-builtins.def
14203 (cmeq): Update to BUILTIN_VALLDI.
14204 (cmgt): Likewise.
14205 (cmge): Likewise.
14206 (cmle): Likewise.
14207 (cmlt): Likewise.
14208 * config/aarch64/arm_neon.h
14209 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
14210 to builtins or C as appropriate.
14211
889b9412
JG
142122013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
14213
14214 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
14215 (cmgeu): ...This.
14216 (cmhi): Rename to...
14217 (cmgtu): ...This.
14218 * config/aarch64/aarch64-simd.md
14219 (simd_mode): Add SF.
14220 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
14221 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
14222 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
14223 (cstore<mode>_neg): ...This.
14224 * config/aarch64/iterators.md
14225 (VALLF): new.
14226 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
14227 (COMPARISONS): New.
14228 (UCOMPARISONS): Likewise.
14229 (optab): Add missing comparisons.
14230 (n_optab): New.
14231 (cmp_1): Likewise.
14232 (cmp_2): Likewise.
14233 (CMP): Likewise.
14234 (cmp): Remove.
14235 (VCMP_S): Likewise.
14236 (VCMP_U): Likewise.
14237 (V_cmp_result): Add DF, SF modes.
14238 (v_cmp_result): Likewise.
14239 (v): Likewise.
14240 (vmtype): Likewise.
14241 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
14242
0a7dbb76
GY
142432013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
14244
14245 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
14246 define_insn to define_insn_and_split.
14247 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
14248 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
14249 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
14250 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
14251 (thumb2_negscc): Likewise.
14252
fb614ca6
GY
142532013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
14254
14255 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
14256
9e64a0bf
GY
142572013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
14258
14259 * config/arm/thumb2.md: Remove trailing whitespaces.
14260
d6b28156
RS
142612013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
14262
14263 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
14264 Use gen_int_mode rather than GEN_INT.
14265
f91674c3
L
142662013-04-30 H.J. Lu <hongjiu.lu@intel.com>
14267
b0dec607 14268 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
14269 debug_gimple_stmt.
14270
3551257c
RB
142712013-04-30 Richard Biener <rguenther@suse.de>
14272
14273 PR middle-end/57122
3c21604f 14274 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 14275
4c1aff1c
RB
142762013-04-30 Richard Biener <rguenther@suse.de>
14277
14278 PR middle-end/57107
14279 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
14280
54b8379a
AB
142812013-04-30 Andrey Belevantsev <abel@ispras.ru>
14282
14283 PR rtl-optimization/56957
14284 PR rtl-optimization/57105
54b8379a
AB
14285 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
14286 variable. Use just INSN_UID for determining whether an insn
14287 should be only disconnected from the insn stream.
14288 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
14289
abc27962
JJ
142902013-04-30 Jakub Jelinek <jakub@redhat.com>
14291
14292 PR tree-optimization/57104
14293 * tsan.c (instrument_expr): Don't instrument accesses to
14294 DECL_HARD_REGISTER VAR_DECLs.
14295
0fc822d0
RB
142962013-04-30 Richard Biener <rguenther@suse.de>
14297
14298 * function.h (loops_for_fn): New inline function.
14299 (set_loops_for_fn): Likewise.
14300 * cfgloop.h (place_new_loop): Add struct function parameter.
14301 (get_loop): Likewise.
14302 (get_loops): Likewise.
14303 (number_of_loops): Likewise.
14304 (fel_next): Adjust.
14305 (fel_init): Likewise.
14306 * cfg.c (get_loop_copy): Adjust.
14307 * cfgloop.c (flow_loops_dump): Likewise.
14308 (record_loop_exits): Likewise.
14309 (verify_loop_structure): Likewise.
14310 * cfgloopanal.c (mark_irreducible_loops): Likewise.
14311 (estimate_reg_pressure_cost): Likewise.
14312 (mark_loop_exit_edges): Likewise.
14313 * cfgloopmanip.c (place_new_loop): Likewise.
14314 (add_loop): Likewise.
14315 (duplicate_loop): Likewise.
14316 * graph.c (draw_cfg_nodes): Likewise.
14317 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
14318 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
14319 (extract_affine_chrec): Likewise.
14320 (build_scop_iteration_domain): Likewise.
14321 * graphite.c (graphite_initialize): Likewise.
14322 * ira-build.c (create_loop_tree_nodes): Likewise.
14323 (more_one_region_p): Likewise.
14324 (rebuild_regno_allocno_maps): Likewise.
14325 (mark_loops_for_removal): Likewise.
14326 (mark_all_loops_for_removal): Likewise.
14327 (remove_unnecessary_regions): Likewise.
14328 (ira_build): Likewise.
14329 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
14330 * loop-init.c (fix_loop_structure): Likewise.
14331 (gate_rtl_move_loop_invariants): Likewise.
14332 (gate_rtl_unswitch): Likewise.
14333 (gate_rtl_unroll_and_peel_loops): Likewise.
14334 (rtl_doloop): Likewise.
14335 * lto-streamer-in.c (input_cfg): Likewise.
14336 * lto-streamer-out.c (output_cfg): Likewise.
14337 * modulo-sched.c (sms_schedule): Likewise.
14338 * predict.c (tree_estimate_probability): Likewise.
14339 (tree_estimate_probability_driver): Likewise.
14340 (estimate_loops): Likewise.
14341 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
14342 (move_sese_region_to_fn): Likewise.
14343 (debug_loop_num): Likewise.
14344 * tree-chrec.c (chrec_evaluate): Likewise.
14345 (hide_evolution_in_other_loops_than_loop): Likewise.
14346 (chrec_component_in_loop_num): Likewise.
14347 (reset_evolution_in_loop): Likewise.
14348 (evolution_function_is_invariant_rec_p): Likewise.
14349 * tree-if-conv.c (main_tree_if_conversion): Likewise.
14350 * tree-inline.c (copy_loops): Likewise.
14351 (copy_cfg_body): Likewise.
14352 (tree_function_versioning): Likewise.
14353 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
14354 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
14355 Likewise.
14356 (add_to_evolution_1): Likewise.
14357 (scev_const_prop): Likewise.
14358 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
14359 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
14360 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
14361 (tree_ssa_lim_initialize): Likewise.
14362 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
14363 (verify_loop_closed_ssa): Likewise.
14364 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
14365 (tree_ssa_loop_im): Likewise.
14366 (tree_ssa_loop_unswitch): Likewise.
14367 (tree_vectorize): Likewise.
14368 (check_data_deps): Likewise.
14369 (tree_ssa_loop_ivcanon): Likewise.
14370 (tree_ssa_loop_bounds): Likewise.
14371 (tree_complete_unroll): Likewise.
14372 (tree_complete_unroll_inner): Likewise.
14373 (tree_parallelize_loops): Likewise.
14374 (tree_ssa_loop_prefetch): Likewise.
14375 (tree_ssa_loop_ivopts): Likewise.
14376 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
14377 * tree-vectorizer.c (vectorize_loops): Likewise.
14378
37953bd3
MF
143792013-04-29 Mike Frysinger <vapier@gentoo.org>
14380
14381 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
14382 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
14383 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
14384 with EABI_LINK_SPEC.
14385
f9ed28db
UB
143862013-04-29 Uros Bizjak <ubizjak@gmail.com>
14387
14388 PR target/44578
14389 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
14390 alternative.
14391
deca73f5
VM
143922013-04-29 Vladimir Makarov <vmakarov@redhat.com>
14393
14394 PR target/57097
37953bd3 14395 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
14396 using memory for pseudos. Print cost dump for alternatives.
14397 Modify cost values for conflicts with early clobbers.
14398 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
14399
fdca7d03
UB
144002013-04-29 Uros Bizjak <ubizjak@gmail.com>
14401
14402 PR target/57098
14403 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
14404
0b064172
IB
144052013-04-29 Ian Bolton <ian.bolton@arm.com>
14406
14407 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
14408 from/to S register.
14409 (movdi_aarch64): Support LDR/STR from/to D register.
14410
473cec55
IB
144112013-04-29 Ian Bolton <ian.bolton@arm.com>
14412
14413 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
14414 or higher by default.
14415
a6f30e66
RB
144162013-04-29 Richard Biener <rguenther@suse.de>
14417
14418 PR middle-end/57075
14419 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
14420 even if not adding abnormal edges for calls that can make
14421 abnormal gotos.
14422
0c2b2040
RB
144232013-04-29 Richard Biener <rguenther@suse.de>
14424
14425 PR middle-end/57103
14426 * tree-cfg.c (move_stmt_op): Fix condition under which to update
14427 TREE_BLOCK.
14428 (move_stmt_r): Remove redundant checking.
14429
f41f80f9
TJ
144302013-04-29 Teresa Johnson <tejohnson@google.com>
14431
14432 PR bootstrap/57077
14433 * basic-block.h (apply_scale): New function.
14434 (apply_probability): Use apply_scale.
14435 * gimple-streamer-in.c (input_bb): Ditto.
14436 * lto-streamer-in.c (input_cfg): Ditto.
14437 * lto-cgraph.c (merge_profile_summaries): Ditto.
14438 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 14439 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
14440 (copy_edges_for_bb): Ditto.
14441 (copy_cfg_body): Ditto.
14442
315bbd2e
TV
144432013-04-29 Tom de Vries <tom@codesourcery.com>
14444
14445 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
14446 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
14447 (tail_merge_optimize): Handle current_loops == NULL.
14448
ebbd90d8
JL
144492013-04-26 Jeff Law <law@redhat.com>
14450
14451 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
14452 (simplify_cond_using_ranges): Generalize code to simplify
14453 COND_EXPRs where one argument is a constant and the other
14454 is an SSA_NAME created by an integral type conversion.
14455
8b9b57eb
KT
144562013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14457
14458 * config/arm/arm.md (store_minmaxsi): Use only when
14459 optimize_insn_for_size_p.
14460
9498e5dc
CB
144612013-04-29 Christian Bruel <christian.bruel@st.com>
14462
14463 PR target/57108
14464 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
14465
6093bc06
RB
144662013-04-29 Richard Biener <rguenther@suse.de>
14467
14468 PR middle-end/57089
fdca7d03
UB
14469 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
14470 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
14471 (expand_omp_for_generic): Properly add loops.
14472 (expand_omp_for_static_nochunk): Likewise.
14473 (expand_omp_for_static_chunk): Likewise.
14474 (expand_omp_for): For the degenerate case fixup loops.
14475 (expand_omp_sections): Fix default bb placement in loops.
14476 (expand_omp_atomic_pipeline): Properly add loops.
14477
84aacbfd
KT
144782013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14479
14480 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
14481
8dee4479
TV
144822013-04-29 Tom de Vries <tom@codesourcery.com>
14483
14484 * tree-ssa-tail-merge.c: Update header comment.
14485
47934dc4
JG
144862013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14487
14488 * config/aarch64/arm_neon.h
14489 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
14490 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
14491 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
14492 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
14493 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
14494 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
14495 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
14496 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
14497
384be29f
JG
144982013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14499
14500 * config/aarch64/aarch64-simd.md
14501 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
14502 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
14503 fix_trunc, fixuns_trunc.
14504 (ftrunc<VDQF:mode>2): New.
14505 * config/aarch64/iterators.md (optab): Add fix, fixuns.
14506 (fix_trunc_optab): New.
14507
0386b123
JG
145082013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14509
14510 * config/aarch64/aarch64-builtins.c
14511 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
14512 iceilf, lround, iroundf.
14513
00fcb892
UB
145142013-04-29 Uros Bizjak <ubizjak@gmail.com>
14515
14516 PR target/54349
14517 * config/i386/i386.h (enum ix86_tune_indices)
14518 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
14519 New, split from X86_TUNE_INTER_UNIT_MOVES.
14520 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
14521 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
14522 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
14523 (TARGET_INTER_UNIT_MOVES): Remove.
14524 * config/i386/i386.c (initial_ix86_tune_features): Update.
14525 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
14526 (ix86_expand_convert_uns_didf_sse): Use
14527 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
14528 (ix86_expand_vector_init_one_nonzero): Ditto.
14529 (ix86_expand_vector_init_interleave): Ditto.
14530 (inline_secondary_memory_needed): Return true for moves from SSE class
14531 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
14532 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
14533 * config/i386/constraints.md (Yi, Ym): Depend on
14534 TARGET_INTER_UNIT_MOVES_TO_VEC.
14535 (Yj, Yn): New constraints.
14536 * config/i386/i386.md (*movdi_internal): Change constraints of
14537 operand 1 from Yi to Yj and from Ym to Yn.
14538 (*movsi_internal): Ditto.
14539 (*movdf_internal): Ditto.
14540 (*movsf_internal): Ditto.
14541 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
14542 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
14543 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
14544 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
14545 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
14546 * config/i386/sse.md (movdi_to_sse): Ditto.
14547 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
14548 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
14549 TARGET_INTER_UNIT_MOVES.
14550 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
14551 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
14552 instead of TARGET_INTER_UNIT_MOVES.
14553 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
14554 operand 1 from Yi to Yj and from Ym to Yn.
14555
4c871069
JG
145562013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14557
14558 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
14559 (float_truncate_hi_): Likewise.
14560 (float_extend_lo_): Likewise.
14561 (float_truncate_lo_): Likewise.
14562 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
14563 (aarch64_float_extend_lo_v2df): Likewise.
14564 (vec_unpacks_hi_v4sf): Likewise.
14565 (aarch64_float_truncate_lo_v2sf): Likewise.
14566 (aarch64_float_truncate_hi_v4sf): Likewise.
14567 (vec_pack_trunc_v2df): Likewise.
14568 (vec_pack_trunc_df): Likewise.
14569
1709ff9b
JG
145702013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14571
14572 * config/aarch64/aarch64-builtins.c
14573 (aarch64_fold_builtin): Fold float conversions.
14574 * config/aarch64/aarch64-simd-builtins.def
14575 (floatv2si, floatv4si, floatv2di): New.
14576 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
14577 * config/aarch64/aarch64-simd.md
14578 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
14579 * config/aarch64/iterators.md (FLOATUORS): New.
14580 (optab): Add float, floatuns.
14581 (su_optab): Likewise.
14582
ce966824
JG
145832013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14584
14585 * config/aarch64/aarch64-builtins.c
14586 (aarch64_builtin_vectorized_function): Use new names for
14587 fcvt builtins.
14588 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
14589 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
14590 (fcvtzu): Split as...
14591 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
14592 (fcvtas): Split as...
14593 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
14594 (fcvtau): Split as...
14595 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
14596 (fcvtps): Split as...
14597 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
14598 (fcvtpu): Split as...
14599 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
14600 (fcvtms): Split as...
14601 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
14602 (fcvtmu): Split as...
14603 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
14604 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
14605 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
14606 (lfrintnusf, lfrintnudf): Likewise.
14607 * config/aarch64/aarch64-simd.md
14608 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
14609 define_insn.
14610 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
14611 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
14612 (fcvt_pattern): Likewise.
14613
b9de24fe
JG
146142013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14615
14616 * config/aarch64/aarch64-simd.md
14617 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
14618 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
14619
77a205be
JG
146202013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14621
14622 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
14623 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
14624 (vrnd<a,m,n,p>_f32): Implement using builtins.
14625 (vrnd<i,x><q>_f<32, 64>): New.
14626
0659ce6f
JG
146272013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14628
14629 * config/aarch64/aarch64-builtins.c
14630 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
14631 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
14632 (frintz): Rename to...
14633 (btrunc): ...this.
14634 (frintp): Rename to...
14635 (ceil): ...this.
14636 (frintm): Rename to...
14637 (floor): ...this.
14638 (frinti): Rename to...
14639 (nearbyint): ...this.
14640 (frintx): Rename to...
14641 (rint): ...this.
14642 (frinta): Rename to...
14643 (round): ...this.
14644 * config/aarch64/aarch64-simd.md
14645 (aarch64_frint<frint_suffix><mode>): Delete.
14646 (<frint_pattern><mode>2): Convert to insn.
14647 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
14648 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
14649 (frint_pattern): Likewise.
14650 (frint_suffix): Likewise.
14651
ea78906a
RB
146522013-04-29 Richard Biener <rguenther@suse.de>
14653
14654 PR tree-optimization/57081
14655 * loop-init.c: Include tree-flow.h.
14656 (loop_optimizer_finalize): Free number of iteration estimates.
14657 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
14658
baee1763
JJ
146592013-04-29 Jakub Jelinek <jakub@redhat.com>
14660
94dc5332
JJ
14661 PR tree-optimization/57083
14662 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
14663 non-singleton shift count range, zero extend low_bound for uns case.
14664
baee1763
JJ
14665 * config/i386/predicates.md (general_vector_operand): New predicate.
14666 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
14667 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
14668 if they aren't nonimmediate operands. If their original values
14669 satisfy const_vector_equal_evenodd_p, don't shift them.
14670 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
14671 predicates. For the SSE4.1 case force operands[{1,2}] into registers
14672 if not nonimmediate_operand.
14673 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
14674 instead of register_operand.
14675 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
14676
a9073727 146772013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
14678
14679 * stor-layout.c (finalize_size_functions): Allocate a structure and
14680 reset cfun before dumping the functions.
14681
ba8011e6
JJ
146822013-04-27 Jakub Jelinek <jakub@redhat.com>
14683
d6fde69e
JJ
14684 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
14685
ba8011e6
JJ
14686 PR target/56866
14687 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
14688 use xop_pmacsdqh if uns_p.
14689 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
14690 the immediate rotate count.
14691
2c62cbaa
VM
146922013-04-26 Vladimir Makarov <vmakarov@redhat.com>
14693
14694 * rtl.h (struct rtx_def): Add comment for field jump.
14695 (LRA_SUBREG_P): New macro.
14696 * recog.c (register_operand): Check LRA_SUBREG_P.
14697 * lra.c (lra): Add note at the end of RTL code. Align non-empty
14698 stack frame.
14699 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
14700 (lra_final_code_change): Skip subreg change for operators.
14701 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
14702 if there are no operand changes.
14703 * lra-constraints.c (curr_insn_set): New.
14704 (match_reload): Set LRA_SUBREG_P.
14705 (emit_spill_move): Ditto.
14706 (check_and_process_move): Use curr_insn_set. Process only single
14707 set insns. Don't initialize sec_mem_p and change_p.
14708 (simplify_operand_subreg): Use LRA_SUBREG_P.
14709 (reg_in_class_p): New function.
14710 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
14711 of #ifdef. Add code to remove cycling.
14712 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
14713 non-null disp. Reload inner instead of disp when base and index
14714 are null. Try to put lo_sum into register.
14715 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
14716 (check_and_process_move): Move code for move cost check to
14717 simple_move_p. Remove equiv_substitution.
14718 (simple_move_p): New function.
14719 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
14720 curr_insn_set. Call check_and_process_move only for single set
14721 insns. Use the new function. Move call of check_and_process_move
14722 after operand equiv substitution and address process.
14723
e7d764f3
JJ
147242013-04-26 Jakub Jelinek <jakub@redhat.com>
14725
14726 PR go/57045
14727 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
14728 with nonlocal goto receivers or returns twice calls, ignore
14729 unininitialized values from abnormal edges to nl goto receiver
14730 or returns twice call.
14731
41e10689
JJ
147322013-04-26 Jakub Jelinek <jakub@redhat.com>
14733
14734 PR tree-optimization/57051
14735 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
14736 and VEC_RSHIFT_EXPR if shift count is a multiple of element
14737 bitsize.
14738
d7ed20db
RB
147392013-04-26 Richard Biener <rguenther@suse.de>
14740
14741 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
14742 (expand_omp_taskreg): Likewise. Mark loops for fixup.
14743 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
14744 (fixup_loop_arrays_after_move): New function.
14745 (move_sese_region_to_fn): Properly outline the loop tree parts
14746 of the SESE region.
14747
df93505e
UB
147482013-04-26 Uros Bizjak <ubizjak@gmail.com>
14749
14750 * config/i386/i386.md (type, unit): Fix long lines.
14751
dd366ec3
RB
147522013-04-26 Richard Biener <rguenther@suse.de>
14753
14754 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
14755 (lto-streamer-out.o): Likewise.
14756 * cfgloop.c (init_loops_structure): Export, add struct function
14757 argument and adjust.
14758 (flow_loops_find): Adjust.
14759 * cfgloop.h (enum loop_estimation): Add EST_LAST.
14760 (init_loops_structure): Declare.
14761 * lto-streamer-in.c: Include cfgloop.h.
14762 (input_cfg): Input the loop tree.
14763 * lto-streamer-out.c: Include cfgloop.h.
14764 (output_cfg): Output the loop tree.
14765 (output_struct_function_base): Do not drop PROP_loops.
14766
a9e0d843
RB
147672013-03-26 Richard Biener <rguenther@suse.de>
14768
14769 * tree-cfg.c (execute_build_cfg): Build the loop tree.
14770 (pass_build_cfg): Provide PROP_loops.
14771 (move_sese_region_to_fn): Remove loops that are outlined into fn
14772 for now.
14773 * tree-inline.c: Include cfgloop.h.
14774 (initialize_cfun): Do not drop PROP_loops.
14775 (copy_loops): New function.
14776 (copy_cfg_body): Copy loop structure.
14777 (tree_function_versioning): Initialize destination loop tree.
14778 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
14779 (pass_parallelize_loops): Do IL verification.
14780 * loop-init.c (loop_optimizer_init): Fixup loops if required.
14781 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
14782 the CFG make sure we fixup loops as well.
14783 * tree-ssa-tail-merge.c: Include cfgloop.h.
14784 (replace_block_by): When merging loop latches mark loops for fixup.
14785 * lto-streamer-out.c (output_struct_function_base): Drop
14786 PROP_loops for now.
14787 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
14788 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
14789 * ipa-split.c: Include cfgloop.h.
14790 (split_function): Add the new return block to the loop tree root.
14791 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
14792 whether we have removed the forwarder block.
14793 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
14794 * cfgloop.h (place_new_loop): Declare.
14795 * cfgloopmanip.c (place_new_loop): Export.
14796 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
14797 (tree-switch-conversion.o): Likewise.
14798 (tree-complex.o): Likewise.
14799 (tree-inline.o): Likewise.
14800 (tree-ssa-tailmerge.o): Likewise.
14801 (ipa-split.o): Likewise.
14802 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
14803 (tree-ssa-copy.o): Likewise.
14804 * tree-switch-conversion.c: Include cfgloop.h
14805 (process_switch): If we emit a bit-test cascade, schedule loops
14806 for fixup.
14807 * tree-complex.c: Include cfgloop.h.
14808 (expand_complex_div_wide): Properly add new basic-blocks to loops.
14809 * asan.c: Include cfgloop.h.
14810 (create_cond_insert_point): Properly add new basic-blocks to
14811 loops, schedule loop fixup.
14812 * cfgloop.c (verify_loop_structure): Check that looks are not
14813 marked for fixup.
14814 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
14815 to loops.
14816 (expand_omp_for_generic): Likewise.
14817 (expand_omp_sections): Likewise.
14818 (expand_omp_atomic_pipeline): Schedule loops for fixup.
14819 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
14820 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
14821 is initialized, not when loops are present.
14822 * tree-parloops.c (parallelize_loops): Remove checking here.
14823 * passes.c (init_optimization_passes): Schedule a copy-propagation
14824 pass before complete unrolling of inner loops.
14825
e78e8a0b
JJ
148262013-04-26 Jakub Jelinek <jakub@redhat.com>
14827
a2e836b2
JJ
14828 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
14829 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
14830 (colorize_init): Add argument to _WIN32 version.
14831 * toplev.c: Include diagnostic-color.h.
14832 (process_options): Default to -fdiagnostics-color=auto if
14833 GCC_COLORS env var is in the environment.
14834 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
14835 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
14836 env var is in the environment, the default is auto rather than never.
a2e836b2 14837
e78e8a0b
JJ
14838 * diagnostic.h (file_name_as_prefix): Add context argument.
14839 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
14840 the string as locus.
14841 * langhooks.c (lhd_print_error_function): Adjust caller.
14842
013e5ef9
LC
148432013-04-25 Lawrence Crowl <crowl@google.com>
14844
14845 * var-tracking.c (shared_hash_def::htab):
14846 Change type to hash_table. Update dependent calls and types.
14847
4a8fb1a1
LC
148482013-04-25 Lawrence Crowl <crowl@google.com>
14849
14850 * Makefile.in: Update as needed below.
14851
14852 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
14853 Move declaration to after the type's method definitons.
14854
14855 * attribs.c (htab_t scoped_attributes::attribute_hash):
14856 Change type to hash_table. Update dependent calls and types.
14857
14858 * bitmap.c (htab_t bitmap_desc_hash):
14859 Change type to hash_table. Update dependent calls and types.
14860
14861 * cselib.c (htab_t cselib_hash_table):
14862 Change type to hash_table. Update dependent calls and types.
14863
14864 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
14865 (hash_string_slot_node): Move implementation into lto-streamer.h
14866 struct string_slot_hasher.
14867 (eq_string_slot_node): Likewise.
14868
14869 * data-streamer-out.c: Update output_block::string_hash_table
14870 dependent calls and types.
14871
14872 * dwarf2cfi.c (htab_t trace_index):
14873 Change type to hash_table. Update dependent calls and types.
14874
14875 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
14876 Change type to hash_table. Update dependent calls and types.
14877 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
14878 (htab_t optimize_external_refs::map): Likewise.
14879 (htab_t output_comp_unit::extern_map): Likewise.
14880 (htab_t output_comdat_type_unit::extern_map): Likewise.
14881 (htab_t output_macinfo::macinfo_htab): Likewise.
14882 (htab_t optimize_location_lists::htab): Likewise.
14883 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
14884
14885 * except.c (htab_t ehspec_hash_type):
14886 Change type to hash_table. Update dependent calls and types.
14887 (assign_filter_values::ttypes): Likewise.
14888 (assign_filter_values::ehspec): Likewise.
14889 (sjlj_assign_call_site_values::ar_hash): Likewise.
14890 (convert_to_eh_region_ranges::ar_hash): Likewise.
14891
14892 * gcse.c (htab_t pre_ldst_table):
14893 Change type to hash_table. Update dependent calls and types.
14894
14895 * ggc-common.c (htab_t saving_htab):
14896 Change type to hash_table. Update dependent calls and types.
14897 (htab_t loc_hash): Likewise.
14898 (htab_t ptr_hash): Likewise.
14899 (call_count): Rename ggc_call_count.
14900 (call_alloc): Rename ggc_call_alloc.
14901 (loc_descriptor): Rename make_loc_descriptor.
14902 (add_statistics): Rename ggc_add_statistics.
14903
14904 * ggc-common.c (saving_htab):
14905 Change type to hash_table. Update dependent calls and types.
14906
14907 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
14908 (push_gimplify_context): Likewise.
14909 (pop_gimplify_context): Likewise.
14910 (struct gimple_temp_hash_elt): Added.
14911 (struct gimplify_hasher): Likewise.
14912 (struct gimplify_ctx.temp_htab):
14913 Change type to hash_table. Update dependent calls and types.
14914
14915 * gimple-fold.c: Include gimplify-ctx.h.
14916
14917 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
14918 Change type to hash_table. Update dependent calls and types.
14919 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
14920 avoid potential global name collision.
14921
14922 * gimplify.c: Include gimplify-ctx.h.
14923 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
14924 (htab_t gimplify_ctx::temp_htab):
14925 Update dependent calls and types for new type hash_table.
14926 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
14927 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
14928
14929 * gimplify-ctx.h: New.
14930 (struct gimple_temp_hash_elt): Move from gimplify.c.
14931 (class gimplify_hasher): New.
14932 (struct gimplify_ctx): Move from gimple.h.
14933 (htab_t gimplify_ctx::temp_htab):
14934 Change type to hash_table. Update dependent calls and types.
14935
14936 * graphite-clast-to-gimple.c: Include graphite-htab.h.
14937 (htab_t ivs_params::newivs_index):
14938 Change type to hash_table. Update dependent calls and types.
14939 (htab_t ivs_params::params_index): Likewise.
14940 (htab_t print_generated_program::params_index): Likewise.
14941 (htab_t gloog::newivs_index): Likewise.
14942 (htab_t gloog::params_index): Likewise.
14943
14944 * graphite.c: Include graphite-htab.h.
14945 4htab_t graphite_transform_loops::bb_pbb_mapping):
14946 Change type to hash_table. Update dependent calls and types.
14947
14948 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
14949 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
14950 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
14951
14952 * graphite-dependences.c: Include graphite-htab.h.
14953 (loop_is_parallel_p): Change hash table type of parameter.
14954
14955 * graphite-htab.h: New.
14956 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
14957 (extern find_pbb_via_hash): Move from graphite-poly.h.
14958 (extern loop_is_parallel_p): Move from graphite-poly.h.
14959 (extern get_loop_body_pbbs): Move from graphite-poly.h.
14960
14961 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
14962 (extern loop_is_parallel_p): Move to graphite-htab.h.
14963 (extern get_loop_body_pbbs): Move to graphite-htab.h.
14964
14965 * haifa-sched.c (htab_t delay_htab):
14966 Change type to hash_table. Update dependent calls and types.
14967 (htab_t delay_htab_i2): Likewise.
14968
14969 * ira-color.c (htab_t allocno_hard_regs_htab):
14970 Change type to hash_table. Update dependent calls and types.
14971
14972 * ira-costs.c (htab_t cost_classes_htab):
14973 Change type to hash_table. Update dependent calls and types.
14974
14975 * loop-invariant.c (htab_t merge_identical_invariants::eq):
14976 Change type to hash_table. Update dependent calls and types.
14977
14978 * loop-iv.c (htab_t bivs):
14979 Change type to hash_table. Update dependent calls and types.
14980
14981 * loop-unroll.c (htab_t opt_info::insns_to_split):
14982 Change type to hash_table. Update dependent calls and types.
14983 (htab_t opt_info::insns_with_var_to_expand): Likewise.
14984
14985 * lto-streamer.h (struct string_slot): Move from data-streamer.h
14986 (struct string_slot_hasher): New.
14987 (htab_t output_block::string_hash_table):
14988 Change type to hash_table. Update dependent calls and types.
14989
14990 * lto-streamer-in.c (freeing_string_slot_hasher): New.
14991 (htab_t file_name_hash_table):
14992 Change type to hash_table. Update dependent calls and types.
14993
14994 * lto-streamer-out.c: Update output_block::string_hash_table dependent
14995 calls and types.
14996
14997 * lto-streamer.c (htab_t tree_htab):
14998 Change type to hash_table. Update dependent calls and types.
14999
15000 * omp-low.c: Include gimplify-ctx.h.
15001
15002 * passes.c (htab_t name_to_pass_map):
15003 Change type to hash_table. Update dependent calls and types.
15004 (pass_traverse): Rename to passes_pass_traverse.
15005
15006 * plugin.c (htab_t event_tab):
15007 Change type to hash_table. Update dependent calls and types.
15008
15009 * postreload-gcse.c (htab_t expr_table):
15010 Change type to hash_table. Update dependent calls and types.
15011 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
15012
15013 * sese.c (debug_rename_map_1): Make extern.
15014 (htab_t copy_bb_and_scalar_dependences::rename_map):
15015 Change type to hash_table. Update dependent calls and types.
15016
15017 * sese.h (extern debug_rename_map): Move to .c file.
15018
15019 * store-motion.c (htab_t store_motion_mems_table):
15020 Change type to hash_table. Update dependent calls and types.
15021
15022 * trans-mem.c (htab_t tm_new_mem_hash):
15023 Change type to hash_table. Update dependent calls and types.
15024
15025 * tree-browser.c (htab_t TB_up_ht):
15026 Change type to hash_table. Update dependent calls and types.
15027
15028 * tree-cfg.c (htab_t discriminator_per_locus):
15029 Change type to hash_table. Update dependent calls and types.
15030
15031 * tree-complex.c: Include tree-hasher.h
15032 (htab_t complex_variable_components):
15033 Change type to hash_table. Update dependent calls and types.
15034
15035 * tree-eh.c (htab_t finally_tree):
15036 Change type to hash_table. Update dependent calls and types.
15037
15038 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
15039 struct int_tree_hasher.
15040 (extern int_tree_map_eq): Likewise.
15041 (uid_decl_map_hash): Removed.
15042 (extern decl_tree_map_eq): Likewise.
15043
15044 * tree-hasher.h: New.
15045 (struct int_tree_hasher): New.
15046 (typedef int_tree_htab_type): New.
15047
15048 * tree-inline.c: Include gimplify-ctx.h.
15049
15050 * tree-mudflap.c: Include gimplify-ctx.h.
15051
15052 * tree-parloops.c: Include tree-hasher.h.
15053 (htab_t eliminate_local_variables_stmt::decl_address):
15054 Change type to hash_table. Update dependent calls and types.
15055 (htab_t separate_decls_in_region::decl_copies): Likewise.
15056
15057 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
15058 Change type to hash_table. Update dependent calls and types.
15059
15060 * tree-sra.c (candidates):
15061 Change type to hash_table. Update dependent calls and types.
15062
15063 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
15064 in tree-flow.h.
15065 (int_tree_map_hash): Likewise.
15066
15067 * tree-ssa-dom.c (htab_t avail_exprs):
15068 Change type to hash_table. Update dependent calls and types.
15069
15070 * tree-ssa-live.c (var_map_base_init::tree_to_index):
15071 Change type to hash_table. Update dependent calls and types.
15072
15073 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
15074 Change type to hash_table. Update dependent calls and types.
15075
15076 * tree-ssa-phiopt.c (seen_ssa_names):
15077 Change type to hash_table. Update dependent calls and types.
15078
15079 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
15080 Change type to hash_table. Update dependent calls and types.
15081
15082 * tree-ssa-uncprop.c (equiv):
15083 Change type to hash_table. Update dependent calls and types.
15084
c5a44004
JJ
150852013-04-25 Jakub Jelinek <jakub@redhat.com>
15086
15087 PR rtl-optimization/57003
15088 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
15089 call note_stores with kill_clobbered_value callback again after
15090 killing regs_invalidated_by_call.
15091
09962a4a
JG
150922013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
15093
15094 * config/aarch64/aarch64-simd.md
15095 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
15096 (aarch64_simd_bsl<mode>): Likewise.
15097 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
15098
ea28bb0b
MP
150992013-04-25 Marek Polacek <polacek@redhat.com>
15100
15101 PR tree-optimization/57066
3c21604f 15102 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 15103
96659611
JG
151042013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
15105
15106 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
15107
9697e620
JG
151082013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
15109
15110 * config/aarch64/aarch64-builtins.c
15111 (aarch64_fold_builtin): New.
15112 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
15113 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
15114 * config/aarch64/aarch64-simd-builtins.def (abs): New.
15115 * config/aarch64/arm_neon.h
15116 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
15117
0ac198d3
JG
151182013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
15119 Tejas Belagod <tejas.belagod@arm.com>
15120
15121 * config/aarch64/aarch64-builtins.c
15122 (aarch64_gimple_fold_builtin): New.
15123 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
15124 * config/aarch64/aarch64-simd-builtins.def (addv): New.
15125 * config/aarch64/aarch64-simd.md (addpv4sf): New.
15126 (addvv4sf): Update.
15127 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
15128
58cff58c
N
151292013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
15130
df93505e 15131 * config/aarch64/aarch64.md
58cff58c
N
15132 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
15133
7e0228bf
N
151342013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
15135
15136 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
15137 (*ngcsi_uxtw): New pattern.
15138
5819f96f 151392013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 15140 Julian Brown <julian@codesourcery.com>
5819f96f
KT
15141
15142 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
15143 (TB_DREG): Add T_V4HF.
15144 (v4hf_UP): New macro.
15145 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 15146 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
15147 Handle initialisation of V4HF. Adjust initialisation of reinterpret
15148 built-ins.
df93505e 15149 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
15150 (arm_vector_mode_supported_p): Handle V4HF.
15151 (arm_mangle_map): Handle V4HFmode.
15152 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
15153 * config/arm/arm_neon_builtins.def: Add entries for
15154 vcvtv4hfv4sf, vcvtv4sfv4hf.
15155 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
15156 (neon_vcvtv4hfv4sf): Likewise.
15157 * config/arm/neon-gen.ml: Handle half-precision floating point
15158 features.
15159 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
15160 * config/arm/arm_neon.h: Regenerate.
15161 * config/arm/neon.ml (type elts): Add F16.
15162 (type vectype): Add T_float16x4, T_floatHF.
15163 (type vecmode): Add V4HF.
15164 (type features): Add Requires_FP_bit feature.
15165 (elt_width): Handle F16.
15166 (elt_class): Likewise.
15167 (elt_of_class_width): Likewise.
15168 (mode_of_elt): Refactor.
15169 (type_for_elt): Handle F16, fix error messages.
15170 (vectype_size): Handle T_float16x4.
15171 (vcvt_sh): New function.
15172 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
15173 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
15174 (string_of_mode): Handle V4HF.
15175 * doc/arm-neon-intrinsics.texi: Regenerate.
15176
1ef395e4
JG
151772013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
15178
15179 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
15180 format specifier in 'X' case.
15181
41c34e94
AM
151822013-04-25 Alan Modra <amodra@gmail.com>
15183
15184 PR target/57052
15185 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
15186 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
15187 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
15188 Repeat for many other rotate/shift and mask patterns using subregs.
15189 Name lshiftrt insns.
15190 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
15191 on WORDS_BIG_ENDIAN.
15192
b9a7eb5d
AM
151932013-04-25 Alan Modra <amodra@gmail.com>
15194
15195 * config.gcc: Support little-endian powerpc-linux targets.
15196 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
15197 (LINK_OS_LINUX_SPEC): Define.
15198 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
15199 Preserve MASK_LITTLE_ENDIAN.
15200 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
15201 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
15202 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
15203 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
15204 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
15205 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
15206 Correct fp word order for little-endian. Don't shift toc entries
15207 smaller than a word for little-endian.
15208 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
15209 (bswapdi2 splits): Correct low-part subreg for little-endian.
15210 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
15211 low/high where such is correct only for be.
15212 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
15213 little-endian for -mcall-aixdesc.
15214
87f73374
AM
152152013-04-25 Alan Modra <amodra@gmail.com>
15216
15217 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
15218 replace_equiv_address_nv.
15219
cabf91cd
AM
152202013-04-25 Alan Modra <amodra@gmail.com>
15221
15222 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
15223
0ae24cc8
VM
152242013-04-24 Vladimir Makarov <vmakarov@redhat.com>
15225
15226 Revert:
15227 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
15228 * rtl.h (struct rtx_def): ...
cabf91cd 15229
77bce07c
VM
152302013-04-24 Vladimir Makarov <vmakarov@redhat.com>
15231
15232 PR rtl-optimizations/57046
15233 * lra-constraints (split_reg): Set up lra_risky_transformations_p
15234 for multi-reg splits.
15235
0db63e7f
L
152362013-04-24 H.J. Lu <hongjiu.lu@intel.com>
15237
15238 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
15239
3362b6b6
SA
152402013-04-24 Sterling Augustine <saugustine@google.com>
15241
15242 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
15243 (comp_dir_string, debug_str_dwo_section): New.
15244 (DEBUG_STR_DWO_SECTION): Rename to ...
15245 (DEBUG_DWO_STR_SECTION): ... this.
15246 (DEBUG_NORM_STR_SECTION): Delete.
15247 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
15248 (DEBUG_STR_DWO_SECTION_FLAGS): New.
15249 (find_AT_string): Move most logic to ...
15250 (find_AT_string_in_table): ... here. New.
15251 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
15252 add_skeleton_AT_string. Delete logic.
15253 (output_skeleton_debug_sections): Remove call to
15254 add_top_level_skeleton_die_attrs.
15255 (add_comp_dir_attribute): Move logic to comp_dir_string.
15256 (dwarf2out_init): Initialize debug_str_dwo_section.
15257 (output_indirect_string): Call find_string_form.
15258 (output_indirect_strings): Rewrite.
15259 (prune_unused_types): Empty skeleton_debug_str_hash.
15260 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
15261 (dwarf2out_finish): Call output_indirect_strings.
15262
e93e18e9
PC
152632013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
15264
15265 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
15266
f6ce35ac
VM
152672013-04-24 Vladimir Makarov <vmakarov@redhat.com>
15268
cabf91cd 15269 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
15270 (LRA_SUBREG_P): New macro.
15271 * recog.c (register_operand): Check LRA_SUBREG_P.
15272 * lra.c (lra): Add note at the end of RTL code. Align non-empty
15273 stack frame.
15274 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
15275 (lra_final_code_change): Skip subreg change for operators.
15276 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
15277 if there are no operand changes.
15278 * lra-constraints.c (curr_insn_set): New.
15279 (match_reload): Set LRA_SUBREG_P.
15280 (emit_spill_move): Ditto.
15281 (check_and_process_move): Use curr_insn_set. Process only single
15282 set insns. Don't initialize sec_mem_p and change_p.
15283 (simplify_operand_subreg): Use LRA_SUBREG_P.
15284 (reg_in_class_p): New function.
15285 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
15286 of #ifdef. Add code to remove cycling.
15287 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
15288 non-null disp. Reload inner instead of disp when base and index
15289 are null. Try to put lo_sum into register.
15290 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 15291 (check_and_process_move): Move code for move cost check to
f6ce35ac 15292 simple_move_p. Remove equiv_substitution.
cabf91cd 15293 (simple_move_p): New function.
f6ce35ac
VM
15294 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
15295 curr_insn_set. Call check_and_process_move only for single set
15296 insns. Use the new function. Move call of check_and_process_move
15297 after operand equiv substitution and address process.
15298
38047d90
JG
152992013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
15300
15301 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
15302 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
15303 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
15304
13f39b2e
PC
153052013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
15306
15307 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
15308
97c116dc
MP
153092013-04-24 Marek Polacek <polacek@redhat.com>
15310
15311 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
15312 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
15313 (select_loops_exit_conditions): Likewise.
15314 (number_of_iterations_for_all_loops): Likewise.
15315 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
15316 (scev_analysis): Likewise.
15317
83082391 153182013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 15319 Chao-ying Fu <fu@mips.com>
83082391 15320
cabf91cd
AM
15321 * config/mips/micromips.md (jraddiusp): New pattern.
15322 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
15323 instruction if possible.
83082391 15324
19e34aa2
AM
153252013-04-24 Alan Modra <amodra@gmail.com>
15326
15327 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
15328
fdb6603c
JB
153292013-04-24 Julian Brown <julian@codesourcery.com>
15330 Chung-Lin Tang <cltang@codesourcery.com>
15331
15332 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
15333 dependency behavior in enumeration type DIE generation. Add TODO note
15334 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 15335
bf190e8d
LC
153362013-04-23 Lawrence Crowl <crowl@google.com>
15337
15338 * Makefile.in: Update as needed below.
15339
15340 * hash-table.h (class hash_table):
15341 Correct many methods with parameter types compare_type to the correct
15342 value_type. (Correct code was unlikely to notice the change.)
15343 (hash_table::elements_with_deleted) New.
15344 (class hashtable::iterator): New.
15345 (hashtable::begin()): New.
15346 (hashtable::end()): New.
15347 (FOR_EACH_HASH_TABLE_ELEMENT): New.
15348
15349 * statistics.c (statistics_hashes):
15350 Change type to hash_table. Update dependent calls and types.
15351
15352 * tree-into-ssa.c (var_infos):
15353 Change type to hash_table. Update dependent calls and types.
15354
15355 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
15356 Change type to hash_table. Update dependent calls and types.
15357
15358 * tree-ssa-loop-im.c (struct mem_ref.refs):
15359 Change type to hash_table. Update dependent calls and types.
15360
15361 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
15362 Change type to hash_table. Update dependent calls and types.
15363
15364 * tree-ssa-sccvn.c (vn_tables_s::nary):
15365 Change type to hash_table. Update dependent calls and types.
15366 (vn_tables_s::phis): Likewise.
15367 (vn_tables_s::references): Likewise.
15368
15369 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
15370 (vn_reference_eq): Update parameter and return types.
15371
15372 * tree-ssa-structalias.c (pointer_equiv_class_table):
15373 Change type to hash_table. Update dependent calls and types.
15374 (location_equiv_class_table): Likewise.
15375
15376 * tree-vect-data-refs.c: Consequential changes for making
15377 peeling a hash_table.
15378
15379 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
15380 (destroy_loop_vec_info): Dependent hash_table update.
15381
15382 * tree-vectorizer.h (peeling_htab):
15383 Change type to hash_table. Update dependent calls and types.
15384
d70a81dd
SC
153852013-04-23 Shiva Chen <shiva0217@gmail.com>
15386
cabf91cd
AM
15387 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
15388 to check the register content is equal or not.
15389 * lra-constraints.c (match_reload): Use lra_assign_reg_val
15390 to assign register content record.
15391 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 15392 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
15393 * lra-int.h (struct lra_reg): Add offset member.
15394 (lra_reg_val_equal_p): New static inline function.
15395 (lra_update_reg_val_offset): New static inline function.
15396 (lra_assign_reg_val): New static inline function.
15397 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
15398 to assign register content record.
15399 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 15400
b894a1f3
CM
154012013-04-23 Catherine Moore <clm@codesourcery.com>
15402
15403 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
15404 operands. Record compression.
15405
ecd14de9
XDL
154062013-04-23 Xinliang David Li <davidxl@google.com>
15407
15408 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
15409
92e776e9
RB
154102013-04-23 Richard Biener <rguenther@suse.de>
15411
15412 PR middle-end/57036
15413 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
15414 parameter, only add abnormal goto edges from the copied body
15415 if the call could perform abnormal gotos.
15416 (copy_cfg_body): Adjust.
15417
a15ee567
SN
154182013-04-23 Sofiane Naci <sofiane.naci@arm.com>
15419
15420 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
15421
08c52234
AS
154222013-04-23 Andreas Schwab <schwab@linux-m68k.org>
15423
15424 * coretypes.h (gimple_stmt_iterator): Add struct to make
15425 compatible with C.
15426
999c1171
RB
154272013-04-23 Richard Biener <rguenther@suse.de>
15428
15429 PR tree-optimization/57026
15430 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
15431 from SSA names occuring in abnormal PHI nodes.
15432
53669259
AK
154332013-04-22 Andi Kleen <ak@linux.intel.com>
15434
15435 * lto/lto.c (print_lto_report_1): Fix LTO report names.
15436
1a0ad150
AK
154372013-04-22 Andi Kleen <ak@linux.intel.com>
15438
15439 * lto/lto.c (print_lto_report_1): Declare early.
15440 (read_cgraph_and_symbols): Call print_lto_report_1 early.
15441
057f8f20
AK
154422013-04-22 Andi Kleen <ak@linux.intel.com>
15443
15444 * common.opt (-flto-report-wpa): Add.
15445 * doc/invoke.texi (-flto-report-wpa): Add.
15446 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
15447 (lto_main): dito.
15448
473b1e05
XDL
154492013-04-22 Xinliang David Li <davidxl@google.com>
15450
15451 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
15452 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
15453 * Makefile.in: New dependency
15454
cabf91cd 15455 David Daney <ddaney.cavm@gmail.com>
b1485a33 15456
cabf91cd
AM
15457 * configure.ac (gcc_cv_as_micromips_support): Use the
15458 --fatal-warnings option.
15459 * configure: Regenerate.
b1485a33 15460
829d0168
MP
154612013-04-22 Marek Polacek <polacek@redhat.com>
15462
15463 PR sanitizer/56990
15464 * tsan.c (instrument_expr): Don't instrument expression
15465 in case its size is zero.
15466
6d9b7208
UB
154672013-04-22 Uros Bizjak <ubizjak@gmail.com>
15468
15469 PR target/57032
15470 Revert:
15471 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
15472
15473 * config/alpha/alpha.c (TARGET_LRA_P): New define.
15474
ea679d55
JG
154752013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
15476
15477 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
15478 (gimple_stmt_iterator): New typedef.
15479 * gimple.h (gimple_stmt_iterator): Rename to...
15480 (gimple_stmt_iterator_d): ... This.
15481 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
15482 trees be valid for GIMPLE and GENERIC.
15483 (TARGET_GIMPLE_FOLD_BUILTIN): New.
15484 * gimple-fold.c (gimple_fold_call): Call target hook
15485 gimple_fold_builtin.
15486 * hooks.c (hook_bool_gsiptr_false): New.
15487 * hooks.h (hook_bool_gsiptr_false): New.
15488 * target.def (fold_stmt): New.
15489 * doc/tm.texi: Regenerate.
15490
88a581da
VM
154912013-04-22 Vladimir Makarov <vmakarov@redhat.com>
15492
15493 PR target/57018
15494 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
15495 a set sp if no stack realignment.
15496
92be22dc
NC
154972013-04-22 Nick Clifton <nickc@redhat.com>
15498
15499 * config.gcc (tilegx-linux): Extend extra_objs rather than
15500 overwriting it.
15501 (tilepro-linux): Likewise.
15502
0ddec79f
JG
155032013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
15504
15505 * config/aarch64/aarch64-builtins.c
15506 (CF): Remove.
15507 (CF0, CF1, CF2, CF3, CF4, CF10): New.
15508 (VAR<1-12>): Add MAP parameter.
15509 (BUILTIN_*): Likewise.
15510 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
15511 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
15512 (aarch64_ushl_n<mode>): Likewise.
15513 (aarch64_sshr_n<mode>): Likewise.
15514 (aarch64_ushr_n<mode>): Likewise.
15515 (aarch64_<maxmin><mode>): Likewise.
15516 (aarch64_sqrt<mode>): Likewise.
15517 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
15518 (vshr<q>_n_*): Likewise.
15519
0050faf8
JG
155202013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
15521
15522 * config/aarch64/aarch64-builtins.c
15523 (aarch64_simd_builtin_type_mode): Handle SF types.
15524 (sf_UP): Define.
15525 (BUILTIN_GPF): Define.
15526 (aarch64_init_simd_builtins): Handle SF types.
15527 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
15528 (frecps): Likewise.
15529 (frecpx): Likewise.
15530 * config/aarch64/aarch64-simd.md
15531 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
15532 (aarch64_frecpe<mode>): New.
15533 (aarch64_frecps<mode>): Likewise.
15534 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
15535 (v8type): Add frecp<esx>.
15536 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
15537 (aarch64_frecps<mode>): Likewise.
15538 * config/aarch64/iterators.md (FRECP): New.
15539 (frecp_suffix): Likewise.
15540 * config/aarch64/arm_neon.h
15541 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
15542
0fad3dbc 155432013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
15544
15545 PR target/56995
15546 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
15547 (REG_CLASS_NAMES): Idem.
15548 (REG_CLASS_CONTENTS): Idem.
15549 (REGCLASS_HAS_FP_REG): Idem.
15550 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
15551 (sh_conditional_register_usage): Idem.
15552
3e8a33f9
JL
155532013-04-21 Jeff Law <law@redhat.com>
15554
15555 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
15556 (ssa_forward_propagate_and_combine): Use it.
15557
f38e1b0a
VM
155582013-04-19 Vladimir Makarov <vmakarov@redhat.com>
15559
15560 * lra.c: Update the flow chart diagram.
15561
682303da
VM
155622013-04-19 Vladimir Makarov <vmakarov@redhat.com>
15563
15564 PR rtl-optimization/56847
15565 * lra-constraints.c (process_alt_operands): Discourage alternative
15566 with non-matche doffsettable memory constraint fro memory with
15567 known offset.
15568
f6b64c35
RB
155692013-04-19 Richard Biener <rguenther@suse.de>
15570
15571 PR tree-optimization/56982
15572 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
15573 function.
15574 * gimplify.c (gimplify_call_expr): Notice special calls.
15575 (gimplify_modify_expr): Likewise.
15576 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
15577 abnormal control flow receivers.
15578 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
15579 in the same way as cfun->has_nonlocal_labels.
15580 (gimple_purge_dead_abnormal_call_edges): Likewise.
15581 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
15582 receivers start a basic-block.
15583
01d8bf07
RB
155842013-04-19 Richard Biener <rguenther@suse.de>
15585
15586 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
15587 member ...
15588 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
15589 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
15590 (SLP_TREE_LOAD_PERMUTATION): Add.
15591 (vect_transform_slp_perm_load): Adjust prototype.
15592 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
15593 (vect_free_slp_instance): Likewise.
15594 (vect_create_new_slp_node): Likewise.
15595 (vect_supported_slp_permutation_p): Remove.
15596 (vect_slp_rearrange_stmts): Adjust.
15597 (vect_supported_load_permutation_p): Likewise. Inline
15598 vect_supported_slp_permutation_p here.
15599 (vect_analyze_slp_instance): Compute load permutations per
15600 slp node instead of per instance.
15601 (vect_get_slp_defs): Adjust.
15602 (vect_transform_slp_perm_load): Likewise.
15603 (vect_schedule_slp_instance): Remove redundant code.
15604 (vect_schedule_slp): Remove hack for PR56270, add it ...
15605 * tree-vect-stmts.c (vectorizable_load): ... here, do not
15606 CSE loads for SLP. Adjust.
15607
ede22fc3
GY
156082013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
15609
15610 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
15611 spelling in two comments.
15612
67bc84fb
GY
156132013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
15614
15615 PR target/56797
15616 * config/arm/arm.c (load_multiple_sequence): Require SP
15617 as base register for loads if SP is in the register list.
15618
e248d83f
MJ
156192013-04-19 Martin Jambor <mjambor@suse.cz>
15620
15621 PR tree-optimization/56718
15622 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
15623 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
15624 and made public. Adjusted all callers.
15625 (ipa_intraprocedural_devirtualization): New function.
15626 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
15627 (ipa_intraprocedural_devirtualization): Likewise.
15628 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
15629
4891e8f8
RB
156302013-04-19 Richard Biener <rguenther@suse.de>
15631
15632 PR tree-optimization/57000
15633 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
15634
dad89f7c
TG
156352013-04-19 Terry Guo <terry.guo@arm.com>
15636
15637 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
15638 Replace with ...
15639 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
15640 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
15641 (cortex_m4_fmacs): Use new reservations.
15642 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
15643
72ea0d47
VM
156442013-04-18 Vladimir Makarov <vmakarov@redhat.com>
15645
f1e6512c 15646 PR rtl-optimization/56999
72ea0d47
VM
15647 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
15648 related code.
15649 (lra_coalesce): Remove split_origin_bitmap and related code.
15650 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
15651 ranges if necessary.
15652
780a5b71
UB
156532013-04-18 Uros Bizjak <ubizjak@gmail.com>
15654
15655 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
15656 New array.
15657 (ix86_expand_call): Remove clobbered_registers array and use
15658 x86_64_ms_sysv_extra_clobbered_registers instead.
15659 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
15660 Declare here.
15661 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
15662 predicate.
15663 * config/i386/i386.md (*call_rex64_ms_sysv): Use
15664 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
15665 (*call_value_rex64_ms_sysv): Ditto.
15666
6f5a366a
CC
156672013-04-18 Cary Coutant <ccoutant@google.com>
15668
15669 * dwarf2out.c (output_pubnames): Check die_perennial_p of
15670 parent instead of die_mark.
15671
475b8f37
DN
156722013-04-18 Diego Novillo <dnovillo@google.com>
15673
15674 * gimple.c (create_gimple_tmp): New.
15675 (get_expr_type): New.
15676 (build_assign): New.
15677 (build_type_cast): New.
15678 * gimple.h (enum ssa_mode): Define.
15679 (gimple_seq_set_location): New.
15680 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 15681 to use build_assign and build_type_cast.
475b8f37 15682
08940f33
RB
156832013-04-18 Richard Biener <rguenther@suse.de>
15684
15685 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
15686 handle negative step. Remove redundant checks.
15687 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
15688 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
15689 for negative step and grouped loads fail to vectorize.
15690
0e0f87d4
SB
156912013-04-18 Steven Bosscher <steven@gcc.gnu.org>
15692
15693 * emit-rtl.c (reset_insn_used_flags): New function.
15694 (reset_all_used_flags): Use it.
15695 (verify_insn_sharing): New function.
15696 (verify_rtl_sharing): Fix verification for SEQUENCEs.
15697
4c445590
JJ
156982013-04-18 Jakub Jelinek <jakub@redhat.com>
15699
15700 PR tree-optimization/56984
15701 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
15702 and (x >> M) >= N don't register any assertion if N << M is the
15703 minimum value.
15704
6873ecab
SB
157052013-04-18 Steven Bosscher <steven@gcc.gnu.org>
15706
15707 * lower-subreg.c (resolve_simple_move): If called self-recursive,
15708 do not delete_insn insns that have not yet been emitted, only
15709 unlink them with remove_insn.
15710 * df-scan.c (df_insn_delete): Revert r197492.
15711
3ccb989e
SB
157122013-04-17 Steven Bosscher <steven@gcc.gnu.org>
15713
15714 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
15715 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
15716
157172013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
15718
15719 * config/arm/arm.md (movsicc_insn): Convert define_insn into
15720 define_insn_and_split.
15721 (and_scc,ior_scc,negscc): Likewise.
15722 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
15723
3ccb989e 157242013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
15725
15726 * config/arm/arm.c (use_return_insn): Return 0 for targets that
15727 can benefit from using a sequence of LDRD instructions in epilogue
15728 instead of a single LDM instruction.
15729
6d10a203
MLI
157302013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
15731
15732 PR 45688
15733 * doc/extend.texi: Fix typo.
15734
6983e6b5
RB
157352013-04-17 Richard Biener <rguenther@suse.de>
15736
15737 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
15738 (vect_build_slp_tree): ... here.
15739 (vect_build_slp_tree_1): Compute which stmts of the SLP group
15740 match. Remove special-casing of mismatched complex loads.
15741 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
15742 re-try the match with swapped commutative operands.
15743 (vect_supported_load_permutation_p): Remove special-casing of
15744 mismatched complex loads.
15745 (vect_analyze_slp_instance): Adjust.
15746
ef23e6a2
RB
157472013-04-17 Richard Biener <rguenther@suse.de>
15748
15749 PR rtl-optimization/56921
15750 * cfgloop.h (struct loop): Add simple_loop_desc member.
15751 (struct niter_desc): Mark with GTY(()).
15752 (simple_loop_desc): Do not use aux field but simple_loop_desc.
15753 * loop-iv.c (get_simple_loop_desc): Likewise.
15754 (free_simple_loop_desc): Likewise.
15755
15756 Revert
15757 2013-04-16 Richard Biener <rguenther@suse.de>
15758
15759 PR rtl-optimization/56921
15760 * loop-init.c (pass_rtl_move_loop_invariants): Add
15761 TODO_do_not_ggc_collect to todo_flags_finish.
15762 (pass_rtl_unswitch): Same.
15763 (pass_rtl_unroll_and_peel_loops): Same.
15764 (pass_rtl_doloop): Same.
15765
fc6f94f5
EB
157662013-04-17 Eric Botcazou <ebotcazou@adacore.com>
15767
15768 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
15769 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
15770 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
15771 references.
15772 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
15773 * tree-streamer.c (record_common_node): Adjust reference in comment.
15774
10a88311
TG
157752013-04-17 Terry Guo <terry.guo@arm.com>
15776
15777 * config/arm/cortex-m4.md: Add a new bypass.
15778
6d9b7208 157792013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
15780
15781 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
15782 New pattern.
15783 (*subs_<optab><mode>_multp2): New pattern.
15784 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
15785 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
15786
6d9b7208 157872013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
15788
15789 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
15790 (*subs_mul_imm_<mode>): New pattern.
15791
18a6701e
DE
157922013-04-16 David Edelsohn <dje.gcc@gmail.com>
15793
15794 PR target/56948
15795 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
15796 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
15797 (vsx_movti_32bit): Change j->wa to O->wa.
15798
07c37b2f
RB
157992013-04-16 Richard Biener <rguenther@suse.de>
15800
15801 PR rtl-optimization/56921
15802 * loop-init.c (pass_rtl_move_loop_invariants): Add
15803 TODO_do_not_ggc_collect to todo_flags_finish.
15804 (pass_rtl_unswitch): Same.
15805 (pass_rtl_unroll_and_peel_loops): Same.
15806 (pass_rtl_doloop): Same.
15807
0e0f87d4 158082013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
15809
15810 * config/arm/arm.c (emit_multi_reg_push): New declaration
15811 for an existing function.
15812 (arm_emit_strd_push): New function.
15813 (arm_expand_prologue): Used here.
15814 (arm_emit_ldrd_pop): New function.
15815 (arm_expand_epilogue): Used here.
15816 (arm_get_frame_offsets): Update condition.
15817 (arm_emit_multi_reg_pop): Add a special case for load of a single
15818 register with writeback.
15819
5e8e2af4
UB
158202013-04-16 Uros Bizjak <ubizjak@gmail.com>
15821
15822 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
15823 description.
15824
9fd9ccf7
RB
158252013-04-16 Richard Biener <rguenther@suse.de>
15826
15827 PR tree-optimization/56756
15828 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
15829 (first_mem_ref_loc): New.
15830 (execute_sm): Place the load temporarily before a previous
15831 access instead of in the latch edge to ensure its SSA dependencies
15832 are defined at points dominating the load.
15833
96fba521
SB
158342013-04-16 Steven Bosscher <steven@gcc.gnu.org>
15835
4c8af858
SB
15836 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
15837 correct fix by moving header and footer insn to the footer of
15838 the merged basic block. Clear BB_END of the merged-away block.
15839
96fba521
SB
15840 PR middle-end/43631
15841 * emit-rtl.c (make_note_raw): New function.
15842 (link_insn_into_chain): New static inline function.
15843 (add_insn): Use it.
15844 (add_insn_before, add_insn_after): Factor insn chain linking code...
15845 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
15846 using link_insn_into_chain.
15847 (note_outside_basic_block_p): New helper function for emit_note_after
15848 and emit_note_before.
15849 (emit_note_after): Use nobb variant of add_insn_after if the note
15850 should not be contained in a basic block.
15851 (emit_note_before): Use nobb variant of add_insn_before if the note
15852 should not be contained in a basic block.
15853 (emit_note_copy): Use make_note_raw.
15854 (emit_note): Likewise.
15855 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
15856 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
15857 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
15858 the moved barrier the tail of the basic block it follows.
15859 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
15860
7b8265ba
JJ
158612013-04-15 Jakub Jelinek <jakub@redhat.com>
15862
15863 PR tree-optimization/56962
15864 * gimple-ssa-strength-reduction.c (record_increment): Only set
15865 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
15866 either rhs1 or rhs2 is equal to c->base_expr.
15867
5185d248
RB
158682013-04-15 Richard Biener <rguenther@suse.de>
15869
15870 PR tree-optimization/56933
15871 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
15872 member.
15873 (GROUP_READ_WRITE_DEPENDENCE): Remove.
15874 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
15875 * tree-vect-data-refs.c (vect_analyze_group_access): Move
15876 dependence check ...
15877 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
15878 ... here.
15879 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
15880 GROUP_READ_WRITE_DEPENDENCE.
15881
a24243a0
AK
158822013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15883
15884 * emit-rtl.c (reset_all_used_flags): New function.
15885 (verify_rtl_sharing): Call reset_all_used_flags before and after
15886 performing the checks.
15887
1c50eada
KT
158882013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15889
15890 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
15891 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
15892 * config/arm/constraints.md (De): New constraint.
15893 * config/arm/neon.md (anddi3_neon): Delete.
15894 (neon_vand<mode>): Expand to standard anddi3 pattern.
15895 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
15896 Move earlier in the file.
15897 (neon_inv_logic_op2): Likewise.
15898 (arm_anddi_operand_neon): New predicate.
15899
e927b6ad
RO
159002013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15901
15902 * configure.ac (gcc_cv_ld_as_needed): Set
15903 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
15904 Use -z ignore, -z record on *-*-solaris2*.
15905 (HAVE_LD_AS_NEEDED): Update comment.
15906 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
15907 * configure: Regenerate.
15908 * config.in: Regenerate.
15909 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
15910 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
15911 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
15912 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
15913 equivalents. Fix markup.
15914 * doc/tm.texi: Regenerate.
15915
e0ea8797
AH
159162013-04-15 Andrew Hsieh <andrewhsieh.google.com>
15917
15918 * config/i386/i386.opt: New option mstack-protector-guard=.
15919 * config/i386/i386-opts.h: Add enum stack_protector_guard.
15920 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
15921 TARGET_SSP_TLS_GUARD.
15922 * config/i386/i386.c (ix86_option_override_internal): Set
15923 ix86_stack_protector_guard.
15924 * config/i386/i386.md (stack_protect_set): Enable for
15925 TARGET_SSP_TLS_GUARD only.
15926 (stack_protect_set_<mode>): Ditto.
15927 (stack_protect_test): Ditto.
15928 (stack_protect_test_<mode>): Ditto.
15929 * doc/invoke.texi (i386 Option): Document.
15930
811b72f9
EB
159312013-04-15 Eric Botcazou <ebotcazou@adacore.com>
15932
15933 PR target/56890
15934 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
15935 (S_MODES): Set H_MODE bit.
15936 (SF_MODES): Set only S_MODE and SF_MODE bits.
15937 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
15938 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
15939 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
15940 <MODE_FLOAT>: Likewise.
15941
5529fdd6
JY
159422013-04-15 Joey Ye <joey.ye@arm.com>
15943
15944 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
15945
517b1da2
JY
159462013-04-15 Joey Ye <joey.ye@arm.com>
15947
15948 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
15949 for real far jump.
15950 (thumb_far_jump_used_p): Count instruction size and set
15951 far_jump_used.
15952
01007ae0
EB
159532013-04-14 Eric Botcazou <ebotcazou@adacore.com>
15954
15955 * reorg.c (fill_simple_delay_slots): Reindent block of code.
15956 * resource.c (mark_target_live_regs): Reformat conditional block.
15957
c46f6580
SB
159582013-04-13 Steven Bosscher <steven@gcc.gnu.org>
15959
15960 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
15961 notes, they are emitted only just before final.
15962 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
15963
1f397f45
SB
159642013-04-13 Steven Bosscher <steven@gcc.gnu.org>
15965
15966 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
15967 * cfgrtl.c (delete_insn): Call it here instead.
15968 * lra-spills.c (lra_final_code_change): Use delete_insn.
15969 * haifa-sched.c (sched_remove_insn): Likewise.
15970 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
15971 returning to the nop pool.
15972 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
15973 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
15974
58a51369
SB
159752013-04-12 Steven Bosscher <steven@gcc.gnu.org>
15976
15977 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
15978 * doc/tm.texi: Regenerated.
15979
33159866
UB
159802013-04-12 Uros Bizjak <ubizjak@gmail.com>
15981
15982 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
15983 QImode checks.
15984
226e378f
SB
159852013-04-12 Steven Bosscher <steven@gcc.gnu.org>
15986
15987 * df-core.c (df_find_def): Compare register numbers.
15988 (df_find_use): Likewise.
15989
fafb9b18
VM
159902013-04-12 Vladimir Makarov <vmakarov@redhat.com>
15991
15992 PR target/56903
15993 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
15994 lra_in_progress for return.
15995
9a946fd6
GY
159962013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
15997
15998 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
15999 define_insn into define_insn_and_split and emit movsicc patterns.
16000
41b83758
GY
160012013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
16002
16003 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
16004
d3afd9aa
RB
160052013-04-12 Richard Biener <rguenther@suse.de>
16006
16007 * tree-pass.h (TODO_do_not_ggc_collect): New.
16008 * passes.c (execute_one_ipa_transform_pass): Honor
16009 TODO_do_not_ggc_collect.
16010 (execute_one_pass): Likewise.
16011
16012 Revert
16013 2013-04-10 Richard Biener <rguenther@suse.de>
16014
16015 * passes.c (init_optimization_passes): Remove reload pass.
16016 * ira.c (do_reload): Merge into ...
16017 (ira): ... this.
16018 (rest_of_handle_reload): Remove.
16019 (pass_reload): Likewise.
16020 * config/i386/i386.c (ix86_option_override): Refer to ira instead
16021 of reload for vzeroupper pass placement.
16022
06f9b387
JJ
160232013-04-12 Jakub Jelinek <jakub@redhat.com>
16024
16025 PR tree-optimization/56918
16026 PR tree-optimization/56920
16027 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
16028 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
16029 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
16030 use wide_mul_with_sign method.
16031
953094d2
RB
160322013-04-12 Richard Biener <rguenther@suse.de>
16033
16034 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
16035 not be considered a gimple constant.
16036
bb506982
MG
160372013-04-12 Marc Glisse <marc.glisse@inria.fr>
16038
16039 * fold-const.c (const_binop): Handle vector shifts by a scalar.
16040 (fold_binary_loc): Call const_binop also for mixed vector-scalar
16041 operations.
16042
4b84d650
JJ
160432013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
16044 Jakub Jelinek <jakub@redhat.com>
16045
16046 * opts.c: Include diagnostic-color.h.
16047 (common_handle_option): Handle OPT_fdiagnostics_color_.
16048 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
16049 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
16050 (diagnostic-color.o): New.
16051 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
16052 (diagnostic_color_rule): New enum.
16053 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
16054 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
16055 the location string.
16056 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
16057 either NULL, or color kind.
16058 * diagnostic-color.c: New file.
16059 * diagnostic-color.h: New file.
16060 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
16061 arguments.
16062 * doc/invoke.texi (-fdiagnostics-color): Document.
16063 * pretty-print.h (pp_show_color): Define.
16064 (struct pretty_print_info): Add show_color field.
16065 * diagnostic.c: Include diagnostic-color.h.
16066 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
16067 macros. Colorize error:, warning: etc. strings and also the location
16068 string.
16069 (diagnostic_show_locus): Colorize the caret line.
16070 * pretty-print.c: Include diagnostic-color.h.
16071 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
16072 inside of %< %> quotes or quoted through q format modifier.
16073
067a1e71
AK
160742013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16075
33159866 16076 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 16077
33159866 160782013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
16079
16080 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
16081 code in CC_NZ mode.
16082 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
16083 pattern.
16084
7b55f98f
MP
160852013-04-11 Marek Polacek <polacek@redhat.com>
16086
16087 PR tree-optimization/48184
33159866 16088 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 16089
966b587e
EB
160902013-04-11 Eric Botcazou <ebotcazou@adacore.com>
16091
16092 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
16093 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
16094 (skip_simple_arithmetic): Tidy up.
16095 * tree.h (skip_simple_constant_arithmetic): Declare.
16096
33159866 160972013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
16098
16099 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
16100
1d42c1ec
RB
161012013-04-11 Richard Biener <rguenther@suse.de>
16102
16103 * tree-vect-loop.c (get_initial_def_for_induction): Properly
16104 generate vector constants.
16105
4ba5ea11
RB
161062013-04-11 Richard Biener <rguenther@suse.de>
16107
16108 PR tree-optimization/56878
16109 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
16110 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
16111 New function.
16112 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
16113 Prefer to align the DR with the most invariant base address.
16114
f0defe58
SKS
161152013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
16116
16117 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
16118 comment.
16119
d07458be
JG
161202013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
16121
16122 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
16123 floating-point vector comparisons against 0.
16124
146b8692
JJ
161252013-04-11 Jakub Jelinek <jakub@redhat.com>
16126
16127 PR tree-optimization/56899
16128 * fold-const.c (extract_muldiv_1): Apply distributive law
16129 only if TYPE_OVERFLOW_WRAPS (ctype).
16130
b8578ff7
BC
161312013-04-11 Bin Cheng <bin.cheng@arm.com>
16132
16133 PR target/56124
16134 * ira-costs.c (scan_one_insn): Check whether the source rtx of
16135 loading has side effect.
16136
0ea8a6f9
SB
161372013-04-10 Steven Bosscher <steven@gcc.gnu.org>
16138
16139 * config/sparc/sparc.c: Include tree-pass.h.
16140 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
16141 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
16142 head of file. Change return type. Split off gate function.
16143 (sparc_gate_work_around_errata): New function.
16144 (pass_work_around_errata): New pass definition.
16145 (insert_pass_work_around_errata) New pass insert definition to
16146 insert pass_work_around_errata just after delayed-branch scheduling.
16147 (sparc_option_override): Insert the pass.
16148 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
16149
42e37616
DM
161502013-04-10 David S. Miller <davem@davemloft.net>
16151
89deeb3b
DM
16152 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
16153 or -mcpu=hypersparc.
16154
42e37616
DM
16155 * target.def (cstore_mode): New hook.
16156 * target.h: Include insn-codes.h
16157 * targhooks.c: Likewise.
16158 (default_cstore_mode): New function.
16159 * targhooks.h: Declare it.
16160 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
16161 * doc/tm.texi: Rebuild.
16162 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
16163 target hook, rather than inspecting the insn_data.
16164 * config/sparc/sparc.c (sparc_cstore_mode): New function.
16165 (TARGET_CSTORE_MODE): Redefine.
16166 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
16167 result patterns.
16168 * config/sparc/predicates.md (cstore_result_operand): New special
16169 predicate.
16170 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
16171 Use it for operand 0.
16172 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
16173 (*snesi_special): Likewise.
16174 (*snesi_zero): Likewise.
16175 (*seqsi_zero): Likewise.
16176 (*sltu_insn): Likewise.
16177 (*sgeu_insn): Likewise.
16178 (*seqdi_special): Make operand 0 and comparison operation be of
16179 DImode.
16180 (*snedi_special): Likewise.
16181 (*snedi_special_vis3): Likewise.
16182 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
16183 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
16184 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
16185 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
16186 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
16187 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
16188 (*sltu_extend_sp64): Likewise.
16189 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
16190 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
16191 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
16192 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
16193 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
16194
95ca411e
YZ
161952013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
16196
16197 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
16198 (aarch64_start_file): Use the new function.
16199
6782438d 162002013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 16201 Jason Merrill <jason@redhat.com>
6782438d
SKS
16202
16203 * common.opt: Add -gdwarf.
16204 * opts.c (common_handle_option): Handle it.
16205 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
16206
bb313b93
RB
162072013-04-10 Richard Biener <rguenther@suse.de>
16208
16209 * passes.c (execute_todo): Do not call ggc_collect conditional here.
16210 (execute_one_ipa_transform_pass): But unconditionally here.
16211 (execute_one_pass): And here.
16212 (init_optimization_passes): Remove reload pass.
16213 * tree-pass.h (TODO_ggc_collect): Remove.
16214 (pass_reload): Likewise.
16215 * ira.c (do_reload): Merge into ...
16216 (ira): ... this.
16217 (rest_of_handle_reload): Remove.
16218 (pass_reload): Likewise.
16219 * config/i386/i386.c (ix86_option_override): Refer to ira instead
16220 of reload for vzeroupper pass placement.
16221 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
16222 and todo_flags_finish of all passes.
16223
793d9a16
RB
162242013-04-10 Richard Biener <rguenther@suse.de>
16225
16226 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
16227 first_const_oprnd field, rename first_def_type to first_op_type.
16228 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
16229 (vect_get_and_check_slp_defs): Always use the type of the
16230 operand. Allow mixed vect_external_def, vect_constant_def types.
16231 (vect_get_constant_vectors): Handle mixed vect_external_def,
16232 vect_constant_def types.
16233
12211b99 162342013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
16235
16236 PR tree-optimization/55524
16237 * tree-ssa-math-opts.c
16238 (convert_mult_to_fma): Don't use an fms construct
16239 when we don't have an fms operation, but fnma, and it looks
16240 likely that we'll be able to use the latter.
16241
12211b99 162422013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
16243
16244 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
16245 function.
16246 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
16247 inline fail caused by overwritable functions.
16248
34ab4a5b
CJW
162492013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
16250
16251 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
16252 unnecessary bits in the constant power of two case.
16253
abf9bfbc
RB
162542013-04-10 Richard Biener <rguenther@suse.de>
16255
16256 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
16257 broken code swapping operands.
16258 (vect_build_slp_tree): Do not compute load permutations here.
16259 (vect_analyze_slp_instance): Compute load permutations here,
16260 after building the SLP tree.
16261
f408477e
CB
162622013-04-09 Christian Bruel <christian.bruel@st.com>
16263
16264 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
16265 of next/prev_real_insn.
16266
5ac42672
JH
162672013-04-09 Jan Hubicka <jh@suse.cz>
16268
abf9bfbc
RB
16269 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
16270 Drop aliased parameter.
5ac42672
JH
16271 (function_and_variable_visibility): Do not handle alias pairs.
16272 * cgraph.c (varpool_externally_visible_p): Update prototype.
16273 * varpool.c (varpool_add_new_variable): Update.
16274
5017f1d2
KT
162752013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16276
16277 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
16278
48eecbee
SB
162792013-04-09 Steven Bosscher <steven@gcc.gnu.org>
16280
a949cf1c
SB
16281 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
16282
48eecbee
SB
16283 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
16284
75ef8e3d
MP
162852013-04-09 Marek Polacek <polacek@redhat.com>
16286
16287 PR tree-optimization/48762
33159866 16288 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 16289
23847df4
RB
162902013-04-09 Richard Biener <rguenther@suse.de>
16291
16292 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
16293 dealing with cost.
16294 (vect_build_slp_tree): Likewise.
16295 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
16296 calculating the cost of a SLP instance.
16297 (vect_analyze_slp_instance): Use it from here, after building
16298 the SLP tree.
16299
ea3a0fde
JJ
163002013-04-09 Jakub Jelinek <jakub@redhat.com>
16301
16302 PR middle-end/56883
16303 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
16304 expand_omp_for_static_chunk): Use simple_p = true in
16305 force_gimple_operand_gsi calls when assigning to addressable decls.
16306
a32dfe9d
JL
163072013-04-09 Jeff Law <law@redhat.com>
16308
16309 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
16310 when the boolean was created by converting a wider object which
16311 had a boolean range.
16312
d755c7ef
RB
163132013-04-09 Richard Biener <rguenther@suse.de>
16314
16315 * tree-vectorizer.h (slp_void_p): Remove.
16316 (slp_tree): Typedef before _slp_tree declaration.
16317 (struct _slp_tree): Use a vector of slp_tree as children.
16318 (vect_get_place_in_interleaving_chain): Remove.
16319 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
16320 Move ...
16321 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
16322 and make static.
16323 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
16324 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
16325 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
16326 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
16327 Use slp_node instead of slp_void_p and adjust.
16328
3d741091
RB
163292013-04-09 Richard Biener <rguenther@suse.de>
16330
16331 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
16332 work that is not necessary.
16333
39307ba7
JJ
163342013-04-09 Jakub Jelinek <jakub@redhat.com>
16335
16336 PR tree-optimization/56854
16337 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
16338 forward into clobber stmts if it would change MEM_REF lhs into
16339 non-MEM_REF.
16340
343881fd
MK
163412013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
16342
16343 * tree.c (type_hash_lookup, type_hash_add): Make static.
16344 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
16345
3922658a
RB
163462013-04-09 Richard Biener <rguenther@suse.de>
16347
16348 * tree.h (unsave_expr_now): Remove.
16349 * tree-inline.c (mark_local_for_remap_r): Remove.
16350 (unsave_expr_1): Likewise.
16351 (unsave_r): Likewise.
16352 (unsave_expr_now): Likewise.
16353 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
16354 (propagate_tree_value): Likewise.
16355
9fb6b620
SB
163562013-04-08 Steven Bosscher <steven@gcc.gnu.org>
16357
16358 * doc/rtl.texi (sequence): Rewrite documentation to match the
16359 current use of SEQUENCE rtl objects.
16360 * rtl.def (SEQUENCE): Likewise.
16361
16362 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
16363 Update documentation.
16364 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
16365 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
16366
16367 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
16368
8ddb5a29
TJ
163692013-04-08 Teresa Johnson <tejohnson@google.com>
16370
16371 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
16372 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 16373 methods.
8ddb5a29
TJ
16374 (estimate_edge_size_and_time): Add comment to suggest using rounding
16375 methods.
16376 (estimate_node_size_and_time): Ditto.
16377 (remap_edge_change_prob): Use helper rounding divide methods.
16378 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
16379 (gimple_mod_pow2_value_transform): Ditto.
16380 (gimple_mod_subtract_transform): Ditto.
16381 (gimple_ic_transform): Ditto.
16382 (gimple_stringops_transform): Ditto.
16383 * stmt.c (conditional_probability): Ditto.
16384 (emit_case_dispatch_table): Ditto.
16385 * lto-cgraph.c (merge_profile_summaries): Ditto.
16386 * tree-optimize.c (execute_fixup_cfg): Ditto.
16387 * cfgcleanup.c (try_forward_edges): Ditto.
16388 * cfgloopmanip.c (scale_loop_profile): Ditto.
16389 (loopify): Ditto.
16390 (duplicate_loop_to_header_edge): Ditto.
16391 (lv_adjust_loop_entry_edge): Ditto.
16392 * tree-vect-loop.c (vect_transform_loop): Ditto.
16393 * profile.c (compute_branch_probabilities): Ditto.
16394 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
16395 * lto-streamer-in.c (input_cfg): Ditto.
16396 * gimple-streamer-in.c (input_bb): Ditto.
16397 * ipa-cp.c (update_profiling_info): Ditto.
16398 (update_specialized_profile): Ditto.
16399 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
16400 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 16401 rounding methods.
8ddb5a29
TJ
16402 * sched-rgn.c (compute_dom_prob_ps): Ditto.
16403 (compute_trg_info): Ditto.
16404 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
16405 (purge_dead_edges): Ditto.
16406 * loop-unswitch.c (unswitch_loop): Ditto.
16407 * cgraphclones.c (cgraph_clone_edge): Ditto.
16408 (cgraph_clone_node): Ditto.
16409 * tree-inline.c (copy_bb): Ditto.
16410 (copy_edges_for_bb): Ditto.
16411 (initialize_cfun): Ditto.
16412 (copy_cfg_body): Ditto.
16413 (expand_call_inline): Ditto.
16414
661e6bd7
KT
164152013-04-08 Kai Tietz <ktietz@redhat.com>
16416
16417 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
16418 TARGET_CYGWIN64 by TARGET_64BIT.
16419
105766f3
JR
164202013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
16421
16422 * config/epiphany/epiphany.md (GPR_1): New constant.
16423 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
16424 * config/epiphany/epiphany.c (gen_compare_reg):
16425 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
16426 is already in place.
16427 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
16428 Don't require being called during rtl expansion; If y operlaps r0,
16429 return 0.
16430 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
16431 (epiphany_expand_epilogue): Likewise.
16432
8afab237
JR
16433 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
16434 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 16435 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 16436
fa7707d6
JR
16437 * config/epiphany/constraints.md (CnL): New constraint.
16438 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
16439 * config/epiphany/predicates.md (add_operand): Allow 1024.
16440
5138e18d
JR
16441 * config/epiphany/epiphany.md (logical_op): New code iterator.
16442 (op_mnc): New code attribute.
16443 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
16444 (mov_f+1, mov_f+2): New peephole2 patterns.
16445
2ccc703d
JR
16446 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
16447 (cstoresi4): Also allow re-use of zero result when doing a NE
16448 comparison to a non-zero operand.
aefb0819 16449 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 16450
093ac0a5
JR
16451 * config/epiphany/epiphany.md (<insn_opname>v2si3):
16452 Use gen_addsi3_i / gen_subsi3_i.
16453
f223bb13
JJ
164542013-04-08 Jakub Jelinek <jakub@redhat.com>
16455
16456 PR c++/34949
16457 PR c++/50243
16458 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
16459 contain anything but clobbers, at most one __builtin_stack_restore,
16460 optionally debug stmts and final resx, and if it has at least one
16461 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
16462 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
16463 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
16464 which isn't defaut definition, remove them.
16465 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
16466 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
16467 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
16468 with MEM_REF LHS with SSA_NAME address.
16469
4481581f
JL
164702013-04-08 Jeff Law <law@redhat.com>
16471
16472 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 16473
451dabda
RB
164742013-04-08 Richard Biener <rguenther@suse.de>
16475
16476 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
16477 extra newline.
16478 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
16479 determined vector type.
16480 (vect_analyze_data_refs): Likewise.
16481 (vect_get_new_vect_var): Adjust.
16482 (vect_create_destination_var): Preserve SSA name versions.
16483 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
16484 not dump anything here.
16485
3b088b47
JR
164862013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
16487
16488 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
16489 Add member lr_slot_known.
16490 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
16491 if necessary.
16492 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
16493 Remove code that sets lr_slot_offset according to what a previous
16494 version of epiphany_emit_save_restore used to do.
16495 (epiphany_emit_save_restore): When doing an lr save or restore,
16496 set/verify lr_slot_known and lr_slot_offset.
16497
d8484d41
XQ
164982013-04-08 Xinyu Qi <xyqi@marvell.com>
16499
33159866
UB
16500 PR target/54338
16501 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
16502 in ALL_REGS.
16503
481be1c4
RB
165042013-04-08 Richard Biener <rguenther@suse.de>
16505
16506 * alias.c (find_base_term): Fix thinko in previous change.
16507
401f3a81
JJ
165082013-04-08 Jakub Jelinek <jakub@redhat.com>
16509
16510 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
16511 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
16512 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
16513 if possible to compute val.
16514 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
16515 For QImode integers don't require anything about precision. Use
16516 const_with_all_bytes_same to find out if the constant doesn't have
16517 repeated bytes in it.
16518
03ed99a8
AK
165192013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16520
16521 * config/s390/s390.c (s390_expand_insv): Only accept insertions
16522 within mode size.
16523
781b2e62
MP
165242013-04-08 Marek Polacek <polacek@redhat.com>
16525
16526 PR rtl-optimization/48182
16527 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
16528 value to 1.
16529
27e430a2
JDA
165302013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16531
16532 PR target/55487
16533 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
16534 nuses, make sure we have a label.
16535
4902aa64
BS
165362013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16537
16538 PR target/56843
16539 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
16540 (rs6000_emit_swdiv_low_precision): Remove.
16541 (rs6000_emit_swdiv): Rewrite to handle between one and four
16542 iterations of Newton-Raphson generally; modify required number of
16543 iterations for some cases.
16544 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
16545
7bca81dc
SB
165462013-04-05 Steven Bosscher <steven@gcc.gnu.org>
16547
16548 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
16549 set-but-unused variable.
16550
16551 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
16552 basic blocks of released function bodies garbage-collectable.
16553
16554 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
16555 (struct rtl_opt_pass): Add TODO_df_finish.
16556
16557 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
16558
4542a38a
GY
165592013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16560
16561 * config/arm/constraints.md (q): New constraint.
16562 * config/arm/ldrdstrd.md: New file.
16563 * config/arm/arm.md (ldrdstrd.md) New include.
16564 (arm_movdi): Use "q" instead of "r" constraint
16565 for double-word memory access.
16566 (movdf_soft_insn): Likewise.
16567 * config/arm/vfp.md (movdi_vfp): Likewise.
16568 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 16569 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
16570 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
16571 (mem_ok_for_ldrd_strd): Likewise.
16572 (output_move_double): Update assertion.
16573
2385b218
GY
165742013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16575
16576 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
16577
75fe1cb5
GY
165782013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16579
16580 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
16581 define_insn_and_split.
16582 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
16583
dd660e8e
GY
165842013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16585
16586 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
16587 define_insn_and_split.
33159866 16588 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
16589 (shiftsi3_compare): New pattern.
16590 (rrx): New pattern.
16591 * config/arm/unspecs.md (UNSPEC_RRX): New.
16592
045e472c
GY
165932013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16594
16595 * config/arm/arm.md (negdi_extendsidi): New pattern.
16596 (negdi_zero_extendsidi): Likewise.
16597
3f3bf1a8
GY
165982013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16599
16600 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
16601 define_insn_and_split.
16602 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
16603 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
16604
b0b49556
GY
166052013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16606
16607 * config/arm/arm.md (arm_subdi3): Convert define_insn into
16608 define_insn_and_split.
16609 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
16610 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
16611
d633dd84
GY
166122013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16613
16614 * config/arm/arm.md (subsi3_carryin): New pattern.
16615 (subsi3_carryin_const): Likewise.
16616 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
16617 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
16618
f4499066
GY
166192013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16620
16621 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
16622
ceef6fd9
GY
166232013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16624
16625 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 16626 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 16627
ddbdd8a7
KT
166282013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16629
16630 * config/arm/arm.c (arm_expand_builtin): Change fcode
16631 type to unsigned int.
16632
8456d78a
RR
166332013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16634
16635 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
16636
526c230f
ILT
166372013-04-04 Ian Lance Taylor <iant@google.com>
16638
33159866
UB
16639 * doc/standards.texi (Standards): The Go frontend supports the Go 1
16640 language standard.
526c230f 16641
3cfbe04d
SB
166422013-04-04 Steven Bosscher <steven@gcc.gnu.org>
16643
16644 PR middle-end/56729
16645 * df-scan.c (df_insn_delete): Disable failing assert.
16646
dfa3f8d0
KT
166472013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16648
16649 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
16650 New function prototype.
16651 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
16652 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
16653 (arm_builtin_vectorized_function): New function.
16654
f7837758
KT
166552013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16656
16657 * config/arm/arm_neon_builtins.def: New file.
16658 * config/arm/arm.c (neon_builtin_data): Move contents to
16659 arm_neon_builtins.def.
16660 (enum arm_builtins): Include neon builtin definitions.
16661 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 16662 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 16663
39c1b6db
MP
166642013-04-04 Marek Polacek <polacek@redhat.com>
16665
16666 PR tree-optimization/48186
16667 * predict.c (maybe_hot_frequency_p): Return false if
16668 HOT_BB_FREQUENCY_FRACTION is 0.
16669 (cgraph_maybe_hot_edge_p): Likewise.
16670
314f64eb
RB
166712013-04-04 Richard Biener <rguenther@suse.de>
16672
16673 PR tree-optimization/56826
16674 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
16675 more accurately.
16676
51a905b2
RB
166772013-04-04 Richard Biener <rguenther@suse.de>
16678
16679 PR tree-optimization/56213
16680 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 16681 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 16682
f1bf4f3a
RB
166832013-04-04 Richard Biener <rguenther@suse.de>
16684
16685 PR tree-optimization/56837
16686 * tree-loop-distribution.c (classify_partition): For non-zero
16687 values require that the value has the same precision as its
16688 mode to be useful as memset value.
16689
0bca7ded
NC
166902013-04-03 Nick Clifton <nickc@redhat.com>
16691
33159866 16692 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
16693 (fmssf4): Use fmsf.s on E3V5 architectures.
16694 (fnmasf4): Use fnmaf.s on E3V5 architectures.
16695 (fnmssf4): Use fnmsf.s on E3V5 architectures.
16696
b4019227
JL
166972013-04-03 Jeff Law <law@redhat.com>
16698
16699 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
16700 (lra-eliminations.o): Likewise.
16701
f57ddb5b
TJ
167022013-04-03 Teresa Johnson <tejohnson@google.com>
16703
16704 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 16705 compute_working_sets here from profile.c.
f57ddb5b 16706 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
16707 (gcov_working_set_t): Moved typedef here from basic-block.h
16708 (compute_working_set): Declare.
f57ddb5b
TJ
16709 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
16710 (get_working_sets): Renamed from compute_working_set,
33159866 16711 replace most of body with call to new compute_working_sets.
f57ddb5b 16712 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
16713 to get_working_sets.
16714 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 16715 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 16716 to get_working_sets.
f57ddb5b
TJ
16717 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
16718 * gcov-dump.c (dump_working_sets): New function.
16719
12211b99 167202013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
16721
16722 * hwint.c (sext_hwi, zext_hwi): New functions.
16723 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
16724 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
16725 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
16726 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
16727 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
16728 (sext_hwi, zext_hwi): New functions.
0bca7ded 16729
be672e08
JL
167302013-04-03 Jeff Law <law@redhat.com>
16731
16732 PR tree-optimization/56799
33159866
UB
16733 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
16734 back test for widening conversion erroneously dropped in prior change.
be672e08 16735
9d821fa5
KT
167362013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16737
16738 PR target/56809
16739 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
16740 instead of next_real_insn.
16741
71c581e7
MP
167422013-04-03 Marek Polacek <polacek@redhat.com>
16743
16744 PR sanitizer/55702
33159866 16745 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 16746
4a32ef80
KT
167472013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16748
16749 PR target/56809
16750 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
16751 next_real_insn.
16752 (thumb1_output_casesi): Likewise.
16753 (thumb2_output_casesi): Likewise.
16754
1b2253d4
RB
167552013-04-03 Richard Biener <rguenther@suse.de>
16756
16757 PR tree-optimization/56817
16758 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
16759 Split out ...
16760 (tree_unroll_loops_completely_1): ... new function to manually
16761 walk the loop tree, properly defering outer loops of unrolled
16762 loops to later iterations.
16763
38000232
MG
167642013-04-03 Marc Glisse <marc.glisse@inria.fr>
16765
16766 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
16767 (vectorizable_load): Likewise.
16768 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
16769 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
16770
3fa35298
MG
167712013-04-03 Marc Glisse <marc.glisse@inria.fr>
16772
16773 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
16774 BIT_FIELD_REF.
16775
b3d45ff0
UW
167762013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16777
16778 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
16779
ec9202a8
BC
167802013-04-03 Bin Cheng <bin.cheng@arm.com>
16781
16782 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
16783
6805bd36
MG
167842013-04-03 Marc Glisse <marc.glisse@inria.fr>
16785
16786 PR tree-optimization/56790
33159866
UB
16787 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
16788 folding.
6805bd36 16789
da694a77
MG
167902013-04-03 Marc Glisse <marc.glisse@inria.fr>
16791
16792 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
16793 Handle VEC_MERGE.
16794 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
16795 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
16796 equal arguments.
16797
4e7d7b3d
JJ
167982013-04-03 Jakub Jelinek <jakub@redhat.com>
16799
16800 PR c/19449
16801 * tree.h (force_folding_builtin_constant_p): New decl.
16802 * builtins.c (force_folding_builtin_constant_p): New variable.
16803 (fold_builtin_constant_p): Fold immediately also if
16804 force_folding_builtin_constant_p.
16805
e6c9d234
RB
168062013-04-03 Richard Biener <rguenther@suse.de>
16807
16808 PR tree-optimization/56812
16809 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
16810 DRs of the same interleaving chain are independent.
16811
984d07dd
JM
168122013-04-02 Jason Merrill <jason@redhat.com>
16813
16814 * gdbinit.in (pbb): Use debug fn.
16815
622849c9
LC
168162013-04-02 Lawrence Crowl <crowl@google.com>
16817
16818 * sese.h (struct ivtype_map_elt_s): Remove unused.
16819 (extern debug_ivtype_map): Remove unused.
16820 (extern eq_ivtype_map_elts): Remove unused.
16821 * sese.c (debug_ivtype_map): Removed unused.
16822 (debug_ivtype_map_1): Removed unused.
16823 (debug_ivtype_elt): Remove unused.
16824 (eq_ivtype_map_elts): Remove unused.
16825
16826
82c0e1a0
KT
168272013-04-02 Kai Tietz <ktietz@redhat.com>
16828
16829 PR target/52790
16830 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
16831 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
16832 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
16833 function.
82c0e1a0
KT
16834 (legitimize_pe_coff_symbol): Likewise.
16835 (is_imported_p): New helper-function.
16836 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
16837 for Windows x64 targets.
16838 (ix86_expand_prologue): Optimize for pe-coff targets.
16839 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
16840 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
16841 medium/large code-model.
16842 (legitimize_pic_address): Likewise.
16843 (legitimize_tls_address): Likewise.
16844 (ix86_expand_call): Likewise.
16845 (x86_output_mi_thunk): Likewise.
16846 (get_dllimport_decl): Add new beimport argument.
16847 (construct_plt_address): Don't assert for x64 pe-coff targets.
16848 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
16849 targets.
16850 (SYMBOL_FLAG_STUBVAR): New macro.
16851 (SYMBOL_REF_STUBVAR_P): Likewise.
16852 * config/i386/winnt.c (stub_list): New structure.
16853 (stub_head): New local variable.
16854 (i386_pe_record_stub): New function.
16855 (i386_pe_file_end): Emit refptr-stubs.
16856
5d751b0c
JJ
168572013-04-02 Jakub Jelinek <jakub@redhat.com>
16858
09bb4c99
JJ
16859 PR rtl-optimization/56745
16860 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
16861 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
16862
a1d8947a
JJ
16863 PR c++/34949
16864 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
16865 and both of them are MEM_REFs, just compare first argument for
16866 equality and attempt to deal even with differing offsets.
16867
5d751b0c
JJ
16868 PR c++/34949
16869 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
16870 of gimple_clobber_p to be MEM_REF.
16871 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
16872 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
16873 after gimplification.
16874 * asan.c (get_mem_ref_of_assignment): Don't instrument
16875 gimple_clobber_p stmts.
16876 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
16877 gimple_clobber_p stmt if they have MEM_REF lhs and
16878 are dead because of another gimple_clobber_p stmt.
16879 * tree-ssa-live.c (clear_unused_block_pointer): Treat
16880 gimple_clobber_p stmts like debug stmts.
16881 (remove_unused_locals): Remove clobbers with MEM_REF lhs
16882 that refer to unused VAR_DECLs or uninitialized values.
16883 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
16884 gimple_clobber_p stmts if they refer to removed parameters.
16885 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
16886 formatting.
16887
e594716a
UB
168882013-04-02 Uros Bizjak <ubizjak@gmail.com>
16889
16890 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
16891 using SWI48 mode attribute.
16892
7a80735b
WM
168932013-04-02 Wei Mi <wmi@google.com>
16894
16895 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
16896 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
16897 *<rotate_insn><mode>3_mask in i386.md.
16898
f423a9e4
AI
168992013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
16900
16901 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
16902
90eb75f2
RB
169032013-04-02 Richard Biener <rguenther@suse.de>
16904
16905 PR tree-optimization/56778
16906 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
16907 Runtime alias tests are not supported for gather loads.
16908 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
16909 stmts referenced from SSA operands before updating SSA form.
16910
d8c69a92
IC
169112013-04-02 Ian Caulfield <ian.caulfield@arm.com>
16912 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16913
16914 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
16915 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
16916 * config/arm/cortex-a53.md: New file.
16917 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
16918 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
16919 * config/arm/arm.c (arm_issue_rate): Likewise.
16920 * config/arm/arm-tune.md: Regenerate
16921 * config/arm/arm-tables.opt: Regenerate.
16922 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 16923
239eb04c
ZC
169242013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
16925
16926 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
16927 non-static link.
16928
c902d3c8
SN
169292013-04-02 Sofiane Naci <sofiane.naci@arm.com>
16930
d8c69a92
IC
16931 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
16932 scalar load/store operations using B/H registers.
c902d3c8
SN
16933 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
16934
051d0e2f
SN
169352013-04-02 Sofiane Naci <sofiane.naci@arm.com>
16936
16937 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
16938 scalar move.
16939 * config/aarch64/aarch64.c
16940 (aarch64_simd_scalar_immediate_valid_for_move): New.
16941 * config/aarch64/aarch64-protos.h
16942 (aarch64_simd_scalar_immediate_valid_for_move): New.
16943 * config/aarch64/constraints.md (Dh, Dq): New.
16944 * config/aarch64/iterators.md (hq): New.
16945
0ee1e3d9
EB
169462013-04-02 Eric Botcazou <ebotcazou@adacore.com>
16947
16948 * reorg.c (get_branch_condition): Deal with conditional returns.
16949 (fill_simple_delay_slots): Remove dead code dealing with jumps.
16950
136fb3f7
WM
169512013-04-01 Wei Mi <wmi@google.com>
16952
16953 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
16954 Truncate operand 2 using %b asm operand modifier.
16955 (*<shift_insn><mode>3_mask): Ditto.
16956 (*<rotate_insn><mode>3_mask): Ditto.
16957
6388c738
SB
169582013-04-01 Steven Bosscher <steven@gcc.gnu.org>
16959
16960 PR middle-end/56798
16961 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
16962
f7a4d826
KK
169632013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
16964
16965 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
16966 of next_real_insn.
16967 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
16968
4b943a49
LC
169692013-03-30 Lawrence Crowl <crowl@google.com>
16970
16971 * dse.c (clear_alias_sets): Remove never set.
16972 (disqualified_clear_alias_sets): Remove never set.
16973 (clear_alias_mode_pool): Remove never set.
16974 (dse_step0): Remove condition that is never true.
16975 (canon_address): Remove condition that is never true.
16976 (dse_step7): Remove condition that is never true.
16977 (rest_of_handle_dse): Remove condition that is never true.
16978 (rest_of_handle_dse::did_global): Remove never read from above.
16979 (dse_step2_spill): Remove never called from above.
16980 (dse_step5_spill): Remove never called from above.
16981
39718607
SB
169822013-03-30 Steven Bosscher <steven@gcc.gnu.org>
16983
da5c6bde
SB
16984 * doc/md.texi (Standard Names) <casesi>: Update documentation for
16985 JUMP_TABLE_DATA changes.
16986 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
16987 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
16988 (Insns) <jump_table_data>: New entry.
16989 * doc/tm.texi: Regenerate.
16990
39718607
SB
16991 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
16992
16993 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
16994 for table jump at the end of a basic block using tablejump_p.
16995 * targhooks.c (default_invalid_within_doloop): Likewise.
16996 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
16997 target hook implementation that is identical to the default hook.
16998 (rs6000_invalid_within_doloop): Remove.
16999
17000 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
17001 unused variable from tablejump_p call.
17002
17003 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
17004 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
17005 (INSN_DELETED_P): Likewise.
17006 (emit_jump_table_data): New prototype.
17007 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
17008 after 4th as unused.
17009 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
17010 * sched-vis.c (print_insn): Likewise.
17011 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
17012 insn for compatibility with back ends that use next_active_insn to
17013 identify jump table data.
17014 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
17015 (remove_insn): Likewise.
17016 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
17017 to be emitted.
17018 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
17019 (emit_jump_table_data): New function.
17020
17021 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
17022 basic block, a JUMP_TABLE_DATA never is.
17023 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
17024 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
17025 off from code handling real insns.
17026 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
17027 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
17028 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
17029 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
17030 is not a NONDEBUG_INSN_P.
17031 * ira-costs.c (scan_one_insn): Likewise.
17032 * jump.c (mark_all_labels): Likewise.
17033 (mark_jump_label_1): Likewise.
17034 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
17035 * lra.c (get_insn_freq): Expect all insns reaching here to be in
17036 a basic block.
17037 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
17038 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
17039 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
17040 JUMP_TABLE_DATA_P insns.
17041 (calculate_elim_costs_all_insns): Likewise.
17042 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
17043 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
17044 (delete_output_reload): Code style fixups.
17045 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
17046 insn flags on this non-insn.
17047 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
17048 as scheduling barriers, for pre-change compatibility.
17049 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
17050 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
17051
17052 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
17053 redundant JUMP_TABLE_DATA_P test.
17054 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
17055 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
17056 (frv_for_each_packet): Likewise.
17057 * config/i386/i386.c (min_insn_size): Likewise.
17058 (ix86_avoid_jump_mispredicts): Likewise.
17059 * config/m32r/m32r.c (m32r_is_insn): Likewise.
17060 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
17061 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
17062 (mips16_insn_length): Robustify.
17063 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
17064 (mips16_split_long_branches): Likewise.
17065 * config/pa/pa.c (pa_combine_instructions): Likewise.
17066 * config/rs6000/rs6000.c (get_next_active_insn): Treat
17067 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
17068 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
17069 as contributing to pool range lengths.
17070 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
17071 Remove redundant JUMP_TABLE_DATA_P test.
17072 (sh_loop_align): Likewise.
17073 (split_branches): Likewise.
17074 (sh_insn_length_adjustment): Likewise.
17075 * config/spu/spu.c (get_branch_target): Likewise.
17076
0208f7da
JH
170772013-03-29 Jan Hubicka <jh@suse.cz>
17078
17079 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
17080 gcov streaming; stream hot bb threshold to ltrans.
17081 * predict.c (get_hot_bb_threshold): Break out from ....
17082 (maybe_hot_count_p): ... here.
17083 (set_hot_bb_threshold): New function.
17084 * lto-section-in.c (lto_section_name): Add profile.
17085 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
17086 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
17087 and data-streamer.h
17088 (histogram_entry): New structure.
17089 (histogram, histogram_pool): New global vars.
17090 (histogram_hash): New structure.
17091 (histogram_hash::hash): New method.
17092 (histogram_hash::equal): Likewise.
17093 (account_time_size): New function.
17094 (cmp_counts): New function.
17095 (dump_histogram): New function.
17096 (ipa_profile_generate_summary): New function.
17097 (ipa_profile_write_summary): New function.
17098 (ipa_profile_read_summary): New function.
17099 (ipa_profile): Decide on threshold.
e594716a
UB
17100 (pass_ipa_profile): Add ipa_profile_write_summary and
17101 ipa_profile_read_summary.
0208f7da
JH
17102 * Makefile.in (ipa.o): Update dependencies.
17103 * lto-streamer.h (LTO_section_ipa_profile): New section.
17104
5a6ccc94
GDR
171052013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
17106
17107 * tree.h (VAR_P): New.
17108
39385fa6
PC
171092013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
17110
17111 PR lto/56777
17112 * doc/invoke.texi ([-fwhole-program]): Fix typo.
17113
34f0d87a
SB
171142013-03-29 Steven Bosscher <steven@gcc.gnu.org>
17115
17116 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
17117 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
17118 (control_flow_insn_p): Likewise.
17119 * cfgrtl.c (duplicate_insn_chain): Likewise.
17120 * final.c (get_attr_length_1): Likewise.
17121 (shorten_branches): Likewise.
17122 (final_scan_insn): Likewise.
17123 * function.c (instantiate_virtual_regs): Likewise.
17124 * gcse.c (insert_insn_end_basic_block): Likewise.
17125 * ira-costs.c (scan_one_insn): Likewise.
17126 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
17127 * lra.c (check_rtl): Likewise.
17128 * reload1.c (elimination_costs_in_insn): Likewise.
17129 * reorg.c (follow_jumps): Likewise.
17130
17131 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
17132 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
17133 (thumb_far_jump_used_p): Likewise.
17134 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
17135 (workaround_speculation): Likewise.
17136 (add_sched_insns_for_speculation): Likewise.
17137 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
17138 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
17139 (frv_for_each_packet): Likewise.
17140 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
17141 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
17142 (final_emit_insn_group_barriers): Likewise.
17143 * config/m32r/m32r.c (m32r_is_insn): Likewise.
17144 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
17145 (mips16_insn_length): Likewise.
17146 * config/pa/pa.c (pa_reorg): Likewise.
17147 (pa_combine_instructions): Likewise.
17148 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
17149 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
17150 (sh_reorg): Likewise.
17151 (split_branches): Likewise.
17152 * config/spu/spu.c (get_branch_target): Likewise.
17153
17154 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
17155 JUMP_TABLE_DATA_P.
17156
4ac761b0
KY
171572013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
17158
39385fa6 17159 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
17160 Fix declaration name.
17161
58a49189
LC
171622013-03-28 Lawrence Crowl <crowl@google.com>
17163
17164 * graphds.h (struct graph.indicies): Remove unused.
17165 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
17166 (SCOP_ORIGINAL_PDDRS): Remove unused.
17167 * sese.h (extern insert_loop_close_phis): Removed unused.
17168 (extern insert_guard_phis): Removed unused.
17169 (extern ivtype_map_elt_info): Removed unused.
17170 (new_ivtype_map_elt): Removed unused.
17171 * sese.c (ivtype_map_elt_info): Removed unused.
17172
7b3b6ae4
LC
171732013-03-28 Lawrence Crowl <crowl@google.com>
17174
17175 * Makefile.in: Add several missing include dependences.
17176 (DUMPFILE_H): New.
17177 (test-dump.o): New. This object is not added to any executable,
17178 but is present for ad-hoc testing.
17179 * bitmap.c
17180 (debug (const bitmap_head_def &)): New.
17181 (debug (const bitmap_head_def *)): New.
17182 * bitmap.h
17183 (extern debug (const bitmap_head_def &)): New.
17184 (extern debug (const bitmap_head_def *)): New.
17185 * cfg.c
17186 (debug (edge_def &)): New.
17187 (debug (edge_def *)): New.
17188 * cfghooks.c
17189 (debug (basic_block_def &)): New.
17190 (debug (basic_block_def *)): New.
17191 * dumpfile.h
17192 (dump_node (const_tree, int, FILE *)): Correct source file.
17193 * dwarf2out.c
17194 (debug (die_struct &)): New.
17195 (debug (die_struct *)): New.
17196 * dwarf2out.h
17197 (extern debug (die_struct &)): New.
17198 (extern debug (die_struct *)): New.
17199 * gimple-pretty-print.c
17200 (debug (gimple_statement_d &)): New.
17201 (debug (gimple_statement_d *)): New.
17202 * gimple-pretty-print.h
17203 (extern debug (gimple_statement_d &)): New.
17204 (extern debug (gimple_statement_d *)): New.
17205 * ira-build.c
17206 (debug (ira_allocno_copy &)): New.
17207 (debug (ira_allocno_copy *)): New.
17208 (debug (ira_allocno &)): New.
17209 (debug (ira_allocno *)): New.
17210 * ira-int.h
17211 (extern debug (ira_allocno_copy &)): New.
17212 (extern debug (ira_allocno_copy *)): New.
17213 (extern debug (ira_allocno &)): New.
17214 (extern debug (ira_allocno *)): New.
17215 * ira-lives.c
17216 (debug (live_range &)): New.
17217 (debug (live_range *)): New.
17218 * lra-int.h
17219 (debug (lra_live_range &)): New.
17220 (debug (lra_live_range *)): New.
17221 * lra-lives.c
17222 (debug (lra_live_range &)): New.
17223 (debug (lra_live_range *)): New.
17224 * omega.c
17225 (debug (omega_pb_d &)): New.
17226 (debug (omega_pb_d *)): New.
17227 * omega.h
17228 (extern debug (omega_pb_d &)): New.
17229 (extern debug (omega_pb_d *)): New.
17230 * print-rtl.c
17231 (debug (const rtx_def &)): New.
17232 (debug (const rtx_def *)): New.
17233 * print-tree.c
17234 (debug_tree (tree): Move within file.
17235 (debug_raw (const tree_node &)): New.
17236 (debug_raw (const tree_node *)): New.
17237 (dump_tree_via_hooks (const tree_node *, int)): New.
17238 (debug (const tree_node &)): New.
17239 (debug (const tree_node *)): New.
17240 (debug_verbose (const tree_node &)): New.
17241 (debug_verbose (const tree_node *)): New.
17242 (debug_head (const tree_node &)): New.
17243 (debug_head (const tree_node *)): New.
17244 (debug_body (const tree_node &)): New.
17245 (debug_body (const tree_node *)): New.
17246 (debug_vec_tree (tree): Move and reimplement in terms of dump.
17247 (debug (vec<tree, va_gc> &)): New.
17248 (debug (vec<tree, va_gc> *)): New.
17249 * rtl.h
17250 (extern debug (const rtx_def &)): New.
17251 (extern debug (const rtx_def *)): New.
17252 * sbitmap.c
17253 (debug_raw (simple_bitmap_def &)): New.
17254 (debug_raw (simple_bitmap_def *)): New.
17255 (debug (simple_bitmap_def &)): New.
17256 (debug (simple_bitmap_def *)): New.
17257 * sbitmap.h
17258 (extern debug (simple_bitmap_def &)): New.
17259 (extern debug (simple_bitmap_def *)): New.
17260 (extern debug_raw (simple_bitmap_def &)): New.
17261 (extern debug_raw (simple_bitmap_def *)): New.
17262 * sel-sched-dump.c
17263 (debug (vinsn_def &)): New.
17264 (debug (vinsn_def *)): New.
17265 (debug_verbose (vinsn_def &)): New.
17266 (debug_verbose (vinsn_def *)): New.
17267 (debug (expr_def &)): New.
17268 (debug (expr_def *)): New.
17269 (debug_verbose (expr_def &)): New.
17270 (debug_verbose (expr_def *)): New.
17271 (debug (vec<rtx> &)): New.
17272 (debug (vec<rtx> *)): New.
17273 * sel-sched-dump.h
17274 (extern debug (vinsn_def &)): New.
17275 (extern debug (vinsn_def *)): New.
17276 (extern debug_verbose (vinsn_def &)): New.
17277 (extern debug_verbose (vinsn_def *)): New.
17278 (extern debug (expr_def &)): New.
17279 (extern debug (expr_def *)): New.
17280 (extern debug_verbose (expr_def &)): New.
17281 (extern debug_verbose (expr_def *)): New.
17282 (extern debug (vec<rtx> &)): New.
17283 (extern debug (vec<rtx> *)): New.
17284 * sel-sched-ir.h
17285 (_list_iter_cond_expr): Make inline instead of static.
17286 * sreal.c
17287 (debug (sreal &)): New.
17288 (debug (sreal *)): New.
17289 * sreal.h
17290 (extern debug (sreal &)): New.
17291 (extern debug (sreal *)): New.
17292 * tree.h
17293 (extern debug_raw (const tree_node &)): New.
17294 (extern debug_raw (const tree_node *)): New.
17295 (extern debug (const tree_node &)): New.
17296 (extern debug (const tree_node *)): New.
17297 (extern debug_verbose (const tree_node &)): New.
17298 (extern debug_verbose (const tree_node *)): New.
17299 (extern debug_head (const tree_node &)): New.
17300 (extern debug_head (const tree_node *)): New.
17301 (extern debug_body (const tree_node &)): New.
17302 (extern debug_body (const tree_node *)): New.
17303 (extern debug (vec<tree, va_gc> &)): New.
17304 (extern debug (vec<tree, va_gc> *)): New.
17305 * tree-cfg.c
17306 (debug (struct loop &)): New.
17307 (debug (struct loop *)): New.
17308 (debug_verbose (struct loop &)): New.
17309 (debug_verbose (struct loop *)): New.
17310 * tree-dump.c: Add header dependence.
17311 * tree-flow.h
17312 (extern debug (struct loop &)): New.
17313 (extern debug (struct loop *)): New.
17314 (extern debug_verbose (struct loop &)): New.
17315 (extern debug_verbose (struct loop *)): New.
17316 * tree-data-ref.c
17317 (debug (data_reference &)): New.
17318 (debug (data_reference *)): New.
17319 (debug (vec<data_reference_p> &)): New.
17320 (debug (vec<data_reference_p> *)): New.
17321 (debug (vec<ddr_p> &)): New.
17322 (debug (vec<ddr_p> *)): New.
17323 * tree-data-ref.h
17324 (extern debug (data_reference &)): New.
17325 (extern debug (data_reference *)): New.
17326 (extern debug (vec<data_reference_p> &)): New.
17327 (extern debug (vec<data_reference_p> *)): New.
17328 (extern debug (vec<ddr_p> &)): New.
17329 (extern debug (vec<ddr_p> *)): New.
17330 * tree-ssa-alias.c
17331 (debug (pt_solution &)): New.
17332 (debug (pt_solution *)): New.
17333 * tree-ssa-alias.h
17334 (extern debug (pt_solution &)): New.
17335 (extern debug (pt_solution *)): New.
17336 * tree-ssa-alias.c
17337 (debug (_var_map &)): New.
17338 (debug (_var_map *)): New.
17339 (debug (tree_live_info_d &)): New.
17340 (debug (tree_live_info_d *)): New.
17341 * tree-ssa-alias.h
17342 (extern debug (_var_map &)): New.
17343 (extern debug (_var_map *)): New.
17344 (extern debug (tree_live_info_d &)): New.
17345 (extern debug (tree_live_info_d *)): New.
17346
be77e1e5
JH
173472013-03-28 Jan Hubicka <jh@suse.cz>
17348
17349 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
17350
777e6976
IB
173512013-03-28 Ian Bolton <ian.bolton@arm.com>
17352
17353 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
17354 record only when desired or required.
17355
9cd347ae
UB
173562013-03-28 Uros Bizjak <ubizjak@gmail.com>
17357
17358 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
17359 *vec_extractv2di_1_rex64. Use x64 isa attribute.
17360
33159866 173612013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
17362
17363 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
17364 (*andsi3_compare0_uxtw): New pattern.
17365 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
17366 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
17367
89ab31c1
JH
173682013-03-28 Jan Hubicka <jh@suse.cz>
17369
17370 * data-streamer-in.c (streamer_read_gcov_count): New function.
17371 * gimple-streamer-out.c: Include value-prof.h.
17372 (output_gimple_stmt): Output histogram.
17373 (output_bb): Use streamer_write_gcov_count.
17374 * value-prof.c: Include data-streamer.h
17375 (dump_histogram_value): Add HIST_TYPE_MAX.
17376 (stream_out_histogram_value): New function.
17377 (stream_in_histogram_value): New function.
17378 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
17379 (stream_out_histogram_value, stream_in_histogram_value): Declare.
17380 * data-streamer-out.c (streamer_write_gcov_count): New function.
17381 (streamer_write_gcov_count_stream): New function.
17382 * lto-cgraph.c (lto_output_edge): Update counter streaming.
17383 (lto_output_node): Likewise.
17384 (input_node, input_edge): Likewise.
17385 * lto-streamer-out.c (output_cfg): Update streaming.
17386 * lto-streamer-in.c (input_cfg): Likewise.
17387 * data-streamer.h (streamer_write_gcov_count,
17388 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
17389 * gimple-streamer-in.c: Include value-prof.h
17390 (input_gimple_stmt): Input histograms.
17391 (input_bb): Update profile streaming.
17392
e594716a 173932013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 17394
33159866 17395 * genmodes.c (emit_max_int): New function.
8697be17 17396 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
17397 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
17398 Added doc.
8697be17 17399 * machmode.def: Fixed comment.
89ab31c1 17400
e594716a 174012013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
17402
17403 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
17404 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
17405
74946978
MP
174062013-03-28 Marek Polacek <polacek@redhat.com>
17407 Richard Biener <rguenther@suse.de>
17408
17409 PR tree-optimization/56695
17410 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
17411 build signed result of a vector comparison.
17412 * tree-cfg.c (verify_gimple_comparison): Check that a result
17413 of a vector comparison has signed type.
17414
a64b9c26
RB
174152013-03-28 Richard Biener <rguenther@suse.de>
17416
17417 PR tree-optimization/37021
17418 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
17419 do not restrict gaps between groups.
17420 * tree-vect-stmts.c (vectorizable_load): Properly account for
17421 a gap between groups.
17422
a9dc2a2f
EB
174232013-03-28 Eric Botcazou <ebotcazou@adacore.com>
17424
17425 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
17426 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
17427 is not enabled.
17428
53cb97f9
GP
174292013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
17430
17431 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
17432 * doc/extend.texi (Named Address Spaces): Ditto.
17433 (Variable Attributes): Ditto.
17434
b802ae5c
KT
174352013-03-27 Kai Tietz <ktietz@redhat.com>
17436
eddae10a
KT
17437 * config.build: Add support for cygwin x64 target.
17438 * config.gcc: Likewise.
17439 * config.host: Likewise.
17440 * configure.ac: Likewise
17441 * configure: Regenerated.
b802ae5c 17442
371e77e3 174432013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
17444
17445 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
17446 * config/i386/t-cygwin-w64: New file.
17447 * config/i386/cygwin-w64.h: New file.
17448 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
17449 and add support for x64-cygwin target.
17450 (CPP_SPEC): Likewise.
17451 (CXX_WRAP_SPEC_LIST): Undefine before define.
17452 (LIBGCJ_SONAME): Use 15 as version.
17453
f49b33cb
RB
174542013-03-27 Richard Biener <rguenther@suse.de>
17455
17456 PR tree-optimization/56716
17457 * tree-ssa-structalias.c (perform_var_substitution): Adjust
17458 dumping for ref nodes.
17459
b37a6ce5
MJ
174602013-03-27 Martin Jambor <mjambor@suse.cz>
17461
17462 PR tree-optimization/55334
17463 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
17464 restricted pointers to arrays.
17465
9469b9b2
GDR
174662013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
17467
17468 * Makefile.in (.SUFFIXES): Add .cc.
17469 (.c.o): Apply same recipe for implicit rule .cc.o.
17470
7d24f650
RB
174712013-03-27 Richard Biener <rguenther@suse.de>
17472
17473 PR tree-optimization/37021
17474 * tree-vect-data-refs.c (vect_check_strided_load): Allow
17475 REALPART/IMAGPART_EXPRs around the supported refs.
17476 * tree-ssa-structalias.c (find_func_aliases): Assume that
17477 floating-point values are not used to transfer pointers.
17478
2f251a05
AI
174792013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
17480
f43245d1
UB
17481 * target.def (TARGET_HAS_IFUNC_P): New target hook.
17482 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
17483 * doc/tm.texi: Regenerate.
17484 * targhooks.h (default_has_ifunc_p): New.
17485 * targhooks.c (default_has_ifunc_p): Ditto.
17486 * config/linux-protos.h: New file.
17487 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
17488 hook for linux which disables support of indirect functions in android.
17489 * config/linux-android.c: New file.
17490 * config/t-linux-android.c: Ditto.
17491 * config.gcc: Added new object file linux-android.o.
17492 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 17493 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 17494 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
17495 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
17496 doesn't support indirect functions.
17497 * configure: Regenerate.
17498
78b4e425
BC
174992013-03-27 Bin Cheng <bin.cheng@arm.com>
17500
17501 PR target/56102
17502 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
17503 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
17504 mult-word mode.
17505
a5ba7b92
AK
175062013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17507
17508 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
17509
be624986
TG
175102013-03-27 Terry Guo <terry.guo@arm.com>
17511
17512 * config/arm/arm-cores.def: Added core cortex-r7.
17513 * config/arm/arm-tune.md: Regenerated.
17514 * config/arm/arm-tables.opt: Regenerated.
17515 * doc/invoke.texi: Added entry for core cortex-r7.
17516
0a514f47
WL
175172013-03-27 Walter Lee <walt@tilera.com>
17518
17519 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
17520 double-decrement of next_scratch_regno.
17521
9332b0d2
WL
175222013-03-27 Walter Lee <walt@tilera.com>
17523
801d9b2a 17524 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
17525 input operands.
17526 (insn_v1mulus): Ditto.
17527 (insn_v2muls): Ditto.
17528
f54ea5dd
WL
175292013-03-27 Walter Lee <walt@tilera.com>
17530
e594716a 17531 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
17532 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
17533
bf60f4ca
WL
175342013-03-27 Walter Lee <walt@tilera.com>
17535
e594716a 17536 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
17537 (*sibcall_value): Ditto.
17538
e3b51eeb
WL
175392013-03-27 Walter Lee <walt@tilera.com>
17540
17541 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
17542 (insn_mnz_v8qi): ... this ...
17543 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
17544 vector equivalent.
17545 (insn_v<n>mnz): Replaced by ...
17546 (insn_v1mnz): ... this ...
17547 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
17548 equivalent.
17549 (insn_mz_<mode>): Replaced by ...
17550 (insn_mz_v8qi): ... this ...
17551 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
17552 vector equivalent.
17553 (insn_v<n>mz): Replaced by ...
17554 (insn_v1mz): ... this ...
17555 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
17556 equivalent.
17557
4fc7b145
EB
175582013-03-26 Eric Botcazou <ebotcazou@adacore.com>
17559
17560 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
17561
6f33817e
RM
175622013-03-26 Roland McGrath <mcgrathr@google.com>
17563
17564 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
17565 than fprintf with a non-constant, non-format string.
17566
93a4145b
UB
175672013-03-26 Uros Bizjak <ubizjak@gmail.com>
17568
17569 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
17570 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
17571 operand 0 predicate.
17572 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
17573 attribute. Use general_x64nomem_operand as operand 1 predicate.
17574 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
17575 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
17576 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
17577 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
17578 (mov<mode>_insv_1): Remove expander. Merge insn with
17579 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
17580 Use general_x64nomem_operand as operand 1 predicate.
17581 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
17582 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
17583 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
17584 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
17585 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
17586 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
17587 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
17588 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
17589 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
17590 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
17591 (general_x64nomem_operand): Ditto.
17592
c6a9ed5a 175932013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
17594
17595 * config/rtems.opt: Add -pthread option.
17596
31b0a960
RB
175972013-03-26 Richard Biener <rguenther@suse.de>
17598
93a4145b
UB
17599 * alias.c (find_base_term): Avoid redundant and not used recursion.
17600 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
17601 (true_dependence_1): Compute and pass base terms to base_alias_check.
17602 (write_dependence_p): Likewise.
17603 (may_alias_p): Likewise.
17604
79517551
SN
176052013-03-26 Sofiane Naci <sofiane.naci@arm.com>
17606
17607 * config/aarch64/aarch64.c (aarch64_classify_address): Support
17608 PC-relative load in SI modes and above only.
17609
a76213b9
XQ
176102013-03-26 Xinyu Qi <xyqi@marvell.com>
17611
17612 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
17613 * config/arm/iwmmxt.md (WCGR0): Update.
17614 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 17615
37ff9355
UB
176162013-03-26 Uros Bizjak <ubizjak@gmail.com>
17617
17618 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
17619 Use x64 and nox64 isa attributes.
17620
30b0317c
RB
176212013-03-26 Richard Biener <rguenther@suse.de>
17622
17623 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
17624 alignment computations and rely on get_object_alignment_1
17625 for the !TYPE_P case.
17626 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
17627
cbcdb140
WL
176282013-03-26 Walter Lee <walt@tilera.com>
17629
17630 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
17631 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
17632
dd884525 176332013-03-25 Jeff Law <law@redhat.com>
be672e08 17634
33159866
UB
17635 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
17636 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
17637 wrong version of prior patch.
17638
0051d3ec
WL
176392013-03-25 Walter Lee <walt@tilera.com>
17640
17641 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
17642 TILEGX_INSN_SHUFFLEBYTES1.
17643 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
17644 shufflebytes1.
17645 (tilegx_builtins): Ditto.
17646 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
17647
065a3605
WL
176482013-03-25 Walter Lee <walt@tilera.com>
17649
17650 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
17651 (floatunssisf2): New pattern.
17652 (floatsidf2): New pattern.
17653 (floatunssidf2): New pattern.
065a3605 17654
5b2a3c82
WL
176552013-03-25 Walter Lee <walt@tilera.com>
17656
17657 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
17658 tests for constraint J, K, N, P.
17659
192ea533
WL
176602013-03-25 Walter Lee <walt@tilera.com>
17661
17662 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
17663 Use indirect/pcrel encoding.
17664 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
17665 Ditto.
17666
855e0d0b
SE
176672013-03-25 Steve Ellcey <sellcey@mips.com>
17668
17669 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
17670 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
17671 * config/mips/mips.c (mips_option_override): Set IMADD default.
17672 * config/mips/mips.h (PTF_AVOID_IMADD): New.
17673 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
17674 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
17675 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
17676 * doc/invoke.texi (-mimadd/-mno-imadd): New.
17677
39e45653
JL
176782013-03-25 Jeff Law <law@redhat.com>
17679
17680 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
17681 slightly to avoid creating and folding useless trees. Simplify
17682 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
17683
7482c470
UB
176842013-03-25 Uros Bizjak <ubizjak@gmail.com>
17685
17686 * config/i386/i386.md (*zero_extendsidi2): Merge with
17687 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
17688 * config/i386/predicates.md (x86_64_zext_operand): Rename from
17689 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
17690 targets. Clarify comment.
17691
4a53743e
MJ
176922013-03-25 Martin Jambor <mjambor@suse.cz>
17693
17694 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
17695 pass-through jump functions differently.
17696 (ipa_read_jump_function): Likewise. Also use setter functions to set
17697 up jump functions.
17698
162712de
MJ
176992013-03-25 Martin Jambor <mjambor@suse.cz>
17700
17701 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
17702 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
17703 process it.
17704 (ipa_get_indirect_edge_target): New function.
17705 (devirtualization_time_bonus): New parameter known_aggs, pass it to
17706 ipa_get_indirect_edge_target. Update all callers.
17707 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
17708 ipa_get_indirect_edge_target_1 instead of calling
17709 ipa_get_indirect_edge_target.
17710 (create_specialized_node): Pass aggvlas to
17711 ipcp_discover_new_direct_edges.
17712
a5a4c20a
KT
177132013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17714
17715 * config/arm/arm.md (f_sels, f_seld): New types.
17716 (*cmov<mode>): New pattern.
17717 * config/arm/predicates.md (arm_vsel_comparison_operator): New
17718 predicate.
17719
f992b9fc
KT
177202013-03-25 Kai Tietz <ktietz@redhat.com>
17721
17722 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
17723 POSIX-printf for mingw-hosted builds.
17724
c16fd676
RB
177252013-03-25 Richard Biener <rguenther@suse.de>
17726
17727 PR middle-end/56694
17728 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
17729 must-not-throw stmt location.
17730
5ad29f12
KT
177312013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17732
17733 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
17734 Emit load-acquire versions when acq is true.
17735 (arm_emit_store_exclusive): Add rel parameter.
17736 Emit store-release versions when rel is true.
17737 (arm_split_compare_and_swap): Use acquire-release instructions
17738 instead.
17739 of barriers when appropriate.
17740 (arm_split_atomic_op): Likewise.
17741 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
17742 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
17743 (VUNSPEC_SLX): Likewise.
17744 (VUNSPEC_LDA): Likewise.
17745 (VUNSPEC_STL): Likewise.
17746 * config/arm/sync.md (atomic_load<mode>): New pattern.
17747 (atomic_store<mode>): Likewise.
17748 (arm_load_acquire_exclusive<mode>): Likewise.
17749 (arm_load_acquire_exclusivesi): Likewise.
17750 (arm_load_acquire_exclusivedi): Likewise.
17751 (arm_store_release_exclusive<mode>): Likewise.
17752
03a7dddb
CM
177532013-03-25 Catherine Moore <clm@codesourcery.com>
17754
17755 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
17756 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
17757 * config/mip/predicates.md (lwsp_swsp_operand,
17758 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
17759 sb16_operand, db4_operand, db7_operand, ib3_operand,
17760 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
17761 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
17762 andi16_operand): New predicates.
17763 * config/mips/mips.md (compression): New attribute.
17764 (enabled): New attribute.
17765 (length): Consider compression in computing length.
17766 (shift_compression): New code attribute.
17767 (*add<mode>3): New operands. Record compression.
17768 (sub<mode>3): Likewise.
17769 (one_cmpl<mode>2): Likewise.
17770 (*and<mode>3): Likewise.
17771 (*ior<mode>3): Likewise.
17772 (unnamed pattern for xor): Likewise.
17773 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
17774 (*<optab><mode>3): Likewise.
17775 (*mov<mode>_internal: Likewise.
17776 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
17777 (mips_unsigned_immediate_p): New.
17778 (umips_lwsp_swsp_address_p): New.
17779 (m16_based_address_p): New.
17780 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
17781 (mips_unsigned_immediate_p): New prototype.
17782 (lwsp_swsp_address_p): New prototype.
17783 (m16_based_address_p): New prototype.
17784 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
17785 (mips_signed_immediate_p): New function.
17786 (m16_based_address_p): New function.
17787 (lwsp_swsp_address_p): New function.
17788 (mips_print_operand_punctuation): Recognize short delay slot insns
17789 for microMIPS.add<mode>3"
17790
f35c297f 177912013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 17792
f35c297f
KT
17793 PR target/56720
17794 * config/arm/iterators.md (v_cmp_result): New mode attribute.
17795 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
17796
051b9446
RB
177972013-03-25 Richard Biener <rguenther@suse.de>
17798
17799 PR tree-optimization/56689
17800 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
17801 any edge.
17802
374001cb
RB
178032013-03-25 Richard Biener <rguenther@suse.de>
17804
17805 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
17806 of bitmap.
17807 (memory_references): Likewise.
17808 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
17809 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
17810 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
17811 (gather_mem_refs_in_loops): Fold into ...
17812 (analyze_memory_references): ... this. Move initialization
17813 to tree_ssa_lim_initialize.
17814 (fill_always_executed_in): Rename to ...
17815 (fill_always_executed_in_1): ... this.
17816 (fill_always_executed_in): Move contains_call computation to
17817 this new function from ...
17818 (tree_ssa_lim_initialize): ... here.
17819 (tree_ssa_lim): Call fill_always_executed_in.
17820
57895947
EB
178212013-03-25 Eric Botcazou <ebotcazou@adacore.com>
17822
17823 * postreload.c (reload_combine): Fix code detecting returns.
17824
1e1b18c1
EB
178252013-03-25 Eric Botcazou <ebotcazou@adacore.com>
17826
17827 * function.c (emit_use_return_register_into_block): On cc0 targets,
17828 do not emit the sequence between cc0 setter and user.
17829
9216baf1
KT
178302013-03-25 Kai Tietz <ktietz@redhat.com>
17831
1e1b18c1
EB
17832 * config/i386/predicates.md (local_symbolic_operand): Interpret
17833 dll-imported symbols as none-local.
9216baf1 17834
76421b44
RB
178352013-03-25 Richard Biener <rguenther@suse.de>
17836
17837 * tree-ssa-loop-im.c (struct depend): Remove.
17838 (struct lim_aux_data): Make depends a vec of gimples.
17839 (free_lim_aux_data): Adjust.
17840 (add_dependency): Likewise.
17841 (set_level): Likewise.
17842
d154bfa2
RB
178432013-03-25 Richard Biener <rguenther@suse.de>
17844
17845 PR middle-end/56434
17846 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
17847 the pointer returned by calls with ECF_MALLOC set.
17848
2cd9804e
UB
178492013-03-24 Uros Bizjak <ubizjak@gmail.com>
17850
acef5fe0
UB
17851 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
17852
178532013-03-24 Uros Bizjak <ubizjak@gmail.com>
17854
17855 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
17856 using MMXMODE mode iterator.
17857 (*move<mode>_internal): Merge with *movv2sf_internal and
17858 *movv2sf_internal_rex64 using MMXMODE mode iterator.
17859
225ccc68
SB
178602013-03-23 Steven Bosscher <steven@gcc.gnu.org>
17861
85c0f02d
SB
17862 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
17863 (record_last_mem_set_info): Likewise.
17864
225ccc68
SB
17865 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
17866 of XNEWVEC followed by memset.
17867 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
17868
b64925dc
SB
178692013-03-23 Steven Bosscher <steven@gcc.gnu.org>
17870
17871 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
17872 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
17873 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
17874 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
17875 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
17876 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
17877 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
17878 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
17879 BARRIER_P instead of GET_CODE.
17880
b9aaf52e
EB
178812013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17882
17883 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
17884 inaccuracy in the probing code.
17885
17886 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
17887 (ctrapdi4): Likewise.
17888
66de4d7c
EB
178892013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17890
17891 * calls.c (expand_call): Add missing guard to code handling return
17892 of non-BLKmode structures in MSB.
17893 * function.c (expand_function_end): Likewise.
17894
4f25c8fb
EB
178952013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17896
17897 * combine.c (try_combine): Adjust comment. Do not add the set of
17898 insn #0 if the destination indirectly is set or dies in insn #2.
17899 Tidy up code to distribute a new note.
17900
23b7850d
UB
179012013-03-22 Uros Bizjak <ubizjak@gmail.com>
17902
17903 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
17904 also for alternatives 16 and 17.
17905
bed852cf
UB
179062013-03-22 Uros Bizjak <ubizjak@gmail.com>
17907
17908 * config/i386/sse.md (*mov<mode>_internal): Merge with
17909 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
17910 Emit insn template depending on type attribute. Use
17911 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
17912 movd instead of movq mnemonic for interunit moves. Rewrite mode
17913 attribute calculation. Remove unit attribute calculation.
17914 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
17915 Set prefix_data16 attribute for DImode ssemov types.
17916 Use Ym instead of y for SSE-MMX conversion alternatives.
17917 Reorder operand constraints.
17918
1e8a7937
SB
179192013-03-22 Steven Bosscher <steven@gcc.gnu.org>
17920
17921 * df.h (df_insn_delete): Adjust prototype.
17922 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
17923 and let it decide whether mark the basic block dirty.
17924 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
17925 * df-scan.c (df_insn_info_delete): New helper function, split
17926 off from df_insn_delete.
17927 (df_scan_free_bb_info): Use it.
17928 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
17929 Likewise.
17930 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
17931 that the insn is actually an insn and it has a non-NULL basic block.
17932 Do not mark basic block dirty if only deleting a DEBUG_INSN.
17933
e14d094c
RB
179342013-03-22 Richard Biener <rguenther@suse.de>
17935
17936 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
17937 dep_ref members.
17938 (mem_ref_alloc): Do not allocate them.
17939 (refs_independent_p): Do not query or maintain a cache.
17940
e9cf7316
RB
179412013-03-22 Richard Biener <rguenther@suse.de>
17942
17943 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
17944 (gather_mem_refs_in_loops): Do not compute it.
17945 (analyze_memory_references): Do not allocate it.
17946 (tree_ssa_lim_finalize): Do not free it.
17947 (for_all_locs_in_loop): Do not query all_refs_in_loop.
17948
f046e81b
RB
179492013-03-22 Richard Biener <rguenther@suse.de>
17950
17951 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 17952
a05c0ddf
IB
179532013-03-22 Ian Bolton <ian.bolton@arm.com>
17954
17955 * config/aarch64/aarch64.c (aarch64_print_operand): New
17956 format specifier for printing a constant in hex.
17957 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
17958 format specifier for printing second operand.
17959
c00217fc
RB
179602013-03-22 Richard Biener <rguenther@suse.de>
17961
17962 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
17963 bitmaps.
17964 (gather_mem_refs_in_loops): Perform store accumulation here.
17965 (create_vop_ref_mapping_loop): Remove.
17966 (create_vop_ref_mapping): Likewise.
17967 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 17968 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
17969 (record_indep_loop): Remove.
17970 (record_dep_loop): New function.
17971 (ref_indep_loop_p_1): Adjust to only walk over references
17972 in the loop, not its subloops.
17973 (ref_indep_loop_p): Rename to ...
17974 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
17975 maintaining a more fine-grained cache.
17976 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
17977 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
17978
15d19bf8
RB
179792013-03-22 Richard Biener <rguenther@suse.de>
17980
17981 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
17982 (struct mem_ref): Make accesses_in_loop a vec of a vec of
17983 aggregate mem_ref_loc.
17984 (free_mem_ref_locs): Inline into ...
17985 (memref_free): ... this and adjust.
17986 (mem_ref_alloc): Adjust.
17987 (mem_ref_locs_alloc): Remove.
17988 (record_mem_ref_loc): Adjust.
17989 (get_all_locs_in_loop): Rewrite into ...
17990 (for_all_locs_in_loop): ... this iterator.
17991 (rewrite_mem_ref_loc): New functor.
17992 (rewrite_mem_refs): Use for_all_locs_in_loop.
17993 (sm_set_flag_if_changed): New functor.
17994 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
17995 (ref_always_accessed): New functor.
17996 (ref_always_accessed_p): Use for_all_locs_in_loop.
17997
6f37411d
MG
179982013-03-21 Marc Glisse <marc.glisse@inria.fr>
17999
18000 * tree-pass.h (PROP_gimple_lvec): New.
18001 * passes.c (dump_properties): Handle PROP_gimple_lvec.
18002 (init_optimization_passes): Move pass_lower_vector.
18003 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
18004 PROP_gimple_lvec.
18005 (pass_lower_vector): Provide PROP_gimple_lvec.
18006 (pass_lower_vector_ssa): Likewise.
18007 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
18008
511ef689
MW
180092013-03-21 Mark Wielaard <mjw@redhat.com>
18010
18011 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
18012
cc1df30b
UB
180132013-03-21 Uros Bizjak <ubizjak@gmail.com>
18014
18015 * config/i386/i386.md (*movdi_internal): Disparage slightly
18016 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
18017 conversion alternatives.
18018
c845cfe1
JJ
180192013-03-21 Jakub Jelinek <jakub@redhat.com>
18020
37e99116
JJ
18021 PR middle-end/48087
18022 * diagnostic.def (DK_WERROR): New kind.
18023 * diagnostic.h (werrorcount): Define.
18024 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
18025 promoted to DK_ERROR, increment DK_WERROR counter instead of
18026 DK_ERROR counter.
18027 * toplev.c (toplev_main): Call print_ignored_options even if
18028 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
18029 even if just werrorcount is non-zero.
18030
c845cfe1
JJ
18031 PR debug/55608
18032 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
18033 on failure.
18034 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
18035 (string_cst_pool_decl): New function.
18036 (optimize_one_addr_into_implicit_ptr): New function.
18037 (resolve_addr_in_expr): Optimize DWARF location expression
18038 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
18039 which doesn't live in memory, but has DW_AT_location or
18040 DW_AT_const_value, or refers to a string literal, into
18041 DW_OP_GNU_implicit_pointer.
18042 (optimize_location_into_implicit_ptr): New function.
18043 (resolve_addr): If removing DW_AT_location of a variable because
18044 it was DW_OP_addr of address of the variable, but the variable doesn't
18045 live in memory, try to emit const value attribute for the initializer.
18046
08e0cda6
MG
180472013-03-21 Marc Glisse <marc.glisse@inria.fr>
18048
18049 * tree.h (VECTOR_TYPE_P): New macro.
18050 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
18051 TYPE_MODE): Use it.
18052 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
18053 VEC_COND_EXPR cannot be lvalues.
18054 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
18055
d08633b4
MG
180562013-03-21 Marc Glisse <marc.glisse@inria.fr>
18057
18058 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
18059 Restrict the transformation to equal modes.
18060
e6647190
RB
180612013-03-21 Richard Biener <rguenther@suse.de>
18062
18063 PR tree-optimization/39326
18064 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
18065 (MEM_ANALYZABLE): Adjust.
18066 (record_mem_ref_loc): Move bitmap ops ...
18067 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
18068 unanalyzable refs, do not record locations for it.
18069 (analyze_memory_references): Allocate ref zero as shared
18070 unanalyzable ref.
18071 (refs_independent_p): Do not test for unanalyzed mems here.
18072 (ref_indep_loop_p_1): Special-case disambiguation against
18073 the unanalyzed ref.
cc1df30b 18074 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 18075
65074f54
CL
180762013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
18077
18078 * config/arm/arm-protos.h (tune_params): Add
18079 prefer_neon_for_64bits field.
18080 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
18081 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
18082 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
18083 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
18084 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
18085 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
18086 (arm_option_override): Handle -mneon-for-64bits new option.
18087 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
18088 (prefer_neon_for_64bits): Declare new variable.
18089 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 18090 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
18091 (arch_enabled): Handle new arch types. Remove support for onlya8
18092 and nota8.
18093 (one_cmpldi2): Use new arch names.
bc5faa5b 18094 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
18095 * config/arm/arm.opt (mneon-for-64bits): Add option.
18096 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
18097 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
18098 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
18099 of onlya8.
18100 * doc/invoke.texi (-mneon-for-64bits): Document.
18101
5a2d2a79
RB
181022013-03-21 Richard Biener <rguenther@suse.de>
18103
18104 PR tree-optimization/39326
18105 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
18106 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 18107 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 18108
5abe1e05
RB
181092013-03-21 Richard Biener <rguenther@suse.de>
18110
18111 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
18112 (vect_insert_into_interleaving_chain): Likewise.
18113 (vect_drs_dependent_in_basic_block): Inline ...
18114 (vect_slp_analyze_data_ref_dependence): ... here. New function,
18115 split out from ...
18116 (vect_analyze_data_ref_dependence): ... here. Simplify.
18117 (vect_check_interleaving): Simplify.
18118 (vect_analyze_data_ref_dependences): Likewise. Split out ...
18119 (vect_slp_analyze_data_ref_dependences): ... this new function.
18120 (dr_group_sort_cmp): New function.
18121 (vect_analyze_data_ref_accesses): Compute data-reference groups
18122 here instead of in vect_analyze_data_ref_dependence. Use
18123 a more efficient algorithm.
18124 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
18125 vect_slp_analyze_data_ref_dependences. Call
18126 vect_analyze_data_ref_accesses earlier.
18127 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
18128 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
18129 (vect_slp_analyze_data_ref_dependences): New prototype.
18130
cad1735b
RB
181312013-03-21 Richard Biener <rguenther@suse.de>
18132
18133 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
18134 ref is stored in the loop.
18135 (find_refs_for_sm): Walk only over all stores.
18136 (store_motion_loop): Allocate from lim_bitmap_obstack.
18137 (store_motion): Likewise.
18138
141310ef
RB
181392013-03-21 Richard Biener <rguenther@suse.de>
18140
18141 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
18142 Update virtual SSA form.
18143
5022315a
RO
181442013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18145
18146 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
18147 * configure: Regenerate.
18148 * config.in: Regenerate.
18149 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
18150 if !HAVE_LD_EH_FRAME_CIEV3.
18151
50d4421c
RB
181522013-03-21 Richard Biener <rguenther@suse.de>
18153
18154 * tree-cfg.c (verify_expr_no_block): New function.
18155 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
18156 nor DECL_VALUE_EXPR have locations with associated blocks.
18157 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
18158 (clear_unused_block_pointer): Remove code dealing with
18159 blocks in DECL_DEBUG_EXPR locations.
18160
839b422f
RB
181612013-03-21 Richard Biener <rguenther@suse.de>
18162
18163 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
18164 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
18165 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
18166 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
18167 instead of DECL_DEBUG_EXPR_IS_FROM.
18168 * gimplify.c (gimplify_modify_expr): Likewise.
18169 * tree-cfg.c (verify_expr_location_1): Likewise.
18170 * tree-complex.c (create_one_component_var): Likewise.
18171 * tree-sra.c (create_access_replacement): Likewise.
18172 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
18173 (clear_unused_block_pointer): Likewise.
18174 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
18175 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
18176 * var-tracking.c (var_debug_decl): Likewise.
18177 (track_expr_p): Likewise.
18178 * tree-inline.c (add_local_variables): Likewise. Set
18179 DECL_HAS_DEBUG_EXPR_P after copying it.
18180 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
18181 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
18182
fe04878d
UB
181832013-03-21 Uros Bizjak <ubizjak@gmail.com>
18184
18185 PR bootstrap/56656
18186 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
18187 * configure: Regenerate.
18188 * config.in: Regenerate.
18189 * config/i386/i386.md (*movdf_internal): Use
18190 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
18191 movd instead of movq mnemonic for interunit moves.
18192 (*movdi_internal): Ditto.
18193
bd059b26 181942013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
18195
18196 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
18197 (abd<mode>_3): New pattern.
18198 (aba<mode>_3): New pattern.
18199 (fabd<mode>_3): New pattern.
18200
bd059b26 182012013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
18202
18203 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
18204 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
18205 occurrence of REGISTER_PREFIX as its empty string.
18206
4f1f78b9
JL
182072013-03-20 Jeff Law <law@redhat.com>
18208
18209 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
18210 addititional equivalences for equality comparisons between an SSA_NAME
18211 and a constant where the SSA_NAME was set from a widening conversion.
18212
327a1118
WL
182132013-03-20 Walter Lee <walt@tilera.com>
18214
18215 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
18216
813e0036
UB
182172013-03-20 Uros Bizjak <ubizjak@gmail.com>
18218
18219 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
18220 depending on type attribute.
18221 (*movti_internal): Ditto.
18222 (*movtf_internal): Ditto.
18223 (*movxf_internal): Ditto.
18224 (*movdf_internal): Ditto.
18225 (*movsf_internal): Ditto.
18226
7cf34aae
UB
182272013-03-20 Uros Bizjak <ubizjak@gmail.com>
18228
18229 * config/i386/i386.md (*movti_internal): Set prefix attribute to
18230 maybe_vex for sselog1 and ssemov types.
18231 (*movdi_internal): Reorder operand constraints.
18232 (*movsi_internal): Ditto. Set prefix attribute to
18233 maybe_vex for sselog1 and ssemov types.
18234 (*movtf_internal): Set prefix attribute to maybe_vex
18235 for sselog1 and ssemov types.
18236 (*movdf_internal): Ditto. Set prefix_data16 attribute for
18237 DImode ssemov types. Reorder operand constraints.
18238 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
18239 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
18240 attribute for SImode ssemov types. Reorder operand constraints.
18241
19321415
MJ
182422013-03-20 Martin Jambor <mjambor@suse.cz>
18243
18244 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
18245 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
18246
12211b99 182472013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
18248
18249 * config/rs6000/predicates.md (indexed_address, update_address_mem
18250 update_indexed_address_mem): New predicates.
18251 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
18252 attribute for load/store instructions.
18253 * config/rs6000/dfp.md (movsd_store): Likewise.
18254 (movsd_load): Likewise.
18255 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
18256 (unnamed HI->DI extend define_insn): Likewise.
18257 (unnamed SI->DI extend define_insn): Likewise.
18258 (unnamed QI->SI extend define_insn): Likewise.
18259 (unnamed QI->HI extend define_insn): Likewise.
18260 (unnamed HI->SI extend define_insn): Likewise.
18261 (unnamed HI->SI extend define_insn): Likewise.
18262 (extendsfdf2_fpr): Likewise.
18263 (movsi_internal1): Likewise.
18264 (movsi_internal1_single): Likewise.
18265 (movhi_internal): Likewise.
18266 (movqi_internal): Likewise.
18267 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
18268 attribute for load/store instructions.
18269 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
18270 instructions.
18271 (mov<mode>_softfloat): Likewise.
18272 (mov<mode>_hardfloat32): Likewise.
18273 (mov<mode>_hardfloat64): Likewise.
18274 (mov<mode>_softfloat64): Likewise.
18275 (movdi_internal32): Likewise.
18276 (movdi_internal64): Likewise.
18277 (probe_stack_<mode>): Likewise.
18278
182792013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
18280
18281 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
18282 floating point, and decimal floating point to reload iterator.
18283
18284 * config/rs6000/constraints.md (wl constraint): New constraints to
18285 return FLOAT_REGS if certain options are used to reduce the number
18286 of separate patterns that exist in the file.
18287 (wx constraint): Likewise.
18288 (wz constraint): Likewise.
18289
18290 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
18291 -mdebug=reg, print wg, wl, wx, and wz constraints.
18292 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
18293 Initialize the reload functions for 64-bit binary/decimal floating
18294 point types.
18295 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
18296 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
18297 create the buffer on the stack to overcome not having a 32-bit
18298 load and store.
18299 (rs6000_emit_move): Likewise.
18300 (rs6000_secondary_memory_needed_rtx): Likewise.
18301 (rs6000_alloc_sdmode_stack_slot): Likewise.
18302 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
18303 via xxlxor, just like DFmode 0.0.
18304
18305 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
18306 define as 1 if we are running on a power7 or newer.
18307 (enum r6000_reg_class_enum): Add new constraints.
18308
18309 * config/rs6000/dfp.md (movsd): Delete, combine with binary
18310 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
18311 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 18312 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
18313 (movsd splitter): Likewise.
18314 (movsd_hardfloat): Likewise.
18315 (movsd_softfloat): Likewise.
18316
18317 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
18318 binary and decimal floating point moves.
18319 (fmove_ok): New attributes to combine binary and decimal floating
18320 point moves, and to combine power6x (mfpgpr) moves along normal
18321 floating moves.
18322 (real_value_to_target): Likewise.
18323 (f32_lr): Likewise.
18324 (f32_lm): Likewise.
18325 (f32_li): Likewise.
18326 (f32_sr): Likewise.
18327 (f32_sm): Likewise.
18328 (f32_si): Likewise.
18329 (movsf): Combine binary and decimal floating point moves. Combine
18330 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 18331 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
18332 (mov<mode> for SFmode/SDmode); Likewise.
18333 (SFmode/SDmode splitters): Likewise.
18334 (movsf_hardfloat): Likewise.
18335 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
18336 (movsf_softfloat): Likewise.
18337 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
18338
18339 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
18340 wx and wz constraints.
18341
18342 * config/rs6000/constraints.md (wg constraint): New constraint to
18343 return FLOAT_REGS if -mmfpgpr (power6x) was used.
18344
18345 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
18346 constraint.
18347
18348 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
18349 -mdebug=reg, print wg, wl, wx, and wz constraints.
18350 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
18351 Initialize the reload functions for 64-bit binary/decimal floating
18352 point types.
18353 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
18354 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
18355 create the buffer on the stack to overcome not having a 32-bit
18356 load and store.
18357 (rs6000_emit_move): Likewise.
18358 (rs6000_secondary_memory_needed_rtx): Likewise.
18359 (rs6000_alloc_sdmode_stack_slot): Likewise.
18360 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
18361 via xxlxor, just like DFmode 0.0.
18362
c6d5ff83
MM
18363 * config/rs6000/dfp.md (movdd): Delete, combine with binary
18364 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
18365 with other moves by using conditional constraits (wg). Use LFIWZX
18366 and STFIWX for loading SDmode on power7.
18367 (movdd splitters): Likewise.
18368 (movdd_hardfloat32): Likewise.
18369 (movdd_softfloat32): Likewise.
18370 (movdd_hardfloat64_mfpgpr): Likewise.
18371 (movdd_hardfloat64): Likewise.
18372 (movdd_softfloat64): Likewise.
18373
18374 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
18375 64-bit binary and decimal floating point moves.
18376 (FMOVE64X): Likewise.
18377 (movdf): Combine 64-bit binary and decimal floating point moves.
18378 Combine power6x (mfpgpr) moves with other moves by using
18379 conditional constraits (wg).
18380 (mov<mode> for DFmode/DDmode): Likewise.
18381 (DFmode/DDmode splitters): Likewise.
18382 (movdf_hardfloat32): Likewise.
18383 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
18384 (movdf_softfloat32): Likewise.
18385 (movdf_hardfloat64_mfpgpr): Likewise.
18386 (movdf_hardfloat64): Likewise.
18387 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
18388 (movdf_softfloat64): Likewise.
18389 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
18390 (reload_<mode>_load): Move to later in the file so they aren't in
18391 the middle of the floating point move insns.
18392 (reload_<mode>_store): Likewise.
18393
18394 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
18395 constraint.
18396
18397 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
18398 constraint if -mdebug=reg.
bd059b26
UB
18399 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
18400 Enable using dd reload support if needed.
c6d5ff83
MM
18401
18402 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
18403 binary and decimal floating point moves in rs6000.md.
18404 (movtd_internal): Likewise.
18405
18406 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
18407 decimal floating point moves.
18408 (movtf): Likewise.
18409 (movtf_internal): Likewise.
18410 (mov<mode>_internal, TDmode/TFmode): Likewise.
18411 (movtf_softfloat): Likewise.
18412 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
18413
18414 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
18415 movdi_internal64, using wg constraint for move direct operations.
18416 (movdi_internal64): Likewise.
18417
18418 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
18419 MODES_TIEABLE_P for selected modes. Print the numerical value of
18420 the various virtual registers. Use GPR/FPR first/last values,
18421 instead of hard coding the register numbers. Print which modes
18422 have reload functions registered.
bd059b26
UB
18423 (rs6000_option_override_internal): If -mdebug=reg, trace the options
18424 settings before/after setting cpu, target and subtarget settings.
18425 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
18426 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
18427 (rs6000_secondary_reload_fail): Likewise.
18428 (rs6000_secondary_reload_inner): Likewise.
18429
18430 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
18431 macros for first/last GPR and FPR registers.
18432 (LAST_GPR_REGNO): Likewise.
18433 (FIRST_FPR_REGNO): Likewise.
18434 (LAST_FPR_REGNO): Likewise.
18435
18436 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
18437 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
18438 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
18439 (vcond<mode><mode>): Likewise.
18440 (vcondu<mode><mode>): Likewise.
18441 (vector_gtu<mode>): Likewise.
18442 (vector_gte<mode>): Likewise.
18443 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 18444 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
18445 (ior<mode>3): Likewise.
18446 (and<mode>3): Likewise.
18447 (one_cmpl<mode>2): Likewise.
18448 (nor<mode>3): Likewise.
18449 (andc<mode>3): Likewise.
18450
18451 * config/rs6000/constraints.md (wt constraint): New constraint
18452 that returns VSX_REGS if TImode is allowed in VSX registers.
18453
18454 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
18455 constant under VSX.
18456
18457 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
18458 similar to TImode, but it is restricted to being in the GPRs.
18459
18460 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
18461 TImode to occupy a single VSX register.
18462
18463 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
18464 -mvsx-timode for power7/power8.
18465 (power7 cpu): Likewise.
18466 (power8 cpu): Likewise.
18467
18468 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
18469 sure that TFmode/TDmode take up two registers if they are ever
18470 allowed in the upper VSX registers.
18471 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
18472 registers.
18473 (rs6000_init_hard_regno_mode_ok): Likewise.
18474 (rs6000_debug_reg_global): Add debugging for PTImode and wt
18475 constraint. Print if LRA is turned on.
18476 (rs6000_option_override_internal): Give an error if -mvsx-timode
18477 and VSX is not enabled.
18478 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
18479 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
18480 to reg+offset addressing. Use PTImode when checking offset
18481 addresses for validity.
18482 (reg_offset_addressing_ok_p): Likewise.
18483 (rs6000_legitimate_offset_address_p): Likewise.
18484 (rs6000_legitimize_address): Likewise.
18485 (rs6000_legitimize_reload_address): Likewise.
18486 (rs6000_legitimate_address_p): Likewise.
18487 (rs6000_eliminate_indexed_memrefs): Likewise.
18488 (rs6000_emit_move): Likewise.
18489 (rs6000_secondary_reload): Likewise.
18490 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
18491 reloads to fpr registers to continue to use reg+offset addressing,
18492 but 64-bit reloads to altivec registers need reg+reg addressing.
18493 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
18494 it. Treat LO_SUM like a PLUS operation.
18495 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 18496 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
18497 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
18498 registers to share a register with a smaller sized type, since VSX
18499 puts scalars in the upper 64-bits.
18500 (print_operand): Add support for PTImode.
18501 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
18502 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
18503 registers, but don't have arithmetic support.
18504 (rs6000_memory_move_cost): Add test for VSX.
18505 (rs6000_opt_masks): Add -mvsx-timode.
18506
18507 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
18508 for TImode.
18509 (VSs): Likewise.
18510 (VSr): Use wt constraint for TImode.
18511 (VSv): Drop TImode support.
18512 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
18513 (vsx_movti_64bit): Likewise.
18514 (vsx_movti_32bit): Likewise.
18515 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
18516 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
18517 one '?' on the appropriate output constraint. Do not allow TImode
18518 logical operations on 32-bit systems.
18519 (vsx_ior<mode>3): Likewise.
18520 (vsx_xor<mode>3): Likewise.
18521 (vsx_one_cmpl<mode>2): Likewise.
18522 (vsx_nor<mode>3): Likewise.
18523 (vsx_andc<mode>3): Likewise.
18524 (vsx_concat_<mode>): Likewise.
18525 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
18526
18527 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
18528 OPTION_MASK_VSX_TIMODE.
18529 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
18530 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
18531
18532 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
18533 (TI2 iterator): New iterator for TImode, PTImode.
18534 (wd mode attribute): Add values for vector types.
bd059b26
UB
18535 (movti_string): Replace TI move operations with operations for TImode
18536 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
18537 (mov<mode>_string, TImode/PTImode): Likewise.
18538 (movti_ppc64): Likewise.
18539 (mov<mode>_ppc64, TImode/PTImode): Likewise.
18540 (TI mode splitters): Likewise.
18541
18542 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
18543 constraint.
18544
1fc5eced
MG
185452013-03-20 Marc Glisse <marc.glisse@inria.fr>
18546
18547 PR tree-optimization/56355
18548 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
18549 Also handle integers with undefined overflow.
18550
22c4c869
CM
185512013-03-20 Catherine Moore <clm@codesourcery.com>
18552 Maciej W. Rozycki <macro@codesourcery.com>
18553 Tom de Vries <tom@codesourcery.com>
12211b99 18554 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
18555 Iain Sandoe <iain@codesourcery.com>
18556 Nathan Froyd <froydnj@codesourcery.com>
12211b99 18557 Chao-ying Fu <fu@mips.com>
22c4c869
CM
18558
18559 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 18560 Document new function attributes.
22c4c869
CM
18561 * doc/invoke.texi (minterlink-compressed, mmicromips,
18562 m14k, m14ke, m14kec): Document new options.
18563 (minterlink-mips16): Update documentation.
18564 * doc/md.texi (ZC, ZD): Document new constraints.
18565 * configure.ac (gcc_cv_as_micromips): Check if linker
18566 supports the .set micromips directive.
18567 * configure: Regenerate.
18568 * config.in: Regenerate.
18569 * config/mips/mips-tables.opt: Regenerate.
18570 * config/mips/micromips.md: New file.
18571 * constraints.md (ZC, ZD): New constraints.
18572 * config/mips/predicates.md (movep_src_register): New predicate.
18573 (movep_src_operand): New predicate.
18574 (non_volatile_mem_operand): New predicate.
18575 * config/mips/mips.md (multimem): New type.
18576 (length): Differentiate between 17-bit and 18-bit branch offsets.
18577 (MOVEP1, MOVEP2): New mode iterator.
33159866 18578 (mov_<load>l): Use ZC constraint.
22c4c869
CM
18579 (mov_<load>r): Likewise.
18580 (mov_<store>l): Likewise.
18581 (mov_<store>r): Likewise.
18582 (*branch_equality<mode>_inverted): Add microMIPS support.
18583 (*branch_equality<mode>): Likewise.
18584 (*jump_absolute): Likewise.
18585 (indirect_jump_<mode>): Likewise.
18586 (tablejump_<mode>): Likewise.
18587 (<optab>_internal): Likewise.
18588 (sibcall_internal): Likewise.
18589 (sibcall_value_internal): Likewise.
18590 (prefetch): Use constraint ZD.
18591 * config/mips/mips.opt (minterlink-compressed): New option.
18592 (minterlink-mips16): Now an alias for minterlink-compressed.
18593 (mmicromips): New option.
18594 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
18595 (compare_and_swap_12): Likewise.
18596 (sync_add<mode>): Likewise.
18597 (sync_<optab>_12): Likewise.
18598 (sync_old_<optab>_12): Likewise.
18599 (sync_new_<optab>_12): Likewise.
18600 (sync_nand_12): Likewise.
18601 (sync_old_nand_12): Likewise.
18602 (sync_new_nand_12): Likewise.
18603 (sync_sub<mode>): Likewise.
18604 (sync_old_add<mode>): Likewise.
18605 (sync_old_sub<mode>): Likewise.
18606 (sync_new_add<mode>): Likewise.
18607 (sync_new_sub<mode>): Likewise.
18608 (sync_<optab><mode>): Likewise.
18609 (sync_old_<optab><mode>): Likewise.
18610 (sync_new_<optab><mode>): Likewise.
18611 (sync_nand<mode>): Likewise.
18612 (sync_old_nand<mode>): Likewise.
18613 (sync_new_nand<mode>): Likewise.
18614 (sync_lock_test_and_set<mode>): Likewise.
18615 (test_and_set_12): Likewise.
18616 (atomic_compare_and_swap<mode>): Likewise.
18617 (atomic_exchange<mode>_llsc): Likewise.
18618 (atomic_fetch_add<mode>_llsc): Likewise.
18619 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
18620 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
18621 (umips_save_restore_pattern_p): Likewise.
18622 (umips_load_store_pair_p): Likewise.
18623 (umips_output_load_store_pair): Likewise.
18624 (umips_movep_target_p): Likewise.
18625 (umips_12bit_offset_address_p): Likewise.
18626 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
18627 (mips_base_mips16): Rename this...
18628 (mips_base_compression_flags): ...to this. Update all uses.
18629 (mips_attribute_table): Add micromips, nomicromips and nocompression.
18630 (mips_mips16_decl_p): Delete.
18631 (mips_nomips16_decl_p): Delete.
33159866 18632 (mips_get_compress_on_flags): New function.
22c4c869
CM
18633 (mips_get_compress_off_flags): New function.
18634 (mips_get_compress_mode): New function.
18635 (mips_get_compress_on_name): New function.
18636 (mips_get_compress_off_name): New function.
18637 (mips_insert_attributes): Support multiple compression types.
18638 (mips_merge_decl_attributes): Likewise.
18639 (umips_12bit_offset_address_p): New function.
18640 (mips_start_function_definition): Emit .set micromips directive.
18641 (mips_call_may_need_jalx_p): New function.
18642 (mips_function_ok_for_sibcall): Add microMIPS support.
18643 (mips_print_operand_punctuation): Support short delay slots and
18644 compact jumps.
18645 (umips_swm_mask, umips_swm_encoding): New.
18646 (umips_build_save_restore): New function.
18647 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
18648 (was_mips16_p): Remove.
18649 (old_compression_mode): New.
18650 (mips_set_compression_mode): New function.
18651 (mips_set_current_function): Add microMIPS support.
18652 (mips_option_override): Likewise.
18653 (umips_save_restore_pattern_p): New function.
18654 (umips_output_save_restore): New function.
18655 (umips_load_store_pair_p_1): New function.
18656 (umips_load_store_pair_p): New function.
18657 (umips_output_load_store_pair_1): New function.
18658 (umips_output_load_store_pair): New function.
18659 (umips_movep_target_p) New function.
18660 (mips_prepare_pch_save): Add microMIPS support.
18661 * config/mips/mips.h (TARGET_COMPRESSION): New.
18662 (TARGET_CPU_CPP_BUILTINS): Update macro
18663 to use new compression flags and to support microMIPS.
18664 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
18665 (MIPS_ARCH_FLOAT_SPEC): Likewise.
18666 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
18667 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
18668 (ASM_SPEC): Support mmicromips and mno-micromips.
18669 (M16STORE_REG_P): New macro.
18670 (MIPS_CALL): Support TARGET_MICROMIPS.
18671 (MICROMIPS_J): New macro.
18672 (mips_base_mips16): Rename this...
18673 (mips_base_compression_flags): ...to this.
18674 (UMIPS_12BIT_OFFSET_P): New macro.
18675 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
18676 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
186772013-03-20 Richard Biener <rguenther@suse.de>
18678
18679 PR tree-optimization/56661
18680 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
18681 the result does not have to be distinct.
18682
54714c68
RB
186832013-03-20 Richard Biener <rguenther@suse.de>
18684
18685 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
18686 remap_gimple_op_r.
18687
cca1130d 186882013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 18689 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
18690
18691 PR rtl-optimization/56605
18692 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
18693
2a930377
UB
186942013-03-20 Uros Bizjak <ubizjak@gmail.com>
18695
18696 PR bootstrap/56656
18697 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
18698 that require movd instead of movq.
18699
d6d305fe
RB
187002013-03-20 Richard Biener <rguenther@suse.de>
18701
18702 * tree-ssa-structalias.c (struct variable_info): Add pointer
18703 to the first field of an aggregate with sub-vars. Make
18704 this and the pointer to the next subfield its ID.
18705 (vi_next): New function.
18706 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
18707 storedanything_id, integer_id): Increment by one.
18708 (new_var_info, get_call_vi, lookup_call_clobber_vi,
18709 get_call_clobber_vi): Adjust.
18710 (solution_set_expand): Simplify and speedup.
18711 (solution_set_add): Inline into ...
18712 (set_union_with_increment): ... this. Adjust accordingly.
18713 (do_sd_constraint): Likewise.
18714 (do_ds_constraint): Likewise.
18715 (do_complex_constraint): Simplify.
18716 (build_pred_graph): Adjust.
18717 (solve_graph): Likewise. Simplify and speedup.
18718 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
18719 get_constraint_for_component_ref, get_constraint_for_1,
18720 first_vi_for_offset, first_or_preceding_vi_for_offset,
18721 create_function_info_for, create_variable_info_for_1,
18722 create_variable_info_for, intra_create_variable_infos): Adjust.
18723 (init_base_vars): Push NULL for ID zero.
18724 (compute_points_to_sets): Adjust.
18725
a271b42d
RB
187262013-03-20 Richard Biener <rguenther@suse.de>
18727
18728 * cfgloop.c (verify_loop_structure): Streamline and avoid
18729 ICEing on corrupt loop tree.
18730 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
18731 loop tree.
18732
ebd65954
RB
187332013-03-20 Richard Biener <rguenther@suse.de>
18734
18735 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
18736 check whether an SSA update is needed.
18737
4547b7ee
RS
187382013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
18739
18740 * config/mips/constraints.md (T): Rename to...
18741 (Yf): ...this.
18742 (U): Rename to...
18743 (Yd): ...this.
18744 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
18745 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
18746
0b8cdc58
IB
187472013-03-19 Ian Bolton <ian.bolton@arm.com>
18748
18749 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
18750 (*subsi3_carryin_uxtw): Likewise.
18751
5977a10d
IB
187522013-03-19 Ian Bolton <ian.bolton@arm.com>
18753
18754 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
18755 (*rorsi3_insn_uxtw): Likewise.
18756
bd83ff2c
IB
187572013-03-19 Ian Bolton <ian.bolton@arm.com>
18758
18759 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
18760 (*extrsi5_insn_uxtw): Likewise.
18761
ba65123c
RB
187622013-03-19 Richard Biener <rguenther@suse.de>
18763
18764 PR tree-optimization/56273
18765 * passes.c (init_optimization_passes): Move second VRP after DOM.
18766
2eac0476
UB
187672013-03-19 Uros Bizjak <ubizjak@gmail.com>
18768
18769 * config/i386/i386.md (*movti_internal): Merge from
18770 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
18771 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
18772 nox64 isa attributes.
18773
6e55eda7
RB
187742013-03-18 Richard Biener <rguenther@suse.de>
18775
18776 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
18777 (unite): Likewise.
18778 (merge_node_constraints): Likewise.
18779 (build_succ_graph): Likewise.
18780 (valid_graph_edge): Inline into single caller.
18781 (unify_nodes): Likewise. Use bitmap_set_bit return value
18782 and cache varinfo.
18783 (scc_visit): Fix formatting and variable use.
18784 (do_sd_constraint): Use gcc_checking_assert.
18785 (do_ds_constraint): Likewise.
18786 (do_complex_constraint): Likewise.
18787 (condense_visit): Likewise. Cleanup.
18788 (dump_pred_graph): New function.
18789 (perform_var_substitution): Dump the pred-graph before
18790 variable substitution.
18791 (find_equivalent_node): Use gcc_checking_assert.
18792 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
18793
4bdd44c4
RB
187942013-03-18 Richard Biener <rguenther@suse.de>
18795
18796 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
18797 Remove cond_expr_stmt_list argument and do not gimplify the
18798 built expression.
18799 (vect_loop_versioning): Adjust.
18800 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
18801 Cleanup to use less temporaries.
18802 (vect_create_data_ref_ptr): Cleanup.
18803
38c56a5b
JJ
188042013-03-18 Jakub Jelinek <jakub@redhat.com>
18805
18806 PR tree-optimization/56635
18807 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
18808 require types_compatible_p types.
18809
20b2e6a0
NC
188102013-03-18 Nick Clifton <nickc@redhat.com>
18811
a6178a25
NC
18812 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
18813 spurious backslash.
18814
20b2e6a0
NC
18815 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
18816 Add missing line to comment describing function.
18817
92608d0e
RB
188182013-03-18 Richard Biener <rguenther@suse.de>
18819
18820 PR tree-optimization/56210
18821 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
18822 Handle string / character search functions.
18823 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
18824
31348d52
RB
188252013-03-18 Richard Biener <rguenther@suse.de>
18826
18827 PR middle-end/56483
18828 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
18829 and implement properly.
18830 * gimple.h (gimple_cond_single_var_p): Remove.
18831
fcac74a1
RB
188322013-03-18 Richard Biener <rguenther@suse.de>
18833
18834 * tree-data-ref.h (find_data_references_in_loop): Declare.
18835 * tree-data-ref.c (get_references_in_stmt): Use a stack
18836 vector pre-allocated in the callers.
18837 (find_data_references_in_stmt): Adjust.
18838 (graphite_find_data_references_in_stmt): Likewise.
18839 (create_rdg_vertices): Likewise.
18840 (find_data_references_in_loop): Export.
18841 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
18842 Compute dependences here...
18843 (vect_analyze_data_refs): ...not here. When we encounter
18844 a non-vectorizable data reference in basic-block vectorization
18845 truncate the data reference vector. Do not bother to
18846 fixup data-dependence information for gather loads.
18847 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
18848 of data references, as reported.
18849
0d5a1b56
RB
188502013-03-18 Richard Biener <rguenther@suse.de>
18851
18852 PR tree-optimization/3713
18853 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
18854 has_constants and expr.
18855 (stmt_has_constants): Properly valueize SSA names when deciding
18856 whether the stmt has constants.
18857
789c34e3
RB
188582013-03-18 Richard Biener <rguenther@suse.de>
18859
18860 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
18861 whole function when there is nothing to do.
18862 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
18863 * tree-vectorizer.c (vectorize_loops): Update virtual and
18864 loop-closed SSA once.
18865 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
18866
076b4605
RB
188672013-03-18 Richard Biener <rguenther@suse.de>
18868
18869 PR middle-end/56113
18870 * domwalk.c (bb_postorder): New global static.
18871 (cmp_bb_postorder): New function.
18872 (walk_dominator_tree): Replace scheme imposing an order for
18873 visiting dominator sons by one sorting them at the time they
18874 are pushed on the stack.
18875
bdb01696
RB
188762013-03-18 Richard Biener <rguenther@suse.de>
18877
18878 PR tree-optimization/39326
18879 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
18880 (struct mem_ref): Replace mem member with ao_ref typed member.
18881 (MEM_ANALYZABLE): Adjust.
18882 (memref_eq): Likewise.
18883 (mem_ref_alloc): Likewise.
18884 (gather_mem_refs_stmt): Likewise.
18885 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
18886 (execute_sm_if_changed_flag_set): Adjust.
18887 (execute_sm): Likewise.
18888 (ref_always_accessed_p): Likewise.
18889 (refs_independent_p): Likewise.
18890 (can_sm_ref_p): Likewise.
18891
12d2dc5e
JJ
188922013-03-18 Jakub Jelinek <jakub@redhat.com>
18893
18894 PR c/56566
18895 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
18896 return 1 even for !unsignedp.
18897
286fb677
UB
188982013-03-17 Uros Bizjak <ubizjak@gmail.com>
18899
18900 * config/i386/i386.md (isa): Add x64 and nox64.
18901 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
18902 (*pushtf): Enable *roF alternative for x64 isa only.
18903 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
18904 mode attribute of integer alternatives to DImode for TARGET_64BIT.
18905 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
18906 (*movtf_internal): Merge from *movtf_internal_rex64 and
18907 *movtf_internal_sse. Use x64 and nox64 isa attributes.
18908 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
18909 nox64 isa attributes.
18910 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
18911 nox64 isa attributes.
18912 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
18913
88b97037
UB
189142013-03-17 Uros Bizjak <ubizjak@gmail.com>
18915
18916 * config/alpha/alpha.c (TARGET_LRA_P): New define.
18917
9f4f1735
JJ
189182013-03-17 Jakub Jelinek <jakub@redhat.com>
18919
18920 PR target/56640
18921 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
18922 class names. Remove trailing comma after "ALL_REGS".
18923
48f4a6fa
JH
189242013-03-16 Jan Hubicka <jh@suse.cz>
18925
18926 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
18927 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
18928 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
18929 of cgraph_get_create_node.
18930 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
18931
98e81123
JM
189322013-03-16 Jason Merrill <jason@redhat.com>
18933
18934 PR debug/49090
18935 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
18936 with DW_AT_default_value.
18937
8a298c04
JJ
189382013-03-16 Jakub Jelinek <jakub@redhat.com>
18939
18940 * BASE-VER: Set to 4.9.0.
18941
4323afa0
AK
189422013-03-14 Andi Kleen <ak@linux.intel.com>
18943
18944 PR target/56619
18945 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
18946 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
18947 Document _x* TSX intrinsics.
18948
b3c0d469
JJ
189492013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
18950 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
18951
18952 * configure.ac: Add MicroBlaze TLS support detection.
18953 * configure: Regenerate.
88b97037
UB
18954 * config/microblaze/microblaze-protos.h
18955 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
18956 symbol_mentioned_p, label_mentioned_p): Add prototypes.
18957 * config/microblaze/microblaze.c (microblaze_address_type): Add
18958 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
18959 (microblaze_address_info): Add tls_reloc.
18960 (TARGET_HAVE_TLS): Define.
18961 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
18962 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
18963 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
18964 load_tls_operand, microblaze_call_tls_get_addr,
18965 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
18966 (microblaze_classify_unspec): Handle UNSPEC_TLS.
18967 (get_base_reg): Use microblaze_tls_symbol_p.
18968 (microblaze_classify_address): Handle TLS.
88b97037
UB
18969 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
18970 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
18971 (microblaze_legitimize_address): Handle TLS.
18972 (microblaze_address_insns): Handle ADDRESS_TLS.
18973 (pic_address_needs_scratch): Handle TLS.
18974 (print_operand_address): Handle TLS.
18975 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
18976 (microblaze_expand_move): Handle TLS.
88b97037
UB
18977 (microblaze_legitimate_constant_p): Check
18978 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
18979 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
18980 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
18981 (PIC_OFFSET_TABLE_REGNUM): Set.
18982 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
18983 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
18984 (addsi3, movsi_internal2, movdf_internal): Update constraints
18985 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
18986 (move_operand): Redefine as move_src_operand,
18987 check microblaze_tls_referenced_p.
8cc9a5a5 18988
d803a491
IB
189892013-03-14 Ian Bolton <ian.bolton@arm.com>
18990
18991 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
18992 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
18993
a8504f22
IB
189942013-03-14 Ian Bolton <ian.bolton@arm.com>
18995
18996 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
18997 CC mode for AND.
18998
df2dfaea
JJ
189992013-03-14 Jakub Jelinek <jakub@redhat.com>
19000
fbd28bc3
JJ
19001 PR tree-optimization/53265
19002 * common.opt (Waggressive-loop-optimizations): New option.
19003 * tree-ssa-loop-niter.c: Include tree-pass.h.
19004 (do_warn_aggressive_loop_optimizations): New function.
19005 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
19006 if number_of_latch_executions returned constant.
19007 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
19008 early. If number_of_latch_executions returned constant, set
19009 nb_iterations_upper_bound back to it.
19010 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
19011 field.
19012 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
19013 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
19014
df2dfaea
JJ
19015 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
19016 (MULTILIB_OSDIRNAMES): Set.
19017 * genmultilib: If defaultosdirname doesn't start with :: , set
19018 defaultosdirname2 instead, clear it and emit two . multilib_raw
19019 entries instead of just one.
19020
ee0d2b68
KK
190212013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
19022
19023 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
19024 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
19025 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
19026 (SUBTARGET_OVERRIDE_OPTIONS): New.
19027
decc676e
OE
190282013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
19029
19030 PR target/49880
19031 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
19032 (musermode): Convert to Var(TARGET_USERMODE).
19033 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
19034 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
19035 * config/sh/sh.c (sh_option_override): Use
19036 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
19037 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
19038 condition.
19039 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
19040 TARGET_SH4.
19041 (udivsi3_i4_single, divsi3_i4_single): Use
19042 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
19043
f4b719c7
DK
190442013-03-13 Dave Korn <dave.korn.cygwin@....>
19045
19046 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
19047 default setting.
19048
c40eced0
RB
190492013-03-13 Richard Biener <rguenther@suse.de>
19050
19051 PR tree-optimization/56608
19052 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
19053 calls when vectorizing basic-blocks.
19054
1bfa5973
JJ
190552013-03-13 Jakub Jelinek <jakub@redhat.com>
19056
19057 PR plugins/45078
19058 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
19059 tm_file.
19060
6fcf5434
JJ
190612013-03-12 Jakub Jelinek <jakub@redhat.com>
19062
19063 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
19064
4f38fa8c
JH
190652013-03-11 Jan Hubicka <jh@suse.cz>
19066
19067 PR lto/56557
19068 * lto-streamer-out.c (output_symbol_p): Skip references from
19069 constructors of external variables.
19070
c5c5ba89
JH
190712013-03-11 Jan Hubicka <jh@suse.cz>
19072
19073 PR middle-end/56571
19074 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
19075 from pseudos.
19076 * emit-rtl.c (verify_rtx_sharing): Likewise.
19077 (copy_insn_1): Likewise.
19078 * rtl.c (copy_rtx): Likewise.
19079
c2a939b1
GJL
190802013-03-11 Georg-Johann Lay <avr@gjlay.de>
19081
19082 PR target/56591
19083 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
19084 output_operand_lossage message.
88b97037 19085
3c3279fb
RE
190862013-03-11 Richard Earnshaw <rearnsha@arm.com>
19087
19088 PR target/56470
19089 * arm.c (shift_op): Validate RTL pattern on the fly.
19090 (arm_print_operand, case 'S'): Don't use shift_operator to validate
19091 the RTL.
19092
aef5ef9d
JDA
190932013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19094
19095 PR target/56347
19096 * config/pa/pa.md (call_value): Check for calls to powf and direct to
19097 new call patterns that clobber %fr12.
19098 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
19099 split and postreload patterns.
19100 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
19101 registers %fr12 and %fr12R as call used.
19102
456610d3
SB
191032013-03-09 Steven Bosscher <steven@gcc.gnu.org>
19104
19105 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
19106 (canon_address, record_store, replace_read, check_mem_read_rtx,
19107 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
19108 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
19109 rest_of_handle_dse): Likewise.
19110
4b1baac8
RS
191112013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
19112
19113 PR middle-end/56524
19114 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
19115 Add base_optabs.
19116 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
19117 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
19118 (save_optabs_if_changed): Replace with...
19119 (init_tree_optimization_optabs): ...this.
19120 * optabs.c (save_optabs_if_changed): Rename to...
19121 (init_tree_optimization_optabs): ...this. Take the optimization node
19122 as argument. Do nothing if the base optabs are already correct.
19123 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
19124 to recompute optabs.
19125 * function.h (function): Remove optabs field.
19126 * function.c (invoke_set_current_function_hook): Call
19127 init_tree_optimization_optabs. Use the result to initialize
19128 this_fn_optabs.
19129
b7a78683
AH
191302013-02-27 Aldy Hernandez <aldyh@redhat.com>
19131
19132 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
19133 if GTMA_HAS_NO_INSTRUMENTATION.
19134 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
19135 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
19136 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
19137 * gimple-pretty-print.c (dump_gimple_transaction): Handle
19138 GTMA_HAS_NO_INSTRUMENTATION.
19139
6384c29b
JJ
191402013-03-08 Jakub Jelinek <jakub@redhat.com>
19141
19142 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
19143 libasan_preinit.o.
19144
ecd4f20a
MP
191452013-03-08 Marek Polacek <polacek@redhat.com>
19146 Jakub Jelinek <jakub@redhat.com>
19147
19148 PR tree-optimization/56478
19149 * predict.c (is_comparison_with_loop_invariant_p): Change the
19150 type of loop_step to tree.
19151 (predict_loops): Adjust.
19152 (predict_iv_comparison): Perform the computations on double_ints.
19153
64366d35
RB
191542013-03-08 Richard Biener <rguenther@suse.de>
19155
19156 PR tree-optimization/56570
19157 * tree-cfg.c (verify_expr_location_1): Verify locations for
19158 DECL_DEBUG_EXPR.
19159 * tree-sra.c (create_access_replacement): Strip locations
19160 from DECL_DEBUG_EXPRs.
19161
a9d5a059
RB
191622013-03-08 Richard Biener <rguenther@suse.de>
19163
19164 * tree-inline.c (expand_call_inline): Do not associate
19165 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
19166 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
19167
b7aa4e9a
RB
191682013-03-08 Richard Biener <rguenther@suse.de>
19169
19170 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
19171 or block changes with -Og. Fix for location / block encoding
19172 changes and PHI arguments with locations.
19173
c4c2f9fa
SB
191742013-03-07 Steven Bosscher <steven@gcc.gnu.org>
19175
19176 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
19177 for all counters.
19178 (struct output_info): Likewise.
19179 (register_overhead): Remove bad gcc_assert.
19180 (bitmap_find_bit): If there is only a single bitmap element, do not
19181 count a miss as a search.
19182 (print_statistics): Update for counter type changes.
19183 (dump_bitmap_statistics): Likewise. Print headers such that they
19184 are properly lined up with the printed counters.
19185
5bf6606a
JJ
191862013-03-07 Jakub Jelinek <jakub@redhat.com>
19187
19188 PR tree-optimization/56559
19189 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
19190 check that it has only a single use.
19191
2c653d46
RB
191922013-03-07 Richard Biener <rguenther@suse.de>
19193
19194 * doc/invoke.texi (fwhole-program): Discourage use in combination
19195 with -flto.
19196
a72d8780
JJ
191972013-03-06 Jakub Jelinek <jakub@redhat.com>
19198
01a454df
JJ
19199 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
19200
c1781047
JJ
19201 PR tree-optimization/56539
19202 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
19203 instead of GSI_CONTINUE_LINKING as last argument to
19204 force_gimple_operand_gsi. Adjust function comment.
19205
9772c47a
JJ
19206 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
19207 aarch64-cores.def.
19208
a72d8780
JJ
19209 PR middle-end/56548
19210 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
19211 promoted mode, convert the result back to the original mode.
19212
fa5556de
RB
192132013-03-06 Richard Biener <rguenther@suse.de>
19214
19215 PR middle-end/56294
19216 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
19217 (insert_updated_phi_nodes_compare_uids): New function.
19218 (update_ssa): Sort symbols_to_rename after UID before
19219 traversing it to insert PHI nodes.
19220
010403d1
RB
192212013-03-06 Richard Biener <rguenther@suse.de>
19222
19223 PR middle-end/50494
19224 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
19225 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
19226
19227 Revert
19228 2013-02-13 Richard Biener <rguenther@suse.de>
19229
19230 PR lto/50494
19231 * varasm.c (output_constant_def_1): Get the decl representing
19232 the constant as argument.
19233 (output_constant_def): Wrap output_constant_def_1.
19234 (make_decl_rtl): Use output_constant_def_1 with the decl
19235 representing the constant.
19236 (build_constant_desc): Optionally re-use a decl already
19237 representing the constant.
19238 (tree_output_constant_def): Adjust.
19239
3c27ce4c
JY
192402013-03-06 Joey Ye <joey.ye@arm.com>
19241
19242 PR lto/50293
19243 * gcc.c (convert_white_space): New function.
19244 (main): Handles white space in function name.
19245
8f6d1c86
OE
192462013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
19247
19248 PR target/56529
19249 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
19250 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
19251 to SH_DIV_CALL_TABLE for TARGET_SH2.
19252 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
19253 list.
19254 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
19255 call-table options.
19256
798a209f
SA
192572013-03-05 Sterling Augustine <saugustine@google.com>
19258 Cary Coutant <ccoutant@google.com>
19259
19260 PR debug/55364
19261 * dwarf2out.c (resolve_addr): Don't call
19262 remove_loc_list_addr_table_entries a second time for the same
19263 expression.
19264
6cfa417f 192652013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 19266
6cfa417f
JJ
19267 PR debug/56510
19268 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
19269 (avoid_complex_debug_insns): New function.
19270 (expand_debug_locations): Call it.
19271
19272 PR rtl-optimization/56484
19273 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
19274 lifetimes of hard registers on small register class machines.
19275
192762013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
19277
19278 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 19279 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 19280 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
19281 fast_interrupt.
19282 (microblaze_fast_interrupt_function_p): New function.
19283 (microblaze_is_interrupt_handler): Rename to
19284 microblaze_is_interrupt_variant and add fast_interrupt check.
19285 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
19286 (save_restore_insns): Likewise.
19287 (compute_frame_size): Likewise.
19288 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
19289 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
19290 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
19291 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
19292 microblaze_is_interrupt_variant.
19293
731aefac
KT
192942013-03-05 Kai Tietz <ktietz@redhat.com>
19295
19296 * sdbout.c (sdbout_one_type): Switch to current function's section
19297 supporting cold/hot.
19298
a72d8780 192992013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
19300
19301 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
19302 -mxl-reorder.
19303
334e71e8
JJ
193042013-03-05 Jakub Jelinek <jakub@redhat.com>
19305
0b50e654
JJ
19306 PR middle-end/56461
19307 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
19308 if VALGRIND_GET_VBITS is defined, temporarily make object
19309 memory all defined, and restore previous valgrind addressability
19310 and definability afterwards. Free this_object at the end.
19311
4ccf8f43
JJ
19312 PR middle-end/56461
19313 * lra.c (lra): Call lra_clear_live_ranges if live_p,
19314 right before calling lra_create_live_ranges, also call it
19315 when clearing live_p. Only call lra_clear_live_ranges
19316 at the end if live_p.
19317
334e71e8
JJ
19318 PR middle-end/56461
19319 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
19320
9ca966ca
RB
193212013-03-05 Richard Biener <rguenther@suse.de>
19322
19323 PR tree-optimization/56521
19324 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
19325 value-id.
19326
d273b176
SB
193272013-03-05 Steven Bosscher <steven@gcc.gnu.org>
19328
19329 PR c++/55135
19330 * except.h (remove_unreachable_eh_regions): New prototype.
19331 * except.c (remove_eh_handler_splicer): New function, split out
19332 of remove_eh_handler.
19333 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
19334 warning about running it on many EH regions one at a time.
19335 (remove_unreachable_eh_regions_worker): New function, walk the
19336 EH tree in depth-first order and remove non-marked regions.
19337 (remove_unreachable_eh_regions): New function.
19338 * tree-eh.c (mark_reachable_handlers): New function, split out
19339 from remove_unreachable_handlers.
19340 (remove_unreachable_handlers): Use mark_reachable_handlers and
19341 remove_unreachable_eh_regions.
19342 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
19343 and remove_unreachable_eh_regions.
19344
5e7f1aef
RB
193452013-03-05 Richard Biener <rguenther@suse.de>
19346
19347 PR middle-end/56525
19348 * loop-init.c (fix_loop_structure): Remove loops in two stages,
19349 not freeing them until the end.
19350
f276b762
AK
193512013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19352
19353 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
19354
12a43ab8
RB
193552013-03-05 Richard Biener <rguenther@suse.de>
19356
19357 PR tree-optimization/56270
19358 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
19359 of loads after scheduling an SLP instance.
19360
93675444
JJ
193612013-03-05 Jakub Jelinek <jakub@redhat.com>
19362
db4138e3
JJ
19363 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
19364 tic6x.exp.
19365 (check_gcc_parallelize): Run guality.exp as a separate job from
19366 vect.exp with unsorted.exp and $(dg_target_exps) separately from
19367 struct-layout-1.exp with stackalign.exp.
19368
dd3d1ec0
JJ
19369 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
19370
b8d381a3
JJ
19371 PR middle-end/56461
19372 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
19373 load_index sbitmap even if some bit in it isn't set.
19374
b4f9786b
JJ
19375 PR middle-end/56461
19376 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
19377 (discover_iteration_bound_by_body_walk): Change queues to
19378 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
19379 spelling in comment. Call safe_push on queues[bound_index] directly.
19380 Release queues[queue_index] in every iteration unconditionally.
19381 Release bounds vector.
19382
93675444
JJ
19383 PR middle-end/56461
19384 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
19385 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
19386 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
19387 inner_phis vector.
19388
3e492e9c
RB
193892013-03-05 Richard Biener <rguenther@suse.de>
19390
19391 PR lto/56515
19392 * tree-inline.c (remap_blocks_to_null): New function.
19393 (expand_call_inline): When expanding a call stmt without
19394 an associated block inline remap all callee blocks to NULL.
19395
a5d1569a
JJ
193962013-03-05 Jakub Jelinek <jakub@redhat.com>
19397
86efb5cd
JJ
19398 PR rtl-optimization/56494
19399 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
19400 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
19401 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
19402
85f5dbea
JJ
19403 PR middle-end/56461
19404 * sel-sched-ir.c (free_sched_pools): Release
19405 succs_info_pool.stack[succs_info_pool.max_top] vectors too
19406 if succs_info_pool.max_top isn't -1.
19407
a5d1569a
JJ
19408 PR bootstrap/56509
19409 * opts.c (opts_obstack, opts_concat): Moved to...
19410 * opts-common.c (opts_obstack, opts_concat): ... here.
19411
4432aa6c
JJ
194122013-03-04 Jakub Jelinek <jakub@redhat.com>
19413
19414 PR middle-end/56461
19415 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
19416
f3a1fb91
MJ
194172013-03-04 Martin Jambor <mjambor@suse.cz>
19418
19419 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
19420 all appropriate places.
19421
22110e6c
EB
194222013-01-04 Eric Botcazou <ebotcazou@adacore.com>
19423
19424 PR tree-optimization/56424
19425 * ipa-split.c (split_function): Do not set the RSO flag if result is
19426 not by reference and its type is a register type.
19427
a72d8780 194282013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 19429
88b97037 19430 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 19431 (microblaze_legitimate_pic_operand): Likewise
88b97037 19432 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
19433 new function microblaze_legitimate_pic_operand
19434 * config/microblaze/microblaze-protos.h
19435 (microblaze_legitimate_pic_operand): Declare.
19436
a72d8780 194372013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 19438
a72d8780 19439 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 19440 New predicate for supported rtx code types.
a72d8780 19441 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
19442 call_insn_simple_operand predicate.
19443
541d9ac8
JJ
194442013-03-04 Jakub Jelinek <jakub@redhat.com>
19445
5eb010bc
JJ
19446 PR middle-end/56461
19447 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
19448 partitions.ordered_remove.
19449
30862efc
JJ
19450 PR middle-end/56461
19451 * tree-vect-stmts.c (vectorizable_conversion): Don't call
19452 vec_oprnds0.create (1) for modifier == NONE.
19453
8930f723
JJ
19454 PR middle-end/56461
19455 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
19456 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
19457 vec_oprnds1 right before pushing anything to it for
19458 scalar_shift_arg.
19459
541d9ac8
JJ
19460 PR middle-end/56461
19461 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
19462 set nbbs to 0 instead of having separate code path.
19463 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
19464 instead of false as last argument if returning NULL.
19465
7aa7f2e3
SL
194662013-03-03 Sandra Loosemore <sandra@codesourcery.com>
19467
19468 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
19469 the attribute is now called "target" instead of "option".
19470 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
19471 * doc/tm.texi.in (Target Attributes): Likewise document the correct
19472 attribute/pragma name for TARGET_OPTION_VALID_P and
19473 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
19474 * doc/tm.texi: Regenerated.
19475
8930f723 194762013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 19477
8930f723 19478 * config/microblaze/microblaze.c:
cb8a1637 19479 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
19480 * config/microblaze/microblaze.h: Add -mxl-reorder to
19481 DRIVER_SELF_SPECS.
19482 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
19483 instructions emitted if TARGET_REORDER.
88b97037
UB
19484 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
19485 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 19486 separately.
cb8a1637 19487
4dc1d68c
XDL
194882013-03-01 Xinliang David Li <davidxl@google.com>
19489
19490 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
19491 walk length.
19492
689eaba3
JJ
194932013-03-01 Jakub Jelinek <jakub@redhat.com>
19494
9d676bf6
JJ
19495 PR middle-end/56461
19496 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
19497 vector even when returning true. Fix up function comment formatting.
19498
caff7edf
JJ
19499 PR middle-end/56461
19500 * ira-build.c (ira_loop_nodes_count): New variable.
19501 (create_loop_tree_nodes): Initialize it.
19502 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
19503
b6b9227d
JJ
19504 PR middle-end/56461
19505 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
19506 method on dr_chain and result_chain.
19507 * tree-vect-stmts.c (vectorizable_store): Only call
19508 result_chain.create if j == 0.
19509
689eaba3
JJ
19510 PR middle-end/56461
19511 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
19512 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
19513 before overwriting it.
19514
40bf31ed
TB
195152013-03-01 Tobias Burnus <burnus@net-b.de>
19516
19517 * doc/extended.texi (C Extensions): Change order in @menu
19518 to match @node.
19519 (Other MIPS Built-in Functions): Move last MIPS entry before
19520 "picoChip Built-in Functions".
19521 (SH Built-in Functions): Move after RX Built-in Functions.
19522 * doc/gcc.texi (Introduction): Change order in @menu
19523 to match @node.
19524 * doc/md.texi (Constraints): Ditto.
19525 * gty.texi (Type Information): Ditto.
19526 (User-provided marking routines for template types): Make
19527 subsection.
19528 * doc/invoke.texi (AArch64 Options): Move before
19529 "Adapteva Epiphany Options".
19530
e664c61c
KS
195312013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
19532 Jakub Jelinek <jakub@redhat.com>
19533
19534 PR sanitizer/56454
19535 * asan.c (gate_asan): Lookup no_sanitize_address instead of
19536 no_address_safety_analysis attribute.
19537 * doc/extend.texi (no_address_safety_attribute): Rename to
19538 no_sanitize_address attribute, mention no_address_safety_analysis
19539 attribute as deprecated alias.
19540
37b5ec8f
JJ
195412013-02-28 Jakub Jelinek <jakub@redhat.com>
19542
19543 PR middle-end/56461
19544 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
19545 type to vec<vec<tree> > *.
19546 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
19547 to be vec<tree> instead of vec<tree> *, set vec_defs
19548 to vNULL and call vec_defs.create (number_of_vects), adjust other
19549 uses of vec_defs.
19550 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
19551 vectorizable_condition): Adjust vect_get_slp_defs callers.
19552
ba96cdfb
JG
195532013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19554
19555 * config/aarch64/aarch64.c
19556 (aarch64_float_const_representable): Remove unused variable.
19557
6f549691
JG
195582013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19559
19560 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
19561
af55e82d
JG
195622013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19563
19564 * config/aarch64/aarch64-builtins.c
19565 (aarch64_init_simd_builtins): Make static.
19566
1df3f464
JG
195672013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19568
19569 * config/aarch64/aarch64.c
19570 (aarch64_simd_make_constant): Make static.
19571
f8f42513
MJ
195722013-02-28 Martin Jambor <mjambor@suse.cz>
19573
19574 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
19575 with no initialization to the RHS of debug statements.
19576
b48b3fc4
MJ
195772013-02-28 Martin Jambor <mjambor@suse.cz>
19578
19579 PR tree-optimization/56294
19580 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
19581 Adjust dumping.
19582 (get_access_replacement): Do not call create_access_replacement.
19583 Assert a replacement exists.
19584 (get_repl_default_def_ssa_name): Create the replacement declaration
19585 itself.
19586
c3ae224c
RR
195872013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19588
19589 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
19590 final_end_function.
19591
45fa0eef
MP
195922013-02-28 Marek Polacek <polacek@redhat.com>
19593
19594 PR rtl-optimization/56466
19595 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
19596 if we're changing a loop.
19597 (peel_loops_completely): Likewise.
19598
502c067d
PC
195992013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
19600
19601 PR c++/55813
19602 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
19603
ff24afc8
GJL
196042013-02-28 Georg-Johann Lay <avr@gjlay.de>
19605
19606 PR target/56445
19607 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
19608 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
19609 INTX_FTYPE_FX, FX_FTYPE_INTX.
19610 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
19611
c7b1fc1b
GJL
196122013-02-28 Georg-Johann Lay <avr@gjlay.de>
19613
19614 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
19615 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
19616 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
19617 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
19618 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
19619 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
19620 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
19621 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
19622 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
19623 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
19624 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
19625 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
19626 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
19627 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
19628 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
19629 (avrxmega6): Increase max flash segments from 5 to 6.
19630 * config/avr/t-multilib: Regenerate.
19631 * config/avr/avr-tables.opt: Regenerate.
19632 * doc/avr-mmcu.texi: Regenerate.
19633
4a0e3cfe
GJL
196342013-02-28 Georg-Johann Lay <avr@gjlay.de>
19635
19636 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
19637 (avr_device_to_arch): Rename to avr_device_to_ld.
19638 (avr_device_to_as): New prototype.
19639 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
19640 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
19641 * config/avr/driver-avr.c (avr_device_to_as): New.
19642 (avr_device_to_arch): Rename to avr_device_to_ld.
19643
97785e52
JJ
196442013-02-27 Jakub Jelinek <jakub@redhat.com>
19645
3f292312
JJ
19646 PR middle-end/56461
19647 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
19648 method on dr_chain and result_chain.
19649
a344216b
JJ
19650 PR middle-end/56461
19651 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
19652 pointer_set_destroy on not_executed_last_iteration.
19653
f121ad02 19654 PR middle-end/56461
88b97037 19655 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 19656
307f83a3
JJ
19657 PR middle-end/56461
19658 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
19659 FOR_EACH_DEFINED_FUNCTION when freeing state.
19660
e19624ee
JJ
19661 PR middle-end/56461
19662 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
19663 pool_free.
19664 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
19665 overwriting it.
19666
90e709fd
JJ
19667 PR middle-end/56461
19668 * ipa-cp.c (decide_whether_version_node): Call vec_free on
19669 known_aggs[i].items and release known_aggs vector.
19670
97785e52
JJ
19671 PR middle-end/56461
19672 * ipa-reference.c (propagate): Free node_info even for alias nodes.
19673
196742013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 19675
97785e52
JJ
19676 * config/microblaze/microblaze.c (microblaze_emit_compare):
19677 Use xor for EQ/NE comparisions.
19678 * config/microblaze/microblaze.md (cstoresf4): Add constraints
19679 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 19680
6fa5e0ed
JJ
196812013-02-27 Jakub Jelinek <jakub@redhat.com>
19682
19683 PR middle-end/56461
19684 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
19685 vector.
19686 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
19687 vec_safe_push, always update *slot.
19688 (redirect_edge_var_map_clear): Use vec_free.
19689 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
19690 (free_var_map_entry): Use vec_free.
19691 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
19692 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
19693
436a956a
AB
196942013-02-27 Andrey Belevantsev <abel@ispras.ru>
19695
19696 PR middle-end/45472
436a956a
AB
19697 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
19698 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
19699 Reorder tests for speculativeness in the logical and operator.
19700
f5c2caca
JJ
197012013-02-27 Jakub Jelinek <jakub@redhat.com>
19702
0fcb564b
JJ
19703 * incpath.c (add_standard_paths): Use reconcat instead of concat
19704 where appropriate and avoid leaking memory.
19705
dc357798
JJ
19706 * opts.h: Include obstack.h.
19707 (opts_concat): New prototype.
19708 (opts_obstack): New declaration.
19709 * opts.c (opts_concat): New function.
19710 (opts_obstack): New variable.
19711 (init_options_struct): Call gcc_init_obstack on opts_obstack.
19712 (finish_options): Use opts_concat instead of concat
19713 and XOBNEWVEC instead of XNEWVEC.
19714 * opts-common.c (generate_canonical_option, decode_cmdline_option,
19715 generate_option): Likewise.
19716 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
19717 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
19718
f5c2caca
JJ
19719 PR target/56455
19720 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
19721 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
19722
d0163673
JJ
197232013-02-26 Jakub Jelinek <jakub@redhat.com>
19724
19725 PR middle-end/56461
19726 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
19727
b5ad2b8e
JR
197282013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
19729
19730 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
19731 (arm_block_move_unaligned_straight): Likewise.
19732 (arm_adjust_block_mem): Likewise.
19733
9b639e2c
JR
197342013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
19735
19736 PR target/48901
19737 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
19738 temp, cond and label.
19739 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
19740
e13a0ccb
JR
19741 PR target/52500
19742 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
19743 * config/c6x/c6x.h (dbx_register_map): Update declaration.
19744
fbe4f171
JR
19745 PR target/52501
19746 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
19747 of prologue/epilogue functions.
19748
ae006543
JR
19749 PR target/52550
19750 * config/tilegx/tilegx.c (tilegx_expand_prologue):
19751 Remove unused variable cfa_offset.
19752 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
19753
c81369fa
JR
19754 PR target/54639
19755 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
19756 type promotion to unsigned.
19757
f8a8fea7
JR
19758 PR target/54640
19759 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
19760 for HOST_WIDE_INT of 32 bit / same size as int.
19761 (arm_block_move_unaligned_straight): Likewise.
19762 (arm_adjust_block_mem): Likewise.
19763
f8be5169
JR
19764 PR target/54662
19765 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
19766 ALL_CFLAGS.
19767
f1ad3354
MP
197682013-02-26 Marek Polacek <polacek@redhat.com>
19769
19770 PR tree-optimization/56426
88b97037 19771 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 19772
a6af0f42
RB
197732013-02-26 Richard Biener <rguenther@suse.de>
19774
19775 PR target/56444
19776 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
19777 unused variable loops.
19778
aca43c6c
JJ
197792013-02-26 Jakub Jelinek <jakub@redhat.com>
19780
cecbe5d9
JJ
19781 PR tree-optimization/56448
19782 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
19783 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
19784 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
19785 later operands of the references, or even first operand for
19786 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
19787
aca43c6c
JJ
19788 PR tree-optimization/56443
19789 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
19790 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
19791 to type_for_mode langhook.
19792
53e2e141
MT
197932013-02-25 Matt Turner <mattst88@gmail.com>
19794
19795 * doc/invoke.texi: Document r4700.
19796
259ee451
RB
197972013-02-25 Richard Biener <rguenther@suse.de>
19798
19799 PR tree-optimization/56175
19800 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
19801 split out from ...
19802 (simplify_bitwise_binary): ... here. Also guard the conversion
19803 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
19804
6d65e8f1
CM
198052013-02-25 Catherine Moore <clm@codesourcery.com>
19806
19807 Revert:
19808 2013-02-24 Catherine Moore <clm@codesourcery.com>
19809 Maciej W. Rozycki <macro@codesourcery.com>
19810 Tom de Vries <tom@codesourcery.com>
a72d8780 19811 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
19812 Iain Sandoe <iain@codesourcery.com>
19813 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 19814 Chao-ying Fu <fu@mips.com>
88b97037 19815
6d65e8f1 19816 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 19817 Document new function attributes.
6d65e8f1
CM
19818 * doc/invoke.texi (minterlink-compressed, mmicromips,
19819 m14k, m14ke, m14kec): Document new options.
19820 (minterlink-mips16): Update documentation.
19821 * doc/md.texi (ZC, ZD): Document new constraints.
19822 * configure.ac (gcc_cv_as_micromips): Check if linker
19823 supports the .set micromips directive.
19824 * configure: Regenerate.
19825 * config.in: Regenerate.
19826 * config/mips/mips-tables.opt: Regenerate.
19827 * config/mips/micromips.md: New file.
19828 * constraints.md (ZC, AD): New constraints.
19829 * config/mips/predicates.md (movep_src_register): New predicate.
19830 (movep_src_operand): New predicate.
19831 (non_volatile_mem_operand): New predicate.
19832 * config/mips/mips.md (multimem): New type.
19833 (length): Differentiate between 17-bit and 18-bit branch offsets.
19834 (MOVEP1, MOVEP2): New mode iterator.
19835 (mov_<load>l): Use ZC constraint.
19836 (mov_<load>r): Likewise.
19837 (mov_<store>l): Likewise.
19838 (mov_<store>r): Likewise.
19839 (*branch_equality<mode>_inverted): Add microMIPS support.
19840 (*branch_equality<mode>): Likewise.
19841 (*jump_absolute): Likewise.
19842 (indirect_jump_<mode>): Likewise.
19843 (tablejump_<mode>): Likewise.
19844 (<optab>_internal): Likewise.
19845 (sibcall_internal): Likewise.
19846 (sibcall_value_internal): Likewise.
19847 (prefetch): Use constraint ZD.
19848 * config/mips/mips.opt (minterlink-compressed): New option.
19849 (minterlink-mips16): Now an alias for minterlink-compressed.
19850 (mmicromips): New option.
19851 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
19852 (compare_and_swap_12): Likewise.
19853 (sync_add<mode>): Likewise.
19854 (sync_<optab>_12): Likewise.
19855 (sync_old_<optab>_12): Likewise.
19856 (sync_new_<optab>_12): Likewise.
19857 (sync_nand_12): Likewise.
19858 (sync_old_nand_12): Likewise.
19859 (sync_new_nand_12): Likewise.
19860 (sync_sub<mode>): Likewise.
19861 (sync_old_add<mode>): Likewise.
19862 (sync_old_sub<mode>): Likewise.
19863 (sync_new_add<mode>): Likewise.
19864 (sync_new_sub<mode>): Likewise.
19865 (sync_<optab><mode>): Likewise.
19866 (sync_old_<optab><mode>): Likewise.
19867 (sync_new_<optab><mode>): Likewise.
19868 (sync_nand<mode>): Likewise.
19869 (sync_old_nand<mode>): Likewise.
19870 (sync_new_nand<mode>): Likewise.
19871 (sync_lock_test_and_set<mode>): Likewise.
19872 (test_and_set_12): Likewise.
19873 (atomic_compare_and_swap<mode>): Likewise.
19874 (atomic_exchange<mode>_llsc): Likewise.
19875 (atomic_fetch_add<mode>_llsc): Likewise.
19876 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
19877 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
19878 (umips_save_restore_pattern_p): Likewise.
19879 (umips_load_store_pair_p): Likewise.
19880 (umips_output_load_store_pair): Likewise.
19881 (umips_movep_target_p): Likewise.
19882 (umips_12bit_offset_address_p): Likewise.
19883 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
19884 (mips_base_mips16): Rename this...
19885 (mips_base_compression_flags): ...to this. Update all uses.
19886 (mips_attribute_table): Add micromips, nomicromips and nocompression.
19887 (mips_mips16_decl_p): Delete.
19888 (mips_nomips16_decl_p): Delete.
19889 (mips_get_compress_on_flags): New function.
19890 (mips_get_compress_off_flags): New function.
19891 (mips_get_compress_mode): New function.
19892 (mips_get_compress_on_name): New function.
19893 (mips_get_compress_off_name): New function.
19894 (mips_insert_attributes): Support multiple compression types.
19895 (mips_merge_decl_attributes): Likewise.
19896 (umips_12bit_offset_address_p): New function.
19897 (mips_start_function_definition): Emit .set micromips directive.
19898 (mips_call_may_need_jalx_p): New function.
19899 (mips_function_ok_for_sibcall): Add microMIPS support.
19900 (mips_print_operand_punctuation): Support short delay slots and
19901 compact jumps.
19902 (umips_swm_mask, umips_swm_encoding): New.
19903 (umips_build_save_restore): New function.
19904 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
19905 (was_mips16_p): Remove.
19906 (old_compression_mode): New.
19907 (mips_set_compression_mode): New function.
19908 (mips_set_current_function): Add microMIPS support.
19909 (mips_option_override): Likewise.
19910 (umips_save_restore_pattern_p): New function.
19911 (umips_output_save_restore): New function.
19912 (umips_load_store_pair_p_1): New function.
19913 (umips_load_store_pair_p): New function.
19914 (umips_output_load_store_pair_1): New function.
19915 (umips_output_load_store_pair): New function.
19916 (umips_movep_target_p) New function.
19917 (mips_prepare_pch_save): Add microMIPS support.
19918 * config/mips/mips.h (TARGET_COMPRESSION): New.
19919 (TARGET_CPU_CPP_BUILTINS): Update macro
19920 to use new compression flags and to support microMIPS.
19921 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
19922 (MIPS_ARCH_FLOAT_SPEC): Likewise.
19923 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
19924 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
19925 (ASM_SPEC): Support mmicromips and mno-micromips.
19926 (M16STORE_REG_P): New macro.
19927 (MIPS_CALL): Support TARGET_MICROMIPS.
19928 (MICROMIPS_J): New macro.
19929 (mips_base_mips16): Rename this...
19930 (mips_base_compression_flags): ...to this.
19931 (UMIPS_12BIT_OFFSET_P): New macro.
19932 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
19933 (MULTILIB_DIRNAMES): Likewise.
19934
5e5df392
TV
199352013-02-25 Tom de Vries <tom@codesourcery.com>
19936
19937 PR rtl-optimization/56131
19938 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
19939 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
19940 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
19941
3fdb53c1
TB
199422013-02-25 Tobias Burnus <burnus@net-b.de>
19943
19944 * doc/invoke.texi (-fsanitize=): Move from optimization
19945 to debugging options.
19946
ed358aea
AB
199472013-02-25 Andrey Belevantsev <abel@ispras.ru>
19948
19949 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
19950
f45e9053
AB
199512013-02-25 Andrey Belevantsev <abel@ispras.ru>
19952 Alexander Monakov <amonakov@ispras.ru>
19953
19954 PR middle-end/56077
19955 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
19956 flush pending lists also on non-jumps. Adjust comment.
19957
6941b508
CM
199582013-02-24 Catherine Moore <clm@codesourcery.com>
19959 Maciej W. Rozycki <macro@codesourcery.com>
19960 Tom de Vries <tom@codesourcery.com>
a72d8780 19961 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
19962 Iain Sandoe <iain@codesourcery.com>
19963 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 19964 Chao-ying Fu <fu@mips.com>
6941b508
CM
19965
19966 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 19967 Document new function attributes.
6941b508
CM
19968 * doc/invoke.texi (minterlink-compressed, mmicromips,
19969 m14k, m14ke, m14kec): Document new options.
19970 (minterlink-mips16): Update documentation.
19971 * doc/md.texi (ZC, ZD): Document new constraints.
19972 * configure.ac (gcc_cv_as_micromips): Check if linker
19973 supports the .set micromips directive.
19974 * configure: Regenerate.
19975 * config.in: Regenerate.
19976 * config/mips/mips-tables.opt: Regenerate.
19977 * config/mips/micromips.md: New file.
19978 * constraints.md (ZC, AD): New constraints.
19979 * config/mips/predicates.md (movep_src_register): New predicate.
19980 (movep_src_operand): New predicate.
19981 (non_volatile_mem_operand): New predicate.
19982 * config/mips/mips.md (multimem): New type.
19983 (length): Differentiate between 17-bit and 18-bit branch offsets.
19984 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 19985 (mov_<load>l): Use ZC constraint.
6941b508
CM
19986 (mov_<load>r): Likewise.
19987 (mov_<store>l): Likewise.
19988 (mov_<store>r): Likewise.
19989 (*branch_equality<mode>_inverted): Add microMIPS support.
19990 (*branch_equality<mode>): Likewise.
19991 (*jump_absolute): Likewise.
19992 (indirect_jump_<mode>): Likewise.
19993 (tablejump_<mode>): Likewise.
19994 (<optab>_internal): Likewise.
19995 (sibcall_internal): Likewise.
19996 (sibcall_value_internal): Likewise.
19997 (prefetch): Use constraint ZD.
19998 * config/mips/mips.opt (minterlink-compressed): New option.
19999 (minterlink-mips16): Now an alias for minterlink-compressed.
20000 (mmicromips): New option.
20001 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
20002 (compare_and_swap_12): Likewise.
20003 (sync_add<mode>): Likewise.
20004 (sync_<optab>_12): Likewise.
20005 (sync_old_<optab>_12): Likewise.
20006 (sync_new_<optab>_12): Likewise.
20007 (sync_nand_12): Likewise.
20008 (sync_old_nand_12): Likewise.
20009 (sync_new_nand_12): Likewise.
20010 (sync_sub<mode>): Likewise.
20011 (sync_old_add<mode>): Likewise.
20012 (sync_old_sub<mode>): Likewise.
20013 (sync_new_add<mode>): Likewise.
20014 (sync_new_sub<mode>): Likewise.
20015 (sync_<optab><mode>): Likewise.
20016 (sync_old_<optab><mode>): Likewise.
20017 (sync_new_<optab><mode>): Likewise.
20018 (sync_nand<mode>): Likewise.
20019 (sync_old_nand<mode>): Likewise.
20020 (sync_new_nand<mode>): Likewise.
20021 (sync_lock_test_and_set<mode>): Likewise.
20022 (test_and_set_12): Likewise.
20023 (atomic_compare_and_swap<mode>): Likewise.
20024 (atomic_exchange<mode>_llsc): Likewise.
20025 (atomic_fetch_add<mode>_llsc): Likewise.
20026 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
20027 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
20028 (umips_save_restore_pattern_p): Likewise.
20029 (umips_load_store_pair_p): Likewise.
20030 (umips_output_load_store_pair): Likewise.
20031 (umips_movep_target_p): Likewise.
20032 (umips_12bit_offset_address_p): Likewise.
20033 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
20034 (mips_base_mips16): Rename this...
20035 (mips_base_compression_flags): ...to this. Update all uses.
20036 (mips_attribute_table): Add micromips, nomicromips and nocompression.
20037 (mips_mips16_decl_p): Delete.
20038 (mips_nomips16_decl_p): Delete.
3fdb53c1 20039 (mips_get_compress_on_flags): New function.
6941b508
CM
20040 (mips_get_compress_off_flags): New function.
20041 (mips_get_compress_mode): New function.
20042 (mips_get_compress_on_name): New function.
20043 (mips_get_compress_off_name): New function.
20044 (mips_insert_attributes): Support multiple compression types.
20045 (mips_merge_decl_attributes): Likewise.
20046 (umips_12bit_offset_address_p): New function.
20047 (mips_start_function_definition): Emit .set micromips directive.
20048 (mips_call_may_need_jalx_p): New function.
20049 (mips_function_ok_for_sibcall): Add microMIPS support.
20050 (mips_print_operand_punctuation): Support short delay slots and
20051 compact jumps.
20052 (umips_swm_mask, umips_swm_encoding): New.
20053 (umips_build_save_restore): New function.
20054 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
20055 (was_mips16_p): Remove.
20056 (old_compression_mode): New.
20057 (mips_set_compression_mode): New function.
20058 (mips_set_current_function): Add microMIPS support.
20059 (mips_option_override): Likewise.
20060 (umips_save_restore_pattern_p): New function.
20061 (umips_output_save_restore): New function.
20062 (umips_load_store_pair_p_1): New function.
20063 (umips_load_store_pair_p): New function.
20064 (umips_output_load_store_pair_1): New function.
20065 (umips_output_load_store_pair): New function.
20066 (umips_movep_target_p) New function.
20067 (mips_prepare_pch_save): Add microMIPS support.
20068 * config/mips/mips.h (TARGET_COMPRESSION): New.
20069 (TARGET_CPU_CPP_BUILTINS): Update macro
20070 to use new compression flags and to support microMIPS.
20071 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
20072 (MIPS_ARCH_FLOAT_SPEC): Likewise.
20073 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
20074 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
20075 (ASM_SPEC): Support mmicromips and mno-micromips.
20076 (M16STORE_REG_P): New macro.
20077 (MIPS_CALL): Support TARGET_MICROMIPS.
20078 (MICROMIPS_J): New macro.
20079 (mips_base_mips16): Rename this...
20080 (mips_base_compression_flags): ...to this.
20081 (UMIPS_12BIT_OFFSET_P): New macro.
20082 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
20083 (MULTILIB_DIRNAMES): Likewise.
20084
cdebbc6d
JJ
200852013-02-24 Jakub Jelinek <jakub@redhat.com>
20086
20087 PR target/52555
20088 * target-globals.c (save_target_globals): For init_reg_sets and
20089 target_reinit remporarily set this_fn_optabs to this_target_optabs.
20090
18c63565
JG
200912013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
20092
20093 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
20094 * config/aarch64/t-aarch64
20095 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
20096
2194f7a2
VM
200972013-02-22 Vladimir Makarov <vmakarov@redhat.com>
20098
20099 PR inline-asm/56148
20100 * lra-constraints.c (process_alt_operands): Reload operand
20101 conflicting with earlier clobber only if no more other conflicting
20102 operands.
20103
7d613735
JJ
201042013-02-22 Jakub Jelinek <jakub@redhat.com>
20105
20106 PR sanitizer/56393
20107 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
20108 if not linking a shared library.
20109
ac8d93a7
SL
201102013-02-22 Seth LaForge <sethml@google.com>
20111
20112 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
20113
e0237780
GY
201142013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
20115
3fdb53c1
TB
20116 * config/arm/arm.md (split for extendsidi): Update condition.
20117 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
20118 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
20119 (qhs_zextenddi_cstr): Likewise.
e0237780 20120
d7fde18c
JJ
201212013-02-21 Jakub Jelinek <jakub@redhat.com>
20122
be63b77d
JJ
20123 PR middle-end/56420
20124 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
20125 avoid signed wrapping.
20126 (expand_mult): Handle properly multiplication by
20127 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
20128 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
20129 in the compiler if coeff is HOST_WIDE_INT_MIN.
20130 (expand_divmod): Don't make ext_op1 static, change it's type to
20131 uhwi. Avoid undefined behavior in -INTVAL (op1).
20132
d7fde18c
JJ
20133 PR rtl-optimization/50339
20134 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
20135 field.
20136 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
20137 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
20138 into splitting_ashiftrt field.
20139 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
20140 ASHIFTRT.
20141 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
20142 choices.
20143
6aad4455
AH
201442013-02-20 Aldy Hernandez <aldyh@redhat.com>
20145
20146 PR middle-end/56108
20147 * trans-mem.c (execute_tm_mark): Do not expand transactions that
20148 are sure to go irrevocable.
20149
38fe784d
HPN
201502013-02-21 Hans-Peter Nilsson <hp@axis.com>
20151
20152 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
20153 scalars are valid operands.
20154
0fd44da3
MJ
201552013-02-21 Martin Jambor <mjambor@suse.cz>
20156
20157 PR tree-optimization/56310
20158 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
20159 only matching indices and non-negative final offsets.
20160 (intersect_aggregates_with_edge): Pass src_idx to
20161 agg_replacements_to_vector. Pass src_idx insstead of index to
20162 intersect_with_agg_replacements.
20163
7a92038b
MJ
201642013-02-21 Martin Jambor <mjambor@suse.cz>
20165
20166 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
20167 instead of hard-wired defaults.
20168
c0da9c37
MR
201692013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
20170
20171 * doc/invoke.texi (MIPS Options): Update documentation of the
20172 floating-point multiply-accumulate instruction restrictions.
20173
d247ea0c 201742013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
20175
20176 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
20177 asan_shadow_offset on x86_64 linux.
20178
22deefcb
RB
201792013-02-21 Richard Biener <rguenther@suse.de>
20180
20181 PR tree-optimization/56415
20182 Revert
20183 2013-02-11 Richard Biener <rguenther@suse.de>
20184
20185 PR tree-optimization/56273
20186 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
20187 first VRP run.
20188
7bcc6e75
JJ
201892013-02-21 Jakub Jelinek <jakub@redhat.com>
20190
a0ad148f
JJ
20191 PR bootstrap/56258
20192 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
20193 instead of @itemx.
20194
7bcc6e75
JJ
20195 PR inline-asm/56405
20196 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
20197 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
20198
a0a7b611
JH
201992013-02-20 Jan Hubicka <jh@suse.cz>
20200
20201 PR tree-optimization/56265
88b97037
UB
20202 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
20203 when target is referenced for first time.
a0a7b611 20204
c0e50f72
RB
202052013-02-20 Richard Biener <rguenther@suse.de>
20206
20207 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
20208 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
20209 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
20210 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
20211 not return anything.
20212 (rename_ssa_copies): Do not remove unused locals.
20213 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 20214 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
20215 * passes.c (execute_function_todo): Do not schedule unused locals
20216 removal if cleanup_tree_cfg did something.
20217 * tree-ssa-live.c (remove_unused_locals): Dump statistics
20218 about the number of removed locals.
20219
a52ca739
RB
202202013-02-20 Richard Biener <rguenther@suse.de>
20221
20222 PR tree-optimization/56398
88b97037 20223 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 20224
ec9c9d1b
MJ
202252013-02-20 Martin Jambor <mjambor@suse.cz>
20226
20227 PR tree-optimization/55334
20228 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
20229 restricted pointers to arrays.
20230
e91c8ed6 202312013-02-20 Richard Biener <rguenther@suse.de>
88b97037 20232 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
20233
20234 PR tree-optimization/56396
20235 * tree-ssa-ccp.c (n_const_val): New static variable.
20236 (get_value): Return NULL for SSA names we don't have a lattice
20237 entry for.
20238 (ccp_initialize): Initialize n_const_val.
20239 * tree-ssa-copy.c (n_copy_of): New static variable.
20240 (init_copy_prop): Initialize n_copy_of.
20241 (get_value): Return NULL_TREE for SSA names we don't have a
20242 lattice entry for.
20243
3d916479
MJ
202442013-02-20 Martin Jambor <mjambor@suse.cz>
20245
20246 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
20247
71a86758
RB
202482013-02-20 Richard Biener <rguenther@suse.de>
20249
20250 * genpreds.c (write_lookup_constraint): Do not compare first
20251 letter of the constraint again.
20252
79836a12
RB
202532013-02-20 Richard Biener <rguenther@suse.de>
20254
20255 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
20256 and ceil_log2.
20257 (get_use_iv_cost): Terminate hashtable walk when coming across
20258 an empty entry.
20259
bbe4fb2c
IZ
202602013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
20261
20262 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
20263 reassociation for avx2 targets.
20264
a72d8780 202652012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 20266
c77f83d5
EI
20267 * config/microblaze/microblaze.c: microblaze_has_clz = 0
20268 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 20269 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
20270 version and TARGET_PATTERN_COMPARE check
20271 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 20272
a72d8780 202732012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 20274
a72d8780 20275 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
20276 function before branching.
20277
242387fa
AB
202782012-02-19 Andrey Belevantsev <abel@ispras.ru>
20279
20280 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
20281 DUMP_INSN_RTX_UID.
20282 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
20283
b4979ab9
AB
202842012-02-19 Andrey Belevantsev <abel@ispras.ru>
20285
20286 PR middle-end/55889
b4979ab9
AB
20287 * sel-sched.c: Include ira.h.
20288 (implicit_clobber_conflict_p): New function.
20289 (moveup_expr): Use it.
88b97037 20290 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 20291
24d63016
RB
202922013-02-19 Richard Biener <rguenther@suse.de>
20293
20294 PR tree-optimization/56384
20295 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
20296 (vn_hash_type): Split out from ...
20297 (vn_hash_constant_with_type): ... here.
20298 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
20299 (vn_phi_eq): Compare types from vn_phi_s structure.
20300 (vn_phi_lookup): Populate vn_phi_s type.
20301 (vn_phi_insert): Likewise.
20302
a475fd3d
JJ
203032013-02-19 Jakub Jelinek <jakub@redhat.com>
20304
47cc28f5
JJ
20305 PR tree-optimization/56350
20306 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
20307 if haven't found reduction or nested cycle operand, rather than
20308 asserting we must find it.
20309
a475fd3d
JJ
20310 PR tree-optimization/56381
20311 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
20312 to fold_build3.
20313
203142013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
20315 Jakub Jelinek <jakub@redhat.com>
20316
20317 PR target/52555
20318 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
20319 (swap_optab_enable): Same.
20320 (init_all_optabs): Use argument instead of global.
88b97037 20321 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
20322 * expr.h (init_all_optabs): Add argument to prototype.
20323 (TREE_OPTIMIZATION_OPTABS): New.
20324 (save_optabs_if_changed): Protoize.
20325 * optabs.h: Declare this_fn_optabs.
20326 * optabs.c (save_optabs_if_changed): New.
20327 Declare this_fn_optabs.
20328 (init_optabs): Add argument to init_all_optabs() call.
20329 * function.c (invoke_set_current_function_hook): Handle per
20330 function optabs.
20331 * function.h (struct function): New field optabs.
20332 * config/mips/mips.c (mips_set_mips16_mode): Handle when
20333 optimization_current_node has changed.
20334 * target-globals.h (save_target_globals_default_opts): Protoize.
20335 * target-globals.c (save_target_globals_default_opts): New.
20336
3f587ca3
JDA
203372013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20338
20339 PR target/56347
20340 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
20341 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
20342
20343 PR target/56214
20344 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
20345 and HImode, require all displacements to be an integer multiple of
20346 their mode size.
ceaca33e
JDA
20347 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
20348 only allow QImode and HImode when reload is in progress and strict is
20349 true. Likewise for symbolic addresses. Use base14_operand to check
20350 displacements in REG+BASE addresses.
20351
fe0b4796
RB
203522013-02-18 Richard Biener <rguenther@suse.de>
20353
20354 PR tree-optimization/56366
20355 * tree-vect-loop.c (get_initial_def_for_induction): Properly
20356 handle sign-conversion of outer-loop initial induction value.
20357
6aaf596b
RB
203582013-02-18 Richard Biener <rguenther@suse.de>
20359
73db8ff1 20360 PR middle-end/56349
6aaf596b
RB
20361 * cfghooks.c (merge_blocks): If we merge a latch into another
20362 block adjust references to it.
20363 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
20364 (verify_loop_structure): Verify that a recorded latch is in fact
20365 a latch.
20366
5e97dfb6
RB
203672013-02-18 Richard Biener <rguenther@suse.de>
20368
20369 PR tree-optimization/56321
20370 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
20371 order SSA name release and virtual operand unlinking.
20372
825527e8
EI
203732013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
20374
20375 * config/microblaze/microblaze.md (save_stack_block): Define.
20376 (restore_stack_block): Likewise.
20377
debd11d9
EI
203782013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
20379
20380 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
20381 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
20382 * config/microblaze/microblaze.c (microblaze_option_override):
20383 Bail out early for PIC modes when target does not support PIC.
20384
8ec77be0
EI
203852013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
20386
88b97037 20387 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
20388 Replace with a microblaze version.
20389 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 20390 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
20391 microblaze.
20392
b41288b3
JJ
203932013-02-16 Jakub Jelinek <jakub@redhat.com>
20394 Dodji Seketeli <dodji@redhat.com>
20395
20396 PR asan/56330
88b97037 20397 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
20398 (instrument_mem_region_access): Do not forget to always put
20399 instrumentation of the of 'base' and 'base + len' in a "if (len !=
20400 0) statement, even for cases where either 'base' or 'base + len'
20401 are not instrumented -- because they have been previously
20402 instrumented. Simplify the logic by putting all the statements
20403 instrument 'base + len' inside a sequence, and then insert that
20404 sequence right before the current insertion point. Then, to
20405 instrument 'base + len', just get an iterator on that statement.
20406 And do not forget to update the pointer to iterator the function
20407 received as argument.
20408
47918951
VM
204092013-02-15 Vladimir Makarov <vmakarov@redhat.com>
20410
20411 PR rtl-optimization/56348
20412 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
20413
3fb7c699
SB
204142013-02-15 Steven Bosscher <steven@gcc.gnu.org>
20415
20416 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
20417 (clean_graph_dump_file): Pass base to start_graph_dump.
20418
576fe41a
RH
204192013-02-14 Richard Henderson <rth@redhat.com>
20420
20421 PR target/55941
20422 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
20423
bb3accfa
SB
204242013-02-14 Steven Bosscher <steven@gcc.gnu.org>
20425
20426 * collect2-aix.h: Define F_LOADONLY.
20427
03143140
RB
204282013-02-14 Richard Biener <rguenther@suse.de>
20429
20430 PR lto/50494
20431 * varasm.c (output_constant_def_1): Get the decl representing
20432 the constant as argument.
20433 (output_constant_def): Wrap output_constant_def_1.
20434 (make_decl_rtl): Use output_constant_def_1 with the decl
20435 representing the constant.
20436 (build_constant_desc): Optionally re-use a decl already
20437 representing the constant.
20438 (tree_output_constant_def): Adjust.
20439
8fb06726
DS
204402013-02-14 Dodji Seketeli <dodji@redhat.com>
20441
20442 Fix an asan crash
20443 * asan.c (instrument_builtin_call): Really put the length of the
20444 second source argument into src1_len.
20445
c4bfe8bf
JJ
204462013-02-13 Jakub Jelinek <jakub@redhat.com>
20447
20448 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
20449 argument. If it is false, don't create edge from then_bb to
20450 fallthru_bb.
20451 (insert_if_then_before_iter): Pass true to it.
20452 (build_check_stmt): Pass false to it.
20453 (transform_statements): Flush hash table only on extended basic
20454 block boundaries, rather than at the beginning of every bb.
20455 Don't flush hash table on nonfreeing_call_p calls.
20456 * tree-flow.h (nonfreeing_call_p): New prototype.
20457 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
20458
7afe2801
DM
204592013-02-13 David S. Miller <davem@davemloft.net>
20460
20461 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
20462
70cc3288
VM
204632013-02-13 Vladimir Makarov <vmakarov@redhat.com>
20464
20465 PR target/56184
20466 * ira.c (max_regno_before_ira): Move from ...
20467 (ira): ... here.
20468 (fix_reg_equiv_init): Use max_regno_before_ira instead of
20469 vec_safe_length.
20470
6422242b
JJ
204712013-02-13 Jakub Jelinek <jakub@redhat.com>
20472
20473 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
20474
976a81ee
RB
204752013-02-13 Richard Biener <rguenther@suse.de>
20476
20477 PR lto/56295
20478 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
20479 globals in MEM_REFs.
20480
c1874a87
RB
204812013-02-13 Richard Biener <rguenther@suse.de>
20482
20483 * loop-init.c (loop_optimizer_init): Clear loop state when
20484 re-initializing preserved loops.
20485 * loop-unswitch.c (unswitch_single_loop): Return whether
20486 we unswitched the loop. Do not verify loop state here.
88b97037 20487 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 20488
b4ab7d34
KS
204892013-02-13 Kostya Serebryany <kcc@google.com>
20490
88b97037
UB
20491 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
20492 on x86_64 linux.
b4ab7d34
KS
20493 * sanitizer.def: Rename __asan_init to __asan_init_v1.
20494
bdcbe80c
DS
204952013-02-12 Dodji Seketeli <dodji@redhat.com>
20496
20497 Avoid instrumenting duplicated memory access in the same basic block
20498 * Makefile.in (asan.o): Add new dependency on hash-table.h
20499 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
20500 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
20501 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
20502 (free_mem_ref_resources, has_mem_ref_been_instrumented)
20503 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
20504 (get_mem_ref_of_assignment): New functions.
20505 (get_mem_refs_of_builtin_call): Extract from
20506 instrument_builtin_call and tweak a little bit to make it fit with
20507 the new signature.
20508 (instrument_builtin_call): Use the new
20509 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
20510 of is_gimple_builtin_call.
20511 (instrument_derefs, instrument_mem_region_access): Insert the
20512 instrumented memory reference into the hash table.
20513 (maybe_instrument_assignment): Renamed instrument_assignment into
20514 this, and change it to advance the iterator when instrumentation
20515 actually happened and return true in that case. This makes it
20516 homogeneous with maybe_instrument_assignment, and thus give a
20517 chance to callers to be more 'regular'.
20518 (transform_statements): Clear the memory reference hash table
20519 whenever we enter a new BB, when we cross a function call, or when
20520 we are done transforming statements. Use
20521 maybe_instrument_assignment instead of instrumentation. No more
20522 need to special case maybe_instrument_assignment and advance the
20523 iterator after calling it; it's now handled just like
20524 maybe_instrument_call. Update comment.
20525
4861a1f7
RB
205262013-02-13 Richard Biener <rguenther@suse.de>
20527
20528 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
20529 Fix loop discovery code.
20530
1c86bd80
VM
205312013-02-12 Vladimir Makarov <vmakarov@redhat.com>
20532
20533 PR inline-asm/56148
20534 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 20535 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
20536 the operand is not reloaded. Prefer to reload conflicting operand
20537 if earlyclobber and matching operands are the same.
20538
7cbda518
RB
205392013-02-12 Richard Biener <rguenther@suse.de>
20540
20541 PR lto/56297
20542 * lto-streamer-out.c (write_symbol): Do not output symbols
20543 for hard register variables.
20544
e68a4ef6
GJL
205452013-02-12 Georg-Johann Lay <avr@gjlay.de>
20546
20547 PR target/54222
20548 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
20549 (umulsidi3_insn, mulsidi3_insn): New insns.
20550
a72d8780 205512013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
20552
20553 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
20554 (struct tune_params): Add vec_costs field.
20555 * config/arm/arm.c (arm_builtin_vectorization_cost)
20556 (arm_add_stmt_cost): New functions.
20557 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
20558 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
20559 (arm_default_vec_cost): New struct of type cpu_vec_costs.
20560 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
20561 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
20562 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
20563 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
20564
43320568
RB
205652013-02-12 Richard Biener <rguenther@suse.de>
20566
20567 PR lto/56295
20568 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
20569 decls again if possible.
20570
a011aa39
RB
205712013-02-12 Richard Biener <rguenther@suse.de>
20572
20573 PR middle-end/56288
20574 * tree-ssa.c (verify_ssa_name): Fix check, move
20575 SSA_NAME_IN_FREE_LIST check up.
20576
6da26889
JJ
205772013-02-12 Jakub Jelinek <jakub@redhat.com>
20578 Steven Bosscher <steven@gcc.gnu.org>
20579
20580 PR rtl-optimization/56151
20581 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
20582 equal to op0 or op1, and last_insn pattern is CODE operation
20583 with MEM dest and one of the operands matches that MEM.
20584
f80e0faf
ST
205852013-02-11 Sriraman Tallam <tmsriramgoogle.com>
20586
20587 * doc/extend.texi: Document Function Multiversioning and "default"
20588 parameter string to target attribute.
20589 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
20590 target attribute parameter is "default".
20591 (ix86_compare_version_priority): Remove checks for target attribute.
20592 (ix86_mangle_function_version_assembler_name): Change error to sorry.
20593 Remove check for target attribute equal to NULL. Add assert.
20594 (ix86_generate_version_dispatcher_body): Change error to sorry.
20595
6c59ffd1
IS
205962013-02-11 Iain Sandoe <iain@codesourcery.com>
20597 Jack Howarth <howarth@bromo.med.uc.edu>
20598 Patrick Marlier <patrick.marlier@gmail.com>
20599
20600 PR libitm/55693
20601 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
20602 define ENDFILE_SPEC as TM_DESTRUCTOR.
20603 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
20604
a72d8780 206052013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
20606 Jack Howarth <howarth@bromo.med.uc.edu>
20607 Jakub Jelinek <jakub@redhat.com>
20608
20609 PR sanitizer/55617
20610 * config/darwin.c (cdtor_record): Rename ctor_record.
20611 (sort_cdtor_records): Rename sort_ctor_records.
20612 (finalize_dtors): New routine to sort destructors by
20613 priority before use in assemble_integer.
20614 (machopic_asm_out_destructor): Use finalize_dtors if needed.
20615
b63fe007
UB
206162013-02-11 Uros Bizjak <ubizjak@gmail.com>
20617
20618 PR rtl-optimization/56275
20619 * simplify-rtx.c (avoid_constant_pool_reference): Check that
20620 offset is non-negative and less than cmode size before
20621 calling simplify_subreg.
20622
8e89b5b5
RB
206232013-02-11 Richard Biener <rguenther@suse.de>
20624
20625 PR tree-optimization/56264
20626 * cfgloop.h (fix_loop_structure): Adjust prototype.
20627 * loop-init.c (fix_loop_structure): Return the number of
20628 newly discovered loops.
20629 * tree-cfgcleanup.c (repair_loop_structures): When new loops
20630 are discovered, do a full loop-closed SSA rewrite.
20631
b4a4b56d
RB
206322013-02-11 Richard Biener <rguenther@suse.de>
20633
20634 PR tree-optimization/56273
20635 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
20636 first VRP run.
20637 (check_array_ref): Fix missing newline in dumps.
20638 (search_for_addr_array): Likewise.
20639
0c885229
DE
206402013-02-09 David Edelsohn <dje.gcc@gmail.com>
20641
20642 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
20643
59ac9a55
JJ
206442013-02-09 Jakub Jelinek <jakub@redhat.com>
20645
20646 PR target/56256
20647 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
20648
25bb0bb5
VM
206492013-02-08 Vladimir Makarov <vmakarov@redhat.com>
20650
20651 PR rtl-optimization/56246
0c885229 20652 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
20653 reload pseudo.
20654 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
20655 constraints are satisfied.
20656
a698cc03
JL
206572013-02-08 Jeff Law <law@redhat.com>
20658
20659 PR debug/53948
20660 * emit-rtl.c (reg_is_parm_p): New function.
20661 * regs.h (reg_is_parm_p): New prototype.
20662 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
20663 callee-clobbered registers.
20664
e1122ddd
MM
206652013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
20666
20667 PR target/56043
20668 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
20669 If there is no implicit builtin declaration, just return NULL.
20670
19c5f6e6
UB
206712013-02-08 Uros Bizjak <ubizjak@gmail.com>
20672
20673 * config/i386/sse.md (FMAMODEM): New mode iterator.
20674 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
20675 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
20676
2480f2ca 206772013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 20678
2480f2ca
UB
20679 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
20680 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
20681 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
20682
206832013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
20684
20685 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
20686 (microblaze*-*-elf): Likewise.
20687 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
20688 LINK_SPEC.
20689 * config/microblaze/microblaze-c.c: Add builtin defines for
20690 _LITTLE_ENDIAN and _BIG_ENDIAN.
20691 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
20692 add to TARGET_DEFAULT flags.
76ef61fb 20693 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
20694 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
20695 * config/microblaze/microblaze.md: Update extendsidi2 and
20696 movdi_internal instructions to use low-order / high-order reg
20697 print_operands.
20698 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
20699 options and inversemask / mask of LITTLE_ENDIAN.
20700 * config/microblaze/t-microblaze: Expand multilib options to
20701 include mlittle-endian (le) and update exceptions patterns.
20702
600a5961
JJ
207032013-02-08 Jakub Jelinek <jakub@redhat.com>
20704
5df81313
JJ
20705 PR rtl-optimization/56195
20706 * lra-constraints.c (get_reload_reg): Don't reuse regs
20707 if they have smaller mode than requested, if they have
20708 wider mode than requested, try to return a SUBREG.
20709
600a5961
JJ
20710 PR tree-optimization/56250
20711 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
20712 if type is unsigned and code isn't MULT_EXPR.
20713
ff544649
GJL
207142013-02-08 Georg-Johann Lay <avr@gjlay.de>
20715
20716 PR tree-optimization/56064
20717 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
20718 bits according to mode.
20719 * fixed-value.h (fixed_from_double_int)
20720 (const_fixed_from_double_int): Adjust comments.
20721
e45cde98
RB
207222013-02-08 Richard Biener <rguenther@suse.de>
20723
20724 PR lto/56231
20725 * lto-streamer.h (struct data_in): Remove current_file, current_line
20726 and current_col members.
20727 * lto-streamer-out.c (lto_output_location): Stream changed bits
20728 en-block for efficiency.
20729 * lto-streamer-in.c (clear_line_info): Remove.
20730 (lto_input_location): Cache current file, line and column
20731 globally via local statics. Read changed bits en-block.
20732 (input_function): Do not call clear_line_info.
20733 (lto_read_body): Likewise.
20734 (lto_input_toplevel_asms): Likewise.
20735
c1ca73d8
MM
207362013-02-08 Michael Matz <matz@suse.de>
20737
20738 PR tree-optimization/52448
20739 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
20740 (nt_call_phase): New static.
20741 (add_or_mark_expr): Only mark accesses with newer phase than any
20742 call seen.
20743 (nonfreeing_call_p): New.
20744 (nt_init_block): Update nt_call_phase, mark blocks as visited.
20745 (nt_fini_block): Keep blocks marked as visited.
20746 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
20747
57548aa2
RB
207482013-02-08 Richard Biener <rguenther@suse.de>
20749
20750 * ira.c (ira): Free broken dominator information.
20751
8e10366f
UB
207522013-02-08 Uros Bizjak <ubizjak@gmail.com>
20753
20754 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
20755
f64fb0fa
MP
207562013-02-08 Marek Polacek <polacek@redhat.com>
20757
8e10366f 20758 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 20759
0375167b
RB
207602013-02-08 Richard Biener <rguenther@suse.de>
20761
20762 PR middle-end/56181
20763 * cfgloop.h (flow_loops_find): Adjust.
20764 (bb_loop_header_p): Declare.
20765 * cfgloop.c (bb_loop_header_p): New function split out from ...
20766 (flow_loops_find): ... here. Adjust function signature,
20767 support incremental loop structure update.
20768 (verify_loop_structure): Cleanup. Verify a loop is a loop.
20769 * cfgloopmanip.c (fix_loop_structure): Move ...
20770 * loop-init.c (fix_loop_structure): ... here.
20771 (apply_loop_flags): Split out from ...
20772 (loop_optimizer_init): ... here.
20773 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
20774 in incremental mode, only remove dead loops here.
20775
85d768f3
GJL
207762013-02-08 Georg-Johann Lay <avr@gjlay.de>
20777
20778 PR target/54222
20779 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
20780 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
20781 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
20782 (*round<mode>3.libgcc): New insns for fixed-modes.
20783 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
20784 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
20785 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
20786 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
20787 implementations. Define to __builtin_avr_absFX,
20788 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
20789 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
20790 __builtin_avr_countlsFX, respectively.
20791 * config/avr/avr-c.c (target.h): Include it.
20792 (enum avr_builtin_id): New enum.
20793 (avr_resolve_overloaded_builtin): New static function.
20794 (avr_register_target_pragmas): Use it to set
20795 targetm.resolve_overloaded_builtin.
20796 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
20797 tree nodes used by DEF_BUILTIN.
20798 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
20799 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
20800 <AVR_BUILTIN_xxBITS>: Same.
20801
661bc682
RB
208022013-02-08 Richard Biener <rguenther@suse.de>
20803
20804 * cfgloop.c (verify_loop_structure): Properly handle
20805 a loop exiting to another loop header.
20806 * ira-int.h (ira_loops): Remove.
20807 * ira.c (ira_loops): Remove.
20808 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
20809 (do_reload): Use loop_optimizer_finalize.
20810 * ira-build.c (create_loop_tree_nodes): Use get_loops and
20811 number_of_loops to access the loop tree.
20812 (more_one_region_p): Likewise.
20813 (finish_loop_tree_nodes): Likewise.
20814 (rebuild_regno_allocno_maps): Likewise.
20815 (mark_loops_for_removal): Likewise.
20816 (mark_all_loops_for_removal): Likewise.
20817 (remove_unnecessary_regions): Likewise.
20818 (ira_build): Likewise.
20819 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
20820
0d5049b2
RB
208212013-02-08 Richard Biener <rguenther@suse.de>
20822
20823 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
20824 * ipa-pure-const.c (analyze_function): Avoid calling
20825 mark_irreducible_loops twice.
8e10366f 20826 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 20827
499f32e8
DM
208282013-02-07 David S. Miller <davem@davemloft.net>
20829
20830 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
20831 on 'reg'.
20832 * var-tracking.c (vt_add_function_parameter): Test the presence of
20833 HAVE_window_save properly and do not remap argument registers when
20834 we have a leaf function.
20835
6edc3e32
UB
208362013-02-07 Uros Bizjak <ubizjak@gmail.com>
20837
20838 PR bootstrap/56227
20839 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
20840 instead of "ll".
20841 * config/i386/i386.c (ix86_print_operand): Ditto.
20842
5306401f
VM
208432013-02-07 Vladimir Makarov <vmakarov@redhat.com>
20844
6edc3e32 20845 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 20846
027ece11
VM
208472013-02-07 Vladimir Makarov <vmakarov@redhat.com>
20848
20849 PR rtl-optimization/56225
20850 * lra-constraints.c (process_alt_operands): Check that reload hard
20851 reg can hold value for strict_low_part.
20852
f980dfdb
JJ
208532013-02-07 Jakub Jelinek <jakub@redhat.com>
20854
20855 PR debug/56154
20856 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
20857 dwarf2out_end_function.
20858 (in_first_function_p, maybe_at_text_label_p,
20859 first_loclabel_num_not_at_text_label): New variables.
20860 (dwarf2out_var_location): In the first function find out
6edc3e32 20861 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
20862 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
20863 functions.
20864
73dd3123
EB
208652013-02-07 Eric Botcazou <ebotcazou@adacore.com>
20866
20867 PR rtl-optimization/56178
20868 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
20869 SUBREG of a register. Tidy up related block of code.
20870 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
20871 note if the source is a register or a SUBREG of a register.
20872
e3936f47
JJ
208732013-02-07 Jakub Jelinek <jakub@redhat.com>
20874
20875 PR target/56228
20876 * config/rs6000/rs6000.md (ptrm): New mode attr.
20877 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
20878 call_value_indirect_aix<pttrsize>,
20879 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
20880 m in constraints.
20881
d96d674b
MH
208822013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
20883
20884 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
20885 if -bnortl. Convert to strcmp and strncmp.
20886
921f2dee
AM
208872013-02-07 Alan Modra <amodra@gmail.com>
20888
20889 PR target/54009
20890 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
20891 addresses won't wrap when offsetting.
20892 (rs6000_secondary_reload): Provide secondary reloads needed for
20893 wrapping LO_SUM addresses.
20894
d09c7dba
TS
208952013-02-06 Thomas Schwinge <thomas@codesourcery.com>
20896
20897 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
20898 MACH, just __MACH__.
20899
a44bbd48
RB
209002013-02-06 Richard Biener <rguenther@suse.de>
20901
20902 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
20903 instead of calling fix_loop_structure.
20904
6d840d99
JJ
209052013-02-06 Jakub Jelinek <jakub@redhat.com>
20906
20907 PR middle-end/56217
20908 * omp-low.c (use_pointer_for_field): Return false if
20909 lower_send_shared_vars doesn't generate any copy-out code.
20910
0f33baa9
TV
209112013-02-06 Tom de Vries <tom@codesourcery.com>
20912
20913 PR rtl-optimization/56131
20914 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
20915 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
20916 of the label is NULL. Add comment.
20917
11f1e3ab
JJ
209182013-02-05 Jakub Jelinek <jakub@redhat.com>
20919
31502f9f
JJ
20920 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
20921
a74db9bd
JJ
20922 PR sanitizer/55374
20923 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
20924 (STATIC_LIBTSAN_LIBS): Likewise.
20925 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
20926 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
20927 is defined, don't add anything else beyond that.
20928 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
20929 (LINK_COMMAND_SPEC): Use them.
20930
11f1e3ab
JJ
20931 PR tree-optimization/56205
20932 * tree-stdarg.c (check_all_va_list_escapes): Return true if
20933 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
20934 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
20935
14ac6aa2
RB
209362013-02-05 Richard Biener <rguenther@suse.de>
20937
20938 PR tree-optimization/53342
20939 PR tree-optimization/53185
20940 * tree-vectorizer.h (vect_check_strided_load): Remove.
20941 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
20942 not disallow peeling for vectorized strided loads.
20943 (vect_check_strided_load): Make static and simplify.
20944 (vect_analyze_data_refs): Adjust.
20945 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
20946 correctly when vectorizing strided loads.
20947
6f22445a
RB
209482013-02-05 Richard Biener <rguenther@suse.de>
20949
20950 * doc/install.texi: Refer to ISL, not PPL.
20951
39f9719e
JH
209522013-02-05 Jan Hubicka <jh@suse.cz>
20953
ec4224ac
JH
20954 PR tree-optimization/55789
20955 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
20956
209572013-02-05 Jan Hubicka <jh@suse.cz>
20958
20959 PR tree-optimization/55789
39f9719e
JH
20960 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
20961 the dead call anyway.
20962
956d3b33
EB
209632013-02-05 Eric Botcazou <ebotcazou@adacore.com>
20964
20965 PR sanitizer/55374
20966 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
20967
209682013-02-04 Alexander Potapenko <glider@google.com>
20969 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
20970 Jakub Jelinek <jakub@redhat.com>
20971
20972 PR sanitizer/55617
20973 * config/darwin.c (sort_ctor_records): Stabilized qsort
20974 on constructor priority by using original position.
20975 (finalize_ctors): New routine to sort constructors by
20976 priority before use in assemble_integer.
20977 (machopic_asm_out_constructor): Use finalize_ctors if needed.
20978
7ac3af38
JJ
209792013-02-04 Jakub Jelinek <jakub@redhat.com>
20980
20981 PR libstdc++/54314
20982 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
20983 about visibility on artificial decls.
20984 * config/sol2.c (solaris_assemble_visibility): Likewise.
20985
152689dc
KT
209862013-02-04 Kai Tietz <ktietz@redhat.com>
20987
20988 PR target/56186
20989 * config/i386/i386.c (function_value_ms_64): Add additional valtype
20990 argument and improve checking of return-argument types for 16-byte
20991 modes.
20992 (ix86_function_value_1): Add additional valtype argument on call
20993 of function_value_64.
20994 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
20995 handling infunction_value_64 function.
20996
2b5987b5
MGD
209972013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
20998
7ac3af38 20999 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 21000
14597080
RB
210012013-02-04 Richard Biener <rguenther@suse.de>
21002
21003 PR tree-optimization/56188
21004 * tree-ssa-structalias.c (label_visit): Consider case with
21005 initially non-empty points-to set.
21006 (perform_var_substitution): Dump node mapping and clean up.
21007
ed73881e
RG
210082013-02-04 Richard Guenther <rguenther@suse.de>
21009
21010 PR lto/56168
21011 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
21012 node prevail as last resort.
21013 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 21014 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 21015
139a0707
RB
210162013-02-04 Richard Biener <rguenther@suse.de>
21017
21018 PR tree-optimization/56113
21019 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
21020 Merge into ...
21021 (equiv_class_lookup_or_add): ... this.
21022 (label_visit): Adjust and fix error in previous patch.
21023 (perform_var_substitution): Adjust.
21024
50fe8924
OE
210252013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
21026
21027 * config/sh/divtab.c: Fix formatting and comments throughout the file.
21028 * config/sh/sh4-300.md: Likewise.
21029 * config/sh/sh4a.md: Likewise.
21030 * config/sh/constraints.md: Likewise.
21031 * config/sh/sh.md: Likewise.
21032 * config/sh/netbsd-elf.h: Likewise.
21033 * config/sh/predicates.md: Likewise.
21034 * config/sh/sh-protos.h: Likewise.
21035 * config/sh/ushmedia.h: Likewise.
21036 * config/sh/linux.h: Likewise.
21037 * config/sh/sh.c: Likewise.
21038 * config/sh/superh.h: Likewise.
21039 * config/sh/elf.h: Likewise.
21040 * config/sh/sh4.md: Likewise.
21041 * config/sh/sh.h: Likewise.
21042
1a04ac2b
JDA
210432013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21044
21045 * config/pa/constraints.md: Adjust unused letters. Change "T"
21046 constraint to match_test floating_point_store_memory_operand().
21047 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
21048 (base14_operand): New.
21049 (floating_point_store_memory_operand): New.
21050 (integer_store_memory_operand): Revise to use base14_operand and
21051 reg_plus_base_memory_operand.
21052 (move_dest_operand): Allow symbolic_memory_operands.
21053 (symbolic_memory_operand): Check for LO_SOM.
21054 (symbolic_operand): Change default case to break.
21055 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
21056 CONST_DOUBLE values to be reloaded by putting them into memory when
21057 the destination is a floating point register.
21058 (movdf): Remove code to handle CONST_DOUBLE.
21059 (movsf): Likewise.
21060 (reload_indf_r1): New.
21061 (reload_insf_r1): New.
21062 Consistently use "Q" and "T" constraints with integer and floating
21063 point move instructions, respectively.
21064 (movdi): Remove FAIL.
21065 Change predicate for source operand unamed DImode move from
21066 general_operand to move_src_operand.
21067 (umulsidi3): Change predicate for destination operand to
21068 register_operand.
21069 Likewise for similar unamed patterns.
21070 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
21071 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
21072 (hppa_legitimize_address): Simplify mask calculation.
21073 (pa_emit_move_sequence): Revised handling of secondary reloads from
21074 REG+D addresses for floating point loads and stores. Directly handle
21075 loading CONST0_RTX (mode) to a floating point register.
21076 (pa_secondary_reload): Handle reloading DF and SFmode constant values
21077 to floating point registers. Don't restrict secondary reloads to
21078 floating point registers to integer modes. Revise some comments and
21079 cleanup some code.
21080 (TARGET_LEGITIMATE_ADDRESS_P): Define.
21081 (pa_legitimate_address_p): New.
21082 (pa_legitimize_reload_address): New.
21083 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
21084 (STRICT_REG_OK_FOR_BASE_P): New.
21085 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
21086 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
21087
3bf65591
DE
210882013-02-03 David Edelsohn <dje.gcc@gmail.com>
21089 Andrew Dixie <andrewd@gentrack.com>
21090
21091 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
21092 flag set.
21093
c0a8a3e6
RS
210942013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
21095
21096 * expmed.c (extract_bit_field_1): Pass the full width of the
21097 structure to get_best_reg_extraction_insn.
21098
99113dff
DE
210992013-02-01 David Edelsohn <dje.gcc@gmail.com>
21100
21101 PR target/54601
21102 * configure.ac (use_cxa_atexit): Add AIX.
21103 * configure: Regenerate.
21104
21105 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
21106
ddd84654
JJ
211072013-02-01 Jakub Jelinek <jakub@redhat.com>
21108
21109 PR debug/54793
21110 * final.c (need_profile_function): New variable.
21111 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
21112 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
21113 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
21114 notes, targetm.asm_out.function_prologue doesn't emit anything,
21115 HAVE_prologue and profiler should be emitted before prologue,
21116 set need_profile_function instead of emitting it.
21117 (final_scan_insn): If need_profile_function, emit
21118 profile_function on the first NOTE_INSN_BASIC_BLOCK or
21119 NOTE_INSN_FUNCTION_BEG note.
21120
211212013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
21122
21123 * config/rs6000/rs6000.md (smulditi3): New.
21124 (umulditi3): New.
21125
ff2a9d88
RH
21126 * config/alpha/alpha.md (umulditi3): New.
21127
14d52b90
DE
211282013-02-01 David Edelsohn <dje.gcc@gmail.com>
21129
21130 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
21131 (ASM_OUTPUT_ALIGNED_LOCAL): New.
21132
8c7ca45c
RB
211332013-02-01 Richard Biener <rguenther@suse.de>
21134
21135 PR tree-optimization/56113
21136 * tree-ssa-structalias.c (label_visit): Reduce work for
21137 single-predecessor nodes.
21138
9f419393
EB
211392013-02-01 Eric Botcazou <ebotcazou@adacore.com>
21140
21141 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
21142 range isn't testing for zero.
21143
c5f4be84
SB
211442013-01-31 Steven Bosscher <steven@gcc.gnu.org>
21145
21146 PR middle-end/56113
21147 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
21148
dbdbd982
NC
211492013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
21150 Nick Clifton <nickc@redhat.com>
21151
21152 * config/v850/constraints.md (Q): Define as a memory constraint.
21153 * config/v850/predicates.md (label_ref_operand): New predicate.
21154 (e3v5_shift_operand): New predicate.
21155 (ior_operator): New predicate.
21156 * config/v850/t-v850: Add e3v5 multilib.
21157 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
21158 (v850_gen_movdi): Prototype.
21159 * config/v850/v850.c: Add support for e3v5 architecture.
21160 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
21161 TARGET_V850E_UP.
21162 (construct_save_jarl): Add e3v5 long JARL support.
21163 (v850_adjust_insn_length): New function. Adjust length of call
21164 insns when using e3v5 instructions.
21165 (v850_gen_movdi): New function: Generate instructions to move a
21166 DImode value.
21167 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
21168 (CPP_SPEC): Define __v850e3v5__ as appropriate.
21169 (TARGET_USE_FPU): Enable for e3v5.
21170 (CONST_OK_FOR_W): New macro.
21171 (ADJUST_INSN_LENGTH): Define.
21172 * config/v850/v850.md (UNSPEC_LOOP): Define.
21173 (attr cpu): Add v850e3v5.
21174 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
21175 (movdi): New pattern.
21176 (movdi_internal): New pattern.
21177 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
21178 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
21179 (cstoresf4): Likewise.
21180 (cstoredf4): Likewise.
21181 (insv): New pattern.
21182 (rotlso3_a): New pattern.
21183 (rotlsi3_b): New pattern
21184 (rotlsi3_v850e3v5): New pattern.
21185 (doloop_begin): New pattern.
21186 (fix_loop_counter): New pattern.
21187 (doloop_end): New pattern.
21188 (branch_normal): Add e3v5 long branch support.
21189 (branch_invert): Likewise.
21190 (branch_z_normal): Likewise.
21191 (branch_z_invert): Likewise.
21192 (branch_nz_normal): Likewise.
21193 (branch_nz_invert): Likewise.
21194 (call_internal_short): Add e3v5 register-indirect JARL support.
21195 (call_internal_long): Likewise.
21196 (call_value_internal_short): Likewise.
21197 (call_value_internal_long): Likewise.
21198 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
21199 (mloop): New option.
21200 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 21201 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 21202
73861a41
PK
212032013-01-31 Paul Koning <ni1d@arrl.net>
21204
21205 PR debug/55059
21206 PR debug/54508
21207 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
21208 children if parent is a class.
21209 (prune_unused_types_prune): Don't add DW_AT_declaration.
21210
e44978dc
RB
212112013-01-31 Richard Biener <rguenther@suse.de>
21212
21213 PR tree-optimization/56157
21214 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
21215 match up operand with SLP child.
21216
90b10dec
JM
212172013-01-31 Jason Merrill <jason@redhat.com>
21218
04d2dadd 21219 PR debug/54410
90b10dec
JM
21220 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
21221 parameters the first time.
21222 (gen_scheduled_generic_parms_dies): Check completeness here.
21223
6e616110
RB
212242013-01-31 Richard Biener <rguenther@suse.de>
21225
21226 PR middle-end/53073
21227 * common.opt (faggressive-loop-optimizations): New flag,
21228 enabled by default.
21229 * doc/invoke.texi (faggressive-loop-optimizations): Document.
21230 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
21231 infer_loop_bounds_from_undefined by it.
21232
636f59cf
RB
212332013-01-31 Richard Biener <rguenther@suse.de>
21234
21235 PR tree-optimization/56150
21236 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
21237 visit virtual operands.
21238 (find_uses_to_rename_bb): Likewise.
21239
212402013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
21241
21242 PR tree-optimization/56150
21243 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
21244 mixed store non-store stmts.
21245
32887460
JJ
212462013-01-30 Jakub Jelinek <jakub@redhat.com>
21247
e60e09a0
JJ
21248 PR sanitizer/55374
21249 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
21250 LIBASAN_EARLY_SPEC is defined.
21251 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
21252 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
21253 before %o.
21254 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
21255
32887460
JJ
21256 PR c++/55742
21257 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
21258 invalid args instead of ICEing on it.
21259 (ix86_valid_target_attribute_tree): Return error_mark_node if
21260 ix86_valid_target_attribute_inner_p failed.
21261 (ix86_valid_target_attribute_p): Return false only if
21262 ix86_valid_target_attribute_tree returned error_mark_node. Allow
21263 target("default") attribute.
21264 (sorted_attr_string): Change argument from const char * to tree,
21265 merge in all target attribute arguments rather than just one.
21266 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
21267 instead of free. Avoid using strcat.
21268 (ix86_mangle_function_version_assembler_name): Mangle
21269 target("default") as if no target attribute is present. Adjust
21270 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
21271 instead of xmalloc and XDELETEVEC instead of free.
21272 (ix86_function_versions): Don't return true if one of the decls
21273 doesn't have target attribute. If they don't and one of the decls
21274 is DECL_FUNCTION_VERSIONED, report an error. Adjust
21275 sorted_attr_string caller. Use XDELETEVEC instead of free.
21276 (ix86_supports_function_versions): Remove.
21277 (make_name): Fix up formatting.
21278 (make_dispatcher_decl): Remove resolver_name and its initialization.
21279 Avoid leaking memory.
21280 (is_function_default_version): Return true if there is
21281 target("default") attribute rather than no target attribute at all.
21282 (make_resolver_func): Avoid leaking memory.
21283 (ix86_generate_version_dispatcher_body): Likewise.
21284 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
21285 * target.def (supports_function_versions): Remove.
21286 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
21287 * doc/tm.texi: Regenerated.
21288
73cca0cc
VM
212892013-01-30 Vladimir Makarov <vmakarov@redhat.com>
21290
21291 PR rtl-optimization/56144
21292 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
21293 for values with side effects.
21294
11452e7b
RB
212952013-01-30 Richard Biener <rguenther@suse.de>
21296
21297 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
21298 (sparseset_pop): Likewise.
21299 * cfganal.c (compute_idf): Likewise. Increase work-stack size
21300 to be able to use quick_push in the worker loop.
21301
01cb1ef5
MP
213022013-01-30 Marek Polacek <polacek@redhat.com>
21303
21304 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
21305
e892936e
RB
213062013-01-30 Richard Biener <rguenther@suse.de>
21307
21308 PR lto/56147
6edc3e32 21309 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 21310
cc06c01d
GJL
213112013-01-30 Georg-Johann Lay <avr@gjlay.de>
21312
21313 PR tree-optimization/56064
21314 * fixed-value.c (fixed_from_double_int): New function.
21315 * fixed-value.h (fixed_from_double_int): New prototype.
21316 (const_fixed_from_double_int): New static inline function.
21317 * fold-const.c (native_interpret_fixed): New static function.
21318 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
21319 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
21320 (native_encode_fixed): New static function.
21321 (native_encode_expr) <FIXED_CST>: Use it.
21322 (native_interpret_int): Move double_int worker code to...
21323 * double-int.c (double_int::from_buffer): ...this new static method.
21324 * double-int.h (double_int::from_buffer): Prototype it.
21325
d394a308
RB
213262013-01-30 Richard Biener <rguenther@suse.de>
21327
21328 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
21329 New pointer-map and obstack.
21330 (init_alias_vars): Allocate pointer-map and obstack.
21331 (delete_points_to_sets): Free them.
21332 (find_what_var_points_to): Cache result.
21333 (find_what_p_points_to): Adjust for changed interface of
21334 find_what_var_points_to.
21335 (compute_points_to_sets): Likewise.
21336 (ipa_pta_execute): Likewise.
21337
20804d96
RO
213382013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21339
21340 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
21341 * configure: Regenerate.
21342 * config.in: Regenerate.
21343 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
21344 #nobits/#progbits if supported.
21345
a7ad88a2
OE
213462013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
21347
21348 PR target/56121
21349 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
21350 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
21351 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
21352
7af79f92
GY
213532013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
21354
91bfca59
OE
21355 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
21356 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 21357
753bcf7b
GY
213582013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
21359
91bfca59
OE
21360 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
21361 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 21362
8cbc2ea8
GY
213632013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
21364
91bfca59
OE
21365 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
21366 declaration.
21367 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
21368 * config/arm/cortex-a7.md: New bypasses using
21369 arm_mac_accumulator_is_result.
8cbc2ea8 21370
697a3325
GY
213712013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
21372
91bfca59 21373 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 21374 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
21375 (cortex_a7_fpfmad): New reservation.
21376 (cortex_a7_fpmacs): Use ffmas and update required units.
21377 (cortex_a7_fpmuld): Update required units and latency.
21378 (cortex_a7_fpmacd): Likewise.
21379 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
21380 (cortex_a7_neon). Likewise.
21381 (bypass) Update participating units.
697a3325 21382
29637783
GY
213832013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
21384
91bfca59
OE
21385 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
21386 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
21387 from fmac to ffma.
21388 * config/arm/vfp11.md (vfp_farith): Use ffmas.
21389 (vfp_fmul): Use ffmad.
21390 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
21391 (cortex_r4_fmacd): Use ffmad.
21392 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
21393 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
21394 (cortex_a9_fmacd): Use ffmad.
21395 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
21396 (cortex_a8_vfp_macd): Use ffmad.
21397 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
21398 (cortex_a5_fpmacd): Use ffmad.
21399 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
21400 (cortex_a15_vfp_macd): Use ffmad.
21401 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 21402
2ee8a2d5
JM
214032013-01-29 Jason Merrill <jason@redhat.com>
21404
21405 PR libstdc++/54314
21406 * varasm.c (default_assemble_visibility): Don't warn about
21407 visibility on artificial decls.
21408
78d087bc
RB
214092013-01-29 Richard Biener <rguenther@suse.de>
21410
21411 PR tree-optimization/56113
21412 * tree-ssa-structalias.c (equiv_class_lookup): Also return
21413 the bitmap leader.
21414 (label_visit): Free duplicate bitmaps and record the leader instead.
21415 (perform_var_substitution): Adjust.
21416
83ba4d6f
RB
214172013-01-29 Richard Biener <rguenther@suse.de>
21418
21419 PR tree-optimization/55270
21420 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
21421 the CFG, schedule loops for fixup.
21422
66dfe13f
NC
214232013-01-29 Nick Clifton <nickc@redhat.com>
21424
21425 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
21426 SP_REG.
21427
5a579c3b
LE
214282013-01-28 Leif Ekblad <leif@rdos.net>
21429
21430 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
21431 * config/i386/i386.h (TARGET_RDOS): New macro.
21432 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
21433 * config/i386/i386.c (ix86_option_override_internal): For 64bit
21434 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
21435 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
21436 DEFAULT_LARGE_SECTION_THRESHOLD.
21437 * config/i386/i386.md (R14_REG, R15_REG): New constants.
21438 * config/i386/rdos.h: New file.
21439 * config/i386/rdos64.h: New file.
21440
51e44392
BS
214412013-01-28 Bernd Schmidt <bernds@codesourcery.com>
21442
21443 PR other/54814
21444 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
21445 TEST_HARD_REG_BIT.
21446
db1fb332
JJ
214472013-01-28 Jakub Jelinek <jakub@redhat.com>
21448
21449 PR rtl-optimization/56117
21450 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
21451 call cselib_lookup_from_insn on the MEM before calling
21452 add_insn_mem_dependence.
21453
16917761
RB
214542013-01-28 Richard Biener <rguenther@suse.de>
21455
21456 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
21457 to a stmt that didn't have one.
21458 (copy_phis_for_bb): Likewise for PHI arguments.
21459 (copy_debug_stmt): Likewise for debug stmts.
21460
b9fc0497
RB
214612013-01-28 Richard Biener <rguenther@suse.de>
21462
21463 PR tree-optimization/56034
6edc3e32 21464 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
21465 (partition_builtin_p): Adjust.
21466 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
21467 it is the last partition.
21468 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
21469 up the vertex for the definition.
21470 (classify_partition): Classify whether a partition is a
21471 PKIND_REDUCTION, thus has uses outside of the loop.
21472 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
21473 Merge all PKIND_REDUCTION partitions into the last partition.
21474 (tree_loop_distribution): Seed partitions from reductions as well.
21475
aa710d25
JJ
214762013-01-28 Jakub Jelinek <jakub@redhat.com>
21477
0bfbca58
JJ
21478 PR tree-optimization/56125
21479 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
21480 pow(x,c) into sqrt(x) * powi(x, n/2) or
21481 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
21482 optimizing for size.
21483 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
21484 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
21485 integer.
21486
aa710d25
JJ
21487 PR tree-optimization/56094
21488 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
21489 to UNKNOWN_LOCATION while gimplifying expr.
21490
77dc5297
UB
214912013-01-27 Uros Bizjak <ubizjak@gmail.com>
21492
21493 PR target/56114
21494 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
21495 operand 0 in movabs insn template for -masm=intel asm alternative.
21496 (*movabs<mode>_2): Ditto for operand 1.
21497
0bfbca58 214982013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
21499
21500 PR target/54663
21501 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
21502 of microblaze-c.o
21503
0bfbca58 215042013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
21505
21506 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
21507 tm_file.
21508
0bfbca58 215092013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
21510
21511 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
21512 Undef to avoid warning.
21513
478f60f9
MH
215142013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
21515
21516 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
21517 * configure: Regenerate.
21518
d7fa6ee2
JJ
215192013-01-25 Jakub Jelinek <jakub@redhat.com>
21520
21521 PR tree-optimization/56098
21522 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
21523 for stmts with volatile ops.
21524 (cond_store_replacement): Don't optimize if assign has volatile ops.
21525 (cond_if_else_store_replacement_1): Don't optimize if either
21526 then_assign or else_assign have volatile ops.
21527 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
21528 volatile ops.
21529
f8fe87bd
GJL
215302013-01-25 Georg-Johann Lay <avr@gjlay.de>
21531
21532 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
21533
28398d0d
GJL
215342013-01-25 Georg-Johann Lay <avr@gjlay.de>
21535
21536 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
21537 missing ':' in asm example.
21538
b7d7d917
TB
215392013-01-25 Tejas Belagod <tejas.belagod@arm.com>
21540
21541 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
21542 entries into lane and laneq entries.
77dc5297
UB
21543 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
21544 Remove AdvSIMD scalar modes.
b7d7d917
TB
21545 (aarch64_sq<r>dmulh_laneq<mode>): New.
21546 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
21547 modes.
21548 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
21549 builtin implementations to relfect changes in RTL in aarch64-simd.md.
21550 * config/aarch64/iterators.md (VCOND): New.
21551 (VCONQ): New.
21552
556f9906
GJL
215532013-01-25 Georg-Johann Lay <avr@gjlay.de>
21554
21555 PR target/54222
21556 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
21557 Add NULL LIBNAME argument to existing definitions.
21558 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
21559 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
21560 * config/avr/avr.c (DEF_BUILTIN): Same.
21561 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
21562 (avr_expand_builtin): Expand to a vanilla call if a libgcc
21563 implementation is available (DECL_ASSEMBLER_NAME is set).
21564 (avr_fold_absfx): New static function.
21565 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
21566 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
21567 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
21568 AVR_BUILTIN_ABSLLK.
21569 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
21570 (abshk, absk, abslk, absllk): Provide as static inline functions.
21571
1f546bbb
MP
215722013-01-25 Marek Polacek <polacek@redhat.com>
21573
21574 PR tree-optimization/56035
21575 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
21576
7e184bd7
UB
215772012-01-24 Uros Bizjak <ubizjak@gmail.com>
21578
21579 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
21580 (*movtf_internal_rex64): Add (!o,C) alternative
21581 (*movxf_internal_rex64): Ditto.
21582 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
21583
f5ba49ac
SM
215842013-01-24 Shenghou Ma <minux.ma@gmail.com>
21585
21586 * doc/invoke.texi: fix typo.
21587 * doc/objc.texi: fix typo.
21588
a6343728
RS
215892013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
21590
21591 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
21592 for the first two alternatives.
21593
cd030c07
DN
215942013-01-24 Diego Novillo <dnovillo@google.com>
21595
77dc5297 21596 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
21597 (ggc-zone.o): Remove.
21598 * configure.ac: Remove option --with-gc.
21599 * configure: Re-generate.
21600 * doc/install.texi: Remove documentation for --with-gc.
21601 * gengtype.c (write_enum_defn): Remove. Update all users.
21602 (write_Types_process_field): Remove generation of gt_e_* argument.
21603 (output_type_enum): Remove. Update all users.
21604 (write_enum_defn): Remove. Update all users.
21605 (enum alloc_zone): Remove. Update all users.
77dc5297 21606 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
21607 * ggc-common.c (ggc_splay_alloc): Remove first argument.
21608 Update all callers.
21609 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 21610 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
21611 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
21612 Update all users.
aaf1e810 21613 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
21614 (struct alloc_zone): Remove.
21615 (ggc_internal_alloc_zone_stat): Remove.
21616 (ggc_internal_cleared_alloc_zone_stat): Remove.
21617 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
21618 (ggc_pch_count_object): Remove last argument. Update all users.
21619 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
21620 (struct alloc_zone): Remove.
21621 * ggc-zone.c: Remove.
77dc5297 21622 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
21623 (struct alloc_zone): Remove.
21624 (ggc_alloc_typed_stat): Remove.
21625 (ggc_alloc_typed): Remove.
21626 (ggc_splay_alloc): Remove first argument.
21627 (rtl_zone): Remove. Update all users.
21628 (tree_zone): Remove. Update all users.
21629 (tree_id_zone): Remove. Update all users.
21630 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 21631 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 21632 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 21633 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 21634
a861ffa4
GJL
216352013-01-24 Georg-Johann Lay <avr@gjlay.de>
21636
21637 * config/avr/avr.c (avr_out_fract): Make register numbers that
21638 might be outside of source operand signed.
21639
593c0ddd
UB
216402013-01-24 Uros Bizjak <ubizjak@gmail.com>
21641
21642 * config/i386/constraints.md (Yf): New constraint.
21643 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
21644 of f constraint to conditionaly disable x87 register preferences.
21645 (*movdf_internal): Ditto.
21646 (*movsf_internal): Ditto.
21647
e86c0101
SB
216482013-01-24 Steven Bosscher <steven@gcc.gnu.org>
21649
21650 PR inline-asm/55934
21651 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
21652 that have operands with impossible constraints.
21653 Add a FIXME for a speed-up opportunity.
21654 * lra-constraints.c (process_alt_operands): Verify that a class
21655 selected from constraints on asms is valid for the operand mode.
21656 (curr_insn_transform): Remove incorrect comment.
21657
f6fee35f
DE
216582013-01-23 David Edelsohn <dje.gcc@gmail.com>
21659
21660 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
21661 TOC operand is a valid symbol ref in the constant pool.
21662
216632013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 21664
aaf1e810 21665 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 21666
dc62d7d1
GJL
216672013-01-23 Georg-Johann Lay <avr@gjlay.de>
21668
21669 PR target/54222
21670 * config/avr/stdfix.h: New file.
21671 * t-avr (stdfix-gcc.h): New rule to build it.
21672 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
21673
2660d12d
KS
216742013-01-23 Kostya Serebryany <kcc@google.com>
21675
77dc5297
UB
21676 * config/darwin.h: remove dependency on
21677 CoreFoundation (asan on Mac OS).
2660d12d 21678
a70418fc
JJ
216792013-01-23 Jakub Jelinek <jakub@redhat.com>
21680
21681 PR target/49069
21682 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
21683 instead of cmpdi_operand for first comparison operand.
21684 Don't assert that comparison operands aren't both constants.
21685
47876a2a
JW
216862013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
21687
21688 * doc/install.texi (Downloading the Source): Update references to
21689 downloading separate components.
21690
216912013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
21692
21693 * doc/extend.texi (__int128): Improve grammar.
21694
47876a2a 216952013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
21696
21697 PR target/56028
21698 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
21699 alternative to (o,r).
21700 (*movdi_internal_rex64): Remove (!o,n) alternative.
21701 (DImode immediate->memory splitter): Remove.
21702 (DImode immediate->memory peephole2): Remove.
21703 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
21704 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
21705 alternative to (!o,*r).
21706 (*movtf_internal_sse): New pattern.
21707 (*movxf_internal_rex64): New pattern.
21708 (*movxf_internal): Disable for TARGET_64BIT.
21709 (*movdf_internal_rex64): Remove (!o,F) alternative.
21710
3a984f10
JJ
217112013-01-22 Jakub Jelinek <jakub@redhat.com>
21712
502498d5
JJ
21713 PR middle-end/56074
21714 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
21715 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
21716 * tree-vect-loop-manip.c (find_loop_location): Also ignore
21717 stmt locations where LOCATION_LOCUS of the stmt location is
21718 UNKNOWN_LOCATION or BUILTINS_LOCATION.
21719
3a984f10
JJ
21720 PR target/55686
21721 * config/i386/i386.md (UNSPEC_STOS): New.
21722 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
21723 *strsetqi_1): Add UNSPEC_STOS.
21724
fa817f7f
PC
217252013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
21726
21727 PR c++/56067
21728 * doc/invoke.texi: Remove left over -Wsynth example.
21729
8f498c1b
JJ
217302013-01-21 Jakub Jelinek <jakub@redhat.com>
21731
21732 PR tree-optimization/56051
21733 * fold-const.c (fold_binary_loc): Don't fold
21734 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
21735 a narrowing conversion, or widening conversion from signed
21736 to unsigned.
21737
47876a2a 217382013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
21739
21740 PR rtl-optimization/56023
21741 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
21742 dependent on debug instruction.
21743
5b9db1bc
MJ
217442013-01-21 Martin Jambor <mjambor@suse.cz>
21745
21746 PR middle-end/56022
21747 * function.c (allocate_struct_function): Call
21748 invoke_set_current_function_hook earlier.
21749
e8bb7d68
JJ
217502013-01-21 Jakub Jelinek <jakub@redhat.com>
21751
21752 * reload1.c (init_reload): Only initialize reload_obstack
21753 during the first call.
21754
616a4e32
MP
217552013-01-21 Marek Polacek <polacek@redhat.com>
21756
21757 * cfgloop.c (verify_loop_structure): Fix up grammar.
21758
4401981b
YHH
217592013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
21760
21761 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
21762 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
21763
8e87740b
RR
217642013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21765
21766 PR target/56058
21767 * config/arm/marvell-pj4.md: Update copyright year.
21768 Fix up use of alu to alu_reg and simple_alu_imm.
21769
47876a2a 217702013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
21771
21772 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
21773
89d56d79
VM
217742013-01-20 Vladimir Makarov <vmakarov@redhat.com>
21775
21776 PR target/55433
21777 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 21778 insn for secondary memory move when memory mode should be different.
89d56d79 21779
fe603553
JDA
217802013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21781
21782 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
21783 atomic_storedi_1): New patterns.
21784
01284895
VK
217852013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
21786
21787 btver2 pipeline descriptions.
21788 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
21789 descriptions.
21790 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 21791 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
21792 type attributes.
21793 * config/i386/btver2.md: New file describing btver2 pipelines.
21794
5630e3e1
JL
217952013-01-19 Andrew Pinski <apinski@cavium.com>
21796
21797 PR tree-optimization/52631
21798 * tree-ssa-sccvn (visit_use): Before looking up the original
21799 statement, try looking up the simplified expression.
21800
650ae806
AG
218012013-01-19 Anthony Green <green@moxielogic.com>
21802
21803 * config/moxie/moxie.c (moxie_expand_prologue): Set
21804 current_function_static_stack_size.
21805
e300ec2d
JJ
218062013-01-18 Jakub Jelinek <jakub@redhat.com>
21807
21808 PR tree-optimization/56029
21809 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
21810 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
21811
a3d7af04
SS
218122013-01-18 Sharad Singhai <singhai@google.com>
21813
21814 PR tree-optimization/55995
21815 * dumpfile.c (dump_loc): Print location only if available.
21816 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
21817
66aa7879
VM
218182013-01-18 Vladimir Makarov <vmakarov@redhat.com>
21819
21820 PR target/55433
21821 * lra-constraints.c (curr_insn_transform): Reuse original insn for
21822 secondary memory move.
21823 (inherit_reload_reg): Use rclass instead of cl for
21824 check_secondary_memory_needed_p.
21825
3f0fee7b
JJ
218262013-01-18 Jakub Jelinek <jakub@redhat.com>
21827
21828 PR middle-end/56015
21829 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 21830 the case where writing real complex part of target modifies op1.
3f0fee7b 21831
70c67693
JG
218322013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
21833
21834 * config/aarch64/aarch64-simd.md
21835 (aarch64_vcond_internal<mode>): Handle unordered cases.
21836 * config/aarch64/iterators.md (v_cmp_result): New.
21837
df8de9b3
YHH
218382013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
21839 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21840
21841 * config/arm/marvell-pj4.md: New file.
21842 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
21843 * config/arm/arm.md (generic_sched): Add marvell_pj4.
21844 (generic_vfp): Likewise.
21845 * config/arm/arm-cores.def: Add marvell-pj4.
21846 * config/arm/arm-tune.md: Regenerate.
21847 * config/arm/arm-tables.opt: Regenerate.
21848 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
21849 * doc/invoke.texi: Document marvell-pj4.
21850
be30c356
TB
218512013-01-18 Tejas Belagod <tejas.belagod@arm.com>
21852
21853 * config/aarch64/arm_neon.h: Map scalar types to standard types.
21854
0bfbca58 218552013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
21856
21857 PR debug/54114
21858 PR debug/54402
21859 PR debug/49888
21860 * var-tracking.c (negative_power_of_two_p): New.
21861 (global_get_addr_cache, local_get_addr_cache): New.
21862 (get_addr_from_global_cache, get_addr_from_local_cache): New.
21863 (vt_canonicalize_addr): Rewrite using the above. Adjust the
21864 heading comment.
21865 (vt_stack_offset_p): Remove.
21866 (vt_canon_true_dep): Always canonicalize loc's address.
21867 (clobber_overlapping_mems): Make sure we have a MEM.
21868 (local_get_addr_clear_given_value): New.
21869 (val_reset): Clear local cached entries.
21870 (compute_bb_dataflow): Create and release the local cache.
21871 Disable duplicate MEMs clobbering.
21872 (emit_notes_in_bb): Clobber MEMs likewise.
21873 (vt_emit_notes): Create and release the local cache.
21874 (vt_initialize, vt_finalize): Create and release the global
21875 cache, respectively.
1f6bc337 21876 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 21877
0bfbca58 218782013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
21879
21880 PR libmudflap/53359
21881 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
21882 not found in the symtab.
21883
0bfbca58 218842013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 21885
c350ba53 21886 PR debug/56006
3aa03517
AO
21887 PR rtl-optimization/55547
21888 PR rtl-optimization/53827
21889 PR debug/53671
21890 PR debug/49888
21891 * alias.c (offset_overlap_p): New, factored out of...
21892 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
21893 the conservative special case for symbolic constants. Don't
21894 adjust zero sizes on alignment.
21895
c664546f
JL
218962013-01-18 Bernd Schmidt <bernds@codesourcery.com>
21897
21898 PR rtl-optimization/52573
21899 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
21900 REG_UNUSED for the same register.
21901
1bd3f750
MP
219022013-01-17 Richard Biener <rguenther@suse.de>
21903 Marek Polacek <polacek@redhat.com>
21904
21905 PR rtl-optimization/55833
21906 * loop-unswitch.c (unswitch_loops): Move loop verification...
21907 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
21908 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
21909 Set it to true when we're removing a loop from hierarchy tree in
21910 an irreducible region.
21911 (fix_bb_placements): Adjust caller.
21912 (fix_loop_placements): Likewise.
21913
e52a8b71
GJL
219142013-01-17 Georg-Johann Lay <avr@gjlay.de>
21915
21916 * config/avr/builtins.def (DEF_BUILTIN): Factor out
21917 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
21918 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
21919 Remove ID. Adjust comments.
21920 * config/avr/avr-c.c (avr_builtin_name): Remove.
21921 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
21922 * config/avr/avr.c (avr_tolower): New static function.
21923 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
21924 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
21925 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
21926 default expansion.
21927
8386a7ea
JH
219282013-01-17 Jan Hubicka <jh@suse.cz>
21929
610fb637 21930 PR tree-optimization/55273
8386a7ea
JH
21931 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
21932
47876a2a 219332013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
21934
21935 PR target/55981
21936 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
21937 store through atomic_store<mode>_1.
21938 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
21939
8222c37e
MJ
219402013-01-17 Martin Jambor <mjambor@suse.cz>
21941
21942 PR tree-optimizations/55264
21943 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
21944 for virtual methods.
21945 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
21946 virtual methods before inlining is over.
21947 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
21948 virtual functions.
21949 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
21950 non-virtual.
21951
79f01c76
VM
219522013-01-16 Vladimir Makarov <vmakarov@redhat.com>
21953
21954 PR rtl-optimization/56005
21955 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
21956 pending reads for prefetch.
21957
d0b6bb1b
IB
219582013-01-16 Ian Bolton <ian.bolton@arm.com>
21959
aaf1e810 21960 * config/aarch64/aarch64.md
d0b6bb1b
IB
21961 (*cstoresi_neg_uxtw): New pattern.
21962 (*cmovsi_insn_uxtw): New pattern.
21963 (*<optab>si3_uxtw): New pattern.
21964 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
21965 (*<optab>si3_insn_uxtw): New pattern.
21966 (*bswapsi2_uxtw): New pattern.
21967
cb9cf03b
RB
219682013-01-16 Richard Biener <rguenther@suse.de>
21969
21970 * tree-inline.c (tree_function_versioning): Remove set but
21971 never used variable.
21972
2cfc56b9
RB
219732013-01-16 Richard Biener <rguenther@suse.de>
21974
21975 PR tree-optimization/55964
21976 * tree-flow.h (rename_variables_in_loop): Remove.
21977 (rename_variables_in_bb): Likewise.
21978 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
21979 (copy_loop_before): Adjust and delete update-ssa status.
21980 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 21981 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
21982 (rename_variables_in_loop): Remove.
21983 (slpeel_update_phis_for_duplicate_loop): Likewise.
21984 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
21985 use available cfg machinery instead of duplicating it.
21986 Update PHI nodes and perform poor-mans SSA update here.
21987 (slpeel_tree_peel_loop_to_edge): Adjust.
21988
c25a0c60
RB
219892013-01-16 Richard Biener <rguenther@suse.de>
21990
21991 PR tree-optimization/54767
21992 PR tree-optimization/53465
21993 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
21994 (vrp_visit_phi_node): For PHI arguments coming via backedges
21995 drop all symbolical range information.
21996 (execute_vrp): Compute backedges.
21997
04b535af
RB
219982013-01-16 Richard Biener <rguenther@suse.de>
21999
22000 * doc/install.texi: Update CLooG and ISL requirements to
22001 0.18.0 and 0.11.1.
22002
8b0a1e0b
CB
220032013-01-16 Christian Bruel <christian.bruel@st.com>
22004
22005 PR target/55301
22006 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
22007 (broken_move): Handle UNSPECV_SP_SWITCH_B.
22008 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
22009
220102013-01-16 DJ Delorie <dj@redhat.com>
22011
22012 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
22013 (UNSPECV_SP_SWITCH_E): New.
22014 (sp_switch_1): Change to an unspec.
22015 (sp_switch_2): Change to an unspec. Don't use post-inc when we
22016 replace $r15.
22017
220182013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
22019
22020 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
22021 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
22022 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
22023 (expand_mem_thread_fence): Ditto.
22024 (expand_mem_signal_fence): Ditto.
22025 (expand_atomic_load): Ditto.
22026 (expand_atomic_store): Ditto.
22027
0bfbca58 220282013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
22029
22030 PR rtl-optimization/55547
22031 PR rtl-optimization/53827
22032 PR debug/53671
22033 PR debug/49888
22034 * alias.c (memrefs_conflict_p): Set sizes to negative after
22035 AND adjustments.
22036
305e3ac1
JJ
220372013-01-15 Jakub Jelinek <jakub@redhat.com>
22038
22039 PR target/55940
22040 * function.c (thread_prologue_and_epilogue_insns): Always
22041 add crtl->drap_reg to set_up_by_prologue.set, even if
22042 stack_realign_drap is false.
22043
f78ac4f2
JBG
220442013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
22045
22046 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
22047 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
22048 *call): Fix indention.
22049
a78a8cc4
TV
220502013-01-15 Tom de Vries <tom@codesourcery.com>
22051
22052 PR target/55876
22053 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
22054 Update comment.
22055
0e80383f
VM
220562013-01-15 Vladimir Makarov <vmakarov@redhat.com>
22057
305e3ac1 22058 PR rtl-optimization/55153
0e80383f
VM
22059 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
22060
207b5956
MJ
220612013-01-15 Martin Jambor <mjambor@suse.cz>
22062
22063 PR tree-optimization/55920
22064 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
22065 accesses as grp_to_be_debug_replaced.
22066
a7818b54
JJ
220672013-01-15 Jakub Jelinek <jakub@redhat.com>
22068
22069 PR tree-optimization/55920
22070 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
22071 there is non-useless type conversion needed from debug rhs to lhs,
22072 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
22073
b0fe107e
JM
220742013-01-15 Joseph Myers <joseph@codesourcery.com>
22075 Mikael Pettersson <mikpe@it.uu.se>
22076
22077 PR target/43961
22078 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
22079 Thumb.
22080 (ASM_OUTPUT_CASE_LABEL): Remove.
22081 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
22082 * final.c (shorten_branches): Update alignment of labels before
22083 jump tables if CASE_VECTOR_SHORTEN_MODE.
22084
34ab62ee
RB
220852013-01-15 Richard Biener <rguenther@suse.de>
22086
22087 PR bootstrap/55961
22088 * system.h: Do not include gmp.h for building host tools.
22089
783a3a05
RB
220902013-01-15 Richard Biener <rguenther@suse.de>
22091
22092 PR middle-end/55882
22093 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
22094 account for bitpos when computing alignment.
22095
3a579e09
VY
220962013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
22097
22098 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
22099 (ix86_target_macros_internal): Likewise.
22100
22101 * config/i386/i386.c (m_CORE2I7): Removed.
22102 (m_CORE_HASWELL): New macro.
22103 (m_CORE_ALL): Likewise.
22104 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
22105 (initial_ix86_arch_features): Likewise.
22106 (processor_target_table): Initializations for Core avx2.
22107 (cpu_names): New names "core-avx2".
22108 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
22109 PROCESSOR_CORE_HASWELL.
22110 (ix86_issue_rate): New case.
22111 (ia32_multipass_dfa_lookahead): Likewise.
22112 (ix86_sched_init_global): Likewise.
22113
22114 * config/i386/i386.h (TARGET_HASWELL): New macro.
22115 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
22116 (processor_type): New PROCESSOR_HASWELL.
22117
955f5a07
JJ
221182013-01-15 Jakub Jelinek <jakub@redhat.com>
22119
ff784829
JJ
22120 PR tree-optimization/55955
22121 * tree-vect-loop.c (vectorizable_reduction): Give up early on
22122 *SHIFT_EXPR and *ROTATE_EXPR codes.
22123
955f5a07
JJ
22124 PR tree-optimization/48766
22125 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
22126 -ftrapv disable -fwrapv.
22127
aeb8b4e9
GJL
221282013-01-14 Georg-Johann Lay <avr@gjlay.de>
22129
22130 PR target/55974
22131 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
22132 etc. to 1 and not to __flash.
22133 Use LL suffix for __INT24_MAX__ with -mint8.
22134 Use ULL suffix for __UINT24_MAX__ with -mint8.
22135
1c494c6a
GJL
221362013-01-14 Georg-Johann Lay <avr@gjlay.de>
22137
22138 * config/avr/avr-arch.h
22139 (struct base_arch_s): Use typedef avr_arch_t instead.
22140 (struct arch_info_s): Use typedef avr_arch_info_t instead.
22141 (struct mcu_type_s): Use typedef avr_mcu_t instead.
22142 * config/avr/avr.c: Same.
22143 * config/avr/avr-devices.c: Same.
22144 * config/avr/driver-avr.c: Same.
22145 * config/avr/gen-avr-mmcu-texi.c: Same.
22146 * config/avr/avr-mcus.def: Adjust comment.
22147
a50344cb
TB
221482013-01-14 Tejas Belagod <tejas.belagod@arm.com>
22149
88e784e6
UB
22150 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
22151 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 22152
47876a2a 221532013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
22154 Andi Kleen <ak@linux.intel.com>
22155
22156 PR target/55948
22157 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
22158 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
22159 memmodel flag.
22160
00892272
GJL
221612013-01-14 Georg-Johann Lay <avr@gjlay.de>
22162
22163 * config/avr/avr-stdint.h: Remove trailing blanks.
22164 * config/avr/avr-log.h: Same.
22165 * config/avr/avr-arch.h: Same.
22166 * config/avr/avr-devices.c: Same.
22167 * config/avr/avr-dimode.md: Same.
22168 * config/avr/predicates.md: Same.
22169 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 22170
00892272
GJL
22171 * config/avr/avr-protos.h: Same. And:
22172 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
22173 (init_cumulative_args): Rename to avr_init_cumulative_args.
22174 (expand_prologue): Rename to avr_expand_prologue.
22175 (expand_epilogue): Rename to avr_expand_epilogue.
22176 (adjust_insn_length): Rename to avr_adjust_insn_length.
22177 (notice_update_cc): Rename to avr_notice_update_cc.
22178 (final_prescan_insn): Rename to avr_final_prescan_insn.
22179 * config/avr/avr.c: Same.
22180 * config/avr/avr.h: Same.
22181 * config/avr/avr.md: Remove trailing blanks.
22182 (prologue): Use avr_expand_prologue.
22183 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
22184
7bb01996
RB
221852013-01-14 Richard Biener <rguenther@suse.de>
22186
22187 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
22188 verify_location, collect_subblocks): New functions.
22189 (verify_gimple_in_cfg): Verify that locations only reference
22190 BLOCKs in the functions BLOCK tree.
22191
2724573f
RB
221922013-01-14 Richard Biener <rguenther@suse.de>
22193
22194 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
22195 PHI argument.
22196 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
22197 unshare reference.
22198 (insert_out_of_ssa_copy_on_edge): Likewise.
22199 (rewrite_close_phi_out_of_ssa): Likewise.
22200 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
22201 debug expressions.
22202 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
22203 propagated constants.
22204 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
22205 can not be shared.
22206
9a0bbab6
GJL
222072013-01-14 Georg-Johann Lay <avr@gjlay.de>
22208
22209 * config/avr/avr-modes.def: Add GPL copyright notice.
22210
45805f17
UB
222112013-01-13 Uros Bizjak <ubizjak@gmail.com>
22212
22213 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
22214 MEMMODEL_MASK to determine memory model.
22215 (atomic_store<mode>): Ditto from operands[2].
22216 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
22217
9d60be38
JJ
222182013-01-13 Jakub Jelinek <jakub@redhat.com>
22219
22220 PR fortran/55935
45805f17 22221 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
22222 (fold_gimple_assign): Don't call unshare_expr here.
22223 (fold_ctor_reference): Call unshare_expr.
22224
e7f49d92
TG
222252013-01-13 Terry Guo <terry.guo@arm.com>
22226
aaf1e810
EB
22227 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
22228 * doc/fragments.texi: Document MULTILIB_REUSE.
22229 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 22230 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 22231 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
22232 (tmpmultilib4): Ditto.
22233 (multilib_reuse): New multilib argument.
22234
fbd03a27
RS
222352013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
22236
22237 * Makefile.in: Update copyright.
22238
b3681f13
TV
222392013-01-12 Tom de Vries <tom@codesourcery.com>
22240
22241 PR middle-end/55890
22242 * calls.c (expand_call): Check if arg_nr is valid.
22243
3f287e4b
MM
222442013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
22245
22246 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
22247 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
22248 documentation. Add missing '__' in front of
22249 __builtin_ia32_packssdw256.
3f287e4b 22250
1abcd5eb
AK
222512013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22252
22253 PR target/55719
22254 * config/s390/s390.c (s390_preferred_reload_class): Do not return
22255 NO_REGS for larl operands.
22256 (s390_reload_larl_operand): Use s390_load_address instead of
22257 emit_move_insn.
22258
980d0812
RB
222592013-01-11 Richard Biener <rguenther@suse.de>
22260
22261 * tree-cfg.c (verify_node_sharing_1): Split out from ...
22262 (verify_node_sharing): ... here.
22263 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
22264
7cb9fd07
EB
222652013-01-11 Eric Botcazou <ebotcazou@adacore.com>
22266
22267 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
22268 Substitute TREECHECKING.
22269 * configure: Regenerate.
22270 * Makefile.in (TREECHECKING): New.
22271
47876a2a 222722013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
22273
22274 PR tree-optimization/44061
22275 * tree-vrp.c (extract_range_basic): Compute zero as
22276 value-range for __builtin_constant_p of function parameters.
22277
d1e082c2
RS
222782013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
22279
45805f17 22280 Update copyright years.
d1e082c2 22281
f85021b0
VM
222822013-01-10 Vladimir Makarov <vmakarov@redhat.com>
22283
9d60be38 22284 PR rtl-optimization/55672
0160442c
VM
22285 * lra-eliminations.c (mark_not_eliminable): Permit addition with
22286 const to be eliminable.
f85021b0 22287
7a8b1ec4
DE
222882013-01-10 David Edelsohn <dje.gcc@gmail.com>
22289
22290 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
22291 * configure: Regenerate.
22292
ad2e5b71
RB
222932013-01-10 Richard Biener <rguenther@suse.de>
22294
ddf9322d 22295 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 22296
ffc5b2bb
RB
222972013-01-10 Richard Biener <rguenther@suse.de>
22298
22299 PR bootstrap/55792
22300 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
22301 locations for virtual PHI arguments.
22302 (rewrite_update_phi_arguments): Likewise.
22303
e1f674e4
JS
223042013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
22305
22306 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
22307 on to assembler.
22308
a57fc743
JJ
223092013-01-10 Jakub Jelinek <jakub@redhat.com>
22310
22311 PR tree-optimization/55921
22312 * tree-complex.c (expand_complex_asm): New function.
22313 (expand_complex_operations_1): Call it for GIMPLE_ASM.
22314
0ff4390d
AK
223152013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22316
22317 PR target/55718
22318 * config/s390/s390.c (s390_symref_operand_p)
22319 (s390_loadrelative_operand_p): Merge the two functions.
22320 (s390_check_qrst_address, print_operand_address): Add parameters
22321 to s390_loadrelative_operand_p invokation.
22322 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
22323 (s390_reload_larl_operand, s390_secondary_reload): Use
22324 s390_loadrelative_operand_p instead of s390_symref_operand_p.
22325 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
22326
6f557e0e
MS
223272013-01-09 Mike Stump <mikestump@comcast.net>
22328
22329 * dse.c (record_store): Remove unnecessary assert.
22330
7770c9e9
JH
223312013-01-09 Jan Hubicka <jh@suse.cz>
22332
22333 PR tree-optimization/55569
22334 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
22335 * cfgloop.h (scale_loop_profile): Likewise.
22336
a19b1432
JH
223372013-01-09 Jan Hubicka <jh@suse.cz>
22338
22339 PR lto/45375
ddf9322d
UB
22340 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
22341 functions.
a19b1432
JH
22342 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
22343
9a002da8
RS
223442013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
22345
22346 PR middle-end/55114
22347 * expr.h (maybe_emit_group_store): Declare.
22348 * expr.c (maybe_emit_group_store): New function.
22349 * builtins.c (expand_builtin_int_roundingfn): Call it.
22350 (expand_builtin_int_roundingfn_2): Likewise.
22351
511dcace
VM
223522013-01-09 Vladimir Makarov <vmakarov@redhat.com>
22353
e1f2b729 22354 PR rtl-optimization/55829
511dcace
VM
22355 * lra-constraints.c (match_reload): Add code for absent output.
22356 (curr_insn_transform): Add code for reloads of matched inputs
22357 without output.
22358
7b0fe4f4
UB
223592013-01-09 Uros Bizjak <ubizjak@gmail.com>
22360
22361 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
22362 attribute of movddup insn to DF.
22363 (*vec_interleave_lowv2df): Ditto.
22364 (vec_dupv2df): Ditto.
22365
870ca331
JH
223662013-01-09 Jan Hubicka <jh@suse.cz>
22367
22368 PR tree-optimiation/55875
22369 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
22370 EVERY_ITERATION parameter.
7b0fe4f4 22371 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
22372 (idx_infer_loop_bounds): Similarly here.
22373 (n_of_executions_at_most): Simplify
22374 to only test for cases where statement is dominated by the
7b0fe4f4 22375 particular bound; handle correctly the "postdominance" test.
870ca331
JH
22376 (scev_probably_wraps_p): Use max loop iterations info
22377 as a global bound first.
22378
6f575fe4 223792013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
22380 Nick Clifton <nickc@redhat.com>
22381
22382 * config/v850/v850.md (cbranchsf4): New pattern.
22383 (cstoresf4): New pattern.
22384 (cbranchdf4): New pattern.
22385 (cstoredf4): New pattern.
22386 (movsicc): Disallow floating point comparisons.
22387 (cmpsf_le_insn): Fix order of operators.
22388 (cmpsf_lt_insn): Likewise.
22389 (cmpsf_eq_insn): Likewise.
22390 (cmpdf_le_insn): Likewise.
22391 (cmpdf_lt_insn): Likewise.
22392 (cmpdf_eq_insn): Likewise.
22393 (cmpsf_ge_insn): Use LE comparison.
22394 (cmpdf_ge_insn): Likewise.
22395 (cmpsf_gt_insn): Use LT comparison.
22396 (cmpdf_gt_insn): Likewise.
22397 (cmpsf_ne_insn): Delete pattern.
22398 (cmpdf_ne_insn): Delete pattern.
22399 * config/v850/v850.c (v850_gen_float_compare): Use
22400 gen_cmpdf_eq_insn for NE comparison.
22401 (v850_float_z_comparison_operator)
22402 (v850_float_nz_comparison_operator): Move from here ...
22403 * config/v850/predicates.md: ... to here. Move GT and GE
22404 comparisons into v850_float_z_comparison_operator.
22405 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
22406 Delete prototype.
22407 (v850_float_nz_comparison_operator): Likewise.
22408
f0d54148
JDA
224092013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22410
22411 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
22412 with calls to gen_insvsi/gen_insvdi.
22413
8f01beca
VK
224142013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
22415
22416 * config/i386/i386.c (initial_ix86_tune_features): Set up
22417 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
22418
2aa579ad
JJ
224192013-01-09 Steven Bosscher <steven@gcc.gnu.org>
22420 Jakub Jelinek <jakub@redhat.com>
22421
22422 PR tree-optimization/48189
22423 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
22424 If nitercst is 0, don't predict the exit edge.
22425
6edc3e32 224262013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
22427
22428 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
22429 in asm_fprintf with reg_names.
22430 (aarch64_print_operand_address): Likewise.
22431 (aarch64_return_addr): Likewise.
22432 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
22433
f6f94d94
JDA
224342013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22435
22436 * config/pa/pa.h (VAL_U6_BITS_P): Define.
22437 (INT_U6_BITS): Likewise.
22438 * config/pa/predicates.md (uint6_operand): New predicate.
22439 (shift5_operand, shift6_operand): Likewise.
22440 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
22441 arith32_operand.
22442 (lshrdi3): Use shift6_operand.
22443 (shrpsi4, shrpdi4): New insn patterns.
22444 (extzv): Delete expander.
22445 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
22446 predicates in unamed zero extract patterns. Tighten common constraint.
22447 (extv): Delete expander.
22448 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
22449 predicates in unamed sign extract patterns. Tighten common constraint.
22450 (insv): Delete expander.
22451 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
22452 predicates in unamed insert patterns. Tighten common constraint.
22453 Change uint32_operand predicate to uint6_operand predicate in unamed
22454 DImode pattern to insert constant values of type 1...1xxxx.
22455
36b72910
JH
224562013-01-04 Jan Hubicka <jh@suse.cz>
22457
22458 PR tree-optimization/55823
7b0fe4f4
UB
22459 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
22460 issue.
36b72910 22461
47876a2a 224622013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
22463 Uros Bizjak <ubizjak@gmail.com>
22464
22465 PR rtl-optimization/55845
22466 * df-problems.c (can_move_insns_across): Stop scanning at
22467 volatile_insn_p source instruction or give up if
22468 across_from .. across_to range contains any volatile_insn_p
22469 instructions.
22470
4369c11e
TB
224712013-01-08 Tejas Belagod <tejas.belagod@arm.com>
22472
7b0fe4f4
UB
22473 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
22474 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
22475 Declare.
4369c11e 22476 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 22477 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 22478
aeb7e7c1
JJ
224792013-01-08 Jakub Jelinek <jakub@redhat.com>
22480
22481 PR fortran/55341
22482 * asan.c (asan_clear_shadow): New function.
22483 (asan_emit_stack_protection): Use it.
22484
a02ad1aa
TB
224852013-01-08 Tejas Belagod <tejas.belagod@arm.com>
22486
22487 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
22488 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
22489 with tab instead of space.
22490
f90d87f5
NC
224912013-01-08 Nick Clifton <nickc@redhat.com>
22492
22493 * config/rl78/rl78.c (rl78_expand_prologue): Always select
22494 register bank 0 at the start of an interrupt handler.
83ffd964
NC
22495 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
22496 MDBH registers.
f90d87f5 22497
385eb93d
JG
224982013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
22499
22500 * config/aarch64/aarch64-simd.md
22501 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
22502 (aarch64_simd_bsl): Likewise.
22503 (aarch64_vcond_internal<mode>): Likewise.
22504 (vcond<mode><mode>): Likewise.
22505 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
22506 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
22507
4dcd1054
JG
225082013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
22509
22510 * config/aarch64/aarch64-builtins.c
22511 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
22512
4267a4a6
MJ
225132013-01-08 Martin Jambor <mjambor@suse.cz>
22514
22515 PR debug/55579
22516 * tree-sra.c (analyze_access_subtree): Return true also after
22517 potentially creating a debug-only replacement.
22518
5f4e6de3
JJ
225192013-01-08 Jakub Jelinek <jakub@redhat.com>
22520
3138f224
JJ
22521 PR middle-end/55890
22522 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
22523
5f4e6de3
JJ
22524 PR tree-optimization/54120
22525 * tree-vrp.c (range_fits_type_p): Don't allow
22526 src_precision < precision from signed vr to unsigned_p
22527 if vr->min or vr->max is negative.
22528 (simplify_float_conversion_using_ranges): Test can_float_p
22529 against CODE_FOR_nothing.
22530
f3ef18ff
JJ
225312013-01-08 Jakub Jelinek <jakub@redhat.com>
22532 Richard Biener <rguenther@suse.de>
22533
22534 PR middle-end/55851
22535 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
22536 types instead of just INTEGER_TYPE types.
22537
25c210f9
MK
225382013-01-07 Mark Kettenis <kettenis@openbsd.org>
22539
22540 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
22541 TF_SIZE): Define.
f90d87f5 22542
81826a7b
SE
225432013-01-07 Steve Ellcey <sellcey@mips.com>
22544
22545 PR target/42661
22546 * config/mips/mips.opt: Change mad to mmad to match documentation.
22547
35678514
GJL
225482013-01-07 Georg-Johann Lay <avr@gjlay.de>
22549
22550 PR target/55897
22551 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
22552 .progmemx.data now.
22553
e5669488
GJL
225542013-01-07 Georg-Johann Lay <avr@gjlay.de>
22555
22556 PR target/55897
22557 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
22558 (avr_addrspace_t): Add .section_name field.
22559 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
22560 array size.
22561 (avr_addrspace): Same. Initialize .section_name. Remove last
22562 NULL entry. Put __memx into .progmemx.data.
22563 (progmem_section_prefix): Remove.
22564 (avr_asm_init_sections): No need to initialize progmem_section.
22565 (avr_asm_named_section): Use avr_addrspace[].section_name to get
22566 section name prefix.
22567 (avr_asm_select_section): Ditto. And use get_unnamed_section to
22568 retrieve the progmem section.
22569 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
22570 boundary to run over avr_addrspace[].
22571 (avr_register_target_pragmas): Ditto.
22572
656e6f37
JJ
225732013-01-06 Jakub Jelinek <jakub@redhat.com>
22574
22575 * varasm.c (output_constant_def_contents): For asan_protect_global
22576 protected strings, adjust DECL_ALIGN if needed, before testing for
22577 anchored symbols.
22578 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
22579 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
22580 normal decls.
22581 (output_object_block): For asan protected decls, emit asan padding
22582 after their contents.
22583 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
22584 (asan_finish_file): Test it here instead.
22585
6edc3e32
UB
225862013-01-07 Nick Clifton <nickc@redhat.com>
22587 Matthias Klose <doko@debian.org>
22588 Doug Kwan <dougkwan@google.com>
22589 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
22590
22591 PR driver/55470
22592 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
22593
22594 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
22595
22596 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
22597
7b0fe4f4 22598 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
22599
22600 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
22601
2a095093
GJL
226022013-01-07 Georg-Johann Lay <avr@gjlay.de>
22603
f3b503f4 22604 PR target/54461
2a095093
GJL
22605 * doc/install.texi (Cross-Compiler-Specific Options): Document
22606 --with-avrlibc.
22607
383f9b34
TB
226082013-01-07 Tejas Belagod <tejas.belagod@arm.com>
22609
22610 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
22611 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
22612 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
22613 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
22614 vqmovun_high_s64): Fix source operand number and update copyright.
22615
3626621a
RB
226162013-01-07 Richard Biener <rguenther@suse.de>
22617
22618 PR middle-end/55890
22619 * gimple.h (gimple_call_builtin_p): New overload.
22620 * gimple.c (validate_call): New function.
22621 (gimple_call_builtin_p): Likewise.
22622 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
22623 Use gimple_call_builtin_p.
22624 (find_func_clobbers): Likewise.
22625 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
22626 (strlen_optimize_stmt): Likewise.
22627
8b2ea410
JG
226282013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
22629
22630 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
22631 (vld1q_dup_*): Likewise.
22632 (vld1_*): Likewise.
22633 (vld1q_*): Likewise.
22634 (vld1_lane_*): Likewise.
22635 (vld1q_lane_*): Likewise.
22636
9713d329
RB
226372013-01-07 Richard Biener <rguenther@suse.de>
22638
22639 * lto-streamer.h (LTO_minor_version): Bump to 2.
22640
3520f7cc
JG
226412013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
22642
22643 * config/aarch64/aarch64-protos.h
22644 (aarch64_const_double_zero_rtx_p): Rename to...
22645 (aarch64_float_const_zero_rtx_p): ...this.
22646 (aarch64_float_const_representable_p): New.
22647 (aarch64_output_simd_mov_immediate): Likewise.
22648 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
22649 move immediate case.
22650 * config/aarch64/aarch64.c
22651 (aarch64_const_double_zero_rtx_p): Rename to...
22652 (aarch64_float_const_zero_rtx_p): ...this.
22653 (aarch64_print_operand): Allow printing of new constants.
22654 (aarch64_valid_floating_const): New.
22655 (aarch64_legitimate_constant_p): Check for valid floating-point
22656 constants.
22657 (aarch64_simd_valid_immediate): Likewise.
22658 (aarch64_vect_float_const_representable_p): New.
22659 (aarch64_float_const_representable_p): Likewise.
22660 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
22661 (aarch64_output_simd_mov_immediate): New.
22662 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
22663 (*movdf_aarch64): Likewise.
22664 * config/aarch64/constraints.md (Ufc): New.
22665 (Y): call aarch64_float_const_zero_rtx.
22666 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
22667
e167c04d
RB
226682013-01-07 Richard Biener <rguenther@suse.de>
22669
22670 PR tree-optimization/55888
22671 PR tree-optimization/55862
22672 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
22673 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
22674 not if it is contained therein.
22675
0139aaab
GJL
226762013-01-07 Georg-Johann Lay <avr@gjlay.de>
22677
22678 * config/avr/t-avr: Typo.
22679
4a176b23
GJL
226802013-01-07 Georg-Johann Lay <avr@gjlay.de>
22681
22682 PR55243
22683 * config/avr/t-avr: Don't automatically rebuild
22684 $(srcdir)/config/avr/t-multilib
22685 $(srcdir)/config/avr/avr-tables.opt
22686 $(srcdir)/doc/avr-mmcu.texi
22687 (avr-mcus): New phony target to build them on request.
22688 (s-avr-mlib, s-avr-mmcu-texi): Remove.
22689 * avr/avr-mcus.def: Adjust comments.
22690
c7afdc98
UB
226912013-01-07 Uros Bizjak <ubizjak@gmail.com>
22692
22693 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
22694
1ab05c31
RS
226952013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
22696
22697 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
22698
488e3acc
RS
226992013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
22700
22701 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
22702
a89599d2
DE
227032013-01-05 David Edelsohn <dje.gcc@gmail.com>
22704
22705 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
22706 to generate profiling.
22707 * config/rs6000/aix64.h (LIB_SPEC): Same.
22708
70f09188
AP
227092013-01-04 Andrew Pinski <apinski@cavium.com>
22710
22711 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
22712 New function.
22713 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
22714
918d445f
UB
227152013-01-04 Uros Bizjak <ubizjak@gmail.com>
22716
22717 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
22718 unconditionally.
22719 (ix86_expand_move): Ditto.
22720 (ix86_zero_extend_to_Pmode): Ditto.
22721 (ix86_expand_call): Ditto.
22722 (ix86_expand_special_args_builtin): Ditto.
22723 (ix86_expand_builtin): Ditto.
22724
361618ec
RB
227252013-01-04 Richard Biener <rguenther@suse.de>
22726
22727 PR tree-optimization/55862
22728 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
22729 translating them through PHI nodes.
22730
87eab554
MJ
227312013-01-04 Martin Jambor <mjambor@suse.cz>
22732
22733 PR tree-optimization/55755
22734 * tree-sra.c (sra_modify_assign): Do not check that an access has no
22735 children when trying to avoid producing a VIEW_CONVERT_EXPR.
22736
33879b9f
MP
227372013-01-04 Marek Polacek <polacek@redhat.com>
22738
22739 PR middle-end/55859
22740 * opts.c (default_options_optimization): Clarify error message.
22741
3068819a
RB
227422013-01-04 Richard Biener <rguenther@suse.de>
22743
22744 PR middle-end/55863
22745 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
22746 reassociation.
22747
0e4ae794
JDA
227482013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22749
22750 PR target/53789
22751 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
22752 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
22753 references.
0e4ae794 22754
65c88cef
RH
227552013-01-03 Richard Henderson <rth@redhat.com>
22756
22757 * config/i386/i386.c (ix86_expand_move): Always assign to op1
22758 after eliminating TLS symbols.
22759
8ac16127
MG
227602013-01-03 Marc Glisse <marc.glisse@inria.fr>
22761
22762 PR bootstrap/50167
22763 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
22764 * graphite-poly.c (debug_gmp_value): Likewise.
22765
bb664f09
UB
227662013-01-03 Uros Bizjak <ubizjak@gmail.com>
22767
22768 PR target/55712
22769 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
22770 selected code model, define __code_mode_small__, __code_model_medium__,
22771 __code_model_large__, __code_model_32__ or __code_model_kernel__.
22772 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
22773 xchg temporary register with %k. Declare temporary register as
22774 early clobbered.
22775 [__x86_64__]: For medium and large code models, preserve %rbx register.
22776
bcf1ef00
RB
227772013-01-03 Richard Biener <rguenther@suse.de>
22778
0506634a 22779 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
22780 (dump_subscript): Adjust.
22781 (finalize_ddr_dependent): Do not dump redundant info.
22782 (analyze_siv_subscript): Adjust.
22783 (subscript_dependence_tester): Likewise.
22784 (compute_affine_dependence): Likewise.
22785
59fd17e3
RB
227862013-01-03 Richard Biener <rguenther@suse.de>
22787
22788 Revert
22789 2013-01-03 Richard Biener <rguenther@suse.de>
22790
22791 PR tree-optimization/55857
22792 * tree-vect-stmts.c (vectorizable_load): Do not setup
22793 re-alignment for invariant loads.
22794
22795 2013-01-02 Richard Biener <rguenther@suse.de>
22796
22797 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 22798 invariant load do not generate a vector load from the scalar location.
59fd17e3 22799
595c2679
RB
228002013-01-03 Richard Biener <rguenther@suse.de>
22801
22802 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
22803 for not vectorizing.
22804 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
22805 not build INDIRECT_REFs, call get_name once only.
22806 (vect_create_data_ref_ptr): Likewise. Dump base object kind
22807 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
22808
90bb7d7a
RB
228092013-01-03 Richard Biener <rguenther@suse.de>
22810
22811 PR tree-optimization/55857
22812 * tree-vect-stmts.c (vectorizable_load): Do not setup
22813 re-alignment for invariant loads.
22814
f09b77ca
RB
228152013-01-03 Richard Biener <rguenther@suse.de>
22816
22817 PR lto/55848
22818 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
22819 prefer a built-in decl.
22820
3461a16e
JJ
228212013-01-03 Jakub Jelinek <jakub@redhat.com>
22822
df8e2b4f
JJ
22823 * gcc.c (process_command): Update copyright notice dates.
22824 * gcov.c (print_version): Likewise.
22825 * gcov-dump.c (print_version): Likewise.
22826
3461a16e
JJ
22827 PR rtl-optimization/55838
22828 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
22829 iv0.step, iv1.step and step.
22830
8b5546d6
JJ
228312013-01-03 Jakub Jelinek <jakub@redhat.com>
22832 Marc Glisse <marc.glisse@inria.fr>
22833
22834 PR tree-optimization/55832
22835 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
22836 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
22837 integer_{one,zero}_node.
22838
8ab1d2e9
JJ
228392013-01-03 Jakub Jelinek <jakub@redhat.com>
22840
22841 PR debug/54402
22842 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
22843 * var-tracking.c (reverse_op): Don't add reverse ops to
22844 VALUEs that have already
0506634a 22845 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 22846
5b9ad1d4
GP
228472013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
22848
22849 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
22850
e25a6711
TJ
228512013-01-02 Teresa Johnson <tejohnson@google.com>
22852
22853 * dumpfile.c (dump_loc): Print filename with location.
22854 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
22855 new location_t parameter to emit complete unroll message with
22856 new dump framework.
22857 (canonicalize_loop_induction_variables): Compute loops location
22858 and pass to try_unroll_loop_completely.
22859 * loop-unroll.c (report_unroll_peel): New function.
22860 (peel_loops_completely): Use new dump format with location
22861 for main dumpfile message, and invoke report_unroll_peel on success.
22862 (decide_unrolling_and_peeling): Ditto.
22863 (decide_peel_once_rolling): Remove old dumpfile message subsumed
22864 by report_unroll_peel.
22865 (decide_peel_completely): Ditto.
22866 (decide_unroll_constant_iterations): Ditto.
22867 (decide_unroll_runtime_iterations): Ditto.
22868 (decide_peel_simple): Ditto.
22869 (decide_unroll_stupid): Ditto.
22870 * cfgloop.c (get_loop_location): New function.
22871 * cfgloop.h (get_loop_location): Declare.
22872
77878621
ST
228732013-01-02 Sriraman Tallam <tmsriram@google.com>
22874
22875 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
22876 NULL.
22877
9e65d03e
JDA
228782013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22879
22880 PR middle-end/55198
22881 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
22882 BLKmode objects when EXPAND_MEMORY is specified.
22883
6a7da30f
ST
228842013-01-02 Sriraman Tallam <tmsriram@google.com>
22885
22886 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
22887 in loop predicate.
22888 (fold_builtin_cpu): Do not share cpu model decls across statements.
22889
e78167f2
JM
228902013-01-02 Jason Merrill <jason@redhat.com>
22891
22892 PR c++/55804
22893 * tree.c (build_array_type_1): Revert earlier change.
22894
8c075fb4
YZ
228952013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
22896
22897 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
22898 "cortex-a57".
22899 * config/aarch64/aarch64-tune.md: Re-generate.
22900
0682ed3e
RB
229012013-01-02 Richard Biener <rguenther@suse.de>
22902
22903 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 22904 invariant load do not generate a vector load from the scalar location.
0682ed3e 22905
b8f6a302
RB
229062013-01-02 Richard Biener <rguenther@suse.de>
22907
22908 PR bootstrap/55784
22909 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
22910 * configure: Regenerate.
22911
04b80dbb
RS
229122013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
22913
22914 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
22915 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
22916 (expand_builtin_int_roundingfn_2): Keep the original target around
22917 for the fallback case.
22918
635b0b0c
RS
229192013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
22920
22921 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
22922 to be clear for sign changes.
22923
42d57399
JH
229242013-01-01 Jan Hubicka <jh@suse.cz>
22925
22926 * ipa-inline-analysis.c: Fix formatting.
22927
5bb6669d
JJ
229282013-01-01 Jakub Jelinek <jakub@redhat.com>
22929
22930 PR tree-optimization/55831
22931 * tree-vect-loop.c (get_initial_def_for_induction): Use
22932 gsi_after_labels instead of gsi_start_bb.
ad41bd84 22933\f
86a2db33 22934Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
22935
22936Copying and distribution of this file, with or without modification,
22937are permitted in any medium without royalty provided the copyright
22938notice and this notice are preserved.