]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
typeck.c (cp_build_binary_op): Call save_expr before build_vector_from_val.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
f2c17ea9
OE
12013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2
3 PR target/52933
4 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
5 variations of these patterns.
6
f75e6a51
UB
72013-05-06 Uros Bizjak <ubizjak@gmail.com>
8
9 * config/i386/i386.md (isa): Add x64_sse4 member.
10 (enabled): Handle x64_sse4.
11 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
12 instruction for 64bit SSE4_1 targets. Update insn attributes.
13 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
14 instruction for SSE4_1 targets. Update insn attributes.
15 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
16 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
17 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
18 const_1 selector.
19 (*vec_extractv4si): Rename from *sse4_1_pextrd.
20 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
21 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
22
a986d468
OE
232013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
24
25 PR target/57108
26 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
27
382522cb
MK
282013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
29
30 * final.c (do_assembler_dialects): Don't handle curly braces and
31 vertical bar escaped by % as dialect delimiters.
32 (output_asm_insn): Print curly braces and vertical bar if escaped
33 by % and ASSEMBLER_DIALECT defined.
34 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
35 * doc/tm.texi: Regenerated.
36
fb0d5c60
SB
372013-05-06 Steven Bosscher <steven@gcc.gnu.org>
38
fb0d5c60
SB
39 * config/mips/mips.c: Include tree-pass.h.
40 (mips_reorg): Split in pre- and post-dbr_schedule parts.
41 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
42 (pass_mips_machine_reorg2): New machine specific pass.
43 (insert_pass_mips_machine_reorg2): New pass plugin definition.
44 (mips_option_override): Register the new pass.
45 * rtl.h (cleanup_barriers): Remove prototype.
46 (dbr_schedule): Likewise.
47 * jump.c (cleanup_barriers): Make static.
48 * reorg.c (dbr_schedule): Likewise.
49
aa06a978
RB
502013-05-06 Richard Biener <rguenther@suse.de>
51
52 PR tree-optimization/57185
53 * tree-parloops.c (add_field_for_reduction): Handle anonymous
54 SSA names properly.
55
0b953bec
UB
562013-05-06 Uros Bizjak <ubizjak@gmail.com>
57
58 PR target/57106
59 * config/i386/i386.c (add_parameter_dependencies): Add dependence
60 between "first_arg" and "insn", not "last" and "insn".
61
28708525
WS
622013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
63
64 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
65 (find_candidates_in_block): Re-enable slsr_process_phi.
66 (create_phi_basis): Fix double counting of candidate adjustment.
67
0107dca2
RB
682013-05-06 Richard Biener <rguenther@suse.de>
69
70 PR middle-end/57147
71 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
72 the edge is also fallthru, preserve it and just clear the
73 abnormal flag.
74 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
75 also complex, preserve that and just clear the fallthru flag.
76 * tree-inline.c (update_ssa_across_abnormal_edges): Also
77 update virtual operands.
78
470d4d13
AM
792013-05-06 Alan Modra <amodra@gmail.com>
80
81 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
82 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
83 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
84 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
85 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
86 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
87
8f1dbf8d
AM
882013-05-06 Alan Modra <amodra@gmail.com>
89
90 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
91 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
92 (DEFAULT_ASM_ENDIAN): Define.
93 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
94 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
95 Update -K PIC clause from sysv4.h.
96 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
97 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
98
54890767
AM
992013-05-06 Alan Modra <amodra@gmail.com>
100
101 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
102 twice for little-endian.
103 (ashrdi3_no_power, ashrdi3): Support little-endian.
104
2353515d
OE
1052013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
106
107 PR target/55303
108 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
109 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
110 related expanders.
111 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
112 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
113 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
114 New predicates.
115
33e67557
SB
1162013-05-05 Steven Bosscher <steven@gcc.gnu.org>
117 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
118
119 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
120 * config/pa/pa.opt: Make mbig-switch a no-op.
121 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
122 (CASE_VECTOR_MODE): Always return SImode.
123 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
124 for the !TARGET_BIG_SWITCH case.
125 * config/pa/pa-linux.h: Likewise.
126 * config/pa/pa-openbsd.h: Likewise.
127 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
128 * config/pa/pa.md (short_jump): Remove define_insn.
129 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
130 (casesi0): Remove define_insn.
131 (type): Remove btable_branch.
132 (pa_combine_type): Likewise.
133 (in_nullified_branch_delay): Likewise.
134 (in_call_delay): Likewise.
135 (define_delay): Likewise.
136 (define_insn_reservation "Z3"): Likewise.
137 (define_insn_reservation "Z4"): Likewise.
138 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
139 (pa_adjust_insn_length): Remove adjustment for btable branches.
140 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
141 and mno-big-switch
142
3095685e
UB
1432013-05-05 Uros Bizjak <ubizjak@gmail.com>
144
145 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
146 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
147 Add m->r,x alternatives.
148 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
149 splitters using SWI48x mode iterator.
150 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
151 TARGET_64BIT. Add m->x alternative.
152 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
153 Add o->x alternative. Enable for TARGET_SSE.
154 (sse_storeq): Remove expander.
155 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
156 with memory input operand.
157 (*vec_extractv2di_1 splitter): New.
158 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
159 * config/i386/i386.md (ssevecmodelower): New mode attribute.
160
4b36ae28
SB
1612013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
162
163 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
164 (INT_LOWPART): Delete.
165 (extract_MB): Adjust.
166 (extract_ME): Adjust.
167 (print_operand): Adjust.
168
da226db2
SB
1692013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
170
171 * config/rs6000/predicates.md (reg_or_add_cint_operand,
172 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
173 (reg_or_logical_cint_operand, easy_fp_constant,
174 logical_const_operand): Delete "CONST_DOUBLE" case.
175 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
176 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 177 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
178 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
179 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
180 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
181 test.
182 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
183 CONST_DOUBLE DImode/VOIDmode case.
184 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
185 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
186 CONST_DOUBLE VOIDmode case.
187 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
188 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
189 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
190 Delete CONST_DOUBLE case.
191 (splitters for mov FMOVE64 const_double): Delete
192 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
193 "HOST_BITS_PER_WIDE_INT >= 64" test.
194 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
195 case.
196 (mov DI const_double): Delete.
197
40de22d6
JJ
1982013-05-04 Jakub Jelinek <jakub@redhat.com>
199
200 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
201 on op shows all bits zero in mode of a lowpart subreg, return zero.
202
5ec6aff2
MM
2032013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
204
205 PR target/57150
206 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
207 to save TFmode registers and DImode to save TImode registers for
208 caller save operations.
209 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
210 mark being partially clobbered since they only use the first
211 double word.
212
213 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
214 and TDmode only use the upper 64-bits of each VSX register.
215
2cefad90
BS
2162013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
217
218 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
219 (find_candidates_in_block): Disable slsr_process_phi.
220
d6d7eee1
GW
2212013-05-03 Guozhi Wei <carrot@google.com>
222
223 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
224 constructor to ...
225 (build_init_ctor): ... here.
d6d7eee1 226
9b92d12b
BS
2272013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
228
229 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
230 (slsr_cand_d): Redefine def_phi.
231 (stride_status, phi_adjust_status, count_phis_status): New enums.
232 (find_phi_def): New.
233 (find_basis_for_base_expr): New.
234 (find_basis_for_candidate): Handle hidden bases.
235 (alloc_cand_and_find_basis): Handle phi candidates.
236 (slsr_process_phi): New.
237 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
238 (create_mul_imm_cand): Likewise.
239 (create_add_ssa_cand): Exclude phi base candidates.
240 (create_add_imm_cand): Likewise.
241 (slsr_process_cast): Likewise.
242 (slsr_process_copy): Likewise.
243 (find_candidates_in_block): Handle phi candidates.
244 (dump_candidate): Likewise.
245 (unconditional_cands): Delete.
246 (unconditional_cands_with_known_stride_p): Delete.
247 (phi_dependent_cand_p): New.
248 (cand_increment): Handle phi-dependent candidates.
249 (replace_dependent): Delete.
250 (replace_mult_candidate): New.
251 (replace_unconditional_candidate): New.
252 (incr_vec_index): Move to avoid forward reference.
253 (create_add_on_incoming_edge): New.
254 (create_phi_basis): New.
255 (replace_dependents): Delete.
256 (replace_conditional_candidate): New.
257 (phi_add_costs): New.
258 (replace_uncond_cands_and_profitable_phis): New.
259 (record_increment): Handle phi adjustments.
260 (record_phi_increments): New.
261 (record_increments): Handle phi adjustments.
262 (phi_incr_cost): New.
263 (lowest_cost_path): Handle phis.
264 (total_savings): Likewise.
265 (analyze_increments): Likewise.
266 (ncd_with_phi): New.
267 (ncd_of_cand_and_phis): New.
268 (nearest_common_dominator_for_cands): Handle phi increments.
269 (all_phi_incrs_profitable): New.
270 (replace_profitable_candidates): Handle phi-dependent candidates.
271 (analyze_candidates_and_replace): Likewise.
272
68f073d4
TJ
2732013-05-03 Teresa Johnson <tejohnson@google.com>
274
275 PR bootstrap/57154
276 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
277 do not exceed REG_BR_PROB_BASE.
278
a4ee7cb9
JL
2792013-05-03 Jeff Law <law@redhat.com>
280
ade67f70 281 PR tree-optimization/57144
a4ee7cb9
JL
282 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
283 operand of the condition will bit into the new type when eliminating
284 a cast feeding a condition.
285
47954c4e
JJ
2862013-05-03 Jakub Jelinek <jakub@redhat.com>
287
288 PR rtl-optimization/57130
3095685e
UB
289 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
290 of COMPARE as in_code to the recursive call if needed.
47954c4e 291
3c21604f
UB
2922013-05-03 Uros Bizjak <ubizjak@gmail.com>
293
294 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
295 (enabled): Handle new members.
296 * config/i386/sse.md (*vec_concatv2si): Merge from
297 *vec_concatv2si_sse2 and vec_concatv2si_sse.
298 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
299
95c03b36
JR
3002013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
301
302 PR tree-optimization/57027
303 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
304 for fnms opportunity, check we got the prerequisite kind
305 of tree / gimple before using accessor functions.
306
07bfc9ec
RB
3072013-05-03 Richard Biener <rguenther@suse.de>
308
309 * double-int.h (lshift): New overload without precision
310 and arith argument.
311 (operator *=, operator +=, operator -=): Move ...
312 * double-int.c (operator *=, operator +=, operator -=): ... here
313 and implement more efficiently.
314 (mul_double_with_sign): Remove.
315 (lshift_double): Adjust to take unsinged shift argument, push
316 dispatching code to callers.
317 (mul_double_wide_with_sign): Add early out for callers that
318 are not interested in high parts or overflow.
319 (lshift): New function.
320 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
321 dispatch code here.
322 (lrotate, rrotate): Use logical shifts.
323 * expr.c (get_inner_reference): Use lshift.
324 * fixed-value.c (do_fixed_divide): Likewise.
325 * tree-dfa.c (get_ref_base_and_extent): Likewise.
326 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
327 (indirect_refs_may_alias_p): Likewise.
328 (stmt_kills_ref_p_1): Likewise.
329
7769bb64
VP
3302013-05-03 Vidya Praveen <vidyapraveen@arm.com>
331
332 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
333
1d0c8e5c
VP
3342013-05-03 Vidya Praveen <vidyapraveen@arm.com>
335
336 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
337 scalar form of FABD instruction.
338
f15feaf9
VM
3392013-05-02 Vladimir Makarov <vmakarov@redhat.com>
340
341 * lra-constraints.c (process_alt_operands): Add checking alt
342 number to choose the best alternative.
343
d90e76d4
RB
3442013-05-02 Richard Biener <rguenther@suse.de>
345
346 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
347 bitmap and its handling.
348 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
349
9f8e7a96
RB
3502013-05-02 Richard Biener <rguenther@suse.de>
351
352 PR middle-end/57140
353 * tree-inline.c (copy_loops): Properly handle removed loops.
354 (copy_cfg_body): Mark destination loops for fixup if source
355 loops needed fixup.
356
f3a81b39
GY
3572013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
358
359 PR target/56732
360 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
361 generating simple_return for naked functions.
362
7b920a9a
MJ
3632013-05-02 Martin Jambor <mjambor@suse.cz>
364
365 PR middle-end/56988
366 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
367 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
368 flags match.
369 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
370 ipa_agg_replacement_value structures.
371 (known_aggs_to_agg_replacement_list): Likewise.
372 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
373 (read_agg_replacement_chain): Likewise.
374 (ipcp_transform_function): Also check that by_ref flags match.
375
2c41c19d
RB
3762013-05-02 Richard Biener <rguenther@suse.de>
377
378 * graphds.h (struct graph): Add obstack member.
379 * graphds.c (new_graph): Initialize obstack and allocate
380 vertices from it.
381 (add_edge): Allocate edge from the obstack.
3c21604f 382 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 383
8b47039c
TJ
3842013-05-02 Teresa Johnson <tejohnson@google.com>
385
386 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
387 divides.
388 * cfg.c (update_bb_profile_for_threading): Ditto.
389 * tree-inline.c (copy_bb): Ditto.
390 (copy_edges_for_bb): Ditto.
391 (initialize_cfun): Ditto.
392 (copy_cfg_body): Ditto.
393 (expand_call_inline): Ditto.
394 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
395 (estimate_node_size_and_time): Ditto.
396 (inline_merge_summary): Ditto.
397 * cgraphclones.c (cgraph_clone_edge): Ditto.
398 (cgraph_clone_node): Ditto.
399 * sched-rgn.c (compute_dom_prob_ps): Ditto.
400 (compute_trg_info): Ditto.
401
da65928c
IB
4022013-05-02 Ian Bolton <ian.bolton@arm.com>
403
404 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
405 S reg when fp attribute set.
406 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
407
add3c965
IB
4082013-05-02 Ian Bolton <ian.bolton@arm.com>
409
410 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
411 New pattern.
412 (*and_one_cmplsi3_compare0_uxtw): Likewise.
413 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
414 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
415
fdd43ac4
RB
4162013-05-02 Richard Biener <rguenther@suse.de>
417
418 * tree-scalar-evolution.c (scev_info_hasher): Remove.
419 (struct instantiate_cache_entry): New type.
420 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
421 (struct instantiate_cache_type): New type.
422 (set_instantiated_value, get_instantiated_value): Remove.
423 (get_instantiated_value_entry): New function.
424 (instantiate_scev_name): Use the new cache and adjust.
425 (instantiate_scev_poly): Adjust.
426 (instantiate_scev_binary): Likewise.
427 (instantiate_array_ref): Likewise.
428 (instantiate_scev_convert): Likewise.
429 (instantiate_scev_not): Likewise.
430 (instantiate_scev_3): Likewise.
431 (instantiate_scev_2): Likewise.
432 (instantiate_scev_r): Likewise.
433 (instantiate_scev): Likewise.
434 (resolve_mixers): Likewise.
435
36ff9dfb
VM
4362013-05-01 Vladimir Makarov <vmakarov@redhat.com>
437
438 PR target/57091
439 * lra-constraints.c (best_small_class_operands_num): Remove.
440 (process_alt_operands): Remove small_class_operands_num. Take
441 small classes operands into losers and only if the operand is not
442 matched. Modify debugging output.
443 (curr_insn_transform): Remove best_small_class_operands_num.
444 Print insn name.
445
36054fab
JG
4462013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
447
448 * config/aarch64/aarch64-builtins.c
449 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
450 * config/aarch64/aarch64-simd-builtins.def
451 (reduc_splus_): Add new modes.
452 (reduc_uplus_): New.
453 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
454 (reduc_uplus_v4sf): Likewise.
455 (reduc_splus_v4sf): Likewise.
456 (aarch64_addv<mode>): Likewise.
457 (reduc_uplus_<mode>): Likewise.
458 (reduc_splus_<mode>): Likewise.
459 (aarch64_addvv2di): Likewise.
460 (reduc_uplus_v2di): Likewise.
461 (reduc_splus_v2di): Likewise.
462 (aarch64_addvv2si): Likewise.
463 (reduc_uplus_v2si): Likewise.
464 (reduc_splus_v2si): Likewise.
465 (reduc_<sur>plus_<mode>): New.
466 (reduc_<sur>plus_v2di): Likewise.
467 (reduc_<sur>plus_v2si): Likewise.
468 (reduc_<sur>plus_v4sf): Likewise.
469 (aarch64_addpv4sf): Likewise.
470 * config/aarch64/arm_neon.h
471 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
472 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
473 add UNSPEC_SADDV, UNSPEC_UADDV.
474 (SUADDV): New.
475 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
476
6dce23a8
JG
4772013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
478
479 * config/aarch64/arm_neon.h
480 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
481
1598945b
JG
4822013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
483
484 * config/aarch64/aarch64-builtins
485 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
486
998eaf97
JG
4872013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
488
489 * config/aarch64/aarch64-simd-builtins.def
490 (reduc_smax_): New.
491 (reduc_smin_): Likewise.
492 (reduc_umax_): Likewise.
493 (reduc_umin_): Likewise.
494 (reduc_smax_nan_): Likewise.
495 (reduc_smin_nan_): Likewise.
496 (fmax): Remove.
497 (fmin): Likewise.
498 (smax): Update for V2SF, V4SF and V2DF modes.
499 (smin): Likewise.
500 (smax_nan): New.
501 (smin_nan): Likewise.
502 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
503 (<su><maxmin><mode>3): ...This, refactor.
504 (s<maxmin><mode>3): New.
505 (<maxmin_uns><mode>3): Likewise.
506 (reduc_<maxmin_uns>_<mode>): Refactor.
507 (reduc_<maxmin_uns>_v4sf): Likewise.
508 (reduc_<maxmin_uns>_v2si): Likewise.
509 (aarch64_<fmaxmin><mode>: Remove.
510 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
511 new builtin names.
512 (vmin<q>_f<32,64>): Likewise.
513 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
514 (FMAXMIN): New.
515 (su): Add mappings for smax, smin, umax, umin.
516 (maxmin): New.
517 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
518 (FMAXMIN): Rename as...
519 (FMAXMIN_UNS): ...This.
520 (maxminv): Remove.
521 (fmaxminv): Likewise.
522 (fmaxmin): Likewise.
523 (maxmin_uns): New.
524 (maxmin_uns_op): Likewise.
525
bd11644e
JG
5262013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
527
528 * config/aarch64/arm_neon.h
529 (vac<ge, gt><sd>_f<32, 64>): Rename to...
530 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
531 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
532
75dd5ace
JG
5332013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
534
535 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
536 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
537
7c19979f
JG
5382013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
539
540 * config/aarch64/aarch64-simd.md
541 (vcond<mode>_internal): Handle special cases for constant masks.
542 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
543 (vcondu<mode><mode>): Likewise.
544 (vcond<v_cmp_result><mode>): New.
545
bb60efd9
JG
5462013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
547
548 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
549 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
550 * config/aarch64/aarch64-simd-builtins.def
551 (cmeq): Update to BUILTIN_VALLDI.
552 (cmgt): Likewise.
553 (cmge): Likewise.
554 (cmle): Likewise.
555 (cmlt): Likewise.
556 * config/aarch64/arm_neon.h
557 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
558 to builtins or C as appropriate.
559
889b9412
JG
5602013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
561
562 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
563 (cmgeu): ...This.
564 (cmhi): Rename to...
565 (cmgtu): ...This.
566 * config/aarch64/aarch64-simd.md
567 (simd_mode): Add SF.
568 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
569 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
570 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
571 (cstore<mode>_neg): ...This.
572 * config/aarch64/iterators.md
573 (VALLF): new.
574 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
575 (COMPARISONS): New.
576 (UCOMPARISONS): Likewise.
577 (optab): Add missing comparisons.
578 (n_optab): New.
579 (cmp_1): Likewise.
580 (cmp_2): Likewise.
581 (CMP): Likewise.
582 (cmp): Remove.
583 (VCMP_S): Likewise.
584 (VCMP_U): Likewise.
585 (V_cmp_result): Add DF, SF modes.
586 (v_cmp_result): Likewise.
587 (v): Likewise.
588 (vmtype): Likewise.
589 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
590
0a7dbb76
GY
5912013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
592
593 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
594 define_insn to define_insn_and_split.
595 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
596 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
597 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
598 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
599 (thumb2_negscc): Likewise.
600
fb614ca6
GY
6012013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
602
603 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
604
9e64a0bf
GY
6052013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
606
607 * config/arm/thumb2.md: Remove trailing whitespaces.
608
d6b28156
RS
6092013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
610
611 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
612 Use gen_int_mode rather than GEN_INT.
613
f91674c3
L
6142013-04-30 H.J. Lu <hongjiu.lu@intel.com>
615
b0dec607 616 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
617 debug_gimple_stmt.
618
3551257c
RB
6192013-04-30 Richard Biener <rguenther@suse.de>
620
621 PR middle-end/57122
3c21604f 622 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 623
4c1aff1c
RB
6242013-04-30 Richard Biener <rguenther@suse.de>
625
626 PR middle-end/57107
627 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
628
54b8379a
AB
6292013-04-30 Andrey Belevantsev <abel@ispras.ru>
630
631 PR rtl-optimization/56957
632 PR rtl-optimization/57105
54b8379a
AB
633 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
634 variable. Use just INSN_UID for determining whether an insn
635 should be only disconnected from the insn stream.
636 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
637
abc27962
JJ
6382013-04-30 Jakub Jelinek <jakub@redhat.com>
639
640 PR tree-optimization/57104
641 * tsan.c (instrument_expr): Don't instrument accesses to
642 DECL_HARD_REGISTER VAR_DECLs.
643
0fc822d0
RB
6442013-04-30 Richard Biener <rguenther@suse.de>
645
646 * function.h (loops_for_fn): New inline function.
647 (set_loops_for_fn): Likewise.
648 * cfgloop.h (place_new_loop): Add struct function parameter.
649 (get_loop): Likewise.
650 (get_loops): Likewise.
651 (number_of_loops): Likewise.
652 (fel_next): Adjust.
653 (fel_init): Likewise.
654 * cfg.c (get_loop_copy): Adjust.
655 * cfgloop.c (flow_loops_dump): Likewise.
656 (record_loop_exits): Likewise.
657 (verify_loop_structure): Likewise.
658 * cfgloopanal.c (mark_irreducible_loops): Likewise.
659 (estimate_reg_pressure_cost): Likewise.
660 (mark_loop_exit_edges): Likewise.
661 * cfgloopmanip.c (place_new_loop): Likewise.
662 (add_loop): Likewise.
663 (duplicate_loop): Likewise.
664 * graph.c (draw_cfg_nodes): Likewise.
665 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
666 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
667 (extract_affine_chrec): Likewise.
668 (build_scop_iteration_domain): Likewise.
669 * graphite.c (graphite_initialize): Likewise.
670 * ira-build.c (create_loop_tree_nodes): Likewise.
671 (more_one_region_p): Likewise.
672 (rebuild_regno_allocno_maps): Likewise.
673 (mark_loops_for_removal): Likewise.
674 (mark_all_loops_for_removal): Likewise.
675 (remove_unnecessary_regions): Likewise.
676 (ira_build): Likewise.
677 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
678 * loop-init.c (fix_loop_structure): Likewise.
679 (gate_rtl_move_loop_invariants): Likewise.
680 (gate_rtl_unswitch): Likewise.
681 (gate_rtl_unroll_and_peel_loops): Likewise.
682 (rtl_doloop): Likewise.
683 * lto-streamer-in.c (input_cfg): Likewise.
684 * lto-streamer-out.c (output_cfg): Likewise.
685 * modulo-sched.c (sms_schedule): Likewise.
686 * predict.c (tree_estimate_probability): Likewise.
687 (tree_estimate_probability_driver): Likewise.
688 (estimate_loops): Likewise.
689 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
690 (move_sese_region_to_fn): Likewise.
691 (debug_loop_num): Likewise.
692 * tree-chrec.c (chrec_evaluate): Likewise.
693 (hide_evolution_in_other_loops_than_loop): Likewise.
694 (chrec_component_in_loop_num): Likewise.
695 (reset_evolution_in_loop): Likewise.
696 (evolution_function_is_invariant_rec_p): Likewise.
697 * tree-if-conv.c (main_tree_if_conversion): Likewise.
698 * tree-inline.c (copy_loops): Likewise.
699 (copy_cfg_body): Likewise.
700 (tree_function_versioning): Likewise.
701 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
702 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
703 Likewise.
704 (add_to_evolution_1): Likewise.
705 (scev_const_prop): Likewise.
706 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
707 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
708 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
709 (tree_ssa_lim_initialize): Likewise.
710 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
711 (verify_loop_closed_ssa): Likewise.
712 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
713 (tree_ssa_loop_im): Likewise.
714 (tree_ssa_loop_unswitch): Likewise.
715 (tree_vectorize): Likewise.
716 (check_data_deps): Likewise.
717 (tree_ssa_loop_ivcanon): Likewise.
718 (tree_ssa_loop_bounds): Likewise.
719 (tree_complete_unroll): Likewise.
720 (tree_complete_unroll_inner): Likewise.
721 (tree_parallelize_loops): Likewise.
722 (tree_ssa_loop_prefetch): Likewise.
723 (tree_ssa_loop_ivopts): Likewise.
724 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
725 * tree-vectorizer.c (vectorize_loops): Likewise.
726
37953bd3
MF
7272013-04-29 Mike Frysinger <vapier@gentoo.org>
728
729 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
730 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
731 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
732 with EABI_LINK_SPEC.
733
f9ed28db
UB
7342013-04-29 Uros Bizjak <ubizjak@gmail.com>
735
736 PR target/44578
737 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
738 alternative.
739
deca73f5
VM
7402013-04-29 Vladimir Makarov <vmakarov@redhat.com>
741
742 PR target/57097
37953bd3 743 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
744 using memory for pseudos. Print cost dump for alternatives.
745 Modify cost values for conflicts with early clobbers.
746 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
747
fdca7d03
UB
7482013-04-29 Uros Bizjak <ubizjak@gmail.com>
749
750 PR target/57098
751 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
752
0b064172
IB
7532013-04-29 Ian Bolton <ian.bolton@arm.com>
754
755 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
756 from/to S register.
757 (movdi_aarch64): Support LDR/STR from/to D register.
758
473cec55
IB
7592013-04-29 Ian Bolton <ian.bolton@arm.com>
760
761 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
762 or higher by default.
763
a6f30e66
RB
7642013-04-29 Richard Biener <rguenther@suse.de>
765
766 PR middle-end/57075
767 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
768 even if not adding abnormal edges for calls that can make
769 abnormal gotos.
770
0c2b2040
RB
7712013-04-29 Richard Biener <rguenther@suse.de>
772
773 PR middle-end/57103
774 * tree-cfg.c (move_stmt_op): Fix condition under which to update
775 TREE_BLOCK.
776 (move_stmt_r): Remove redundant checking.
777
f41f80f9
TJ
7782013-04-29 Teresa Johnson <tejohnson@google.com>
779
780 PR bootstrap/57077
781 * basic-block.h (apply_scale): New function.
782 (apply_probability): Use apply_scale.
783 * gimple-streamer-in.c (input_bb): Ditto.
784 * lto-streamer-in.c (input_cfg): Ditto.
785 * lto-cgraph.c (merge_profile_summaries): Ditto.
786 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 787 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
788 (copy_edges_for_bb): Ditto.
789 (copy_cfg_body): Ditto.
790
315bbd2e
TV
7912013-04-29 Tom de Vries <tom@codesourcery.com>
792
793 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
794 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
795 (tail_merge_optimize): Handle current_loops == NULL.
796
ebbd90d8
JL
7972013-04-26 Jeff Law <law@redhat.com>
798
799 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
800 (simplify_cond_using_ranges): Generalize code to simplify
801 COND_EXPRs where one argument is a constant and the other
802 is an SSA_NAME created by an integral type conversion.
803
8b9b57eb
KT
8042013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
805
806 * config/arm/arm.md (store_minmaxsi): Use only when
807 optimize_insn_for_size_p.
808
9498e5dc
CB
8092013-04-29 Christian Bruel <christian.bruel@st.com>
810
811 PR target/57108
812 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
813
6093bc06
RB
8142013-04-29 Richard Biener <rguenther@suse.de>
815
816 PR middle-end/57089
fdca7d03
UB
817 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
818 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
819 (expand_omp_for_generic): Properly add loops.
820 (expand_omp_for_static_nochunk): Likewise.
821 (expand_omp_for_static_chunk): Likewise.
822 (expand_omp_for): For the degenerate case fixup loops.
823 (expand_omp_sections): Fix default bb placement in loops.
824 (expand_omp_atomic_pipeline): Properly add loops.
825
84aacbfd
KT
8262013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
827
828 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
829
8dee4479
TV
8302013-04-29 Tom de Vries <tom@codesourcery.com>
831
832 * tree-ssa-tail-merge.c: Update header comment.
833
47934dc4
JG
8342013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
835
836 * config/aarch64/arm_neon.h
837 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
838 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
839 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
840 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
841 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
842 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
843 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
844 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
845
384be29f
JG
8462013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
847
848 * config/aarch64/aarch64-simd.md
849 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
850 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
851 fix_trunc, fixuns_trunc.
852 (ftrunc<VDQF:mode>2): New.
853 * config/aarch64/iterators.md (optab): Add fix, fixuns.
854 (fix_trunc_optab): New.
855
0386b123
JG
8562013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
857
858 * config/aarch64/aarch64-builtins.c
859 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
860 iceilf, lround, iroundf.
861
00fcb892
UB
8622013-04-29 Uros Bizjak <ubizjak@gmail.com>
863
864 PR target/54349
865 * config/i386/i386.h (enum ix86_tune_indices)
866 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
867 New, split from X86_TUNE_INTER_UNIT_MOVES.
868 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
869 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
870 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
871 (TARGET_INTER_UNIT_MOVES): Remove.
872 * config/i386/i386.c (initial_ix86_tune_features): Update.
873 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
874 (ix86_expand_convert_uns_didf_sse): Use
875 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
876 (ix86_expand_vector_init_one_nonzero): Ditto.
877 (ix86_expand_vector_init_interleave): Ditto.
878 (inline_secondary_memory_needed): Return true for moves from SSE class
879 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
880 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
881 * config/i386/constraints.md (Yi, Ym): Depend on
882 TARGET_INTER_UNIT_MOVES_TO_VEC.
883 (Yj, Yn): New constraints.
884 * config/i386/i386.md (*movdi_internal): Change constraints of
885 operand 1 from Yi to Yj and from Ym to Yn.
886 (*movsi_internal): Ditto.
887 (*movdf_internal): Ditto.
888 (*movsf_internal): Ditto.
889 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
890 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
891 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
892 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
893 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
894 * config/i386/sse.md (movdi_to_sse): Ditto.
895 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
896 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
897 TARGET_INTER_UNIT_MOVES.
898 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
899 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
900 instead of TARGET_INTER_UNIT_MOVES.
901 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
902 operand 1 from Yi to Yj and from Ym to Yn.
903
4c871069
JG
9042013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
905
906 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
907 (float_truncate_hi_): Likewise.
908 (float_extend_lo_): Likewise.
909 (float_truncate_lo_): Likewise.
910 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
911 (aarch64_float_extend_lo_v2df): Likewise.
912 (vec_unpacks_hi_v4sf): Likewise.
913 (aarch64_float_truncate_lo_v2sf): Likewise.
914 (aarch64_float_truncate_hi_v4sf): Likewise.
915 (vec_pack_trunc_v2df): Likewise.
916 (vec_pack_trunc_df): Likewise.
917
1709ff9b
JG
9182013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
919
920 * config/aarch64/aarch64-builtins.c
921 (aarch64_fold_builtin): Fold float conversions.
922 * config/aarch64/aarch64-simd-builtins.def
923 (floatv2si, floatv4si, floatv2di): New.
924 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
925 * config/aarch64/aarch64-simd.md
926 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
927 * config/aarch64/iterators.md (FLOATUORS): New.
928 (optab): Add float, floatuns.
929 (su_optab): Likewise.
930
ce966824
JG
9312013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
932
933 * config/aarch64/aarch64-builtins.c
934 (aarch64_builtin_vectorized_function): Use new names for
935 fcvt builtins.
936 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
937 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
938 (fcvtzu): Split as...
939 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
940 (fcvtas): Split as...
941 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
942 (fcvtau): Split as...
943 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
944 (fcvtps): Split as...
945 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
946 (fcvtpu): Split as...
947 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
948 (fcvtms): Split as...
949 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
950 (fcvtmu): Split as...
951 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
952 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
953 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
954 (lfrintnusf, lfrintnudf): Likewise.
955 * config/aarch64/aarch64-simd.md
956 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
957 define_insn.
958 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
959 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
960 (fcvt_pattern): Likewise.
961
b9de24fe
JG
9622013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
963
964 * config/aarch64/aarch64-simd.md
965 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
966 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
967
77a205be
JG
9682013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
969
970 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
971 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
972 (vrnd<a,m,n,p>_f32): Implement using builtins.
973 (vrnd<i,x><q>_f<32, 64>): New.
974
0659ce6f
JG
9752013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
976
977 * config/aarch64/aarch64-builtins.c
978 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
979 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
980 (frintz): Rename to...
981 (btrunc): ...this.
982 (frintp): Rename to...
983 (ceil): ...this.
984 (frintm): Rename to...
985 (floor): ...this.
986 (frinti): Rename to...
987 (nearbyint): ...this.
988 (frintx): Rename to...
989 (rint): ...this.
990 (frinta): Rename to...
991 (round): ...this.
992 * config/aarch64/aarch64-simd.md
993 (aarch64_frint<frint_suffix><mode>): Delete.
994 (<frint_pattern><mode>2): Convert to insn.
995 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
996 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
997 (frint_pattern): Likewise.
998 (frint_suffix): Likewise.
999
ea78906a
RB
10002013-04-29 Richard Biener <rguenther@suse.de>
1001
1002 PR tree-optimization/57081
1003 * loop-init.c: Include tree-flow.h.
1004 (loop_optimizer_finalize): Free number of iteration estimates.
1005 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
1006
baee1763
JJ
10072013-04-29 Jakub Jelinek <jakub@redhat.com>
1008
94dc5332
JJ
1009 PR tree-optimization/57083
1010 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
1011 non-singleton shift count range, zero extend low_bound for uns case.
1012
baee1763
JJ
1013 * config/i386/predicates.md (general_vector_operand): New predicate.
1014 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
1015 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
1016 if they aren't nonimmediate operands. If their original values
1017 satisfy const_vector_equal_evenodd_p, don't shift them.
1018 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
1019 predicates. For the SSE4.1 case force operands[{1,2}] into registers
1020 if not nonimmediate_operand.
1021 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
1022 instead of register_operand.
1023 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
1024
22ad5e0a
EB
10252013-04-28 Eric Botcazou <ebotcazou@gcc.gnu.org>
1026
1027 * stor-layout.c (finalize_size_functions): Allocate a structure and
1028 reset cfun before dumping the functions.
1029
ba8011e6
JJ
10302013-04-27 Jakub Jelinek <jakub@redhat.com>
1031
d6fde69e
JJ
1032 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
1033
ba8011e6
JJ
1034 PR target/56866
1035 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
1036 use xop_pmacsdqh if uns_p.
1037 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
1038 the immediate rotate count.
1039
2c62cbaa
VM
10402013-04-26 Vladimir Makarov <vmakarov@redhat.com>
1041
1042 * rtl.h (struct rtx_def): Add comment for field jump.
1043 (LRA_SUBREG_P): New macro.
1044 * recog.c (register_operand): Check LRA_SUBREG_P.
1045 * lra.c (lra): Add note at the end of RTL code. Align non-empty
1046 stack frame.
1047 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
1048 (lra_final_code_change): Skip subreg change for operators.
1049 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
1050 if there are no operand changes.
1051 * lra-constraints.c (curr_insn_set): New.
1052 (match_reload): Set LRA_SUBREG_P.
1053 (emit_spill_move): Ditto.
1054 (check_and_process_move): Use curr_insn_set. Process only single
1055 set insns. Don't initialize sec_mem_p and change_p.
1056 (simplify_operand_subreg): Use LRA_SUBREG_P.
1057 (reg_in_class_p): New function.
1058 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
1059 of #ifdef. Add code to remove cycling.
1060 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
1061 non-null disp. Reload inner instead of disp when base and index
1062 are null. Try to put lo_sum into register.
1063 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
1064 (check_and_process_move): Move code for move cost check to
1065 simple_move_p. Remove equiv_substitution.
1066 (simple_move_p): New function.
1067 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
1068 curr_insn_set. Call check_and_process_move only for single set
1069 insns. Use the new function. Move call of check_and_process_move
1070 after operand equiv substitution and address process.
1071
e7d764f3
JJ
10722013-04-26 Jakub Jelinek <jakub@redhat.com>
1073
1074 PR go/57045
1075 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
1076 with nonlocal goto receivers or returns twice calls, ignore
1077 unininitialized values from abnormal edges to nl goto receiver
1078 or returns twice call.
1079
41e10689
JJ
10802013-04-26 Jakub Jelinek <jakub@redhat.com>
1081
1082 PR tree-optimization/57051
1083 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
1084 and VEC_RSHIFT_EXPR if shift count is a multiple of element
1085 bitsize.
1086
d7ed20db
RB
10872013-04-26 Richard Biener <rguenther@suse.de>
1088
1089 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
1090 (expand_omp_taskreg): Likewise. Mark loops for fixup.
1091 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
1092 (fixup_loop_arrays_after_move): New function.
1093 (move_sese_region_to_fn): Properly outline the loop tree parts
1094 of the SESE region.
1095
df93505e
UB
10962013-04-26 Uros Bizjak <ubizjak@gmail.com>
1097
1098 * config/i386/i386.md (type, unit): Fix long lines.
1099
dd366ec3
RB
11002013-04-26 Richard Biener <rguenther@suse.de>
1101
1102 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
1103 (lto-streamer-out.o): Likewise.
1104 * cfgloop.c (init_loops_structure): Export, add struct function
1105 argument and adjust.
1106 (flow_loops_find): Adjust.
1107 * cfgloop.h (enum loop_estimation): Add EST_LAST.
1108 (init_loops_structure): Declare.
1109 * lto-streamer-in.c: Include cfgloop.h.
1110 (input_cfg): Input the loop tree.
1111 * lto-streamer-out.c: Include cfgloop.h.
1112 (output_cfg): Output the loop tree.
1113 (output_struct_function_base): Do not drop PROP_loops.
1114
a9e0d843
RB
11152013-03-26 Richard Biener <rguenther@suse.de>
1116
1117 * tree-cfg.c (execute_build_cfg): Build the loop tree.
1118 (pass_build_cfg): Provide PROP_loops.
1119 (move_sese_region_to_fn): Remove loops that are outlined into fn
1120 for now.
1121 * tree-inline.c: Include cfgloop.h.
1122 (initialize_cfun): Do not drop PROP_loops.
1123 (copy_loops): New function.
1124 (copy_cfg_body): Copy loop structure.
1125 (tree_function_versioning): Initialize destination loop tree.
1126 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
1127 (pass_parallelize_loops): Do IL verification.
1128 * loop-init.c (loop_optimizer_init): Fixup loops if required.
1129 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
1130 the CFG make sure we fixup loops as well.
1131 * tree-ssa-tail-merge.c: Include cfgloop.h.
1132 (replace_block_by): When merging loop latches mark loops for fixup.
1133 * lto-streamer-out.c (output_struct_function_base): Drop
1134 PROP_loops for now.
1135 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
1136 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
1137 * ipa-split.c: Include cfgloop.h.
1138 (split_function): Add the new return block to the loop tree root.
1139 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
1140 whether we have removed the forwarder block.
1141 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
1142 * cfgloop.h (place_new_loop): Declare.
1143 * cfgloopmanip.c (place_new_loop): Export.
1144 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
1145 (tree-switch-conversion.o): Likewise.
1146 (tree-complex.o): Likewise.
1147 (tree-inline.o): Likewise.
1148 (tree-ssa-tailmerge.o): Likewise.
1149 (ipa-split.o): Likewise.
1150 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
1151 (tree-ssa-copy.o): Likewise.
1152 * tree-switch-conversion.c: Include cfgloop.h
1153 (process_switch): If we emit a bit-test cascade, schedule loops
1154 for fixup.
1155 * tree-complex.c: Include cfgloop.h.
1156 (expand_complex_div_wide): Properly add new basic-blocks to loops.
1157 * asan.c: Include cfgloop.h.
1158 (create_cond_insert_point): Properly add new basic-blocks to
1159 loops, schedule loop fixup.
1160 * cfgloop.c (verify_loop_structure): Check that looks are not
1161 marked for fixup.
1162 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
1163 to loops.
1164 (expand_omp_for_generic): Likewise.
1165 (expand_omp_sections): Likewise.
1166 (expand_omp_atomic_pipeline): Schedule loops for fixup.
1167 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
1168 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
1169 is initialized, not when loops are present.
1170 * tree-parloops.c (parallelize_loops): Remove checking here.
1171 * passes.c (init_optimization_passes): Schedule a copy-propagation
1172 pass before complete unrolling of inner loops.
1173
e78e8a0b
JJ
11742013-04-26 Jakub Jelinek <jakub@redhat.com>
1175
a2e836b2
JJ
1176 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
1177 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
1178 (colorize_init): Add argument to _WIN32 version.
1179 * toplev.c: Include diagnostic-color.h.
1180 (process_options): Default to -fdiagnostics-color=auto if
1181 GCC_COLORS env var is in the environment.
1182 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
1183 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
1184 env var is in the environment, the default is auto rather than never.
a2e836b2 1185
e78e8a0b
JJ
1186 * diagnostic.h (file_name_as_prefix): Add context argument.
1187 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
1188 the string as locus.
1189 * langhooks.c (lhd_print_error_function): Adjust caller.
1190
013e5ef9
LC
11912013-04-25 Lawrence Crowl <crowl@google.com>
1192
1193 * var-tracking.c (shared_hash_def::htab):
1194 Change type to hash_table. Update dependent calls and types.
1195
4a8fb1a1
LC
11962013-04-25 Lawrence Crowl <crowl@google.com>
1197
1198 * Makefile.in: Update as needed below.
1199
1200 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
1201 Move declaration to after the type's method definitons.
1202
1203 * attribs.c (htab_t scoped_attributes::attribute_hash):
1204 Change type to hash_table. Update dependent calls and types.
1205
1206 * bitmap.c (htab_t bitmap_desc_hash):
1207 Change type to hash_table. Update dependent calls and types.
1208
1209 * cselib.c (htab_t cselib_hash_table):
1210 Change type to hash_table. Update dependent calls and types.
1211
1212 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
1213 (hash_string_slot_node): Move implementation into lto-streamer.h
1214 struct string_slot_hasher.
1215 (eq_string_slot_node): Likewise.
1216
1217 * data-streamer-out.c: Update output_block::string_hash_table
1218 dependent calls and types.
1219
1220 * dwarf2cfi.c (htab_t trace_index):
1221 Change type to hash_table. Update dependent calls and types.
1222
1223 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
1224 Change type to hash_table. Update dependent calls and types.
1225 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
1226 (htab_t optimize_external_refs::map): Likewise.
1227 (htab_t output_comp_unit::extern_map): Likewise.
1228 (htab_t output_comdat_type_unit::extern_map): Likewise.
1229 (htab_t output_macinfo::macinfo_htab): Likewise.
1230 (htab_t optimize_location_lists::htab): Likewise.
1231 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
1232
1233 * except.c (htab_t ehspec_hash_type):
1234 Change type to hash_table. Update dependent calls and types.
1235 (assign_filter_values::ttypes): Likewise.
1236 (assign_filter_values::ehspec): Likewise.
1237 (sjlj_assign_call_site_values::ar_hash): Likewise.
1238 (convert_to_eh_region_ranges::ar_hash): Likewise.
1239
1240 * gcse.c (htab_t pre_ldst_table):
1241 Change type to hash_table. Update dependent calls and types.
1242
1243 * ggc-common.c (htab_t saving_htab):
1244 Change type to hash_table. Update dependent calls and types.
1245 (htab_t loc_hash): Likewise.
1246 (htab_t ptr_hash): Likewise.
1247 (call_count): Rename ggc_call_count.
1248 (call_alloc): Rename ggc_call_alloc.
1249 (loc_descriptor): Rename make_loc_descriptor.
1250 (add_statistics): Rename ggc_add_statistics.
1251
1252 * ggc-common.c (saving_htab):
1253 Change type to hash_table. Update dependent calls and types.
1254
1255 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
1256 (push_gimplify_context): Likewise.
1257 (pop_gimplify_context): Likewise.
1258 (struct gimple_temp_hash_elt): Added.
1259 (struct gimplify_hasher): Likewise.
1260 (struct gimplify_ctx.temp_htab):
1261 Change type to hash_table. Update dependent calls and types.
1262
1263 * gimple-fold.c: Include gimplify-ctx.h.
1264
1265 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
1266 Change type to hash_table. Update dependent calls and types.
1267 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
1268 avoid potential global name collision.
1269
1270 * gimplify.c: Include gimplify-ctx.h.
1271 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
1272 (htab_t gimplify_ctx::temp_htab):
1273 Update dependent calls and types for new type hash_table.
1274 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
1275 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
1276
1277 * gimplify-ctx.h: New.
1278 (struct gimple_temp_hash_elt): Move from gimplify.c.
1279 (class gimplify_hasher): New.
1280 (struct gimplify_ctx): Move from gimple.h.
1281 (htab_t gimplify_ctx::temp_htab):
1282 Change type to hash_table. Update dependent calls and types.
1283
1284 * graphite-clast-to-gimple.c: Include graphite-htab.h.
1285 (htab_t ivs_params::newivs_index):
1286 Change type to hash_table. Update dependent calls and types.
1287 (htab_t ivs_params::params_index): Likewise.
1288 (htab_t print_generated_program::params_index): Likewise.
1289 (htab_t gloog::newivs_index): Likewise.
1290 (htab_t gloog::params_index): Likewise.
1291
1292 * graphite.c: Include graphite-htab.h.
1293 4htab_t graphite_transform_loops::bb_pbb_mapping):
1294 Change type to hash_table. Update dependent calls and types.
1295
1296 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
1297 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
1298 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
1299
1300 * graphite-dependences.c: Include graphite-htab.h.
1301 (loop_is_parallel_p): Change hash table type of parameter.
1302
1303 * graphite-htab.h: New.
1304 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
1305 (extern find_pbb_via_hash): Move from graphite-poly.h.
1306 (extern loop_is_parallel_p): Move from graphite-poly.h.
1307 (extern get_loop_body_pbbs): Move from graphite-poly.h.
1308
1309 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
1310 (extern loop_is_parallel_p): Move to graphite-htab.h.
1311 (extern get_loop_body_pbbs): Move to graphite-htab.h.
1312
1313 * haifa-sched.c (htab_t delay_htab):
1314 Change type to hash_table. Update dependent calls and types.
1315 (htab_t delay_htab_i2): Likewise.
1316
1317 * ira-color.c (htab_t allocno_hard_regs_htab):
1318 Change type to hash_table. Update dependent calls and types.
1319
1320 * ira-costs.c (htab_t cost_classes_htab):
1321 Change type to hash_table. Update dependent calls and types.
1322
1323 * loop-invariant.c (htab_t merge_identical_invariants::eq):
1324 Change type to hash_table. Update dependent calls and types.
1325
1326 * loop-iv.c (htab_t bivs):
1327 Change type to hash_table. Update dependent calls and types.
1328
1329 * loop-unroll.c (htab_t opt_info::insns_to_split):
1330 Change type to hash_table. Update dependent calls and types.
1331 (htab_t opt_info::insns_with_var_to_expand): Likewise.
1332
1333 * lto-streamer.h (struct string_slot): Move from data-streamer.h
1334 (struct string_slot_hasher): New.
1335 (htab_t output_block::string_hash_table):
1336 Change type to hash_table. Update dependent calls and types.
1337
1338 * lto-streamer-in.c (freeing_string_slot_hasher): New.
1339 (htab_t file_name_hash_table):
1340 Change type to hash_table. Update dependent calls and types.
1341
1342 * lto-streamer-out.c: Update output_block::string_hash_table dependent
1343 calls and types.
1344
1345 * lto-streamer.c (htab_t tree_htab):
1346 Change type to hash_table. Update dependent calls and types.
1347
1348 * omp-low.c: Include gimplify-ctx.h.
1349
1350 * passes.c (htab_t name_to_pass_map):
1351 Change type to hash_table. Update dependent calls and types.
1352 (pass_traverse): Rename to passes_pass_traverse.
1353
1354 * plugin.c (htab_t event_tab):
1355 Change type to hash_table. Update dependent calls and types.
1356
1357 * postreload-gcse.c (htab_t expr_table):
1358 Change type to hash_table. Update dependent calls and types.
1359 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
1360
1361 * sese.c (debug_rename_map_1): Make extern.
1362 (htab_t copy_bb_and_scalar_dependences::rename_map):
1363 Change type to hash_table. Update dependent calls and types.
1364
1365 * sese.h (extern debug_rename_map): Move to .c file.
1366
1367 * store-motion.c (htab_t store_motion_mems_table):
1368 Change type to hash_table. Update dependent calls and types.
1369
1370 * trans-mem.c (htab_t tm_new_mem_hash):
1371 Change type to hash_table. Update dependent calls and types.
1372
1373 * tree-browser.c (htab_t TB_up_ht):
1374 Change type to hash_table. Update dependent calls and types.
1375
1376 * tree-cfg.c (htab_t discriminator_per_locus):
1377 Change type to hash_table. Update dependent calls and types.
1378
1379 * tree-complex.c: Include tree-hasher.h
1380 (htab_t complex_variable_components):
1381 Change type to hash_table. Update dependent calls and types.
1382
1383 * tree-eh.c (htab_t finally_tree):
1384 Change type to hash_table. Update dependent calls and types.
1385
1386 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
1387 struct int_tree_hasher.
1388 (extern int_tree_map_eq): Likewise.
1389 (uid_decl_map_hash): Removed.
1390 (extern decl_tree_map_eq): Likewise.
1391
1392 * tree-hasher.h: New.
1393 (struct int_tree_hasher): New.
1394 (typedef int_tree_htab_type): New.
1395
1396 * tree-inline.c: Include gimplify-ctx.h.
1397
1398 * tree-mudflap.c: Include gimplify-ctx.h.
1399
1400 * tree-parloops.c: Include tree-hasher.h.
1401 (htab_t eliminate_local_variables_stmt::decl_address):
1402 Change type to hash_table. Update dependent calls and types.
1403 (htab_t separate_decls_in_region::decl_copies): Likewise.
1404
1405 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
1406 Change type to hash_table. Update dependent calls and types.
1407
1408 * tree-sra.c (candidates):
1409 Change type to hash_table. Update dependent calls and types.
1410
1411 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
1412 in tree-flow.h.
1413 (int_tree_map_hash): Likewise.
1414
1415 * tree-ssa-dom.c (htab_t avail_exprs):
1416 Change type to hash_table. Update dependent calls and types.
1417
1418 * tree-ssa-live.c (var_map_base_init::tree_to_index):
1419 Change type to hash_table. Update dependent calls and types.
1420
1421 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
1422 Change type to hash_table. Update dependent calls and types.
1423
1424 * tree-ssa-phiopt.c (seen_ssa_names):
1425 Change type to hash_table. Update dependent calls and types.
1426
1427 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
1428 Change type to hash_table. Update dependent calls and types.
1429
1430 * tree-ssa-uncprop.c (equiv):
1431 Change type to hash_table. Update dependent calls and types.
1432
c5a44004
JJ
14332013-04-25 Jakub Jelinek <jakub@redhat.com>
1434
1435 PR rtl-optimization/57003
1436 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
1437 call note_stores with kill_clobbered_value callback again after
1438 killing regs_invalidated_by_call.
1439
09962a4a
JG
14402013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
1441
1442 * config/aarch64/aarch64-simd.md
1443 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
1444 (aarch64_simd_bsl<mode>): Likewise.
1445 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
1446
ea28bb0b
MP
14472013-04-25 Marek Polacek <polacek@redhat.com>
1448
1449 PR tree-optimization/57066
3c21604f 1450 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 1451
96659611
JG
14522013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
1453
1454 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
1455
9697e620
JG
14562013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
1457
1458 * config/aarch64/aarch64-builtins.c
1459 (aarch64_fold_builtin): New.
1460 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
1461 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
1462 * config/aarch64/aarch64-simd-builtins.def (abs): New.
1463 * config/aarch64/arm_neon.h
1464 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
1465
0ac198d3
JG
14662013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
1467 Tejas Belagod <tejas.belagod@arm.com>
1468
1469 * config/aarch64/aarch64-builtins.c
1470 (aarch64_gimple_fold_builtin): New.
1471 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
1472 * config/aarch64/aarch64-simd-builtins.def (addv): New.
1473 * config/aarch64/aarch64-simd.md (addpv4sf): New.
1474 (addvv4sf): Update.
1475 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
1476
58cff58c
N
14772013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
1478
df93505e 1479 * config/aarch64/aarch64.md
58cff58c
N
1480 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
1481
7e0228bf
N
14822013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
1483
1484 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
1485 (*ngcsi_uxtw): New pattern.
1486
5819f96f 14872013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 1488 Julian Brown <julian@codesourcery.com>
5819f96f
KT
1489
1490 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
1491 (TB_DREG): Add T_V4HF.
1492 (v4hf_UP): New macro.
1493 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 1494 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
1495 Handle initialisation of V4HF. Adjust initialisation of reinterpret
1496 built-ins.
df93505e 1497 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
1498 (arm_vector_mode_supported_p): Handle V4HF.
1499 (arm_mangle_map): Handle V4HFmode.
1500 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
1501 * config/arm/arm_neon_builtins.def: Add entries for
1502 vcvtv4hfv4sf, vcvtv4sfv4hf.
1503 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
1504 (neon_vcvtv4hfv4sf): Likewise.
1505 * config/arm/neon-gen.ml: Handle half-precision floating point
1506 features.
1507 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
1508 * config/arm/arm_neon.h: Regenerate.
1509 * config/arm/neon.ml (type elts): Add F16.
1510 (type vectype): Add T_float16x4, T_floatHF.
1511 (type vecmode): Add V4HF.
1512 (type features): Add Requires_FP_bit feature.
1513 (elt_width): Handle F16.
1514 (elt_class): Likewise.
1515 (elt_of_class_width): Likewise.
1516 (mode_of_elt): Refactor.
1517 (type_for_elt): Handle F16, fix error messages.
1518 (vectype_size): Handle T_float16x4.
1519 (vcvt_sh): New function.
1520 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
1521 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
1522 (string_of_mode): Handle V4HF.
1523 * doc/arm-neon-intrinsics.texi: Regenerate.
1524
1ef395e4
JG
15252013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
1526
1527 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
1528 format specifier in 'X' case.
1529
41c34e94
AM
15302013-04-25 Alan Modra <amodra@gmail.com>
1531
1532 PR target/57052
1533 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
1534 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
1535 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
1536 Repeat for many other rotate/shift and mask patterns using subregs.
1537 Name lshiftrt insns.
1538 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
1539 on WORDS_BIG_ENDIAN.
1540
b9a7eb5d
AM
15412013-04-25 Alan Modra <amodra@gmail.com>
1542
1543 * config.gcc: Support little-endian powerpc-linux targets.
1544 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
1545 (LINK_OS_LINUX_SPEC): Define.
1546 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
1547 Preserve MASK_LITTLE_ENDIAN.
1548 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
1549 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
1550 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
1551 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
1552 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
1553 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
1554 Correct fp word order for little-endian. Don't shift toc entries
1555 smaller than a word for little-endian.
1556 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
1557 (bswapdi2 splits): Correct low-part subreg for little-endian.
1558 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
1559 low/high where such is correct only for be.
1560 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
1561 little-endian for -mcall-aixdesc.
1562
87f73374
AM
15632013-04-25 Alan Modra <amodra@gmail.com>
1564
1565 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
1566 replace_equiv_address_nv.
1567
cabf91cd
AM
15682013-04-25 Alan Modra <amodra@gmail.com>
1569
1570 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
1571
0ae24cc8
VM
15722013-04-24 Vladimir Makarov <vmakarov@redhat.com>
1573
1574 Revert:
1575 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
1576 * rtl.h (struct rtx_def): ...
cabf91cd 1577
77bce07c
VM
15782013-04-24 Vladimir Makarov <vmakarov@redhat.com>
1579
1580 PR rtl-optimizations/57046
1581 * lra-constraints (split_reg): Set up lra_risky_transformations_p
1582 for multi-reg splits.
1583
0db63e7f
L
15842013-04-24 H.J. Lu <hongjiu.lu@intel.com>
1585
1586 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
1587
3362b6b6
SA
15882013-04-24 Sterling Augustine <saugustine@google.com>
1589
1590 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
1591 (comp_dir_string, debug_str_dwo_section): New.
1592 (DEBUG_STR_DWO_SECTION): Rename to ...
1593 (DEBUG_DWO_STR_SECTION): ... this.
1594 (DEBUG_NORM_STR_SECTION): Delete.
1595 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
1596 (DEBUG_STR_DWO_SECTION_FLAGS): New.
1597 (find_AT_string): Move most logic to ...
1598 (find_AT_string_in_table): ... here. New.
1599 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
1600 add_skeleton_AT_string. Delete logic.
1601 (output_skeleton_debug_sections): Remove call to
1602 add_top_level_skeleton_die_attrs.
1603 (add_comp_dir_attribute): Move logic to comp_dir_string.
1604 (dwarf2out_init): Initialize debug_str_dwo_section.
1605 (output_indirect_string): Call find_string_form.
1606 (output_indirect_strings): Rewrite.
1607 (prune_unused_types): Empty skeleton_debug_str_hash.
1608 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
1609 (dwarf2out_finish): Call output_indirect_strings.
1610
e93e18e9
PC
16112013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
1612
1613 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
1614
f6ce35ac
VM
16152013-04-24 Vladimir Makarov <vmakarov@redhat.com>
1616
cabf91cd 1617 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
1618 (LRA_SUBREG_P): New macro.
1619 * recog.c (register_operand): Check LRA_SUBREG_P.
1620 * lra.c (lra): Add note at the end of RTL code. Align non-empty
1621 stack frame.
1622 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
1623 (lra_final_code_change): Skip subreg change for operators.
1624 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
1625 if there are no operand changes.
1626 * lra-constraints.c (curr_insn_set): New.
1627 (match_reload): Set LRA_SUBREG_P.
1628 (emit_spill_move): Ditto.
1629 (check_and_process_move): Use curr_insn_set. Process only single
1630 set insns. Don't initialize sec_mem_p and change_p.
1631 (simplify_operand_subreg): Use LRA_SUBREG_P.
1632 (reg_in_class_p): New function.
1633 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
1634 of #ifdef. Add code to remove cycling.
1635 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
1636 non-null disp. Reload inner instead of disp when base and index
1637 are null. Try to put lo_sum into register.
1638 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 1639 (check_and_process_move): Move code for move cost check to
f6ce35ac 1640 simple_move_p. Remove equiv_substitution.
cabf91cd 1641 (simple_move_p): New function.
f6ce35ac
VM
1642 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
1643 curr_insn_set. Call check_and_process_move only for single set
1644 insns. Use the new function. Move call of check_and_process_move
1645 after operand equiv substitution and address process.
1646
38047d90
JG
16472013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
1648
1649 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
1650 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
1651 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
1652
13f39b2e
PC
16532013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
1654
1655 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
1656
97c116dc
MP
16572013-04-24 Marek Polacek <polacek@redhat.com>
1658
1659 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
1660 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
1661 (select_loops_exit_conditions): Likewise.
1662 (number_of_iterations_for_all_loops): Likewise.
1663 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
1664 (scev_analysis): Likewise.
1665
83082391
CM
16662013-04-02 Catherine Moore <clm@codesourcery.com>
1667 Chao-ying Fu <fu@mips.com>
1668
cabf91cd
AM
1669 * config/mips/micromips.md (jraddiusp): New pattern.
1670 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
1671 instruction if possible.
83082391 1672
19e34aa2
AM
16732013-04-24 Alan Modra <amodra@gmail.com>
1674
1675 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
1676
fdb6603c
JB
16772013-04-24 Julian Brown <julian@codesourcery.com>
1678 Chung-Lin Tang <cltang@codesourcery.com>
1679
1680 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
1681 dependency behavior in enumeration type DIE generation. Add TODO note
1682 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 1683
bf190e8d
LC
16842013-04-23 Lawrence Crowl <crowl@google.com>
1685
1686 * Makefile.in: Update as needed below.
1687
1688 * hash-table.h (class hash_table):
1689 Correct many methods with parameter types compare_type to the correct
1690 value_type. (Correct code was unlikely to notice the change.)
1691 (hash_table::elements_with_deleted) New.
1692 (class hashtable::iterator): New.
1693 (hashtable::begin()): New.
1694 (hashtable::end()): New.
1695 (FOR_EACH_HASH_TABLE_ELEMENT): New.
1696
1697 * statistics.c (statistics_hashes):
1698 Change type to hash_table. Update dependent calls and types.
1699
1700 * tree-into-ssa.c (var_infos):
1701 Change type to hash_table. Update dependent calls and types.
1702
1703 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
1704 Change type to hash_table. Update dependent calls and types.
1705
1706 * tree-ssa-loop-im.c (struct mem_ref.refs):
1707 Change type to hash_table. Update dependent calls and types.
1708
1709 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
1710 Change type to hash_table. Update dependent calls and types.
1711
1712 * tree-ssa-sccvn.c (vn_tables_s::nary):
1713 Change type to hash_table. Update dependent calls and types.
1714 (vn_tables_s::phis): Likewise.
1715 (vn_tables_s::references): Likewise.
1716
1717 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
1718 (vn_reference_eq): Update parameter and return types.
1719
1720 * tree-ssa-structalias.c (pointer_equiv_class_table):
1721 Change type to hash_table. Update dependent calls and types.
1722 (location_equiv_class_table): Likewise.
1723
1724 * tree-vect-data-refs.c: Consequential changes for making
1725 peeling a hash_table.
1726
1727 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
1728 (destroy_loop_vec_info): Dependent hash_table update.
1729
1730 * tree-vectorizer.h (peeling_htab):
1731 Change type to hash_table. Update dependent calls and types.
1732
d70a81dd
SC
17332013-04-23 Shiva Chen <shiva0217@gmail.com>
1734
cabf91cd
AM
1735 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
1736 to check the register content is equal or not.
1737 * lra-constraints.c (match_reload): Use lra_assign_reg_val
1738 to assign register content record.
1739 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 1740 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
1741 * lra-int.h (struct lra_reg): Add offset member.
1742 (lra_reg_val_equal_p): New static inline function.
1743 (lra_update_reg_val_offset): New static inline function.
1744 (lra_assign_reg_val): New static inline function.
1745 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
1746 to assign register content record.
1747 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 1748
b894a1f3
CM
17492013-04-23 Catherine Moore <clm@codesourcery.com>
1750
1751 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
1752 operands. Record compression.
1753
ecd14de9
XDL
17542013-04-23 Xinliang David Li <davidxl@google.com>
1755
1756 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
1757
92e776e9
RB
17582013-04-23 Richard Biener <rguenther@suse.de>
1759
1760 PR middle-end/57036
1761 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
1762 parameter, only add abnormal goto edges from the copied body
1763 if the call could perform abnormal gotos.
1764 (copy_cfg_body): Adjust.
1765
a15ee567
SN
17662013-04-23 Sofiane Naci <sofiane.naci@arm.com>
1767
1768 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
1769
08c52234
AS
17702013-04-23 Andreas Schwab <schwab@linux-m68k.org>
1771
1772 * coretypes.h (gimple_stmt_iterator): Add struct to make
1773 compatible with C.
1774
999c1171
RB
17752013-04-23 Richard Biener <rguenther@suse.de>
1776
1777 PR tree-optimization/57026
1778 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
1779 from SSA names occuring in abnormal PHI nodes.
1780
53669259
AK
17812013-04-22 Andi Kleen <ak@linux.intel.com>
1782
1783 * lto/lto.c (print_lto_report_1): Fix LTO report names.
1784
1a0ad150
AK
17852013-04-22 Andi Kleen <ak@linux.intel.com>
1786
1787 * lto/lto.c (print_lto_report_1): Declare early.
1788 (read_cgraph_and_symbols): Call print_lto_report_1 early.
1789
057f8f20
AK
17902013-04-22 Andi Kleen <ak@linux.intel.com>
1791
1792 * common.opt (-flto-report-wpa): Add.
1793 * doc/invoke.texi (-flto-report-wpa): Add.
1794 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
1795 (lto_main): dito.
1796
473b1e05
XDL
17972013-04-22 Xinliang David Li <davidxl@google.com>
1798
1799 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
1800 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
1801 * Makefile.in: New dependency
1802
cabf91cd 1803 David Daney <ddaney.cavm@gmail.com>
b1485a33 1804
cabf91cd
AM
1805 * configure.ac (gcc_cv_as_micromips_support): Use the
1806 --fatal-warnings option.
1807 * configure: Regenerate.
b1485a33 1808
829d0168
MP
18092013-04-22 Marek Polacek <polacek@redhat.com>
1810
1811 PR sanitizer/56990
1812 * tsan.c (instrument_expr): Don't instrument expression
1813 in case its size is zero.
1814
6d9b7208
UB
18152013-04-22 Uros Bizjak <ubizjak@gmail.com>
1816
1817 PR target/57032
1818 Revert:
1819 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
1820
1821 * config/alpha/alpha.c (TARGET_LRA_P): New define.
1822
ea679d55
JG
18232013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
1824
1825 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
1826 (gimple_stmt_iterator): New typedef.
1827 * gimple.h (gimple_stmt_iterator): Rename to...
1828 (gimple_stmt_iterator_d): ... This.
1829 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
1830 trees be valid for GIMPLE and GENERIC.
1831 (TARGET_GIMPLE_FOLD_BUILTIN): New.
1832 * gimple-fold.c (gimple_fold_call): Call target hook
1833 gimple_fold_builtin.
1834 * hooks.c (hook_bool_gsiptr_false): New.
1835 * hooks.h (hook_bool_gsiptr_false): New.
1836 * target.def (fold_stmt): New.
1837 * doc/tm.texi: Regenerate.
1838
88a581da
VM
18392013-04-22 Vladimir Makarov <vmakarov@redhat.com>
1840
1841 PR target/57018
1842 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
1843 a set sp if no stack realignment.
1844
92be22dc
NC
18452013-04-22 Nick Clifton <nickc@redhat.com>
1846
1847 * config.gcc (tilegx-linux): Extend extra_objs rather than
1848 overwriting it.
1849 (tilepro-linux): Likewise.
1850
0ddec79f
JG
18512013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
1852
1853 * config/aarch64/aarch64-builtins.c
1854 (CF): Remove.
1855 (CF0, CF1, CF2, CF3, CF4, CF10): New.
1856 (VAR<1-12>): Add MAP parameter.
1857 (BUILTIN_*): Likewise.
1858 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
1859 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
1860 (aarch64_ushl_n<mode>): Likewise.
1861 (aarch64_sshr_n<mode>): Likewise.
1862 (aarch64_ushr_n<mode>): Likewise.
1863 (aarch64_<maxmin><mode>): Likewise.
1864 (aarch64_sqrt<mode>): Likewise.
1865 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
1866 (vshr<q>_n_*): Likewise.
1867
0050faf8
JG
18682013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
1869
1870 * config/aarch64/aarch64-builtins.c
1871 (aarch64_simd_builtin_type_mode): Handle SF types.
1872 (sf_UP): Define.
1873 (BUILTIN_GPF): Define.
1874 (aarch64_init_simd_builtins): Handle SF types.
1875 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
1876 (frecps): Likewise.
1877 (frecpx): Likewise.
1878 * config/aarch64/aarch64-simd.md
1879 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
1880 (aarch64_frecpe<mode>): New.
1881 (aarch64_frecps<mode>): Likewise.
1882 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
1883 (v8type): Add frecp<esx>.
1884 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
1885 (aarch64_frecps<mode>): Likewise.
1886 * config/aarch64/iterators.md (FRECP): New.
1887 (frecp_suffix): Likewise.
1888 * config/aarch64/arm_neon.h
1889 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
1890
0fad3dbc 18912013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
1892
1893 PR target/56995
1894 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
1895 (REG_CLASS_NAMES): Idem.
1896 (REG_CLASS_CONTENTS): Idem.
1897 (REGCLASS_HAS_FP_REG): Idem.
1898 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
1899 (sh_conditional_register_usage): Idem.
1900
3e8a33f9
JL
19012013-04-21 Jeff Law <law@redhat.com>
1902
1903 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
1904 (ssa_forward_propagate_and_combine): Use it.
1905
f38e1b0a
VM
19062013-04-19 Vladimir Makarov <vmakarov@redhat.com>
1907
1908 * lra.c: Update the flow chart diagram.
1909
682303da
VM
19102013-04-19 Vladimir Makarov <vmakarov@redhat.com>
1911
1912 PR rtl-optimization/56847
1913 * lra-constraints.c (process_alt_operands): Discourage alternative
1914 with non-matche doffsettable memory constraint fro memory with
1915 known offset.
1916
f6b64c35
RB
19172013-04-19 Richard Biener <rguenther@suse.de>
1918
1919 PR tree-optimization/56982
1920 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
1921 function.
1922 * gimplify.c (gimplify_call_expr): Notice special calls.
1923 (gimplify_modify_expr): Likewise.
1924 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
1925 abnormal control flow receivers.
1926 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
1927 in the same way as cfun->has_nonlocal_labels.
1928 (gimple_purge_dead_abnormal_call_edges): Likewise.
1929 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
1930 receivers start a basic-block.
1931
01d8bf07
RB
19322013-04-19 Richard Biener <rguenther@suse.de>
1933
1934 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
1935 member ...
1936 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
1937 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
1938 (SLP_TREE_LOAD_PERMUTATION): Add.
1939 (vect_transform_slp_perm_load): Adjust prototype.
1940 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
1941 (vect_free_slp_instance): Likewise.
1942 (vect_create_new_slp_node): Likewise.
1943 (vect_supported_slp_permutation_p): Remove.
1944 (vect_slp_rearrange_stmts): Adjust.
1945 (vect_supported_load_permutation_p): Likewise. Inline
1946 vect_supported_slp_permutation_p here.
1947 (vect_analyze_slp_instance): Compute load permutations per
1948 slp node instead of per instance.
1949 (vect_get_slp_defs): Adjust.
1950 (vect_transform_slp_perm_load): Likewise.
1951 (vect_schedule_slp_instance): Remove redundant code.
1952 (vect_schedule_slp): Remove hack for PR56270, add it ...
1953 * tree-vect-stmts.c (vectorizable_load): ... here, do not
1954 CSE loads for SLP. Adjust.
1955
ede22fc3
GY
19562013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
1957
1958 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
1959 spelling in two comments.
1960
67bc84fb
GY
19612013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
1962
1963 PR target/56797
1964 * config/arm/arm.c (load_multiple_sequence): Require SP
1965 as base register for loads if SP is in the register list.
1966
e248d83f
MJ
19672013-04-19 Martin Jambor <mjambor@suse.cz>
1968
1969 PR tree-optimization/56718
1970 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
1971 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
1972 and made public. Adjusted all callers.
1973 (ipa_intraprocedural_devirtualization): New function.
1974 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
1975 (ipa_intraprocedural_devirtualization): Likewise.
1976 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
1977
4891e8f8
RB
19782013-04-19 Richard Biener <rguenther@suse.de>
1979
1980 PR tree-optimization/57000
1981 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
1982
dad89f7c
TG
19832013-04-19 Terry Guo <terry.guo@arm.com>
1984
1985 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
1986 Replace with ...
1987 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
1988 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
1989 (cortex_m4_fmacs): Use new reservations.
1990 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
1991
72ea0d47
VM
19922013-04-18 Vladimir Makarov <vmakarov@redhat.com>
1993
f1e6512c 1994 PR rtl-optimization/56999
72ea0d47
VM
1995 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
1996 related code.
1997 (lra_coalesce): Remove split_origin_bitmap and related code.
1998 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
1999 ranges if necessary.
2000
780a5b71
UB
20012013-04-18 Uros Bizjak <ubizjak@gmail.com>
2002
2003 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
2004 New array.
2005 (ix86_expand_call): Remove clobbered_registers array and use
2006 x86_64_ms_sysv_extra_clobbered_registers instead.
2007 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
2008 Declare here.
2009 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
2010 predicate.
2011 * config/i386/i386.md (*call_rex64_ms_sysv): Use
2012 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
2013 (*call_value_rex64_ms_sysv): Ditto.
2014
6f5a366a
CC
20152013-04-18 Cary Coutant <ccoutant@google.com>
2016
2017 * dwarf2out.c (output_pubnames): Check die_perennial_p of
2018 parent instead of die_mark.
2019
475b8f37
DN
20202013-04-18 Diego Novillo <dnovillo@google.com>
2021
2022 * gimple.c (create_gimple_tmp): New.
2023 (get_expr_type): New.
2024 (build_assign): New.
2025 (build_type_cast): New.
2026 * gimple.h (enum ssa_mode): Define.
2027 (gimple_seq_set_location): New.
2028 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 2029 to use build_assign and build_type_cast.
475b8f37 2030
08940f33
RB
20312013-04-18 Richard Biener <rguenther@suse.de>
2032
2033 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
2034 handle negative step. Remove redundant checks.
2035 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
2036 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
2037 for negative step and grouped loads fail to vectorize.
2038
0e0f87d4
SB
20392013-04-18 Steven Bosscher <steven@gcc.gnu.org>
2040
2041 * emit-rtl.c (reset_insn_used_flags): New function.
2042 (reset_all_used_flags): Use it.
2043 (verify_insn_sharing): New function.
2044 (verify_rtl_sharing): Fix verification for SEQUENCEs.
2045
4c445590
JJ
20462013-04-18 Jakub Jelinek <jakub@redhat.com>
2047
2048 PR tree-optimization/56984
2049 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
2050 and (x >> M) >= N don't register any assertion if N << M is the
2051 minimum value.
2052
6873ecab
SB
20532013-04-18 Steven Bosscher <steven@gcc.gnu.org>
2054
2055 * lower-subreg.c (resolve_simple_move): If called self-recursive,
2056 do not delete_insn insns that have not yet been emitted, only
2057 unlink them with remove_insn.
2058 * df-scan.c (df_insn_delete): Revert r197492.
2059
3ccb989e
SB
20602013-04-17 Steven Bosscher <steven@gcc.gnu.org>
2061
2062 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
2063 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
2064
20652013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
2066
2067 * config/arm/arm.md (movsicc_insn): Convert define_insn into
2068 define_insn_and_split.
2069 (and_scc,ior_scc,negscc): Likewise.
2070 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
2071
3ccb989e 20722013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
2073
2074 * config/arm/arm.c (use_return_insn): Return 0 for targets that
2075 can benefit from using a sequence of LDRD instructions in epilogue
2076 instead of a single LDM instruction.
2077
6d10a203
MLI
20782013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
2079
2080 PR 45688
2081 * doc/extend.texi: Fix typo.
2082
6983e6b5
RB
20832013-04-17 Richard Biener <rguenther@suse.de>
2084
2085 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
2086 (vect_build_slp_tree): ... here.
2087 (vect_build_slp_tree_1): Compute which stmts of the SLP group
2088 match. Remove special-casing of mismatched complex loads.
2089 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
2090 re-try the match with swapped commutative operands.
2091 (vect_supported_load_permutation_p): Remove special-casing of
2092 mismatched complex loads.
2093 (vect_analyze_slp_instance): Adjust.
2094
ef23e6a2
RB
20952013-04-17 Richard Biener <rguenther@suse.de>
2096
2097 PR rtl-optimization/56921
2098 * cfgloop.h (struct loop): Add simple_loop_desc member.
2099 (struct niter_desc): Mark with GTY(()).
2100 (simple_loop_desc): Do not use aux field but simple_loop_desc.
2101 * loop-iv.c (get_simple_loop_desc): Likewise.
2102 (free_simple_loop_desc): Likewise.
2103
2104 Revert
2105 2013-04-16 Richard Biener <rguenther@suse.de>
2106
2107 PR rtl-optimization/56921
2108 * loop-init.c (pass_rtl_move_loop_invariants): Add
2109 TODO_do_not_ggc_collect to todo_flags_finish.
2110 (pass_rtl_unswitch): Same.
2111 (pass_rtl_unroll_and_peel_loops): Same.
2112 (pass_rtl_doloop): Same.
2113
fc6f94f5
EB
21142013-04-17 Eric Botcazou <ebotcazou@adacore.com>
2115
2116 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
2117 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
2118 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
2119 references.
2120 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
2121 * tree-streamer.c (record_common_node): Adjust reference in comment.
2122
10a88311
TG
21232013-04-17 Terry Guo <terry.guo@arm.com>
2124
2125 * config/arm/cortex-m4.md: Add a new bypass.
2126
6d9b7208 21272013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
2128
2129 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
2130 New pattern.
2131 (*subs_<optab><mode>_multp2): New pattern.
2132 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
2133 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
2134
6d9b7208 21352013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
2136
2137 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
2138 (*subs_mul_imm_<mode>): New pattern.
2139
18a6701e
DE
21402013-04-16 David Edelsohn <dje.gcc@gmail.com>
2141
2142 PR target/56948
2143 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
2144 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
2145 (vsx_movti_32bit): Change j->wa to O->wa.
2146
07c37b2f
RB
21472013-04-16 Richard Biener <rguenther@suse.de>
2148
2149 PR rtl-optimization/56921
2150 * loop-init.c (pass_rtl_move_loop_invariants): Add
2151 TODO_do_not_ggc_collect to todo_flags_finish.
2152 (pass_rtl_unswitch): Same.
2153 (pass_rtl_unroll_and_peel_loops): Same.
2154 (pass_rtl_doloop): Same.
2155
0e0f87d4 21562013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
2157
2158 * config/arm/arm.c (emit_multi_reg_push): New declaration
2159 for an existing function.
2160 (arm_emit_strd_push): New function.
2161 (arm_expand_prologue): Used here.
2162 (arm_emit_ldrd_pop): New function.
2163 (arm_expand_epilogue): Used here.
2164 (arm_get_frame_offsets): Update condition.
2165 (arm_emit_multi_reg_pop): Add a special case for load of a single
2166 register with writeback.
2167
5e8e2af4
UB
21682013-04-16 Uros Bizjak <ubizjak@gmail.com>
2169
2170 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
2171 description.
2172
9fd9ccf7
RB
21732013-04-16 Richard Biener <rguenther@suse.de>
2174
2175 PR tree-optimization/56756
2176 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
2177 (first_mem_ref_loc): New.
2178 (execute_sm): Place the load temporarily before a previous
2179 access instead of in the latch edge to ensure its SSA dependencies
2180 are defined at points dominating the load.
2181
96fba521
SB
21822013-04-16 Steven Bosscher <steven@gcc.gnu.org>
2183
4c8af858
SB
2184 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
2185 correct fix by moving header and footer insn to the footer of
2186 the merged basic block. Clear BB_END of the merged-away block.
2187
96fba521
SB
2188 PR middle-end/43631
2189 * emit-rtl.c (make_note_raw): New function.
2190 (link_insn_into_chain): New static inline function.
2191 (add_insn): Use it.
2192 (add_insn_before, add_insn_after): Factor insn chain linking code...
2193 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
2194 using link_insn_into_chain.
2195 (note_outside_basic_block_p): New helper function for emit_note_after
2196 and emit_note_before.
2197 (emit_note_after): Use nobb variant of add_insn_after if the note
2198 should not be contained in a basic block.
2199 (emit_note_before): Use nobb variant of add_insn_before if the note
2200 should not be contained in a basic block.
2201 (emit_note_copy): Use make_note_raw.
2202 (emit_note): Likewise.
2203 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
2204 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
2205 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
2206 the moved barrier the tail of the basic block it follows.
2207 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
2208
7b8265ba
JJ
22092013-04-15 Jakub Jelinek <jakub@redhat.com>
2210
2211 PR tree-optimization/56962
2212 * gimple-ssa-strength-reduction.c (record_increment): Only set
2213 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
2214 either rhs1 or rhs2 is equal to c->base_expr.
2215
5185d248
RB
22162013-04-15 Richard Biener <rguenther@suse.de>
2217
2218 PR tree-optimization/56933
2219 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
2220 member.
2221 (GROUP_READ_WRITE_DEPENDENCE): Remove.
2222 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
2223 * tree-vect-data-refs.c (vect_analyze_group_access): Move
2224 dependence check ...
2225 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
2226 ... here.
2227 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
2228 GROUP_READ_WRITE_DEPENDENCE.
2229
a24243a0
AK
22302013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2231
2232 * emit-rtl.c (reset_all_used_flags): New function.
2233 (verify_rtl_sharing): Call reset_all_used_flags before and after
2234 performing the checks.
2235
1c50eada
KT
22362013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2237
2238 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
2239 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
2240 * config/arm/constraints.md (De): New constraint.
2241 * config/arm/neon.md (anddi3_neon): Delete.
2242 (neon_vand<mode>): Expand to standard anddi3 pattern.
2243 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
2244 Move earlier in the file.
2245 (neon_inv_logic_op2): Likewise.
2246 (arm_anddi_operand_neon): New predicate.
2247
e927b6ad
RO
22482013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2249
2250 * configure.ac (gcc_cv_ld_as_needed): Set
2251 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
2252 Use -z ignore, -z record on *-*-solaris2*.
2253 (HAVE_LD_AS_NEEDED): Update comment.
2254 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
2255 * configure: Regenerate.
2256 * config.in: Regenerate.
2257 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
2258 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
2259 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
2260 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
2261 equivalents. Fix markup.
2262 * doc/tm.texi: Regenerate.
2263
e0ea8797
AH
22642013-04-15 Andrew Hsieh <andrewhsieh.google.com>
2265
2266 * config/i386/i386.opt: New option mstack-protector-guard=.
2267 * config/i386/i386-opts.h: Add enum stack_protector_guard.
2268 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
2269 TARGET_SSP_TLS_GUARD.
2270 * config/i386/i386.c (ix86_option_override_internal): Set
2271 ix86_stack_protector_guard.
2272 * config/i386/i386.md (stack_protect_set): Enable for
2273 TARGET_SSP_TLS_GUARD only.
2274 (stack_protect_set_<mode>): Ditto.
2275 (stack_protect_test): Ditto.
2276 (stack_protect_test_<mode>): Ditto.
2277 * doc/invoke.texi (i386 Option): Document.
2278
811b72f9
EB
22792013-04-15 Eric Botcazou <ebotcazou@adacore.com>
2280
2281 PR target/56890
2282 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
2283 (S_MODES): Set H_MODE bit.
2284 (SF_MODES): Set only S_MODE and SF_MODE bits.
2285 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
2286 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
2287 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
2288 <MODE_FLOAT>: Likewise.
2289
5529fdd6
JY
22902013-04-15 Joey Ye <joey.ye@arm.com>
2291
2292 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
2293
517b1da2
JY
22942013-04-15 Joey Ye <joey.ye@arm.com>
2295
2296 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
2297 for real far jump.
2298 (thumb_far_jump_used_p): Count instruction size and set
2299 far_jump_used.
2300
01007ae0
EB
23012013-04-14 Eric Botcazou <ebotcazou@adacore.com>
2302
2303 * reorg.c (fill_simple_delay_slots): Reindent block of code.
2304 * resource.c (mark_target_live_regs): Reformat conditional block.
2305
c46f6580
SB
23062013-04-13 Steven Bosscher <steven@gcc.gnu.org>
2307
2308 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
2309 notes, they are emitted only just before final.
2310 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
2311
1f397f45
SB
23122013-04-13 Steven Bosscher <steven@gcc.gnu.org>
2313
2314 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
2315 * cfgrtl.c (delete_insn): Call it here instead.
2316 * lra-spills.c (lra_final_code_change): Use delete_insn.
2317 * haifa-sched.c (sched_remove_insn): Likewise.
2318 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
2319 returning to the nop pool.
2320 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
2321 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
2322
58a51369
SB
23232013-04-12 Steven Bosscher <steven@gcc.gnu.org>
2324
2325 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
2326 * doc/tm.texi: Regenerated.
2327
33159866
UB
23282013-04-12 Uros Bizjak <ubizjak@gmail.com>
2329
2330 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
2331 QImode checks.
2332
226e378f
SB
23332013-04-12 Steven Bosscher <steven@gcc.gnu.org>
2334
2335 * df-core.c (df_find_def): Compare register numbers.
2336 (df_find_use): Likewise.
2337
fafb9b18
VM
23382013-04-12 Vladimir Makarov <vmakarov@redhat.com>
2339
2340 PR target/56903
2341 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
2342 lra_in_progress for return.
2343
9a946fd6
GY
23442013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
2345
2346 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
2347 define_insn into define_insn_and_split and emit movsicc patterns.
2348
41b83758
GY
23492013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
2350
2351 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
2352
d3afd9aa
RB
23532013-04-12 Richard Biener <rguenther@suse.de>
2354
2355 * tree-pass.h (TODO_do_not_ggc_collect): New.
2356 * passes.c (execute_one_ipa_transform_pass): Honor
2357 TODO_do_not_ggc_collect.
2358 (execute_one_pass): Likewise.
2359
2360 Revert
2361 2013-04-10 Richard Biener <rguenther@suse.de>
2362
2363 * passes.c (init_optimization_passes): Remove reload pass.
2364 * ira.c (do_reload): Merge into ...
2365 (ira): ... this.
2366 (rest_of_handle_reload): Remove.
2367 (pass_reload): Likewise.
2368 * config/i386/i386.c (ix86_option_override): Refer to ira instead
2369 of reload for vzeroupper pass placement.
2370
06f9b387
JJ
23712013-04-12 Jakub Jelinek <jakub@redhat.com>
2372
2373 PR tree-optimization/56918
2374 PR tree-optimization/56920
2375 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
2376 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
2377 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
2378 use wide_mul_with_sign method.
2379
953094d2
RB
23802013-04-12 Richard Biener <rguenther@suse.de>
2381
2382 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
2383 not be considered a gimple constant.
2384
bb506982
MG
23852013-04-12 Marc Glisse <marc.glisse@inria.fr>
2386
2387 * fold-const.c (const_binop): Handle vector shifts by a scalar.
2388 (fold_binary_loc): Call const_binop also for mixed vector-scalar
2389 operations.
2390
4b84d650
JJ
23912013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
2392 Jakub Jelinek <jakub@redhat.com>
2393
2394 * opts.c: Include diagnostic-color.h.
2395 (common_handle_option): Handle OPT_fdiagnostics_color_.
2396 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
2397 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
2398 (diagnostic-color.o): New.
2399 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
2400 (diagnostic_color_rule): New enum.
2401 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
2402 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
2403 the location string.
2404 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
2405 either NULL, or color kind.
2406 * diagnostic-color.c: New file.
2407 * diagnostic-color.h: New file.
2408 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
2409 arguments.
2410 * doc/invoke.texi (-fdiagnostics-color): Document.
2411 * pretty-print.h (pp_show_color): Define.
2412 (struct pretty_print_info): Add show_color field.
2413 * diagnostic.c: Include diagnostic-color.h.
2414 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
2415 macros. Colorize error:, warning: etc. strings and also the location
2416 string.
2417 (diagnostic_show_locus): Colorize the caret line.
2418 * pretty-print.c: Include diagnostic-color.h.
2419 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
2420 inside of %< %> quotes or quoted through q format modifier.
2421
067a1e71
AK
24222013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2423
33159866 2424 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 2425
33159866 24262013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
2427
2428 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
2429 code in CC_NZ mode.
2430 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
2431 pattern.
2432
7b55f98f
MP
24332013-04-11 Marek Polacek <polacek@redhat.com>
2434
2435 PR tree-optimization/48184
33159866 2436 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 2437
966b587e
EB
24382013-04-11 Eric Botcazou <ebotcazou@adacore.com>
2439
2440 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
2441 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
2442 (skip_simple_arithmetic): Tidy up.
2443 * tree.h (skip_simple_constant_arithmetic): Declare.
2444
33159866 24452013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
2446
2447 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
2448
1d42c1ec
RB
24492013-04-11 Richard Biener <rguenther@suse.de>
2450
2451 * tree-vect-loop.c (get_initial_def_for_induction): Properly
2452 generate vector constants.
2453
4ba5ea11
RB
24542013-04-11 Richard Biener <rguenther@suse.de>
2455
2456 PR tree-optimization/56878
2457 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
2458 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
2459 New function.
2460 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2461 Prefer to align the DR with the most invariant base address.
2462
f0defe58
SKS
24632013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
2464
2465 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
2466 comment.
2467
d07458be
JG
24682013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
2469
2470 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
2471 floating-point vector comparisons against 0.
2472
146b8692
JJ
24732013-04-11 Jakub Jelinek <jakub@redhat.com>
2474
2475 PR tree-optimization/56899
2476 * fold-const.c (extract_muldiv_1): Apply distributive law
2477 only if TYPE_OVERFLOW_WRAPS (ctype).
2478
b8578ff7
BC
24792013-04-11 Bin Cheng <bin.cheng@arm.com>
2480
2481 PR target/56124
2482 * ira-costs.c (scan_one_insn): Check whether the source rtx of
2483 loading has side effect.
2484
0ea8a6f9
SB
24852013-04-10 Steven Bosscher <steven@gcc.gnu.org>
2486
2487 * config/sparc/sparc.c: Include tree-pass.h.
2488 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
2489 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
2490 head of file. Change return type. Split off gate function.
2491 (sparc_gate_work_around_errata): New function.
2492 (pass_work_around_errata): New pass definition.
2493 (insert_pass_work_around_errata) New pass insert definition to
2494 insert pass_work_around_errata just after delayed-branch scheduling.
2495 (sparc_option_override): Insert the pass.
2496 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
2497
42e37616
DM
24982013-04-10 David S. Miller <davem@davemloft.net>
2499
89deeb3b
DM
2500 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
2501 or -mcpu=hypersparc.
2502
42e37616
DM
2503 * target.def (cstore_mode): New hook.
2504 * target.h: Include insn-codes.h
2505 * targhooks.c: Likewise.
2506 (default_cstore_mode): New function.
2507 * targhooks.h: Declare it.
2508 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
2509 * doc/tm.texi: Rebuild.
2510 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
2511 target hook, rather than inspecting the insn_data.
2512 * config/sparc/sparc.c (sparc_cstore_mode): New function.
2513 (TARGET_CSTORE_MODE): Redefine.
2514 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
2515 result patterns.
2516 * config/sparc/predicates.md (cstore_result_operand): New special
2517 predicate.
2518 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
2519 Use it for operand 0.
2520 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
2521 (*snesi_special): Likewise.
2522 (*snesi_zero): Likewise.
2523 (*seqsi_zero): Likewise.
2524 (*sltu_insn): Likewise.
2525 (*sgeu_insn): Likewise.
2526 (*seqdi_special): Make operand 0 and comparison operation be of
2527 DImode.
2528 (*snedi_special): Likewise.
2529 (*snedi_special_vis3): Likewise.
2530 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
2531 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
2532 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
2533 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
2534 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
2535 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
2536 (*sltu_extend_sp64): Likewise.
2537 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
2538 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
2539 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
2540 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
2541 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
2542
95ca411e
YZ
25432013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
2544
2545 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
2546 (aarch64_start_file): Use the new function.
2547
6782438d 25482013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 2549 Jason Merrill <jason@redhat.com>
6782438d
SKS
2550
2551 * common.opt: Add -gdwarf.
2552 * opts.c (common_handle_option): Handle it.
2553 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
2554
bb313b93
RB
25552013-04-10 Richard Biener <rguenther@suse.de>
2556
2557 * passes.c (execute_todo): Do not call ggc_collect conditional here.
2558 (execute_one_ipa_transform_pass): But unconditionally here.
2559 (execute_one_pass): And here.
2560 (init_optimization_passes): Remove reload pass.
2561 * tree-pass.h (TODO_ggc_collect): Remove.
2562 (pass_reload): Likewise.
2563 * ira.c (do_reload): Merge into ...
2564 (ira): ... this.
2565 (rest_of_handle_reload): Remove.
2566 (pass_reload): Likewise.
2567 * config/i386/i386.c (ix86_option_override): Refer to ira instead
2568 of reload for vzeroupper pass placement.
2569 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
2570 and todo_flags_finish of all passes.
2571
793d9a16
RB
25722013-04-10 Richard Biener <rguenther@suse.de>
2573
2574 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
2575 first_const_oprnd field, rename first_def_type to first_op_type.
2576 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
2577 (vect_get_and_check_slp_defs): Always use the type of the
2578 operand. Allow mixed vect_external_def, vect_constant_def types.
2579 (vect_get_constant_vectors): Handle mixed vect_external_def,
2580 vect_constant_def types.
2581
ee8a9b7b
JR
25822013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
2583
2584 PR tree-optimization/55524
2585 * tree-ssa-math-opts.c
2586 (convert_mult_to_fma): Don't use an fms construct
2587 when we don't have an fms operation, but fnma, and it looks
2588 likely that we'll be able to use the latter.
2589
6957a6f6
ZZ
25902013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
2591
2592 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
2593 function.
2594 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
2595 inline fail caused by overwritable functions.
2596
34ab4a5b
CJW
25972013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
2598
2599 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
2600 unnecessary bits in the constant power of two case.
2601
abf9bfbc
RB
26022013-04-10 Richard Biener <rguenther@suse.de>
2603
2604 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
2605 broken code swapping operands.
2606 (vect_build_slp_tree): Do not compute load permutations here.
2607 (vect_analyze_slp_instance): Compute load permutations here,
2608 after building the SLP tree.
2609
f408477e
CB
26102013-04-09 Christian Bruel <christian.bruel@st.com>
2611
2612 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
2613 of next/prev_real_insn.
2614
5ac42672
JH
26152013-04-09 Jan Hubicka <jh@suse.cz>
2616
abf9bfbc
RB
2617 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
2618 Drop aliased parameter.
5ac42672
JH
2619 (function_and_variable_visibility): Do not handle alias pairs.
2620 * cgraph.c (varpool_externally_visible_p): Update prototype.
2621 * varpool.c (varpool_add_new_variable): Update.
2622
5017f1d2
KT
26232013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2624
2625 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
2626
48eecbee
SB
26272013-04-09 Steven Bosscher <steven@gcc.gnu.org>
2628
a949cf1c
SB
2629 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
2630
48eecbee
SB
2631 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
2632
75ef8e3d
MP
26332013-04-09 Marek Polacek <polacek@redhat.com>
2634
2635 PR tree-optimization/48762
33159866 2636 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 2637
23847df4
RB
26382013-04-09 Richard Biener <rguenther@suse.de>
2639
2640 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
2641 dealing with cost.
2642 (vect_build_slp_tree): Likewise.
2643 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
2644 calculating the cost of a SLP instance.
2645 (vect_analyze_slp_instance): Use it from here, after building
2646 the SLP tree.
2647
ea3a0fde
JJ
26482013-04-09 Jakub Jelinek <jakub@redhat.com>
2649
2650 PR middle-end/56883
2651 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
2652 expand_omp_for_static_chunk): Use simple_p = true in
2653 force_gimple_operand_gsi calls when assigning to addressable decls.
2654
a32dfe9d
JL
26552013-04-09 Jeff Law <law@redhat.com>
2656
2657 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
2658 when the boolean was created by converting a wider object which
2659 had a boolean range.
2660
d755c7ef
RB
26612013-04-09 Richard Biener <rguenther@suse.de>
2662
2663 * tree-vectorizer.h (slp_void_p): Remove.
2664 (slp_tree): Typedef before _slp_tree declaration.
2665 (struct _slp_tree): Use a vector of slp_tree as children.
2666 (vect_get_place_in_interleaving_chain): Remove.
2667 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
2668 Move ...
2669 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
2670 and make static.
2671 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
2672 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
2673 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
2674 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
2675 Use slp_node instead of slp_void_p and adjust.
2676
3d741091
RB
26772013-04-09 Richard Biener <rguenther@suse.de>
2678
2679 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
2680 work that is not necessary.
2681
39307ba7
JJ
26822013-04-09 Jakub Jelinek <jakub@redhat.com>
2683
2684 PR tree-optimization/56854
2685 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
2686 forward into clobber stmts if it would change MEM_REF lhs into
2687 non-MEM_REF.
2688
343881fd
MK
26892013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
2690
2691 * tree.c (type_hash_lookup, type_hash_add): Make static.
2692 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
2693
3922658a
RB
26942013-04-09 Richard Biener <rguenther@suse.de>
2695
2696 * tree.h (unsave_expr_now): Remove.
2697 * tree-inline.c (mark_local_for_remap_r): Remove.
2698 (unsave_expr_1): Likewise.
2699 (unsave_r): Likewise.
2700 (unsave_expr_now): Likewise.
2701 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
2702 (propagate_tree_value): Likewise.
2703
9fb6b620
SB
27042013-04-08 Steven Bosscher <steven@gcc.gnu.org>
2705
2706 * doc/rtl.texi (sequence): Rewrite documentation to match the
2707 current use of SEQUENCE rtl objects.
2708 * rtl.def (SEQUENCE): Likewise.
2709
2710 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
2711 Update documentation.
2712 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
2713 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
2714
2715 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
2716
8ddb5a29
TJ
27172013-04-08 Teresa Johnson <tejohnson@google.com>
2718
2719 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
2720 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 2721 methods.
8ddb5a29
TJ
2722 (estimate_edge_size_and_time): Add comment to suggest using rounding
2723 methods.
2724 (estimate_node_size_and_time): Ditto.
2725 (remap_edge_change_prob): Use helper rounding divide methods.
2726 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
2727 (gimple_mod_pow2_value_transform): Ditto.
2728 (gimple_mod_subtract_transform): Ditto.
2729 (gimple_ic_transform): Ditto.
2730 (gimple_stringops_transform): Ditto.
2731 * stmt.c (conditional_probability): Ditto.
2732 (emit_case_dispatch_table): Ditto.
2733 * lto-cgraph.c (merge_profile_summaries): Ditto.
2734 * tree-optimize.c (execute_fixup_cfg): Ditto.
2735 * cfgcleanup.c (try_forward_edges): Ditto.
2736 * cfgloopmanip.c (scale_loop_profile): Ditto.
2737 (loopify): Ditto.
2738 (duplicate_loop_to_header_edge): Ditto.
2739 (lv_adjust_loop_entry_edge): Ditto.
2740 * tree-vect-loop.c (vect_transform_loop): Ditto.
2741 * profile.c (compute_branch_probabilities): Ditto.
2742 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
2743 * lto-streamer-in.c (input_cfg): Ditto.
2744 * gimple-streamer-in.c (input_bb): Ditto.
2745 * ipa-cp.c (update_profiling_info): Ditto.
2746 (update_specialized_profile): Ditto.
2747 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
2748 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 2749 rounding methods.
8ddb5a29
TJ
2750 * sched-rgn.c (compute_dom_prob_ps): Ditto.
2751 (compute_trg_info): Ditto.
2752 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
2753 (purge_dead_edges): Ditto.
2754 * loop-unswitch.c (unswitch_loop): Ditto.
2755 * cgraphclones.c (cgraph_clone_edge): Ditto.
2756 (cgraph_clone_node): Ditto.
2757 * tree-inline.c (copy_bb): Ditto.
2758 (copy_edges_for_bb): Ditto.
2759 (initialize_cfun): Ditto.
2760 (copy_cfg_body): Ditto.
2761 (expand_call_inline): Ditto.
2762
661e6bd7
KT
27632013-04-08 Kai Tietz <ktietz@redhat.com>
2764
2765 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
2766 TARGET_CYGWIN64 by TARGET_64BIT.
2767
105766f3
JR
27682013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
2769
2770 * config/epiphany/epiphany.md (GPR_1): New constant.
2771 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
2772 * config/epiphany/epiphany.c (gen_compare_reg):
2773 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
2774 is already in place.
2775 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
2776 Don't require being called during rtl expansion; If y operlaps r0,
2777 return 0.
2778 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
2779 (epiphany_expand_epilogue): Likewise.
2780
8afab237
JR
2781 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
2782 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 2783 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 2784
fa7707d6
JR
2785 * config/epiphany/constraints.md (CnL): New constraint.
2786 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
2787 * config/epiphany/predicates.md (add_operand): Allow 1024.
2788
5138e18d
JR
2789 * config/epiphany/epiphany.md (logical_op): New code iterator.
2790 (op_mnc): New code attribute.
2791 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
2792 (mov_f+1, mov_f+2): New peephole2 patterns.
2793
2ccc703d
JR
2794 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
2795 (cstoresi4): Also allow re-use of zero result when doing a NE
2796 comparison to a non-zero operand.
aefb0819 2797 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 2798
093ac0a5
JR
2799 * config/epiphany/epiphany.md (<insn_opname>v2si3):
2800 Use gen_addsi3_i / gen_subsi3_i.
2801
f223bb13
JJ
28022013-04-08 Jakub Jelinek <jakub@redhat.com>
2803
2804 PR c++/34949
2805 PR c++/50243
2806 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
2807 contain anything but clobbers, at most one __builtin_stack_restore,
2808 optionally debug stmts and final resx, and if it has at least one
2809 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
2810 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
2811 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
2812 which isn't defaut definition, remove them.
2813 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
2814 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
2815 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
2816 with MEM_REF LHS with SSA_NAME address.
2817
4481581f
JL
28182013-04-08 Jeff Law <law@redhat.com>
2819
2820 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 2821
451dabda
RB
28222013-04-08 Richard Biener <rguenther@suse.de>
2823
2824 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
2825 extra newline.
2826 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
2827 determined vector type.
2828 (vect_analyze_data_refs): Likewise.
2829 (vect_get_new_vect_var): Adjust.
2830 (vect_create_destination_var): Preserve SSA name versions.
2831 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
2832 not dump anything here.
2833
3b088b47
JR
28342013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
2835
2836 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
2837 Add member lr_slot_known.
2838 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
2839 if necessary.
2840 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
2841 Remove code that sets lr_slot_offset according to what a previous
2842 version of epiphany_emit_save_restore used to do.
2843 (epiphany_emit_save_restore): When doing an lr save or restore,
2844 set/verify lr_slot_known and lr_slot_offset.
2845
d8484d41
XQ
28462013-04-08 Xinyu Qi <xyqi@marvell.com>
2847
33159866
UB
2848 PR target/54338
2849 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
2850 in ALL_REGS.
2851
481be1c4
RB
28522013-04-08 Richard Biener <rguenther@suse.de>
2853
2854 * alias.c (find_base_term): Fix thinko in previous change.
2855
401f3a81
JJ
28562013-04-08 Jakub Jelinek <jakub@redhat.com>
2857
2858 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
2859 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
2860 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
2861 if possible to compute val.
2862 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
2863 For QImode integers don't require anything about precision. Use
2864 const_with_all_bytes_same to find out if the constant doesn't have
2865 repeated bytes in it.
2866
03ed99a8
AK
28672013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2868
2869 * config/s390/s390.c (s390_expand_insv): Only accept insertions
2870 within mode size.
2871
781b2e62
MP
28722013-04-08 Marek Polacek <polacek@redhat.com>
2873
2874 PR rtl-optimization/48182
2875 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
2876 value to 1.
2877
27e430a2
JDA
28782013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2879
2880 PR target/55487
2881 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
2882 nuses, make sure we have a label.
2883
4902aa64
BS
28842013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2885
2886 PR target/56843
2887 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
2888 (rs6000_emit_swdiv_low_precision): Remove.
2889 (rs6000_emit_swdiv): Rewrite to handle between one and four
2890 iterations of Newton-Raphson generally; modify required number of
2891 iterations for some cases.
2892 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
2893
7bca81dc
SB
28942013-04-05 Steven Bosscher <steven@gcc.gnu.org>
2895
2896 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
2897 set-but-unused variable.
2898
2899 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
2900 basic blocks of released function bodies garbage-collectable.
2901
2902 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
2903 (struct rtl_opt_pass): Add TODO_df_finish.
2904
2905 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
2906
4542a38a
GY
29072013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2908
2909 * config/arm/constraints.md (q): New constraint.
2910 * config/arm/ldrdstrd.md: New file.
2911 * config/arm/arm.md (ldrdstrd.md) New include.
2912 (arm_movdi): Use "q" instead of "r" constraint
2913 for double-word memory access.
2914 (movdf_soft_insn): Likewise.
2915 * config/arm/vfp.md (movdi_vfp): Likewise.
2916 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 2917 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
2918 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
2919 (mem_ok_for_ldrd_strd): Likewise.
2920 (output_move_double): Update assertion.
2921
2385b218
GY
29222013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2923
2924 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
2925
75fe1cb5
GY
29262013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2927
2928 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
2929 define_insn_and_split.
2930 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
2931
dd660e8e
GY
29322013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2933
2934 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
2935 define_insn_and_split.
33159866 2936 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
2937 (shiftsi3_compare): New pattern.
2938 (rrx): New pattern.
2939 * config/arm/unspecs.md (UNSPEC_RRX): New.
2940
045e472c
GY
29412013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2942
2943 * config/arm/arm.md (negdi_extendsidi): New pattern.
2944 (negdi_zero_extendsidi): Likewise.
2945
3f3bf1a8
GY
29462013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2947
2948 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
2949 define_insn_and_split.
2950 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
2951 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
2952
b0b49556
GY
29532013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2954
2955 * config/arm/arm.md (arm_subdi3): Convert define_insn into
2956 define_insn_and_split.
2957 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
2958 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
2959
d633dd84
GY
29602013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2961
2962 * config/arm/arm.md (subsi3_carryin): New pattern.
2963 (subsi3_carryin_const): Likewise.
2964 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
2965 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
2966
f4499066
GY
29672013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2968
2969 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
2970
ceef6fd9
GY
29712013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2972
2973 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 2974 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 2975
ddbdd8a7
KT
29762013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2977
2978 * config/arm/arm.c (arm_expand_builtin): Change fcode
2979 type to unsigned int.
2980
8456d78a
RR
29812013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2982
2983 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
2984
526c230f
ILT
29852013-04-04 Ian Lance Taylor <iant@google.com>
2986
33159866
UB
2987 * doc/standards.texi (Standards): The Go frontend supports the Go 1
2988 language standard.
526c230f 2989
3cfbe04d
SB
29902013-04-04 Steven Bosscher <steven@gcc.gnu.org>
2991
2992 PR middle-end/56729
2993 * df-scan.c (df_insn_delete): Disable failing assert.
2994
dfa3f8d0
KT
29952013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2996
2997 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
2998 New function prototype.
2999 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
3000 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
3001 (arm_builtin_vectorized_function): New function.
3002
f7837758
KT
30032013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3004
3005 * config/arm/arm_neon_builtins.def: New file.
3006 * config/arm/arm.c (neon_builtin_data): Move contents to
3007 arm_neon_builtins.def.
3008 (enum arm_builtins): Include neon builtin definitions.
3009 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 3010 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 3011
39c1b6db
MP
30122013-04-04 Marek Polacek <polacek@redhat.com>
3013
3014 PR tree-optimization/48186
3015 * predict.c (maybe_hot_frequency_p): Return false if
3016 HOT_BB_FREQUENCY_FRACTION is 0.
3017 (cgraph_maybe_hot_edge_p): Likewise.
3018
314f64eb
RB
30192013-04-04 Richard Biener <rguenther@suse.de>
3020
3021 PR tree-optimization/56826
3022 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
3023 more accurately.
3024
51a905b2
RB
30252013-04-04 Richard Biener <rguenther@suse.de>
3026
3027 PR tree-optimization/56213
3028 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 3029 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 3030
f1bf4f3a
RB
30312013-04-04 Richard Biener <rguenther@suse.de>
3032
3033 PR tree-optimization/56837
3034 * tree-loop-distribution.c (classify_partition): For non-zero
3035 values require that the value has the same precision as its
3036 mode to be useful as memset value.
3037
0bca7ded
NC
30382013-04-03 Nick Clifton <nickc@redhat.com>
3039
33159866 3040 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
3041 (fmssf4): Use fmsf.s on E3V5 architectures.
3042 (fnmasf4): Use fnmaf.s on E3V5 architectures.
3043 (fnmssf4): Use fnmsf.s on E3V5 architectures.
3044
b4019227
JL
30452013-04-03 Jeff Law <law@redhat.com>
3046
3047 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
3048 (lra-eliminations.o): Likewise.
3049
f57ddb5b
TJ
30502013-04-03 Teresa Johnson <tejohnson@google.com>
3051
3052 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 3053 compute_working_sets here from profile.c.
f57ddb5b 3054 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
3055 (gcov_working_set_t): Moved typedef here from basic-block.h
3056 (compute_working_set): Declare.
f57ddb5b
TJ
3057 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
3058 (get_working_sets): Renamed from compute_working_set,
33159866 3059 replace most of body with call to new compute_working_sets.
f57ddb5b 3060 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
3061 to get_working_sets.
3062 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 3063 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 3064 to get_working_sets.
f57ddb5b
TJ
3065 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
3066 * gcov-dump.c (dump_working_sets): New function.
3067
5e0919f1
KZ
30682013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
3069
3070 * hwint.c (sext_hwi, zext_hwi): New functions.
3071 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
3072 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
3073 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
3074 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
3075 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
3076 (sext_hwi, zext_hwi): New functions.
0bca7ded 3077
be672e08
JL
30782013-04-03 Jeff Law <law@redhat.com>
3079
3080 PR tree-optimization/56799
33159866
UB
3081 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
3082 back test for widening conversion erroneously dropped in prior change.
be672e08 3083
9d821fa5
KT
30842013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3085
3086 PR target/56809
3087 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
3088 instead of next_real_insn.
3089
71c581e7
MP
30902013-04-03 Marek Polacek <polacek@redhat.com>
3091
3092 PR sanitizer/55702
33159866 3093 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 3094
4a32ef80
KT
30952013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3096
3097 PR target/56809
3098 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
3099 next_real_insn.
3100 (thumb1_output_casesi): Likewise.
3101 (thumb2_output_casesi): Likewise.
3102
1b2253d4
RB
31032013-04-03 Richard Biener <rguenther@suse.de>
3104
3105 PR tree-optimization/56817
3106 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3107 Split out ...
3108 (tree_unroll_loops_completely_1): ... new function to manually
3109 walk the loop tree, properly defering outer loops of unrolled
3110 loops to later iterations.
3111
38000232
MG
31122013-04-03 Marc Glisse <marc.glisse@inria.fr>
3113
3114 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
3115 (vectorizable_load): Likewise.
3116 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
3117 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
3118
3fa35298
MG
31192013-04-03 Marc Glisse <marc.glisse@inria.fr>
3120
3121 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
3122 BIT_FIELD_REF.
3123
b3d45ff0
UW
31242013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3125
3126 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
3127
ec9202a8
BC
31282013-04-03 Bin Cheng <bin.cheng@arm.com>
3129
3130 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
3131
6805bd36
MG
31322013-04-03 Marc Glisse <marc.glisse@inria.fr>
3133
3134 PR tree-optimization/56790
33159866
UB
3135 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
3136 folding.
6805bd36 3137
da694a77
MG
31382013-04-03 Marc Glisse <marc.glisse@inria.fr>
3139
3140 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
3141 Handle VEC_MERGE.
3142 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
3143 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
3144 equal arguments.
3145
4e7d7b3d
JJ
31462013-04-03 Jakub Jelinek <jakub@redhat.com>
3147
3148 PR c/19449
3149 * tree.h (force_folding_builtin_constant_p): New decl.
3150 * builtins.c (force_folding_builtin_constant_p): New variable.
3151 (fold_builtin_constant_p): Fold immediately also if
3152 force_folding_builtin_constant_p.
3153
e6c9d234
RB
31542013-04-03 Richard Biener <rguenther@suse.de>
3155
3156 PR tree-optimization/56812
3157 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
3158 DRs of the same interleaving chain are independent.
3159
984d07dd
JM
31602013-04-02 Jason Merrill <jason@redhat.com>
3161
3162 * gdbinit.in (pbb): Use debug fn.
3163
622849c9
LC
31642013-04-02 Lawrence Crowl <crowl@google.com>
3165
3166 * sese.h (struct ivtype_map_elt_s): Remove unused.
3167 (extern debug_ivtype_map): Remove unused.
3168 (extern eq_ivtype_map_elts): Remove unused.
3169 * sese.c (debug_ivtype_map): Removed unused.
3170 (debug_ivtype_map_1): Removed unused.
3171 (debug_ivtype_elt): Remove unused.
3172 (eq_ivtype_map_elts): Remove unused.
3173
3174
82c0e1a0
KT
31752013-04-02 Kai Tietz <ktietz@redhat.com>
3176
3177 PR target/52790
3178 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
3179 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
3180 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
3181 function.
82c0e1a0
KT
3182 (legitimize_pe_coff_symbol): Likewise.
3183 (is_imported_p): New helper-function.
3184 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
3185 for Windows x64 targets.
3186 (ix86_expand_prologue): Optimize for pe-coff targets.
3187 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
3188 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
3189 medium/large code-model.
3190 (legitimize_pic_address): Likewise.
3191 (legitimize_tls_address): Likewise.
3192 (ix86_expand_call): Likewise.
3193 (x86_output_mi_thunk): Likewise.
3194 (get_dllimport_decl): Add new beimport argument.
3195 (construct_plt_address): Don't assert for x64 pe-coff targets.
3196 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
3197 targets.
3198 (SYMBOL_FLAG_STUBVAR): New macro.
3199 (SYMBOL_REF_STUBVAR_P): Likewise.
3200 * config/i386/winnt.c (stub_list): New structure.
3201 (stub_head): New local variable.
3202 (i386_pe_record_stub): New function.
3203 (i386_pe_file_end): Emit refptr-stubs.
3204
5d751b0c
JJ
32052013-04-02 Jakub Jelinek <jakub@redhat.com>
3206
09bb4c99
JJ
3207 PR rtl-optimization/56745
3208 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
3209 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
3210
a1d8947a
JJ
3211 PR c++/34949
3212 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
3213 and both of them are MEM_REFs, just compare first argument for
3214 equality and attempt to deal even with differing offsets.
3215
5d751b0c
JJ
3216 PR c++/34949
3217 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
3218 of gimple_clobber_p to be MEM_REF.
3219 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
3220 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
3221 after gimplification.
3222 * asan.c (get_mem_ref_of_assignment): Don't instrument
3223 gimple_clobber_p stmts.
3224 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
3225 gimple_clobber_p stmt if they have MEM_REF lhs and
3226 are dead because of another gimple_clobber_p stmt.
3227 * tree-ssa-live.c (clear_unused_block_pointer): Treat
3228 gimple_clobber_p stmts like debug stmts.
3229 (remove_unused_locals): Remove clobbers with MEM_REF lhs
3230 that refer to unused VAR_DECLs or uninitialized values.
3231 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
3232 gimple_clobber_p stmts if they refer to removed parameters.
3233 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
3234 formatting.
3235
e594716a
UB
32362013-04-02 Uros Bizjak <ubizjak@gmail.com>
3237
3238 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
3239 using SWI48 mode attribute.
3240
7a80735b
WM
32412013-04-02 Wei Mi <wmi@google.com>
3242
3243 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
3244 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
3245 *<rotate_insn><mode>3_mask in i386.md.
3246
f423a9e4
AI
32472013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
3248
3249 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
3250
90eb75f2
RB
32512013-04-02 Richard Biener <rguenther@suse.de>
3252
3253 PR tree-optimization/56778
3254 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
3255 Runtime alias tests are not supported for gather loads.
3256 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
3257 stmts referenced from SSA operands before updating SSA form.
3258
d8c69a92
IC
32592013-04-02 Ian Caulfield <ian.caulfield@arm.com>
3260 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3261
3262 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
3263 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
3264 * config/arm/cortex-a53.md: New file.
3265 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
3266 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
3267 * config/arm/arm.c (arm_issue_rate): Likewise.
3268 * config/arm/arm-tune.md: Regenerate
3269 * config/arm/arm-tables.opt: Regenerate.
3270 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 3271
239eb04c
ZC
32722013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
3273
3274 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
3275 non-static link.
3276
c902d3c8
SN
32772013-04-02 Sofiane Naci <sofiane.naci@arm.com>
3278
d8c69a92
IC
3279 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
3280 scalar load/store operations using B/H registers.
c902d3c8
SN
3281 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
3282
051d0e2f
SN
32832013-04-02 Sofiane Naci <sofiane.naci@arm.com>
3284
3285 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
3286 scalar move.
3287 * config/aarch64/aarch64.c
3288 (aarch64_simd_scalar_immediate_valid_for_move): New.
3289 * config/aarch64/aarch64-protos.h
3290 (aarch64_simd_scalar_immediate_valid_for_move): New.
3291 * config/aarch64/constraints.md (Dh, Dq): New.
3292 * config/aarch64/iterators.md (hq): New.
3293
0ee1e3d9
EB
32942013-04-02 Eric Botcazou <ebotcazou@adacore.com>
3295
3296 * reorg.c (get_branch_condition): Deal with conditional returns.
3297 (fill_simple_delay_slots): Remove dead code dealing with jumps.
3298
136fb3f7
WM
32992013-04-01 Wei Mi <wmi@google.com>
3300
3301 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
3302 Truncate operand 2 using %b asm operand modifier.
3303 (*<shift_insn><mode>3_mask): Ditto.
3304 (*<rotate_insn><mode>3_mask): Ditto.
3305
6388c738
SB
33062013-04-01 Steven Bosscher <steven@gcc.gnu.org>
3307
3308 PR middle-end/56798
3309 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
3310
f7a4d826
KK
33112013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
3312
3313 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
3314 of next_real_insn.
3315 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
3316
4b943a49
LC
33172013-03-30 Lawrence Crowl <crowl@google.com>
3318
3319 * dse.c (clear_alias_sets): Remove never set.
3320 (disqualified_clear_alias_sets): Remove never set.
3321 (clear_alias_mode_pool): Remove never set.
3322 (dse_step0): Remove condition that is never true.
3323 (canon_address): Remove condition that is never true.
3324 (dse_step7): Remove condition that is never true.
3325 (rest_of_handle_dse): Remove condition that is never true.
3326 (rest_of_handle_dse::did_global): Remove never read from above.
3327 (dse_step2_spill): Remove never called from above.
3328 (dse_step5_spill): Remove never called from above.
3329
39718607
SB
33302013-03-30 Steven Bosscher <steven@gcc.gnu.org>
3331
da5c6bde
SB
3332 * doc/md.texi (Standard Names) <casesi>: Update documentation for
3333 JUMP_TABLE_DATA changes.
3334 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
3335 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
3336 (Insns) <jump_table_data>: New entry.
3337 * doc/tm.texi: Regenerate.
3338
39718607
SB
3339 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
3340
3341 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
3342 for table jump at the end of a basic block using tablejump_p.
3343 * targhooks.c (default_invalid_within_doloop): Likewise.
3344 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
3345 target hook implementation that is identical to the default hook.
3346 (rs6000_invalid_within_doloop): Remove.
3347
3348 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
3349 unused variable from tablejump_p call.
3350
3351 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
3352 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
3353 (INSN_DELETED_P): Likewise.
3354 (emit_jump_table_data): New prototype.
3355 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
3356 after 4th as unused.
3357 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
3358 * sched-vis.c (print_insn): Likewise.
3359 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
3360 insn for compatibility with back ends that use next_active_insn to
3361 identify jump table data.
3362 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
3363 (remove_insn): Likewise.
3364 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
3365 to be emitted.
3366 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
3367 (emit_jump_table_data): New function.
3368
3369 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
3370 basic block, a JUMP_TABLE_DATA never is.
3371 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
3372 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
3373 off from code handling real insns.
3374 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
3375 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
3376 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
3377 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
3378 is not a NONDEBUG_INSN_P.
3379 * ira-costs.c (scan_one_insn): Likewise.
3380 * jump.c (mark_all_labels): Likewise.
3381 (mark_jump_label_1): Likewise.
3382 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
3383 * lra.c (get_insn_freq): Expect all insns reaching here to be in
3384 a basic block.
3385 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
3386 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
3387 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
3388 JUMP_TABLE_DATA_P insns.
3389 (calculate_elim_costs_all_insns): Likewise.
3390 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
3391 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
3392 (delete_output_reload): Code style fixups.
3393 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
3394 insn flags on this non-insn.
3395 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
3396 as scheduling barriers, for pre-change compatibility.
3397 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
3398 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
3399
3400 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
3401 redundant JUMP_TABLE_DATA_P test.
3402 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
3403 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
3404 (frv_for_each_packet): Likewise.
3405 * config/i386/i386.c (min_insn_size): Likewise.
3406 (ix86_avoid_jump_mispredicts): Likewise.
3407 * config/m32r/m32r.c (m32r_is_insn): Likewise.
3408 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
3409 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
3410 (mips16_insn_length): Robustify.
3411 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
3412 (mips16_split_long_branches): Likewise.
3413 * config/pa/pa.c (pa_combine_instructions): Likewise.
3414 * config/rs6000/rs6000.c (get_next_active_insn): Treat
3415 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
3416 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
3417 as contributing to pool range lengths.
3418 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
3419 Remove redundant JUMP_TABLE_DATA_P test.
3420 (sh_loop_align): Likewise.
3421 (split_branches): Likewise.
3422 (sh_insn_length_adjustment): Likewise.
3423 * config/spu/spu.c (get_branch_target): Likewise.
3424
0208f7da
JH
34252013-03-29 Jan Hubicka <jh@suse.cz>
3426
3427 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
3428 gcov streaming; stream hot bb threshold to ltrans.
3429 * predict.c (get_hot_bb_threshold): Break out from ....
3430 (maybe_hot_count_p): ... here.
3431 (set_hot_bb_threshold): New function.
3432 * lto-section-in.c (lto_section_name): Add profile.
3433 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
3434 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
3435 and data-streamer.h
3436 (histogram_entry): New structure.
3437 (histogram, histogram_pool): New global vars.
3438 (histogram_hash): New structure.
3439 (histogram_hash::hash): New method.
3440 (histogram_hash::equal): Likewise.
3441 (account_time_size): New function.
3442 (cmp_counts): New function.
3443 (dump_histogram): New function.
3444 (ipa_profile_generate_summary): New function.
3445 (ipa_profile_write_summary): New function.
3446 (ipa_profile_read_summary): New function.
3447 (ipa_profile): Decide on threshold.
e594716a
UB
3448 (pass_ipa_profile): Add ipa_profile_write_summary and
3449 ipa_profile_read_summary.
0208f7da
JH
3450 * Makefile.in (ipa.o): Update dependencies.
3451 * lto-streamer.h (LTO_section_ipa_profile): New section.
3452
5a6ccc94
GDR
34532013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
3454
3455 * tree.h (VAR_P): New.
3456
39385fa6
PC
34572013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
3458
3459 PR lto/56777
3460 * doc/invoke.texi ([-fwhole-program]): Fix typo.
3461
34f0d87a
SB
34622013-03-29 Steven Bosscher <steven@gcc.gnu.org>
3463
3464 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
3465 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
3466 (control_flow_insn_p): Likewise.
3467 * cfgrtl.c (duplicate_insn_chain): Likewise.
3468 * final.c (get_attr_length_1): Likewise.
3469 (shorten_branches): Likewise.
3470 (final_scan_insn): Likewise.
3471 * function.c (instantiate_virtual_regs): Likewise.
3472 * gcse.c (insert_insn_end_basic_block): Likewise.
3473 * ira-costs.c (scan_one_insn): Likewise.
3474 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
3475 * lra.c (check_rtl): Likewise.
3476 * reload1.c (elimination_costs_in_insn): Likewise.
3477 * reorg.c (follow_jumps): Likewise.
3478
3479 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
3480 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
3481 (thumb_far_jump_used_p): Likewise.
3482 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
3483 (workaround_speculation): Likewise.
3484 (add_sched_insns_for_speculation): Likewise.
3485 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
3486 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
3487 (frv_for_each_packet): Likewise.
3488 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
3489 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
3490 (final_emit_insn_group_barriers): Likewise.
3491 * config/m32r/m32r.c (m32r_is_insn): Likewise.
3492 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
3493 (mips16_insn_length): Likewise.
3494 * config/pa/pa.c (pa_reorg): Likewise.
3495 (pa_combine_instructions): Likewise.
3496 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
3497 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
3498 (sh_reorg): Likewise.
3499 (split_branches): Likewise.
3500 * config/spu/spu.c (get_branch_target): Likewise.
3501
3502 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
3503 JUMP_TABLE_DATA_P.
3504
4ac761b0
KY
35052013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
3506
39385fa6 3507 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
3508 Fix declaration name.
3509
58a49189
LC
35102013-03-28 Lawrence Crowl <crowl@google.com>
3511
3512 * graphds.h (struct graph.indicies): Remove unused.
3513 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
3514 (SCOP_ORIGINAL_PDDRS): Remove unused.
3515 * sese.h (extern insert_loop_close_phis): Removed unused.
3516 (extern insert_guard_phis): Removed unused.
3517 (extern ivtype_map_elt_info): Removed unused.
3518 (new_ivtype_map_elt): Removed unused.
3519 * sese.c (ivtype_map_elt_info): Removed unused.
3520
7b3b6ae4
LC
35212013-03-28 Lawrence Crowl <crowl@google.com>
3522
3523 * Makefile.in: Add several missing include dependences.
3524 (DUMPFILE_H): New.
3525 (test-dump.o): New. This object is not added to any executable,
3526 but is present for ad-hoc testing.
3527 * bitmap.c
3528 (debug (const bitmap_head_def &)): New.
3529 (debug (const bitmap_head_def *)): New.
3530 * bitmap.h
3531 (extern debug (const bitmap_head_def &)): New.
3532 (extern debug (const bitmap_head_def *)): New.
3533 * cfg.c
3534 (debug (edge_def &)): New.
3535 (debug (edge_def *)): New.
3536 * cfghooks.c
3537 (debug (basic_block_def &)): New.
3538 (debug (basic_block_def *)): New.
3539 * dumpfile.h
3540 (dump_node (const_tree, int, FILE *)): Correct source file.
3541 * dwarf2out.c
3542 (debug (die_struct &)): New.
3543 (debug (die_struct *)): New.
3544 * dwarf2out.h
3545 (extern debug (die_struct &)): New.
3546 (extern debug (die_struct *)): New.
3547 * gimple-pretty-print.c
3548 (debug (gimple_statement_d &)): New.
3549 (debug (gimple_statement_d *)): New.
3550 * gimple-pretty-print.h
3551 (extern debug (gimple_statement_d &)): New.
3552 (extern debug (gimple_statement_d *)): New.
3553 * ira-build.c
3554 (debug (ira_allocno_copy &)): New.
3555 (debug (ira_allocno_copy *)): New.
3556 (debug (ira_allocno &)): New.
3557 (debug (ira_allocno *)): New.
3558 * ira-int.h
3559 (extern debug (ira_allocno_copy &)): New.
3560 (extern debug (ira_allocno_copy *)): New.
3561 (extern debug (ira_allocno &)): New.
3562 (extern debug (ira_allocno *)): New.
3563 * ira-lives.c
3564 (debug (live_range &)): New.
3565 (debug (live_range *)): New.
3566 * lra-int.h
3567 (debug (lra_live_range &)): New.
3568 (debug (lra_live_range *)): New.
3569 * lra-lives.c
3570 (debug (lra_live_range &)): New.
3571 (debug (lra_live_range *)): New.
3572 * omega.c
3573 (debug (omega_pb_d &)): New.
3574 (debug (omega_pb_d *)): New.
3575 * omega.h
3576 (extern debug (omega_pb_d &)): New.
3577 (extern debug (omega_pb_d *)): New.
3578 * print-rtl.c
3579 (debug (const rtx_def &)): New.
3580 (debug (const rtx_def *)): New.
3581 * print-tree.c
3582 (debug_tree (tree): Move within file.
3583 (debug_raw (const tree_node &)): New.
3584 (debug_raw (const tree_node *)): New.
3585 (dump_tree_via_hooks (const tree_node *, int)): New.
3586 (debug (const tree_node &)): New.
3587 (debug (const tree_node *)): New.
3588 (debug_verbose (const tree_node &)): New.
3589 (debug_verbose (const tree_node *)): New.
3590 (debug_head (const tree_node &)): New.
3591 (debug_head (const tree_node *)): New.
3592 (debug_body (const tree_node &)): New.
3593 (debug_body (const tree_node *)): New.
3594 (debug_vec_tree (tree): Move and reimplement in terms of dump.
3595 (debug (vec<tree, va_gc> &)): New.
3596 (debug (vec<tree, va_gc> *)): New.
3597 * rtl.h
3598 (extern debug (const rtx_def &)): New.
3599 (extern debug (const rtx_def *)): New.
3600 * sbitmap.c
3601 (debug_raw (simple_bitmap_def &)): New.
3602 (debug_raw (simple_bitmap_def *)): New.
3603 (debug (simple_bitmap_def &)): New.
3604 (debug (simple_bitmap_def *)): New.
3605 * sbitmap.h
3606 (extern debug (simple_bitmap_def &)): New.
3607 (extern debug (simple_bitmap_def *)): New.
3608 (extern debug_raw (simple_bitmap_def &)): New.
3609 (extern debug_raw (simple_bitmap_def *)): New.
3610 * sel-sched-dump.c
3611 (debug (vinsn_def &)): New.
3612 (debug (vinsn_def *)): New.
3613 (debug_verbose (vinsn_def &)): New.
3614 (debug_verbose (vinsn_def *)): New.
3615 (debug (expr_def &)): New.
3616 (debug (expr_def *)): New.
3617 (debug_verbose (expr_def &)): New.
3618 (debug_verbose (expr_def *)): New.
3619 (debug (vec<rtx> &)): New.
3620 (debug (vec<rtx> *)): New.
3621 * sel-sched-dump.h
3622 (extern debug (vinsn_def &)): New.
3623 (extern debug (vinsn_def *)): New.
3624 (extern debug_verbose (vinsn_def &)): New.
3625 (extern debug_verbose (vinsn_def *)): New.
3626 (extern debug (expr_def &)): New.
3627 (extern debug (expr_def *)): New.
3628 (extern debug_verbose (expr_def &)): New.
3629 (extern debug_verbose (expr_def *)): New.
3630 (extern debug (vec<rtx> &)): New.
3631 (extern debug (vec<rtx> *)): New.
3632 * sel-sched-ir.h
3633 (_list_iter_cond_expr): Make inline instead of static.
3634 * sreal.c
3635 (debug (sreal &)): New.
3636 (debug (sreal *)): New.
3637 * sreal.h
3638 (extern debug (sreal &)): New.
3639 (extern debug (sreal *)): New.
3640 * tree.h
3641 (extern debug_raw (const tree_node &)): New.
3642 (extern debug_raw (const tree_node *)): New.
3643 (extern debug (const tree_node &)): New.
3644 (extern debug (const tree_node *)): New.
3645 (extern debug_verbose (const tree_node &)): New.
3646 (extern debug_verbose (const tree_node *)): New.
3647 (extern debug_head (const tree_node &)): New.
3648 (extern debug_head (const tree_node *)): New.
3649 (extern debug_body (const tree_node &)): New.
3650 (extern debug_body (const tree_node *)): New.
3651 (extern debug (vec<tree, va_gc> &)): New.
3652 (extern debug (vec<tree, va_gc> *)): New.
3653 * tree-cfg.c
3654 (debug (struct loop &)): New.
3655 (debug (struct loop *)): New.
3656 (debug_verbose (struct loop &)): New.
3657 (debug_verbose (struct loop *)): New.
3658 * tree-dump.c: Add header dependence.
3659 * tree-flow.h
3660 (extern debug (struct loop &)): New.
3661 (extern debug (struct loop *)): New.
3662 (extern debug_verbose (struct loop &)): New.
3663 (extern debug_verbose (struct loop *)): New.
3664 * tree-data-ref.c
3665 (debug (data_reference &)): New.
3666 (debug (data_reference *)): New.
3667 (debug (vec<data_reference_p> &)): New.
3668 (debug (vec<data_reference_p> *)): New.
3669 (debug (vec<ddr_p> &)): New.
3670 (debug (vec<ddr_p> *)): New.
3671 * tree-data-ref.h
3672 (extern debug (data_reference &)): New.
3673 (extern debug (data_reference *)): New.
3674 (extern debug (vec<data_reference_p> &)): New.
3675 (extern debug (vec<data_reference_p> *)): New.
3676 (extern debug (vec<ddr_p> &)): New.
3677 (extern debug (vec<ddr_p> *)): New.
3678 * tree-ssa-alias.c
3679 (debug (pt_solution &)): New.
3680 (debug (pt_solution *)): New.
3681 * tree-ssa-alias.h
3682 (extern debug (pt_solution &)): New.
3683 (extern debug (pt_solution *)): New.
3684 * tree-ssa-alias.c
3685 (debug (_var_map &)): New.
3686 (debug (_var_map *)): New.
3687 (debug (tree_live_info_d &)): New.
3688 (debug (tree_live_info_d *)): New.
3689 * tree-ssa-alias.h
3690 (extern debug (_var_map &)): New.
3691 (extern debug (_var_map *)): New.
3692 (extern debug (tree_live_info_d &)): New.
3693 (extern debug (tree_live_info_d *)): New.
3694
be77e1e5
JH
36952013-03-28 Jan Hubicka <jh@suse.cz>
3696
3697 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
3698
777e6976
IB
36992013-03-28 Ian Bolton <ian.bolton@arm.com>
3700
3701 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
3702 record only when desired or required.
3703
9cd347ae
UB
37042013-03-28 Uros Bizjak <ubizjak@gmail.com>
3705
3706 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
3707 *vec_extractv2di_1_rex64. Use x64 isa attribute.
3708
33159866 37092013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
3710
3711 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
3712 (*andsi3_compare0_uxtw): New pattern.
3713 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
3714 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
3715
89ab31c1
JH
37162013-03-28 Jan Hubicka <jh@suse.cz>
3717
3718 * data-streamer-in.c (streamer_read_gcov_count): New function.
3719 * gimple-streamer-out.c: Include value-prof.h.
3720 (output_gimple_stmt): Output histogram.
3721 (output_bb): Use streamer_write_gcov_count.
3722 * value-prof.c: Include data-streamer.h
3723 (dump_histogram_value): Add HIST_TYPE_MAX.
3724 (stream_out_histogram_value): New function.
3725 (stream_in_histogram_value): New function.
3726 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
3727 (stream_out_histogram_value, stream_in_histogram_value): Declare.
3728 * data-streamer-out.c (streamer_write_gcov_count): New function.
3729 (streamer_write_gcov_count_stream): New function.
3730 * lto-cgraph.c (lto_output_edge): Update counter streaming.
3731 (lto_output_node): Likewise.
3732 (input_node, input_edge): Likewise.
3733 * lto-streamer-out.c (output_cfg): Update streaming.
3734 * lto-streamer-in.c (input_cfg): Likewise.
3735 * data-streamer.h (streamer_write_gcov_count,
3736 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
3737 * gimple-streamer-in.c: Include value-prof.h
3738 (input_gimple_stmt): Input histograms.
3739 (input_bb): Update profile streaming.
3740
e594716a 37412013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 3742
33159866 3743 * genmodes.c (emit_max_int): New function.
8697be17 3744 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
3745 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
3746 Added doc.
8697be17 3747 * machmode.def: Fixed comment.
89ab31c1 3748
e594716a 37492013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
3750
3751 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
3752 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
3753
74946978
MP
37542013-03-28 Marek Polacek <polacek@redhat.com>
3755 Richard Biener <rguenther@suse.de>
3756
3757 PR tree-optimization/56695
3758 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
3759 build signed result of a vector comparison.
3760 * tree-cfg.c (verify_gimple_comparison): Check that a result
3761 of a vector comparison has signed type.
3762
a64b9c26
RB
37632013-03-28 Richard Biener <rguenther@suse.de>
3764
3765 PR tree-optimization/37021
3766 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
3767 do not restrict gaps between groups.
3768 * tree-vect-stmts.c (vectorizable_load): Properly account for
3769 a gap between groups.
3770
a9dc2a2f
EB
37712013-03-28 Eric Botcazou <ebotcazou@adacore.com>
3772
3773 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
3774 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
3775 is not enabled.
3776
53cb97f9
GP
37772013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
3778
3779 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
3780 * doc/extend.texi (Named Address Spaces): Ditto.
3781 (Variable Attributes): Ditto.
3782
b802ae5c
KT
37832013-03-27 Kai Tietz <ktietz@redhat.com>
3784
eddae10a
KT
3785 * config.build: Add support for cygwin x64 target.
3786 * config.gcc: Likewise.
3787 * config.host: Likewise.
3788 * configure.ac: Likewise
3789 * configure: Regenerated.
b802ae5c 3790
8269de54
KT
37912013-03-27 Kai Tietz <ktietz@redhat.com>
3792
3793 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
3794 * config/i386/t-cygwin-w64: New file.
3795 * config/i386/cygwin-w64.h: New file.
3796 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
3797 and add support for x64-cygwin target.
3798 (CPP_SPEC): Likewise.
3799 (CXX_WRAP_SPEC_LIST): Undefine before define.
3800 (LIBGCJ_SONAME): Use 15 as version.
3801
f49b33cb
RB
38022013-03-27 Richard Biener <rguenther@suse.de>
3803
3804 PR tree-optimization/56716
3805 * tree-ssa-structalias.c (perform_var_substitution): Adjust
3806 dumping for ref nodes.
3807
b37a6ce5
MJ
38082013-03-27 Martin Jambor <mjambor@suse.cz>
3809
3810 PR tree-optimization/55334
3811 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
3812 restricted pointers to arrays.
3813
9469b9b2
GDR
38142013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
3815
3816 * Makefile.in (.SUFFIXES): Add .cc.
3817 (.c.o): Apply same recipe for implicit rule .cc.o.
3818
7d24f650
RB
38192013-03-27 Richard Biener <rguenther@suse.de>
3820
3821 PR tree-optimization/37021
3822 * tree-vect-data-refs.c (vect_check_strided_load): Allow
3823 REALPART/IMAGPART_EXPRs around the supported refs.
3824 * tree-ssa-structalias.c (find_func_aliases): Assume that
3825 floating-point values are not used to transfer pointers.
3826
2f251a05
AI
38272013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
3828
39385fa6
PC
3829 * target.def (TARGET_HAS_IFUNC_P): New target hook.
3830 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
3831 * doc/tm.texi: Regenerate.
3832 * targhooks.h (default_has_ifunc_p): New.
3833 * targhooks.c (default_has_ifunc_p): Ditto.
3834 * config/linux-protos.h: New file.
3835 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of
2f251a05
AI
3836 this hook for linux which disables support of indirect functions in
3837 android.
39385fa6
PC
3838 * config/linux-android.c: New file.
3839 * config/t-linux-android.c: Ditto.
3840 * config.gcc: Added new object file linux-android.o.
3841 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 3842 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
39385fa6 3843 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
3844 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
3845 doesn't support indirect functions.
3846 * configure: Regenerate.
3847
78b4e425
BC
38482013-03-27 Bin Cheng <bin.cheng@arm.com>
3849
3850 PR target/56102
3851 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
3852 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
3853 mult-word mode.
3854
a5ba7b92
AK
38552013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3856
3857 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
3858
be624986
TG
38592013-03-27 Terry Guo <terry.guo@arm.com>
3860
3861 * config/arm/arm-cores.def: Added core cortex-r7.
3862 * config/arm/arm-tune.md: Regenerated.
3863 * config/arm/arm-tables.opt: Regenerated.
3864 * doc/invoke.texi: Added entry for core cortex-r7.
3865
0a514f47
WL
38662013-03-27 Walter Lee <walt@tilera.com>
3867
3868 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
3869 double-decrement of next_scratch_regno.
3870
9332b0d2
WL
38712013-03-27 Walter Lee <walt@tilera.com>
3872
801d9b2a 3873 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
3874 input operands.
3875 (insn_v1mulus): Ditto.
3876 (insn_v2muls): Ditto.
3877
f54ea5dd
WL
38782013-03-27 Walter Lee <walt@tilera.com>
3879
e594716a 3880 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
3881 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
3882
bf60f4ca
WL
38832013-03-27 Walter Lee <walt@tilera.com>
3884
e594716a 3885 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
3886 (*sibcall_value): Ditto.
3887
e3b51eeb
WL
38882013-03-27 Walter Lee <walt@tilera.com>
3889
3890 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
3891 (insn_mnz_v8qi): ... this ...
3892 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
3893 vector equivalent.
3894 (insn_v<n>mnz): Replaced by ...
3895 (insn_v1mnz): ... this ...
3896 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
3897 equivalent.
3898 (insn_mz_<mode>): Replaced by ...
3899 (insn_mz_v8qi): ... this ...
3900 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
3901 vector equivalent.
3902 (insn_v<n>mz): Replaced by ...
3903 (insn_v1mz): ... this ...
3904 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
3905 equivalent.
3906
4fc7b145
EB
39072013-03-26 Eric Botcazou <ebotcazou@adacore.com>
3908
3909 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
3910
6f33817e
RM
39112013-03-26 Roland McGrath <mcgrathr@google.com>
3912
3913 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
3914 than fprintf with a non-constant, non-format string.
3915
93a4145b
UB
39162013-03-26 Uros Bizjak <ubizjak@gmail.com>
3917
3918 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
3919 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
3920 operand 0 predicate.
3921 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
3922 attribute. Use general_x64nomem_operand as operand 1 predicate.
3923 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
3924 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
3925 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
3926 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
3927 (mov<mode>_insv_1): Remove expander. Merge insn with
3928 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
3929 Use general_x64nomem_operand as operand 1 predicate.
3930 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
3931 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
3932 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
3933 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
3934 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
3935 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
3936 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
3937 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
3938 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
3939 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
3940 (general_x64nomem_operand): Ditto.
3941
c6a9ed5a 39422013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
3943
3944 * config/rtems.opt: Add -pthread option.
3945
31b0a960
RB
39462013-03-26 Richard Biener <rguenther@suse.de>
3947
93a4145b
UB
3948 * alias.c (find_base_term): Avoid redundant and not used recursion.
3949 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
3950 (true_dependence_1): Compute and pass base terms to base_alias_check.
3951 (write_dependence_p): Likewise.
3952 (may_alias_p): Likewise.
3953
79517551
SN
39542013-03-26 Sofiane Naci <sofiane.naci@arm.com>
3955
3956 * config/aarch64/aarch64.c (aarch64_classify_address): Support
3957 PC-relative load in SI modes and above only.
3958
a76213b9
XQ
39592013-03-26 Xinyu Qi <xyqi@marvell.com>
3960
3961 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
3962 * config/arm/iwmmxt.md (WCGR0): Update.
3963 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 3964
37ff9355
UB
39652013-03-26 Uros Bizjak <ubizjak@gmail.com>
3966
3967 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
3968 Use x64 and nox64 isa attributes.
3969
30b0317c
RB
39702013-03-26 Richard Biener <rguenther@suse.de>
3971
3972 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
3973 alignment computations and rely on get_object_alignment_1
3974 for the !TYPE_P case.
3975 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
3976
cbcdb140
WL
39772013-03-26 Walter Lee <walt@tilera.com>
3978
3979 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
3980 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
3981
dd884525 39822013-03-25 Jeff Law <law@redhat.com>
be672e08 3983
33159866
UB
3984 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
3985 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
3986 wrong version of prior patch.
3987
0051d3ec
WL
39882013-03-25 Walter Lee <walt@tilera.com>
3989
3990 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
3991 TILEGX_INSN_SHUFFLEBYTES1.
3992 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
3993 shufflebytes1.
3994 (tilegx_builtins): Ditto.
3995 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
3996
065a3605
WL
39972013-03-25 Walter Lee <walt@tilera.com>
3998
3999 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
4000 (floatunssisf2): New pattern.
4001 (floatsidf2): New pattern.
4002 (floatunssidf2): New pattern.
065a3605 4003
5b2a3c82
WL
40042013-03-25 Walter Lee <walt@tilera.com>
4005
4006 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
4007 tests for constraint J, K, N, P.
4008
192ea533
WL
40092013-03-25 Walter Lee <walt@tilera.com>
4010
4011 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
4012 Use indirect/pcrel encoding.
4013 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
4014 Ditto.
4015
855e0d0b
SE
40162013-03-25 Steve Ellcey <sellcey@mips.com>
4017
4018 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
4019 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
4020 * config/mips/mips.c (mips_option_override): Set IMADD default.
4021 * config/mips/mips.h (PTF_AVOID_IMADD): New.
4022 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
4023 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
4024 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
4025 * doc/invoke.texi (-mimadd/-mno-imadd): New.
4026
39e45653
JL
40272013-03-25 Jeff Law <law@redhat.com>
4028
4029 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
4030 slightly to avoid creating and folding useless trees. Simplify
4031 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
4032
7482c470
UB
40332013-03-25 Uros Bizjak <ubizjak@gmail.com>
4034
4035 * config/i386/i386.md (*zero_extendsidi2): Merge with
4036 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
4037 * config/i386/predicates.md (x86_64_zext_operand): Rename from
4038 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
4039 targets. Clarify comment.
4040
4a53743e
MJ
40412013-03-25 Martin Jambor <mjambor@suse.cz>
4042
4043 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
4044 pass-through jump functions differently.
4045 (ipa_read_jump_function): Likewise. Also use setter functions to set
4046 up jump functions.
4047
162712de
MJ
40482013-03-25 Martin Jambor <mjambor@suse.cz>
4049
4050 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
4051 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
4052 process it.
4053 (ipa_get_indirect_edge_target): New function.
4054 (devirtualization_time_bonus): New parameter known_aggs, pass it to
4055 ipa_get_indirect_edge_target. Update all callers.
4056 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
4057 ipa_get_indirect_edge_target_1 instead of calling
4058 ipa_get_indirect_edge_target.
4059 (create_specialized_node): Pass aggvlas to
4060 ipcp_discover_new_direct_edges.
4061
a5a4c20a
KT
40622013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4063
4064 * config/arm/arm.md (f_sels, f_seld): New types.
4065 (*cmov<mode>): New pattern.
4066 * config/arm/predicates.md (arm_vsel_comparison_operator): New
4067 predicate.
4068
f992b9fc
KT
40692013-03-25 Kai Tietz <ktietz@redhat.com>
4070
4071 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
4072 POSIX-printf for mingw-hosted builds.
4073
c16fd676
RB
40742013-03-25 Richard Biener <rguenther@suse.de>
4075
4076 PR middle-end/56694
4077 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
4078 must-not-throw stmt location.
4079
5ad29f12
KT
40802013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4081
4082 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
4083 Emit load-acquire versions when acq is true.
4084 (arm_emit_store_exclusive): Add rel parameter.
4085 Emit store-release versions when rel is true.
4086 (arm_split_compare_and_swap): Use acquire-release instructions
4087 instead.
4088 of barriers when appropriate.
4089 (arm_split_atomic_op): Likewise.
4090 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
4091 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
4092 (VUNSPEC_SLX): Likewise.
4093 (VUNSPEC_LDA): Likewise.
4094 (VUNSPEC_STL): Likewise.
4095 * config/arm/sync.md (atomic_load<mode>): New pattern.
4096 (atomic_store<mode>): Likewise.
4097 (arm_load_acquire_exclusive<mode>): Likewise.
4098 (arm_load_acquire_exclusivesi): Likewise.
4099 (arm_load_acquire_exclusivedi): Likewise.
4100 (arm_store_release_exclusive<mode>): Likewise.
4101
03a7dddb
CM
41022013-03-25 Catherine Moore <clm@codesourcery.com>
4103
4104 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
4105 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
4106 * config/mip/predicates.md (lwsp_swsp_operand,
4107 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
4108 sb16_operand, db4_operand, db7_operand, ib3_operand,
4109 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
4110 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
4111 andi16_operand): New predicates.
4112 * config/mips/mips.md (compression): New attribute.
4113 (enabled): New attribute.
4114 (length): Consider compression in computing length.
4115 (shift_compression): New code attribute.
4116 (*add<mode>3): New operands. Record compression.
4117 (sub<mode>3): Likewise.
4118 (one_cmpl<mode>2): Likewise.
4119 (*and<mode>3): Likewise.
4120 (*ior<mode>3): Likewise.
4121 (unnamed pattern for xor): Likewise.
4122 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
4123 (*<optab><mode>3): Likewise.
4124 (*mov<mode>_internal: Likewise.
4125 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
4126 (mips_unsigned_immediate_p): New.
4127 (umips_lwsp_swsp_address_p): New.
4128 (m16_based_address_p): New.
4129 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
4130 (mips_unsigned_immediate_p): New prototype.
4131 (lwsp_swsp_address_p): New prototype.
4132 (m16_based_address_p): New prototype.
4133 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
4134 (mips_signed_immediate_p): New function.
4135 (m16_based_address_p): New function.
4136 (lwsp_swsp_address_p): New function.
4137 (mips_print_operand_punctuation): Recognize short delay slot insns
4138 for microMIPS.add<mode>3"
4139
f35c297f 41402013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 4141
f35c297f
KT
4142 PR target/56720
4143 * config/arm/iterators.md (v_cmp_result): New mode attribute.
4144 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
4145
051b9446
RB
41462013-03-25 Richard Biener <rguenther@suse.de>
4147
4148 PR tree-optimization/56689
4149 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
4150 any edge.
4151
374001cb
RB
41522013-03-25 Richard Biener <rguenther@suse.de>
4153
4154 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
4155 of bitmap.
4156 (memory_references): Likewise.
4157 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
4158 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
4159 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
4160 (gather_mem_refs_in_loops): Fold into ...
4161 (analyze_memory_references): ... this. Move initialization
4162 to tree_ssa_lim_initialize.
4163 (fill_always_executed_in): Rename to ...
4164 (fill_always_executed_in_1): ... this.
4165 (fill_always_executed_in): Move contains_call computation to
4166 this new function from ...
4167 (tree_ssa_lim_initialize): ... here.
4168 (tree_ssa_lim): Call fill_always_executed_in.
4169
57895947
EB
41702013-03-25 Eric Botcazou <ebotcazou@adacore.com>
4171
4172 * postreload.c (reload_combine): Fix code detecting returns.
4173
1e1b18c1
EB
41742013-03-25 Eric Botcazou <ebotcazou@adacore.com>
4175
4176 * function.c (emit_use_return_register_into_block): On cc0 targets,
4177 do not emit the sequence between cc0 setter and user.
4178
9216baf1
KT
41792013-03-25 Kai Tietz <ktietz@redhat.com>
4180
1e1b18c1
EB
4181 * config/i386/predicates.md (local_symbolic_operand): Interpret
4182 dll-imported symbols as none-local.
9216baf1 4183
76421b44
RB
41842013-03-25 Richard Biener <rguenther@suse.de>
4185
4186 * tree-ssa-loop-im.c (struct depend): Remove.
4187 (struct lim_aux_data): Make depends a vec of gimples.
4188 (free_lim_aux_data): Adjust.
4189 (add_dependency): Likewise.
4190 (set_level): Likewise.
4191
d154bfa2
RB
41922013-03-25 Richard Biener <rguenther@suse.de>
4193
4194 PR middle-end/56434
4195 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
4196 the pointer returned by calls with ECF_MALLOC set.
4197
2cd9804e
UB
41982013-03-24 Uros Bizjak <ubizjak@gmail.com>
4199
acef5fe0
UB
4200 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
4201
42022013-03-24 Uros Bizjak <ubizjak@gmail.com>
4203
4204 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
4205 using MMXMODE mode iterator.
4206 (*move<mode>_internal): Merge with *movv2sf_internal and
4207 *movv2sf_internal_rex64 using MMXMODE mode iterator.
4208
225ccc68
SB
42092013-03-23 Steven Bosscher <steven@gcc.gnu.org>
4210
85c0f02d
SB
4211 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
4212 (record_last_mem_set_info): Likewise.
4213
225ccc68
SB
4214 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
4215 of XNEWVEC followed by memset.
4216 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
4217
b64925dc
SB
42182013-03-23 Steven Bosscher <steven@gcc.gnu.org>
4219
4220 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
4221 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
4222 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
4223 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
4224 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
4225 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
4226 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
4227 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
4228 BARRIER_P instead of GET_CODE.
4229
b9aaf52e
EB
42302013-03-23 Eric Botcazou <ebotcazou@adacore.com>
4231
4232 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
4233 inaccuracy in the probing code.
4234
4235 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
4236 (ctrapdi4): Likewise.
4237
66de4d7c
EB
42382013-03-23 Eric Botcazou <ebotcazou@adacore.com>
4239
4240 * calls.c (expand_call): Add missing guard to code handling return
4241 of non-BLKmode structures in MSB.
4242 * function.c (expand_function_end): Likewise.
4243
4f25c8fb
EB
42442013-03-23 Eric Botcazou <ebotcazou@adacore.com>
4245
4246 * combine.c (try_combine): Adjust comment. Do not add the set of
4247 insn #0 if the destination indirectly is set or dies in insn #2.
4248 Tidy up code to distribute a new note.
4249
23b7850d
UB
42502013-03-22 Uros Bizjak <ubizjak@gmail.com>
4251
4252 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
4253 also for alternatives 16 and 17.
4254
bed852cf
UB
42552013-03-22 Uros Bizjak <ubizjak@gmail.com>
4256
4257 * config/i386/sse.md (*mov<mode>_internal): Merge with
4258 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
4259 Emit insn template depending on type attribute. Use
4260 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
4261 movd instead of movq mnemonic for interunit moves. Rewrite mode
4262 attribute calculation. Remove unit attribute calculation.
4263 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
4264 Set prefix_data16 attribute for DImode ssemov types.
4265 Use Ym instead of y for SSE-MMX conversion alternatives.
4266 Reorder operand constraints.
4267
1e8a7937
SB
42682013-03-22 Steven Bosscher <steven@gcc.gnu.org>
4269
4270 * df.h (df_insn_delete): Adjust prototype.
4271 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
4272 and let it decide whether mark the basic block dirty.
4273 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
4274 * df-scan.c (df_insn_info_delete): New helper function, split
4275 off from df_insn_delete.
4276 (df_scan_free_bb_info): Use it.
4277 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
4278 Likewise.
4279 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
4280 that the insn is actually an insn and it has a non-NULL basic block.
4281 Do not mark basic block dirty if only deleting a DEBUG_INSN.
4282
e14d094c
RB
42832013-03-22 Richard Biener <rguenther@suse.de>
4284
4285 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
4286 dep_ref members.
4287 (mem_ref_alloc): Do not allocate them.
4288 (refs_independent_p): Do not query or maintain a cache.
4289
e9cf7316
RB
42902013-03-22 Richard Biener <rguenther@suse.de>
4291
4292 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
4293 (gather_mem_refs_in_loops): Do not compute it.
4294 (analyze_memory_references): Do not allocate it.
4295 (tree_ssa_lim_finalize): Do not free it.
4296 (for_all_locs_in_loop): Do not query all_refs_in_loop.
4297
f046e81b
RB
42982013-03-22 Richard Biener <rguenther@suse.de>
4299
4300 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 4301
a05c0ddf
IB
43022013-03-22 Ian Bolton <ian.bolton@arm.com>
4303
4304 * config/aarch64/aarch64.c (aarch64_print_operand): New
4305 format specifier for printing a constant in hex.
4306 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
4307 format specifier for printing second operand.
4308
c00217fc
RB
43092013-03-22 Richard Biener <rguenther@suse.de>
4310
4311 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
4312 bitmaps.
4313 (gather_mem_refs_in_loops): Perform store accumulation here.
4314 (create_vop_ref_mapping_loop): Remove.
4315 (create_vop_ref_mapping): Likewise.
4316 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 4317 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
4318 (record_indep_loop): Remove.
4319 (record_dep_loop): New function.
4320 (ref_indep_loop_p_1): Adjust to only walk over references
4321 in the loop, not its subloops.
4322 (ref_indep_loop_p): Rename to ...
4323 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
4324 maintaining a more fine-grained cache.
4325 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
4326 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
4327
15d19bf8
RB
43282013-03-22 Richard Biener <rguenther@suse.de>
4329
4330 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
4331 (struct mem_ref): Make accesses_in_loop a vec of a vec of
4332 aggregate mem_ref_loc.
4333 (free_mem_ref_locs): Inline into ...
4334 (memref_free): ... this and adjust.
4335 (mem_ref_alloc): Adjust.
4336 (mem_ref_locs_alloc): Remove.
4337 (record_mem_ref_loc): Adjust.
4338 (get_all_locs_in_loop): Rewrite into ...
4339 (for_all_locs_in_loop): ... this iterator.
4340 (rewrite_mem_ref_loc): New functor.
4341 (rewrite_mem_refs): Use for_all_locs_in_loop.
4342 (sm_set_flag_if_changed): New functor.
4343 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
4344 (ref_always_accessed): New functor.
4345 (ref_always_accessed_p): Use for_all_locs_in_loop.
4346
6f37411d
MG
43472013-03-21 Marc Glisse <marc.glisse@inria.fr>
4348
4349 * tree-pass.h (PROP_gimple_lvec): New.
4350 * passes.c (dump_properties): Handle PROP_gimple_lvec.
4351 (init_optimization_passes): Move pass_lower_vector.
4352 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
4353 PROP_gimple_lvec.
4354 (pass_lower_vector): Provide PROP_gimple_lvec.
4355 (pass_lower_vector_ssa): Likewise.
4356 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
4357
511ef689
MW
43582013-03-21 Mark Wielaard <mjw@redhat.com>
4359
4360 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
4361
cc1df30b
UB
43622013-03-21 Uros Bizjak <ubizjak@gmail.com>
4363
4364 * config/i386/i386.md (*movdi_internal): Disparage slightly
4365 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
4366 conversion alternatives.
4367
c845cfe1
JJ
43682013-03-21 Jakub Jelinek <jakub@redhat.com>
4369
37e99116
JJ
4370 PR middle-end/48087
4371 * diagnostic.def (DK_WERROR): New kind.
4372 * diagnostic.h (werrorcount): Define.
4373 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
4374 promoted to DK_ERROR, increment DK_WERROR counter instead of
4375 DK_ERROR counter.
4376 * toplev.c (toplev_main): Call print_ignored_options even if
4377 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
4378 even if just werrorcount is non-zero.
4379
c845cfe1
JJ
4380 PR debug/55608
4381 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
4382 on failure.
4383 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
4384 (string_cst_pool_decl): New function.
4385 (optimize_one_addr_into_implicit_ptr): New function.
4386 (resolve_addr_in_expr): Optimize DWARF location expression
4387 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
4388 which doesn't live in memory, but has DW_AT_location or
4389 DW_AT_const_value, or refers to a string literal, into
4390 DW_OP_GNU_implicit_pointer.
4391 (optimize_location_into_implicit_ptr): New function.
4392 (resolve_addr): If removing DW_AT_location of a variable because
4393 it was DW_OP_addr of address of the variable, but the variable doesn't
4394 live in memory, try to emit const value attribute for the initializer.
4395
08e0cda6
MG
43962013-03-21 Marc Glisse <marc.glisse@inria.fr>
4397
4398 * tree.h (VECTOR_TYPE_P): New macro.
4399 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
4400 TYPE_MODE): Use it.
4401 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
4402 VEC_COND_EXPR cannot be lvalues.
4403 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
4404
d08633b4
MG
44052013-03-21 Marc Glisse <marc.glisse@inria.fr>
4406
4407 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
4408 Restrict the transformation to equal modes.
4409
e6647190
RB
44102013-03-21 Richard Biener <rguenther@suse.de>
4411
4412 PR tree-optimization/39326
4413 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
4414 (MEM_ANALYZABLE): Adjust.
4415 (record_mem_ref_loc): Move bitmap ops ...
4416 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
4417 unanalyzable refs, do not record locations for it.
4418 (analyze_memory_references): Allocate ref zero as shared
4419 unanalyzable ref.
4420 (refs_independent_p): Do not test for unanalyzed mems here.
4421 (ref_indep_loop_p_1): Special-case disambiguation against
4422 the unanalyzed ref.
cc1df30b 4423 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 4424
65074f54
CL
44252013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
4426
4427 * config/arm/arm-protos.h (tune_params): Add
4428 prefer_neon_for_64bits field.
4429 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
4430 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
4431 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
4432 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
4433 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
4434 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
4435 (arm_option_override): Handle -mneon-for-64bits new option.
4436 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
4437 (prefer_neon_for_64bits): Declare new variable.
4438 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 4439 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
4440 (arch_enabled): Handle new arch types. Remove support for onlya8
4441 and nota8.
4442 (one_cmpldi2): Use new arch names.
bc5faa5b 4443 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
4444 * config/arm/arm.opt (mneon-for-64bits): Add option.
4445 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
4446 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
4447 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
4448 of onlya8.
4449 * doc/invoke.texi (-mneon-for-64bits): Document.
4450
5a2d2a79
RB
44512013-03-21 Richard Biener <rguenther@suse.de>
4452
4453 PR tree-optimization/39326
4454 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
4455 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 4456 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 4457
5abe1e05
RB
44582013-03-21 Richard Biener <rguenther@suse.de>
4459
4460 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
4461 (vect_insert_into_interleaving_chain): Likewise.
4462 (vect_drs_dependent_in_basic_block): Inline ...
4463 (vect_slp_analyze_data_ref_dependence): ... here. New function,
4464 split out from ...
4465 (vect_analyze_data_ref_dependence): ... here. Simplify.
4466 (vect_check_interleaving): Simplify.
4467 (vect_analyze_data_ref_dependences): Likewise. Split out ...
4468 (vect_slp_analyze_data_ref_dependences): ... this new function.
4469 (dr_group_sort_cmp): New function.
4470 (vect_analyze_data_ref_accesses): Compute data-reference groups
4471 here instead of in vect_analyze_data_ref_dependence. Use
4472 a more efficient algorithm.
4473 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
4474 vect_slp_analyze_data_ref_dependences. Call
4475 vect_analyze_data_ref_accesses earlier.
4476 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
4477 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
4478 (vect_slp_analyze_data_ref_dependences): New prototype.
4479
cad1735b
RB
44802013-03-21 Richard Biener <rguenther@suse.de>
4481
4482 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
4483 ref is stored in the loop.
4484 (find_refs_for_sm): Walk only over all stores.
4485 (store_motion_loop): Allocate from lim_bitmap_obstack.
4486 (store_motion): Likewise.
4487
141310ef
RB
44882013-03-21 Richard Biener <rguenther@suse.de>
4489
4490 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
4491 Update virtual SSA form.
4492
5022315a
RO
44932013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4494
4495 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
4496 * configure: Regenerate.
4497 * config.in: Regenerate.
4498 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
4499 if !HAVE_LD_EH_FRAME_CIEV3.
4500
50d4421c
RB
45012013-03-21 Richard Biener <rguenther@suse.de>
4502
4503 * tree-cfg.c (verify_expr_no_block): New function.
4504 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
4505 nor DECL_VALUE_EXPR have locations with associated blocks.
4506 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
4507 (clear_unused_block_pointer): Remove code dealing with
4508 blocks in DECL_DEBUG_EXPR locations.
4509
839b422f
RB
45102013-03-21 Richard Biener <rguenther@suse.de>
4511
4512 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
4513 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
4514 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
4515 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
4516 instead of DECL_DEBUG_EXPR_IS_FROM.
4517 * gimplify.c (gimplify_modify_expr): Likewise.
4518 * tree-cfg.c (verify_expr_location_1): Likewise.
4519 * tree-complex.c (create_one_component_var): Likewise.
4520 * tree-sra.c (create_access_replacement): Likewise.
4521 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
4522 (clear_unused_block_pointer): Likewise.
4523 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
4524 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
4525 * var-tracking.c (var_debug_decl): Likewise.
4526 (track_expr_p): Likewise.
4527 * tree-inline.c (add_local_variables): Likewise. Set
4528 DECL_HAS_DEBUG_EXPR_P after copying it.
4529 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
4530 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
4531
fe04878d
UB
45322013-03-21 Uros Bizjak <ubizjak@gmail.com>
4533
4534 PR bootstrap/56656
4535 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
4536 * configure: Regenerate.
4537 * config.in: Regenerate.
4538 * config/i386/i386.md (*movdf_internal): Use
4539 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
4540 movd instead of movq mnemonic for interunit moves.
4541 (*movdi_internal): Ditto.
4542
bd059b26 45432013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
4544
4545 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
4546 (abd<mode>_3): New pattern.
4547 (aba<mode>_3): New pattern.
4548 (fabd<mode>_3): New pattern.
4549
bd059b26 45502013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
4551
4552 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
4553 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
4554 occurrence of REGISTER_PREFIX as its empty string.
4555
4f1f78b9
JL
45562013-03-20 Jeff Law <law@redhat.com>
4557
4558 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
4559 addititional equivalences for equality comparisons between an SSA_NAME
4560 and a constant where the SSA_NAME was set from a widening conversion.
4561
327a1118
WL
45622013-03-20 Walter Lee <walt@tilera.com>
4563
4564 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
4565
813e0036
UB
45662013-03-20 Uros Bizjak <ubizjak@gmail.com>
4567
4568 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
4569 depending on type attribute.
4570 (*movti_internal): Ditto.
4571 (*movtf_internal): Ditto.
4572 (*movxf_internal): Ditto.
4573 (*movdf_internal): Ditto.
4574 (*movsf_internal): Ditto.
4575
7cf34aae
UB
45762013-03-20 Uros Bizjak <ubizjak@gmail.com>
4577
4578 * config/i386/i386.md (*movti_internal): Set prefix attribute to
4579 maybe_vex for sselog1 and ssemov types.
4580 (*movdi_internal): Reorder operand constraints.
4581 (*movsi_internal): Ditto. Set prefix attribute to
4582 maybe_vex for sselog1 and ssemov types.
4583 (*movtf_internal): Set prefix attribute to maybe_vex
4584 for sselog1 and ssemov types.
4585 (*movdf_internal): Ditto. Set prefix_data16 attribute for
4586 DImode ssemov types. Reorder operand constraints.
4587 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
4588 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
4589 attribute for SImode ssemov types. Reorder operand constraints.
4590
19321415
MJ
45912013-03-20 Martin Jambor <mjambor@suse.cz>
4592
4593 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
4594 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
4595
c6d5ff83
MM
45962013-03-20 Pat Haugen <pthaugen@us.ibm.com>
4597
4598 * config/rs6000/predicates.md (indexed_address, update_address_mem
4599 update_indexed_address_mem): New predicates.
4600 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
4601 attribute for load/store instructions.
4602 * config/rs6000/dfp.md (movsd_store): Likewise.
4603 (movsd_load): Likewise.
4604 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
4605 (unnamed HI->DI extend define_insn): Likewise.
4606 (unnamed SI->DI extend define_insn): Likewise.
4607 (unnamed QI->SI extend define_insn): Likewise.
4608 (unnamed QI->HI extend define_insn): Likewise.
4609 (unnamed HI->SI extend define_insn): Likewise.
4610 (unnamed HI->SI extend define_insn): Likewise.
4611 (extendsfdf2_fpr): Likewise.
4612 (movsi_internal1): Likewise.
4613 (movsi_internal1_single): Likewise.
4614 (movhi_internal): Likewise.
4615 (movqi_internal): Likewise.
4616 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
4617 attribute for load/store instructions.
4618 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
4619 instructions.
4620 (mov<mode>_softfloat): Likewise.
4621 (mov<mode>_hardfloat32): Likewise.
4622 (mov<mode>_hardfloat64): Likewise.
4623 (mov<mode>_softfloat64): Likewise.
4624 (movdi_internal32): Likewise.
4625 (movdi_internal64): Likewise.
4626 (probe_stack_<mode>): Likewise.
4627
46282013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
4629
4630 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
4631 floating point, and decimal floating point to reload iterator.
4632
4633 * config/rs6000/constraints.md (wl constraint): New constraints to
4634 return FLOAT_REGS if certain options are used to reduce the number
4635 of separate patterns that exist in the file.
4636 (wx constraint): Likewise.
4637 (wz constraint): Likewise.
4638
4639 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
4640 -mdebug=reg, print wg, wl, wx, and wz constraints.
4641 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
4642 Initialize the reload functions for 64-bit binary/decimal floating
4643 point types.
4644 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
4645 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
4646 create the buffer on the stack to overcome not having a 32-bit
4647 load and store.
4648 (rs6000_emit_move): Likewise.
4649 (rs6000_secondary_memory_needed_rtx): Likewise.
4650 (rs6000_alloc_sdmode_stack_slot): Likewise.
4651 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
4652 via xxlxor, just like DFmode 0.0.
4653
4654 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
4655 define as 1 if we are running on a power7 or newer.
4656 (enum r6000_reg_class_enum): Add new constraints.
4657
4658 * config/rs6000/dfp.md (movsd): Delete, combine with binary
4659 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
4660 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 4661 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
4662 (movsd splitter): Likewise.
4663 (movsd_hardfloat): Likewise.
4664 (movsd_softfloat): Likewise.
4665
4666 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
4667 binary and decimal floating point moves.
4668 (fmove_ok): New attributes to combine binary and decimal floating
4669 point moves, and to combine power6x (mfpgpr) moves along normal
4670 floating moves.
4671 (real_value_to_target): Likewise.
4672 (f32_lr): Likewise.
4673 (f32_lm): Likewise.
4674 (f32_li): Likewise.
4675 (f32_sr): Likewise.
4676 (f32_sm): Likewise.
4677 (f32_si): Likewise.
4678 (movsf): Combine binary and decimal floating point moves. Combine
4679 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 4680 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
4681 (mov<mode> for SFmode/SDmode); Likewise.
4682 (SFmode/SDmode splitters): Likewise.
4683 (movsf_hardfloat): Likewise.
4684 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
4685 (movsf_softfloat): Likewise.
4686 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
4687
4688 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
4689 wx and wz constraints.
4690
4691 * config/rs6000/constraints.md (wg constraint): New constraint to
4692 return FLOAT_REGS if -mmfpgpr (power6x) was used.
4693
4694 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
4695 constraint.
4696
4697 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
4698 -mdebug=reg, print wg, wl, wx, and wz constraints.
4699 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
4700 Initialize the reload functions for 64-bit binary/decimal floating
4701 point types.
4702 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
4703 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
4704 create the buffer on the stack to overcome not having a 32-bit
4705 load and store.
4706 (rs6000_emit_move): Likewise.
4707 (rs6000_secondary_memory_needed_rtx): Likewise.
4708 (rs6000_alloc_sdmode_stack_slot): Likewise.
4709 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
4710 via xxlxor, just like DFmode 0.0.
4711
c6d5ff83
MM
4712 * config/rs6000/dfp.md (movdd): Delete, combine with binary
4713 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
4714 with other moves by using conditional constraits (wg). Use LFIWZX
4715 and STFIWX for loading SDmode on power7.
4716 (movdd splitters): Likewise.
4717 (movdd_hardfloat32): Likewise.
4718 (movdd_softfloat32): Likewise.
4719 (movdd_hardfloat64_mfpgpr): Likewise.
4720 (movdd_hardfloat64): Likewise.
4721 (movdd_softfloat64): Likewise.
4722
4723 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
4724 64-bit binary and decimal floating point moves.
4725 (FMOVE64X): Likewise.
4726 (movdf): Combine 64-bit binary and decimal floating point moves.
4727 Combine power6x (mfpgpr) moves with other moves by using
4728 conditional constraits (wg).
4729 (mov<mode> for DFmode/DDmode): Likewise.
4730 (DFmode/DDmode splitters): Likewise.
4731 (movdf_hardfloat32): Likewise.
4732 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
4733 (movdf_softfloat32): Likewise.
4734 (movdf_hardfloat64_mfpgpr): Likewise.
4735 (movdf_hardfloat64): Likewise.
4736 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
4737 (movdf_softfloat64): Likewise.
4738 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
4739 (reload_<mode>_load): Move to later in the file so they aren't in
4740 the middle of the floating point move insns.
4741 (reload_<mode>_store): Likewise.
4742
4743 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
4744 constraint.
4745
4746 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
4747 constraint if -mdebug=reg.
bd059b26
UB
4748 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
4749 Enable using dd reload support if needed.
c6d5ff83
MM
4750
4751 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
4752 binary and decimal floating point moves in rs6000.md.
4753 (movtd_internal): Likewise.
4754
4755 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
4756 decimal floating point moves.
4757 (movtf): Likewise.
4758 (movtf_internal): Likewise.
4759 (mov<mode>_internal, TDmode/TFmode): Likewise.
4760 (movtf_softfloat): Likewise.
4761 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
4762
4763 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
4764 movdi_internal64, using wg constraint for move direct operations.
4765 (movdi_internal64): Likewise.
4766
4767 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
4768 MODES_TIEABLE_P for selected modes. Print the numerical value of
4769 the various virtual registers. Use GPR/FPR first/last values,
4770 instead of hard coding the register numbers. Print which modes
4771 have reload functions registered.
bd059b26
UB
4772 (rs6000_option_override_internal): If -mdebug=reg, trace the options
4773 settings before/after setting cpu, target and subtarget settings.
4774 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
4775 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
4776 (rs6000_secondary_reload_fail): Likewise.
4777 (rs6000_secondary_reload_inner): Likewise.
4778
4779 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
4780 macros for first/last GPR and FPR registers.
4781 (LAST_GPR_REGNO): Likewise.
4782 (FIRST_FPR_REGNO): Likewise.
4783 (LAST_FPR_REGNO): Likewise.
4784
4785 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
4786 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
4787 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
4788 (vcond<mode><mode>): Likewise.
4789 (vcondu<mode><mode>): Likewise.
4790 (vector_gtu<mode>): Likewise.
4791 (vector_gte<mode>): Likewise.
4792 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 4793 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
4794 (ior<mode>3): Likewise.
4795 (and<mode>3): Likewise.
4796 (one_cmpl<mode>2): Likewise.
4797 (nor<mode>3): Likewise.
4798 (andc<mode>3): Likewise.
4799
4800 * config/rs6000/constraints.md (wt constraint): New constraint
4801 that returns VSX_REGS if TImode is allowed in VSX registers.
4802
4803 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
4804 constant under VSX.
4805
4806 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
4807 similar to TImode, but it is restricted to being in the GPRs.
4808
4809 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
4810 TImode to occupy a single VSX register.
4811
4812 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
4813 -mvsx-timode for power7/power8.
4814 (power7 cpu): Likewise.
4815 (power8 cpu): Likewise.
4816
4817 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
4818 sure that TFmode/TDmode take up two registers if they are ever
4819 allowed in the upper VSX registers.
4820 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
4821 registers.
4822 (rs6000_init_hard_regno_mode_ok): Likewise.
4823 (rs6000_debug_reg_global): Add debugging for PTImode and wt
4824 constraint. Print if LRA is turned on.
4825 (rs6000_option_override_internal): Give an error if -mvsx-timode
4826 and VSX is not enabled.
4827 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
4828 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
4829 to reg+offset addressing. Use PTImode when checking offset
4830 addresses for validity.
4831 (reg_offset_addressing_ok_p): Likewise.
4832 (rs6000_legitimate_offset_address_p): Likewise.
4833 (rs6000_legitimize_address): Likewise.
4834 (rs6000_legitimize_reload_address): Likewise.
4835 (rs6000_legitimate_address_p): Likewise.
4836 (rs6000_eliminate_indexed_memrefs): Likewise.
4837 (rs6000_emit_move): Likewise.
4838 (rs6000_secondary_reload): Likewise.
4839 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
4840 reloads to fpr registers to continue to use reg+offset addressing,
4841 but 64-bit reloads to altivec registers need reg+reg addressing.
4842 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
4843 it. Treat LO_SUM like a PLUS operation.
4844 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 4845 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
4846 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
4847 registers to share a register with a smaller sized type, since VSX
4848 puts scalars in the upper 64-bits.
4849 (print_operand): Add support for PTImode.
4850 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
4851 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
4852 registers, but don't have arithmetic support.
4853 (rs6000_memory_move_cost): Add test for VSX.
4854 (rs6000_opt_masks): Add -mvsx-timode.
4855
4856 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
4857 for TImode.
4858 (VSs): Likewise.
4859 (VSr): Use wt constraint for TImode.
4860 (VSv): Drop TImode support.
4861 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
4862 (vsx_movti_64bit): Likewise.
4863 (vsx_movti_32bit): Likewise.
4864 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
4865 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
4866 one '?' on the appropriate output constraint. Do not allow TImode
4867 logical operations on 32-bit systems.
4868 (vsx_ior<mode>3): Likewise.
4869 (vsx_xor<mode>3): Likewise.
4870 (vsx_one_cmpl<mode>2): Likewise.
4871 (vsx_nor<mode>3): Likewise.
4872 (vsx_andc<mode>3): Likewise.
4873 (vsx_concat_<mode>): Likewise.
4874 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
4875
4876 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
4877 OPTION_MASK_VSX_TIMODE.
4878 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
4879 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
4880
4881 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
4882 (TI2 iterator): New iterator for TImode, PTImode.
4883 (wd mode attribute): Add values for vector types.
bd059b26
UB
4884 (movti_string): Replace TI move operations with operations for TImode
4885 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
4886 (mov<mode>_string, TImode/PTImode): Likewise.
4887 (movti_ppc64): Likewise.
4888 (mov<mode>_ppc64, TImode/PTImode): Likewise.
4889 (TI mode splitters): Likewise.
4890
4891 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
4892 constraint.
4893
1fc5eced
MG
48942013-03-20 Marc Glisse <marc.glisse@inria.fr>
4895
4896 PR tree-optimization/56355
4897 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
4898 Also handle integers with undefined overflow.
4899
22c4c869
CM
49002013-03-20 Catherine Moore <clm@codesourcery.com>
4901 Maciej W. Rozycki <macro@codesourcery.com>
4902 Tom de Vries <tom@codesourcery.com>
4903 Nathan Sidwell <nathan@codesourcery.com>
4904 Iain Sandoe <iain@codesourcery.com>
4905 Nathan Froyd <froydnj@codesourcery.com>
4906 Chao-ying Fu <fu@mips.com>
4907
4908 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 4909 Document new function attributes.
22c4c869
CM
4910 * doc/invoke.texi (minterlink-compressed, mmicromips,
4911 m14k, m14ke, m14kec): Document new options.
4912 (minterlink-mips16): Update documentation.
4913 * doc/md.texi (ZC, ZD): Document new constraints.
4914 * configure.ac (gcc_cv_as_micromips): Check if linker
4915 supports the .set micromips directive.
4916 * configure: Regenerate.
4917 * config.in: Regenerate.
4918 * config/mips/mips-tables.opt: Regenerate.
4919 * config/mips/micromips.md: New file.
4920 * constraints.md (ZC, ZD): New constraints.
4921 * config/mips/predicates.md (movep_src_register): New predicate.
4922 (movep_src_operand): New predicate.
4923 (non_volatile_mem_operand): New predicate.
4924 * config/mips/mips.md (multimem): New type.
4925 (length): Differentiate between 17-bit and 18-bit branch offsets.
4926 (MOVEP1, MOVEP2): New mode iterator.
33159866 4927 (mov_<load>l): Use ZC constraint.
22c4c869
CM
4928 (mov_<load>r): Likewise.
4929 (mov_<store>l): Likewise.
4930 (mov_<store>r): Likewise.
4931 (*branch_equality<mode>_inverted): Add microMIPS support.
4932 (*branch_equality<mode>): Likewise.
4933 (*jump_absolute): Likewise.
4934 (indirect_jump_<mode>): Likewise.
4935 (tablejump_<mode>): Likewise.
4936 (<optab>_internal): Likewise.
4937 (sibcall_internal): Likewise.
4938 (sibcall_value_internal): Likewise.
4939 (prefetch): Use constraint ZD.
4940 * config/mips/mips.opt (minterlink-compressed): New option.
4941 (minterlink-mips16): Now an alias for minterlink-compressed.
4942 (mmicromips): New option.
4943 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
4944 (compare_and_swap_12): Likewise.
4945 (sync_add<mode>): Likewise.
4946 (sync_<optab>_12): Likewise.
4947 (sync_old_<optab>_12): Likewise.
4948 (sync_new_<optab>_12): Likewise.
4949 (sync_nand_12): Likewise.
4950 (sync_old_nand_12): Likewise.
4951 (sync_new_nand_12): Likewise.
4952 (sync_sub<mode>): Likewise.
4953 (sync_old_add<mode>): Likewise.
4954 (sync_old_sub<mode>): Likewise.
4955 (sync_new_add<mode>): Likewise.
4956 (sync_new_sub<mode>): Likewise.
4957 (sync_<optab><mode>): Likewise.
4958 (sync_old_<optab><mode>): Likewise.
4959 (sync_new_<optab><mode>): Likewise.
4960 (sync_nand<mode>): Likewise.
4961 (sync_old_nand<mode>): Likewise.
4962 (sync_new_nand<mode>): Likewise.
4963 (sync_lock_test_and_set<mode>): Likewise.
4964 (test_and_set_12): Likewise.
4965 (atomic_compare_and_swap<mode>): Likewise.
4966 (atomic_exchange<mode>_llsc): Likewise.
4967 (atomic_fetch_add<mode>_llsc): Likewise.
4968 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
4969 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
4970 (umips_save_restore_pattern_p): Likewise.
4971 (umips_load_store_pair_p): Likewise.
4972 (umips_output_load_store_pair): Likewise.
4973 (umips_movep_target_p): Likewise.
4974 (umips_12bit_offset_address_p): Likewise.
4975 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
4976 (mips_base_mips16): Rename this...
4977 (mips_base_compression_flags): ...to this. Update all uses.
4978 (mips_attribute_table): Add micromips, nomicromips and nocompression.
4979 (mips_mips16_decl_p): Delete.
4980 (mips_nomips16_decl_p): Delete.
33159866 4981 (mips_get_compress_on_flags): New function.
22c4c869
CM
4982 (mips_get_compress_off_flags): New function.
4983 (mips_get_compress_mode): New function.
4984 (mips_get_compress_on_name): New function.
4985 (mips_get_compress_off_name): New function.
4986 (mips_insert_attributes): Support multiple compression types.
4987 (mips_merge_decl_attributes): Likewise.
4988 (umips_12bit_offset_address_p): New function.
4989 (mips_start_function_definition): Emit .set micromips directive.
4990 (mips_call_may_need_jalx_p): New function.
4991 (mips_function_ok_for_sibcall): Add microMIPS support.
4992 (mips_print_operand_punctuation): Support short delay slots and
4993 compact jumps.
4994 (umips_swm_mask, umips_swm_encoding): New.
4995 (umips_build_save_restore): New function.
4996 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
4997 (was_mips16_p): Remove.
4998 (old_compression_mode): New.
4999 (mips_set_compression_mode): New function.
5000 (mips_set_current_function): Add microMIPS support.
5001 (mips_option_override): Likewise.
5002 (umips_save_restore_pattern_p): New function.
5003 (umips_output_save_restore): New function.
5004 (umips_load_store_pair_p_1): New function.
5005 (umips_load_store_pair_p): New function.
5006 (umips_output_load_store_pair_1): New function.
5007 (umips_output_load_store_pair): New function.
5008 (umips_movep_target_p) New function.
5009 (mips_prepare_pch_save): Add microMIPS support.
5010 * config/mips/mips.h (TARGET_COMPRESSION): New.
5011 (TARGET_CPU_CPP_BUILTINS): Update macro
5012 to use new compression flags and to support microMIPS.
5013 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
5014 (MIPS_ARCH_FLOAT_SPEC): Likewise.
5015 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
5016 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
5017 (ASM_SPEC): Support mmicromips and mno-micromips.
5018 (M16STORE_REG_P): New macro.
5019 (MIPS_CALL): Support TARGET_MICROMIPS.
5020 (MICROMIPS_J): New macro.
5021 (mips_base_mips16): Rename this...
5022 (mips_base_compression_flags): ...to this.
5023 (UMIPS_12BIT_OFFSET_P): New macro.
5024 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
5025 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
50262013-03-20 Richard Biener <rguenther@suse.de>
5027
5028 PR tree-optimization/56661
5029 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
5030 the result does not have to be distinct.
5031
54714c68
RB
50322013-03-20 Richard Biener <rguenther@suse.de>
5033
5034 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
5035 remap_gimple_op_r.
5036
cca1130d
BS
50372013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5038 Steven Bosscher <steven@gcc.gnu.org>
5039
5040 PR rtl-optimization/56605
5041 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
5042
2a930377
UB
50432013-03-20 Uros Bizjak <ubizjak@gmail.com>
5044
5045 PR bootstrap/56656
5046 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
5047 that require movd instead of movq.
5048
d6d305fe
RB
50492013-03-20 Richard Biener <rguenther@suse.de>
5050
5051 * tree-ssa-structalias.c (struct variable_info): Add pointer
5052 to the first field of an aggregate with sub-vars. Make
5053 this and the pointer to the next subfield its ID.
5054 (vi_next): New function.
5055 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
5056 storedanything_id, integer_id): Increment by one.
5057 (new_var_info, get_call_vi, lookup_call_clobber_vi,
5058 get_call_clobber_vi): Adjust.
5059 (solution_set_expand): Simplify and speedup.
5060 (solution_set_add): Inline into ...
5061 (set_union_with_increment): ... this. Adjust accordingly.
5062 (do_sd_constraint): Likewise.
5063 (do_ds_constraint): Likewise.
5064 (do_complex_constraint): Simplify.
5065 (build_pred_graph): Adjust.
5066 (solve_graph): Likewise. Simplify and speedup.
5067 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
5068 get_constraint_for_component_ref, get_constraint_for_1,
5069 first_vi_for_offset, first_or_preceding_vi_for_offset,
5070 create_function_info_for, create_variable_info_for_1,
5071 create_variable_info_for, intra_create_variable_infos): Adjust.
5072 (init_base_vars): Push NULL for ID zero.
5073 (compute_points_to_sets): Adjust.
5074
a271b42d
RB
50752013-03-20 Richard Biener <rguenther@suse.de>
5076
5077 * cfgloop.c (verify_loop_structure): Streamline and avoid
5078 ICEing on corrupt loop tree.
5079 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
5080 loop tree.
5081
ebd65954
RB
50822013-03-20 Richard Biener <rguenther@suse.de>
5083
5084 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
5085 check whether an SSA update is needed.
5086
4547b7ee
RS
50872013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
5088
5089 * config/mips/constraints.md (T): Rename to...
5090 (Yf): ...this.
5091 (U): Rename to...
5092 (Yd): ...this.
5093 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
5094 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
5095
0b8cdc58
IB
50962013-03-19 Ian Bolton <ian.bolton@arm.com>
5097
5098 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
5099 (*subsi3_carryin_uxtw): Likewise.
5100
5977a10d
IB
51012013-03-19 Ian Bolton <ian.bolton@arm.com>
5102
5103 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
5104 (*rorsi3_insn_uxtw): Likewise.
5105
bd83ff2c
IB
51062013-03-19 Ian Bolton <ian.bolton@arm.com>
5107
5108 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
5109 (*extrsi5_insn_uxtw): Likewise.
5110
ba65123c
RB
51112013-03-19 Richard Biener <rguenther@suse.de>
5112
5113 PR tree-optimization/56273
5114 * passes.c (init_optimization_passes): Move second VRP after DOM.
5115
2eac0476
UB
51162013-03-19 Uros Bizjak <ubizjak@gmail.com>
5117
5118 * config/i386/i386.md (*movti_internal): Merge from
5119 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
5120 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
5121 nox64 isa attributes.
5122
6e55eda7
RB
51232013-03-18 Richard Biener <rguenther@suse.de>
5124
5125 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
5126 (unite): Likewise.
5127 (merge_node_constraints): Likewise.
5128 (build_succ_graph): Likewise.
5129 (valid_graph_edge): Inline into single caller.
5130 (unify_nodes): Likewise. Use bitmap_set_bit return value
5131 and cache varinfo.
5132 (scc_visit): Fix formatting and variable use.
5133 (do_sd_constraint): Use gcc_checking_assert.
5134 (do_ds_constraint): Likewise.
5135 (do_complex_constraint): Likewise.
5136 (condense_visit): Likewise. Cleanup.
5137 (dump_pred_graph): New function.
5138 (perform_var_substitution): Dump the pred-graph before
5139 variable substitution.
5140 (find_equivalent_node): Use gcc_checking_assert.
5141 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
5142
4bdd44c4
RB
51432013-03-18 Richard Biener <rguenther@suse.de>
5144
5145 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
5146 Remove cond_expr_stmt_list argument and do not gimplify the
5147 built expression.
5148 (vect_loop_versioning): Adjust.
5149 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
5150 Cleanup to use less temporaries.
5151 (vect_create_data_ref_ptr): Cleanup.
5152
38c56a5b
JJ
51532013-03-18 Jakub Jelinek <jakub@redhat.com>
5154
5155 PR tree-optimization/56635
5156 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
5157 require types_compatible_p types.
5158
20b2e6a0
NC
51592013-03-18 Nick Clifton <nickc@redhat.com>
5160
a6178a25
NC
5161 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
5162 spurious backslash.
5163
20b2e6a0
NC
5164 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
5165 Add missing line to comment describing function.
5166
92608d0e
RB
51672013-03-18 Richard Biener <rguenther@suse.de>
5168
5169 PR tree-optimization/56210
5170 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
5171 Handle string / character search functions.
5172 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
5173
31348d52
RB
51742013-03-18 Richard Biener <rguenther@suse.de>
5175
5176 PR middle-end/56483
5177 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
5178 and implement properly.
5179 * gimple.h (gimple_cond_single_var_p): Remove.
5180
fcac74a1
RB
51812013-03-18 Richard Biener <rguenther@suse.de>
5182
5183 * tree-data-ref.h (find_data_references_in_loop): Declare.
5184 * tree-data-ref.c (get_references_in_stmt): Use a stack
5185 vector pre-allocated in the callers.
5186 (find_data_references_in_stmt): Adjust.
5187 (graphite_find_data_references_in_stmt): Likewise.
5188 (create_rdg_vertices): Likewise.
5189 (find_data_references_in_loop): Export.
5190 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
5191 Compute dependences here...
5192 (vect_analyze_data_refs): ...not here. When we encounter
5193 a non-vectorizable data reference in basic-block vectorization
5194 truncate the data reference vector. Do not bother to
5195 fixup data-dependence information for gather loads.
5196 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
5197 of data references, as reported.
5198
0d5a1b56
RB
51992013-03-18 Richard Biener <rguenther@suse.de>
5200
5201 PR tree-optimization/3713
5202 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
5203 has_constants and expr.
5204 (stmt_has_constants): Properly valueize SSA names when deciding
5205 whether the stmt has constants.
5206
789c34e3
RB
52072013-03-18 Richard Biener <rguenther@suse.de>
5208
5209 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
5210 whole function when there is nothing to do.
5211 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
5212 * tree-vectorizer.c (vectorize_loops): Update virtual and
5213 loop-closed SSA once.
5214 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
5215
076b4605
RB
52162013-03-18 Richard Biener <rguenther@suse.de>
5217
5218 PR middle-end/56113
5219 * domwalk.c (bb_postorder): New global static.
5220 (cmp_bb_postorder): New function.
5221 (walk_dominator_tree): Replace scheme imposing an order for
5222 visiting dominator sons by one sorting them at the time they
5223 are pushed on the stack.
5224
bdb01696
RB
52252013-03-18 Richard Biener <rguenther@suse.de>
5226
5227 PR tree-optimization/39326
5228 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
5229 (struct mem_ref): Replace mem member with ao_ref typed member.
5230 (MEM_ANALYZABLE): Adjust.
5231 (memref_eq): Likewise.
5232 (mem_ref_alloc): Likewise.
5233 (gather_mem_refs_stmt): Likewise.
5234 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
5235 (execute_sm_if_changed_flag_set): Adjust.
5236 (execute_sm): Likewise.
5237 (ref_always_accessed_p): Likewise.
5238 (refs_independent_p): Likewise.
5239 (can_sm_ref_p): Likewise.
5240
12d2dc5e
JJ
52412013-03-18 Jakub Jelinek <jakub@redhat.com>
5242
5243 PR c/56566
5244 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
5245 return 1 even for !unsignedp.
5246
286fb677
UB
52472013-03-17 Uros Bizjak <ubizjak@gmail.com>
5248
5249 * config/i386/i386.md (isa): Add x64 and nox64.
5250 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
5251 (*pushtf): Enable *roF alternative for x64 isa only.
5252 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
5253 mode attribute of integer alternatives to DImode for TARGET_64BIT.
5254 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
5255 (*movtf_internal): Merge from *movtf_internal_rex64 and
5256 *movtf_internal_sse. Use x64 and nox64 isa attributes.
5257 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
5258 nox64 isa attributes.
5259 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
5260 nox64 isa attributes.
5261 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
5262
88b97037
UB
52632013-03-17 Uros Bizjak <ubizjak@gmail.com>
5264
5265 * config/alpha/alpha.c (TARGET_LRA_P): New define.
5266
9f4f1735
JJ
52672013-03-17 Jakub Jelinek <jakub@redhat.com>
5268
5269 PR target/56640
5270 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
5271 class names. Remove trailing comma after "ALL_REGS".
5272
48f4a6fa
JH
52732013-03-16 Jan Hubicka <jh@suse.cz>
5274
5275 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
5276 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
5277 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
5278 of cgraph_get_create_node.
5279 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
5280
98e81123
JM
52812013-03-16 Jason Merrill <jason@redhat.com>
5282
5283 PR debug/49090
5284 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
5285 with DW_AT_default_value.
5286
8a298c04
JJ
52872013-03-16 Jakub Jelinek <jakub@redhat.com>
5288
5289 * BASE-VER: Set to 4.9.0.
5290
4323afa0
AK
52912013-03-14 Andi Kleen <ak@linux.intel.com>
5292
5293 PR target/56619
5294 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
5295 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
5296 Document _x* TSX intrinsics.
5297
b3c0d469
JJ
52982013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
5299 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
5300
5301 * configure.ac: Add MicroBlaze TLS support detection.
5302 * configure: Regenerate.
88b97037
UB
5303 * config/microblaze/microblaze-protos.h
5304 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
5305 symbol_mentioned_p, label_mentioned_p): Add prototypes.
5306 * config/microblaze/microblaze.c (microblaze_address_type): Add
5307 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
5308 (microblaze_address_info): Add tls_reloc.
5309 (TARGET_HAVE_TLS): Define.
5310 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
5311 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
5312 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
5313 load_tls_operand, microblaze_call_tls_get_addr,
5314 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
5315 (microblaze_classify_unspec): Handle UNSPEC_TLS.
5316 (get_base_reg): Use microblaze_tls_symbol_p.
5317 (microblaze_classify_address): Handle TLS.
88b97037
UB
5318 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
5319 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
5320 (microblaze_legitimize_address): Handle TLS.
5321 (microblaze_address_insns): Handle ADDRESS_TLS.
5322 (pic_address_needs_scratch): Handle TLS.
5323 (print_operand_address): Handle TLS.
5324 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
5325 (microblaze_expand_move): Handle TLS.
88b97037
UB
5326 (microblaze_legitimate_constant_p): Check
5327 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
5328 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
5329 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
5330 (PIC_OFFSET_TABLE_REGNUM): Set.
5331 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
5332 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
5333 (addsi3, movsi_internal2, movdf_internal): Update constraints
5334 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
5335 (move_operand): Redefine as move_src_operand,
5336 check microblaze_tls_referenced_p.
8cc9a5a5 5337
d803a491
IB
53382013-03-14 Ian Bolton <ian.bolton@arm.com>
5339
5340 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
5341 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
5342
a8504f22
IB
53432013-03-14 Ian Bolton <ian.bolton@arm.com>
5344
5345 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
5346 CC mode for AND.
5347
df2dfaea
JJ
53482013-03-14 Jakub Jelinek <jakub@redhat.com>
5349
fbd28bc3
JJ
5350 PR tree-optimization/53265
5351 * common.opt (Waggressive-loop-optimizations): New option.
5352 * tree-ssa-loop-niter.c: Include tree-pass.h.
5353 (do_warn_aggressive_loop_optimizations): New function.
5354 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
5355 if number_of_latch_executions returned constant.
5356 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
5357 early. If number_of_latch_executions returned constant, set
5358 nb_iterations_upper_bound back to it.
5359 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
5360 field.
5361 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
5362 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
5363
df2dfaea
JJ
5364 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
5365 (MULTILIB_OSDIRNAMES): Set.
5366 * genmultilib: If defaultosdirname doesn't start with :: , set
5367 defaultosdirname2 instead, clear it and emit two . multilib_raw
5368 entries instead of just one.
5369
ee0d2b68
KK
53702013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
5371
5372 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
5373 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
5374 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
5375 (SUBTARGET_OVERRIDE_OPTIONS): New.
5376
decc676e
OE
53772013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
5378
5379 PR target/49880
5380 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
5381 (musermode): Convert to Var(TARGET_USERMODE).
5382 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
5383 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
5384 * config/sh/sh.c (sh_option_override): Use
5385 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
5386 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
5387 condition.
5388 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
5389 TARGET_SH4.
5390 (udivsi3_i4_single, divsi3_i4_single): Use
5391 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
5392
f4b719c7
DK
53932013-03-13 Dave Korn <dave.korn.cygwin@....>
5394
5395 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
5396 default setting.
5397
c40eced0
RB
53982013-03-13 Richard Biener <rguenther@suse.de>
5399
5400 PR tree-optimization/56608
5401 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
5402 calls when vectorizing basic-blocks.
5403
1bfa5973
JJ
54042013-03-13 Jakub Jelinek <jakub@redhat.com>
5405
5406 PR plugins/45078
5407 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
5408 tm_file.
5409
6fcf5434
JJ
54102013-03-12 Jakub Jelinek <jakub@redhat.com>
5411
5412 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
5413
4f38fa8c
JH
54142013-03-11 Jan Hubicka <jh@suse.cz>
5415
5416 PR lto/56557
5417 * lto-streamer-out.c (output_symbol_p): Skip references from
5418 constructors of external variables.
5419
c5c5ba89
JH
54202013-03-11 Jan Hubicka <jh@suse.cz>
5421
5422 PR middle-end/56571
5423 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
5424 from pseudos.
5425 * emit-rtl.c (verify_rtx_sharing): Likewise.
5426 (copy_insn_1): Likewise.
5427 * rtl.c (copy_rtx): Likewise.
5428
c2a939b1
GJL
54292013-03-11 Georg-Johann Lay <avr@gjlay.de>
5430
5431 PR target/56591
5432 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
5433 output_operand_lossage message.
88b97037 5434
3c3279fb
RE
54352013-03-11 Richard Earnshaw <rearnsha@arm.com>
5436
5437 PR target/56470
5438 * arm.c (shift_op): Validate RTL pattern on the fly.
5439 (arm_print_operand, case 'S'): Don't use shift_operator to validate
5440 the RTL.
5441
aef5ef9d
JDA
54422013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5443
5444 PR target/56347
5445 * config/pa/pa.md (call_value): Check for calls to powf and direct to
5446 new call patterns that clobber %fr12.
5447 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
5448 split and postreload patterns.
5449 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
5450 registers %fr12 and %fr12R as call used.
5451
456610d3
SB
54522013-03-09 Steven Bosscher <steven@gcc.gnu.org>
5453
5454 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
5455 (canon_address, record_store, replace_read, check_mem_read_rtx,
5456 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
5457 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
5458 rest_of_handle_dse): Likewise.
5459
4b1baac8
RS
54602013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
5461
5462 PR middle-end/56524
5463 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
5464 Add base_optabs.
5465 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
5466 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
5467 (save_optabs_if_changed): Replace with...
5468 (init_tree_optimization_optabs): ...this.
5469 * optabs.c (save_optabs_if_changed): Rename to...
5470 (init_tree_optimization_optabs): ...this. Take the optimization node
5471 as argument. Do nothing if the base optabs are already correct.
5472 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
5473 to recompute optabs.
5474 * function.h (function): Remove optabs field.
5475 * function.c (invoke_set_current_function_hook): Call
5476 init_tree_optimization_optabs. Use the result to initialize
5477 this_fn_optabs.
5478
b7a78683
AH
54792013-02-27 Aldy Hernandez <aldyh@redhat.com>
5480
5481 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
5482 if GTMA_HAS_NO_INSTRUMENTATION.
5483 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
5484 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
5485 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
5486 * gimple-pretty-print.c (dump_gimple_transaction): Handle
5487 GTMA_HAS_NO_INSTRUMENTATION.
5488
6384c29b
JJ
54892013-03-08 Jakub Jelinek <jakub@redhat.com>
5490
5491 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
5492 libasan_preinit.o.
5493
ecd4f20a
MP
54942013-03-08 Marek Polacek <polacek@redhat.com>
5495 Jakub Jelinek <jakub@redhat.com>
5496
5497 PR tree-optimization/56478
5498 * predict.c (is_comparison_with_loop_invariant_p): Change the
5499 type of loop_step to tree.
5500 (predict_loops): Adjust.
5501 (predict_iv_comparison): Perform the computations on double_ints.
5502
64366d35
RB
55032013-03-08 Richard Biener <rguenther@suse.de>
5504
5505 PR tree-optimization/56570
5506 * tree-cfg.c (verify_expr_location_1): Verify locations for
5507 DECL_DEBUG_EXPR.
5508 * tree-sra.c (create_access_replacement): Strip locations
5509 from DECL_DEBUG_EXPRs.
5510
a9d5a059
RB
55112013-03-08 Richard Biener <rguenther@suse.de>
5512
5513 * tree-inline.c (expand_call_inline): Do not associate
5514 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
5515 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
5516
b7aa4e9a
RB
55172013-03-08 Richard Biener <rguenther@suse.de>
5518
5519 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
5520 or block changes with -Og. Fix for location / block encoding
5521 changes and PHI arguments with locations.
5522
c4c2f9fa
SB
55232013-03-07 Steven Bosscher <steven@gcc.gnu.org>
5524
5525 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
5526 for all counters.
5527 (struct output_info): Likewise.
5528 (register_overhead): Remove bad gcc_assert.
5529 (bitmap_find_bit): If there is only a single bitmap element, do not
5530 count a miss as a search.
5531 (print_statistics): Update for counter type changes.
5532 (dump_bitmap_statistics): Likewise. Print headers such that they
5533 are properly lined up with the printed counters.
5534
5bf6606a
JJ
55352013-03-07 Jakub Jelinek <jakub@redhat.com>
5536
5537 PR tree-optimization/56559
5538 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
5539 check that it has only a single use.
5540
2c653d46
RB
55412013-03-07 Richard Biener <rguenther@suse.de>
5542
5543 * doc/invoke.texi (fwhole-program): Discourage use in combination
5544 with -flto.
5545
a72d8780
JJ
55462013-03-06 Jakub Jelinek <jakub@redhat.com>
5547
01a454df
JJ
5548 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
5549
c1781047
JJ
5550 PR tree-optimization/56539
5551 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
5552 instead of GSI_CONTINUE_LINKING as last argument to
5553 force_gimple_operand_gsi. Adjust function comment.
5554
9772c47a
JJ
5555 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
5556 aarch64-cores.def.
5557
a72d8780
JJ
5558 PR middle-end/56548
5559 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
5560 promoted mode, convert the result back to the original mode.
5561
fa5556de
RB
55622013-03-06 Richard Biener <rguenther@suse.de>
5563
5564 PR middle-end/56294
5565 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
5566 (insert_updated_phi_nodes_compare_uids): New function.
5567 (update_ssa): Sort symbols_to_rename after UID before
5568 traversing it to insert PHI nodes.
5569
010403d1
RB
55702013-03-06 Richard Biener <rguenther@suse.de>
5571
5572 PR middle-end/50494
5573 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
5574 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
5575
5576 Revert
5577 2013-02-13 Richard Biener <rguenther@suse.de>
5578
5579 PR lto/50494
5580 * varasm.c (output_constant_def_1): Get the decl representing
5581 the constant as argument.
5582 (output_constant_def): Wrap output_constant_def_1.
5583 (make_decl_rtl): Use output_constant_def_1 with the decl
5584 representing the constant.
5585 (build_constant_desc): Optionally re-use a decl already
5586 representing the constant.
5587 (tree_output_constant_def): Adjust.
5588
3c27ce4c
JY
55892013-03-06 Joey Ye <joey.ye@arm.com>
5590
5591 PR lto/50293
5592 * gcc.c (convert_white_space): New function.
5593 (main): Handles white space in function name.
5594
8f6d1c86
OE
55952013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
5596
5597 PR target/56529
5598 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
5599 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
5600 to SH_DIV_CALL_TABLE for TARGET_SH2.
5601 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
5602 list.
5603 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
5604 call-table options.
5605
798a209f
SA
56062013-03-05 Sterling Augustine <saugustine@google.com>
5607 Cary Coutant <ccoutant@google.com>
5608
5609 PR debug/55364
5610 * dwarf2out.c (resolve_addr): Don't call
5611 remove_loc_list_addr_table_entries a second time for the same
5612 expression.
5613
6cfa417f 56142013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 5615
6cfa417f
JJ
5616 PR debug/56510
5617 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
5618 (avoid_complex_debug_insns): New function.
5619 (expand_debug_locations): Call it.
5620
5621 PR rtl-optimization/56484
5622 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
5623 lifetimes of hard registers on small register class machines.
5624
56252013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
5626
5627 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 5628 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 5629 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
5630 fast_interrupt.
5631 (microblaze_fast_interrupt_function_p): New function.
5632 (microblaze_is_interrupt_handler): Rename to
5633 microblaze_is_interrupt_variant and add fast_interrupt check.
5634 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
5635 (save_restore_insns): Likewise.
5636 (compute_frame_size): Likewise.
5637 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
5638 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
5639 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
5640 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
5641 microblaze_is_interrupt_variant.
5642
731aefac
KT
56432013-03-05 Kai Tietz <ktietz@redhat.com>
5644
5645 * sdbout.c (sdbout_one_type): Switch to current function's section
5646 supporting cold/hot.
5647
a72d8780 56482013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
5649
5650 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
5651 -mxl-reorder.
5652
334e71e8
JJ
56532013-03-05 Jakub Jelinek <jakub@redhat.com>
5654
0b50e654
JJ
5655 PR middle-end/56461
5656 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
5657 if VALGRIND_GET_VBITS is defined, temporarily make object
5658 memory all defined, and restore previous valgrind addressability
5659 and definability afterwards. Free this_object at the end.
5660
4ccf8f43
JJ
5661 PR middle-end/56461
5662 * lra.c (lra): Call lra_clear_live_ranges if live_p,
5663 right before calling lra_create_live_ranges, also call it
5664 when clearing live_p. Only call lra_clear_live_ranges
5665 at the end if live_p.
5666
334e71e8
JJ
5667 PR middle-end/56461
5668 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
5669
9ca966ca
RB
56702013-03-05 Richard Biener <rguenther@suse.de>
5671
5672 PR tree-optimization/56521
5673 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
5674 value-id.
5675
d273b176
SB
56762013-03-05 Steven Bosscher <steven@gcc.gnu.org>
5677
5678 PR c++/55135
5679 * except.h (remove_unreachable_eh_regions): New prototype.
5680 * except.c (remove_eh_handler_splicer): New function, split out
5681 of remove_eh_handler.
5682 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
5683 warning about running it on many EH regions one at a time.
5684 (remove_unreachable_eh_regions_worker): New function, walk the
5685 EH tree in depth-first order and remove non-marked regions.
5686 (remove_unreachable_eh_regions): New function.
5687 * tree-eh.c (mark_reachable_handlers): New function, split out
5688 from remove_unreachable_handlers.
5689 (remove_unreachable_handlers): Use mark_reachable_handlers and
5690 remove_unreachable_eh_regions.
5691 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
5692 and remove_unreachable_eh_regions.
5693
5e7f1aef
RB
56942013-03-05 Richard Biener <rguenther@suse.de>
5695
5696 PR middle-end/56525
5697 * loop-init.c (fix_loop_structure): Remove loops in two stages,
5698 not freeing them until the end.
5699
f276b762
AK
57002013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5701
5702 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
5703
12a43ab8
RB
57042013-03-05 Richard Biener <rguenther@suse.de>
5705
5706 PR tree-optimization/56270
5707 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
5708 of loads after scheduling an SLP instance.
5709
93675444
JJ
57102013-03-05 Jakub Jelinek <jakub@redhat.com>
5711
db4138e3
JJ
5712 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
5713 tic6x.exp.
5714 (check_gcc_parallelize): Run guality.exp as a separate job from
5715 vect.exp with unsorted.exp and $(dg_target_exps) separately from
5716 struct-layout-1.exp with stackalign.exp.
5717
dd3d1ec0
JJ
5718 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
5719
b8d381a3
JJ
5720 PR middle-end/56461
5721 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
5722 load_index sbitmap even if some bit in it isn't set.
5723
b4f9786b
JJ
5724 PR middle-end/56461
5725 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
5726 (discover_iteration_bound_by_body_walk): Change queues to
5727 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
5728 spelling in comment. Call safe_push on queues[bound_index] directly.
5729 Release queues[queue_index] in every iteration unconditionally.
5730 Release bounds vector.
5731
93675444
JJ
5732 PR middle-end/56461
5733 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
5734 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
5735 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
5736 inner_phis vector.
5737
3e492e9c
RB
57382013-03-05 Richard Biener <rguenther@suse.de>
5739
5740 PR lto/56515
5741 * tree-inline.c (remap_blocks_to_null): New function.
5742 (expand_call_inline): When expanding a call stmt without
5743 an associated block inline remap all callee blocks to NULL.
5744
a5d1569a
JJ
57452013-03-05 Jakub Jelinek <jakub@redhat.com>
5746
86efb5cd
JJ
5747 PR rtl-optimization/56494
5748 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
5749 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
5750 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
5751
85f5dbea
JJ
5752 PR middle-end/56461
5753 * sel-sched-ir.c (free_sched_pools): Release
5754 succs_info_pool.stack[succs_info_pool.max_top] vectors too
5755 if succs_info_pool.max_top isn't -1.
5756
a5d1569a
JJ
5757 PR bootstrap/56509
5758 * opts.c (opts_obstack, opts_concat): Moved to...
5759 * opts-common.c (opts_obstack, opts_concat): ... here.
5760
4432aa6c
JJ
57612013-03-04 Jakub Jelinek <jakub@redhat.com>
5762
5763 PR middle-end/56461
5764 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
5765
f3a1fb91
MJ
57662013-03-04 Martin Jambor <mjambor@suse.cz>
5767
5768 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
5769 all appropriate places.
5770
22110e6c
EB
57712013-01-04 Eric Botcazou <ebotcazou@adacore.com>
5772
5773 PR tree-optimization/56424
5774 * ipa-split.c (split_function): Do not set the RSO flag if result is
5775 not by reference and its type is a register type.
5776
a72d8780 57772013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 5778
88b97037 5779 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 5780 (microblaze_legitimate_pic_operand): Likewise
88b97037 5781 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
5782 new function microblaze_legitimate_pic_operand
5783 * config/microblaze/microblaze-protos.h
5784 (microblaze_legitimate_pic_operand): Declare.
5785
a72d8780 57862013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 5787
a72d8780 5788 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 5789 New predicate for supported rtx code types.
a72d8780 5790 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
5791 call_insn_simple_operand predicate.
5792
541d9ac8
JJ
57932013-03-04 Jakub Jelinek <jakub@redhat.com>
5794
5eb010bc
JJ
5795 PR middle-end/56461
5796 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
5797 partitions.ordered_remove.
5798
30862efc
JJ
5799 PR middle-end/56461
5800 * tree-vect-stmts.c (vectorizable_conversion): Don't call
5801 vec_oprnds0.create (1) for modifier == NONE.
5802
8930f723
JJ
5803 PR middle-end/56461
5804 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
5805 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
5806 vec_oprnds1 right before pushing anything to it for
5807 scalar_shift_arg.
5808
541d9ac8
JJ
5809 PR middle-end/56461
5810 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
5811 set nbbs to 0 instead of having separate code path.
5812 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
5813 instead of false as last argument if returning NULL.
5814
7aa7f2e3
SL
58152013-03-03 Sandra Loosemore <sandra@codesourcery.com>
5816
5817 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
5818 the attribute is now called "target" instead of "option".
5819 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
5820 * doc/tm.texi.in (Target Attributes): Likewise document the correct
5821 attribute/pragma name for TARGET_OPTION_VALID_P and
5822 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
5823 * doc/tm.texi: Regenerated.
5824
8930f723 58252013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 5826
8930f723 5827 * config/microblaze/microblaze.c:
cb8a1637 5828 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
5829 * config/microblaze/microblaze.h: Add -mxl-reorder to
5830 DRIVER_SELF_SPECS.
5831 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
5832 instructions emitted if TARGET_REORDER.
88b97037
UB
5833 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
5834 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 5835 separately.
cb8a1637 5836
4dc1d68c
XDL
58372013-03-01 Xinliang David Li <davidxl@google.com>
5838
5839 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
5840 walk length.
5841
689eaba3
JJ
58422013-03-01 Jakub Jelinek <jakub@redhat.com>
5843
9d676bf6
JJ
5844 PR middle-end/56461
5845 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
5846 vector even when returning true. Fix up function comment formatting.
5847
caff7edf
JJ
5848 PR middle-end/56461
5849 * ira-build.c (ira_loop_nodes_count): New variable.
5850 (create_loop_tree_nodes): Initialize it.
5851 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
5852
b6b9227d
JJ
5853 PR middle-end/56461
5854 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
5855 method on dr_chain and result_chain.
5856 * tree-vect-stmts.c (vectorizable_store): Only call
5857 result_chain.create if j == 0.
5858
689eaba3
JJ
5859 PR middle-end/56461
5860 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
5861 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
5862 before overwriting it.
5863
40bf31ed
TB
58642013-03-01 Tobias Burnus <burnus@net-b.de>
5865
5866 * doc/extended.texi (C Extensions): Change order in @menu
5867 to match @node.
5868 (Other MIPS Built-in Functions): Move last MIPS entry before
5869 "picoChip Built-in Functions".
5870 (SH Built-in Functions): Move after RX Built-in Functions.
5871 * doc/gcc.texi (Introduction): Change order in @menu
5872 to match @node.
5873 * doc/md.texi (Constraints): Ditto.
5874 * gty.texi (Type Information): Ditto.
5875 (User-provided marking routines for template types): Make
5876 subsection.
5877 * doc/invoke.texi (AArch64 Options): Move before
5878 "Adapteva Epiphany Options".
5879
e664c61c
KS
58802013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
5881 Jakub Jelinek <jakub@redhat.com>
5882
5883 PR sanitizer/56454
5884 * asan.c (gate_asan): Lookup no_sanitize_address instead of
5885 no_address_safety_analysis attribute.
5886 * doc/extend.texi (no_address_safety_attribute): Rename to
5887 no_sanitize_address attribute, mention no_address_safety_analysis
5888 attribute as deprecated alias.
5889
37b5ec8f
JJ
58902013-02-28 Jakub Jelinek <jakub@redhat.com>
5891
5892 PR middle-end/56461
5893 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
5894 type to vec<vec<tree> > *.
5895 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
5896 to be vec<tree> instead of vec<tree> *, set vec_defs
5897 to vNULL and call vec_defs.create (number_of_vects), adjust other
5898 uses of vec_defs.
5899 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
5900 vectorizable_condition): Adjust vect_get_slp_defs callers.
5901
ba96cdfb
JG
59022013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
5903
5904 * config/aarch64/aarch64.c
5905 (aarch64_float_const_representable): Remove unused variable.
5906
6f549691
JG
59072013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
5908
5909 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
5910
af55e82d
JG
59112013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
5912
5913 * config/aarch64/aarch64-builtins.c
5914 (aarch64_init_simd_builtins): Make static.
5915
1df3f464
JG
59162013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
5917
5918 * config/aarch64/aarch64.c
5919 (aarch64_simd_make_constant): Make static.
5920
f8f42513
MJ
59212013-02-28 Martin Jambor <mjambor@suse.cz>
5922
5923 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
5924 with no initialization to the RHS of debug statements.
5925
b48b3fc4
MJ
59262013-02-28 Martin Jambor <mjambor@suse.cz>
5927
5928 PR tree-optimization/56294
5929 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
5930 Adjust dumping.
5931 (get_access_replacement): Do not call create_access_replacement.
5932 Assert a replacement exists.
5933 (get_repl_default_def_ssa_name): Create the replacement declaration
5934 itself.
5935
c3ae224c
RR
59362013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5937
5938 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
5939 final_end_function.
5940
45fa0eef
MP
59412013-02-28 Marek Polacek <polacek@redhat.com>
5942
5943 PR rtl-optimization/56466
5944 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
5945 if we're changing a loop.
5946 (peel_loops_completely): Likewise.
5947
502c067d
PC
59482013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
5949
5950 PR c++/55813
5951 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
5952
ff24afc8
GJL
59532013-02-28 Georg-Johann Lay <avr@gjlay.de>
5954
5955 PR target/56445
5956 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
5957 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
5958 INTX_FTYPE_FX, FX_FTYPE_INTX.
5959 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
5960
c7b1fc1b
GJL
59612013-02-28 Georg-Johann Lay <avr@gjlay.de>
5962
5963 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
5964 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
5965 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
5966 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
5967 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
5968 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
5969 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
5970 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
5971 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
5972 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
5973 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
5974 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
5975 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
5976 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
5977 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
5978 (avrxmega6): Increase max flash segments from 5 to 6.
5979 * config/avr/t-multilib: Regenerate.
5980 * config/avr/avr-tables.opt: Regenerate.
5981 * doc/avr-mmcu.texi: Regenerate.
5982
4a0e3cfe
GJL
59832013-02-28 Georg-Johann Lay <avr@gjlay.de>
5984
5985 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
5986 (avr_device_to_arch): Rename to avr_device_to_ld.
5987 (avr_device_to_as): New prototype.
5988 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
5989 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
5990 * config/avr/driver-avr.c (avr_device_to_as): New.
5991 (avr_device_to_arch): Rename to avr_device_to_ld.
5992
97785e52
JJ
59932013-02-27 Jakub Jelinek <jakub@redhat.com>
5994
3f292312
JJ
5995 PR middle-end/56461
5996 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
5997 method on dr_chain and result_chain.
5998
a344216b
JJ
5999 PR middle-end/56461
6000 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
6001 pointer_set_destroy on not_executed_last_iteration.
6002
f121ad02 6003 PR middle-end/56461
88b97037 6004 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 6005
307f83a3
JJ
6006 PR middle-end/56461
6007 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
6008 FOR_EACH_DEFINED_FUNCTION when freeing state.
6009
e19624ee
JJ
6010 PR middle-end/56461
6011 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
6012 pool_free.
6013 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
6014 overwriting it.
6015
90e709fd
JJ
6016 PR middle-end/56461
6017 * ipa-cp.c (decide_whether_version_node): Call vec_free on
6018 known_aggs[i].items and release known_aggs vector.
6019
97785e52
JJ
6020 PR middle-end/56461
6021 * ipa-reference.c (propagate): Free node_info even for alias nodes.
6022
60232013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 6024
97785e52
JJ
6025 * config/microblaze/microblaze.c (microblaze_emit_compare):
6026 Use xor for EQ/NE comparisions.
6027 * config/microblaze/microblaze.md (cstoresf4): Add constraints
6028 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 6029
6fa5e0ed
JJ
60302013-02-27 Jakub Jelinek <jakub@redhat.com>
6031
6032 PR middle-end/56461
6033 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
6034 vector.
6035 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
6036 vec_safe_push, always update *slot.
6037 (redirect_edge_var_map_clear): Use vec_free.
6038 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
6039 (free_var_map_entry): Use vec_free.
6040 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
6041 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
6042
436a956a
AB
60432013-02-27 Andrey Belevantsev <abel@ispras.ru>
6044
6045 PR middle-end/45472
436a956a
AB
6046 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
6047 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
6048 Reorder tests for speculativeness in the logical and operator.
6049
f5c2caca
JJ
60502013-02-27 Jakub Jelinek <jakub@redhat.com>
6051
0fcb564b
JJ
6052 * incpath.c (add_standard_paths): Use reconcat instead of concat
6053 where appropriate and avoid leaking memory.
6054
dc357798
JJ
6055 * opts.h: Include obstack.h.
6056 (opts_concat): New prototype.
6057 (opts_obstack): New declaration.
6058 * opts.c (opts_concat): New function.
6059 (opts_obstack): New variable.
6060 (init_options_struct): Call gcc_init_obstack on opts_obstack.
6061 (finish_options): Use opts_concat instead of concat
6062 and XOBNEWVEC instead of XNEWVEC.
6063 * opts-common.c (generate_canonical_option, decode_cmdline_option,
6064 generate_option): Likewise.
6065 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
6066 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
6067
f5c2caca
JJ
6068 PR target/56455
6069 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
6070 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
6071
d0163673
JJ
60722013-02-26 Jakub Jelinek <jakub@redhat.com>
6073
6074 PR middle-end/56461
6075 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
6076
b5ad2b8e
JR
60772013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
6078
6079 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
6080 (arm_block_move_unaligned_straight): Likewise.
6081 (arm_adjust_block_mem): Likewise.
6082
9b639e2c
JR
60832013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
6084
6085 PR target/48901
6086 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
6087 temp, cond and label.
6088 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
6089
e13a0ccb
JR
6090 PR target/52500
6091 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
6092 * config/c6x/c6x.h (dbx_register_map): Update declaration.
6093
fbe4f171
JR
6094 PR target/52501
6095 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
6096 of prologue/epilogue functions.
6097
ae006543
JR
6098 PR target/52550
6099 * config/tilegx/tilegx.c (tilegx_expand_prologue):
6100 Remove unused variable cfa_offset.
6101 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
6102
c81369fa
JR
6103 PR target/54639
6104 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
6105 type promotion to unsigned.
6106
f8a8fea7
JR
6107 PR target/54640
6108 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
6109 for HOST_WIDE_INT of 32 bit / same size as int.
6110 (arm_block_move_unaligned_straight): Likewise.
6111 (arm_adjust_block_mem): Likewise.
6112
f8be5169
JR
6113 PR target/54662
6114 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
6115 ALL_CFLAGS.
6116
f1ad3354
MP
61172013-02-26 Marek Polacek <polacek@redhat.com>
6118
6119 PR tree-optimization/56426
88b97037 6120 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 6121
a6af0f42
RB
61222013-02-26 Richard Biener <rguenther@suse.de>
6123
6124 PR target/56444
6125 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
6126 unused variable loops.
6127
aca43c6c
JJ
61282013-02-26 Jakub Jelinek <jakub@redhat.com>
6129
cecbe5d9
JJ
6130 PR tree-optimization/56448
6131 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
6132 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
6133 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
6134 later operands of the references, or even first operand for
6135 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
6136
aca43c6c
JJ
6137 PR tree-optimization/56443
6138 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
6139 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
6140 to type_for_mode langhook.
6141
53e2e141
MT
61422013-02-25 Matt Turner <mattst88@gmail.com>
6143
6144 * doc/invoke.texi: Document r4700.
6145
259ee451
RB
61462013-02-25 Richard Biener <rguenther@suse.de>
6147
6148 PR tree-optimization/56175
6149 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
6150 split out from ...
6151 (simplify_bitwise_binary): ... here. Also guard the conversion
6152 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
6153
6d65e8f1
CM
61542013-02-25 Catherine Moore <clm@codesourcery.com>
6155
6156 Revert:
6157 2013-02-24 Catherine Moore <clm@codesourcery.com>
6158 Maciej W. Rozycki <macro@codesourcery.com>
6159 Tom de Vries <tom@codesourcery.com>
a72d8780 6160 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
6161 Iain Sandoe <iain@codesourcery.com>
6162 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 6163 Chao-ying Fu <fu@mips.com>
88b97037 6164
6d65e8f1 6165 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 6166 Document new function attributes.
6d65e8f1
CM
6167 * doc/invoke.texi (minterlink-compressed, mmicromips,
6168 m14k, m14ke, m14kec): Document new options.
6169 (minterlink-mips16): Update documentation.
6170 * doc/md.texi (ZC, ZD): Document new constraints.
6171 * configure.ac (gcc_cv_as_micromips): Check if linker
6172 supports the .set micromips directive.
6173 * configure: Regenerate.
6174 * config.in: Regenerate.
6175 * config/mips/mips-tables.opt: Regenerate.
6176 * config/mips/micromips.md: New file.
6177 * constraints.md (ZC, AD): New constraints.
6178 * config/mips/predicates.md (movep_src_register): New predicate.
6179 (movep_src_operand): New predicate.
6180 (non_volatile_mem_operand): New predicate.
6181 * config/mips/mips.md (multimem): New type.
6182 (length): Differentiate between 17-bit and 18-bit branch offsets.
6183 (MOVEP1, MOVEP2): New mode iterator.
6184 (mov_<load>l): Use ZC constraint.
6185 (mov_<load>r): Likewise.
6186 (mov_<store>l): Likewise.
6187 (mov_<store>r): Likewise.
6188 (*branch_equality<mode>_inverted): Add microMIPS support.
6189 (*branch_equality<mode>): Likewise.
6190 (*jump_absolute): Likewise.
6191 (indirect_jump_<mode>): Likewise.
6192 (tablejump_<mode>): Likewise.
6193 (<optab>_internal): Likewise.
6194 (sibcall_internal): Likewise.
6195 (sibcall_value_internal): Likewise.
6196 (prefetch): Use constraint ZD.
6197 * config/mips/mips.opt (minterlink-compressed): New option.
6198 (minterlink-mips16): Now an alias for minterlink-compressed.
6199 (mmicromips): New option.
6200 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
6201 (compare_and_swap_12): Likewise.
6202 (sync_add<mode>): Likewise.
6203 (sync_<optab>_12): Likewise.
6204 (sync_old_<optab>_12): Likewise.
6205 (sync_new_<optab>_12): Likewise.
6206 (sync_nand_12): Likewise.
6207 (sync_old_nand_12): Likewise.
6208 (sync_new_nand_12): Likewise.
6209 (sync_sub<mode>): Likewise.
6210 (sync_old_add<mode>): Likewise.
6211 (sync_old_sub<mode>): Likewise.
6212 (sync_new_add<mode>): Likewise.
6213 (sync_new_sub<mode>): Likewise.
6214 (sync_<optab><mode>): Likewise.
6215 (sync_old_<optab><mode>): Likewise.
6216 (sync_new_<optab><mode>): Likewise.
6217 (sync_nand<mode>): Likewise.
6218 (sync_old_nand<mode>): Likewise.
6219 (sync_new_nand<mode>): Likewise.
6220 (sync_lock_test_and_set<mode>): Likewise.
6221 (test_and_set_12): Likewise.
6222 (atomic_compare_and_swap<mode>): Likewise.
6223 (atomic_exchange<mode>_llsc): Likewise.
6224 (atomic_fetch_add<mode>_llsc): Likewise.
6225 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
6226 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
6227 (umips_save_restore_pattern_p): Likewise.
6228 (umips_load_store_pair_p): Likewise.
6229 (umips_output_load_store_pair): Likewise.
6230 (umips_movep_target_p): Likewise.
6231 (umips_12bit_offset_address_p): Likewise.
6232 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
6233 (mips_base_mips16): Rename this...
6234 (mips_base_compression_flags): ...to this. Update all uses.
6235 (mips_attribute_table): Add micromips, nomicromips and nocompression.
6236 (mips_mips16_decl_p): Delete.
6237 (mips_nomips16_decl_p): Delete.
6238 (mips_get_compress_on_flags): New function.
6239 (mips_get_compress_off_flags): New function.
6240 (mips_get_compress_mode): New function.
6241 (mips_get_compress_on_name): New function.
6242 (mips_get_compress_off_name): New function.
6243 (mips_insert_attributes): Support multiple compression types.
6244 (mips_merge_decl_attributes): Likewise.
6245 (umips_12bit_offset_address_p): New function.
6246 (mips_start_function_definition): Emit .set micromips directive.
6247 (mips_call_may_need_jalx_p): New function.
6248 (mips_function_ok_for_sibcall): Add microMIPS support.
6249 (mips_print_operand_punctuation): Support short delay slots and
6250 compact jumps.
6251 (umips_swm_mask, umips_swm_encoding): New.
6252 (umips_build_save_restore): New function.
6253 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
6254 (was_mips16_p): Remove.
6255 (old_compression_mode): New.
6256 (mips_set_compression_mode): New function.
6257 (mips_set_current_function): Add microMIPS support.
6258 (mips_option_override): Likewise.
6259 (umips_save_restore_pattern_p): New function.
6260 (umips_output_save_restore): New function.
6261 (umips_load_store_pair_p_1): New function.
6262 (umips_load_store_pair_p): New function.
6263 (umips_output_load_store_pair_1): New function.
6264 (umips_output_load_store_pair): New function.
6265 (umips_movep_target_p) New function.
6266 (mips_prepare_pch_save): Add microMIPS support.
6267 * config/mips/mips.h (TARGET_COMPRESSION): New.
6268 (TARGET_CPU_CPP_BUILTINS): Update macro
6269 to use new compression flags and to support microMIPS.
6270 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
6271 (MIPS_ARCH_FLOAT_SPEC): Likewise.
6272 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
6273 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
6274 (ASM_SPEC): Support mmicromips and mno-micromips.
6275 (M16STORE_REG_P): New macro.
6276 (MIPS_CALL): Support TARGET_MICROMIPS.
6277 (MICROMIPS_J): New macro.
6278 (mips_base_mips16): Rename this...
6279 (mips_base_compression_flags): ...to this.
6280 (UMIPS_12BIT_OFFSET_P): New macro.
6281 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
6282 (MULTILIB_DIRNAMES): Likewise.
6283
5e5df392
TV
62842013-02-25 Tom de Vries <tom@codesourcery.com>
6285
6286 PR rtl-optimization/56131
6287 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
6288 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
6289 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
6290
3fdb53c1
TB
62912013-02-25 Tobias Burnus <burnus@net-b.de>
6292
6293 * doc/invoke.texi (-fsanitize=): Move from optimization
6294 to debugging options.
6295
ed358aea
AB
62962013-02-25 Andrey Belevantsev <abel@ispras.ru>
6297
6298 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
6299
f45e9053
AB
63002013-02-25 Andrey Belevantsev <abel@ispras.ru>
6301 Alexander Monakov <amonakov@ispras.ru>
6302
6303 PR middle-end/56077
6304 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
6305 flush pending lists also on non-jumps. Adjust comment.
6306
6941b508
CM
63072013-02-24 Catherine Moore <clm@codesourcery.com>
6308 Maciej W. Rozycki <macro@codesourcery.com>
6309 Tom de Vries <tom@codesourcery.com>
a72d8780 6310 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
6311 Iain Sandoe <iain@codesourcery.com>
6312 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 6313 Chao-ying Fu <fu@mips.com>
6941b508
CM
6314
6315 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 6316 Document new function attributes.
6941b508
CM
6317 * doc/invoke.texi (minterlink-compressed, mmicromips,
6318 m14k, m14ke, m14kec): Document new options.
6319 (minterlink-mips16): Update documentation.
6320 * doc/md.texi (ZC, ZD): Document new constraints.
6321 * configure.ac (gcc_cv_as_micromips): Check if linker
6322 supports the .set micromips directive.
6323 * configure: Regenerate.
6324 * config.in: Regenerate.
6325 * config/mips/mips-tables.opt: Regenerate.
6326 * config/mips/micromips.md: New file.
6327 * constraints.md (ZC, AD): New constraints.
6328 * config/mips/predicates.md (movep_src_register): New predicate.
6329 (movep_src_operand): New predicate.
6330 (non_volatile_mem_operand): New predicate.
6331 * config/mips/mips.md (multimem): New type.
6332 (length): Differentiate between 17-bit and 18-bit branch offsets.
6333 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 6334 (mov_<load>l): Use ZC constraint.
6941b508
CM
6335 (mov_<load>r): Likewise.
6336 (mov_<store>l): Likewise.
6337 (mov_<store>r): Likewise.
6338 (*branch_equality<mode>_inverted): Add microMIPS support.
6339 (*branch_equality<mode>): Likewise.
6340 (*jump_absolute): Likewise.
6341 (indirect_jump_<mode>): Likewise.
6342 (tablejump_<mode>): Likewise.
6343 (<optab>_internal): Likewise.
6344 (sibcall_internal): Likewise.
6345 (sibcall_value_internal): Likewise.
6346 (prefetch): Use constraint ZD.
6347 * config/mips/mips.opt (minterlink-compressed): New option.
6348 (minterlink-mips16): Now an alias for minterlink-compressed.
6349 (mmicromips): New option.
6350 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
6351 (compare_and_swap_12): Likewise.
6352 (sync_add<mode>): Likewise.
6353 (sync_<optab>_12): Likewise.
6354 (sync_old_<optab>_12): Likewise.
6355 (sync_new_<optab>_12): Likewise.
6356 (sync_nand_12): Likewise.
6357 (sync_old_nand_12): Likewise.
6358 (sync_new_nand_12): Likewise.
6359 (sync_sub<mode>): Likewise.
6360 (sync_old_add<mode>): Likewise.
6361 (sync_old_sub<mode>): Likewise.
6362 (sync_new_add<mode>): Likewise.
6363 (sync_new_sub<mode>): Likewise.
6364 (sync_<optab><mode>): Likewise.
6365 (sync_old_<optab><mode>): Likewise.
6366 (sync_new_<optab><mode>): Likewise.
6367 (sync_nand<mode>): Likewise.
6368 (sync_old_nand<mode>): Likewise.
6369 (sync_new_nand<mode>): Likewise.
6370 (sync_lock_test_and_set<mode>): Likewise.
6371 (test_and_set_12): Likewise.
6372 (atomic_compare_and_swap<mode>): Likewise.
6373 (atomic_exchange<mode>_llsc): Likewise.
6374 (atomic_fetch_add<mode>_llsc): Likewise.
6375 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
6376 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
6377 (umips_save_restore_pattern_p): Likewise.
6378 (umips_load_store_pair_p): Likewise.
6379 (umips_output_load_store_pair): Likewise.
6380 (umips_movep_target_p): Likewise.
6381 (umips_12bit_offset_address_p): Likewise.
6382 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
6383 (mips_base_mips16): Rename this...
6384 (mips_base_compression_flags): ...to this. Update all uses.
6385 (mips_attribute_table): Add micromips, nomicromips and nocompression.
6386 (mips_mips16_decl_p): Delete.
6387 (mips_nomips16_decl_p): Delete.
3fdb53c1 6388 (mips_get_compress_on_flags): New function.
6941b508
CM
6389 (mips_get_compress_off_flags): New function.
6390 (mips_get_compress_mode): New function.
6391 (mips_get_compress_on_name): New function.
6392 (mips_get_compress_off_name): New function.
6393 (mips_insert_attributes): Support multiple compression types.
6394 (mips_merge_decl_attributes): Likewise.
6395 (umips_12bit_offset_address_p): New function.
6396 (mips_start_function_definition): Emit .set micromips directive.
6397 (mips_call_may_need_jalx_p): New function.
6398 (mips_function_ok_for_sibcall): Add microMIPS support.
6399 (mips_print_operand_punctuation): Support short delay slots and
6400 compact jumps.
6401 (umips_swm_mask, umips_swm_encoding): New.
6402 (umips_build_save_restore): New function.
6403 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
6404 (was_mips16_p): Remove.
6405 (old_compression_mode): New.
6406 (mips_set_compression_mode): New function.
6407 (mips_set_current_function): Add microMIPS support.
6408 (mips_option_override): Likewise.
6409 (umips_save_restore_pattern_p): New function.
6410 (umips_output_save_restore): New function.
6411 (umips_load_store_pair_p_1): New function.
6412 (umips_load_store_pair_p): New function.
6413 (umips_output_load_store_pair_1): New function.
6414 (umips_output_load_store_pair): New function.
6415 (umips_movep_target_p) New function.
6416 (mips_prepare_pch_save): Add microMIPS support.
6417 * config/mips/mips.h (TARGET_COMPRESSION): New.
6418 (TARGET_CPU_CPP_BUILTINS): Update macro
6419 to use new compression flags and to support microMIPS.
6420 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
6421 (MIPS_ARCH_FLOAT_SPEC): Likewise.
6422 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
6423 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
6424 (ASM_SPEC): Support mmicromips and mno-micromips.
6425 (M16STORE_REG_P): New macro.
6426 (MIPS_CALL): Support TARGET_MICROMIPS.
6427 (MICROMIPS_J): New macro.
6428 (mips_base_mips16): Rename this...
6429 (mips_base_compression_flags): ...to this.
6430 (UMIPS_12BIT_OFFSET_P): New macro.
6431 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
6432 (MULTILIB_DIRNAMES): Likewise.
6433
cdebbc6d
JJ
64342013-02-24 Jakub Jelinek <jakub@redhat.com>
6435
6436 PR target/52555
6437 * target-globals.c (save_target_globals): For init_reg_sets and
6438 target_reinit remporarily set this_fn_optabs to this_target_optabs.
6439
18c63565
JG
64402013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
6441
6442 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
6443 * config/aarch64/t-aarch64
6444 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
6445
2194f7a2
VM
64462013-02-22 Vladimir Makarov <vmakarov@redhat.com>
6447
6448 PR inline-asm/56148
6449 * lra-constraints.c (process_alt_operands): Reload operand
6450 conflicting with earlier clobber only if no more other conflicting
6451 operands.
6452
7d613735
JJ
64532013-02-22 Jakub Jelinek <jakub@redhat.com>
6454
6455 PR sanitizer/56393
6456 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
6457 if not linking a shared library.
6458
ac8d93a7
SL
64592013-02-22 Seth LaForge <sethml@google.com>
6460
6461 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
6462
e0237780
GY
64632013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
6464
3fdb53c1
TB
6465 * config/arm/arm.md (split for extendsidi): Update condition.
6466 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
6467 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
6468 (qhs_zextenddi_cstr): Likewise.
e0237780 6469
d7fde18c
JJ
64702013-02-21 Jakub Jelinek <jakub@redhat.com>
6471
be63b77d
JJ
6472 PR middle-end/56420
6473 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
6474 avoid signed wrapping.
6475 (expand_mult): Handle properly multiplication by
6476 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
6477 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
6478 in the compiler if coeff is HOST_WIDE_INT_MIN.
6479 (expand_divmod): Don't make ext_op1 static, change it's type to
6480 uhwi. Avoid undefined behavior in -INTVAL (op1).
6481
d7fde18c
JJ
6482 PR rtl-optimization/50339
6483 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
6484 field.
6485 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
6486 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
6487 into splitting_ashiftrt field.
6488 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
6489 ASHIFTRT.
6490 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
6491 choices.
6492
6aad4455
AH
64932013-02-20 Aldy Hernandez <aldyh@redhat.com>
6494
6495 PR middle-end/56108
6496 * trans-mem.c (execute_tm_mark): Do not expand transactions that
6497 are sure to go irrevocable.
6498
38fe784d
HPN
64992013-02-21 Hans-Peter Nilsson <hp@axis.com>
6500
6501 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
6502 scalars are valid operands.
6503
0fd44da3
MJ
65042013-02-21 Martin Jambor <mjambor@suse.cz>
6505
6506 PR tree-optimization/56310
6507 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
6508 only matching indices and non-negative final offsets.
6509 (intersect_aggregates_with_edge): Pass src_idx to
6510 agg_replacements_to_vector. Pass src_idx insstead of index to
6511 intersect_with_agg_replacements.
6512
7a92038b
MJ
65132013-02-21 Martin Jambor <mjambor@suse.cz>
6514
6515 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
6516 instead of hard-wired defaults.
6517
c0da9c37
MR
65182013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
6519
6520 * doc/invoke.texi (MIPS Options): Update documentation of the
6521 floating-point multiply-accumulate instruction restrictions.
6522
d247ea0c 65232013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
6524
6525 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
6526 asan_shadow_offset on x86_64 linux.
6527
22deefcb
RB
65282013-02-21 Richard Biener <rguenther@suse.de>
6529
6530 PR tree-optimization/56415
6531 Revert
6532 2013-02-11 Richard Biener <rguenther@suse.de>
6533
6534 PR tree-optimization/56273
6535 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
6536 first VRP run.
6537
7bcc6e75
JJ
65382013-02-21 Jakub Jelinek <jakub@redhat.com>
6539
a0ad148f
JJ
6540 PR bootstrap/56258
6541 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
6542 instead of @itemx.
6543
7bcc6e75
JJ
6544 PR inline-asm/56405
6545 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
6546 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
6547
a0a7b611
JH
65482013-02-20 Jan Hubicka <jh@suse.cz>
6549
6550 PR tree-optimization/56265
88b97037
UB
6551 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
6552 when target is referenced for first time.
a0a7b611 6553
c0e50f72
RB
65542013-02-20 Richard Biener <rguenther@suse.de>
6555
6556 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
6557 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
6558 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
6559 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
6560 not return anything.
6561 (rename_ssa_copies): Do not remove unused locals.
6562 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 6563 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
6564 * passes.c (execute_function_todo): Do not schedule unused locals
6565 removal if cleanup_tree_cfg did something.
6566 * tree-ssa-live.c (remove_unused_locals): Dump statistics
6567 about the number of removed locals.
6568
a52ca739
RB
65692013-02-20 Richard Biener <rguenther@suse.de>
6570
6571 PR tree-optimization/56398
88b97037 6572 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 6573
ec9c9d1b
MJ
65742013-02-20 Martin Jambor <mjambor@suse.cz>
6575
6576 PR tree-optimization/55334
6577 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
6578 restricted pointers to arrays.
6579
e91c8ed6 65802013-02-20 Richard Biener <rguenther@suse.de>
88b97037 6581 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
6582
6583 PR tree-optimization/56396
6584 * tree-ssa-ccp.c (n_const_val): New static variable.
6585 (get_value): Return NULL for SSA names we don't have a lattice
6586 entry for.
6587 (ccp_initialize): Initialize n_const_val.
6588 * tree-ssa-copy.c (n_copy_of): New static variable.
6589 (init_copy_prop): Initialize n_copy_of.
6590 (get_value): Return NULL_TREE for SSA names we don't have a
6591 lattice entry for.
6592
3d916479
MJ
65932013-02-20 Martin Jambor <mjambor@suse.cz>
6594
6595 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
6596
71a86758
RB
65972013-02-20 Richard Biener <rguenther@suse.de>
6598
6599 * genpreds.c (write_lookup_constraint): Do not compare first
6600 letter of the constraint again.
6601
79836a12
RB
66022013-02-20 Richard Biener <rguenther@suse.de>
6603
6604 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
6605 and ceil_log2.
6606 (get_use_iv_cost): Terminate hashtable walk when coming across
6607 an empty entry.
6608
bbe4fb2c
IZ
66092013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
6610
6611 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
6612 reassociation for avx2 targets.
6613
a72d8780 66142012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 6615
c77f83d5
EI
6616 * config/microblaze/microblaze.c: microblaze_has_clz = 0
6617 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 6618 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
6619 version and TARGET_PATTERN_COMPARE check
6620 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 6621
a72d8780 66222012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 6623
a72d8780 6624 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
6625 function before branching.
6626
242387fa
AB
66272012-02-19 Andrey Belevantsev <abel@ispras.ru>
6628
6629 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
6630 DUMP_INSN_RTX_UID.
6631 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
6632
b4979ab9
AB
66332012-02-19 Andrey Belevantsev <abel@ispras.ru>
6634
6635 PR middle-end/55889
b4979ab9
AB
6636 * sel-sched.c: Include ira.h.
6637 (implicit_clobber_conflict_p): New function.
6638 (moveup_expr): Use it.
88b97037 6639 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 6640
24d63016
RB
66412013-02-19 Richard Biener <rguenther@suse.de>
6642
6643 PR tree-optimization/56384
6644 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
6645 (vn_hash_type): Split out from ...
6646 (vn_hash_constant_with_type): ... here.
6647 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
6648 (vn_phi_eq): Compare types from vn_phi_s structure.
6649 (vn_phi_lookup): Populate vn_phi_s type.
6650 (vn_phi_insert): Likewise.
6651
a475fd3d
JJ
66522013-02-19 Jakub Jelinek <jakub@redhat.com>
6653
47cc28f5
JJ
6654 PR tree-optimization/56350
6655 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
6656 if haven't found reduction or nested cycle operand, rather than
6657 asserting we must find it.
6658
a475fd3d
JJ
6659 PR tree-optimization/56381
6660 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
6661 to fold_build3.
6662
66632013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
6664 Jakub Jelinek <jakub@redhat.com>
6665
6666 PR target/52555
6667 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
6668 (swap_optab_enable): Same.
6669 (init_all_optabs): Use argument instead of global.
88b97037 6670 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
6671 * expr.h (init_all_optabs): Add argument to prototype.
6672 (TREE_OPTIMIZATION_OPTABS): New.
6673 (save_optabs_if_changed): Protoize.
6674 * optabs.h: Declare this_fn_optabs.
6675 * optabs.c (save_optabs_if_changed): New.
6676 Declare this_fn_optabs.
6677 (init_optabs): Add argument to init_all_optabs() call.
6678 * function.c (invoke_set_current_function_hook): Handle per
6679 function optabs.
6680 * function.h (struct function): New field optabs.
6681 * config/mips/mips.c (mips_set_mips16_mode): Handle when
6682 optimization_current_node has changed.
6683 * target-globals.h (save_target_globals_default_opts): Protoize.
6684 * target-globals.c (save_target_globals_default_opts): New.
6685
3f587ca3
JDA
66862013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6687
6688 PR target/56347
6689 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
6690 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
6691
6692 PR target/56214
6693 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
6694 and HImode, require all displacements to be an integer multiple of
6695 their mode size.
ceaca33e
JDA
6696 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
6697 only allow QImode and HImode when reload is in progress and strict is
6698 true. Likewise for symbolic addresses. Use base14_operand to check
6699 displacements in REG+BASE addresses.
6700
fe0b4796
RB
67012013-02-18 Richard Biener <rguenther@suse.de>
6702
6703 PR tree-optimization/56366
6704 * tree-vect-loop.c (get_initial_def_for_induction): Properly
6705 handle sign-conversion of outer-loop initial induction value.
6706
6aaf596b
RB
67072013-02-18 Richard Biener <rguenther@suse.de>
6708
73db8ff1 6709 PR middle-end/56349
6aaf596b
RB
6710 * cfghooks.c (merge_blocks): If we merge a latch into another
6711 block adjust references to it.
6712 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
6713 (verify_loop_structure): Verify that a recorded latch is in fact
6714 a latch.
6715
5e97dfb6
RB
67162013-02-18 Richard Biener <rguenther@suse.de>
6717
6718 PR tree-optimization/56321
6719 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
6720 order SSA name release and virtual operand unlinking.
6721
825527e8
EI
67222013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6723
6724 * config/microblaze/microblaze.md (save_stack_block): Define.
6725 (restore_stack_block): Likewise.
6726
debd11d9
EI
67272013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6728
6729 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
6730 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
6731 * config/microblaze/microblaze.c (microblaze_option_override):
6732 Bail out early for PIC modes when target does not support PIC.
6733
8ec77be0
EI
67342013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6735
88b97037 6736 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
6737 Replace with a microblaze version.
6738 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 6739 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
6740 microblaze.
6741
b41288b3
JJ
67422013-02-16 Jakub Jelinek <jakub@redhat.com>
6743 Dodji Seketeli <dodji@redhat.com>
6744
6745 PR asan/56330
88b97037 6746 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
6747 (instrument_mem_region_access): Do not forget to always put
6748 instrumentation of the of 'base' and 'base + len' in a "if (len !=
6749 0) statement, even for cases where either 'base' or 'base + len'
6750 are not instrumented -- because they have been previously
6751 instrumented. Simplify the logic by putting all the statements
6752 instrument 'base + len' inside a sequence, and then insert that
6753 sequence right before the current insertion point. Then, to
6754 instrument 'base + len', just get an iterator on that statement.
6755 And do not forget to update the pointer to iterator the function
6756 received as argument.
6757
47918951
VM
67582013-02-15 Vladimir Makarov <vmakarov@redhat.com>
6759
6760 PR rtl-optimization/56348
6761 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
6762
3fb7c699
SB
67632013-02-15 Steven Bosscher <steven@gcc.gnu.org>
6764
6765 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
6766 (clean_graph_dump_file): Pass base to start_graph_dump.
6767
576fe41a
RH
67682013-02-14 Richard Henderson <rth@redhat.com>
6769
6770 PR target/55941
6771 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
6772
bb3accfa
SB
67732013-02-14 Steven Bosscher <steven@gcc.gnu.org>
6774
6775 * collect2-aix.h: Define F_LOADONLY.
6776
03143140
RB
67772013-02-14 Richard Biener <rguenther@suse.de>
6778
6779 PR lto/50494
6780 * varasm.c (output_constant_def_1): Get the decl representing
6781 the constant as argument.
6782 (output_constant_def): Wrap output_constant_def_1.
6783 (make_decl_rtl): Use output_constant_def_1 with the decl
6784 representing the constant.
6785 (build_constant_desc): Optionally re-use a decl already
6786 representing the constant.
6787 (tree_output_constant_def): Adjust.
6788
8fb06726
DS
67892013-02-14 Dodji Seketeli <dodji@redhat.com>
6790
6791 Fix an asan crash
6792 * asan.c (instrument_builtin_call): Really put the length of the
6793 second source argument into src1_len.
6794
c4bfe8bf
JJ
67952013-02-13 Jakub Jelinek <jakub@redhat.com>
6796
6797 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
6798 argument. If it is false, don't create edge from then_bb to
6799 fallthru_bb.
6800 (insert_if_then_before_iter): Pass true to it.
6801 (build_check_stmt): Pass false to it.
6802 (transform_statements): Flush hash table only on extended basic
6803 block boundaries, rather than at the beginning of every bb.
6804 Don't flush hash table on nonfreeing_call_p calls.
6805 * tree-flow.h (nonfreeing_call_p): New prototype.
6806 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
6807
7afe2801
DM
68082013-02-13 David S. Miller <davem@davemloft.net>
6809
6810 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
6811
70cc3288
VM
68122013-02-13 Vladimir Makarov <vmakarov@redhat.com>
6813
6814 PR target/56184
6815 * ira.c (max_regno_before_ira): Move from ...
6816 (ira): ... here.
6817 (fix_reg_equiv_init): Use max_regno_before_ira instead of
6818 vec_safe_length.
6819
6422242b
JJ
68202013-02-13 Jakub Jelinek <jakub@redhat.com>
6821
6822 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
6823
976a81ee
RB
68242013-02-13 Richard Biener <rguenther@suse.de>
6825
6826 PR lto/56295
6827 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
6828 globals in MEM_REFs.
6829
c1874a87
RB
68302013-02-13 Richard Biener <rguenther@suse.de>
6831
6832 * loop-init.c (loop_optimizer_init): Clear loop state when
6833 re-initializing preserved loops.
6834 * loop-unswitch.c (unswitch_single_loop): Return whether
6835 we unswitched the loop. Do not verify loop state here.
88b97037 6836 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 6837
b4ab7d34
KS
68382013-02-13 Kostya Serebryany <kcc@google.com>
6839
88b97037
UB
6840 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
6841 on x86_64 linux.
b4ab7d34
KS
6842 * sanitizer.def: Rename __asan_init to __asan_init_v1.
6843
bdcbe80c
DS
68442013-02-12 Dodji Seketeli <dodji@redhat.com>
6845
6846 Avoid instrumenting duplicated memory access in the same basic block
6847 * Makefile.in (asan.o): Add new dependency on hash-table.h
6848 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
6849 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
6850 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
6851 (free_mem_ref_resources, has_mem_ref_been_instrumented)
6852 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
6853 (get_mem_ref_of_assignment): New functions.
6854 (get_mem_refs_of_builtin_call): Extract from
6855 instrument_builtin_call and tweak a little bit to make it fit with
6856 the new signature.
6857 (instrument_builtin_call): Use the new
6858 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
6859 of is_gimple_builtin_call.
6860 (instrument_derefs, instrument_mem_region_access): Insert the
6861 instrumented memory reference into the hash table.
6862 (maybe_instrument_assignment): Renamed instrument_assignment into
6863 this, and change it to advance the iterator when instrumentation
6864 actually happened and return true in that case. This makes it
6865 homogeneous with maybe_instrument_assignment, and thus give a
6866 chance to callers to be more 'regular'.
6867 (transform_statements): Clear the memory reference hash table
6868 whenever we enter a new BB, when we cross a function call, or when
6869 we are done transforming statements. Use
6870 maybe_instrument_assignment instead of instrumentation. No more
6871 need to special case maybe_instrument_assignment and advance the
6872 iterator after calling it; it's now handled just like
6873 maybe_instrument_call. Update comment.
6874
4861a1f7
RB
68752013-02-13 Richard Biener <rguenther@suse.de>
6876
6877 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
6878 Fix loop discovery code.
6879
1c86bd80
VM
68802013-02-12 Vladimir Makarov <vmakarov@redhat.com>
6881
6882 PR inline-asm/56148
6883 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 6884 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
6885 the operand is not reloaded. Prefer to reload conflicting operand
6886 if earlyclobber and matching operands are the same.
6887
7cbda518
RB
68882013-02-12 Richard Biener <rguenther@suse.de>
6889
6890 PR lto/56297
6891 * lto-streamer-out.c (write_symbol): Do not output symbols
6892 for hard register variables.
6893
e68a4ef6
GJL
68942013-02-12 Georg-Johann Lay <avr@gjlay.de>
6895
6896 PR target/54222
6897 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
6898 (umulsidi3_insn, mulsidi3_insn): New insns.
6899
a72d8780 69002013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
6901
6902 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
6903 (struct tune_params): Add vec_costs field.
6904 * config/arm/arm.c (arm_builtin_vectorization_cost)
6905 (arm_add_stmt_cost): New functions.
6906 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
6907 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
6908 (arm_default_vec_cost): New struct of type cpu_vec_costs.
6909 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
6910 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
6911 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
6912 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
6913
43320568
RB
69142013-02-12 Richard Biener <rguenther@suse.de>
6915
6916 PR lto/56295
6917 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
6918 decls again if possible.
6919
a011aa39
RB
69202013-02-12 Richard Biener <rguenther@suse.de>
6921
6922 PR middle-end/56288
6923 * tree-ssa.c (verify_ssa_name): Fix check, move
6924 SSA_NAME_IN_FREE_LIST check up.
6925
6da26889
JJ
69262013-02-12 Jakub Jelinek <jakub@redhat.com>
6927 Steven Bosscher <steven@gcc.gnu.org>
6928
6929 PR rtl-optimization/56151
6930 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
6931 equal to op0 or op1, and last_insn pattern is CODE operation
6932 with MEM dest and one of the operands matches that MEM.
6933
f80e0faf
ST
69342013-02-11 Sriraman Tallam <tmsriramgoogle.com>
6935
6936 * doc/extend.texi: Document Function Multiversioning and "default"
6937 parameter string to target attribute.
6938 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
6939 target attribute parameter is "default".
6940 (ix86_compare_version_priority): Remove checks for target attribute.
6941 (ix86_mangle_function_version_assembler_name): Change error to sorry.
6942 Remove check for target attribute equal to NULL. Add assert.
6943 (ix86_generate_version_dispatcher_body): Change error to sorry.
6944
6c59ffd1
IS
69452013-02-11 Iain Sandoe <iain@codesourcery.com>
6946 Jack Howarth <howarth@bromo.med.uc.edu>
6947 Patrick Marlier <patrick.marlier@gmail.com>
6948
6949 PR libitm/55693
6950 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
6951 define ENDFILE_SPEC as TM_DESTRUCTOR.
6952 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
6953
a72d8780 69542013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
6955 Jack Howarth <howarth@bromo.med.uc.edu>
6956 Jakub Jelinek <jakub@redhat.com>
6957
6958 PR sanitizer/55617
6959 * config/darwin.c (cdtor_record): Rename ctor_record.
6960 (sort_cdtor_records): Rename sort_ctor_records.
6961 (finalize_dtors): New routine to sort destructors by
6962 priority before use in assemble_integer.
6963 (machopic_asm_out_destructor): Use finalize_dtors if needed.
6964
b63fe007
UB
69652013-02-11 Uros Bizjak <ubizjak@gmail.com>
6966
6967 PR rtl-optimization/56275
6968 * simplify-rtx.c (avoid_constant_pool_reference): Check that
6969 offset is non-negative and less than cmode size before
6970 calling simplify_subreg.
6971
8e89b5b5
RB
69722013-02-11 Richard Biener <rguenther@suse.de>
6973
6974 PR tree-optimization/56264
6975 * cfgloop.h (fix_loop_structure): Adjust prototype.
6976 * loop-init.c (fix_loop_structure): Return the number of
6977 newly discovered loops.
6978 * tree-cfgcleanup.c (repair_loop_structures): When new loops
6979 are discovered, do a full loop-closed SSA rewrite.
6980
b4a4b56d
RB
69812013-02-11 Richard Biener <rguenther@suse.de>
6982
6983 PR tree-optimization/56273
6984 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
6985 first VRP run.
6986 (check_array_ref): Fix missing newline in dumps.
6987 (search_for_addr_array): Likewise.
6988
0c885229
DE
69892013-02-09 David Edelsohn <dje.gcc@gmail.com>
6990
6991 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
6992
59ac9a55
JJ
69932013-02-09 Jakub Jelinek <jakub@redhat.com>
6994
6995 PR target/56256
6996 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
6997
25bb0bb5
VM
69982013-02-08 Vladimir Makarov <vmakarov@redhat.com>
6999
7000 PR rtl-optimization/56246
0c885229 7001 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
7002 reload pseudo.
7003 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
7004 constraints are satisfied.
7005
a698cc03
JL
70062013-02-08 Jeff Law <law@redhat.com>
7007
7008 PR debug/53948
7009 * emit-rtl.c (reg_is_parm_p): New function.
7010 * regs.h (reg_is_parm_p): New prototype.
7011 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
7012 callee-clobbered registers.
7013
e1122ddd
MM
70142013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
7015
7016 PR target/56043
7017 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
7018 If there is no implicit builtin declaration, just return NULL.
7019
19c5f6e6
UB
70202013-02-08 Uros Bizjak <ubizjak@gmail.com>
7021
7022 * config/i386/sse.md (FMAMODEM): New mode iterator.
7023 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
7024 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
7025
2480f2ca 70262013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 7027
2480f2ca
UB
7028 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
7029 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
7030 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
7031
70322013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
7033
7034 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
7035 (microblaze*-*-elf): Likewise.
7036 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
7037 LINK_SPEC.
7038 * config/microblaze/microblaze-c.c: Add builtin defines for
7039 _LITTLE_ENDIAN and _BIG_ENDIAN.
7040 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
7041 add to TARGET_DEFAULT flags.
76ef61fb 7042 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
7043 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
7044 * config/microblaze/microblaze.md: Update extendsidi2 and
7045 movdi_internal instructions to use low-order / high-order reg
7046 print_operands.
7047 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
7048 options and inversemask / mask of LITTLE_ENDIAN.
7049 * config/microblaze/t-microblaze: Expand multilib options to
7050 include mlittle-endian (le) and update exceptions patterns.
7051
600a5961
JJ
70522013-02-08 Jakub Jelinek <jakub@redhat.com>
7053
5df81313
JJ
7054 PR rtl-optimization/56195
7055 * lra-constraints.c (get_reload_reg): Don't reuse regs
7056 if they have smaller mode than requested, if they have
7057 wider mode than requested, try to return a SUBREG.
7058
600a5961
JJ
7059 PR tree-optimization/56250
7060 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
7061 if type is unsigned and code isn't MULT_EXPR.
7062
ff544649
GJL
70632013-02-08 Georg-Johann Lay <avr@gjlay.de>
7064
7065 PR tree-optimization/56064
7066 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
7067 bits according to mode.
7068 * fixed-value.h (fixed_from_double_int)
7069 (const_fixed_from_double_int): Adjust comments.
7070
e45cde98
RB
70712013-02-08 Richard Biener <rguenther@suse.de>
7072
7073 PR lto/56231
7074 * lto-streamer.h (struct data_in): Remove current_file, current_line
7075 and current_col members.
7076 * lto-streamer-out.c (lto_output_location): Stream changed bits
7077 en-block for efficiency.
7078 * lto-streamer-in.c (clear_line_info): Remove.
7079 (lto_input_location): Cache current file, line and column
7080 globally via local statics. Read changed bits en-block.
7081 (input_function): Do not call clear_line_info.
7082 (lto_read_body): Likewise.
7083 (lto_input_toplevel_asms): Likewise.
7084
c1ca73d8
MM
70852013-02-08 Michael Matz <matz@suse.de>
7086
7087 PR tree-optimization/52448
7088 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
7089 (nt_call_phase): New static.
7090 (add_or_mark_expr): Only mark accesses with newer phase than any
7091 call seen.
7092 (nonfreeing_call_p): New.
7093 (nt_init_block): Update nt_call_phase, mark blocks as visited.
7094 (nt_fini_block): Keep blocks marked as visited.
7095 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
7096
57548aa2
RB
70972013-02-08 Richard Biener <rguenther@suse.de>
7098
7099 * ira.c (ira): Free broken dominator information.
7100
8e10366f
UB
71012013-02-08 Uros Bizjak <ubizjak@gmail.com>
7102
7103 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
7104
f64fb0fa
MP
71052013-02-08 Marek Polacek <polacek@redhat.com>
7106
8e10366f 7107 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 7108
0375167b
RB
71092013-02-08 Richard Biener <rguenther@suse.de>
7110
7111 PR middle-end/56181
7112 * cfgloop.h (flow_loops_find): Adjust.
7113 (bb_loop_header_p): Declare.
7114 * cfgloop.c (bb_loop_header_p): New function split out from ...
7115 (flow_loops_find): ... here. Adjust function signature,
7116 support incremental loop structure update.
7117 (verify_loop_structure): Cleanup. Verify a loop is a loop.
7118 * cfgloopmanip.c (fix_loop_structure): Move ...
7119 * loop-init.c (fix_loop_structure): ... here.
7120 (apply_loop_flags): Split out from ...
7121 (loop_optimizer_init): ... here.
7122 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
7123 in incremental mode, only remove dead loops here.
7124
85d768f3
GJL
71252013-02-08 Georg-Johann Lay <avr@gjlay.de>
7126
7127 PR target/54222
7128 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
7129 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
7130 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
7131 (*round<mode>3.libgcc): New insns for fixed-modes.
7132 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
7133 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
7134 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
7135 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
7136 implementations. Define to __builtin_avr_absFX,
7137 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
7138 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
7139 __builtin_avr_countlsFX, respectively.
7140 * config/avr/avr-c.c (target.h): Include it.
7141 (enum avr_builtin_id): New enum.
7142 (avr_resolve_overloaded_builtin): New static function.
7143 (avr_register_target_pragmas): Use it to set
7144 targetm.resolve_overloaded_builtin.
7145 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
7146 tree nodes used by DEF_BUILTIN.
7147 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
7148 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
7149 <AVR_BUILTIN_xxBITS>: Same.
7150
661bc682
RB
71512013-02-08 Richard Biener <rguenther@suse.de>
7152
7153 * cfgloop.c (verify_loop_structure): Properly handle
7154 a loop exiting to another loop header.
7155 * ira-int.h (ira_loops): Remove.
7156 * ira.c (ira_loops): Remove.
7157 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
7158 (do_reload): Use loop_optimizer_finalize.
7159 * ira-build.c (create_loop_tree_nodes): Use get_loops and
7160 number_of_loops to access the loop tree.
7161 (more_one_region_p): Likewise.
7162 (finish_loop_tree_nodes): Likewise.
7163 (rebuild_regno_allocno_maps): Likewise.
7164 (mark_loops_for_removal): Likewise.
7165 (mark_all_loops_for_removal): Likewise.
7166 (remove_unnecessary_regions): Likewise.
7167 (ira_build): Likewise.
7168 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
7169
0d5049b2
RB
71702013-02-08 Richard Biener <rguenther@suse.de>
7171
7172 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
7173 * ipa-pure-const.c (analyze_function): Avoid calling
7174 mark_irreducible_loops twice.
8e10366f 7175 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 7176
499f32e8
DM
71772013-02-07 David S. Miller <davem@davemloft.net>
7178
7179 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
7180 on 'reg'.
7181 * var-tracking.c (vt_add_function_parameter): Test the presence of
7182 HAVE_window_save properly and do not remap argument registers when
7183 we have a leaf function.
7184
6edc3e32
UB
71852013-02-07 Uros Bizjak <ubizjak@gmail.com>
7186
7187 PR bootstrap/56227
7188 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
7189 instead of "ll".
7190 * config/i386/i386.c (ix86_print_operand): Ditto.
7191
5306401f
VM
71922013-02-07 Vladimir Makarov <vmakarov@redhat.com>
7193
6edc3e32 7194 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 7195
027ece11
VM
71962013-02-07 Vladimir Makarov <vmakarov@redhat.com>
7197
7198 PR rtl-optimization/56225
7199 * lra-constraints.c (process_alt_operands): Check that reload hard
7200 reg can hold value for strict_low_part.
7201
f980dfdb
JJ
72022013-02-07 Jakub Jelinek <jakub@redhat.com>
7203
7204 PR debug/56154
7205 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
7206 dwarf2out_end_function.
7207 (in_first_function_p, maybe_at_text_label_p,
7208 first_loclabel_num_not_at_text_label): New variables.
7209 (dwarf2out_var_location): In the first function find out
6edc3e32 7210 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
7211 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
7212 functions.
7213
73dd3123
EB
72142013-02-07 Eric Botcazou <ebotcazou@adacore.com>
7215
7216 PR rtl-optimization/56178
7217 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
7218 SUBREG of a register. Tidy up related block of code.
7219 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
7220 note if the source is a register or a SUBREG of a register.
7221
e3936f47
JJ
72222013-02-07 Jakub Jelinek <jakub@redhat.com>
7223
7224 PR target/56228
7225 * config/rs6000/rs6000.md (ptrm): New mode attr.
7226 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
7227 call_value_indirect_aix<pttrsize>,
7228 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
7229 m in constraints.
7230
d96d674b
MH
72312013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
7232
7233 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
7234 if -bnortl. Convert to strcmp and strncmp.
7235
921f2dee
AM
72362013-02-07 Alan Modra <amodra@gmail.com>
7237
7238 PR target/54009
7239 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
7240 addresses won't wrap when offsetting.
7241 (rs6000_secondary_reload): Provide secondary reloads needed for
7242 wrapping LO_SUM addresses.
7243
d09c7dba
TS
72442013-02-06 Thomas Schwinge <thomas@codesourcery.com>
7245
7246 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
7247 MACH, just __MACH__.
7248
a44bbd48
RB
72492013-02-06 Richard Biener <rguenther@suse.de>
7250
7251 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
7252 instead of calling fix_loop_structure.
7253
6d840d99
JJ
72542013-02-06 Jakub Jelinek <jakub@redhat.com>
7255
7256 PR middle-end/56217
7257 * omp-low.c (use_pointer_for_field): Return false if
7258 lower_send_shared_vars doesn't generate any copy-out code.
7259
0f33baa9
TV
72602013-02-06 Tom de Vries <tom@codesourcery.com>
7261
7262 PR rtl-optimization/56131
7263 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
7264 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
7265 of the label is NULL. Add comment.
7266
11f1e3ab
JJ
72672013-02-05 Jakub Jelinek <jakub@redhat.com>
7268
31502f9f
JJ
7269 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
7270
a74db9bd
JJ
7271 PR sanitizer/55374
7272 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
7273 (STATIC_LIBTSAN_LIBS): Likewise.
7274 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
7275 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
7276 is defined, don't add anything else beyond that.
7277 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
7278 (LINK_COMMAND_SPEC): Use them.
7279
11f1e3ab
JJ
7280 PR tree-optimization/56205
7281 * tree-stdarg.c (check_all_va_list_escapes): Return true if
7282 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
7283 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
7284
14ac6aa2
RB
72852013-02-05 Richard Biener <rguenther@suse.de>
7286
7287 PR tree-optimization/53342
7288 PR tree-optimization/53185
7289 * tree-vectorizer.h (vect_check_strided_load): Remove.
7290 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
7291 not disallow peeling for vectorized strided loads.
7292 (vect_check_strided_load): Make static and simplify.
7293 (vect_analyze_data_refs): Adjust.
7294 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
7295 correctly when vectorizing strided loads.
7296
6f22445a
RB
72972013-02-05 Richard Biener <rguenther@suse.de>
7298
7299 * doc/install.texi: Refer to ISL, not PPL.
7300
39f9719e
JH
73012013-02-05 Jan Hubicka <jh@suse.cz>
7302
ec4224ac
JH
7303 PR tree-optimization/55789
7304 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
7305
73062013-02-05 Jan Hubicka <jh@suse.cz>
7307
7308 PR tree-optimization/55789
39f9719e
JH
7309 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
7310 the dead call anyway.
7311
956d3b33
EB
73122013-02-05 Eric Botcazou <ebotcazou@adacore.com>
7313
7314 PR sanitizer/55374
7315 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
7316
73172013-02-04 Alexander Potapenko <glider@google.com>
7318 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
7319 Jakub Jelinek <jakub@redhat.com>
7320
7321 PR sanitizer/55617
7322 * config/darwin.c (sort_ctor_records): Stabilized qsort
7323 on constructor priority by using original position.
7324 (finalize_ctors): New routine to sort constructors by
7325 priority before use in assemble_integer.
7326 (machopic_asm_out_constructor): Use finalize_ctors if needed.
7327
7ac3af38
JJ
73282013-02-04 Jakub Jelinek <jakub@redhat.com>
7329
7330 PR libstdc++/54314
7331 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
7332 about visibility on artificial decls.
7333 * config/sol2.c (solaris_assemble_visibility): Likewise.
7334
152689dc
KT
73352013-02-04 Kai Tietz <ktietz@redhat.com>
7336
7337 PR target/56186
7338 * config/i386/i386.c (function_value_ms_64): Add additional valtype
7339 argument and improve checking of return-argument types for 16-byte
7340 modes.
7341 (ix86_function_value_1): Add additional valtype argument on call
7342 of function_value_64.
7343 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
7344 handling infunction_value_64 function.
7345
2b5987b5
MGD
73462013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
7347
7ac3af38 7348 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 7349
14597080
RB
73502013-02-04 Richard Biener <rguenther@suse.de>
7351
7352 PR tree-optimization/56188
7353 * tree-ssa-structalias.c (label_visit): Consider case with
7354 initially non-empty points-to set.
7355 (perform_var_substitution): Dump node mapping and clean up.
7356
ed73881e
RG
73572013-02-04 Richard Guenther <rguenther@suse.de>
7358
7359 PR lto/56168
7360 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
7361 node prevail as last resort.
7362 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 7363 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 7364
139a0707
RB
73652013-02-04 Richard Biener <rguenther@suse.de>
7366
7367 PR tree-optimization/56113
7368 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
7369 Merge into ...
7370 (equiv_class_lookup_or_add): ... this.
7371 (label_visit): Adjust and fix error in previous patch.
7372 (perform_var_substitution): Adjust.
7373
50fe8924
OE
73742013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
7375
7376 * config/sh/divtab.c: Fix formatting and comments throughout the file.
7377 * config/sh/sh4-300.md: Likewise.
7378 * config/sh/sh4a.md: Likewise.
7379 * config/sh/constraints.md: Likewise.
7380 * config/sh/sh.md: Likewise.
7381 * config/sh/netbsd-elf.h: Likewise.
7382 * config/sh/predicates.md: Likewise.
7383 * config/sh/sh-protos.h: Likewise.
7384 * config/sh/ushmedia.h: Likewise.
7385 * config/sh/linux.h: Likewise.
7386 * config/sh/sh.c: Likewise.
7387 * config/sh/superh.h: Likewise.
7388 * config/sh/elf.h: Likewise.
7389 * config/sh/sh4.md: Likewise.
7390 * config/sh/sh.h: Likewise.
7391
1a04ac2b
JDA
73922013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7393
7394 * config/pa/constraints.md: Adjust unused letters. Change "T"
7395 constraint to match_test floating_point_store_memory_operand().
7396 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
7397 (base14_operand): New.
7398 (floating_point_store_memory_operand): New.
7399 (integer_store_memory_operand): Revise to use base14_operand and
7400 reg_plus_base_memory_operand.
7401 (move_dest_operand): Allow symbolic_memory_operands.
7402 (symbolic_memory_operand): Check for LO_SOM.
7403 (symbolic_operand): Change default case to break.
7404 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
7405 CONST_DOUBLE values to be reloaded by putting them into memory when
7406 the destination is a floating point register.
7407 (movdf): Remove code to handle CONST_DOUBLE.
7408 (movsf): Likewise.
7409 (reload_indf_r1): New.
7410 (reload_insf_r1): New.
7411 Consistently use "Q" and "T" constraints with integer and floating
7412 point move instructions, respectively.
7413 (movdi): Remove FAIL.
7414 Change predicate for source operand unamed DImode move from
7415 general_operand to move_src_operand.
7416 (umulsidi3): Change predicate for destination operand to
7417 register_operand.
7418 Likewise for similar unamed patterns.
7419 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
7420 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
7421 (hppa_legitimize_address): Simplify mask calculation.
7422 (pa_emit_move_sequence): Revised handling of secondary reloads from
7423 REG+D addresses for floating point loads and stores. Directly handle
7424 loading CONST0_RTX (mode) to a floating point register.
7425 (pa_secondary_reload): Handle reloading DF and SFmode constant values
7426 to floating point registers. Don't restrict secondary reloads to
7427 floating point registers to integer modes. Revise some comments and
7428 cleanup some code.
7429 (TARGET_LEGITIMATE_ADDRESS_P): Define.
7430 (pa_legitimate_address_p): New.
7431 (pa_legitimize_reload_address): New.
7432 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
7433 (STRICT_REG_OK_FOR_BASE_P): New.
7434 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
7435 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
7436
3bf65591
DE
74372013-02-03 David Edelsohn <dje.gcc@gmail.com>
7438 Andrew Dixie <andrewd@gentrack.com>
7439
7440 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
7441 flag set.
7442
c0a8a3e6
RS
74432013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
7444
7445 * expmed.c (extract_bit_field_1): Pass the full width of the
7446 structure to get_best_reg_extraction_insn.
7447
99113dff
DE
74482013-02-01 David Edelsohn <dje.gcc@gmail.com>
7449
7450 PR target/54601
7451 * configure.ac (use_cxa_atexit): Add AIX.
7452 * configure: Regenerate.
7453
7454 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
7455
ddd84654
JJ
74562013-02-01 Jakub Jelinek <jakub@redhat.com>
7457
7458 PR debug/54793
7459 * final.c (need_profile_function): New variable.
7460 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
7461 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
7462 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
7463 notes, targetm.asm_out.function_prologue doesn't emit anything,
7464 HAVE_prologue and profiler should be emitted before prologue,
7465 set need_profile_function instead of emitting it.
7466 (final_scan_insn): If need_profile_function, emit
7467 profile_function on the first NOTE_INSN_BASIC_BLOCK or
7468 NOTE_INSN_FUNCTION_BEG note.
7469
74702013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
7471
7472 * config/rs6000/rs6000.md (smulditi3): New.
7473 (umulditi3): New.
7474
ff2a9d88
RH
7475 * config/alpha/alpha.md (umulditi3): New.
7476
14d52b90
DE
74772013-02-01 David Edelsohn <dje.gcc@gmail.com>
7478
7479 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
7480 (ASM_OUTPUT_ALIGNED_LOCAL): New.
7481
8c7ca45c
RB
74822013-02-01 Richard Biener <rguenther@suse.de>
7483
7484 PR tree-optimization/56113
7485 * tree-ssa-structalias.c (label_visit): Reduce work for
7486 single-predecessor nodes.
7487
9f419393
EB
74882013-02-01 Eric Botcazou <ebotcazou@adacore.com>
7489
7490 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
7491 range isn't testing for zero.
7492
c5f4be84
SB
74932013-01-31 Steven Bosscher <steven@gcc.gnu.org>
7494
7495 PR middle-end/56113
7496 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
7497
dbdbd982
NC
74982013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
7499 Nick Clifton <nickc@redhat.com>
7500
7501 * config/v850/constraints.md (Q): Define as a memory constraint.
7502 * config/v850/predicates.md (label_ref_operand): New predicate.
7503 (e3v5_shift_operand): New predicate.
7504 (ior_operator): New predicate.
7505 * config/v850/t-v850: Add e3v5 multilib.
7506 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
7507 (v850_gen_movdi): Prototype.
7508 * config/v850/v850.c: Add support for e3v5 architecture.
7509 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
7510 TARGET_V850E_UP.
7511 (construct_save_jarl): Add e3v5 long JARL support.
7512 (v850_adjust_insn_length): New function. Adjust length of call
7513 insns when using e3v5 instructions.
7514 (v850_gen_movdi): New function: Generate instructions to move a
7515 DImode value.
7516 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
7517 (CPP_SPEC): Define __v850e3v5__ as appropriate.
7518 (TARGET_USE_FPU): Enable for e3v5.
7519 (CONST_OK_FOR_W): New macro.
7520 (ADJUST_INSN_LENGTH): Define.
7521 * config/v850/v850.md (UNSPEC_LOOP): Define.
7522 (attr cpu): Add v850e3v5.
7523 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
7524 (movdi): New pattern.
7525 (movdi_internal): New pattern.
7526 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
7527 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
7528 (cstoresf4): Likewise.
7529 (cstoredf4): Likewise.
7530 (insv): New pattern.
7531 (rotlso3_a): New pattern.
7532 (rotlsi3_b): New pattern
7533 (rotlsi3_v850e3v5): New pattern.
7534 (doloop_begin): New pattern.
7535 (fix_loop_counter): New pattern.
7536 (doloop_end): New pattern.
7537 (branch_normal): Add e3v5 long branch support.
7538 (branch_invert): Likewise.
7539 (branch_z_normal): Likewise.
7540 (branch_z_invert): Likewise.
7541 (branch_nz_normal): Likewise.
7542 (branch_nz_invert): Likewise.
7543 (call_internal_short): Add e3v5 register-indirect JARL support.
7544 (call_internal_long): Likewise.
7545 (call_value_internal_short): Likewise.
7546 (call_value_internal_long): Likewise.
7547 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
7548 (mloop): New option.
7549 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 7550 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 7551
73861a41
PK
75522013-01-31 Paul Koning <ni1d@arrl.net>
7553
7554 PR debug/55059
7555 PR debug/54508
7556 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
7557 children if parent is a class.
7558 (prune_unused_types_prune): Don't add DW_AT_declaration.
7559
e44978dc
RB
75602013-01-31 Richard Biener <rguenther@suse.de>
7561
7562 PR tree-optimization/56157
7563 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
7564 match up operand with SLP child.
7565
90b10dec
JM
75662013-01-31 Jason Merrill <jason@redhat.com>
7567
04d2dadd 7568 PR debug/54410
90b10dec
JM
7569 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
7570 parameters the first time.
7571 (gen_scheduled_generic_parms_dies): Check completeness here.
7572
6e616110
RB
75732013-01-31 Richard Biener <rguenther@suse.de>
7574
7575 PR middle-end/53073
7576 * common.opt (faggressive-loop-optimizations): New flag,
7577 enabled by default.
7578 * doc/invoke.texi (faggressive-loop-optimizations): Document.
7579 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
7580 infer_loop_bounds_from_undefined by it.
7581
636f59cf
RB
75822013-01-31 Richard Biener <rguenther@suse.de>
7583
7584 PR tree-optimization/56150
7585 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
7586 visit virtual operands.
7587 (find_uses_to_rename_bb): Likewise.
7588
75892013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
7590
7591 PR tree-optimization/56150
7592 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
7593 mixed store non-store stmts.
7594
32887460
JJ
75952013-01-30 Jakub Jelinek <jakub@redhat.com>
7596
e60e09a0
JJ
7597 PR sanitizer/55374
7598 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
7599 LIBASAN_EARLY_SPEC is defined.
7600 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
7601 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
7602 before %o.
7603 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
7604
32887460
JJ
7605 PR c++/55742
7606 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
7607 invalid args instead of ICEing on it.
7608 (ix86_valid_target_attribute_tree): Return error_mark_node if
7609 ix86_valid_target_attribute_inner_p failed.
7610 (ix86_valid_target_attribute_p): Return false only if
7611 ix86_valid_target_attribute_tree returned error_mark_node. Allow
7612 target("default") attribute.
7613 (sorted_attr_string): Change argument from const char * to tree,
7614 merge in all target attribute arguments rather than just one.
7615 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
7616 instead of free. Avoid using strcat.
7617 (ix86_mangle_function_version_assembler_name): Mangle
7618 target("default") as if no target attribute is present. Adjust
7619 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
7620 instead of xmalloc and XDELETEVEC instead of free.
7621 (ix86_function_versions): Don't return true if one of the decls
7622 doesn't have target attribute. If they don't and one of the decls
7623 is DECL_FUNCTION_VERSIONED, report an error. Adjust
7624 sorted_attr_string caller. Use XDELETEVEC instead of free.
7625 (ix86_supports_function_versions): Remove.
7626 (make_name): Fix up formatting.
7627 (make_dispatcher_decl): Remove resolver_name and its initialization.
7628 Avoid leaking memory.
7629 (is_function_default_version): Return true if there is
7630 target("default") attribute rather than no target attribute at all.
7631 (make_resolver_func): Avoid leaking memory.
7632 (ix86_generate_version_dispatcher_body): Likewise.
7633 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
7634 * target.def (supports_function_versions): Remove.
7635 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
7636 * doc/tm.texi: Regenerated.
7637
73cca0cc
VM
76382013-01-30 Vladimir Makarov <vmakarov@redhat.com>
7639
7640 PR rtl-optimization/56144
7641 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
7642 for values with side effects.
7643
11452e7b
RB
76442013-01-30 Richard Biener <rguenther@suse.de>
7645
7646 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
7647 (sparseset_pop): Likewise.
7648 * cfganal.c (compute_idf): Likewise. Increase work-stack size
7649 to be able to use quick_push in the worker loop.
7650
01cb1ef5
MP
76512013-01-30 Marek Polacek <polacek@redhat.com>
7652
7653 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
7654
e892936e
RB
76552013-01-30 Richard Biener <rguenther@suse.de>
7656
7657 PR lto/56147
6edc3e32 7658 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 7659
cc06c01d
GJL
76602013-01-30 Georg-Johann Lay <avr@gjlay.de>
7661
7662 PR tree-optimization/56064
7663 * fixed-value.c (fixed_from_double_int): New function.
7664 * fixed-value.h (fixed_from_double_int): New prototype.
7665 (const_fixed_from_double_int): New static inline function.
7666 * fold-const.c (native_interpret_fixed): New static function.
7667 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
7668 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
7669 (native_encode_fixed): New static function.
7670 (native_encode_expr) <FIXED_CST>: Use it.
7671 (native_interpret_int): Move double_int worker code to...
7672 * double-int.c (double_int::from_buffer): ...this new static method.
7673 * double-int.h (double_int::from_buffer): Prototype it.
7674
d394a308
RB
76752013-01-30 Richard Biener <rguenther@suse.de>
7676
7677 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
7678 New pointer-map and obstack.
7679 (init_alias_vars): Allocate pointer-map and obstack.
7680 (delete_points_to_sets): Free them.
7681 (find_what_var_points_to): Cache result.
7682 (find_what_p_points_to): Adjust for changed interface of
7683 find_what_var_points_to.
7684 (compute_points_to_sets): Likewise.
7685 (ipa_pta_execute): Likewise.
7686
20804d96
RO
76872013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7688
7689 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
7690 * configure: Regenerate.
7691 * config.in: Regenerate.
7692 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
7693 #nobits/#progbits if supported.
7694
a7ad88a2
OE
76952013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
7696
7697 PR target/56121
7698 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
7699 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
7700 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
7701
7af79f92
GY
77022013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
7703
91bfca59
OE
7704 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
7705 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 7706
753bcf7b
GY
77072013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
7708
91bfca59
OE
7709 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
7710 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 7711
8cbc2ea8
GY
77122013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
7713
91bfca59
OE
7714 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
7715 declaration.
7716 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
7717 * config/arm/cortex-a7.md: New bypasses using
7718 arm_mac_accumulator_is_result.
8cbc2ea8 7719
697a3325
GY
77202013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
7721
91bfca59 7722 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 7723 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
7724 (cortex_a7_fpfmad): New reservation.
7725 (cortex_a7_fpmacs): Use ffmas and update required units.
7726 (cortex_a7_fpmuld): Update required units and latency.
7727 (cortex_a7_fpmacd): Likewise.
7728 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
7729 (cortex_a7_neon). Likewise.
7730 (bypass) Update participating units.
697a3325 7731
29637783
GY
77322013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
7733
91bfca59
OE
7734 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
7735 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
7736 from fmac to ffma.
7737 * config/arm/vfp11.md (vfp_farith): Use ffmas.
7738 (vfp_fmul): Use ffmad.
7739 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
7740 (cortex_r4_fmacd): Use ffmad.
7741 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
7742 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
7743 (cortex_a9_fmacd): Use ffmad.
7744 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
7745 (cortex_a8_vfp_macd): Use ffmad.
7746 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
7747 (cortex_a5_fpmacd): Use ffmad.
7748 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
7749 (cortex_a15_vfp_macd): Use ffmad.
7750 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 7751
2ee8a2d5
JM
77522013-01-29 Jason Merrill <jason@redhat.com>
7753
7754 PR libstdc++/54314
7755 * varasm.c (default_assemble_visibility): Don't warn about
7756 visibility on artificial decls.
7757
78d087bc
RB
77582013-01-29 Richard Biener <rguenther@suse.de>
7759
7760 PR tree-optimization/56113
7761 * tree-ssa-structalias.c (equiv_class_lookup): Also return
7762 the bitmap leader.
7763 (label_visit): Free duplicate bitmaps and record the leader instead.
7764 (perform_var_substitution): Adjust.
7765
83ba4d6f
RB
77662013-01-29 Richard Biener <rguenther@suse.de>
7767
7768 PR tree-optimization/55270
7769 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
7770 the CFG, schedule loops for fixup.
7771
66dfe13f
NC
77722013-01-29 Nick Clifton <nickc@redhat.com>
7773
7774 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
7775 SP_REG.
7776
5a579c3b
LE
77772013-01-28 Leif Ekblad <leif@rdos.net>
7778
7779 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
7780 * config/i386/i386.h (TARGET_RDOS): New macro.
7781 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
7782 * config/i386/i386.c (ix86_option_override_internal): For 64bit
7783 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
7784 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
7785 DEFAULT_LARGE_SECTION_THRESHOLD.
7786 * config/i386/i386.md (R14_REG, R15_REG): New constants.
7787 * config/i386/rdos.h: New file.
7788 * config/i386/rdos64.h: New file.
7789
51e44392
BS
77902013-01-28 Bernd Schmidt <bernds@codesourcery.com>
7791
7792 PR other/54814
7793 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
7794 TEST_HARD_REG_BIT.
7795
db1fb332
JJ
77962013-01-28 Jakub Jelinek <jakub@redhat.com>
7797
7798 PR rtl-optimization/56117
7799 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
7800 call cselib_lookup_from_insn on the MEM before calling
7801 add_insn_mem_dependence.
7802
16917761
RB
78032013-01-28 Richard Biener <rguenther@suse.de>
7804
7805 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
7806 to a stmt that didn't have one.
7807 (copy_phis_for_bb): Likewise for PHI arguments.
7808 (copy_debug_stmt): Likewise for debug stmts.
7809
b9fc0497
RB
78102013-01-28 Richard Biener <rguenther@suse.de>
7811
7812 PR tree-optimization/56034
6edc3e32 7813 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
7814 (partition_builtin_p): Adjust.
7815 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
7816 it is the last partition.
7817 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
7818 up the vertex for the definition.
7819 (classify_partition): Classify whether a partition is a
7820 PKIND_REDUCTION, thus has uses outside of the loop.
7821 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
7822 Merge all PKIND_REDUCTION partitions into the last partition.
7823 (tree_loop_distribution): Seed partitions from reductions as well.
7824
aa710d25
JJ
78252013-01-28 Jakub Jelinek <jakub@redhat.com>
7826
0bfbca58
JJ
7827 PR tree-optimization/56125
7828 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
7829 pow(x,c) into sqrt(x) * powi(x, n/2) or
7830 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
7831 optimizing for size.
7832 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
7833 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
7834 integer.
7835
aa710d25
JJ
7836 PR tree-optimization/56094
7837 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
7838 to UNKNOWN_LOCATION while gimplifying expr.
7839
77dc5297
UB
78402013-01-27 Uros Bizjak <ubizjak@gmail.com>
7841
7842 PR target/56114
7843 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
7844 operand 0 in movabs insn template for -masm=intel asm alternative.
7845 (*movabs<mode>_2): Ditto for operand 1.
7846
0bfbca58 78472013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
7848
7849 PR target/54663
7850 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
7851 of microblaze-c.o
7852
0bfbca58 78532013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
7854
7855 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
7856 tm_file.
7857
0bfbca58 78582013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
7859
7860 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
7861 Undef to avoid warning.
7862
478f60f9
MH
78632013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
7864
7865 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
7866 * configure: Regenerate.
7867
d7fa6ee2
JJ
78682013-01-25 Jakub Jelinek <jakub@redhat.com>
7869
7870 PR tree-optimization/56098
7871 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
7872 for stmts with volatile ops.
7873 (cond_store_replacement): Don't optimize if assign has volatile ops.
7874 (cond_if_else_store_replacement_1): Don't optimize if either
7875 then_assign or else_assign have volatile ops.
7876 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
7877 volatile ops.
7878
f8fe87bd
GJL
78792013-01-25 Georg-Johann Lay <avr@gjlay.de>
7880
7881 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
7882
28398d0d
GJL
78832013-01-25 Georg-Johann Lay <avr@gjlay.de>
7884
7885 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
7886 missing ':' in asm example.
7887
b7d7d917
TB
78882013-01-25 Tejas Belagod <tejas.belagod@arm.com>
7889
7890 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
7891 entries into lane and laneq entries.
77dc5297
UB
7892 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
7893 Remove AdvSIMD scalar modes.
b7d7d917
TB
7894 (aarch64_sq<r>dmulh_laneq<mode>): New.
7895 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
7896 modes.
7897 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
7898 builtin implementations to relfect changes in RTL in aarch64-simd.md.
7899 * config/aarch64/iterators.md (VCOND): New.
7900 (VCONQ): New.
7901
556f9906
GJL
79022013-01-25 Georg-Johann Lay <avr@gjlay.de>
7903
7904 PR target/54222
7905 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
7906 Add NULL LIBNAME argument to existing definitions.
7907 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
7908 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
7909 * config/avr/avr.c (DEF_BUILTIN): Same.
7910 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
7911 (avr_expand_builtin): Expand to a vanilla call if a libgcc
7912 implementation is available (DECL_ASSEMBLER_NAME is set).
7913 (avr_fold_absfx): New static function.
7914 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
7915 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
7916 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
7917 AVR_BUILTIN_ABSLLK.
7918 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
7919 (abshk, absk, abslk, absllk): Provide as static inline functions.
7920
1f546bbb
MP
79212013-01-25 Marek Polacek <polacek@redhat.com>
7922
7923 PR tree-optimization/56035
7924 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
7925
7e184bd7
UB
79262012-01-24 Uros Bizjak <ubizjak@gmail.com>
7927
7928 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
7929 (*movtf_internal_rex64): Add (!o,C) alternative
7930 (*movxf_internal_rex64): Ditto.
7931 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
7932
f5ba49ac
SM
79332013-01-24 Shenghou Ma <minux.ma@gmail.com>
7934
7935 * doc/invoke.texi: fix typo.
7936 * doc/objc.texi: fix typo.
7937
a6343728
RS
79382013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
7939
7940 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
7941 for the first two alternatives.
7942
cd030c07
DN
79432013-01-24 Diego Novillo <dnovillo@google.com>
7944
77dc5297 7945 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
7946 (ggc-zone.o): Remove.
7947 * configure.ac: Remove option --with-gc.
7948 * configure: Re-generate.
7949 * doc/install.texi: Remove documentation for --with-gc.
7950 * gengtype.c (write_enum_defn): Remove. Update all users.
7951 (write_Types_process_field): Remove generation of gt_e_* argument.
7952 (output_type_enum): Remove. Update all users.
7953 (write_enum_defn): Remove. Update all users.
7954 (enum alloc_zone): Remove. Update all users.
77dc5297 7955 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
7956 * ggc-common.c (ggc_splay_alloc): Remove first argument.
7957 Update all callers.
7958 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 7959 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
7960 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
7961 Update all users.
aaf1e810 7962 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
7963 (struct alloc_zone): Remove.
7964 (ggc_internal_alloc_zone_stat): Remove.
7965 (ggc_internal_cleared_alloc_zone_stat): Remove.
7966 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
7967 (ggc_pch_count_object): Remove last argument. Update all users.
7968 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
7969 (struct alloc_zone): Remove.
7970 * ggc-zone.c: Remove.
77dc5297 7971 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
7972 (struct alloc_zone): Remove.
7973 (ggc_alloc_typed_stat): Remove.
7974 (ggc_alloc_typed): Remove.
7975 (ggc_splay_alloc): Remove first argument.
7976 (rtl_zone): Remove. Update all users.
7977 (tree_zone): Remove. Update all users.
7978 (tree_id_zone): Remove. Update all users.
7979 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 7980 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 7981 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 7982 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 7983
a861ffa4
GJL
79842013-01-24 Georg-Johann Lay <avr@gjlay.de>
7985
7986 * config/avr/avr.c (avr_out_fract): Make register numbers that
7987 might be outside of source operand signed.
7988
593c0ddd
UB
79892013-01-24 Uros Bizjak <ubizjak@gmail.com>
7990
7991 * config/i386/constraints.md (Yf): New constraint.
7992 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
7993 of f constraint to conditionaly disable x87 register preferences.
7994 (*movdf_internal): Ditto.
7995 (*movsf_internal): Ditto.
7996
e86c0101
SB
79972013-01-24 Steven Bosscher <steven@gcc.gnu.org>
7998
7999 PR inline-asm/55934
8000 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
8001 that have operands with impossible constraints.
8002 Add a FIXME for a speed-up opportunity.
8003 * lra-constraints.c (process_alt_operands): Verify that a class
8004 selected from constraints on asms is valid for the operand mode.
8005 (curr_insn_transform): Remove incorrect comment.
8006
f6fee35f
DE
80072013-01-23 David Edelsohn <dje.gcc@gmail.com>
8008
8009 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
8010 TOC operand is a valid symbol ref in the constant pool.
8011
80122013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 8013
aaf1e810 8014 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 8015
dc62d7d1
GJL
80162013-01-23 Georg-Johann Lay <avr@gjlay.de>
8017
8018 PR target/54222
8019 * config/avr/stdfix.h: New file.
8020 * t-avr (stdfix-gcc.h): New rule to build it.
8021 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
8022
2660d12d
KS
80232013-01-23 Kostya Serebryany <kcc@google.com>
8024
77dc5297
UB
8025 * config/darwin.h: remove dependency on
8026 CoreFoundation (asan on Mac OS).
2660d12d 8027
a70418fc
JJ
80282013-01-23 Jakub Jelinek <jakub@redhat.com>
8029
8030 PR target/49069
8031 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
8032 instead of cmpdi_operand for first comparison operand.
8033 Don't assert that comparison operands aren't both constants.
8034
47876a2a
JW
80352013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
8036
8037 * doc/install.texi (Downloading the Source): Update references to
8038 downloading separate components.
8039
80402013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
8041
8042 * doc/extend.texi (__int128): Improve grammar.
8043
47876a2a 80442013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
8045
8046 PR target/56028
8047 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
8048 alternative to (o,r).
8049 (*movdi_internal_rex64): Remove (!o,n) alternative.
8050 (DImode immediate->memory splitter): Remove.
8051 (DImode immediate->memory peephole2): Remove.
8052 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
8053 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
8054 alternative to (!o,*r).
8055 (*movtf_internal_sse): New pattern.
8056 (*movxf_internal_rex64): New pattern.
8057 (*movxf_internal): Disable for TARGET_64BIT.
8058 (*movdf_internal_rex64): Remove (!o,F) alternative.
8059
3a984f10
JJ
80602013-01-22 Jakub Jelinek <jakub@redhat.com>
8061
502498d5
JJ
8062 PR middle-end/56074
8063 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
8064 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
8065 * tree-vect-loop-manip.c (find_loop_location): Also ignore
8066 stmt locations where LOCATION_LOCUS of the stmt location is
8067 UNKNOWN_LOCATION or BUILTINS_LOCATION.
8068
3a984f10
JJ
8069 PR target/55686
8070 * config/i386/i386.md (UNSPEC_STOS): New.
8071 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
8072 *strsetqi_1): Add UNSPEC_STOS.
8073
fa817f7f
PC
80742013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
8075
8076 PR c++/56067
8077 * doc/invoke.texi: Remove left over -Wsynth example.
8078
8f498c1b
JJ
80792013-01-21 Jakub Jelinek <jakub@redhat.com>
8080
8081 PR tree-optimization/56051
8082 * fold-const.c (fold_binary_loc): Don't fold
8083 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
8084 a narrowing conversion, or widening conversion from signed
8085 to unsigned.
8086
47876a2a 80872013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
8088
8089 PR rtl-optimization/56023
8090 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
8091 dependent on debug instruction.
8092
5b9db1bc
MJ
80932013-01-21 Martin Jambor <mjambor@suse.cz>
8094
8095 PR middle-end/56022
8096 * function.c (allocate_struct_function): Call
8097 invoke_set_current_function_hook earlier.
8098
e8bb7d68
JJ
80992013-01-21 Jakub Jelinek <jakub@redhat.com>
8100
8101 * reload1.c (init_reload): Only initialize reload_obstack
8102 during the first call.
8103
616a4e32
MP
81042013-01-21 Marek Polacek <polacek@redhat.com>
8105
8106 * cfgloop.c (verify_loop_structure): Fix up grammar.
8107
4401981b
YHH
81082013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
8109
8110 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
8111 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
8112
8e87740b
RR
81132013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8114
8115 PR target/56058
8116 * config/arm/marvell-pj4.md: Update copyright year.
8117 Fix up use of alu to alu_reg and simple_alu_imm.
8118
47876a2a 81192013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
8120
8121 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
8122
89d56d79
VM
81232013-01-20 Vladimir Makarov <vmakarov@redhat.com>
8124
8125 PR target/55433
8126 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 8127 insn for secondary memory move when memory mode should be different.
89d56d79 8128
fe603553
JDA
81292013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8130
8131 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
8132 atomic_storedi_1): New patterns.
8133
01284895
VK
81342013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
8135
8136 btver2 pipeline descriptions.
8137 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
8138 descriptions.
8139 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 8140 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
8141 type attributes.
8142 * config/i386/btver2.md: New file describing btver2 pipelines.
8143
5630e3e1
JL
81442013-01-19 Andrew Pinski <apinski@cavium.com>
8145
8146 PR tree-optimization/52631
8147 * tree-ssa-sccvn (visit_use): Before looking up the original
8148 statement, try looking up the simplified expression.
8149
650ae806
AG
81502013-01-19 Anthony Green <green@moxielogic.com>
8151
8152 * config/moxie/moxie.c (moxie_expand_prologue): Set
8153 current_function_static_stack_size.
8154
e300ec2d
JJ
81552013-01-18 Jakub Jelinek <jakub@redhat.com>
8156
8157 PR tree-optimization/56029
8158 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
8159 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
8160
a3d7af04
SS
81612013-01-18 Sharad Singhai <singhai@google.com>
8162
8163 PR tree-optimization/55995
8164 * dumpfile.c (dump_loc): Print location only if available.
8165 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
8166
66aa7879
VM
81672013-01-18 Vladimir Makarov <vmakarov@redhat.com>
8168
8169 PR target/55433
8170 * lra-constraints.c (curr_insn_transform): Reuse original insn for
8171 secondary memory move.
8172 (inherit_reload_reg): Use rclass instead of cl for
8173 check_secondary_memory_needed_p.
8174
3f0fee7b
JJ
81752013-01-18 Jakub Jelinek <jakub@redhat.com>
8176
8177 PR middle-end/56015
8178 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 8179 the case where writing real complex part of target modifies op1.
3f0fee7b 8180
70c67693
JG
81812013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
8182
8183 * config/aarch64/aarch64-simd.md
8184 (aarch64_vcond_internal<mode>): Handle unordered cases.
8185 * config/aarch64/iterators.md (v_cmp_result): New.
8186
df8de9b3
YHH
81872013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
8188 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8189
8190 * config/arm/marvell-pj4.md: New file.
8191 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
8192 * config/arm/arm.md (generic_sched): Add marvell_pj4.
8193 (generic_vfp): Likewise.
8194 * config/arm/arm-cores.def: Add marvell-pj4.
8195 * config/arm/arm-tune.md: Regenerate.
8196 * config/arm/arm-tables.opt: Regenerate.
8197 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
8198 * doc/invoke.texi: Document marvell-pj4.
8199
be30c356
TB
82002013-01-18 Tejas Belagod <tejas.belagod@arm.com>
8201
8202 * config/aarch64/arm_neon.h: Map scalar types to standard types.
8203
0bfbca58 82042013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
8205
8206 PR debug/54114
8207 PR debug/54402
8208 PR debug/49888
8209 * var-tracking.c (negative_power_of_two_p): New.
8210 (global_get_addr_cache, local_get_addr_cache): New.
8211 (get_addr_from_global_cache, get_addr_from_local_cache): New.
8212 (vt_canonicalize_addr): Rewrite using the above. Adjust the
8213 heading comment.
8214 (vt_stack_offset_p): Remove.
8215 (vt_canon_true_dep): Always canonicalize loc's address.
8216 (clobber_overlapping_mems): Make sure we have a MEM.
8217 (local_get_addr_clear_given_value): New.
8218 (val_reset): Clear local cached entries.
8219 (compute_bb_dataflow): Create and release the local cache.
8220 Disable duplicate MEMs clobbering.
8221 (emit_notes_in_bb): Clobber MEMs likewise.
8222 (vt_emit_notes): Create and release the local cache.
8223 (vt_initialize, vt_finalize): Create and release the global
8224 cache, respectively.
1f6bc337 8225 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 8226
0bfbca58 82272013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
8228
8229 PR libmudflap/53359
8230 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
8231 not found in the symtab.
8232
0bfbca58 82332013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 8234
c350ba53 8235 PR debug/56006
3aa03517
AO
8236 PR rtl-optimization/55547
8237 PR rtl-optimization/53827
8238 PR debug/53671
8239 PR debug/49888
8240 * alias.c (offset_overlap_p): New, factored out of...
8241 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
8242 the conservative special case for symbolic constants. Don't
8243 adjust zero sizes on alignment.
8244
c664546f
JL
82452013-01-18 Bernd Schmidt <bernds@codesourcery.com>
8246
8247 PR rtl-optimization/52573
8248 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
8249 REG_UNUSED for the same register.
8250
1bd3f750
MP
82512013-01-17 Richard Biener <rguenther@suse.de>
8252 Marek Polacek <polacek@redhat.com>
8253
8254 PR rtl-optimization/55833
8255 * loop-unswitch.c (unswitch_loops): Move loop verification...
8256 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
8257 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
8258 Set it to true when we're removing a loop from hierarchy tree in
8259 an irreducible region.
8260 (fix_bb_placements): Adjust caller.
8261 (fix_loop_placements): Likewise.
8262
e52a8b71
GJL
82632013-01-17 Georg-Johann Lay <avr@gjlay.de>
8264
8265 * config/avr/builtins.def (DEF_BUILTIN): Factor out
8266 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
8267 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
8268 Remove ID. Adjust comments.
8269 * config/avr/avr-c.c (avr_builtin_name): Remove.
8270 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
8271 * config/avr/avr.c (avr_tolower): New static function.
8272 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
8273 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
8274 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
8275 default expansion.
8276
8386a7ea
JH
82772013-01-17 Jan Hubicka <jh@suse.cz>
8278
610fb637 8279 PR tree-optimization/55273
8386a7ea
JH
8280 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
8281
47876a2a 82822013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
8283
8284 PR target/55981
8285 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
8286 store through atomic_store<mode>_1.
8287 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
8288
8222c37e
MJ
82892013-01-17 Martin Jambor <mjambor@suse.cz>
8290
8291 PR tree-optimizations/55264
8292 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
8293 for virtual methods.
8294 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
8295 virtual methods before inlining is over.
8296 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
8297 virtual functions.
8298 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
8299 non-virtual.
8300
79f01c76
VM
83012013-01-16 Vladimir Makarov <vmakarov@redhat.com>
8302
8303 PR rtl-optimization/56005
8304 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
8305 pending reads for prefetch.
8306
d0b6bb1b
IB
83072013-01-16 Ian Bolton <ian.bolton@arm.com>
8308
aaf1e810 8309 * config/aarch64/aarch64.md
d0b6bb1b
IB
8310 (*cstoresi_neg_uxtw): New pattern.
8311 (*cmovsi_insn_uxtw): New pattern.
8312 (*<optab>si3_uxtw): New pattern.
8313 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
8314 (*<optab>si3_insn_uxtw): New pattern.
8315 (*bswapsi2_uxtw): New pattern.
8316
cb9cf03b
RB
83172013-01-16 Richard Biener <rguenther@suse.de>
8318
8319 * tree-inline.c (tree_function_versioning): Remove set but
8320 never used variable.
8321
2cfc56b9
RB
83222013-01-16 Richard Biener <rguenther@suse.de>
8323
8324 PR tree-optimization/55964
8325 * tree-flow.h (rename_variables_in_loop): Remove.
8326 (rename_variables_in_bb): Likewise.
8327 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
8328 (copy_loop_before): Adjust and delete update-ssa status.
8329 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 8330 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
8331 (rename_variables_in_loop): Remove.
8332 (slpeel_update_phis_for_duplicate_loop): Likewise.
8333 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
8334 use available cfg machinery instead of duplicating it.
8335 Update PHI nodes and perform poor-mans SSA update here.
8336 (slpeel_tree_peel_loop_to_edge): Adjust.
8337
c25a0c60
RB
83382013-01-16 Richard Biener <rguenther@suse.de>
8339
8340 PR tree-optimization/54767
8341 PR tree-optimization/53465
8342 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
8343 (vrp_visit_phi_node): For PHI arguments coming via backedges
8344 drop all symbolical range information.
8345 (execute_vrp): Compute backedges.
8346
04b535af
RB
83472013-01-16 Richard Biener <rguenther@suse.de>
8348
8349 * doc/install.texi: Update CLooG and ISL requirements to
8350 0.18.0 and 0.11.1.
8351
8b0a1e0b
CB
83522013-01-16 Christian Bruel <christian.bruel@st.com>
8353
8354 PR target/55301
8355 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
8356 (broken_move): Handle UNSPECV_SP_SWITCH_B.
8357 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
8358
83592013-01-16 DJ Delorie <dj@redhat.com>
8360
8361 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
8362 (UNSPECV_SP_SWITCH_E): New.
8363 (sp_switch_1): Change to an unspec.
8364 (sp_switch_2): Change to an unspec. Don't use post-inc when we
8365 replace $r15.
8366
83672013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
8368
8369 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
8370 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
8371 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
8372 (expand_mem_thread_fence): Ditto.
8373 (expand_mem_signal_fence): Ditto.
8374 (expand_atomic_load): Ditto.
8375 (expand_atomic_store): Ditto.
8376
0bfbca58 83772013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
8378
8379 PR rtl-optimization/55547
8380 PR rtl-optimization/53827
8381 PR debug/53671
8382 PR debug/49888
8383 * alias.c (memrefs_conflict_p): Set sizes to negative after
8384 AND adjustments.
8385
305e3ac1
JJ
83862013-01-15 Jakub Jelinek <jakub@redhat.com>
8387
8388 PR target/55940
8389 * function.c (thread_prologue_and_epilogue_insns): Always
8390 add crtl->drap_reg to set_up_by_prologue.set, even if
8391 stack_realign_drap is false.
8392
f78ac4f2
JBG
83932013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8394
8395 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
8396 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
8397 *call): Fix indention.
8398
a78a8cc4
TV
83992013-01-15 Tom de Vries <tom@codesourcery.com>
8400
8401 PR target/55876
8402 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
8403 Update comment.
8404
0e80383f
VM
84052013-01-15 Vladimir Makarov <vmakarov@redhat.com>
8406
305e3ac1 8407 PR rtl-optimization/55153
0e80383f
VM
8408 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
8409
207b5956
MJ
84102013-01-15 Martin Jambor <mjambor@suse.cz>
8411
8412 PR tree-optimization/55920
8413 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
8414 accesses as grp_to_be_debug_replaced.
8415
a7818b54
JJ
84162013-01-15 Jakub Jelinek <jakub@redhat.com>
8417
8418 PR tree-optimization/55920
8419 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
8420 there is non-useless type conversion needed from debug rhs to lhs,
8421 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
8422
b0fe107e
JM
84232013-01-15 Joseph Myers <joseph@codesourcery.com>
8424 Mikael Pettersson <mikpe@it.uu.se>
8425
8426 PR target/43961
8427 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
8428 Thumb.
8429 (ASM_OUTPUT_CASE_LABEL): Remove.
8430 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
8431 * final.c (shorten_branches): Update alignment of labels before
8432 jump tables if CASE_VECTOR_SHORTEN_MODE.
8433
34ab62ee
RB
84342013-01-15 Richard Biener <rguenther@suse.de>
8435
8436 PR bootstrap/55961
8437 * system.h: Do not include gmp.h for building host tools.
8438
783a3a05
RB
84392013-01-15 Richard Biener <rguenther@suse.de>
8440
8441 PR middle-end/55882
8442 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
8443 account for bitpos when computing alignment.
8444
3a579e09
VY
84452013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
8446
8447 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
8448 (ix86_target_macros_internal): Likewise.
8449
8450 * config/i386/i386.c (m_CORE2I7): Removed.
8451 (m_CORE_HASWELL): New macro.
8452 (m_CORE_ALL): Likewise.
8453 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
8454 (initial_ix86_arch_features): Likewise.
8455 (processor_target_table): Initializations for Core avx2.
8456 (cpu_names): New names "core-avx2".
8457 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
8458 PROCESSOR_CORE_HASWELL.
8459 (ix86_issue_rate): New case.
8460 (ia32_multipass_dfa_lookahead): Likewise.
8461 (ix86_sched_init_global): Likewise.
8462
8463 * config/i386/i386.h (TARGET_HASWELL): New macro.
8464 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
8465 (processor_type): New PROCESSOR_HASWELL.
8466
955f5a07
JJ
84672013-01-15 Jakub Jelinek <jakub@redhat.com>
8468
ff784829
JJ
8469 PR tree-optimization/55955
8470 * tree-vect-loop.c (vectorizable_reduction): Give up early on
8471 *SHIFT_EXPR and *ROTATE_EXPR codes.
8472
955f5a07
JJ
8473 PR tree-optimization/48766
8474 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
8475 -ftrapv disable -fwrapv.
8476
aeb8b4e9
GJL
84772013-01-14 Georg-Johann Lay <avr@gjlay.de>
8478
8479 PR target/55974
8480 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
8481 etc. to 1 and not to __flash.
8482 Use LL suffix for __INT24_MAX__ with -mint8.
8483 Use ULL suffix for __UINT24_MAX__ with -mint8.
8484
1c494c6a
GJL
84852013-01-14 Georg-Johann Lay <avr@gjlay.de>
8486
8487 * config/avr/avr-arch.h
8488 (struct base_arch_s): Use typedef avr_arch_t instead.
8489 (struct arch_info_s): Use typedef avr_arch_info_t instead.
8490 (struct mcu_type_s): Use typedef avr_mcu_t instead.
8491 * config/avr/avr.c: Same.
8492 * config/avr/avr-devices.c: Same.
8493 * config/avr/driver-avr.c: Same.
8494 * config/avr/gen-avr-mmcu-texi.c: Same.
8495 * config/avr/avr-mcus.def: Adjust comment.
8496
a50344cb
TB
84972013-01-14 Tejas Belagod <tejas.belagod@arm.com>
8498
88e784e6
UB
8499 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
8500 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 8501
47876a2a 85022013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
8503 Andi Kleen <ak@linux.intel.com>
8504
8505 PR target/55948
8506 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
8507 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
8508 memmodel flag.
8509
00892272
GJL
85102013-01-14 Georg-Johann Lay <avr@gjlay.de>
8511
8512 * config/avr/avr-stdint.h: Remove trailing blanks.
8513 * config/avr/avr-log.h: Same.
8514 * config/avr/avr-arch.h: Same.
8515 * config/avr/avr-devices.c: Same.
8516 * config/avr/avr-dimode.md: Same.
8517 * config/avr/predicates.md: Same.
8518 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 8519
00892272
GJL
8520 * config/avr/avr-protos.h: Same. And:
8521 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
8522 (init_cumulative_args): Rename to avr_init_cumulative_args.
8523 (expand_prologue): Rename to avr_expand_prologue.
8524 (expand_epilogue): Rename to avr_expand_epilogue.
8525 (adjust_insn_length): Rename to avr_adjust_insn_length.
8526 (notice_update_cc): Rename to avr_notice_update_cc.
8527 (final_prescan_insn): Rename to avr_final_prescan_insn.
8528 * config/avr/avr.c: Same.
8529 * config/avr/avr.h: Same.
8530 * config/avr/avr.md: Remove trailing blanks.
8531 (prologue): Use avr_expand_prologue.
8532 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
8533
7bb01996
RB
85342013-01-14 Richard Biener <rguenther@suse.de>
8535
8536 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
8537 verify_location, collect_subblocks): New functions.
8538 (verify_gimple_in_cfg): Verify that locations only reference
8539 BLOCKs in the functions BLOCK tree.
8540
2724573f
RB
85412013-01-14 Richard Biener <rguenther@suse.de>
8542
8543 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
8544 PHI argument.
8545 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
8546 unshare reference.
8547 (insert_out_of_ssa_copy_on_edge): Likewise.
8548 (rewrite_close_phi_out_of_ssa): Likewise.
8549 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
8550 debug expressions.
8551 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
8552 propagated constants.
8553 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
8554 can not be shared.
8555
9a0bbab6
GJL
85562013-01-14 Georg-Johann Lay <avr@gjlay.de>
8557
8558 * config/avr/avr-modes.def: Add GPL copyright notice.
8559
45805f17
UB
85602013-01-13 Uros Bizjak <ubizjak@gmail.com>
8561
8562 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
8563 MEMMODEL_MASK to determine memory model.
8564 (atomic_store<mode>): Ditto from operands[2].
8565 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
8566
9d60be38
JJ
85672013-01-13 Jakub Jelinek <jakub@redhat.com>
8568
8569 PR fortran/55935
45805f17 8570 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
8571 (fold_gimple_assign): Don't call unshare_expr here.
8572 (fold_ctor_reference): Call unshare_expr.
8573
e7f49d92
TG
85742013-01-13 Terry Guo <terry.guo@arm.com>
8575
aaf1e810
EB
8576 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
8577 * doc/fragments.texi: Document MULTILIB_REUSE.
8578 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 8579 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 8580 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
8581 (tmpmultilib4): Ditto.
8582 (multilib_reuse): New multilib argument.
8583
fbd03a27
RS
85842013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
8585
8586 * Makefile.in: Update copyright.
8587
b3681f13
TV
85882013-01-12 Tom de Vries <tom@codesourcery.com>
8589
8590 PR middle-end/55890
8591 * calls.c (expand_call): Check if arg_nr is valid.
8592
3f287e4b
MM
85932013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
8594
8595 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
8596 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
8597 documentation. Add missing '__' in front of
8598 __builtin_ia32_packssdw256.
3f287e4b 8599
1abcd5eb
AK
86002013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8601
8602 PR target/55719
8603 * config/s390/s390.c (s390_preferred_reload_class): Do not return
8604 NO_REGS for larl operands.
8605 (s390_reload_larl_operand): Use s390_load_address instead of
8606 emit_move_insn.
8607
980d0812
RB
86082013-01-11 Richard Biener <rguenther@suse.de>
8609
8610 * tree-cfg.c (verify_node_sharing_1): Split out from ...
8611 (verify_node_sharing): ... here.
8612 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
8613
7cb9fd07
EB
86142013-01-11 Eric Botcazou <ebotcazou@adacore.com>
8615
8616 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
8617 Substitute TREECHECKING.
8618 * configure: Regenerate.
8619 * Makefile.in (TREECHECKING): New.
8620
47876a2a 86212013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
8622
8623 PR tree-optimization/44061
8624 * tree-vrp.c (extract_range_basic): Compute zero as
8625 value-range for __builtin_constant_p of function parameters.
8626
d1e082c2
RS
86272013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
8628
45805f17 8629 Update copyright years.
d1e082c2 8630
f85021b0
VM
86312013-01-10 Vladimir Makarov <vmakarov@redhat.com>
8632
9d60be38 8633 PR rtl-optimization/55672
0160442c
VM
8634 * lra-eliminations.c (mark_not_eliminable): Permit addition with
8635 const to be eliminable.
f85021b0 8636
7a8b1ec4
DE
86372013-01-10 David Edelsohn <dje.gcc@gmail.com>
8638
8639 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
8640 * configure: Regenerate.
8641
ad2e5b71
RB
86422013-01-10 Richard Biener <rguenther@suse.de>
8643
ddf9322d 8644 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 8645
ffc5b2bb
RB
86462013-01-10 Richard Biener <rguenther@suse.de>
8647
8648 PR bootstrap/55792
8649 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
8650 locations for virtual PHI arguments.
8651 (rewrite_update_phi_arguments): Likewise.
8652
e1f674e4
JS
86532013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
8654
8655 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
8656 on to assembler.
8657
a57fc743
JJ
86582013-01-10 Jakub Jelinek <jakub@redhat.com>
8659
8660 PR tree-optimization/55921
8661 * tree-complex.c (expand_complex_asm): New function.
8662 (expand_complex_operations_1): Call it for GIMPLE_ASM.
8663
0ff4390d
AK
86642013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8665
8666 PR target/55718
8667 * config/s390/s390.c (s390_symref_operand_p)
8668 (s390_loadrelative_operand_p): Merge the two functions.
8669 (s390_check_qrst_address, print_operand_address): Add parameters
8670 to s390_loadrelative_operand_p invokation.
8671 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
8672 (s390_reload_larl_operand, s390_secondary_reload): Use
8673 s390_loadrelative_operand_p instead of s390_symref_operand_p.
8674 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
8675
6f557e0e
MS
86762013-01-09 Mike Stump <mikestump@comcast.net>
8677
8678 * dse.c (record_store): Remove unnecessary assert.
8679
7770c9e9
JH
86802013-01-09 Jan Hubicka <jh@suse.cz>
8681
8682 PR tree-optimization/55569
8683 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
8684 * cfgloop.h (scale_loop_profile): Likewise.
8685
a19b1432
JH
86862013-01-09 Jan Hubicka <jh@suse.cz>
8687
8688 PR lto/45375
ddf9322d
UB
8689 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
8690 functions.
a19b1432
JH
8691 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
8692
9a002da8
RS
86932013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
8694
8695 PR middle-end/55114
8696 * expr.h (maybe_emit_group_store): Declare.
8697 * expr.c (maybe_emit_group_store): New function.
8698 * builtins.c (expand_builtin_int_roundingfn): Call it.
8699 (expand_builtin_int_roundingfn_2): Likewise.
8700
511dcace
VM
87012013-01-09 Vladimir Makarov <vmakarov@redhat.com>
8702
e1f2b729 8703 PR rtl-optimization/55829
511dcace
VM
8704 * lra-constraints.c (match_reload): Add code for absent output.
8705 (curr_insn_transform): Add code for reloads of matched inputs
8706 without output.
8707
7b0fe4f4
UB
87082013-01-09 Uros Bizjak <ubizjak@gmail.com>
8709
8710 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
8711 attribute of movddup insn to DF.
8712 (*vec_interleave_lowv2df): Ditto.
8713 (vec_dupv2df): Ditto.
8714
870ca331
JH
87152013-01-09 Jan Hubicka <jh@suse.cz>
8716
8717 PR tree-optimiation/55875
8718 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
8719 EVERY_ITERATION parameter.
7b0fe4f4 8720 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
8721 (idx_infer_loop_bounds): Similarly here.
8722 (n_of_executions_at_most): Simplify
8723 to only test for cases where statement is dominated by the
7b0fe4f4 8724 particular bound; handle correctly the "postdominance" test.
870ca331
JH
8725 (scev_probably_wraps_p): Use max loop iterations info
8726 as a global bound first.
8727
6f575fe4 87282013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
8729 Nick Clifton <nickc@redhat.com>
8730
8731 * config/v850/v850.md (cbranchsf4): New pattern.
8732 (cstoresf4): New pattern.
8733 (cbranchdf4): New pattern.
8734 (cstoredf4): New pattern.
8735 (movsicc): Disallow floating point comparisons.
8736 (cmpsf_le_insn): Fix order of operators.
8737 (cmpsf_lt_insn): Likewise.
8738 (cmpsf_eq_insn): Likewise.
8739 (cmpdf_le_insn): Likewise.
8740 (cmpdf_lt_insn): Likewise.
8741 (cmpdf_eq_insn): Likewise.
8742 (cmpsf_ge_insn): Use LE comparison.
8743 (cmpdf_ge_insn): Likewise.
8744 (cmpsf_gt_insn): Use LT comparison.
8745 (cmpdf_gt_insn): Likewise.
8746 (cmpsf_ne_insn): Delete pattern.
8747 (cmpdf_ne_insn): Delete pattern.
8748 * config/v850/v850.c (v850_gen_float_compare): Use
8749 gen_cmpdf_eq_insn for NE comparison.
8750 (v850_float_z_comparison_operator)
8751 (v850_float_nz_comparison_operator): Move from here ...
8752 * config/v850/predicates.md: ... to here. Move GT and GE
8753 comparisons into v850_float_z_comparison_operator.
8754 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
8755 Delete prototype.
8756 (v850_float_nz_comparison_operator): Likewise.
8757
f0d54148
JDA
87582013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8759
8760 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
8761 with calls to gen_insvsi/gen_insvdi.
8762
8f01beca
VK
87632013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
8764
8765 * config/i386/i386.c (initial_ix86_tune_features): Set up
8766 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
8767
2aa579ad
JJ
87682013-01-09 Steven Bosscher <steven@gcc.gnu.org>
8769 Jakub Jelinek <jakub@redhat.com>
8770
8771 PR tree-optimization/48189
8772 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
8773 If nitercst is 0, don't predict the exit edge.
8774
6edc3e32 87752013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
8776
8777 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
8778 in asm_fprintf with reg_names.
8779 (aarch64_print_operand_address): Likewise.
8780 (aarch64_return_addr): Likewise.
8781 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
8782
f6f94d94
JDA
87832013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8784
8785 * config/pa/pa.h (VAL_U6_BITS_P): Define.
8786 (INT_U6_BITS): Likewise.
8787 * config/pa/predicates.md (uint6_operand): New predicate.
8788 (shift5_operand, shift6_operand): Likewise.
8789 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
8790 arith32_operand.
8791 (lshrdi3): Use shift6_operand.
8792 (shrpsi4, shrpdi4): New insn patterns.
8793 (extzv): Delete expander.
8794 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
8795 predicates in unamed zero extract patterns. Tighten common constraint.
8796 (extv): Delete expander.
8797 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
8798 predicates in unamed sign extract patterns. Tighten common constraint.
8799 (insv): Delete expander.
8800 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
8801 predicates in unamed insert patterns. Tighten common constraint.
8802 Change uint32_operand predicate to uint6_operand predicate in unamed
8803 DImode pattern to insert constant values of type 1...1xxxx.
8804
36b72910
JH
88052013-01-04 Jan Hubicka <jh@suse.cz>
8806
8807 PR tree-optimization/55823
7b0fe4f4
UB
8808 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
8809 issue.
36b72910 8810
47876a2a 88112013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
8812 Uros Bizjak <ubizjak@gmail.com>
8813
8814 PR rtl-optimization/55845
8815 * df-problems.c (can_move_insns_across): Stop scanning at
8816 volatile_insn_p source instruction or give up if
8817 across_from .. across_to range contains any volatile_insn_p
8818 instructions.
8819
4369c11e
TB
88202013-01-08 Tejas Belagod <tejas.belagod@arm.com>
8821
7b0fe4f4
UB
8822 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
8823 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
8824 Declare.
4369c11e 8825 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 8826 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 8827
aeb7e7c1
JJ
88282013-01-08 Jakub Jelinek <jakub@redhat.com>
8829
8830 PR fortran/55341
8831 * asan.c (asan_clear_shadow): New function.
8832 (asan_emit_stack_protection): Use it.
8833
a02ad1aa
TB
88342013-01-08 Tejas Belagod <tejas.belagod@arm.com>
8835
8836 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
8837 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
8838 with tab instead of space.
8839
f90d87f5
NC
88402013-01-08 Nick Clifton <nickc@redhat.com>
8841
8842 * config/rl78/rl78.c (rl78_expand_prologue): Always select
8843 register bank 0 at the start of an interrupt handler.
83ffd964
NC
8844 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
8845 MDBH registers.
f90d87f5 8846
385eb93d
JG
88472013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
8848
8849 * config/aarch64/aarch64-simd.md
8850 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
8851 (aarch64_simd_bsl): Likewise.
8852 (aarch64_vcond_internal<mode>): Likewise.
8853 (vcond<mode><mode>): Likewise.
8854 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
8855 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
8856
4dcd1054
JG
88572013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
8858
8859 * config/aarch64/aarch64-builtins.c
8860 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
8861
4267a4a6
MJ
88622013-01-08 Martin Jambor <mjambor@suse.cz>
8863
8864 PR debug/55579
8865 * tree-sra.c (analyze_access_subtree): Return true also after
8866 potentially creating a debug-only replacement.
8867
5f4e6de3
JJ
88682013-01-08 Jakub Jelinek <jakub@redhat.com>
8869
3138f224
JJ
8870 PR middle-end/55890
8871 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
8872
5f4e6de3
JJ
8873 PR tree-optimization/54120
8874 * tree-vrp.c (range_fits_type_p): Don't allow
8875 src_precision < precision from signed vr to unsigned_p
8876 if vr->min or vr->max is negative.
8877 (simplify_float_conversion_using_ranges): Test can_float_p
8878 against CODE_FOR_nothing.
8879
f3ef18ff
JJ
88802013-01-08 Jakub Jelinek <jakub@redhat.com>
8881 Richard Biener <rguenther@suse.de>
8882
8883 PR middle-end/55851
8884 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
8885 types instead of just INTEGER_TYPE types.
8886
25c210f9
MK
88872013-01-07 Mark Kettenis <kettenis@openbsd.org>
8888
8889 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
8890 TF_SIZE): Define.
f90d87f5 8891
81826a7b
SE
88922013-01-07 Steve Ellcey <sellcey@mips.com>
8893
8894 PR target/42661
8895 * config/mips/mips.opt: Change mad to mmad to match documentation.
8896
35678514
GJL
88972013-01-07 Georg-Johann Lay <avr@gjlay.de>
8898
8899 PR target/55897
8900 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
8901 .progmemx.data now.
8902
e5669488
GJL
89032013-01-07 Georg-Johann Lay <avr@gjlay.de>
8904
8905 PR target/55897
8906 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
8907 (avr_addrspace_t): Add .section_name field.
8908 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
8909 array size.
8910 (avr_addrspace): Same. Initialize .section_name. Remove last
8911 NULL entry. Put __memx into .progmemx.data.
8912 (progmem_section_prefix): Remove.
8913 (avr_asm_init_sections): No need to initialize progmem_section.
8914 (avr_asm_named_section): Use avr_addrspace[].section_name to get
8915 section name prefix.
8916 (avr_asm_select_section): Ditto. And use get_unnamed_section to
8917 retrieve the progmem section.
8918 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
8919 boundary to run over avr_addrspace[].
8920 (avr_register_target_pragmas): Ditto.
8921
656e6f37
JJ
89222013-01-06 Jakub Jelinek <jakub@redhat.com>
8923
8924 * varasm.c (output_constant_def_contents): For asan_protect_global
8925 protected strings, adjust DECL_ALIGN if needed, before testing for
8926 anchored symbols.
8927 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
8928 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
8929 normal decls.
8930 (output_object_block): For asan protected decls, emit asan padding
8931 after their contents.
8932 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
8933 (asan_finish_file): Test it here instead.
8934
6edc3e32
UB
89352013-01-07 Nick Clifton <nickc@redhat.com>
8936 Matthias Klose <doko@debian.org>
8937 Doug Kwan <dougkwan@google.com>
8938 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
8939
8940 PR driver/55470
8941 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
8942
8943 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
8944
8945 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
8946
7b0fe4f4 8947 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
8948
8949 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
8950
2a095093
GJL
89512013-01-07 Georg-Johann Lay <avr@gjlay.de>
8952
f3b503f4 8953 PR target/54461
2a095093
GJL
8954 * doc/install.texi (Cross-Compiler-Specific Options): Document
8955 --with-avrlibc.
8956
383f9b34
TB
89572013-01-07 Tejas Belagod <tejas.belagod@arm.com>
8958
8959 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
8960 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
8961 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
8962 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
8963 vqmovun_high_s64): Fix source operand number and update copyright.
8964
3626621a
RB
89652013-01-07 Richard Biener <rguenther@suse.de>
8966
8967 PR middle-end/55890
8968 * gimple.h (gimple_call_builtin_p): New overload.
8969 * gimple.c (validate_call): New function.
8970 (gimple_call_builtin_p): Likewise.
8971 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8972 Use gimple_call_builtin_p.
8973 (find_func_clobbers): Likewise.
8974 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
8975 (strlen_optimize_stmt): Likewise.
8976
8b2ea410
JG
89772013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
8978
8979 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
8980 (vld1q_dup_*): Likewise.
8981 (vld1_*): Likewise.
8982 (vld1q_*): Likewise.
8983 (vld1_lane_*): Likewise.
8984 (vld1q_lane_*): Likewise.
8985
9713d329
RB
89862013-01-07 Richard Biener <rguenther@suse.de>
8987
8988 * lto-streamer.h (LTO_minor_version): Bump to 2.
8989
3520f7cc
JG
89902013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
8991
8992 * config/aarch64/aarch64-protos.h
8993 (aarch64_const_double_zero_rtx_p): Rename to...
8994 (aarch64_float_const_zero_rtx_p): ...this.
8995 (aarch64_float_const_representable_p): New.
8996 (aarch64_output_simd_mov_immediate): Likewise.
8997 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
8998 move immediate case.
8999 * config/aarch64/aarch64.c
9000 (aarch64_const_double_zero_rtx_p): Rename to...
9001 (aarch64_float_const_zero_rtx_p): ...this.
9002 (aarch64_print_operand): Allow printing of new constants.
9003 (aarch64_valid_floating_const): New.
9004 (aarch64_legitimate_constant_p): Check for valid floating-point
9005 constants.
9006 (aarch64_simd_valid_immediate): Likewise.
9007 (aarch64_vect_float_const_representable_p): New.
9008 (aarch64_float_const_representable_p): Likewise.
9009 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
9010 (aarch64_output_simd_mov_immediate): New.
9011 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
9012 (*movdf_aarch64): Likewise.
9013 * config/aarch64/constraints.md (Ufc): New.
9014 (Y): call aarch64_float_const_zero_rtx.
9015 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
9016
e167c04d
RB
90172013-01-07 Richard Biener <rguenther@suse.de>
9018
9019 PR tree-optimization/55888
9020 PR tree-optimization/55862
9021 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
9022 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
9023 not if it is contained therein.
9024
0139aaab
GJL
90252013-01-07 Georg-Johann Lay <avr@gjlay.de>
9026
9027 * config/avr/t-avr: Typo.
9028
4a176b23
GJL
90292013-01-07 Georg-Johann Lay <avr@gjlay.de>
9030
9031 PR55243
9032 * config/avr/t-avr: Don't automatically rebuild
9033 $(srcdir)/config/avr/t-multilib
9034 $(srcdir)/config/avr/avr-tables.opt
9035 $(srcdir)/doc/avr-mmcu.texi
9036 (avr-mcus): New phony target to build them on request.
9037 (s-avr-mlib, s-avr-mmcu-texi): Remove.
9038 * avr/avr-mcus.def: Adjust comments.
9039
c7afdc98
UB
90402013-01-07 Uros Bizjak <ubizjak@gmail.com>
9041
9042 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
9043
1ab05c31
RS
90442013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
9045
9046 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
9047
488e3acc
RS
90482013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
9049
9050 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
9051
a89599d2
DE
90522013-01-05 David Edelsohn <dje.gcc@gmail.com>
9053
9054 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
9055 to generate profiling.
9056 * config/rs6000/aix64.h (LIB_SPEC): Same.
9057
70f09188
AP
90582013-01-04 Andrew Pinski <apinski@cavium.com>
9059
9060 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
9061 New function.
9062 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
9063
918d445f
UB
90642013-01-04 Uros Bizjak <ubizjak@gmail.com>
9065
9066 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
9067 unconditionally.
9068 (ix86_expand_move): Ditto.
9069 (ix86_zero_extend_to_Pmode): Ditto.
9070 (ix86_expand_call): Ditto.
9071 (ix86_expand_special_args_builtin): Ditto.
9072 (ix86_expand_builtin): Ditto.
9073
361618ec
RB
90742013-01-04 Richard Biener <rguenther@suse.de>
9075
9076 PR tree-optimization/55862
9077 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
9078 translating them through PHI nodes.
9079
87eab554
MJ
90802013-01-04 Martin Jambor <mjambor@suse.cz>
9081
9082 PR tree-optimization/55755
9083 * tree-sra.c (sra_modify_assign): Do not check that an access has no
9084 children when trying to avoid producing a VIEW_CONVERT_EXPR.
9085
33879b9f
MP
90862013-01-04 Marek Polacek <polacek@redhat.com>
9087
9088 PR middle-end/55859
9089 * opts.c (default_options_optimization): Clarify error message.
9090
3068819a
RB
90912013-01-04 Richard Biener <rguenther@suse.de>
9092
9093 PR middle-end/55863
9094 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
9095 reassociation.
9096
0e4ae794
JDA
90972013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9098
9099 PR target/53789
9100 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
9101 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
9102 references.
0e4ae794 9103
65c88cef
RH
91042013-01-03 Richard Henderson <rth@redhat.com>
9105
9106 * config/i386/i386.c (ix86_expand_move): Always assign to op1
9107 after eliminating TLS symbols.
9108
8ac16127
MG
91092013-01-03 Marc Glisse <marc.glisse@inria.fr>
9110
9111 PR bootstrap/50167
9112 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
9113 * graphite-poly.c (debug_gmp_value): Likewise.
9114
bb664f09
UB
91152013-01-03 Uros Bizjak <ubizjak@gmail.com>
9116
9117 PR target/55712
9118 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
9119 selected code model, define __code_mode_small__, __code_model_medium__,
9120 __code_model_large__, __code_model_32__ or __code_model_kernel__.
9121 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
9122 xchg temporary register with %k. Declare temporary register as
9123 early clobbered.
9124 [__x86_64__]: For medium and large code models, preserve %rbx register.
9125
bcf1ef00
RB
91262013-01-03 Richard Biener <rguenther@suse.de>
9127
0506634a 9128 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
9129 (dump_subscript): Adjust.
9130 (finalize_ddr_dependent): Do not dump redundant info.
9131 (analyze_siv_subscript): Adjust.
9132 (subscript_dependence_tester): Likewise.
9133 (compute_affine_dependence): Likewise.
9134
59fd17e3
RB
91352013-01-03 Richard Biener <rguenther@suse.de>
9136
9137 Revert
9138 2013-01-03 Richard Biener <rguenther@suse.de>
9139
9140 PR tree-optimization/55857
9141 * tree-vect-stmts.c (vectorizable_load): Do not setup
9142 re-alignment for invariant loads.
9143
9144 2013-01-02 Richard Biener <rguenther@suse.de>
9145
9146 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 9147 invariant load do not generate a vector load from the scalar location.
59fd17e3 9148
595c2679
RB
91492013-01-03 Richard Biener <rguenther@suse.de>
9150
9151 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
9152 for not vectorizing.
9153 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
9154 not build INDIRECT_REFs, call get_name once only.
9155 (vect_create_data_ref_ptr): Likewise. Dump base object kind
9156 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
9157
90bb7d7a
RB
91582013-01-03 Richard Biener <rguenther@suse.de>
9159
9160 PR tree-optimization/55857
9161 * tree-vect-stmts.c (vectorizable_load): Do not setup
9162 re-alignment for invariant loads.
9163
f09b77ca
RB
91642013-01-03 Richard Biener <rguenther@suse.de>
9165
9166 PR lto/55848
9167 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
9168 prefer a built-in decl.
9169
3461a16e
JJ
91702013-01-03 Jakub Jelinek <jakub@redhat.com>
9171
df8e2b4f
JJ
9172 * gcc.c (process_command): Update copyright notice dates.
9173 * gcov.c (print_version): Likewise.
9174 * gcov-dump.c (print_version): Likewise.
9175
3461a16e
JJ
9176 PR rtl-optimization/55838
9177 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
9178 iv0.step, iv1.step and step.
9179
8b5546d6
JJ
91802013-01-03 Jakub Jelinek <jakub@redhat.com>
9181 Marc Glisse <marc.glisse@inria.fr>
9182
9183 PR tree-optimization/55832
9184 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
9185 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
9186 integer_{one,zero}_node.
9187
8ab1d2e9
JJ
91882013-01-03 Jakub Jelinek <jakub@redhat.com>
9189
9190 PR debug/54402
9191 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
9192 * var-tracking.c (reverse_op): Don't add reverse ops to
9193 VALUEs that have already
0506634a 9194 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 9195
5b9ad1d4
GP
91962013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
9197
9198 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
9199
e25a6711
TJ
92002013-01-02 Teresa Johnson <tejohnson@google.com>
9201
9202 * dumpfile.c (dump_loc): Print filename with location.
9203 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
9204 new location_t parameter to emit complete unroll message with
9205 new dump framework.
9206 (canonicalize_loop_induction_variables): Compute loops location
9207 and pass to try_unroll_loop_completely.
9208 * loop-unroll.c (report_unroll_peel): New function.
9209 (peel_loops_completely): Use new dump format with location
9210 for main dumpfile message, and invoke report_unroll_peel on success.
9211 (decide_unrolling_and_peeling): Ditto.
9212 (decide_peel_once_rolling): Remove old dumpfile message subsumed
9213 by report_unroll_peel.
9214 (decide_peel_completely): Ditto.
9215 (decide_unroll_constant_iterations): Ditto.
9216 (decide_unroll_runtime_iterations): Ditto.
9217 (decide_peel_simple): Ditto.
9218 (decide_unroll_stupid): Ditto.
9219 * cfgloop.c (get_loop_location): New function.
9220 * cfgloop.h (get_loop_location): Declare.
9221
77878621
ST
92222013-01-02 Sriraman Tallam <tmsriram@google.com>
9223
9224 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
9225 NULL.
9226
9e65d03e
JDA
92272013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9228
9229 PR middle-end/55198
9230 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
9231 BLKmode objects when EXPAND_MEMORY is specified.
9232
6a7da30f
ST
92332013-01-02 Sriraman Tallam <tmsriram@google.com>
9234
9235 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
9236 in loop predicate.
9237 (fold_builtin_cpu): Do not share cpu model decls across statements.
9238
e78167f2
JM
92392013-01-02 Jason Merrill <jason@redhat.com>
9240
9241 PR c++/55804
9242 * tree.c (build_array_type_1): Revert earlier change.
9243
8c075fb4
YZ
92442013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
9245
9246 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
9247 "cortex-a57".
9248 * config/aarch64/aarch64-tune.md: Re-generate.
9249
0682ed3e
RB
92502013-01-02 Richard Biener <rguenther@suse.de>
9251
9252 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 9253 invariant load do not generate a vector load from the scalar location.
0682ed3e 9254
b8f6a302
RB
92552013-01-02 Richard Biener <rguenther@suse.de>
9256
9257 PR bootstrap/55784
9258 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
9259 * configure: Regenerate.
9260
04b80dbb
RS
92612013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
9262
9263 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
9264 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
9265 (expand_builtin_int_roundingfn_2): Keep the original target around
9266 for the fallback case.
9267
635b0b0c
RS
92682013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
9269
9270 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
9271 to be clear for sign changes.
9272
42d57399
JH
92732013-01-01 Jan Hubicka <jh@suse.cz>
9274
9275 * ipa-inline-analysis.c: Fix formatting.
9276
5bb6669d
JJ
92772013-01-01 Jakub Jelinek <jakub@redhat.com>
9278
9279 PR tree-optimization/55831
9280 * tree-vect-loop.c (get_initial_def_for_induction): Use
9281 gsi_after_labels instead of gsi_start_bb.
ad41bd84 9282\f
86a2db33 9283Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
9284
9285Copying and distribution of this file, with or without modification,
9286are permitted in any medium without royalty provided the copyright
9287notice and this notice are preserved.