]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
[AArch64] Map standard pattern names to NEON intrinsics directly.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
0ddec79f
JG
12013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
2
3 * config/aarch64/aarch64-builtins.c
4 (CF): Remove.
5 (CF0, CF1, CF2, CF3, CF4, CF10): New.
6 (VAR<1-12>): Add MAP parameter.
7 (BUILTIN_*): Likewise.
8 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
9 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
10 (aarch64_ushl_n<mode>): Likewise.
11 (aarch64_sshr_n<mode>): Likewise.
12 (aarch64_ushr_n<mode>): Likewise.
13 (aarch64_<maxmin><mode>): Likewise.
14 (aarch64_sqrt<mode>): Likewise.
15 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
16 (vshr<q>_n_*): Likewise.
17
0050faf8
JG
182013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19
20 * config/aarch64/aarch64-builtins.c
21 (aarch64_simd_builtin_type_mode): Handle SF types.
22 (sf_UP): Define.
23 (BUILTIN_GPF): Define.
24 (aarch64_init_simd_builtins): Handle SF types.
25 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
26 (frecps): Likewise.
27 (frecpx): Likewise.
28 * config/aarch64/aarch64-simd.md
29 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
30 (aarch64_frecpe<mode>): New.
31 (aarch64_frecps<mode>): Likewise.
32 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
33 (v8type): Add frecp<esx>.
34 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
35 (aarch64_frecps<mode>): Likewise.
36 * config/aarch64/iterators.md (FRECP): New.
37 (frecp_suffix): Likewise.
38 * config/aarch64/arm_neon.h
39 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
40
0fad3dbc 412013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
42
43 PR target/56995
44 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
45 (REG_CLASS_NAMES): Idem.
46 (REG_CLASS_CONTENTS): Idem.
47 (REGCLASS_HAS_FP_REG): Idem.
48 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
49 (sh_conditional_register_usage): Idem.
50
3e8a33f9
JL
512013-04-21 Jeff Law <law@redhat.com>
52
53 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
54 (ssa_forward_propagate_and_combine): Use it.
55
f38e1b0a
VM
562013-04-19 Vladimir Makarov <vmakarov@redhat.com>
57
58 * lra.c: Update the flow chart diagram.
59
682303da
VM
602013-04-19 Vladimir Makarov <vmakarov@redhat.com>
61
62 PR rtl-optimization/56847
63 * lra-constraints.c (process_alt_operands): Discourage alternative
64 with non-matche doffsettable memory constraint fro memory with
65 known offset.
66
f6b64c35
RB
672013-04-19 Richard Biener <rguenther@suse.de>
68
69 PR tree-optimization/56982
70 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
71 function.
72 * gimplify.c (gimplify_call_expr): Notice special calls.
73 (gimplify_modify_expr): Likewise.
74 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
75 abnormal control flow receivers.
76 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
77 in the same way as cfun->has_nonlocal_labels.
78 (gimple_purge_dead_abnormal_call_edges): Likewise.
79 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
80 receivers start a basic-block.
81
01d8bf07
RB
822013-04-19 Richard Biener <rguenther@suse.de>
83
84 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
85 member ...
86 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
87 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
88 (SLP_TREE_LOAD_PERMUTATION): Add.
89 (vect_transform_slp_perm_load): Adjust prototype.
90 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
91 (vect_free_slp_instance): Likewise.
92 (vect_create_new_slp_node): Likewise.
93 (vect_supported_slp_permutation_p): Remove.
94 (vect_slp_rearrange_stmts): Adjust.
95 (vect_supported_load_permutation_p): Likewise. Inline
96 vect_supported_slp_permutation_p here.
97 (vect_analyze_slp_instance): Compute load permutations per
98 slp node instead of per instance.
99 (vect_get_slp_defs): Adjust.
100 (vect_transform_slp_perm_load): Likewise.
101 (vect_schedule_slp_instance): Remove redundant code.
102 (vect_schedule_slp): Remove hack for PR56270, add it ...
103 * tree-vect-stmts.c (vectorizable_load): ... here, do not
104 CSE loads for SLP. Adjust.
105
ede22fc3
GY
1062013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
107
108 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
109 spelling in two comments.
110
67bc84fb
GY
1112013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
112
113 PR target/56797
114 * config/arm/arm.c (load_multiple_sequence): Require SP
115 as base register for loads if SP is in the register list.
116
e248d83f
MJ
1172013-04-19 Martin Jambor <mjambor@suse.cz>
118
119 PR tree-optimization/56718
120 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
121 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
122 and made public. Adjusted all callers.
123 (ipa_intraprocedural_devirtualization): New function.
124 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
125 (ipa_intraprocedural_devirtualization): Likewise.
126 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
127
4891e8f8
RB
1282013-04-19 Richard Biener <rguenther@suse.de>
129
130 PR tree-optimization/57000
131 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
132
dad89f7c
TG
1332013-04-19 Terry Guo <terry.guo@arm.com>
134
135 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
136 Replace with ...
137 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
138 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
139 (cortex_m4_fmacs): Use new reservations.
140 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
141
72ea0d47
VM
1422013-04-18 Vladimir Makarov <vmakarov@redhat.com>
143
f1e6512c 144 PR rtl-optimization/56999
72ea0d47
VM
145 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
146 related code.
147 (lra_coalesce): Remove split_origin_bitmap and related code.
148 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
149 ranges if necessary.
150
780a5b71
UB
1512013-04-18 Uros Bizjak <ubizjak@gmail.com>
152
153 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
154 New array.
155 (ix86_expand_call): Remove clobbered_registers array and use
156 x86_64_ms_sysv_extra_clobbered_registers instead.
157 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
158 Declare here.
159 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
160 predicate.
161 * config/i386/i386.md (*call_rex64_ms_sysv): Use
162 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
163 (*call_value_rex64_ms_sysv): Ditto.
164
6f5a366a
CC
1652013-04-18 Cary Coutant <ccoutant@google.com>
166
167 * dwarf2out.c (output_pubnames): Check die_perennial_p of
168 parent instead of die_mark.
169
475b8f37
DN
1702013-04-18 Diego Novillo <dnovillo@google.com>
171
172 * gimple.c (create_gimple_tmp): New.
173 (get_expr_type): New.
174 (build_assign): New.
175 (build_type_cast): New.
176 * gimple.h (enum ssa_mode): Define.
177 (gimple_seq_set_location): New.
178 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 179 to use build_assign and build_type_cast.
475b8f37 180
08940f33
RB
1812013-04-18 Richard Biener <rguenther@suse.de>
182
183 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
184 handle negative step. Remove redundant checks.
185 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
186 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
187 for negative step and grouped loads fail to vectorize.
188
0e0f87d4
SB
1892013-04-18 Steven Bosscher <steven@gcc.gnu.org>
190
191 * emit-rtl.c (reset_insn_used_flags): New function.
192 (reset_all_used_flags): Use it.
193 (verify_insn_sharing): New function.
194 (verify_rtl_sharing): Fix verification for SEQUENCEs.
195
4c445590
JJ
1962013-04-18 Jakub Jelinek <jakub@redhat.com>
197
198 PR tree-optimization/56984
199 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
200 and (x >> M) >= N don't register any assertion if N << M is the
201 minimum value.
202
6873ecab
SB
2032013-04-18 Steven Bosscher <steven@gcc.gnu.org>
204
205 * lower-subreg.c (resolve_simple_move): If called self-recursive,
206 do not delete_insn insns that have not yet been emitted, only
207 unlink them with remove_insn.
208 * df-scan.c (df_insn_delete): Revert r197492.
209
3ccb989e
SB
2102013-04-17 Steven Bosscher <steven@gcc.gnu.org>
211
212 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
213 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
214
2152013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
216
217 * config/arm/arm.md (movsicc_insn): Convert define_insn into
218 define_insn_and_split.
219 (and_scc,ior_scc,negscc): Likewise.
220 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
221
3ccb989e 2222013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
223
224 * config/arm/arm.c (use_return_insn): Return 0 for targets that
225 can benefit from using a sequence of LDRD instructions in epilogue
226 instead of a single LDM instruction.
227
6d10a203
MLI
2282013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
229
230 PR 45688
231 * doc/extend.texi: Fix typo.
232
6983e6b5
RB
2332013-04-17 Richard Biener <rguenther@suse.de>
234
235 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
236 (vect_build_slp_tree): ... here.
237 (vect_build_slp_tree_1): Compute which stmts of the SLP group
238 match. Remove special-casing of mismatched complex loads.
239 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
240 re-try the match with swapped commutative operands.
241 (vect_supported_load_permutation_p): Remove special-casing of
242 mismatched complex loads.
243 (vect_analyze_slp_instance): Adjust.
244
ef23e6a2
RB
2452013-04-17 Richard Biener <rguenther@suse.de>
246
247 PR rtl-optimization/56921
248 * cfgloop.h (struct loop): Add simple_loop_desc member.
249 (struct niter_desc): Mark with GTY(()).
250 (simple_loop_desc): Do not use aux field but simple_loop_desc.
251 * loop-iv.c (get_simple_loop_desc): Likewise.
252 (free_simple_loop_desc): Likewise.
253
254 Revert
255 2013-04-16 Richard Biener <rguenther@suse.de>
256
257 PR rtl-optimization/56921
258 * loop-init.c (pass_rtl_move_loop_invariants): Add
259 TODO_do_not_ggc_collect to todo_flags_finish.
260 (pass_rtl_unswitch): Same.
261 (pass_rtl_unroll_and_peel_loops): Same.
262 (pass_rtl_doloop): Same.
263
fc6f94f5
EB
2642013-04-17 Eric Botcazou <ebotcazou@adacore.com>
265
266 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
267 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
268 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
269 references.
270 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
271 * tree-streamer.c (record_common_node): Adjust reference in comment.
272
10a88311
TG
2732013-04-17 Terry Guo <terry.guo@arm.com>
274
275 * config/arm/cortex-m4.md: Add a new bypass.
276
f3d096b0
N
2772013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
278
279 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
280 New pattern.
281 (*subs_<optab><mode>_multp2): New pattern.
282 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
283 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
284
860ad33f
N
2852013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
286
287 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
288 (*subs_mul_imm_<mode>): New pattern.
289
18a6701e
DE
2902013-04-16 David Edelsohn <dje.gcc@gmail.com>
291
292 PR target/56948
293 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
294 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
295 (vsx_movti_32bit): Change j->wa to O->wa.
296
07c37b2f
RB
2972013-04-16 Richard Biener <rguenther@suse.de>
298
299 PR rtl-optimization/56921
300 * loop-init.c (pass_rtl_move_loop_invariants): Add
301 TODO_do_not_ggc_collect to todo_flags_finish.
302 (pass_rtl_unswitch): Same.
303 (pass_rtl_unroll_and_peel_loops): Same.
304 (pass_rtl_doloop): Same.
305
0e0f87d4 3062013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
307
308 * config/arm/arm.c (emit_multi_reg_push): New declaration
309 for an existing function.
310 (arm_emit_strd_push): New function.
311 (arm_expand_prologue): Used here.
312 (arm_emit_ldrd_pop): New function.
313 (arm_expand_epilogue): Used here.
314 (arm_get_frame_offsets): Update condition.
315 (arm_emit_multi_reg_pop): Add a special case for load of a single
316 register with writeback.
317
5e8e2af4
UB
3182013-04-16 Uros Bizjak <ubizjak@gmail.com>
319
320 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
321 description.
322
9fd9ccf7
RB
3232013-04-16 Richard Biener <rguenther@suse.de>
324
325 PR tree-optimization/56756
326 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
327 (first_mem_ref_loc): New.
328 (execute_sm): Place the load temporarily before a previous
329 access instead of in the latch edge to ensure its SSA dependencies
330 are defined at points dominating the load.
331
96fba521
SB
3322013-04-16 Steven Bosscher <steven@gcc.gnu.org>
333
4c8af858
SB
334 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
335 correct fix by moving header and footer insn to the footer of
336 the merged basic block. Clear BB_END of the merged-away block.
337
96fba521
SB
338 PR middle-end/43631
339 * emit-rtl.c (make_note_raw): New function.
340 (link_insn_into_chain): New static inline function.
341 (add_insn): Use it.
342 (add_insn_before, add_insn_after): Factor insn chain linking code...
343 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
344 using link_insn_into_chain.
345 (note_outside_basic_block_p): New helper function for emit_note_after
346 and emit_note_before.
347 (emit_note_after): Use nobb variant of add_insn_after if the note
348 should not be contained in a basic block.
349 (emit_note_before): Use nobb variant of add_insn_before if the note
350 should not be contained in a basic block.
351 (emit_note_copy): Use make_note_raw.
352 (emit_note): Likewise.
353 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
354 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
355 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
356 the moved barrier the tail of the basic block it follows.
357 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
358
7b8265ba
JJ
3592013-04-15 Jakub Jelinek <jakub@redhat.com>
360
361 PR tree-optimization/56962
362 * gimple-ssa-strength-reduction.c (record_increment): Only set
363 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
364 either rhs1 or rhs2 is equal to c->base_expr.
365
5185d248
RB
3662013-04-15 Richard Biener <rguenther@suse.de>
367
368 PR tree-optimization/56933
369 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
370 member.
371 (GROUP_READ_WRITE_DEPENDENCE): Remove.
372 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
373 * tree-vect-data-refs.c (vect_analyze_group_access): Move
374 dependence check ...
375 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
376 ... here.
377 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
378 GROUP_READ_WRITE_DEPENDENCE.
379
a24243a0
AK
3802013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
381
382 * emit-rtl.c (reset_all_used_flags): New function.
383 (verify_rtl_sharing): Call reset_all_used_flags before and after
384 performing the checks.
385
1c50eada
KT
3862013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
387
388 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
389 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
390 * config/arm/constraints.md (De): New constraint.
391 * config/arm/neon.md (anddi3_neon): Delete.
392 (neon_vand<mode>): Expand to standard anddi3 pattern.
393 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
394 Move earlier in the file.
395 (neon_inv_logic_op2): Likewise.
396 (arm_anddi_operand_neon): New predicate.
397
e927b6ad
RO
3982013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
399
400 * configure.ac (gcc_cv_ld_as_needed): Set
401 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
402 Use -z ignore, -z record on *-*-solaris2*.
403 (HAVE_LD_AS_NEEDED): Update comment.
404 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
405 * configure: Regenerate.
406 * config.in: Regenerate.
407 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
408 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
409 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
410 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
411 equivalents. Fix markup.
412 * doc/tm.texi: Regenerate.
413
e0ea8797
AH
4142013-04-15 Andrew Hsieh <andrewhsieh.google.com>
415
416 * config/i386/i386.opt: New option mstack-protector-guard=.
417 * config/i386/i386-opts.h: Add enum stack_protector_guard.
418 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
419 TARGET_SSP_TLS_GUARD.
420 * config/i386/i386.c (ix86_option_override_internal): Set
421 ix86_stack_protector_guard.
422 * config/i386/i386.md (stack_protect_set): Enable for
423 TARGET_SSP_TLS_GUARD only.
424 (stack_protect_set_<mode>): Ditto.
425 (stack_protect_test): Ditto.
426 (stack_protect_test_<mode>): Ditto.
427 * doc/invoke.texi (i386 Option): Document.
428
811b72f9
EB
4292013-04-15 Eric Botcazou <ebotcazou@adacore.com>
430
431 PR target/56890
432 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
433 (S_MODES): Set H_MODE bit.
434 (SF_MODES): Set only S_MODE and SF_MODE bits.
435 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
436 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
437 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
438 <MODE_FLOAT>: Likewise.
439
5529fdd6
JY
4402013-04-15 Joey Ye <joey.ye@arm.com>
441
442 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
443
517b1da2
JY
4442013-04-15 Joey Ye <joey.ye@arm.com>
445
446 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
447 for real far jump.
448 (thumb_far_jump_used_p): Count instruction size and set
449 far_jump_used.
450
01007ae0
EB
4512013-04-14 Eric Botcazou <ebotcazou@adacore.com>
452
453 * reorg.c (fill_simple_delay_slots): Reindent block of code.
454 * resource.c (mark_target_live_regs): Reformat conditional block.
455
c46f6580
SB
4562013-04-13 Steven Bosscher <steven@gcc.gnu.org>
457
458 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
459 notes, they are emitted only just before final.
460 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
461
1f397f45
SB
4622013-04-13 Steven Bosscher <steven@gcc.gnu.org>
463
464 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
465 * cfgrtl.c (delete_insn): Call it here instead.
466 * lra-spills.c (lra_final_code_change): Use delete_insn.
467 * haifa-sched.c (sched_remove_insn): Likewise.
468 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
469 returning to the nop pool.
470 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
471 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
472
58a51369
SB
4732013-04-12 Steven Bosscher <steven@gcc.gnu.org>
474
475 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
476 * doc/tm.texi: Regenerated.
477
33159866
UB
4782013-04-12 Uros Bizjak <ubizjak@gmail.com>
479
480 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
481 QImode checks.
482
226e378f
SB
4832013-04-12 Steven Bosscher <steven@gcc.gnu.org>
484
485 * df-core.c (df_find_def): Compare register numbers.
486 (df_find_use): Likewise.
487
fafb9b18
VM
4882013-04-12 Vladimir Makarov <vmakarov@redhat.com>
489
490 PR target/56903
491 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
492 lra_in_progress for return.
493
9a946fd6
GY
4942013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
495
496 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
497 define_insn into define_insn_and_split and emit movsicc patterns.
498
41b83758
GY
4992013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
500
501 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
502
d3afd9aa
RB
5032013-04-12 Richard Biener <rguenther@suse.de>
504
505 * tree-pass.h (TODO_do_not_ggc_collect): New.
506 * passes.c (execute_one_ipa_transform_pass): Honor
507 TODO_do_not_ggc_collect.
508 (execute_one_pass): Likewise.
509
510 Revert
511 2013-04-10 Richard Biener <rguenther@suse.de>
512
513 * passes.c (init_optimization_passes): Remove reload pass.
514 * ira.c (do_reload): Merge into ...
515 (ira): ... this.
516 (rest_of_handle_reload): Remove.
517 (pass_reload): Likewise.
518 * config/i386/i386.c (ix86_option_override): Refer to ira instead
519 of reload for vzeroupper pass placement.
520
06f9b387
JJ
5212013-04-12 Jakub Jelinek <jakub@redhat.com>
522
523 PR tree-optimization/56918
524 PR tree-optimization/56920
525 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
526 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
527 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
528 use wide_mul_with_sign method.
529
953094d2
RB
5302013-04-12 Richard Biener <rguenther@suse.de>
531
532 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
533 not be considered a gimple constant.
534
bb506982
MG
5352013-04-12 Marc Glisse <marc.glisse@inria.fr>
536
537 * fold-const.c (const_binop): Handle vector shifts by a scalar.
538 (fold_binary_loc): Call const_binop also for mixed vector-scalar
539 operations.
540
4b84d650
JJ
5412013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
542 Jakub Jelinek <jakub@redhat.com>
543
544 * opts.c: Include diagnostic-color.h.
545 (common_handle_option): Handle OPT_fdiagnostics_color_.
546 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
547 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
548 (diagnostic-color.o): New.
549 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
550 (diagnostic_color_rule): New enum.
551 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
552 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
553 the location string.
554 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
555 either NULL, or color kind.
556 * diagnostic-color.c: New file.
557 * diagnostic-color.h: New file.
558 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
559 arguments.
560 * doc/invoke.texi (-fdiagnostics-color): Document.
561 * pretty-print.h (pp_show_color): Define.
562 (struct pretty_print_info): Add show_color field.
563 * diagnostic.c: Include diagnostic-color.h.
564 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
565 macros. Colorize error:, warning: etc. strings and also the location
566 string.
567 (diagnostic_show_locus): Colorize the caret line.
568 * pretty-print.c: Include diagnostic-color.h.
569 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
570 inside of %< %> quotes or quoted through q format modifier.
571
067a1e71
AK
5722013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
573
33159866 574 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 575
33159866 5762013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
577
578 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
579 code in CC_NZ mode.
580 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
581 pattern.
582
7b55f98f
MP
5832013-04-11 Marek Polacek <polacek@redhat.com>
584
585 PR tree-optimization/48184
33159866 586 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 587
966b587e
EB
5882013-04-11 Eric Botcazou <ebotcazou@adacore.com>
589
590 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
591 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
592 (skip_simple_arithmetic): Tidy up.
593 * tree.h (skip_simple_constant_arithmetic): Declare.
594
33159866 5952013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
596
597 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
598
1d42c1ec
RB
5992013-04-11 Richard Biener <rguenther@suse.de>
600
601 * tree-vect-loop.c (get_initial_def_for_induction): Properly
602 generate vector constants.
603
4ba5ea11
RB
6042013-04-11 Richard Biener <rguenther@suse.de>
605
606 PR tree-optimization/56878
607 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
608 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
609 New function.
610 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
611 Prefer to align the DR with the most invariant base address.
612
f0defe58
SKS
6132013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
614
615 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
616 comment.
617
d07458be
JG
6182013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
619
620 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
621 floating-point vector comparisons against 0.
622
146b8692
JJ
6232013-04-11 Jakub Jelinek <jakub@redhat.com>
624
625 PR tree-optimization/56899
626 * fold-const.c (extract_muldiv_1): Apply distributive law
627 only if TYPE_OVERFLOW_WRAPS (ctype).
628
b8578ff7
BC
6292013-04-11 Bin Cheng <bin.cheng@arm.com>
630
631 PR target/56124
632 * ira-costs.c (scan_one_insn): Check whether the source rtx of
633 loading has side effect.
634
0ea8a6f9
SB
6352013-04-10 Steven Bosscher <steven@gcc.gnu.org>
636
637 * config/sparc/sparc.c: Include tree-pass.h.
638 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
639 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
640 head of file. Change return type. Split off gate function.
641 (sparc_gate_work_around_errata): New function.
642 (pass_work_around_errata): New pass definition.
643 (insert_pass_work_around_errata) New pass insert definition to
644 insert pass_work_around_errata just after delayed-branch scheduling.
645 (sparc_option_override): Insert the pass.
646 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
647
42e37616
DM
6482013-04-10 David S. Miller <davem@davemloft.net>
649
89deeb3b
DM
650 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
651 or -mcpu=hypersparc.
652
42e37616
DM
653 * target.def (cstore_mode): New hook.
654 * target.h: Include insn-codes.h
655 * targhooks.c: Likewise.
656 (default_cstore_mode): New function.
657 * targhooks.h: Declare it.
658 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
659 * doc/tm.texi: Rebuild.
660 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
661 target hook, rather than inspecting the insn_data.
662 * config/sparc/sparc.c (sparc_cstore_mode): New function.
663 (TARGET_CSTORE_MODE): Redefine.
664 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
665 result patterns.
666 * config/sparc/predicates.md (cstore_result_operand): New special
667 predicate.
668 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
669 Use it for operand 0.
670 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
671 (*snesi_special): Likewise.
672 (*snesi_zero): Likewise.
673 (*seqsi_zero): Likewise.
674 (*sltu_insn): Likewise.
675 (*sgeu_insn): Likewise.
676 (*seqdi_special): Make operand 0 and comparison operation be of
677 DImode.
678 (*snedi_special): Likewise.
679 (*snedi_special_vis3): Likewise.
680 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
681 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
682 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
683 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
684 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
685 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
686 (*sltu_extend_sp64): Likewise.
687 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
688 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
689 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
690 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
691 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
692
95ca411e
YZ
6932013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
694
695 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
696 (aarch64_start_file): Use the new function.
697
6782438d 6982013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 699 Jason Merrill <jason@redhat.com>
6782438d
SKS
700
701 * common.opt: Add -gdwarf.
702 * opts.c (common_handle_option): Handle it.
703 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
704
bb313b93
RB
7052013-04-10 Richard Biener <rguenther@suse.de>
706
707 * passes.c (execute_todo): Do not call ggc_collect conditional here.
708 (execute_one_ipa_transform_pass): But unconditionally here.
709 (execute_one_pass): And here.
710 (init_optimization_passes): Remove reload pass.
711 * tree-pass.h (TODO_ggc_collect): Remove.
712 (pass_reload): Likewise.
713 * ira.c (do_reload): Merge into ...
714 (ira): ... this.
715 (rest_of_handle_reload): Remove.
716 (pass_reload): Likewise.
717 * config/i386/i386.c (ix86_option_override): Refer to ira instead
718 of reload for vzeroupper pass placement.
719 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
720 and todo_flags_finish of all passes.
721
793d9a16
RB
7222013-04-10 Richard Biener <rguenther@suse.de>
723
724 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
725 first_const_oprnd field, rename first_def_type to first_op_type.
726 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
727 (vect_get_and_check_slp_defs): Always use the type of the
728 operand. Allow mixed vect_external_def, vect_constant_def types.
729 (vect_get_constant_vectors): Handle mixed vect_external_def,
730 vect_constant_def types.
731
ee8a9b7b
JR
7322013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
733
734 PR tree-optimization/55524
735 * tree-ssa-math-opts.c
736 (convert_mult_to_fma): Don't use an fms construct
737 when we don't have an fms operation, but fnma, and it looks
738 likely that we'll be able to use the latter.
739
6957a6f6
ZZ
7402013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
741
742 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
743 function.
744 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
745 inline fail caused by overwritable functions.
746
34ab4a5b
CJW
7472013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
748
749 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
750 unnecessary bits in the constant power of two case.
751
abf9bfbc
RB
7522013-04-10 Richard Biener <rguenther@suse.de>
753
754 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
755 broken code swapping operands.
756 (vect_build_slp_tree): Do not compute load permutations here.
757 (vect_analyze_slp_instance): Compute load permutations here,
758 after building the SLP tree.
759
f408477e
CB
7602013-04-09 Christian Bruel <christian.bruel@st.com>
761
762 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
763 of next/prev_real_insn.
764
5ac42672
JH
7652013-04-09 Jan Hubicka <jh@suse.cz>
766
abf9bfbc
RB
767 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
768 Drop aliased parameter.
5ac42672
JH
769 (function_and_variable_visibility): Do not handle alias pairs.
770 * cgraph.c (varpool_externally_visible_p): Update prototype.
771 * varpool.c (varpool_add_new_variable): Update.
772
5017f1d2
KT
7732013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
774
775 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
776
48eecbee
SB
7772013-04-09 Steven Bosscher <steven@gcc.gnu.org>
778
a949cf1c
SB
779 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
780
48eecbee
SB
781 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
782
75ef8e3d
MP
7832013-04-09 Marek Polacek <polacek@redhat.com>
784
785 PR tree-optimization/48762
33159866 786 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 787
23847df4
RB
7882013-04-09 Richard Biener <rguenther@suse.de>
789
790 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
791 dealing with cost.
792 (vect_build_slp_tree): Likewise.
793 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
794 calculating the cost of a SLP instance.
795 (vect_analyze_slp_instance): Use it from here, after building
796 the SLP tree.
797
ea3a0fde
JJ
7982013-04-09 Jakub Jelinek <jakub@redhat.com>
799
800 PR middle-end/56883
801 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
802 expand_omp_for_static_chunk): Use simple_p = true in
803 force_gimple_operand_gsi calls when assigning to addressable decls.
804
a32dfe9d
JL
8052013-04-09 Jeff Law <law@redhat.com>
806
807 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
808 when the boolean was created by converting a wider object which
809 had a boolean range.
810
d755c7ef
RB
8112013-04-09 Richard Biener <rguenther@suse.de>
812
813 * tree-vectorizer.h (slp_void_p): Remove.
814 (slp_tree): Typedef before _slp_tree declaration.
815 (struct _slp_tree): Use a vector of slp_tree as children.
816 (vect_get_place_in_interleaving_chain): Remove.
817 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
818 Move ...
819 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
820 and make static.
821 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
822 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
823 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
824 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
825 Use slp_node instead of slp_void_p and adjust.
826
3d741091
RB
8272013-04-09 Richard Biener <rguenther@suse.de>
828
829 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
830 work that is not necessary.
831
39307ba7
JJ
8322013-04-09 Jakub Jelinek <jakub@redhat.com>
833
834 PR tree-optimization/56854
835 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
836 forward into clobber stmts if it would change MEM_REF lhs into
837 non-MEM_REF.
838
343881fd
MK
8392013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
840
841 * tree.c (type_hash_lookup, type_hash_add): Make static.
842 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
843
3922658a
RB
8442013-04-09 Richard Biener <rguenther@suse.de>
845
846 * tree.h (unsave_expr_now): Remove.
847 * tree-inline.c (mark_local_for_remap_r): Remove.
848 (unsave_expr_1): Likewise.
849 (unsave_r): Likewise.
850 (unsave_expr_now): Likewise.
851 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
852 (propagate_tree_value): Likewise.
853
9fb6b620
SB
8542013-04-08 Steven Bosscher <steven@gcc.gnu.org>
855
856 * doc/rtl.texi (sequence): Rewrite documentation to match the
857 current use of SEQUENCE rtl objects.
858 * rtl.def (SEQUENCE): Likewise.
859
860 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
861 Update documentation.
862 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
863 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
864
865 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
866
8ddb5a29
TJ
8672013-04-08 Teresa Johnson <tejohnson@google.com>
868
869 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
870 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 871 methods.
8ddb5a29
TJ
872 (estimate_edge_size_and_time): Add comment to suggest using rounding
873 methods.
874 (estimate_node_size_and_time): Ditto.
875 (remap_edge_change_prob): Use helper rounding divide methods.
876 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
877 (gimple_mod_pow2_value_transform): Ditto.
878 (gimple_mod_subtract_transform): Ditto.
879 (gimple_ic_transform): Ditto.
880 (gimple_stringops_transform): Ditto.
881 * stmt.c (conditional_probability): Ditto.
882 (emit_case_dispatch_table): Ditto.
883 * lto-cgraph.c (merge_profile_summaries): Ditto.
884 * tree-optimize.c (execute_fixup_cfg): Ditto.
885 * cfgcleanup.c (try_forward_edges): Ditto.
886 * cfgloopmanip.c (scale_loop_profile): Ditto.
887 (loopify): Ditto.
888 (duplicate_loop_to_header_edge): Ditto.
889 (lv_adjust_loop_entry_edge): Ditto.
890 * tree-vect-loop.c (vect_transform_loop): Ditto.
891 * profile.c (compute_branch_probabilities): Ditto.
892 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
893 * lto-streamer-in.c (input_cfg): Ditto.
894 * gimple-streamer-in.c (input_bb): Ditto.
895 * ipa-cp.c (update_profiling_info): Ditto.
896 (update_specialized_profile): Ditto.
897 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
898 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 899 rounding methods.
8ddb5a29
TJ
900 * sched-rgn.c (compute_dom_prob_ps): Ditto.
901 (compute_trg_info): Ditto.
902 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
903 (purge_dead_edges): Ditto.
904 * loop-unswitch.c (unswitch_loop): Ditto.
905 * cgraphclones.c (cgraph_clone_edge): Ditto.
906 (cgraph_clone_node): Ditto.
907 * tree-inline.c (copy_bb): Ditto.
908 (copy_edges_for_bb): Ditto.
909 (initialize_cfun): Ditto.
910 (copy_cfg_body): Ditto.
911 (expand_call_inline): Ditto.
912
661e6bd7
KT
9132013-04-08 Kai Tietz <ktietz@redhat.com>
914
915 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
916 TARGET_CYGWIN64 by TARGET_64BIT.
917
105766f3
JR
9182013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
919
920 * config/epiphany/epiphany.md (GPR_1): New constant.
921 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
922 * config/epiphany/epiphany.c (gen_compare_reg):
923 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
924 is already in place.
925 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
926 Don't require being called during rtl expansion; If y operlaps r0,
927 return 0.
928 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
929 (epiphany_expand_epilogue): Likewise.
930
8afab237
JR
931 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
932 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 933 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 934
fa7707d6
JR
935 * config/epiphany/constraints.md (CnL): New constraint.
936 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
937 * config/epiphany/predicates.md (add_operand): Allow 1024.
938
5138e18d
JR
939 * config/epiphany/epiphany.md (logical_op): New code iterator.
940 (op_mnc): New code attribute.
941 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
942 (mov_f+1, mov_f+2): New peephole2 patterns.
943
2ccc703d
JR
944 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
945 (cstoresi4): Also allow re-use of zero result when doing a NE
946 comparison to a non-zero operand.
aefb0819 947 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 948
093ac0a5
JR
949 * config/epiphany/epiphany.md (<insn_opname>v2si3):
950 Use gen_addsi3_i / gen_subsi3_i.
951
f223bb13
JJ
9522013-04-08 Jakub Jelinek <jakub@redhat.com>
953
954 PR c++/34949
955 PR c++/50243
956 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
957 contain anything but clobbers, at most one __builtin_stack_restore,
958 optionally debug stmts and final resx, and if it has at least one
959 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
960 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
961 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
962 which isn't defaut definition, remove them.
963 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
964 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
965 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
966 with MEM_REF LHS with SSA_NAME address.
967
4481581f
JL
9682013-04-08 Jeff Law <law@redhat.com>
969
970 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 971
451dabda
RB
9722013-04-08 Richard Biener <rguenther@suse.de>
973
974 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
975 extra newline.
976 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
977 determined vector type.
978 (vect_analyze_data_refs): Likewise.
979 (vect_get_new_vect_var): Adjust.
980 (vect_create_destination_var): Preserve SSA name versions.
981 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
982 not dump anything here.
983
3b088b47
JR
9842013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
985
986 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
987 Add member lr_slot_known.
988 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
989 if necessary.
990 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
991 Remove code that sets lr_slot_offset according to what a previous
992 version of epiphany_emit_save_restore used to do.
993 (epiphany_emit_save_restore): When doing an lr save or restore,
994 set/verify lr_slot_known and lr_slot_offset.
995
d8484d41
XQ
9962013-04-08 Xinyu Qi <xyqi@marvell.com>
997
33159866
UB
998 PR target/54338
999 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
1000 in ALL_REGS.
1001
481be1c4
RB
10022013-04-08 Richard Biener <rguenther@suse.de>
1003
1004 * alias.c (find_base_term): Fix thinko in previous change.
1005
401f3a81
JJ
10062013-04-08 Jakub Jelinek <jakub@redhat.com>
1007
1008 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
1009 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
1010 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
1011 if possible to compute val.
1012 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
1013 For QImode integers don't require anything about precision. Use
1014 const_with_all_bytes_same to find out if the constant doesn't have
1015 repeated bytes in it.
1016
03ed99a8
AK
10172013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1018
1019 * config/s390/s390.c (s390_expand_insv): Only accept insertions
1020 within mode size.
1021
781b2e62
MP
10222013-04-08 Marek Polacek <polacek@redhat.com>
1023
1024 PR rtl-optimization/48182
1025 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
1026 value to 1.
1027
27e430a2
JDA
10282013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1029
1030 PR target/55487
1031 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
1032 nuses, make sure we have a label.
1033
4902aa64
BS
10342013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1035
1036 PR target/56843
1037 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
1038 (rs6000_emit_swdiv_low_precision): Remove.
1039 (rs6000_emit_swdiv): Rewrite to handle between one and four
1040 iterations of Newton-Raphson generally; modify required number of
1041 iterations for some cases.
1042 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
1043
7bca81dc
SB
10442013-04-05 Steven Bosscher <steven@gcc.gnu.org>
1045
1046 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
1047 set-but-unused variable.
1048
1049 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
1050 basic blocks of released function bodies garbage-collectable.
1051
1052 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
1053 (struct rtl_opt_pass): Add TODO_df_finish.
1054
1055 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
1056
4542a38a
GY
10572013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
1058
1059 * config/arm/constraints.md (q): New constraint.
1060 * config/arm/ldrdstrd.md: New file.
1061 * config/arm/arm.md (ldrdstrd.md) New include.
1062 (arm_movdi): Use "q" instead of "r" constraint
1063 for double-word memory access.
1064 (movdf_soft_insn): Likewise.
1065 * config/arm/vfp.md (movdi_vfp): Likewise.
1066 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 1067 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
1068 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
1069 (mem_ok_for_ldrd_strd): Likewise.
1070 (output_move_double): Update assertion.
1071
2385b218
GY
10722013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
1073
1074 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
1075
75fe1cb5
GY
10762013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
1077
1078 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
1079 define_insn_and_split.
1080 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
1081
dd660e8e
GY
10822013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
1083
1084 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
1085 define_insn_and_split.
33159866 1086 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
1087 (shiftsi3_compare): New pattern.
1088 (rrx): New pattern.
1089 * config/arm/unspecs.md (UNSPEC_RRX): New.
1090
045e472c
GY
10912013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
1092
1093 * config/arm/arm.md (negdi_extendsidi): New pattern.
1094 (negdi_zero_extendsidi): Likewise.
1095
3f3bf1a8
GY
10962013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
1097
1098 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
1099 define_insn_and_split.
1100 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
1101 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
1102
b0b49556
GY
11032013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
1104
1105 * config/arm/arm.md (arm_subdi3): Convert define_insn into
1106 define_insn_and_split.
1107 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
1108 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
1109
d633dd84
GY
11102013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
1111
1112 * config/arm/arm.md (subsi3_carryin): New pattern.
1113 (subsi3_carryin_const): Likewise.
1114 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
1115 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
1116
f4499066
GY
11172013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
1118
1119 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
1120
ceef6fd9
GY
11212013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
1122
1123 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 1124 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 1125
ddbdd8a7
KT
11262013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1127
1128 * config/arm/arm.c (arm_expand_builtin): Change fcode
1129 type to unsigned int.
1130
8456d78a
RR
11312013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1132
1133 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
1134
526c230f
ILT
11352013-04-04 Ian Lance Taylor <iant@google.com>
1136
33159866
UB
1137 * doc/standards.texi (Standards): The Go frontend supports the Go 1
1138 language standard.
526c230f 1139
3cfbe04d
SB
11402013-04-04 Steven Bosscher <steven@gcc.gnu.org>
1141
1142 PR middle-end/56729
1143 * df-scan.c (df_insn_delete): Disable failing assert.
1144
dfa3f8d0
KT
11452013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1146
1147 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
1148 New function prototype.
1149 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
1150 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
1151 (arm_builtin_vectorized_function): New function.
1152
f7837758
KT
11532013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1154
1155 * config/arm/arm_neon_builtins.def: New file.
1156 * config/arm/arm.c (neon_builtin_data): Move contents to
1157 arm_neon_builtins.def.
1158 (enum arm_builtins): Include neon builtin definitions.
1159 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 1160 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 1161
39c1b6db
MP
11622013-04-04 Marek Polacek <polacek@redhat.com>
1163
1164 PR tree-optimization/48186
1165 * predict.c (maybe_hot_frequency_p): Return false if
1166 HOT_BB_FREQUENCY_FRACTION is 0.
1167 (cgraph_maybe_hot_edge_p): Likewise.
1168
314f64eb
RB
11692013-04-04 Richard Biener <rguenther@suse.de>
1170
1171 PR tree-optimization/56826
1172 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
1173 more accurately.
1174
51a905b2
RB
11752013-04-04 Richard Biener <rguenther@suse.de>
1176
1177 PR tree-optimization/56213
1178 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 1179 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 1180
f1bf4f3a
RB
11812013-04-04 Richard Biener <rguenther@suse.de>
1182
1183 PR tree-optimization/56837
1184 * tree-loop-distribution.c (classify_partition): For non-zero
1185 values require that the value has the same precision as its
1186 mode to be useful as memset value.
1187
0bca7ded
NC
11882013-04-03 Nick Clifton <nickc@redhat.com>
1189
33159866 1190 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
1191 (fmssf4): Use fmsf.s on E3V5 architectures.
1192 (fnmasf4): Use fnmaf.s on E3V5 architectures.
1193 (fnmssf4): Use fnmsf.s on E3V5 architectures.
1194
b4019227
JL
11952013-04-03 Jeff Law <law@redhat.com>
1196
1197 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
1198 (lra-eliminations.o): Likewise.
1199
f57ddb5b
TJ
12002013-04-03 Teresa Johnson <tejohnson@google.com>
1201
1202 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 1203 compute_working_sets here from profile.c.
f57ddb5b 1204 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
1205 (gcov_working_set_t): Moved typedef here from basic-block.h
1206 (compute_working_set): Declare.
f57ddb5b
TJ
1207 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
1208 (get_working_sets): Renamed from compute_working_set,
33159866 1209 replace most of body with call to new compute_working_sets.
f57ddb5b 1210 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
1211 to get_working_sets.
1212 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 1213 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 1214 to get_working_sets.
f57ddb5b
TJ
1215 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
1216 * gcov-dump.c (dump_working_sets): New function.
1217
5e0919f1
KZ
12182013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
1219
1220 * hwint.c (sext_hwi, zext_hwi): New functions.
1221 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
1222 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
1223 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
1224 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
1225 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
1226 (sext_hwi, zext_hwi): New functions.
0bca7ded 1227
be672e08
JL
12282013-04-03 Jeff Law <law@redhat.com>
1229
1230 PR tree-optimization/56799
33159866
UB
1231 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
1232 back test for widening conversion erroneously dropped in prior change.
be672e08 1233
9d821fa5
KT
12342013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1235
1236 PR target/56809
1237 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
1238 instead of next_real_insn.
1239
71c581e7
MP
12402013-04-03 Marek Polacek <polacek@redhat.com>
1241
1242 PR sanitizer/55702
33159866 1243 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 1244
4a32ef80
KT
12452013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1246
1247 PR target/56809
1248 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
1249 next_real_insn.
1250 (thumb1_output_casesi): Likewise.
1251 (thumb2_output_casesi): Likewise.
1252
1b2253d4
RB
12532013-04-03 Richard Biener <rguenther@suse.de>
1254
1255 PR tree-optimization/56817
1256 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
1257 Split out ...
1258 (tree_unroll_loops_completely_1): ... new function to manually
1259 walk the loop tree, properly defering outer loops of unrolled
1260 loops to later iterations.
1261
38000232
MG
12622013-04-03 Marc Glisse <marc.glisse@inria.fr>
1263
1264 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
1265 (vectorizable_load): Likewise.
1266 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
1267 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
1268
3fa35298
MG
12692013-04-03 Marc Glisse <marc.glisse@inria.fr>
1270
1271 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
1272 BIT_FIELD_REF.
1273
b3d45ff0
UW
12742013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1275
1276 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
1277
ec9202a8
BC
12782013-04-03 Bin Cheng <bin.cheng@arm.com>
1279
1280 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
1281
6805bd36
MG
12822013-04-03 Marc Glisse <marc.glisse@inria.fr>
1283
1284 PR tree-optimization/56790
33159866
UB
1285 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
1286 folding.
6805bd36 1287
da694a77
MG
12882013-04-03 Marc Glisse <marc.glisse@inria.fr>
1289
1290 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
1291 Handle VEC_MERGE.
1292 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
1293 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
1294 equal arguments.
1295
4e7d7b3d
JJ
12962013-04-03 Jakub Jelinek <jakub@redhat.com>
1297
1298 PR c/19449
1299 * tree.h (force_folding_builtin_constant_p): New decl.
1300 * builtins.c (force_folding_builtin_constant_p): New variable.
1301 (fold_builtin_constant_p): Fold immediately also if
1302 force_folding_builtin_constant_p.
1303
e6c9d234
RB
13042013-04-03 Richard Biener <rguenther@suse.de>
1305
1306 PR tree-optimization/56812
1307 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
1308 DRs of the same interleaving chain are independent.
1309
984d07dd
JM
13102013-04-02 Jason Merrill <jason@redhat.com>
1311
1312 * gdbinit.in (pbb): Use debug fn.
1313
622849c9
LC
13142013-04-02 Lawrence Crowl <crowl@google.com>
1315
1316 * sese.h (struct ivtype_map_elt_s): Remove unused.
1317 (extern debug_ivtype_map): Remove unused.
1318 (extern eq_ivtype_map_elts): Remove unused.
1319 * sese.c (debug_ivtype_map): Removed unused.
1320 (debug_ivtype_map_1): Removed unused.
1321 (debug_ivtype_elt): Remove unused.
1322 (eq_ivtype_map_elts): Remove unused.
1323
1324
82c0e1a0
KT
13252013-04-02 Kai Tietz <ktietz@redhat.com>
1326
1327 PR target/52790
1328 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
1329 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
1330 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
1331 function.
82c0e1a0
KT
1332 (legitimize_pe_coff_symbol): Likewise.
1333 (is_imported_p): New helper-function.
1334 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
1335 for Windows x64 targets.
1336 (ix86_expand_prologue): Optimize for pe-coff targets.
1337 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
1338 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
1339 medium/large code-model.
1340 (legitimize_pic_address): Likewise.
1341 (legitimize_tls_address): Likewise.
1342 (ix86_expand_call): Likewise.
1343 (x86_output_mi_thunk): Likewise.
1344 (get_dllimport_decl): Add new beimport argument.
1345 (construct_plt_address): Don't assert for x64 pe-coff targets.
1346 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
1347 targets.
1348 (SYMBOL_FLAG_STUBVAR): New macro.
1349 (SYMBOL_REF_STUBVAR_P): Likewise.
1350 * config/i386/winnt.c (stub_list): New structure.
1351 (stub_head): New local variable.
1352 (i386_pe_record_stub): New function.
1353 (i386_pe_file_end): Emit refptr-stubs.
1354
5d751b0c
JJ
13552013-04-02 Jakub Jelinek <jakub@redhat.com>
1356
09bb4c99
JJ
1357 PR rtl-optimization/56745
1358 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
1359 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
1360
a1d8947a
JJ
1361 PR c++/34949
1362 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
1363 and both of them are MEM_REFs, just compare first argument for
1364 equality and attempt to deal even with differing offsets.
1365
5d751b0c
JJ
1366 PR c++/34949
1367 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
1368 of gimple_clobber_p to be MEM_REF.
1369 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
1370 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
1371 after gimplification.
1372 * asan.c (get_mem_ref_of_assignment): Don't instrument
1373 gimple_clobber_p stmts.
1374 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
1375 gimple_clobber_p stmt if they have MEM_REF lhs and
1376 are dead because of another gimple_clobber_p stmt.
1377 * tree-ssa-live.c (clear_unused_block_pointer): Treat
1378 gimple_clobber_p stmts like debug stmts.
1379 (remove_unused_locals): Remove clobbers with MEM_REF lhs
1380 that refer to unused VAR_DECLs or uninitialized values.
1381 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
1382 gimple_clobber_p stmts if they refer to removed parameters.
1383 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
1384 formatting.
1385
e594716a
UB
13862013-04-02 Uros Bizjak <ubizjak@gmail.com>
1387
1388 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
1389 using SWI48 mode attribute.
1390
7a80735b
WM
13912013-04-02 Wei Mi <wmi@google.com>
1392
1393 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
1394 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
1395 *<rotate_insn><mode>3_mask in i386.md.
1396
f423a9e4
AI
13972013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
1398
1399 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
1400
90eb75f2
RB
14012013-04-02 Richard Biener <rguenther@suse.de>
1402
1403 PR tree-optimization/56778
1404 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
1405 Runtime alias tests are not supported for gather loads.
1406 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
1407 stmts referenced from SSA operands before updating SSA form.
1408
d8c69a92
IC
14092013-04-02 Ian Caulfield <ian.caulfield@arm.com>
1410 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1411
1412 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
1413 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
1414 * config/arm/cortex-a53.md: New file.
1415 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
1416 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
1417 * config/arm/arm.c (arm_issue_rate): Likewise.
1418 * config/arm/arm-tune.md: Regenerate
1419 * config/arm/arm-tables.opt: Regenerate.
1420 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 1421
239eb04c
ZC
14222013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
1423
1424 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
1425 non-static link.
1426
c902d3c8
SN
14272013-04-02 Sofiane Naci <sofiane.naci@arm.com>
1428
d8c69a92
IC
1429 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
1430 scalar load/store operations using B/H registers.
c902d3c8
SN
1431 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
1432
051d0e2f
SN
14332013-04-02 Sofiane Naci <sofiane.naci@arm.com>
1434
1435 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
1436 scalar move.
1437 * config/aarch64/aarch64.c
1438 (aarch64_simd_scalar_immediate_valid_for_move): New.
1439 * config/aarch64/aarch64-protos.h
1440 (aarch64_simd_scalar_immediate_valid_for_move): New.
1441 * config/aarch64/constraints.md (Dh, Dq): New.
1442 * config/aarch64/iterators.md (hq): New.
1443
0ee1e3d9
EB
14442013-04-02 Eric Botcazou <ebotcazou@adacore.com>
1445
1446 * reorg.c (get_branch_condition): Deal with conditional returns.
1447 (fill_simple_delay_slots): Remove dead code dealing with jumps.
1448
136fb3f7
WM
14492013-04-01 Wei Mi <wmi@google.com>
1450
1451 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
1452 Truncate operand 2 using %b asm operand modifier.
1453 (*<shift_insn><mode>3_mask): Ditto.
1454 (*<rotate_insn><mode>3_mask): Ditto.
1455
6388c738
SB
14562013-04-01 Steven Bosscher <steven@gcc.gnu.org>
1457
1458 PR middle-end/56798
1459 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
1460
f7a4d826
KK
14612013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
1462
1463 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
1464 of next_real_insn.
1465 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
1466
4b943a49
LC
14672013-03-30 Lawrence Crowl <crowl@google.com>
1468
1469 * dse.c (clear_alias_sets): Remove never set.
1470 (disqualified_clear_alias_sets): Remove never set.
1471 (clear_alias_mode_pool): Remove never set.
1472 (dse_step0): Remove condition that is never true.
1473 (canon_address): Remove condition that is never true.
1474 (dse_step7): Remove condition that is never true.
1475 (rest_of_handle_dse): Remove condition that is never true.
1476 (rest_of_handle_dse::did_global): Remove never read from above.
1477 (dse_step2_spill): Remove never called from above.
1478 (dse_step5_spill): Remove never called from above.
1479
39718607
SB
14802013-03-30 Steven Bosscher <steven@gcc.gnu.org>
1481
da5c6bde
SB
1482 * doc/md.texi (Standard Names) <casesi>: Update documentation for
1483 JUMP_TABLE_DATA changes.
1484 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
1485 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
1486 (Insns) <jump_table_data>: New entry.
1487 * doc/tm.texi: Regenerate.
1488
39718607
SB
1489 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
1490
1491 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
1492 for table jump at the end of a basic block using tablejump_p.
1493 * targhooks.c (default_invalid_within_doloop): Likewise.
1494 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
1495 target hook implementation that is identical to the default hook.
1496 (rs6000_invalid_within_doloop): Remove.
1497
1498 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
1499 unused variable from tablejump_p call.
1500
1501 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
1502 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
1503 (INSN_DELETED_P): Likewise.
1504 (emit_jump_table_data): New prototype.
1505 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
1506 after 4th as unused.
1507 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
1508 * sched-vis.c (print_insn): Likewise.
1509 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
1510 insn for compatibility with back ends that use next_active_insn to
1511 identify jump table data.
1512 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
1513 (remove_insn): Likewise.
1514 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
1515 to be emitted.
1516 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
1517 (emit_jump_table_data): New function.
1518
1519 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
1520 basic block, a JUMP_TABLE_DATA never is.
1521 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
1522 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
1523 off from code handling real insns.
1524 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
1525 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
1526 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
1527 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
1528 is not a NONDEBUG_INSN_P.
1529 * ira-costs.c (scan_one_insn): Likewise.
1530 * jump.c (mark_all_labels): Likewise.
1531 (mark_jump_label_1): Likewise.
1532 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
1533 * lra.c (get_insn_freq): Expect all insns reaching here to be in
1534 a basic block.
1535 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
1536 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
1537 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
1538 JUMP_TABLE_DATA_P insns.
1539 (calculate_elim_costs_all_insns): Likewise.
1540 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
1541 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
1542 (delete_output_reload): Code style fixups.
1543 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
1544 insn flags on this non-insn.
1545 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
1546 as scheduling barriers, for pre-change compatibility.
1547 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
1548 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
1549
1550 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
1551 redundant JUMP_TABLE_DATA_P test.
1552 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
1553 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
1554 (frv_for_each_packet): Likewise.
1555 * config/i386/i386.c (min_insn_size): Likewise.
1556 (ix86_avoid_jump_mispredicts): Likewise.
1557 * config/m32r/m32r.c (m32r_is_insn): Likewise.
1558 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
1559 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
1560 (mips16_insn_length): Robustify.
1561 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
1562 (mips16_split_long_branches): Likewise.
1563 * config/pa/pa.c (pa_combine_instructions): Likewise.
1564 * config/rs6000/rs6000.c (get_next_active_insn): Treat
1565 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
1566 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
1567 as contributing to pool range lengths.
1568 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
1569 Remove redundant JUMP_TABLE_DATA_P test.
1570 (sh_loop_align): Likewise.
1571 (split_branches): Likewise.
1572 (sh_insn_length_adjustment): Likewise.
1573 * config/spu/spu.c (get_branch_target): Likewise.
1574
0208f7da
JH
15752013-03-29 Jan Hubicka <jh@suse.cz>
1576
1577 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
1578 gcov streaming; stream hot bb threshold to ltrans.
1579 * predict.c (get_hot_bb_threshold): Break out from ....
1580 (maybe_hot_count_p): ... here.
1581 (set_hot_bb_threshold): New function.
1582 * lto-section-in.c (lto_section_name): Add profile.
1583 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
1584 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
1585 and data-streamer.h
1586 (histogram_entry): New structure.
1587 (histogram, histogram_pool): New global vars.
1588 (histogram_hash): New structure.
1589 (histogram_hash::hash): New method.
1590 (histogram_hash::equal): Likewise.
1591 (account_time_size): New function.
1592 (cmp_counts): New function.
1593 (dump_histogram): New function.
1594 (ipa_profile_generate_summary): New function.
1595 (ipa_profile_write_summary): New function.
1596 (ipa_profile_read_summary): New function.
1597 (ipa_profile): Decide on threshold.
e594716a
UB
1598 (pass_ipa_profile): Add ipa_profile_write_summary and
1599 ipa_profile_read_summary.
0208f7da
JH
1600 * Makefile.in (ipa.o): Update dependencies.
1601 * lto-streamer.h (LTO_section_ipa_profile): New section.
1602
5a6ccc94
GDR
16032013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
1604
1605 * tree.h (VAR_P): New.
1606
39385fa6
PC
16072013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
1608
1609 PR lto/56777
1610 * doc/invoke.texi ([-fwhole-program]): Fix typo.
1611
34f0d87a
SB
16122013-03-29 Steven Bosscher <steven@gcc.gnu.org>
1613
1614 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
1615 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
1616 (control_flow_insn_p): Likewise.
1617 * cfgrtl.c (duplicate_insn_chain): Likewise.
1618 * final.c (get_attr_length_1): Likewise.
1619 (shorten_branches): Likewise.
1620 (final_scan_insn): Likewise.
1621 * function.c (instantiate_virtual_regs): Likewise.
1622 * gcse.c (insert_insn_end_basic_block): Likewise.
1623 * ira-costs.c (scan_one_insn): Likewise.
1624 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
1625 * lra.c (check_rtl): Likewise.
1626 * reload1.c (elimination_costs_in_insn): Likewise.
1627 * reorg.c (follow_jumps): Likewise.
1628
1629 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
1630 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
1631 (thumb_far_jump_used_p): Likewise.
1632 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
1633 (workaround_speculation): Likewise.
1634 (add_sched_insns_for_speculation): Likewise.
1635 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
1636 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
1637 (frv_for_each_packet): Likewise.
1638 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
1639 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
1640 (final_emit_insn_group_barriers): Likewise.
1641 * config/m32r/m32r.c (m32r_is_insn): Likewise.
1642 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
1643 (mips16_insn_length): Likewise.
1644 * config/pa/pa.c (pa_reorg): Likewise.
1645 (pa_combine_instructions): Likewise.
1646 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
1647 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
1648 (sh_reorg): Likewise.
1649 (split_branches): Likewise.
1650 * config/spu/spu.c (get_branch_target): Likewise.
1651
1652 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
1653 JUMP_TABLE_DATA_P.
1654
4ac761b0
KY
16552013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
1656
39385fa6 1657 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
1658 Fix declaration name.
1659
58a49189
LC
16602013-03-28 Lawrence Crowl <crowl@google.com>
1661
1662 * graphds.h (struct graph.indicies): Remove unused.
1663 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
1664 (SCOP_ORIGINAL_PDDRS): Remove unused.
1665 * sese.h (extern insert_loop_close_phis): Removed unused.
1666 (extern insert_guard_phis): Removed unused.
1667 (extern ivtype_map_elt_info): Removed unused.
1668 (new_ivtype_map_elt): Removed unused.
1669 * sese.c (ivtype_map_elt_info): Removed unused.
1670
7b3b6ae4
LC
16712013-03-28 Lawrence Crowl <crowl@google.com>
1672
1673 * Makefile.in: Add several missing include dependences.
1674 (DUMPFILE_H): New.
1675 (test-dump.o): New. This object is not added to any executable,
1676 but is present for ad-hoc testing.
1677 * bitmap.c
1678 (debug (const bitmap_head_def &)): New.
1679 (debug (const bitmap_head_def *)): New.
1680 * bitmap.h
1681 (extern debug (const bitmap_head_def &)): New.
1682 (extern debug (const bitmap_head_def *)): New.
1683 * cfg.c
1684 (debug (edge_def &)): New.
1685 (debug (edge_def *)): New.
1686 * cfghooks.c
1687 (debug (basic_block_def &)): New.
1688 (debug (basic_block_def *)): New.
1689 * dumpfile.h
1690 (dump_node (const_tree, int, FILE *)): Correct source file.
1691 * dwarf2out.c
1692 (debug (die_struct &)): New.
1693 (debug (die_struct *)): New.
1694 * dwarf2out.h
1695 (extern debug (die_struct &)): New.
1696 (extern debug (die_struct *)): New.
1697 * gimple-pretty-print.c
1698 (debug (gimple_statement_d &)): New.
1699 (debug (gimple_statement_d *)): New.
1700 * gimple-pretty-print.h
1701 (extern debug (gimple_statement_d &)): New.
1702 (extern debug (gimple_statement_d *)): New.
1703 * ira-build.c
1704 (debug (ira_allocno_copy &)): New.
1705 (debug (ira_allocno_copy *)): New.
1706 (debug (ira_allocno &)): New.
1707 (debug (ira_allocno *)): New.
1708 * ira-int.h
1709 (extern debug (ira_allocno_copy &)): New.
1710 (extern debug (ira_allocno_copy *)): New.
1711 (extern debug (ira_allocno &)): New.
1712 (extern debug (ira_allocno *)): New.
1713 * ira-lives.c
1714 (debug (live_range &)): New.
1715 (debug (live_range *)): New.
1716 * lra-int.h
1717 (debug (lra_live_range &)): New.
1718 (debug (lra_live_range *)): New.
1719 * lra-lives.c
1720 (debug (lra_live_range &)): New.
1721 (debug (lra_live_range *)): New.
1722 * omega.c
1723 (debug (omega_pb_d &)): New.
1724 (debug (omega_pb_d *)): New.
1725 * omega.h
1726 (extern debug (omega_pb_d &)): New.
1727 (extern debug (omega_pb_d *)): New.
1728 * print-rtl.c
1729 (debug (const rtx_def &)): New.
1730 (debug (const rtx_def *)): New.
1731 * print-tree.c
1732 (debug_tree (tree): Move within file.
1733 (debug_raw (const tree_node &)): New.
1734 (debug_raw (const tree_node *)): New.
1735 (dump_tree_via_hooks (const tree_node *, int)): New.
1736 (debug (const tree_node &)): New.
1737 (debug (const tree_node *)): New.
1738 (debug_verbose (const tree_node &)): New.
1739 (debug_verbose (const tree_node *)): New.
1740 (debug_head (const tree_node &)): New.
1741 (debug_head (const tree_node *)): New.
1742 (debug_body (const tree_node &)): New.
1743 (debug_body (const tree_node *)): New.
1744 (debug_vec_tree (tree): Move and reimplement in terms of dump.
1745 (debug (vec<tree, va_gc> &)): New.
1746 (debug (vec<tree, va_gc> *)): New.
1747 * rtl.h
1748 (extern debug (const rtx_def &)): New.
1749 (extern debug (const rtx_def *)): New.
1750 * sbitmap.c
1751 (debug_raw (simple_bitmap_def &)): New.
1752 (debug_raw (simple_bitmap_def *)): New.
1753 (debug (simple_bitmap_def &)): New.
1754 (debug (simple_bitmap_def *)): New.
1755 * sbitmap.h
1756 (extern debug (simple_bitmap_def &)): New.
1757 (extern debug (simple_bitmap_def *)): New.
1758 (extern debug_raw (simple_bitmap_def &)): New.
1759 (extern debug_raw (simple_bitmap_def *)): New.
1760 * sel-sched-dump.c
1761 (debug (vinsn_def &)): New.
1762 (debug (vinsn_def *)): New.
1763 (debug_verbose (vinsn_def &)): New.
1764 (debug_verbose (vinsn_def *)): New.
1765 (debug (expr_def &)): New.
1766 (debug (expr_def *)): New.
1767 (debug_verbose (expr_def &)): New.
1768 (debug_verbose (expr_def *)): New.
1769 (debug (vec<rtx> &)): New.
1770 (debug (vec<rtx> *)): New.
1771 * sel-sched-dump.h
1772 (extern debug (vinsn_def &)): New.
1773 (extern debug (vinsn_def *)): New.
1774 (extern debug_verbose (vinsn_def &)): New.
1775 (extern debug_verbose (vinsn_def *)): New.
1776 (extern debug (expr_def &)): New.
1777 (extern debug (expr_def *)): New.
1778 (extern debug_verbose (expr_def &)): New.
1779 (extern debug_verbose (expr_def *)): New.
1780 (extern debug (vec<rtx> &)): New.
1781 (extern debug (vec<rtx> *)): New.
1782 * sel-sched-ir.h
1783 (_list_iter_cond_expr): Make inline instead of static.
1784 * sreal.c
1785 (debug (sreal &)): New.
1786 (debug (sreal *)): New.
1787 * sreal.h
1788 (extern debug (sreal &)): New.
1789 (extern debug (sreal *)): New.
1790 * tree.h
1791 (extern debug_raw (const tree_node &)): New.
1792 (extern debug_raw (const tree_node *)): New.
1793 (extern debug (const tree_node &)): New.
1794 (extern debug (const tree_node *)): New.
1795 (extern debug_verbose (const tree_node &)): New.
1796 (extern debug_verbose (const tree_node *)): New.
1797 (extern debug_head (const tree_node &)): New.
1798 (extern debug_head (const tree_node *)): New.
1799 (extern debug_body (const tree_node &)): New.
1800 (extern debug_body (const tree_node *)): New.
1801 (extern debug (vec<tree, va_gc> &)): New.
1802 (extern debug (vec<tree, va_gc> *)): New.
1803 * tree-cfg.c
1804 (debug (struct loop &)): New.
1805 (debug (struct loop *)): New.
1806 (debug_verbose (struct loop &)): New.
1807 (debug_verbose (struct loop *)): New.
1808 * tree-dump.c: Add header dependence.
1809 * tree-flow.h
1810 (extern debug (struct loop &)): New.
1811 (extern debug (struct loop *)): New.
1812 (extern debug_verbose (struct loop &)): New.
1813 (extern debug_verbose (struct loop *)): New.
1814 * tree-data-ref.c
1815 (debug (data_reference &)): New.
1816 (debug (data_reference *)): New.
1817 (debug (vec<data_reference_p> &)): New.
1818 (debug (vec<data_reference_p> *)): New.
1819 (debug (vec<ddr_p> &)): New.
1820 (debug (vec<ddr_p> *)): New.
1821 * tree-data-ref.h
1822 (extern debug (data_reference &)): New.
1823 (extern debug (data_reference *)): New.
1824 (extern debug (vec<data_reference_p> &)): New.
1825 (extern debug (vec<data_reference_p> *)): New.
1826 (extern debug (vec<ddr_p> &)): New.
1827 (extern debug (vec<ddr_p> *)): New.
1828 * tree-ssa-alias.c
1829 (debug (pt_solution &)): New.
1830 (debug (pt_solution *)): New.
1831 * tree-ssa-alias.h
1832 (extern debug (pt_solution &)): New.
1833 (extern debug (pt_solution *)): New.
1834 * tree-ssa-alias.c
1835 (debug (_var_map &)): New.
1836 (debug (_var_map *)): New.
1837 (debug (tree_live_info_d &)): New.
1838 (debug (tree_live_info_d *)): New.
1839 * tree-ssa-alias.h
1840 (extern debug (_var_map &)): New.
1841 (extern debug (_var_map *)): New.
1842 (extern debug (tree_live_info_d &)): New.
1843 (extern debug (tree_live_info_d *)): New.
1844
be77e1e5
JH
18452013-03-28 Jan Hubicka <jh@suse.cz>
1846
1847 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
1848
777e6976
IB
18492013-03-28 Ian Bolton <ian.bolton@arm.com>
1850
1851 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
1852 record only when desired or required.
1853
9cd347ae
UB
18542013-03-28 Uros Bizjak <ubizjak@gmail.com>
1855
1856 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
1857 *vec_extractv2di_1_rex64. Use x64 isa attribute.
1858
33159866 18592013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
1860
1861 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
1862 (*andsi3_compare0_uxtw): New pattern.
1863 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
1864 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
1865
89ab31c1
JH
18662013-03-28 Jan Hubicka <jh@suse.cz>
1867
1868 * data-streamer-in.c (streamer_read_gcov_count): New function.
1869 * gimple-streamer-out.c: Include value-prof.h.
1870 (output_gimple_stmt): Output histogram.
1871 (output_bb): Use streamer_write_gcov_count.
1872 * value-prof.c: Include data-streamer.h
1873 (dump_histogram_value): Add HIST_TYPE_MAX.
1874 (stream_out_histogram_value): New function.
1875 (stream_in_histogram_value): New function.
1876 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
1877 (stream_out_histogram_value, stream_in_histogram_value): Declare.
1878 * data-streamer-out.c (streamer_write_gcov_count): New function.
1879 (streamer_write_gcov_count_stream): New function.
1880 * lto-cgraph.c (lto_output_edge): Update counter streaming.
1881 (lto_output_node): Likewise.
1882 (input_node, input_edge): Likewise.
1883 * lto-streamer-out.c (output_cfg): Update streaming.
1884 * lto-streamer-in.c (input_cfg): Likewise.
1885 * data-streamer.h (streamer_write_gcov_count,
1886 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
1887 * gimple-streamer-in.c: Include value-prof.h
1888 (input_gimple_stmt): Input histograms.
1889 (input_bb): Update profile streaming.
1890
e594716a 18912013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 1892
33159866 1893 * genmodes.c (emit_max_int): New function.
8697be17 1894 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
1895 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
1896 Added doc.
8697be17 1897 * machmode.def: Fixed comment.
89ab31c1 1898
e594716a 18992013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
1900
1901 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
1902 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
1903
74946978
MP
19042013-03-28 Marek Polacek <polacek@redhat.com>
1905 Richard Biener <rguenther@suse.de>
1906
1907 PR tree-optimization/56695
1908 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
1909 build signed result of a vector comparison.
1910 * tree-cfg.c (verify_gimple_comparison): Check that a result
1911 of a vector comparison has signed type.
1912
a64b9c26
RB
19132013-03-28 Richard Biener <rguenther@suse.de>
1914
1915 PR tree-optimization/37021
1916 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
1917 do not restrict gaps between groups.
1918 * tree-vect-stmts.c (vectorizable_load): Properly account for
1919 a gap between groups.
1920
a9dc2a2f
EB
19212013-03-28 Eric Botcazou <ebotcazou@adacore.com>
1922
1923 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
1924 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
1925 is not enabled.
1926
53cb97f9
GP
19272013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
1928
1929 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
1930 * doc/extend.texi (Named Address Spaces): Ditto.
1931 (Variable Attributes): Ditto.
1932
b802ae5c
KT
19332013-03-27 Kai Tietz <ktietz@redhat.com>
1934
eddae10a
KT
1935 * config.build: Add support for cygwin x64 target.
1936 * config.gcc: Likewise.
1937 * config.host: Likewise.
1938 * configure.ac: Likewise
1939 * configure: Regenerated.
b802ae5c 1940
8269de54
KT
19412013-03-27 Kai Tietz <ktietz@redhat.com>
1942
1943 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
1944 * config/i386/t-cygwin-w64: New file.
1945 * config/i386/cygwin-w64.h: New file.
1946 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
1947 and add support for x64-cygwin target.
1948 (CPP_SPEC): Likewise.
1949 (CXX_WRAP_SPEC_LIST): Undefine before define.
1950 (LIBGCJ_SONAME): Use 15 as version.
1951
f49b33cb
RB
19522013-03-27 Richard Biener <rguenther@suse.de>
1953
1954 PR tree-optimization/56716
1955 * tree-ssa-structalias.c (perform_var_substitution): Adjust
1956 dumping for ref nodes.
1957
b37a6ce5
MJ
19582013-03-27 Martin Jambor <mjambor@suse.cz>
1959
1960 PR tree-optimization/55334
1961 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
1962 restricted pointers to arrays.
1963
9469b9b2
GDR
19642013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
1965
1966 * Makefile.in (.SUFFIXES): Add .cc.
1967 (.c.o): Apply same recipe for implicit rule .cc.o.
1968
7d24f650
RB
19692013-03-27 Richard Biener <rguenther@suse.de>
1970
1971 PR tree-optimization/37021
1972 * tree-vect-data-refs.c (vect_check_strided_load): Allow
1973 REALPART/IMAGPART_EXPRs around the supported refs.
1974 * tree-ssa-structalias.c (find_func_aliases): Assume that
1975 floating-point values are not used to transfer pointers.
1976
2f251a05
AI
19772013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
1978
39385fa6
PC
1979 * target.def (TARGET_HAS_IFUNC_P): New target hook.
1980 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
1981 * doc/tm.texi: Regenerate.
1982 * targhooks.h (default_has_ifunc_p): New.
1983 * targhooks.c (default_has_ifunc_p): Ditto.
1984 * config/linux-protos.h: New file.
1985 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of
2f251a05
AI
1986 this hook for linux which disables support of indirect functions in
1987 android.
39385fa6
PC
1988 * config/linux-android.c: New file.
1989 * config/t-linux-android.c: Ditto.
1990 * config.gcc: Added new object file linux-android.o.
1991 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 1992 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
39385fa6 1993 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
1994 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
1995 doesn't support indirect functions.
1996 * configure: Regenerate.
1997
78b4e425
BC
19982013-03-27 Bin Cheng <bin.cheng@arm.com>
1999
2000 PR target/56102
2001 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
2002 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
2003 mult-word mode.
2004
a5ba7b92
AK
20052013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2006
2007 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
2008
be624986
TG
20092013-03-27 Terry Guo <terry.guo@arm.com>
2010
2011 * config/arm/arm-cores.def: Added core cortex-r7.
2012 * config/arm/arm-tune.md: Regenerated.
2013 * config/arm/arm-tables.opt: Regenerated.
2014 * doc/invoke.texi: Added entry for core cortex-r7.
2015
0a514f47
WL
20162013-03-27 Walter Lee <walt@tilera.com>
2017
2018 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
2019 double-decrement of next_scratch_regno.
2020
9332b0d2
WL
20212013-03-27 Walter Lee <walt@tilera.com>
2022
801d9b2a 2023 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
2024 input operands.
2025 (insn_v1mulus): Ditto.
2026 (insn_v2muls): Ditto.
2027
f54ea5dd
WL
20282013-03-27 Walter Lee <walt@tilera.com>
2029
e594716a 2030 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
2031 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
2032
bf60f4ca
WL
20332013-03-27 Walter Lee <walt@tilera.com>
2034
e594716a 2035 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
2036 (*sibcall_value): Ditto.
2037
e3b51eeb
WL
20382013-03-27 Walter Lee <walt@tilera.com>
2039
2040 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
2041 (insn_mnz_v8qi): ... this ...
2042 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
2043 vector equivalent.
2044 (insn_v<n>mnz): Replaced by ...
2045 (insn_v1mnz): ... this ...
2046 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
2047 equivalent.
2048 (insn_mz_<mode>): Replaced by ...
2049 (insn_mz_v8qi): ... this ...
2050 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
2051 vector equivalent.
2052 (insn_v<n>mz): Replaced by ...
2053 (insn_v1mz): ... this ...
2054 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
2055 equivalent.
2056
4fc7b145
EB
20572013-03-26 Eric Botcazou <ebotcazou@adacore.com>
2058
2059 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
2060
6f33817e
RM
20612013-03-26 Roland McGrath <mcgrathr@google.com>
2062
2063 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
2064 than fprintf with a non-constant, non-format string.
2065
93a4145b
UB
20662013-03-26 Uros Bizjak <ubizjak@gmail.com>
2067
2068 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
2069 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
2070 operand 0 predicate.
2071 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
2072 attribute. Use general_x64nomem_operand as operand 1 predicate.
2073 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
2074 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
2075 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
2076 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
2077 (mov<mode>_insv_1): Remove expander. Merge insn with
2078 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
2079 Use general_x64nomem_operand as operand 1 predicate.
2080 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
2081 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
2082 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
2083 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
2084 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
2085 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
2086 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
2087 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
2088 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
2089 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
2090 (general_x64nomem_operand): Ditto.
2091
c6a9ed5a 20922013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
2093
2094 * config/rtems.opt: Add -pthread option.
2095
31b0a960
RB
20962013-03-26 Richard Biener <rguenther@suse.de>
2097
93a4145b
UB
2098 * alias.c (find_base_term): Avoid redundant and not used recursion.
2099 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
2100 (true_dependence_1): Compute and pass base terms to base_alias_check.
2101 (write_dependence_p): Likewise.
2102 (may_alias_p): Likewise.
2103
79517551
SN
21042013-03-26 Sofiane Naci <sofiane.naci@arm.com>
2105
2106 * config/aarch64/aarch64.c (aarch64_classify_address): Support
2107 PC-relative load in SI modes and above only.
2108
a76213b9
XQ
21092013-03-26 Xinyu Qi <xyqi@marvell.com>
2110
2111 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
2112 * config/arm/iwmmxt.md (WCGR0): Update.
2113 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 2114
37ff9355
UB
21152013-03-26 Uros Bizjak <ubizjak@gmail.com>
2116
2117 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
2118 Use x64 and nox64 isa attributes.
2119
30b0317c
RB
21202013-03-26 Richard Biener <rguenther@suse.de>
2121
2122 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
2123 alignment computations and rely on get_object_alignment_1
2124 for the !TYPE_P case.
2125 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
2126
cbcdb140
WL
21272013-03-26 Walter Lee <walt@tilera.com>
2128
2129 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
2130 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
2131
dd884525 21322013-03-25 Jeff Law <law@redhat.com>
be672e08 2133
33159866
UB
2134 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
2135 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
2136 wrong version of prior patch.
2137
0051d3ec
WL
21382013-03-25 Walter Lee <walt@tilera.com>
2139
2140 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
2141 TILEGX_INSN_SHUFFLEBYTES1.
2142 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
2143 shufflebytes1.
2144 (tilegx_builtins): Ditto.
2145 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
2146
065a3605
WL
21472013-03-25 Walter Lee <walt@tilera.com>
2148
2149 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
2150 (floatunssisf2): New pattern.
2151 (floatsidf2): New pattern.
2152 (floatunssidf2): New pattern.
065a3605 2153
5b2a3c82
WL
21542013-03-25 Walter Lee <walt@tilera.com>
2155
2156 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
2157 tests for constraint J, K, N, P.
2158
192ea533
WL
21592013-03-25 Walter Lee <walt@tilera.com>
2160
2161 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
2162 Use indirect/pcrel encoding.
2163 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
2164 Ditto.
2165
855e0d0b
SE
21662013-03-25 Steve Ellcey <sellcey@mips.com>
2167
2168 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
2169 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
2170 * config/mips/mips.c (mips_option_override): Set IMADD default.
2171 * config/mips/mips.h (PTF_AVOID_IMADD): New.
2172 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
2173 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
2174 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
2175 * doc/invoke.texi (-mimadd/-mno-imadd): New.
2176
39e45653
JL
21772013-03-25 Jeff Law <law@redhat.com>
2178
2179 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
2180 slightly to avoid creating and folding useless trees. Simplify
2181 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
2182
7482c470
UB
21832013-03-25 Uros Bizjak <ubizjak@gmail.com>
2184
2185 * config/i386/i386.md (*zero_extendsidi2): Merge with
2186 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
2187 * config/i386/predicates.md (x86_64_zext_operand): Rename from
2188 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
2189 targets. Clarify comment.
2190
4a53743e
MJ
21912013-03-25 Martin Jambor <mjambor@suse.cz>
2192
2193 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
2194 pass-through jump functions differently.
2195 (ipa_read_jump_function): Likewise. Also use setter functions to set
2196 up jump functions.
2197
162712de
MJ
21982013-03-25 Martin Jambor <mjambor@suse.cz>
2199
2200 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
2201 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
2202 process it.
2203 (ipa_get_indirect_edge_target): New function.
2204 (devirtualization_time_bonus): New parameter known_aggs, pass it to
2205 ipa_get_indirect_edge_target. Update all callers.
2206 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
2207 ipa_get_indirect_edge_target_1 instead of calling
2208 ipa_get_indirect_edge_target.
2209 (create_specialized_node): Pass aggvlas to
2210 ipcp_discover_new_direct_edges.
2211
a5a4c20a
KT
22122013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2213
2214 * config/arm/arm.md (f_sels, f_seld): New types.
2215 (*cmov<mode>): New pattern.
2216 * config/arm/predicates.md (arm_vsel_comparison_operator): New
2217 predicate.
2218
f992b9fc
KT
22192013-03-25 Kai Tietz <ktietz@redhat.com>
2220
2221 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
2222 POSIX-printf for mingw-hosted builds.
2223
c16fd676
RB
22242013-03-25 Richard Biener <rguenther@suse.de>
2225
2226 PR middle-end/56694
2227 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
2228 must-not-throw stmt location.
2229
5ad29f12
KT
22302013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2231
2232 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
2233 Emit load-acquire versions when acq is true.
2234 (arm_emit_store_exclusive): Add rel parameter.
2235 Emit store-release versions when rel is true.
2236 (arm_split_compare_and_swap): Use acquire-release instructions
2237 instead.
2238 of barriers when appropriate.
2239 (arm_split_atomic_op): Likewise.
2240 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
2241 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
2242 (VUNSPEC_SLX): Likewise.
2243 (VUNSPEC_LDA): Likewise.
2244 (VUNSPEC_STL): Likewise.
2245 * config/arm/sync.md (atomic_load<mode>): New pattern.
2246 (atomic_store<mode>): Likewise.
2247 (arm_load_acquire_exclusive<mode>): Likewise.
2248 (arm_load_acquire_exclusivesi): Likewise.
2249 (arm_load_acquire_exclusivedi): Likewise.
2250 (arm_store_release_exclusive<mode>): Likewise.
2251
03a7dddb
CM
22522013-03-25 Catherine Moore <clm@codesourcery.com>
2253
2254 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
2255 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
2256 * config/mip/predicates.md (lwsp_swsp_operand,
2257 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
2258 sb16_operand, db4_operand, db7_operand, ib3_operand,
2259 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
2260 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
2261 andi16_operand): New predicates.
2262 * config/mips/mips.md (compression): New attribute.
2263 (enabled): New attribute.
2264 (length): Consider compression in computing length.
2265 (shift_compression): New code attribute.
2266 (*add<mode>3): New operands. Record compression.
2267 (sub<mode>3): Likewise.
2268 (one_cmpl<mode>2): Likewise.
2269 (*and<mode>3): Likewise.
2270 (*ior<mode>3): Likewise.
2271 (unnamed pattern for xor): Likewise.
2272 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
2273 (*<optab><mode>3): Likewise.
2274 (*mov<mode>_internal: Likewise.
2275 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
2276 (mips_unsigned_immediate_p): New.
2277 (umips_lwsp_swsp_address_p): New.
2278 (m16_based_address_p): New.
2279 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
2280 (mips_unsigned_immediate_p): New prototype.
2281 (lwsp_swsp_address_p): New prototype.
2282 (m16_based_address_p): New prototype.
2283 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
2284 (mips_signed_immediate_p): New function.
2285 (m16_based_address_p): New function.
2286 (lwsp_swsp_address_p): New function.
2287 (mips_print_operand_punctuation): Recognize short delay slot insns
2288 for microMIPS.add<mode>3"
2289
f35c297f 22902013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 2291
f35c297f
KT
2292 PR target/56720
2293 * config/arm/iterators.md (v_cmp_result): New mode attribute.
2294 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
2295
051b9446
RB
22962013-03-25 Richard Biener <rguenther@suse.de>
2297
2298 PR tree-optimization/56689
2299 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
2300 any edge.
2301
374001cb
RB
23022013-03-25 Richard Biener <rguenther@suse.de>
2303
2304 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
2305 of bitmap.
2306 (memory_references): Likewise.
2307 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
2308 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
2309 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
2310 (gather_mem_refs_in_loops): Fold into ...
2311 (analyze_memory_references): ... this. Move initialization
2312 to tree_ssa_lim_initialize.
2313 (fill_always_executed_in): Rename to ...
2314 (fill_always_executed_in_1): ... this.
2315 (fill_always_executed_in): Move contains_call computation to
2316 this new function from ...
2317 (tree_ssa_lim_initialize): ... here.
2318 (tree_ssa_lim): Call fill_always_executed_in.
2319
57895947
EB
23202013-03-25 Eric Botcazou <ebotcazou@adacore.com>
2321
2322 * postreload.c (reload_combine): Fix code detecting returns.
2323
1e1b18c1
EB
23242013-03-25 Eric Botcazou <ebotcazou@adacore.com>
2325
2326 * function.c (emit_use_return_register_into_block): On cc0 targets,
2327 do not emit the sequence between cc0 setter and user.
2328
9216baf1
KT
23292013-03-25 Kai Tietz <ktietz@redhat.com>
2330
1e1b18c1
EB
2331 * config/i386/predicates.md (local_symbolic_operand): Interpret
2332 dll-imported symbols as none-local.
9216baf1 2333
76421b44
RB
23342013-03-25 Richard Biener <rguenther@suse.de>
2335
2336 * tree-ssa-loop-im.c (struct depend): Remove.
2337 (struct lim_aux_data): Make depends a vec of gimples.
2338 (free_lim_aux_data): Adjust.
2339 (add_dependency): Likewise.
2340 (set_level): Likewise.
2341
d154bfa2
RB
23422013-03-25 Richard Biener <rguenther@suse.de>
2343
2344 PR middle-end/56434
2345 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
2346 the pointer returned by calls with ECF_MALLOC set.
2347
2cd9804e
UB
23482013-03-24 Uros Bizjak <ubizjak@gmail.com>
2349
acef5fe0
UB
2350 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
2351
23522013-03-24 Uros Bizjak <ubizjak@gmail.com>
2353
2354 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
2355 using MMXMODE mode iterator.
2356 (*move<mode>_internal): Merge with *movv2sf_internal and
2357 *movv2sf_internal_rex64 using MMXMODE mode iterator.
2358
225ccc68
SB
23592013-03-23 Steven Bosscher <steven@gcc.gnu.org>
2360
85c0f02d
SB
2361 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
2362 (record_last_mem_set_info): Likewise.
2363
225ccc68
SB
2364 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
2365 of XNEWVEC followed by memset.
2366 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
2367
b64925dc
SB
23682013-03-23 Steven Bosscher <steven@gcc.gnu.org>
2369
2370 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
2371 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
2372 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
2373 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
2374 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
2375 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
2376 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
2377 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
2378 BARRIER_P instead of GET_CODE.
2379
b9aaf52e
EB
23802013-03-23 Eric Botcazou <ebotcazou@adacore.com>
2381
2382 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
2383 inaccuracy in the probing code.
2384
2385 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
2386 (ctrapdi4): Likewise.
2387
66de4d7c
EB
23882013-03-23 Eric Botcazou <ebotcazou@adacore.com>
2389
2390 * calls.c (expand_call): Add missing guard to code handling return
2391 of non-BLKmode structures in MSB.
2392 * function.c (expand_function_end): Likewise.
2393
4f25c8fb
EB
23942013-03-23 Eric Botcazou <ebotcazou@adacore.com>
2395
2396 * combine.c (try_combine): Adjust comment. Do not add the set of
2397 insn #0 if the destination indirectly is set or dies in insn #2.
2398 Tidy up code to distribute a new note.
2399
23b7850d
UB
24002013-03-22 Uros Bizjak <ubizjak@gmail.com>
2401
2402 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
2403 also for alternatives 16 and 17.
2404
bed852cf
UB
24052013-03-22 Uros Bizjak <ubizjak@gmail.com>
2406
2407 * config/i386/sse.md (*mov<mode>_internal): Merge with
2408 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
2409 Emit insn template depending on type attribute. Use
2410 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
2411 movd instead of movq mnemonic for interunit moves. Rewrite mode
2412 attribute calculation. Remove unit attribute calculation.
2413 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
2414 Set prefix_data16 attribute for DImode ssemov types.
2415 Use Ym instead of y for SSE-MMX conversion alternatives.
2416 Reorder operand constraints.
2417
1e8a7937
SB
24182013-03-22 Steven Bosscher <steven@gcc.gnu.org>
2419
2420 * df.h (df_insn_delete): Adjust prototype.
2421 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
2422 and let it decide whether mark the basic block dirty.
2423 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
2424 * df-scan.c (df_insn_info_delete): New helper function, split
2425 off from df_insn_delete.
2426 (df_scan_free_bb_info): Use it.
2427 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
2428 Likewise.
2429 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
2430 that the insn is actually an insn and it has a non-NULL basic block.
2431 Do not mark basic block dirty if only deleting a DEBUG_INSN.
2432
e14d094c
RB
24332013-03-22 Richard Biener <rguenther@suse.de>
2434
2435 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
2436 dep_ref members.
2437 (mem_ref_alloc): Do not allocate them.
2438 (refs_independent_p): Do not query or maintain a cache.
2439
e9cf7316
RB
24402013-03-22 Richard Biener <rguenther@suse.de>
2441
2442 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
2443 (gather_mem_refs_in_loops): Do not compute it.
2444 (analyze_memory_references): Do not allocate it.
2445 (tree_ssa_lim_finalize): Do not free it.
2446 (for_all_locs_in_loop): Do not query all_refs_in_loop.
2447
f046e81b
RB
24482013-03-22 Richard Biener <rguenther@suse.de>
2449
2450 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 2451
a05c0ddf
IB
24522013-03-22 Ian Bolton <ian.bolton@arm.com>
2453
2454 * config/aarch64/aarch64.c (aarch64_print_operand): New
2455 format specifier for printing a constant in hex.
2456 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
2457 format specifier for printing second operand.
2458
c00217fc
RB
24592013-03-22 Richard Biener <rguenther@suse.de>
2460
2461 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
2462 bitmaps.
2463 (gather_mem_refs_in_loops): Perform store accumulation here.
2464 (create_vop_ref_mapping_loop): Remove.
2465 (create_vop_ref_mapping): Likewise.
2466 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 2467 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
2468 (record_indep_loop): Remove.
2469 (record_dep_loop): New function.
2470 (ref_indep_loop_p_1): Adjust to only walk over references
2471 in the loop, not its subloops.
2472 (ref_indep_loop_p): Rename to ...
2473 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
2474 maintaining a more fine-grained cache.
2475 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
2476 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
2477
15d19bf8
RB
24782013-03-22 Richard Biener <rguenther@suse.de>
2479
2480 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
2481 (struct mem_ref): Make accesses_in_loop a vec of a vec of
2482 aggregate mem_ref_loc.
2483 (free_mem_ref_locs): Inline into ...
2484 (memref_free): ... this and adjust.
2485 (mem_ref_alloc): Adjust.
2486 (mem_ref_locs_alloc): Remove.
2487 (record_mem_ref_loc): Adjust.
2488 (get_all_locs_in_loop): Rewrite into ...
2489 (for_all_locs_in_loop): ... this iterator.
2490 (rewrite_mem_ref_loc): New functor.
2491 (rewrite_mem_refs): Use for_all_locs_in_loop.
2492 (sm_set_flag_if_changed): New functor.
2493 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
2494 (ref_always_accessed): New functor.
2495 (ref_always_accessed_p): Use for_all_locs_in_loop.
2496
6f37411d
MG
24972013-03-21 Marc Glisse <marc.glisse@inria.fr>
2498
2499 * tree-pass.h (PROP_gimple_lvec): New.
2500 * passes.c (dump_properties): Handle PROP_gimple_lvec.
2501 (init_optimization_passes): Move pass_lower_vector.
2502 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
2503 PROP_gimple_lvec.
2504 (pass_lower_vector): Provide PROP_gimple_lvec.
2505 (pass_lower_vector_ssa): Likewise.
2506 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
2507
511ef689
MW
25082013-03-21 Mark Wielaard <mjw@redhat.com>
2509
2510 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
2511
cc1df30b
UB
25122013-03-21 Uros Bizjak <ubizjak@gmail.com>
2513
2514 * config/i386/i386.md (*movdi_internal): Disparage slightly
2515 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
2516 conversion alternatives.
2517
c845cfe1
JJ
25182013-03-21 Jakub Jelinek <jakub@redhat.com>
2519
37e99116
JJ
2520 PR middle-end/48087
2521 * diagnostic.def (DK_WERROR): New kind.
2522 * diagnostic.h (werrorcount): Define.
2523 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
2524 promoted to DK_ERROR, increment DK_WERROR counter instead of
2525 DK_ERROR counter.
2526 * toplev.c (toplev_main): Call print_ignored_options even if
2527 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
2528 even if just werrorcount is non-zero.
2529
c845cfe1
JJ
2530 PR debug/55608
2531 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
2532 on failure.
2533 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
2534 (string_cst_pool_decl): New function.
2535 (optimize_one_addr_into_implicit_ptr): New function.
2536 (resolve_addr_in_expr): Optimize DWARF location expression
2537 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
2538 which doesn't live in memory, but has DW_AT_location or
2539 DW_AT_const_value, or refers to a string literal, into
2540 DW_OP_GNU_implicit_pointer.
2541 (optimize_location_into_implicit_ptr): New function.
2542 (resolve_addr): If removing DW_AT_location of a variable because
2543 it was DW_OP_addr of address of the variable, but the variable doesn't
2544 live in memory, try to emit const value attribute for the initializer.
2545
08e0cda6
MG
25462013-03-21 Marc Glisse <marc.glisse@inria.fr>
2547
2548 * tree.h (VECTOR_TYPE_P): New macro.
2549 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
2550 TYPE_MODE): Use it.
2551 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
2552 VEC_COND_EXPR cannot be lvalues.
2553 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
2554
d08633b4
MG
25552013-03-21 Marc Glisse <marc.glisse@inria.fr>
2556
2557 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
2558 Restrict the transformation to equal modes.
2559
e6647190
RB
25602013-03-21 Richard Biener <rguenther@suse.de>
2561
2562 PR tree-optimization/39326
2563 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
2564 (MEM_ANALYZABLE): Adjust.
2565 (record_mem_ref_loc): Move bitmap ops ...
2566 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
2567 unanalyzable refs, do not record locations for it.
2568 (analyze_memory_references): Allocate ref zero as shared
2569 unanalyzable ref.
2570 (refs_independent_p): Do not test for unanalyzed mems here.
2571 (ref_indep_loop_p_1): Special-case disambiguation against
2572 the unanalyzed ref.
cc1df30b 2573 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 2574
65074f54
CL
25752013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
2576
2577 * config/arm/arm-protos.h (tune_params): Add
2578 prefer_neon_for_64bits field.
2579 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
2580 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
2581 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
2582 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
2583 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
2584 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
2585 (arm_option_override): Handle -mneon-for-64bits new option.
2586 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
2587 (prefer_neon_for_64bits): Declare new variable.
2588 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 2589 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
2590 (arch_enabled): Handle new arch types. Remove support for onlya8
2591 and nota8.
2592 (one_cmpldi2): Use new arch names.
bc5faa5b 2593 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
2594 * config/arm/arm.opt (mneon-for-64bits): Add option.
2595 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
2596 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
2597 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
2598 of onlya8.
2599 * doc/invoke.texi (-mneon-for-64bits): Document.
2600
5a2d2a79
RB
26012013-03-21 Richard Biener <rguenther@suse.de>
2602
2603 PR tree-optimization/39326
2604 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
2605 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 2606 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 2607
5abe1e05
RB
26082013-03-21 Richard Biener <rguenther@suse.de>
2609
2610 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
2611 (vect_insert_into_interleaving_chain): Likewise.
2612 (vect_drs_dependent_in_basic_block): Inline ...
2613 (vect_slp_analyze_data_ref_dependence): ... here. New function,
2614 split out from ...
2615 (vect_analyze_data_ref_dependence): ... here. Simplify.
2616 (vect_check_interleaving): Simplify.
2617 (vect_analyze_data_ref_dependences): Likewise. Split out ...
2618 (vect_slp_analyze_data_ref_dependences): ... this new function.
2619 (dr_group_sort_cmp): New function.
2620 (vect_analyze_data_ref_accesses): Compute data-reference groups
2621 here instead of in vect_analyze_data_ref_dependence. Use
2622 a more efficient algorithm.
2623 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
2624 vect_slp_analyze_data_ref_dependences. Call
2625 vect_analyze_data_ref_accesses earlier.
2626 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
2627 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
2628 (vect_slp_analyze_data_ref_dependences): New prototype.
2629
cad1735b
RB
26302013-03-21 Richard Biener <rguenther@suse.de>
2631
2632 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
2633 ref is stored in the loop.
2634 (find_refs_for_sm): Walk only over all stores.
2635 (store_motion_loop): Allocate from lim_bitmap_obstack.
2636 (store_motion): Likewise.
2637
141310ef
RB
26382013-03-21 Richard Biener <rguenther@suse.de>
2639
2640 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
2641 Update virtual SSA form.
2642
5022315a
RO
26432013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2644
2645 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
2646 * configure: Regenerate.
2647 * config.in: Regenerate.
2648 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
2649 if !HAVE_LD_EH_FRAME_CIEV3.
2650
50d4421c
RB
26512013-03-21 Richard Biener <rguenther@suse.de>
2652
2653 * tree-cfg.c (verify_expr_no_block): New function.
2654 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
2655 nor DECL_VALUE_EXPR have locations with associated blocks.
2656 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
2657 (clear_unused_block_pointer): Remove code dealing with
2658 blocks in DECL_DEBUG_EXPR locations.
2659
839b422f
RB
26602013-03-21 Richard Biener <rguenther@suse.de>
2661
2662 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
2663 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
2664 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
2665 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
2666 instead of DECL_DEBUG_EXPR_IS_FROM.
2667 * gimplify.c (gimplify_modify_expr): Likewise.
2668 * tree-cfg.c (verify_expr_location_1): Likewise.
2669 * tree-complex.c (create_one_component_var): Likewise.
2670 * tree-sra.c (create_access_replacement): Likewise.
2671 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
2672 (clear_unused_block_pointer): Likewise.
2673 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
2674 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
2675 * var-tracking.c (var_debug_decl): Likewise.
2676 (track_expr_p): Likewise.
2677 * tree-inline.c (add_local_variables): Likewise. Set
2678 DECL_HAS_DEBUG_EXPR_P after copying it.
2679 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
2680 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
2681
fe04878d
UB
26822013-03-21 Uros Bizjak <ubizjak@gmail.com>
2683
2684 PR bootstrap/56656
2685 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
2686 * configure: Regenerate.
2687 * config.in: Regenerate.
2688 * config/i386/i386.md (*movdf_internal): Use
2689 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
2690 movd instead of movq mnemonic for interunit moves.
2691 (*movdi_internal): Ditto.
2692
bd059b26 26932013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
2694
2695 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
2696 (abd<mode>_3): New pattern.
2697 (aba<mode>_3): New pattern.
2698 (fabd<mode>_3): New pattern.
2699
bd059b26 27002013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
2701
2702 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
2703 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
2704 occurrence of REGISTER_PREFIX as its empty string.
2705
4f1f78b9
JL
27062013-03-20 Jeff Law <law@redhat.com>
2707
2708 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
2709 addititional equivalences for equality comparisons between an SSA_NAME
2710 and a constant where the SSA_NAME was set from a widening conversion.
2711
327a1118
WL
27122013-03-20 Walter Lee <walt@tilera.com>
2713
2714 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
2715
813e0036
UB
27162013-03-20 Uros Bizjak <ubizjak@gmail.com>
2717
2718 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
2719 depending on type attribute.
2720 (*movti_internal): Ditto.
2721 (*movtf_internal): Ditto.
2722 (*movxf_internal): Ditto.
2723 (*movdf_internal): Ditto.
2724 (*movsf_internal): Ditto.
2725
7cf34aae
UB
27262013-03-20 Uros Bizjak <ubizjak@gmail.com>
2727
2728 * config/i386/i386.md (*movti_internal): Set prefix attribute to
2729 maybe_vex for sselog1 and ssemov types.
2730 (*movdi_internal): Reorder operand constraints.
2731 (*movsi_internal): Ditto. Set prefix attribute to
2732 maybe_vex for sselog1 and ssemov types.
2733 (*movtf_internal): Set prefix attribute to maybe_vex
2734 for sselog1 and ssemov types.
2735 (*movdf_internal): Ditto. Set prefix_data16 attribute for
2736 DImode ssemov types. Reorder operand constraints.
2737 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
2738 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
2739 attribute for SImode ssemov types. Reorder operand constraints.
2740
19321415
MJ
27412013-03-20 Martin Jambor <mjambor@suse.cz>
2742
2743 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
2744 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
2745
c6d5ff83
MM
27462013-03-20 Pat Haugen <pthaugen@us.ibm.com>
2747
2748 * config/rs6000/predicates.md (indexed_address, update_address_mem
2749 update_indexed_address_mem): New predicates.
2750 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
2751 attribute for load/store instructions.
2752 * config/rs6000/dfp.md (movsd_store): Likewise.
2753 (movsd_load): Likewise.
2754 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
2755 (unnamed HI->DI extend define_insn): Likewise.
2756 (unnamed SI->DI extend define_insn): Likewise.
2757 (unnamed QI->SI extend define_insn): Likewise.
2758 (unnamed QI->HI extend define_insn): Likewise.
2759 (unnamed HI->SI extend define_insn): Likewise.
2760 (unnamed HI->SI extend define_insn): Likewise.
2761 (extendsfdf2_fpr): Likewise.
2762 (movsi_internal1): Likewise.
2763 (movsi_internal1_single): Likewise.
2764 (movhi_internal): Likewise.
2765 (movqi_internal): Likewise.
2766 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
2767 attribute for load/store instructions.
2768 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
2769 instructions.
2770 (mov<mode>_softfloat): Likewise.
2771 (mov<mode>_hardfloat32): Likewise.
2772 (mov<mode>_hardfloat64): Likewise.
2773 (mov<mode>_softfloat64): Likewise.
2774 (movdi_internal32): Likewise.
2775 (movdi_internal64): Likewise.
2776 (probe_stack_<mode>): Likewise.
2777
27782013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
2779
2780 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
2781 floating point, and decimal floating point to reload iterator.
2782
2783 * config/rs6000/constraints.md (wl constraint): New constraints to
2784 return FLOAT_REGS if certain options are used to reduce the number
2785 of separate patterns that exist in the file.
2786 (wx constraint): Likewise.
2787 (wz constraint): Likewise.
2788
2789 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
2790 -mdebug=reg, print wg, wl, wx, and wz constraints.
2791 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
2792 Initialize the reload functions for 64-bit binary/decimal floating
2793 point types.
2794 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
2795 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
2796 create the buffer on the stack to overcome not having a 32-bit
2797 load and store.
2798 (rs6000_emit_move): Likewise.
2799 (rs6000_secondary_memory_needed_rtx): Likewise.
2800 (rs6000_alloc_sdmode_stack_slot): Likewise.
2801 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
2802 via xxlxor, just like DFmode 0.0.
2803
2804 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
2805 define as 1 if we are running on a power7 or newer.
2806 (enum r6000_reg_class_enum): Add new constraints.
2807
2808 * config/rs6000/dfp.md (movsd): Delete, combine with binary
2809 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
2810 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 2811 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
2812 (movsd splitter): Likewise.
2813 (movsd_hardfloat): Likewise.
2814 (movsd_softfloat): Likewise.
2815
2816 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
2817 binary and decimal floating point moves.
2818 (fmove_ok): New attributes to combine binary and decimal floating
2819 point moves, and to combine power6x (mfpgpr) moves along normal
2820 floating moves.
2821 (real_value_to_target): Likewise.
2822 (f32_lr): Likewise.
2823 (f32_lm): Likewise.
2824 (f32_li): Likewise.
2825 (f32_sr): Likewise.
2826 (f32_sm): Likewise.
2827 (f32_si): Likewise.
2828 (movsf): Combine binary and decimal floating point moves. Combine
2829 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 2830 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
2831 (mov<mode> for SFmode/SDmode); Likewise.
2832 (SFmode/SDmode splitters): Likewise.
2833 (movsf_hardfloat): Likewise.
2834 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
2835 (movsf_softfloat): Likewise.
2836 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
2837
2838 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
2839 wx and wz constraints.
2840
2841 * config/rs6000/constraints.md (wg constraint): New constraint to
2842 return FLOAT_REGS if -mmfpgpr (power6x) was used.
2843
2844 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
2845 constraint.
2846
2847 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
2848 -mdebug=reg, print wg, wl, wx, and wz constraints.
2849 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
2850 Initialize the reload functions for 64-bit binary/decimal floating
2851 point types.
2852 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
2853 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
2854 create the buffer on the stack to overcome not having a 32-bit
2855 load and store.
2856 (rs6000_emit_move): Likewise.
2857 (rs6000_secondary_memory_needed_rtx): Likewise.
2858 (rs6000_alloc_sdmode_stack_slot): Likewise.
2859 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
2860 via xxlxor, just like DFmode 0.0.
2861
c6d5ff83
MM
2862 * config/rs6000/dfp.md (movdd): Delete, combine with binary
2863 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
2864 with other moves by using conditional constraits (wg). Use LFIWZX
2865 and STFIWX for loading SDmode on power7.
2866 (movdd splitters): Likewise.
2867 (movdd_hardfloat32): Likewise.
2868 (movdd_softfloat32): Likewise.
2869 (movdd_hardfloat64_mfpgpr): Likewise.
2870 (movdd_hardfloat64): Likewise.
2871 (movdd_softfloat64): Likewise.
2872
2873 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
2874 64-bit binary and decimal floating point moves.
2875 (FMOVE64X): Likewise.
2876 (movdf): Combine 64-bit binary and decimal floating point moves.
2877 Combine power6x (mfpgpr) moves with other moves by using
2878 conditional constraits (wg).
2879 (mov<mode> for DFmode/DDmode): Likewise.
2880 (DFmode/DDmode splitters): Likewise.
2881 (movdf_hardfloat32): Likewise.
2882 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
2883 (movdf_softfloat32): Likewise.
2884 (movdf_hardfloat64_mfpgpr): Likewise.
2885 (movdf_hardfloat64): Likewise.
2886 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
2887 (movdf_softfloat64): Likewise.
2888 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
2889 (reload_<mode>_load): Move to later in the file so they aren't in
2890 the middle of the floating point move insns.
2891 (reload_<mode>_store): Likewise.
2892
2893 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
2894 constraint.
2895
2896 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
2897 constraint if -mdebug=reg.
bd059b26
UB
2898 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
2899 Enable using dd reload support if needed.
c6d5ff83
MM
2900
2901 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
2902 binary and decimal floating point moves in rs6000.md.
2903 (movtd_internal): Likewise.
2904
2905 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
2906 decimal floating point moves.
2907 (movtf): Likewise.
2908 (movtf_internal): Likewise.
2909 (mov<mode>_internal, TDmode/TFmode): Likewise.
2910 (movtf_softfloat): Likewise.
2911 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
2912
2913 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
2914 movdi_internal64, using wg constraint for move direct operations.
2915 (movdi_internal64): Likewise.
2916
2917 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
2918 MODES_TIEABLE_P for selected modes. Print the numerical value of
2919 the various virtual registers. Use GPR/FPR first/last values,
2920 instead of hard coding the register numbers. Print which modes
2921 have reload functions registered.
bd059b26
UB
2922 (rs6000_option_override_internal): If -mdebug=reg, trace the options
2923 settings before/after setting cpu, target and subtarget settings.
2924 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
2925 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
2926 (rs6000_secondary_reload_fail): Likewise.
2927 (rs6000_secondary_reload_inner): Likewise.
2928
2929 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
2930 macros for first/last GPR and FPR registers.
2931 (LAST_GPR_REGNO): Likewise.
2932 (FIRST_FPR_REGNO): Likewise.
2933 (LAST_FPR_REGNO): Likewise.
2934
2935 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
2936 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
2937 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
2938 (vcond<mode><mode>): Likewise.
2939 (vcondu<mode><mode>): Likewise.
2940 (vector_gtu<mode>): Likewise.
2941 (vector_gte<mode>): Likewise.
2942 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 2943 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
2944 (ior<mode>3): Likewise.
2945 (and<mode>3): Likewise.
2946 (one_cmpl<mode>2): Likewise.
2947 (nor<mode>3): Likewise.
2948 (andc<mode>3): Likewise.
2949
2950 * config/rs6000/constraints.md (wt constraint): New constraint
2951 that returns VSX_REGS if TImode is allowed in VSX registers.
2952
2953 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
2954 constant under VSX.
2955
2956 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
2957 similar to TImode, but it is restricted to being in the GPRs.
2958
2959 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
2960 TImode to occupy a single VSX register.
2961
2962 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
2963 -mvsx-timode for power7/power8.
2964 (power7 cpu): Likewise.
2965 (power8 cpu): Likewise.
2966
2967 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
2968 sure that TFmode/TDmode take up two registers if they are ever
2969 allowed in the upper VSX registers.
2970 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
2971 registers.
2972 (rs6000_init_hard_regno_mode_ok): Likewise.
2973 (rs6000_debug_reg_global): Add debugging for PTImode and wt
2974 constraint. Print if LRA is turned on.
2975 (rs6000_option_override_internal): Give an error if -mvsx-timode
2976 and VSX is not enabled.
2977 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
2978 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
2979 to reg+offset addressing. Use PTImode when checking offset
2980 addresses for validity.
2981 (reg_offset_addressing_ok_p): Likewise.
2982 (rs6000_legitimate_offset_address_p): Likewise.
2983 (rs6000_legitimize_address): Likewise.
2984 (rs6000_legitimize_reload_address): Likewise.
2985 (rs6000_legitimate_address_p): Likewise.
2986 (rs6000_eliminate_indexed_memrefs): Likewise.
2987 (rs6000_emit_move): Likewise.
2988 (rs6000_secondary_reload): Likewise.
2989 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
2990 reloads to fpr registers to continue to use reg+offset addressing,
2991 but 64-bit reloads to altivec registers need reg+reg addressing.
2992 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
2993 it. Treat LO_SUM like a PLUS operation.
2994 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 2995 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
2996 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
2997 registers to share a register with a smaller sized type, since VSX
2998 puts scalars in the upper 64-bits.
2999 (print_operand): Add support for PTImode.
3000 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
3001 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
3002 registers, but don't have arithmetic support.
3003 (rs6000_memory_move_cost): Add test for VSX.
3004 (rs6000_opt_masks): Add -mvsx-timode.
3005
3006 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
3007 for TImode.
3008 (VSs): Likewise.
3009 (VSr): Use wt constraint for TImode.
3010 (VSv): Drop TImode support.
3011 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
3012 (vsx_movti_64bit): Likewise.
3013 (vsx_movti_32bit): Likewise.
3014 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
3015 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
3016 one '?' on the appropriate output constraint. Do not allow TImode
3017 logical operations on 32-bit systems.
3018 (vsx_ior<mode>3): Likewise.
3019 (vsx_xor<mode>3): Likewise.
3020 (vsx_one_cmpl<mode>2): Likewise.
3021 (vsx_nor<mode>3): Likewise.
3022 (vsx_andc<mode>3): Likewise.
3023 (vsx_concat_<mode>): Likewise.
3024 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
3025
3026 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
3027 OPTION_MASK_VSX_TIMODE.
3028 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
3029 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
3030
3031 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
3032 (TI2 iterator): New iterator for TImode, PTImode.
3033 (wd mode attribute): Add values for vector types.
bd059b26
UB
3034 (movti_string): Replace TI move operations with operations for TImode
3035 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
3036 (mov<mode>_string, TImode/PTImode): Likewise.
3037 (movti_ppc64): Likewise.
3038 (mov<mode>_ppc64, TImode/PTImode): Likewise.
3039 (TI mode splitters): Likewise.
3040
3041 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
3042 constraint.
3043
1fc5eced
MG
30442013-03-20 Marc Glisse <marc.glisse@inria.fr>
3045
3046 PR tree-optimization/56355
3047 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
3048 Also handle integers with undefined overflow.
3049
22c4c869
CM
30502013-03-20 Catherine Moore <clm@codesourcery.com>
3051 Maciej W. Rozycki <macro@codesourcery.com>
3052 Tom de Vries <tom@codesourcery.com>
3053 Nathan Sidwell <nathan@codesourcery.com>
3054 Iain Sandoe <iain@codesourcery.com>
3055 Nathan Froyd <froydnj@codesourcery.com>
3056 Chao-ying Fu <fu@mips.com>
3057
3058 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 3059 Document new function attributes.
22c4c869
CM
3060 * doc/invoke.texi (minterlink-compressed, mmicromips,
3061 m14k, m14ke, m14kec): Document new options.
3062 (minterlink-mips16): Update documentation.
3063 * doc/md.texi (ZC, ZD): Document new constraints.
3064 * configure.ac (gcc_cv_as_micromips): Check if linker
3065 supports the .set micromips directive.
3066 * configure: Regenerate.
3067 * config.in: Regenerate.
3068 * config/mips/mips-tables.opt: Regenerate.
3069 * config/mips/micromips.md: New file.
3070 * constraints.md (ZC, ZD): New constraints.
3071 * config/mips/predicates.md (movep_src_register): New predicate.
3072 (movep_src_operand): New predicate.
3073 (non_volatile_mem_operand): New predicate.
3074 * config/mips/mips.md (multimem): New type.
3075 (length): Differentiate between 17-bit and 18-bit branch offsets.
3076 (MOVEP1, MOVEP2): New mode iterator.
33159866 3077 (mov_<load>l): Use ZC constraint.
22c4c869
CM
3078 (mov_<load>r): Likewise.
3079 (mov_<store>l): Likewise.
3080 (mov_<store>r): Likewise.
3081 (*branch_equality<mode>_inverted): Add microMIPS support.
3082 (*branch_equality<mode>): Likewise.
3083 (*jump_absolute): Likewise.
3084 (indirect_jump_<mode>): Likewise.
3085 (tablejump_<mode>): Likewise.
3086 (<optab>_internal): Likewise.
3087 (sibcall_internal): Likewise.
3088 (sibcall_value_internal): Likewise.
3089 (prefetch): Use constraint ZD.
3090 * config/mips/mips.opt (minterlink-compressed): New option.
3091 (minterlink-mips16): Now an alias for minterlink-compressed.
3092 (mmicromips): New option.
3093 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
3094 (compare_and_swap_12): Likewise.
3095 (sync_add<mode>): Likewise.
3096 (sync_<optab>_12): Likewise.
3097 (sync_old_<optab>_12): Likewise.
3098 (sync_new_<optab>_12): Likewise.
3099 (sync_nand_12): Likewise.
3100 (sync_old_nand_12): Likewise.
3101 (sync_new_nand_12): Likewise.
3102 (sync_sub<mode>): Likewise.
3103 (sync_old_add<mode>): Likewise.
3104 (sync_old_sub<mode>): Likewise.
3105 (sync_new_add<mode>): Likewise.
3106 (sync_new_sub<mode>): Likewise.
3107 (sync_<optab><mode>): Likewise.
3108 (sync_old_<optab><mode>): Likewise.
3109 (sync_new_<optab><mode>): Likewise.
3110 (sync_nand<mode>): Likewise.
3111 (sync_old_nand<mode>): Likewise.
3112 (sync_new_nand<mode>): Likewise.
3113 (sync_lock_test_and_set<mode>): Likewise.
3114 (test_and_set_12): Likewise.
3115 (atomic_compare_and_swap<mode>): Likewise.
3116 (atomic_exchange<mode>_llsc): Likewise.
3117 (atomic_fetch_add<mode>_llsc): Likewise.
3118 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
3119 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
3120 (umips_save_restore_pattern_p): Likewise.
3121 (umips_load_store_pair_p): Likewise.
3122 (umips_output_load_store_pair): Likewise.
3123 (umips_movep_target_p): Likewise.
3124 (umips_12bit_offset_address_p): Likewise.
3125 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
3126 (mips_base_mips16): Rename this...
3127 (mips_base_compression_flags): ...to this. Update all uses.
3128 (mips_attribute_table): Add micromips, nomicromips and nocompression.
3129 (mips_mips16_decl_p): Delete.
3130 (mips_nomips16_decl_p): Delete.
33159866 3131 (mips_get_compress_on_flags): New function.
22c4c869
CM
3132 (mips_get_compress_off_flags): New function.
3133 (mips_get_compress_mode): New function.
3134 (mips_get_compress_on_name): New function.
3135 (mips_get_compress_off_name): New function.
3136 (mips_insert_attributes): Support multiple compression types.
3137 (mips_merge_decl_attributes): Likewise.
3138 (umips_12bit_offset_address_p): New function.
3139 (mips_start_function_definition): Emit .set micromips directive.
3140 (mips_call_may_need_jalx_p): New function.
3141 (mips_function_ok_for_sibcall): Add microMIPS support.
3142 (mips_print_operand_punctuation): Support short delay slots and
3143 compact jumps.
3144 (umips_swm_mask, umips_swm_encoding): New.
3145 (umips_build_save_restore): New function.
3146 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
3147 (was_mips16_p): Remove.
3148 (old_compression_mode): New.
3149 (mips_set_compression_mode): New function.
3150 (mips_set_current_function): Add microMIPS support.
3151 (mips_option_override): Likewise.
3152 (umips_save_restore_pattern_p): New function.
3153 (umips_output_save_restore): New function.
3154 (umips_load_store_pair_p_1): New function.
3155 (umips_load_store_pair_p): New function.
3156 (umips_output_load_store_pair_1): New function.
3157 (umips_output_load_store_pair): New function.
3158 (umips_movep_target_p) New function.
3159 (mips_prepare_pch_save): Add microMIPS support.
3160 * config/mips/mips.h (TARGET_COMPRESSION): New.
3161 (TARGET_CPU_CPP_BUILTINS): Update macro
3162 to use new compression flags and to support microMIPS.
3163 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
3164 (MIPS_ARCH_FLOAT_SPEC): Likewise.
3165 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
3166 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
3167 (ASM_SPEC): Support mmicromips and mno-micromips.
3168 (M16STORE_REG_P): New macro.
3169 (MIPS_CALL): Support TARGET_MICROMIPS.
3170 (MICROMIPS_J): New macro.
3171 (mips_base_mips16): Rename this...
3172 (mips_base_compression_flags): ...to this.
3173 (UMIPS_12BIT_OFFSET_P): New macro.
3174 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
3175 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
31762013-03-20 Richard Biener <rguenther@suse.de>
3177
3178 PR tree-optimization/56661
3179 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
3180 the result does not have to be distinct.
3181
54714c68
RB
31822013-03-20 Richard Biener <rguenther@suse.de>
3183
3184 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
3185 remap_gimple_op_r.
3186
cca1130d
BS
31872013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3188 Steven Bosscher <steven@gcc.gnu.org>
3189
3190 PR rtl-optimization/56605
3191 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
3192
2a930377
UB
31932013-03-20 Uros Bizjak <ubizjak@gmail.com>
3194
3195 PR bootstrap/56656
3196 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
3197 that require movd instead of movq.
3198
d6d305fe
RB
31992013-03-20 Richard Biener <rguenther@suse.de>
3200
3201 * tree-ssa-structalias.c (struct variable_info): Add pointer
3202 to the first field of an aggregate with sub-vars. Make
3203 this and the pointer to the next subfield its ID.
3204 (vi_next): New function.
3205 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
3206 storedanything_id, integer_id): Increment by one.
3207 (new_var_info, get_call_vi, lookup_call_clobber_vi,
3208 get_call_clobber_vi): Adjust.
3209 (solution_set_expand): Simplify and speedup.
3210 (solution_set_add): Inline into ...
3211 (set_union_with_increment): ... this. Adjust accordingly.
3212 (do_sd_constraint): Likewise.
3213 (do_ds_constraint): Likewise.
3214 (do_complex_constraint): Simplify.
3215 (build_pred_graph): Adjust.
3216 (solve_graph): Likewise. Simplify and speedup.
3217 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
3218 get_constraint_for_component_ref, get_constraint_for_1,
3219 first_vi_for_offset, first_or_preceding_vi_for_offset,
3220 create_function_info_for, create_variable_info_for_1,
3221 create_variable_info_for, intra_create_variable_infos): Adjust.
3222 (init_base_vars): Push NULL for ID zero.
3223 (compute_points_to_sets): Adjust.
3224
a271b42d
RB
32252013-03-20 Richard Biener <rguenther@suse.de>
3226
3227 * cfgloop.c (verify_loop_structure): Streamline and avoid
3228 ICEing on corrupt loop tree.
3229 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
3230 loop tree.
3231
ebd65954
RB
32322013-03-20 Richard Biener <rguenther@suse.de>
3233
3234 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
3235 check whether an SSA update is needed.
3236
4547b7ee
RS
32372013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
3238
3239 * config/mips/constraints.md (T): Rename to...
3240 (Yf): ...this.
3241 (U): Rename to...
3242 (Yd): ...this.
3243 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
3244 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
3245
0b8cdc58
IB
32462013-03-19 Ian Bolton <ian.bolton@arm.com>
3247
3248 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
3249 (*subsi3_carryin_uxtw): Likewise.
3250
5977a10d
IB
32512013-03-19 Ian Bolton <ian.bolton@arm.com>
3252
3253 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
3254 (*rorsi3_insn_uxtw): Likewise.
3255
bd83ff2c
IB
32562013-03-19 Ian Bolton <ian.bolton@arm.com>
3257
3258 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
3259 (*extrsi5_insn_uxtw): Likewise.
3260
ba65123c
RB
32612013-03-19 Richard Biener <rguenther@suse.de>
3262
3263 PR tree-optimization/56273
3264 * passes.c (init_optimization_passes): Move second VRP after DOM.
3265
2eac0476
UB
32662013-03-19 Uros Bizjak <ubizjak@gmail.com>
3267
3268 * config/i386/i386.md (*movti_internal): Merge from
3269 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
3270 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
3271 nox64 isa attributes.
3272
6e55eda7
RB
32732013-03-18 Richard Biener <rguenther@suse.de>
3274
3275 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
3276 (unite): Likewise.
3277 (merge_node_constraints): Likewise.
3278 (build_succ_graph): Likewise.
3279 (valid_graph_edge): Inline into single caller.
3280 (unify_nodes): Likewise. Use bitmap_set_bit return value
3281 and cache varinfo.
3282 (scc_visit): Fix formatting and variable use.
3283 (do_sd_constraint): Use gcc_checking_assert.
3284 (do_ds_constraint): Likewise.
3285 (do_complex_constraint): Likewise.
3286 (condense_visit): Likewise. Cleanup.
3287 (dump_pred_graph): New function.
3288 (perform_var_substitution): Dump the pred-graph before
3289 variable substitution.
3290 (find_equivalent_node): Use gcc_checking_assert.
3291 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
3292
4bdd44c4
RB
32932013-03-18 Richard Biener <rguenther@suse.de>
3294
3295 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
3296 Remove cond_expr_stmt_list argument and do not gimplify the
3297 built expression.
3298 (vect_loop_versioning): Adjust.
3299 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
3300 Cleanup to use less temporaries.
3301 (vect_create_data_ref_ptr): Cleanup.
3302
38c56a5b
JJ
33032013-03-18 Jakub Jelinek <jakub@redhat.com>
3304
3305 PR tree-optimization/56635
3306 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
3307 require types_compatible_p types.
3308
20b2e6a0
NC
33092013-03-18 Nick Clifton <nickc@redhat.com>
3310
a6178a25
NC
3311 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
3312 spurious backslash.
3313
20b2e6a0
NC
3314 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
3315 Add missing line to comment describing function.
3316
92608d0e
RB
33172013-03-18 Richard Biener <rguenther@suse.de>
3318
3319 PR tree-optimization/56210
3320 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3321 Handle string / character search functions.
3322 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
3323
31348d52
RB
33242013-03-18 Richard Biener <rguenther@suse.de>
3325
3326 PR middle-end/56483
3327 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
3328 and implement properly.
3329 * gimple.h (gimple_cond_single_var_p): Remove.
3330
fcac74a1
RB
33312013-03-18 Richard Biener <rguenther@suse.de>
3332
3333 * tree-data-ref.h (find_data_references_in_loop): Declare.
3334 * tree-data-ref.c (get_references_in_stmt): Use a stack
3335 vector pre-allocated in the callers.
3336 (find_data_references_in_stmt): Adjust.
3337 (graphite_find_data_references_in_stmt): Likewise.
3338 (create_rdg_vertices): Likewise.
3339 (find_data_references_in_loop): Export.
3340 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
3341 Compute dependences here...
3342 (vect_analyze_data_refs): ...not here. When we encounter
3343 a non-vectorizable data reference in basic-block vectorization
3344 truncate the data reference vector. Do not bother to
3345 fixup data-dependence information for gather loads.
3346 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
3347 of data references, as reported.
3348
0d5a1b56
RB
33492013-03-18 Richard Biener <rguenther@suse.de>
3350
3351 PR tree-optimization/3713
3352 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
3353 has_constants and expr.
3354 (stmt_has_constants): Properly valueize SSA names when deciding
3355 whether the stmt has constants.
3356
789c34e3
RB
33572013-03-18 Richard Biener <rguenther@suse.de>
3358
3359 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
3360 whole function when there is nothing to do.
3361 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
3362 * tree-vectorizer.c (vectorize_loops): Update virtual and
3363 loop-closed SSA once.
3364 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
3365
076b4605
RB
33662013-03-18 Richard Biener <rguenther@suse.de>
3367
3368 PR middle-end/56113
3369 * domwalk.c (bb_postorder): New global static.
3370 (cmp_bb_postorder): New function.
3371 (walk_dominator_tree): Replace scheme imposing an order for
3372 visiting dominator sons by one sorting them at the time they
3373 are pushed on the stack.
3374
bdb01696
RB
33752013-03-18 Richard Biener <rguenther@suse.de>
3376
3377 PR tree-optimization/39326
3378 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
3379 (struct mem_ref): Replace mem member with ao_ref typed member.
3380 (MEM_ANALYZABLE): Adjust.
3381 (memref_eq): Likewise.
3382 (mem_ref_alloc): Likewise.
3383 (gather_mem_refs_stmt): Likewise.
3384 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
3385 (execute_sm_if_changed_flag_set): Adjust.
3386 (execute_sm): Likewise.
3387 (ref_always_accessed_p): Likewise.
3388 (refs_independent_p): Likewise.
3389 (can_sm_ref_p): Likewise.
3390
12d2dc5e
JJ
33912013-03-18 Jakub Jelinek <jakub@redhat.com>
3392
3393 PR c/56566
3394 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
3395 return 1 even for !unsignedp.
3396
286fb677
UB
33972013-03-17 Uros Bizjak <ubizjak@gmail.com>
3398
3399 * config/i386/i386.md (isa): Add x64 and nox64.
3400 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
3401 (*pushtf): Enable *roF alternative for x64 isa only.
3402 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
3403 mode attribute of integer alternatives to DImode for TARGET_64BIT.
3404 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
3405 (*movtf_internal): Merge from *movtf_internal_rex64 and
3406 *movtf_internal_sse. Use x64 and nox64 isa attributes.
3407 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
3408 nox64 isa attributes.
3409 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
3410 nox64 isa attributes.
3411 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
3412
88b97037
UB
34132013-03-17 Uros Bizjak <ubizjak@gmail.com>
3414
3415 * config/alpha/alpha.c (TARGET_LRA_P): New define.
3416
9f4f1735
JJ
34172013-03-17 Jakub Jelinek <jakub@redhat.com>
3418
3419 PR target/56640
3420 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
3421 class names. Remove trailing comma after "ALL_REGS".
3422
48f4a6fa
JH
34232013-03-16 Jan Hubicka <jh@suse.cz>
3424
3425 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
3426 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
3427 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
3428 of cgraph_get_create_node.
3429 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
3430
98e81123
JM
34312013-03-16 Jason Merrill <jason@redhat.com>
3432
3433 PR debug/49090
3434 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
3435 with DW_AT_default_value.
3436
8a298c04
JJ
34372013-03-16 Jakub Jelinek <jakub@redhat.com>
3438
3439 * BASE-VER: Set to 4.9.0.
3440
4323afa0
AK
34412013-03-14 Andi Kleen <ak@linux.intel.com>
3442
3443 PR target/56619
3444 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
3445 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
3446 Document _x* TSX intrinsics.
3447
b3c0d469
JJ
34482013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
3449 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
3450
3451 * configure.ac: Add MicroBlaze TLS support detection.
3452 * configure: Regenerate.
88b97037
UB
3453 * config/microblaze/microblaze-protos.h
3454 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
3455 symbol_mentioned_p, label_mentioned_p): Add prototypes.
3456 * config/microblaze/microblaze.c (microblaze_address_type): Add
3457 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
3458 (microblaze_address_info): Add tls_reloc.
3459 (TARGET_HAVE_TLS): Define.
3460 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
3461 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
3462 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
3463 load_tls_operand, microblaze_call_tls_get_addr,
3464 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
3465 (microblaze_classify_unspec): Handle UNSPEC_TLS.
3466 (get_base_reg): Use microblaze_tls_symbol_p.
3467 (microblaze_classify_address): Handle TLS.
88b97037
UB
3468 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
3469 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
3470 (microblaze_legitimize_address): Handle TLS.
3471 (microblaze_address_insns): Handle ADDRESS_TLS.
3472 (pic_address_needs_scratch): Handle TLS.
3473 (print_operand_address): Handle TLS.
3474 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
3475 (microblaze_expand_move): Handle TLS.
88b97037
UB
3476 (microblaze_legitimate_constant_p): Check
3477 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
3478 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
3479 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
3480 (PIC_OFFSET_TABLE_REGNUM): Set.
3481 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
3482 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
3483 (addsi3, movsi_internal2, movdf_internal): Update constraints
3484 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
3485 (move_operand): Redefine as move_src_operand,
3486 check microblaze_tls_referenced_p.
8cc9a5a5 3487
d803a491
IB
34882013-03-14 Ian Bolton <ian.bolton@arm.com>
3489
3490 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
3491 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
3492
a8504f22
IB
34932013-03-14 Ian Bolton <ian.bolton@arm.com>
3494
3495 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
3496 CC mode for AND.
3497
df2dfaea
JJ
34982013-03-14 Jakub Jelinek <jakub@redhat.com>
3499
fbd28bc3
JJ
3500 PR tree-optimization/53265
3501 * common.opt (Waggressive-loop-optimizations): New option.
3502 * tree-ssa-loop-niter.c: Include tree-pass.h.
3503 (do_warn_aggressive_loop_optimizations): New function.
3504 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
3505 if number_of_latch_executions returned constant.
3506 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
3507 early. If number_of_latch_executions returned constant, set
3508 nb_iterations_upper_bound back to it.
3509 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
3510 field.
3511 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
3512 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
3513
df2dfaea
JJ
3514 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
3515 (MULTILIB_OSDIRNAMES): Set.
3516 * genmultilib: If defaultosdirname doesn't start with :: , set
3517 defaultosdirname2 instead, clear it and emit two . multilib_raw
3518 entries instead of just one.
3519
ee0d2b68
KK
35202013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
3521
3522 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
3523 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
3524 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
3525 (SUBTARGET_OVERRIDE_OPTIONS): New.
3526
decc676e
OE
35272013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
3528
3529 PR target/49880
3530 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
3531 (musermode): Convert to Var(TARGET_USERMODE).
3532 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
3533 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
3534 * config/sh/sh.c (sh_option_override): Use
3535 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
3536 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
3537 condition.
3538 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
3539 TARGET_SH4.
3540 (udivsi3_i4_single, divsi3_i4_single): Use
3541 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
3542
f4b719c7
DK
35432013-03-13 Dave Korn <dave.korn.cygwin@....>
3544
3545 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
3546 default setting.
3547
c40eced0
RB
35482013-03-13 Richard Biener <rguenther@suse.de>
3549
3550 PR tree-optimization/56608
3551 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
3552 calls when vectorizing basic-blocks.
3553
1bfa5973
JJ
35542013-03-13 Jakub Jelinek <jakub@redhat.com>
3555
3556 PR plugins/45078
3557 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
3558 tm_file.
3559
6fcf5434
JJ
35602013-03-12 Jakub Jelinek <jakub@redhat.com>
3561
3562 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
3563
4f38fa8c
JH
35642013-03-11 Jan Hubicka <jh@suse.cz>
3565
3566 PR lto/56557
3567 * lto-streamer-out.c (output_symbol_p): Skip references from
3568 constructors of external variables.
3569
c5c5ba89
JH
35702013-03-11 Jan Hubicka <jh@suse.cz>
3571
3572 PR middle-end/56571
3573 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
3574 from pseudos.
3575 * emit-rtl.c (verify_rtx_sharing): Likewise.
3576 (copy_insn_1): Likewise.
3577 * rtl.c (copy_rtx): Likewise.
3578
c2a939b1
GJL
35792013-03-11 Georg-Johann Lay <avr@gjlay.de>
3580
3581 PR target/56591
3582 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
3583 output_operand_lossage message.
88b97037 3584
3c3279fb
RE
35852013-03-11 Richard Earnshaw <rearnsha@arm.com>
3586
3587 PR target/56470
3588 * arm.c (shift_op): Validate RTL pattern on the fly.
3589 (arm_print_operand, case 'S'): Don't use shift_operator to validate
3590 the RTL.
3591
aef5ef9d
JDA
35922013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3593
3594 PR target/56347
3595 * config/pa/pa.md (call_value): Check for calls to powf and direct to
3596 new call patterns that clobber %fr12.
3597 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
3598 split and postreload patterns.
3599 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
3600 registers %fr12 and %fr12R as call used.
3601
456610d3
SB
36022013-03-09 Steven Bosscher <steven@gcc.gnu.org>
3603
3604 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
3605 (canon_address, record_store, replace_read, check_mem_read_rtx,
3606 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
3607 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
3608 rest_of_handle_dse): Likewise.
3609
4b1baac8
RS
36102013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
3611
3612 PR middle-end/56524
3613 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
3614 Add base_optabs.
3615 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
3616 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
3617 (save_optabs_if_changed): Replace with...
3618 (init_tree_optimization_optabs): ...this.
3619 * optabs.c (save_optabs_if_changed): Rename to...
3620 (init_tree_optimization_optabs): ...this. Take the optimization node
3621 as argument. Do nothing if the base optabs are already correct.
3622 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
3623 to recompute optabs.
3624 * function.h (function): Remove optabs field.
3625 * function.c (invoke_set_current_function_hook): Call
3626 init_tree_optimization_optabs. Use the result to initialize
3627 this_fn_optabs.
3628
b7a78683
AH
36292013-02-27 Aldy Hernandez <aldyh@redhat.com>
3630
3631 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
3632 if GTMA_HAS_NO_INSTRUMENTATION.
3633 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
3634 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
3635 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
3636 * gimple-pretty-print.c (dump_gimple_transaction): Handle
3637 GTMA_HAS_NO_INSTRUMENTATION.
3638
6384c29b
JJ
36392013-03-08 Jakub Jelinek <jakub@redhat.com>
3640
3641 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
3642 libasan_preinit.o.
3643
ecd4f20a
MP
36442013-03-08 Marek Polacek <polacek@redhat.com>
3645 Jakub Jelinek <jakub@redhat.com>
3646
3647 PR tree-optimization/56478
3648 * predict.c (is_comparison_with_loop_invariant_p): Change the
3649 type of loop_step to tree.
3650 (predict_loops): Adjust.
3651 (predict_iv_comparison): Perform the computations on double_ints.
3652
64366d35
RB
36532013-03-08 Richard Biener <rguenther@suse.de>
3654
3655 PR tree-optimization/56570
3656 * tree-cfg.c (verify_expr_location_1): Verify locations for
3657 DECL_DEBUG_EXPR.
3658 * tree-sra.c (create_access_replacement): Strip locations
3659 from DECL_DEBUG_EXPRs.
3660
a9d5a059
RB
36612013-03-08 Richard Biener <rguenther@suse.de>
3662
3663 * tree-inline.c (expand_call_inline): Do not associate
3664 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
3665 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
3666
b7aa4e9a
RB
36672013-03-08 Richard Biener <rguenther@suse.de>
3668
3669 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
3670 or block changes with -Og. Fix for location / block encoding
3671 changes and PHI arguments with locations.
3672
c4c2f9fa
SB
36732013-03-07 Steven Bosscher <steven@gcc.gnu.org>
3674
3675 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
3676 for all counters.
3677 (struct output_info): Likewise.
3678 (register_overhead): Remove bad gcc_assert.
3679 (bitmap_find_bit): If there is only a single bitmap element, do not
3680 count a miss as a search.
3681 (print_statistics): Update for counter type changes.
3682 (dump_bitmap_statistics): Likewise. Print headers such that they
3683 are properly lined up with the printed counters.
3684
5bf6606a
JJ
36852013-03-07 Jakub Jelinek <jakub@redhat.com>
3686
3687 PR tree-optimization/56559
3688 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
3689 check that it has only a single use.
3690
2c653d46
RB
36912013-03-07 Richard Biener <rguenther@suse.de>
3692
3693 * doc/invoke.texi (fwhole-program): Discourage use in combination
3694 with -flto.
3695
a72d8780
JJ
36962013-03-06 Jakub Jelinek <jakub@redhat.com>
3697
01a454df
JJ
3698 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
3699
c1781047
JJ
3700 PR tree-optimization/56539
3701 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
3702 instead of GSI_CONTINUE_LINKING as last argument to
3703 force_gimple_operand_gsi. Adjust function comment.
3704
9772c47a
JJ
3705 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
3706 aarch64-cores.def.
3707
a72d8780
JJ
3708 PR middle-end/56548
3709 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
3710 promoted mode, convert the result back to the original mode.
3711
fa5556de
RB
37122013-03-06 Richard Biener <rguenther@suse.de>
3713
3714 PR middle-end/56294
3715 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
3716 (insert_updated_phi_nodes_compare_uids): New function.
3717 (update_ssa): Sort symbols_to_rename after UID before
3718 traversing it to insert PHI nodes.
3719
010403d1
RB
37202013-03-06 Richard Biener <rguenther@suse.de>
3721
3722 PR middle-end/50494
3723 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
3724 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
3725
3726 Revert
3727 2013-02-13 Richard Biener <rguenther@suse.de>
3728
3729 PR lto/50494
3730 * varasm.c (output_constant_def_1): Get the decl representing
3731 the constant as argument.
3732 (output_constant_def): Wrap output_constant_def_1.
3733 (make_decl_rtl): Use output_constant_def_1 with the decl
3734 representing the constant.
3735 (build_constant_desc): Optionally re-use a decl already
3736 representing the constant.
3737 (tree_output_constant_def): Adjust.
3738
3c27ce4c
JY
37392013-03-06 Joey Ye <joey.ye@arm.com>
3740
3741 PR lto/50293
3742 * gcc.c (convert_white_space): New function.
3743 (main): Handles white space in function name.
3744
8f6d1c86
OE
37452013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
3746
3747 PR target/56529
3748 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
3749 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
3750 to SH_DIV_CALL_TABLE for TARGET_SH2.
3751 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
3752 list.
3753 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
3754 call-table options.
3755
798a209f
SA
37562013-03-05 Sterling Augustine <saugustine@google.com>
3757 Cary Coutant <ccoutant@google.com>
3758
3759 PR debug/55364
3760 * dwarf2out.c (resolve_addr): Don't call
3761 remove_loc_list_addr_table_entries a second time for the same
3762 expression.
3763
6cfa417f 37642013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 3765
6cfa417f
JJ
3766 PR debug/56510
3767 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
3768 (avoid_complex_debug_insns): New function.
3769 (expand_debug_locations): Call it.
3770
3771 PR rtl-optimization/56484
3772 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
3773 lifetimes of hard registers on small register class machines.
3774
37752013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
3776
3777 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 3778 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 3779 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
3780 fast_interrupt.
3781 (microblaze_fast_interrupt_function_p): New function.
3782 (microblaze_is_interrupt_handler): Rename to
3783 microblaze_is_interrupt_variant and add fast_interrupt check.
3784 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
3785 (save_restore_insns): Likewise.
3786 (compute_frame_size): Likewise.
3787 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
3788 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
3789 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
3790 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
3791 microblaze_is_interrupt_variant.
3792
731aefac
KT
37932013-03-05 Kai Tietz <ktietz@redhat.com>
3794
3795 * sdbout.c (sdbout_one_type): Switch to current function's section
3796 supporting cold/hot.
3797
a72d8780 37982013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
3799
3800 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
3801 -mxl-reorder.
3802
334e71e8
JJ
38032013-03-05 Jakub Jelinek <jakub@redhat.com>
3804
0b50e654
JJ
3805 PR middle-end/56461
3806 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
3807 if VALGRIND_GET_VBITS is defined, temporarily make object
3808 memory all defined, and restore previous valgrind addressability
3809 and definability afterwards. Free this_object at the end.
3810
4ccf8f43
JJ
3811 PR middle-end/56461
3812 * lra.c (lra): Call lra_clear_live_ranges if live_p,
3813 right before calling lra_create_live_ranges, also call it
3814 when clearing live_p. Only call lra_clear_live_ranges
3815 at the end if live_p.
3816
334e71e8
JJ
3817 PR middle-end/56461
3818 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
3819
9ca966ca
RB
38202013-03-05 Richard Biener <rguenther@suse.de>
3821
3822 PR tree-optimization/56521
3823 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
3824 value-id.
3825
d273b176
SB
38262013-03-05 Steven Bosscher <steven@gcc.gnu.org>
3827
3828 PR c++/55135
3829 * except.h (remove_unreachable_eh_regions): New prototype.
3830 * except.c (remove_eh_handler_splicer): New function, split out
3831 of remove_eh_handler.
3832 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
3833 warning about running it on many EH regions one at a time.
3834 (remove_unreachable_eh_regions_worker): New function, walk the
3835 EH tree in depth-first order and remove non-marked regions.
3836 (remove_unreachable_eh_regions): New function.
3837 * tree-eh.c (mark_reachable_handlers): New function, split out
3838 from remove_unreachable_handlers.
3839 (remove_unreachable_handlers): Use mark_reachable_handlers and
3840 remove_unreachable_eh_regions.
3841 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
3842 and remove_unreachable_eh_regions.
3843
5e7f1aef
RB
38442013-03-05 Richard Biener <rguenther@suse.de>
3845
3846 PR middle-end/56525
3847 * loop-init.c (fix_loop_structure): Remove loops in two stages,
3848 not freeing them until the end.
3849
f276b762
AK
38502013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3851
3852 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
3853
12a43ab8
RB
38542013-03-05 Richard Biener <rguenther@suse.de>
3855
3856 PR tree-optimization/56270
3857 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
3858 of loads after scheduling an SLP instance.
3859
93675444
JJ
38602013-03-05 Jakub Jelinek <jakub@redhat.com>
3861
db4138e3
JJ
3862 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
3863 tic6x.exp.
3864 (check_gcc_parallelize): Run guality.exp as a separate job from
3865 vect.exp with unsorted.exp and $(dg_target_exps) separately from
3866 struct-layout-1.exp with stackalign.exp.
3867
dd3d1ec0
JJ
3868 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
3869
b8d381a3
JJ
3870 PR middle-end/56461
3871 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
3872 load_index sbitmap even if some bit in it isn't set.
3873
b4f9786b
JJ
3874 PR middle-end/56461
3875 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
3876 (discover_iteration_bound_by_body_walk): Change queues to
3877 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
3878 spelling in comment. Call safe_push on queues[bound_index] directly.
3879 Release queues[queue_index] in every iteration unconditionally.
3880 Release bounds vector.
3881
93675444
JJ
3882 PR middle-end/56461
3883 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
3884 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
3885 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
3886 inner_phis vector.
3887
3e492e9c
RB
38882013-03-05 Richard Biener <rguenther@suse.de>
3889
3890 PR lto/56515
3891 * tree-inline.c (remap_blocks_to_null): New function.
3892 (expand_call_inline): When expanding a call stmt without
3893 an associated block inline remap all callee blocks to NULL.
3894
a5d1569a
JJ
38952013-03-05 Jakub Jelinek <jakub@redhat.com>
3896
86efb5cd
JJ
3897 PR rtl-optimization/56494
3898 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
3899 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
3900 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
3901
85f5dbea
JJ
3902 PR middle-end/56461
3903 * sel-sched-ir.c (free_sched_pools): Release
3904 succs_info_pool.stack[succs_info_pool.max_top] vectors too
3905 if succs_info_pool.max_top isn't -1.
3906
a5d1569a
JJ
3907 PR bootstrap/56509
3908 * opts.c (opts_obstack, opts_concat): Moved to...
3909 * opts-common.c (opts_obstack, opts_concat): ... here.
3910
4432aa6c
JJ
39112013-03-04 Jakub Jelinek <jakub@redhat.com>
3912
3913 PR middle-end/56461
3914 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
3915
f3a1fb91
MJ
39162013-03-04 Martin Jambor <mjambor@suse.cz>
3917
3918 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
3919 all appropriate places.
3920
22110e6c
EB
39212013-01-04 Eric Botcazou <ebotcazou@adacore.com>
3922
3923 PR tree-optimization/56424
3924 * ipa-split.c (split_function): Do not set the RSO flag if result is
3925 not by reference and its type is a register type.
3926
a72d8780 39272013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 3928
88b97037 3929 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 3930 (microblaze_legitimate_pic_operand): Likewise
88b97037 3931 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
3932 new function microblaze_legitimate_pic_operand
3933 * config/microblaze/microblaze-protos.h
3934 (microblaze_legitimate_pic_operand): Declare.
3935
a72d8780 39362013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 3937
a72d8780 3938 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 3939 New predicate for supported rtx code types.
a72d8780 3940 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
3941 call_insn_simple_operand predicate.
3942
541d9ac8
JJ
39432013-03-04 Jakub Jelinek <jakub@redhat.com>
3944
5eb010bc
JJ
3945 PR middle-end/56461
3946 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
3947 partitions.ordered_remove.
3948
30862efc
JJ
3949 PR middle-end/56461
3950 * tree-vect-stmts.c (vectorizable_conversion): Don't call
3951 vec_oprnds0.create (1) for modifier == NONE.
3952
8930f723
JJ
3953 PR middle-end/56461
3954 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
3955 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
3956 vec_oprnds1 right before pushing anything to it for
3957 scalar_shift_arg.
3958
541d9ac8
JJ
3959 PR middle-end/56461
3960 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
3961 set nbbs to 0 instead of having separate code path.
3962 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
3963 instead of false as last argument if returning NULL.
3964
7aa7f2e3
SL
39652013-03-03 Sandra Loosemore <sandra@codesourcery.com>
3966
3967 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
3968 the attribute is now called "target" instead of "option".
3969 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
3970 * doc/tm.texi.in (Target Attributes): Likewise document the correct
3971 attribute/pragma name for TARGET_OPTION_VALID_P and
3972 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
3973 * doc/tm.texi: Regenerated.
3974
8930f723 39752013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 3976
8930f723 3977 * config/microblaze/microblaze.c:
cb8a1637 3978 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
3979 * config/microblaze/microblaze.h: Add -mxl-reorder to
3980 DRIVER_SELF_SPECS.
3981 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
3982 instructions emitted if TARGET_REORDER.
88b97037
UB
3983 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
3984 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 3985 separately.
cb8a1637 3986
4dc1d68c
XDL
39872013-03-01 Xinliang David Li <davidxl@google.com>
3988
3989 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
3990 walk length.
3991
689eaba3
JJ
39922013-03-01 Jakub Jelinek <jakub@redhat.com>
3993
9d676bf6
JJ
3994 PR middle-end/56461
3995 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
3996 vector even when returning true. Fix up function comment formatting.
3997
caff7edf
JJ
3998 PR middle-end/56461
3999 * ira-build.c (ira_loop_nodes_count): New variable.
4000 (create_loop_tree_nodes): Initialize it.
4001 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
4002
b6b9227d
JJ
4003 PR middle-end/56461
4004 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
4005 method on dr_chain and result_chain.
4006 * tree-vect-stmts.c (vectorizable_store): Only call
4007 result_chain.create if j == 0.
4008
689eaba3
JJ
4009 PR middle-end/56461
4010 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
4011 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
4012 before overwriting it.
4013
40bf31ed
TB
40142013-03-01 Tobias Burnus <burnus@net-b.de>
4015
4016 * doc/extended.texi (C Extensions): Change order in @menu
4017 to match @node.
4018 (Other MIPS Built-in Functions): Move last MIPS entry before
4019 "picoChip Built-in Functions".
4020 (SH Built-in Functions): Move after RX Built-in Functions.
4021 * doc/gcc.texi (Introduction): Change order in @menu
4022 to match @node.
4023 * doc/md.texi (Constraints): Ditto.
4024 * gty.texi (Type Information): Ditto.
4025 (User-provided marking routines for template types): Make
4026 subsection.
4027 * doc/invoke.texi (AArch64 Options): Move before
4028 "Adapteva Epiphany Options".
4029
e664c61c
KS
40302013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
4031 Jakub Jelinek <jakub@redhat.com>
4032
4033 PR sanitizer/56454
4034 * asan.c (gate_asan): Lookup no_sanitize_address instead of
4035 no_address_safety_analysis attribute.
4036 * doc/extend.texi (no_address_safety_attribute): Rename to
4037 no_sanitize_address attribute, mention no_address_safety_analysis
4038 attribute as deprecated alias.
4039
37b5ec8f
JJ
40402013-02-28 Jakub Jelinek <jakub@redhat.com>
4041
4042 PR middle-end/56461
4043 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
4044 type to vec<vec<tree> > *.
4045 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
4046 to be vec<tree> instead of vec<tree> *, set vec_defs
4047 to vNULL and call vec_defs.create (number_of_vects), adjust other
4048 uses of vec_defs.
4049 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
4050 vectorizable_condition): Adjust vect_get_slp_defs callers.
4051
ba96cdfb
JG
40522013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
4053
4054 * config/aarch64/aarch64.c
4055 (aarch64_float_const_representable): Remove unused variable.
4056
6f549691
JG
40572013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
4058
4059 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
4060
af55e82d
JG
40612013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
4062
4063 * config/aarch64/aarch64-builtins.c
4064 (aarch64_init_simd_builtins): Make static.
4065
1df3f464
JG
40662013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
4067
4068 * config/aarch64/aarch64.c
4069 (aarch64_simd_make_constant): Make static.
4070
f8f42513
MJ
40712013-02-28 Martin Jambor <mjambor@suse.cz>
4072
4073 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
4074 with no initialization to the RHS of debug statements.
4075
b48b3fc4
MJ
40762013-02-28 Martin Jambor <mjambor@suse.cz>
4077
4078 PR tree-optimization/56294
4079 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
4080 Adjust dumping.
4081 (get_access_replacement): Do not call create_access_replacement.
4082 Assert a replacement exists.
4083 (get_repl_default_def_ssa_name): Create the replacement declaration
4084 itself.
4085
c3ae224c
RR
40862013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4087
4088 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
4089 final_end_function.
4090
45fa0eef
MP
40912013-02-28 Marek Polacek <polacek@redhat.com>
4092
4093 PR rtl-optimization/56466
4094 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
4095 if we're changing a loop.
4096 (peel_loops_completely): Likewise.
4097
502c067d
PC
40982013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
4099
4100 PR c++/55813
4101 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
4102
ff24afc8
GJL
41032013-02-28 Georg-Johann Lay <avr@gjlay.de>
4104
4105 PR target/56445
4106 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
4107 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
4108 INTX_FTYPE_FX, FX_FTYPE_INTX.
4109 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
4110
c7b1fc1b
GJL
41112013-02-28 Georg-Johann Lay <avr@gjlay.de>
4112
4113 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
4114 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
4115 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
4116 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
4117 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
4118 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
4119 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
4120 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
4121 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
4122 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
4123 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
4124 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
4125 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
4126 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
4127 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
4128 (avrxmega6): Increase max flash segments from 5 to 6.
4129 * config/avr/t-multilib: Regenerate.
4130 * config/avr/avr-tables.opt: Regenerate.
4131 * doc/avr-mmcu.texi: Regenerate.
4132
4a0e3cfe
GJL
41332013-02-28 Georg-Johann Lay <avr@gjlay.de>
4134
4135 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
4136 (avr_device_to_arch): Rename to avr_device_to_ld.
4137 (avr_device_to_as): New prototype.
4138 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
4139 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
4140 * config/avr/driver-avr.c (avr_device_to_as): New.
4141 (avr_device_to_arch): Rename to avr_device_to_ld.
4142
97785e52
JJ
41432013-02-27 Jakub Jelinek <jakub@redhat.com>
4144
3f292312
JJ
4145 PR middle-end/56461
4146 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
4147 method on dr_chain and result_chain.
4148
a344216b
JJ
4149 PR middle-end/56461
4150 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
4151 pointer_set_destroy on not_executed_last_iteration.
4152
f121ad02 4153 PR middle-end/56461
88b97037 4154 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 4155
307f83a3
JJ
4156 PR middle-end/56461
4157 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
4158 FOR_EACH_DEFINED_FUNCTION when freeing state.
4159
e19624ee
JJ
4160 PR middle-end/56461
4161 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
4162 pool_free.
4163 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
4164 overwriting it.
4165
90e709fd
JJ
4166 PR middle-end/56461
4167 * ipa-cp.c (decide_whether_version_node): Call vec_free on
4168 known_aggs[i].items and release known_aggs vector.
4169
97785e52
JJ
4170 PR middle-end/56461
4171 * ipa-reference.c (propagate): Free node_info even for alias nodes.
4172
41732013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 4174
97785e52
JJ
4175 * config/microblaze/microblaze.c (microblaze_emit_compare):
4176 Use xor for EQ/NE comparisions.
4177 * config/microblaze/microblaze.md (cstoresf4): Add constraints
4178 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 4179
6fa5e0ed
JJ
41802013-02-27 Jakub Jelinek <jakub@redhat.com>
4181
4182 PR middle-end/56461
4183 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
4184 vector.
4185 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
4186 vec_safe_push, always update *slot.
4187 (redirect_edge_var_map_clear): Use vec_free.
4188 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
4189 (free_var_map_entry): Use vec_free.
4190 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
4191 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
4192
436a956a
AB
41932013-02-27 Andrey Belevantsev <abel@ispras.ru>
4194
4195 PR middle-end/45472
436a956a
AB
4196 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
4197 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
4198 Reorder tests for speculativeness in the logical and operator.
4199
f5c2caca
JJ
42002013-02-27 Jakub Jelinek <jakub@redhat.com>
4201
0fcb564b
JJ
4202 * incpath.c (add_standard_paths): Use reconcat instead of concat
4203 where appropriate and avoid leaking memory.
4204
dc357798
JJ
4205 * opts.h: Include obstack.h.
4206 (opts_concat): New prototype.
4207 (opts_obstack): New declaration.
4208 * opts.c (opts_concat): New function.
4209 (opts_obstack): New variable.
4210 (init_options_struct): Call gcc_init_obstack on opts_obstack.
4211 (finish_options): Use opts_concat instead of concat
4212 and XOBNEWVEC instead of XNEWVEC.
4213 * opts-common.c (generate_canonical_option, decode_cmdline_option,
4214 generate_option): Likewise.
4215 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
4216 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
4217
f5c2caca
JJ
4218 PR target/56455
4219 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
4220 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
4221
d0163673
JJ
42222013-02-26 Jakub Jelinek <jakub@redhat.com>
4223
4224 PR middle-end/56461
4225 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
4226
b5ad2b8e
JR
42272013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
4228
4229 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
4230 (arm_block_move_unaligned_straight): Likewise.
4231 (arm_adjust_block_mem): Likewise.
4232
9b639e2c
JR
42332013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
4234
4235 PR target/48901
4236 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
4237 temp, cond and label.
4238 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
4239
e13a0ccb
JR
4240 PR target/52500
4241 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
4242 * config/c6x/c6x.h (dbx_register_map): Update declaration.
4243
fbe4f171
JR
4244 PR target/52501
4245 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
4246 of prologue/epilogue functions.
4247
ae006543
JR
4248 PR target/52550
4249 * config/tilegx/tilegx.c (tilegx_expand_prologue):
4250 Remove unused variable cfa_offset.
4251 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
4252
c81369fa
JR
4253 PR target/54639
4254 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
4255 type promotion to unsigned.
4256
f8a8fea7
JR
4257 PR target/54640
4258 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
4259 for HOST_WIDE_INT of 32 bit / same size as int.
4260 (arm_block_move_unaligned_straight): Likewise.
4261 (arm_adjust_block_mem): Likewise.
4262
f8be5169
JR
4263 PR target/54662
4264 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
4265 ALL_CFLAGS.
4266
f1ad3354
MP
42672013-02-26 Marek Polacek <polacek@redhat.com>
4268
4269 PR tree-optimization/56426
88b97037 4270 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 4271
a6af0f42
RB
42722013-02-26 Richard Biener <rguenther@suse.de>
4273
4274 PR target/56444
4275 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
4276 unused variable loops.
4277
aca43c6c
JJ
42782013-02-26 Jakub Jelinek <jakub@redhat.com>
4279
cecbe5d9
JJ
4280 PR tree-optimization/56448
4281 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
4282 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
4283 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
4284 later operands of the references, or even first operand for
4285 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
4286
aca43c6c
JJ
4287 PR tree-optimization/56443
4288 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
4289 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
4290 to type_for_mode langhook.
4291
53e2e141
MT
42922013-02-25 Matt Turner <mattst88@gmail.com>
4293
4294 * doc/invoke.texi: Document r4700.
4295
259ee451
RB
42962013-02-25 Richard Biener <rguenther@suse.de>
4297
4298 PR tree-optimization/56175
4299 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
4300 split out from ...
4301 (simplify_bitwise_binary): ... here. Also guard the conversion
4302 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
4303
6d65e8f1
CM
43042013-02-25 Catherine Moore <clm@codesourcery.com>
4305
4306 Revert:
4307 2013-02-24 Catherine Moore <clm@codesourcery.com>
4308 Maciej W. Rozycki <macro@codesourcery.com>
4309 Tom de Vries <tom@codesourcery.com>
a72d8780 4310 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
4311 Iain Sandoe <iain@codesourcery.com>
4312 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 4313 Chao-ying Fu <fu@mips.com>
88b97037 4314
6d65e8f1 4315 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 4316 Document new function attributes.
6d65e8f1
CM
4317 * doc/invoke.texi (minterlink-compressed, mmicromips,
4318 m14k, m14ke, m14kec): Document new options.
4319 (minterlink-mips16): Update documentation.
4320 * doc/md.texi (ZC, ZD): Document new constraints.
4321 * configure.ac (gcc_cv_as_micromips): Check if linker
4322 supports the .set micromips directive.
4323 * configure: Regenerate.
4324 * config.in: Regenerate.
4325 * config/mips/mips-tables.opt: Regenerate.
4326 * config/mips/micromips.md: New file.
4327 * constraints.md (ZC, AD): New constraints.
4328 * config/mips/predicates.md (movep_src_register): New predicate.
4329 (movep_src_operand): New predicate.
4330 (non_volatile_mem_operand): New predicate.
4331 * config/mips/mips.md (multimem): New type.
4332 (length): Differentiate between 17-bit and 18-bit branch offsets.
4333 (MOVEP1, MOVEP2): New mode iterator.
4334 (mov_<load>l): Use ZC constraint.
4335 (mov_<load>r): Likewise.
4336 (mov_<store>l): Likewise.
4337 (mov_<store>r): Likewise.
4338 (*branch_equality<mode>_inverted): Add microMIPS support.
4339 (*branch_equality<mode>): Likewise.
4340 (*jump_absolute): Likewise.
4341 (indirect_jump_<mode>): Likewise.
4342 (tablejump_<mode>): Likewise.
4343 (<optab>_internal): Likewise.
4344 (sibcall_internal): Likewise.
4345 (sibcall_value_internal): Likewise.
4346 (prefetch): Use constraint ZD.
4347 * config/mips/mips.opt (minterlink-compressed): New option.
4348 (minterlink-mips16): Now an alias for minterlink-compressed.
4349 (mmicromips): New option.
4350 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
4351 (compare_and_swap_12): Likewise.
4352 (sync_add<mode>): Likewise.
4353 (sync_<optab>_12): Likewise.
4354 (sync_old_<optab>_12): Likewise.
4355 (sync_new_<optab>_12): Likewise.
4356 (sync_nand_12): Likewise.
4357 (sync_old_nand_12): Likewise.
4358 (sync_new_nand_12): Likewise.
4359 (sync_sub<mode>): Likewise.
4360 (sync_old_add<mode>): Likewise.
4361 (sync_old_sub<mode>): Likewise.
4362 (sync_new_add<mode>): Likewise.
4363 (sync_new_sub<mode>): Likewise.
4364 (sync_<optab><mode>): Likewise.
4365 (sync_old_<optab><mode>): Likewise.
4366 (sync_new_<optab><mode>): Likewise.
4367 (sync_nand<mode>): Likewise.
4368 (sync_old_nand<mode>): Likewise.
4369 (sync_new_nand<mode>): Likewise.
4370 (sync_lock_test_and_set<mode>): Likewise.
4371 (test_and_set_12): Likewise.
4372 (atomic_compare_and_swap<mode>): Likewise.
4373 (atomic_exchange<mode>_llsc): Likewise.
4374 (atomic_fetch_add<mode>_llsc): Likewise.
4375 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
4376 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
4377 (umips_save_restore_pattern_p): Likewise.
4378 (umips_load_store_pair_p): Likewise.
4379 (umips_output_load_store_pair): Likewise.
4380 (umips_movep_target_p): Likewise.
4381 (umips_12bit_offset_address_p): Likewise.
4382 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
4383 (mips_base_mips16): Rename this...
4384 (mips_base_compression_flags): ...to this. Update all uses.
4385 (mips_attribute_table): Add micromips, nomicromips and nocompression.
4386 (mips_mips16_decl_p): Delete.
4387 (mips_nomips16_decl_p): Delete.
4388 (mips_get_compress_on_flags): New function.
4389 (mips_get_compress_off_flags): New function.
4390 (mips_get_compress_mode): New function.
4391 (mips_get_compress_on_name): New function.
4392 (mips_get_compress_off_name): New function.
4393 (mips_insert_attributes): Support multiple compression types.
4394 (mips_merge_decl_attributes): Likewise.
4395 (umips_12bit_offset_address_p): New function.
4396 (mips_start_function_definition): Emit .set micromips directive.
4397 (mips_call_may_need_jalx_p): New function.
4398 (mips_function_ok_for_sibcall): Add microMIPS support.
4399 (mips_print_operand_punctuation): Support short delay slots and
4400 compact jumps.
4401 (umips_swm_mask, umips_swm_encoding): New.
4402 (umips_build_save_restore): New function.
4403 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
4404 (was_mips16_p): Remove.
4405 (old_compression_mode): New.
4406 (mips_set_compression_mode): New function.
4407 (mips_set_current_function): Add microMIPS support.
4408 (mips_option_override): Likewise.
4409 (umips_save_restore_pattern_p): New function.
4410 (umips_output_save_restore): New function.
4411 (umips_load_store_pair_p_1): New function.
4412 (umips_load_store_pair_p): New function.
4413 (umips_output_load_store_pair_1): New function.
4414 (umips_output_load_store_pair): New function.
4415 (umips_movep_target_p) New function.
4416 (mips_prepare_pch_save): Add microMIPS support.
4417 * config/mips/mips.h (TARGET_COMPRESSION): New.
4418 (TARGET_CPU_CPP_BUILTINS): Update macro
4419 to use new compression flags and to support microMIPS.
4420 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
4421 (MIPS_ARCH_FLOAT_SPEC): Likewise.
4422 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
4423 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
4424 (ASM_SPEC): Support mmicromips and mno-micromips.
4425 (M16STORE_REG_P): New macro.
4426 (MIPS_CALL): Support TARGET_MICROMIPS.
4427 (MICROMIPS_J): New macro.
4428 (mips_base_mips16): Rename this...
4429 (mips_base_compression_flags): ...to this.
4430 (UMIPS_12BIT_OFFSET_P): New macro.
4431 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
4432 (MULTILIB_DIRNAMES): Likewise.
4433
5e5df392
TV
44342013-02-25 Tom de Vries <tom@codesourcery.com>
4435
4436 PR rtl-optimization/56131
4437 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
4438 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
4439 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
4440
3fdb53c1
TB
44412013-02-25 Tobias Burnus <burnus@net-b.de>
4442
4443 * doc/invoke.texi (-fsanitize=): Move from optimization
4444 to debugging options.
4445
ed358aea
AB
44462013-02-25 Andrey Belevantsev <abel@ispras.ru>
4447
4448 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
4449
f45e9053
AB
44502013-02-25 Andrey Belevantsev <abel@ispras.ru>
4451 Alexander Monakov <amonakov@ispras.ru>
4452
4453 PR middle-end/56077
4454 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
4455 flush pending lists also on non-jumps. Adjust comment.
4456
6941b508
CM
44572013-02-24 Catherine Moore <clm@codesourcery.com>
4458 Maciej W. Rozycki <macro@codesourcery.com>
4459 Tom de Vries <tom@codesourcery.com>
a72d8780 4460 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
4461 Iain Sandoe <iain@codesourcery.com>
4462 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 4463 Chao-ying Fu <fu@mips.com>
6941b508
CM
4464
4465 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 4466 Document new function attributes.
6941b508
CM
4467 * doc/invoke.texi (minterlink-compressed, mmicromips,
4468 m14k, m14ke, m14kec): Document new options.
4469 (minterlink-mips16): Update documentation.
4470 * doc/md.texi (ZC, ZD): Document new constraints.
4471 * configure.ac (gcc_cv_as_micromips): Check if linker
4472 supports the .set micromips directive.
4473 * configure: Regenerate.
4474 * config.in: Regenerate.
4475 * config/mips/mips-tables.opt: Regenerate.
4476 * config/mips/micromips.md: New file.
4477 * constraints.md (ZC, AD): New constraints.
4478 * config/mips/predicates.md (movep_src_register): New predicate.
4479 (movep_src_operand): New predicate.
4480 (non_volatile_mem_operand): New predicate.
4481 * config/mips/mips.md (multimem): New type.
4482 (length): Differentiate between 17-bit and 18-bit branch offsets.
4483 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 4484 (mov_<load>l): Use ZC constraint.
6941b508
CM
4485 (mov_<load>r): Likewise.
4486 (mov_<store>l): Likewise.
4487 (mov_<store>r): Likewise.
4488 (*branch_equality<mode>_inverted): Add microMIPS support.
4489 (*branch_equality<mode>): Likewise.
4490 (*jump_absolute): Likewise.
4491 (indirect_jump_<mode>): Likewise.
4492 (tablejump_<mode>): Likewise.
4493 (<optab>_internal): Likewise.
4494 (sibcall_internal): Likewise.
4495 (sibcall_value_internal): Likewise.
4496 (prefetch): Use constraint ZD.
4497 * config/mips/mips.opt (minterlink-compressed): New option.
4498 (minterlink-mips16): Now an alias for minterlink-compressed.
4499 (mmicromips): New option.
4500 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
4501 (compare_and_swap_12): Likewise.
4502 (sync_add<mode>): Likewise.
4503 (sync_<optab>_12): Likewise.
4504 (sync_old_<optab>_12): Likewise.
4505 (sync_new_<optab>_12): Likewise.
4506 (sync_nand_12): Likewise.
4507 (sync_old_nand_12): Likewise.
4508 (sync_new_nand_12): Likewise.
4509 (sync_sub<mode>): Likewise.
4510 (sync_old_add<mode>): Likewise.
4511 (sync_old_sub<mode>): Likewise.
4512 (sync_new_add<mode>): Likewise.
4513 (sync_new_sub<mode>): Likewise.
4514 (sync_<optab><mode>): Likewise.
4515 (sync_old_<optab><mode>): Likewise.
4516 (sync_new_<optab><mode>): Likewise.
4517 (sync_nand<mode>): Likewise.
4518 (sync_old_nand<mode>): Likewise.
4519 (sync_new_nand<mode>): Likewise.
4520 (sync_lock_test_and_set<mode>): Likewise.
4521 (test_and_set_12): Likewise.
4522 (atomic_compare_and_swap<mode>): Likewise.
4523 (atomic_exchange<mode>_llsc): Likewise.
4524 (atomic_fetch_add<mode>_llsc): Likewise.
4525 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
4526 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
4527 (umips_save_restore_pattern_p): Likewise.
4528 (umips_load_store_pair_p): Likewise.
4529 (umips_output_load_store_pair): Likewise.
4530 (umips_movep_target_p): Likewise.
4531 (umips_12bit_offset_address_p): Likewise.
4532 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
4533 (mips_base_mips16): Rename this...
4534 (mips_base_compression_flags): ...to this. Update all uses.
4535 (mips_attribute_table): Add micromips, nomicromips and nocompression.
4536 (mips_mips16_decl_p): Delete.
4537 (mips_nomips16_decl_p): Delete.
3fdb53c1 4538 (mips_get_compress_on_flags): New function.
6941b508
CM
4539 (mips_get_compress_off_flags): New function.
4540 (mips_get_compress_mode): New function.
4541 (mips_get_compress_on_name): New function.
4542 (mips_get_compress_off_name): New function.
4543 (mips_insert_attributes): Support multiple compression types.
4544 (mips_merge_decl_attributes): Likewise.
4545 (umips_12bit_offset_address_p): New function.
4546 (mips_start_function_definition): Emit .set micromips directive.
4547 (mips_call_may_need_jalx_p): New function.
4548 (mips_function_ok_for_sibcall): Add microMIPS support.
4549 (mips_print_operand_punctuation): Support short delay slots and
4550 compact jumps.
4551 (umips_swm_mask, umips_swm_encoding): New.
4552 (umips_build_save_restore): New function.
4553 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
4554 (was_mips16_p): Remove.
4555 (old_compression_mode): New.
4556 (mips_set_compression_mode): New function.
4557 (mips_set_current_function): Add microMIPS support.
4558 (mips_option_override): Likewise.
4559 (umips_save_restore_pattern_p): New function.
4560 (umips_output_save_restore): New function.
4561 (umips_load_store_pair_p_1): New function.
4562 (umips_load_store_pair_p): New function.
4563 (umips_output_load_store_pair_1): New function.
4564 (umips_output_load_store_pair): New function.
4565 (umips_movep_target_p) New function.
4566 (mips_prepare_pch_save): Add microMIPS support.
4567 * config/mips/mips.h (TARGET_COMPRESSION): New.
4568 (TARGET_CPU_CPP_BUILTINS): Update macro
4569 to use new compression flags and to support microMIPS.
4570 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
4571 (MIPS_ARCH_FLOAT_SPEC): Likewise.
4572 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
4573 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
4574 (ASM_SPEC): Support mmicromips and mno-micromips.
4575 (M16STORE_REG_P): New macro.
4576 (MIPS_CALL): Support TARGET_MICROMIPS.
4577 (MICROMIPS_J): New macro.
4578 (mips_base_mips16): Rename this...
4579 (mips_base_compression_flags): ...to this.
4580 (UMIPS_12BIT_OFFSET_P): New macro.
4581 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
4582 (MULTILIB_DIRNAMES): Likewise.
4583
cdebbc6d
JJ
45842013-02-24 Jakub Jelinek <jakub@redhat.com>
4585
4586 PR target/52555
4587 * target-globals.c (save_target_globals): For init_reg_sets and
4588 target_reinit remporarily set this_fn_optabs to this_target_optabs.
4589
18c63565
JG
45902013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
4591
4592 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
4593 * config/aarch64/t-aarch64
4594 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
4595
2194f7a2
VM
45962013-02-22 Vladimir Makarov <vmakarov@redhat.com>
4597
4598 PR inline-asm/56148
4599 * lra-constraints.c (process_alt_operands): Reload operand
4600 conflicting with earlier clobber only if no more other conflicting
4601 operands.
4602
7d613735
JJ
46032013-02-22 Jakub Jelinek <jakub@redhat.com>
4604
4605 PR sanitizer/56393
4606 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
4607 if not linking a shared library.
4608
ac8d93a7
SL
46092013-02-22 Seth LaForge <sethml@google.com>
4610
4611 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
4612
e0237780
GY
46132013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
4614
3fdb53c1
TB
4615 * config/arm/arm.md (split for extendsidi): Update condition.
4616 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
4617 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
4618 (qhs_zextenddi_cstr): Likewise.
e0237780 4619
d7fde18c
JJ
46202013-02-21 Jakub Jelinek <jakub@redhat.com>
4621
be63b77d
JJ
4622 PR middle-end/56420
4623 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
4624 avoid signed wrapping.
4625 (expand_mult): Handle properly multiplication by
4626 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
4627 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
4628 in the compiler if coeff is HOST_WIDE_INT_MIN.
4629 (expand_divmod): Don't make ext_op1 static, change it's type to
4630 uhwi. Avoid undefined behavior in -INTVAL (op1).
4631
d7fde18c
JJ
4632 PR rtl-optimization/50339
4633 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
4634 field.
4635 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
4636 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
4637 into splitting_ashiftrt field.
4638 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
4639 ASHIFTRT.
4640 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
4641 choices.
4642
6aad4455
AH
46432013-02-20 Aldy Hernandez <aldyh@redhat.com>
4644
4645 PR middle-end/56108
4646 * trans-mem.c (execute_tm_mark): Do not expand transactions that
4647 are sure to go irrevocable.
4648
38fe784d
HPN
46492013-02-21 Hans-Peter Nilsson <hp@axis.com>
4650
4651 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
4652 scalars are valid operands.
4653
0fd44da3
MJ
46542013-02-21 Martin Jambor <mjambor@suse.cz>
4655
4656 PR tree-optimization/56310
4657 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
4658 only matching indices and non-negative final offsets.
4659 (intersect_aggregates_with_edge): Pass src_idx to
4660 agg_replacements_to_vector. Pass src_idx insstead of index to
4661 intersect_with_agg_replacements.
4662
7a92038b
MJ
46632013-02-21 Martin Jambor <mjambor@suse.cz>
4664
4665 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
4666 instead of hard-wired defaults.
4667
c0da9c37
MR
46682013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
4669
4670 * doc/invoke.texi (MIPS Options): Update documentation of the
4671 floating-point multiply-accumulate instruction restrictions.
4672
d247ea0c 46732013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
4674
4675 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
4676 asan_shadow_offset on x86_64 linux.
4677
22deefcb
RB
46782013-02-21 Richard Biener <rguenther@suse.de>
4679
4680 PR tree-optimization/56415
4681 Revert
4682 2013-02-11 Richard Biener <rguenther@suse.de>
4683
4684 PR tree-optimization/56273
4685 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
4686 first VRP run.
4687
7bcc6e75
JJ
46882013-02-21 Jakub Jelinek <jakub@redhat.com>
4689
a0ad148f
JJ
4690 PR bootstrap/56258
4691 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
4692 instead of @itemx.
4693
7bcc6e75
JJ
4694 PR inline-asm/56405
4695 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
4696 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
4697
a0a7b611
JH
46982013-02-20 Jan Hubicka <jh@suse.cz>
4699
4700 PR tree-optimization/56265
88b97037
UB
4701 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
4702 when target is referenced for first time.
a0a7b611 4703
c0e50f72
RB
47042013-02-20 Richard Biener <rguenther@suse.de>
4705
4706 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
4707 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
4708 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
4709 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
4710 not return anything.
4711 (rename_ssa_copies): Do not remove unused locals.
4712 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 4713 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
4714 * passes.c (execute_function_todo): Do not schedule unused locals
4715 removal if cleanup_tree_cfg did something.
4716 * tree-ssa-live.c (remove_unused_locals): Dump statistics
4717 about the number of removed locals.
4718
a52ca739
RB
47192013-02-20 Richard Biener <rguenther@suse.de>
4720
4721 PR tree-optimization/56398
88b97037 4722 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 4723
ec9c9d1b
MJ
47242013-02-20 Martin Jambor <mjambor@suse.cz>
4725
4726 PR tree-optimization/55334
4727 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
4728 restricted pointers to arrays.
4729
e91c8ed6 47302013-02-20 Richard Biener <rguenther@suse.de>
88b97037 4731 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
4732
4733 PR tree-optimization/56396
4734 * tree-ssa-ccp.c (n_const_val): New static variable.
4735 (get_value): Return NULL for SSA names we don't have a lattice
4736 entry for.
4737 (ccp_initialize): Initialize n_const_val.
4738 * tree-ssa-copy.c (n_copy_of): New static variable.
4739 (init_copy_prop): Initialize n_copy_of.
4740 (get_value): Return NULL_TREE for SSA names we don't have a
4741 lattice entry for.
4742
3d916479
MJ
47432013-02-20 Martin Jambor <mjambor@suse.cz>
4744
4745 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
4746
71a86758
RB
47472013-02-20 Richard Biener <rguenther@suse.de>
4748
4749 * genpreds.c (write_lookup_constraint): Do not compare first
4750 letter of the constraint again.
4751
79836a12
RB
47522013-02-20 Richard Biener <rguenther@suse.de>
4753
4754 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
4755 and ceil_log2.
4756 (get_use_iv_cost): Terminate hashtable walk when coming across
4757 an empty entry.
4758
bbe4fb2c
IZ
47592013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
4760
4761 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
4762 reassociation for avx2 targets.
4763
a72d8780 47642012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 4765
c77f83d5
EI
4766 * config/microblaze/microblaze.c: microblaze_has_clz = 0
4767 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 4768 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
4769 version and TARGET_PATTERN_COMPARE check
4770 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 4771
a72d8780 47722012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 4773
a72d8780 4774 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
4775 function before branching.
4776
242387fa
AB
47772012-02-19 Andrey Belevantsev <abel@ispras.ru>
4778
4779 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
4780 DUMP_INSN_RTX_UID.
4781 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
4782
b4979ab9
AB
47832012-02-19 Andrey Belevantsev <abel@ispras.ru>
4784
4785 PR middle-end/55889
b4979ab9
AB
4786 * sel-sched.c: Include ira.h.
4787 (implicit_clobber_conflict_p): New function.
4788 (moveup_expr): Use it.
88b97037 4789 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 4790
24d63016
RB
47912013-02-19 Richard Biener <rguenther@suse.de>
4792
4793 PR tree-optimization/56384
4794 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
4795 (vn_hash_type): Split out from ...
4796 (vn_hash_constant_with_type): ... here.
4797 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
4798 (vn_phi_eq): Compare types from vn_phi_s structure.
4799 (vn_phi_lookup): Populate vn_phi_s type.
4800 (vn_phi_insert): Likewise.
4801
a475fd3d
JJ
48022013-02-19 Jakub Jelinek <jakub@redhat.com>
4803
47cc28f5
JJ
4804 PR tree-optimization/56350
4805 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
4806 if haven't found reduction or nested cycle operand, rather than
4807 asserting we must find it.
4808
a475fd3d
JJ
4809 PR tree-optimization/56381
4810 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
4811 to fold_build3.
4812
48132013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
4814 Jakub Jelinek <jakub@redhat.com>
4815
4816 PR target/52555
4817 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
4818 (swap_optab_enable): Same.
4819 (init_all_optabs): Use argument instead of global.
88b97037 4820 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
4821 * expr.h (init_all_optabs): Add argument to prototype.
4822 (TREE_OPTIMIZATION_OPTABS): New.
4823 (save_optabs_if_changed): Protoize.
4824 * optabs.h: Declare this_fn_optabs.
4825 * optabs.c (save_optabs_if_changed): New.
4826 Declare this_fn_optabs.
4827 (init_optabs): Add argument to init_all_optabs() call.
4828 * function.c (invoke_set_current_function_hook): Handle per
4829 function optabs.
4830 * function.h (struct function): New field optabs.
4831 * config/mips/mips.c (mips_set_mips16_mode): Handle when
4832 optimization_current_node has changed.
4833 * target-globals.h (save_target_globals_default_opts): Protoize.
4834 * target-globals.c (save_target_globals_default_opts): New.
4835
3f587ca3
JDA
48362013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4837
4838 PR target/56347
4839 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
4840 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
4841
4842 PR target/56214
4843 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
4844 and HImode, require all displacements to be an integer multiple of
4845 their mode size.
ceaca33e
JDA
4846 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
4847 only allow QImode and HImode when reload is in progress and strict is
4848 true. Likewise for symbolic addresses. Use base14_operand to check
4849 displacements in REG+BASE addresses.
4850
fe0b4796
RB
48512013-02-18 Richard Biener <rguenther@suse.de>
4852
4853 PR tree-optimization/56366
4854 * tree-vect-loop.c (get_initial_def_for_induction): Properly
4855 handle sign-conversion of outer-loop initial induction value.
4856
6aaf596b
RB
48572013-02-18 Richard Biener <rguenther@suse.de>
4858
73db8ff1 4859 PR middle-end/56349
6aaf596b
RB
4860 * cfghooks.c (merge_blocks): If we merge a latch into another
4861 block adjust references to it.
4862 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
4863 (verify_loop_structure): Verify that a recorded latch is in fact
4864 a latch.
4865
5e97dfb6
RB
48662013-02-18 Richard Biener <rguenther@suse.de>
4867
4868 PR tree-optimization/56321
4869 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
4870 order SSA name release and virtual operand unlinking.
4871
825527e8
EI
48722013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
4873
4874 * config/microblaze/microblaze.md (save_stack_block): Define.
4875 (restore_stack_block): Likewise.
4876
debd11d9
EI
48772013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
4878
4879 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
4880 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
4881 * config/microblaze/microblaze.c (microblaze_option_override):
4882 Bail out early for PIC modes when target does not support PIC.
4883
8ec77be0
EI
48842013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
4885
88b97037 4886 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
4887 Replace with a microblaze version.
4888 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 4889 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
4890 microblaze.
4891
b41288b3
JJ
48922013-02-16 Jakub Jelinek <jakub@redhat.com>
4893 Dodji Seketeli <dodji@redhat.com>
4894
4895 PR asan/56330
88b97037 4896 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
4897 (instrument_mem_region_access): Do not forget to always put
4898 instrumentation of the of 'base' and 'base + len' in a "if (len !=
4899 0) statement, even for cases where either 'base' or 'base + len'
4900 are not instrumented -- because they have been previously
4901 instrumented. Simplify the logic by putting all the statements
4902 instrument 'base + len' inside a sequence, and then insert that
4903 sequence right before the current insertion point. Then, to
4904 instrument 'base + len', just get an iterator on that statement.
4905 And do not forget to update the pointer to iterator the function
4906 received as argument.
4907
47918951
VM
49082013-02-15 Vladimir Makarov <vmakarov@redhat.com>
4909
4910 PR rtl-optimization/56348
4911 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
4912
3fb7c699
SB
49132013-02-15 Steven Bosscher <steven@gcc.gnu.org>
4914
4915 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
4916 (clean_graph_dump_file): Pass base to start_graph_dump.
4917
576fe41a
RH
49182013-02-14 Richard Henderson <rth@redhat.com>
4919
4920 PR target/55941
4921 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
4922
bb3accfa
SB
49232013-02-14 Steven Bosscher <steven@gcc.gnu.org>
4924
4925 * collect2-aix.h: Define F_LOADONLY.
4926
03143140
RB
49272013-02-14 Richard Biener <rguenther@suse.de>
4928
4929 PR lto/50494
4930 * varasm.c (output_constant_def_1): Get the decl representing
4931 the constant as argument.
4932 (output_constant_def): Wrap output_constant_def_1.
4933 (make_decl_rtl): Use output_constant_def_1 with the decl
4934 representing the constant.
4935 (build_constant_desc): Optionally re-use a decl already
4936 representing the constant.
4937 (tree_output_constant_def): Adjust.
4938
8fb06726
DS
49392013-02-14 Dodji Seketeli <dodji@redhat.com>
4940
4941 Fix an asan crash
4942 * asan.c (instrument_builtin_call): Really put the length of the
4943 second source argument into src1_len.
4944
c4bfe8bf
JJ
49452013-02-13 Jakub Jelinek <jakub@redhat.com>
4946
4947 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
4948 argument. If it is false, don't create edge from then_bb to
4949 fallthru_bb.
4950 (insert_if_then_before_iter): Pass true to it.
4951 (build_check_stmt): Pass false to it.
4952 (transform_statements): Flush hash table only on extended basic
4953 block boundaries, rather than at the beginning of every bb.
4954 Don't flush hash table on nonfreeing_call_p calls.
4955 * tree-flow.h (nonfreeing_call_p): New prototype.
4956 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
4957
7afe2801
DM
49582013-02-13 David S. Miller <davem@davemloft.net>
4959
4960 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
4961
70cc3288
VM
49622013-02-13 Vladimir Makarov <vmakarov@redhat.com>
4963
4964 PR target/56184
4965 * ira.c (max_regno_before_ira): Move from ...
4966 (ira): ... here.
4967 (fix_reg_equiv_init): Use max_regno_before_ira instead of
4968 vec_safe_length.
4969
6422242b
JJ
49702013-02-13 Jakub Jelinek <jakub@redhat.com>
4971
4972 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
4973
976a81ee
RB
49742013-02-13 Richard Biener <rguenther@suse.de>
4975
4976 PR lto/56295
4977 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
4978 globals in MEM_REFs.
4979
c1874a87
RB
49802013-02-13 Richard Biener <rguenther@suse.de>
4981
4982 * loop-init.c (loop_optimizer_init): Clear loop state when
4983 re-initializing preserved loops.
4984 * loop-unswitch.c (unswitch_single_loop): Return whether
4985 we unswitched the loop. Do not verify loop state here.
88b97037 4986 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 4987
b4ab7d34
KS
49882013-02-13 Kostya Serebryany <kcc@google.com>
4989
88b97037
UB
4990 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
4991 on x86_64 linux.
b4ab7d34
KS
4992 * sanitizer.def: Rename __asan_init to __asan_init_v1.
4993
bdcbe80c
DS
49942013-02-12 Dodji Seketeli <dodji@redhat.com>
4995
4996 Avoid instrumenting duplicated memory access in the same basic block
4997 * Makefile.in (asan.o): Add new dependency on hash-table.h
4998 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
4999 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
5000 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
5001 (free_mem_ref_resources, has_mem_ref_been_instrumented)
5002 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
5003 (get_mem_ref_of_assignment): New functions.
5004 (get_mem_refs_of_builtin_call): Extract from
5005 instrument_builtin_call and tweak a little bit to make it fit with
5006 the new signature.
5007 (instrument_builtin_call): Use the new
5008 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
5009 of is_gimple_builtin_call.
5010 (instrument_derefs, instrument_mem_region_access): Insert the
5011 instrumented memory reference into the hash table.
5012 (maybe_instrument_assignment): Renamed instrument_assignment into
5013 this, and change it to advance the iterator when instrumentation
5014 actually happened and return true in that case. This makes it
5015 homogeneous with maybe_instrument_assignment, and thus give a
5016 chance to callers to be more 'regular'.
5017 (transform_statements): Clear the memory reference hash table
5018 whenever we enter a new BB, when we cross a function call, or when
5019 we are done transforming statements. Use
5020 maybe_instrument_assignment instead of instrumentation. No more
5021 need to special case maybe_instrument_assignment and advance the
5022 iterator after calling it; it's now handled just like
5023 maybe_instrument_call. Update comment.
5024
4861a1f7
RB
50252013-02-13 Richard Biener <rguenther@suse.de>
5026
5027 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
5028 Fix loop discovery code.
5029
1c86bd80
VM
50302013-02-12 Vladimir Makarov <vmakarov@redhat.com>
5031
5032 PR inline-asm/56148
5033 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 5034 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
5035 the operand is not reloaded. Prefer to reload conflicting operand
5036 if earlyclobber and matching operands are the same.
5037
7cbda518
RB
50382013-02-12 Richard Biener <rguenther@suse.de>
5039
5040 PR lto/56297
5041 * lto-streamer-out.c (write_symbol): Do not output symbols
5042 for hard register variables.
5043
e68a4ef6
GJL
50442013-02-12 Georg-Johann Lay <avr@gjlay.de>
5045
5046 PR target/54222
5047 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
5048 (umulsidi3_insn, mulsidi3_insn): New insns.
5049
a72d8780 50502013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
5051
5052 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
5053 (struct tune_params): Add vec_costs field.
5054 * config/arm/arm.c (arm_builtin_vectorization_cost)
5055 (arm_add_stmt_cost): New functions.
5056 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
5057 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
5058 (arm_default_vec_cost): New struct of type cpu_vec_costs.
5059 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
5060 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
5061 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
5062 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
5063
43320568
RB
50642013-02-12 Richard Biener <rguenther@suse.de>
5065
5066 PR lto/56295
5067 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
5068 decls again if possible.
5069
a011aa39
RB
50702013-02-12 Richard Biener <rguenther@suse.de>
5071
5072 PR middle-end/56288
5073 * tree-ssa.c (verify_ssa_name): Fix check, move
5074 SSA_NAME_IN_FREE_LIST check up.
5075
6da26889
JJ
50762013-02-12 Jakub Jelinek <jakub@redhat.com>
5077 Steven Bosscher <steven@gcc.gnu.org>
5078
5079 PR rtl-optimization/56151
5080 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
5081 equal to op0 or op1, and last_insn pattern is CODE operation
5082 with MEM dest and one of the operands matches that MEM.
5083
f80e0faf
ST
50842013-02-11 Sriraman Tallam <tmsriramgoogle.com>
5085
5086 * doc/extend.texi: Document Function Multiversioning and "default"
5087 parameter string to target attribute.
5088 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
5089 target attribute parameter is "default".
5090 (ix86_compare_version_priority): Remove checks for target attribute.
5091 (ix86_mangle_function_version_assembler_name): Change error to sorry.
5092 Remove check for target attribute equal to NULL. Add assert.
5093 (ix86_generate_version_dispatcher_body): Change error to sorry.
5094
6c59ffd1
IS
50952013-02-11 Iain Sandoe <iain@codesourcery.com>
5096 Jack Howarth <howarth@bromo.med.uc.edu>
5097 Patrick Marlier <patrick.marlier@gmail.com>
5098
5099 PR libitm/55693
5100 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
5101 define ENDFILE_SPEC as TM_DESTRUCTOR.
5102 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
5103
a72d8780 51042013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
5105 Jack Howarth <howarth@bromo.med.uc.edu>
5106 Jakub Jelinek <jakub@redhat.com>
5107
5108 PR sanitizer/55617
5109 * config/darwin.c (cdtor_record): Rename ctor_record.
5110 (sort_cdtor_records): Rename sort_ctor_records.
5111 (finalize_dtors): New routine to sort destructors by
5112 priority before use in assemble_integer.
5113 (machopic_asm_out_destructor): Use finalize_dtors if needed.
5114
b63fe007
UB
51152013-02-11 Uros Bizjak <ubizjak@gmail.com>
5116
5117 PR rtl-optimization/56275
5118 * simplify-rtx.c (avoid_constant_pool_reference): Check that
5119 offset is non-negative and less than cmode size before
5120 calling simplify_subreg.
5121
8e89b5b5
RB
51222013-02-11 Richard Biener <rguenther@suse.de>
5123
5124 PR tree-optimization/56264
5125 * cfgloop.h (fix_loop_structure): Adjust prototype.
5126 * loop-init.c (fix_loop_structure): Return the number of
5127 newly discovered loops.
5128 * tree-cfgcleanup.c (repair_loop_structures): When new loops
5129 are discovered, do a full loop-closed SSA rewrite.
5130
b4a4b56d
RB
51312013-02-11 Richard Biener <rguenther@suse.de>
5132
5133 PR tree-optimization/56273
5134 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
5135 first VRP run.
5136 (check_array_ref): Fix missing newline in dumps.
5137 (search_for_addr_array): Likewise.
5138
0c885229
DE
51392013-02-09 David Edelsohn <dje.gcc@gmail.com>
5140
5141 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
5142
59ac9a55
JJ
51432013-02-09 Jakub Jelinek <jakub@redhat.com>
5144
5145 PR target/56256
5146 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
5147
25bb0bb5
VM
51482013-02-08 Vladimir Makarov <vmakarov@redhat.com>
5149
5150 PR rtl-optimization/56246
0c885229 5151 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
5152 reload pseudo.
5153 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
5154 constraints are satisfied.
5155
a698cc03
JL
51562013-02-08 Jeff Law <law@redhat.com>
5157
5158 PR debug/53948
5159 * emit-rtl.c (reg_is_parm_p): New function.
5160 * regs.h (reg_is_parm_p): New prototype.
5161 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
5162 callee-clobbered registers.
5163
e1122ddd
MM
51642013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
5165
5166 PR target/56043
5167 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
5168 If there is no implicit builtin declaration, just return NULL.
5169
19c5f6e6
UB
51702013-02-08 Uros Bizjak <ubizjak@gmail.com>
5171
5172 * config/i386/sse.md (FMAMODEM): New mode iterator.
5173 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
5174 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
5175
2480f2ca 51762013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 5177
2480f2ca
UB
5178 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
5179 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
5180 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
5181
51822013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
5183
5184 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
5185 (microblaze*-*-elf): Likewise.
5186 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
5187 LINK_SPEC.
5188 * config/microblaze/microblaze-c.c: Add builtin defines for
5189 _LITTLE_ENDIAN and _BIG_ENDIAN.
5190 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
5191 add to TARGET_DEFAULT flags.
76ef61fb 5192 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
5193 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
5194 * config/microblaze/microblaze.md: Update extendsidi2 and
5195 movdi_internal instructions to use low-order / high-order reg
5196 print_operands.
5197 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
5198 options and inversemask / mask of LITTLE_ENDIAN.
5199 * config/microblaze/t-microblaze: Expand multilib options to
5200 include mlittle-endian (le) and update exceptions patterns.
5201
600a5961
JJ
52022013-02-08 Jakub Jelinek <jakub@redhat.com>
5203
5df81313
JJ
5204 PR rtl-optimization/56195
5205 * lra-constraints.c (get_reload_reg): Don't reuse regs
5206 if they have smaller mode than requested, if they have
5207 wider mode than requested, try to return a SUBREG.
5208
600a5961
JJ
5209 PR tree-optimization/56250
5210 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
5211 if type is unsigned and code isn't MULT_EXPR.
5212
ff544649
GJL
52132013-02-08 Georg-Johann Lay <avr@gjlay.de>
5214
5215 PR tree-optimization/56064
5216 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
5217 bits according to mode.
5218 * fixed-value.h (fixed_from_double_int)
5219 (const_fixed_from_double_int): Adjust comments.
5220
e45cde98
RB
52212013-02-08 Richard Biener <rguenther@suse.de>
5222
5223 PR lto/56231
5224 * lto-streamer.h (struct data_in): Remove current_file, current_line
5225 and current_col members.
5226 * lto-streamer-out.c (lto_output_location): Stream changed bits
5227 en-block for efficiency.
5228 * lto-streamer-in.c (clear_line_info): Remove.
5229 (lto_input_location): Cache current file, line and column
5230 globally via local statics. Read changed bits en-block.
5231 (input_function): Do not call clear_line_info.
5232 (lto_read_body): Likewise.
5233 (lto_input_toplevel_asms): Likewise.
5234
c1ca73d8
MM
52352013-02-08 Michael Matz <matz@suse.de>
5236
5237 PR tree-optimization/52448
5238 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
5239 (nt_call_phase): New static.
5240 (add_or_mark_expr): Only mark accesses with newer phase than any
5241 call seen.
5242 (nonfreeing_call_p): New.
5243 (nt_init_block): Update nt_call_phase, mark blocks as visited.
5244 (nt_fini_block): Keep blocks marked as visited.
5245 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
5246
57548aa2
RB
52472013-02-08 Richard Biener <rguenther@suse.de>
5248
5249 * ira.c (ira): Free broken dominator information.
5250
8e10366f
UB
52512013-02-08 Uros Bizjak <ubizjak@gmail.com>
5252
5253 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
5254
f64fb0fa
MP
52552013-02-08 Marek Polacek <polacek@redhat.com>
5256
8e10366f 5257 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 5258
0375167b
RB
52592013-02-08 Richard Biener <rguenther@suse.de>
5260
5261 PR middle-end/56181
5262 * cfgloop.h (flow_loops_find): Adjust.
5263 (bb_loop_header_p): Declare.
5264 * cfgloop.c (bb_loop_header_p): New function split out from ...
5265 (flow_loops_find): ... here. Adjust function signature,
5266 support incremental loop structure update.
5267 (verify_loop_structure): Cleanup. Verify a loop is a loop.
5268 * cfgloopmanip.c (fix_loop_structure): Move ...
5269 * loop-init.c (fix_loop_structure): ... here.
5270 (apply_loop_flags): Split out from ...
5271 (loop_optimizer_init): ... here.
5272 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
5273 in incremental mode, only remove dead loops here.
5274
85d768f3
GJL
52752013-02-08 Georg-Johann Lay <avr@gjlay.de>
5276
5277 PR target/54222
5278 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
5279 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
5280 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
5281 (*round<mode>3.libgcc): New insns for fixed-modes.
5282 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
5283 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
5284 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
5285 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
5286 implementations. Define to __builtin_avr_absFX,
5287 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
5288 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
5289 __builtin_avr_countlsFX, respectively.
5290 * config/avr/avr-c.c (target.h): Include it.
5291 (enum avr_builtin_id): New enum.
5292 (avr_resolve_overloaded_builtin): New static function.
5293 (avr_register_target_pragmas): Use it to set
5294 targetm.resolve_overloaded_builtin.
5295 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
5296 tree nodes used by DEF_BUILTIN.
5297 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
5298 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
5299 <AVR_BUILTIN_xxBITS>: Same.
5300
661bc682
RB
53012013-02-08 Richard Biener <rguenther@suse.de>
5302
5303 * cfgloop.c (verify_loop_structure): Properly handle
5304 a loop exiting to another loop header.
5305 * ira-int.h (ira_loops): Remove.
5306 * ira.c (ira_loops): Remove.
5307 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
5308 (do_reload): Use loop_optimizer_finalize.
5309 * ira-build.c (create_loop_tree_nodes): Use get_loops and
5310 number_of_loops to access the loop tree.
5311 (more_one_region_p): Likewise.
5312 (finish_loop_tree_nodes): Likewise.
5313 (rebuild_regno_allocno_maps): Likewise.
5314 (mark_loops_for_removal): Likewise.
5315 (mark_all_loops_for_removal): Likewise.
5316 (remove_unnecessary_regions): Likewise.
5317 (ira_build): Likewise.
5318 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
5319
0d5049b2
RB
53202013-02-08 Richard Biener <rguenther@suse.de>
5321
5322 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
5323 * ipa-pure-const.c (analyze_function): Avoid calling
5324 mark_irreducible_loops twice.
8e10366f 5325 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 5326
499f32e8
DM
53272013-02-07 David S. Miller <davem@davemloft.net>
5328
5329 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
5330 on 'reg'.
5331 * var-tracking.c (vt_add_function_parameter): Test the presence of
5332 HAVE_window_save properly and do not remap argument registers when
5333 we have a leaf function.
5334
6edc3e32
UB
53352013-02-07 Uros Bizjak <ubizjak@gmail.com>
5336
5337 PR bootstrap/56227
5338 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
5339 instead of "ll".
5340 * config/i386/i386.c (ix86_print_operand): Ditto.
5341
5306401f
VM
53422013-02-07 Vladimir Makarov <vmakarov@redhat.com>
5343
6edc3e32 5344 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 5345
027ece11
VM
53462013-02-07 Vladimir Makarov <vmakarov@redhat.com>
5347
5348 PR rtl-optimization/56225
5349 * lra-constraints.c (process_alt_operands): Check that reload hard
5350 reg can hold value for strict_low_part.
5351
f980dfdb
JJ
53522013-02-07 Jakub Jelinek <jakub@redhat.com>
5353
5354 PR debug/56154
5355 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
5356 dwarf2out_end_function.
5357 (in_first_function_p, maybe_at_text_label_p,
5358 first_loclabel_num_not_at_text_label): New variables.
5359 (dwarf2out_var_location): In the first function find out
6edc3e32 5360 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
5361 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
5362 functions.
5363
73dd3123
EB
53642013-02-07 Eric Botcazou <ebotcazou@adacore.com>
5365
5366 PR rtl-optimization/56178
5367 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
5368 SUBREG of a register. Tidy up related block of code.
5369 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
5370 note if the source is a register or a SUBREG of a register.
5371
e3936f47
JJ
53722013-02-07 Jakub Jelinek <jakub@redhat.com>
5373
5374 PR target/56228
5375 * config/rs6000/rs6000.md (ptrm): New mode attr.
5376 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
5377 call_value_indirect_aix<pttrsize>,
5378 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
5379 m in constraints.
5380
d96d674b
MH
53812013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
5382
5383 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
5384 if -bnortl. Convert to strcmp and strncmp.
5385
921f2dee
AM
53862013-02-07 Alan Modra <amodra@gmail.com>
5387
5388 PR target/54009
5389 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
5390 addresses won't wrap when offsetting.
5391 (rs6000_secondary_reload): Provide secondary reloads needed for
5392 wrapping LO_SUM addresses.
5393
d09c7dba
TS
53942013-02-06 Thomas Schwinge <thomas@codesourcery.com>
5395
5396 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
5397 MACH, just __MACH__.
5398
a44bbd48
RB
53992013-02-06 Richard Biener <rguenther@suse.de>
5400
5401 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
5402 instead of calling fix_loop_structure.
5403
6d840d99
JJ
54042013-02-06 Jakub Jelinek <jakub@redhat.com>
5405
5406 PR middle-end/56217
5407 * omp-low.c (use_pointer_for_field): Return false if
5408 lower_send_shared_vars doesn't generate any copy-out code.
5409
0f33baa9
TV
54102013-02-06 Tom de Vries <tom@codesourcery.com>
5411
5412 PR rtl-optimization/56131
5413 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
5414 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
5415 of the label is NULL. Add comment.
5416
11f1e3ab
JJ
54172013-02-05 Jakub Jelinek <jakub@redhat.com>
5418
31502f9f
JJ
5419 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
5420
a74db9bd
JJ
5421 PR sanitizer/55374
5422 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
5423 (STATIC_LIBTSAN_LIBS): Likewise.
5424 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
5425 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
5426 is defined, don't add anything else beyond that.
5427 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
5428 (LINK_COMMAND_SPEC): Use them.
5429
11f1e3ab
JJ
5430 PR tree-optimization/56205
5431 * tree-stdarg.c (check_all_va_list_escapes): Return true if
5432 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
5433 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
5434
14ac6aa2
RB
54352013-02-05 Richard Biener <rguenther@suse.de>
5436
5437 PR tree-optimization/53342
5438 PR tree-optimization/53185
5439 * tree-vectorizer.h (vect_check_strided_load): Remove.
5440 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
5441 not disallow peeling for vectorized strided loads.
5442 (vect_check_strided_load): Make static and simplify.
5443 (vect_analyze_data_refs): Adjust.
5444 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
5445 correctly when vectorizing strided loads.
5446
6f22445a
RB
54472013-02-05 Richard Biener <rguenther@suse.de>
5448
5449 * doc/install.texi: Refer to ISL, not PPL.
5450
39f9719e
JH
54512013-02-05 Jan Hubicka <jh@suse.cz>
5452
ec4224ac
JH
5453 PR tree-optimization/55789
5454 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
5455
54562013-02-05 Jan Hubicka <jh@suse.cz>
5457
5458 PR tree-optimization/55789
39f9719e
JH
5459 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
5460 the dead call anyway.
5461
956d3b33
EB
54622013-02-05 Eric Botcazou <ebotcazou@adacore.com>
5463
5464 PR sanitizer/55374
5465 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
5466
54672013-02-04 Alexander Potapenko <glider@google.com>
5468 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
5469 Jakub Jelinek <jakub@redhat.com>
5470
5471 PR sanitizer/55617
5472 * config/darwin.c (sort_ctor_records): Stabilized qsort
5473 on constructor priority by using original position.
5474 (finalize_ctors): New routine to sort constructors by
5475 priority before use in assemble_integer.
5476 (machopic_asm_out_constructor): Use finalize_ctors if needed.
5477
7ac3af38
JJ
54782013-02-04 Jakub Jelinek <jakub@redhat.com>
5479
5480 PR libstdc++/54314
5481 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
5482 about visibility on artificial decls.
5483 * config/sol2.c (solaris_assemble_visibility): Likewise.
5484
152689dc
KT
54852013-02-04 Kai Tietz <ktietz@redhat.com>
5486
5487 PR target/56186
5488 * config/i386/i386.c (function_value_ms_64): Add additional valtype
5489 argument and improve checking of return-argument types for 16-byte
5490 modes.
5491 (ix86_function_value_1): Add additional valtype argument on call
5492 of function_value_64.
5493 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
5494 handling infunction_value_64 function.
5495
2b5987b5
MGD
54962013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
5497
7ac3af38 5498 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 5499
14597080
RB
55002013-02-04 Richard Biener <rguenther@suse.de>
5501
5502 PR tree-optimization/56188
5503 * tree-ssa-structalias.c (label_visit): Consider case with
5504 initially non-empty points-to set.
5505 (perform_var_substitution): Dump node mapping and clean up.
5506
ed73881e
RG
55072013-02-04 Richard Guenther <rguenther@suse.de>
5508
5509 PR lto/56168
5510 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
5511 node prevail as last resort.
5512 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 5513 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 5514
139a0707
RB
55152013-02-04 Richard Biener <rguenther@suse.de>
5516
5517 PR tree-optimization/56113
5518 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
5519 Merge into ...
5520 (equiv_class_lookup_or_add): ... this.
5521 (label_visit): Adjust and fix error in previous patch.
5522 (perform_var_substitution): Adjust.
5523
50fe8924
OE
55242013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
5525
5526 * config/sh/divtab.c: Fix formatting and comments throughout the file.
5527 * config/sh/sh4-300.md: Likewise.
5528 * config/sh/sh4a.md: Likewise.
5529 * config/sh/constraints.md: Likewise.
5530 * config/sh/sh.md: Likewise.
5531 * config/sh/netbsd-elf.h: Likewise.
5532 * config/sh/predicates.md: Likewise.
5533 * config/sh/sh-protos.h: Likewise.
5534 * config/sh/ushmedia.h: Likewise.
5535 * config/sh/linux.h: Likewise.
5536 * config/sh/sh.c: Likewise.
5537 * config/sh/superh.h: Likewise.
5538 * config/sh/elf.h: Likewise.
5539 * config/sh/sh4.md: Likewise.
5540 * config/sh/sh.h: Likewise.
5541
1a04ac2b
JDA
55422013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5543
5544 * config/pa/constraints.md: Adjust unused letters. Change "T"
5545 constraint to match_test floating_point_store_memory_operand().
5546 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
5547 (base14_operand): New.
5548 (floating_point_store_memory_operand): New.
5549 (integer_store_memory_operand): Revise to use base14_operand and
5550 reg_plus_base_memory_operand.
5551 (move_dest_operand): Allow symbolic_memory_operands.
5552 (symbolic_memory_operand): Check for LO_SOM.
5553 (symbolic_operand): Change default case to break.
5554 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
5555 CONST_DOUBLE values to be reloaded by putting them into memory when
5556 the destination is a floating point register.
5557 (movdf): Remove code to handle CONST_DOUBLE.
5558 (movsf): Likewise.
5559 (reload_indf_r1): New.
5560 (reload_insf_r1): New.
5561 Consistently use "Q" and "T" constraints with integer and floating
5562 point move instructions, respectively.
5563 (movdi): Remove FAIL.
5564 Change predicate for source operand unamed DImode move from
5565 general_operand to move_src_operand.
5566 (umulsidi3): Change predicate for destination operand to
5567 register_operand.
5568 Likewise for similar unamed patterns.
5569 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
5570 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
5571 (hppa_legitimize_address): Simplify mask calculation.
5572 (pa_emit_move_sequence): Revised handling of secondary reloads from
5573 REG+D addresses for floating point loads and stores. Directly handle
5574 loading CONST0_RTX (mode) to a floating point register.
5575 (pa_secondary_reload): Handle reloading DF and SFmode constant values
5576 to floating point registers. Don't restrict secondary reloads to
5577 floating point registers to integer modes. Revise some comments and
5578 cleanup some code.
5579 (TARGET_LEGITIMATE_ADDRESS_P): Define.
5580 (pa_legitimate_address_p): New.
5581 (pa_legitimize_reload_address): New.
5582 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
5583 (STRICT_REG_OK_FOR_BASE_P): New.
5584 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
5585 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
5586
3bf65591
DE
55872013-02-03 David Edelsohn <dje.gcc@gmail.com>
5588 Andrew Dixie <andrewd@gentrack.com>
5589
5590 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
5591 flag set.
5592
c0a8a3e6
RS
55932013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
5594
5595 * expmed.c (extract_bit_field_1): Pass the full width of the
5596 structure to get_best_reg_extraction_insn.
5597
99113dff
DE
55982013-02-01 David Edelsohn <dje.gcc@gmail.com>
5599
5600 PR target/54601
5601 * configure.ac (use_cxa_atexit): Add AIX.
5602 * configure: Regenerate.
5603
5604 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
5605
ddd84654
JJ
56062013-02-01 Jakub Jelinek <jakub@redhat.com>
5607
5608 PR debug/54793
5609 * final.c (need_profile_function): New variable.
5610 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
5611 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
5612 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
5613 notes, targetm.asm_out.function_prologue doesn't emit anything,
5614 HAVE_prologue and profiler should be emitted before prologue,
5615 set need_profile_function instead of emitting it.
5616 (final_scan_insn): If need_profile_function, emit
5617 profile_function on the first NOTE_INSN_BASIC_BLOCK or
5618 NOTE_INSN_FUNCTION_BEG note.
5619
56202013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
5621
5622 * config/rs6000/rs6000.md (smulditi3): New.
5623 (umulditi3): New.
5624
ff2a9d88
RH
5625 * config/alpha/alpha.md (umulditi3): New.
5626
14d52b90
DE
56272013-02-01 David Edelsohn <dje.gcc@gmail.com>
5628
5629 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
5630 (ASM_OUTPUT_ALIGNED_LOCAL): New.
5631
8c7ca45c
RB
56322013-02-01 Richard Biener <rguenther@suse.de>
5633
5634 PR tree-optimization/56113
5635 * tree-ssa-structalias.c (label_visit): Reduce work for
5636 single-predecessor nodes.
5637
9f419393
EB
56382013-02-01 Eric Botcazou <ebotcazou@adacore.com>
5639
5640 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
5641 range isn't testing for zero.
5642
c5f4be84
SB
56432013-01-31 Steven Bosscher <steven@gcc.gnu.org>
5644
5645 PR middle-end/56113
5646 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
5647
dbdbd982
NC
56482013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
5649 Nick Clifton <nickc@redhat.com>
5650
5651 * config/v850/constraints.md (Q): Define as a memory constraint.
5652 * config/v850/predicates.md (label_ref_operand): New predicate.
5653 (e3v5_shift_operand): New predicate.
5654 (ior_operator): New predicate.
5655 * config/v850/t-v850: Add e3v5 multilib.
5656 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
5657 (v850_gen_movdi): Prototype.
5658 * config/v850/v850.c: Add support for e3v5 architecture.
5659 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
5660 TARGET_V850E_UP.
5661 (construct_save_jarl): Add e3v5 long JARL support.
5662 (v850_adjust_insn_length): New function. Adjust length of call
5663 insns when using e3v5 instructions.
5664 (v850_gen_movdi): New function: Generate instructions to move a
5665 DImode value.
5666 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
5667 (CPP_SPEC): Define __v850e3v5__ as appropriate.
5668 (TARGET_USE_FPU): Enable for e3v5.
5669 (CONST_OK_FOR_W): New macro.
5670 (ADJUST_INSN_LENGTH): Define.
5671 * config/v850/v850.md (UNSPEC_LOOP): Define.
5672 (attr cpu): Add v850e3v5.
5673 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
5674 (movdi): New pattern.
5675 (movdi_internal): New pattern.
5676 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
5677 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
5678 (cstoresf4): Likewise.
5679 (cstoredf4): Likewise.
5680 (insv): New pattern.
5681 (rotlso3_a): New pattern.
5682 (rotlsi3_b): New pattern
5683 (rotlsi3_v850e3v5): New pattern.
5684 (doloop_begin): New pattern.
5685 (fix_loop_counter): New pattern.
5686 (doloop_end): New pattern.
5687 (branch_normal): Add e3v5 long branch support.
5688 (branch_invert): Likewise.
5689 (branch_z_normal): Likewise.
5690 (branch_z_invert): Likewise.
5691 (branch_nz_normal): Likewise.
5692 (branch_nz_invert): Likewise.
5693 (call_internal_short): Add e3v5 register-indirect JARL support.
5694 (call_internal_long): Likewise.
5695 (call_value_internal_short): Likewise.
5696 (call_value_internal_long): Likewise.
5697 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
5698 (mloop): New option.
5699 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 5700 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 5701
73861a41
PK
57022013-01-31 Paul Koning <ni1d@arrl.net>
5703
5704 PR debug/55059
5705 PR debug/54508
5706 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
5707 children if parent is a class.
5708 (prune_unused_types_prune): Don't add DW_AT_declaration.
5709
e44978dc
RB
57102013-01-31 Richard Biener <rguenther@suse.de>
5711
5712 PR tree-optimization/56157
5713 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
5714 match up operand with SLP child.
5715
90b10dec
JM
57162013-01-31 Jason Merrill <jason@redhat.com>
5717
04d2dadd 5718 PR debug/54410
90b10dec
JM
5719 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
5720 parameters the first time.
5721 (gen_scheduled_generic_parms_dies): Check completeness here.
5722
6e616110
RB
57232013-01-31 Richard Biener <rguenther@suse.de>
5724
5725 PR middle-end/53073
5726 * common.opt (faggressive-loop-optimizations): New flag,
5727 enabled by default.
5728 * doc/invoke.texi (faggressive-loop-optimizations): Document.
5729 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
5730 infer_loop_bounds_from_undefined by it.
5731
636f59cf
RB
57322013-01-31 Richard Biener <rguenther@suse.de>
5733
5734 PR tree-optimization/56150
5735 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
5736 visit virtual operands.
5737 (find_uses_to_rename_bb): Likewise.
5738
57392013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
5740
5741 PR tree-optimization/56150
5742 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
5743 mixed store non-store stmts.
5744
32887460
JJ
57452013-01-30 Jakub Jelinek <jakub@redhat.com>
5746
e60e09a0
JJ
5747 PR sanitizer/55374
5748 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
5749 LIBASAN_EARLY_SPEC is defined.
5750 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
5751 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
5752 before %o.
5753 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
5754
32887460
JJ
5755 PR c++/55742
5756 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
5757 invalid args instead of ICEing on it.
5758 (ix86_valid_target_attribute_tree): Return error_mark_node if
5759 ix86_valid_target_attribute_inner_p failed.
5760 (ix86_valid_target_attribute_p): Return false only if
5761 ix86_valid_target_attribute_tree returned error_mark_node. Allow
5762 target("default") attribute.
5763 (sorted_attr_string): Change argument from const char * to tree,
5764 merge in all target attribute arguments rather than just one.
5765 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
5766 instead of free. Avoid using strcat.
5767 (ix86_mangle_function_version_assembler_name): Mangle
5768 target("default") as if no target attribute is present. Adjust
5769 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
5770 instead of xmalloc and XDELETEVEC instead of free.
5771 (ix86_function_versions): Don't return true if one of the decls
5772 doesn't have target attribute. If they don't and one of the decls
5773 is DECL_FUNCTION_VERSIONED, report an error. Adjust
5774 sorted_attr_string caller. Use XDELETEVEC instead of free.
5775 (ix86_supports_function_versions): Remove.
5776 (make_name): Fix up formatting.
5777 (make_dispatcher_decl): Remove resolver_name and its initialization.
5778 Avoid leaking memory.
5779 (is_function_default_version): Return true if there is
5780 target("default") attribute rather than no target attribute at all.
5781 (make_resolver_func): Avoid leaking memory.
5782 (ix86_generate_version_dispatcher_body): Likewise.
5783 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
5784 * target.def (supports_function_versions): Remove.
5785 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
5786 * doc/tm.texi: Regenerated.
5787
73cca0cc
VM
57882013-01-30 Vladimir Makarov <vmakarov@redhat.com>
5789
5790 PR rtl-optimization/56144
5791 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
5792 for values with side effects.
5793
11452e7b
RB
57942013-01-30 Richard Biener <rguenther@suse.de>
5795
5796 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
5797 (sparseset_pop): Likewise.
5798 * cfganal.c (compute_idf): Likewise. Increase work-stack size
5799 to be able to use quick_push in the worker loop.
5800
01cb1ef5
MP
58012013-01-30 Marek Polacek <polacek@redhat.com>
5802
5803 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
5804
e892936e
RB
58052013-01-30 Richard Biener <rguenther@suse.de>
5806
5807 PR lto/56147
6edc3e32 5808 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 5809
cc06c01d
GJL
58102013-01-30 Georg-Johann Lay <avr@gjlay.de>
5811
5812 PR tree-optimization/56064
5813 * fixed-value.c (fixed_from_double_int): New function.
5814 * fixed-value.h (fixed_from_double_int): New prototype.
5815 (const_fixed_from_double_int): New static inline function.
5816 * fold-const.c (native_interpret_fixed): New static function.
5817 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
5818 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
5819 (native_encode_fixed): New static function.
5820 (native_encode_expr) <FIXED_CST>: Use it.
5821 (native_interpret_int): Move double_int worker code to...
5822 * double-int.c (double_int::from_buffer): ...this new static method.
5823 * double-int.h (double_int::from_buffer): Prototype it.
5824
d394a308
RB
58252013-01-30 Richard Biener <rguenther@suse.de>
5826
5827 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
5828 New pointer-map and obstack.
5829 (init_alias_vars): Allocate pointer-map and obstack.
5830 (delete_points_to_sets): Free them.
5831 (find_what_var_points_to): Cache result.
5832 (find_what_p_points_to): Adjust for changed interface of
5833 find_what_var_points_to.
5834 (compute_points_to_sets): Likewise.
5835 (ipa_pta_execute): Likewise.
5836
20804d96
RO
58372013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5838
5839 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
5840 * configure: Regenerate.
5841 * config.in: Regenerate.
5842 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
5843 #nobits/#progbits if supported.
5844
a7ad88a2
OE
58452013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
5846
5847 PR target/56121
5848 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
5849 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
5850 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
5851
7af79f92
GY
58522013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
5853
91bfca59
OE
5854 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
5855 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 5856
753bcf7b
GY
58572013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
5858
91bfca59
OE
5859 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
5860 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 5861
8cbc2ea8
GY
58622013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
5863
91bfca59
OE
5864 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
5865 declaration.
5866 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
5867 * config/arm/cortex-a7.md: New bypasses using
5868 arm_mac_accumulator_is_result.
8cbc2ea8 5869
697a3325
GY
58702013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
5871
91bfca59 5872 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 5873 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
5874 (cortex_a7_fpfmad): New reservation.
5875 (cortex_a7_fpmacs): Use ffmas and update required units.
5876 (cortex_a7_fpmuld): Update required units and latency.
5877 (cortex_a7_fpmacd): Likewise.
5878 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
5879 (cortex_a7_neon). Likewise.
5880 (bypass) Update participating units.
697a3325 5881
29637783
GY
58822013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
5883
91bfca59
OE
5884 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
5885 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
5886 from fmac to ffma.
5887 * config/arm/vfp11.md (vfp_farith): Use ffmas.
5888 (vfp_fmul): Use ffmad.
5889 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
5890 (cortex_r4_fmacd): Use ffmad.
5891 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
5892 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
5893 (cortex_a9_fmacd): Use ffmad.
5894 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
5895 (cortex_a8_vfp_macd): Use ffmad.
5896 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
5897 (cortex_a5_fpmacd): Use ffmad.
5898 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
5899 (cortex_a15_vfp_macd): Use ffmad.
5900 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 5901
2ee8a2d5
JM
59022013-01-29 Jason Merrill <jason@redhat.com>
5903
5904 PR libstdc++/54314
5905 * varasm.c (default_assemble_visibility): Don't warn about
5906 visibility on artificial decls.
5907
78d087bc
RB
59082013-01-29 Richard Biener <rguenther@suse.de>
5909
5910 PR tree-optimization/56113
5911 * tree-ssa-structalias.c (equiv_class_lookup): Also return
5912 the bitmap leader.
5913 (label_visit): Free duplicate bitmaps and record the leader instead.
5914 (perform_var_substitution): Adjust.
5915
83ba4d6f
RB
59162013-01-29 Richard Biener <rguenther@suse.de>
5917
5918 PR tree-optimization/55270
5919 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
5920 the CFG, schedule loops for fixup.
5921
66dfe13f
NC
59222013-01-29 Nick Clifton <nickc@redhat.com>
5923
5924 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
5925 SP_REG.
5926
5a579c3b
LE
59272013-01-28 Leif Ekblad <leif@rdos.net>
5928
5929 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
5930 * config/i386/i386.h (TARGET_RDOS): New macro.
5931 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
5932 * config/i386/i386.c (ix86_option_override_internal): For 64bit
5933 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
5934 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
5935 DEFAULT_LARGE_SECTION_THRESHOLD.
5936 * config/i386/i386.md (R14_REG, R15_REG): New constants.
5937 * config/i386/rdos.h: New file.
5938 * config/i386/rdos64.h: New file.
5939
51e44392
BS
59402013-01-28 Bernd Schmidt <bernds@codesourcery.com>
5941
5942 PR other/54814
5943 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
5944 TEST_HARD_REG_BIT.
5945
db1fb332
JJ
59462013-01-28 Jakub Jelinek <jakub@redhat.com>
5947
5948 PR rtl-optimization/56117
5949 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
5950 call cselib_lookup_from_insn on the MEM before calling
5951 add_insn_mem_dependence.
5952
16917761
RB
59532013-01-28 Richard Biener <rguenther@suse.de>
5954
5955 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
5956 to a stmt that didn't have one.
5957 (copy_phis_for_bb): Likewise for PHI arguments.
5958 (copy_debug_stmt): Likewise for debug stmts.
5959
b9fc0497
RB
59602013-01-28 Richard Biener <rguenther@suse.de>
5961
5962 PR tree-optimization/56034
6edc3e32 5963 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
5964 (partition_builtin_p): Adjust.
5965 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
5966 it is the last partition.
5967 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
5968 up the vertex for the definition.
5969 (classify_partition): Classify whether a partition is a
5970 PKIND_REDUCTION, thus has uses outside of the loop.
5971 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
5972 Merge all PKIND_REDUCTION partitions into the last partition.
5973 (tree_loop_distribution): Seed partitions from reductions as well.
5974
aa710d25
JJ
59752013-01-28 Jakub Jelinek <jakub@redhat.com>
5976
0bfbca58
JJ
5977 PR tree-optimization/56125
5978 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
5979 pow(x,c) into sqrt(x) * powi(x, n/2) or
5980 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
5981 optimizing for size.
5982 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
5983 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
5984 integer.
5985
aa710d25
JJ
5986 PR tree-optimization/56094
5987 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
5988 to UNKNOWN_LOCATION while gimplifying expr.
5989
77dc5297
UB
59902013-01-27 Uros Bizjak <ubizjak@gmail.com>
5991
5992 PR target/56114
5993 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
5994 operand 0 in movabs insn template for -masm=intel asm alternative.
5995 (*movabs<mode>_2): Ditto for operand 1.
5996
0bfbca58 59972013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
5998
5999 PR target/54663
6000 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
6001 of microblaze-c.o
6002
0bfbca58 60032013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
6004
6005 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
6006 tm_file.
6007
0bfbca58 60082013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
6009
6010 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
6011 Undef to avoid warning.
6012
478f60f9
MH
60132013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
6014
6015 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
6016 * configure: Regenerate.
6017
d7fa6ee2
JJ
60182013-01-25 Jakub Jelinek <jakub@redhat.com>
6019
6020 PR tree-optimization/56098
6021 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
6022 for stmts with volatile ops.
6023 (cond_store_replacement): Don't optimize if assign has volatile ops.
6024 (cond_if_else_store_replacement_1): Don't optimize if either
6025 then_assign or else_assign have volatile ops.
6026 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
6027 volatile ops.
6028
f8fe87bd
GJL
60292013-01-25 Georg-Johann Lay <avr@gjlay.de>
6030
6031 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
6032
28398d0d
GJL
60332013-01-25 Georg-Johann Lay <avr@gjlay.de>
6034
6035 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
6036 missing ':' in asm example.
6037
b7d7d917
TB
60382013-01-25 Tejas Belagod <tejas.belagod@arm.com>
6039
6040 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
6041 entries into lane and laneq entries.
77dc5297
UB
6042 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
6043 Remove AdvSIMD scalar modes.
b7d7d917
TB
6044 (aarch64_sq<r>dmulh_laneq<mode>): New.
6045 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
6046 modes.
6047 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
6048 builtin implementations to relfect changes in RTL in aarch64-simd.md.
6049 * config/aarch64/iterators.md (VCOND): New.
6050 (VCONQ): New.
6051
556f9906
GJL
60522013-01-25 Georg-Johann Lay <avr@gjlay.de>
6053
6054 PR target/54222
6055 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
6056 Add NULL LIBNAME argument to existing definitions.
6057 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
6058 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
6059 * config/avr/avr.c (DEF_BUILTIN): Same.
6060 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
6061 (avr_expand_builtin): Expand to a vanilla call if a libgcc
6062 implementation is available (DECL_ASSEMBLER_NAME is set).
6063 (avr_fold_absfx): New static function.
6064 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
6065 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
6066 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
6067 AVR_BUILTIN_ABSLLK.
6068 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
6069 (abshk, absk, abslk, absllk): Provide as static inline functions.
6070
1f546bbb
MP
60712013-01-25 Marek Polacek <polacek@redhat.com>
6072
6073 PR tree-optimization/56035
6074 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
6075
7e184bd7
UB
60762012-01-24 Uros Bizjak <ubizjak@gmail.com>
6077
6078 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
6079 (*movtf_internal_rex64): Add (!o,C) alternative
6080 (*movxf_internal_rex64): Ditto.
6081 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
6082
f5ba49ac
SM
60832013-01-24 Shenghou Ma <minux.ma@gmail.com>
6084
6085 * doc/invoke.texi: fix typo.
6086 * doc/objc.texi: fix typo.
6087
a6343728
RS
60882013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
6089
6090 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
6091 for the first two alternatives.
6092
cd030c07
DN
60932013-01-24 Diego Novillo <dnovillo@google.com>
6094
77dc5297 6095 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
6096 (ggc-zone.o): Remove.
6097 * configure.ac: Remove option --with-gc.
6098 * configure: Re-generate.
6099 * doc/install.texi: Remove documentation for --with-gc.
6100 * gengtype.c (write_enum_defn): Remove. Update all users.
6101 (write_Types_process_field): Remove generation of gt_e_* argument.
6102 (output_type_enum): Remove. Update all users.
6103 (write_enum_defn): Remove. Update all users.
6104 (enum alloc_zone): Remove. Update all users.
77dc5297 6105 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
6106 * ggc-common.c (ggc_splay_alloc): Remove first argument.
6107 Update all callers.
6108 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 6109 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
6110 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
6111 Update all users.
aaf1e810 6112 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
6113 (struct alloc_zone): Remove.
6114 (ggc_internal_alloc_zone_stat): Remove.
6115 (ggc_internal_cleared_alloc_zone_stat): Remove.
6116 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
6117 (ggc_pch_count_object): Remove last argument. Update all users.
6118 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
6119 (struct alloc_zone): Remove.
6120 * ggc-zone.c: Remove.
77dc5297 6121 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
6122 (struct alloc_zone): Remove.
6123 (ggc_alloc_typed_stat): Remove.
6124 (ggc_alloc_typed): Remove.
6125 (ggc_splay_alloc): Remove first argument.
6126 (rtl_zone): Remove. Update all users.
6127 (tree_zone): Remove. Update all users.
6128 (tree_id_zone): Remove. Update all users.
6129 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 6130 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 6131 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 6132 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 6133
a861ffa4
GJL
61342013-01-24 Georg-Johann Lay <avr@gjlay.de>
6135
6136 * config/avr/avr.c (avr_out_fract): Make register numbers that
6137 might be outside of source operand signed.
6138
593c0ddd
UB
61392013-01-24 Uros Bizjak <ubizjak@gmail.com>
6140
6141 * config/i386/constraints.md (Yf): New constraint.
6142 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
6143 of f constraint to conditionaly disable x87 register preferences.
6144 (*movdf_internal): Ditto.
6145 (*movsf_internal): Ditto.
6146
e86c0101
SB
61472013-01-24 Steven Bosscher <steven@gcc.gnu.org>
6148
6149 PR inline-asm/55934
6150 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
6151 that have operands with impossible constraints.
6152 Add a FIXME for a speed-up opportunity.
6153 * lra-constraints.c (process_alt_operands): Verify that a class
6154 selected from constraints on asms is valid for the operand mode.
6155 (curr_insn_transform): Remove incorrect comment.
6156
f6fee35f
DE
61572013-01-23 David Edelsohn <dje.gcc@gmail.com>
6158
6159 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
6160 TOC operand is a valid symbol ref in the constant pool.
6161
61622013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 6163
aaf1e810 6164 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 6165
dc62d7d1
GJL
61662013-01-23 Georg-Johann Lay <avr@gjlay.de>
6167
6168 PR target/54222
6169 * config/avr/stdfix.h: New file.
6170 * t-avr (stdfix-gcc.h): New rule to build it.
6171 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
6172
2660d12d
KS
61732013-01-23 Kostya Serebryany <kcc@google.com>
6174
77dc5297
UB
6175 * config/darwin.h: remove dependency on
6176 CoreFoundation (asan on Mac OS).
2660d12d 6177
a70418fc
JJ
61782013-01-23 Jakub Jelinek <jakub@redhat.com>
6179
6180 PR target/49069
6181 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
6182 instead of cmpdi_operand for first comparison operand.
6183 Don't assert that comparison operands aren't both constants.
6184
47876a2a
JW
61852013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
6186
6187 * doc/install.texi (Downloading the Source): Update references to
6188 downloading separate components.
6189
61902013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
6191
6192 * doc/extend.texi (__int128): Improve grammar.
6193
47876a2a 61942013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
6195
6196 PR target/56028
6197 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
6198 alternative to (o,r).
6199 (*movdi_internal_rex64): Remove (!o,n) alternative.
6200 (DImode immediate->memory splitter): Remove.
6201 (DImode immediate->memory peephole2): Remove.
6202 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
6203 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
6204 alternative to (!o,*r).
6205 (*movtf_internal_sse): New pattern.
6206 (*movxf_internal_rex64): New pattern.
6207 (*movxf_internal): Disable for TARGET_64BIT.
6208 (*movdf_internal_rex64): Remove (!o,F) alternative.
6209
3a984f10
JJ
62102013-01-22 Jakub Jelinek <jakub@redhat.com>
6211
502498d5
JJ
6212 PR middle-end/56074
6213 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
6214 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
6215 * tree-vect-loop-manip.c (find_loop_location): Also ignore
6216 stmt locations where LOCATION_LOCUS of the stmt location is
6217 UNKNOWN_LOCATION or BUILTINS_LOCATION.
6218
3a984f10
JJ
6219 PR target/55686
6220 * config/i386/i386.md (UNSPEC_STOS): New.
6221 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
6222 *strsetqi_1): Add UNSPEC_STOS.
6223
fa817f7f
PC
62242013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
6225
6226 PR c++/56067
6227 * doc/invoke.texi: Remove left over -Wsynth example.
6228
8f498c1b
JJ
62292013-01-21 Jakub Jelinek <jakub@redhat.com>
6230
6231 PR tree-optimization/56051
6232 * fold-const.c (fold_binary_loc): Don't fold
6233 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
6234 a narrowing conversion, or widening conversion from signed
6235 to unsigned.
6236
47876a2a 62372013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
6238
6239 PR rtl-optimization/56023
6240 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
6241 dependent on debug instruction.
6242
5b9db1bc
MJ
62432013-01-21 Martin Jambor <mjambor@suse.cz>
6244
6245 PR middle-end/56022
6246 * function.c (allocate_struct_function): Call
6247 invoke_set_current_function_hook earlier.
6248
e8bb7d68
JJ
62492013-01-21 Jakub Jelinek <jakub@redhat.com>
6250
6251 * reload1.c (init_reload): Only initialize reload_obstack
6252 during the first call.
6253
616a4e32
MP
62542013-01-21 Marek Polacek <polacek@redhat.com>
6255
6256 * cfgloop.c (verify_loop_structure): Fix up grammar.
6257
4401981b
YHH
62582013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
6259
6260 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
6261 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
6262
8e87740b
RR
62632013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6264
6265 PR target/56058
6266 * config/arm/marvell-pj4.md: Update copyright year.
6267 Fix up use of alu to alu_reg and simple_alu_imm.
6268
47876a2a 62692013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
6270
6271 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
6272
89d56d79
VM
62732013-01-20 Vladimir Makarov <vmakarov@redhat.com>
6274
6275 PR target/55433
6276 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 6277 insn for secondary memory move when memory mode should be different.
89d56d79 6278
fe603553
JDA
62792013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6280
6281 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
6282 atomic_storedi_1): New patterns.
6283
01284895
VK
62842013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
6285
6286 btver2 pipeline descriptions.
6287 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
6288 descriptions.
6289 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 6290 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
6291 type attributes.
6292 * config/i386/btver2.md: New file describing btver2 pipelines.
6293
5630e3e1
JL
62942013-01-19 Andrew Pinski <apinski@cavium.com>
6295
6296 PR tree-optimization/52631
6297 * tree-ssa-sccvn (visit_use): Before looking up the original
6298 statement, try looking up the simplified expression.
6299
650ae806
AG
63002013-01-19 Anthony Green <green@moxielogic.com>
6301
6302 * config/moxie/moxie.c (moxie_expand_prologue): Set
6303 current_function_static_stack_size.
6304
e300ec2d
JJ
63052013-01-18 Jakub Jelinek <jakub@redhat.com>
6306
6307 PR tree-optimization/56029
6308 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
6309 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
6310
a3d7af04
SS
63112013-01-18 Sharad Singhai <singhai@google.com>
6312
6313 PR tree-optimization/55995
6314 * dumpfile.c (dump_loc): Print location only if available.
6315 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
6316
66aa7879
VM
63172013-01-18 Vladimir Makarov <vmakarov@redhat.com>
6318
6319 PR target/55433
6320 * lra-constraints.c (curr_insn_transform): Reuse original insn for
6321 secondary memory move.
6322 (inherit_reload_reg): Use rclass instead of cl for
6323 check_secondary_memory_needed_p.
6324
3f0fee7b
JJ
63252013-01-18 Jakub Jelinek <jakub@redhat.com>
6326
6327 PR middle-end/56015
6328 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 6329 the case where writing real complex part of target modifies op1.
3f0fee7b 6330
70c67693
JG
63312013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
6332
6333 * config/aarch64/aarch64-simd.md
6334 (aarch64_vcond_internal<mode>): Handle unordered cases.
6335 * config/aarch64/iterators.md (v_cmp_result): New.
6336
df8de9b3
YHH
63372013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
6338 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6339
6340 * config/arm/marvell-pj4.md: New file.
6341 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
6342 * config/arm/arm.md (generic_sched): Add marvell_pj4.
6343 (generic_vfp): Likewise.
6344 * config/arm/arm-cores.def: Add marvell-pj4.
6345 * config/arm/arm-tune.md: Regenerate.
6346 * config/arm/arm-tables.opt: Regenerate.
6347 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
6348 * doc/invoke.texi: Document marvell-pj4.
6349
be30c356
TB
63502013-01-18 Tejas Belagod <tejas.belagod@arm.com>
6351
6352 * config/aarch64/arm_neon.h: Map scalar types to standard types.
6353
0bfbca58 63542013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
6355
6356 PR debug/54114
6357 PR debug/54402
6358 PR debug/49888
6359 * var-tracking.c (negative_power_of_two_p): New.
6360 (global_get_addr_cache, local_get_addr_cache): New.
6361 (get_addr_from_global_cache, get_addr_from_local_cache): New.
6362 (vt_canonicalize_addr): Rewrite using the above. Adjust the
6363 heading comment.
6364 (vt_stack_offset_p): Remove.
6365 (vt_canon_true_dep): Always canonicalize loc's address.
6366 (clobber_overlapping_mems): Make sure we have a MEM.
6367 (local_get_addr_clear_given_value): New.
6368 (val_reset): Clear local cached entries.
6369 (compute_bb_dataflow): Create and release the local cache.
6370 Disable duplicate MEMs clobbering.
6371 (emit_notes_in_bb): Clobber MEMs likewise.
6372 (vt_emit_notes): Create and release the local cache.
6373 (vt_initialize, vt_finalize): Create and release the global
6374 cache, respectively.
1f6bc337 6375 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 6376
0bfbca58 63772013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
6378
6379 PR libmudflap/53359
6380 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
6381 not found in the symtab.
6382
0bfbca58 63832013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 6384
c350ba53 6385 PR debug/56006
3aa03517
AO
6386 PR rtl-optimization/55547
6387 PR rtl-optimization/53827
6388 PR debug/53671
6389 PR debug/49888
6390 * alias.c (offset_overlap_p): New, factored out of...
6391 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
6392 the conservative special case for symbolic constants. Don't
6393 adjust zero sizes on alignment.
6394
c664546f
JL
63952013-01-18 Bernd Schmidt <bernds@codesourcery.com>
6396
6397 PR rtl-optimization/52573
6398 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
6399 REG_UNUSED for the same register.
6400
1bd3f750
MP
64012013-01-17 Richard Biener <rguenther@suse.de>
6402 Marek Polacek <polacek@redhat.com>
6403
6404 PR rtl-optimization/55833
6405 * loop-unswitch.c (unswitch_loops): Move loop verification...
6406 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
6407 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
6408 Set it to true when we're removing a loop from hierarchy tree in
6409 an irreducible region.
6410 (fix_bb_placements): Adjust caller.
6411 (fix_loop_placements): Likewise.
6412
e52a8b71
GJL
64132013-01-17 Georg-Johann Lay <avr@gjlay.de>
6414
6415 * config/avr/builtins.def (DEF_BUILTIN): Factor out
6416 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
6417 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
6418 Remove ID. Adjust comments.
6419 * config/avr/avr-c.c (avr_builtin_name): Remove.
6420 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
6421 * config/avr/avr.c (avr_tolower): New static function.
6422 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
6423 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
6424 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
6425 default expansion.
6426
8386a7ea
JH
64272013-01-17 Jan Hubicka <jh@suse.cz>
6428
610fb637 6429 PR tree-optimization/55273
8386a7ea
JH
6430 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
6431
47876a2a 64322013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
6433
6434 PR target/55981
6435 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
6436 store through atomic_store<mode>_1.
6437 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
6438
8222c37e
MJ
64392013-01-17 Martin Jambor <mjambor@suse.cz>
6440
6441 PR tree-optimizations/55264
6442 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
6443 for virtual methods.
6444 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
6445 virtual methods before inlining is over.
6446 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
6447 virtual functions.
6448 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
6449 non-virtual.
6450
79f01c76
VM
64512013-01-16 Vladimir Makarov <vmakarov@redhat.com>
6452
6453 PR rtl-optimization/56005
6454 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
6455 pending reads for prefetch.
6456
d0b6bb1b
IB
64572013-01-16 Ian Bolton <ian.bolton@arm.com>
6458
aaf1e810 6459 * config/aarch64/aarch64.md
d0b6bb1b
IB
6460 (*cstoresi_neg_uxtw): New pattern.
6461 (*cmovsi_insn_uxtw): New pattern.
6462 (*<optab>si3_uxtw): New pattern.
6463 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
6464 (*<optab>si3_insn_uxtw): New pattern.
6465 (*bswapsi2_uxtw): New pattern.
6466
cb9cf03b
RB
64672013-01-16 Richard Biener <rguenther@suse.de>
6468
6469 * tree-inline.c (tree_function_versioning): Remove set but
6470 never used variable.
6471
2cfc56b9
RB
64722013-01-16 Richard Biener <rguenther@suse.de>
6473
6474 PR tree-optimization/55964
6475 * tree-flow.h (rename_variables_in_loop): Remove.
6476 (rename_variables_in_bb): Likewise.
6477 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
6478 (copy_loop_before): Adjust and delete update-ssa status.
6479 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 6480 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
6481 (rename_variables_in_loop): Remove.
6482 (slpeel_update_phis_for_duplicate_loop): Likewise.
6483 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
6484 use available cfg machinery instead of duplicating it.
6485 Update PHI nodes and perform poor-mans SSA update here.
6486 (slpeel_tree_peel_loop_to_edge): Adjust.
6487
c25a0c60
RB
64882013-01-16 Richard Biener <rguenther@suse.de>
6489
6490 PR tree-optimization/54767
6491 PR tree-optimization/53465
6492 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
6493 (vrp_visit_phi_node): For PHI arguments coming via backedges
6494 drop all symbolical range information.
6495 (execute_vrp): Compute backedges.
6496
04b535af
RB
64972013-01-16 Richard Biener <rguenther@suse.de>
6498
6499 * doc/install.texi: Update CLooG and ISL requirements to
6500 0.18.0 and 0.11.1.
6501
8b0a1e0b
CB
65022013-01-16 Christian Bruel <christian.bruel@st.com>
6503
6504 PR target/55301
6505 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
6506 (broken_move): Handle UNSPECV_SP_SWITCH_B.
6507 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
6508
65092013-01-16 DJ Delorie <dj@redhat.com>
6510
6511 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
6512 (UNSPECV_SP_SWITCH_E): New.
6513 (sp_switch_1): Change to an unspec.
6514 (sp_switch_2): Change to an unspec. Don't use post-inc when we
6515 replace $r15.
6516
65172013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
6518
6519 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
6520 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
6521 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
6522 (expand_mem_thread_fence): Ditto.
6523 (expand_mem_signal_fence): Ditto.
6524 (expand_atomic_load): Ditto.
6525 (expand_atomic_store): Ditto.
6526
0bfbca58 65272013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
6528
6529 PR rtl-optimization/55547
6530 PR rtl-optimization/53827
6531 PR debug/53671
6532 PR debug/49888
6533 * alias.c (memrefs_conflict_p): Set sizes to negative after
6534 AND adjustments.
6535
305e3ac1
JJ
65362013-01-15 Jakub Jelinek <jakub@redhat.com>
6537
6538 PR target/55940
6539 * function.c (thread_prologue_and_epilogue_insns): Always
6540 add crtl->drap_reg to set_up_by_prologue.set, even if
6541 stack_realign_drap is false.
6542
f78ac4f2
JBG
65432013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6544
6545 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
6546 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
6547 *call): Fix indention.
6548
a78a8cc4
TV
65492013-01-15 Tom de Vries <tom@codesourcery.com>
6550
6551 PR target/55876
6552 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
6553 Update comment.
6554
0e80383f
VM
65552013-01-15 Vladimir Makarov <vmakarov@redhat.com>
6556
305e3ac1 6557 PR rtl-optimization/55153
0e80383f
VM
6558 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
6559
207b5956
MJ
65602013-01-15 Martin Jambor <mjambor@suse.cz>
6561
6562 PR tree-optimization/55920
6563 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
6564 accesses as grp_to_be_debug_replaced.
6565
a7818b54
JJ
65662013-01-15 Jakub Jelinek <jakub@redhat.com>
6567
6568 PR tree-optimization/55920
6569 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
6570 there is non-useless type conversion needed from debug rhs to lhs,
6571 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
6572
b0fe107e
JM
65732013-01-15 Joseph Myers <joseph@codesourcery.com>
6574 Mikael Pettersson <mikpe@it.uu.se>
6575
6576 PR target/43961
6577 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
6578 Thumb.
6579 (ASM_OUTPUT_CASE_LABEL): Remove.
6580 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
6581 * final.c (shorten_branches): Update alignment of labels before
6582 jump tables if CASE_VECTOR_SHORTEN_MODE.
6583
34ab62ee
RB
65842013-01-15 Richard Biener <rguenther@suse.de>
6585
6586 PR bootstrap/55961
6587 * system.h: Do not include gmp.h for building host tools.
6588
783a3a05
RB
65892013-01-15 Richard Biener <rguenther@suse.de>
6590
6591 PR middle-end/55882
6592 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
6593 account for bitpos when computing alignment.
6594
3a579e09
VY
65952013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
6596
6597 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
6598 (ix86_target_macros_internal): Likewise.
6599
6600 * config/i386/i386.c (m_CORE2I7): Removed.
6601 (m_CORE_HASWELL): New macro.
6602 (m_CORE_ALL): Likewise.
6603 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
6604 (initial_ix86_arch_features): Likewise.
6605 (processor_target_table): Initializations for Core avx2.
6606 (cpu_names): New names "core-avx2".
6607 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
6608 PROCESSOR_CORE_HASWELL.
6609 (ix86_issue_rate): New case.
6610 (ia32_multipass_dfa_lookahead): Likewise.
6611 (ix86_sched_init_global): Likewise.
6612
6613 * config/i386/i386.h (TARGET_HASWELL): New macro.
6614 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
6615 (processor_type): New PROCESSOR_HASWELL.
6616
955f5a07
JJ
66172013-01-15 Jakub Jelinek <jakub@redhat.com>
6618
ff784829
JJ
6619 PR tree-optimization/55955
6620 * tree-vect-loop.c (vectorizable_reduction): Give up early on
6621 *SHIFT_EXPR and *ROTATE_EXPR codes.
6622
955f5a07
JJ
6623 PR tree-optimization/48766
6624 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
6625 -ftrapv disable -fwrapv.
6626
aeb8b4e9
GJL
66272013-01-14 Georg-Johann Lay <avr@gjlay.de>
6628
6629 PR target/55974
6630 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
6631 etc. to 1 and not to __flash.
6632 Use LL suffix for __INT24_MAX__ with -mint8.
6633 Use ULL suffix for __UINT24_MAX__ with -mint8.
6634
1c494c6a
GJL
66352013-01-14 Georg-Johann Lay <avr@gjlay.de>
6636
6637 * config/avr/avr-arch.h
6638 (struct base_arch_s): Use typedef avr_arch_t instead.
6639 (struct arch_info_s): Use typedef avr_arch_info_t instead.
6640 (struct mcu_type_s): Use typedef avr_mcu_t instead.
6641 * config/avr/avr.c: Same.
6642 * config/avr/avr-devices.c: Same.
6643 * config/avr/driver-avr.c: Same.
6644 * config/avr/gen-avr-mmcu-texi.c: Same.
6645 * config/avr/avr-mcus.def: Adjust comment.
6646
a50344cb
TB
66472013-01-14 Tejas Belagod <tejas.belagod@arm.com>
6648
88e784e6
UB
6649 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
6650 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 6651
47876a2a 66522013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
6653 Andi Kleen <ak@linux.intel.com>
6654
6655 PR target/55948
6656 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
6657 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
6658 memmodel flag.
6659
00892272
GJL
66602013-01-14 Georg-Johann Lay <avr@gjlay.de>
6661
6662 * config/avr/avr-stdint.h: Remove trailing blanks.
6663 * config/avr/avr-log.h: Same.
6664 * config/avr/avr-arch.h: Same.
6665 * config/avr/avr-devices.c: Same.
6666 * config/avr/avr-dimode.md: Same.
6667 * config/avr/predicates.md: Same.
6668 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 6669
00892272
GJL
6670 * config/avr/avr-protos.h: Same. And:
6671 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
6672 (init_cumulative_args): Rename to avr_init_cumulative_args.
6673 (expand_prologue): Rename to avr_expand_prologue.
6674 (expand_epilogue): Rename to avr_expand_epilogue.
6675 (adjust_insn_length): Rename to avr_adjust_insn_length.
6676 (notice_update_cc): Rename to avr_notice_update_cc.
6677 (final_prescan_insn): Rename to avr_final_prescan_insn.
6678 * config/avr/avr.c: Same.
6679 * config/avr/avr.h: Same.
6680 * config/avr/avr.md: Remove trailing blanks.
6681 (prologue): Use avr_expand_prologue.
6682 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
6683
7bb01996
RB
66842013-01-14 Richard Biener <rguenther@suse.de>
6685
6686 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
6687 verify_location, collect_subblocks): New functions.
6688 (verify_gimple_in_cfg): Verify that locations only reference
6689 BLOCKs in the functions BLOCK tree.
6690
2724573f
RB
66912013-01-14 Richard Biener <rguenther@suse.de>
6692
6693 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
6694 PHI argument.
6695 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
6696 unshare reference.
6697 (insert_out_of_ssa_copy_on_edge): Likewise.
6698 (rewrite_close_phi_out_of_ssa): Likewise.
6699 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
6700 debug expressions.
6701 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
6702 propagated constants.
6703 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
6704 can not be shared.
6705
9a0bbab6
GJL
67062013-01-14 Georg-Johann Lay <avr@gjlay.de>
6707
6708 * config/avr/avr-modes.def: Add GPL copyright notice.
6709
45805f17
UB
67102013-01-13 Uros Bizjak <ubizjak@gmail.com>
6711
6712 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
6713 MEMMODEL_MASK to determine memory model.
6714 (atomic_store<mode>): Ditto from operands[2].
6715 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
6716
9d60be38
JJ
67172013-01-13 Jakub Jelinek <jakub@redhat.com>
6718
6719 PR fortran/55935
45805f17 6720 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
6721 (fold_gimple_assign): Don't call unshare_expr here.
6722 (fold_ctor_reference): Call unshare_expr.
6723
e7f49d92
TG
67242013-01-13 Terry Guo <terry.guo@arm.com>
6725
aaf1e810
EB
6726 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
6727 * doc/fragments.texi: Document MULTILIB_REUSE.
6728 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 6729 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 6730 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
6731 (tmpmultilib4): Ditto.
6732 (multilib_reuse): New multilib argument.
6733
fbd03a27
RS
67342013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
6735
6736 * Makefile.in: Update copyright.
6737
b3681f13
TV
67382013-01-12 Tom de Vries <tom@codesourcery.com>
6739
6740 PR middle-end/55890
6741 * calls.c (expand_call): Check if arg_nr is valid.
6742
3f287e4b
MM
67432013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
6744
6745 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
6746 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
6747 documentation. Add missing '__' in front of
6748 __builtin_ia32_packssdw256.
3f287e4b 6749
1abcd5eb
AK
67502013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6751
6752 PR target/55719
6753 * config/s390/s390.c (s390_preferred_reload_class): Do not return
6754 NO_REGS for larl operands.
6755 (s390_reload_larl_operand): Use s390_load_address instead of
6756 emit_move_insn.
6757
980d0812
RB
67582013-01-11 Richard Biener <rguenther@suse.de>
6759
6760 * tree-cfg.c (verify_node_sharing_1): Split out from ...
6761 (verify_node_sharing): ... here.
6762 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
6763
7cb9fd07
EB
67642013-01-11 Eric Botcazou <ebotcazou@adacore.com>
6765
6766 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
6767 Substitute TREECHECKING.
6768 * configure: Regenerate.
6769 * Makefile.in (TREECHECKING): New.
6770
47876a2a 67712013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
6772
6773 PR tree-optimization/44061
6774 * tree-vrp.c (extract_range_basic): Compute zero as
6775 value-range for __builtin_constant_p of function parameters.
6776
d1e082c2
RS
67772013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
6778
45805f17 6779 Update copyright years.
d1e082c2 6780
f85021b0
VM
67812013-01-10 Vladimir Makarov <vmakarov@redhat.com>
6782
9d60be38 6783 PR rtl-optimization/55672
0160442c
VM
6784 * lra-eliminations.c (mark_not_eliminable): Permit addition with
6785 const to be eliminable.
f85021b0 6786
7a8b1ec4
DE
67872013-01-10 David Edelsohn <dje.gcc@gmail.com>
6788
6789 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
6790 * configure: Regenerate.
6791
ad2e5b71
RB
67922013-01-10 Richard Biener <rguenther@suse.de>
6793
ddf9322d 6794 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 6795
ffc5b2bb
RB
67962013-01-10 Richard Biener <rguenther@suse.de>
6797
6798 PR bootstrap/55792
6799 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
6800 locations for virtual PHI arguments.
6801 (rewrite_update_phi_arguments): Likewise.
6802
e1f674e4
JS
68032013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
6804
6805 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
6806 on to assembler.
6807
a57fc743
JJ
68082013-01-10 Jakub Jelinek <jakub@redhat.com>
6809
6810 PR tree-optimization/55921
6811 * tree-complex.c (expand_complex_asm): New function.
6812 (expand_complex_operations_1): Call it for GIMPLE_ASM.
6813
0ff4390d
AK
68142013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6815
6816 PR target/55718
6817 * config/s390/s390.c (s390_symref_operand_p)
6818 (s390_loadrelative_operand_p): Merge the two functions.
6819 (s390_check_qrst_address, print_operand_address): Add parameters
6820 to s390_loadrelative_operand_p invokation.
6821 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
6822 (s390_reload_larl_operand, s390_secondary_reload): Use
6823 s390_loadrelative_operand_p instead of s390_symref_operand_p.
6824 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
6825
6f557e0e
MS
68262013-01-09 Mike Stump <mikestump@comcast.net>
6827
6828 * dse.c (record_store): Remove unnecessary assert.
6829
7770c9e9
JH
68302013-01-09 Jan Hubicka <jh@suse.cz>
6831
6832 PR tree-optimization/55569
6833 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
6834 * cfgloop.h (scale_loop_profile): Likewise.
6835
a19b1432
JH
68362013-01-09 Jan Hubicka <jh@suse.cz>
6837
6838 PR lto/45375
ddf9322d
UB
6839 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
6840 functions.
a19b1432
JH
6841 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
6842
9a002da8
RS
68432013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
6844
6845 PR middle-end/55114
6846 * expr.h (maybe_emit_group_store): Declare.
6847 * expr.c (maybe_emit_group_store): New function.
6848 * builtins.c (expand_builtin_int_roundingfn): Call it.
6849 (expand_builtin_int_roundingfn_2): Likewise.
6850
511dcace
VM
68512013-01-09 Vladimir Makarov <vmakarov@redhat.com>
6852
e1f2b729 6853 PR rtl-optimization/55829
511dcace
VM
6854 * lra-constraints.c (match_reload): Add code for absent output.
6855 (curr_insn_transform): Add code for reloads of matched inputs
6856 without output.
6857
7b0fe4f4
UB
68582013-01-09 Uros Bizjak <ubizjak@gmail.com>
6859
6860 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
6861 attribute of movddup insn to DF.
6862 (*vec_interleave_lowv2df): Ditto.
6863 (vec_dupv2df): Ditto.
6864
870ca331
JH
68652013-01-09 Jan Hubicka <jh@suse.cz>
6866
6867 PR tree-optimiation/55875
6868 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
6869 EVERY_ITERATION parameter.
7b0fe4f4 6870 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
6871 (idx_infer_loop_bounds): Similarly here.
6872 (n_of_executions_at_most): Simplify
6873 to only test for cases where statement is dominated by the
7b0fe4f4 6874 particular bound; handle correctly the "postdominance" test.
870ca331
JH
6875 (scev_probably_wraps_p): Use max loop iterations info
6876 as a global bound first.
6877
6f575fe4 68782013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
6879 Nick Clifton <nickc@redhat.com>
6880
6881 * config/v850/v850.md (cbranchsf4): New pattern.
6882 (cstoresf4): New pattern.
6883 (cbranchdf4): New pattern.
6884 (cstoredf4): New pattern.
6885 (movsicc): Disallow floating point comparisons.
6886 (cmpsf_le_insn): Fix order of operators.
6887 (cmpsf_lt_insn): Likewise.
6888 (cmpsf_eq_insn): Likewise.
6889 (cmpdf_le_insn): Likewise.
6890 (cmpdf_lt_insn): Likewise.
6891 (cmpdf_eq_insn): Likewise.
6892 (cmpsf_ge_insn): Use LE comparison.
6893 (cmpdf_ge_insn): Likewise.
6894 (cmpsf_gt_insn): Use LT comparison.
6895 (cmpdf_gt_insn): Likewise.
6896 (cmpsf_ne_insn): Delete pattern.
6897 (cmpdf_ne_insn): Delete pattern.
6898 * config/v850/v850.c (v850_gen_float_compare): Use
6899 gen_cmpdf_eq_insn for NE comparison.
6900 (v850_float_z_comparison_operator)
6901 (v850_float_nz_comparison_operator): Move from here ...
6902 * config/v850/predicates.md: ... to here. Move GT and GE
6903 comparisons into v850_float_z_comparison_operator.
6904 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
6905 Delete prototype.
6906 (v850_float_nz_comparison_operator): Likewise.
6907
f0d54148
JDA
69082013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6909
6910 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
6911 with calls to gen_insvsi/gen_insvdi.
6912
8f01beca
VK
69132013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
6914
6915 * config/i386/i386.c (initial_ix86_tune_features): Set up
6916 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
6917
2aa579ad
JJ
69182013-01-09 Steven Bosscher <steven@gcc.gnu.org>
6919 Jakub Jelinek <jakub@redhat.com>
6920
6921 PR tree-optimization/48189
6922 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
6923 If nitercst is 0, don't predict the exit edge.
6924
6edc3e32 69252013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
6926
6927 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
6928 in asm_fprintf with reg_names.
6929 (aarch64_print_operand_address): Likewise.
6930 (aarch64_return_addr): Likewise.
6931 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
6932
f6f94d94
JDA
69332013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6934
6935 * config/pa/pa.h (VAL_U6_BITS_P): Define.
6936 (INT_U6_BITS): Likewise.
6937 * config/pa/predicates.md (uint6_operand): New predicate.
6938 (shift5_operand, shift6_operand): Likewise.
6939 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
6940 arith32_operand.
6941 (lshrdi3): Use shift6_operand.
6942 (shrpsi4, shrpdi4): New insn patterns.
6943 (extzv): Delete expander.
6944 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
6945 predicates in unamed zero extract patterns. Tighten common constraint.
6946 (extv): Delete expander.
6947 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
6948 predicates in unamed sign extract patterns. Tighten common constraint.
6949 (insv): Delete expander.
6950 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
6951 predicates in unamed insert patterns. Tighten common constraint.
6952 Change uint32_operand predicate to uint6_operand predicate in unamed
6953 DImode pattern to insert constant values of type 1...1xxxx.
6954
36b72910
JH
69552013-01-04 Jan Hubicka <jh@suse.cz>
6956
6957 PR tree-optimization/55823
7b0fe4f4
UB
6958 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
6959 issue.
36b72910 6960
47876a2a 69612013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
6962 Uros Bizjak <ubizjak@gmail.com>
6963
6964 PR rtl-optimization/55845
6965 * df-problems.c (can_move_insns_across): Stop scanning at
6966 volatile_insn_p source instruction or give up if
6967 across_from .. across_to range contains any volatile_insn_p
6968 instructions.
6969
4369c11e
TB
69702013-01-08 Tejas Belagod <tejas.belagod@arm.com>
6971
7b0fe4f4
UB
6972 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
6973 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
6974 Declare.
4369c11e 6975 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 6976 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 6977
aeb7e7c1
JJ
69782013-01-08 Jakub Jelinek <jakub@redhat.com>
6979
6980 PR fortran/55341
6981 * asan.c (asan_clear_shadow): New function.
6982 (asan_emit_stack_protection): Use it.
6983
a02ad1aa
TB
69842013-01-08 Tejas Belagod <tejas.belagod@arm.com>
6985
6986 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
6987 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
6988 with tab instead of space.
6989
f90d87f5
NC
69902013-01-08 Nick Clifton <nickc@redhat.com>
6991
6992 * config/rl78/rl78.c (rl78_expand_prologue): Always select
6993 register bank 0 at the start of an interrupt handler.
83ffd964
NC
6994 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
6995 MDBH registers.
f90d87f5 6996
385eb93d
JG
69972013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
6998
6999 * config/aarch64/aarch64-simd.md
7000 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
7001 (aarch64_simd_bsl): Likewise.
7002 (aarch64_vcond_internal<mode>): Likewise.
7003 (vcond<mode><mode>): Likewise.
7004 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
7005 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
7006
4dcd1054
JG
70072013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
7008
7009 * config/aarch64/aarch64-builtins.c
7010 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
7011
4267a4a6
MJ
70122013-01-08 Martin Jambor <mjambor@suse.cz>
7013
7014 PR debug/55579
7015 * tree-sra.c (analyze_access_subtree): Return true also after
7016 potentially creating a debug-only replacement.
7017
5f4e6de3
JJ
70182013-01-08 Jakub Jelinek <jakub@redhat.com>
7019
3138f224
JJ
7020 PR middle-end/55890
7021 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
7022
5f4e6de3
JJ
7023 PR tree-optimization/54120
7024 * tree-vrp.c (range_fits_type_p): Don't allow
7025 src_precision < precision from signed vr to unsigned_p
7026 if vr->min or vr->max is negative.
7027 (simplify_float_conversion_using_ranges): Test can_float_p
7028 against CODE_FOR_nothing.
7029
f3ef18ff
JJ
70302013-01-08 Jakub Jelinek <jakub@redhat.com>
7031 Richard Biener <rguenther@suse.de>
7032
7033 PR middle-end/55851
7034 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
7035 types instead of just INTEGER_TYPE types.
7036
25c210f9
MK
70372013-01-07 Mark Kettenis <kettenis@openbsd.org>
7038
7039 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
7040 TF_SIZE): Define.
f90d87f5 7041
81826a7b
SE
70422013-01-07 Steve Ellcey <sellcey@mips.com>
7043
7044 PR target/42661
7045 * config/mips/mips.opt: Change mad to mmad to match documentation.
7046
35678514
GJL
70472013-01-07 Georg-Johann Lay <avr@gjlay.de>
7048
7049 PR target/55897
7050 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
7051 .progmemx.data now.
7052
e5669488
GJL
70532013-01-07 Georg-Johann Lay <avr@gjlay.de>
7054
7055 PR target/55897
7056 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
7057 (avr_addrspace_t): Add .section_name field.
7058 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
7059 array size.
7060 (avr_addrspace): Same. Initialize .section_name. Remove last
7061 NULL entry. Put __memx into .progmemx.data.
7062 (progmem_section_prefix): Remove.
7063 (avr_asm_init_sections): No need to initialize progmem_section.
7064 (avr_asm_named_section): Use avr_addrspace[].section_name to get
7065 section name prefix.
7066 (avr_asm_select_section): Ditto. And use get_unnamed_section to
7067 retrieve the progmem section.
7068 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
7069 boundary to run over avr_addrspace[].
7070 (avr_register_target_pragmas): Ditto.
7071
656e6f37
JJ
70722013-01-06 Jakub Jelinek <jakub@redhat.com>
7073
7074 * varasm.c (output_constant_def_contents): For asan_protect_global
7075 protected strings, adjust DECL_ALIGN if needed, before testing for
7076 anchored symbols.
7077 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
7078 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
7079 normal decls.
7080 (output_object_block): For asan protected decls, emit asan padding
7081 after their contents.
7082 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
7083 (asan_finish_file): Test it here instead.
7084
6edc3e32
UB
70852013-01-07 Nick Clifton <nickc@redhat.com>
7086 Matthias Klose <doko@debian.org>
7087 Doug Kwan <dougkwan@google.com>
7088 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
7089
7090 PR driver/55470
7091 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
7092
7093 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
7094
7095 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
7096
7b0fe4f4 7097 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
7098
7099 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
7100
2a095093
GJL
71012013-01-07 Georg-Johann Lay <avr@gjlay.de>
7102
f3b503f4 7103 PR target/54461
2a095093
GJL
7104 * doc/install.texi (Cross-Compiler-Specific Options): Document
7105 --with-avrlibc.
7106
383f9b34
TB
71072013-01-07 Tejas Belagod <tejas.belagod@arm.com>
7108
7109 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
7110 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
7111 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
7112 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
7113 vqmovun_high_s64): Fix source operand number and update copyright.
7114
3626621a
RB
71152013-01-07 Richard Biener <rguenther@suse.de>
7116
7117 PR middle-end/55890
7118 * gimple.h (gimple_call_builtin_p): New overload.
7119 * gimple.c (validate_call): New function.
7120 (gimple_call_builtin_p): Likewise.
7121 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
7122 Use gimple_call_builtin_p.
7123 (find_func_clobbers): Likewise.
7124 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
7125 (strlen_optimize_stmt): Likewise.
7126
8b2ea410
JG
71272013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
7128
7129 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
7130 (vld1q_dup_*): Likewise.
7131 (vld1_*): Likewise.
7132 (vld1q_*): Likewise.
7133 (vld1_lane_*): Likewise.
7134 (vld1q_lane_*): Likewise.
7135
9713d329
RB
71362013-01-07 Richard Biener <rguenther@suse.de>
7137
7138 * lto-streamer.h (LTO_minor_version): Bump to 2.
7139
3520f7cc
JG
71402013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
7141
7142 * config/aarch64/aarch64-protos.h
7143 (aarch64_const_double_zero_rtx_p): Rename to...
7144 (aarch64_float_const_zero_rtx_p): ...this.
7145 (aarch64_float_const_representable_p): New.
7146 (aarch64_output_simd_mov_immediate): Likewise.
7147 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
7148 move immediate case.
7149 * config/aarch64/aarch64.c
7150 (aarch64_const_double_zero_rtx_p): Rename to...
7151 (aarch64_float_const_zero_rtx_p): ...this.
7152 (aarch64_print_operand): Allow printing of new constants.
7153 (aarch64_valid_floating_const): New.
7154 (aarch64_legitimate_constant_p): Check for valid floating-point
7155 constants.
7156 (aarch64_simd_valid_immediate): Likewise.
7157 (aarch64_vect_float_const_representable_p): New.
7158 (aarch64_float_const_representable_p): Likewise.
7159 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
7160 (aarch64_output_simd_mov_immediate): New.
7161 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
7162 (*movdf_aarch64): Likewise.
7163 * config/aarch64/constraints.md (Ufc): New.
7164 (Y): call aarch64_float_const_zero_rtx.
7165 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
7166
e167c04d
RB
71672013-01-07 Richard Biener <rguenther@suse.de>
7168
7169 PR tree-optimization/55888
7170 PR tree-optimization/55862
7171 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
7172 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
7173 not if it is contained therein.
7174
0139aaab
GJL
71752013-01-07 Georg-Johann Lay <avr@gjlay.de>
7176
7177 * config/avr/t-avr: Typo.
7178
4a176b23
GJL
71792013-01-07 Georg-Johann Lay <avr@gjlay.de>
7180
7181 PR55243
7182 * config/avr/t-avr: Don't automatically rebuild
7183 $(srcdir)/config/avr/t-multilib
7184 $(srcdir)/config/avr/avr-tables.opt
7185 $(srcdir)/doc/avr-mmcu.texi
7186 (avr-mcus): New phony target to build them on request.
7187 (s-avr-mlib, s-avr-mmcu-texi): Remove.
7188 * avr/avr-mcus.def: Adjust comments.
7189
c7afdc98
UB
71902013-01-07 Uros Bizjak <ubizjak@gmail.com>
7191
7192 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
7193
1ab05c31
RS
71942013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
7195
7196 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
7197
488e3acc
RS
71982013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
7199
7200 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
7201
a89599d2
DE
72022013-01-05 David Edelsohn <dje.gcc@gmail.com>
7203
7204 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
7205 to generate profiling.
7206 * config/rs6000/aix64.h (LIB_SPEC): Same.
7207
70f09188
AP
72082013-01-04 Andrew Pinski <apinski@cavium.com>
7209
7210 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
7211 New function.
7212 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
7213
918d445f
UB
72142013-01-04 Uros Bizjak <ubizjak@gmail.com>
7215
7216 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
7217 unconditionally.
7218 (ix86_expand_move): Ditto.
7219 (ix86_zero_extend_to_Pmode): Ditto.
7220 (ix86_expand_call): Ditto.
7221 (ix86_expand_special_args_builtin): Ditto.
7222 (ix86_expand_builtin): Ditto.
7223
361618ec
RB
72242013-01-04 Richard Biener <rguenther@suse.de>
7225
7226 PR tree-optimization/55862
7227 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
7228 translating them through PHI nodes.
7229
87eab554
MJ
72302013-01-04 Martin Jambor <mjambor@suse.cz>
7231
7232 PR tree-optimization/55755
7233 * tree-sra.c (sra_modify_assign): Do not check that an access has no
7234 children when trying to avoid producing a VIEW_CONVERT_EXPR.
7235
33879b9f
MP
72362013-01-04 Marek Polacek <polacek@redhat.com>
7237
7238 PR middle-end/55859
7239 * opts.c (default_options_optimization): Clarify error message.
7240
3068819a
RB
72412013-01-04 Richard Biener <rguenther@suse.de>
7242
7243 PR middle-end/55863
7244 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
7245 reassociation.
7246
0e4ae794
JDA
72472013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7248
7249 PR target/53789
7250 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
7251 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
7252 references.
0e4ae794 7253
65c88cef
RH
72542013-01-03 Richard Henderson <rth@redhat.com>
7255
7256 * config/i386/i386.c (ix86_expand_move): Always assign to op1
7257 after eliminating TLS symbols.
7258
8ac16127
MG
72592013-01-03 Marc Glisse <marc.glisse@inria.fr>
7260
7261 PR bootstrap/50167
7262 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
7263 * graphite-poly.c (debug_gmp_value): Likewise.
7264
bb664f09
UB
72652013-01-03 Uros Bizjak <ubizjak@gmail.com>
7266
7267 PR target/55712
7268 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
7269 selected code model, define __code_mode_small__, __code_model_medium__,
7270 __code_model_large__, __code_model_32__ or __code_model_kernel__.
7271 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
7272 xchg temporary register with %k. Declare temporary register as
7273 early clobbered.
7274 [__x86_64__]: For medium and large code models, preserve %rbx register.
7275
bcf1ef00
RB
72762013-01-03 Richard Biener <rguenther@suse.de>
7277
0506634a 7278 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
7279 (dump_subscript): Adjust.
7280 (finalize_ddr_dependent): Do not dump redundant info.
7281 (analyze_siv_subscript): Adjust.
7282 (subscript_dependence_tester): Likewise.
7283 (compute_affine_dependence): Likewise.
7284
59fd17e3
RB
72852013-01-03 Richard Biener <rguenther@suse.de>
7286
7287 Revert
7288 2013-01-03 Richard Biener <rguenther@suse.de>
7289
7290 PR tree-optimization/55857
7291 * tree-vect-stmts.c (vectorizable_load): Do not setup
7292 re-alignment for invariant loads.
7293
7294 2013-01-02 Richard Biener <rguenther@suse.de>
7295
7296 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 7297 invariant load do not generate a vector load from the scalar location.
59fd17e3 7298
595c2679
RB
72992013-01-03 Richard Biener <rguenther@suse.de>
7300
7301 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
7302 for not vectorizing.
7303 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
7304 not build INDIRECT_REFs, call get_name once only.
7305 (vect_create_data_ref_ptr): Likewise. Dump base object kind
7306 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
7307
90bb7d7a
RB
73082013-01-03 Richard Biener <rguenther@suse.de>
7309
7310 PR tree-optimization/55857
7311 * tree-vect-stmts.c (vectorizable_load): Do not setup
7312 re-alignment for invariant loads.
7313
f09b77ca
RB
73142013-01-03 Richard Biener <rguenther@suse.de>
7315
7316 PR lto/55848
7317 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
7318 prefer a built-in decl.
7319
3461a16e
JJ
73202013-01-03 Jakub Jelinek <jakub@redhat.com>
7321
df8e2b4f
JJ
7322 * gcc.c (process_command): Update copyright notice dates.
7323 * gcov.c (print_version): Likewise.
7324 * gcov-dump.c (print_version): Likewise.
7325
3461a16e
JJ
7326 PR rtl-optimization/55838
7327 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
7328 iv0.step, iv1.step and step.
7329
8b5546d6
JJ
73302013-01-03 Jakub Jelinek <jakub@redhat.com>
7331 Marc Glisse <marc.glisse@inria.fr>
7332
7333 PR tree-optimization/55832
7334 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
7335 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
7336 integer_{one,zero}_node.
7337
8ab1d2e9
JJ
73382013-01-03 Jakub Jelinek <jakub@redhat.com>
7339
7340 PR debug/54402
7341 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
7342 * var-tracking.c (reverse_op): Don't add reverse ops to
7343 VALUEs that have already
0506634a 7344 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 7345
5b9ad1d4
GP
73462013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
7347
7348 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
7349
e25a6711
TJ
73502013-01-02 Teresa Johnson <tejohnson@google.com>
7351
7352 * dumpfile.c (dump_loc): Print filename with location.
7353 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
7354 new location_t parameter to emit complete unroll message with
7355 new dump framework.
7356 (canonicalize_loop_induction_variables): Compute loops location
7357 and pass to try_unroll_loop_completely.
7358 * loop-unroll.c (report_unroll_peel): New function.
7359 (peel_loops_completely): Use new dump format with location
7360 for main dumpfile message, and invoke report_unroll_peel on success.
7361 (decide_unrolling_and_peeling): Ditto.
7362 (decide_peel_once_rolling): Remove old dumpfile message subsumed
7363 by report_unroll_peel.
7364 (decide_peel_completely): Ditto.
7365 (decide_unroll_constant_iterations): Ditto.
7366 (decide_unroll_runtime_iterations): Ditto.
7367 (decide_peel_simple): Ditto.
7368 (decide_unroll_stupid): Ditto.
7369 * cfgloop.c (get_loop_location): New function.
7370 * cfgloop.h (get_loop_location): Declare.
7371
77878621
ST
73722013-01-02 Sriraman Tallam <tmsriram@google.com>
7373
7374 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
7375 NULL.
7376
9e65d03e
JDA
73772013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7378
7379 PR middle-end/55198
7380 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
7381 BLKmode objects when EXPAND_MEMORY is specified.
7382
6a7da30f
ST
73832013-01-02 Sriraman Tallam <tmsriram@google.com>
7384
7385 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
7386 in loop predicate.
7387 (fold_builtin_cpu): Do not share cpu model decls across statements.
7388
e78167f2
JM
73892013-01-02 Jason Merrill <jason@redhat.com>
7390
7391 PR c++/55804
7392 * tree.c (build_array_type_1): Revert earlier change.
7393
8c075fb4
YZ
73942013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
7395
7396 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
7397 "cortex-a57".
7398 * config/aarch64/aarch64-tune.md: Re-generate.
7399
0682ed3e
RB
74002013-01-02 Richard Biener <rguenther@suse.de>
7401
7402 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 7403 invariant load do not generate a vector load from the scalar location.
0682ed3e 7404
b8f6a302
RB
74052013-01-02 Richard Biener <rguenther@suse.de>
7406
7407 PR bootstrap/55784
7408 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
7409 * configure: Regenerate.
7410
04b80dbb
RS
74112013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
7412
7413 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
7414 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
7415 (expand_builtin_int_roundingfn_2): Keep the original target around
7416 for the fallback case.
7417
635b0b0c
RS
74182013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
7419
7420 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
7421 to be clear for sign changes.
7422
42d57399
JH
74232013-01-01 Jan Hubicka <jh@suse.cz>
7424
7425 * ipa-inline-analysis.c: Fix formatting.
7426
5bb6669d
JJ
74272013-01-01 Jakub Jelinek <jakub@redhat.com>
7428
7429 PR tree-optimization/55831
7430 * tree-vect-loop.c (get_initial_def_for_induction): Use
7431 gsi_after_labels instead of gsi_start_bb.
ad41bd84 7432\f
86a2db33 7433Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
7434
7435Copying and distribution of this file, with or without modification,
7436are permitted in any medium without royalty provided the copyright
7437notice and this notice are preserved.