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