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