]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
gimple-pretty-print.c (debug_gimple_stmt): Do not print extra newline.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
451dabda
RB
12013-04-08 Richard Biener <rguenther@suse.de>
2
3 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
4 extra newline.
5 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
6 determined vector type.
7 (vect_analyze_data_refs): Likewise.
8 (vect_get_new_vect_var): Adjust.
9 (vect_create_destination_var): Preserve SSA name versions.
10 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
11 not dump anything here.
12
3b088b47
JR
132013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
14
15 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
16 Add member lr_slot_known.
17 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
18 if necessary.
19 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
20 Remove code that sets lr_slot_offset according to what a previous
21 version of epiphany_emit_save_restore used to do.
22 (epiphany_emit_save_restore): When doing an lr save or restore,
23 set/verify lr_slot_known and lr_slot_offset.
24
d8484d41
XQ
252013-04-08 Xinyu Qi <xyqi@marvell.com>
26
27 PR target/54338
28 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
29 in ALL_REGS.
30
481be1c4
RB
312013-04-08 Richard Biener <rguenther@suse.de>
32
33 * alias.c (find_base_term): Fix thinko in previous change.
34
401f3a81
JJ
352013-04-08 Jakub Jelinek <jakub@redhat.com>
36
37 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
38 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
39 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
40 if possible to compute val.
41 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
42 For QImode integers don't require anything about precision. Use
43 const_with_all_bytes_same to find out if the constant doesn't have
44 repeated bytes in it.
45
03ed99a8
AK
462013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
47
48 * config/s390/s390.c (s390_expand_insv): Only accept insertions
49 within mode size.
50
781b2e62
MP
512013-04-08 Marek Polacek <polacek@redhat.com>
52
53 PR rtl-optimization/48182
54 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
55 value to 1.
56
27e430a2
JDA
572013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
58
59 PR target/55487
60 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
61 nuses, make sure we have a label.
62
4902aa64
BS
632013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
64
65 PR target/56843
66 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
67 (rs6000_emit_swdiv_low_precision): Remove.
68 (rs6000_emit_swdiv): Rewrite to handle between one and four
69 iterations of Newton-Raphson generally; modify required number of
70 iterations for some cases.
71 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
72
7bca81dc
SB
732013-04-05 Steven Bosscher <steven@gcc.gnu.org>
74
75 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
76 set-but-unused variable.
77
78 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
79 basic blocks of released function bodies garbage-collectable.
80
81 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
82 (struct rtl_opt_pass): Add TODO_df_finish.
83
84 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
85
4542a38a
GY
862013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
87
88 * config/arm/constraints.md (q): New constraint.
89 * config/arm/ldrdstrd.md: New file.
90 * config/arm/arm.md (ldrdstrd.md) New include.
91 (arm_movdi): Use "q" instead of "r" constraint
92 for double-word memory access.
93 (movdf_soft_insn): Likewise.
94 * config/arm/vfp.md (movdi_vfp): Likewise.
95 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
96 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
97 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
98 (mem_ok_for_ldrd_strd): Likewise.
99 (output_move_double): Update assertion.
100
2385b218
GY
1012013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
102
103 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
104
75fe1cb5
GY
1052013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
106
107 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
108 define_insn_and_split.
109 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
110
dd660e8e
GY
1112013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
112
113 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
114 define_insn_and_split.
115 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
116 (shiftsi3_compare): New pattern.
117 (rrx): New pattern.
118 * config/arm/unspecs.md (UNSPEC_RRX): New.
119
045e472c
GY
1202013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
121
122 * config/arm/arm.md (negdi_extendsidi): New pattern.
123 (negdi_zero_extendsidi): Likewise.
124
3f3bf1a8
GY
1252013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
126
127 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
128 define_insn_and_split.
129 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
130 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
131
b0b49556
GY
1322013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
133
134 * config/arm/arm.md (arm_subdi3): Convert define_insn into
135 define_insn_and_split.
136 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
137 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
138
d633dd84
GY
1392013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
140
141 * config/arm/arm.md (subsi3_carryin): New pattern.
142 (subsi3_carryin_const): Likewise.
143 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
144 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
145
f4499066
GY
1462013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
147
148 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
149
ceef6fd9
GY
1502013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
151
152 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 153 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 154
ddbdd8a7
KT
1552013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
156
157 * config/arm/arm.c (arm_expand_builtin): Change fcode
158 type to unsigned int.
159
8456d78a
RR
1602013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
161
162 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
163
526c230f
ILT
1642013-04-04 Ian Lance Taylor <iant@google.com>
165
166 * doc/standards.texi (Standards): The Go frontend supports the Go
167 1 language standard.
168
3cfbe04d
SB
1692013-04-04 Steven Bosscher <steven@gcc.gnu.org>
170
171 PR middle-end/56729
172 * df-scan.c (df_insn_delete): Disable failing assert.
173
dfa3f8d0
KT
1742013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
175
176 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
177 New function prototype.
178 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
179 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
180 (arm_builtin_vectorized_function): New function.
181
f7837758
KT
1822013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
183
184 * config/arm/arm_neon_builtins.def: New file.
185 * config/arm/arm.c (neon_builtin_data): Move contents to
186 arm_neon_builtins.def.
187 (enum arm_builtins): Include neon builtin definitions.
188 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
189 * config/arm/t-arm (arm.o): Add dependency on
190 arm_neon_builtins.def.
191
39c1b6db
MP
1922013-04-04 Marek Polacek <polacek@redhat.com>
193
194 PR tree-optimization/48186
195 * predict.c (maybe_hot_frequency_p): Return false if
196 HOT_BB_FREQUENCY_FRACTION is 0.
197 (cgraph_maybe_hot_edge_p): Likewise.
198
314f64eb
RB
1992013-04-04 Richard Biener <rguenther@suse.de>
200
201 PR tree-optimization/56826
202 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
203 more accurately.
204
51a905b2
RB
2052013-04-04 Richard Biener <rguenther@suse.de>
206
207 PR tree-optimization/56213
208 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
209 (vect_analyze_data_refs): Allow all non-nested loads as
210 strided loads.
211
f1bf4f3a
RB
2122013-04-04 Richard Biener <rguenther@suse.de>
213
214 PR tree-optimization/56837
215 * tree-loop-distribution.c (classify_partition): For non-zero
216 values require that the value has the same precision as its
217 mode to be useful as memset value.
218
0bca7ded
NC
2192013-04-03 Nick Clifton <nickc@redhat.com>
220
221 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5
222 architectures.
223 (fmssf4): Use fmsf.s on E3V5 architectures.
224 (fnmasf4): Use fnmaf.s on E3V5 architectures.
225 (fnmssf4): Use fnmsf.s on E3V5 architectures.
226
b4019227
JL
2272013-04-03 Jeff Law <law@redhat.com>
228
229 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
230 (lra-eliminations.o): Likewise.
231
f57ddb5b
TJ
2322013-04-03 Teresa Johnson <tejohnson@google.com>
233
234 * gcov-io.c (compute_working_sets): Moved most of body of old
235 compute_working_sets here from profile.c.
236 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
237 (gcov_working_set_t): Moved typedef here from basic-block.h
238 (compute_working_set): Declare.
239 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
240 (get_working_sets): Renamed from compute_working_set,
241 replace most of body with call to new compute_working_sets.
242 (get_exec_counts): Replace call to compute_working_sets
243 to get_working_sets.
244 * profile.h (get_working_sets): Renamed from
245 compute_working_set.
246 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
247 to get_working_sets.
248 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
249 * gcov-dump.c (dump_working_sets): New function.
250
5e0919f1
KZ
2512013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
252
253 * hwint.c (sext_hwi, zext_hwi): New functions.
254 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
255 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
256 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
257 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
258 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
259 (sext_hwi, zext_hwi): New functions.
0bca7ded 260
be672e08
JL
2612013-04-03 Jeff Law <law@redhat.com>
262
263 PR tree-optimization/56799
264 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
265 back test for widening conversion erroneously dropped in prior
266 change.
267
9d821fa5
KT
2682013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
269
270 PR target/56809
271 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
272 instead of next_real_insn.
273
71c581e7
MP
2742013-04-03 Marek Polacek <polacek@redhat.com>
275
276 PR sanitizer/55702
277 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN
278 functions.
279
4a32ef80
KT
2802013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
281
282 PR target/56809
283 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
284 next_real_insn.
285 (thumb1_output_casesi): Likewise.
286 (thumb2_output_casesi): Likewise.
287
1b2253d4
RB
2882013-04-03 Richard Biener <rguenther@suse.de>
289
290 PR tree-optimization/56817
291 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
292 Split out ...
293 (tree_unroll_loops_completely_1): ... new function to manually
294 walk the loop tree, properly defering outer loops of unrolled
295 loops to later iterations.
296
38000232
MG
2972013-04-03 Marc Glisse <marc.glisse@inria.fr>
298
299 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
300 (vectorizable_load): Likewise.
301 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
302 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
303
3fa35298
MG
3042013-04-03 Marc Glisse <marc.glisse@inria.fr>
305
306 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
307 BIT_FIELD_REF.
308
b3d45ff0
UW
3092013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
310
311 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
312
ec9202a8
BC
3132013-04-03 Bin Cheng <bin.cheng@arm.com>
314
315 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
316
6805bd36
MG
3172013-04-03 Marc Glisse <marc.glisse@inria.fr>
318
319 PR tree-optimization/56790
320 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant folding.
321
da694a77
MG
3222013-04-03 Marc Glisse <marc.glisse@inria.fr>
323
324 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
325 Handle VEC_MERGE.
326 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
327 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
328 equal arguments.
329
4e7d7b3d
JJ
3302013-04-03 Jakub Jelinek <jakub@redhat.com>
331
332 PR c/19449
333 * tree.h (force_folding_builtin_constant_p): New decl.
334 * builtins.c (force_folding_builtin_constant_p): New variable.
335 (fold_builtin_constant_p): Fold immediately also if
336 force_folding_builtin_constant_p.
337
e6c9d234
RB
3382013-04-03 Richard Biener <rguenther@suse.de>
339
340 PR tree-optimization/56812
341 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
342 DRs of the same interleaving chain are independent.
343
984d07dd
JM
3442013-04-02 Jason Merrill <jason@redhat.com>
345
346 * gdbinit.in (pbb): Use debug fn.
347
622849c9
LC
3482013-04-02 Lawrence Crowl <crowl@google.com>
349
350 * sese.h (struct ivtype_map_elt_s): Remove unused.
351 (extern debug_ivtype_map): Remove unused.
352 (extern eq_ivtype_map_elts): Remove unused.
353 * sese.c (debug_ivtype_map): Removed unused.
354 (debug_ivtype_map_1): Removed unused.
355 (debug_ivtype_elt): Remove unused.
356 (eq_ivtype_map_elts): Remove unused.
357
358
82c0e1a0
KT
3592013-04-02 Kai Tietz <ktietz@redhat.com>
360
361 PR target/52790
362 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
363 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
364 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static function.
365 (legitimize_pe_coff_symbol): Likewise.
366 (is_imported_p): New helper-function.
367 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
368 for Windows x64 targets.
369 (ix86_expand_prologue): Optimize for pe-coff targets.
370 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
371 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
372 medium/large code-model.
373 (legitimize_pic_address): Likewise.
374 (legitimize_tls_address): Likewise.
375 (ix86_expand_call): Likewise.
376 (x86_output_mi_thunk): Likewise.
377 (get_dllimport_decl): Add new beimport argument.
378 (construct_plt_address): Don't assert for x64 pe-coff targets.
379 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
380 targets.
381 (SYMBOL_FLAG_STUBVAR): New macro.
382 (SYMBOL_REF_STUBVAR_P): Likewise.
383 * config/i386/winnt.c (stub_list): New structure.
384 (stub_head): New local variable.
385 (i386_pe_record_stub): New function.
386 (i386_pe_file_end): Emit refptr-stubs.
387
5d751b0c
JJ
3882013-04-02 Jakub Jelinek <jakub@redhat.com>
389
09bb4c99
JJ
390 PR rtl-optimization/56745
391 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
392 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
393
a1d8947a
JJ
394 PR c++/34949
395 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
396 and both of them are MEM_REFs, just compare first argument for
397 equality and attempt to deal even with differing offsets.
398
5d751b0c
JJ
399 PR c++/34949
400 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
401 of gimple_clobber_p to be MEM_REF.
402 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
403 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
404 after gimplification.
405 * asan.c (get_mem_ref_of_assignment): Don't instrument
406 gimple_clobber_p stmts.
407 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
408 gimple_clobber_p stmt if they have MEM_REF lhs and
409 are dead because of another gimple_clobber_p stmt.
410 * tree-ssa-live.c (clear_unused_block_pointer): Treat
411 gimple_clobber_p stmts like debug stmts.
412 (remove_unused_locals): Remove clobbers with MEM_REF lhs
413 that refer to unused VAR_DECLs or uninitialized values.
414 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
415 gimple_clobber_p stmts if they refer to removed parameters.
416 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
417 formatting.
418
e594716a
UB
4192013-04-02 Uros Bizjak <ubizjak@gmail.com>
420
421 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
422 using SWI48 mode attribute.
423
7a80735b
WM
4242013-04-02 Wei Mi <wmi@google.com>
425
426 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
427 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
428 *<rotate_insn><mode>3_mask in i386.md.
429
f423a9e4
AI
4302013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
431
432 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
433
90eb75f2
RB
4342013-04-02 Richard Biener <rguenther@suse.de>
435
436 PR tree-optimization/56778
437 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
438 Runtime alias tests are not supported for gather loads.
439 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
440 stmts referenced from SSA operands before updating SSA form.
441
d8c69a92
IC
4422013-04-02 Ian Caulfield <ian.caulfield@arm.com>
443 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
444
445 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
446 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
447 * config/arm/cortex-a53.md: New file.
448 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
449 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
450 * config/arm/arm.c (arm_issue_rate): Likewise.
451 * config/arm/arm-tune.md: Regenerate
452 * config/arm/arm-tables.opt: Regenerate.
453 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 454
239eb04c
ZC
4552013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
456
457 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
458 non-static link.
459
c902d3c8
SN
4602013-04-02 Sofiane Naci <sofiane.naci@arm.com>
461
d8c69a92
IC
462 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
463 scalar load/store operations using B/H registers.
c902d3c8
SN
464 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
465
051d0e2f
SN
4662013-04-02 Sofiane Naci <sofiane.naci@arm.com>
467
468 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
469 scalar move.
470 * config/aarch64/aarch64.c
471 (aarch64_simd_scalar_immediate_valid_for_move): New.
472 * config/aarch64/aarch64-protos.h
473 (aarch64_simd_scalar_immediate_valid_for_move): New.
474 * config/aarch64/constraints.md (Dh, Dq): New.
475 * config/aarch64/iterators.md (hq): New.
476
0ee1e3d9
EB
4772013-04-02 Eric Botcazou <ebotcazou@adacore.com>
478
479 * reorg.c (get_branch_condition): Deal with conditional returns.
480 (fill_simple_delay_slots): Remove dead code dealing with jumps.
481
136fb3f7
WM
4822013-04-01 Wei Mi <wmi@google.com>
483
484 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
485 Truncate operand 2 using %b asm operand modifier.
486 (*<shift_insn><mode>3_mask): Ditto.
487 (*<rotate_insn><mode>3_mask): Ditto.
488
6388c738
SB
4892013-04-01 Steven Bosscher <steven@gcc.gnu.org>
490
491 PR middle-end/56798
492 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
493
f7a4d826
KK
4942013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
495
496 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
497 of next_real_insn.
498 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
499
4b943a49
LC
5002013-03-30 Lawrence Crowl <crowl@google.com>
501
502 * dse.c (clear_alias_sets): Remove never set.
503 (disqualified_clear_alias_sets): Remove never set.
504 (clear_alias_mode_pool): Remove never set.
505 (dse_step0): Remove condition that is never true.
506 (canon_address): Remove condition that is never true.
507 (dse_step7): Remove condition that is never true.
508 (rest_of_handle_dse): Remove condition that is never true.
509 (rest_of_handle_dse::did_global): Remove never read from above.
510 (dse_step2_spill): Remove never called from above.
511 (dse_step5_spill): Remove never called from above.
512
39718607
SB
5132013-03-30 Steven Bosscher <steven@gcc.gnu.org>
514
da5c6bde
SB
515 * doc/md.texi (Standard Names) <casesi>: Update documentation for
516 JUMP_TABLE_DATA changes.
517 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
518 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
519 (Insns) <jump_table_data>: New entry.
520 * doc/tm.texi: Regenerate.
521
39718607
SB
522 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
523
524 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
525 for table jump at the end of a basic block using tablejump_p.
526 * targhooks.c (default_invalid_within_doloop): Likewise.
527 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
528 target hook implementation that is identical to the default hook.
529 (rs6000_invalid_within_doloop): Remove.
530
531 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
532 unused variable from tablejump_p call.
533
534 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
535 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
536 (INSN_DELETED_P): Likewise.
537 (emit_jump_table_data): New prototype.
538 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
539 after 4th as unused.
540 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
541 * sched-vis.c (print_insn): Likewise.
542 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
543 insn for compatibility with back ends that use next_active_insn to
544 identify jump table data.
545 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
546 (remove_insn): Likewise.
547 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
548 to be emitted.
549 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
550 (emit_jump_table_data): New function.
551
552 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
553 basic block, a JUMP_TABLE_DATA never is.
554 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
555 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
556 off from code handling real insns.
557 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
558 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
559 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
560 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
561 is not a NONDEBUG_INSN_P.
562 * ira-costs.c (scan_one_insn): Likewise.
563 * jump.c (mark_all_labels): Likewise.
564 (mark_jump_label_1): Likewise.
565 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
566 * lra.c (get_insn_freq): Expect all insns reaching here to be in
567 a basic block.
568 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
569 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
570 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
571 JUMP_TABLE_DATA_P insns.
572 (calculate_elim_costs_all_insns): Likewise.
573 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
574 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
575 (delete_output_reload): Code style fixups.
576 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
577 insn flags on this non-insn.
578 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
579 as scheduling barriers, for pre-change compatibility.
580 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
581 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
582
583 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
584 redundant JUMP_TABLE_DATA_P test.
585 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
586 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
587 (frv_for_each_packet): Likewise.
588 * config/i386/i386.c (min_insn_size): Likewise.
589 (ix86_avoid_jump_mispredicts): Likewise.
590 * config/m32r/m32r.c (m32r_is_insn): Likewise.
591 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
592 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
593 (mips16_insn_length): Robustify.
594 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
595 (mips16_split_long_branches): Likewise.
596 * config/pa/pa.c (pa_combine_instructions): Likewise.
597 * config/rs6000/rs6000.c (get_next_active_insn): Treat
598 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
599 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
600 as contributing to pool range lengths.
601 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
602 Remove redundant JUMP_TABLE_DATA_P test.
603 (sh_loop_align): Likewise.
604 (split_branches): Likewise.
605 (sh_insn_length_adjustment): Likewise.
606 * config/spu/spu.c (get_branch_target): Likewise.
607
0208f7da
JH
6082013-03-29 Jan Hubicka <jh@suse.cz>
609
610 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
611 gcov streaming; stream hot bb threshold to ltrans.
612 * predict.c (get_hot_bb_threshold): Break out from ....
613 (maybe_hot_count_p): ... here.
614 (set_hot_bb_threshold): New function.
615 * lto-section-in.c (lto_section_name): Add profile.
616 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
617 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
618 and data-streamer.h
619 (histogram_entry): New structure.
620 (histogram, histogram_pool): New global vars.
621 (histogram_hash): New structure.
622 (histogram_hash::hash): New method.
623 (histogram_hash::equal): Likewise.
624 (account_time_size): New function.
625 (cmp_counts): New function.
626 (dump_histogram): New function.
627 (ipa_profile_generate_summary): New function.
628 (ipa_profile_write_summary): New function.
629 (ipa_profile_read_summary): New function.
630 (ipa_profile): Decide on threshold.
e594716a
UB
631 (pass_ipa_profile): Add ipa_profile_write_summary and
632 ipa_profile_read_summary.
0208f7da
JH
633 * Makefile.in (ipa.o): Update dependencies.
634 * lto-streamer.h (LTO_section_ipa_profile): New section.
635
5a6ccc94
GDR
6362013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
637
638 * tree.h (VAR_P): New.
639
39385fa6
PC
6402013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
641
642 PR lto/56777
643 * doc/invoke.texi ([-fwhole-program]): Fix typo.
644
34f0d87a
SB
6452013-03-29 Steven Bosscher <steven@gcc.gnu.org>
646
647 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
648 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
649 (control_flow_insn_p): Likewise.
650 * cfgrtl.c (duplicate_insn_chain): Likewise.
651 * final.c (get_attr_length_1): Likewise.
652 (shorten_branches): Likewise.
653 (final_scan_insn): Likewise.
654 * function.c (instantiate_virtual_regs): Likewise.
655 * gcse.c (insert_insn_end_basic_block): Likewise.
656 * ira-costs.c (scan_one_insn): Likewise.
657 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
658 * lra.c (check_rtl): Likewise.
659 * reload1.c (elimination_costs_in_insn): Likewise.
660 * reorg.c (follow_jumps): Likewise.
661
662 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
663 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
664 (thumb_far_jump_used_p): Likewise.
665 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
666 (workaround_speculation): Likewise.
667 (add_sched_insns_for_speculation): Likewise.
668 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
669 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
670 (frv_for_each_packet): Likewise.
671 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
672 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
673 (final_emit_insn_group_barriers): Likewise.
674 * config/m32r/m32r.c (m32r_is_insn): Likewise.
675 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
676 (mips16_insn_length): Likewise.
677 * config/pa/pa.c (pa_reorg): Likewise.
678 (pa_combine_instructions): Likewise.
679 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
680 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
681 (sh_reorg): Likewise.
682 (split_branches): Likewise.
683 * config/spu/spu.c (get_branch_target): Likewise.
684
685 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
686 JUMP_TABLE_DATA_P.
687
4ac761b0
KY
6882013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
689
39385fa6 690 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
691 Fix declaration name.
692
58a49189
LC
6932013-03-28 Lawrence Crowl <crowl@google.com>
694
695 * graphds.h (struct graph.indicies): Remove unused.
696 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
697 (SCOP_ORIGINAL_PDDRS): Remove unused.
698 * sese.h (extern insert_loop_close_phis): Removed unused.
699 (extern insert_guard_phis): Removed unused.
700 (extern ivtype_map_elt_info): Removed unused.
701 (new_ivtype_map_elt): Removed unused.
702 * sese.c (ivtype_map_elt_info): Removed unused.
703
7b3b6ae4
LC
7042013-03-28 Lawrence Crowl <crowl@google.com>
705
706 * Makefile.in: Add several missing include dependences.
707 (DUMPFILE_H): New.
708 (test-dump.o): New. This object is not added to any executable,
709 but is present for ad-hoc testing.
710 * bitmap.c
711 (debug (const bitmap_head_def &)): New.
712 (debug (const bitmap_head_def *)): New.
713 * bitmap.h
714 (extern debug (const bitmap_head_def &)): New.
715 (extern debug (const bitmap_head_def *)): New.
716 * cfg.c
717 (debug (edge_def &)): New.
718 (debug (edge_def *)): New.
719 * cfghooks.c
720 (debug (basic_block_def &)): New.
721 (debug (basic_block_def *)): New.
722 * dumpfile.h
723 (dump_node (const_tree, int, FILE *)): Correct source file.
724 * dwarf2out.c
725 (debug (die_struct &)): New.
726 (debug (die_struct *)): New.
727 * dwarf2out.h
728 (extern debug (die_struct &)): New.
729 (extern debug (die_struct *)): New.
730 * gimple-pretty-print.c
731 (debug (gimple_statement_d &)): New.
732 (debug (gimple_statement_d *)): New.
733 * gimple-pretty-print.h
734 (extern debug (gimple_statement_d &)): New.
735 (extern debug (gimple_statement_d *)): New.
736 * ira-build.c
737 (debug (ira_allocno_copy &)): New.
738 (debug (ira_allocno_copy *)): New.
739 (debug (ira_allocno &)): New.
740 (debug (ira_allocno *)): New.
741 * ira-int.h
742 (extern debug (ira_allocno_copy &)): New.
743 (extern debug (ira_allocno_copy *)): New.
744 (extern debug (ira_allocno &)): New.
745 (extern debug (ira_allocno *)): New.
746 * ira-lives.c
747 (debug (live_range &)): New.
748 (debug (live_range *)): New.
749 * lra-int.h
750 (debug (lra_live_range &)): New.
751 (debug (lra_live_range *)): New.
752 * lra-lives.c
753 (debug (lra_live_range &)): New.
754 (debug (lra_live_range *)): New.
755 * omega.c
756 (debug (omega_pb_d &)): New.
757 (debug (omega_pb_d *)): New.
758 * omega.h
759 (extern debug (omega_pb_d &)): New.
760 (extern debug (omega_pb_d *)): New.
761 * print-rtl.c
762 (debug (const rtx_def &)): New.
763 (debug (const rtx_def *)): New.
764 * print-tree.c
765 (debug_tree (tree): Move within file.
766 (debug_raw (const tree_node &)): New.
767 (debug_raw (const tree_node *)): New.
768 (dump_tree_via_hooks (const tree_node *, int)): New.
769 (debug (const tree_node &)): New.
770 (debug (const tree_node *)): New.
771 (debug_verbose (const tree_node &)): New.
772 (debug_verbose (const tree_node *)): New.
773 (debug_head (const tree_node &)): New.
774 (debug_head (const tree_node *)): New.
775 (debug_body (const tree_node &)): New.
776 (debug_body (const tree_node *)): New.
777 (debug_vec_tree (tree): Move and reimplement in terms of dump.
778 (debug (vec<tree, va_gc> &)): New.
779 (debug (vec<tree, va_gc> *)): New.
780 * rtl.h
781 (extern debug (const rtx_def &)): New.
782 (extern debug (const rtx_def *)): New.
783 * sbitmap.c
784 (debug_raw (simple_bitmap_def &)): New.
785 (debug_raw (simple_bitmap_def *)): New.
786 (debug (simple_bitmap_def &)): New.
787 (debug (simple_bitmap_def *)): New.
788 * sbitmap.h
789 (extern debug (simple_bitmap_def &)): New.
790 (extern debug (simple_bitmap_def *)): New.
791 (extern debug_raw (simple_bitmap_def &)): New.
792 (extern debug_raw (simple_bitmap_def *)): New.
793 * sel-sched-dump.c
794 (debug (vinsn_def &)): New.
795 (debug (vinsn_def *)): New.
796 (debug_verbose (vinsn_def &)): New.
797 (debug_verbose (vinsn_def *)): New.
798 (debug (expr_def &)): New.
799 (debug (expr_def *)): New.
800 (debug_verbose (expr_def &)): New.
801 (debug_verbose (expr_def *)): New.
802 (debug (vec<rtx> &)): New.
803 (debug (vec<rtx> *)): New.
804 * sel-sched-dump.h
805 (extern debug (vinsn_def &)): New.
806 (extern debug (vinsn_def *)): New.
807 (extern debug_verbose (vinsn_def &)): New.
808 (extern debug_verbose (vinsn_def *)): New.
809 (extern debug (expr_def &)): New.
810 (extern debug (expr_def *)): New.
811 (extern debug_verbose (expr_def &)): New.
812 (extern debug_verbose (expr_def *)): New.
813 (extern debug (vec<rtx> &)): New.
814 (extern debug (vec<rtx> *)): New.
815 * sel-sched-ir.h
816 (_list_iter_cond_expr): Make inline instead of static.
817 * sreal.c
818 (debug (sreal &)): New.
819 (debug (sreal *)): New.
820 * sreal.h
821 (extern debug (sreal &)): New.
822 (extern debug (sreal *)): New.
823 * tree.h
824 (extern debug_raw (const tree_node &)): New.
825 (extern debug_raw (const tree_node *)): New.
826 (extern debug (const tree_node &)): New.
827 (extern debug (const tree_node *)): New.
828 (extern debug_verbose (const tree_node &)): New.
829 (extern debug_verbose (const tree_node *)): New.
830 (extern debug_head (const tree_node &)): New.
831 (extern debug_head (const tree_node *)): New.
832 (extern debug_body (const tree_node &)): New.
833 (extern debug_body (const tree_node *)): New.
834 (extern debug (vec<tree, va_gc> &)): New.
835 (extern debug (vec<tree, va_gc> *)): New.
836 * tree-cfg.c
837 (debug (struct loop &)): New.
838 (debug (struct loop *)): New.
839 (debug_verbose (struct loop &)): New.
840 (debug_verbose (struct loop *)): New.
841 * tree-dump.c: Add header dependence.
842 * tree-flow.h
843 (extern debug (struct loop &)): New.
844 (extern debug (struct loop *)): New.
845 (extern debug_verbose (struct loop &)): New.
846 (extern debug_verbose (struct loop *)): New.
847 * tree-data-ref.c
848 (debug (data_reference &)): New.
849 (debug (data_reference *)): New.
850 (debug (vec<data_reference_p> &)): New.
851 (debug (vec<data_reference_p> *)): New.
852 (debug (vec<ddr_p> &)): New.
853 (debug (vec<ddr_p> *)): New.
854 * tree-data-ref.h
855 (extern debug (data_reference &)): New.
856 (extern debug (data_reference *)): New.
857 (extern debug (vec<data_reference_p> &)): New.
858 (extern debug (vec<data_reference_p> *)): New.
859 (extern debug (vec<ddr_p> &)): New.
860 (extern debug (vec<ddr_p> *)): New.
861 * tree-ssa-alias.c
862 (debug (pt_solution &)): New.
863 (debug (pt_solution *)): New.
864 * tree-ssa-alias.h
865 (extern debug (pt_solution &)): New.
866 (extern debug (pt_solution *)): New.
867 * tree-ssa-alias.c
868 (debug (_var_map &)): New.
869 (debug (_var_map *)): New.
870 (debug (tree_live_info_d &)): New.
871 (debug (tree_live_info_d *)): New.
872 * tree-ssa-alias.h
873 (extern debug (_var_map &)): New.
874 (extern debug (_var_map *)): New.
875 (extern debug (tree_live_info_d &)): New.
876 (extern debug (tree_live_info_d *)): New.
877
be77e1e5
JH
8782013-03-28 Jan Hubicka <jh@suse.cz>
879
880 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
881
777e6976
IB
8822013-03-28 Ian Bolton <ian.bolton@arm.com>
883
884 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
885 record only when desired or required.
886
9cd347ae
UB
8872013-03-28 Uros Bizjak <ubizjak@gmail.com>
888
889 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
890 *vec_extractv2di_1_rex64. Use x64 isa attribute.
891
2a1d1991
N
8922013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
893
894 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
895 (*andsi3_compare0_uxtw): New pattern.
896 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
897 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
898
89ab31c1
JH
8992013-03-28 Jan Hubicka <jh@suse.cz>
900
901 * data-streamer-in.c (streamer_read_gcov_count): New function.
902 * gimple-streamer-out.c: Include value-prof.h.
903 (output_gimple_stmt): Output histogram.
904 (output_bb): Use streamer_write_gcov_count.
905 * value-prof.c: Include data-streamer.h
906 (dump_histogram_value): Add HIST_TYPE_MAX.
907 (stream_out_histogram_value): New function.
908 (stream_in_histogram_value): New function.
909 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
910 (stream_out_histogram_value, stream_in_histogram_value): Declare.
911 * data-streamer-out.c (streamer_write_gcov_count): New function.
912 (streamer_write_gcov_count_stream): New function.
913 * lto-cgraph.c (lto_output_edge): Update counter streaming.
914 (lto_output_node): Likewise.
915 (input_node, input_edge): Likewise.
916 * lto-streamer-out.c (output_cfg): Update streaming.
917 * lto-streamer-in.c (input_cfg): Likewise.
918 * data-streamer.h (streamer_write_gcov_count,
919 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
920 * gimple-streamer-in.c: Include value-prof.h
921 (input_gimple_stmt): Input histograms.
922 (input_bb): Update profile streaming.
923
e594716a 9242013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 925
8697be17
KZ
926 * genmodes.c (emit_max_int): New function.
927 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
928 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
929 Added doc.
8697be17 930 * machmode.def: Fixed comment.
89ab31c1 931
e594716a 9322013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
933
934 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
935 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
936
74946978
MP
9372013-03-28 Marek Polacek <polacek@redhat.com>
938 Richard Biener <rguenther@suse.de>
939
940 PR tree-optimization/56695
941 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
942 build signed result of a vector comparison.
943 * tree-cfg.c (verify_gimple_comparison): Check that a result
944 of a vector comparison has signed type.
945
a64b9c26
RB
9462013-03-28 Richard Biener <rguenther@suse.de>
947
948 PR tree-optimization/37021
949 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
950 do not restrict gaps between groups.
951 * tree-vect-stmts.c (vectorizable_load): Properly account for
952 a gap between groups.
953
a9dc2a2f
EB
9542013-03-28 Eric Botcazou <ebotcazou@adacore.com>
955
956 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
957 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
958 is not enabled.
959
53cb97f9
GP
9602013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
961
962 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
963 * doc/extend.texi (Named Address Spaces): Ditto.
964 (Variable Attributes): Ditto.
965
b802ae5c
KT
9662013-03-27 Kai Tietz <ktietz@redhat.com>
967
eddae10a
KT
968 * config.build: Add support for cygwin x64 target.
969 * config.gcc: Likewise.
970 * config.host: Likewise.
971 * configure.ac: Likewise
972 * configure: Regenerated.
b802ae5c 973
8269de54
KT
9742013-03-27 Kai Tietz <ktietz@redhat.com>
975
976 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
977 * config/i386/t-cygwin-w64: New file.
978 * config/i386/cygwin-w64.h: New file.
979 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
980 and add support for x64-cygwin target.
981 (CPP_SPEC): Likewise.
982 (CXX_WRAP_SPEC_LIST): Undefine before define.
983 (LIBGCJ_SONAME): Use 15 as version.
984
f49b33cb
RB
9852013-03-27 Richard Biener <rguenther@suse.de>
986
987 PR tree-optimization/56716
988 * tree-ssa-structalias.c (perform_var_substitution): Adjust
989 dumping for ref nodes.
990
b37a6ce5
MJ
9912013-03-27 Martin Jambor <mjambor@suse.cz>
992
993 PR tree-optimization/55334
994 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
995 restricted pointers to arrays.
996
9469b9b2
GDR
9972013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
998
999 * Makefile.in (.SUFFIXES): Add .cc.
1000 (.c.o): Apply same recipe for implicit rule .cc.o.
1001
7d24f650
RB
10022013-03-27 Richard Biener <rguenther@suse.de>
1003
1004 PR tree-optimization/37021
1005 * tree-vect-data-refs.c (vect_check_strided_load): Allow
1006 REALPART/IMAGPART_EXPRs around the supported refs.
1007 * tree-ssa-structalias.c (find_func_aliases): Assume that
1008 floating-point values are not used to transfer pointers.
1009
2f251a05
AI
10102013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
1011
39385fa6
PC
1012 * target.def (TARGET_HAS_IFUNC_P): New target hook.
1013 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
1014 * doc/tm.texi: Regenerate.
1015 * targhooks.h (default_has_ifunc_p): New.
1016 * targhooks.c (default_has_ifunc_p): Ditto.
1017 * config/linux-protos.h: New file.
1018 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of
2f251a05
AI
1019 this hook for linux which disables support of indirect functions in
1020 android.
39385fa6
PC
1021 * config/linux-android.c: New file.
1022 * config/t-linux-android.c: Ditto.
1023 * config.gcc: Added new object file linux-android.o.
1024 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 1025 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
39385fa6 1026 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
1027 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
1028 doesn't support indirect functions.
1029 * configure: Regenerate.
1030
78b4e425
BC
10312013-03-27 Bin Cheng <bin.cheng@arm.com>
1032
1033 PR target/56102
1034 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
1035 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
1036 mult-word mode.
1037
a5ba7b92
AK
10382013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1039
1040 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
1041
be624986
TG
10422013-03-27 Terry Guo <terry.guo@arm.com>
1043
1044 * config/arm/arm-cores.def: Added core cortex-r7.
1045 * config/arm/arm-tune.md: Regenerated.
1046 * config/arm/arm-tables.opt: Regenerated.
1047 * doc/invoke.texi: Added entry for core cortex-r7.
1048
0a514f47
WL
10492013-03-27 Walter Lee <walt@tilera.com>
1050
1051 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
1052 double-decrement of next_scratch_regno.
1053
9332b0d2
WL
10542013-03-27 Walter Lee <walt@tilera.com>
1055
801d9b2a 1056 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
1057 input operands.
1058 (insn_v1mulus): Ditto.
1059 (insn_v2muls): Ditto.
1060
f54ea5dd
WL
10612013-03-27 Walter Lee <walt@tilera.com>
1062
e594716a 1063 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
1064 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
1065
bf60f4ca
WL
10662013-03-27 Walter Lee <walt@tilera.com>
1067
e594716a 1068 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
1069 (*sibcall_value): Ditto.
1070
e3b51eeb
WL
10712013-03-27 Walter Lee <walt@tilera.com>
1072
1073 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
1074 (insn_mnz_v8qi): ... this ...
1075 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
1076 vector equivalent.
1077 (insn_v<n>mnz): Replaced by ...
1078 (insn_v1mnz): ... this ...
1079 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
1080 equivalent.
1081 (insn_mz_<mode>): Replaced by ...
1082 (insn_mz_v8qi): ... this ...
1083 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
1084 vector equivalent.
1085 (insn_v<n>mz): Replaced by ...
1086 (insn_v1mz): ... this ...
1087 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
1088 equivalent.
1089
4fc7b145
EB
10902013-03-26 Eric Botcazou <ebotcazou@adacore.com>
1091
1092 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
1093
6f33817e
RM
10942013-03-26 Roland McGrath <mcgrathr@google.com>
1095
1096 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
1097 than fprintf with a non-constant, non-format string.
1098
93a4145b
UB
10992013-03-26 Uros Bizjak <ubizjak@gmail.com>
1100
1101 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
1102 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
1103 operand 0 predicate.
1104 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
1105 attribute. Use general_x64nomem_operand as operand 1 predicate.
1106 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
1107 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
1108 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
1109 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
1110 (mov<mode>_insv_1): Remove expander. Merge insn with
1111 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
1112 Use general_x64nomem_operand as operand 1 predicate.
1113 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
1114 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
1115 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
1116 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
1117 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
1118 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
1119 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
1120 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
1121 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
1122 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
1123 (general_x64nomem_operand): Ditto.
1124
c6a9ed5a 11252013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
1126
1127 * config/rtems.opt: Add -pthread option.
1128
31b0a960
RB
11292013-03-26 Richard Biener <rguenther@suse.de>
1130
93a4145b
UB
1131 * alias.c (find_base_term): Avoid redundant and not used recursion.
1132 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
1133 (true_dependence_1): Compute and pass base terms to base_alias_check.
1134 (write_dependence_p): Likewise.
1135 (may_alias_p): Likewise.
1136
79517551
SN
11372013-03-26 Sofiane Naci <sofiane.naci@arm.com>
1138
1139 * config/aarch64/aarch64.c (aarch64_classify_address): Support
1140 PC-relative load in SI modes and above only.
1141
a76213b9
XQ
11422013-03-26 Xinyu Qi <xyqi@marvell.com>
1143
1144 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
1145 * config/arm/iwmmxt.md (WCGR0): Update.
1146 (WCGR1, WCGR2, WCGR3): Likewise.
1147
37ff9355
UB
11482013-03-26 Uros Bizjak <ubizjak@gmail.com>
1149
1150 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
1151 Use x64 and nox64 isa attributes.
1152
30b0317c
RB
11532013-03-26 Richard Biener <rguenther@suse.de>
1154
1155 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
1156 alignment computations and rely on get_object_alignment_1
1157 for the !TYPE_P case.
1158 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
1159
cbcdb140
WL
11602013-03-26 Walter Lee <walt@tilera.com>
1161
1162 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
1163 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
1164
dd884525 11652013-03-25 Jeff Law <law@redhat.com>
be672e08 1166
dd884525
JL
1167 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
1168 check for INTEGRAL_TYPE_P that was missing due to checking in
1169 wrong version of prior patch.
1170
0051d3ec
WL
11712013-03-25 Walter Lee <walt@tilera.com>
1172
1173 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
1174 TILEGX_INSN_SHUFFLEBYTES1.
1175 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
1176 shufflebytes1.
1177 (tilegx_builtins): Ditto.
1178 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
1179
065a3605
WL
11802013-03-25 Walter Lee <walt@tilera.com>
1181
1182 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
1183 (floatunssisf2): New pattern.
1184 (floatsidf2): New pattern.
1185 (floatunssidf2): New pattern.
065a3605 1186
5b2a3c82
WL
11872013-03-25 Walter Lee <walt@tilera.com>
1188
1189 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
1190 tests for constraint J, K, N, P.
1191
192ea533
WL
11922013-03-25 Walter Lee <walt@tilera.com>
1193
1194 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
1195 Use indirect/pcrel encoding.
1196 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
1197 Ditto.
1198
855e0d0b
SE
11992013-03-25 Steve Ellcey <sellcey@mips.com>
1200
1201 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
1202 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
1203 * config/mips/mips.c (mips_option_override): Set IMADD default.
1204 * config/mips/mips.h (PTF_AVOID_IMADD): New.
1205 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
1206 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
1207 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
1208 * doc/invoke.texi (-mimadd/-mno-imadd): New.
1209
39e45653
JL
12102013-03-25 Jeff Law <law@redhat.com>
1211
1212 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
1213 slightly to avoid creating and folding useless trees. Simplify
1214 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
1215
7482c470
UB
12162013-03-25 Uros Bizjak <ubizjak@gmail.com>
1217
1218 * config/i386/i386.md (*zero_extendsidi2): Merge with
1219 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
1220 * config/i386/predicates.md (x86_64_zext_operand): Rename from
1221 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
1222 targets. Clarify comment.
1223
4a53743e
MJ
12242013-03-25 Martin Jambor <mjambor@suse.cz>
1225
1226 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
1227 pass-through jump functions differently.
1228 (ipa_read_jump_function): Likewise. Also use setter functions to set
1229 up jump functions.
1230
162712de
MJ
12312013-03-25 Martin Jambor <mjambor@suse.cz>
1232
1233 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
1234 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
1235 process it.
1236 (ipa_get_indirect_edge_target): New function.
1237 (devirtualization_time_bonus): New parameter known_aggs, pass it to
1238 ipa_get_indirect_edge_target. Update all callers.
1239 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
1240 ipa_get_indirect_edge_target_1 instead of calling
1241 ipa_get_indirect_edge_target.
1242 (create_specialized_node): Pass aggvlas to
1243 ipcp_discover_new_direct_edges.
1244
a5a4c20a
KT
12452013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1246
1247 * config/arm/arm.md (f_sels, f_seld): New types.
1248 (*cmov<mode>): New pattern.
1249 * config/arm/predicates.md (arm_vsel_comparison_operator): New
1250 predicate.
1251
f992b9fc
KT
12522013-03-25 Kai Tietz <ktietz@redhat.com>
1253
1254 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
1255 POSIX-printf for mingw-hosted builds.
1256
c16fd676
RB
12572013-03-25 Richard Biener <rguenther@suse.de>
1258
1259 PR middle-end/56694
1260 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
1261 must-not-throw stmt location.
1262
5ad29f12
KT
12632013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1264
1265 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
1266 Emit load-acquire versions when acq is true.
1267 (arm_emit_store_exclusive): Add rel parameter.
1268 Emit store-release versions when rel is true.
1269 (arm_split_compare_and_swap): Use acquire-release instructions
1270 instead.
1271 of barriers when appropriate.
1272 (arm_split_atomic_op): Likewise.
1273 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
1274 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
1275 (VUNSPEC_SLX): Likewise.
1276 (VUNSPEC_LDA): Likewise.
1277 (VUNSPEC_STL): Likewise.
1278 * config/arm/sync.md (atomic_load<mode>): New pattern.
1279 (atomic_store<mode>): Likewise.
1280 (arm_load_acquire_exclusive<mode>): Likewise.
1281 (arm_load_acquire_exclusivesi): Likewise.
1282 (arm_load_acquire_exclusivedi): Likewise.
1283 (arm_store_release_exclusive<mode>): Likewise.
1284
03a7dddb
CM
12852013-03-25 Catherine Moore <clm@codesourcery.com>
1286
1287 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
1288 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
1289 * config/mip/predicates.md (lwsp_swsp_operand,
1290 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
1291 sb16_operand, db4_operand, db7_operand, ib3_operand,
1292 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
1293 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
1294 andi16_operand): New predicates.
1295 * config/mips/mips.md (compression): New attribute.
1296 (enabled): New attribute.
1297 (length): Consider compression in computing length.
1298 (shift_compression): New code attribute.
1299 (*add<mode>3): New operands. Record compression.
1300 (sub<mode>3): Likewise.
1301 (one_cmpl<mode>2): Likewise.
1302 (*and<mode>3): Likewise.
1303 (*ior<mode>3): Likewise.
1304 (unnamed pattern for xor): Likewise.
1305 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
1306 (*<optab><mode>3): Likewise.
1307 (*mov<mode>_internal: Likewise.
1308 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
1309 (mips_unsigned_immediate_p): New.
1310 (umips_lwsp_swsp_address_p): New.
1311 (m16_based_address_p): New.
1312 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
1313 (mips_unsigned_immediate_p): New prototype.
1314 (lwsp_swsp_address_p): New prototype.
1315 (m16_based_address_p): New prototype.
1316 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
1317 (mips_signed_immediate_p): New function.
1318 (m16_based_address_p): New function.
1319 (lwsp_swsp_address_p): New function.
1320 (mips_print_operand_punctuation): Recognize short delay slot insns
1321 for microMIPS.add<mode>3"
1322
f35c297f 13232013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 1324
f35c297f
KT
1325 PR target/56720
1326 * config/arm/iterators.md (v_cmp_result): New mode attribute.
1327 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
1328
051b9446
RB
13292013-03-25 Richard Biener <rguenther@suse.de>
1330
1331 PR tree-optimization/56689
1332 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
1333 any edge.
1334
374001cb
RB
13352013-03-25 Richard Biener <rguenther@suse.de>
1336
1337 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
1338 of bitmap.
1339 (memory_references): Likewise.
1340 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
1341 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
1342 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
1343 (gather_mem_refs_in_loops): Fold into ...
1344 (analyze_memory_references): ... this. Move initialization
1345 to tree_ssa_lim_initialize.
1346 (fill_always_executed_in): Rename to ...
1347 (fill_always_executed_in_1): ... this.
1348 (fill_always_executed_in): Move contains_call computation to
1349 this new function from ...
1350 (tree_ssa_lim_initialize): ... here.
1351 (tree_ssa_lim): Call fill_always_executed_in.
1352
57895947
EB
13532013-03-25 Eric Botcazou <ebotcazou@adacore.com>
1354
1355 * postreload.c (reload_combine): Fix code detecting returns.
1356
1e1b18c1
EB
13572013-03-25 Eric Botcazou <ebotcazou@adacore.com>
1358
1359 * function.c (emit_use_return_register_into_block): On cc0 targets,
1360 do not emit the sequence between cc0 setter and user.
1361
9216baf1
KT
13622013-03-25 Kai Tietz <ktietz@redhat.com>
1363
1e1b18c1
EB
1364 * config/i386/predicates.md (local_symbolic_operand): Interpret
1365 dll-imported symbols as none-local.
9216baf1 1366
76421b44
RB
13672013-03-25 Richard Biener <rguenther@suse.de>
1368
1369 * tree-ssa-loop-im.c (struct depend): Remove.
1370 (struct lim_aux_data): Make depends a vec of gimples.
1371 (free_lim_aux_data): Adjust.
1372 (add_dependency): Likewise.
1373 (set_level): Likewise.
1374
d154bfa2
RB
13752013-03-25 Richard Biener <rguenther@suse.de>
1376
1377 PR middle-end/56434
1378 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
1379 the pointer returned by calls with ECF_MALLOC set.
1380
2cd9804e
UB
13812013-03-24 Uros Bizjak <ubizjak@gmail.com>
1382
acef5fe0
UB
1383 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
1384
13852013-03-24 Uros Bizjak <ubizjak@gmail.com>
1386
1387 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
1388 using MMXMODE mode iterator.
1389 (*move<mode>_internal): Merge with *movv2sf_internal and
1390 *movv2sf_internal_rex64 using MMXMODE mode iterator.
1391
225ccc68
SB
13922013-03-23 Steven Bosscher <steven@gcc.gnu.org>
1393
85c0f02d
SB
1394 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
1395 (record_last_mem_set_info): Likewise.
1396
225ccc68
SB
1397 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
1398 of XNEWVEC followed by memset.
1399 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
1400
b64925dc
SB
14012013-03-23 Steven Bosscher <steven@gcc.gnu.org>
1402
1403 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
1404 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
1405 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
1406 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
1407 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
1408 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
1409 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
1410 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
1411 BARRIER_P instead of GET_CODE.
1412
b9aaf52e
EB
14132013-03-23 Eric Botcazou <ebotcazou@adacore.com>
1414
1415 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
1416 inaccuracy in the probing code.
1417
1418 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
1419 (ctrapdi4): Likewise.
1420
66de4d7c
EB
14212013-03-23 Eric Botcazou <ebotcazou@adacore.com>
1422
1423 * calls.c (expand_call): Add missing guard to code handling return
1424 of non-BLKmode structures in MSB.
1425 * function.c (expand_function_end): Likewise.
1426
4f25c8fb
EB
14272013-03-23 Eric Botcazou <ebotcazou@adacore.com>
1428
1429 * combine.c (try_combine): Adjust comment. Do not add the set of
1430 insn #0 if the destination indirectly is set or dies in insn #2.
1431 Tidy up code to distribute a new note.
1432
23b7850d
UB
14332013-03-22 Uros Bizjak <ubizjak@gmail.com>
1434
1435 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
1436 also for alternatives 16 and 17.
1437
bed852cf
UB
14382013-03-22 Uros Bizjak <ubizjak@gmail.com>
1439
1440 * config/i386/sse.md (*mov<mode>_internal): Merge with
1441 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
1442 Emit insn template depending on type attribute. Use
1443 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
1444 movd instead of movq mnemonic for interunit moves. Rewrite mode
1445 attribute calculation. Remove unit attribute calculation.
1446 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
1447 Set prefix_data16 attribute for DImode ssemov types.
1448 Use Ym instead of y for SSE-MMX conversion alternatives.
1449 Reorder operand constraints.
1450
1e8a7937
SB
14512013-03-22 Steven Bosscher <steven@gcc.gnu.org>
1452
1453 * df.h (df_insn_delete): Adjust prototype.
1454 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
1455 and let it decide whether mark the basic block dirty.
1456 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
1457 * df-scan.c (df_insn_info_delete): New helper function, split
1458 off from df_insn_delete.
1459 (df_scan_free_bb_info): Use it.
1460 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
1461 Likewise.
1462 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
1463 that the insn is actually an insn and it has a non-NULL basic block.
1464 Do not mark basic block dirty if only deleting a DEBUG_INSN.
1465
e14d094c
RB
14662013-03-22 Richard Biener <rguenther@suse.de>
1467
1468 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
1469 dep_ref members.
1470 (mem_ref_alloc): Do not allocate them.
1471 (refs_independent_p): Do not query or maintain a cache.
1472
e9cf7316
RB
14732013-03-22 Richard Biener <rguenther@suse.de>
1474
1475 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
1476 (gather_mem_refs_in_loops): Do not compute it.
1477 (analyze_memory_references): Do not allocate it.
1478 (tree_ssa_lim_finalize): Do not free it.
1479 (for_all_locs_in_loop): Do not query all_refs_in_loop.
1480
f046e81b
RB
14812013-03-22 Richard Biener <rguenther@suse.de>
1482
1483 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 1484
a05c0ddf
IB
14852013-03-22 Ian Bolton <ian.bolton@arm.com>
1486
1487 * config/aarch64/aarch64.c (aarch64_print_operand): New
1488 format specifier for printing a constant in hex.
1489 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
1490 format specifier for printing second operand.
1491
c00217fc
RB
14922013-03-22 Richard Biener <rguenther@suse.de>
1493
1494 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
1495 bitmaps.
1496 (gather_mem_refs_in_loops): Perform store accumulation here.
1497 (create_vop_ref_mapping_loop): Remove.
1498 (create_vop_ref_mapping): Likewise.
1499 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 1500 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
1501 (record_indep_loop): Remove.
1502 (record_dep_loop): New function.
1503 (ref_indep_loop_p_1): Adjust to only walk over references
1504 in the loop, not its subloops.
1505 (ref_indep_loop_p): Rename to ...
1506 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
1507 maintaining a more fine-grained cache.
1508 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
1509 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
1510
15d19bf8
RB
15112013-03-22 Richard Biener <rguenther@suse.de>
1512
1513 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
1514 (struct mem_ref): Make accesses_in_loop a vec of a vec of
1515 aggregate mem_ref_loc.
1516 (free_mem_ref_locs): Inline into ...
1517 (memref_free): ... this and adjust.
1518 (mem_ref_alloc): Adjust.
1519 (mem_ref_locs_alloc): Remove.
1520 (record_mem_ref_loc): Adjust.
1521 (get_all_locs_in_loop): Rewrite into ...
1522 (for_all_locs_in_loop): ... this iterator.
1523 (rewrite_mem_ref_loc): New functor.
1524 (rewrite_mem_refs): Use for_all_locs_in_loop.
1525 (sm_set_flag_if_changed): New functor.
1526 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
1527 (ref_always_accessed): New functor.
1528 (ref_always_accessed_p): Use for_all_locs_in_loop.
1529
6f37411d
MG
15302013-03-21 Marc Glisse <marc.glisse@inria.fr>
1531
1532 * tree-pass.h (PROP_gimple_lvec): New.
1533 * passes.c (dump_properties): Handle PROP_gimple_lvec.
1534 (init_optimization_passes): Move pass_lower_vector.
1535 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
1536 PROP_gimple_lvec.
1537 (pass_lower_vector): Provide PROP_gimple_lvec.
1538 (pass_lower_vector_ssa): Likewise.
1539 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
1540
511ef689
MW
15412013-03-21 Mark Wielaard <mjw@redhat.com>
1542
1543 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
1544
cc1df30b
UB
15452013-03-21 Uros Bizjak <ubizjak@gmail.com>
1546
1547 * config/i386/i386.md (*movdi_internal): Disparage slightly
1548 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
1549 conversion alternatives.
1550
c845cfe1
JJ
15512013-03-21 Jakub Jelinek <jakub@redhat.com>
1552
37e99116
JJ
1553 PR middle-end/48087
1554 * diagnostic.def (DK_WERROR): New kind.
1555 * diagnostic.h (werrorcount): Define.
1556 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
1557 promoted to DK_ERROR, increment DK_WERROR counter instead of
1558 DK_ERROR counter.
1559 * toplev.c (toplev_main): Call print_ignored_options even if
1560 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
1561 even if just werrorcount is non-zero.
1562
c845cfe1
JJ
1563 PR debug/55608
1564 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
1565 on failure.
1566 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
1567 (string_cst_pool_decl): New function.
1568 (optimize_one_addr_into_implicit_ptr): New function.
1569 (resolve_addr_in_expr): Optimize DWARF location expression
1570 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
1571 which doesn't live in memory, but has DW_AT_location or
1572 DW_AT_const_value, or refers to a string literal, into
1573 DW_OP_GNU_implicit_pointer.
1574 (optimize_location_into_implicit_ptr): New function.
1575 (resolve_addr): If removing DW_AT_location of a variable because
1576 it was DW_OP_addr of address of the variable, but the variable doesn't
1577 live in memory, try to emit const value attribute for the initializer.
1578
08e0cda6
MG
15792013-03-21 Marc Glisse <marc.glisse@inria.fr>
1580
1581 * tree.h (VECTOR_TYPE_P): New macro.
1582 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
1583 TYPE_MODE): Use it.
1584 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
1585 VEC_COND_EXPR cannot be lvalues.
1586 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
1587
d08633b4
MG
15882013-03-21 Marc Glisse <marc.glisse@inria.fr>
1589
1590 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
1591 Restrict the transformation to equal modes.
1592
e6647190
RB
15932013-03-21 Richard Biener <rguenther@suse.de>
1594
1595 PR tree-optimization/39326
1596 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
1597 (MEM_ANALYZABLE): Adjust.
1598 (record_mem_ref_loc): Move bitmap ops ...
1599 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
1600 unanalyzable refs, do not record locations for it.
1601 (analyze_memory_references): Allocate ref zero as shared
1602 unanalyzable ref.
1603 (refs_independent_p): Do not test for unanalyzed mems here.
1604 (ref_indep_loop_p_1): Special-case disambiguation against
1605 the unanalyzed ref.
cc1df30b 1606 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 1607
65074f54
CL
16082013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
1609
1610 * config/arm/arm-protos.h (tune_params): Add
1611 prefer_neon_for_64bits field.
1612 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
1613 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
1614 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
1615 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
1616 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
1617 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
1618 (arm_option_override): Handle -mneon-for-64bits new option.
1619 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
1620 (prefer_neon_for_64bits): Declare new variable.
1621 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 1622 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
1623 (arch_enabled): Handle new arch types. Remove support for onlya8
1624 and nota8.
1625 (one_cmpldi2): Use new arch names.
bc5faa5b 1626 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
1627 * config/arm/arm.opt (mneon-for-64bits): Add option.
1628 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
1629 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
1630 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
1631 of onlya8.
1632 * doc/invoke.texi (-mneon-for-64bits): Document.
1633
5a2d2a79
RB
16342013-03-21 Richard Biener <rguenther@suse.de>
1635
1636 PR tree-optimization/39326
1637 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
1638 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 1639 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 1640
5abe1e05
RB
16412013-03-21 Richard Biener <rguenther@suse.de>
1642
1643 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
1644 (vect_insert_into_interleaving_chain): Likewise.
1645 (vect_drs_dependent_in_basic_block): Inline ...
1646 (vect_slp_analyze_data_ref_dependence): ... here. New function,
1647 split out from ...
1648 (vect_analyze_data_ref_dependence): ... here. Simplify.
1649 (vect_check_interleaving): Simplify.
1650 (vect_analyze_data_ref_dependences): Likewise. Split out ...
1651 (vect_slp_analyze_data_ref_dependences): ... this new function.
1652 (dr_group_sort_cmp): New function.
1653 (vect_analyze_data_ref_accesses): Compute data-reference groups
1654 here instead of in vect_analyze_data_ref_dependence. Use
1655 a more efficient algorithm.
1656 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
1657 vect_slp_analyze_data_ref_dependences. Call
1658 vect_analyze_data_ref_accesses earlier.
1659 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
1660 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
1661 (vect_slp_analyze_data_ref_dependences): New prototype.
1662
cad1735b
RB
16632013-03-21 Richard Biener <rguenther@suse.de>
1664
1665 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
1666 ref is stored in the loop.
1667 (find_refs_for_sm): Walk only over all stores.
1668 (store_motion_loop): Allocate from lim_bitmap_obstack.
1669 (store_motion): Likewise.
1670
141310ef
RB
16712013-03-21 Richard Biener <rguenther@suse.de>
1672
1673 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
1674 Update virtual SSA form.
1675
5022315a
RO
16762013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1677
1678 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
1679 * configure: Regenerate.
1680 * config.in: Regenerate.
1681 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
1682 if !HAVE_LD_EH_FRAME_CIEV3.
1683
50d4421c
RB
16842013-03-21 Richard Biener <rguenther@suse.de>
1685
1686 * tree-cfg.c (verify_expr_no_block): New function.
1687 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
1688 nor DECL_VALUE_EXPR have locations with associated blocks.
1689 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
1690 (clear_unused_block_pointer): Remove code dealing with
1691 blocks in DECL_DEBUG_EXPR locations.
1692
839b422f
RB
16932013-03-21 Richard Biener <rguenther@suse.de>
1694
1695 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
1696 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
1697 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
1698 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
1699 instead of DECL_DEBUG_EXPR_IS_FROM.
1700 * gimplify.c (gimplify_modify_expr): Likewise.
1701 * tree-cfg.c (verify_expr_location_1): Likewise.
1702 * tree-complex.c (create_one_component_var): Likewise.
1703 * tree-sra.c (create_access_replacement): Likewise.
1704 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
1705 (clear_unused_block_pointer): Likewise.
1706 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
1707 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
1708 * var-tracking.c (var_debug_decl): Likewise.
1709 (track_expr_p): Likewise.
1710 * tree-inline.c (add_local_variables): Likewise. Set
1711 DECL_HAS_DEBUG_EXPR_P after copying it.
1712 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
1713 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
1714
fe04878d
UB
17152013-03-21 Uros Bizjak <ubizjak@gmail.com>
1716
1717 PR bootstrap/56656
1718 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
1719 * configure: Regenerate.
1720 * config.in: Regenerate.
1721 * config/i386/i386.md (*movdf_internal): Use
1722 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
1723 movd instead of movq mnemonic for interunit moves.
1724 (*movdi_internal): Ditto.
1725
bd059b26 17262013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
1727
1728 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
1729 (abd<mode>_3): New pattern.
1730 (aba<mode>_3): New pattern.
1731 (fabd<mode>_3): New pattern.
1732
bd059b26 17332013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
1734
1735 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
1736 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
1737 occurrence of REGISTER_PREFIX as its empty string.
1738
4f1f78b9
JL
17392013-03-20 Jeff Law <law@redhat.com>
1740
1741 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
1742 addititional equivalences for equality comparisons between an SSA_NAME
1743 and a constant where the SSA_NAME was set from a widening conversion.
1744
327a1118
WL
17452013-03-20 Walter Lee <walt@tilera.com>
1746
1747 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
1748
813e0036
UB
17492013-03-20 Uros Bizjak <ubizjak@gmail.com>
1750
1751 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
1752 depending on type attribute.
1753 (*movti_internal): Ditto.
1754 (*movtf_internal): Ditto.
1755 (*movxf_internal): Ditto.
1756 (*movdf_internal): Ditto.
1757 (*movsf_internal): Ditto.
1758
7cf34aae
UB
17592013-03-20 Uros Bizjak <ubizjak@gmail.com>
1760
1761 * config/i386/i386.md (*movti_internal): Set prefix attribute to
1762 maybe_vex for sselog1 and ssemov types.
1763 (*movdi_internal): Reorder operand constraints.
1764 (*movsi_internal): Ditto. Set prefix attribute to
1765 maybe_vex for sselog1 and ssemov types.
1766 (*movtf_internal): Set prefix attribute to maybe_vex
1767 for sselog1 and ssemov types.
1768 (*movdf_internal): Ditto. Set prefix_data16 attribute for
1769 DImode ssemov types. Reorder operand constraints.
1770 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
1771 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
1772 attribute for SImode ssemov types. Reorder operand constraints.
1773
19321415
MJ
17742013-03-20 Martin Jambor <mjambor@suse.cz>
1775
1776 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
1777 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
1778
c6d5ff83
MM
17792013-03-20 Pat Haugen <pthaugen@us.ibm.com>
1780
1781 * config/rs6000/predicates.md (indexed_address, update_address_mem
1782 update_indexed_address_mem): New predicates.
1783 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
1784 attribute for load/store instructions.
1785 * config/rs6000/dfp.md (movsd_store): Likewise.
1786 (movsd_load): Likewise.
1787 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
1788 (unnamed HI->DI extend define_insn): Likewise.
1789 (unnamed SI->DI extend define_insn): Likewise.
1790 (unnamed QI->SI extend define_insn): Likewise.
1791 (unnamed QI->HI extend define_insn): Likewise.
1792 (unnamed HI->SI extend define_insn): Likewise.
1793 (unnamed HI->SI extend define_insn): Likewise.
1794 (extendsfdf2_fpr): Likewise.
1795 (movsi_internal1): Likewise.
1796 (movsi_internal1_single): Likewise.
1797 (movhi_internal): Likewise.
1798 (movqi_internal): Likewise.
1799 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
1800 attribute for load/store instructions.
1801 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
1802 instructions.
1803 (mov<mode>_softfloat): Likewise.
1804 (mov<mode>_hardfloat32): Likewise.
1805 (mov<mode>_hardfloat64): Likewise.
1806 (mov<mode>_softfloat64): Likewise.
1807 (movdi_internal32): Likewise.
1808 (movdi_internal64): Likewise.
1809 (probe_stack_<mode>): Likewise.
1810
18112013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
1812
1813 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
1814 floating point, and decimal floating point to reload iterator.
1815
1816 * config/rs6000/constraints.md (wl constraint): New constraints to
1817 return FLOAT_REGS if certain options are used to reduce the number
1818 of separate patterns that exist in the file.
1819 (wx constraint): Likewise.
1820 (wz constraint): Likewise.
1821
1822 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
1823 -mdebug=reg, print wg, wl, wx, and wz constraints.
1824 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
1825 Initialize the reload functions for 64-bit binary/decimal floating
1826 point types.
1827 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
1828 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
1829 create the buffer on the stack to overcome not having a 32-bit
1830 load and store.
1831 (rs6000_emit_move): Likewise.
1832 (rs6000_secondary_memory_needed_rtx): Likewise.
1833 (rs6000_alloc_sdmode_stack_slot): Likewise.
1834 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
1835 via xxlxor, just like DFmode 0.0.
1836
1837 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
1838 define as 1 if we are running on a power7 or newer.
1839 (enum r6000_reg_class_enum): Add new constraints.
1840
1841 * config/rs6000/dfp.md (movsd): Delete, combine with binary
1842 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
1843 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 1844 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
1845 (movsd splitter): Likewise.
1846 (movsd_hardfloat): Likewise.
1847 (movsd_softfloat): Likewise.
1848
1849 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
1850 binary and decimal floating point moves.
1851 (fmove_ok): New attributes to combine binary and decimal floating
1852 point moves, and to combine power6x (mfpgpr) moves along normal
1853 floating moves.
1854 (real_value_to_target): Likewise.
1855 (f32_lr): Likewise.
1856 (f32_lm): Likewise.
1857 (f32_li): Likewise.
1858 (f32_sr): Likewise.
1859 (f32_sm): Likewise.
1860 (f32_si): Likewise.
1861 (movsf): Combine binary and decimal floating point moves. Combine
1862 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 1863 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
1864 (mov<mode> for SFmode/SDmode); Likewise.
1865 (SFmode/SDmode splitters): Likewise.
1866 (movsf_hardfloat): Likewise.
1867 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
1868 (movsf_softfloat): Likewise.
1869 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
1870
1871 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
1872 wx and wz constraints.
1873
1874 * config/rs6000/constraints.md (wg constraint): New constraint to
1875 return FLOAT_REGS if -mmfpgpr (power6x) was used.
1876
1877 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
1878 constraint.
1879
1880 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
1881 -mdebug=reg, print wg, wl, wx, and wz constraints.
1882 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
1883 Initialize the reload functions for 64-bit binary/decimal floating
1884 point types.
1885 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
1886 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
1887 create the buffer on the stack to overcome not having a 32-bit
1888 load and store.
1889 (rs6000_emit_move): Likewise.
1890 (rs6000_secondary_memory_needed_rtx): Likewise.
1891 (rs6000_alloc_sdmode_stack_slot): Likewise.
1892 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
1893 via xxlxor, just like DFmode 0.0.
1894
c6d5ff83
MM
1895 * config/rs6000/dfp.md (movdd): Delete, combine with binary
1896 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
1897 with other moves by using conditional constraits (wg). Use LFIWZX
1898 and STFIWX for loading SDmode on power7.
1899 (movdd splitters): Likewise.
1900 (movdd_hardfloat32): Likewise.
1901 (movdd_softfloat32): Likewise.
1902 (movdd_hardfloat64_mfpgpr): Likewise.
1903 (movdd_hardfloat64): Likewise.
1904 (movdd_softfloat64): Likewise.
1905
1906 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
1907 64-bit binary and decimal floating point moves.
1908 (FMOVE64X): Likewise.
1909 (movdf): Combine 64-bit binary and decimal floating point moves.
1910 Combine power6x (mfpgpr) moves with other moves by using
1911 conditional constraits (wg).
1912 (mov<mode> for DFmode/DDmode): Likewise.
1913 (DFmode/DDmode splitters): Likewise.
1914 (movdf_hardfloat32): Likewise.
1915 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
1916 (movdf_softfloat32): Likewise.
1917 (movdf_hardfloat64_mfpgpr): Likewise.
1918 (movdf_hardfloat64): Likewise.
1919 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
1920 (movdf_softfloat64): Likewise.
1921 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
1922 (reload_<mode>_load): Move to later in the file so they aren't in
1923 the middle of the floating point move insns.
1924 (reload_<mode>_store): Likewise.
1925
1926 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
1927 constraint.
1928
1929 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
1930 constraint if -mdebug=reg.
bd059b26
UB
1931 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
1932 Enable using dd reload support if needed.
c6d5ff83
MM
1933
1934 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
1935 binary and decimal floating point moves in rs6000.md.
1936 (movtd_internal): Likewise.
1937
1938 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
1939 decimal floating point moves.
1940 (movtf): Likewise.
1941 (movtf_internal): Likewise.
1942 (mov<mode>_internal, TDmode/TFmode): Likewise.
1943 (movtf_softfloat): Likewise.
1944 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
1945
1946 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
1947 movdi_internal64, using wg constraint for move direct operations.
1948 (movdi_internal64): Likewise.
1949
1950 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
1951 MODES_TIEABLE_P for selected modes. Print the numerical value of
1952 the various virtual registers. Use GPR/FPR first/last values,
1953 instead of hard coding the register numbers. Print which modes
1954 have reload functions registered.
bd059b26
UB
1955 (rs6000_option_override_internal): If -mdebug=reg, trace the options
1956 settings before/after setting cpu, target and subtarget settings.
1957 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
1958 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
1959 (rs6000_secondary_reload_fail): Likewise.
1960 (rs6000_secondary_reload_inner): Likewise.
1961
1962 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
1963 macros for first/last GPR and FPR registers.
1964 (LAST_GPR_REGNO): Likewise.
1965 (FIRST_FPR_REGNO): Likewise.
1966 (LAST_FPR_REGNO): Likewise.
1967
1968 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
1969 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
1970 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
1971 (vcond<mode><mode>): Likewise.
1972 (vcondu<mode><mode>): Likewise.
1973 (vector_gtu<mode>): Likewise.
1974 (vector_gte<mode>): Likewise.
1975 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 1976 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
1977 (ior<mode>3): Likewise.
1978 (and<mode>3): Likewise.
1979 (one_cmpl<mode>2): Likewise.
1980 (nor<mode>3): Likewise.
1981 (andc<mode>3): Likewise.
1982
1983 * config/rs6000/constraints.md (wt constraint): New constraint
1984 that returns VSX_REGS if TImode is allowed in VSX registers.
1985
1986 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
1987 constant under VSX.
1988
1989 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
1990 similar to TImode, but it is restricted to being in the GPRs.
1991
1992 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
1993 TImode to occupy a single VSX register.
1994
1995 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
1996 -mvsx-timode for power7/power8.
1997 (power7 cpu): Likewise.
1998 (power8 cpu): Likewise.
1999
2000 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
2001 sure that TFmode/TDmode take up two registers if they are ever
2002 allowed in the upper VSX registers.
2003 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
2004 registers.
2005 (rs6000_init_hard_regno_mode_ok): Likewise.
2006 (rs6000_debug_reg_global): Add debugging for PTImode and wt
2007 constraint. Print if LRA is turned on.
2008 (rs6000_option_override_internal): Give an error if -mvsx-timode
2009 and VSX is not enabled.
2010 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
2011 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
2012 to reg+offset addressing. Use PTImode when checking offset
2013 addresses for validity.
2014 (reg_offset_addressing_ok_p): Likewise.
2015 (rs6000_legitimate_offset_address_p): Likewise.
2016 (rs6000_legitimize_address): Likewise.
2017 (rs6000_legitimize_reload_address): Likewise.
2018 (rs6000_legitimate_address_p): Likewise.
2019 (rs6000_eliminate_indexed_memrefs): Likewise.
2020 (rs6000_emit_move): Likewise.
2021 (rs6000_secondary_reload): Likewise.
2022 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
2023 reloads to fpr registers to continue to use reg+offset addressing,
2024 but 64-bit reloads to altivec registers need reg+reg addressing.
2025 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
2026 it. Treat LO_SUM like a PLUS operation.
2027 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 2028 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
2029 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
2030 registers to share a register with a smaller sized type, since VSX
2031 puts scalars in the upper 64-bits.
2032 (print_operand): Add support for PTImode.
2033 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
2034 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
2035 registers, but don't have arithmetic support.
2036 (rs6000_memory_move_cost): Add test for VSX.
2037 (rs6000_opt_masks): Add -mvsx-timode.
2038
2039 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
2040 for TImode.
2041 (VSs): Likewise.
2042 (VSr): Use wt constraint for TImode.
2043 (VSv): Drop TImode support.
2044 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
2045 (vsx_movti_64bit): Likewise.
2046 (vsx_movti_32bit): Likewise.
2047 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
2048 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
2049 one '?' on the appropriate output constraint. Do not allow TImode
2050 logical operations on 32-bit systems.
2051 (vsx_ior<mode>3): Likewise.
2052 (vsx_xor<mode>3): Likewise.
2053 (vsx_one_cmpl<mode>2): Likewise.
2054 (vsx_nor<mode>3): Likewise.
2055 (vsx_andc<mode>3): Likewise.
2056 (vsx_concat_<mode>): Likewise.
2057 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
2058
2059 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
2060 OPTION_MASK_VSX_TIMODE.
2061 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
2062 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
2063
2064 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
2065 (TI2 iterator): New iterator for TImode, PTImode.
2066 (wd mode attribute): Add values for vector types.
bd059b26
UB
2067 (movti_string): Replace TI move operations with operations for TImode
2068 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
2069 (mov<mode>_string, TImode/PTImode): Likewise.
2070 (movti_ppc64): Likewise.
2071 (mov<mode>_ppc64, TImode/PTImode): Likewise.
2072 (TI mode splitters): Likewise.
2073
2074 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
2075 constraint.
2076
1fc5eced
MG
20772013-03-20 Marc Glisse <marc.glisse@inria.fr>
2078
2079 PR tree-optimization/56355
2080 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
2081 Also handle integers with undefined overflow.
2082
22c4c869
CM
20832013-03-20 Catherine Moore <clm@codesourcery.com>
2084 Maciej W. Rozycki <macro@codesourcery.com>
2085 Tom de Vries <tom@codesourcery.com>
2086 Nathan Sidwell <nathan@codesourcery.com>
2087 Iain Sandoe <iain@codesourcery.com>
2088 Nathan Froyd <froydnj@codesourcery.com>
2089 Chao-ying Fu <fu@mips.com>
2090
2091 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 2092 Document new function attributes.
22c4c869
CM
2093 * doc/invoke.texi (minterlink-compressed, mmicromips,
2094 m14k, m14ke, m14kec): Document new options.
2095 (minterlink-mips16): Update documentation.
2096 * doc/md.texi (ZC, ZD): Document new constraints.
2097 * configure.ac (gcc_cv_as_micromips): Check if linker
2098 supports the .set micromips directive.
2099 * configure: Regenerate.
2100 * config.in: Regenerate.
2101 * config/mips/mips-tables.opt: Regenerate.
2102 * config/mips/micromips.md: New file.
2103 * constraints.md (ZC, ZD): New constraints.
2104 * config/mips/predicates.md (movep_src_register): New predicate.
2105 (movep_src_operand): New predicate.
2106 (non_volatile_mem_operand): New predicate.
2107 * config/mips/mips.md (multimem): New type.
2108 (length): Differentiate between 17-bit and 18-bit branch offsets.
2109 (MOVEP1, MOVEP2): New mode iterator.
2110 (mov_<load>l): Use ZC constraint.
2111 (mov_<load>r): Likewise.
2112 (mov_<store>l): Likewise.
2113 (mov_<store>r): Likewise.
2114 (*branch_equality<mode>_inverted): Add microMIPS support.
2115 (*branch_equality<mode>): Likewise.
2116 (*jump_absolute): Likewise.
2117 (indirect_jump_<mode>): Likewise.
2118 (tablejump_<mode>): Likewise.
2119 (<optab>_internal): Likewise.
2120 (sibcall_internal): Likewise.
2121 (sibcall_value_internal): Likewise.
2122 (prefetch): Use constraint ZD.
2123 * config/mips/mips.opt (minterlink-compressed): New option.
2124 (minterlink-mips16): Now an alias for minterlink-compressed.
2125 (mmicromips): New option.
2126 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
2127 (compare_and_swap_12): Likewise.
2128 (sync_add<mode>): Likewise.
2129 (sync_<optab>_12): Likewise.
2130 (sync_old_<optab>_12): Likewise.
2131 (sync_new_<optab>_12): Likewise.
2132 (sync_nand_12): Likewise.
2133 (sync_old_nand_12): Likewise.
2134 (sync_new_nand_12): Likewise.
2135 (sync_sub<mode>): Likewise.
2136 (sync_old_add<mode>): Likewise.
2137 (sync_old_sub<mode>): Likewise.
2138 (sync_new_add<mode>): Likewise.
2139 (sync_new_sub<mode>): Likewise.
2140 (sync_<optab><mode>): Likewise.
2141 (sync_old_<optab><mode>): Likewise.
2142 (sync_new_<optab><mode>): Likewise.
2143 (sync_nand<mode>): Likewise.
2144 (sync_old_nand<mode>): Likewise.
2145 (sync_new_nand<mode>): Likewise.
2146 (sync_lock_test_and_set<mode>): Likewise.
2147 (test_and_set_12): Likewise.
2148 (atomic_compare_and_swap<mode>): Likewise.
2149 (atomic_exchange<mode>_llsc): Likewise.
2150 (atomic_fetch_add<mode>_llsc): Likewise.
2151 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
2152 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
2153 (umips_save_restore_pattern_p): Likewise.
2154 (umips_load_store_pair_p): Likewise.
2155 (umips_output_load_store_pair): Likewise.
2156 (umips_movep_target_p): Likewise.
2157 (umips_12bit_offset_address_p): Likewise.
2158 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
2159 (mips_base_mips16): Rename this...
2160 (mips_base_compression_flags): ...to this. Update all uses.
2161 (mips_attribute_table): Add micromips, nomicromips and nocompression.
2162 (mips_mips16_decl_p): Delete.
2163 (mips_nomips16_decl_p): Delete.
2164 (mips_get_compress_on_flags): New function.
2165 (mips_get_compress_off_flags): New function.
2166 (mips_get_compress_mode): New function.
2167 (mips_get_compress_on_name): New function.
2168 (mips_get_compress_off_name): New function.
2169 (mips_insert_attributes): Support multiple compression types.
2170 (mips_merge_decl_attributes): Likewise.
2171 (umips_12bit_offset_address_p): New function.
2172 (mips_start_function_definition): Emit .set micromips directive.
2173 (mips_call_may_need_jalx_p): New function.
2174 (mips_function_ok_for_sibcall): Add microMIPS support.
2175 (mips_print_operand_punctuation): Support short delay slots and
2176 compact jumps.
2177 (umips_swm_mask, umips_swm_encoding): New.
2178 (umips_build_save_restore): New function.
2179 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
2180 (was_mips16_p): Remove.
2181 (old_compression_mode): New.
2182 (mips_set_compression_mode): New function.
2183 (mips_set_current_function): Add microMIPS support.
2184 (mips_option_override): Likewise.
2185 (umips_save_restore_pattern_p): New function.
2186 (umips_output_save_restore): New function.
2187 (umips_load_store_pair_p_1): New function.
2188 (umips_load_store_pair_p): New function.
2189 (umips_output_load_store_pair_1): New function.
2190 (umips_output_load_store_pair): New function.
2191 (umips_movep_target_p) New function.
2192 (mips_prepare_pch_save): Add microMIPS support.
2193 * config/mips/mips.h (TARGET_COMPRESSION): New.
2194 (TARGET_CPU_CPP_BUILTINS): Update macro
2195 to use new compression flags and to support microMIPS.
2196 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
2197 (MIPS_ARCH_FLOAT_SPEC): Likewise.
2198 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
2199 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
2200 (ASM_SPEC): Support mmicromips and mno-micromips.
2201 (M16STORE_REG_P): New macro.
2202 (MIPS_CALL): Support TARGET_MICROMIPS.
2203 (MICROMIPS_J): New macro.
2204 (mips_base_mips16): Rename this...
2205 (mips_base_compression_flags): ...to this.
2206 (UMIPS_12BIT_OFFSET_P): New macro.
2207 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
2208 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
22092013-03-20 Richard Biener <rguenther@suse.de>
2210
2211 PR tree-optimization/56661
2212 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
2213 the result does not have to be distinct.
2214
54714c68
RB
22152013-03-20 Richard Biener <rguenther@suse.de>
2216
2217 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
2218 remap_gimple_op_r.
2219
cca1130d
BS
22202013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2221 Steven Bosscher <steven@gcc.gnu.org>
2222
2223 PR rtl-optimization/56605
2224 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
2225
2a930377
UB
22262013-03-20 Uros Bizjak <ubizjak@gmail.com>
2227
2228 PR bootstrap/56656
2229 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
2230 that require movd instead of movq.
2231
d6d305fe
RB
22322013-03-20 Richard Biener <rguenther@suse.de>
2233
2234 * tree-ssa-structalias.c (struct variable_info): Add pointer
2235 to the first field of an aggregate with sub-vars. Make
2236 this and the pointer to the next subfield its ID.
2237 (vi_next): New function.
2238 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
2239 storedanything_id, integer_id): Increment by one.
2240 (new_var_info, get_call_vi, lookup_call_clobber_vi,
2241 get_call_clobber_vi): Adjust.
2242 (solution_set_expand): Simplify and speedup.
2243 (solution_set_add): Inline into ...
2244 (set_union_with_increment): ... this. Adjust accordingly.
2245 (do_sd_constraint): Likewise.
2246 (do_ds_constraint): Likewise.
2247 (do_complex_constraint): Simplify.
2248 (build_pred_graph): Adjust.
2249 (solve_graph): Likewise. Simplify and speedup.
2250 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
2251 get_constraint_for_component_ref, get_constraint_for_1,
2252 first_vi_for_offset, first_or_preceding_vi_for_offset,
2253 create_function_info_for, create_variable_info_for_1,
2254 create_variable_info_for, intra_create_variable_infos): Adjust.
2255 (init_base_vars): Push NULL for ID zero.
2256 (compute_points_to_sets): Adjust.
2257
a271b42d
RB
22582013-03-20 Richard Biener <rguenther@suse.de>
2259
2260 * cfgloop.c (verify_loop_structure): Streamline and avoid
2261 ICEing on corrupt loop tree.
2262 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
2263 loop tree.
2264
ebd65954
RB
22652013-03-20 Richard Biener <rguenther@suse.de>
2266
2267 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
2268 check whether an SSA update is needed.
2269
4547b7ee
RS
22702013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
2271
2272 * config/mips/constraints.md (T): Rename to...
2273 (Yf): ...this.
2274 (U): Rename to...
2275 (Yd): ...this.
2276 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
2277 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
2278
0b8cdc58
IB
22792013-03-19 Ian Bolton <ian.bolton@arm.com>
2280
2281 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
2282 (*subsi3_carryin_uxtw): Likewise.
2283
5977a10d
IB
22842013-03-19 Ian Bolton <ian.bolton@arm.com>
2285
2286 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
2287 (*rorsi3_insn_uxtw): Likewise.
2288
bd83ff2c
IB
22892013-03-19 Ian Bolton <ian.bolton@arm.com>
2290
2291 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
2292 (*extrsi5_insn_uxtw): Likewise.
2293
ba65123c
RB
22942013-03-19 Richard Biener <rguenther@suse.de>
2295
2296 PR tree-optimization/56273
2297 * passes.c (init_optimization_passes): Move second VRP after DOM.
2298
2eac0476
UB
22992013-03-19 Uros Bizjak <ubizjak@gmail.com>
2300
2301 * config/i386/i386.md (*movti_internal): Merge from
2302 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
2303 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
2304 nox64 isa attributes.
2305
6e55eda7
RB
23062013-03-18 Richard Biener <rguenther@suse.de>
2307
2308 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
2309 (unite): Likewise.
2310 (merge_node_constraints): Likewise.
2311 (build_succ_graph): Likewise.
2312 (valid_graph_edge): Inline into single caller.
2313 (unify_nodes): Likewise. Use bitmap_set_bit return value
2314 and cache varinfo.
2315 (scc_visit): Fix formatting and variable use.
2316 (do_sd_constraint): Use gcc_checking_assert.
2317 (do_ds_constraint): Likewise.
2318 (do_complex_constraint): Likewise.
2319 (condense_visit): Likewise. Cleanup.
2320 (dump_pred_graph): New function.
2321 (perform_var_substitution): Dump the pred-graph before
2322 variable substitution.
2323 (find_equivalent_node): Use gcc_checking_assert.
2324 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
2325
4bdd44c4
RB
23262013-03-18 Richard Biener <rguenther@suse.de>
2327
2328 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
2329 Remove cond_expr_stmt_list argument and do not gimplify the
2330 built expression.
2331 (vect_loop_versioning): Adjust.
2332 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
2333 Cleanup to use less temporaries.
2334 (vect_create_data_ref_ptr): Cleanup.
2335
38c56a5b
JJ
23362013-03-18 Jakub Jelinek <jakub@redhat.com>
2337
2338 PR tree-optimization/56635
2339 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
2340 require types_compatible_p types.
2341
20b2e6a0
NC
23422013-03-18 Nick Clifton <nickc@redhat.com>
2343
a6178a25
NC
2344 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
2345 spurious backslash.
2346
20b2e6a0
NC
2347 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
2348 Add missing line to comment describing function.
2349
92608d0e
RB
23502013-03-18 Richard Biener <rguenther@suse.de>
2351
2352 PR tree-optimization/56210
2353 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2354 Handle string / character search functions.
2355 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
2356
31348d52
RB
23572013-03-18 Richard Biener <rguenther@suse.de>
2358
2359 PR middle-end/56483
2360 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
2361 and implement properly.
2362 * gimple.h (gimple_cond_single_var_p): Remove.
2363
fcac74a1
RB
23642013-03-18 Richard Biener <rguenther@suse.de>
2365
2366 * tree-data-ref.h (find_data_references_in_loop): Declare.
2367 * tree-data-ref.c (get_references_in_stmt): Use a stack
2368 vector pre-allocated in the callers.
2369 (find_data_references_in_stmt): Adjust.
2370 (graphite_find_data_references_in_stmt): Likewise.
2371 (create_rdg_vertices): Likewise.
2372 (find_data_references_in_loop): Export.
2373 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
2374 Compute dependences here...
2375 (vect_analyze_data_refs): ...not here. When we encounter
2376 a non-vectorizable data reference in basic-block vectorization
2377 truncate the data reference vector. Do not bother to
2378 fixup data-dependence information for gather loads.
2379 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
2380 of data references, as reported.
2381
0d5a1b56
RB
23822013-03-18 Richard Biener <rguenther@suse.de>
2383
2384 PR tree-optimization/3713
2385 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
2386 has_constants and expr.
2387 (stmt_has_constants): Properly valueize SSA names when deciding
2388 whether the stmt has constants.
2389
789c34e3
RB
23902013-03-18 Richard Biener <rguenther@suse.de>
2391
2392 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
2393 whole function when there is nothing to do.
2394 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
2395 * tree-vectorizer.c (vectorize_loops): Update virtual and
2396 loop-closed SSA once.
2397 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
2398
076b4605
RB
23992013-03-18 Richard Biener <rguenther@suse.de>
2400
2401 PR middle-end/56113
2402 * domwalk.c (bb_postorder): New global static.
2403 (cmp_bb_postorder): New function.
2404 (walk_dominator_tree): Replace scheme imposing an order for
2405 visiting dominator sons by one sorting them at the time they
2406 are pushed on the stack.
2407
bdb01696
RB
24082013-03-18 Richard Biener <rguenther@suse.de>
2409
2410 PR tree-optimization/39326
2411 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
2412 (struct mem_ref): Replace mem member with ao_ref typed member.
2413 (MEM_ANALYZABLE): Adjust.
2414 (memref_eq): Likewise.
2415 (mem_ref_alloc): Likewise.
2416 (gather_mem_refs_stmt): Likewise.
2417 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
2418 (execute_sm_if_changed_flag_set): Adjust.
2419 (execute_sm): Likewise.
2420 (ref_always_accessed_p): Likewise.
2421 (refs_independent_p): Likewise.
2422 (can_sm_ref_p): Likewise.
2423
12d2dc5e
JJ
24242013-03-18 Jakub Jelinek <jakub@redhat.com>
2425
2426 PR c/56566
2427 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
2428 return 1 even for !unsignedp.
2429
286fb677
UB
24302013-03-17 Uros Bizjak <ubizjak@gmail.com>
2431
2432 * config/i386/i386.md (isa): Add x64 and nox64.
2433 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
2434 (*pushtf): Enable *roF alternative for x64 isa only.
2435 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
2436 mode attribute of integer alternatives to DImode for TARGET_64BIT.
2437 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
2438 (*movtf_internal): Merge from *movtf_internal_rex64 and
2439 *movtf_internal_sse. Use x64 and nox64 isa attributes.
2440 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
2441 nox64 isa attributes.
2442 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
2443 nox64 isa attributes.
2444 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
2445
88b97037
UB
24462013-03-17 Uros Bizjak <ubizjak@gmail.com>
2447
2448 * config/alpha/alpha.c (TARGET_LRA_P): New define.
2449
9f4f1735
JJ
24502013-03-17 Jakub Jelinek <jakub@redhat.com>
2451
2452 PR target/56640
2453 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
2454 class names. Remove trailing comma after "ALL_REGS".
2455
48f4a6fa
JH
24562013-03-16 Jan Hubicka <jh@suse.cz>
2457
2458 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
2459 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
2460 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
2461 of cgraph_get_create_node.
2462 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
2463
98e81123
JM
24642013-03-16 Jason Merrill <jason@redhat.com>
2465
2466 PR debug/49090
2467 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
2468 with DW_AT_default_value.
2469
8a298c04
JJ
24702013-03-16 Jakub Jelinek <jakub@redhat.com>
2471
2472 * BASE-VER: Set to 4.9.0.
2473
4323afa0
AK
24742013-03-14 Andi Kleen <ak@linux.intel.com>
2475
2476 PR target/56619
2477 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
2478 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
2479 Document _x* TSX intrinsics.
2480
b3c0d469
JJ
24812013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
2482 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
2483
2484 * configure.ac: Add MicroBlaze TLS support detection.
2485 * configure: Regenerate.
88b97037
UB
2486 * config/microblaze/microblaze-protos.h
2487 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
2488 symbol_mentioned_p, label_mentioned_p): Add prototypes.
2489 * config/microblaze/microblaze.c (microblaze_address_type): Add
2490 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
2491 (microblaze_address_info): Add tls_reloc.
2492 (TARGET_HAVE_TLS): Define.
2493 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
2494 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
2495 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
2496 load_tls_operand, microblaze_call_tls_get_addr,
2497 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
2498 (microblaze_classify_unspec): Handle UNSPEC_TLS.
2499 (get_base_reg): Use microblaze_tls_symbol_p.
2500 (microblaze_classify_address): Handle TLS.
88b97037
UB
2501 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
2502 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
2503 (microblaze_legitimize_address): Handle TLS.
2504 (microblaze_address_insns): Handle ADDRESS_TLS.
2505 (pic_address_needs_scratch): Handle TLS.
2506 (print_operand_address): Handle TLS.
2507 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
2508 (microblaze_expand_move): Handle TLS.
88b97037
UB
2509 (microblaze_legitimate_constant_p): Check
2510 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
2511 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
2512 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
2513 (PIC_OFFSET_TABLE_REGNUM): Set.
2514 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
2515 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
2516 (addsi3, movsi_internal2, movdf_internal): Update constraints
2517 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
2518 (move_operand): Redefine as move_src_operand,
2519 check microblaze_tls_referenced_p.
8cc9a5a5 2520
d803a491
IB
25212013-03-14 Ian Bolton <ian.bolton@arm.com>
2522
2523 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
2524 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
2525
a8504f22
IB
25262013-03-14 Ian Bolton <ian.bolton@arm.com>
2527
2528 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
2529 CC mode for AND.
2530
df2dfaea
JJ
25312013-03-14 Jakub Jelinek <jakub@redhat.com>
2532
fbd28bc3
JJ
2533 PR tree-optimization/53265
2534 * common.opt (Waggressive-loop-optimizations): New option.
2535 * tree-ssa-loop-niter.c: Include tree-pass.h.
2536 (do_warn_aggressive_loop_optimizations): New function.
2537 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
2538 if number_of_latch_executions returned constant.
2539 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
2540 early. If number_of_latch_executions returned constant, set
2541 nb_iterations_upper_bound back to it.
2542 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
2543 field.
2544 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
2545 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
2546
df2dfaea
JJ
2547 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
2548 (MULTILIB_OSDIRNAMES): Set.
2549 * genmultilib: If defaultosdirname doesn't start with :: , set
2550 defaultosdirname2 instead, clear it and emit two . multilib_raw
2551 entries instead of just one.
2552
ee0d2b68
KK
25532013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
2554
2555 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
2556 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
2557 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
2558 (SUBTARGET_OVERRIDE_OPTIONS): New.
2559
decc676e
OE
25602013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
2561
2562 PR target/49880
2563 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
2564 (musermode): Convert to Var(TARGET_USERMODE).
2565 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
2566 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
2567 * config/sh/sh.c (sh_option_override): Use
2568 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
2569 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
2570 condition.
2571 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
2572 TARGET_SH4.
2573 (udivsi3_i4_single, divsi3_i4_single): Use
2574 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
2575
f4b719c7
DK
25762013-03-13 Dave Korn <dave.korn.cygwin@....>
2577
2578 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
2579 default setting.
2580
c40eced0
RB
25812013-03-13 Richard Biener <rguenther@suse.de>
2582
2583 PR tree-optimization/56608
2584 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
2585 calls when vectorizing basic-blocks.
2586
1bfa5973
JJ
25872013-03-13 Jakub Jelinek <jakub@redhat.com>
2588
2589 PR plugins/45078
2590 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
2591 tm_file.
2592
6fcf5434
JJ
25932013-03-12 Jakub Jelinek <jakub@redhat.com>
2594
2595 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
2596
4f38fa8c
JH
25972013-03-11 Jan Hubicka <jh@suse.cz>
2598
2599 PR lto/56557
2600 * lto-streamer-out.c (output_symbol_p): Skip references from
2601 constructors of external variables.
2602
c5c5ba89
JH
26032013-03-11 Jan Hubicka <jh@suse.cz>
2604
2605 PR middle-end/56571
2606 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
2607 from pseudos.
2608 * emit-rtl.c (verify_rtx_sharing): Likewise.
2609 (copy_insn_1): Likewise.
2610 * rtl.c (copy_rtx): Likewise.
2611
c2a939b1
GJL
26122013-03-11 Georg-Johann Lay <avr@gjlay.de>
2613
2614 PR target/56591
2615 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
2616 output_operand_lossage message.
88b97037 2617
3c3279fb
RE
26182013-03-11 Richard Earnshaw <rearnsha@arm.com>
2619
2620 PR target/56470
2621 * arm.c (shift_op): Validate RTL pattern on the fly.
2622 (arm_print_operand, case 'S'): Don't use shift_operator to validate
2623 the RTL.
2624
aef5ef9d
JDA
26252013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2626
2627 PR target/56347
2628 * config/pa/pa.md (call_value): Check for calls to powf and direct to
2629 new call patterns that clobber %fr12.
2630 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
2631 split and postreload patterns.
2632 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
2633 registers %fr12 and %fr12R as call used.
2634
456610d3
SB
26352013-03-09 Steven Bosscher <steven@gcc.gnu.org>
2636
2637 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
2638 (canon_address, record_store, replace_read, check_mem_read_rtx,
2639 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
2640 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
2641 rest_of_handle_dse): Likewise.
2642
4b1baac8
RS
26432013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
2644
2645 PR middle-end/56524
2646 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
2647 Add base_optabs.
2648 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
2649 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
2650 (save_optabs_if_changed): Replace with...
2651 (init_tree_optimization_optabs): ...this.
2652 * optabs.c (save_optabs_if_changed): Rename to...
2653 (init_tree_optimization_optabs): ...this. Take the optimization node
2654 as argument. Do nothing if the base optabs are already correct.
2655 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
2656 to recompute optabs.
2657 * function.h (function): Remove optabs field.
2658 * function.c (invoke_set_current_function_hook): Call
2659 init_tree_optimization_optabs. Use the result to initialize
2660 this_fn_optabs.
2661
b7a78683
AH
26622013-02-27 Aldy Hernandez <aldyh@redhat.com>
2663
2664 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
2665 if GTMA_HAS_NO_INSTRUMENTATION.
2666 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
2667 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
2668 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
2669 * gimple-pretty-print.c (dump_gimple_transaction): Handle
2670 GTMA_HAS_NO_INSTRUMENTATION.
2671
6384c29b
JJ
26722013-03-08 Jakub Jelinek <jakub@redhat.com>
2673
2674 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
2675 libasan_preinit.o.
2676
ecd4f20a
MP
26772013-03-08 Marek Polacek <polacek@redhat.com>
2678 Jakub Jelinek <jakub@redhat.com>
2679
2680 PR tree-optimization/56478
2681 * predict.c (is_comparison_with_loop_invariant_p): Change the
2682 type of loop_step to tree.
2683 (predict_loops): Adjust.
2684 (predict_iv_comparison): Perform the computations on double_ints.
2685
64366d35
RB
26862013-03-08 Richard Biener <rguenther@suse.de>
2687
2688 PR tree-optimization/56570
2689 * tree-cfg.c (verify_expr_location_1): Verify locations for
2690 DECL_DEBUG_EXPR.
2691 * tree-sra.c (create_access_replacement): Strip locations
2692 from DECL_DEBUG_EXPRs.
2693
a9d5a059
RB
26942013-03-08 Richard Biener <rguenther@suse.de>
2695
2696 * tree-inline.c (expand_call_inline): Do not associate
2697 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
2698 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
2699
b7aa4e9a
RB
27002013-03-08 Richard Biener <rguenther@suse.de>
2701
2702 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
2703 or block changes with -Og. Fix for location / block encoding
2704 changes and PHI arguments with locations.
2705
c4c2f9fa
SB
27062013-03-07 Steven Bosscher <steven@gcc.gnu.org>
2707
2708 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
2709 for all counters.
2710 (struct output_info): Likewise.
2711 (register_overhead): Remove bad gcc_assert.
2712 (bitmap_find_bit): If there is only a single bitmap element, do not
2713 count a miss as a search.
2714 (print_statistics): Update for counter type changes.
2715 (dump_bitmap_statistics): Likewise. Print headers such that they
2716 are properly lined up with the printed counters.
2717
5bf6606a
JJ
27182013-03-07 Jakub Jelinek <jakub@redhat.com>
2719
2720 PR tree-optimization/56559
2721 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
2722 check that it has only a single use.
2723
2c653d46
RB
27242013-03-07 Richard Biener <rguenther@suse.de>
2725
2726 * doc/invoke.texi (fwhole-program): Discourage use in combination
2727 with -flto.
2728
a72d8780
JJ
27292013-03-06 Jakub Jelinek <jakub@redhat.com>
2730
01a454df
JJ
2731 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
2732
c1781047
JJ
2733 PR tree-optimization/56539
2734 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
2735 instead of GSI_CONTINUE_LINKING as last argument to
2736 force_gimple_operand_gsi. Adjust function comment.
2737
9772c47a
JJ
2738 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
2739 aarch64-cores.def.
2740
a72d8780
JJ
2741 PR middle-end/56548
2742 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
2743 promoted mode, convert the result back to the original mode.
2744
fa5556de
RB
27452013-03-06 Richard Biener <rguenther@suse.de>
2746
2747 PR middle-end/56294
2748 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
2749 (insert_updated_phi_nodes_compare_uids): New function.
2750 (update_ssa): Sort symbols_to_rename after UID before
2751 traversing it to insert PHI nodes.
2752
010403d1
RB
27532013-03-06 Richard Biener <rguenther@suse.de>
2754
2755 PR middle-end/50494
2756 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
2757 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
2758
2759 Revert
2760 2013-02-13 Richard Biener <rguenther@suse.de>
2761
2762 PR lto/50494
2763 * varasm.c (output_constant_def_1): Get the decl representing
2764 the constant as argument.
2765 (output_constant_def): Wrap output_constant_def_1.
2766 (make_decl_rtl): Use output_constant_def_1 with the decl
2767 representing the constant.
2768 (build_constant_desc): Optionally re-use a decl already
2769 representing the constant.
2770 (tree_output_constant_def): Adjust.
2771
3c27ce4c
JY
27722013-03-06 Joey Ye <joey.ye@arm.com>
2773
2774 PR lto/50293
2775 * gcc.c (convert_white_space): New function.
2776 (main): Handles white space in function name.
2777
8f6d1c86
OE
27782013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
2779
2780 PR target/56529
2781 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
2782 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
2783 to SH_DIV_CALL_TABLE for TARGET_SH2.
2784 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
2785 list.
2786 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
2787 call-table options.
2788
798a209f
SA
27892013-03-05 Sterling Augustine <saugustine@google.com>
2790 Cary Coutant <ccoutant@google.com>
2791
2792 PR debug/55364
2793 * dwarf2out.c (resolve_addr): Don't call
2794 remove_loc_list_addr_table_entries a second time for the same
2795 expression.
2796
6cfa417f 27972013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 2798
6cfa417f
JJ
2799 PR debug/56510
2800 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
2801 (avoid_complex_debug_insns): New function.
2802 (expand_debug_locations): Call it.
2803
2804 PR rtl-optimization/56484
2805 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
2806 lifetimes of hard registers on small register class machines.
2807
28082013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
2809
2810 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 2811 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 2812 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
2813 fast_interrupt.
2814 (microblaze_fast_interrupt_function_p): New function.
2815 (microblaze_is_interrupt_handler): Rename to
2816 microblaze_is_interrupt_variant and add fast_interrupt check.
2817 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
2818 (save_restore_insns): Likewise.
2819 (compute_frame_size): Likewise.
2820 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
2821 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
2822 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
2823 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
2824 microblaze_is_interrupt_variant.
2825
731aefac
KT
28262013-03-05 Kai Tietz <ktietz@redhat.com>
2827
2828 * sdbout.c (sdbout_one_type): Switch to current function's section
2829 supporting cold/hot.
2830
a72d8780 28312013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
2832
2833 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
2834 -mxl-reorder.
2835
334e71e8
JJ
28362013-03-05 Jakub Jelinek <jakub@redhat.com>
2837
0b50e654
JJ
2838 PR middle-end/56461
2839 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
2840 if VALGRIND_GET_VBITS is defined, temporarily make object
2841 memory all defined, and restore previous valgrind addressability
2842 and definability afterwards. Free this_object at the end.
2843
4ccf8f43
JJ
2844 PR middle-end/56461
2845 * lra.c (lra): Call lra_clear_live_ranges if live_p,
2846 right before calling lra_create_live_ranges, also call it
2847 when clearing live_p. Only call lra_clear_live_ranges
2848 at the end if live_p.
2849
334e71e8
JJ
2850 PR middle-end/56461
2851 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
2852
9ca966ca
RB
28532013-03-05 Richard Biener <rguenther@suse.de>
2854
2855 PR tree-optimization/56521
2856 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
2857 value-id.
2858
d273b176
SB
28592013-03-05 Steven Bosscher <steven@gcc.gnu.org>
2860
2861 PR c++/55135
2862 * except.h (remove_unreachable_eh_regions): New prototype.
2863 * except.c (remove_eh_handler_splicer): New function, split out
2864 of remove_eh_handler.
2865 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
2866 warning about running it on many EH regions one at a time.
2867 (remove_unreachable_eh_regions_worker): New function, walk the
2868 EH tree in depth-first order and remove non-marked regions.
2869 (remove_unreachable_eh_regions): New function.
2870 * tree-eh.c (mark_reachable_handlers): New function, split out
2871 from remove_unreachable_handlers.
2872 (remove_unreachable_handlers): Use mark_reachable_handlers and
2873 remove_unreachable_eh_regions.
2874 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
2875 and remove_unreachable_eh_regions.
2876
5e7f1aef
RB
28772013-03-05 Richard Biener <rguenther@suse.de>
2878
2879 PR middle-end/56525
2880 * loop-init.c (fix_loop_structure): Remove loops in two stages,
2881 not freeing them until the end.
2882
f276b762
AK
28832013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2884
2885 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
2886
12a43ab8
RB
28872013-03-05 Richard Biener <rguenther@suse.de>
2888
2889 PR tree-optimization/56270
2890 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
2891 of loads after scheduling an SLP instance.
2892
93675444
JJ
28932013-03-05 Jakub Jelinek <jakub@redhat.com>
2894
db4138e3
JJ
2895 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
2896 tic6x.exp.
2897 (check_gcc_parallelize): Run guality.exp as a separate job from
2898 vect.exp with unsorted.exp and $(dg_target_exps) separately from
2899 struct-layout-1.exp with stackalign.exp.
2900
dd3d1ec0
JJ
2901 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
2902
b8d381a3
JJ
2903 PR middle-end/56461
2904 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
2905 load_index sbitmap even if some bit in it isn't set.
2906
b4f9786b
JJ
2907 PR middle-end/56461
2908 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
2909 (discover_iteration_bound_by_body_walk): Change queues to
2910 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
2911 spelling in comment. Call safe_push on queues[bound_index] directly.
2912 Release queues[queue_index] in every iteration unconditionally.
2913 Release bounds vector.
2914
93675444
JJ
2915 PR middle-end/56461
2916 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
2917 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
2918 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
2919 inner_phis vector.
2920
3e492e9c
RB
29212013-03-05 Richard Biener <rguenther@suse.de>
2922
2923 PR lto/56515
2924 * tree-inline.c (remap_blocks_to_null): New function.
2925 (expand_call_inline): When expanding a call stmt without
2926 an associated block inline remap all callee blocks to NULL.
2927
a5d1569a
JJ
29282013-03-05 Jakub Jelinek <jakub@redhat.com>
2929
86efb5cd
JJ
2930 PR rtl-optimization/56494
2931 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
2932 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
2933 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
2934
85f5dbea
JJ
2935 PR middle-end/56461
2936 * sel-sched-ir.c (free_sched_pools): Release
2937 succs_info_pool.stack[succs_info_pool.max_top] vectors too
2938 if succs_info_pool.max_top isn't -1.
2939
a5d1569a
JJ
2940 PR bootstrap/56509
2941 * opts.c (opts_obstack, opts_concat): Moved to...
2942 * opts-common.c (opts_obstack, opts_concat): ... here.
2943
4432aa6c
JJ
29442013-03-04 Jakub Jelinek <jakub@redhat.com>
2945
2946 PR middle-end/56461
2947 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
2948
f3a1fb91
MJ
29492013-03-04 Martin Jambor <mjambor@suse.cz>
2950
2951 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
2952 all appropriate places.
2953
22110e6c
EB
29542013-01-04 Eric Botcazou <ebotcazou@adacore.com>
2955
2956 PR tree-optimization/56424
2957 * ipa-split.c (split_function): Do not set the RSO flag if result is
2958 not by reference and its type is a register type.
2959
a72d8780 29602013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 2961
88b97037 2962 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 2963 (microblaze_legitimate_pic_operand): Likewise
88b97037 2964 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
2965 new function microblaze_legitimate_pic_operand
2966 * config/microblaze/microblaze-protos.h
2967 (microblaze_legitimate_pic_operand): Declare.
2968
a72d8780 29692013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 2970
a72d8780 2971 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 2972 New predicate for supported rtx code types.
a72d8780 2973 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
2974 call_insn_simple_operand predicate.
2975
541d9ac8
JJ
29762013-03-04 Jakub Jelinek <jakub@redhat.com>
2977
5eb010bc
JJ
2978 PR middle-end/56461
2979 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
2980 partitions.ordered_remove.
2981
30862efc
JJ
2982 PR middle-end/56461
2983 * tree-vect-stmts.c (vectorizable_conversion): Don't call
2984 vec_oprnds0.create (1) for modifier == NONE.
2985
8930f723
JJ
2986 PR middle-end/56461
2987 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
2988 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
2989 vec_oprnds1 right before pushing anything to it for
2990 scalar_shift_arg.
2991
541d9ac8
JJ
2992 PR middle-end/56461
2993 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
2994 set nbbs to 0 instead of having separate code path.
2995 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
2996 instead of false as last argument if returning NULL.
2997
7aa7f2e3
SL
29982013-03-03 Sandra Loosemore <sandra@codesourcery.com>
2999
3000 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
3001 the attribute is now called "target" instead of "option".
3002 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
3003 * doc/tm.texi.in (Target Attributes): Likewise document the correct
3004 attribute/pragma name for TARGET_OPTION_VALID_P and
3005 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
3006 * doc/tm.texi: Regenerated.
3007
8930f723 30082013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 3009
8930f723 3010 * config/microblaze/microblaze.c:
cb8a1637 3011 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
3012 * config/microblaze/microblaze.h: Add -mxl-reorder to
3013 DRIVER_SELF_SPECS.
3014 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
3015 instructions emitted if TARGET_REORDER.
88b97037
UB
3016 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
3017 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 3018 separately.
cb8a1637 3019
4dc1d68c
XDL
30202013-03-01 Xinliang David Li <davidxl@google.com>
3021
3022 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
3023 walk length.
3024
689eaba3
JJ
30252013-03-01 Jakub Jelinek <jakub@redhat.com>
3026
9d676bf6
JJ
3027 PR middle-end/56461
3028 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
3029 vector even when returning true. Fix up function comment formatting.
3030
caff7edf
JJ
3031 PR middle-end/56461
3032 * ira-build.c (ira_loop_nodes_count): New variable.
3033 (create_loop_tree_nodes): Initialize it.
3034 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
3035
b6b9227d
JJ
3036 PR middle-end/56461
3037 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
3038 method on dr_chain and result_chain.
3039 * tree-vect-stmts.c (vectorizable_store): Only call
3040 result_chain.create if j == 0.
3041
689eaba3
JJ
3042 PR middle-end/56461
3043 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
3044 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
3045 before overwriting it.
3046
40bf31ed
TB
30472013-03-01 Tobias Burnus <burnus@net-b.de>
3048
3049 * doc/extended.texi (C Extensions): Change order in @menu
3050 to match @node.
3051 (Other MIPS Built-in Functions): Move last MIPS entry before
3052 "picoChip Built-in Functions".
3053 (SH Built-in Functions): Move after RX Built-in Functions.
3054 * doc/gcc.texi (Introduction): Change order in @menu
3055 to match @node.
3056 * doc/md.texi (Constraints): Ditto.
3057 * gty.texi (Type Information): Ditto.
3058 (User-provided marking routines for template types): Make
3059 subsection.
3060 * doc/invoke.texi (AArch64 Options): Move before
3061 "Adapteva Epiphany Options".
3062
e664c61c
KS
30632013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
3064 Jakub Jelinek <jakub@redhat.com>
3065
3066 PR sanitizer/56454
3067 * asan.c (gate_asan): Lookup no_sanitize_address instead of
3068 no_address_safety_analysis attribute.
3069 * doc/extend.texi (no_address_safety_attribute): Rename to
3070 no_sanitize_address attribute, mention no_address_safety_analysis
3071 attribute as deprecated alias.
3072
37b5ec8f
JJ
30732013-02-28 Jakub Jelinek <jakub@redhat.com>
3074
3075 PR middle-end/56461
3076 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
3077 type to vec<vec<tree> > *.
3078 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
3079 to be vec<tree> instead of vec<tree> *, set vec_defs
3080 to vNULL and call vec_defs.create (number_of_vects), adjust other
3081 uses of vec_defs.
3082 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
3083 vectorizable_condition): Adjust vect_get_slp_defs callers.
3084
ba96cdfb
JG
30852013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
3086
3087 * config/aarch64/aarch64.c
3088 (aarch64_float_const_representable): Remove unused variable.
3089
6f549691
JG
30902013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
3091
3092 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
3093
af55e82d
JG
30942013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
3095
3096 * config/aarch64/aarch64-builtins.c
3097 (aarch64_init_simd_builtins): Make static.
3098
1df3f464
JG
30992013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
3100
3101 * config/aarch64/aarch64.c
3102 (aarch64_simd_make_constant): Make static.
3103
f8f42513
MJ
31042013-02-28 Martin Jambor <mjambor@suse.cz>
3105
3106 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
3107 with no initialization to the RHS of debug statements.
3108
b48b3fc4
MJ
31092013-02-28 Martin Jambor <mjambor@suse.cz>
3110
3111 PR tree-optimization/56294
3112 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
3113 Adjust dumping.
3114 (get_access_replacement): Do not call create_access_replacement.
3115 Assert a replacement exists.
3116 (get_repl_default_def_ssa_name): Create the replacement declaration
3117 itself.
3118
c3ae224c
RR
31192013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3120
3121 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
3122 final_end_function.
3123
45fa0eef
MP
31242013-02-28 Marek Polacek <polacek@redhat.com>
3125
3126 PR rtl-optimization/56466
3127 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
3128 if we're changing a loop.
3129 (peel_loops_completely): Likewise.
3130
502c067d
PC
31312013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
3132
3133 PR c++/55813
3134 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
3135
ff24afc8
GJL
31362013-02-28 Georg-Johann Lay <avr@gjlay.de>
3137
3138 PR target/56445
3139 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
3140 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
3141 INTX_FTYPE_FX, FX_FTYPE_INTX.
3142 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
3143
c7b1fc1b
GJL
31442013-02-28 Georg-Johann Lay <avr@gjlay.de>
3145
3146 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
3147 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
3148 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
3149 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
3150 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
3151 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
3152 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
3153 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
3154 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
3155 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
3156 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
3157 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
3158 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
3159 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
3160 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
3161 (avrxmega6): Increase max flash segments from 5 to 6.
3162 * config/avr/t-multilib: Regenerate.
3163 * config/avr/avr-tables.opt: Regenerate.
3164 * doc/avr-mmcu.texi: Regenerate.
3165
4a0e3cfe
GJL
31662013-02-28 Georg-Johann Lay <avr@gjlay.de>
3167
3168 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
3169 (avr_device_to_arch): Rename to avr_device_to_ld.
3170 (avr_device_to_as): New prototype.
3171 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
3172 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
3173 * config/avr/driver-avr.c (avr_device_to_as): New.
3174 (avr_device_to_arch): Rename to avr_device_to_ld.
3175
97785e52
JJ
31762013-02-27 Jakub Jelinek <jakub@redhat.com>
3177
3f292312
JJ
3178 PR middle-end/56461
3179 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
3180 method on dr_chain and result_chain.
3181
a344216b
JJ
3182 PR middle-end/56461
3183 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
3184 pointer_set_destroy on not_executed_last_iteration.
3185
f121ad02 3186 PR middle-end/56461
88b97037 3187 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 3188
307f83a3
JJ
3189 PR middle-end/56461
3190 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
3191 FOR_EACH_DEFINED_FUNCTION when freeing state.
3192
e19624ee
JJ
3193 PR middle-end/56461
3194 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
3195 pool_free.
3196 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
3197 overwriting it.
3198
90e709fd
JJ
3199 PR middle-end/56461
3200 * ipa-cp.c (decide_whether_version_node): Call vec_free on
3201 known_aggs[i].items and release known_aggs vector.
3202
97785e52
JJ
3203 PR middle-end/56461
3204 * ipa-reference.c (propagate): Free node_info even for alias nodes.
3205
32062013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 3207
97785e52
JJ
3208 * config/microblaze/microblaze.c (microblaze_emit_compare):
3209 Use xor for EQ/NE comparisions.
3210 * config/microblaze/microblaze.md (cstoresf4): Add constraints
3211 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 3212
6fa5e0ed
JJ
32132013-02-27 Jakub Jelinek <jakub@redhat.com>
3214
3215 PR middle-end/56461
3216 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
3217 vector.
3218 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
3219 vec_safe_push, always update *slot.
3220 (redirect_edge_var_map_clear): Use vec_free.
3221 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
3222 (free_var_map_entry): Use vec_free.
3223 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
3224 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
3225
436a956a
AB
32262013-02-27 Andrey Belevantsev <abel@ispras.ru>
3227
3228 PR middle-end/45472
436a956a
AB
3229 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
3230 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
3231 Reorder tests for speculativeness in the logical and operator.
3232
f5c2caca
JJ
32332013-02-27 Jakub Jelinek <jakub@redhat.com>
3234
0fcb564b
JJ
3235 * incpath.c (add_standard_paths): Use reconcat instead of concat
3236 where appropriate and avoid leaking memory.
3237
dc357798
JJ
3238 * opts.h: Include obstack.h.
3239 (opts_concat): New prototype.
3240 (opts_obstack): New declaration.
3241 * opts.c (opts_concat): New function.
3242 (opts_obstack): New variable.
3243 (init_options_struct): Call gcc_init_obstack on opts_obstack.
3244 (finish_options): Use opts_concat instead of concat
3245 and XOBNEWVEC instead of XNEWVEC.
3246 * opts-common.c (generate_canonical_option, decode_cmdline_option,
3247 generate_option): Likewise.
3248 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
3249 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
3250
f5c2caca
JJ
3251 PR target/56455
3252 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
3253 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
3254
d0163673
JJ
32552013-02-26 Jakub Jelinek <jakub@redhat.com>
3256
3257 PR middle-end/56461
3258 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
3259
b5ad2b8e
JR
32602013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
3261
3262 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
3263 (arm_block_move_unaligned_straight): Likewise.
3264 (arm_adjust_block_mem): Likewise.
3265
9b639e2c
JR
32662013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
3267
3268 PR target/48901
3269 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
3270 temp, cond and label.
3271 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
3272
e13a0ccb
JR
3273 PR target/52500
3274 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
3275 * config/c6x/c6x.h (dbx_register_map): Update declaration.
3276
fbe4f171
JR
3277 PR target/52501
3278 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
3279 of prologue/epilogue functions.
3280
ae006543
JR
3281 PR target/52550
3282 * config/tilegx/tilegx.c (tilegx_expand_prologue):
3283 Remove unused variable cfa_offset.
3284 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
3285
c81369fa
JR
3286 PR target/54639
3287 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
3288 type promotion to unsigned.
3289
f8a8fea7
JR
3290 PR target/54640
3291 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
3292 for HOST_WIDE_INT of 32 bit / same size as int.
3293 (arm_block_move_unaligned_straight): Likewise.
3294 (arm_adjust_block_mem): Likewise.
3295
f8be5169
JR
3296 PR target/54662
3297 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
3298 ALL_CFLAGS.
3299
f1ad3354
MP
33002013-02-26 Marek Polacek <polacek@redhat.com>
3301
3302 PR tree-optimization/56426
88b97037 3303 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 3304
a6af0f42
RB
33052013-02-26 Richard Biener <rguenther@suse.de>
3306
3307 PR target/56444
3308 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
3309 unused variable loops.
3310
aca43c6c
JJ
33112013-02-26 Jakub Jelinek <jakub@redhat.com>
3312
cecbe5d9
JJ
3313 PR tree-optimization/56448
3314 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
3315 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
3316 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
3317 later operands of the references, or even first operand for
3318 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
3319
aca43c6c
JJ
3320 PR tree-optimization/56443
3321 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
3322 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
3323 to type_for_mode langhook.
3324
53e2e141
MT
33252013-02-25 Matt Turner <mattst88@gmail.com>
3326
3327 * doc/invoke.texi: Document r4700.
3328
259ee451
RB
33292013-02-25 Richard Biener <rguenther@suse.de>
3330
3331 PR tree-optimization/56175
3332 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
3333 split out from ...
3334 (simplify_bitwise_binary): ... here. Also guard the conversion
3335 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
3336
6d65e8f1
CM
33372013-02-25 Catherine Moore <clm@codesourcery.com>
3338
3339 Revert:
3340 2013-02-24 Catherine Moore <clm@codesourcery.com>
3341 Maciej W. Rozycki <macro@codesourcery.com>
3342 Tom de Vries <tom@codesourcery.com>
a72d8780 3343 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
3344 Iain Sandoe <iain@codesourcery.com>
3345 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 3346 Chao-ying Fu <fu@mips.com>
88b97037 3347
6d65e8f1 3348 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 3349 Document new function attributes.
6d65e8f1
CM
3350 * doc/invoke.texi (minterlink-compressed, mmicromips,
3351 m14k, m14ke, m14kec): Document new options.
3352 (minterlink-mips16): Update documentation.
3353 * doc/md.texi (ZC, ZD): Document new constraints.
3354 * configure.ac (gcc_cv_as_micromips): Check if linker
3355 supports the .set micromips directive.
3356 * configure: Regenerate.
3357 * config.in: Regenerate.
3358 * config/mips/mips-tables.opt: Regenerate.
3359 * config/mips/micromips.md: New file.
3360 * constraints.md (ZC, AD): New constraints.
3361 * config/mips/predicates.md (movep_src_register): New predicate.
3362 (movep_src_operand): New predicate.
3363 (non_volatile_mem_operand): New predicate.
3364 * config/mips/mips.md (multimem): New type.
3365 (length): Differentiate between 17-bit and 18-bit branch offsets.
3366 (MOVEP1, MOVEP2): New mode iterator.
3367 (mov_<load>l): Use ZC constraint.
3368 (mov_<load>r): Likewise.
3369 (mov_<store>l): Likewise.
3370 (mov_<store>r): Likewise.
3371 (*branch_equality<mode>_inverted): Add microMIPS support.
3372 (*branch_equality<mode>): Likewise.
3373 (*jump_absolute): Likewise.
3374 (indirect_jump_<mode>): Likewise.
3375 (tablejump_<mode>): Likewise.
3376 (<optab>_internal): Likewise.
3377 (sibcall_internal): Likewise.
3378 (sibcall_value_internal): Likewise.
3379 (prefetch): Use constraint ZD.
3380 * config/mips/mips.opt (minterlink-compressed): New option.
3381 (minterlink-mips16): Now an alias for minterlink-compressed.
3382 (mmicromips): New option.
3383 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
3384 (compare_and_swap_12): Likewise.
3385 (sync_add<mode>): Likewise.
3386 (sync_<optab>_12): Likewise.
3387 (sync_old_<optab>_12): Likewise.
3388 (sync_new_<optab>_12): Likewise.
3389 (sync_nand_12): Likewise.
3390 (sync_old_nand_12): Likewise.
3391 (sync_new_nand_12): Likewise.
3392 (sync_sub<mode>): Likewise.
3393 (sync_old_add<mode>): Likewise.
3394 (sync_old_sub<mode>): Likewise.
3395 (sync_new_add<mode>): Likewise.
3396 (sync_new_sub<mode>): Likewise.
3397 (sync_<optab><mode>): Likewise.
3398 (sync_old_<optab><mode>): Likewise.
3399 (sync_new_<optab><mode>): Likewise.
3400 (sync_nand<mode>): Likewise.
3401 (sync_old_nand<mode>): Likewise.
3402 (sync_new_nand<mode>): Likewise.
3403 (sync_lock_test_and_set<mode>): Likewise.
3404 (test_and_set_12): Likewise.
3405 (atomic_compare_and_swap<mode>): Likewise.
3406 (atomic_exchange<mode>_llsc): Likewise.
3407 (atomic_fetch_add<mode>_llsc): Likewise.
3408 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
3409 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
3410 (umips_save_restore_pattern_p): Likewise.
3411 (umips_load_store_pair_p): Likewise.
3412 (umips_output_load_store_pair): Likewise.
3413 (umips_movep_target_p): Likewise.
3414 (umips_12bit_offset_address_p): Likewise.
3415 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
3416 (mips_base_mips16): Rename this...
3417 (mips_base_compression_flags): ...to this. Update all uses.
3418 (mips_attribute_table): Add micromips, nomicromips and nocompression.
3419 (mips_mips16_decl_p): Delete.
3420 (mips_nomips16_decl_p): Delete.
3421 (mips_get_compress_on_flags): New function.
3422 (mips_get_compress_off_flags): New function.
3423 (mips_get_compress_mode): New function.
3424 (mips_get_compress_on_name): New function.
3425 (mips_get_compress_off_name): New function.
3426 (mips_insert_attributes): Support multiple compression types.
3427 (mips_merge_decl_attributes): Likewise.
3428 (umips_12bit_offset_address_p): New function.
3429 (mips_start_function_definition): Emit .set micromips directive.
3430 (mips_call_may_need_jalx_p): New function.
3431 (mips_function_ok_for_sibcall): Add microMIPS support.
3432 (mips_print_operand_punctuation): Support short delay slots and
3433 compact jumps.
3434 (umips_swm_mask, umips_swm_encoding): New.
3435 (umips_build_save_restore): New function.
3436 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
3437 (was_mips16_p): Remove.
3438 (old_compression_mode): New.
3439 (mips_set_compression_mode): New function.
3440 (mips_set_current_function): Add microMIPS support.
3441 (mips_option_override): Likewise.
3442 (umips_save_restore_pattern_p): New function.
3443 (umips_output_save_restore): New function.
3444 (umips_load_store_pair_p_1): New function.
3445 (umips_load_store_pair_p): New function.
3446 (umips_output_load_store_pair_1): New function.
3447 (umips_output_load_store_pair): New function.
3448 (umips_movep_target_p) New function.
3449 (mips_prepare_pch_save): Add microMIPS support.
3450 * config/mips/mips.h (TARGET_COMPRESSION): New.
3451 (TARGET_CPU_CPP_BUILTINS): Update macro
3452 to use new compression flags and to support microMIPS.
3453 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
3454 (MIPS_ARCH_FLOAT_SPEC): Likewise.
3455 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
3456 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
3457 (ASM_SPEC): Support mmicromips and mno-micromips.
3458 (M16STORE_REG_P): New macro.
3459 (MIPS_CALL): Support TARGET_MICROMIPS.
3460 (MICROMIPS_J): New macro.
3461 (mips_base_mips16): Rename this...
3462 (mips_base_compression_flags): ...to this.
3463 (UMIPS_12BIT_OFFSET_P): New macro.
3464 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
3465 (MULTILIB_DIRNAMES): Likewise.
3466
5e5df392
TV
34672013-02-25 Tom de Vries <tom@codesourcery.com>
3468
3469 PR rtl-optimization/56131
3470 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
3471 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
3472 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
3473
3fdb53c1
TB
34742013-02-25 Tobias Burnus <burnus@net-b.de>
3475
3476 * doc/invoke.texi (-fsanitize=): Move from optimization
3477 to debugging options.
3478
ed358aea
AB
34792013-02-25 Andrey Belevantsev <abel@ispras.ru>
3480
3481 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
3482
f45e9053
AB
34832013-02-25 Andrey Belevantsev <abel@ispras.ru>
3484 Alexander Monakov <amonakov@ispras.ru>
3485
3486 PR middle-end/56077
3487 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
3488 flush pending lists also on non-jumps. Adjust comment.
3489
6941b508
CM
34902013-02-24 Catherine Moore <clm@codesourcery.com>
3491 Maciej W. Rozycki <macro@codesourcery.com>
3492 Tom de Vries <tom@codesourcery.com>
a72d8780 3493 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
3494 Iain Sandoe <iain@codesourcery.com>
3495 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 3496 Chao-ying Fu <fu@mips.com>
6941b508
CM
3497
3498 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 3499 Document new function attributes.
6941b508
CM
3500 * doc/invoke.texi (minterlink-compressed, mmicromips,
3501 m14k, m14ke, m14kec): Document new options.
3502 (minterlink-mips16): Update documentation.
3503 * doc/md.texi (ZC, ZD): Document new constraints.
3504 * configure.ac (gcc_cv_as_micromips): Check if linker
3505 supports the .set micromips directive.
3506 * configure: Regenerate.
3507 * config.in: Regenerate.
3508 * config/mips/mips-tables.opt: Regenerate.
3509 * config/mips/micromips.md: New file.
3510 * constraints.md (ZC, AD): New constraints.
3511 * config/mips/predicates.md (movep_src_register): New predicate.
3512 (movep_src_operand): New predicate.
3513 (non_volatile_mem_operand): New predicate.
3514 * config/mips/mips.md (multimem): New type.
3515 (length): Differentiate between 17-bit and 18-bit branch offsets.
3516 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 3517 (mov_<load>l): Use ZC constraint.
6941b508
CM
3518 (mov_<load>r): Likewise.
3519 (mov_<store>l): Likewise.
3520 (mov_<store>r): Likewise.
3521 (*branch_equality<mode>_inverted): Add microMIPS support.
3522 (*branch_equality<mode>): Likewise.
3523 (*jump_absolute): Likewise.
3524 (indirect_jump_<mode>): Likewise.
3525 (tablejump_<mode>): Likewise.
3526 (<optab>_internal): Likewise.
3527 (sibcall_internal): Likewise.
3528 (sibcall_value_internal): Likewise.
3529 (prefetch): Use constraint ZD.
3530 * config/mips/mips.opt (minterlink-compressed): New option.
3531 (minterlink-mips16): Now an alias for minterlink-compressed.
3532 (mmicromips): New option.
3533 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
3534 (compare_and_swap_12): Likewise.
3535 (sync_add<mode>): Likewise.
3536 (sync_<optab>_12): Likewise.
3537 (sync_old_<optab>_12): Likewise.
3538 (sync_new_<optab>_12): Likewise.
3539 (sync_nand_12): Likewise.
3540 (sync_old_nand_12): Likewise.
3541 (sync_new_nand_12): Likewise.
3542 (sync_sub<mode>): Likewise.
3543 (sync_old_add<mode>): Likewise.
3544 (sync_old_sub<mode>): Likewise.
3545 (sync_new_add<mode>): Likewise.
3546 (sync_new_sub<mode>): Likewise.
3547 (sync_<optab><mode>): Likewise.
3548 (sync_old_<optab><mode>): Likewise.
3549 (sync_new_<optab><mode>): Likewise.
3550 (sync_nand<mode>): Likewise.
3551 (sync_old_nand<mode>): Likewise.
3552 (sync_new_nand<mode>): Likewise.
3553 (sync_lock_test_and_set<mode>): Likewise.
3554 (test_and_set_12): Likewise.
3555 (atomic_compare_and_swap<mode>): Likewise.
3556 (atomic_exchange<mode>_llsc): Likewise.
3557 (atomic_fetch_add<mode>_llsc): Likewise.
3558 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
3559 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
3560 (umips_save_restore_pattern_p): Likewise.
3561 (umips_load_store_pair_p): Likewise.
3562 (umips_output_load_store_pair): Likewise.
3563 (umips_movep_target_p): Likewise.
3564 (umips_12bit_offset_address_p): Likewise.
3565 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
3566 (mips_base_mips16): Rename this...
3567 (mips_base_compression_flags): ...to this. Update all uses.
3568 (mips_attribute_table): Add micromips, nomicromips and nocompression.
3569 (mips_mips16_decl_p): Delete.
3570 (mips_nomips16_decl_p): Delete.
3fdb53c1 3571 (mips_get_compress_on_flags): New function.
6941b508
CM
3572 (mips_get_compress_off_flags): New function.
3573 (mips_get_compress_mode): New function.
3574 (mips_get_compress_on_name): New function.
3575 (mips_get_compress_off_name): New function.
3576 (mips_insert_attributes): Support multiple compression types.
3577 (mips_merge_decl_attributes): Likewise.
3578 (umips_12bit_offset_address_p): New function.
3579 (mips_start_function_definition): Emit .set micromips directive.
3580 (mips_call_may_need_jalx_p): New function.
3581 (mips_function_ok_for_sibcall): Add microMIPS support.
3582 (mips_print_operand_punctuation): Support short delay slots and
3583 compact jumps.
3584 (umips_swm_mask, umips_swm_encoding): New.
3585 (umips_build_save_restore): New function.
3586 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
3587 (was_mips16_p): Remove.
3588 (old_compression_mode): New.
3589 (mips_set_compression_mode): New function.
3590 (mips_set_current_function): Add microMIPS support.
3591 (mips_option_override): Likewise.
3592 (umips_save_restore_pattern_p): New function.
3593 (umips_output_save_restore): New function.
3594 (umips_load_store_pair_p_1): New function.
3595 (umips_load_store_pair_p): New function.
3596 (umips_output_load_store_pair_1): New function.
3597 (umips_output_load_store_pair): New function.
3598 (umips_movep_target_p) New function.
3599 (mips_prepare_pch_save): Add microMIPS support.
3600 * config/mips/mips.h (TARGET_COMPRESSION): New.
3601 (TARGET_CPU_CPP_BUILTINS): Update macro
3602 to use new compression flags and to support microMIPS.
3603 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
3604 (MIPS_ARCH_FLOAT_SPEC): Likewise.
3605 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
3606 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
3607 (ASM_SPEC): Support mmicromips and mno-micromips.
3608 (M16STORE_REG_P): New macro.
3609 (MIPS_CALL): Support TARGET_MICROMIPS.
3610 (MICROMIPS_J): New macro.
3611 (mips_base_mips16): Rename this...
3612 (mips_base_compression_flags): ...to this.
3613 (UMIPS_12BIT_OFFSET_P): New macro.
3614 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
3615 (MULTILIB_DIRNAMES): Likewise.
3616
cdebbc6d
JJ
36172013-02-24 Jakub Jelinek <jakub@redhat.com>
3618
3619 PR target/52555
3620 * target-globals.c (save_target_globals): For init_reg_sets and
3621 target_reinit remporarily set this_fn_optabs to this_target_optabs.
3622
18c63565
JG
36232013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
3624
3625 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
3626 * config/aarch64/t-aarch64
3627 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
3628
2194f7a2
VM
36292013-02-22 Vladimir Makarov <vmakarov@redhat.com>
3630
3631 PR inline-asm/56148
3632 * lra-constraints.c (process_alt_operands): Reload operand
3633 conflicting with earlier clobber only if no more other conflicting
3634 operands.
3635
7d613735
JJ
36362013-02-22 Jakub Jelinek <jakub@redhat.com>
3637
3638 PR sanitizer/56393
3639 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
3640 if not linking a shared library.
3641
ac8d93a7
SL
36422013-02-22 Seth LaForge <sethml@google.com>
3643
3644 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
3645
e0237780
GY
36462013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
3647
3fdb53c1
TB
3648 * config/arm/arm.md (split for extendsidi): Update condition.
3649 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
3650 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
3651 (qhs_zextenddi_cstr): Likewise.
e0237780 3652
d7fde18c
JJ
36532013-02-21 Jakub Jelinek <jakub@redhat.com>
3654
be63b77d
JJ
3655 PR middle-end/56420
3656 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
3657 avoid signed wrapping.
3658 (expand_mult): Handle properly multiplication by
3659 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
3660 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
3661 in the compiler if coeff is HOST_WIDE_INT_MIN.
3662 (expand_divmod): Don't make ext_op1 static, change it's type to
3663 uhwi. Avoid undefined behavior in -INTVAL (op1).
3664
d7fde18c
JJ
3665 PR rtl-optimization/50339
3666 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
3667 field.
3668 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
3669 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
3670 into splitting_ashiftrt field.
3671 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
3672 ASHIFTRT.
3673 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
3674 choices.
3675
6aad4455
AH
36762013-02-20 Aldy Hernandez <aldyh@redhat.com>
3677
3678 PR middle-end/56108
3679 * trans-mem.c (execute_tm_mark): Do not expand transactions that
3680 are sure to go irrevocable.
3681
38fe784d
HPN
36822013-02-21 Hans-Peter Nilsson <hp@axis.com>
3683
3684 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
3685 scalars are valid operands.
3686
0fd44da3
MJ
36872013-02-21 Martin Jambor <mjambor@suse.cz>
3688
3689 PR tree-optimization/56310
3690 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
3691 only matching indices and non-negative final offsets.
3692 (intersect_aggregates_with_edge): Pass src_idx to
3693 agg_replacements_to_vector. Pass src_idx insstead of index to
3694 intersect_with_agg_replacements.
3695
7a92038b
MJ
36962013-02-21 Martin Jambor <mjambor@suse.cz>
3697
3698 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
3699 instead of hard-wired defaults.
3700
c0da9c37
MR
37012013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
3702
3703 * doc/invoke.texi (MIPS Options): Update documentation of the
3704 floating-point multiply-accumulate instruction restrictions.
3705
d247ea0c 37062013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
3707
3708 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
3709 asan_shadow_offset on x86_64 linux.
3710
22deefcb
RB
37112013-02-21 Richard Biener <rguenther@suse.de>
3712
3713 PR tree-optimization/56415
3714 Revert
3715 2013-02-11 Richard Biener <rguenther@suse.de>
3716
3717 PR tree-optimization/56273
3718 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
3719 first VRP run.
3720
7bcc6e75
JJ
37212013-02-21 Jakub Jelinek <jakub@redhat.com>
3722
a0ad148f
JJ
3723 PR bootstrap/56258
3724 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
3725 instead of @itemx.
3726
7bcc6e75
JJ
3727 PR inline-asm/56405
3728 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
3729 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
3730
a0a7b611
JH
37312013-02-20 Jan Hubicka <jh@suse.cz>
3732
3733 PR tree-optimization/56265
88b97037
UB
3734 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
3735 when target is referenced for first time.
a0a7b611 3736
c0e50f72
RB
37372013-02-20 Richard Biener <rguenther@suse.de>
3738
3739 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
3740 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
3741 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
3742 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
3743 not return anything.
3744 (rename_ssa_copies): Do not remove unused locals.
3745 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 3746 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
3747 * passes.c (execute_function_todo): Do not schedule unused locals
3748 removal if cleanup_tree_cfg did something.
3749 * tree-ssa-live.c (remove_unused_locals): Dump statistics
3750 about the number of removed locals.
3751
a52ca739
RB
37522013-02-20 Richard Biener <rguenther@suse.de>
3753
3754 PR tree-optimization/56398
88b97037 3755 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 3756
ec9c9d1b
MJ
37572013-02-20 Martin Jambor <mjambor@suse.cz>
3758
3759 PR tree-optimization/55334
3760 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
3761 restricted pointers to arrays.
3762
e91c8ed6 37632013-02-20 Richard Biener <rguenther@suse.de>
88b97037 3764 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
3765
3766 PR tree-optimization/56396
3767 * tree-ssa-ccp.c (n_const_val): New static variable.
3768 (get_value): Return NULL for SSA names we don't have a lattice
3769 entry for.
3770 (ccp_initialize): Initialize n_const_val.
3771 * tree-ssa-copy.c (n_copy_of): New static variable.
3772 (init_copy_prop): Initialize n_copy_of.
3773 (get_value): Return NULL_TREE for SSA names we don't have a
3774 lattice entry for.
3775
3d916479
MJ
37762013-02-20 Martin Jambor <mjambor@suse.cz>
3777
3778 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
3779
71a86758
RB
37802013-02-20 Richard Biener <rguenther@suse.de>
3781
3782 * genpreds.c (write_lookup_constraint): Do not compare first
3783 letter of the constraint again.
3784
79836a12
RB
37852013-02-20 Richard Biener <rguenther@suse.de>
3786
3787 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
3788 and ceil_log2.
3789 (get_use_iv_cost): Terminate hashtable walk when coming across
3790 an empty entry.
3791
bbe4fb2c
IZ
37922013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
3793
3794 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
3795 reassociation for avx2 targets.
3796
a72d8780 37972012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 3798
c77f83d5
EI
3799 * config/microblaze/microblaze.c: microblaze_has_clz = 0
3800 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 3801 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
3802 version and TARGET_PATTERN_COMPARE check
3803 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 3804
a72d8780 38052012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 3806
a72d8780 3807 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
3808 function before branching.
3809
242387fa
AB
38102012-02-19 Andrey Belevantsev <abel@ispras.ru>
3811
3812 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
3813 DUMP_INSN_RTX_UID.
3814 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
3815
b4979ab9
AB
38162012-02-19 Andrey Belevantsev <abel@ispras.ru>
3817
3818 PR middle-end/55889
b4979ab9
AB
3819 * sel-sched.c: Include ira.h.
3820 (implicit_clobber_conflict_p): New function.
3821 (moveup_expr): Use it.
88b97037 3822 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 3823
24d63016
RB
38242013-02-19 Richard Biener <rguenther@suse.de>
3825
3826 PR tree-optimization/56384
3827 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
3828 (vn_hash_type): Split out from ...
3829 (vn_hash_constant_with_type): ... here.
3830 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
3831 (vn_phi_eq): Compare types from vn_phi_s structure.
3832 (vn_phi_lookup): Populate vn_phi_s type.
3833 (vn_phi_insert): Likewise.
3834
a475fd3d
JJ
38352013-02-19 Jakub Jelinek <jakub@redhat.com>
3836
47cc28f5
JJ
3837 PR tree-optimization/56350
3838 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
3839 if haven't found reduction or nested cycle operand, rather than
3840 asserting we must find it.
3841
a475fd3d
JJ
3842 PR tree-optimization/56381
3843 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
3844 to fold_build3.
3845
38462013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
3847 Jakub Jelinek <jakub@redhat.com>
3848
3849 PR target/52555
3850 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
3851 (swap_optab_enable): Same.
3852 (init_all_optabs): Use argument instead of global.
88b97037 3853 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
3854 * expr.h (init_all_optabs): Add argument to prototype.
3855 (TREE_OPTIMIZATION_OPTABS): New.
3856 (save_optabs_if_changed): Protoize.
3857 * optabs.h: Declare this_fn_optabs.
3858 * optabs.c (save_optabs_if_changed): New.
3859 Declare this_fn_optabs.
3860 (init_optabs): Add argument to init_all_optabs() call.
3861 * function.c (invoke_set_current_function_hook): Handle per
3862 function optabs.
3863 * function.h (struct function): New field optabs.
3864 * config/mips/mips.c (mips_set_mips16_mode): Handle when
3865 optimization_current_node has changed.
3866 * target-globals.h (save_target_globals_default_opts): Protoize.
3867 * target-globals.c (save_target_globals_default_opts): New.
3868
3f587ca3
JDA
38692013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3870
3871 PR target/56347
3872 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
3873 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
3874
3875 PR target/56214
3876 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
3877 and HImode, require all displacements to be an integer multiple of
3878 their mode size.
ceaca33e
JDA
3879 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
3880 only allow QImode and HImode when reload is in progress and strict is
3881 true. Likewise for symbolic addresses. Use base14_operand to check
3882 displacements in REG+BASE addresses.
3883
fe0b4796
RB
38842013-02-18 Richard Biener <rguenther@suse.de>
3885
3886 PR tree-optimization/56366
3887 * tree-vect-loop.c (get_initial_def_for_induction): Properly
3888 handle sign-conversion of outer-loop initial induction value.
3889
6aaf596b
RB
38902013-02-18 Richard Biener <rguenther@suse.de>
3891
73db8ff1 3892 PR middle-end/56349
6aaf596b
RB
3893 * cfghooks.c (merge_blocks): If we merge a latch into another
3894 block adjust references to it.
3895 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
3896 (verify_loop_structure): Verify that a recorded latch is in fact
3897 a latch.
3898
5e97dfb6
RB
38992013-02-18 Richard Biener <rguenther@suse.de>
3900
3901 PR tree-optimization/56321
3902 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
3903 order SSA name release and virtual operand unlinking.
3904
825527e8
EI
39052013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
3906
3907 * config/microblaze/microblaze.md (save_stack_block): Define.
3908 (restore_stack_block): Likewise.
3909
debd11d9
EI
39102013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
3911
3912 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
3913 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
3914 * config/microblaze/microblaze.c (microblaze_option_override):
3915 Bail out early for PIC modes when target does not support PIC.
3916
8ec77be0
EI
39172013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
3918
88b97037 3919 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
3920 Replace with a microblaze version.
3921 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 3922 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
3923 microblaze.
3924
b41288b3
JJ
39252013-02-16 Jakub Jelinek <jakub@redhat.com>
3926 Dodji Seketeli <dodji@redhat.com>
3927
3928 PR asan/56330
88b97037 3929 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
3930 (instrument_mem_region_access): Do not forget to always put
3931 instrumentation of the of 'base' and 'base + len' in a "if (len !=
3932 0) statement, even for cases where either 'base' or 'base + len'
3933 are not instrumented -- because they have been previously
3934 instrumented. Simplify the logic by putting all the statements
3935 instrument 'base + len' inside a sequence, and then insert that
3936 sequence right before the current insertion point. Then, to
3937 instrument 'base + len', just get an iterator on that statement.
3938 And do not forget to update the pointer to iterator the function
3939 received as argument.
3940
47918951
VM
39412013-02-15 Vladimir Makarov <vmakarov@redhat.com>
3942
3943 PR rtl-optimization/56348
3944 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
3945
3fb7c699
SB
39462013-02-15 Steven Bosscher <steven@gcc.gnu.org>
3947
3948 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
3949 (clean_graph_dump_file): Pass base to start_graph_dump.
3950
576fe41a
RH
39512013-02-14 Richard Henderson <rth@redhat.com>
3952
3953 PR target/55941
3954 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
3955
bb3accfa
SB
39562013-02-14 Steven Bosscher <steven@gcc.gnu.org>
3957
3958 * collect2-aix.h: Define F_LOADONLY.
3959
03143140
RB
39602013-02-14 Richard Biener <rguenther@suse.de>
3961
3962 PR lto/50494
3963 * varasm.c (output_constant_def_1): Get the decl representing
3964 the constant as argument.
3965 (output_constant_def): Wrap output_constant_def_1.
3966 (make_decl_rtl): Use output_constant_def_1 with the decl
3967 representing the constant.
3968 (build_constant_desc): Optionally re-use a decl already
3969 representing the constant.
3970 (tree_output_constant_def): Adjust.
3971
8fb06726
DS
39722013-02-14 Dodji Seketeli <dodji@redhat.com>
3973
3974 Fix an asan crash
3975 * asan.c (instrument_builtin_call): Really put the length of the
3976 second source argument into src1_len.
3977
c4bfe8bf
JJ
39782013-02-13 Jakub Jelinek <jakub@redhat.com>
3979
3980 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
3981 argument. If it is false, don't create edge from then_bb to
3982 fallthru_bb.
3983 (insert_if_then_before_iter): Pass true to it.
3984 (build_check_stmt): Pass false to it.
3985 (transform_statements): Flush hash table only on extended basic
3986 block boundaries, rather than at the beginning of every bb.
3987 Don't flush hash table on nonfreeing_call_p calls.
3988 * tree-flow.h (nonfreeing_call_p): New prototype.
3989 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
3990
7afe2801
DM
39912013-02-13 David S. Miller <davem@davemloft.net>
3992
3993 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
3994
70cc3288
VM
39952013-02-13 Vladimir Makarov <vmakarov@redhat.com>
3996
3997 PR target/56184
3998 * ira.c (max_regno_before_ira): Move from ...
3999 (ira): ... here.
4000 (fix_reg_equiv_init): Use max_regno_before_ira instead of
4001 vec_safe_length.
4002
6422242b
JJ
40032013-02-13 Jakub Jelinek <jakub@redhat.com>
4004
4005 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
4006
976a81ee
RB
40072013-02-13 Richard Biener <rguenther@suse.de>
4008
4009 PR lto/56295
4010 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
4011 globals in MEM_REFs.
4012
c1874a87
RB
40132013-02-13 Richard Biener <rguenther@suse.de>
4014
4015 * loop-init.c (loop_optimizer_init): Clear loop state when
4016 re-initializing preserved loops.
4017 * loop-unswitch.c (unswitch_single_loop): Return whether
4018 we unswitched the loop. Do not verify loop state here.
88b97037 4019 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 4020
b4ab7d34
KS
40212013-02-13 Kostya Serebryany <kcc@google.com>
4022
88b97037
UB
4023 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
4024 on x86_64 linux.
b4ab7d34
KS
4025 * sanitizer.def: Rename __asan_init to __asan_init_v1.
4026
bdcbe80c
DS
40272013-02-12 Dodji Seketeli <dodji@redhat.com>
4028
4029 Avoid instrumenting duplicated memory access in the same basic block
4030 * Makefile.in (asan.o): Add new dependency on hash-table.h
4031 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
4032 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
4033 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
4034 (free_mem_ref_resources, has_mem_ref_been_instrumented)
4035 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
4036 (get_mem_ref_of_assignment): New functions.
4037 (get_mem_refs_of_builtin_call): Extract from
4038 instrument_builtin_call and tweak a little bit to make it fit with
4039 the new signature.
4040 (instrument_builtin_call): Use the new
4041 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
4042 of is_gimple_builtin_call.
4043 (instrument_derefs, instrument_mem_region_access): Insert the
4044 instrumented memory reference into the hash table.
4045 (maybe_instrument_assignment): Renamed instrument_assignment into
4046 this, and change it to advance the iterator when instrumentation
4047 actually happened and return true in that case. This makes it
4048 homogeneous with maybe_instrument_assignment, and thus give a
4049 chance to callers to be more 'regular'.
4050 (transform_statements): Clear the memory reference hash table
4051 whenever we enter a new BB, when we cross a function call, or when
4052 we are done transforming statements. Use
4053 maybe_instrument_assignment instead of instrumentation. No more
4054 need to special case maybe_instrument_assignment and advance the
4055 iterator after calling it; it's now handled just like
4056 maybe_instrument_call. Update comment.
4057
4861a1f7
RB
40582013-02-13 Richard Biener <rguenther@suse.de>
4059
4060 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
4061 Fix loop discovery code.
4062
1c86bd80
VM
40632013-02-12 Vladimir Makarov <vmakarov@redhat.com>
4064
4065 PR inline-asm/56148
4066 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 4067 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
4068 the operand is not reloaded. Prefer to reload conflicting operand
4069 if earlyclobber and matching operands are the same.
4070
7cbda518
RB
40712013-02-12 Richard Biener <rguenther@suse.de>
4072
4073 PR lto/56297
4074 * lto-streamer-out.c (write_symbol): Do not output symbols
4075 for hard register variables.
4076
e68a4ef6
GJL
40772013-02-12 Georg-Johann Lay <avr@gjlay.de>
4078
4079 PR target/54222
4080 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
4081 (umulsidi3_insn, mulsidi3_insn): New insns.
4082
a72d8780 40832013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
4084
4085 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
4086 (struct tune_params): Add vec_costs field.
4087 * config/arm/arm.c (arm_builtin_vectorization_cost)
4088 (arm_add_stmt_cost): New functions.
4089 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
4090 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
4091 (arm_default_vec_cost): New struct of type cpu_vec_costs.
4092 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
4093 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
4094 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
4095 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
4096
43320568
RB
40972013-02-12 Richard Biener <rguenther@suse.de>
4098
4099 PR lto/56295
4100 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
4101 decls again if possible.
4102
a011aa39
RB
41032013-02-12 Richard Biener <rguenther@suse.de>
4104
4105 PR middle-end/56288
4106 * tree-ssa.c (verify_ssa_name): Fix check, move
4107 SSA_NAME_IN_FREE_LIST check up.
4108
6da26889
JJ
41092013-02-12 Jakub Jelinek <jakub@redhat.com>
4110 Steven Bosscher <steven@gcc.gnu.org>
4111
4112 PR rtl-optimization/56151
4113 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
4114 equal to op0 or op1, and last_insn pattern is CODE operation
4115 with MEM dest and one of the operands matches that MEM.
4116
f80e0faf
ST
41172013-02-11 Sriraman Tallam <tmsriramgoogle.com>
4118
4119 * doc/extend.texi: Document Function Multiversioning and "default"
4120 parameter string to target attribute.
4121 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
4122 target attribute parameter is "default".
4123 (ix86_compare_version_priority): Remove checks for target attribute.
4124 (ix86_mangle_function_version_assembler_name): Change error to sorry.
4125 Remove check for target attribute equal to NULL. Add assert.
4126 (ix86_generate_version_dispatcher_body): Change error to sorry.
4127
6c59ffd1
IS
41282013-02-11 Iain Sandoe <iain@codesourcery.com>
4129 Jack Howarth <howarth@bromo.med.uc.edu>
4130 Patrick Marlier <patrick.marlier@gmail.com>
4131
4132 PR libitm/55693
4133 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
4134 define ENDFILE_SPEC as TM_DESTRUCTOR.
4135 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
4136
a72d8780 41372013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
4138 Jack Howarth <howarth@bromo.med.uc.edu>
4139 Jakub Jelinek <jakub@redhat.com>
4140
4141 PR sanitizer/55617
4142 * config/darwin.c (cdtor_record): Rename ctor_record.
4143 (sort_cdtor_records): Rename sort_ctor_records.
4144 (finalize_dtors): New routine to sort destructors by
4145 priority before use in assemble_integer.
4146 (machopic_asm_out_destructor): Use finalize_dtors if needed.
4147
b63fe007
UB
41482013-02-11 Uros Bizjak <ubizjak@gmail.com>
4149
4150 PR rtl-optimization/56275
4151 * simplify-rtx.c (avoid_constant_pool_reference): Check that
4152 offset is non-negative and less than cmode size before
4153 calling simplify_subreg.
4154
8e89b5b5
RB
41552013-02-11 Richard Biener <rguenther@suse.de>
4156
4157 PR tree-optimization/56264
4158 * cfgloop.h (fix_loop_structure): Adjust prototype.
4159 * loop-init.c (fix_loop_structure): Return the number of
4160 newly discovered loops.
4161 * tree-cfgcleanup.c (repair_loop_structures): When new loops
4162 are discovered, do a full loop-closed SSA rewrite.
4163
b4a4b56d
RB
41642013-02-11 Richard Biener <rguenther@suse.de>
4165
4166 PR tree-optimization/56273
4167 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
4168 first VRP run.
4169 (check_array_ref): Fix missing newline in dumps.
4170 (search_for_addr_array): Likewise.
4171
0c885229
DE
41722013-02-09 David Edelsohn <dje.gcc@gmail.com>
4173
4174 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
4175
59ac9a55
JJ
41762013-02-09 Jakub Jelinek <jakub@redhat.com>
4177
4178 PR target/56256
4179 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
4180
25bb0bb5
VM
41812013-02-08 Vladimir Makarov <vmakarov@redhat.com>
4182
4183 PR rtl-optimization/56246
0c885229 4184 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
4185 reload pseudo.
4186 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
4187 constraints are satisfied.
4188
a698cc03
JL
41892013-02-08 Jeff Law <law@redhat.com>
4190
4191 PR debug/53948
4192 * emit-rtl.c (reg_is_parm_p): New function.
4193 * regs.h (reg_is_parm_p): New prototype.
4194 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
4195 callee-clobbered registers.
4196
e1122ddd
MM
41972013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
4198
4199 PR target/56043
4200 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
4201 If there is no implicit builtin declaration, just return NULL.
4202
19c5f6e6
UB
42032013-02-08 Uros Bizjak <ubizjak@gmail.com>
4204
4205 * config/i386/sse.md (FMAMODEM): New mode iterator.
4206 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
4207 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
4208
2480f2ca 42092013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 4210
2480f2ca
UB
4211 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
4212 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
4213 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
4214
42152013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
4216
4217 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
4218 (microblaze*-*-elf): Likewise.
4219 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
4220 LINK_SPEC.
4221 * config/microblaze/microblaze-c.c: Add builtin defines for
4222 _LITTLE_ENDIAN and _BIG_ENDIAN.
4223 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
4224 add to TARGET_DEFAULT flags.
76ef61fb 4225 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
4226 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
4227 * config/microblaze/microblaze.md: Update extendsidi2 and
4228 movdi_internal instructions to use low-order / high-order reg
4229 print_operands.
4230 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
4231 options and inversemask / mask of LITTLE_ENDIAN.
4232 * config/microblaze/t-microblaze: Expand multilib options to
4233 include mlittle-endian (le) and update exceptions patterns.
4234
600a5961
JJ
42352013-02-08 Jakub Jelinek <jakub@redhat.com>
4236
5df81313
JJ
4237 PR rtl-optimization/56195
4238 * lra-constraints.c (get_reload_reg): Don't reuse regs
4239 if they have smaller mode than requested, if they have
4240 wider mode than requested, try to return a SUBREG.
4241
600a5961
JJ
4242 PR tree-optimization/56250
4243 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
4244 if type is unsigned and code isn't MULT_EXPR.
4245
ff544649
GJL
42462013-02-08 Georg-Johann Lay <avr@gjlay.de>
4247
4248 PR tree-optimization/56064
4249 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
4250 bits according to mode.
4251 * fixed-value.h (fixed_from_double_int)
4252 (const_fixed_from_double_int): Adjust comments.
4253
e45cde98
RB
42542013-02-08 Richard Biener <rguenther@suse.de>
4255
4256 PR lto/56231
4257 * lto-streamer.h (struct data_in): Remove current_file, current_line
4258 and current_col members.
4259 * lto-streamer-out.c (lto_output_location): Stream changed bits
4260 en-block for efficiency.
4261 * lto-streamer-in.c (clear_line_info): Remove.
4262 (lto_input_location): Cache current file, line and column
4263 globally via local statics. Read changed bits en-block.
4264 (input_function): Do not call clear_line_info.
4265 (lto_read_body): Likewise.
4266 (lto_input_toplevel_asms): Likewise.
4267
c1ca73d8
MM
42682013-02-08 Michael Matz <matz@suse.de>
4269
4270 PR tree-optimization/52448
4271 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
4272 (nt_call_phase): New static.
4273 (add_or_mark_expr): Only mark accesses with newer phase than any
4274 call seen.
4275 (nonfreeing_call_p): New.
4276 (nt_init_block): Update nt_call_phase, mark blocks as visited.
4277 (nt_fini_block): Keep blocks marked as visited.
4278 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
4279
57548aa2
RB
42802013-02-08 Richard Biener <rguenther@suse.de>
4281
4282 * ira.c (ira): Free broken dominator information.
4283
8e10366f
UB
42842013-02-08 Uros Bizjak <ubizjak@gmail.com>
4285
4286 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
4287
f64fb0fa
MP
42882013-02-08 Marek Polacek <polacek@redhat.com>
4289
8e10366f 4290 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 4291
0375167b
RB
42922013-02-08 Richard Biener <rguenther@suse.de>
4293
4294 PR middle-end/56181
4295 * cfgloop.h (flow_loops_find): Adjust.
4296 (bb_loop_header_p): Declare.
4297 * cfgloop.c (bb_loop_header_p): New function split out from ...
4298 (flow_loops_find): ... here. Adjust function signature,
4299 support incremental loop structure update.
4300 (verify_loop_structure): Cleanup. Verify a loop is a loop.
4301 * cfgloopmanip.c (fix_loop_structure): Move ...
4302 * loop-init.c (fix_loop_structure): ... here.
4303 (apply_loop_flags): Split out from ...
4304 (loop_optimizer_init): ... here.
4305 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
4306 in incremental mode, only remove dead loops here.
4307
85d768f3
GJL
43082013-02-08 Georg-Johann Lay <avr@gjlay.de>
4309
4310 PR target/54222
4311 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
4312 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
4313 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
4314 (*round<mode>3.libgcc): New insns for fixed-modes.
4315 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
4316 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
4317 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
4318 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
4319 implementations. Define to __builtin_avr_absFX,
4320 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
4321 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
4322 __builtin_avr_countlsFX, respectively.
4323 * config/avr/avr-c.c (target.h): Include it.
4324 (enum avr_builtin_id): New enum.
4325 (avr_resolve_overloaded_builtin): New static function.
4326 (avr_register_target_pragmas): Use it to set
4327 targetm.resolve_overloaded_builtin.
4328 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
4329 tree nodes used by DEF_BUILTIN.
4330 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
4331 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
4332 <AVR_BUILTIN_xxBITS>: Same.
4333
661bc682
RB
43342013-02-08 Richard Biener <rguenther@suse.de>
4335
4336 * cfgloop.c (verify_loop_structure): Properly handle
4337 a loop exiting to another loop header.
4338 * ira-int.h (ira_loops): Remove.
4339 * ira.c (ira_loops): Remove.
4340 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
4341 (do_reload): Use loop_optimizer_finalize.
4342 * ira-build.c (create_loop_tree_nodes): Use get_loops and
4343 number_of_loops to access the loop tree.
4344 (more_one_region_p): Likewise.
4345 (finish_loop_tree_nodes): Likewise.
4346 (rebuild_regno_allocno_maps): Likewise.
4347 (mark_loops_for_removal): Likewise.
4348 (mark_all_loops_for_removal): Likewise.
4349 (remove_unnecessary_regions): Likewise.
4350 (ira_build): Likewise.
4351 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
4352
0d5049b2
RB
43532013-02-08 Richard Biener <rguenther@suse.de>
4354
4355 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
4356 * ipa-pure-const.c (analyze_function): Avoid calling
4357 mark_irreducible_loops twice.
8e10366f 4358 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 4359
499f32e8
DM
43602013-02-07 David S. Miller <davem@davemloft.net>
4361
4362 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
4363 on 'reg'.
4364 * var-tracking.c (vt_add_function_parameter): Test the presence of
4365 HAVE_window_save properly and do not remap argument registers when
4366 we have a leaf function.
4367
6edc3e32
UB
43682013-02-07 Uros Bizjak <ubizjak@gmail.com>
4369
4370 PR bootstrap/56227
4371 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
4372 instead of "ll".
4373 * config/i386/i386.c (ix86_print_operand): Ditto.
4374
5306401f
VM
43752013-02-07 Vladimir Makarov <vmakarov@redhat.com>
4376
6edc3e32 4377 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 4378
027ece11
VM
43792013-02-07 Vladimir Makarov <vmakarov@redhat.com>
4380
4381 PR rtl-optimization/56225
4382 * lra-constraints.c (process_alt_operands): Check that reload hard
4383 reg can hold value for strict_low_part.
4384
f980dfdb
JJ
43852013-02-07 Jakub Jelinek <jakub@redhat.com>
4386
4387 PR debug/56154
4388 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
4389 dwarf2out_end_function.
4390 (in_first_function_p, maybe_at_text_label_p,
4391 first_loclabel_num_not_at_text_label): New variables.
4392 (dwarf2out_var_location): In the first function find out
6edc3e32 4393 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
4394 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
4395 functions.
4396
73dd3123
EB
43972013-02-07 Eric Botcazou <ebotcazou@adacore.com>
4398
4399 PR rtl-optimization/56178
4400 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
4401 SUBREG of a register. Tidy up related block of code.
4402 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
4403 note if the source is a register or a SUBREG of a register.
4404
e3936f47
JJ
44052013-02-07 Jakub Jelinek <jakub@redhat.com>
4406
4407 PR target/56228
4408 * config/rs6000/rs6000.md (ptrm): New mode attr.
4409 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
4410 call_value_indirect_aix<pttrsize>,
4411 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
4412 m in constraints.
4413
d96d674b
MH
44142013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
4415
4416 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
4417 if -bnortl. Convert to strcmp and strncmp.
4418
921f2dee
AM
44192013-02-07 Alan Modra <amodra@gmail.com>
4420
4421 PR target/54009
4422 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
4423 addresses won't wrap when offsetting.
4424 (rs6000_secondary_reload): Provide secondary reloads needed for
4425 wrapping LO_SUM addresses.
4426
d09c7dba
TS
44272013-02-06 Thomas Schwinge <thomas@codesourcery.com>
4428
4429 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
4430 MACH, just __MACH__.
4431
a44bbd48
RB
44322013-02-06 Richard Biener <rguenther@suse.de>
4433
4434 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
4435 instead of calling fix_loop_structure.
4436
6d840d99
JJ
44372013-02-06 Jakub Jelinek <jakub@redhat.com>
4438
4439 PR middle-end/56217
4440 * omp-low.c (use_pointer_for_field): Return false if
4441 lower_send_shared_vars doesn't generate any copy-out code.
4442
0f33baa9
TV
44432013-02-06 Tom de Vries <tom@codesourcery.com>
4444
4445 PR rtl-optimization/56131
4446 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
4447 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
4448 of the label is NULL. Add comment.
4449
11f1e3ab
JJ
44502013-02-05 Jakub Jelinek <jakub@redhat.com>
4451
31502f9f
JJ
4452 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
4453
a74db9bd
JJ
4454 PR sanitizer/55374
4455 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
4456 (STATIC_LIBTSAN_LIBS): Likewise.
4457 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
4458 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
4459 is defined, don't add anything else beyond that.
4460 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
4461 (LINK_COMMAND_SPEC): Use them.
4462
11f1e3ab
JJ
4463 PR tree-optimization/56205
4464 * tree-stdarg.c (check_all_va_list_escapes): Return true if
4465 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
4466 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
4467
14ac6aa2
RB
44682013-02-05 Richard Biener <rguenther@suse.de>
4469
4470 PR tree-optimization/53342
4471 PR tree-optimization/53185
4472 * tree-vectorizer.h (vect_check_strided_load): Remove.
4473 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
4474 not disallow peeling for vectorized strided loads.
4475 (vect_check_strided_load): Make static and simplify.
4476 (vect_analyze_data_refs): Adjust.
4477 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
4478 correctly when vectorizing strided loads.
4479
6f22445a
RB
44802013-02-05 Richard Biener <rguenther@suse.de>
4481
4482 * doc/install.texi: Refer to ISL, not PPL.
4483
39f9719e
JH
44842013-02-05 Jan Hubicka <jh@suse.cz>
4485
ec4224ac
JH
4486 PR tree-optimization/55789
4487 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
4488
44892013-02-05 Jan Hubicka <jh@suse.cz>
4490
4491 PR tree-optimization/55789
39f9719e
JH
4492 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
4493 the dead call anyway.
4494
956d3b33
EB
44952013-02-05 Eric Botcazou <ebotcazou@adacore.com>
4496
4497 PR sanitizer/55374
4498 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
4499
45002013-02-04 Alexander Potapenko <glider@google.com>
4501 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
4502 Jakub Jelinek <jakub@redhat.com>
4503
4504 PR sanitizer/55617
4505 * config/darwin.c (sort_ctor_records): Stabilized qsort
4506 on constructor priority by using original position.
4507 (finalize_ctors): New routine to sort constructors by
4508 priority before use in assemble_integer.
4509 (machopic_asm_out_constructor): Use finalize_ctors if needed.
4510
7ac3af38
JJ
45112013-02-04 Jakub Jelinek <jakub@redhat.com>
4512
4513 PR libstdc++/54314
4514 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
4515 about visibility on artificial decls.
4516 * config/sol2.c (solaris_assemble_visibility): Likewise.
4517
152689dc
KT
45182013-02-04 Kai Tietz <ktietz@redhat.com>
4519
4520 PR target/56186
4521 * config/i386/i386.c (function_value_ms_64): Add additional valtype
4522 argument and improve checking of return-argument types for 16-byte
4523 modes.
4524 (ix86_function_value_1): Add additional valtype argument on call
4525 of function_value_64.
4526 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
4527 handling infunction_value_64 function.
4528
2b5987b5
MGD
45292013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4530
7ac3af38 4531 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 4532
14597080
RB
45332013-02-04 Richard Biener <rguenther@suse.de>
4534
4535 PR tree-optimization/56188
4536 * tree-ssa-structalias.c (label_visit): Consider case with
4537 initially non-empty points-to set.
4538 (perform_var_substitution): Dump node mapping and clean up.
4539
ed73881e
RG
45402013-02-04 Richard Guenther <rguenther@suse.de>
4541
4542 PR lto/56168
4543 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
4544 node prevail as last resort.
4545 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 4546 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 4547
139a0707
RB
45482013-02-04 Richard Biener <rguenther@suse.de>
4549
4550 PR tree-optimization/56113
4551 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
4552 Merge into ...
4553 (equiv_class_lookup_or_add): ... this.
4554 (label_visit): Adjust and fix error in previous patch.
4555 (perform_var_substitution): Adjust.
4556
50fe8924
OE
45572013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
4558
4559 * config/sh/divtab.c: Fix formatting and comments throughout the file.
4560 * config/sh/sh4-300.md: Likewise.
4561 * config/sh/sh4a.md: Likewise.
4562 * config/sh/constraints.md: Likewise.
4563 * config/sh/sh.md: Likewise.
4564 * config/sh/netbsd-elf.h: Likewise.
4565 * config/sh/predicates.md: Likewise.
4566 * config/sh/sh-protos.h: Likewise.
4567 * config/sh/ushmedia.h: Likewise.
4568 * config/sh/linux.h: Likewise.
4569 * config/sh/sh.c: Likewise.
4570 * config/sh/superh.h: Likewise.
4571 * config/sh/elf.h: Likewise.
4572 * config/sh/sh4.md: Likewise.
4573 * config/sh/sh.h: Likewise.
4574
1a04ac2b
JDA
45752013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4576
4577 * config/pa/constraints.md: Adjust unused letters. Change "T"
4578 constraint to match_test floating_point_store_memory_operand().
4579 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
4580 (base14_operand): New.
4581 (floating_point_store_memory_operand): New.
4582 (integer_store_memory_operand): Revise to use base14_operand and
4583 reg_plus_base_memory_operand.
4584 (move_dest_operand): Allow symbolic_memory_operands.
4585 (symbolic_memory_operand): Check for LO_SOM.
4586 (symbolic_operand): Change default case to break.
4587 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
4588 CONST_DOUBLE values to be reloaded by putting them into memory when
4589 the destination is a floating point register.
4590 (movdf): Remove code to handle CONST_DOUBLE.
4591 (movsf): Likewise.
4592 (reload_indf_r1): New.
4593 (reload_insf_r1): New.
4594 Consistently use "Q" and "T" constraints with integer and floating
4595 point move instructions, respectively.
4596 (movdi): Remove FAIL.
4597 Change predicate for source operand unamed DImode move from
4598 general_operand to move_src_operand.
4599 (umulsidi3): Change predicate for destination operand to
4600 register_operand.
4601 Likewise for similar unamed patterns.
4602 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
4603 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
4604 (hppa_legitimize_address): Simplify mask calculation.
4605 (pa_emit_move_sequence): Revised handling of secondary reloads from
4606 REG+D addresses for floating point loads and stores. Directly handle
4607 loading CONST0_RTX (mode) to a floating point register.
4608 (pa_secondary_reload): Handle reloading DF and SFmode constant values
4609 to floating point registers. Don't restrict secondary reloads to
4610 floating point registers to integer modes. Revise some comments and
4611 cleanup some code.
4612 (TARGET_LEGITIMATE_ADDRESS_P): Define.
4613 (pa_legitimate_address_p): New.
4614 (pa_legitimize_reload_address): New.
4615 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
4616 (STRICT_REG_OK_FOR_BASE_P): New.
4617 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
4618 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
4619
3bf65591
DE
46202013-02-03 David Edelsohn <dje.gcc@gmail.com>
4621 Andrew Dixie <andrewd@gentrack.com>
4622
4623 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
4624 flag set.
4625
c0a8a3e6
RS
46262013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
4627
4628 * expmed.c (extract_bit_field_1): Pass the full width of the
4629 structure to get_best_reg_extraction_insn.
4630
99113dff
DE
46312013-02-01 David Edelsohn <dje.gcc@gmail.com>
4632
4633 PR target/54601
4634 * configure.ac (use_cxa_atexit): Add AIX.
4635 * configure: Regenerate.
4636
4637 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
4638
ddd84654
JJ
46392013-02-01 Jakub Jelinek <jakub@redhat.com>
4640
4641 PR debug/54793
4642 * final.c (need_profile_function): New variable.
4643 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
4644 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
4645 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
4646 notes, targetm.asm_out.function_prologue doesn't emit anything,
4647 HAVE_prologue and profiler should be emitted before prologue,
4648 set need_profile_function instead of emitting it.
4649 (final_scan_insn): If need_profile_function, emit
4650 profile_function on the first NOTE_INSN_BASIC_BLOCK or
4651 NOTE_INSN_FUNCTION_BEG note.
4652
46532013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
4654
4655 * config/rs6000/rs6000.md (smulditi3): New.
4656 (umulditi3): New.
4657
ff2a9d88
RH
4658 * config/alpha/alpha.md (umulditi3): New.
4659
14d52b90
DE
46602013-02-01 David Edelsohn <dje.gcc@gmail.com>
4661
4662 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
4663 (ASM_OUTPUT_ALIGNED_LOCAL): New.
4664
8c7ca45c
RB
46652013-02-01 Richard Biener <rguenther@suse.de>
4666
4667 PR tree-optimization/56113
4668 * tree-ssa-structalias.c (label_visit): Reduce work for
4669 single-predecessor nodes.
4670
9f419393
EB
46712013-02-01 Eric Botcazou <ebotcazou@adacore.com>
4672
4673 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
4674 range isn't testing for zero.
4675
c5f4be84
SB
46762013-01-31 Steven Bosscher <steven@gcc.gnu.org>
4677
4678 PR middle-end/56113
4679 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
4680
dbdbd982
NC
46812013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
4682 Nick Clifton <nickc@redhat.com>
4683
4684 * config/v850/constraints.md (Q): Define as a memory constraint.
4685 * config/v850/predicates.md (label_ref_operand): New predicate.
4686 (e3v5_shift_operand): New predicate.
4687 (ior_operator): New predicate.
4688 * config/v850/t-v850: Add e3v5 multilib.
4689 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
4690 (v850_gen_movdi): Prototype.
4691 * config/v850/v850.c: Add support for e3v5 architecture.
4692 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
4693 TARGET_V850E_UP.
4694 (construct_save_jarl): Add e3v5 long JARL support.
4695 (v850_adjust_insn_length): New function. Adjust length of call
4696 insns when using e3v5 instructions.
4697 (v850_gen_movdi): New function: Generate instructions to move a
4698 DImode value.
4699 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
4700 (CPP_SPEC): Define __v850e3v5__ as appropriate.
4701 (TARGET_USE_FPU): Enable for e3v5.
4702 (CONST_OK_FOR_W): New macro.
4703 (ADJUST_INSN_LENGTH): Define.
4704 * config/v850/v850.md (UNSPEC_LOOP): Define.
4705 (attr cpu): Add v850e3v5.
4706 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
4707 (movdi): New pattern.
4708 (movdi_internal): New pattern.
4709 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
4710 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
4711 (cstoresf4): Likewise.
4712 (cstoredf4): Likewise.
4713 (insv): New pattern.
4714 (rotlso3_a): New pattern.
4715 (rotlsi3_b): New pattern
4716 (rotlsi3_v850e3v5): New pattern.
4717 (doloop_begin): New pattern.
4718 (fix_loop_counter): New pattern.
4719 (doloop_end): New pattern.
4720 (branch_normal): Add e3v5 long branch support.
4721 (branch_invert): Likewise.
4722 (branch_z_normal): Likewise.
4723 (branch_z_invert): Likewise.
4724 (branch_nz_normal): Likewise.
4725 (branch_nz_invert): Likewise.
4726 (call_internal_short): Add e3v5 register-indirect JARL support.
4727 (call_internal_long): Likewise.
4728 (call_value_internal_short): Likewise.
4729 (call_value_internal_long): Likewise.
4730 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
4731 (mloop): New option.
4732 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 4733 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 4734
73861a41
PK
47352013-01-31 Paul Koning <ni1d@arrl.net>
4736
4737 PR debug/55059
4738 PR debug/54508
4739 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
4740 children if parent is a class.
4741 (prune_unused_types_prune): Don't add DW_AT_declaration.
4742
e44978dc
RB
47432013-01-31 Richard Biener <rguenther@suse.de>
4744
4745 PR tree-optimization/56157
4746 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
4747 match up operand with SLP child.
4748
90b10dec
JM
47492013-01-31 Jason Merrill <jason@redhat.com>
4750
04d2dadd 4751 PR debug/54410
90b10dec
JM
4752 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
4753 parameters the first time.
4754 (gen_scheduled_generic_parms_dies): Check completeness here.
4755
6e616110
RB
47562013-01-31 Richard Biener <rguenther@suse.de>
4757
4758 PR middle-end/53073
4759 * common.opt (faggressive-loop-optimizations): New flag,
4760 enabled by default.
4761 * doc/invoke.texi (faggressive-loop-optimizations): Document.
4762 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
4763 infer_loop_bounds_from_undefined by it.
4764
636f59cf
RB
47652013-01-31 Richard Biener <rguenther@suse.de>
4766
4767 PR tree-optimization/56150
4768 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
4769 visit virtual operands.
4770 (find_uses_to_rename_bb): Likewise.
4771
47722013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
4773
4774 PR tree-optimization/56150
4775 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
4776 mixed store non-store stmts.
4777
32887460
JJ
47782013-01-30 Jakub Jelinek <jakub@redhat.com>
4779
e60e09a0
JJ
4780 PR sanitizer/55374
4781 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
4782 LIBASAN_EARLY_SPEC is defined.
4783 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
4784 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
4785 before %o.
4786 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
4787
32887460
JJ
4788 PR c++/55742
4789 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
4790 invalid args instead of ICEing on it.
4791 (ix86_valid_target_attribute_tree): Return error_mark_node if
4792 ix86_valid_target_attribute_inner_p failed.
4793 (ix86_valid_target_attribute_p): Return false only if
4794 ix86_valid_target_attribute_tree returned error_mark_node. Allow
4795 target("default") attribute.
4796 (sorted_attr_string): Change argument from const char * to tree,
4797 merge in all target attribute arguments rather than just one.
4798 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
4799 instead of free. Avoid using strcat.
4800 (ix86_mangle_function_version_assembler_name): Mangle
4801 target("default") as if no target attribute is present. Adjust
4802 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
4803 instead of xmalloc and XDELETEVEC instead of free.
4804 (ix86_function_versions): Don't return true if one of the decls
4805 doesn't have target attribute. If they don't and one of the decls
4806 is DECL_FUNCTION_VERSIONED, report an error. Adjust
4807 sorted_attr_string caller. Use XDELETEVEC instead of free.
4808 (ix86_supports_function_versions): Remove.
4809 (make_name): Fix up formatting.
4810 (make_dispatcher_decl): Remove resolver_name and its initialization.
4811 Avoid leaking memory.
4812 (is_function_default_version): Return true if there is
4813 target("default") attribute rather than no target attribute at all.
4814 (make_resolver_func): Avoid leaking memory.
4815 (ix86_generate_version_dispatcher_body): Likewise.
4816 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
4817 * target.def (supports_function_versions): Remove.
4818 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
4819 * doc/tm.texi: Regenerated.
4820
73cca0cc
VM
48212013-01-30 Vladimir Makarov <vmakarov@redhat.com>
4822
4823 PR rtl-optimization/56144
4824 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
4825 for values with side effects.
4826
11452e7b
RB
48272013-01-30 Richard Biener <rguenther@suse.de>
4828
4829 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
4830 (sparseset_pop): Likewise.
4831 * cfganal.c (compute_idf): Likewise. Increase work-stack size
4832 to be able to use quick_push in the worker loop.
4833
01cb1ef5
MP
48342013-01-30 Marek Polacek <polacek@redhat.com>
4835
4836 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
4837
e892936e
RB
48382013-01-30 Richard Biener <rguenther@suse.de>
4839
4840 PR lto/56147
6edc3e32 4841 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 4842
cc06c01d
GJL
48432013-01-30 Georg-Johann Lay <avr@gjlay.de>
4844
4845 PR tree-optimization/56064
4846 * fixed-value.c (fixed_from_double_int): New function.
4847 * fixed-value.h (fixed_from_double_int): New prototype.
4848 (const_fixed_from_double_int): New static inline function.
4849 * fold-const.c (native_interpret_fixed): New static function.
4850 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
4851 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
4852 (native_encode_fixed): New static function.
4853 (native_encode_expr) <FIXED_CST>: Use it.
4854 (native_interpret_int): Move double_int worker code to...
4855 * double-int.c (double_int::from_buffer): ...this new static method.
4856 * double-int.h (double_int::from_buffer): Prototype it.
4857
d394a308
RB
48582013-01-30 Richard Biener <rguenther@suse.de>
4859
4860 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
4861 New pointer-map and obstack.
4862 (init_alias_vars): Allocate pointer-map and obstack.
4863 (delete_points_to_sets): Free them.
4864 (find_what_var_points_to): Cache result.
4865 (find_what_p_points_to): Adjust for changed interface of
4866 find_what_var_points_to.
4867 (compute_points_to_sets): Likewise.
4868 (ipa_pta_execute): Likewise.
4869
20804d96
RO
48702013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4871
4872 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
4873 * configure: Regenerate.
4874 * config.in: Regenerate.
4875 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
4876 #nobits/#progbits if supported.
4877
a7ad88a2
OE
48782013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
4879
4880 PR target/56121
4881 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
4882 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
4883 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
4884
7af79f92
GY
48852013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
4886
91bfca59
OE
4887 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
4888 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 4889
753bcf7b
GY
48902013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
4891
91bfca59
OE
4892 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
4893 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 4894
8cbc2ea8
GY
48952013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
4896
91bfca59
OE
4897 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
4898 declaration.
4899 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
4900 * config/arm/cortex-a7.md: New bypasses using
4901 arm_mac_accumulator_is_result.
8cbc2ea8 4902
697a3325
GY
49032013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
4904
91bfca59 4905 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 4906 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
4907 (cortex_a7_fpfmad): New reservation.
4908 (cortex_a7_fpmacs): Use ffmas and update required units.
4909 (cortex_a7_fpmuld): Update required units and latency.
4910 (cortex_a7_fpmacd): Likewise.
4911 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
4912 (cortex_a7_neon). Likewise.
4913 (bypass) Update participating units.
697a3325 4914
29637783
GY
49152013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
4916
91bfca59
OE
4917 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
4918 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
4919 from fmac to ffma.
4920 * config/arm/vfp11.md (vfp_farith): Use ffmas.
4921 (vfp_fmul): Use ffmad.
4922 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
4923 (cortex_r4_fmacd): Use ffmad.
4924 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
4925 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
4926 (cortex_a9_fmacd): Use ffmad.
4927 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
4928 (cortex_a8_vfp_macd): Use ffmad.
4929 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
4930 (cortex_a5_fpmacd): Use ffmad.
4931 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
4932 (cortex_a15_vfp_macd): Use ffmad.
4933 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 4934
2ee8a2d5
JM
49352013-01-29 Jason Merrill <jason@redhat.com>
4936
4937 PR libstdc++/54314
4938 * varasm.c (default_assemble_visibility): Don't warn about
4939 visibility on artificial decls.
4940
78d087bc
RB
49412013-01-29 Richard Biener <rguenther@suse.de>
4942
4943 PR tree-optimization/56113
4944 * tree-ssa-structalias.c (equiv_class_lookup): Also return
4945 the bitmap leader.
4946 (label_visit): Free duplicate bitmaps and record the leader instead.
4947 (perform_var_substitution): Adjust.
4948
83ba4d6f
RB
49492013-01-29 Richard Biener <rguenther@suse.de>
4950
4951 PR tree-optimization/55270
4952 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
4953 the CFG, schedule loops for fixup.
4954
66dfe13f
NC
49552013-01-29 Nick Clifton <nickc@redhat.com>
4956
4957 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
4958 SP_REG.
4959
5a579c3b
LE
49602013-01-28 Leif Ekblad <leif@rdos.net>
4961
4962 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
4963 * config/i386/i386.h (TARGET_RDOS): New macro.
4964 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
4965 * config/i386/i386.c (ix86_option_override_internal): For 64bit
4966 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
4967 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
4968 DEFAULT_LARGE_SECTION_THRESHOLD.
4969 * config/i386/i386.md (R14_REG, R15_REG): New constants.
4970 * config/i386/rdos.h: New file.
4971 * config/i386/rdos64.h: New file.
4972
51e44392
BS
49732013-01-28 Bernd Schmidt <bernds@codesourcery.com>
4974
4975 PR other/54814
4976 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
4977 TEST_HARD_REG_BIT.
4978
db1fb332
JJ
49792013-01-28 Jakub Jelinek <jakub@redhat.com>
4980
4981 PR rtl-optimization/56117
4982 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
4983 call cselib_lookup_from_insn on the MEM before calling
4984 add_insn_mem_dependence.
4985
16917761
RB
49862013-01-28 Richard Biener <rguenther@suse.de>
4987
4988 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
4989 to a stmt that didn't have one.
4990 (copy_phis_for_bb): Likewise for PHI arguments.
4991 (copy_debug_stmt): Likewise for debug stmts.
4992
b9fc0497
RB
49932013-01-28 Richard Biener <rguenther@suse.de>
4994
4995 PR tree-optimization/56034
6edc3e32 4996 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
4997 (partition_builtin_p): Adjust.
4998 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
4999 it is the last partition.
5000 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
5001 up the vertex for the definition.
5002 (classify_partition): Classify whether a partition is a
5003 PKIND_REDUCTION, thus has uses outside of the loop.
5004 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
5005 Merge all PKIND_REDUCTION partitions into the last partition.
5006 (tree_loop_distribution): Seed partitions from reductions as well.
5007
aa710d25
JJ
50082013-01-28 Jakub Jelinek <jakub@redhat.com>
5009
0bfbca58
JJ
5010 PR tree-optimization/56125
5011 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
5012 pow(x,c) into sqrt(x) * powi(x, n/2) or
5013 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
5014 optimizing for size.
5015 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
5016 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
5017 integer.
5018
aa710d25
JJ
5019 PR tree-optimization/56094
5020 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
5021 to UNKNOWN_LOCATION while gimplifying expr.
5022
77dc5297
UB
50232013-01-27 Uros Bizjak <ubizjak@gmail.com>
5024
5025 PR target/56114
5026 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
5027 operand 0 in movabs insn template for -masm=intel asm alternative.
5028 (*movabs<mode>_2): Ditto for operand 1.
5029
0bfbca58 50302013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
5031
5032 PR target/54663
5033 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
5034 of microblaze-c.o
5035
0bfbca58 50362013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
5037
5038 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
5039 tm_file.
5040
0bfbca58 50412013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
5042
5043 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
5044 Undef to avoid warning.
5045
478f60f9
MH
50462013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
5047
5048 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
5049 * configure: Regenerate.
5050
d7fa6ee2
JJ
50512013-01-25 Jakub Jelinek <jakub@redhat.com>
5052
5053 PR tree-optimization/56098
5054 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
5055 for stmts with volatile ops.
5056 (cond_store_replacement): Don't optimize if assign has volatile ops.
5057 (cond_if_else_store_replacement_1): Don't optimize if either
5058 then_assign or else_assign have volatile ops.
5059 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
5060 volatile ops.
5061
f8fe87bd
GJL
50622013-01-25 Georg-Johann Lay <avr@gjlay.de>
5063
5064 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
5065
28398d0d
GJL
50662013-01-25 Georg-Johann Lay <avr@gjlay.de>
5067
5068 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
5069 missing ':' in asm example.
5070
b7d7d917
TB
50712013-01-25 Tejas Belagod <tejas.belagod@arm.com>
5072
5073 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
5074 entries into lane and laneq entries.
77dc5297
UB
5075 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
5076 Remove AdvSIMD scalar modes.
b7d7d917
TB
5077 (aarch64_sq<r>dmulh_laneq<mode>): New.
5078 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
5079 modes.
5080 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
5081 builtin implementations to relfect changes in RTL in aarch64-simd.md.
5082 * config/aarch64/iterators.md (VCOND): New.
5083 (VCONQ): New.
5084
556f9906
GJL
50852013-01-25 Georg-Johann Lay <avr@gjlay.de>
5086
5087 PR target/54222
5088 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
5089 Add NULL LIBNAME argument to existing definitions.
5090 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
5091 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
5092 * config/avr/avr.c (DEF_BUILTIN): Same.
5093 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
5094 (avr_expand_builtin): Expand to a vanilla call if a libgcc
5095 implementation is available (DECL_ASSEMBLER_NAME is set).
5096 (avr_fold_absfx): New static function.
5097 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
5098 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
5099 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
5100 AVR_BUILTIN_ABSLLK.
5101 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
5102 (abshk, absk, abslk, absllk): Provide as static inline functions.
5103
1f546bbb
MP
51042013-01-25 Marek Polacek <polacek@redhat.com>
5105
5106 PR tree-optimization/56035
5107 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
5108
7e184bd7
UB
51092012-01-24 Uros Bizjak <ubizjak@gmail.com>
5110
5111 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
5112 (*movtf_internal_rex64): Add (!o,C) alternative
5113 (*movxf_internal_rex64): Ditto.
5114 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
5115
f5ba49ac
SM
51162013-01-24 Shenghou Ma <minux.ma@gmail.com>
5117
5118 * doc/invoke.texi: fix typo.
5119 * doc/objc.texi: fix typo.
5120
a6343728
RS
51212013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
5122
5123 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
5124 for the first two alternatives.
5125
cd030c07
DN
51262013-01-24 Diego Novillo <dnovillo@google.com>
5127
77dc5297 5128 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
5129 (ggc-zone.o): Remove.
5130 * configure.ac: Remove option --with-gc.
5131 * configure: Re-generate.
5132 * doc/install.texi: Remove documentation for --with-gc.
5133 * gengtype.c (write_enum_defn): Remove. Update all users.
5134 (write_Types_process_field): Remove generation of gt_e_* argument.
5135 (output_type_enum): Remove. Update all users.
5136 (write_enum_defn): Remove. Update all users.
5137 (enum alloc_zone): Remove. Update all users.
77dc5297 5138 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
5139 * ggc-common.c (ggc_splay_alloc): Remove first argument.
5140 Update all callers.
5141 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 5142 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
5143 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
5144 Update all users.
aaf1e810 5145 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
5146 (struct alloc_zone): Remove.
5147 (ggc_internal_alloc_zone_stat): Remove.
5148 (ggc_internal_cleared_alloc_zone_stat): Remove.
5149 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
5150 (ggc_pch_count_object): Remove last argument. Update all users.
5151 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
5152 (struct alloc_zone): Remove.
5153 * ggc-zone.c: Remove.
77dc5297 5154 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
5155 (struct alloc_zone): Remove.
5156 (ggc_alloc_typed_stat): Remove.
5157 (ggc_alloc_typed): Remove.
5158 (ggc_splay_alloc): Remove first argument.
5159 (rtl_zone): Remove. Update all users.
5160 (tree_zone): Remove. Update all users.
5161 (tree_id_zone): Remove. Update all users.
5162 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 5163 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 5164 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 5165 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 5166
a861ffa4
GJL
51672013-01-24 Georg-Johann Lay <avr@gjlay.de>
5168
5169 * config/avr/avr.c (avr_out_fract): Make register numbers that
5170 might be outside of source operand signed.
5171
593c0ddd
UB
51722013-01-24 Uros Bizjak <ubizjak@gmail.com>
5173
5174 * config/i386/constraints.md (Yf): New constraint.
5175 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
5176 of f constraint to conditionaly disable x87 register preferences.
5177 (*movdf_internal): Ditto.
5178 (*movsf_internal): Ditto.
5179
e86c0101
SB
51802013-01-24 Steven Bosscher <steven@gcc.gnu.org>
5181
5182 PR inline-asm/55934
5183 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
5184 that have operands with impossible constraints.
5185 Add a FIXME for a speed-up opportunity.
5186 * lra-constraints.c (process_alt_operands): Verify that a class
5187 selected from constraints on asms is valid for the operand mode.
5188 (curr_insn_transform): Remove incorrect comment.
5189
f6fee35f
DE
51902013-01-23 David Edelsohn <dje.gcc@gmail.com>
5191
5192 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
5193 TOC operand is a valid symbol ref in the constant pool.
5194
51952013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 5196
aaf1e810 5197 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 5198
dc62d7d1
GJL
51992013-01-23 Georg-Johann Lay <avr@gjlay.de>
5200
5201 PR target/54222
5202 * config/avr/stdfix.h: New file.
5203 * t-avr (stdfix-gcc.h): New rule to build it.
5204 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
5205
2660d12d
KS
52062013-01-23 Kostya Serebryany <kcc@google.com>
5207
77dc5297
UB
5208 * config/darwin.h: remove dependency on
5209 CoreFoundation (asan on Mac OS).
2660d12d 5210
a70418fc
JJ
52112013-01-23 Jakub Jelinek <jakub@redhat.com>
5212
5213 PR target/49069
5214 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
5215 instead of cmpdi_operand for first comparison operand.
5216 Don't assert that comparison operands aren't both constants.
5217
47876a2a
JW
52182013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
5219
5220 * doc/install.texi (Downloading the Source): Update references to
5221 downloading separate components.
5222
52232013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
5224
5225 * doc/extend.texi (__int128): Improve grammar.
5226
47876a2a 52272013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
5228
5229 PR target/56028
5230 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
5231 alternative to (o,r).
5232 (*movdi_internal_rex64): Remove (!o,n) alternative.
5233 (DImode immediate->memory splitter): Remove.
5234 (DImode immediate->memory peephole2): Remove.
5235 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
5236 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
5237 alternative to (!o,*r).
5238 (*movtf_internal_sse): New pattern.
5239 (*movxf_internal_rex64): New pattern.
5240 (*movxf_internal): Disable for TARGET_64BIT.
5241 (*movdf_internal_rex64): Remove (!o,F) alternative.
5242
3a984f10
JJ
52432013-01-22 Jakub Jelinek <jakub@redhat.com>
5244
502498d5
JJ
5245 PR middle-end/56074
5246 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
5247 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
5248 * tree-vect-loop-manip.c (find_loop_location): Also ignore
5249 stmt locations where LOCATION_LOCUS of the stmt location is
5250 UNKNOWN_LOCATION or BUILTINS_LOCATION.
5251
3a984f10
JJ
5252 PR target/55686
5253 * config/i386/i386.md (UNSPEC_STOS): New.
5254 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
5255 *strsetqi_1): Add UNSPEC_STOS.
5256
fa817f7f
PC
52572013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
5258
5259 PR c++/56067
5260 * doc/invoke.texi: Remove left over -Wsynth example.
5261
8f498c1b
JJ
52622013-01-21 Jakub Jelinek <jakub@redhat.com>
5263
5264 PR tree-optimization/56051
5265 * fold-const.c (fold_binary_loc): Don't fold
5266 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
5267 a narrowing conversion, or widening conversion from signed
5268 to unsigned.
5269
47876a2a 52702013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
5271
5272 PR rtl-optimization/56023
5273 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
5274 dependent on debug instruction.
5275
5b9db1bc
MJ
52762013-01-21 Martin Jambor <mjambor@suse.cz>
5277
5278 PR middle-end/56022
5279 * function.c (allocate_struct_function): Call
5280 invoke_set_current_function_hook earlier.
5281
e8bb7d68
JJ
52822013-01-21 Jakub Jelinek <jakub@redhat.com>
5283
5284 * reload1.c (init_reload): Only initialize reload_obstack
5285 during the first call.
5286
616a4e32
MP
52872013-01-21 Marek Polacek <polacek@redhat.com>
5288
5289 * cfgloop.c (verify_loop_structure): Fix up grammar.
5290
4401981b
YHH
52912013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
5292
5293 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
5294 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
5295
8e87740b
RR
52962013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5297
5298 PR target/56058
5299 * config/arm/marvell-pj4.md: Update copyright year.
5300 Fix up use of alu to alu_reg and simple_alu_imm.
5301
47876a2a 53022013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
5303
5304 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
5305
89d56d79
VM
53062013-01-20 Vladimir Makarov <vmakarov@redhat.com>
5307
5308 PR target/55433
5309 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 5310 insn for secondary memory move when memory mode should be different.
89d56d79 5311
fe603553
JDA
53122013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5313
5314 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
5315 atomic_storedi_1): New patterns.
5316
01284895
VK
53172013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
5318
5319 btver2 pipeline descriptions.
5320 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
5321 descriptions.
5322 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 5323 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
5324 type attributes.
5325 * config/i386/btver2.md: New file describing btver2 pipelines.
5326
5630e3e1
JL
53272013-01-19 Andrew Pinski <apinski@cavium.com>
5328
5329 PR tree-optimization/52631
5330 * tree-ssa-sccvn (visit_use): Before looking up the original
5331 statement, try looking up the simplified expression.
5332
650ae806
AG
53332013-01-19 Anthony Green <green@moxielogic.com>
5334
5335 * config/moxie/moxie.c (moxie_expand_prologue): Set
5336 current_function_static_stack_size.
5337
e300ec2d
JJ
53382013-01-18 Jakub Jelinek <jakub@redhat.com>
5339
5340 PR tree-optimization/56029
5341 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
5342 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
5343
a3d7af04
SS
53442013-01-18 Sharad Singhai <singhai@google.com>
5345
5346 PR tree-optimization/55995
5347 * dumpfile.c (dump_loc): Print location only if available.
5348 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
5349
66aa7879
VM
53502013-01-18 Vladimir Makarov <vmakarov@redhat.com>
5351
5352 PR target/55433
5353 * lra-constraints.c (curr_insn_transform): Reuse original insn for
5354 secondary memory move.
5355 (inherit_reload_reg): Use rclass instead of cl for
5356 check_secondary_memory_needed_p.
5357
3f0fee7b
JJ
53582013-01-18 Jakub Jelinek <jakub@redhat.com>
5359
5360 PR middle-end/56015
5361 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 5362 the case where writing real complex part of target modifies op1.
3f0fee7b 5363
70c67693
JG
53642013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
5365
5366 * config/aarch64/aarch64-simd.md
5367 (aarch64_vcond_internal<mode>): Handle unordered cases.
5368 * config/aarch64/iterators.md (v_cmp_result): New.
5369
df8de9b3
YHH
53702013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
5371 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5372
5373 * config/arm/marvell-pj4.md: New file.
5374 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
5375 * config/arm/arm.md (generic_sched): Add marvell_pj4.
5376 (generic_vfp): Likewise.
5377 * config/arm/arm-cores.def: Add marvell-pj4.
5378 * config/arm/arm-tune.md: Regenerate.
5379 * config/arm/arm-tables.opt: Regenerate.
5380 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
5381 * doc/invoke.texi: Document marvell-pj4.
5382
be30c356
TB
53832013-01-18 Tejas Belagod <tejas.belagod@arm.com>
5384
5385 * config/aarch64/arm_neon.h: Map scalar types to standard types.
5386
0bfbca58 53872013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
5388
5389 PR debug/54114
5390 PR debug/54402
5391 PR debug/49888
5392 * var-tracking.c (negative_power_of_two_p): New.
5393 (global_get_addr_cache, local_get_addr_cache): New.
5394 (get_addr_from_global_cache, get_addr_from_local_cache): New.
5395 (vt_canonicalize_addr): Rewrite using the above. Adjust the
5396 heading comment.
5397 (vt_stack_offset_p): Remove.
5398 (vt_canon_true_dep): Always canonicalize loc's address.
5399 (clobber_overlapping_mems): Make sure we have a MEM.
5400 (local_get_addr_clear_given_value): New.
5401 (val_reset): Clear local cached entries.
5402 (compute_bb_dataflow): Create and release the local cache.
5403 Disable duplicate MEMs clobbering.
5404 (emit_notes_in_bb): Clobber MEMs likewise.
5405 (vt_emit_notes): Create and release the local cache.
5406 (vt_initialize, vt_finalize): Create and release the global
5407 cache, respectively.
1f6bc337 5408 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 5409
0bfbca58 54102013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
5411
5412 PR libmudflap/53359
5413 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
5414 not found in the symtab.
5415
0bfbca58 54162013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 5417
c350ba53 5418 PR debug/56006
3aa03517
AO
5419 PR rtl-optimization/55547
5420 PR rtl-optimization/53827
5421 PR debug/53671
5422 PR debug/49888
5423 * alias.c (offset_overlap_p): New, factored out of...
5424 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
5425 the conservative special case for symbolic constants. Don't
5426 adjust zero sizes on alignment.
5427
c664546f
JL
54282013-01-18 Bernd Schmidt <bernds@codesourcery.com>
5429
5430 PR rtl-optimization/52573
5431 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
5432 REG_UNUSED for the same register.
5433
1bd3f750
MP
54342013-01-17 Richard Biener <rguenther@suse.de>
5435 Marek Polacek <polacek@redhat.com>
5436
5437 PR rtl-optimization/55833
5438 * loop-unswitch.c (unswitch_loops): Move loop verification...
5439 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
5440 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
5441 Set it to true when we're removing a loop from hierarchy tree in
5442 an irreducible region.
5443 (fix_bb_placements): Adjust caller.
5444 (fix_loop_placements): Likewise.
5445
e52a8b71
GJL
54462013-01-17 Georg-Johann Lay <avr@gjlay.de>
5447
5448 * config/avr/builtins.def (DEF_BUILTIN): Factor out
5449 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
5450 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
5451 Remove ID. Adjust comments.
5452 * config/avr/avr-c.c (avr_builtin_name): Remove.
5453 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
5454 * config/avr/avr.c (avr_tolower): New static function.
5455 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
5456 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
5457 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
5458 default expansion.
5459
8386a7ea
JH
54602013-01-17 Jan Hubicka <jh@suse.cz>
5461
610fb637 5462 PR tree-optimization/55273
8386a7ea
JH
5463 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
5464
47876a2a 54652013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
5466
5467 PR target/55981
5468 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
5469 store through atomic_store<mode>_1.
5470 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
5471
8222c37e
MJ
54722013-01-17 Martin Jambor <mjambor@suse.cz>
5473
5474 PR tree-optimizations/55264
5475 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
5476 for virtual methods.
5477 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
5478 virtual methods before inlining is over.
5479 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
5480 virtual functions.
5481 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
5482 non-virtual.
5483
79f01c76
VM
54842013-01-16 Vladimir Makarov <vmakarov@redhat.com>
5485
5486 PR rtl-optimization/56005
5487 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
5488 pending reads for prefetch.
5489
d0b6bb1b
IB
54902013-01-16 Ian Bolton <ian.bolton@arm.com>
5491
aaf1e810 5492 * config/aarch64/aarch64.md
d0b6bb1b
IB
5493 (*cstoresi_neg_uxtw): New pattern.
5494 (*cmovsi_insn_uxtw): New pattern.
5495 (*<optab>si3_uxtw): New pattern.
5496 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
5497 (*<optab>si3_insn_uxtw): New pattern.
5498 (*bswapsi2_uxtw): New pattern.
5499
cb9cf03b
RB
55002013-01-16 Richard Biener <rguenther@suse.de>
5501
5502 * tree-inline.c (tree_function_versioning): Remove set but
5503 never used variable.
5504
2cfc56b9
RB
55052013-01-16 Richard Biener <rguenther@suse.de>
5506
5507 PR tree-optimization/55964
5508 * tree-flow.h (rename_variables_in_loop): Remove.
5509 (rename_variables_in_bb): Likewise.
5510 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
5511 (copy_loop_before): Adjust and delete update-ssa status.
5512 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 5513 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
5514 (rename_variables_in_loop): Remove.
5515 (slpeel_update_phis_for_duplicate_loop): Likewise.
5516 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
5517 use available cfg machinery instead of duplicating it.
5518 Update PHI nodes and perform poor-mans SSA update here.
5519 (slpeel_tree_peel_loop_to_edge): Adjust.
5520
c25a0c60
RB
55212013-01-16 Richard Biener <rguenther@suse.de>
5522
5523 PR tree-optimization/54767
5524 PR tree-optimization/53465
5525 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
5526 (vrp_visit_phi_node): For PHI arguments coming via backedges
5527 drop all symbolical range information.
5528 (execute_vrp): Compute backedges.
5529
04b535af
RB
55302013-01-16 Richard Biener <rguenther@suse.de>
5531
5532 * doc/install.texi: Update CLooG and ISL requirements to
5533 0.18.0 and 0.11.1.
5534
8b0a1e0b
CB
55352013-01-16 Christian Bruel <christian.bruel@st.com>
5536
5537 PR target/55301
5538 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
5539 (broken_move): Handle UNSPECV_SP_SWITCH_B.
5540 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
5541
55422013-01-16 DJ Delorie <dj@redhat.com>
5543
5544 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
5545 (UNSPECV_SP_SWITCH_E): New.
5546 (sp_switch_1): Change to an unspec.
5547 (sp_switch_2): Change to an unspec. Don't use post-inc when we
5548 replace $r15.
5549
55502013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
5551
5552 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
5553 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
5554 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
5555 (expand_mem_thread_fence): Ditto.
5556 (expand_mem_signal_fence): Ditto.
5557 (expand_atomic_load): Ditto.
5558 (expand_atomic_store): Ditto.
5559
0bfbca58 55602013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
5561
5562 PR rtl-optimization/55547
5563 PR rtl-optimization/53827
5564 PR debug/53671
5565 PR debug/49888
5566 * alias.c (memrefs_conflict_p): Set sizes to negative after
5567 AND adjustments.
5568
305e3ac1
JJ
55692013-01-15 Jakub Jelinek <jakub@redhat.com>
5570
5571 PR target/55940
5572 * function.c (thread_prologue_and_epilogue_insns): Always
5573 add crtl->drap_reg to set_up_by_prologue.set, even if
5574 stack_realign_drap is false.
5575
f78ac4f2
JBG
55762013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5577
5578 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
5579 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
5580 *call): Fix indention.
5581
a78a8cc4
TV
55822013-01-15 Tom de Vries <tom@codesourcery.com>
5583
5584 PR target/55876
5585 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
5586 Update comment.
5587
0e80383f
VM
55882013-01-15 Vladimir Makarov <vmakarov@redhat.com>
5589
305e3ac1 5590 PR rtl-optimization/55153
0e80383f
VM
5591 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
5592
207b5956
MJ
55932013-01-15 Martin Jambor <mjambor@suse.cz>
5594
5595 PR tree-optimization/55920
5596 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
5597 accesses as grp_to_be_debug_replaced.
5598
a7818b54
JJ
55992013-01-15 Jakub Jelinek <jakub@redhat.com>
5600
5601 PR tree-optimization/55920
5602 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
5603 there is non-useless type conversion needed from debug rhs to lhs,
5604 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
5605
b0fe107e
JM
56062013-01-15 Joseph Myers <joseph@codesourcery.com>
5607 Mikael Pettersson <mikpe@it.uu.se>
5608
5609 PR target/43961
5610 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
5611 Thumb.
5612 (ASM_OUTPUT_CASE_LABEL): Remove.
5613 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
5614 * final.c (shorten_branches): Update alignment of labels before
5615 jump tables if CASE_VECTOR_SHORTEN_MODE.
5616
34ab62ee
RB
56172013-01-15 Richard Biener <rguenther@suse.de>
5618
5619 PR bootstrap/55961
5620 * system.h: Do not include gmp.h for building host tools.
5621
783a3a05
RB
56222013-01-15 Richard Biener <rguenther@suse.de>
5623
5624 PR middle-end/55882
5625 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
5626 account for bitpos when computing alignment.
5627
3a579e09
VY
56282013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
5629
5630 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
5631 (ix86_target_macros_internal): Likewise.
5632
5633 * config/i386/i386.c (m_CORE2I7): Removed.
5634 (m_CORE_HASWELL): New macro.
5635 (m_CORE_ALL): Likewise.
5636 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
5637 (initial_ix86_arch_features): Likewise.
5638 (processor_target_table): Initializations for Core avx2.
5639 (cpu_names): New names "core-avx2".
5640 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
5641 PROCESSOR_CORE_HASWELL.
5642 (ix86_issue_rate): New case.
5643 (ia32_multipass_dfa_lookahead): Likewise.
5644 (ix86_sched_init_global): Likewise.
5645
5646 * config/i386/i386.h (TARGET_HASWELL): New macro.
5647 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
5648 (processor_type): New PROCESSOR_HASWELL.
5649
955f5a07
JJ
56502013-01-15 Jakub Jelinek <jakub@redhat.com>
5651
ff784829
JJ
5652 PR tree-optimization/55955
5653 * tree-vect-loop.c (vectorizable_reduction): Give up early on
5654 *SHIFT_EXPR and *ROTATE_EXPR codes.
5655
955f5a07
JJ
5656 PR tree-optimization/48766
5657 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
5658 -ftrapv disable -fwrapv.
5659
aeb8b4e9
GJL
56602013-01-14 Georg-Johann Lay <avr@gjlay.de>
5661
5662 PR target/55974
5663 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
5664 etc. to 1 and not to __flash.
5665 Use LL suffix for __INT24_MAX__ with -mint8.
5666 Use ULL suffix for __UINT24_MAX__ with -mint8.
5667
1c494c6a
GJL
56682013-01-14 Georg-Johann Lay <avr@gjlay.de>
5669
5670 * config/avr/avr-arch.h
5671 (struct base_arch_s): Use typedef avr_arch_t instead.
5672 (struct arch_info_s): Use typedef avr_arch_info_t instead.
5673 (struct mcu_type_s): Use typedef avr_mcu_t instead.
5674 * config/avr/avr.c: Same.
5675 * config/avr/avr-devices.c: Same.
5676 * config/avr/driver-avr.c: Same.
5677 * config/avr/gen-avr-mmcu-texi.c: Same.
5678 * config/avr/avr-mcus.def: Adjust comment.
5679
a50344cb
TB
56802013-01-14 Tejas Belagod <tejas.belagod@arm.com>
5681
88e784e6
UB
5682 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
5683 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 5684
47876a2a 56852013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
5686 Andi Kleen <ak@linux.intel.com>
5687
5688 PR target/55948
5689 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
5690 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
5691 memmodel flag.
5692
00892272
GJL
56932013-01-14 Georg-Johann Lay <avr@gjlay.de>
5694
5695 * config/avr/avr-stdint.h: Remove trailing blanks.
5696 * config/avr/avr-log.h: Same.
5697 * config/avr/avr-arch.h: Same.
5698 * config/avr/avr-devices.c: Same.
5699 * config/avr/avr-dimode.md: Same.
5700 * config/avr/predicates.md: Same.
5701 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 5702
00892272
GJL
5703 * config/avr/avr-protos.h: Same. And:
5704 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
5705 (init_cumulative_args): Rename to avr_init_cumulative_args.
5706 (expand_prologue): Rename to avr_expand_prologue.
5707 (expand_epilogue): Rename to avr_expand_epilogue.
5708 (adjust_insn_length): Rename to avr_adjust_insn_length.
5709 (notice_update_cc): Rename to avr_notice_update_cc.
5710 (final_prescan_insn): Rename to avr_final_prescan_insn.
5711 * config/avr/avr.c: Same.
5712 * config/avr/avr.h: Same.
5713 * config/avr/avr.md: Remove trailing blanks.
5714 (prologue): Use avr_expand_prologue.
5715 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
5716
7bb01996
RB
57172013-01-14 Richard Biener <rguenther@suse.de>
5718
5719 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
5720 verify_location, collect_subblocks): New functions.
5721 (verify_gimple_in_cfg): Verify that locations only reference
5722 BLOCKs in the functions BLOCK tree.
5723
2724573f
RB
57242013-01-14 Richard Biener <rguenther@suse.de>
5725
5726 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
5727 PHI argument.
5728 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
5729 unshare reference.
5730 (insert_out_of_ssa_copy_on_edge): Likewise.
5731 (rewrite_close_phi_out_of_ssa): Likewise.
5732 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
5733 debug expressions.
5734 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
5735 propagated constants.
5736 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
5737 can not be shared.
5738
9a0bbab6
GJL
57392013-01-14 Georg-Johann Lay <avr@gjlay.de>
5740
5741 * config/avr/avr-modes.def: Add GPL copyright notice.
5742
45805f17
UB
57432013-01-13 Uros Bizjak <ubizjak@gmail.com>
5744
5745 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
5746 MEMMODEL_MASK to determine memory model.
5747 (atomic_store<mode>): Ditto from operands[2].
5748 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
5749
9d60be38
JJ
57502013-01-13 Jakub Jelinek <jakub@redhat.com>
5751
5752 PR fortran/55935
45805f17 5753 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
5754 (fold_gimple_assign): Don't call unshare_expr here.
5755 (fold_ctor_reference): Call unshare_expr.
5756
e7f49d92
TG
57572013-01-13 Terry Guo <terry.guo@arm.com>
5758
aaf1e810
EB
5759 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
5760 * doc/fragments.texi: Document MULTILIB_REUSE.
5761 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 5762 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 5763 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
5764 (tmpmultilib4): Ditto.
5765 (multilib_reuse): New multilib argument.
5766
fbd03a27
RS
57672013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
5768
5769 * Makefile.in: Update copyright.
5770
b3681f13
TV
57712013-01-12 Tom de Vries <tom@codesourcery.com>
5772
5773 PR middle-end/55890
5774 * calls.c (expand_call): Check if arg_nr is valid.
5775
3f287e4b
MM
57762013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
5777
5778 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
5779 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
5780 documentation. Add missing '__' in front of
5781 __builtin_ia32_packssdw256.
3f287e4b 5782
1abcd5eb
AK
57832013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5784
5785 PR target/55719
5786 * config/s390/s390.c (s390_preferred_reload_class): Do not return
5787 NO_REGS for larl operands.
5788 (s390_reload_larl_operand): Use s390_load_address instead of
5789 emit_move_insn.
5790
980d0812
RB
57912013-01-11 Richard Biener <rguenther@suse.de>
5792
5793 * tree-cfg.c (verify_node_sharing_1): Split out from ...
5794 (verify_node_sharing): ... here.
5795 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
5796
7cb9fd07
EB
57972013-01-11 Eric Botcazou <ebotcazou@adacore.com>
5798
5799 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
5800 Substitute TREECHECKING.
5801 * configure: Regenerate.
5802 * Makefile.in (TREECHECKING): New.
5803
47876a2a 58042013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
5805
5806 PR tree-optimization/44061
5807 * tree-vrp.c (extract_range_basic): Compute zero as
5808 value-range for __builtin_constant_p of function parameters.
5809
d1e082c2
RS
58102013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
5811
45805f17 5812 Update copyright years.
d1e082c2 5813
f85021b0
VM
58142013-01-10 Vladimir Makarov <vmakarov@redhat.com>
5815
9d60be38 5816 PR rtl-optimization/55672
0160442c
VM
5817 * lra-eliminations.c (mark_not_eliminable): Permit addition with
5818 const to be eliminable.
f85021b0 5819
7a8b1ec4
DE
58202013-01-10 David Edelsohn <dje.gcc@gmail.com>
5821
5822 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
5823 * configure: Regenerate.
5824
ad2e5b71
RB
58252013-01-10 Richard Biener <rguenther@suse.de>
5826
ddf9322d 5827 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 5828
ffc5b2bb
RB
58292013-01-10 Richard Biener <rguenther@suse.de>
5830
5831 PR bootstrap/55792
5832 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
5833 locations for virtual PHI arguments.
5834 (rewrite_update_phi_arguments): Likewise.
5835
e1f674e4
JS
58362013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
5837
5838 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
5839 on to assembler.
5840
a57fc743
JJ
58412013-01-10 Jakub Jelinek <jakub@redhat.com>
5842
5843 PR tree-optimization/55921
5844 * tree-complex.c (expand_complex_asm): New function.
5845 (expand_complex_operations_1): Call it for GIMPLE_ASM.
5846
0ff4390d
AK
58472013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5848
5849 PR target/55718
5850 * config/s390/s390.c (s390_symref_operand_p)
5851 (s390_loadrelative_operand_p): Merge the two functions.
5852 (s390_check_qrst_address, print_operand_address): Add parameters
5853 to s390_loadrelative_operand_p invokation.
5854 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
5855 (s390_reload_larl_operand, s390_secondary_reload): Use
5856 s390_loadrelative_operand_p instead of s390_symref_operand_p.
5857 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
5858
6f557e0e
MS
58592013-01-09 Mike Stump <mikestump@comcast.net>
5860
5861 * dse.c (record_store): Remove unnecessary assert.
5862
7770c9e9
JH
58632013-01-09 Jan Hubicka <jh@suse.cz>
5864
5865 PR tree-optimization/55569
5866 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
5867 * cfgloop.h (scale_loop_profile): Likewise.
5868
a19b1432
JH
58692013-01-09 Jan Hubicka <jh@suse.cz>
5870
5871 PR lto/45375
ddf9322d
UB
5872 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
5873 functions.
a19b1432
JH
5874 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
5875
9a002da8
RS
58762013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
5877
5878 PR middle-end/55114
5879 * expr.h (maybe_emit_group_store): Declare.
5880 * expr.c (maybe_emit_group_store): New function.
5881 * builtins.c (expand_builtin_int_roundingfn): Call it.
5882 (expand_builtin_int_roundingfn_2): Likewise.
5883
511dcace
VM
58842013-01-09 Vladimir Makarov <vmakarov@redhat.com>
5885
e1f2b729 5886 PR rtl-optimization/55829
511dcace
VM
5887 * lra-constraints.c (match_reload): Add code for absent output.
5888 (curr_insn_transform): Add code for reloads of matched inputs
5889 without output.
5890
7b0fe4f4
UB
58912013-01-09 Uros Bizjak <ubizjak@gmail.com>
5892
5893 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
5894 attribute of movddup insn to DF.
5895 (*vec_interleave_lowv2df): Ditto.
5896 (vec_dupv2df): Ditto.
5897
870ca331
JH
58982013-01-09 Jan Hubicka <jh@suse.cz>
5899
5900 PR tree-optimiation/55875
5901 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
5902 EVERY_ITERATION parameter.
7b0fe4f4 5903 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
5904 (idx_infer_loop_bounds): Similarly here.
5905 (n_of_executions_at_most): Simplify
5906 to only test for cases where statement is dominated by the
7b0fe4f4 5907 particular bound; handle correctly the "postdominance" test.
870ca331
JH
5908 (scev_probably_wraps_p): Use max loop iterations info
5909 as a global bound first.
5910
6f575fe4 59112013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
5912 Nick Clifton <nickc@redhat.com>
5913
5914 * config/v850/v850.md (cbranchsf4): New pattern.
5915 (cstoresf4): New pattern.
5916 (cbranchdf4): New pattern.
5917 (cstoredf4): New pattern.
5918 (movsicc): Disallow floating point comparisons.
5919 (cmpsf_le_insn): Fix order of operators.
5920 (cmpsf_lt_insn): Likewise.
5921 (cmpsf_eq_insn): Likewise.
5922 (cmpdf_le_insn): Likewise.
5923 (cmpdf_lt_insn): Likewise.
5924 (cmpdf_eq_insn): Likewise.
5925 (cmpsf_ge_insn): Use LE comparison.
5926 (cmpdf_ge_insn): Likewise.
5927 (cmpsf_gt_insn): Use LT comparison.
5928 (cmpdf_gt_insn): Likewise.
5929 (cmpsf_ne_insn): Delete pattern.
5930 (cmpdf_ne_insn): Delete pattern.
5931 * config/v850/v850.c (v850_gen_float_compare): Use
5932 gen_cmpdf_eq_insn for NE comparison.
5933 (v850_float_z_comparison_operator)
5934 (v850_float_nz_comparison_operator): Move from here ...
5935 * config/v850/predicates.md: ... to here. Move GT and GE
5936 comparisons into v850_float_z_comparison_operator.
5937 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
5938 Delete prototype.
5939 (v850_float_nz_comparison_operator): Likewise.
5940
f0d54148
JDA
59412013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5942
5943 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
5944 with calls to gen_insvsi/gen_insvdi.
5945
8f01beca
VK
59462013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
5947
5948 * config/i386/i386.c (initial_ix86_tune_features): Set up
5949 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
5950
2aa579ad
JJ
59512013-01-09 Steven Bosscher <steven@gcc.gnu.org>
5952 Jakub Jelinek <jakub@redhat.com>
5953
5954 PR tree-optimization/48189
5955 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
5956 If nitercst is 0, don't predict the exit edge.
5957
6edc3e32 59582013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
5959
5960 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
5961 in asm_fprintf with reg_names.
5962 (aarch64_print_operand_address): Likewise.
5963 (aarch64_return_addr): Likewise.
5964 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
5965
f6f94d94
JDA
59662013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5967
5968 * config/pa/pa.h (VAL_U6_BITS_P): Define.
5969 (INT_U6_BITS): Likewise.
5970 * config/pa/predicates.md (uint6_operand): New predicate.
5971 (shift5_operand, shift6_operand): Likewise.
5972 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
5973 arith32_operand.
5974 (lshrdi3): Use shift6_operand.
5975 (shrpsi4, shrpdi4): New insn patterns.
5976 (extzv): Delete expander.
5977 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
5978 predicates in unamed zero extract patterns. Tighten common constraint.
5979 (extv): Delete expander.
5980 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
5981 predicates in unamed sign extract patterns. Tighten common constraint.
5982 (insv): Delete expander.
5983 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
5984 predicates in unamed insert patterns. Tighten common constraint.
5985 Change uint32_operand predicate to uint6_operand predicate in unamed
5986 DImode pattern to insert constant values of type 1...1xxxx.
5987
36b72910
JH
59882013-01-04 Jan Hubicka <jh@suse.cz>
5989
5990 PR tree-optimization/55823
7b0fe4f4
UB
5991 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
5992 issue.
36b72910 5993
47876a2a 59942013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
5995 Uros Bizjak <ubizjak@gmail.com>
5996
5997 PR rtl-optimization/55845
5998 * df-problems.c (can_move_insns_across): Stop scanning at
5999 volatile_insn_p source instruction or give up if
6000 across_from .. across_to range contains any volatile_insn_p
6001 instructions.
6002
4369c11e
TB
60032013-01-08 Tejas Belagod <tejas.belagod@arm.com>
6004
7b0fe4f4
UB
6005 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
6006 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
6007 Declare.
4369c11e 6008 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 6009 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 6010
aeb7e7c1
JJ
60112013-01-08 Jakub Jelinek <jakub@redhat.com>
6012
6013 PR fortran/55341
6014 * asan.c (asan_clear_shadow): New function.
6015 (asan_emit_stack_protection): Use it.
6016
a02ad1aa
TB
60172013-01-08 Tejas Belagod <tejas.belagod@arm.com>
6018
6019 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
6020 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
6021 with tab instead of space.
6022
f90d87f5
NC
60232013-01-08 Nick Clifton <nickc@redhat.com>
6024
6025 * config/rl78/rl78.c (rl78_expand_prologue): Always select
6026 register bank 0 at the start of an interrupt handler.
83ffd964
NC
6027 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
6028 MDBH registers.
f90d87f5 6029
385eb93d
JG
60302013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
6031
6032 * config/aarch64/aarch64-simd.md
6033 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
6034 (aarch64_simd_bsl): Likewise.
6035 (aarch64_vcond_internal<mode>): Likewise.
6036 (vcond<mode><mode>): Likewise.
6037 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
6038 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
6039
4dcd1054
JG
60402013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
6041
6042 * config/aarch64/aarch64-builtins.c
6043 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
6044
4267a4a6
MJ
60452013-01-08 Martin Jambor <mjambor@suse.cz>
6046
6047 PR debug/55579
6048 * tree-sra.c (analyze_access_subtree): Return true also after
6049 potentially creating a debug-only replacement.
6050
5f4e6de3
JJ
60512013-01-08 Jakub Jelinek <jakub@redhat.com>
6052
3138f224
JJ
6053 PR middle-end/55890
6054 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
6055
5f4e6de3
JJ
6056 PR tree-optimization/54120
6057 * tree-vrp.c (range_fits_type_p): Don't allow
6058 src_precision < precision from signed vr to unsigned_p
6059 if vr->min or vr->max is negative.
6060 (simplify_float_conversion_using_ranges): Test can_float_p
6061 against CODE_FOR_nothing.
6062
f3ef18ff
JJ
60632013-01-08 Jakub Jelinek <jakub@redhat.com>
6064 Richard Biener <rguenther@suse.de>
6065
6066 PR middle-end/55851
6067 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
6068 types instead of just INTEGER_TYPE types.
6069
25c210f9
MK
60702013-01-07 Mark Kettenis <kettenis@openbsd.org>
6071
6072 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
6073 TF_SIZE): Define.
f90d87f5 6074
81826a7b
SE
60752013-01-07 Steve Ellcey <sellcey@mips.com>
6076
6077 PR target/42661
6078 * config/mips/mips.opt: Change mad to mmad to match documentation.
6079
35678514
GJL
60802013-01-07 Georg-Johann Lay <avr@gjlay.de>
6081
6082 PR target/55897
6083 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
6084 .progmemx.data now.
6085
e5669488
GJL
60862013-01-07 Georg-Johann Lay <avr@gjlay.de>
6087
6088 PR target/55897
6089 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
6090 (avr_addrspace_t): Add .section_name field.
6091 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
6092 array size.
6093 (avr_addrspace): Same. Initialize .section_name. Remove last
6094 NULL entry. Put __memx into .progmemx.data.
6095 (progmem_section_prefix): Remove.
6096 (avr_asm_init_sections): No need to initialize progmem_section.
6097 (avr_asm_named_section): Use avr_addrspace[].section_name to get
6098 section name prefix.
6099 (avr_asm_select_section): Ditto. And use get_unnamed_section to
6100 retrieve the progmem section.
6101 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
6102 boundary to run over avr_addrspace[].
6103 (avr_register_target_pragmas): Ditto.
6104
656e6f37
JJ
61052013-01-06 Jakub Jelinek <jakub@redhat.com>
6106
6107 * varasm.c (output_constant_def_contents): For asan_protect_global
6108 protected strings, adjust DECL_ALIGN if needed, before testing for
6109 anchored symbols.
6110 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
6111 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
6112 normal decls.
6113 (output_object_block): For asan protected decls, emit asan padding
6114 after their contents.
6115 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
6116 (asan_finish_file): Test it here instead.
6117
6edc3e32
UB
61182013-01-07 Nick Clifton <nickc@redhat.com>
6119 Matthias Klose <doko@debian.org>
6120 Doug Kwan <dougkwan@google.com>
6121 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
6122
6123 PR driver/55470
6124 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
6125
6126 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
6127
6128 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
6129
7b0fe4f4 6130 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
6131
6132 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
6133
2a095093
GJL
61342013-01-07 Georg-Johann Lay <avr@gjlay.de>
6135
f3b503f4 6136 PR target/54461
2a095093
GJL
6137 * doc/install.texi (Cross-Compiler-Specific Options): Document
6138 --with-avrlibc.
6139
383f9b34
TB
61402013-01-07 Tejas Belagod <tejas.belagod@arm.com>
6141
6142 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
6143 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
6144 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
6145 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
6146 vqmovun_high_s64): Fix source operand number and update copyright.
6147
3626621a
RB
61482013-01-07 Richard Biener <rguenther@suse.de>
6149
6150 PR middle-end/55890
6151 * gimple.h (gimple_call_builtin_p): New overload.
6152 * gimple.c (validate_call): New function.
6153 (gimple_call_builtin_p): Likewise.
6154 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6155 Use gimple_call_builtin_p.
6156 (find_func_clobbers): Likewise.
6157 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
6158 (strlen_optimize_stmt): Likewise.
6159
8b2ea410
JG
61602013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
6161
6162 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
6163 (vld1q_dup_*): Likewise.
6164 (vld1_*): Likewise.
6165 (vld1q_*): Likewise.
6166 (vld1_lane_*): Likewise.
6167 (vld1q_lane_*): Likewise.
6168
9713d329
RB
61692013-01-07 Richard Biener <rguenther@suse.de>
6170
6171 * lto-streamer.h (LTO_minor_version): Bump to 2.
6172
3520f7cc
JG
61732013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
6174
6175 * config/aarch64/aarch64-protos.h
6176 (aarch64_const_double_zero_rtx_p): Rename to...
6177 (aarch64_float_const_zero_rtx_p): ...this.
6178 (aarch64_float_const_representable_p): New.
6179 (aarch64_output_simd_mov_immediate): Likewise.
6180 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
6181 move immediate case.
6182 * config/aarch64/aarch64.c
6183 (aarch64_const_double_zero_rtx_p): Rename to...
6184 (aarch64_float_const_zero_rtx_p): ...this.
6185 (aarch64_print_operand): Allow printing of new constants.
6186 (aarch64_valid_floating_const): New.
6187 (aarch64_legitimate_constant_p): Check for valid floating-point
6188 constants.
6189 (aarch64_simd_valid_immediate): Likewise.
6190 (aarch64_vect_float_const_representable_p): New.
6191 (aarch64_float_const_representable_p): Likewise.
6192 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
6193 (aarch64_output_simd_mov_immediate): New.
6194 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
6195 (*movdf_aarch64): Likewise.
6196 * config/aarch64/constraints.md (Ufc): New.
6197 (Y): call aarch64_float_const_zero_rtx.
6198 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
6199
e167c04d
RB
62002013-01-07 Richard Biener <rguenther@suse.de>
6201
6202 PR tree-optimization/55888
6203 PR tree-optimization/55862
6204 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
6205 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
6206 not if it is contained therein.
6207
0139aaab
GJL
62082013-01-07 Georg-Johann Lay <avr@gjlay.de>
6209
6210 * config/avr/t-avr: Typo.
6211
4a176b23
GJL
62122013-01-07 Georg-Johann Lay <avr@gjlay.de>
6213
6214 PR55243
6215 * config/avr/t-avr: Don't automatically rebuild
6216 $(srcdir)/config/avr/t-multilib
6217 $(srcdir)/config/avr/avr-tables.opt
6218 $(srcdir)/doc/avr-mmcu.texi
6219 (avr-mcus): New phony target to build them on request.
6220 (s-avr-mlib, s-avr-mmcu-texi): Remove.
6221 * avr/avr-mcus.def: Adjust comments.
6222
c7afdc98
UB
62232013-01-07 Uros Bizjak <ubizjak@gmail.com>
6224
6225 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
6226
1ab05c31
RS
62272013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
6228
6229 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
6230
488e3acc
RS
62312013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
6232
6233 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
6234
a89599d2
DE
62352013-01-05 David Edelsohn <dje.gcc@gmail.com>
6236
6237 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
6238 to generate profiling.
6239 * config/rs6000/aix64.h (LIB_SPEC): Same.
6240
70f09188
AP
62412013-01-04 Andrew Pinski <apinski@cavium.com>
6242
6243 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
6244 New function.
6245 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
6246
918d445f
UB
62472013-01-04 Uros Bizjak <ubizjak@gmail.com>
6248
6249 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
6250 unconditionally.
6251 (ix86_expand_move): Ditto.
6252 (ix86_zero_extend_to_Pmode): Ditto.
6253 (ix86_expand_call): Ditto.
6254 (ix86_expand_special_args_builtin): Ditto.
6255 (ix86_expand_builtin): Ditto.
6256
361618ec
RB
62572013-01-04 Richard Biener <rguenther@suse.de>
6258
6259 PR tree-optimization/55862
6260 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
6261 translating them through PHI nodes.
6262
87eab554
MJ
62632013-01-04 Martin Jambor <mjambor@suse.cz>
6264
6265 PR tree-optimization/55755
6266 * tree-sra.c (sra_modify_assign): Do not check that an access has no
6267 children when trying to avoid producing a VIEW_CONVERT_EXPR.
6268
33879b9f
MP
62692013-01-04 Marek Polacek <polacek@redhat.com>
6270
6271 PR middle-end/55859
6272 * opts.c (default_options_optimization): Clarify error message.
6273
3068819a
RB
62742013-01-04 Richard Biener <rguenther@suse.de>
6275
6276 PR middle-end/55863
6277 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
6278 reassociation.
6279
0e4ae794
JDA
62802013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6281
6282 PR target/53789
6283 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
6284 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
6285 references.
0e4ae794 6286
65c88cef
RH
62872013-01-03 Richard Henderson <rth@redhat.com>
6288
6289 * config/i386/i386.c (ix86_expand_move): Always assign to op1
6290 after eliminating TLS symbols.
6291
8ac16127
MG
62922013-01-03 Marc Glisse <marc.glisse@inria.fr>
6293
6294 PR bootstrap/50167
6295 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
6296 * graphite-poly.c (debug_gmp_value): Likewise.
6297
bb664f09
UB
62982013-01-03 Uros Bizjak <ubizjak@gmail.com>
6299
6300 PR target/55712
6301 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
6302 selected code model, define __code_mode_small__, __code_model_medium__,
6303 __code_model_large__, __code_model_32__ or __code_model_kernel__.
6304 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
6305 xchg temporary register with %k. Declare temporary register as
6306 early clobbered.
6307 [__x86_64__]: For medium and large code models, preserve %rbx register.
6308
bcf1ef00
RB
63092013-01-03 Richard Biener <rguenther@suse.de>
6310
0506634a 6311 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
6312 (dump_subscript): Adjust.
6313 (finalize_ddr_dependent): Do not dump redundant info.
6314 (analyze_siv_subscript): Adjust.
6315 (subscript_dependence_tester): Likewise.
6316 (compute_affine_dependence): Likewise.
6317
59fd17e3
RB
63182013-01-03 Richard Biener <rguenther@suse.de>
6319
6320 Revert
6321 2013-01-03 Richard Biener <rguenther@suse.de>
6322
6323 PR tree-optimization/55857
6324 * tree-vect-stmts.c (vectorizable_load): Do not setup
6325 re-alignment for invariant loads.
6326
6327 2013-01-02 Richard Biener <rguenther@suse.de>
6328
6329 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 6330 invariant load do not generate a vector load from the scalar location.
59fd17e3 6331
595c2679
RB
63322013-01-03 Richard Biener <rguenther@suse.de>
6333
6334 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
6335 for not vectorizing.
6336 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
6337 not build INDIRECT_REFs, call get_name once only.
6338 (vect_create_data_ref_ptr): Likewise. Dump base object kind
6339 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
6340
90bb7d7a
RB
63412013-01-03 Richard Biener <rguenther@suse.de>
6342
6343 PR tree-optimization/55857
6344 * tree-vect-stmts.c (vectorizable_load): Do not setup
6345 re-alignment for invariant loads.
6346
f09b77ca
RB
63472013-01-03 Richard Biener <rguenther@suse.de>
6348
6349 PR lto/55848
6350 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
6351 prefer a built-in decl.
6352
3461a16e
JJ
63532013-01-03 Jakub Jelinek <jakub@redhat.com>
6354
df8e2b4f
JJ
6355 * gcc.c (process_command): Update copyright notice dates.
6356 * gcov.c (print_version): Likewise.
6357 * gcov-dump.c (print_version): Likewise.
6358
3461a16e
JJ
6359 PR rtl-optimization/55838
6360 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
6361 iv0.step, iv1.step and step.
6362
8b5546d6
JJ
63632013-01-03 Jakub Jelinek <jakub@redhat.com>
6364 Marc Glisse <marc.glisse@inria.fr>
6365
6366 PR tree-optimization/55832
6367 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
6368 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
6369 integer_{one,zero}_node.
6370
8ab1d2e9
JJ
63712013-01-03 Jakub Jelinek <jakub@redhat.com>
6372
6373 PR debug/54402
6374 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
6375 * var-tracking.c (reverse_op): Don't add reverse ops to
6376 VALUEs that have already
0506634a 6377 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 6378
5b9ad1d4
GP
63792013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
6380
6381 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
6382
e25a6711
TJ
63832013-01-02 Teresa Johnson <tejohnson@google.com>
6384
6385 * dumpfile.c (dump_loc): Print filename with location.
6386 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
6387 new location_t parameter to emit complete unroll message with
6388 new dump framework.
6389 (canonicalize_loop_induction_variables): Compute loops location
6390 and pass to try_unroll_loop_completely.
6391 * loop-unroll.c (report_unroll_peel): New function.
6392 (peel_loops_completely): Use new dump format with location
6393 for main dumpfile message, and invoke report_unroll_peel on success.
6394 (decide_unrolling_and_peeling): Ditto.
6395 (decide_peel_once_rolling): Remove old dumpfile message subsumed
6396 by report_unroll_peel.
6397 (decide_peel_completely): Ditto.
6398 (decide_unroll_constant_iterations): Ditto.
6399 (decide_unroll_runtime_iterations): Ditto.
6400 (decide_peel_simple): Ditto.
6401 (decide_unroll_stupid): Ditto.
6402 * cfgloop.c (get_loop_location): New function.
6403 * cfgloop.h (get_loop_location): Declare.
6404
77878621
ST
64052013-01-02 Sriraman Tallam <tmsriram@google.com>
6406
6407 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
6408 NULL.
6409
9e65d03e
JDA
64102013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6411
6412 PR middle-end/55198
6413 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
6414 BLKmode objects when EXPAND_MEMORY is specified.
6415
6a7da30f
ST
64162013-01-02 Sriraman Tallam <tmsriram@google.com>
6417
6418 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
6419 in loop predicate.
6420 (fold_builtin_cpu): Do not share cpu model decls across statements.
6421
e78167f2
JM
64222013-01-02 Jason Merrill <jason@redhat.com>
6423
6424 PR c++/55804
6425 * tree.c (build_array_type_1): Revert earlier change.
6426
8c075fb4
YZ
64272013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
6428
6429 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
6430 "cortex-a57".
6431 * config/aarch64/aarch64-tune.md: Re-generate.
6432
0682ed3e
RB
64332013-01-02 Richard Biener <rguenther@suse.de>
6434
6435 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 6436 invariant load do not generate a vector load from the scalar location.
0682ed3e 6437
b8f6a302
RB
64382013-01-02 Richard Biener <rguenther@suse.de>
6439
6440 PR bootstrap/55784
6441 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
6442 * configure: Regenerate.
6443
04b80dbb
RS
64442013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
6445
6446 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
6447 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
6448 (expand_builtin_int_roundingfn_2): Keep the original target around
6449 for the fallback case.
6450
635b0b0c
RS
64512013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
6452
6453 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
6454 to be clear for sign changes.
6455
42d57399
JH
64562013-01-01 Jan Hubicka <jh@suse.cz>
6457
6458 * ipa-inline-analysis.c: Fix formatting.
6459
5bb6669d
JJ
64602013-01-01 Jakub Jelinek <jakub@redhat.com>
6461
6462 PR tree-optimization/55831
6463 * tree-vect-loop.c (get_initial_def_for_induction): Use
6464 gsi_after_labels instead of gsi_start_bb.
ad41bd84 6465\f
86a2db33 6466Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
6467
6468Copying and distribution of this file, with or without modification,
6469are permitted in any medium without royalty provided the copyright
6470notice and this notice are preserved.