]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
gimple.h (gimple_can_coalesce_p): Prototype.
[gcc.git] / gcc / ChangeLog
CommitLineData
24244e4d
VP
12013-06-14 Vidya Praveen <vidyapraveen@arm.com>
2
3 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
4 New pattern.
5 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
6 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
7 (aarch64_<su>mlsl<mode>): Likewise.
8
f5273574
MS
92013-06-14 Mike Stump <mikestump@comcast.net>
10
11 * Makefile.in (TARGET_H): Add insn-codes.h.
12
ef7e7ab2
AM
132013-06-14 Alan Modra <amodra@gmail.com>
14
15 PR middle-end/57134
16 PR middle-end/57586
17 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
18 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
19 bitfield expansion when EXPAND_MEMORY.
20 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
21
135faab6
MM
222013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
23
24 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
25 test for clearing quad memory on 32-bit later.
26
948a1fd9
MG
272013-06-13 Marc Glisse <marc.glisse@inria.fr>
28
29 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
30 (fold_negate_expr): Likewise.
31 (fold_real_zero_addition_p): Handle vectors.
32 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
33
0597fb9c
AM
342013-06-14 Alan Modra <amodra@gmail.com>
35
36 * varasm.c (force_const_mem): Revert 2013-06-07 change.
37
e5b962d0
JH
382013-06-13 Jan Hubicka <jh@suse.cz>
39
40 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
41 Local comdats are not externally visible.
42 * symtab.c (dump_symtab_base): Dump externally visible.
43 (verify_symtab_base): Verify back links in the symtab hash.
44
a8355e51
BC
452013-06-13 Bin Cheng <bin.cheng@arm.com>
46
47 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
48 CONVERT_EXPR as equal nodes.
49
8f7e6e33
BC
502013-06-13 Bin Cheng <bin.cheng@arm.com>
51
52 * rtlanal.c (noop_move_p): Check the code to be executed for
53 COND_EXEC.
54
5d418483
MG
552013-06-13 Marc Glisse <marc.glisse@inria.fr>
56
57 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
58 Generalize to complex and vector.
59 * tree.c (build_all_ones_cst): New function.
60 * tree.h (build_all_ones_cst): Declare it.
61
50751417
AM
622013-06-13 Alan Modra <amodra@gmail.com>
63
64 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
65 * config/rs6000/rs6000.md (signbittf2): New insn.
66 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
67 (abstf2_internal, cmptf_internal2): Likewise.
68 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
69
4b02c962
MM
702013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
71 Pat Haugen <pthaugen@us.ibm.com>
72 Peter Bergner <bergner@vnet.ibm.com>
73
74 * config/rs6000/rs6000.c (emit_load_locked): Add support for
75 power8 byte, half-word, and quad-word atomic instructions.
76 (emit_store_conditional): Likewise.
77 (rs6000_expand_atomic_compare_and_swap): Likewise.
78 (rs6000_expand_atomic_op): Likewise.
79
80 * config/rs6000/sync.md (larx): Add new modes for power8.
81 (stcx): Likewise.
82 (AINT): New mode iterator to include TImode as well as normal
83 integer modes on power8.
84 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
85 that VSX registers are not considered. Use AINT mode iterator
86 instead of INT1 to allow inclusion of quad word atomic operations
87 on power8.
88 (load_locked<mode>): Likewise.
89 (store_conditional<mode>): Likewise.
90 (atomic_compare_and_swap<mode>): Likewise.
91 (atomic_exchange<mode>): Likewise.
92 (atomic_nand<mode>): Likewise.
93 (atomic_fetch_<fetchop_name><mode>): Likewise.
94 (atomic_nand_fetch<mode>): Likewise.
95 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
96 each type.
97 (ATOMIC): On power8, add QImode, HImode modes.
98 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
99 modes that promote to SImode.
100 (load_lockedti): Convert TImode arguments to PTImode, so that we
101 get a guaranteed even/odd register pair.
102 (load_lockedpti): Likewise.
103 (store_conditionalti): Likewise.
104 (store_conditionalpti): Likewise.
105
106 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
107 atomic load/store instructions.
108 (HSI): Likewise.
109
710b6cc1
RS
1102013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
111
112 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
113 loads.
114 (insn_count): New attribute, with most cases extracted from...
115 (length): ...here. Redefine most cases in terms of insn_count.
116 (single_insn): Delete.
117 (can_delay): Use insn_count to check for single instructions.
118 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
119 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
120 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
121 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
122 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
123 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
124 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
125 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
126 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
127 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
128 rather than "length".
129 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
130 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
131 Use "insn_count" rather than "length".
132 * config/mips/mips-dsp.md
133 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
134 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
135 length attributes.
136
1951f101
MG
1372013-06-12 Marc Glisse <marc.glisse@inria.fr>
138
139 PR tree-optimization/57361
140 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
141
8b033a8a
SN
1422013-06-12 Sofiane Naci <sofiane.naci@arm.com>
143
144 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): convert to split.
145 (aarch64_simd_combine<mode>): New instruction expansion.
146 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
147 function prototype.
148 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
149 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
150
ca0f62a8
JH
1512013-06-12 Jan Hubicka <jh@suse.cz>
152
153 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
154 decl has when in streaming stage.
155 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
156 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
157
cddd69eb
RS
1582013-06-12 Roland Stigge <stigge@antcom.de>
159
160 PR target/57578
161 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
162
bfdeda2c
JJ
1632013-06-12 Jakub Jelinek <jakub@redhat.com>
164
165 PR tree-optimization/57537
166 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
167 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
168
a4fa02d1
RB
1692013-06-12 Richard Biener <rguenther@suse.de>
170
171 * data-streamer.h (streamer_write_char_stream): CSE
172 obs->current_pointer.
173 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
174 streamer_write_char_stream manually and optimize the resulting loop.
175 (streamer_write_hwi_stream): Likewise.
176
bbf9ad07
JH
1772013-06-12 Jan Hubicka <jh@suse.cz>
178
179 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
180 * cgraph.h (varpool_create_empty_node): Declare.
181 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
182 duplicated nodes.
183 * symtab.c (symtab_unregister_node): Be lax about missin entries
184 in node hash.
185 (symtab_get_node): Update comment.
186 * varpool.c (varpool_create_empty_node): Break out from ...
187 (varpool_node_for_decl): ... here.
188 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
189
a53f90ad
EB
1902013-06-12 Eric Botcazou <ebotcazou@adacore.com>
191
192 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
193 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
194 part. Use straight-line flow at the end.
195 <COMPONENT_REF>: Remove superfluous else.
196 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
197
946f9306
JJ
1982013-06-12 Jakub Jelinek <jakub@redhat.com>
199
200 PR target/56564
201 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
202 target hook even for !TREE_PUBLIC decls. If no resolution info
203 is available, return false for common and external decls.
204
a7fca6f0
KP
2052013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
206
207 * config/rl78/constraints.md (U): New constraint.
208 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
209 valloc attribute.
210
c7d8f446
MM
2112013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
212
213 PR target/57589
214 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
215 to allow returning address to AT_PLATFORM name.
216
08346abd
JH
2172013-06-11 Jan Hubicka <jh@suse.cz>
218
219 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
220 * cgraph.h (symtab_node_base): Add weakref flag.
221 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
222 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
223 (output_weakrefs): Use weakref flag.
224 * fold-const.c (simple_operand_p): Handle WEAK.
225 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
226 * ipa.c (varpool_externally_visible_p): Drop weakref.
227 (function_and_variable_visibility): Update comment; fix weakref
228 sanity checks; do not clear DECL_WEAK on them.
229 * lto-cgraph.c (lto_output_node): update.
230 (lto_output_varpool_node): Update.
231 (input_overwrite_node): Update.
232 (input_node): Update.
233 (input_varpool_node): Update.
234 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
235 (lto_symtab_merge_symbols): Add sanity check.
236 (lto_symtab_prevailing_decl): Do not special case weakrefs.
237 * passes.c (rest_of_decl_compilation): Set static flag, too.
238 * symtab.c (dump_symtab_base): Dump weakref.
239 (verify_symtab_base): Sanity check weakrefs.
240 (symtab_make_decl_local): Remove duplicated code.
241 (symtab_alias_ultimate_target): Simplify.
242 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 243
d9af3652
DD
2442013-06-11 DJ Delorie <dj@redhat.com>
245
246 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
247 (rl78_unwind_word_mode): New.
248
ffa66012
DM
2492013-06-11 David Malcolm <dmalcolm@redhat.com>
250
251 * final.c (debug_prefix_maps): Make static.
252
783f2d35
DM
2532013-06-11 David Malcolm <dmalcolm@redhat.com>
254
255 * function.c (initial_trampoline): Remove stray copy.
256
7af26def
SN
2572013-06-11 Sofiane Naci <sofiane.naci@arm.com>
258
259 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
260
97756c0e
MJ
2612013-06-11 Martin Jambor <mjambor@suse.cz>
262
263 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
264 within bounds at the beginning of the function.
265
2c7b8bf6
AM
2662013-06-11 Alan Modra <amodra@gmail.com>
267
268 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
269 reporting.
270 (get_named_section): Don't NULL !DECL_P decl.
271
77cea46e
IZ
2722013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
273
274 * doc/invoke.texi (core-avx2): Document.
275 (slm): Likewise.
276 (atom): Updated with MOVBE.
277
888f0920
RB
2782013-06-11 Richard Biener <rguenther@suse.de>
279
280 * collect2.c (main): Do not redirect ld stdout/stderr when
281 debugging.
282
6b438d58
AB
2832013-06-11 Anton Blanchard <anton@samba.org>
284
285 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
286 correct shift value in little-endian mode.
287
3bc66938
JJ
2882013-06-11 Jakub Jelinek <jakub@redhat.com>
289
290 PR target/56564
291 * varasm.c (get_variable_align): Move #endif to the right place.
292
a5dc7f88
CC
2932013-06-10 Cary Coutant <ccoutant@google.com>
294
295 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
296 for hash so that hash table traversal order is deterministic.
297
19be72ab
MM
2982013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
299 Pat Haugen <pthaugen@us.ibm.com>
300 Peter Bergner <bergner@vnet.ibm.com>
301
302 * config/rs6000/vector.md (GPR move splitter): Do not split moves
303 of vectors in GPRS if they are direct moves or quad word load or
304 store moves.
305
306 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
307 declaration.
308 (direct_move_p): Likewise.
309 (quad_load_store_p): Likewise.
310
311 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
312 classes into bins based on the physical register type.
313 (reg_class_to_reg_type): Likewise.
314 (IS_STD_REG_TYPE): Likewise.
315 (IS_FP_VECT_REG_TYPE): Likewise.
316 (reload_fpr_gpr): Arrays to determine what insn to use if we can
317 use direct move instructions.
318 (reload_gpr_vsx): Likewise.
319 (reload_vsx_gpr): Likewise.
320 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
321 information that is a simplification of register classes. Also
322 precalculate direct move reload helpers.
323 (direct_move_p): New function to return true if the operation can
324 be done as a direct move instruciton.
325 (quad_load_store_p): New function to return true if the operation
326 is a quad memory operation.
327 (rs6000_legitimize_address): If quad memory, only allow register
328 indirect for TImode addresses.
329 (rs6000_legitimate_address_p): Likewise.
330 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
331 (rs6000_reload_register_type): Likewise.
332 (register_to_reg_type): Return register type.
333 (rs6000_secondary_reload_simple_move): New helper function for
334 secondary reload and secondary memory needed to identify anything
335 that is a simple move, and does not need reloading.
336 (rs6000_secondary_reload_direct_move): New helper function for
337 secondary reload to identify cases that can be done with several
338 instructions via the direct move instructions.
339 (rs6000_secondary_reload_move): New helper function for secondary
340 reload to identify moves between register types that can be done.
341 (rs6000_secondary_reload): Add support for quad memory operations
342 and for direct move.
343 (rs6000_secondary_memory_needed): Likewise.
344 (rs6000_debug_secondary_memory_needed): Change argument names.
345 (rs6000_output_move_128bit): New function to return the move to
346 use for 128-bit moves, including knowing about the various
347 limitations of quad memory operations.
348
349 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
350 memory operations. call rs6000_output_move_128bit for the actual
351 instruciton(s) to generate.
352 (vsx_movti_64bit): Likewise.
353
354 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
355 (UNSPEC_P8V_MTVSRWZ): Likewise.
356 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
357 (UNSPEC_P8V_MTVSRD): Likewise.
358 (UNSPEC_P8V_XXPERMDI): Likewise.
359 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
360 (UNSPEC_FUSION_GPR): Likewise.
361 (FMOVE128_GPR): New iterator for direct move.
362 (f32_lv): New mode attribute for load/store of SFmode/SDmode
363 values.
364 (f32_sv): Likewise.
365 (f32_dm): Likewise.
366 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
367 loads and direct move instructions.
368 (zero_extendsidi2_lfiwzx): Likewise.
369 (extendsidi2_lfiwax): Likewise.
370 (extendsidi2_nocell): Likewise.
371 (floatsi<mode>2_lfiwax): Likewise.
372 (lfiwax): Likewise.
373 (floatunssi<mode>2_lfiwzx): Likewise.
374 (lfiwzx): Likewise.
375 (fix_trunc<mode>_stfiwx): Likewise.
376 (fixuns_trunc<mode>_stfiwx): Likewise.
377 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
378 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
379 (parity<mode>2_cmpb): Set length/type attr.
380 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
381 for 'mr.' to fast_compare.
382 (bpermd_<mode>): Change type attr to popcnt.
383 (p8_fmrgow_<mode>): New insns for power8 direct move support.
384 (p8_mtvsrwz_1): Likewise.
385 (p8_mtvsrwz_2): Likewise.
386 (reload_fpr_from_gpr<mode>): Likewise.
387 (p8_mtvsrd_1): Likewise.
388 (p8_mtvsrd_2): Likewise.
389 (p8_xxpermdi_<mode>): Likewise.
390 (reload_vsx_from_gpr<mode>): Likewise.
391 (reload_vsx_from_gprsf): Likewise.
392 (p8_mfvsrd_3_<mode>): LIkewise.
393 (reload_gpr_from_vsx<mode>): Likewise.
394 (reload_gpr_from_vsxsf): Likewise.
395 (p8_mfvsrd_4_disf): Likewise.
396 (multi-word GPR splits): Do not split direct moves or quad memory
397 operations.
398
16876bdc
DM
3992013-06-10 David Malcolm <dmalcolm@redhat.com>
400
401 * tree-into-ssa.c (interesting_blocks): Make static.
402
df8a1d28
JJ
4032013-06-10 Jakub Jelinek <jakub@redhat.com>
404
405 PR target/56564
406 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
407 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
408 Use DATA_ABI_ALIGNMENT for that case instead if defined.
409 (get_variable_align): New function.
410 (get_variable_section, emit_bss, emit_common,
411 assemble_variable_contents, place_block_symbol): Use
412 get_variable_align instead of DECL_ALIGN.
413 (assemble_noswitch_variable): Add align argument, use it
414 instead of DECL_ALIGN.
415 (assemble_variable): Adjust caller. Use get_variable_align
416 instead of DECL_ALIGN.
417 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
418 caller.
419 (DATA_ABI_ALIGNMENT): Define.
420 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
421 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
422 opt is false, only return the psABI mandated alignment increase.
423 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
424 (DATA_ABI_ALIGNMENT): ... this.
425 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
426 (DATA_ABI_ALIGNMENT): ... this.
427 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
428 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
429 (DATA_ABI_ALIGNMENT): ... this.
430 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
431 * doc/tm.texi: Regenerated.
432
57b29ca6
UB
4332013-06-10 Uros Bizjak <ubizjak@gmail.com>
434
435 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
436 cmp_code to construct REG_EQUAL note.
437
3e56ed50
JJ
4382013-06-09 Jakub Jelinek <jakub@redhat.com>
439
440 PR target/57568
441 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
442 that operands[2] doesn't overlap with operands[0].
443
74fe2a1d
DE
4442013-06-09 David Edelsohn <dje.gcc@gmail.com>
445 Jan Hubicka <jh@suse.cz>
446
447 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
448 hack to mark symbols as used.
449
ed52a84e
VM
4502013-06-08 Vladimir Makarov <vmakarov@redhat.com>
451
452 PR rtl-optimization/57559
453 * lra-constraints.c (process_alt_operands): Don't discourage
454 memory with known offset for offsetable memory constraint.
455 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
456
299316ed
EB
4572013-06-08 Eric Botcazou <ebotcazou@adacore.com>
458
459 * varasm.c (struct oc_local_state): Reorder fields.
460 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
461 and adjust accordingly.
462 (output_constructor): Reorder initialization code and adjust call to
463 output_constructor_bitfield.
464
88ac60d3
JH
4652013-06-07 Jan Hubicka <jh@suse.cz>
466
467 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
468
4cdce1a8
DM
4692013-06-07 David Malcolm <dmalcolm@redhat.com>
470
471 * tree-object-size.c (unknown): Make const.
472
b5e0425c
AK
4732013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
474
475 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
476 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
477 for last alternative in the cpu_facility attribute.
478
79678d04
KT
4792013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
480
481 PR target/56315
482 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
483 (xordi3): Change operand 2 constraint to arm_xordi_operand.
484 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
485 * config/arm/constraints.md (Dg): New constraint.
486 * config/arm/neon.md (xordi3_neon): Remove.
487 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
488 * config/arm/predicates.md (arm_xordi_operand): New predicate.
489
b31ddbdb
KT
4902013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
491
492 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
493 Clean up alternatives.
494
8f90b7d4
AM
4952013-06-07 Alan Modra <amodra@gmail.com>
496
497 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
498 va_list_gpr_size.
499
961ce119
AM
5002013-06-07 Alan Modra <amodra@gmail.com>
501
502 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
503
33e49835
KT
5042013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
505
506 * config/arm/constraints.md (Df): New constraint.
507 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
508 Correct length attribute for last two alternatives.
509
acd17ae6
AM
5102013-06-07 Alan Modra <amodra@gmail.com>
511
512 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
513 override user -mfp-in-toc.
514 (offsettable_ok_by_alignment): Consider just the current access
515 rather than the whole object, unless BLKmode. Handle
516 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
517 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
518 for -mcmodel=medium.
519 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
520 override user -mfp-in-toc or -msum-in-toc. Default to
521 -mno-fp-in-toc for -mcmodel=medium.
522
73310b0e
DD
5232013-06-06 DJ Delorie <dj@redhat.com>
524
525 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
526 TARGET_VALID_POINTER_MODE.
527
0bd62dca
MM
5282013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
529 Pat Haugen <pthaugen@us.ibm.com>
530 Peter Bergner <bergner@vnet.ibm.com>
531
532 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
533 Document new power8 builtins.
534
535 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
536 condition code register, to allow 128-bit logical operations to be
537 done in the VSX or GPR registers.
538 (nor<mode>3): Use the canonical form for nor.
539 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
540 vclz*, and vpopcnt* vector instructions.
541 (nand<mode>3): Likewise.
542 (orc<mode>3): Likewise.
543 (clz<mode>2): LIkewise.
544 (popcount<mode>2): Likewise.
545
546 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
547 that only the GPRs are recognized.
548
549 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
550 support for new power8 builtins.
551
552 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
553 builtin functions.
554 (xscvdpspn): Likewise.
555 (vclz): Likewise.
556 (vclzb): Likewise.
557 (vclzh): Likewise.
558 (vclzw): Likewise.
559 (vclzd): Likewise.
560 (vpopcnt): Likewise.
561 (vpopcntb): Likewise.
562 (vpopcnth): Likewise.
563 (vpopcntw): Likewise.
564 (vpopcntd): Likewise.
565 (vgbbd): Likewise.
566 (vmrgew): Likewise.
567 (vmrgow): Likewise.
568 (eqv): Likewise.
569 (eqv_v16qi3): Likewise.
570 (eqv_v8hi3): Likewise.
571 (eqv_v4si3): Likewise.
572 (eqv_v2di3): Likewise.
573 (eqv_v4sf3): Likewise.
574 (eqv_v2df3): Likewise.
575 (nand): Likewise.
576 (nand_v16qi3): Likewise.
577 (nand_v8hi3): Likewise.
578 (nand_v4si3): Likewise.
579 (nand_v2di3): Likewise.
580 (nand_v4sf3): Likewise.
581 (nand_v2df3): Likewise.
582 (orc): Likewise.
583 (orc_v16qi3): Likewise.
584 (orc_v8hi3): Likewise.
585 (orc_v4si3): Likewise.
586 (orc_v2di3): Likewise.
587 (orc_v4sf3): Likewise.
588 (orc_v2df3): Likewise.
589
590 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
591 allow power8 quad mode in 64-bit.
592 (rs6000_builtin_vectorized_function): Add support to vectorize
593 ISA 2.07 count leading zeros, population count builtins.
594 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
595 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
596 (builtin_function_type): Add vgbbd builtin function which takes an
597 unsigned argument.
598 (altivec_expand_vec_perm_const): Add support for new power8 merge
599 instructions.
600
601 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
602 that does not include TImdoe for use with 32-bit.
603 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
604 instructions.
605 (UNSPEC_VSX_CVDPSPN): Likewise.
606 (vsx_xscvdpspn): Likewise.
607 (vsx_xscvspdpn): Likewise.
608 (vsx_xscvdpspn_scalar): Likewise.
609 (vsx_xscvspdpn_directmove): Likewise.
610 (vsx_and<mode>3): Split logical operations into 32-bit and
611 64-bit. Add support to do logical operations on TImode as well as
612 VSX vector types. Allow logical operations to be done in either
613 VSX registers or in general purpose registers in 64-bit mode. Add
614 splitters if GPRs were used. For AND, add clobber of CCmode to
615 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
616 encoding.
617 (vsx_and<mode>3_32bit): Likewise.
618 (vsx_and<mode>3_64bit): Likewise.
619 (vsx_ior<mode>3): Likewise.
620 (vsx_ior<mode>3_32bit): Likewise.
621 (vsx_ior<mode>3_64bit): Likewise.
622 (vsx_xor<mode>3): Likewise.
623 (vsx_xor<mode>3_32bit): Likewise.
624 (vsx_xor<mode>3_64bit): Likewise.
625 (vsx_one_cmpl<mode>2): Likewise.
626 (vsx_one_cmpl<mode>2_32bit): Likewise.
627 (vsx_one_cmpl<mode>2_64bit): Likewise.
628 (vsx_nor<mode>3): Likewise.
629 (vsx_nor<mode>3_32bit): Likewise.
630 (vsx_nor<mode>3_64bit): Likewise.
631 (vsx_andc<mode>3): Likewise.
632 (vsx_andc<mode>3_32bit): Likewise.
633 (vsx_andc<mode>3_64bit): Likewise.
634 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
635 and xxlorc instructions.
636 (vsx_eqv<mode>3_64bit): Likewise.
637 (vsx_nand<mode>3_32bit): Likewise.
638 (vsx_nand<mode>3_64bit): Likewise.
639 (vsx_orc<mode>3_32bit): Likewise.
640 (vsx_orc<mode>3_64bit): Likewise.
641
642 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
643
644 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
645 instruction.
646 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
647 (p8_vmrgow): Likewise.
648 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
649 GPRs to be split under VSX.
650 (p8v_clz<mode>2): Add power8 count leading zero support.
651 (p8v_popcount<mode>2): Add power8 population count support.
652 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
653 support.
654
655 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
656 instruction.
657
658 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
659 builtin functions.
660 (vec_nand): Likewise.
661 (vec_vclz): Likewise.
662 (vec_vclzb): Likewise.
663 (vec_vclzd): Likewise.
664 (vec_vclzh): Likewise.
665 (vec_vclzw): Likewise.
666 (vec_vgbbd): Likewise.
667 (vec_vmrgew): Likewise.
668 (vec_vmrgow): Likewise.
669 (vec_vpopcnt): Likewise.
670 (vec_vpopcntb): Likewise.
671 (vec_vpopcntd): Likewise.
672 (vec_vpopcnth): Likewise.
673 (vec_vpopcntw): Likewise.
674
37684c46
VM
6752013-06-06 Vladimir Makarov <vmakarov@redhat.com>
676
677 PR rtl-optimization/57468
678 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
679 spilled pseudos.
680
d89ae27c
VM
6812013-06-06 Vladimir Makarov <vmakarov@redhat.com>
682
683 PR rtl-optimization/57459
684 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
685 type when setting live regs.
686
3597e113
VM
6872013-06-06 Vladimir Makarov <vmakarov@redhat.com>
688
689 * config/s390/s390.opt (mlra): New option.
690 * config/s390/s390.c (s390_decompose_address): Check displacement
691 for all registers for LRA.
692 (s390_secondary_reload): Don't used secondary reloads for LRA.
693 (s390_lra_p): New function.
694 (TARGET_LRA_P): Define.
695 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
696 of attribute cpu_facility to zarch for the last alternative.
697 (*cmpmem_short): Ditto.
698
01037aeb
EB
6992013-06-06 Eric Botcazou <ebotcazou@adacore.com>
700
701 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
702 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
703 (arm_expand_prologue): Likewise.
704
3371a64f
TJ
7052013-06-06 Teresa Johnson <tejohnson@google.com>
706
707 PR c++/53743
708 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
709 as this is now done by redirect_edge_and_branch_force.
710 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
711 barriers, and fix interaction with splitting.
712 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
713 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
714 reflect changes made in the routine.
715 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
716 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
717 since this is called in cfglayout mode, and replace partition fixup
718 with assert as that is now done by force_nonfallthru_and_redirect.
719 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
720 already be marked with region crossing note.
721 (insert_section_boundary_note): Make non-static, gate on flag
722 has_bb_partition, rewrite to also check for multiple partitions.
723 (rest_of_handle_reorder_blocks): Remove call to
724 insert_section_boundary_note, now done later during free_cfg.
725 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
726 * bb-reorder.h (insert_section_boundary_note): Declare.
727 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
728 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
729 invoke insert_section_boundary_note.
730 (try_redirect_by_replacing_jump): Remove unnecessary
731 check for region crossing note.
732 (fixup_partition_crossing): New function.
733 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
734 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
735 in non-cfglayout mode.
736 (force_nonfallthru_and_redirect): Fixup partition boundaries,
737 remove old code that tried to do this. Emit barrier correctly
738 when we are in cfglayout mode.
739 (last_bb_in_partition): New function.
740 (rtl_split_edge): Correctly fixup partition boundaries.
741 (commit_one_edge_insertion): Remove old code that tried to
742 fixup region crossing edge since this is now handled in
743 split_block, and set up insertion point correctly since
744 block may now end in a jump.
745 (verify_hot_cold_block_grouping): Guard against checking when not in
746 linearized RTL mode.
747 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
748 notes.
749 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
750 rtl_verify_flow_info, so not called in cfglayout mode.
751 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
752 (fixup_reorder_chain): Remove old code that attempted to fixup region
753 crossing note as this is now handled in force_nonfallthru_and_redirect.
754 (duplicate_insn_chain): Don't duplicate switch section notes.
755 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
756 note.
757 * basic-block.h (emit_barrier_after_bb): Declare.
758
66071e10
KT
7592013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
760
761 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
762 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
763 arm_usatsihi): Adjust alternatives for arm_restrict_it.
764
0e26bf3d
KT
7652013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
766
767 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
768 where appropriate.
769 * config/arm/ldmstm.md: Regenerate.
770
12b4e7ef
KT
7712013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
772
773 * config/arm/sync.md (atomic_loaddi_1):
774 Disable predication for arm_restrict_it.
775 (arm_load_exclusive<mode>): Likewise.
776 (arm_load_exclusivesi): Likewise.
777 (arm_load_exclusivedi): Likewise.
778 (arm_load_acquire_exclusive<mode>): Likewise.
779 (arm_load_acquire_exclusivesi): Likewise.
780 (arm_load_acquire_exclusivedi): Likewise.
781 (arm_store_exclusive<mode>): Likewise.
782 (arm_store_exclusive<mode>): Likewise.
783 (arm_store_release_exclusivedi): Likewise.
784 (arm_store_release_exclusive<mode>): Likewise.
785
15d16c8a
RB
7862013-06-06 Richard Biener <rguenther@suse.de>
787
788 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
789 after LTO_null.
790 (lto_tag_is_tree_code_p): Adjust.
791 (lto_tag_is_gimple_code_p): Likewise.
792 (lto_gimple_code_to_tag): Likewise.
793 (lto_tag_to_gimple_code): Likewise.
794 (lto_tree_code_to_tag): Likewise.
795 (lto_tag_to_tree_code): Likewise.
796 * data-streamer.h (streamer_write_hwi_in_range): Use
797 uhwi streaming to stream the normalized range.
798 (streamer_read_hwi_in_range): Likewise.
799
17a7fc37
KT
8002013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
801
802 * config/arm/arm.md (enabled_for_depr_it): New attribute.
803 (predicable_short_it): Likewise.
804 (predicated): Likewise.
805 (enabled): Handle above.
806 (define_cond_exec): Set predicated attribute to yes.
807
b57ca59b
MS
8082013-06-05 Mike Stump <mikestump@comcast.net>
809
810 * gdbinit.in (__FUNCTION__): Add.
811
c1e183a9
UB
8122013-06-05 Uros Bizjak <ubizjak@gmail.com>
813
814 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
815 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
816
0378bddb
JH
8172013-06-05 Jan Hubicka <jh@suse.cz>
818
819 * varasm.c (mark_decl_referenced): Revert the removal until targets
820 are fixed.
821
8f8a2057
DE
8222013-06-05 David Edelsohn <dje.gcc@gmail.com>
823
824 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
825 instead of mark_decl_referenced.
826
edb983b2
JH
8272013-06-05 Jan Hubicka <jh@suse.cz>
828
829 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
830 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
831 and symtab_used_from_object_file_p.
832 (cgraph_make_node_local_1): Clear forced_by_abi.
833 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
834 * cgraph.h (symtab_node_base): Add forced_by_abi.
835 (decide_is_variable_needed): Remove.
836 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
837 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
838 (decide_is_symbol_needed): ... this one; handle symbols in general;
839 always analyze virtuals; honnor forced_by_abi.
840 (cgraph_finalize_function): Update.
841 (varpool_finalize_decl): Update.
842 (symbol_defined_and_needed): Remove.
843 (analyze_functions): Update.
844 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
845 output_refs, input_overwrite_node): Handle forced_by_abi.
846 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
847 (address_taken_from_non_vtable_p): ... this one.
848 (comdat_can_be_unshared_p_1): New function.
849 (cgraph_comdat_can_be_unshared_p): Rename to ...
850 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
851 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
852 (function_and_variable_visibility): Clear forced_by_abi as needed.
853 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
854 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
855 * symtab.c (dump_symtab_base): Dump forced_by_abi.
856 * varpool.c (decide_is_variable_needed): Remove.
857
9912dbe5
KT
8582013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
859
860 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
861 (arm_option_override): Override arm_restrict_it where appropriate.
862 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
863 * config/arm/arm.opt (mrestrict-it): New command-line option.
864 * doc/invoke.texi: Document -mrestrict-it.
865
34c136b6
DM
8662013-06-05 David Malcolm <dmalcolm@redhat.com>
867
868 * tsan.c (tsan_atomic_table): Make const.
869
a367df53
RB
8702013-06-05 Richard Biener <rguenther@suse.de>
871
872 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
873 index associated with the tree we are supposed to replace.
874 * tree-streamer-out.c (pack_ts_base_value_fields): Output
875 TREE_ASM_WRITTEN as zero for everything but SSA names.
876
70d51a19
DM
8772013-06-05 David Malcolm <dmalcolm@redhat.com>
878
879 * tree-ssa-structalias.c (call_stmt_vars): Make static.
880
b9bd2075
JH
8812013-06-04 Jan Hubicka <jh@suse.cz>
882
883 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
884 (input_node, input_varpool_node): Handle correctly external same
885 body aliases.
886 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
887 nodes at ltrans stage.
888
aaae719d
JH
8892013-06-04 Jan Hubicka <jh@suse.cz>
890
891 * ipa-inline.c (update_caller_keys): Fix availability test.
892 (update_callee_keys): Likewise.
893 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
894 to follow ELF standard.
895
107eea2c
JU
8962013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
897
898 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
899 (mips64r5900el-*-elf*): New configurations.
900 * config/mips/mips-cpus.def (r5900): New processor.
901 * config/mips/mips-tables.opt: Regenerate.
902 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
903 (mips_issue_rate): Handle PROCESSOR_R5900.
904 (mips_reorg_process_insns): Force reorder mode for the R5900.
905 * config/mips/mips.h (TARGET_MIPS5900): Define.
906 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
907 TARGET_MIPS5900.
908 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
909 TARGET_MIPS5900.
910 * config/mips/mips.md (processor): Add r5900.
911 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
912
b7342d25
IB
9132013-06-04 Ian Bolton <ian.bolton@arm.com>
914
915 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
916 into function to generate MOVI instruction.
c1e183a9 917 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
918 (aarch64_preferred_simd_mode): Turn into wrapper.
919 (aarch64_output_scalar_simd_mov_immediate): New function.
920 * config/aarch64/aarch64-protos.h: Add prototype for above.
921
81c2dfb9
IB
9222013-06-04 Ian Bolton <ian.bolton@arm.com>
923
924 * config/aarch64/aarch64.c (simd_immediate_info): Remove
925 element_char member.
926 (sizetochar): Return signed char.
927 (aarch64_simd_valid_immediate): Remove elchar and other
928 unnecessary variables.
929 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
930 Calculate element_char as required.
931 * config/aarch64/aarch64-protos.h: Update and move prototype
932 for aarch64_output_simd_mov_immediate.
933 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
934 Update arguments.
935
48063b9d
IB
9362013-06-04 Ian Bolton <ian.bolton@arm.com>
937
938 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
939 information completed by aarch64_simd_valid_immediate.
940 (aarch64_legitimate_constant_p): Update arguments.
941 (aarch64_simd_valid_immediate): Work with struct rather than many
942 pointers.
943 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
944 (aarch64_simd_make_constant): Update arguments.
945 (aarch64_output_simd_mov_immediate): Work with struct rather than
946 many pointers. Output immediate directly rather than as operand.
947 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
948 Update prototype.
949 * config/aarch64/constraints.md (Dn): Update arguments.
950
3ea63f60
IB
9512013-06-04 Ian Bolton <ian.bolton@arm.com>
952
953 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
954 longer static.
955 (aarch64_simd_immediate_valid_for_move): Remove.
956 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
957 (aarch64_simd_make_constant): Update call.
958 (aarch64_output_simd_mov_immediate): Update call.
959 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
960 Add prototype.
961 * config/aarch64/constraints.md (Dn): Update call.
962
d8edd899
IB
9632013-06-04 Ian Bolton <ian.bolton@arm.com>
964
965 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
966 return type to bool for prototype.
967 (aarch64_legitimate_constant_p): Check for true instead of not -1.
968 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
969 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
970
44b20bb8
CM
9712013-06-04 Catherine Moore <clm@codesourcery.com>
972
973 * config/mips/mips.opt (meva): New.
c1e183a9 974 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
975 (ASM_SPEC): Handle -meva.
976 * doc/invoke.texi (meva): Document.
977
52befbd8
AM
9782013-06-04 Alan Modra <amodra@gmail.com>
979
980 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
981 constant output.
982
aadaf24e
KT
9832013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
984
985 * rtl.def: Add extra fourth optional field to define_cond_exec.
986 * gensupport.c (process_one_cond_exec): Process attributes from
987 define_cond_exec.
988 * doc/md.texi: Document fourth field in define_cond_exec.
989
0cd9e9ee
EB
9902013-06-04 Eric Botcazou <ebotcazou@adacore.com>
991
992 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
993 out the processing order as in store_bit_field_1.
994
cb0f665d
JH
9952013-06-04 Jan Hubicka <jh@suse.cz>
996
997 PR middle-end/57500
998 * cgraphunit.c (cgraph_process_same_body_aliases): Create
999 non-VAR_DECL node if it does not exist yet.
1000
53984b9b
RS
10012013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
1002
1003 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
1004 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
1005 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
1006 target_cpu_default setting.
1007
5d318fd4
TJ
10082013-06-03 Teresa Johnson <tejohnson@google.com>
1009
1010 * dumpfile.c (opt_info_switch_p): Change -fopt-info
1011 default to -fopt-info=optimized instead of all.
1012 * doc/invoke.texi: Ditto.
1013 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
1014 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
1015 (execute_vect_slp): Emit BB vectorization success under
1016 MSG_OPTIMIZED_LOCATIONS.
1017 * tree-vect-slp.c (vect_slp_transform_bb): Change
1018 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
1019 * tree-vect-loop.c (vect_transform_loop): Ditto.
1020
ec3af349
JM
10212013-06-03 Jason Merrill <jason@redhat.com>
1022
1023 PR c++/57415
1024 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1025 Use TARGET_EXPR for C++.
1026
1baf9159
JJ
10272013-06-03 Jakub Jelinek <jakub@redhat.com>
1028
1029 PR rtl-optimization/57268
0cd9e9ee 1030 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
1031 if DEBUG_INSN_P (insn).
1032
1033 Reapply
1034 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
1035
1036 PR rtl-optimization/57268
1037 * sched-deps.c (sched_analyze_2): Flush dependence lists if
1038 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
1039
0f1d3965
YR
10402013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
1041
1042 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
1043 (ix86_avoid_lea_for_addr): Likewise.
1044 (exact_dependency_1): Likewise.
1045 (ix86_adjust_cost): Likewise.
1046 (swap_top_of_ready_list): Fix formatting and !reload_completed check
1047 removed.
1048 (do_reorder_for_imul): Fix typo, formatting and
1049 !reload_completed check removed.
1050 (ix86_sched_reorder): Fix typo and formatting.
1051 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
1052 list.
1053
3bc30db4
SN
10542013-06-03 Sofiane Naci <sofiane.naci@arm.com>
1055
1056 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
1057
19cc6fac
EB
10582013-06-03 Eric Botcazou <ebotcazou@adacore.com>
1059
1060 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
1061 <STRING_CST>: Likewise.
1062 <VECTOR_CST>: Likewise.
1063
c68a6e08
JW
10642013-06-01 Janus Weil <janus@gcc.gnu.org>
1065 Mikael Morin <mikael@gcc.gnu.org>
1066
1067 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
1068 * config.in: Regenerated.
1069 * configure: Regenerated.
1070
38e55e5c
JH
10712013-06-01 Jan Hubicka <jh@suse.cz>
1072
1073 PR middle-end/57366
1074 * cgraphunit.c (compile): When weakref is not supported,
1075 set up transparent aliases before final output pass.
1076 * varasm.c (assemble_alias): Do not try to do it here.
1077
eb51d2ff
JH
10782013-06-01 Jan Hubicka <jh@suse.cz>
1079
1080 PR middle-end/57467
1081 * passes.c (for_per_function): Skip unanalyzed functions.
1082
40a7fe1e
JH
10832013-06-01 Jan Hubicka <jh@suse.cz>
1084
1085 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
1086 (lto_symtab_merge_symbols_1): ... this one.
1087 (lto_symtab_merge_cgraph_nodes): Rename to ...
1088 (lto_symtab_merge_symbols): ... this one; simplify.
1089 * cgraph.c (same_body_aliases_done): Rename to ...
1090 (cpp_implicit_aliases_done): ... this one.
1091 (cgraph_create_function_alias): Update.
1092 (cgraph_same_body_alias): Update.
c1e183a9 1093 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 1094 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 1095 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
1096 (cgraph_node): Remove same_body_alias.
1097 (varpool_node): Remove alias_of and extra_name_alias.
1098 (same_body_aliases_done): Rename to ..
1099 (cpp_implicit_aliases_done): ... this one.
1100 (symtab_alias_ultimate_target): Add default parameter.
1101 (symtab_resolve_alias): New function.
1102 (fixup_same_cpp_alias_visibility): Declare.
1103 (cgraph_function_node): Add default parameter.
1104 (cgraph_node_asm_name): Likewise.
1105 (cgraph_function_or_thunk_node): Add default parameter; do
1106 not ICE when it is NULL.
1107 (varpool_variable_node): Likewise.
1108 * tree-emutls.c (create_emultls_var): Update.
1109 (ipa_lower_emutls): Update.
1110 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
1111 (cgraph_reset_node): Reset alias info.
1112 (cgraph_finalize_function): Update.
1113 (fixup_same_cpp_alias_visibility): Move to symtab.c.
1114 (analyze_function): Simplify.
1115 (cgraph_process_same_body_aliases): Simplify.
1116 (analyze_functions): Fixup same body aliases.
1117 (handle_alias_pairs): Simplify.
1118 (assemble_thunk): Update.
1119 (assemble_thunks_and_aliases): Update.
1120 (output_weakrefs): Rewrite.
1121 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
1122 (lto_output_varpool_node): Likewise.
1123 (compute_ltrans_boundary): Remve assert.
1124 (get_alias_symbol): New functoin.
1125 (input_node): Rewrite alias handling.
1126 (input_varpool_node): Likewise.
1127 * ipa-pure-const.c (propagate_pure_const): Fix formating.
1128 * ipa.c (process_references): Handle weakrefs correctly.
1129 (symtab_remove_unreachable_nodes): Likewise.
1130 * trans-mem.c (get_cg_data): Update.
1131 (ipa_tm_create_version_alias): Update.
1132 (ipa_tm_execute): Update.
1133 * symtab.c (dump_symtab_base): Dump aliases.
1134 (verify_symtab_base): Verify aliases.
1135 (symtab_node_availability): New function.
1136 (symtab_alias_ultimate_target): Simplify.
1137 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
1138 handle all the fixup cases.
1139 (symtab_resolve_alias): New function.
1140 * passes.c (ipa_write_summaries): Handle weakrefs.
1141 * varpool.c (varpool_analyze_node): Simplify.
1142 (assemble_aliases): Update.
1143 (varpool_create_variable_alias): Simplify.
1144 (varpool_extra_name_alias): Simplify.
1145 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
1146 (lto_symtab_merge_symbols): ... this one.
1147
21759881
DT
11482013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
1149
1150 Revert
1151 PR rtl-optimization/57268
1152 * sched-deps.c (sched_analyze_2): Flush dependence lists if
1153 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
1154
daf4e940
TB
11552013-06-01 Tobias Burnus <burnus@net-b.de>
1156
1157 Partially reverted:
1158 2013-05-31 Tobias Burnus <burnus@net-b.de>
1159
1160 PR middle-end/57073
1161 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
1162 further up.
1163
c359d8d0
DT
11642013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
1165
1166 PR rtl-optimization/57268
1167 * sched-deps.c (sched_analyze_2): Flush dependence lists if
1168 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
1169
4172215d
EB
11702013-05-31 Eric Botcazou <ebotcazou@adacore.com>
1171
1172 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
1173 unordered comparison operators when -fno-trapping-math is in effect
1174 on the e500.
1175 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
1176 and implement unordered comparison operators properly on the e500.
1177
a8c50132
EB
11782013-05-31 Eric Botcazou <ebotcazou@adacore.com>
1179
1180 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
1181 for constant scalar integers.
1182 (simplify_relational_operation_1): Likewise.
1183
44626634
SB
11842013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
1185
1186 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
1187 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
1188 Fix comment.
1189
55805e54
YR
11902013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
1191 Igor Zamyatin <igor.zamyatin@intel.com>
1192
1193 Silvermont (SLM) architecture performance tuning.
1194 * config/i386/i386.h (enum ix86_tune_indices): Add
1195 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
1196 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
1197
1198 * config/i386/i386.c (initial_ix86_tune_features)
1199 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
1200 (ix86_lea_outperforms): Handle Silvermont tuning.
1201 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
1202 call.
1203 (ix86_use_lea_for_mov): Likewise.
1204 (ix86_avoid_lea_for_addr): Likewise.
1205 (ix86_lea_for_add_ok): Likewise.
1206 (exact_dependency_1): New function.
1207 (exact_store_load_dependency): Likewise.
1208 (ix86_adjust_cost): Handle Silvermont tuning.
1209 (do_reoder_for_imul): Likewise.
1210 (swap_top_of_ready_list): New function.
1211 (ix86_sched_reorder): Changed to handle Silvermont tuning.
1212
1213 * config/i386/i386.md (peepholes that split memory operand in fp
1214 converts): New.
1215
e19c9de2
MS
12162013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
1217
1218 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1219 Remove un-necessary braces.
1220
38e6c9a6
MS
12212013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
1222
1223 * config/aarch64/aarch64.c (aarch64_classify_symbol):
1224 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
1225
e3530904
TB
12262013-05-31 Tobias Burnus <burnus@net-b.de>
1227
1228 PR middle-end/57073
c1e183a9 1229 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 1230
b6af05a9
KT
12312013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1232
1233 PR target/56315
1234 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
1235 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
1236 * config/arm/neon.md (iordi3_neon): Remove.
1237 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
1238 * config/arm/predicates.md (imm_for_neon_logic_operand):
1239 Move to earlier in the file.
1240 (neon_logic_op2): Likewise.
1241 (arm_iordi_operand_neon): New predicate.
1242
f800c166
RB
12432013-05-31 Richard Biener <rguenther@suse.de>
1244
1245 PR tree-optimization/57478
1246 PR tree-optimization/57453
1247 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
1248 are life as well.
1249
e571fa59
KP
12502013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
1251
1252 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
1253 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
1254
0fa6e0ef
TB
12552013-05-30 Tobias Burnus <burnus@net-b.de>
1256 Thomas Koenig <tkoenig@gcc.gnu.org>
1257
1258 PR middle-end/57073
1259 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
1260 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
1261
4688ddf5
SB
12622013-05-30 Steven Bosscher <steven@gcc.gnu.org>
1263
0fa6e0ef 1264 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 1265
3b9ceb4b
VM
12662013-05-30 Vladimir Makarov <vmakarov@redhat.com>
1267
1268 * target.def (register_usage_leveling_p): New hook.
1269 * targhooks.c (default_register_usage_leveling_p): New.
1270 * targhooks.h (default_register_usage_leveling_p): New prototype.
1271 * lra-assigns.c (register_usage_leveling_p): Use the hook.
1272 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
1273 * doc/tm.texi: Update.
1274 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
1275
65f9e789
IB
12762013-05-30 Ian Bolton <ian.bolton@arm.com>
1277
1278 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
1279 (*insv_reg<mode>): New define_insn.
1280
ca035367
JR
12812013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
1282
1283 PR rtl-optimization/57439
1284 * postreload.c (move2add_valid_value_p): Check that we have
1285 a zero subreg_regno_offset when accessing the register in
1286 the requested mode.
1287
0b871ccf
YR
12882013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
1289 Igor Zamyatin <igor.zamyatin@intel.com>
1290
1291 Silvermont (SLM) architecture pipeline model, tuning and
1292 insn selection.
1293 * config.gcc: Add slm config options and target.
1294
1295 * config/i386/slm.md: New.
1296
1297 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
1298
1299 * gcc/config/i386/i386-c.c (ix86_target_macros_internal): New case
1300 PROCESSOR_SLM.
1301 (ix86_target_macros_internal): Likewise.
1302
1303 * gcc/config/i386/i386.c (slm_cost): New cost.
1304 (m_SLM): New macro flag.
1305 (initial_ix86_tune_features): Set m_SLM.
1306 (x86_accumulate_outgoing_args): Likewise.
1307 (x86_arch_always_fancy_math_387): Likewise.
1308 (processor_target_table): Add slm cost.
1309 (cpu_names): Add slm cpu name.
1310 (x86_option_override_internal): Set SLM ISA.
1311 (ix86_issue_rate): New case PROCESSOR_SLM.
1312 (ia32_multipass_dfa_lookahead): Likewise.
1313 (fold_builtin_cpu): Add slm.
1314
1315 * config/i386/i386.h (TARGET_SLM): New target macro.
1316 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
1317 (processor_type): Add PROCESSOR_SLM.
1318
1319 * config/i386/i386.md (cpu): Add new value "slm".
1320 (slm.md): Include slm.md.
1321
24d5b097
XG
13222013-05-30 Bernd Schmidt <bernds@codesourcery.com>
1323 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1324
1325 * config/arm/arm-protos.h: Add and update function protos.
1326 * config/arm/arm.c (use_simple_return_p): New added.
1327 (thumb2_expand_return): Check simple_return flag.
1328 * config/arm/arm.md: Add simple_return and conditional simple_return.
1329 * config/arm/iterators.md: Add iterator for return and simple_return.
1330
c1cccc15
ZC
13312013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1332
1333 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
1334 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
1335 (arm_emit_vfp_multi_reg_pop): Likewise.
1336 (thumb2_emit_ldrd_pop): Likewise.
1337 (arm_expand_epilogue): Add misc REG_CFA notes.
1338 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
1339
3a4f280b
LC
13402013-05-29 Lawrence Crowl <crowl@google.com>
1341
1342 * config/arm/t-arm: Update for below.
1343
1344 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
1345 Change type to hash_table. Update dependent calls and types.
1346
1347 * config/i386/t-cygming: Update for below.
1348
1349 * config/i386/t-interix: Update for below.
1350
1351 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
1352 Change type to hash_table. Update dependent calls and types.
1353 (i386_find_on_wrapper_list::wrappers): Likewise.
1354
1355 * config/ia64/t-ia64: Update for below.
1356
1357 * config/ia64/ia64.c (bundle_state_table):
1358 Change type to hash_table. Update dependent calls and types.
1359
1360 * config/mips/mips.c (mips_reorg_process_insns::htab):
1361 Change type to hash_table. Update dependent calls and types.
1362
1363 * config/sol2.c (solaris_comdat_htab):
1364 Change type to hash_table. Update dependent calls and types.
1365
1366 * config/t-sol2: Update for above.
1367
1388a0e3
TJ
13682013-05-29 Teresa Johnson <tejohnson@google.com>
1369
1370 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
1371 functions are not yet marked as defined.
1372
a5965b52
MM
13732013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
1374 Pat Haugen <pthaugen@us.ibm.com>
1375 Peter Bergner <bergner@vnet.ibm.com>
1376
1377 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
1378 instructions.
1379 (VEC_A): Likewise.
1380 (VEC_C): Likewise.
1381 (vrotl<mode>3): Likewise.
1382 (vashl<mode>3): Likewise.
1383 (vlshr<mode>3): Likewise.
1384 (vashr<mode>3): Likewise.
1385
1386 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1387 support for power8 V2DI builtins.
1388
1389 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
1390 power8 V2DI builtins.
1391 (vupkhsw): Likewise.
1392 (vupklsw): Likewise.
1393 (vaddudm): Likewise.
1394 (vminsd): Likewise.
1395 (vmaxsd): Likewise.
1396 (vminud): Likewise.
1397 (vmaxud): Likewise.
1398 (vpkudum): Likewise.
1399 (vpksdss): Likewise.
1400 (vpkudus): Likewise.
1401 (vpksdus): Likewise.
1402 (vrld): Likewise.
1403 (vsld): Likewise.
1404 (vsrd): Likewise.
1405 (vsrad): Likewise.
1406 (vsubudm): Likewise.
1407 (vcmpequd): Likewise.
1408 (vcmpgtsd): Likewise.
1409 (vcmpgtud): Likewise.
1410 (vcmpequd_p): Likewise.
1411 (vcmpgtsd_p): Likewise.
1412 (vcmpgtud_p): Likewise.
1413 (vupkhsw): Likewise.
1414 (vupklsw): Likewise.
1415 (vaddudm): Likewise.
1416 (vmaxsd): Likewise.
1417 (vmaxud): Likewise.
1418 (vminsd): Likewise.
1419 (vminud): Likewise.
1420 (vpksdss): Likewise.
1421 (vpksdus): Likewise.
1422 (vpkudum): Likewise.
1423 (vpkudus): Likewise.
1424 (vrld): Likewise.
1425 (vsld): Likewise.
1426 (vsrad): Likewise.
1427 (vsrd): Likewise.
1428 (vsubudm): Likewise.
1429
1430 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
1431 support for power8 V2DI instructions.
1432
1433 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
1434 power8 V2DI instructions. Combine pack and unpack insns to use an
1435 iterator for each mode. Check whether a particular mode supports
1436 Altivec instructions instead of just checking TARGET_ALTIVEC.
1437 (UNSPEC_VPKUWUM): Likewise.
1438 (UNSPEC_VPKSHSS): Likewise.
1439 (UNSPEC_VPKSWSS): Likewise.
1440 (UNSPEC_VPKUHUS): Likewise.
1441 (UNSPEC_VPKSHUS): Likewise.
1442 (UNSPEC_VPKUWUS): Likewise.
1443 (UNSPEC_VPKSWUS): Likewise.
1444 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
1445 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
1446 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
1447 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
1448 (UNSPEC_VUPKHSB): Likewise.
1449 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
1450 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
1451 (UNSPEC_VUPKHSH): Likewise.
1452 (UNSPEC_VUPKLSB): Likewise.
1453 (UNSPEC_VUPKLSH): Likewise.
1454 (VI2): Likewise.
1455 (VI_char): Likewise.
1456 (VI_scalar): Likewise.
1457 (VI_unit): Likewise.
1458 (VP): Likewise.
1459 (VP_small): Likewise.
1460 (VP_small_lc): Likewise.
1461 (VU_char): Likewise.
1462 (add<mode>3): Likewise.
1463 (altivec_vaddcuw): Likewise.
1464 (altivec_vaddu<VI_char>s): Likewise.
1465 (altivec_vadds<VI_char>s): Likewise.
1466 (sub<mode>3): Likewise.
1467 (altivec_vsubcuw): Likewise.
1468 (altivec_vsubu<VI_char>s): Likewise.
1469 (altivec_vsubs<VI_char>s): Likewise.
1470 (altivec_vavgs<VI_char>): Likewise.
1471 (altivec_vcmpbfp): Likewise.
1472 (altivec_eq<mode>): Likewise.
1473 (altivec_gt<mode>): Likewise.
1474 (altivec_gtu<mode>): Likewise.
1475 (umax<mode>3): Likewise.
1476 (smax<mode>3): Likewise.
1477 (umin<mode>3): Likewise.
1478 (smin<mode>3): Likewise.
1479 (altivec_vpkuhum): Likewise.
1480 (altivec_vpkuwum): Likewise.
1481 (altivec_vpkshss): Likewise.
1482 (altivec_vpkswss): Likewise.
1483 (altivec_vpkuhus): Likewise.
1484 (altivec_vpkshus): Likewise.
1485 (altivec_vpkuwus): Likewise.
1486 (altivec_vpkswus): Likewise.
1487 (altivec_vpks<VI_char>ss): Likewise.
1488 (altivec_vpks<VI_char>us): Likewise.
1489 (altivec_vpku<VI_char>us): Likewise.
1490 (altivec_vpku<VI_char>um): Likewise.
1491 (altivec_vrl<VI_char>): Likewise.
1492 (altivec_vsl<VI_char>): Likewise.
1493 (altivec_vsr<VI_char>): Likewise.
1494 (altivec_vsra<VI_char>): Likewise.
1495 (altivec_vsldoi_<mode>): Likewise.
1496 (altivec_vupkhsb): Likewise.
1497 (altivec_vupkhs<VU_char>): Likewise.
1498 (altivec_vupkls<VU_char>): Likewise.
1499 (altivec_vupkhsh): Likewise.
1500 (altivec_vupklsb): Likewise.
1501 (altivec_vupklsh): Likewise.
1502 (altivec_vcmpequ<VI_char>_p): Likewise.
1503 (altivec_vcmpgts<VI_char>_p): Likewise.
1504 (altivec_vcmpgtu<VI_char>_p): Likewise.
1505 (abs<mode>2): Likewise.
1506 (vec_unpacks_hi_v16qi): Likewise.
1507 (vec_unpacks_hi_v8hi): Likewise.
1508 (vec_unpacks_lo_v16qi): Likewise.
1509 (vec_unpacks_hi_<VP_small_lc>): Likewise.
1510 (vec_unpacks_lo_v8hi): Likewise.
1511 (vec_unpacks_lo_<VP_small_lc>): Likewise.
1512 (vec_pack_trunc_v8h): Likewise.
1513 (vec_pack_trunc_v4si): Likewise.
1514 (vec_pack_trunc_<mode>): Likewise.
1515
1516 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
1517 V2DI builtins.
1518 (vec_vmaxsd): Likewise.
1519 (vec_vmaxud): Likewise.
1520 (vec_vminsd): Likewise.
1521 (vec_vminud): Likewise.
1522 (vec_vpksdss): Likewise.
1523 (vec_vpksdus): Likewise.
1524 (vec_vpkudum): Likewise.
1525 (vec_vpkudus): Likewise.
1526 (vec_vrld): Likewise.
1527 (vec_vsld): Likewise.
1528 (vec_vsrad): Likewise.
1529 (vec_vsrd): Likewise.
1530 (vec_vsubudm): Likewise.
1531 (vec_vupkhsw): Likewise.
1532 (vec_vupklsw): Likewise.
1533
e70670cf
JH
15342013-05-29 Jan Hubicka <jh@suse.cz>
1535
1536 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
1537 flags; reorder rest of fields in more consistent way.
1538 (varpool_node): Remove analyzed, finalized and alias.
1539 (cgraph_ndoe): Likewise.
1540 (symtab_alias_ultimate_target): New function.
1541 (cgraph_function_node): Move offline.
1542 (cgraph_reset_node): Declare.
1543 (cgraph_comdat_can_be_unshared_p): Remove.
1544 (varpool_remove_initializer): Declare.
1545 (varpool_first_defined_variable, varpool_next_defined_variable
1546 cgraph_first_defined_function, cgraph_next_defined_function): Update.
1547 (cgraph_function_with_gimple_body_p): Update.
1548 (varpool_all_refs_explicit_p): Update.
1549 (symtab_alias_target): New function.
1550 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
1551 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
1552 (cgraph_function_or_thunk_node): Simplify using
1553 symtab_alias_ultimate_target.
e70670cf
JH
1554 (varpool_variable_node): Likewise.
1555 * cgraph.c (cgraph_create_function_alias): Update.
1556 (cgraph_add_thunk): Update.
1557 (cgraph_remove_node): Update.
1558 (dump_cgraph_node): Do not dump removed flags.
1559 (cgraph_function_body_availability): Update.
1560 (cgraph_propagate_frequency): Update.
1561 (verify_cgraph_node): Check sanity of local flag.
1562 (cgraph_function_node): Move here from cgraph.h; revamp for
1563 cgraph_function_or_thunk_node.
1564 * lto-symtab.c (lto_varpool_replace_node): Update.
1565 (lto_symtab_resolve_can_prevail_p): Update.
1566 (lto_symtab_merge_cgraph_nodes): Update.
1567 * ipa-cp.c (determine_versionability, initialize_node_lattices,
1568 propagate_constants_accross_call, devirtualization_time_bonus,
1569 ipcp_propagate_stage): Update.
1570 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
1571 * ipa-inline-transform.c (clone_inlined_nodes,
1572 preserve_function_body_p): Update.
e70670cf
JH
1573 * ipa-reference.c (propagate): Update.
1574 (write_node_summary_p): Update.
1575 * toplev.c (wrapup_global_declaration_2): Update.
1576 * cgraphunit.c (cgraph_analyze_function): Rename to ...
1577 (analyze_function) ... this one.
1578 (cgraph_process_new_functions): Update.
1579 (cgraph_reset_node): Export.
1580 (cgraph_finalize_function): Update.
1581 (cgraph_add_new_function): Update.
1582 (process_function_and_variable_attributes): Update.
1583 (varpool_finalize_decl): Update.
1584 (symbol_finalized): Remove.
1585 (symbol_finalized_and_needed): Rename to ...
1586 (symbol_defined_and_needed): ... update.
1587 (cgraph_analyze_functions): Update.
1588 (handle_alias_pairs): Update.
1589 (mark_functions_to_output): Update.
1590 (assemble_thunk): Update.
1591 (output_in_order): Update.
1592 (output_weakrefs): Update.
1593 (finalize_compilation_unit): Update.
1594 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
1595 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
1596 input_node, input_varpool_node): Update.
1597 * dbxout.c (dbxout_expand_expr): Update.
1598 * cgraphclones.c (cgraph_clone_node): Update.
1599 (cgraph_copy_node_for_versioning): Update.
1600 (cgraph_materialize_clone): Update.
1601 (cgraph_materialize_all_clones): Update.
1602 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
1603 propagate_pure_const, propagate_nothrow): Update.
1604 * lto-streamer-out.c (lto_output, write_symbol): Update.
1605 * ipa-utils.c (ipa_reverse_postorder): Update.
1606 * ipa-inline.c (can_inline_edge_p): Update.
1607 (update_caller_keys, ipa_inline): Update.
1608 * dwarf2out.c (reference_to_unused,
1609 premark_types_used_by_global_vars_helper): Update.
1610 * tree-eh.c (tree_could_trap_p): Update.
1611 * ipa-split.c (consider_split, execute_split_functions): Update.
1612 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
1613 has_addr_references_p): Update; move ahead in file for better
1614 readability.
e70670cf
JH
1615 (process_references): Simplify.
1616 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
1617 bodies are removed.
1618 (cgraph_comdat_can_be_unshared_p): Make static.
1619 (cgraph_externally_visible_p): Update.
1620 (varpool_externally_visible_p): Update.
1621 (function_and_variable_visibility): Update.
1622 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
1623 ipa_tm_mark_force_output_node): Update.
1624 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
1625 estimate_edge_devirt_benefit, inline_generate_summary,
1626 inline_write_summary): Update.
1627 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
1628 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
1629 (ipa_print_node_params, ipa_prop_read_section,
1630 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
1631 * varasm.c (mark_decl_referenced): Update.
1632 (assemble_alias, dump_tm_clone_pairs): Update.
1633 * tree-inline.c (copy_bb): Update.
1634 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
1635 Update.
1636 * symtab.c (dump_symtab_base): Print new flags.
1637 (verify_symtab_base): Verify new flags.
1638 (symtab_alias_ultimate_target): New function.
1639 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
1640 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
1641 Update.
c1e183a9
UB
1642 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
1643 Update.
e70670cf
JH
1644 * i386.c (ix86_get_function_versions_dispatcher,
1645 ix86_generate_version_dispatcher_body): Update.
1646 (fold_builtin_cpu): Use varpool_add_new_variable.
1647 * varpool.c (varpool_remove_initializer): Break out from ...
1648 (varpool_remove_node): ... this one.
1649 (dump_varpool_node, varpool_node_for_asm,
1650 cgraph_variable_initializer_availability, varpool_analyze_node,
1651 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
1652 varpool_finalize_named_section_flags, varpool_create_variable_alias):
1653 Update.
e70670cf 1654
182802ad
JH
16552013-05-29 Jan Hubicka <jh@suse.cz>
1656
1657 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
1658
8190b609
ER
16592013-05-29 Easwaran Raman <eraman@google.com>
1660
1661 PR tree-optimization/57442
1662 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
1663 when control exits the main loop.
1664
69f5aa9b
SKS
16652013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
1666
1667 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
1668 and RX600.
c1e183a9 1669 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
1670 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
1671 * rx/t-rx: Add rx100 under multi library matches option for nofpu
1672 option.
1673
4b847da9
BS
16742013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1675
1676 PR tree-optimization/57441
1677 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
1678 Don't limit size of incr_vec to number of candidates.
1679
4fc43c39
SE
16802013-05-29 Steve Ellcey <sellcey@imgtec.com>
1681
1682 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
1683 and mips16 directories.
c1e183a9 1684 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
1685 (MULTILIB_DIRNAMES): Ditto.
1686 (MULTILIB_EXCEPTIONS): Add new exceptions.
1687 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
1688 (MULTILIB_DIRNAMES): Ditto.
1689 (MULTILIB_EXCEPTIONS): Add new exceptions.
1690
a5350ddc
CSS
16912012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
1692 Marcus Shawcroft <marcus.shawcroft@arm.com>
1693
1694 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
1695 SYMBOL_TINY_ABSOLUTE.
1696 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
1697 SYMBOL_TINY_ABSOLUTE.
1698 (aarch64_expand_mov_immediate): Likewise.
1699 (aarch64_classify_symbol): Likewise.
1700 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
1701 Permit SYMBOL_TINY_ABSOLUTE.
1702 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
1703
17f4d4bf
CSS
17042013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
1705 Marcus Shawcroft <marcus.shawcroft@arm.com>
1706
1707 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
1708 Refactor if/switch. Replace gcc_assert with if.
1709
c0186656
GG
17102013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
1711
1712 * config/i386/i386.c (initial_ix86_tune_features): Enable
1713 FP Reassociation for AMD bdver1 and bdver2.
1714
d20188f3
MJ
17152013-05-29 Martin Jambor <mjambor@suse.cz>
1716
1717 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
1718 and IMAGPART_EXPR do not occur within other handled_components.
1719
292cba13
RB
17202013-05-29 Richard Biener <rguenther@suse.de>
1721
1722 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
1723 access on whether the use is in the BB we currently try to
1724 vectorize.
1725 (vect_bb_vectorization_profitable_p): Pass the BB we currently
1726 vectorize to vect_bb_slp_scalar_cost.
1727
6eddf228
RB
17282013-05-29 Richard Biener <rguenther@suse.de>
1729
1730 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
1731 computing scalar cost offsetted by stmts that are kept live
1732 by scalar uses.
1733 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
1734 for computation of scalar cost.
1735
7df36117
SE
17362013-05-28 Steve Ellcey <sellcey@mips.com>
1737
1738 * config/mips/mips-cpus.def (mips32r2): Change processor type.
1739
36536d79
BI
17402013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
1741
1742 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
1743 array notation built-in reduction functions.
1744 * doc/passes.texi (Passes): Added documentation about changes done
1745 for Cilk Plus.
1746 * doc/invoke.texi (C Dialect Options): Added documentation about
1747 the -fcilkplus flag.
1748 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
1749 (BUILTINS_DEF): Depend on cilkplus.def.
1750 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
1751 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
1752 * cilkplus.def: New file.
1753
b49eefa5
JR
17542013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
1755
1756 PR rtl-optimization/57439
1757 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
1758
9daf6dbb
ER
17592013-05-28 Easwaran Raman <eraman@google.com>
1760
1761 PR tree-optimization/57337
1762 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
1763 (find_insert_point): Correctly identify the insertion point
1764 when two statements with the same UID is compared.
1765
fbd7e877
RB
17662013-05-28 Richard Biener <rguenther@suse.de>
1767
1768 PR tree-optimization/56787
1769 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
1770 from the list of data references.
1771 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
1772 clobbers.
1773 (vect_analyze_loop_operations): Likewise.
1774 (vect_transform_loop): Remove clobbers.
1775
bbba1117
MJ
17762013-05-28 Martin Jambor <mjambor@suse.cz>
1777
1778 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
1779 and REALPART_EXPRs have scalar type.
1780
bd388c2a
RB
17812013-05-28 Richard Biener <rguenther@suse.de>
1782
1783 PR tree-optimization/57411
1784 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
1785 virtual operands.
1786 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
1787 virtual operand propagation.
1788
2f56a311
EB
17892013-05-28 Eric Botcazou <ebotcazou@adacore.com>
1790
1791 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
1792 destination register for bmasksi_vis.
1793 (vector_init_bshuffle): Likewise.
1794 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
1795
5c3eacbb
EB
17962013-05-28 Eric Botcazou <ebotcazou@adacore.com>
1797
1798 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
1799 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
1800 mode if the instruction isn't available in the original mode.
1801 * config/sparc/sparc.opt (mfix-ut699): New option.
1802 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
1803 (divdf3): Turn into expander.
1804 (divdf3_nofix): New insn.
1805 (divdf3_fix): Likewise.
1806 (divsf3): Disable if -mfix-ut699.
1807 (sqrtdf2): Turn into expander.
1808 (sqrtdf2_nofix): New insn.
1809 (sqrtdf2_fix): Likewise.
1810 (sqrtsf2): Disable if -mfix-ut699.
1811
a1756c0a
RB
18122013-05-27 Richard Biener <rguenther@suse.de>
1813
1814 PR middle-end/57412
1815 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
1816 block for the new loop.
1817
5a892248
RB
18182013-05-27 Richard Biener <rguenther@suse.de>
1819
1820 PR tree-optimization/57343
1821 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
1822 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
1823 (number_of_iterations_cond): Do not build the folded tree.
1824
d1de852b
RB
18252013-05-27 Richard Biener <rguenther@suse.de>
1826
1827 Revert
1828 PR middle-end/57381
1829 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
1830 OEP_CONSTANT_ADDRESS_OF retained.
1831
1832 PR tree-optimization/57417
1833 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
1834 for unchanged base.
1835 (set_ssa_val_to): Compare addresses using
1836 get_addr_base_and_unit_offset.
1837
7894bc6b
JR
18382013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
1839
1840 PR rtl-optimization/56833
1841 * postreload.c (move2add_record_mode): New function.
1842 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
1843 (move2add_use_add2_insn): Use move2add_record_sym_value.
1844 (move2add_use_add3_insn): Likewise.
1845 (reload_cse_move2add): Use move2add_valid_value_p and
1846 move2add_record_mode. Invalidate call-clobbered and REG_INC
1847 affected regs by setting reg_mode to VOIDmode.
1848 (move2add_note_store): Don't pretend the inside of a SUBREG is
1849 the actual destination. Invalidate single/leading registers by
1850 setting reg_mode to VOIDmode.
1851 Use move2add_record_sym_value, move2add_valid_value_p and
1852 move2add_record_mode.
1853
b03be25f
RB
18542013-05-27 Richard Biener <rguenther@suse.de>
1855
1856 PR tree-optimization/57396
1857 * tree-affine.c (double_int_constant_multiple_p): Properly
1858 return false for val == 0 and div != 0.
1859
44e88db2
RS
18602013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
1861
1862 * config/mips/mips.h: Use #elif in preprocessor conditions.
1863
3b859704
RS
18642013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
1865
1866 PR target/53916
1867 * config/mips/constraints.md (kl): New constraint.
1868 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
1869 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
1870 constraint for operand 0. Split after CSE for MIPS16. Emit a move
1871 from LO for MIPS16.
1872 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
1873
c979d5f5
RS
18742013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
1875
1876 PR target/55777
1877 * config/mips/mips.c (mips_can_inline_p): New function.
1878 (TARGET_CAN_INLINE_P): Define.
1879
8e90de43
SB
18802013-05-25 Steven Bosscher <steven@gcc.gnu.org>
1881
1882 * sched-int.h (ds_t, dw_t): Make unsigned int.
1883 Fix documentation that describes how all the ds_t bits are used.
1884 Reserve the last bit for delayed-branch scheduling.
1885 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
1886 (BITS_PER_DEP_WEAK): Fix definition and documentation.
1887 (gen_dep_weak_1): Remove prototype.
1888 * sched-deps.c (get_dep_weak_1): Make static.
1889 * target.def (speculate_insn, needs_block_p, gen_spec_check,
1890 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
1891 * doc/tm.texi: Regenerate.
1892 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
1893
cb5cb194
SB
18942013-05-24 Steven Bosscher <steven@gcc.gnu.org>
1895
1896 PR debug/56950
1897 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
1898
5bd93ff6
NS
18992013-05-24 Nathan Sidwell <nathan@codesourcery.com>
1900 Sandra Loosemore <sandra@codesourcery.com>
1901
1902 * config.gcc (powerpc-*): Allow native for with-cpu.
1903
2343af65
JL
19042013-05-24 Jeff Law <law@redhat.com>
1905
1906 PR tree-optimization/57124
1907 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
1908 conversion feeding a condition if the range has an overflow
1909 if -fstrict-overflow. Add warnings for when we do make the
1910 transformation.
1911
3ad695b9
DC
19122013-05-24 Dehao Chen <dehao@google.com>
1913
04960246 1914 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
1915 (locus_discrim_hasher): Likewise.
1916 (locus_discrim_hasher::hash): Likewise.
1917 (locus_discrim_hasher::equal): Likewise.
1918
82338059
MJ
19192013-05-24 Martin Jambor <mjambor@suse.cz>
1920
1921 PR tree-optimization/57294
1922 * cgraph.h (ipa_record_stmt_references): Declare.
1923 * cgraphbuild.c (ipa_record_stmt_references): New function.
1924 (build_cgraph_edges): Use ipa_record_stmt_references.
1925 (rebuild_cgraph_edges): Likewise.
1926 (cgraph_rebuild_references): Likewise.
1927 * ipa-prop.c (ipa_modify_call_arguments): Discard references
1928 associated with the old statement and build references from the
1929 newly built statements.
1930 * ipa-ref.c (ipa_remove_stmt_references): New function.
1931 * ipa-ref.h (ipa_remove_stmt_references): Declare.
1932
1ccd4874
VM
19332013-05-24 Vladimir Makarov <vmakarov@redhat.com>
1934
55805e54 1935 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 1936 mem-mem moves.
55805e54 1937 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 1938 too.
55805e54 1939 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
1940 secondary memory moves.
1941 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
1942 reg set up in the current insn.
1943
25e25c73
DC
19442013-05-24 Dehao Chen <dehao@google.com>
1945
04960246 1946 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
1947 hash function.
1948 (locus_descrim_hasher::equal): Likewise.
04960246 1949 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
1950 (make_edges): Likewise.
1951 (next_discriminator_for_locus): Likewise.
1952 (same_line_p): Likewise.
1953 (assign_discriminators): Likewise.
1954 (make_cond_expr_edges): Likewise.
1955 (make_gimple_switch_edges): Likewise.
1956 (make_goto_expr_edges): Likewise.
1957 (make_gimple_asm_edges): Likewise.
1958
50d38551
IB
19592013-05-24 Ian Bolton <ian.bolton@arm.com>
1960
1961 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
1962 X format specifier to only display bottom 16 bits.
1963 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
1964 immediate to match for operand 2, since it will be masked.
1965
aea0101d
RB
19662013-05-24 Richard Biener <rguenther@suse.de>
1967
1968 PR tree-optimization/57287
1969 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
1970 all SSA names that occur in abnormal PHIs.
1971
634e03d3
AI
19722013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
1973
1974 PR tree-ssa/57385
1975 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
1976 that index is not negative.
1977
b17c024f
EB
19782013-05-24 Eric Botcazou <ebotcazou@adacore.com>
1979
1980 PR rtl-optimization/55177
1981 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
1982 (simplify_byte_swapping_operation): New.
1983 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
1984 (simplify_relational_operation_1): Deal with BSWAP.
1985
46aeac1b
RH
19862013-05-23 Richard Henderson <rth@redhat.com>
1987
1988 PR target/56742
1989 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
1990 (ix86_reorg): Call it.
1991
70cc1536
UB
19922013-05-23 Uros Bizjak <ubizjak@gmail.com>
1993
1994 PR target/57379
1995 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
1996 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
1997 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
1998
b3851501
CB
19992013-05-23 Christian Bruel <christian.bruel@st.com>
2000
2001 PR debug/57351
2002 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
2003
4e194912
CSS
20042013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
2005 Marcus Shawcroft <marcus.shawcroft@arm.com>
2006
2007 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
2008 * config/aarch64/constraints.md (Usa): Remove.
2009 * doc/md.texi (AArch64 Usa): Remove.
2010
83f8c414
CSS
20112013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
2012 Marcus Shawcroft <marcus.shawcroft@arm.com>
2013
2014 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
2015 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
2016 * config/aarch64/predicates.md (aarch64_const_address): Remove.
2017 (aarch64_mov_operand): Use aarch64_mov_operand_p.
2018
b5574232
VP
20192013-05-23 Vidya Praveen <vidyapraveen@arm.com>
2020
2021 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
2022 instruction (AdvSIMD).
2023 * config/aarch64/aarch64-builtins.c
2024 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
2025 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
2026
76c36cb1 20272013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
2028
2029 PR middle-end/57347
2030 * tree.h (contains_bitfld_component_ref_p): Declare.
2031 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
2032 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
2033 caller.
7d2fb524
MJ
2034 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
2035 not access a bit-field. Assert all final offsets are byte-aligned.
2036
ce521ae6
RB
20372013-05-23 Richard Biener <rguenther@suse.de>
2038
2039 PR tree-optimization/57380
2040 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
2041 least one invariant or re-used load.
2042 * passes.c (init_optimization_passes): Move pass_phiprop before
2043 pass_forwprop.
2044
75c7257f
JG
20452013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
2046
2047 * config/aarch64/aarch64-simd.md
2048 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
2049
af6d44b5
RB
20502013-05-23 Richard Biener <rguenther@suse.de>
2051
2052 PR middle-end/57381
2053 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
2054 OEP_CONSTANT_ADDRESS_OF retained.
2055
bd3647bf
JJ
20562013-05-23 Jakub Jelinek <jakub@redhat.com>
2057
2058 PR middle-end/57344
70cc1536
UB
2059 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
2060 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 2061
a55757ea
RB
20622013-05-23 Richard Biener <rguenther@suse.de>
2063
2064 PR rtl-optimization/57341
2065 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
2066 instead of true_dependence.
2067
cfb00b41
DM
20682013-05-22 David Malcolm <dmalcolm@redhat.com>
2069
dd1c676f
DM
2070 * bb-reorder.c (branch_threshold): Make const.
2071 (exec_threshold): Ditto.
cfb00b41 2072
f62511da
MM
20732013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
2074 Pat Haugen <pthaugen@us.ibm.com>
2075 Peter Bergner <bergner@vnet.ibm.com>
2076
2077 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
2078 documentation for the power8 crypto builtins.
2079
2080 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
2081
2082 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
2083 macros for defining power8 builtin functions.
2084 (BU_P8V_AV_2): Likewise.
2085 (BU_P8V_AV_P): Likewise.
2086 (BU_P8V_VSX_1): Likewise.
2087 (BU_P8V_OVERLOAD_1): Likewise.
2088 (BU_P8V_OVERLOAD_2): Likewise.
2089 (BU_CRYPTO_1): Likewise.
2090 (BU_CRYPTO_2): Likewise.
2091 (BU_CRYPTO_3): Likewise.
2092 (BU_CRYPTO_OVERLOAD_1): Likewise.
2093 (BU_CRYPTO_OVERLOAD_2): Likewise.
2094 (XSCVSPDP): Fix typo, point to the correct instruction.
2095 (VCIPHER): Add power8 crypto builtins.
2096 (VCIPHERLAST): Likewise.
2097 (VNCIPHER): Likewise.
2098 (VNCIPHERLAST): Likewise.
2099 (VPMSUMB): Likewise.
2100 (VPMSUMH): Likewise.
2101 (VPMSUMW): Likewise.
2102 (VPERMXOR_V2DI): Likewise.
2103 (VPERMXOR_V4SI: Likewise.
2104 (VPERMXOR_V8HI: Likewise.
2105 (VPERMXOR_V16QI: Likewise.
2106 (VSHASIGMAW): Likewise.
2107 (VSHASIGMAD): Likewise.
2108 (VPMSUM): Likewise.
2109 (VPERMXOR): Likewise.
2110 (VSHASIGMA): Likewise.
2111
2112 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
2113 __CRYPTO__ if the crypto instructions are available.
2114 (altivec_overloaded_builtins): Add support for overloaded power8
2115 builtins.
2116
2117 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
2118 support for power8 crypto builtins.
2119 (builtin_function_type): Likewise.
2120 (altivec_init_builtins): Add support for builtins that take vector
2121 long long (V2DI) arguments.
2122
2123 * config/rs6000/crypto.md: New file, define power8 crypto
2124 instructions.
2125
21262013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
2127 Pat Haugen <pthaugen@us.ibm.com>
2128 Peter Bergner <bergner@vnet.ibm.com>
2129
2130 * doc/invoke.texi (Option Summary): Add power8 options.
2131 (RS/6000 and PowerPC Options): Likewise.
2132
2133 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
2134 constraints.md instead of rs6000.h. Reorder w* constraints. Add
2135 wm, wn, wr documentation.
2136
2137 * gcc/config/rs6000/constraints.md (wm): New constraint for VSX
2138 registers if direct move instructions are enabled.
2139 (wn): New constraint for no registers.
2140 (wq): New constraint for quad word even GPR registers.
2141 (wr): New constraint if 64-bit instructions are enabled.
2142 (wv): New constraint if power8 vector instructions are enabled.
2143 (wQ): New constraint for quad word memory locations.
2144
2145 * gcc/config/rs6000/predicates.md (const_0_to_15_operand): New
2146 constraint for 0..15 for crypto instructions.
2147 (gpc_reg_operand): If VSX allow registers in VSX registers as well
2148 as GPR and floating point registers.
2149 (int_reg_operand): New predicate to match only GPR registers.
2150 (base_reg_operand): New predicate to match base registers.
2151 (quad_int_reg_operand): New predicate to match even GPR registers
2152 for quad memory operations.
2153 (vsx_reg_or_cint_operand): New predicate to allow vector logical
2154 operations in both GPR and VSX registers.
2155 (quad_memory_operand): New predicate for quad memory operations.
2156 (reg_or_indexed_operand): New predicate for direct move support.
2157
2158 * gcc/config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
2159 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
2160 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
2161 (POWERPC_MASKS): Add power8 options.
2162 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
2163 various options.
2164
2165 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
2166 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
2167
2168 * gcc/config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
2169 (-mpower8-fusion): New power8 options.
2170 (-mpower8-fusion-sign): Likewise.
2171 (-mpower8-vector): Likewise.
2172 (-mcrypto): Likewise.
2173 (-mdirect-move): Likewise.
2174 (-mquad-memory): Likewise.
2175
2176 * gcc/config/rs6000/rs6000.c (power8_cost): Initial definition for
2177 power8.
2178 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
2179 registers.
70cc1536 2180 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
2181 (rs6000_debug_vector_unit): Add p8_vector.
2182 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
2183 definitions. Also print fusion state.
2184 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
2185 (rs6000_builtin_mask_calculate): Add power8 builtin support.
2186 (rs6000_option_override_internal): Add support for power8.
2187 (rs6000_common_init_builtins): Add debugging for skipped builtins
2188 if -mdebug=builtin.
2189 (rs6000_adjust_cost): Add power8 support.
2190 (rs6000_issue_rate): Likewise.
2191 (insn_must_be_first_in_group): Likewise.
2192 (insn_must_be_last_in_group): Likewise.
2193 (force_new_group): Likewise.
2194 (rs6000_register_move_cost): Likewise.
2195 (rs6000_opt_masks): Likewise.
2196
2197 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
2198 power8 capable assembler, default to power7 options.
2199 (TARGET_DIRECT_MOVE): Likewise.
2200 (TARGET_CRYPTO): Likewise.
2201 (TARGET_P8_VECTOR): Likewise.
2202 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
2203 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
2204 (VECTOR_MEM_P8_VECTOR_P): Likewise.
2205 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
2206 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
2207 (TARGET_XSCVDPSPN): Likewise.
2208 (TARGET_XSCVSPDPN): Likewsie.
2209 (TARGET_SYNC_HI_QI): Likewise.
2210 (TARGET_SYNC_TI): Likewise.
2211 (MASK_CRYPTO): Likewise.
2212 (MASK_DIRECT_MOVE): Likewise.
2213 (MASK_P8_FUSION): Likewise.
2214 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
2215 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
2216 temporary used by some of the direct move instructions to get two FP
2217 temporary registers does not force creation of a stack frame.
f62511da
MM
2218 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
2219 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
2220 that any VSX registers are tieable, even if they are also an
2221 Altivec vector mode.
2222 (r6000_reg_class_enum): Add wm, wr, wv constraints.
2223 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
2224 (RS6000_BTM_CRYPTO): Likewise.
2225 (RS6000_BTM_COMMON): Likewise.
2226
2227 * config/rs6000/rs6000.md (cpu attribute): Add power8.
2228 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
2229 (enum rs6000_vector): Add power8 vector support.
2230
73a1a707
RR
22312013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2232
2233 PR target/19599
2234 PR target/57340
2235 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
2236 (any_sibcall_could_use_r3): this and handle indirect calls.
2237 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
2238
d28073d4
BS
22392013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2240
2241 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
2242
bee0b10c
RB
22432013-05-22 Richard Biener <rguenther@suse.de>
2244
2245 PR middle-end/57349
2246 * profile.c (branch_prob): Do not split blocks that are
2247 abnormally receiving from ECF_RETURNS_TWICE functions.
2248
98409b51
RS
22492013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
2250
2251 * recog.c (offsettable_address_addr_space_p): Fix calculation of
2252 address mode. Move pointer mode initialization to the same place.
2253
c0602ab8
MZ
22542013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2255
2256 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
2257 while it has any effect.
2258
4f7a634e
ER
22592013-05-21 Easwaran Raman <eraman@google.com>
2260
2261 PR tree-optimization/57322
9daf6dbb
ER
2262 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
2263 UID of the statement added to the BB to be 1.
4f7a634e 2264
a4ce1258
JJ
22652013-05-21 Jakub Jelinek <jakub@redhat.com>
2266
2267 PR tree-optimization/57331
70cc1536
UB
2268 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
2269 of conversion from pointer type to integral type with integer.
a4ce1258 2270
1b14621a
MJ
22712013-05-21 Martin Jambor <mjambor@suse.cz>
2272
2273 PR lto/57289
2274 * ipa-prop.c (ipa_read_node_info): Process param_used and
2275 controlled_uses in the same order as when writing.
2276
e60661f0
MG
22772013-05-21 Magnus Granberg <baldrick@free.fr>
2278
2279 PR plugins/56754
ee49aa34 2280 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 2281
4a61be9a
RB
22822013-05-21 Richard Biener <rguenther@suse.de>
2283
2284 PR tree-optimization/57318
2285 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
2286 estimate stmts with side-effects as likely eliminated.
2287
c52da5f7
RB
22882013-05-21 Richard Biener <rguenther@suse.de>
2289
2290 PR tree-optimization/57330
2291 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
2292 preserve the call stmts fntype.
2293
7ec67e2a
RB
22942013-05-21 Richard Biener <rguenther@suse.de>
2295
2296 PR tree-optimization/57303
2297 * tree-ssa-sink.c (statement_sink_location): Improve killing
2298 stmt detection and properly handle self-assignments.
2299
b112d513
CB
23002013-05-21 Christian Bruel <christian.bruel@st.com>
2301
55805e54
YR
2302 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
2303 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
2304 registers. Set register size out of the PARALLEL loop.
2305
14c2ec26
OE
23062013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
2307
2308 PR target/56547
2309 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
2310 (*fmasf4, *fmasf4_media): New insns.
2311
da734fa1
RS
23122013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
2313
2314 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
2315 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
2316 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
2317 (mips_idiv_insns): Update the comments to say that the returned
2318 instruction counts are in units of BASE_INSN_LENGTH.
2319 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
2320 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
2321 using 2 rather than 4 as the length of indirect MIPS16 and
2322 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
2323 length of a NOP. Don't divide MIPS16 lengths by 2.
2324 (mips16_split_long_branches): Assume a branch is long if the
2325 length is greater than 4 rather than 8.
2326 * config/mips/mips.md (length): Give MIPS16 lengths directly,
2327 rather than multiplying them by 2. Multiply instruction counts
2328 by BASE_INSN_LENGTH rather than 4.
2329 (*jump_mips16, tls_get_tp_mips16_<mode>)
2330 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
2331
13719e8b
RS
23322013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
2333
2334 * config/mips/mips.md (extended_mips16): Remove branch case.
2335 (length): Remove duplicated extended_mips16 test.
2336
c3850d14
RS
23372013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
2338
2339 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
2340
8da2e059
RS
23412013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
2342
2343 * recog.h (Recog_data): Rename to...
2344 (recog_data_d): ...this.
2345 (recog_data): Update accordingly.
2346 * recog.c (recog_data): Likewise.
2347 * reload.c (save_recog_data): Likewise.
2348 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
2349 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
2350
2df013f3
JB
23512013-05-17 Julian Brown <julian@codesourcery.com>
2352
2353 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
2354 found in a REG_EQUAL note, invalidate it.
2355
933f507d
ER
23562013-05-17 Easwaran Raman <eraman@google.com>
2357
2358 * tree-ssa-reassoc.c (find_insert_point): New function.
2359 (insert_stmt_after): Likewise.
2360 (get_def_stmt): Likewise.
2361 (ensure_ops_are_available): Likewise.
2362 (not_dominated_by): Likewise.
2363 (rewrite_expr_tree): Do not move statements beyond what is
2364 necessary. Remove call to swap_ops_for_binary_stmt...
2365 (reassociate_bb): ... and move it here.
2366 (build_and_add_sum): Assign UIDs for new statements.
2367 (linearize_expr): Likewise.
2368 (do_reassoc): Renumber gimple statement UIDs.
2369
e01c7cca
JH
23702013-05-17 Jan Hubicka <jh@suse.cz>
2371
2372 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
2373 weakrefs.
2374 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
2375 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
2376 weakrefs.
e01c7cca
JH
2377 (output_weakrefs): Update.
2378
c3272a92
PCC
23792013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
2380 Martin Jambor <mjambor@suse.cz>
2381
2382 PR middle-end/57276
2383 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
2384 value that corresponds to the given aggval is found in values vector.
2385
11c2aa39
UB
23862013-05-17 Uros Bizjak <ubizjak@gmail.com>
2387
2388 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
2389 sse, sse2, sse3, ssse3 and sse4a flags to options.
2390
abecc8c6
DM
23912013-05-17 David Malcolm <dmalcolm@redhat.com>
2392
2393 * gengtype-state.c: (s_expr_writer): New class, to handle
2394 prettifying of output layout of s-expressions.
2395 (state_writer): New class, to write out gtype.state.
2396 (state_written_type_count): Move this variable into member data of
2397 state_writer.
2398 (s_expr_writer::s_expr_writer): New code: constructor for new class
2399 (state_writer::state_writer(): ditto
2400 (s_expr_writer::write_new_line): New function
2401 (s_expr_writer::write_any_indent): ditto
2402 (s_expr_writer::begin_s_expr): ditto
2403 (s_expr_writer::end_s_expr): ditto
2404 (write_state_fileloc): convert to method of state_writer...
2405 (state_writer:: write_state_fileloc): ...and use methods of
2406 s_expr_writer to write indentation into the gtype.state output file
2407 to visually represent the hierarchical structure of the list
2408 structures
2409 (write_state_fields): ditto, renaming to...
2410 (state_writer::write_state_fields)
2411 (write_state_a_string): ditto, renaming to...
2412 (state_writer::write_state_a_string)
2413 (write_state_string_option): ditto, renaming to...
2414 (state_writer::write_state_string_option)
2415 (write_state_type_option): ditto, renaming to...
2416 (state_writer::write_state_type_option)
2417 (write_state_nested_option): ditto, renaming to...
2418 (state_writer::write_state_nested_option)
2419 (write_state_option): ditto, renaming to...
2420 (state_writer::write_state_option)
2421 (write_state_options): ditto, renaming to...
2422 (state_writer::write_state_options)
2423 (write_state_lang_bitmap): ditto, renaming to...
2424 (state_writer::write_state_lang_bitmap)
2425 (write_state_version): ditto, renaming to...
2426 (state_writer::write_state_version)
2427 (write_state_scalar_type): ditto, renaming to...
2428 (state_writer::write_state_scalar_type)
2429 (write_state_string_type): ditto, renaming to...
2430 (state_writer::write_state_string_type)
2431 (write_state_undefined_type): ditto, renaming to...
2432 (state_writer::write_state_undefined_type)
2433 (write_state_struct_union_type): ditto, renaming to...
2434 (state_writer::write_state_struct_union_type)
2435 (write_state_struct_type): ditto, renaming to...
2436 (state_writer::write_state_struct_type)
2437 (write_state_user_struct_type): ditto, renaming to...
2438 (state_writer::write_state_user_struct_type)
2439 (write_state_lang_struct_type): ditto, renaming to...
2440 (state_writer::write_state_lang_struct_type)
2441 (write_state_param_struct_type): ditto, renaming to...
2442 (state_writer::write_state_param_struct_type)
2443 (write_state_pointer_type): ditto, renaming to...
2444 (state_writer::write_state_pointer_type)
2445 (write_state_array_type): ditto, renaming to...
2446 (state_writer::write_state_array_type)
2447 (write_state_gc_used): ditto, renaming to...
2448 (state_writer::write_state_gc_used)
2449 (write_state_common_type_content): ditto, renaming to...
2450 (state_writer::write_state_common_type_content)
2451 (write_state_type): ditto, renaming to...
2452 (state_writer::write_state_type)
2453 (write_state_pair_list): ditto, renaming to...
2454 (state_writer::write_state_pair_list)
2455 (write_state_pair): ditto, renaming to...
2456 (state_writer::write_state_pair)
2457 (write_state_typedefs): ditto, renaming to...
2458 (state_writer::write_state_typedefs)
2459 (write_state_structures): ditto, renaming to...
2460 (state_writer::write_state_structures)
2461 (write_state_param_structs): ditto, renaming to...
2462 (state_writer::write_state_param_structs)
2463 (write_state_variables): ditto, renaming to...
2464 (state_writer::write_state_variables)
2465 (write_state_srcdir): ditto, renaming to...
2466 (state_writer::write_state_srcdir)
2467 (write_state_files_list): ditto, renaming to...
2468 (state_writer::write_state_files_list)
2469 (write_state_languages): ditto, renaming to...
2470 (state_writer::write_state_languages)
2471 (write_state): create a state_writer instance and use it when
2472 writing out the state file
2473
d6545f29
MS
24742013-05-17 Mike Stump <mikestump@comcast.net>
2475
816a3f73 2476 PR rtl-optimization/57304
d6545f29
MS
2477 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
2478 accessing DF_REF_REAL_LOC.
2479
38c821cf
JJ
24802013-05-17 Jakub Jelinek <jakub@redhat.com>
2481
2482 PR rtl-optimization/57281
2483 PR rtl-optimization/57300
2484 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
2485 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
2486 what the other splitter did if the registers are dead.
2487
2a293391
RB
24882013-05-17 Richard Biener <rguenther@suse.de>
2489
2490 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
2491 MEM_REF offsets.
2492
17042d2b
JJ
24932013-05-17 Jakub Jelinek <jakub@redhat.com>
2494
2495 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
2496 linking.
2497
5b115c1f
MP
24982013-05-17 Marek Polacek <polacek@redhat.com>
2499
11c2aa39
UB
2500 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
2501 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 2502
52d84413
JJ
25032013-05-17 Jakub Jelinek <jakub@redhat.com>
2504
68119618
JJ
2505 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
2506 vect_external_def oprnd1 with loop_vinfo, try to emit
2507 optional cast, negation and and stmts on the loop preheader
2508 edge instead of into the pattern def seq.
2509
52d84413
JJ
2510 PR tree-optimization/57051
2511 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
2512 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
2513
17b962bd
NC
25142013-05-16 Nick Clifton <nickc@redhat.com>
2515
2516 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
2517 (rl78_is_naked_func): New function.
56aefbf7
UB
2518 (rl78_expand_prologue): Skip prologue generation for naked functions.
2519 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
2520 * doc/extend.texi (naked): Add RL78 to the list of processors
2521 that supports this attribute.
2522
b1a0f84e
JL
25232013-05-16 Jeff Law <law@redhat.com>
2524
2525 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
2526
af0e415b
UB
25272013-05-16 Uros Bizjak <ubizjak@gmail.com>
2528
2529 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
2530 cache parameters using detect_caches_amd also for CYRIX,
2531 NSC and TM2 signatures.
2532
19db293a
UB
25332013-05-16 Uros Bizjak <ubizjak@gmail.com>
2534 Dzianis Kahanovich <mahatma@eu.by>
2535
2536 PR target/45359
2537 PR target/46396
2538 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
2539 VIA/Centaur processors and determine their cache parameters
2540 using detect_caches_amd.
2541
251a41b9
TJ
25422013-05-16 Teresa Johnson <tejohnson@google.com>
2543
2544 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
2545 (rtl_verify_edges): New function.
2546 (rtl_verify_bb_insns): Ditto.
2547 (rtl_verify_bb_pointers): Ditto.
2548 (rtl_verify_bb_insn_chain): Ditto.
2549 (rtl_verify_fallthru): Ditto.
2550 (rtl_verify_bb_layout): Ditto.
2551 (rtl_verify_flow_info_1): Outline checks into new functions.
2552 (rtl_verify_flow_info): Ditto.
2553
f14540b6
SE
25542013-05-16 Steve Ellcey <sellcey@imgtec.com>
2555
2556 * cfghooks.c (copy_bbs): Add update_dominance argument.
2557 * cfghooks.h (copy_bbs): Update prototype.
2558 * tree-cfg.c (gimple_duplicate_sese_region):
2559 Add update_dominance argument.
2560 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
2561 * tree-ssa-loop-ch.c (copy_loop_headers): Update
2562 gimple_duplicate_sese_region call.
2563 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
2564 Update copy_bbs call.
2565 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
2566 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
2567
7e9a3abb
JJ
25682013-05-16 Jakub Jelinek <jakub@redhat.com>
2569
2570 * tree-vectorizer.h (NUM_PATTERNS): Increment.
2571 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
2572 vect_recog_rotate_pattern.
2573 (vect_recog_rotate_pattern): New function.
2574
427b248d
JM
25752013-05-16 Jason Merrill <jason@redhat.com>
2576
2577 * Makefile.in (LLINKER): New variable.
2578 (mostlyclean): Remove link mutex.
2579 * configure.ac: Handle --enable-link-mutex.
2580 * lock-and-run.sh: New script.
2581
b871e3d2
RR
25822013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2583
2584 PR target/19599
2585 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
2586 for NULL decl.
2587
ce858126
RO
25882013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2589
2590 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
2591
798d3d04
GY
25922013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
2593
2594 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
2595 * config/arm/arm.c (next_consecutive_mem): New function.
2596 (gen_movmem_ldrd_strd): Likewise.
2597 * config/arm/arm.md (movmemqi): Update condition and code.
2598 (unaligned_loaddi, unaligned_storedi): New patterns.
2599
0baddc45
RO
26002013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2601
2602 * config.gcc: Obsolete *-*-solaris2.9*.
2603 * doc/install.texi (Specific, *-*-solaris2*): Document it.
2604
aa9d5bcf
RB
26052013-05-16 Richard Biener <rguenther@suse.de>
2606
2607 * passes.c (init_optimization_passes): Move pass_parallelize_loops
2608 earlier, after GRAPHITE transforms and IV canonicalization.
2609
5a0f4dd3
JJ
26102013-05-16 Jakub Jelinek <jakub@redhat.com>
2611
2612 * omp-low.c (extract_omp_for_data): For collapsed loops,
2613 if at least one of the loops is known at compile time to
2614 iterate zero times, set count to 0.
2615 (expand_omp_regimplify_p): New function.
2616 (expand_omp_for_generic): For collapsed loops, if at least
2617 one of the loops isn't known to iterate at least once,
2618 add runtime check with setting count to 0.
2619 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
2620 For unsigned types if it isn't known at compile time that
2621 the loop will iterate at least once, add runtime check to bypass
2622 the whole loop if initial condition isn't true.
2623
e3753785
NS
26242013-05-16 Nathan Sidwell <nathan@codesourcery.com>
2625
2626 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
2627
43bb4dd1
MG
26282013-05-16 Marc Glisse <marc.glisse@inria.fr>
2629
2630 PR middle-end/57286
2631 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
2632 transformations to avoid an infinite loop.
2633
3571dde6
MP
26342013-05-16 Marek Polacek <polacek@redhat.com>
2635
2636 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
2637
b8b3f0ca
LE
26382013-05-15 Leif Ekblad <leif@rdos.net>
2639
2640 * config/i386/i386.c (ix86_decompose_address): Use
2641 DEFAULT_TLS_SEG_REG to access TLS segment register.
2642 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
2643 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
2644 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
2645
e299a383
RS
26462013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
2647
2648 PR target/57260
2649 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
2650 sibling calls to functions that would normally be lazily bound,
2651 unless $gp is call-clobbered.
2652
e7208ea3
UB
26532013-05-15 Uros Bizjak <ubizjak@gmail.com>
2654
19db293a 2655 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 2656 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
2657 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
2658 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
2659 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
2660 of TARGET_3DNOW.
2661 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
2662
e7413f3d
AS
26632013-05-15 Andreas Schwab <schwab@suse.de>
2664
2665 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
2666 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
2667 third operand.
2668
ad4db775
TJ
26692013-05-15 Teresa Johnson <tejohnson@google.com>
2670
2671 * loop-unroll.c (report_unroll_peel): Check decision before
2672 emitting unroll/peel message.
2673
af205f67
TJ
26742013-05-15 Teresa Johnson <tejohnson@google.com>
2675
2676 * function.h (has_bb_partition): New rtl_data flag.
2677 (bb_reorder_complete): Ditto.
2678 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
2679 instead of flag_reorder_blocks_and_partition.
2680 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
2681 with some enhancements.
2682 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
2683 * bb-reorder.c (connect_traces): Check for has_bb_partition
2684 instead of flag_reorder_blocks_and_partition.
2685 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
2686 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
2687 verify_hot_cold_block_grouping.
2688 (partition_hot_cold_basic_blocks): Set has_bb_partition.
2689
9adcfa3c
RR
26902013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2691
2692 PR target/19599
2693 * config/arm/predicates.md (call_insn_operand): New predicate.
2694 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
2695 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
2696 if insn is not a tail call.
2697 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
2698 registers.
2699 * config/arm/arm.h (enum reg_class): New caller save register class.
2700 (REG_CLASS_NAMES): Likewise.
2701 (REG_CLASS_CONTENTS): Likewise.
2702 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
2703 without decls.
2704
ccb3ad87
RB
27052013-05-15 Richard Biener <rguenther@suse.de>
2706
2707 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
2708 of MSG_OPTIMIZED_LOCATIONS.
2709 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
2710 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
2711 message.
2712 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
2713 of MSG_OPTIMIZED_LOCATIONS.
2714 (execute_vect_slp): Likewise.
2715 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
2716 (vect_create_cond_for_alias_checks): Likewise.
2717 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
2718 (vect_recog_widen_mult_pattern): Likewise.
2719 (vect_recog_widen_sum_pattern): Likewise.
2720 (vect_recog_over_widening_pattern): Likewise.
2721 (vect_recog_widen_shift_pattern): Likewise.
2722 (vect_recog_vector_vector_shift_pattern): Likewise.
2723 (vect_recog_divmod_pattern): Likewise.
2724 (vect_recog_mixed_size_cond_pattern): Likewise.
2725 (vect_recog_bool_pattern): Likewise.
2726 (vect_pattern_recog_1): Likewise.
2727
48b1474e
MJ
27282013-05-15 Martin Jambor <mjambor@suse.cz>
2729
2730 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
2731 non-functions to builtin_unreachable.
2732 * ipa-inline-transform.c (inline_call): Do not assert estimates were
2733 correct when new direct edges were discovered.
2734
9de04252
MJ
27352013-05-15 Martin Jambor <mjambor@suse.cz>
2736
2737 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
2738 header, print symbol order instead of node uid, print more information
2739 about indirect edge targets.
2740 (ipa_make_edge_direct_to_target): Print symbol order instead of node
2741 uids.
2742 (ipa_make_edge_direct_to_target): Likewise.
2743 (remove_described_reference): Likewise.
2744 (propagate_controlled_uses): Likewise.
2745 (ipa_print_node_params): Also print symbol order.
2746 (ipcp_transform_function): Print symbol order instead of node uids.
2747 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
2748 (cgraph_get_create_real_symbol_node): Likewise.
2749 * ipa-cp.c (print_lattice): Likewise.
2750 (print_all_lattices): Likewise.
2751 (determine_versionability): Likewise.
2752 (initialize_node_lattices): Likewise.
2753 (estimate_local_effects): Likewise.
2754 (update_profiling_info): Likewise.
2755 (create_specialized_node): Likewise.
2756 (perhaps_add_new_callers): Likewise.
2757 (decide_about_value): Likewise.
2758 (decide_whether_version_node): Likewise.
2759 (identify_dead_nodes): Likewise.
2760 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
2761 (dump_inline_summary): Likewise.
2762 (estimate_node_size_and_time): Likewise.
2763 (inline_analyze_function): Likewise.
2764 * ipa-inline.c (report_inline_failed_reason): Likewise.
2765 (want_early_inline_function_p): Likewise.
2766 (edge_badness): Likewise.
2767 (update_edge_key): Likewise.
2768 (inline_small_functions): Likewise. Add dumping of order to two other
2769 dumps.
2770 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
2771 instead of node uids.
2772 (propagate_pure_const): Likewise.
2773 (propagate_pure_const): Likewise.
2774 * ipa-utils.c (dump_cgraph_node_set): Likewise.
2775 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
2776 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
2777 of node uids.
2778 * tree-pretty-print.c (dump_function_header): Likewise.
2779 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
2780 Print symbol order instead of node uids.
2781
1dd03b91
AK
27822013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2783
2784 * config/s390/s390.c (s390_register_move_cost): Don't impose the
2785 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
2786
fdf6a7b9
RB
27872013-05-15 Richard Biener <rguenther@suse.de>
2788
2789 PR tree-optimization/57275
2790 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
2791 return value for fail to do runtime alias checks for gather loads.
2792
2d6e4603
JH
27932013-05-15 Jan Hubicka <jh@suse.cz>
2794
2795 PR lto/57038
2796 PR lto/47375
e7208ea3
UB
2797 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
2798 weakrefs are not external.
2799 (lto_symtab_merge_decls): Fix thinko when dealing with
2800 non-lto_symtab decls.
2d6e4603
JH
2801 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
2802 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
2803 * varpool.c (dump_varpool_node): Dump more flags.
2804
83f44b39
GG
28052013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2806
2807 * config/i386/i386.c (processor_alias_table): Add instruction
2808 FSGSBASE for AMD bdver3 architecture.
2809
2e55d062
JJ
28102013-05-14 Jakub Jelinek <jakub@redhat.com>
2811
2812 * tree.c (warn_deprecated_use): Print file:line using locus color.
2813 * diagnostic.c (diagnostic_report_current_module): Print file:line
2814 and file:line:column using locus color.
2815
0bfdb81e
MS
28162013-05-14 Mike Stump <mikestump@comcast.net>
2817
2818 * gdbinit.in: Add __null.
2819
a508ef22
MS
28202013-05-14 Mike Stump <mikestump@comcast.net>
2821
2822 * recog.h: Rename struct recog_data to Recog_data.
2823 * recog.c: Likewise.
2824 * reload.c (can_reload_into): Likewise.
2825 * config/picochip/picochip.c: Likewise.
2826
e7180acb
MS
28272013-05-14 Mike Stump <mikestump@comcast.net>
2828
2829 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
2830
61216c26
SB
28312013-05-14 Steven Bosscher <steven@gcc.gnu.org>
2832
fd6beed4
SB
2833 * resource.h (struct resources): Remove unch_memory member.
2834 (CLEAR_RESOURCE): Don't clear unch_memory.
2835 * resource.c (mark_referenced_resources): Don't set it.
2836 (mark_set_resources): Likewise.
2837 (mark_target_live_regs): Don't clear it.
2838 (init_resource_info): Likewise.
2839 * reorg.c (resource_conflicts_p): Don't compare it.
2840 (redundant_insn): Don't set it.
2841
61216c26
SB
2842 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
2843 Remove prototypes.
2844 * emit-rtl.c (next_label): Remove unused function.
2845 (skip_consecutive_labels, link_cc0_insns): Move to ...
2846 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
2847 only place where these functions are used, and make them static.
2848
418d1b87
MG
28492013-05-14 Marc Glisse <marc.glisse@inria.fr>
2850
2851 * fold-const.c (fold_negate_expr): Handle vectors.
2852 (fold_truth_not_expr): Make it static.
2853 (fold_invert_truthvalue): New static function.
2854 (invert_truthvalue_loc): Handle vectors. Do not call
2855 fold_truth_not_expr directly.
2856 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
2857 <TRUTH_NOT_EXPR>: Do not cast to boolean.
2858 (fold_comparison): Handle vector constants.
2859 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
2860 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
2861 * tree.h (fold_truth_not_expr): Remove declaration.
2862
fc21784d
JG
28632013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
2864
2865 * config/aarch64/aarch64-simd.md
2866 (aarch64_vcond_internal<mode>): Rename to...
2867 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
2868 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
2869 float modes. Clarify all iterator modes.
2870 (vcond<mode><mode>): Use new name for vcond expanders.
2871 (vcond<v_cmp_result><mode>): Likewise.
2872 (vcondu<mode><mode>: Likewise.
2873 * config/aarch64/iterators.md (VDQF_COND): New.
2874
d4c52634
MG
28752013-05-14 Marc Glisse <marc.glisse@inria.fr>
2876
2877 PR bootstrap/57266
2878 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
2879 variable for the shift amount. Check that we shift by non-negative
2880 amounts.
2881
2b261262
CLT
28822013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
2883
2884 PR target/42017
2885 * config/arm/arm.h (EPILOGUE_USES): Only return true
2886 for LR_REGNUM after epilogue_completed.
2887
6e022d7b
JR
28882013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
2889
2890 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 2891 is error_mark_node.
6e022d7b 2892
56cf7859
RO
28932013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2894
2895 PR target/57261
2896 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
2897 and Solaris 11+/x86 with gld.
2898 * configure: Regenerate.
2899
75776c6d
JJ
29002013-05-14 Jakub Jelinek <jakub@redhat.com>
2901
2902 * expmed.c (expand_shift_1): Canonicalize rotates by
2903 constant bitsize / 2 to bitsize - 1.
7f998021 2904 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
2905 case ROTATERT>: Likewise.
2906
2907 Revert:
2908 2013-05-10 Jakub Jelinek <jakub@redhat.com>
2909
2910 * config/i386/i386.md (rotateinv): New code attr.
2911 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
2912 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
2913 roll $31, %eax, etc.
2914
df35498a
RB
29152013-05-14 Richard Biener <rguenther@suse.de>
2916
2917 PR middle-end/57235
2918 * tree-eh.c (sink_clobbers): Give up for successors with
2919 multiple predecessors and no virtual uses.
2920
cc6e7ece
EB
29212013-05-14 Eric Botcazou <ebotcazou@adacore.com>
2922
2923 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
2924 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
2925
f778dd4d
JJ
29262013-05-14 Jakub Jelinek <jakub@redhat.com>
2927
2928 PR middle-end/57251
2929 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
2930 the case when both op0 and op1 have VOIDmode.
2931
bad4df9b
KP
29322013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
2933
2934 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
2935 in multiply-accumulate mode.
2936
56f3e9ac
GW
29372013-05-13 Guozhi Wei <carrot@google.com>
2938
2939 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
2940
a3d7ab92
KT
29412013-05-13 Kai Tietz <ktietz@redhat.com>
2942
2943 PR target/56975
2944 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 2945 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 2946 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 2947 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
2948 (ix86_expand_prologue): Likewise.
2949 (ix86_expand_split_stack_prologue): Likewise.
2950 (legitimate_pic_address_disp_p): Likewise.
2951 (legitimize_pic_address): Likewise.
2952 (legitimize_tls_address): Likewise.
2953 (legitimize_pe_coff_symbol): Likewise.
2954 (output_pic_addr_const): Likewise.
2955 (construct_plt_address): Likewise.
2956 (ix86_expand_call): Likewise.
2957 (x86_output_mi_thunk): Likewise.
2958 (x86_function_profiler): Likewise.
2959
c59b7e28
SN
29602013-05-13 Sofiane Naci <sofiane.naci@arm.com>
2961
2962 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
2963 similar switch cases.
2964 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
2965 (aarch64_simd_mov_to_<mode>low): Delete.
2966 (aarch64_simd_mov_to_<mode>high): Delete.
2967 (move_lo_quad_<mode>): Add w<-r alternative.
2968 (aarch64_simd_move_hi_quad_<mode>): Likewise.
2969 (aarch64_simd_mov_from_*): Update type attribute.
2970 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
2971 statement.
2972
5f28524a
JH
29732013-05-13 Jan Hubicka <jh@suse.cz>
2974
2975 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
2976 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
2977 ix86_expand_epilogue, emit_i387_cw_initialization,
2978 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
2979 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 2980
ae6fa899
JJ
29812013-05-13 Jakub Jelinek <jakub@redhat.com>
2982
2983 PR tree-optimization/45216
2984 PR tree-optimization/57157
2985 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
2986 the (-Y) & (B - 1) variant if OP is |.
2987 * expmed.c (expand_shift_1): For rotations by const0_rtx just
2988 return shifted. Use (-op1) & (prec - 1) as other_amount
2989 instead of prec - op1.
2990
4502fe8d
MJ
29912013-05-13 Martin Jambor <mjambor@suse.cz>
2992
2993 PR middle-end/42371
2994 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
2995 (ipa_constant_data): New type.
2996 (ipa_jump_func): Use ipa_constant_data to hold information about
2997 constant jump functions.
2998 (ipa_get_jf_constant): Adjust to jump function type changes.
2999 (ipa_get_jf_constant_rdesc): New function.
3000 (ipa_param_descriptor): New field controlled_uses.
3001 (ipa_get_controlled_uses): New function.
3002 (ipa_set_controlled_uses): Likewise.
3003 * ipa-ref.h (ipa_find_reference): Declare.
3004 * ipa-prop.c (ipa_cst_ref_desc): New type.
3005 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
3006 changes.
3007 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
3008 New parameter cs. Adjust all callers.
3009 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
3010 (remove_described_reference): New function.
3011 (jfunc_rdesc_usable): Likewise.
3012 (try_make_edge_direct_simple_call): Decrement controlled use count,
3013 attempt to remove reference if it hits zero.
3014 (combine_controlled_uses_counters): New function.
3015 (propagate_controlled_uses): Likewise.
3016 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
3017 (ipa_edge_duplication_hook): Duplicate reference descriptions.
3018 (ipa_print_node_params): Print described use counter.
3019 (ipa_write_jump_function): Adjust to jump function type changes.
3020 (ipa_read_jump_function): New parameter CS, pass it to
3021 ipa_set_jf_constant. Adjust caller.
3022 (ipa_write_node_info): Stream controlled use count
3023 (ipa_read_node_info): Likewise.
3024 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
3025 asserting.
3026 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
3027 count. Remove cloning-added reference if it reaches zero.
3028 * ipa-ref.c (ipa_find_reference): New function.
3029
0864bfc2
GG
30302013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
3031
e7208ea3 3032 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
3033 alignment values for AMD BD and BT architectures.
3034
640bfeb2
MG
30352013-05-13 Marc Glisse <marc.glisse@inria.fr>
3036
3037 * tree-vect-generic.c (uniform_vector_p): Move ...
3038 * tree.c (uniform_vector_p): ... here.
3039 * tree.h (uniform_vector_p): Declare it.
3040 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
3041 into a scalar.
3042
3a60f32b
JJ
30432013-05-13 Jakub Jelinek <jakub@redhat.com>
3044
198fe1bf
JJ
3045 PR tree-optimization/57230
3046 * tree-ssa-strlen.c (handle_char_store): Record length for
3047 array store from STRING_CST.
3048
3a60f32b
JJ
3049 PR tree-optimization/57230
3050 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
3051 check.
3052
566be57c
JR
30532013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
3054
3055 * config/epiphany/epiphany.c (epiphany_init): Check size of
3056 NUM_MODES_FOR_MODE_SWITCHING.
3057 (epiphany_expand_prologue):
3058 Remove CONFIG_REGNUM initial value handling code.
3059 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
3060 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 3061 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
3062 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
3063 Don't return 1 for FP_MODE_NONE.
3064 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
3065 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
3066 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
3067 * config/epiphany/epiphany.md (save_config): New pattern.
3068
0f2c2331
UB
30692013-05-12 Uros Bizjak <ubizjak@gmail.com>
3070
3071 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
3072
5b3f93c7
UB
30732013-05-10 Uros Bizjak <ubizjak@gmail.com>
3074
3075 * config/i386/i386.md (memory): Handle sseishft1.
3076 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
3077 (*vec_extractv2di_1): Ditto.
3078
1f873f0e
VM
30792013-05-10 Vladimir Makarov <vmakarov@redhat.com>
3080
3081 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
3082 saved registers.
3083
341427fa 30842013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
3085
3086 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
3087 Add mthumb/march=armv7-a multilib.
3088 Add mthumb/march=armv7-r multilib.
3089 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
3090
9e69bdde
RC
30912013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
3092
3093 * config/v850/t-rtems: Add more multilibs.
3094
9ff09a22
RB
30952013-05-10 Richard Biener <rguenther@suse.de>
3096
3097 PR tree-optimization/57214
3098 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
3099 not propagate from SSA names that occur in abnormal PHI nodes.
3100
a5e0cd1d
MG
31012013-05-10 Marc Glisse <marc.glisse@inria.fr>
3102
3103 * stor-layout.c (element_precision): New function.
3104 * machmode.h (element_precision): Declare it.
3105 * tree.c (build_minus_one_cst): New function.
3106 (element_precision): Likewise.
3107 * tree.h (build_minus_one_cst): Declare new function.
3108 (element_precision): Likewise.
3109 * fold-const.c (operand_equal_p): Use element_precision.
3110 (fold_binary_loc): Handle vector types.
3111 * convert.c (convert_to_integer): Use element_precision.
3112 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
3113 separately.
3114
cb2558bc
RS
31152013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
3116
3117 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
3118 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
3119 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
3120 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
3121 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
3122 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
3123 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
3124 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
3125 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
3126 (Uuw8): New constraints.
3127 (Usb4): Move into alphabetical order.
3128 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
3129 (sd8_operand, ub8_operand, uw8_operand): New predicates.
3130 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
3131 previously unnamed patterns.
3132 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
3133 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
3134 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
3135 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
3136 of set_attr_alternative/if_then_else. Use extended_mips16 instead
3137 of specific lengths.
3138
cb3b8d33
JJ
31392013-05-10 Jakub Jelinek <jakub@redhat.com>
3140
6f93c008
JJ
3141 * config/i386/i386.md (rotateinv): New code attr.
3142 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
3143 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
3144 roll $31, %eax, etc.
3145
cb3b8d33
JJ
3146 PR tree-optimization/45216
3147 PR tree-optimization/57157
3148 * tree-ssa-forwprop.c (simplify_rotate): New function.
3149 (ssa_forward_propagate_and_combine): Call it.
3150
afb119be
RB
31512013-05-10 Richard Biener <rguenther@suse.de>
3152
3153 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
3154 disable peeling when we version for aliasing.
3155 (vector_alignment_reachable_p): Honor explicit user alignment.
3156 (vect_supportable_dr_alignment): Likewise.
3157 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
3158 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
3159 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
3160 then peeling to arrange for the cost-model check to come first.
3161
01ae4861
AM
31622013-05-10 Alan Modra <amodra@gmail.com>
3163
3164 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
3165 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
3166 * configure: Regenerate.
3167
ebc9a431
AM
31682013-05-10 Alan Modra <amodra@gmail.com>
3169
3170 PR target/55033
3171 * varasm.c (default_elf_select_section): Move !DECL_P check..
3172 (get_named_section): ..to here before calling get_section_name.
3173 Adjust assertion.
3174 (default_section_type_flags): Add DECL_P check.
3175 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
3176 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
3177
d4bca93c
JR
31782013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
3179
3180 * config/epiphany/epiphany.c (epiphany_expand_prologue):
3181 When using gen_stack_adjust_str with a register offset, add a
3182 REG_FRAME_RELATED_EXPR note.
3183
60ca9a65
UB
31842013-05-09 Uros Bizjak <ubizjak@gmail.com>
3185
3186 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
3187 (*vec_extractv4si_zext_mem): Ditto.
3188 (*vec_extractv2di): Add 0->x and x->x alternatives.
3189 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
3190 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
3191
a3409c02
JM
31922013-05-09 Jason Merrill <jason@redhat.com>
3193
0138d6b2
JM
3194 N3639 C++1y VLA support
3195 * gimplify.c (gimplify_vla_decl): Don't touch an existing
3196 DECL_VALUE_EXPR.
3197
a3409c02
JM
3198 * tree.c (build_constructor_va): New.
3199 * tree.h: Declare it.
3200
66e6b990
MJ
32012013-05-09 Martin Jambor <mjambor@suse.cz>
3202
3203 PR lto/57084
3204 * gimple-fold.c (canonicalize_constructor_val): Call
3205 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
3206
64cfa6c0
JH
32072013-05-09 Jan Hubicka <jh@suse.cz>
3208 Richard Biener <rguenther@suse.de>
3209
3210 PR lto/54095
3211 * symtab.c (symtab_make_decl_local): Do not add private names.
3212
c3167b00
JH
32132013-05-09 Jan Hubicka <jh@suse.cz>
3214
3215 PR lto/54095
3216 * symtab.c (insert_to_assembler_name_hash): Handle clones.
3217 (unlink_from_assembler_name_hash): Likewise.
3218 (symtab_prevail_in_asm_name_hash, symtab_register_node,
3219 symtab_unregister_node, symtab_initialize_asm_name_hash,
3220 change_decl_assembler_name): Update.
3221
12dc6974
SN
32222013-05-09 Sofiane Naci <sofiane.naci@arm.com>
3223
3224 * config/aarch64/aarch64.md: New movtf split.
3225 (*movtf_aarch64): Update.
3226 (aarch64_movdi_tilow): Handle TF modes and rename to
3227 aarch64_movdi_<mode>low.
3228 (aarch64_movdi_tihigh): Handle TF modes and rename to
3229 aarch64_movdi_<mode>high
3230 (aarch64_movtihigh_di): Handle TF modes and rename to
3231 aarch64_mov<mode>high_di
3232 (aarch64_movtilow_di): Handle TF modes and rename to
3233 aarch64_mov<mode>low_di
3234 (aarch64_movtilow_tilow): Remove spurious whitespace.
3235 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
3236 splits.
3237 (aarch64_print_operand): Update.
3238
227eb343
AM
32392013-05-09 Alan Modra <amodra@gmail.com>
3240
3241 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
3242 powerpc64le.
3243 * configure: Regenerate.
3244
0b013847
UB
32452013-05-08 Uros Bizjak <ubizjak@gmail.com>
3246
3247 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
3248 splitter preparation statements.
3249 * config/i386/sse.md (*vec_extract* splitters): Ditto.
3250 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
3251 adjust_address_nv.
3252
1dc3d6e9
BS
32532013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3254
3255 * gimple-ssa-strength-reduction.c (count_candidates): Change
3256 return value to int.
3257 (analyze_candidates_and_replace): Change type of length to int.
3258
e61e7d28
UB
32592013-05-08 Uros Bizjak <ubizjak@gmail.com>
3260
3261 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
3262 (*vec_extract<mode>): Use VI12_128 mode iterator.
3263 (*vec_extract<mode>_mem): Ditto.
3264 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
3265 attribute.
3266
4fbfcf44
DN
32672013-05-08 Diego Novillo <dnovillo@google.com>
3268
3269 PR bootstrap/54659
3270
3271 Revert:
4fbfcf44
DN
3272 2012-08-17 Diego Novillo <dnovillo@google.com>
3273
e61e7d28
UB
3274 PR bootstrap/54281
3275 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
3276 * config.in: Regenerate.
3277 * configure: Regenerate.
3278 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 3279
702d8703
JH
32802013-05-08 Jan Hubicka <jh@suse.cz>
3281
3282 PR lto/54095
3283 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
3284 * cgraph.h (symtab_node_base): Add unique_name.
3285 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
3286 input_overwrite_node, input_varpool_node): Stream unique_name.
3287 * cgraphclones.c (cgraph_create_virtual_clone,
3288 cgraph_function_versioning): Set unique_name.
3289 * ipa.c (function_and_variable_visibility): Set unique_name.
3290
8b28cf47
BS
32912013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3292
3293 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
3294 (alloc_cand_and_find_basis): Restrict conditional candidate
3295 processing to CAND_MULTs.
3296
e86074fd
JH
32972013-05-08 Jan Hubicka <jh@suse.cz>
3298
3299 PR lto/54095
3300 lto-symtab.c (lto_symtab_symbol_p): New function.
3301 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
3302 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
3303 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
3304 Skip static symbols.
3305
44398cbe
PC
33062013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
3307
3308 PR tree-optimization/57200
3309 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
3310 Only call inform if the preceding warning_at returns true.
3311
f6bc1c4a
HS
33122013-05-07 Han Shen <shenhan@google.com>
3313
3314 * cfgexpand.c (record_or_union_type_has_array_p): New function.
3315 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
3316 * common.opt (fstack-protector-strong): New option.
3317 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
3318 * doc/invoke.texi (Optimization Options): Document
3319 "-fstack-protector-strong".
3320 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
3321
4ffecb1f
SB
33222013-05-06 Steven Bosscher <steven@gcc.gnu.org>
3323
3324 * config/mips/mips.c (mips_machine_reorg2): Return 0.
3325
5a107a0f
VM
33262013-05-07 Vladimir Makarov <vmakarov@redhat.com>
3327
3328 * ira.c (update_equiv_regs): Add insn having equiv memory even if
3329 it is not lhs of the insn.
3330 (setup_reg_equiv): Remove insn having equiv memory which it is not
3331 lhs of the insn.
3332 * lra-constraints.c (process_address): Try to improve generation
3333 code for address base + disp.
3334 (lra_constraints): Make correct the code for checking insn setting
3335 up backward equivalence. Remove insn only if it is in the init
3336 insn list.
3337 * lra-eliminations.c (update_reg_eliminate): Change return value.
3338 (lra_eliminate): Use the result.
3339
3f5783ea
UB
33402013-05-07 Uros Bizjak <ubizjak@gmail.com>
3341
3342 * config/i386/sse.md (ssescalarnummask): New mode attribute.
3343 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
3344 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
3345 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
3346 register target operands.
3347 (*vec_extractv8hi_sse2): New pattern.
3348 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
3349 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
3350 (*vec_extract<mode>_mem): New insn and split pattern.
3351
8a5800b8
CL
33522013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
3353
3354 * config/arm/arm.c (arm_asan_shadow_offset): New function.
3355 (TARGET_ASAN_SHADOW_OFFSET): Define.
3356 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
3357 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
3358
7bf55a70
BS
33592013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3360
3361 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
3362 (incr_vec_index): Return -1 if increment not found.
3363 (create_add_on_incoming_edge): Assert if increment not found.
3364 (record_increment): Limit number of increments recorded.
3365 (all_phi_incrs_profitable): Return false if an increment not found.
3366 (replace_profitable_candidates): Don't process increments that were
3367 not recorded.
3368 (analyze_candidates_and_replace): Limit size of incr_vec.
3369
3f8825c0
RB
33702013-05-07 Richard Biener <rguenther@suse.de>
3371
3372 * calls.c (special_function_p): setjmp-like functions are leaf.
3373 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
3374 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
3375
fd4842cd
SN
33762013-05-07 Sofiane Naci <sofiane.naci@arm.com>
3377
3378 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
3379 (aarch64_simd_mov<mode>): New expander.
3380 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
3381 (aarch64_simd_mov_to_<mode>high): Likewise.
3382 (aarch64_simd_mov_from_<mode>low): Likewise.
3383 (aarch64_simd_mov_from_<mode>high): Likewise.
3384 (aarch64_dup_lane<mode>): Update.
3385 (aarch64_dup_lanedi): New instruction pattern.
3386 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
3387 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
3388
a7a7d10e
BS
33892013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3390
3391 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
3392 (replace_mult_candidate): Remove unnecessary argument; remove
3393 unnecessary parameter from call to introduce_cast_before_cand.
3394 (replace_unconditional_candidate): Remove unnecessary parameter
3395 from call to replace_mult_candidate.
3396 (replace_conditional_candidate): Likewise.
3397 (insert_initializers): Use make_temp_ssa_name.
3398 (introduce_cast_before_cand): Remove unnecessary argument; use
3399 make_temp_ssa_name.
3400 (replace_one_candidate): Remove unnecessary argument; remove
3401 unnecessary parameter from calls to introduce_cast_before_cand.
3402 (replace_profitable_candidates): Remove unnecessary parameters
3403 from calls to replace_one_candidate.
3404
29105868
BS
34052013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3406
3407 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
3408 phi def as possibly hiding a basis for a CAND_ADD whose operands
3409 have been commuted in the analysis.
3410 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
3411
4095f9fa
N
34122013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
3413
3414 * config/aarch64/aarch64.md
3415 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
3416 shift value between 0-4.
3417
39e843e8
RB
34182013-05-07 Richard Biener <rguenther@suse.de>
3419
3420 * double-int.h (rshift): New overload.
3421 * double-int.c (rshift): New function.
3422 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
3423 (create_reference_ops_from_ref): Remove.
3424 (vn_reference_insert): Use shared ops for constructing the
3425 reference and copy it.
3426
0a1a83cb
RB
34272013-05-07 Richard Biener <rguenther@suse.de>
3428
3429 PR middle-end/57190
3430 * tree-eh.c (sink_clobbers): Properly propagate
3431 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
3432
43303d6f
JJ
34332013-05-07 Jakub Jelinek <jakub@redhat.com>
3434
ba7e83f8
JJ
3435 PR tree-optimization/57149
3436 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
3437 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
3438 collect_phi_def_edges, execute_late_warn_uninitialized): Use
3439 uninit_undefined_value_p instead of ssa_undefined_value_p.
3440
43303d6f
JJ
3441 PR debug/57184
3442 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
3443 for modifier == EXPAND_INITIALIZER.
3444
14523c25
AB
34452013-05-07 Anton Blanchard <anton@samba.org>
3446
3447 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
3448 for powerpc64 little endian.
3449 * configure: Regenerate.
3450
cb7c8be9
GS
34512013-05-06 Graham Stott <grahams@btinternet.com>
3452
3453 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
3454 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
3455 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
3456 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
3457
34582013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
3459
3460 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
3461 codes which allow non-lvalues.
3462
9a0ee7b0
MG
34632013-05-06 Marc Glisse <marc.glisse@inria.fr>
3464
3465 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
3466 components are all 1s.
3467 (integer_minus_onep): New function.
3468 * tree.h (integer_minus_onep): Declare it.
3469 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
3470 integer_minus_onep instead of integer_all_onesp.
3471
f2c17ea9
OE
34722013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3473
3474 PR target/52933
3475 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
3476 variations of these patterns.
3477
f75e6a51
UB
34782013-05-06 Uros Bizjak <ubizjak@gmail.com>
3479
3480 * config/i386/i386.md (isa): Add x64_sse4 member.
3481 (enabled): Handle x64_sse4.
3482 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
3483 instruction for 64bit SSE4_1 targets. Update insn attributes.
3484 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
3485 instruction for SSE4_1 targets. Update insn attributes.
3486 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
3487 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
3488 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
3489 const_1 selector.
3490 (*vec_extractv4si): Rename from *sse4_1_pextrd.
3491 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
3492 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
3493
a986d468
OE
34942013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3495
3496 PR target/57108
3497 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
3498
382522cb
MK
34992013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
3500
3501 * final.c (do_assembler_dialects): Don't handle curly braces and
3502 vertical bar escaped by % as dialect delimiters.
3503 (output_asm_insn): Print curly braces and vertical bar if escaped
3504 by % and ASSEMBLER_DIALECT defined.
3505 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
3506 * doc/tm.texi: Regenerated.
3507
fb0d5c60
SB
35082013-05-06 Steven Bosscher <steven@gcc.gnu.org>
3509
fb0d5c60
SB
3510 * config/mips/mips.c: Include tree-pass.h.
3511 (mips_reorg): Split in pre- and post-dbr_schedule parts.
3512 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
3513 (pass_mips_machine_reorg2): New machine specific pass.
3514 (insert_pass_mips_machine_reorg2): New pass plugin definition.
3515 (mips_option_override): Register the new pass.
3516 * rtl.h (cleanup_barriers): Remove prototype.
3517 (dbr_schedule): Likewise.
3518 * jump.c (cleanup_barriers): Make static.
3519 * reorg.c (dbr_schedule): Likewise.
3520
aa06a978
RB
35212013-05-06 Richard Biener <rguenther@suse.de>
3522
3523 PR tree-optimization/57185
3524 * tree-parloops.c (add_field_for_reduction): Handle anonymous
3525 SSA names properly.
3526
0b953bec
UB
35272013-05-06 Uros Bizjak <ubizjak@gmail.com>
3528
3529 PR target/57106
3530 * config/i386/i386.c (add_parameter_dependencies): Add dependence
3531 between "first_arg" and "insn", not "last" and "insn".
3532
28708525
WS
35332013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3534
3535 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
3536 (find_candidates_in_block): Re-enable slsr_process_phi.
3537 (create_phi_basis): Fix double counting of candidate adjustment.
3538
0107dca2
RB
35392013-05-06 Richard Biener <rguenther@suse.de>
3540
3541 PR middle-end/57147
3542 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
3543 the edge is also fallthru, preserve it and just clear the
3544 abnormal flag.
3545 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
3546 also complex, preserve that and just clear the fallthru flag.
3547 * tree-inline.c (update_ssa_across_abnormal_edges): Also
3548 update virtual operands.
3549
470d4d13
AM
35502013-05-06 Alan Modra <amodra@gmail.com>
3551
3552 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
3553 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
3554 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
3555 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
3556 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
3557 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
3558
8f1dbf8d
AM
35592013-05-06 Alan Modra <amodra@gmail.com>
3560
3561 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
3562 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
3563 (DEFAULT_ASM_ENDIAN): Define.
3564 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
3565 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
3566 Update -K PIC clause from sysv4.h.
3567 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
3568 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
3569
54890767
AM
35702013-05-06 Alan Modra <amodra@gmail.com>
3571
3572 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
3573 twice for little-endian.
3574 (ashrdi3_no_power, ashrdi3): Support little-endian.
3575
2353515d
OE
35762013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3577
3578 PR target/55303
3579 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
3580 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
3581 related expanders.
3582 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
3583 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
3584 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
3585 New predicates.
3586
33e67557
SB
35872013-05-05 Steven Bosscher <steven@gcc.gnu.org>
3588 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3589
3590 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
3591 * config/pa/pa.opt: Make mbig-switch a no-op.
3592 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
3593 (CASE_VECTOR_MODE): Always return SImode.
3594 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
3595 for the !TARGET_BIG_SWITCH case.
3596 * config/pa/pa-linux.h: Likewise.
3597 * config/pa/pa-openbsd.h: Likewise.
3598 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
3599 * config/pa/pa.md (short_jump): Remove define_insn.
3600 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
3601 (casesi0): Remove define_insn.
3602 (type): Remove btable_branch.
3603 (pa_combine_type): Likewise.
3604 (in_nullified_branch_delay): Likewise.
3605 (in_call_delay): Likewise.
3606 (define_delay): Likewise.
3607 (define_insn_reservation "Z3"): Likewise.
3608 (define_insn_reservation "Z4"): Likewise.
3609 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
3610 (pa_adjust_insn_length): Remove adjustment for btable branches.
3611 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
3612 and mno-big-switch
3613
3095685e
UB
36142013-05-05 Uros Bizjak <ubizjak@gmail.com>
3615
3616 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
3617 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
3618 Add m->r,x alternatives.
3619 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
3620 splitters using SWI48x mode iterator.
3621 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
3622 TARGET_64BIT. Add m->x alternative.
3623 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
3624 Add o->x alternative. Enable for TARGET_SSE.
3625 (sse_storeq): Remove expander.
3626 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
3627 with memory input operand.
3628 (*vec_extractv2di_1 splitter): New.
3629 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
3630 * config/i386/i386.md (ssevecmodelower): New mode attribute.
3631
4b36ae28
SB
36322013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
3633
3634 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
3635 (INT_LOWPART): Delete.
3636 (extract_MB): Adjust.
3637 (extract_ME): Adjust.
3638 (print_operand): Adjust.
3639
da226db2
SB
36402013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
3641
3642 * config/rs6000/predicates.md (reg_or_add_cint_operand,
3643 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
3644 (reg_or_logical_cint_operand, easy_fp_constant,
3645 logical_const_operand): Delete "CONST_DOUBLE" case.
3646 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
3647 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 3648 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
3649 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
3650 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
3651 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
3652 test.
3653 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
3654 CONST_DOUBLE DImode/VOIDmode case.
3655 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
3656 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
3657 CONST_DOUBLE VOIDmode case.
3658 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
3659 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
3660 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
3661 Delete CONST_DOUBLE case.
3662 (splitters for mov FMOVE64 const_double): Delete
3663 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
3664 "HOST_BITS_PER_WIDE_INT >= 64" test.
3665 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
3666 case.
3667 (mov DI const_double): Delete.
3668
40de22d6
JJ
36692013-05-04 Jakub Jelinek <jakub@redhat.com>
3670
3671 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
3672 on op shows all bits zero in mode of a lowpart subreg, return zero.
3673
5ec6aff2
MM
36742013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
3675
3676 PR target/57150
3677 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
3678 to save TFmode registers and DImode to save TImode registers for
3679 caller save operations.
3680 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
3681 mark being partially clobbered since they only use the first
3682 double word.
3683
3684 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
3685 and TDmode only use the upper 64-bits of each VSX register.
3686
2cefad90
BS
36872013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3688
3689 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
3690 (find_candidates_in_block): Disable slsr_process_phi.
3691
d6d7eee1
GW
36922013-05-03 Guozhi Wei <carrot@google.com>
3693
3694 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
3695 constructor to ...
3696 (build_init_ctor): ... here.
d6d7eee1 3697
9b92d12b
BS
36982013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3699
3700 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
3701 (slsr_cand_d): Redefine def_phi.
3702 (stride_status, phi_adjust_status, count_phis_status): New enums.
3703 (find_phi_def): New.
3704 (find_basis_for_base_expr): New.
3705 (find_basis_for_candidate): Handle hidden bases.
3706 (alloc_cand_and_find_basis): Handle phi candidates.
3707 (slsr_process_phi): New.
3708 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
3709 (create_mul_imm_cand): Likewise.
3710 (create_add_ssa_cand): Exclude phi base candidates.
3711 (create_add_imm_cand): Likewise.
3712 (slsr_process_cast): Likewise.
3713 (slsr_process_copy): Likewise.
3714 (find_candidates_in_block): Handle phi candidates.
3715 (dump_candidate): Likewise.
3716 (unconditional_cands): Delete.
3717 (unconditional_cands_with_known_stride_p): Delete.
3718 (phi_dependent_cand_p): New.
3719 (cand_increment): Handle phi-dependent candidates.
3720 (replace_dependent): Delete.
3721 (replace_mult_candidate): New.
3722 (replace_unconditional_candidate): New.
3723 (incr_vec_index): Move to avoid forward reference.
3724 (create_add_on_incoming_edge): New.
3725 (create_phi_basis): New.
3726 (replace_dependents): Delete.
3727 (replace_conditional_candidate): New.
3728 (phi_add_costs): New.
3729 (replace_uncond_cands_and_profitable_phis): New.
3730 (record_increment): Handle phi adjustments.
3731 (record_phi_increments): New.
3732 (record_increments): Handle phi adjustments.
3733 (phi_incr_cost): New.
3734 (lowest_cost_path): Handle phis.
3735 (total_savings): Likewise.
3736 (analyze_increments): Likewise.
3737 (ncd_with_phi): New.
3738 (ncd_of_cand_and_phis): New.
3739 (nearest_common_dominator_for_cands): Handle phi increments.
3740 (all_phi_incrs_profitable): New.
3741 (replace_profitable_candidates): Handle phi-dependent candidates.
3742 (analyze_candidates_and_replace): Likewise.
3743
68f073d4
TJ
37442013-05-03 Teresa Johnson <tejohnson@google.com>
3745
3746 PR bootstrap/57154
3747 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
3748 do not exceed REG_BR_PROB_BASE.
3749
a4ee7cb9
JL
37502013-05-03 Jeff Law <law@redhat.com>
3751
ade67f70 3752 PR tree-optimization/57144
a4ee7cb9
JL
3753 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
3754 operand of the condition will bit into the new type when eliminating
3755 a cast feeding a condition.
3756
47954c4e
JJ
37572013-05-03 Jakub Jelinek <jakub@redhat.com>
3758
3759 PR rtl-optimization/57130
3095685e
UB
3760 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
3761 of COMPARE as in_code to the recursive call if needed.
47954c4e 3762
3c21604f
UB
37632013-05-03 Uros Bizjak <ubizjak@gmail.com>
3764
3765 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
3766 (enabled): Handle new members.
3767 * config/i386/sse.md (*vec_concatv2si): Merge from
3768 *vec_concatv2si_sse2 and vec_concatv2si_sse.
3769 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
3770
95c03b36
JR
37712013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
3772
3773 PR tree-optimization/57027
3774 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
3775 for fnms opportunity, check we got the prerequisite kind
3776 of tree / gimple before using accessor functions.
3777
07bfc9ec
RB
37782013-05-03 Richard Biener <rguenther@suse.de>
3779
3780 * double-int.h (lshift): New overload without precision
3781 and arith argument.
3782 (operator *=, operator +=, operator -=): Move ...
3783 * double-int.c (operator *=, operator +=, operator -=): ... here
3784 and implement more efficiently.
3785 (mul_double_with_sign): Remove.
3786 (lshift_double): Adjust to take unsinged shift argument, push
3787 dispatching code to callers.
3788 (mul_double_wide_with_sign): Add early out for callers that
3789 are not interested in high parts or overflow.
3790 (lshift): New function.
3791 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
3792 dispatch code here.
3793 (lrotate, rrotate): Use logical shifts.
3794 * expr.c (get_inner_reference): Use lshift.
3795 * fixed-value.c (do_fixed_divide): Likewise.
3796 * tree-dfa.c (get_ref_base_and_extent): Likewise.
3797 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
3798 (indirect_refs_may_alias_p): Likewise.
3799 (stmt_kills_ref_p_1): Likewise.
3800
7769bb64
VP
38012013-05-03 Vidya Praveen <vidyapraveen@arm.com>
3802
3803 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
3804
1d0c8e5c
VP
38052013-05-03 Vidya Praveen <vidyapraveen@arm.com>
3806
3807 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
3808 scalar form of FABD instruction.
3809
f15feaf9
VM
38102013-05-02 Vladimir Makarov <vmakarov@redhat.com>
3811
3812 * lra-constraints.c (process_alt_operands): Add checking alt
3813 number to choose the best alternative.
3814
d90e76d4
RB
38152013-05-02 Richard Biener <rguenther@suse.de>
3816
3817 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
3818 bitmap and its handling.
3819 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
3820
9f8e7a96
RB
38212013-05-02 Richard Biener <rguenther@suse.de>
3822
3823 PR middle-end/57140
3824 * tree-inline.c (copy_loops): Properly handle removed loops.
3825 (copy_cfg_body): Mark destination loops for fixup if source
3826 loops needed fixup.
3827
f3a81b39
GY
38282013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
3829
3830 PR target/56732
3831 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
3832 generating simple_return for naked functions.
3833
7b920a9a
MJ
38342013-05-02 Martin Jambor <mjambor@suse.cz>
3835
3836 PR middle-end/56988
3837 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
3838 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
3839 flags match.
3840 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
3841 ipa_agg_replacement_value structures.
3842 (known_aggs_to_agg_replacement_list): Likewise.
3843 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
3844 (read_agg_replacement_chain): Likewise.
3845 (ipcp_transform_function): Also check that by_ref flags match.
3846
2c41c19d
RB
38472013-05-02 Richard Biener <rguenther@suse.de>
3848
3849 * graphds.h (struct graph): Add obstack member.
3850 * graphds.c (new_graph): Initialize obstack and allocate
3851 vertices from it.
3852 (add_edge): Allocate edge from the obstack.
3c21604f 3853 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 3854
8b47039c
TJ
38552013-05-02 Teresa Johnson <tejohnson@google.com>
3856
3857 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
3858 divides.
3859 * cfg.c (update_bb_profile_for_threading): Ditto.
3860 * tree-inline.c (copy_bb): Ditto.
3861 (copy_edges_for_bb): Ditto.
3862 (initialize_cfun): Ditto.
3863 (copy_cfg_body): Ditto.
3864 (expand_call_inline): Ditto.
3865 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
3866 (estimate_node_size_and_time): Ditto.
3867 (inline_merge_summary): Ditto.
3868 * cgraphclones.c (cgraph_clone_edge): Ditto.
3869 (cgraph_clone_node): Ditto.
3870 * sched-rgn.c (compute_dom_prob_ps): Ditto.
3871 (compute_trg_info): Ditto.
3872
da65928c
IB
38732013-05-02 Ian Bolton <ian.bolton@arm.com>
3874
3875 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
3876 S reg when fp attribute set.
3877 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
3878
add3c965
IB
38792013-05-02 Ian Bolton <ian.bolton@arm.com>
3880
3881 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
3882 New pattern.
3883 (*and_one_cmplsi3_compare0_uxtw): Likewise.
3884 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
3885 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
3886
fdd43ac4
RB
38872013-05-02 Richard Biener <rguenther@suse.de>
3888
3889 * tree-scalar-evolution.c (scev_info_hasher): Remove.
3890 (struct instantiate_cache_entry): New type.
3891 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
3892 (struct instantiate_cache_type): New type.
3893 (set_instantiated_value, get_instantiated_value): Remove.
3894 (get_instantiated_value_entry): New function.
3895 (instantiate_scev_name): Use the new cache and adjust.
3896 (instantiate_scev_poly): Adjust.
3897 (instantiate_scev_binary): Likewise.
3898 (instantiate_array_ref): Likewise.
3899 (instantiate_scev_convert): Likewise.
3900 (instantiate_scev_not): Likewise.
3901 (instantiate_scev_3): Likewise.
3902 (instantiate_scev_2): Likewise.
3903 (instantiate_scev_r): Likewise.
3904 (instantiate_scev): Likewise.
3905 (resolve_mixers): Likewise.
3906
36ff9dfb
VM
39072013-05-01 Vladimir Makarov <vmakarov@redhat.com>
3908
3909 PR target/57091
3910 * lra-constraints.c (best_small_class_operands_num): Remove.
3911 (process_alt_operands): Remove small_class_operands_num. Take
3912 small classes operands into losers and only if the operand is not
3913 matched. Modify debugging output.
3914 (curr_insn_transform): Remove best_small_class_operands_num.
3915 Print insn name.
3916
36054fab
JG
39172013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
3918
3919 * config/aarch64/aarch64-builtins.c
3920 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
3921 * config/aarch64/aarch64-simd-builtins.def
3922 (reduc_splus_): Add new modes.
3923 (reduc_uplus_): New.
3924 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
3925 (reduc_uplus_v4sf): Likewise.
3926 (reduc_splus_v4sf): Likewise.
3927 (aarch64_addv<mode>): Likewise.
3928 (reduc_uplus_<mode>): Likewise.
3929 (reduc_splus_<mode>): Likewise.
3930 (aarch64_addvv2di): Likewise.
3931 (reduc_uplus_v2di): Likewise.
3932 (reduc_splus_v2di): Likewise.
3933 (aarch64_addvv2si): Likewise.
3934 (reduc_uplus_v2si): Likewise.
3935 (reduc_splus_v2si): Likewise.
3936 (reduc_<sur>plus_<mode>): New.
3937 (reduc_<sur>plus_v2di): Likewise.
3938 (reduc_<sur>plus_v2si): Likewise.
3939 (reduc_<sur>plus_v4sf): Likewise.
3940 (aarch64_addpv4sf): Likewise.
3941 * config/aarch64/arm_neon.h
3942 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
3943 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
3944 add UNSPEC_SADDV, UNSPEC_UADDV.
3945 (SUADDV): New.
3946 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
3947
6dce23a8
JG
39482013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
3949
3950 * config/aarch64/arm_neon.h
3951 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
3952
1598945b
JG
39532013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
3954
3955 * config/aarch64/aarch64-builtins
3956 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
3957
998eaf97
JG
39582013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
3959
3960 * config/aarch64/aarch64-simd-builtins.def
3961 (reduc_smax_): New.
3962 (reduc_smin_): Likewise.
3963 (reduc_umax_): Likewise.
3964 (reduc_umin_): Likewise.
3965 (reduc_smax_nan_): Likewise.
3966 (reduc_smin_nan_): Likewise.
3967 (fmax): Remove.
3968 (fmin): Likewise.
3969 (smax): Update for V2SF, V4SF and V2DF modes.
3970 (smin): Likewise.
3971 (smax_nan): New.
3972 (smin_nan): Likewise.
3973 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
3974 (<su><maxmin><mode>3): ...This, refactor.
3975 (s<maxmin><mode>3): New.
3976 (<maxmin_uns><mode>3): Likewise.
3977 (reduc_<maxmin_uns>_<mode>): Refactor.
3978 (reduc_<maxmin_uns>_v4sf): Likewise.
3979 (reduc_<maxmin_uns>_v2si): Likewise.
3980 (aarch64_<fmaxmin><mode>: Remove.
3981 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
3982 new builtin names.
3983 (vmin<q>_f<32,64>): Likewise.
3984 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
3985 (FMAXMIN): New.
3986 (su): Add mappings for smax, smin, umax, umin.
3987 (maxmin): New.
3988 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
3989 (FMAXMIN): Rename as...
3990 (FMAXMIN_UNS): ...This.
3991 (maxminv): Remove.
3992 (fmaxminv): Likewise.
3993 (fmaxmin): Likewise.
3994 (maxmin_uns): New.
3995 (maxmin_uns_op): Likewise.
3996
bd11644e
JG
39972013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
3998
3999 * config/aarch64/arm_neon.h
4000 (vac<ge, gt><sd>_f<32, 64>): Rename to...
4001 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
4002 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
4003
75dd5ace
JG
40042013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4005
4006 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
4007 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
4008
7c19979f
JG
40092013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4010
4011 * config/aarch64/aarch64-simd.md
4012 (vcond<mode>_internal): Handle special cases for constant masks.
4013 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
4014 (vcondu<mode><mode>): Likewise.
4015 (vcond<v_cmp_result><mode>): New.
4016
bb60efd9
JG
40172013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4018
4019 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
4020 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
4021 * config/aarch64/aarch64-simd-builtins.def
4022 (cmeq): Update to BUILTIN_VALLDI.
4023 (cmgt): Likewise.
4024 (cmge): Likewise.
4025 (cmle): Likewise.
4026 (cmlt): Likewise.
4027 * config/aarch64/arm_neon.h
4028 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
4029 to builtins or C as appropriate.
4030
889b9412
JG
40312013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4032
4033 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
4034 (cmgeu): ...This.
4035 (cmhi): Rename to...
4036 (cmgtu): ...This.
4037 * config/aarch64/aarch64-simd.md
4038 (simd_mode): Add SF.
4039 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
4040 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
4041 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
4042 (cstore<mode>_neg): ...This.
4043 * config/aarch64/iterators.md
4044 (VALLF): new.
4045 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
4046 (COMPARISONS): New.
4047 (UCOMPARISONS): Likewise.
4048 (optab): Add missing comparisons.
4049 (n_optab): New.
4050 (cmp_1): Likewise.
4051 (cmp_2): Likewise.
4052 (CMP): Likewise.
4053 (cmp): Remove.
4054 (VCMP_S): Likewise.
4055 (VCMP_U): Likewise.
4056 (V_cmp_result): Add DF, SF modes.
4057 (v_cmp_result): Likewise.
4058 (v): Likewise.
4059 (vmtype): Likewise.
4060 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
4061
0a7dbb76
GY
40622013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
4063
4064 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
4065 define_insn to define_insn_and_split.
4066 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
4067 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
4068 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
4069 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
4070 (thumb2_negscc): Likewise.
4071
fb614ca6
GY
40722013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
4073
4074 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
4075
9e64a0bf
GY
40762013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
4077
4078 * config/arm/thumb2.md: Remove trailing whitespaces.
4079
d6b28156
RS
40802013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
4081
4082 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
4083 Use gen_int_mode rather than GEN_INT.
4084
f91674c3
L
40852013-04-30 H.J. Lu <hongjiu.lu@intel.com>
4086
b0dec607 4087 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
4088 debug_gimple_stmt.
4089
3551257c
RB
40902013-04-30 Richard Biener <rguenther@suse.de>
4091
4092 PR middle-end/57122
3c21604f 4093 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 4094
4c1aff1c
RB
40952013-04-30 Richard Biener <rguenther@suse.de>
4096
4097 PR middle-end/57107
4098 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
4099
54b8379a
AB
41002013-04-30 Andrey Belevantsev <abel@ispras.ru>
4101
4102 PR rtl-optimization/56957
4103 PR rtl-optimization/57105
54b8379a
AB
4104 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
4105 variable. Use just INSN_UID for determining whether an insn
4106 should be only disconnected from the insn stream.
4107 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
4108
abc27962
JJ
41092013-04-30 Jakub Jelinek <jakub@redhat.com>
4110
4111 PR tree-optimization/57104
4112 * tsan.c (instrument_expr): Don't instrument accesses to
4113 DECL_HARD_REGISTER VAR_DECLs.
4114
0fc822d0
RB
41152013-04-30 Richard Biener <rguenther@suse.de>
4116
4117 * function.h (loops_for_fn): New inline function.
4118 (set_loops_for_fn): Likewise.
4119 * cfgloop.h (place_new_loop): Add struct function parameter.
4120 (get_loop): Likewise.
4121 (get_loops): Likewise.
4122 (number_of_loops): Likewise.
4123 (fel_next): Adjust.
4124 (fel_init): Likewise.
4125 * cfg.c (get_loop_copy): Adjust.
4126 * cfgloop.c (flow_loops_dump): Likewise.
4127 (record_loop_exits): Likewise.
4128 (verify_loop_structure): Likewise.
4129 * cfgloopanal.c (mark_irreducible_loops): Likewise.
4130 (estimate_reg_pressure_cost): Likewise.
4131 (mark_loop_exit_edges): Likewise.
4132 * cfgloopmanip.c (place_new_loop): Likewise.
4133 (add_loop): Likewise.
4134 (duplicate_loop): Likewise.
4135 * graph.c (draw_cfg_nodes): Likewise.
4136 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
4137 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
4138 (extract_affine_chrec): Likewise.
4139 (build_scop_iteration_domain): Likewise.
4140 * graphite.c (graphite_initialize): Likewise.
4141 * ira-build.c (create_loop_tree_nodes): Likewise.
4142 (more_one_region_p): Likewise.
4143 (rebuild_regno_allocno_maps): Likewise.
4144 (mark_loops_for_removal): Likewise.
4145 (mark_all_loops_for_removal): Likewise.
4146 (remove_unnecessary_regions): Likewise.
4147 (ira_build): Likewise.
4148 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
4149 * loop-init.c (fix_loop_structure): Likewise.
4150 (gate_rtl_move_loop_invariants): Likewise.
4151 (gate_rtl_unswitch): Likewise.
4152 (gate_rtl_unroll_and_peel_loops): Likewise.
4153 (rtl_doloop): Likewise.
4154 * lto-streamer-in.c (input_cfg): Likewise.
4155 * lto-streamer-out.c (output_cfg): Likewise.
4156 * modulo-sched.c (sms_schedule): Likewise.
4157 * predict.c (tree_estimate_probability): Likewise.
4158 (tree_estimate_probability_driver): Likewise.
4159 (estimate_loops): Likewise.
4160 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
4161 (move_sese_region_to_fn): Likewise.
4162 (debug_loop_num): Likewise.
4163 * tree-chrec.c (chrec_evaluate): Likewise.
4164 (hide_evolution_in_other_loops_than_loop): Likewise.
4165 (chrec_component_in_loop_num): Likewise.
4166 (reset_evolution_in_loop): Likewise.
4167 (evolution_function_is_invariant_rec_p): Likewise.
4168 * tree-if-conv.c (main_tree_if_conversion): Likewise.
4169 * tree-inline.c (copy_loops): Likewise.
4170 (copy_cfg_body): Likewise.
4171 (tree_function_versioning): Likewise.
4172 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
4173 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
4174 Likewise.
4175 (add_to_evolution_1): Likewise.
4176 (scev_const_prop): Likewise.
4177 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
4178 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
4179 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
4180 (tree_ssa_lim_initialize): Likewise.
4181 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
4182 (verify_loop_closed_ssa): Likewise.
4183 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
4184 (tree_ssa_loop_im): Likewise.
4185 (tree_ssa_loop_unswitch): Likewise.
4186 (tree_vectorize): Likewise.
4187 (check_data_deps): Likewise.
4188 (tree_ssa_loop_ivcanon): Likewise.
4189 (tree_ssa_loop_bounds): Likewise.
4190 (tree_complete_unroll): Likewise.
4191 (tree_complete_unroll_inner): Likewise.
4192 (tree_parallelize_loops): Likewise.
4193 (tree_ssa_loop_prefetch): Likewise.
4194 (tree_ssa_loop_ivopts): Likewise.
4195 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
4196 * tree-vectorizer.c (vectorize_loops): Likewise.
4197
37953bd3
MF
41982013-04-29 Mike Frysinger <vapier@gentoo.org>
4199
4200 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
4201 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
4202 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
4203 with EABI_LINK_SPEC.
4204
f9ed28db
UB
42052013-04-29 Uros Bizjak <ubizjak@gmail.com>
4206
4207 PR target/44578
4208 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
4209 alternative.
4210
deca73f5
VM
42112013-04-29 Vladimir Makarov <vmakarov@redhat.com>
4212
4213 PR target/57097
37953bd3 4214 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
4215 using memory for pseudos. Print cost dump for alternatives.
4216 Modify cost values for conflicts with early clobbers.
4217 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
4218
fdca7d03
UB
42192013-04-29 Uros Bizjak <ubizjak@gmail.com>
4220
4221 PR target/57098
4222 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
4223
0b064172
IB
42242013-04-29 Ian Bolton <ian.bolton@arm.com>
4225
4226 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
4227 from/to S register.
4228 (movdi_aarch64): Support LDR/STR from/to D register.
4229
473cec55
IB
42302013-04-29 Ian Bolton <ian.bolton@arm.com>
4231
4232 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
4233 or higher by default.
4234
a6f30e66
RB
42352013-04-29 Richard Biener <rguenther@suse.de>
4236
4237 PR middle-end/57075
4238 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
4239 even if not adding abnormal edges for calls that can make
4240 abnormal gotos.
4241
0c2b2040
RB
42422013-04-29 Richard Biener <rguenther@suse.de>
4243
4244 PR middle-end/57103
4245 * tree-cfg.c (move_stmt_op): Fix condition under which to update
4246 TREE_BLOCK.
4247 (move_stmt_r): Remove redundant checking.
4248
f41f80f9
TJ
42492013-04-29 Teresa Johnson <tejohnson@google.com>
4250
4251 PR bootstrap/57077
4252 * basic-block.h (apply_scale): New function.
4253 (apply_probability): Use apply_scale.
4254 * gimple-streamer-in.c (input_bb): Ditto.
4255 * lto-streamer-in.c (input_cfg): Ditto.
4256 * lto-cgraph.c (merge_profile_summaries): Ditto.
4257 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 4258 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
4259 (copy_edges_for_bb): Ditto.
4260 (copy_cfg_body): Ditto.
4261
315bbd2e
TV
42622013-04-29 Tom de Vries <tom@codesourcery.com>
4263
4264 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
4265 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
4266 (tail_merge_optimize): Handle current_loops == NULL.
4267
ebbd90d8
JL
42682013-04-26 Jeff Law <law@redhat.com>
4269
4270 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
4271 (simplify_cond_using_ranges): Generalize code to simplify
4272 COND_EXPRs where one argument is a constant and the other
4273 is an SSA_NAME created by an integral type conversion.
4274
8b9b57eb
KT
42752013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4276
4277 * config/arm/arm.md (store_minmaxsi): Use only when
4278 optimize_insn_for_size_p.
4279
9498e5dc
CB
42802013-04-29 Christian Bruel <christian.bruel@st.com>
4281
4282 PR target/57108
4283 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
4284
6093bc06
RB
42852013-04-29 Richard Biener <rguenther@suse.de>
4286
4287 PR middle-end/57089
fdca7d03
UB
4288 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
4289 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
4290 (expand_omp_for_generic): Properly add loops.
4291 (expand_omp_for_static_nochunk): Likewise.
4292 (expand_omp_for_static_chunk): Likewise.
4293 (expand_omp_for): For the degenerate case fixup loops.
4294 (expand_omp_sections): Fix default bb placement in loops.
4295 (expand_omp_atomic_pipeline): Properly add loops.
4296
84aacbfd
KT
42972013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4298
4299 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
4300
8dee4479
TV
43012013-04-29 Tom de Vries <tom@codesourcery.com>
4302
4303 * tree-ssa-tail-merge.c: Update header comment.
4304
47934dc4
JG
43052013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4306
4307 * config/aarch64/arm_neon.h
4308 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
4309 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
4310 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
4311 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
4312 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
4313 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
4314 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
4315 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
4316
384be29f
JG
43172013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4318
4319 * config/aarch64/aarch64-simd.md
4320 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
4321 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
4322 fix_trunc, fixuns_trunc.
4323 (ftrunc<VDQF:mode>2): New.
4324 * config/aarch64/iterators.md (optab): Add fix, fixuns.
4325 (fix_trunc_optab): New.
4326
0386b123
JG
43272013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4328
4329 * config/aarch64/aarch64-builtins.c
4330 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
4331 iceilf, lround, iroundf.
4332
00fcb892
UB
43332013-04-29 Uros Bizjak <ubizjak@gmail.com>
4334
4335 PR target/54349
4336 * config/i386/i386.h (enum ix86_tune_indices)
4337 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
4338 New, split from X86_TUNE_INTER_UNIT_MOVES.
4339 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
4340 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
4341 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
4342 (TARGET_INTER_UNIT_MOVES): Remove.
4343 * config/i386/i386.c (initial_ix86_tune_features): Update.
4344 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
4345 (ix86_expand_convert_uns_didf_sse): Use
4346 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
4347 (ix86_expand_vector_init_one_nonzero): Ditto.
4348 (ix86_expand_vector_init_interleave): Ditto.
4349 (inline_secondary_memory_needed): Return true for moves from SSE class
4350 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
4351 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
4352 * config/i386/constraints.md (Yi, Ym): Depend on
4353 TARGET_INTER_UNIT_MOVES_TO_VEC.
4354 (Yj, Yn): New constraints.
4355 * config/i386/i386.md (*movdi_internal): Change constraints of
4356 operand 1 from Yi to Yj and from Ym to Yn.
4357 (*movsi_internal): Ditto.
4358 (*movdf_internal): Ditto.
4359 (*movsf_internal): Ditto.
4360 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
4361 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
4362 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
4363 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
4364 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
4365 * config/i386/sse.md (movdi_to_sse): Ditto.
4366 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
4367 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
4368 TARGET_INTER_UNIT_MOVES.
4369 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
4370 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
4371 instead of TARGET_INTER_UNIT_MOVES.
4372 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
4373 operand 1 from Yi to Yj and from Ym to Yn.
4374
4c871069
JG
43752013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4376
4377 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
4378 (float_truncate_hi_): Likewise.
4379 (float_extend_lo_): Likewise.
4380 (float_truncate_lo_): Likewise.
4381 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
4382 (aarch64_float_extend_lo_v2df): Likewise.
4383 (vec_unpacks_hi_v4sf): Likewise.
4384 (aarch64_float_truncate_lo_v2sf): Likewise.
4385 (aarch64_float_truncate_hi_v4sf): Likewise.
4386 (vec_pack_trunc_v2df): Likewise.
4387 (vec_pack_trunc_df): Likewise.
4388
1709ff9b
JG
43892013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4390
4391 * config/aarch64/aarch64-builtins.c
4392 (aarch64_fold_builtin): Fold float conversions.
4393 * config/aarch64/aarch64-simd-builtins.def
4394 (floatv2si, floatv4si, floatv2di): New.
4395 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
4396 * config/aarch64/aarch64-simd.md
4397 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
4398 * config/aarch64/iterators.md (FLOATUORS): New.
4399 (optab): Add float, floatuns.
4400 (su_optab): Likewise.
4401
ce966824
JG
44022013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4403
4404 * config/aarch64/aarch64-builtins.c
4405 (aarch64_builtin_vectorized_function): Use new names for
4406 fcvt builtins.
4407 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
4408 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
4409 (fcvtzu): Split as...
4410 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
4411 (fcvtas): Split as...
4412 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
4413 (fcvtau): Split as...
4414 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
4415 (fcvtps): Split as...
4416 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
4417 (fcvtpu): Split as...
4418 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
4419 (fcvtms): Split as...
4420 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
4421 (fcvtmu): Split as...
4422 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
4423 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
4424 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
4425 (lfrintnusf, lfrintnudf): Likewise.
4426 * config/aarch64/aarch64-simd.md
4427 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
4428 define_insn.
4429 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
4430 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
4431 (fcvt_pattern): Likewise.
4432
b9de24fe
JG
44332013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4434
4435 * config/aarch64/aarch64-simd.md
4436 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
4437 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
4438
77a205be
JG
44392013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4440
4441 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
4442 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
4443 (vrnd<a,m,n,p>_f32): Implement using builtins.
4444 (vrnd<i,x><q>_f<32, 64>): New.
4445
0659ce6f
JG
44462013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4447
4448 * config/aarch64/aarch64-builtins.c
4449 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
4450 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
4451 (frintz): Rename to...
4452 (btrunc): ...this.
4453 (frintp): Rename to...
4454 (ceil): ...this.
4455 (frintm): Rename to...
4456 (floor): ...this.
4457 (frinti): Rename to...
4458 (nearbyint): ...this.
4459 (frintx): Rename to...
4460 (rint): ...this.
4461 (frinta): Rename to...
4462 (round): ...this.
4463 * config/aarch64/aarch64-simd.md
4464 (aarch64_frint<frint_suffix><mode>): Delete.
4465 (<frint_pattern><mode>2): Convert to insn.
4466 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
4467 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
4468 (frint_pattern): Likewise.
4469 (frint_suffix): Likewise.
4470
ea78906a
RB
44712013-04-29 Richard Biener <rguenther@suse.de>
4472
4473 PR tree-optimization/57081
4474 * loop-init.c: Include tree-flow.h.
4475 (loop_optimizer_finalize): Free number of iteration estimates.
4476 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
4477
baee1763
JJ
44782013-04-29 Jakub Jelinek <jakub@redhat.com>
4479
94dc5332
JJ
4480 PR tree-optimization/57083
4481 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
4482 non-singleton shift count range, zero extend low_bound for uns case.
4483
baee1763
JJ
4484 * config/i386/predicates.md (general_vector_operand): New predicate.
4485 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
4486 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
4487 if they aren't nonimmediate operands. If their original values
4488 satisfy const_vector_equal_evenodd_p, don't shift them.
4489 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
4490 predicates. For the SSE4.1 case force operands[{1,2}] into registers
4491 if not nonimmediate_operand.
4492 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
4493 instead of register_operand.
4494 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
4495
a9073727 44962013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
4497
4498 * stor-layout.c (finalize_size_functions): Allocate a structure and
4499 reset cfun before dumping the functions.
4500
ba8011e6
JJ
45012013-04-27 Jakub Jelinek <jakub@redhat.com>
4502
d6fde69e
JJ
4503 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
4504
ba8011e6
JJ
4505 PR target/56866
4506 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
4507 use xop_pmacsdqh if uns_p.
4508 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
4509 the immediate rotate count.
4510
2c62cbaa
VM
45112013-04-26 Vladimir Makarov <vmakarov@redhat.com>
4512
4513 * rtl.h (struct rtx_def): Add comment for field jump.
4514 (LRA_SUBREG_P): New macro.
4515 * recog.c (register_operand): Check LRA_SUBREG_P.
4516 * lra.c (lra): Add note at the end of RTL code. Align non-empty
4517 stack frame.
4518 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
4519 (lra_final_code_change): Skip subreg change for operators.
4520 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
4521 if there are no operand changes.
4522 * lra-constraints.c (curr_insn_set): New.
4523 (match_reload): Set LRA_SUBREG_P.
4524 (emit_spill_move): Ditto.
4525 (check_and_process_move): Use curr_insn_set. Process only single
4526 set insns. Don't initialize sec_mem_p and change_p.
4527 (simplify_operand_subreg): Use LRA_SUBREG_P.
4528 (reg_in_class_p): New function.
4529 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
4530 of #ifdef. Add code to remove cycling.
4531 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
4532 non-null disp. Reload inner instead of disp when base and index
4533 are null. Try to put lo_sum into register.
4534 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
4535 (check_and_process_move): Move code for move cost check to
4536 simple_move_p. Remove equiv_substitution.
4537 (simple_move_p): New function.
4538 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
4539 curr_insn_set. Call check_and_process_move only for single set
4540 insns. Use the new function. Move call of check_and_process_move
4541 after operand equiv substitution and address process.
4542
e7d764f3
JJ
45432013-04-26 Jakub Jelinek <jakub@redhat.com>
4544
4545 PR go/57045
4546 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
4547 with nonlocal goto receivers or returns twice calls, ignore
4548 unininitialized values from abnormal edges to nl goto receiver
4549 or returns twice call.
4550
41e10689
JJ
45512013-04-26 Jakub Jelinek <jakub@redhat.com>
4552
4553 PR tree-optimization/57051
4554 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
4555 and VEC_RSHIFT_EXPR if shift count is a multiple of element
4556 bitsize.
4557
d7ed20db
RB
45582013-04-26 Richard Biener <rguenther@suse.de>
4559
4560 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
4561 (expand_omp_taskreg): Likewise. Mark loops for fixup.
4562 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
4563 (fixup_loop_arrays_after_move): New function.
4564 (move_sese_region_to_fn): Properly outline the loop tree parts
4565 of the SESE region.
4566
df93505e
UB
45672013-04-26 Uros Bizjak <ubizjak@gmail.com>
4568
4569 * config/i386/i386.md (type, unit): Fix long lines.
4570
dd366ec3
RB
45712013-04-26 Richard Biener <rguenther@suse.de>
4572
4573 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
4574 (lto-streamer-out.o): Likewise.
4575 * cfgloop.c (init_loops_structure): Export, add struct function
4576 argument and adjust.
4577 (flow_loops_find): Adjust.
4578 * cfgloop.h (enum loop_estimation): Add EST_LAST.
4579 (init_loops_structure): Declare.
4580 * lto-streamer-in.c: Include cfgloop.h.
4581 (input_cfg): Input the loop tree.
4582 * lto-streamer-out.c: Include cfgloop.h.
4583 (output_cfg): Output the loop tree.
4584 (output_struct_function_base): Do not drop PROP_loops.
4585
a9e0d843
RB
45862013-03-26 Richard Biener <rguenther@suse.de>
4587
4588 * tree-cfg.c (execute_build_cfg): Build the loop tree.
4589 (pass_build_cfg): Provide PROP_loops.
4590 (move_sese_region_to_fn): Remove loops that are outlined into fn
4591 for now.
4592 * tree-inline.c: Include cfgloop.h.
4593 (initialize_cfun): Do not drop PROP_loops.
4594 (copy_loops): New function.
4595 (copy_cfg_body): Copy loop structure.
4596 (tree_function_versioning): Initialize destination loop tree.
4597 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
4598 (pass_parallelize_loops): Do IL verification.
4599 * loop-init.c (loop_optimizer_init): Fixup loops if required.
4600 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
4601 the CFG make sure we fixup loops as well.
4602 * tree-ssa-tail-merge.c: Include cfgloop.h.
4603 (replace_block_by): When merging loop latches mark loops for fixup.
4604 * lto-streamer-out.c (output_struct_function_base): Drop
4605 PROP_loops for now.
4606 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
4607 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
4608 * ipa-split.c: Include cfgloop.h.
4609 (split_function): Add the new return block to the loop tree root.
4610 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
4611 whether we have removed the forwarder block.
4612 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
4613 * cfgloop.h (place_new_loop): Declare.
4614 * cfgloopmanip.c (place_new_loop): Export.
4615 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
4616 (tree-switch-conversion.o): Likewise.
4617 (tree-complex.o): Likewise.
4618 (tree-inline.o): Likewise.
4619 (tree-ssa-tailmerge.o): Likewise.
4620 (ipa-split.o): Likewise.
4621 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
4622 (tree-ssa-copy.o): Likewise.
4623 * tree-switch-conversion.c: Include cfgloop.h
4624 (process_switch): If we emit a bit-test cascade, schedule loops
4625 for fixup.
4626 * tree-complex.c: Include cfgloop.h.
4627 (expand_complex_div_wide): Properly add new basic-blocks to loops.
4628 * asan.c: Include cfgloop.h.
4629 (create_cond_insert_point): Properly add new basic-blocks to
4630 loops, schedule loop fixup.
4631 * cfgloop.c (verify_loop_structure): Check that looks are not
4632 marked for fixup.
4633 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
4634 to loops.
4635 (expand_omp_for_generic): Likewise.
4636 (expand_omp_sections): Likewise.
4637 (expand_omp_atomic_pipeline): Schedule loops for fixup.
4638 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
4639 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
4640 is initialized, not when loops are present.
4641 * tree-parloops.c (parallelize_loops): Remove checking here.
4642 * passes.c (init_optimization_passes): Schedule a copy-propagation
4643 pass before complete unrolling of inner loops.
4644
e78e8a0b
JJ
46452013-04-26 Jakub Jelinek <jakub@redhat.com>
4646
a2e836b2
JJ
4647 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
4648 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
4649 (colorize_init): Add argument to _WIN32 version.
4650 * toplev.c: Include diagnostic-color.h.
4651 (process_options): Default to -fdiagnostics-color=auto if
4652 GCC_COLORS env var is in the environment.
4653 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
4654 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
4655 env var is in the environment, the default is auto rather than never.
a2e836b2 4656
e78e8a0b
JJ
4657 * diagnostic.h (file_name_as_prefix): Add context argument.
4658 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
4659 the string as locus.
4660 * langhooks.c (lhd_print_error_function): Adjust caller.
4661
013e5ef9
LC
46622013-04-25 Lawrence Crowl <crowl@google.com>
4663
4664 * var-tracking.c (shared_hash_def::htab):
4665 Change type to hash_table. Update dependent calls and types.
4666
4a8fb1a1
LC
46672013-04-25 Lawrence Crowl <crowl@google.com>
4668
4669 * Makefile.in: Update as needed below.
4670
4671 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
4672 Move declaration to after the type's method definitons.
4673
4674 * attribs.c (htab_t scoped_attributes::attribute_hash):
4675 Change type to hash_table. Update dependent calls and types.
4676
4677 * bitmap.c (htab_t bitmap_desc_hash):
4678 Change type to hash_table. Update dependent calls and types.
4679
4680 * cselib.c (htab_t cselib_hash_table):
4681 Change type to hash_table. Update dependent calls and types.
4682
4683 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
4684 (hash_string_slot_node): Move implementation into lto-streamer.h
4685 struct string_slot_hasher.
4686 (eq_string_slot_node): Likewise.
4687
4688 * data-streamer-out.c: Update output_block::string_hash_table
4689 dependent calls and types.
4690
4691 * dwarf2cfi.c (htab_t trace_index):
4692 Change type to hash_table. Update dependent calls and types.
4693
4694 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
4695 Change type to hash_table. Update dependent calls and types.
4696 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
4697 (htab_t optimize_external_refs::map): Likewise.
4698 (htab_t output_comp_unit::extern_map): Likewise.
4699 (htab_t output_comdat_type_unit::extern_map): Likewise.
4700 (htab_t output_macinfo::macinfo_htab): Likewise.
4701 (htab_t optimize_location_lists::htab): Likewise.
4702 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
4703
4704 * except.c (htab_t ehspec_hash_type):
4705 Change type to hash_table. Update dependent calls and types.
4706 (assign_filter_values::ttypes): Likewise.
4707 (assign_filter_values::ehspec): Likewise.
4708 (sjlj_assign_call_site_values::ar_hash): Likewise.
4709 (convert_to_eh_region_ranges::ar_hash): Likewise.
4710
4711 * gcse.c (htab_t pre_ldst_table):
4712 Change type to hash_table. Update dependent calls and types.
4713
4714 * ggc-common.c (htab_t saving_htab):
4715 Change type to hash_table. Update dependent calls and types.
4716 (htab_t loc_hash): Likewise.
4717 (htab_t ptr_hash): Likewise.
4718 (call_count): Rename ggc_call_count.
4719 (call_alloc): Rename ggc_call_alloc.
4720 (loc_descriptor): Rename make_loc_descriptor.
4721 (add_statistics): Rename ggc_add_statistics.
4722
4723 * ggc-common.c (saving_htab):
4724 Change type to hash_table. Update dependent calls and types.
4725
4726 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
4727 (push_gimplify_context): Likewise.
4728 (pop_gimplify_context): Likewise.
4729 (struct gimple_temp_hash_elt): Added.
4730 (struct gimplify_hasher): Likewise.
4731 (struct gimplify_ctx.temp_htab):
4732 Change type to hash_table. Update dependent calls and types.
4733
4734 * gimple-fold.c: Include gimplify-ctx.h.
4735
4736 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
4737 Change type to hash_table. Update dependent calls and types.
4738 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
4739 avoid potential global name collision.
4740
4741 * gimplify.c: Include gimplify-ctx.h.
4742 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
4743 (htab_t gimplify_ctx::temp_htab):
4744 Update dependent calls and types for new type hash_table.
4745 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
4746 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
4747
4748 * gimplify-ctx.h: New.
4749 (struct gimple_temp_hash_elt): Move from gimplify.c.
4750 (class gimplify_hasher): New.
4751 (struct gimplify_ctx): Move from gimple.h.
4752 (htab_t gimplify_ctx::temp_htab):
4753 Change type to hash_table. Update dependent calls and types.
4754
4755 * graphite-clast-to-gimple.c: Include graphite-htab.h.
4756 (htab_t ivs_params::newivs_index):
4757 Change type to hash_table. Update dependent calls and types.
4758 (htab_t ivs_params::params_index): Likewise.
4759 (htab_t print_generated_program::params_index): Likewise.
4760 (htab_t gloog::newivs_index): Likewise.
4761 (htab_t gloog::params_index): Likewise.
4762
4763 * graphite.c: Include graphite-htab.h.
4764 4htab_t graphite_transform_loops::bb_pbb_mapping):
4765 Change type to hash_table. Update dependent calls and types.
4766
4767 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
4768 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
4769 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
4770
4771 * graphite-dependences.c: Include graphite-htab.h.
4772 (loop_is_parallel_p): Change hash table type of parameter.
4773
4774 * graphite-htab.h: New.
4775 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
4776 (extern find_pbb_via_hash): Move from graphite-poly.h.
4777 (extern loop_is_parallel_p): Move from graphite-poly.h.
4778 (extern get_loop_body_pbbs): Move from graphite-poly.h.
4779
4780 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
4781 (extern loop_is_parallel_p): Move to graphite-htab.h.
4782 (extern get_loop_body_pbbs): Move to graphite-htab.h.
4783
4784 * haifa-sched.c (htab_t delay_htab):
4785 Change type to hash_table. Update dependent calls and types.
4786 (htab_t delay_htab_i2): Likewise.
4787
4788 * ira-color.c (htab_t allocno_hard_regs_htab):
4789 Change type to hash_table. Update dependent calls and types.
4790
4791 * ira-costs.c (htab_t cost_classes_htab):
4792 Change type to hash_table. Update dependent calls and types.
4793
4794 * loop-invariant.c (htab_t merge_identical_invariants::eq):
4795 Change type to hash_table. Update dependent calls and types.
4796
4797 * loop-iv.c (htab_t bivs):
4798 Change type to hash_table. Update dependent calls and types.
4799
4800 * loop-unroll.c (htab_t opt_info::insns_to_split):
4801 Change type to hash_table. Update dependent calls and types.
4802 (htab_t opt_info::insns_with_var_to_expand): Likewise.
4803
4804 * lto-streamer.h (struct string_slot): Move from data-streamer.h
4805 (struct string_slot_hasher): New.
4806 (htab_t output_block::string_hash_table):
4807 Change type to hash_table. Update dependent calls and types.
4808
4809 * lto-streamer-in.c (freeing_string_slot_hasher): New.
4810 (htab_t file_name_hash_table):
4811 Change type to hash_table. Update dependent calls and types.
4812
4813 * lto-streamer-out.c: Update output_block::string_hash_table dependent
4814 calls and types.
4815
4816 * lto-streamer.c (htab_t tree_htab):
4817 Change type to hash_table. Update dependent calls and types.
4818
4819 * omp-low.c: Include gimplify-ctx.h.
4820
4821 * passes.c (htab_t name_to_pass_map):
4822 Change type to hash_table. Update dependent calls and types.
4823 (pass_traverse): Rename to passes_pass_traverse.
4824
4825 * plugin.c (htab_t event_tab):
4826 Change type to hash_table. Update dependent calls and types.
4827
4828 * postreload-gcse.c (htab_t expr_table):
4829 Change type to hash_table. Update dependent calls and types.
4830 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
4831
4832 * sese.c (debug_rename_map_1): Make extern.
4833 (htab_t copy_bb_and_scalar_dependences::rename_map):
4834 Change type to hash_table. Update dependent calls and types.
4835
4836 * sese.h (extern debug_rename_map): Move to .c file.
4837
4838 * store-motion.c (htab_t store_motion_mems_table):
4839 Change type to hash_table. Update dependent calls and types.
4840
4841 * trans-mem.c (htab_t tm_new_mem_hash):
4842 Change type to hash_table. Update dependent calls and types.
4843
4844 * tree-browser.c (htab_t TB_up_ht):
4845 Change type to hash_table. Update dependent calls and types.
4846
4847 * tree-cfg.c (htab_t discriminator_per_locus):
4848 Change type to hash_table. Update dependent calls and types.
4849
4850 * tree-complex.c: Include tree-hasher.h
4851 (htab_t complex_variable_components):
4852 Change type to hash_table. Update dependent calls and types.
4853
4854 * tree-eh.c (htab_t finally_tree):
4855 Change type to hash_table. Update dependent calls and types.
4856
4857 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
4858 struct int_tree_hasher.
4859 (extern int_tree_map_eq): Likewise.
4860 (uid_decl_map_hash): Removed.
4861 (extern decl_tree_map_eq): Likewise.
4862
4863 * tree-hasher.h: New.
4864 (struct int_tree_hasher): New.
4865 (typedef int_tree_htab_type): New.
4866
4867 * tree-inline.c: Include gimplify-ctx.h.
4868
4869 * tree-mudflap.c: Include gimplify-ctx.h.
4870
4871 * tree-parloops.c: Include tree-hasher.h.
4872 (htab_t eliminate_local_variables_stmt::decl_address):
4873 Change type to hash_table. Update dependent calls and types.
4874 (htab_t separate_decls_in_region::decl_copies): Likewise.
4875
4876 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
4877 Change type to hash_table. Update dependent calls and types.
4878
4879 * tree-sra.c (candidates):
4880 Change type to hash_table. Update dependent calls and types.
4881
4882 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
4883 in tree-flow.h.
4884 (int_tree_map_hash): Likewise.
4885
4886 * tree-ssa-dom.c (htab_t avail_exprs):
4887 Change type to hash_table. Update dependent calls and types.
4888
4889 * tree-ssa-live.c (var_map_base_init::tree_to_index):
4890 Change type to hash_table. Update dependent calls and types.
4891
4892 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
4893 Change type to hash_table. Update dependent calls and types.
4894
4895 * tree-ssa-phiopt.c (seen_ssa_names):
4896 Change type to hash_table. Update dependent calls and types.
4897
4898 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
4899 Change type to hash_table. Update dependent calls and types.
4900
4901 * tree-ssa-uncprop.c (equiv):
4902 Change type to hash_table. Update dependent calls and types.
4903
c5a44004
JJ
49042013-04-25 Jakub Jelinek <jakub@redhat.com>
4905
4906 PR rtl-optimization/57003
4907 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
4908 call note_stores with kill_clobbered_value callback again after
4909 killing regs_invalidated_by_call.
4910
09962a4a
JG
49112013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
4912
4913 * config/aarch64/aarch64-simd.md
4914 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
4915 (aarch64_simd_bsl<mode>): Likewise.
4916 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
4917
ea28bb0b
MP
49182013-04-25 Marek Polacek <polacek@redhat.com>
4919
4920 PR tree-optimization/57066
3c21604f 4921 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 4922
96659611
JG
49232013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
4924
4925 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
4926
9697e620
JG
49272013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
4928
4929 * config/aarch64/aarch64-builtins.c
4930 (aarch64_fold_builtin): New.
4931 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
4932 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
4933 * config/aarch64/aarch64-simd-builtins.def (abs): New.
4934 * config/aarch64/arm_neon.h
4935 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
4936
0ac198d3
JG
49372013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
4938 Tejas Belagod <tejas.belagod@arm.com>
4939
4940 * config/aarch64/aarch64-builtins.c
4941 (aarch64_gimple_fold_builtin): New.
4942 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
4943 * config/aarch64/aarch64-simd-builtins.def (addv): New.
4944 * config/aarch64/aarch64-simd.md (addpv4sf): New.
4945 (addvv4sf): Update.
4946 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
4947
58cff58c
N
49482013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
4949
df93505e 4950 * config/aarch64/aarch64.md
58cff58c
N
4951 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
4952
7e0228bf
N
49532013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
4954
4955 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
4956 (*ngcsi_uxtw): New pattern.
4957
5819f96f 49582013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 4959 Julian Brown <julian@codesourcery.com>
5819f96f
KT
4960
4961 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
4962 (TB_DREG): Add T_V4HF.
4963 (v4hf_UP): New macro.
4964 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 4965 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
4966 Handle initialisation of V4HF. Adjust initialisation of reinterpret
4967 built-ins.
df93505e 4968 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
4969 (arm_vector_mode_supported_p): Handle V4HF.
4970 (arm_mangle_map): Handle V4HFmode.
4971 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
4972 * config/arm/arm_neon_builtins.def: Add entries for
4973 vcvtv4hfv4sf, vcvtv4sfv4hf.
4974 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
4975 (neon_vcvtv4hfv4sf): Likewise.
4976 * config/arm/neon-gen.ml: Handle half-precision floating point
4977 features.
4978 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
4979 * config/arm/arm_neon.h: Regenerate.
4980 * config/arm/neon.ml (type elts): Add F16.
4981 (type vectype): Add T_float16x4, T_floatHF.
4982 (type vecmode): Add V4HF.
4983 (type features): Add Requires_FP_bit feature.
4984 (elt_width): Handle F16.
4985 (elt_class): Likewise.
4986 (elt_of_class_width): Likewise.
4987 (mode_of_elt): Refactor.
4988 (type_for_elt): Handle F16, fix error messages.
4989 (vectype_size): Handle T_float16x4.
4990 (vcvt_sh): New function.
4991 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
4992 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
4993 (string_of_mode): Handle V4HF.
4994 * doc/arm-neon-intrinsics.texi: Regenerate.
4995
1ef395e4
JG
49962013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
4997
4998 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
4999 format specifier in 'X' case.
5000
41c34e94
AM
50012013-04-25 Alan Modra <amodra@gmail.com>
5002
5003 PR target/57052
5004 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
5005 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
5006 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
5007 Repeat for many other rotate/shift and mask patterns using subregs.
5008 Name lshiftrt insns.
5009 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
5010 on WORDS_BIG_ENDIAN.
5011
b9a7eb5d
AM
50122013-04-25 Alan Modra <amodra@gmail.com>
5013
5014 * config.gcc: Support little-endian powerpc-linux targets.
5015 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
5016 (LINK_OS_LINUX_SPEC): Define.
5017 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
5018 Preserve MASK_LITTLE_ENDIAN.
5019 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
5020 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
5021 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
5022 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
5023 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
5024 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
5025 Correct fp word order for little-endian. Don't shift toc entries
5026 smaller than a word for little-endian.
5027 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
5028 (bswapdi2 splits): Correct low-part subreg for little-endian.
5029 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
5030 low/high where such is correct only for be.
5031 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
5032 little-endian for -mcall-aixdesc.
5033
87f73374
AM
50342013-04-25 Alan Modra <amodra@gmail.com>
5035
5036 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
5037 replace_equiv_address_nv.
5038
cabf91cd
AM
50392013-04-25 Alan Modra <amodra@gmail.com>
5040
5041 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
5042
0ae24cc8
VM
50432013-04-24 Vladimir Makarov <vmakarov@redhat.com>
5044
5045 Revert:
5046 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
5047 * rtl.h (struct rtx_def): ...
cabf91cd 5048
77bce07c
VM
50492013-04-24 Vladimir Makarov <vmakarov@redhat.com>
5050
5051 PR rtl-optimizations/57046
5052 * lra-constraints (split_reg): Set up lra_risky_transformations_p
5053 for multi-reg splits.
5054
0db63e7f
L
50552013-04-24 H.J. Lu <hongjiu.lu@intel.com>
5056
5057 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
5058
3362b6b6
SA
50592013-04-24 Sterling Augustine <saugustine@google.com>
5060
5061 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
5062 (comp_dir_string, debug_str_dwo_section): New.
5063 (DEBUG_STR_DWO_SECTION): Rename to ...
5064 (DEBUG_DWO_STR_SECTION): ... this.
5065 (DEBUG_NORM_STR_SECTION): Delete.
5066 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
5067 (DEBUG_STR_DWO_SECTION_FLAGS): New.
5068 (find_AT_string): Move most logic to ...
5069 (find_AT_string_in_table): ... here. New.
5070 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
5071 add_skeleton_AT_string. Delete logic.
5072 (output_skeleton_debug_sections): Remove call to
5073 add_top_level_skeleton_die_attrs.
5074 (add_comp_dir_attribute): Move logic to comp_dir_string.
5075 (dwarf2out_init): Initialize debug_str_dwo_section.
5076 (output_indirect_string): Call find_string_form.
5077 (output_indirect_strings): Rewrite.
5078 (prune_unused_types): Empty skeleton_debug_str_hash.
5079 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
5080 (dwarf2out_finish): Call output_indirect_strings.
5081
e93e18e9
PC
50822013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
5083
5084 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
5085
f6ce35ac
VM
50862013-04-24 Vladimir Makarov <vmakarov@redhat.com>
5087
cabf91cd 5088 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
5089 (LRA_SUBREG_P): New macro.
5090 * recog.c (register_operand): Check LRA_SUBREG_P.
5091 * lra.c (lra): Add note at the end of RTL code. Align non-empty
5092 stack frame.
5093 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
5094 (lra_final_code_change): Skip subreg change for operators.
5095 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
5096 if there are no operand changes.
5097 * lra-constraints.c (curr_insn_set): New.
5098 (match_reload): Set LRA_SUBREG_P.
5099 (emit_spill_move): Ditto.
5100 (check_and_process_move): Use curr_insn_set. Process only single
5101 set insns. Don't initialize sec_mem_p and change_p.
5102 (simplify_operand_subreg): Use LRA_SUBREG_P.
5103 (reg_in_class_p): New function.
5104 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
5105 of #ifdef. Add code to remove cycling.
5106 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
5107 non-null disp. Reload inner instead of disp when base and index
5108 are null. Try to put lo_sum into register.
5109 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 5110 (check_and_process_move): Move code for move cost check to
f6ce35ac 5111 simple_move_p. Remove equiv_substitution.
cabf91cd 5112 (simple_move_p): New function.
f6ce35ac
VM
5113 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
5114 curr_insn_set. Call check_and_process_move only for single set
5115 insns. Use the new function. Move call of check_and_process_move
5116 after operand equiv substitution and address process.
5117
38047d90
JG
51182013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
5119
5120 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
5121 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
5122 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
5123
13f39b2e
PC
51242013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
5125
5126 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
5127
97c116dc
MP
51282013-04-24 Marek Polacek <polacek@redhat.com>
5129
5130 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
5131 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
5132 (select_loops_exit_conditions): Likewise.
5133 (number_of_iterations_for_all_loops): Likewise.
5134 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
5135 (scev_analysis): Likewise.
5136
83082391
CM
51372013-04-02 Catherine Moore <clm@codesourcery.com>
5138 Chao-ying Fu <fu@mips.com>
5139
cabf91cd
AM
5140 * config/mips/micromips.md (jraddiusp): New pattern.
5141 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
5142 instruction if possible.
83082391 5143
19e34aa2
AM
51442013-04-24 Alan Modra <amodra@gmail.com>
5145
5146 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
5147
fdb6603c
JB
51482013-04-24 Julian Brown <julian@codesourcery.com>
5149 Chung-Lin Tang <cltang@codesourcery.com>
5150
5151 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
5152 dependency behavior in enumeration type DIE generation. Add TODO note
5153 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 5154
bf190e8d
LC
51552013-04-23 Lawrence Crowl <crowl@google.com>
5156
5157 * Makefile.in: Update as needed below.
5158
5159 * hash-table.h (class hash_table):
5160 Correct many methods with parameter types compare_type to the correct
5161 value_type. (Correct code was unlikely to notice the change.)
5162 (hash_table::elements_with_deleted) New.
5163 (class hashtable::iterator): New.
5164 (hashtable::begin()): New.
5165 (hashtable::end()): New.
5166 (FOR_EACH_HASH_TABLE_ELEMENT): New.
5167
5168 * statistics.c (statistics_hashes):
5169 Change type to hash_table. Update dependent calls and types.
5170
5171 * tree-into-ssa.c (var_infos):
5172 Change type to hash_table. Update dependent calls and types.
5173
5174 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
5175 Change type to hash_table. Update dependent calls and types.
5176
5177 * tree-ssa-loop-im.c (struct mem_ref.refs):
5178 Change type to hash_table. Update dependent calls and types.
5179
5180 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
5181 Change type to hash_table. Update dependent calls and types.
5182
5183 * tree-ssa-sccvn.c (vn_tables_s::nary):
5184 Change type to hash_table. Update dependent calls and types.
5185 (vn_tables_s::phis): Likewise.
5186 (vn_tables_s::references): Likewise.
5187
5188 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
5189 (vn_reference_eq): Update parameter and return types.
5190
5191 * tree-ssa-structalias.c (pointer_equiv_class_table):
5192 Change type to hash_table. Update dependent calls and types.
5193 (location_equiv_class_table): Likewise.
5194
5195 * tree-vect-data-refs.c: Consequential changes for making
5196 peeling a hash_table.
5197
5198 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
5199 (destroy_loop_vec_info): Dependent hash_table update.
5200
5201 * tree-vectorizer.h (peeling_htab):
5202 Change type to hash_table. Update dependent calls and types.
5203
d70a81dd
SC
52042013-04-23 Shiva Chen <shiva0217@gmail.com>
5205
cabf91cd
AM
5206 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
5207 to check the register content is equal or not.
5208 * lra-constraints.c (match_reload): Use lra_assign_reg_val
5209 to assign register content record.
5210 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 5211 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
5212 * lra-int.h (struct lra_reg): Add offset member.
5213 (lra_reg_val_equal_p): New static inline function.
5214 (lra_update_reg_val_offset): New static inline function.
5215 (lra_assign_reg_val): New static inline function.
5216 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
5217 to assign register content record.
5218 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 5219
b894a1f3
CM
52202013-04-23 Catherine Moore <clm@codesourcery.com>
5221
5222 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
5223 operands. Record compression.
5224
ecd14de9
XDL
52252013-04-23 Xinliang David Li <davidxl@google.com>
5226
5227 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
5228
92e776e9
RB
52292013-04-23 Richard Biener <rguenther@suse.de>
5230
5231 PR middle-end/57036
5232 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
5233 parameter, only add abnormal goto edges from the copied body
5234 if the call could perform abnormal gotos.
5235 (copy_cfg_body): Adjust.
5236
a15ee567
SN
52372013-04-23 Sofiane Naci <sofiane.naci@arm.com>
5238
5239 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
5240
08c52234
AS
52412013-04-23 Andreas Schwab <schwab@linux-m68k.org>
5242
5243 * coretypes.h (gimple_stmt_iterator): Add struct to make
5244 compatible with C.
5245
999c1171
RB
52462013-04-23 Richard Biener <rguenther@suse.de>
5247
5248 PR tree-optimization/57026
5249 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
5250 from SSA names occuring in abnormal PHI nodes.
5251
53669259
AK
52522013-04-22 Andi Kleen <ak@linux.intel.com>
5253
5254 * lto/lto.c (print_lto_report_1): Fix LTO report names.
5255
1a0ad150
AK
52562013-04-22 Andi Kleen <ak@linux.intel.com>
5257
5258 * lto/lto.c (print_lto_report_1): Declare early.
5259 (read_cgraph_and_symbols): Call print_lto_report_1 early.
5260
057f8f20
AK
52612013-04-22 Andi Kleen <ak@linux.intel.com>
5262
5263 * common.opt (-flto-report-wpa): Add.
5264 * doc/invoke.texi (-flto-report-wpa): Add.
5265 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
5266 (lto_main): dito.
5267
473b1e05
XDL
52682013-04-22 Xinliang David Li <davidxl@google.com>
5269
5270 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
5271 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
5272 * Makefile.in: New dependency
5273
cabf91cd 5274 David Daney <ddaney.cavm@gmail.com>
b1485a33 5275
cabf91cd
AM
5276 * configure.ac (gcc_cv_as_micromips_support): Use the
5277 --fatal-warnings option.
5278 * configure: Regenerate.
b1485a33 5279
829d0168
MP
52802013-04-22 Marek Polacek <polacek@redhat.com>
5281
5282 PR sanitizer/56990
5283 * tsan.c (instrument_expr): Don't instrument expression
5284 in case its size is zero.
5285
6d9b7208
UB
52862013-04-22 Uros Bizjak <ubizjak@gmail.com>
5287
5288 PR target/57032
5289 Revert:
5290 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
5291
5292 * config/alpha/alpha.c (TARGET_LRA_P): New define.
5293
ea679d55
JG
52942013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
5295
5296 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
5297 (gimple_stmt_iterator): New typedef.
5298 * gimple.h (gimple_stmt_iterator): Rename to...
5299 (gimple_stmt_iterator_d): ... This.
5300 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
5301 trees be valid for GIMPLE and GENERIC.
5302 (TARGET_GIMPLE_FOLD_BUILTIN): New.
5303 * gimple-fold.c (gimple_fold_call): Call target hook
5304 gimple_fold_builtin.
5305 * hooks.c (hook_bool_gsiptr_false): New.
5306 * hooks.h (hook_bool_gsiptr_false): New.
5307 * target.def (fold_stmt): New.
5308 * doc/tm.texi: Regenerate.
5309
88a581da
VM
53102013-04-22 Vladimir Makarov <vmakarov@redhat.com>
5311
5312 PR target/57018
5313 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
5314 a set sp if no stack realignment.
5315
92be22dc
NC
53162013-04-22 Nick Clifton <nickc@redhat.com>
5317
5318 * config.gcc (tilegx-linux): Extend extra_objs rather than
5319 overwriting it.
5320 (tilepro-linux): Likewise.
5321
0ddec79f
JG
53222013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
5323
5324 * config/aarch64/aarch64-builtins.c
5325 (CF): Remove.
5326 (CF0, CF1, CF2, CF3, CF4, CF10): New.
5327 (VAR<1-12>): Add MAP parameter.
5328 (BUILTIN_*): Likewise.
5329 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
5330 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
5331 (aarch64_ushl_n<mode>): Likewise.
5332 (aarch64_sshr_n<mode>): Likewise.
5333 (aarch64_ushr_n<mode>): Likewise.
5334 (aarch64_<maxmin><mode>): Likewise.
5335 (aarch64_sqrt<mode>): Likewise.
5336 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
5337 (vshr<q>_n_*): Likewise.
5338
0050faf8
JG
53392013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
5340
5341 * config/aarch64/aarch64-builtins.c
5342 (aarch64_simd_builtin_type_mode): Handle SF types.
5343 (sf_UP): Define.
5344 (BUILTIN_GPF): Define.
5345 (aarch64_init_simd_builtins): Handle SF types.
5346 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
5347 (frecps): Likewise.
5348 (frecpx): Likewise.
5349 * config/aarch64/aarch64-simd.md
5350 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
5351 (aarch64_frecpe<mode>): New.
5352 (aarch64_frecps<mode>): Likewise.
5353 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
5354 (v8type): Add frecp<esx>.
5355 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
5356 (aarch64_frecps<mode>): Likewise.
5357 * config/aarch64/iterators.md (FRECP): New.
5358 (frecp_suffix): Likewise.
5359 * config/aarch64/arm_neon.h
5360 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
5361
0fad3dbc 53622013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
5363
5364 PR target/56995
5365 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
5366 (REG_CLASS_NAMES): Idem.
5367 (REG_CLASS_CONTENTS): Idem.
5368 (REGCLASS_HAS_FP_REG): Idem.
5369 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
5370 (sh_conditional_register_usage): Idem.
5371
3e8a33f9
JL
53722013-04-21 Jeff Law <law@redhat.com>
5373
5374 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
5375 (ssa_forward_propagate_and_combine): Use it.
5376
f38e1b0a
VM
53772013-04-19 Vladimir Makarov <vmakarov@redhat.com>
5378
5379 * lra.c: Update the flow chart diagram.
5380
682303da
VM
53812013-04-19 Vladimir Makarov <vmakarov@redhat.com>
5382
5383 PR rtl-optimization/56847
5384 * lra-constraints.c (process_alt_operands): Discourage alternative
5385 with non-matche doffsettable memory constraint fro memory with
5386 known offset.
5387
f6b64c35
RB
53882013-04-19 Richard Biener <rguenther@suse.de>
5389
5390 PR tree-optimization/56982
5391 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
5392 function.
5393 * gimplify.c (gimplify_call_expr): Notice special calls.
5394 (gimplify_modify_expr): Likewise.
5395 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
5396 abnormal control flow receivers.
5397 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
5398 in the same way as cfun->has_nonlocal_labels.
5399 (gimple_purge_dead_abnormal_call_edges): Likewise.
5400 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
5401 receivers start a basic-block.
5402
01d8bf07
RB
54032013-04-19 Richard Biener <rguenther@suse.de>
5404
5405 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
5406 member ...
5407 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
5408 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
5409 (SLP_TREE_LOAD_PERMUTATION): Add.
5410 (vect_transform_slp_perm_load): Adjust prototype.
5411 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
5412 (vect_free_slp_instance): Likewise.
5413 (vect_create_new_slp_node): Likewise.
5414 (vect_supported_slp_permutation_p): Remove.
5415 (vect_slp_rearrange_stmts): Adjust.
5416 (vect_supported_load_permutation_p): Likewise. Inline
5417 vect_supported_slp_permutation_p here.
5418 (vect_analyze_slp_instance): Compute load permutations per
5419 slp node instead of per instance.
5420 (vect_get_slp_defs): Adjust.
5421 (vect_transform_slp_perm_load): Likewise.
5422 (vect_schedule_slp_instance): Remove redundant code.
5423 (vect_schedule_slp): Remove hack for PR56270, add it ...
5424 * tree-vect-stmts.c (vectorizable_load): ... here, do not
5425 CSE loads for SLP. Adjust.
5426
ede22fc3
GY
54272013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
5428
5429 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
5430 spelling in two comments.
5431
67bc84fb
GY
54322013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
5433
5434 PR target/56797
5435 * config/arm/arm.c (load_multiple_sequence): Require SP
5436 as base register for loads if SP is in the register list.
5437
e248d83f
MJ
54382013-04-19 Martin Jambor <mjambor@suse.cz>
5439
5440 PR tree-optimization/56718
5441 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
5442 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
5443 and made public. Adjusted all callers.
5444 (ipa_intraprocedural_devirtualization): New function.
5445 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
5446 (ipa_intraprocedural_devirtualization): Likewise.
5447 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
5448
4891e8f8
RB
54492013-04-19 Richard Biener <rguenther@suse.de>
5450
5451 PR tree-optimization/57000
5452 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
5453
dad89f7c
TG
54542013-04-19 Terry Guo <terry.guo@arm.com>
5455
5456 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
5457 Replace with ...
5458 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
5459 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
5460 (cortex_m4_fmacs): Use new reservations.
5461 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
5462
72ea0d47
VM
54632013-04-18 Vladimir Makarov <vmakarov@redhat.com>
5464
f1e6512c 5465 PR rtl-optimization/56999
72ea0d47
VM
5466 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
5467 related code.
5468 (lra_coalesce): Remove split_origin_bitmap and related code.
5469 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
5470 ranges if necessary.
5471
780a5b71
UB
54722013-04-18 Uros Bizjak <ubizjak@gmail.com>
5473
5474 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
5475 New array.
5476 (ix86_expand_call): Remove clobbered_registers array and use
5477 x86_64_ms_sysv_extra_clobbered_registers instead.
5478 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
5479 Declare here.
5480 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
5481 predicate.
5482 * config/i386/i386.md (*call_rex64_ms_sysv): Use
5483 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
5484 (*call_value_rex64_ms_sysv): Ditto.
5485
6f5a366a
CC
54862013-04-18 Cary Coutant <ccoutant@google.com>
5487
5488 * dwarf2out.c (output_pubnames): Check die_perennial_p of
5489 parent instead of die_mark.
5490
475b8f37
DN
54912013-04-18 Diego Novillo <dnovillo@google.com>
5492
5493 * gimple.c (create_gimple_tmp): New.
5494 (get_expr_type): New.
5495 (build_assign): New.
5496 (build_type_cast): New.
5497 * gimple.h (enum ssa_mode): Define.
5498 (gimple_seq_set_location): New.
5499 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 5500 to use build_assign and build_type_cast.
475b8f37 5501
08940f33
RB
55022013-04-18 Richard Biener <rguenther@suse.de>
5503
5504 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
5505 handle negative step. Remove redundant checks.
5506 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
5507 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
5508 for negative step and grouped loads fail to vectorize.
5509
0e0f87d4
SB
55102013-04-18 Steven Bosscher <steven@gcc.gnu.org>
5511
5512 * emit-rtl.c (reset_insn_used_flags): New function.
5513 (reset_all_used_flags): Use it.
5514 (verify_insn_sharing): New function.
5515 (verify_rtl_sharing): Fix verification for SEQUENCEs.
5516
4c445590
JJ
55172013-04-18 Jakub Jelinek <jakub@redhat.com>
5518
5519 PR tree-optimization/56984
5520 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
5521 and (x >> M) >= N don't register any assertion if N << M is the
5522 minimum value.
5523
6873ecab
SB
55242013-04-18 Steven Bosscher <steven@gcc.gnu.org>
5525
5526 * lower-subreg.c (resolve_simple_move): If called self-recursive,
5527 do not delete_insn insns that have not yet been emitted, only
5528 unlink them with remove_insn.
5529 * df-scan.c (df_insn_delete): Revert r197492.
5530
3ccb989e
SB
55312013-04-17 Steven Bosscher <steven@gcc.gnu.org>
5532
5533 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
5534 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
5535
55362013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
5537
5538 * config/arm/arm.md (movsicc_insn): Convert define_insn into
5539 define_insn_and_split.
5540 (and_scc,ior_scc,negscc): Likewise.
5541 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
5542
3ccb989e 55432013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
5544
5545 * config/arm/arm.c (use_return_insn): Return 0 for targets that
5546 can benefit from using a sequence of LDRD instructions in epilogue
5547 instead of a single LDM instruction.
5548
6d10a203
MLI
55492013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
5550
5551 PR 45688
5552 * doc/extend.texi: Fix typo.
5553
6983e6b5
RB
55542013-04-17 Richard Biener <rguenther@suse.de>
5555
5556 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
5557 (vect_build_slp_tree): ... here.
5558 (vect_build_slp_tree_1): Compute which stmts of the SLP group
5559 match. Remove special-casing of mismatched complex loads.
5560 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
5561 re-try the match with swapped commutative operands.
5562 (vect_supported_load_permutation_p): Remove special-casing of
5563 mismatched complex loads.
5564 (vect_analyze_slp_instance): Adjust.
5565
ef23e6a2
RB
55662013-04-17 Richard Biener <rguenther@suse.de>
5567
5568 PR rtl-optimization/56921
5569 * cfgloop.h (struct loop): Add simple_loop_desc member.
5570 (struct niter_desc): Mark with GTY(()).
5571 (simple_loop_desc): Do not use aux field but simple_loop_desc.
5572 * loop-iv.c (get_simple_loop_desc): Likewise.
5573 (free_simple_loop_desc): Likewise.
5574
5575 Revert
5576 2013-04-16 Richard Biener <rguenther@suse.de>
5577
5578 PR rtl-optimization/56921
5579 * loop-init.c (pass_rtl_move_loop_invariants): Add
5580 TODO_do_not_ggc_collect to todo_flags_finish.
5581 (pass_rtl_unswitch): Same.
5582 (pass_rtl_unroll_and_peel_loops): Same.
5583 (pass_rtl_doloop): Same.
5584
fc6f94f5
EB
55852013-04-17 Eric Botcazou <ebotcazou@adacore.com>
5586
5587 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
5588 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
5589 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
5590 references.
5591 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
5592 * tree-streamer.c (record_common_node): Adjust reference in comment.
5593
10a88311
TG
55942013-04-17 Terry Guo <terry.guo@arm.com>
5595
5596 * config/arm/cortex-m4.md: Add a new bypass.
5597
6d9b7208 55982013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
5599
5600 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
5601 New pattern.
5602 (*subs_<optab><mode>_multp2): New pattern.
5603 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
5604 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
5605
6d9b7208 56062013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
5607
5608 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
5609 (*subs_mul_imm_<mode>): New pattern.
5610
18a6701e
DE
56112013-04-16 David Edelsohn <dje.gcc@gmail.com>
5612
5613 PR target/56948
5614 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
5615 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
5616 (vsx_movti_32bit): Change j->wa to O->wa.
5617
07c37b2f
RB
56182013-04-16 Richard Biener <rguenther@suse.de>
5619
5620 PR rtl-optimization/56921
5621 * loop-init.c (pass_rtl_move_loop_invariants): Add
5622 TODO_do_not_ggc_collect to todo_flags_finish.
5623 (pass_rtl_unswitch): Same.
5624 (pass_rtl_unroll_and_peel_loops): Same.
5625 (pass_rtl_doloop): Same.
5626
0e0f87d4 56272013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
5628
5629 * config/arm/arm.c (emit_multi_reg_push): New declaration
5630 for an existing function.
5631 (arm_emit_strd_push): New function.
5632 (arm_expand_prologue): Used here.
5633 (arm_emit_ldrd_pop): New function.
5634 (arm_expand_epilogue): Used here.
5635 (arm_get_frame_offsets): Update condition.
5636 (arm_emit_multi_reg_pop): Add a special case for load of a single
5637 register with writeback.
5638
5e8e2af4
UB
56392013-04-16 Uros Bizjak <ubizjak@gmail.com>
5640
5641 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
5642 description.
5643
9fd9ccf7
RB
56442013-04-16 Richard Biener <rguenther@suse.de>
5645
5646 PR tree-optimization/56756
5647 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
5648 (first_mem_ref_loc): New.
5649 (execute_sm): Place the load temporarily before a previous
5650 access instead of in the latch edge to ensure its SSA dependencies
5651 are defined at points dominating the load.
5652
96fba521
SB
56532013-04-16 Steven Bosscher <steven@gcc.gnu.org>
5654
4c8af858
SB
5655 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
5656 correct fix by moving header and footer insn to the footer of
5657 the merged basic block. Clear BB_END of the merged-away block.
5658
96fba521
SB
5659 PR middle-end/43631
5660 * emit-rtl.c (make_note_raw): New function.
5661 (link_insn_into_chain): New static inline function.
5662 (add_insn): Use it.
5663 (add_insn_before, add_insn_after): Factor insn chain linking code...
5664 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
5665 using link_insn_into_chain.
5666 (note_outside_basic_block_p): New helper function for emit_note_after
5667 and emit_note_before.
5668 (emit_note_after): Use nobb variant of add_insn_after if the note
5669 should not be contained in a basic block.
5670 (emit_note_before): Use nobb variant of add_insn_before if the note
5671 should not be contained in a basic block.
5672 (emit_note_copy): Use make_note_raw.
5673 (emit_note): Likewise.
5674 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
5675 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
5676 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
5677 the moved barrier the tail of the basic block it follows.
5678 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
5679
7b8265ba
JJ
56802013-04-15 Jakub Jelinek <jakub@redhat.com>
5681
5682 PR tree-optimization/56962
5683 * gimple-ssa-strength-reduction.c (record_increment): Only set
5684 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
5685 either rhs1 or rhs2 is equal to c->base_expr.
5686
5185d248
RB
56872013-04-15 Richard Biener <rguenther@suse.de>
5688
5689 PR tree-optimization/56933
5690 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
5691 member.
5692 (GROUP_READ_WRITE_DEPENDENCE): Remove.
5693 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
5694 * tree-vect-data-refs.c (vect_analyze_group_access): Move
5695 dependence check ...
5696 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
5697 ... here.
5698 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
5699 GROUP_READ_WRITE_DEPENDENCE.
5700
a24243a0
AK
57012013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5702
5703 * emit-rtl.c (reset_all_used_flags): New function.
5704 (verify_rtl_sharing): Call reset_all_used_flags before and after
5705 performing the checks.
5706
1c50eada
KT
57072013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5708
5709 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
5710 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
5711 * config/arm/constraints.md (De): New constraint.
5712 * config/arm/neon.md (anddi3_neon): Delete.
5713 (neon_vand<mode>): Expand to standard anddi3 pattern.
5714 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
5715 Move earlier in the file.
5716 (neon_inv_logic_op2): Likewise.
5717 (arm_anddi_operand_neon): New predicate.
5718
e927b6ad
RO
57192013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5720
5721 * configure.ac (gcc_cv_ld_as_needed): Set
5722 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
5723 Use -z ignore, -z record on *-*-solaris2*.
5724 (HAVE_LD_AS_NEEDED): Update comment.
5725 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
5726 * configure: Regenerate.
5727 * config.in: Regenerate.
5728 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
5729 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
5730 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
5731 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
5732 equivalents. Fix markup.
5733 * doc/tm.texi: Regenerate.
5734
e0ea8797
AH
57352013-04-15 Andrew Hsieh <andrewhsieh.google.com>
5736
5737 * config/i386/i386.opt: New option mstack-protector-guard=.
5738 * config/i386/i386-opts.h: Add enum stack_protector_guard.
5739 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
5740 TARGET_SSP_TLS_GUARD.
5741 * config/i386/i386.c (ix86_option_override_internal): Set
5742 ix86_stack_protector_guard.
5743 * config/i386/i386.md (stack_protect_set): Enable for
5744 TARGET_SSP_TLS_GUARD only.
5745 (stack_protect_set_<mode>): Ditto.
5746 (stack_protect_test): Ditto.
5747 (stack_protect_test_<mode>): Ditto.
5748 * doc/invoke.texi (i386 Option): Document.
5749
811b72f9
EB
57502013-04-15 Eric Botcazou <ebotcazou@adacore.com>
5751
5752 PR target/56890
5753 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
5754 (S_MODES): Set H_MODE bit.
5755 (SF_MODES): Set only S_MODE and SF_MODE bits.
5756 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
5757 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
5758 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
5759 <MODE_FLOAT>: Likewise.
5760
5529fdd6
JY
57612013-04-15 Joey Ye <joey.ye@arm.com>
5762
5763 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
5764
517b1da2
JY
57652013-04-15 Joey Ye <joey.ye@arm.com>
5766
5767 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
5768 for real far jump.
5769 (thumb_far_jump_used_p): Count instruction size and set
5770 far_jump_used.
5771
01007ae0
EB
57722013-04-14 Eric Botcazou <ebotcazou@adacore.com>
5773
5774 * reorg.c (fill_simple_delay_slots): Reindent block of code.
5775 * resource.c (mark_target_live_regs): Reformat conditional block.
5776
c46f6580
SB
57772013-04-13 Steven Bosscher <steven@gcc.gnu.org>
5778
5779 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
5780 notes, they are emitted only just before final.
5781 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
5782
1f397f45
SB
57832013-04-13 Steven Bosscher <steven@gcc.gnu.org>
5784
5785 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
5786 * cfgrtl.c (delete_insn): Call it here instead.
5787 * lra-spills.c (lra_final_code_change): Use delete_insn.
5788 * haifa-sched.c (sched_remove_insn): Likewise.
5789 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
5790 returning to the nop pool.
5791 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
5792 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
5793
58a51369
SB
57942013-04-12 Steven Bosscher <steven@gcc.gnu.org>
5795
5796 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
5797 * doc/tm.texi: Regenerated.
5798
33159866
UB
57992013-04-12 Uros Bizjak <ubizjak@gmail.com>
5800
5801 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
5802 QImode checks.
5803
226e378f
SB
58042013-04-12 Steven Bosscher <steven@gcc.gnu.org>
5805
5806 * df-core.c (df_find_def): Compare register numbers.
5807 (df_find_use): Likewise.
5808
fafb9b18
VM
58092013-04-12 Vladimir Makarov <vmakarov@redhat.com>
5810
5811 PR target/56903
5812 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
5813 lra_in_progress for return.
5814
9a946fd6
GY
58152013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
5816
5817 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
5818 define_insn into define_insn_and_split and emit movsicc patterns.
5819
41b83758
GY
58202013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
5821
5822 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
5823
d3afd9aa
RB
58242013-04-12 Richard Biener <rguenther@suse.de>
5825
5826 * tree-pass.h (TODO_do_not_ggc_collect): New.
5827 * passes.c (execute_one_ipa_transform_pass): Honor
5828 TODO_do_not_ggc_collect.
5829 (execute_one_pass): Likewise.
5830
5831 Revert
5832 2013-04-10 Richard Biener <rguenther@suse.de>
5833
5834 * passes.c (init_optimization_passes): Remove reload pass.
5835 * ira.c (do_reload): Merge into ...
5836 (ira): ... this.
5837 (rest_of_handle_reload): Remove.
5838 (pass_reload): Likewise.
5839 * config/i386/i386.c (ix86_option_override): Refer to ira instead
5840 of reload for vzeroupper pass placement.
5841
06f9b387
JJ
58422013-04-12 Jakub Jelinek <jakub@redhat.com>
5843
5844 PR tree-optimization/56918
5845 PR tree-optimization/56920
5846 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
5847 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
5848 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
5849 use wide_mul_with_sign method.
5850
953094d2
RB
58512013-04-12 Richard Biener <rguenther@suse.de>
5852
5853 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
5854 not be considered a gimple constant.
5855
bb506982
MG
58562013-04-12 Marc Glisse <marc.glisse@inria.fr>
5857
5858 * fold-const.c (const_binop): Handle vector shifts by a scalar.
5859 (fold_binary_loc): Call const_binop also for mixed vector-scalar
5860 operations.
5861
4b84d650
JJ
58622013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
5863 Jakub Jelinek <jakub@redhat.com>
5864
5865 * opts.c: Include diagnostic-color.h.
5866 (common_handle_option): Handle OPT_fdiagnostics_color_.
5867 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
5868 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
5869 (diagnostic-color.o): New.
5870 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
5871 (diagnostic_color_rule): New enum.
5872 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
5873 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
5874 the location string.
5875 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
5876 either NULL, or color kind.
5877 * diagnostic-color.c: New file.
5878 * diagnostic-color.h: New file.
5879 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
5880 arguments.
5881 * doc/invoke.texi (-fdiagnostics-color): Document.
5882 * pretty-print.h (pp_show_color): Define.
5883 (struct pretty_print_info): Add show_color field.
5884 * diagnostic.c: Include diagnostic-color.h.
5885 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
5886 macros. Colorize error:, warning: etc. strings and also the location
5887 string.
5888 (diagnostic_show_locus): Colorize the caret line.
5889 * pretty-print.c: Include diagnostic-color.h.
5890 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
5891 inside of %< %> quotes or quoted through q format modifier.
5892
067a1e71
AK
58932013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5894
33159866 5895 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 5896
33159866 58972013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
5898
5899 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
5900 code in CC_NZ mode.
5901 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
5902 pattern.
5903
7b55f98f
MP
59042013-04-11 Marek Polacek <polacek@redhat.com>
5905
5906 PR tree-optimization/48184
33159866 5907 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 5908
966b587e
EB
59092013-04-11 Eric Botcazou <ebotcazou@adacore.com>
5910
5911 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
5912 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
5913 (skip_simple_arithmetic): Tidy up.
5914 * tree.h (skip_simple_constant_arithmetic): Declare.
5915
33159866 59162013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
5917
5918 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
5919
1d42c1ec
RB
59202013-04-11 Richard Biener <rguenther@suse.de>
5921
5922 * tree-vect-loop.c (get_initial_def_for_induction): Properly
5923 generate vector constants.
5924
4ba5ea11
RB
59252013-04-11 Richard Biener <rguenther@suse.de>
5926
5927 PR tree-optimization/56878
5928 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
5929 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
5930 New function.
5931 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
5932 Prefer to align the DR with the most invariant base address.
5933
f0defe58
SKS
59342013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
5935
5936 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
5937 comment.
5938
d07458be
JG
59392013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
5940
5941 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
5942 floating-point vector comparisons against 0.
5943
146b8692
JJ
59442013-04-11 Jakub Jelinek <jakub@redhat.com>
5945
5946 PR tree-optimization/56899
5947 * fold-const.c (extract_muldiv_1): Apply distributive law
5948 only if TYPE_OVERFLOW_WRAPS (ctype).
5949
b8578ff7
BC
59502013-04-11 Bin Cheng <bin.cheng@arm.com>
5951
5952 PR target/56124
5953 * ira-costs.c (scan_one_insn): Check whether the source rtx of
5954 loading has side effect.
5955
0ea8a6f9
SB
59562013-04-10 Steven Bosscher <steven@gcc.gnu.org>
5957
5958 * config/sparc/sparc.c: Include tree-pass.h.
5959 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
5960 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
5961 head of file. Change return type. Split off gate function.
5962 (sparc_gate_work_around_errata): New function.
5963 (pass_work_around_errata): New pass definition.
5964 (insert_pass_work_around_errata) New pass insert definition to
5965 insert pass_work_around_errata just after delayed-branch scheduling.
5966 (sparc_option_override): Insert the pass.
5967 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
5968
42e37616
DM
59692013-04-10 David S. Miller <davem@davemloft.net>
5970
89deeb3b
DM
5971 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
5972 or -mcpu=hypersparc.
5973
42e37616
DM
5974 * target.def (cstore_mode): New hook.
5975 * target.h: Include insn-codes.h
5976 * targhooks.c: Likewise.
5977 (default_cstore_mode): New function.
5978 * targhooks.h: Declare it.
5979 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
5980 * doc/tm.texi: Rebuild.
5981 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
5982 target hook, rather than inspecting the insn_data.
5983 * config/sparc/sparc.c (sparc_cstore_mode): New function.
5984 (TARGET_CSTORE_MODE): Redefine.
5985 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
5986 result patterns.
5987 * config/sparc/predicates.md (cstore_result_operand): New special
5988 predicate.
5989 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
5990 Use it for operand 0.
5991 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
5992 (*snesi_special): Likewise.
5993 (*snesi_zero): Likewise.
5994 (*seqsi_zero): Likewise.
5995 (*sltu_insn): Likewise.
5996 (*sgeu_insn): Likewise.
5997 (*seqdi_special): Make operand 0 and comparison operation be of
5998 DImode.
5999 (*snedi_special): Likewise.
6000 (*snedi_special_vis3): Likewise.
6001 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
6002 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
6003 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
6004 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
6005 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
6006 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
6007 (*sltu_extend_sp64): Likewise.
6008 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
6009 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
6010 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
6011 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
6012 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
6013
95ca411e
YZ
60142013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
6015
6016 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
6017 (aarch64_start_file): Use the new function.
6018
6782438d 60192013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 6020 Jason Merrill <jason@redhat.com>
6782438d
SKS
6021
6022 * common.opt: Add -gdwarf.
6023 * opts.c (common_handle_option): Handle it.
6024 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
6025
bb313b93
RB
60262013-04-10 Richard Biener <rguenther@suse.de>
6027
6028 * passes.c (execute_todo): Do not call ggc_collect conditional here.
6029 (execute_one_ipa_transform_pass): But unconditionally here.
6030 (execute_one_pass): And here.
6031 (init_optimization_passes): Remove reload pass.
6032 * tree-pass.h (TODO_ggc_collect): Remove.
6033 (pass_reload): Likewise.
6034 * ira.c (do_reload): Merge into ...
6035 (ira): ... this.
6036 (rest_of_handle_reload): Remove.
6037 (pass_reload): Likewise.
6038 * config/i386/i386.c (ix86_option_override): Refer to ira instead
6039 of reload for vzeroupper pass placement.
6040 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
6041 and todo_flags_finish of all passes.
6042
793d9a16
RB
60432013-04-10 Richard Biener <rguenther@suse.de>
6044
6045 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
6046 first_const_oprnd field, rename first_def_type to first_op_type.
6047 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
6048 (vect_get_and_check_slp_defs): Always use the type of the
6049 operand. Allow mixed vect_external_def, vect_constant_def types.
6050 (vect_get_constant_vectors): Handle mixed vect_external_def,
6051 vect_constant_def types.
6052
ee8a9b7b
JR
60532013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
6054
6055 PR tree-optimization/55524
6056 * tree-ssa-math-opts.c
6057 (convert_mult_to_fma): Don't use an fms construct
6058 when we don't have an fms operation, but fnma, and it looks
6059 likely that we'll be able to use the latter.
6060
6957a6f6
ZZ
60612013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6062
6063 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
6064 function.
6065 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
6066 inline fail caused by overwritable functions.
6067
34ab4a5b
CJW
60682013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
6069
6070 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
6071 unnecessary bits in the constant power of two case.
6072
abf9bfbc
RB
60732013-04-10 Richard Biener <rguenther@suse.de>
6074
6075 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
6076 broken code swapping operands.
6077 (vect_build_slp_tree): Do not compute load permutations here.
6078 (vect_analyze_slp_instance): Compute load permutations here,
6079 after building the SLP tree.
6080
f408477e
CB
60812013-04-09 Christian Bruel <christian.bruel@st.com>
6082
6083 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
6084 of next/prev_real_insn.
6085
5ac42672
JH
60862013-04-09 Jan Hubicka <jh@suse.cz>
6087
abf9bfbc
RB
6088 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
6089 Drop aliased parameter.
5ac42672
JH
6090 (function_and_variable_visibility): Do not handle alias pairs.
6091 * cgraph.c (varpool_externally_visible_p): Update prototype.
6092 * varpool.c (varpool_add_new_variable): Update.
6093
5017f1d2
KT
60942013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6095
6096 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
6097
48eecbee
SB
60982013-04-09 Steven Bosscher <steven@gcc.gnu.org>
6099
a949cf1c
SB
6100 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
6101
48eecbee
SB
6102 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
6103
75ef8e3d
MP
61042013-04-09 Marek Polacek <polacek@redhat.com>
6105
6106 PR tree-optimization/48762
33159866 6107 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 6108
23847df4
RB
61092013-04-09 Richard Biener <rguenther@suse.de>
6110
6111 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
6112 dealing with cost.
6113 (vect_build_slp_tree): Likewise.
6114 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
6115 calculating the cost of a SLP instance.
6116 (vect_analyze_slp_instance): Use it from here, after building
6117 the SLP tree.
6118
ea3a0fde
JJ
61192013-04-09 Jakub Jelinek <jakub@redhat.com>
6120
6121 PR middle-end/56883
6122 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
6123 expand_omp_for_static_chunk): Use simple_p = true in
6124 force_gimple_operand_gsi calls when assigning to addressable decls.
6125
a32dfe9d
JL
61262013-04-09 Jeff Law <law@redhat.com>
6127
6128 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
6129 when the boolean was created by converting a wider object which
6130 had a boolean range.
6131
d755c7ef
RB
61322013-04-09 Richard Biener <rguenther@suse.de>
6133
6134 * tree-vectorizer.h (slp_void_p): Remove.
6135 (slp_tree): Typedef before _slp_tree declaration.
6136 (struct _slp_tree): Use a vector of slp_tree as children.
6137 (vect_get_place_in_interleaving_chain): Remove.
6138 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
6139 Move ...
6140 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
6141 and make static.
6142 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
6143 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
6144 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
6145 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
6146 Use slp_node instead of slp_void_p and adjust.
6147
3d741091
RB
61482013-04-09 Richard Biener <rguenther@suse.de>
6149
6150 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
6151 work that is not necessary.
6152
39307ba7
JJ
61532013-04-09 Jakub Jelinek <jakub@redhat.com>
6154
6155 PR tree-optimization/56854
6156 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
6157 forward into clobber stmts if it would change MEM_REF lhs into
6158 non-MEM_REF.
6159
343881fd
MK
61602013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
6161
6162 * tree.c (type_hash_lookup, type_hash_add): Make static.
6163 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
6164
3922658a
RB
61652013-04-09 Richard Biener <rguenther@suse.de>
6166
6167 * tree.h (unsave_expr_now): Remove.
6168 * tree-inline.c (mark_local_for_remap_r): Remove.
6169 (unsave_expr_1): Likewise.
6170 (unsave_r): Likewise.
6171 (unsave_expr_now): Likewise.
6172 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
6173 (propagate_tree_value): Likewise.
6174
9fb6b620
SB
61752013-04-08 Steven Bosscher <steven@gcc.gnu.org>
6176
6177 * doc/rtl.texi (sequence): Rewrite documentation to match the
6178 current use of SEQUENCE rtl objects.
6179 * rtl.def (SEQUENCE): Likewise.
6180
6181 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
6182 Update documentation.
6183 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
6184 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
6185
6186 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
6187
8ddb5a29
TJ
61882013-04-08 Teresa Johnson <tejohnson@google.com>
6189
6190 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
6191 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 6192 methods.
8ddb5a29
TJ
6193 (estimate_edge_size_and_time): Add comment to suggest using rounding
6194 methods.
6195 (estimate_node_size_and_time): Ditto.
6196 (remap_edge_change_prob): Use helper rounding divide methods.
6197 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
6198 (gimple_mod_pow2_value_transform): Ditto.
6199 (gimple_mod_subtract_transform): Ditto.
6200 (gimple_ic_transform): Ditto.
6201 (gimple_stringops_transform): Ditto.
6202 * stmt.c (conditional_probability): Ditto.
6203 (emit_case_dispatch_table): Ditto.
6204 * lto-cgraph.c (merge_profile_summaries): Ditto.
6205 * tree-optimize.c (execute_fixup_cfg): Ditto.
6206 * cfgcleanup.c (try_forward_edges): Ditto.
6207 * cfgloopmanip.c (scale_loop_profile): Ditto.
6208 (loopify): Ditto.
6209 (duplicate_loop_to_header_edge): Ditto.
6210 (lv_adjust_loop_entry_edge): Ditto.
6211 * tree-vect-loop.c (vect_transform_loop): Ditto.
6212 * profile.c (compute_branch_probabilities): Ditto.
6213 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
6214 * lto-streamer-in.c (input_cfg): Ditto.
6215 * gimple-streamer-in.c (input_bb): Ditto.
6216 * ipa-cp.c (update_profiling_info): Ditto.
6217 (update_specialized_profile): Ditto.
6218 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
6219 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 6220 rounding methods.
8ddb5a29
TJ
6221 * sched-rgn.c (compute_dom_prob_ps): Ditto.
6222 (compute_trg_info): Ditto.
6223 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
6224 (purge_dead_edges): Ditto.
6225 * loop-unswitch.c (unswitch_loop): Ditto.
6226 * cgraphclones.c (cgraph_clone_edge): Ditto.
6227 (cgraph_clone_node): Ditto.
6228 * tree-inline.c (copy_bb): Ditto.
6229 (copy_edges_for_bb): Ditto.
6230 (initialize_cfun): Ditto.
6231 (copy_cfg_body): Ditto.
6232 (expand_call_inline): Ditto.
6233
661e6bd7
KT
62342013-04-08 Kai Tietz <ktietz@redhat.com>
6235
6236 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
6237 TARGET_CYGWIN64 by TARGET_64BIT.
6238
105766f3
JR
62392013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
6240
6241 * config/epiphany/epiphany.md (GPR_1): New constant.
6242 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
6243 * config/epiphany/epiphany.c (gen_compare_reg):
6244 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
6245 is already in place.
6246 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
6247 Don't require being called during rtl expansion; If y operlaps r0,
6248 return 0.
6249 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
6250 (epiphany_expand_epilogue): Likewise.
6251
8afab237
JR
6252 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
6253 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 6254 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 6255
fa7707d6
JR
6256 * config/epiphany/constraints.md (CnL): New constraint.
6257 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
6258 * config/epiphany/predicates.md (add_operand): Allow 1024.
6259
5138e18d
JR
6260 * config/epiphany/epiphany.md (logical_op): New code iterator.
6261 (op_mnc): New code attribute.
6262 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
6263 (mov_f+1, mov_f+2): New peephole2 patterns.
6264
2ccc703d
JR
6265 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
6266 (cstoresi4): Also allow re-use of zero result when doing a NE
6267 comparison to a non-zero operand.
aefb0819 6268 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 6269
093ac0a5
JR
6270 * config/epiphany/epiphany.md (<insn_opname>v2si3):
6271 Use gen_addsi3_i / gen_subsi3_i.
6272
f223bb13
JJ
62732013-04-08 Jakub Jelinek <jakub@redhat.com>
6274
6275 PR c++/34949
6276 PR c++/50243
6277 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
6278 contain anything but clobbers, at most one __builtin_stack_restore,
6279 optionally debug stmts and final resx, and if it has at least one
6280 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
6281 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
6282 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
6283 which isn't defaut definition, remove them.
6284 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
6285 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
6286 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
6287 with MEM_REF LHS with SSA_NAME address.
6288
4481581f
JL
62892013-04-08 Jeff Law <law@redhat.com>
6290
6291 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 6292
451dabda
RB
62932013-04-08 Richard Biener <rguenther@suse.de>
6294
6295 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
6296 extra newline.
6297 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
6298 determined vector type.
6299 (vect_analyze_data_refs): Likewise.
6300 (vect_get_new_vect_var): Adjust.
6301 (vect_create_destination_var): Preserve SSA name versions.
6302 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
6303 not dump anything here.
6304
3b088b47
JR
63052013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
6306
6307 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
6308 Add member lr_slot_known.
6309 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
6310 if necessary.
6311 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
6312 Remove code that sets lr_slot_offset according to what a previous
6313 version of epiphany_emit_save_restore used to do.
6314 (epiphany_emit_save_restore): When doing an lr save or restore,
6315 set/verify lr_slot_known and lr_slot_offset.
6316
d8484d41
XQ
63172013-04-08 Xinyu Qi <xyqi@marvell.com>
6318
33159866
UB
6319 PR target/54338
6320 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
6321 in ALL_REGS.
6322
481be1c4
RB
63232013-04-08 Richard Biener <rguenther@suse.de>
6324
6325 * alias.c (find_base_term): Fix thinko in previous change.
6326
401f3a81
JJ
63272013-04-08 Jakub Jelinek <jakub@redhat.com>
6328
6329 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
6330 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
6331 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
6332 if possible to compute val.
6333 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
6334 For QImode integers don't require anything about precision. Use
6335 const_with_all_bytes_same to find out if the constant doesn't have
6336 repeated bytes in it.
6337
03ed99a8
AK
63382013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6339
6340 * config/s390/s390.c (s390_expand_insv): Only accept insertions
6341 within mode size.
6342
781b2e62
MP
63432013-04-08 Marek Polacek <polacek@redhat.com>
6344
6345 PR rtl-optimization/48182
6346 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
6347 value to 1.
6348
27e430a2
JDA
63492013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6350
6351 PR target/55487
6352 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
6353 nuses, make sure we have a label.
6354
4902aa64
BS
63552013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6356
6357 PR target/56843
6358 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
6359 (rs6000_emit_swdiv_low_precision): Remove.
6360 (rs6000_emit_swdiv): Rewrite to handle between one and four
6361 iterations of Newton-Raphson generally; modify required number of
6362 iterations for some cases.
6363 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
6364
7bca81dc
SB
63652013-04-05 Steven Bosscher <steven@gcc.gnu.org>
6366
6367 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
6368 set-but-unused variable.
6369
6370 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
6371 basic blocks of released function bodies garbage-collectable.
6372
6373 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
6374 (struct rtl_opt_pass): Add TODO_df_finish.
6375
6376 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
6377
4542a38a
GY
63782013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6379
6380 * config/arm/constraints.md (q): New constraint.
6381 * config/arm/ldrdstrd.md: New file.
6382 * config/arm/arm.md (ldrdstrd.md) New include.
6383 (arm_movdi): Use "q" instead of "r" constraint
6384 for double-word memory access.
6385 (movdf_soft_insn): Likewise.
6386 * config/arm/vfp.md (movdi_vfp): Likewise.
6387 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 6388 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
6389 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
6390 (mem_ok_for_ldrd_strd): Likewise.
6391 (output_move_double): Update assertion.
6392
2385b218
GY
63932013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6394
6395 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
6396
75fe1cb5
GY
63972013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6398
6399 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
6400 define_insn_and_split.
6401 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
6402
dd660e8e
GY
64032013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6404
6405 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
6406 define_insn_and_split.
33159866 6407 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
6408 (shiftsi3_compare): New pattern.
6409 (rrx): New pattern.
6410 * config/arm/unspecs.md (UNSPEC_RRX): New.
6411
045e472c
GY
64122013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6413
6414 * config/arm/arm.md (negdi_extendsidi): New pattern.
6415 (negdi_zero_extendsidi): Likewise.
6416
3f3bf1a8
GY
64172013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6418
6419 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
6420 define_insn_and_split.
6421 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
6422 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
6423
b0b49556
GY
64242013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6425
6426 * config/arm/arm.md (arm_subdi3): Convert define_insn into
6427 define_insn_and_split.
6428 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
6429 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
6430
d633dd84
GY
64312013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6432
6433 * config/arm/arm.md (subsi3_carryin): New pattern.
6434 (subsi3_carryin_const): Likewise.
6435 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
6436 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
6437
f4499066
GY
64382013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6439
6440 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
6441
ceef6fd9
GY
64422013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6443
6444 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 6445 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 6446
ddbdd8a7
KT
64472013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6448
6449 * config/arm/arm.c (arm_expand_builtin): Change fcode
6450 type to unsigned int.
6451
8456d78a
RR
64522013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6453
6454 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
6455
526c230f
ILT
64562013-04-04 Ian Lance Taylor <iant@google.com>
6457
33159866
UB
6458 * doc/standards.texi (Standards): The Go frontend supports the Go 1
6459 language standard.
526c230f 6460
3cfbe04d
SB
64612013-04-04 Steven Bosscher <steven@gcc.gnu.org>
6462
6463 PR middle-end/56729
6464 * df-scan.c (df_insn_delete): Disable failing assert.
6465
dfa3f8d0
KT
64662013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6467
6468 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
6469 New function prototype.
6470 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
6471 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
6472 (arm_builtin_vectorized_function): New function.
6473
f7837758
KT
64742013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6475
6476 * config/arm/arm_neon_builtins.def: New file.
6477 * config/arm/arm.c (neon_builtin_data): Move contents to
6478 arm_neon_builtins.def.
6479 (enum arm_builtins): Include neon builtin definitions.
6480 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 6481 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 6482
39c1b6db
MP
64832013-04-04 Marek Polacek <polacek@redhat.com>
6484
6485 PR tree-optimization/48186
6486 * predict.c (maybe_hot_frequency_p): Return false if
6487 HOT_BB_FREQUENCY_FRACTION is 0.
6488 (cgraph_maybe_hot_edge_p): Likewise.
6489
314f64eb
RB
64902013-04-04 Richard Biener <rguenther@suse.de>
6491
6492 PR tree-optimization/56826
6493 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
6494 more accurately.
6495
51a905b2
RB
64962013-04-04 Richard Biener <rguenther@suse.de>
6497
6498 PR tree-optimization/56213
6499 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 6500 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 6501
f1bf4f3a
RB
65022013-04-04 Richard Biener <rguenther@suse.de>
6503
6504 PR tree-optimization/56837
6505 * tree-loop-distribution.c (classify_partition): For non-zero
6506 values require that the value has the same precision as its
6507 mode to be useful as memset value.
6508
0bca7ded
NC
65092013-04-03 Nick Clifton <nickc@redhat.com>
6510
33159866 6511 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
6512 (fmssf4): Use fmsf.s on E3V5 architectures.
6513 (fnmasf4): Use fnmaf.s on E3V5 architectures.
6514 (fnmssf4): Use fnmsf.s on E3V5 architectures.
6515
b4019227
JL
65162013-04-03 Jeff Law <law@redhat.com>
6517
6518 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
6519 (lra-eliminations.o): Likewise.
6520
f57ddb5b
TJ
65212013-04-03 Teresa Johnson <tejohnson@google.com>
6522
6523 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 6524 compute_working_sets here from profile.c.
f57ddb5b 6525 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
6526 (gcov_working_set_t): Moved typedef here from basic-block.h
6527 (compute_working_set): Declare.
f57ddb5b
TJ
6528 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
6529 (get_working_sets): Renamed from compute_working_set,
33159866 6530 replace most of body with call to new compute_working_sets.
f57ddb5b 6531 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
6532 to get_working_sets.
6533 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 6534 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 6535 to get_working_sets.
f57ddb5b
TJ
6536 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
6537 * gcov-dump.c (dump_working_sets): New function.
6538
5e0919f1
KZ
65392013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
6540
6541 * hwint.c (sext_hwi, zext_hwi): New functions.
6542 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
6543 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
6544 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
6545 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
6546 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
6547 (sext_hwi, zext_hwi): New functions.
0bca7ded 6548
be672e08
JL
65492013-04-03 Jeff Law <law@redhat.com>
6550
6551 PR tree-optimization/56799
33159866
UB
6552 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
6553 back test for widening conversion erroneously dropped in prior change.
be672e08 6554
9d821fa5
KT
65552013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6556
6557 PR target/56809
6558 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
6559 instead of next_real_insn.
6560
71c581e7
MP
65612013-04-03 Marek Polacek <polacek@redhat.com>
6562
6563 PR sanitizer/55702
33159866 6564 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 6565
4a32ef80
KT
65662013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6567
6568 PR target/56809
6569 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
6570 next_real_insn.
6571 (thumb1_output_casesi): Likewise.
6572 (thumb2_output_casesi): Likewise.
6573
1b2253d4
RB
65742013-04-03 Richard Biener <rguenther@suse.de>
6575
6576 PR tree-optimization/56817
6577 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
6578 Split out ...
6579 (tree_unroll_loops_completely_1): ... new function to manually
6580 walk the loop tree, properly defering outer loops of unrolled
6581 loops to later iterations.
6582
38000232
MG
65832013-04-03 Marc Glisse <marc.glisse@inria.fr>
6584
6585 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
6586 (vectorizable_load): Likewise.
6587 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
6588 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
6589
3fa35298
MG
65902013-04-03 Marc Glisse <marc.glisse@inria.fr>
6591
6592 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
6593 BIT_FIELD_REF.
6594
b3d45ff0
UW
65952013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6596
6597 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
6598
ec9202a8
BC
65992013-04-03 Bin Cheng <bin.cheng@arm.com>
6600
6601 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
6602
6805bd36
MG
66032013-04-03 Marc Glisse <marc.glisse@inria.fr>
6604
6605 PR tree-optimization/56790
33159866
UB
6606 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
6607 folding.
6805bd36 6608
da694a77
MG
66092013-04-03 Marc Glisse <marc.glisse@inria.fr>
6610
6611 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
6612 Handle VEC_MERGE.
6613 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
6614 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
6615 equal arguments.
6616
4e7d7b3d
JJ
66172013-04-03 Jakub Jelinek <jakub@redhat.com>
6618
6619 PR c/19449
6620 * tree.h (force_folding_builtin_constant_p): New decl.
6621 * builtins.c (force_folding_builtin_constant_p): New variable.
6622 (fold_builtin_constant_p): Fold immediately also if
6623 force_folding_builtin_constant_p.
6624
e6c9d234
RB
66252013-04-03 Richard Biener <rguenther@suse.de>
6626
6627 PR tree-optimization/56812
6628 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
6629 DRs of the same interleaving chain are independent.
6630
984d07dd
JM
66312013-04-02 Jason Merrill <jason@redhat.com>
6632
6633 * gdbinit.in (pbb): Use debug fn.
6634
622849c9
LC
66352013-04-02 Lawrence Crowl <crowl@google.com>
6636
6637 * sese.h (struct ivtype_map_elt_s): Remove unused.
6638 (extern debug_ivtype_map): Remove unused.
6639 (extern eq_ivtype_map_elts): Remove unused.
6640 * sese.c (debug_ivtype_map): Removed unused.
6641 (debug_ivtype_map_1): Removed unused.
6642 (debug_ivtype_elt): Remove unused.
6643 (eq_ivtype_map_elts): Remove unused.
6644
6645
82c0e1a0
KT
66462013-04-02 Kai Tietz <ktietz@redhat.com>
6647
6648 PR target/52790
6649 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
6650 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
6651 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
6652 function.
82c0e1a0
KT
6653 (legitimize_pe_coff_symbol): Likewise.
6654 (is_imported_p): New helper-function.
6655 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
6656 for Windows x64 targets.
6657 (ix86_expand_prologue): Optimize for pe-coff targets.
6658 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
6659 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
6660 medium/large code-model.
6661 (legitimize_pic_address): Likewise.
6662 (legitimize_tls_address): Likewise.
6663 (ix86_expand_call): Likewise.
6664 (x86_output_mi_thunk): Likewise.
6665 (get_dllimport_decl): Add new beimport argument.
6666 (construct_plt_address): Don't assert for x64 pe-coff targets.
6667 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
6668 targets.
6669 (SYMBOL_FLAG_STUBVAR): New macro.
6670 (SYMBOL_REF_STUBVAR_P): Likewise.
6671 * config/i386/winnt.c (stub_list): New structure.
6672 (stub_head): New local variable.
6673 (i386_pe_record_stub): New function.
6674 (i386_pe_file_end): Emit refptr-stubs.
6675
5d751b0c
JJ
66762013-04-02 Jakub Jelinek <jakub@redhat.com>
6677
09bb4c99
JJ
6678 PR rtl-optimization/56745
6679 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
6680 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
6681
a1d8947a
JJ
6682 PR c++/34949
6683 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
6684 and both of them are MEM_REFs, just compare first argument for
6685 equality and attempt to deal even with differing offsets.
6686
5d751b0c
JJ
6687 PR c++/34949
6688 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
6689 of gimple_clobber_p to be MEM_REF.
6690 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
6691 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
6692 after gimplification.
6693 * asan.c (get_mem_ref_of_assignment): Don't instrument
6694 gimple_clobber_p stmts.
6695 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
6696 gimple_clobber_p stmt if they have MEM_REF lhs and
6697 are dead because of another gimple_clobber_p stmt.
6698 * tree-ssa-live.c (clear_unused_block_pointer): Treat
6699 gimple_clobber_p stmts like debug stmts.
6700 (remove_unused_locals): Remove clobbers with MEM_REF lhs
6701 that refer to unused VAR_DECLs or uninitialized values.
6702 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
6703 gimple_clobber_p stmts if they refer to removed parameters.
6704 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
6705 formatting.
6706
e594716a
UB
67072013-04-02 Uros Bizjak <ubizjak@gmail.com>
6708
6709 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
6710 using SWI48 mode attribute.
6711
7a80735b
WM
67122013-04-02 Wei Mi <wmi@google.com>
6713
6714 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
6715 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
6716 *<rotate_insn><mode>3_mask in i386.md.
6717
f423a9e4
AI
67182013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
6719
6720 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
6721
90eb75f2
RB
67222013-04-02 Richard Biener <rguenther@suse.de>
6723
6724 PR tree-optimization/56778
6725 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
6726 Runtime alias tests are not supported for gather loads.
6727 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
6728 stmts referenced from SSA operands before updating SSA form.
6729
d8c69a92
IC
67302013-04-02 Ian Caulfield <ian.caulfield@arm.com>
6731 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6732
6733 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
6734 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
6735 * config/arm/cortex-a53.md: New file.
6736 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
6737 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
6738 * config/arm/arm.c (arm_issue_rate): Likewise.
6739 * config/arm/arm-tune.md: Regenerate
6740 * config/arm/arm-tables.opt: Regenerate.
6741 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 6742
239eb04c
ZC
67432013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
6744
6745 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
6746 non-static link.
6747
c902d3c8
SN
67482013-04-02 Sofiane Naci <sofiane.naci@arm.com>
6749
d8c69a92
IC
6750 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
6751 scalar load/store operations using B/H registers.
c902d3c8
SN
6752 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
6753
051d0e2f
SN
67542013-04-02 Sofiane Naci <sofiane.naci@arm.com>
6755
6756 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
6757 scalar move.
6758 * config/aarch64/aarch64.c
6759 (aarch64_simd_scalar_immediate_valid_for_move): New.
6760 * config/aarch64/aarch64-protos.h
6761 (aarch64_simd_scalar_immediate_valid_for_move): New.
6762 * config/aarch64/constraints.md (Dh, Dq): New.
6763 * config/aarch64/iterators.md (hq): New.
6764
0ee1e3d9
EB
67652013-04-02 Eric Botcazou <ebotcazou@adacore.com>
6766
6767 * reorg.c (get_branch_condition): Deal with conditional returns.
6768 (fill_simple_delay_slots): Remove dead code dealing with jumps.
6769
136fb3f7
WM
67702013-04-01 Wei Mi <wmi@google.com>
6771
6772 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
6773 Truncate operand 2 using %b asm operand modifier.
6774 (*<shift_insn><mode>3_mask): Ditto.
6775 (*<rotate_insn><mode>3_mask): Ditto.
6776
6388c738
SB
67772013-04-01 Steven Bosscher <steven@gcc.gnu.org>
6778
6779 PR middle-end/56798
6780 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
6781
f7a4d826
KK
67822013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
6783
6784 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
6785 of next_real_insn.
6786 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
6787
4b943a49
LC
67882013-03-30 Lawrence Crowl <crowl@google.com>
6789
6790 * dse.c (clear_alias_sets): Remove never set.
6791 (disqualified_clear_alias_sets): Remove never set.
6792 (clear_alias_mode_pool): Remove never set.
6793 (dse_step0): Remove condition that is never true.
6794 (canon_address): Remove condition that is never true.
6795 (dse_step7): Remove condition that is never true.
6796 (rest_of_handle_dse): Remove condition that is never true.
6797 (rest_of_handle_dse::did_global): Remove never read from above.
6798 (dse_step2_spill): Remove never called from above.
6799 (dse_step5_spill): Remove never called from above.
6800
39718607
SB
68012013-03-30 Steven Bosscher <steven@gcc.gnu.org>
6802
da5c6bde
SB
6803 * doc/md.texi (Standard Names) <casesi>: Update documentation for
6804 JUMP_TABLE_DATA changes.
6805 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
6806 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
6807 (Insns) <jump_table_data>: New entry.
6808 * doc/tm.texi: Regenerate.
6809
39718607
SB
6810 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
6811
6812 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
6813 for table jump at the end of a basic block using tablejump_p.
6814 * targhooks.c (default_invalid_within_doloop): Likewise.
6815 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
6816 target hook implementation that is identical to the default hook.
6817 (rs6000_invalid_within_doloop): Remove.
6818
6819 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
6820 unused variable from tablejump_p call.
6821
6822 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
6823 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
6824 (INSN_DELETED_P): Likewise.
6825 (emit_jump_table_data): New prototype.
6826 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
6827 after 4th as unused.
6828 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
6829 * sched-vis.c (print_insn): Likewise.
6830 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
6831 insn for compatibility with back ends that use next_active_insn to
6832 identify jump table data.
6833 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
6834 (remove_insn): Likewise.
6835 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
6836 to be emitted.
6837 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
6838 (emit_jump_table_data): New function.
6839
6840 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
6841 basic block, a JUMP_TABLE_DATA never is.
6842 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
6843 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
6844 off from code handling real insns.
6845 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
6846 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
6847 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
6848 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
6849 is not a NONDEBUG_INSN_P.
6850 * ira-costs.c (scan_one_insn): Likewise.
6851 * jump.c (mark_all_labels): Likewise.
6852 (mark_jump_label_1): Likewise.
6853 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
6854 * lra.c (get_insn_freq): Expect all insns reaching here to be in
6855 a basic block.
6856 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
6857 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
6858 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
6859 JUMP_TABLE_DATA_P insns.
6860 (calculate_elim_costs_all_insns): Likewise.
6861 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
6862 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
6863 (delete_output_reload): Code style fixups.
6864 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
6865 insn flags on this non-insn.
6866 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
6867 as scheduling barriers, for pre-change compatibility.
6868 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
6869 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
6870
6871 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
6872 redundant JUMP_TABLE_DATA_P test.
6873 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
6874 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
6875 (frv_for_each_packet): Likewise.
6876 * config/i386/i386.c (min_insn_size): Likewise.
6877 (ix86_avoid_jump_mispredicts): Likewise.
6878 * config/m32r/m32r.c (m32r_is_insn): Likewise.
6879 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
6880 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
6881 (mips16_insn_length): Robustify.
6882 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
6883 (mips16_split_long_branches): Likewise.
6884 * config/pa/pa.c (pa_combine_instructions): Likewise.
6885 * config/rs6000/rs6000.c (get_next_active_insn): Treat
6886 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
6887 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
6888 as contributing to pool range lengths.
6889 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
6890 Remove redundant JUMP_TABLE_DATA_P test.
6891 (sh_loop_align): Likewise.
6892 (split_branches): Likewise.
6893 (sh_insn_length_adjustment): Likewise.
6894 * config/spu/spu.c (get_branch_target): Likewise.
6895
0208f7da
JH
68962013-03-29 Jan Hubicka <jh@suse.cz>
6897
6898 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
6899 gcov streaming; stream hot bb threshold to ltrans.
6900 * predict.c (get_hot_bb_threshold): Break out from ....
6901 (maybe_hot_count_p): ... here.
6902 (set_hot_bb_threshold): New function.
6903 * lto-section-in.c (lto_section_name): Add profile.
6904 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
6905 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
6906 and data-streamer.h
6907 (histogram_entry): New structure.
6908 (histogram, histogram_pool): New global vars.
6909 (histogram_hash): New structure.
6910 (histogram_hash::hash): New method.
6911 (histogram_hash::equal): Likewise.
6912 (account_time_size): New function.
6913 (cmp_counts): New function.
6914 (dump_histogram): New function.
6915 (ipa_profile_generate_summary): New function.
6916 (ipa_profile_write_summary): New function.
6917 (ipa_profile_read_summary): New function.
6918 (ipa_profile): Decide on threshold.
e594716a
UB
6919 (pass_ipa_profile): Add ipa_profile_write_summary and
6920 ipa_profile_read_summary.
0208f7da
JH
6921 * Makefile.in (ipa.o): Update dependencies.
6922 * lto-streamer.h (LTO_section_ipa_profile): New section.
6923
5a6ccc94
GDR
69242013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
6925
6926 * tree.h (VAR_P): New.
6927
39385fa6
PC
69282013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
6929
6930 PR lto/56777
6931 * doc/invoke.texi ([-fwhole-program]): Fix typo.
6932
34f0d87a
SB
69332013-03-29 Steven Bosscher <steven@gcc.gnu.org>
6934
6935 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
6936 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
6937 (control_flow_insn_p): Likewise.
6938 * cfgrtl.c (duplicate_insn_chain): Likewise.
6939 * final.c (get_attr_length_1): Likewise.
6940 (shorten_branches): Likewise.
6941 (final_scan_insn): Likewise.
6942 * function.c (instantiate_virtual_regs): Likewise.
6943 * gcse.c (insert_insn_end_basic_block): Likewise.
6944 * ira-costs.c (scan_one_insn): Likewise.
6945 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
6946 * lra.c (check_rtl): Likewise.
6947 * reload1.c (elimination_costs_in_insn): Likewise.
6948 * reorg.c (follow_jumps): Likewise.
6949
6950 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
6951 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
6952 (thumb_far_jump_used_p): Likewise.
6953 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
6954 (workaround_speculation): Likewise.
6955 (add_sched_insns_for_speculation): Likewise.
6956 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
6957 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
6958 (frv_for_each_packet): Likewise.
6959 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
6960 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
6961 (final_emit_insn_group_barriers): Likewise.
6962 * config/m32r/m32r.c (m32r_is_insn): Likewise.
6963 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
6964 (mips16_insn_length): Likewise.
6965 * config/pa/pa.c (pa_reorg): Likewise.
6966 (pa_combine_instructions): Likewise.
6967 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
6968 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
6969 (sh_reorg): Likewise.
6970 (split_branches): Likewise.
6971 * config/spu/spu.c (get_branch_target): Likewise.
6972
6973 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
6974 JUMP_TABLE_DATA_P.
6975
4ac761b0
KY
69762013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
6977
39385fa6 6978 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
6979 Fix declaration name.
6980
58a49189
LC
69812013-03-28 Lawrence Crowl <crowl@google.com>
6982
6983 * graphds.h (struct graph.indicies): Remove unused.
6984 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
6985 (SCOP_ORIGINAL_PDDRS): Remove unused.
6986 * sese.h (extern insert_loop_close_phis): Removed unused.
6987 (extern insert_guard_phis): Removed unused.
6988 (extern ivtype_map_elt_info): Removed unused.
6989 (new_ivtype_map_elt): Removed unused.
6990 * sese.c (ivtype_map_elt_info): Removed unused.
6991
7b3b6ae4
LC
69922013-03-28 Lawrence Crowl <crowl@google.com>
6993
6994 * Makefile.in: Add several missing include dependences.
6995 (DUMPFILE_H): New.
6996 (test-dump.o): New. This object is not added to any executable,
6997 but is present for ad-hoc testing.
6998 * bitmap.c
6999 (debug (const bitmap_head_def &)): New.
7000 (debug (const bitmap_head_def *)): New.
7001 * bitmap.h
7002 (extern debug (const bitmap_head_def &)): New.
7003 (extern debug (const bitmap_head_def *)): New.
7004 * cfg.c
7005 (debug (edge_def &)): New.
7006 (debug (edge_def *)): New.
7007 * cfghooks.c
7008 (debug (basic_block_def &)): New.
7009 (debug (basic_block_def *)): New.
7010 * dumpfile.h
7011 (dump_node (const_tree, int, FILE *)): Correct source file.
7012 * dwarf2out.c
7013 (debug (die_struct &)): New.
7014 (debug (die_struct *)): New.
7015 * dwarf2out.h
7016 (extern debug (die_struct &)): New.
7017 (extern debug (die_struct *)): New.
7018 * gimple-pretty-print.c
7019 (debug (gimple_statement_d &)): New.
7020 (debug (gimple_statement_d *)): New.
7021 * gimple-pretty-print.h
7022 (extern debug (gimple_statement_d &)): New.
7023 (extern debug (gimple_statement_d *)): New.
7024 * ira-build.c
7025 (debug (ira_allocno_copy &)): New.
7026 (debug (ira_allocno_copy *)): New.
7027 (debug (ira_allocno &)): New.
7028 (debug (ira_allocno *)): New.
7029 * ira-int.h
7030 (extern debug (ira_allocno_copy &)): New.
7031 (extern debug (ira_allocno_copy *)): New.
7032 (extern debug (ira_allocno &)): New.
7033 (extern debug (ira_allocno *)): New.
7034 * ira-lives.c
7035 (debug (live_range &)): New.
7036 (debug (live_range *)): New.
7037 * lra-int.h
7038 (debug (lra_live_range &)): New.
7039 (debug (lra_live_range *)): New.
7040 * lra-lives.c
7041 (debug (lra_live_range &)): New.
7042 (debug (lra_live_range *)): New.
7043 * omega.c
7044 (debug (omega_pb_d &)): New.
7045 (debug (omega_pb_d *)): New.
7046 * omega.h
7047 (extern debug (omega_pb_d &)): New.
7048 (extern debug (omega_pb_d *)): New.
7049 * print-rtl.c
7050 (debug (const rtx_def &)): New.
7051 (debug (const rtx_def *)): New.
7052 * print-tree.c
7053 (debug_tree (tree): Move within file.
7054 (debug_raw (const tree_node &)): New.
7055 (debug_raw (const tree_node *)): New.
7056 (dump_tree_via_hooks (const tree_node *, int)): New.
7057 (debug (const tree_node &)): New.
7058 (debug (const tree_node *)): New.
7059 (debug_verbose (const tree_node &)): New.
7060 (debug_verbose (const tree_node *)): New.
7061 (debug_head (const tree_node &)): New.
7062 (debug_head (const tree_node *)): New.
7063 (debug_body (const tree_node &)): New.
7064 (debug_body (const tree_node *)): New.
7065 (debug_vec_tree (tree): Move and reimplement in terms of dump.
7066 (debug (vec<tree, va_gc> &)): New.
7067 (debug (vec<tree, va_gc> *)): New.
7068 * rtl.h
7069 (extern debug (const rtx_def &)): New.
7070 (extern debug (const rtx_def *)): New.
7071 * sbitmap.c
7072 (debug_raw (simple_bitmap_def &)): New.
7073 (debug_raw (simple_bitmap_def *)): New.
7074 (debug (simple_bitmap_def &)): New.
7075 (debug (simple_bitmap_def *)): New.
7076 * sbitmap.h
7077 (extern debug (simple_bitmap_def &)): New.
7078 (extern debug (simple_bitmap_def *)): New.
7079 (extern debug_raw (simple_bitmap_def &)): New.
7080 (extern debug_raw (simple_bitmap_def *)): New.
7081 * sel-sched-dump.c
7082 (debug (vinsn_def &)): New.
7083 (debug (vinsn_def *)): New.
7084 (debug_verbose (vinsn_def &)): New.
7085 (debug_verbose (vinsn_def *)): New.
7086 (debug (expr_def &)): New.
7087 (debug (expr_def *)): New.
7088 (debug_verbose (expr_def &)): New.
7089 (debug_verbose (expr_def *)): New.
7090 (debug (vec<rtx> &)): New.
7091 (debug (vec<rtx> *)): New.
7092 * sel-sched-dump.h
7093 (extern debug (vinsn_def &)): New.
7094 (extern debug (vinsn_def *)): New.
7095 (extern debug_verbose (vinsn_def &)): New.
7096 (extern debug_verbose (vinsn_def *)): New.
7097 (extern debug (expr_def &)): New.
7098 (extern debug (expr_def *)): New.
7099 (extern debug_verbose (expr_def &)): New.
7100 (extern debug_verbose (expr_def *)): New.
7101 (extern debug (vec<rtx> &)): New.
7102 (extern debug (vec<rtx> *)): New.
7103 * sel-sched-ir.h
7104 (_list_iter_cond_expr): Make inline instead of static.
7105 * sreal.c
7106 (debug (sreal &)): New.
7107 (debug (sreal *)): New.
7108 * sreal.h
7109 (extern debug (sreal &)): New.
7110 (extern debug (sreal *)): New.
7111 * tree.h
7112 (extern debug_raw (const tree_node &)): New.
7113 (extern debug_raw (const tree_node *)): New.
7114 (extern debug (const tree_node &)): New.
7115 (extern debug (const tree_node *)): New.
7116 (extern debug_verbose (const tree_node &)): New.
7117 (extern debug_verbose (const tree_node *)): New.
7118 (extern debug_head (const tree_node &)): New.
7119 (extern debug_head (const tree_node *)): New.
7120 (extern debug_body (const tree_node &)): New.
7121 (extern debug_body (const tree_node *)): New.
7122 (extern debug (vec<tree, va_gc> &)): New.
7123 (extern debug (vec<tree, va_gc> *)): New.
7124 * tree-cfg.c
7125 (debug (struct loop &)): New.
7126 (debug (struct loop *)): New.
7127 (debug_verbose (struct loop &)): New.
7128 (debug_verbose (struct loop *)): New.
7129 * tree-dump.c: Add header dependence.
7130 * tree-flow.h
7131 (extern debug (struct loop &)): New.
7132 (extern debug (struct loop *)): New.
7133 (extern debug_verbose (struct loop &)): New.
7134 (extern debug_verbose (struct loop *)): New.
7135 * tree-data-ref.c
7136 (debug (data_reference &)): New.
7137 (debug (data_reference *)): New.
7138 (debug (vec<data_reference_p> &)): New.
7139 (debug (vec<data_reference_p> *)): New.
7140 (debug (vec<ddr_p> &)): New.
7141 (debug (vec<ddr_p> *)): New.
7142 * tree-data-ref.h
7143 (extern debug (data_reference &)): New.
7144 (extern debug (data_reference *)): New.
7145 (extern debug (vec<data_reference_p> &)): New.
7146 (extern debug (vec<data_reference_p> *)): New.
7147 (extern debug (vec<ddr_p> &)): New.
7148 (extern debug (vec<ddr_p> *)): New.
7149 * tree-ssa-alias.c
7150 (debug (pt_solution &)): New.
7151 (debug (pt_solution *)): New.
7152 * tree-ssa-alias.h
7153 (extern debug (pt_solution &)): New.
7154 (extern debug (pt_solution *)): New.
7155 * tree-ssa-alias.c
7156 (debug (_var_map &)): New.
7157 (debug (_var_map *)): New.
7158 (debug (tree_live_info_d &)): New.
7159 (debug (tree_live_info_d *)): New.
7160 * tree-ssa-alias.h
7161 (extern debug (_var_map &)): New.
7162 (extern debug (_var_map *)): New.
7163 (extern debug (tree_live_info_d &)): New.
7164 (extern debug (tree_live_info_d *)): New.
7165
be77e1e5
JH
71662013-03-28 Jan Hubicka <jh@suse.cz>
7167
7168 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
7169
777e6976
IB
71702013-03-28 Ian Bolton <ian.bolton@arm.com>
7171
7172 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
7173 record only when desired or required.
7174
9cd347ae
UB
71752013-03-28 Uros Bizjak <ubizjak@gmail.com>
7176
7177 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
7178 *vec_extractv2di_1_rex64. Use x64 isa attribute.
7179
33159866 71802013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
7181
7182 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
7183 (*andsi3_compare0_uxtw): New pattern.
7184 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
7185 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
7186
89ab31c1
JH
71872013-03-28 Jan Hubicka <jh@suse.cz>
7188
7189 * data-streamer-in.c (streamer_read_gcov_count): New function.
7190 * gimple-streamer-out.c: Include value-prof.h.
7191 (output_gimple_stmt): Output histogram.
7192 (output_bb): Use streamer_write_gcov_count.
7193 * value-prof.c: Include data-streamer.h
7194 (dump_histogram_value): Add HIST_TYPE_MAX.
7195 (stream_out_histogram_value): New function.
7196 (stream_in_histogram_value): New function.
7197 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
7198 (stream_out_histogram_value, stream_in_histogram_value): Declare.
7199 * data-streamer-out.c (streamer_write_gcov_count): New function.
7200 (streamer_write_gcov_count_stream): New function.
7201 * lto-cgraph.c (lto_output_edge): Update counter streaming.
7202 (lto_output_node): Likewise.
7203 (input_node, input_edge): Likewise.
7204 * lto-streamer-out.c (output_cfg): Update streaming.
7205 * lto-streamer-in.c (input_cfg): Likewise.
7206 * data-streamer.h (streamer_write_gcov_count,
7207 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
7208 * gimple-streamer-in.c: Include value-prof.h
7209 (input_gimple_stmt): Input histograms.
7210 (input_bb): Update profile streaming.
7211
e594716a 72122013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 7213
33159866 7214 * genmodes.c (emit_max_int): New function.
8697be17 7215 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
7216 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
7217 Added doc.
8697be17 7218 * machmode.def: Fixed comment.
89ab31c1 7219
e594716a 72202013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
7221
7222 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
7223 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
7224
74946978
MP
72252013-03-28 Marek Polacek <polacek@redhat.com>
7226 Richard Biener <rguenther@suse.de>
7227
7228 PR tree-optimization/56695
7229 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
7230 build signed result of a vector comparison.
7231 * tree-cfg.c (verify_gimple_comparison): Check that a result
7232 of a vector comparison has signed type.
7233
a64b9c26
RB
72342013-03-28 Richard Biener <rguenther@suse.de>
7235
7236 PR tree-optimization/37021
7237 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
7238 do not restrict gaps between groups.
7239 * tree-vect-stmts.c (vectorizable_load): Properly account for
7240 a gap between groups.
7241
a9dc2a2f
EB
72422013-03-28 Eric Botcazou <ebotcazou@adacore.com>
7243
7244 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
7245 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
7246 is not enabled.
7247
53cb97f9
GP
72482013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
7249
7250 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
7251 * doc/extend.texi (Named Address Spaces): Ditto.
7252 (Variable Attributes): Ditto.
7253
b802ae5c
KT
72542013-03-27 Kai Tietz <ktietz@redhat.com>
7255
eddae10a
KT
7256 * config.build: Add support for cygwin x64 target.
7257 * config.gcc: Likewise.
7258 * config.host: Likewise.
7259 * configure.ac: Likewise
7260 * configure: Regenerated.
b802ae5c 7261
8269de54
KT
72622013-03-27 Kai Tietz <ktietz@redhat.com>
7263
7264 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
7265 * config/i386/t-cygwin-w64: New file.
7266 * config/i386/cygwin-w64.h: New file.
7267 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
7268 and add support for x64-cygwin target.
7269 (CPP_SPEC): Likewise.
7270 (CXX_WRAP_SPEC_LIST): Undefine before define.
7271 (LIBGCJ_SONAME): Use 15 as version.
7272
f49b33cb
RB
72732013-03-27 Richard Biener <rguenther@suse.de>
7274
7275 PR tree-optimization/56716
7276 * tree-ssa-structalias.c (perform_var_substitution): Adjust
7277 dumping for ref nodes.
7278
b37a6ce5
MJ
72792013-03-27 Martin Jambor <mjambor@suse.cz>
7280
7281 PR tree-optimization/55334
7282 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
7283 restricted pointers to arrays.
7284
9469b9b2
GDR
72852013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
7286
7287 * Makefile.in (.SUFFIXES): Add .cc.
7288 (.c.o): Apply same recipe for implicit rule .cc.o.
7289
7d24f650
RB
72902013-03-27 Richard Biener <rguenther@suse.de>
7291
7292 PR tree-optimization/37021
7293 * tree-vect-data-refs.c (vect_check_strided_load): Allow
7294 REALPART/IMAGPART_EXPRs around the supported refs.
7295 * tree-ssa-structalias.c (find_func_aliases): Assume that
7296 floating-point values are not used to transfer pointers.
7297
2f251a05
AI
72982013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
7299
39385fa6
PC
7300 * target.def (TARGET_HAS_IFUNC_P): New target hook.
7301 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
7302 * doc/tm.texi: Regenerate.
7303 * targhooks.h (default_has_ifunc_p): New.
7304 * targhooks.c (default_has_ifunc_p): Ditto.
7305 * config/linux-protos.h: New file.
7306 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of
2f251a05
AI
7307 this hook for linux which disables support of indirect functions in
7308 android.
39385fa6
PC
7309 * config/linux-android.c: New file.
7310 * config/t-linux-android.c: Ditto.
7311 * config.gcc: Added new object file linux-android.o.
7312 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 7313 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
39385fa6 7314 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
7315 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
7316 doesn't support indirect functions.
7317 * configure: Regenerate.
7318
78b4e425
BC
73192013-03-27 Bin Cheng <bin.cheng@arm.com>
7320
7321 PR target/56102
7322 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
7323 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
7324 mult-word mode.
7325
a5ba7b92
AK
73262013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7327
7328 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
7329
be624986
TG
73302013-03-27 Terry Guo <terry.guo@arm.com>
7331
7332 * config/arm/arm-cores.def: Added core cortex-r7.
7333 * config/arm/arm-tune.md: Regenerated.
7334 * config/arm/arm-tables.opt: Regenerated.
7335 * doc/invoke.texi: Added entry for core cortex-r7.
7336
0a514f47
WL
73372013-03-27 Walter Lee <walt@tilera.com>
7338
7339 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
7340 double-decrement of next_scratch_regno.
7341
9332b0d2
WL
73422013-03-27 Walter Lee <walt@tilera.com>
7343
801d9b2a 7344 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
7345 input operands.
7346 (insn_v1mulus): Ditto.
7347 (insn_v2muls): Ditto.
7348
f54ea5dd
WL
73492013-03-27 Walter Lee <walt@tilera.com>
7350
e594716a 7351 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
7352 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
7353
bf60f4ca
WL
73542013-03-27 Walter Lee <walt@tilera.com>
7355
e594716a 7356 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
7357 (*sibcall_value): Ditto.
7358
e3b51eeb
WL
73592013-03-27 Walter Lee <walt@tilera.com>
7360
7361 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
7362 (insn_mnz_v8qi): ... this ...
7363 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
7364 vector equivalent.
7365 (insn_v<n>mnz): Replaced by ...
7366 (insn_v1mnz): ... this ...
7367 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
7368 equivalent.
7369 (insn_mz_<mode>): Replaced by ...
7370 (insn_mz_v8qi): ... this ...
7371 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
7372 vector equivalent.
7373 (insn_v<n>mz): Replaced by ...
7374 (insn_v1mz): ... this ...
7375 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
7376 equivalent.
7377
4fc7b145
EB
73782013-03-26 Eric Botcazou <ebotcazou@adacore.com>
7379
7380 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
7381
6f33817e
RM
73822013-03-26 Roland McGrath <mcgrathr@google.com>
7383
7384 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
7385 than fprintf with a non-constant, non-format string.
7386
93a4145b
UB
73872013-03-26 Uros Bizjak <ubizjak@gmail.com>
7388
7389 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
7390 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
7391 operand 0 predicate.
7392 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
7393 attribute. Use general_x64nomem_operand as operand 1 predicate.
7394 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
7395 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
7396 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
7397 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
7398 (mov<mode>_insv_1): Remove expander. Merge insn with
7399 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
7400 Use general_x64nomem_operand as operand 1 predicate.
7401 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
7402 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
7403 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
7404 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
7405 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
7406 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
7407 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
7408 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
7409 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
7410 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
7411 (general_x64nomem_operand): Ditto.
7412
c6a9ed5a 74132013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
7414
7415 * config/rtems.opt: Add -pthread option.
7416
31b0a960
RB
74172013-03-26 Richard Biener <rguenther@suse.de>
7418
93a4145b
UB
7419 * alias.c (find_base_term): Avoid redundant and not used recursion.
7420 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
7421 (true_dependence_1): Compute and pass base terms to base_alias_check.
7422 (write_dependence_p): Likewise.
7423 (may_alias_p): Likewise.
7424
79517551
SN
74252013-03-26 Sofiane Naci <sofiane.naci@arm.com>
7426
7427 * config/aarch64/aarch64.c (aarch64_classify_address): Support
7428 PC-relative load in SI modes and above only.
7429
a76213b9
XQ
74302013-03-26 Xinyu Qi <xyqi@marvell.com>
7431
7432 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
7433 * config/arm/iwmmxt.md (WCGR0): Update.
7434 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 7435
37ff9355
UB
74362013-03-26 Uros Bizjak <ubizjak@gmail.com>
7437
7438 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
7439 Use x64 and nox64 isa attributes.
7440
30b0317c
RB
74412013-03-26 Richard Biener <rguenther@suse.de>
7442
7443 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
7444 alignment computations and rely on get_object_alignment_1
7445 for the !TYPE_P case.
7446 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
7447
cbcdb140
WL
74482013-03-26 Walter Lee <walt@tilera.com>
7449
7450 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
7451 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
7452
dd884525 74532013-03-25 Jeff Law <law@redhat.com>
be672e08 7454
33159866
UB
7455 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
7456 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
7457 wrong version of prior patch.
7458
0051d3ec
WL
74592013-03-25 Walter Lee <walt@tilera.com>
7460
7461 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
7462 TILEGX_INSN_SHUFFLEBYTES1.
7463 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
7464 shufflebytes1.
7465 (tilegx_builtins): Ditto.
7466 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
7467
065a3605
WL
74682013-03-25 Walter Lee <walt@tilera.com>
7469
7470 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
7471 (floatunssisf2): New pattern.
7472 (floatsidf2): New pattern.
7473 (floatunssidf2): New pattern.
065a3605 7474
5b2a3c82
WL
74752013-03-25 Walter Lee <walt@tilera.com>
7476
7477 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
7478 tests for constraint J, K, N, P.
7479
192ea533
WL
74802013-03-25 Walter Lee <walt@tilera.com>
7481
7482 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
7483 Use indirect/pcrel encoding.
7484 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
7485 Ditto.
7486
855e0d0b
SE
74872013-03-25 Steve Ellcey <sellcey@mips.com>
7488
7489 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
7490 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
7491 * config/mips/mips.c (mips_option_override): Set IMADD default.
7492 * config/mips/mips.h (PTF_AVOID_IMADD): New.
7493 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
7494 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
7495 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
7496 * doc/invoke.texi (-mimadd/-mno-imadd): New.
7497
39e45653
JL
74982013-03-25 Jeff Law <law@redhat.com>
7499
7500 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
7501 slightly to avoid creating and folding useless trees. Simplify
7502 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
7503
7482c470
UB
75042013-03-25 Uros Bizjak <ubizjak@gmail.com>
7505
7506 * config/i386/i386.md (*zero_extendsidi2): Merge with
7507 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
7508 * config/i386/predicates.md (x86_64_zext_operand): Rename from
7509 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
7510 targets. Clarify comment.
7511
4a53743e
MJ
75122013-03-25 Martin Jambor <mjambor@suse.cz>
7513
7514 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
7515 pass-through jump functions differently.
7516 (ipa_read_jump_function): Likewise. Also use setter functions to set
7517 up jump functions.
7518
162712de
MJ
75192013-03-25 Martin Jambor <mjambor@suse.cz>
7520
7521 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
7522 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
7523 process it.
7524 (ipa_get_indirect_edge_target): New function.
7525 (devirtualization_time_bonus): New parameter known_aggs, pass it to
7526 ipa_get_indirect_edge_target. Update all callers.
7527 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
7528 ipa_get_indirect_edge_target_1 instead of calling
7529 ipa_get_indirect_edge_target.
7530 (create_specialized_node): Pass aggvlas to
7531 ipcp_discover_new_direct_edges.
7532
a5a4c20a
KT
75332013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7534
7535 * config/arm/arm.md (f_sels, f_seld): New types.
7536 (*cmov<mode>): New pattern.
7537 * config/arm/predicates.md (arm_vsel_comparison_operator): New
7538 predicate.
7539
f992b9fc
KT
75402013-03-25 Kai Tietz <ktietz@redhat.com>
7541
7542 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
7543 POSIX-printf for mingw-hosted builds.
7544
c16fd676
RB
75452013-03-25 Richard Biener <rguenther@suse.de>
7546
7547 PR middle-end/56694
7548 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
7549 must-not-throw stmt location.
7550
5ad29f12
KT
75512013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7552
7553 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
7554 Emit load-acquire versions when acq is true.
7555 (arm_emit_store_exclusive): Add rel parameter.
7556 Emit store-release versions when rel is true.
7557 (arm_split_compare_and_swap): Use acquire-release instructions
7558 instead.
7559 of barriers when appropriate.
7560 (arm_split_atomic_op): Likewise.
7561 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
7562 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
7563 (VUNSPEC_SLX): Likewise.
7564 (VUNSPEC_LDA): Likewise.
7565 (VUNSPEC_STL): Likewise.
7566 * config/arm/sync.md (atomic_load<mode>): New pattern.
7567 (atomic_store<mode>): Likewise.
7568 (arm_load_acquire_exclusive<mode>): Likewise.
7569 (arm_load_acquire_exclusivesi): Likewise.
7570 (arm_load_acquire_exclusivedi): Likewise.
7571 (arm_store_release_exclusive<mode>): Likewise.
7572
03a7dddb
CM
75732013-03-25 Catherine Moore <clm@codesourcery.com>
7574
7575 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
7576 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
7577 * config/mip/predicates.md (lwsp_swsp_operand,
7578 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
7579 sb16_operand, db4_operand, db7_operand, ib3_operand,
7580 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
7581 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
7582 andi16_operand): New predicates.
7583 * config/mips/mips.md (compression): New attribute.
7584 (enabled): New attribute.
7585 (length): Consider compression in computing length.
7586 (shift_compression): New code attribute.
7587 (*add<mode>3): New operands. Record compression.
7588 (sub<mode>3): Likewise.
7589 (one_cmpl<mode>2): Likewise.
7590 (*and<mode>3): Likewise.
7591 (*ior<mode>3): Likewise.
7592 (unnamed pattern for xor): Likewise.
7593 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
7594 (*<optab><mode>3): Likewise.
7595 (*mov<mode>_internal: Likewise.
7596 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
7597 (mips_unsigned_immediate_p): New.
7598 (umips_lwsp_swsp_address_p): New.
7599 (m16_based_address_p): New.
7600 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
7601 (mips_unsigned_immediate_p): New prototype.
7602 (lwsp_swsp_address_p): New prototype.
7603 (m16_based_address_p): New prototype.
7604 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
7605 (mips_signed_immediate_p): New function.
7606 (m16_based_address_p): New function.
7607 (lwsp_swsp_address_p): New function.
7608 (mips_print_operand_punctuation): Recognize short delay slot insns
7609 for microMIPS.add<mode>3"
7610
f35c297f 76112013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 7612
f35c297f
KT
7613 PR target/56720
7614 * config/arm/iterators.md (v_cmp_result): New mode attribute.
7615 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
7616
051b9446
RB
76172013-03-25 Richard Biener <rguenther@suse.de>
7618
7619 PR tree-optimization/56689
7620 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
7621 any edge.
7622
374001cb
RB
76232013-03-25 Richard Biener <rguenther@suse.de>
7624
7625 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
7626 of bitmap.
7627 (memory_references): Likewise.
7628 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
7629 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
7630 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
7631 (gather_mem_refs_in_loops): Fold into ...
7632 (analyze_memory_references): ... this. Move initialization
7633 to tree_ssa_lim_initialize.
7634 (fill_always_executed_in): Rename to ...
7635 (fill_always_executed_in_1): ... this.
7636 (fill_always_executed_in): Move contains_call computation to
7637 this new function from ...
7638 (tree_ssa_lim_initialize): ... here.
7639 (tree_ssa_lim): Call fill_always_executed_in.
7640
57895947
EB
76412013-03-25 Eric Botcazou <ebotcazou@adacore.com>
7642
7643 * postreload.c (reload_combine): Fix code detecting returns.
7644
1e1b18c1
EB
76452013-03-25 Eric Botcazou <ebotcazou@adacore.com>
7646
7647 * function.c (emit_use_return_register_into_block): On cc0 targets,
7648 do not emit the sequence between cc0 setter and user.
7649
9216baf1
KT
76502013-03-25 Kai Tietz <ktietz@redhat.com>
7651
1e1b18c1
EB
7652 * config/i386/predicates.md (local_symbolic_operand): Interpret
7653 dll-imported symbols as none-local.
9216baf1 7654
76421b44
RB
76552013-03-25 Richard Biener <rguenther@suse.de>
7656
7657 * tree-ssa-loop-im.c (struct depend): Remove.
7658 (struct lim_aux_data): Make depends a vec of gimples.
7659 (free_lim_aux_data): Adjust.
7660 (add_dependency): Likewise.
7661 (set_level): Likewise.
7662
d154bfa2
RB
76632013-03-25 Richard Biener <rguenther@suse.de>
7664
7665 PR middle-end/56434
7666 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
7667 the pointer returned by calls with ECF_MALLOC set.
7668
2cd9804e
UB
76692013-03-24 Uros Bizjak <ubizjak@gmail.com>
7670
acef5fe0
UB
7671 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
7672
76732013-03-24 Uros Bizjak <ubizjak@gmail.com>
7674
7675 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
7676 using MMXMODE mode iterator.
7677 (*move<mode>_internal): Merge with *movv2sf_internal and
7678 *movv2sf_internal_rex64 using MMXMODE mode iterator.
7679
225ccc68
SB
76802013-03-23 Steven Bosscher <steven@gcc.gnu.org>
7681
85c0f02d
SB
7682 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
7683 (record_last_mem_set_info): Likewise.
7684
225ccc68
SB
7685 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
7686 of XNEWVEC followed by memset.
7687 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
7688
b64925dc
SB
76892013-03-23 Steven Bosscher <steven@gcc.gnu.org>
7690
7691 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
7692 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
7693 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
7694 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
7695 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
7696 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
7697 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
7698 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
7699 BARRIER_P instead of GET_CODE.
7700
b9aaf52e
EB
77012013-03-23 Eric Botcazou <ebotcazou@adacore.com>
7702
7703 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
7704 inaccuracy in the probing code.
7705
7706 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
7707 (ctrapdi4): Likewise.
7708
66de4d7c
EB
77092013-03-23 Eric Botcazou <ebotcazou@adacore.com>
7710
7711 * calls.c (expand_call): Add missing guard to code handling return
7712 of non-BLKmode structures in MSB.
7713 * function.c (expand_function_end): Likewise.
7714
4f25c8fb
EB
77152013-03-23 Eric Botcazou <ebotcazou@adacore.com>
7716
7717 * combine.c (try_combine): Adjust comment. Do not add the set of
7718 insn #0 if the destination indirectly is set or dies in insn #2.
7719 Tidy up code to distribute a new note.
7720
23b7850d
UB
77212013-03-22 Uros Bizjak <ubizjak@gmail.com>
7722
7723 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
7724 also for alternatives 16 and 17.
7725
bed852cf
UB
77262013-03-22 Uros Bizjak <ubizjak@gmail.com>
7727
7728 * config/i386/sse.md (*mov<mode>_internal): Merge with
7729 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
7730 Emit insn template depending on type attribute. Use
7731 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
7732 movd instead of movq mnemonic for interunit moves. Rewrite mode
7733 attribute calculation. Remove unit attribute calculation.
7734 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
7735 Set prefix_data16 attribute for DImode ssemov types.
7736 Use Ym instead of y for SSE-MMX conversion alternatives.
7737 Reorder operand constraints.
7738
1e8a7937
SB
77392013-03-22 Steven Bosscher <steven@gcc.gnu.org>
7740
7741 * df.h (df_insn_delete): Adjust prototype.
7742 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
7743 and let it decide whether mark the basic block dirty.
7744 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
7745 * df-scan.c (df_insn_info_delete): New helper function, split
7746 off from df_insn_delete.
7747 (df_scan_free_bb_info): Use it.
7748 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
7749 Likewise.
7750 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
7751 that the insn is actually an insn and it has a non-NULL basic block.
7752 Do not mark basic block dirty if only deleting a DEBUG_INSN.
7753
e14d094c
RB
77542013-03-22 Richard Biener <rguenther@suse.de>
7755
7756 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
7757 dep_ref members.
7758 (mem_ref_alloc): Do not allocate them.
7759 (refs_independent_p): Do not query or maintain a cache.
7760
e9cf7316
RB
77612013-03-22 Richard Biener <rguenther@suse.de>
7762
7763 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
7764 (gather_mem_refs_in_loops): Do not compute it.
7765 (analyze_memory_references): Do not allocate it.
7766 (tree_ssa_lim_finalize): Do not free it.
7767 (for_all_locs_in_loop): Do not query all_refs_in_loop.
7768
f046e81b
RB
77692013-03-22 Richard Biener <rguenther@suse.de>
7770
7771 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 7772
a05c0ddf
IB
77732013-03-22 Ian Bolton <ian.bolton@arm.com>
7774
7775 * config/aarch64/aarch64.c (aarch64_print_operand): New
7776 format specifier for printing a constant in hex.
7777 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
7778 format specifier for printing second operand.
7779
c00217fc
RB
77802013-03-22 Richard Biener <rguenther@suse.de>
7781
7782 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
7783 bitmaps.
7784 (gather_mem_refs_in_loops): Perform store accumulation here.
7785 (create_vop_ref_mapping_loop): Remove.
7786 (create_vop_ref_mapping): Likewise.
7787 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 7788 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
7789 (record_indep_loop): Remove.
7790 (record_dep_loop): New function.
7791 (ref_indep_loop_p_1): Adjust to only walk over references
7792 in the loop, not its subloops.
7793 (ref_indep_loop_p): Rename to ...
7794 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
7795 maintaining a more fine-grained cache.
7796 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
7797 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
7798
15d19bf8
RB
77992013-03-22 Richard Biener <rguenther@suse.de>
7800
7801 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
7802 (struct mem_ref): Make accesses_in_loop a vec of a vec of
7803 aggregate mem_ref_loc.
7804 (free_mem_ref_locs): Inline into ...
7805 (memref_free): ... this and adjust.
7806 (mem_ref_alloc): Adjust.
7807 (mem_ref_locs_alloc): Remove.
7808 (record_mem_ref_loc): Adjust.
7809 (get_all_locs_in_loop): Rewrite into ...
7810 (for_all_locs_in_loop): ... this iterator.
7811 (rewrite_mem_ref_loc): New functor.
7812 (rewrite_mem_refs): Use for_all_locs_in_loop.
7813 (sm_set_flag_if_changed): New functor.
7814 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
7815 (ref_always_accessed): New functor.
7816 (ref_always_accessed_p): Use for_all_locs_in_loop.
7817
6f37411d
MG
78182013-03-21 Marc Glisse <marc.glisse@inria.fr>
7819
7820 * tree-pass.h (PROP_gimple_lvec): New.
7821 * passes.c (dump_properties): Handle PROP_gimple_lvec.
7822 (init_optimization_passes): Move pass_lower_vector.
7823 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
7824 PROP_gimple_lvec.
7825 (pass_lower_vector): Provide PROP_gimple_lvec.
7826 (pass_lower_vector_ssa): Likewise.
7827 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
7828
511ef689
MW
78292013-03-21 Mark Wielaard <mjw@redhat.com>
7830
7831 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
7832
cc1df30b
UB
78332013-03-21 Uros Bizjak <ubizjak@gmail.com>
7834
7835 * config/i386/i386.md (*movdi_internal): Disparage slightly
7836 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
7837 conversion alternatives.
7838
c845cfe1
JJ
78392013-03-21 Jakub Jelinek <jakub@redhat.com>
7840
37e99116
JJ
7841 PR middle-end/48087
7842 * diagnostic.def (DK_WERROR): New kind.
7843 * diagnostic.h (werrorcount): Define.
7844 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
7845 promoted to DK_ERROR, increment DK_WERROR counter instead of
7846 DK_ERROR counter.
7847 * toplev.c (toplev_main): Call print_ignored_options even if
7848 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
7849 even if just werrorcount is non-zero.
7850
c845cfe1
JJ
7851 PR debug/55608
7852 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
7853 on failure.
7854 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
7855 (string_cst_pool_decl): New function.
7856 (optimize_one_addr_into_implicit_ptr): New function.
7857 (resolve_addr_in_expr): Optimize DWARF location expression
7858 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
7859 which doesn't live in memory, but has DW_AT_location or
7860 DW_AT_const_value, or refers to a string literal, into
7861 DW_OP_GNU_implicit_pointer.
7862 (optimize_location_into_implicit_ptr): New function.
7863 (resolve_addr): If removing DW_AT_location of a variable because
7864 it was DW_OP_addr of address of the variable, but the variable doesn't
7865 live in memory, try to emit const value attribute for the initializer.
7866
08e0cda6
MG
78672013-03-21 Marc Glisse <marc.glisse@inria.fr>
7868
7869 * tree.h (VECTOR_TYPE_P): New macro.
7870 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
7871 TYPE_MODE): Use it.
7872 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
7873 VEC_COND_EXPR cannot be lvalues.
7874 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
7875
d08633b4
MG
78762013-03-21 Marc Glisse <marc.glisse@inria.fr>
7877
7878 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
7879 Restrict the transformation to equal modes.
7880
e6647190
RB
78812013-03-21 Richard Biener <rguenther@suse.de>
7882
7883 PR tree-optimization/39326
7884 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
7885 (MEM_ANALYZABLE): Adjust.
7886 (record_mem_ref_loc): Move bitmap ops ...
7887 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
7888 unanalyzable refs, do not record locations for it.
7889 (analyze_memory_references): Allocate ref zero as shared
7890 unanalyzable ref.
7891 (refs_independent_p): Do not test for unanalyzed mems here.
7892 (ref_indep_loop_p_1): Special-case disambiguation against
7893 the unanalyzed ref.
cc1df30b 7894 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 7895
65074f54
CL
78962013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
7897
7898 * config/arm/arm-protos.h (tune_params): Add
7899 prefer_neon_for_64bits field.
7900 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
7901 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
7902 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
7903 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
7904 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
7905 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
7906 (arm_option_override): Handle -mneon-for-64bits new option.
7907 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
7908 (prefer_neon_for_64bits): Declare new variable.
7909 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 7910 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
7911 (arch_enabled): Handle new arch types. Remove support for onlya8
7912 and nota8.
7913 (one_cmpldi2): Use new arch names.
bc5faa5b 7914 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
7915 * config/arm/arm.opt (mneon-for-64bits): Add option.
7916 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
7917 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
7918 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
7919 of onlya8.
7920 * doc/invoke.texi (-mneon-for-64bits): Document.
7921
5a2d2a79
RB
79222013-03-21 Richard Biener <rguenther@suse.de>
7923
7924 PR tree-optimization/39326
7925 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
7926 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 7927 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 7928
5abe1e05
RB
79292013-03-21 Richard Biener <rguenther@suse.de>
7930
7931 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
7932 (vect_insert_into_interleaving_chain): Likewise.
7933 (vect_drs_dependent_in_basic_block): Inline ...
7934 (vect_slp_analyze_data_ref_dependence): ... here. New function,
7935 split out from ...
7936 (vect_analyze_data_ref_dependence): ... here. Simplify.
7937 (vect_check_interleaving): Simplify.
7938 (vect_analyze_data_ref_dependences): Likewise. Split out ...
7939 (vect_slp_analyze_data_ref_dependences): ... this new function.
7940 (dr_group_sort_cmp): New function.
7941 (vect_analyze_data_ref_accesses): Compute data-reference groups
7942 here instead of in vect_analyze_data_ref_dependence. Use
7943 a more efficient algorithm.
7944 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
7945 vect_slp_analyze_data_ref_dependences. Call
7946 vect_analyze_data_ref_accesses earlier.
7947 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
7948 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
7949 (vect_slp_analyze_data_ref_dependences): New prototype.
7950
cad1735b
RB
79512013-03-21 Richard Biener <rguenther@suse.de>
7952
7953 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
7954 ref is stored in the loop.
7955 (find_refs_for_sm): Walk only over all stores.
7956 (store_motion_loop): Allocate from lim_bitmap_obstack.
7957 (store_motion): Likewise.
7958
141310ef
RB
79592013-03-21 Richard Biener <rguenther@suse.de>
7960
7961 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
7962 Update virtual SSA form.
7963
5022315a
RO
79642013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7965
7966 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
7967 * configure: Regenerate.
7968 * config.in: Regenerate.
7969 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
7970 if !HAVE_LD_EH_FRAME_CIEV3.
7971
50d4421c
RB
79722013-03-21 Richard Biener <rguenther@suse.de>
7973
7974 * tree-cfg.c (verify_expr_no_block): New function.
7975 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
7976 nor DECL_VALUE_EXPR have locations with associated blocks.
7977 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
7978 (clear_unused_block_pointer): Remove code dealing with
7979 blocks in DECL_DEBUG_EXPR locations.
7980
839b422f
RB
79812013-03-21 Richard Biener <rguenther@suse.de>
7982
7983 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
7984 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
7985 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
7986 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
7987 instead of DECL_DEBUG_EXPR_IS_FROM.
7988 * gimplify.c (gimplify_modify_expr): Likewise.
7989 * tree-cfg.c (verify_expr_location_1): Likewise.
7990 * tree-complex.c (create_one_component_var): Likewise.
7991 * tree-sra.c (create_access_replacement): Likewise.
7992 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
7993 (clear_unused_block_pointer): Likewise.
7994 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
7995 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
7996 * var-tracking.c (var_debug_decl): Likewise.
7997 (track_expr_p): Likewise.
7998 * tree-inline.c (add_local_variables): Likewise. Set
7999 DECL_HAS_DEBUG_EXPR_P after copying it.
8000 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
8001 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
8002
fe04878d
UB
80032013-03-21 Uros Bizjak <ubizjak@gmail.com>
8004
8005 PR bootstrap/56656
8006 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
8007 * configure: Regenerate.
8008 * config.in: Regenerate.
8009 * config/i386/i386.md (*movdf_internal): Use
8010 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
8011 movd instead of movq mnemonic for interunit moves.
8012 (*movdi_internal): Ditto.
8013
bd059b26 80142013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
8015
8016 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
8017 (abd<mode>_3): New pattern.
8018 (aba<mode>_3): New pattern.
8019 (fabd<mode>_3): New pattern.
8020
bd059b26 80212013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
8022
8023 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
8024 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
8025 occurrence of REGISTER_PREFIX as its empty string.
8026
4f1f78b9
JL
80272013-03-20 Jeff Law <law@redhat.com>
8028
8029 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
8030 addititional equivalences for equality comparisons between an SSA_NAME
8031 and a constant where the SSA_NAME was set from a widening conversion.
8032
327a1118
WL
80332013-03-20 Walter Lee <walt@tilera.com>
8034
8035 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
8036
813e0036
UB
80372013-03-20 Uros Bizjak <ubizjak@gmail.com>
8038
8039 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
8040 depending on type attribute.
8041 (*movti_internal): Ditto.
8042 (*movtf_internal): Ditto.
8043 (*movxf_internal): Ditto.
8044 (*movdf_internal): Ditto.
8045 (*movsf_internal): Ditto.
8046
7cf34aae
UB
80472013-03-20 Uros Bizjak <ubizjak@gmail.com>
8048
8049 * config/i386/i386.md (*movti_internal): Set prefix attribute to
8050 maybe_vex for sselog1 and ssemov types.
8051 (*movdi_internal): Reorder operand constraints.
8052 (*movsi_internal): Ditto. Set prefix attribute to
8053 maybe_vex for sselog1 and ssemov types.
8054 (*movtf_internal): Set prefix attribute to maybe_vex
8055 for sselog1 and ssemov types.
8056 (*movdf_internal): Ditto. Set prefix_data16 attribute for
8057 DImode ssemov types. Reorder operand constraints.
8058 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
8059 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
8060 attribute for SImode ssemov types. Reorder operand constraints.
8061
19321415
MJ
80622013-03-20 Martin Jambor <mjambor@suse.cz>
8063
8064 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
8065 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
8066
c6d5ff83
MM
80672013-03-20 Pat Haugen <pthaugen@us.ibm.com>
8068
8069 * config/rs6000/predicates.md (indexed_address, update_address_mem
8070 update_indexed_address_mem): New predicates.
8071 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
8072 attribute for load/store instructions.
8073 * config/rs6000/dfp.md (movsd_store): Likewise.
8074 (movsd_load): Likewise.
8075 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
8076 (unnamed HI->DI extend define_insn): Likewise.
8077 (unnamed SI->DI extend define_insn): Likewise.
8078 (unnamed QI->SI extend define_insn): Likewise.
8079 (unnamed QI->HI extend define_insn): Likewise.
8080 (unnamed HI->SI extend define_insn): Likewise.
8081 (unnamed HI->SI extend define_insn): Likewise.
8082 (extendsfdf2_fpr): Likewise.
8083 (movsi_internal1): Likewise.
8084 (movsi_internal1_single): Likewise.
8085 (movhi_internal): Likewise.
8086 (movqi_internal): Likewise.
8087 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
8088 attribute for load/store instructions.
8089 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
8090 instructions.
8091 (mov<mode>_softfloat): Likewise.
8092 (mov<mode>_hardfloat32): Likewise.
8093 (mov<mode>_hardfloat64): Likewise.
8094 (mov<mode>_softfloat64): Likewise.
8095 (movdi_internal32): Likewise.
8096 (movdi_internal64): Likewise.
8097 (probe_stack_<mode>): Likewise.
8098
80992013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
8100
8101 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
8102 floating point, and decimal floating point to reload iterator.
8103
8104 * config/rs6000/constraints.md (wl constraint): New constraints to
8105 return FLOAT_REGS if certain options are used to reduce the number
8106 of separate patterns that exist in the file.
8107 (wx constraint): Likewise.
8108 (wz constraint): Likewise.
8109
8110 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
8111 -mdebug=reg, print wg, wl, wx, and wz constraints.
8112 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
8113 Initialize the reload functions for 64-bit binary/decimal floating
8114 point types.
8115 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
8116 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
8117 create the buffer on the stack to overcome not having a 32-bit
8118 load and store.
8119 (rs6000_emit_move): Likewise.
8120 (rs6000_secondary_memory_needed_rtx): Likewise.
8121 (rs6000_alloc_sdmode_stack_slot): Likewise.
8122 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
8123 via xxlxor, just like DFmode 0.0.
8124
8125 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
8126 define as 1 if we are running on a power7 or newer.
8127 (enum r6000_reg_class_enum): Add new constraints.
8128
8129 * config/rs6000/dfp.md (movsd): Delete, combine with binary
8130 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
8131 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 8132 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
8133 (movsd splitter): Likewise.
8134 (movsd_hardfloat): Likewise.
8135 (movsd_softfloat): Likewise.
8136
8137 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
8138 binary and decimal floating point moves.
8139 (fmove_ok): New attributes to combine binary and decimal floating
8140 point moves, and to combine power6x (mfpgpr) moves along normal
8141 floating moves.
8142 (real_value_to_target): Likewise.
8143 (f32_lr): Likewise.
8144 (f32_lm): Likewise.
8145 (f32_li): Likewise.
8146 (f32_sr): Likewise.
8147 (f32_sm): Likewise.
8148 (f32_si): Likewise.
8149 (movsf): Combine binary and decimal floating point moves. Combine
8150 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 8151 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
8152 (mov<mode> for SFmode/SDmode); Likewise.
8153 (SFmode/SDmode splitters): Likewise.
8154 (movsf_hardfloat): Likewise.
8155 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
8156 (movsf_softfloat): Likewise.
8157 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
8158
8159 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
8160 wx and wz constraints.
8161
8162 * config/rs6000/constraints.md (wg constraint): New constraint to
8163 return FLOAT_REGS if -mmfpgpr (power6x) was used.
8164
8165 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
8166 constraint.
8167
8168 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
8169 -mdebug=reg, print wg, wl, wx, and wz constraints.
8170 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
8171 Initialize the reload functions for 64-bit binary/decimal floating
8172 point types.
8173 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
8174 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
8175 create the buffer on the stack to overcome not having a 32-bit
8176 load and store.
8177 (rs6000_emit_move): Likewise.
8178 (rs6000_secondary_memory_needed_rtx): Likewise.
8179 (rs6000_alloc_sdmode_stack_slot): Likewise.
8180 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
8181 via xxlxor, just like DFmode 0.0.
8182
c6d5ff83
MM
8183 * config/rs6000/dfp.md (movdd): Delete, combine with binary
8184 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
8185 with other moves by using conditional constraits (wg). Use LFIWZX
8186 and STFIWX for loading SDmode on power7.
8187 (movdd splitters): Likewise.
8188 (movdd_hardfloat32): Likewise.
8189 (movdd_softfloat32): Likewise.
8190 (movdd_hardfloat64_mfpgpr): Likewise.
8191 (movdd_hardfloat64): Likewise.
8192 (movdd_softfloat64): Likewise.
8193
8194 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
8195 64-bit binary and decimal floating point moves.
8196 (FMOVE64X): Likewise.
8197 (movdf): Combine 64-bit binary and decimal floating point moves.
8198 Combine power6x (mfpgpr) moves with other moves by using
8199 conditional constraits (wg).
8200 (mov<mode> for DFmode/DDmode): Likewise.
8201 (DFmode/DDmode splitters): Likewise.
8202 (movdf_hardfloat32): Likewise.
8203 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
8204 (movdf_softfloat32): Likewise.
8205 (movdf_hardfloat64_mfpgpr): Likewise.
8206 (movdf_hardfloat64): Likewise.
8207 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
8208 (movdf_softfloat64): Likewise.
8209 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
8210 (reload_<mode>_load): Move to later in the file so they aren't in
8211 the middle of the floating point move insns.
8212 (reload_<mode>_store): Likewise.
8213
8214 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
8215 constraint.
8216
8217 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
8218 constraint if -mdebug=reg.
bd059b26
UB
8219 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
8220 Enable using dd reload support if needed.
c6d5ff83
MM
8221
8222 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
8223 binary and decimal floating point moves in rs6000.md.
8224 (movtd_internal): Likewise.
8225
8226 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
8227 decimal floating point moves.
8228 (movtf): Likewise.
8229 (movtf_internal): Likewise.
8230 (mov<mode>_internal, TDmode/TFmode): Likewise.
8231 (movtf_softfloat): Likewise.
8232 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
8233
8234 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
8235 movdi_internal64, using wg constraint for move direct operations.
8236 (movdi_internal64): Likewise.
8237
8238 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
8239 MODES_TIEABLE_P for selected modes. Print the numerical value of
8240 the various virtual registers. Use GPR/FPR first/last values,
8241 instead of hard coding the register numbers. Print which modes
8242 have reload functions registered.
bd059b26
UB
8243 (rs6000_option_override_internal): If -mdebug=reg, trace the options
8244 settings before/after setting cpu, target and subtarget settings.
8245 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
8246 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
8247 (rs6000_secondary_reload_fail): Likewise.
8248 (rs6000_secondary_reload_inner): Likewise.
8249
8250 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
8251 macros for first/last GPR and FPR registers.
8252 (LAST_GPR_REGNO): Likewise.
8253 (FIRST_FPR_REGNO): Likewise.
8254 (LAST_FPR_REGNO): Likewise.
8255
8256 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
8257 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
8258 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
8259 (vcond<mode><mode>): Likewise.
8260 (vcondu<mode><mode>): Likewise.
8261 (vector_gtu<mode>): Likewise.
8262 (vector_gte<mode>): Likewise.
8263 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 8264 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
8265 (ior<mode>3): Likewise.
8266 (and<mode>3): Likewise.
8267 (one_cmpl<mode>2): Likewise.
8268 (nor<mode>3): Likewise.
8269 (andc<mode>3): Likewise.
8270
8271 * config/rs6000/constraints.md (wt constraint): New constraint
8272 that returns VSX_REGS if TImode is allowed in VSX registers.
8273
8274 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
8275 constant under VSX.
8276
8277 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
8278 similar to TImode, but it is restricted to being in the GPRs.
8279
8280 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
8281 TImode to occupy a single VSX register.
8282
8283 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
8284 -mvsx-timode for power7/power8.
8285 (power7 cpu): Likewise.
8286 (power8 cpu): Likewise.
8287
8288 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
8289 sure that TFmode/TDmode take up two registers if they are ever
8290 allowed in the upper VSX registers.
8291 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
8292 registers.
8293 (rs6000_init_hard_regno_mode_ok): Likewise.
8294 (rs6000_debug_reg_global): Add debugging for PTImode and wt
8295 constraint. Print if LRA is turned on.
8296 (rs6000_option_override_internal): Give an error if -mvsx-timode
8297 and VSX is not enabled.
8298 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
8299 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
8300 to reg+offset addressing. Use PTImode when checking offset
8301 addresses for validity.
8302 (reg_offset_addressing_ok_p): Likewise.
8303 (rs6000_legitimate_offset_address_p): Likewise.
8304 (rs6000_legitimize_address): Likewise.
8305 (rs6000_legitimize_reload_address): Likewise.
8306 (rs6000_legitimate_address_p): Likewise.
8307 (rs6000_eliminate_indexed_memrefs): Likewise.
8308 (rs6000_emit_move): Likewise.
8309 (rs6000_secondary_reload): Likewise.
8310 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
8311 reloads to fpr registers to continue to use reg+offset addressing,
8312 but 64-bit reloads to altivec registers need reg+reg addressing.
8313 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
8314 it. Treat LO_SUM like a PLUS operation.
8315 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 8316 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
8317 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
8318 registers to share a register with a smaller sized type, since VSX
8319 puts scalars in the upper 64-bits.
8320 (print_operand): Add support for PTImode.
8321 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
8322 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
8323 registers, but don't have arithmetic support.
8324 (rs6000_memory_move_cost): Add test for VSX.
8325 (rs6000_opt_masks): Add -mvsx-timode.
8326
8327 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
8328 for TImode.
8329 (VSs): Likewise.
8330 (VSr): Use wt constraint for TImode.
8331 (VSv): Drop TImode support.
8332 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
8333 (vsx_movti_64bit): Likewise.
8334 (vsx_movti_32bit): Likewise.
8335 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
8336 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
8337 one '?' on the appropriate output constraint. Do not allow TImode
8338 logical operations on 32-bit systems.
8339 (vsx_ior<mode>3): Likewise.
8340 (vsx_xor<mode>3): Likewise.
8341 (vsx_one_cmpl<mode>2): Likewise.
8342 (vsx_nor<mode>3): Likewise.
8343 (vsx_andc<mode>3): Likewise.
8344 (vsx_concat_<mode>): Likewise.
8345 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
8346
8347 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
8348 OPTION_MASK_VSX_TIMODE.
8349 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
8350 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
8351
8352 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
8353 (TI2 iterator): New iterator for TImode, PTImode.
8354 (wd mode attribute): Add values for vector types.
bd059b26
UB
8355 (movti_string): Replace TI move operations with operations for TImode
8356 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
8357 (mov<mode>_string, TImode/PTImode): Likewise.
8358 (movti_ppc64): Likewise.
8359 (mov<mode>_ppc64, TImode/PTImode): Likewise.
8360 (TI mode splitters): Likewise.
8361
8362 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
8363 constraint.
8364
1fc5eced
MG
83652013-03-20 Marc Glisse <marc.glisse@inria.fr>
8366
8367 PR tree-optimization/56355
8368 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
8369 Also handle integers with undefined overflow.
8370
22c4c869
CM
83712013-03-20 Catherine Moore <clm@codesourcery.com>
8372 Maciej W. Rozycki <macro@codesourcery.com>
8373 Tom de Vries <tom@codesourcery.com>
8374 Nathan Sidwell <nathan@codesourcery.com>
8375 Iain Sandoe <iain@codesourcery.com>
8376 Nathan Froyd <froydnj@codesourcery.com>
8377 Chao-ying Fu <fu@mips.com>
8378
8379 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 8380 Document new function attributes.
22c4c869
CM
8381 * doc/invoke.texi (minterlink-compressed, mmicromips,
8382 m14k, m14ke, m14kec): Document new options.
8383 (minterlink-mips16): Update documentation.
8384 * doc/md.texi (ZC, ZD): Document new constraints.
8385 * configure.ac (gcc_cv_as_micromips): Check if linker
8386 supports the .set micromips directive.
8387 * configure: Regenerate.
8388 * config.in: Regenerate.
8389 * config/mips/mips-tables.opt: Regenerate.
8390 * config/mips/micromips.md: New file.
8391 * constraints.md (ZC, ZD): New constraints.
8392 * config/mips/predicates.md (movep_src_register): New predicate.
8393 (movep_src_operand): New predicate.
8394 (non_volatile_mem_operand): New predicate.
8395 * config/mips/mips.md (multimem): New type.
8396 (length): Differentiate between 17-bit and 18-bit branch offsets.
8397 (MOVEP1, MOVEP2): New mode iterator.
33159866 8398 (mov_<load>l): Use ZC constraint.
22c4c869
CM
8399 (mov_<load>r): Likewise.
8400 (mov_<store>l): Likewise.
8401 (mov_<store>r): Likewise.
8402 (*branch_equality<mode>_inverted): Add microMIPS support.
8403 (*branch_equality<mode>): Likewise.
8404 (*jump_absolute): Likewise.
8405 (indirect_jump_<mode>): Likewise.
8406 (tablejump_<mode>): Likewise.
8407 (<optab>_internal): Likewise.
8408 (sibcall_internal): Likewise.
8409 (sibcall_value_internal): Likewise.
8410 (prefetch): Use constraint ZD.
8411 * config/mips/mips.opt (minterlink-compressed): New option.
8412 (minterlink-mips16): Now an alias for minterlink-compressed.
8413 (mmicromips): New option.
8414 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
8415 (compare_and_swap_12): Likewise.
8416 (sync_add<mode>): Likewise.
8417 (sync_<optab>_12): Likewise.
8418 (sync_old_<optab>_12): Likewise.
8419 (sync_new_<optab>_12): Likewise.
8420 (sync_nand_12): Likewise.
8421 (sync_old_nand_12): Likewise.
8422 (sync_new_nand_12): Likewise.
8423 (sync_sub<mode>): Likewise.
8424 (sync_old_add<mode>): Likewise.
8425 (sync_old_sub<mode>): Likewise.
8426 (sync_new_add<mode>): Likewise.
8427 (sync_new_sub<mode>): Likewise.
8428 (sync_<optab><mode>): Likewise.
8429 (sync_old_<optab><mode>): Likewise.
8430 (sync_new_<optab><mode>): Likewise.
8431 (sync_nand<mode>): Likewise.
8432 (sync_old_nand<mode>): Likewise.
8433 (sync_new_nand<mode>): Likewise.
8434 (sync_lock_test_and_set<mode>): Likewise.
8435 (test_and_set_12): Likewise.
8436 (atomic_compare_and_swap<mode>): Likewise.
8437 (atomic_exchange<mode>_llsc): Likewise.
8438 (atomic_fetch_add<mode>_llsc): Likewise.
8439 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
8440 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
8441 (umips_save_restore_pattern_p): Likewise.
8442 (umips_load_store_pair_p): Likewise.
8443 (umips_output_load_store_pair): Likewise.
8444 (umips_movep_target_p): Likewise.
8445 (umips_12bit_offset_address_p): Likewise.
8446 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
8447 (mips_base_mips16): Rename this...
8448 (mips_base_compression_flags): ...to this. Update all uses.
8449 (mips_attribute_table): Add micromips, nomicromips and nocompression.
8450 (mips_mips16_decl_p): Delete.
8451 (mips_nomips16_decl_p): Delete.
33159866 8452 (mips_get_compress_on_flags): New function.
22c4c869
CM
8453 (mips_get_compress_off_flags): New function.
8454 (mips_get_compress_mode): New function.
8455 (mips_get_compress_on_name): New function.
8456 (mips_get_compress_off_name): New function.
8457 (mips_insert_attributes): Support multiple compression types.
8458 (mips_merge_decl_attributes): Likewise.
8459 (umips_12bit_offset_address_p): New function.
8460 (mips_start_function_definition): Emit .set micromips directive.
8461 (mips_call_may_need_jalx_p): New function.
8462 (mips_function_ok_for_sibcall): Add microMIPS support.
8463 (mips_print_operand_punctuation): Support short delay slots and
8464 compact jumps.
8465 (umips_swm_mask, umips_swm_encoding): New.
8466 (umips_build_save_restore): New function.
8467 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
8468 (was_mips16_p): Remove.
8469 (old_compression_mode): New.
8470 (mips_set_compression_mode): New function.
8471 (mips_set_current_function): Add microMIPS support.
8472 (mips_option_override): Likewise.
8473 (umips_save_restore_pattern_p): New function.
8474 (umips_output_save_restore): New function.
8475 (umips_load_store_pair_p_1): New function.
8476 (umips_load_store_pair_p): New function.
8477 (umips_output_load_store_pair_1): New function.
8478 (umips_output_load_store_pair): New function.
8479 (umips_movep_target_p) New function.
8480 (mips_prepare_pch_save): Add microMIPS support.
8481 * config/mips/mips.h (TARGET_COMPRESSION): New.
8482 (TARGET_CPU_CPP_BUILTINS): Update macro
8483 to use new compression flags and to support microMIPS.
8484 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
8485 (MIPS_ARCH_FLOAT_SPEC): Likewise.
8486 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
8487 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
8488 (ASM_SPEC): Support mmicromips and mno-micromips.
8489 (M16STORE_REG_P): New macro.
8490 (MIPS_CALL): Support TARGET_MICROMIPS.
8491 (MICROMIPS_J): New macro.
8492 (mips_base_mips16): Rename this...
8493 (mips_base_compression_flags): ...to this.
8494 (UMIPS_12BIT_OFFSET_P): New macro.
8495 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
8496 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
84972013-03-20 Richard Biener <rguenther@suse.de>
8498
8499 PR tree-optimization/56661
8500 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
8501 the result does not have to be distinct.
8502
54714c68
RB
85032013-03-20 Richard Biener <rguenther@suse.de>
8504
8505 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
8506 remap_gimple_op_r.
8507
cca1130d
BS
85082013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8509 Steven Bosscher <steven@gcc.gnu.org>
8510
8511 PR rtl-optimization/56605
8512 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
8513
2a930377
UB
85142013-03-20 Uros Bizjak <ubizjak@gmail.com>
8515
8516 PR bootstrap/56656
8517 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
8518 that require movd instead of movq.
8519
d6d305fe
RB
85202013-03-20 Richard Biener <rguenther@suse.de>
8521
8522 * tree-ssa-structalias.c (struct variable_info): Add pointer
8523 to the first field of an aggregate with sub-vars. Make
8524 this and the pointer to the next subfield its ID.
8525 (vi_next): New function.
8526 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
8527 storedanything_id, integer_id): Increment by one.
8528 (new_var_info, get_call_vi, lookup_call_clobber_vi,
8529 get_call_clobber_vi): Adjust.
8530 (solution_set_expand): Simplify and speedup.
8531 (solution_set_add): Inline into ...
8532 (set_union_with_increment): ... this. Adjust accordingly.
8533 (do_sd_constraint): Likewise.
8534 (do_ds_constraint): Likewise.
8535 (do_complex_constraint): Simplify.
8536 (build_pred_graph): Adjust.
8537 (solve_graph): Likewise. Simplify and speedup.
8538 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
8539 get_constraint_for_component_ref, get_constraint_for_1,
8540 first_vi_for_offset, first_or_preceding_vi_for_offset,
8541 create_function_info_for, create_variable_info_for_1,
8542 create_variable_info_for, intra_create_variable_infos): Adjust.
8543 (init_base_vars): Push NULL for ID zero.
8544 (compute_points_to_sets): Adjust.
8545
a271b42d
RB
85462013-03-20 Richard Biener <rguenther@suse.de>
8547
8548 * cfgloop.c (verify_loop_structure): Streamline and avoid
8549 ICEing on corrupt loop tree.
8550 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
8551 loop tree.
8552
ebd65954
RB
85532013-03-20 Richard Biener <rguenther@suse.de>
8554
8555 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
8556 check whether an SSA update is needed.
8557
4547b7ee
RS
85582013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
8559
8560 * config/mips/constraints.md (T): Rename to...
8561 (Yf): ...this.
8562 (U): Rename to...
8563 (Yd): ...this.
8564 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
8565 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
8566
0b8cdc58
IB
85672013-03-19 Ian Bolton <ian.bolton@arm.com>
8568
8569 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
8570 (*subsi3_carryin_uxtw): Likewise.
8571
5977a10d
IB
85722013-03-19 Ian Bolton <ian.bolton@arm.com>
8573
8574 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
8575 (*rorsi3_insn_uxtw): Likewise.
8576
bd83ff2c
IB
85772013-03-19 Ian Bolton <ian.bolton@arm.com>
8578
8579 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
8580 (*extrsi5_insn_uxtw): Likewise.
8581
ba65123c
RB
85822013-03-19 Richard Biener <rguenther@suse.de>
8583
8584 PR tree-optimization/56273
8585 * passes.c (init_optimization_passes): Move second VRP after DOM.
8586
2eac0476
UB
85872013-03-19 Uros Bizjak <ubizjak@gmail.com>
8588
8589 * config/i386/i386.md (*movti_internal): Merge from
8590 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
8591 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
8592 nox64 isa attributes.
8593
6e55eda7
RB
85942013-03-18 Richard Biener <rguenther@suse.de>
8595
8596 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
8597 (unite): Likewise.
8598 (merge_node_constraints): Likewise.
8599 (build_succ_graph): Likewise.
8600 (valid_graph_edge): Inline into single caller.
8601 (unify_nodes): Likewise. Use bitmap_set_bit return value
8602 and cache varinfo.
8603 (scc_visit): Fix formatting and variable use.
8604 (do_sd_constraint): Use gcc_checking_assert.
8605 (do_ds_constraint): Likewise.
8606 (do_complex_constraint): Likewise.
8607 (condense_visit): Likewise. Cleanup.
8608 (dump_pred_graph): New function.
8609 (perform_var_substitution): Dump the pred-graph before
8610 variable substitution.
8611 (find_equivalent_node): Use gcc_checking_assert.
8612 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
8613
4bdd44c4
RB
86142013-03-18 Richard Biener <rguenther@suse.de>
8615
8616 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
8617 Remove cond_expr_stmt_list argument and do not gimplify the
8618 built expression.
8619 (vect_loop_versioning): Adjust.
8620 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
8621 Cleanup to use less temporaries.
8622 (vect_create_data_ref_ptr): Cleanup.
8623
38c56a5b
JJ
86242013-03-18 Jakub Jelinek <jakub@redhat.com>
8625
8626 PR tree-optimization/56635
8627 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
8628 require types_compatible_p types.
8629
20b2e6a0
NC
86302013-03-18 Nick Clifton <nickc@redhat.com>
8631
a6178a25
NC
8632 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
8633 spurious backslash.
8634
20b2e6a0
NC
8635 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
8636 Add missing line to comment describing function.
8637
92608d0e
RB
86382013-03-18 Richard Biener <rguenther@suse.de>
8639
8640 PR tree-optimization/56210
8641 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8642 Handle string / character search functions.
8643 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
8644
31348d52
RB
86452013-03-18 Richard Biener <rguenther@suse.de>
8646
8647 PR middle-end/56483
8648 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
8649 and implement properly.
8650 * gimple.h (gimple_cond_single_var_p): Remove.
8651
fcac74a1
RB
86522013-03-18 Richard Biener <rguenther@suse.de>
8653
8654 * tree-data-ref.h (find_data_references_in_loop): Declare.
8655 * tree-data-ref.c (get_references_in_stmt): Use a stack
8656 vector pre-allocated in the callers.
8657 (find_data_references_in_stmt): Adjust.
8658 (graphite_find_data_references_in_stmt): Likewise.
8659 (create_rdg_vertices): Likewise.
8660 (find_data_references_in_loop): Export.
8661 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
8662 Compute dependences here...
8663 (vect_analyze_data_refs): ...not here. When we encounter
8664 a non-vectorizable data reference in basic-block vectorization
8665 truncate the data reference vector. Do not bother to
8666 fixup data-dependence information for gather loads.
8667 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
8668 of data references, as reported.
8669
0d5a1b56
RB
86702013-03-18 Richard Biener <rguenther@suse.de>
8671
8672 PR tree-optimization/3713
8673 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
8674 has_constants and expr.
8675 (stmt_has_constants): Properly valueize SSA names when deciding
8676 whether the stmt has constants.
8677
789c34e3
RB
86782013-03-18 Richard Biener <rguenther@suse.de>
8679
8680 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
8681 whole function when there is nothing to do.
8682 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
8683 * tree-vectorizer.c (vectorize_loops): Update virtual and
8684 loop-closed SSA once.
8685 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
8686
076b4605
RB
86872013-03-18 Richard Biener <rguenther@suse.de>
8688
8689 PR middle-end/56113
8690 * domwalk.c (bb_postorder): New global static.
8691 (cmp_bb_postorder): New function.
8692 (walk_dominator_tree): Replace scheme imposing an order for
8693 visiting dominator sons by one sorting them at the time they
8694 are pushed on the stack.
8695
bdb01696
RB
86962013-03-18 Richard Biener <rguenther@suse.de>
8697
8698 PR tree-optimization/39326
8699 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
8700 (struct mem_ref): Replace mem member with ao_ref typed member.
8701 (MEM_ANALYZABLE): Adjust.
8702 (memref_eq): Likewise.
8703 (mem_ref_alloc): Likewise.
8704 (gather_mem_refs_stmt): Likewise.
8705 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
8706 (execute_sm_if_changed_flag_set): Adjust.
8707 (execute_sm): Likewise.
8708 (ref_always_accessed_p): Likewise.
8709 (refs_independent_p): Likewise.
8710 (can_sm_ref_p): Likewise.
8711
12d2dc5e
JJ
87122013-03-18 Jakub Jelinek <jakub@redhat.com>
8713
8714 PR c/56566
8715 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
8716 return 1 even for !unsignedp.
8717
286fb677
UB
87182013-03-17 Uros Bizjak <ubizjak@gmail.com>
8719
8720 * config/i386/i386.md (isa): Add x64 and nox64.
8721 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
8722 (*pushtf): Enable *roF alternative for x64 isa only.
8723 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
8724 mode attribute of integer alternatives to DImode for TARGET_64BIT.
8725 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
8726 (*movtf_internal): Merge from *movtf_internal_rex64 and
8727 *movtf_internal_sse. Use x64 and nox64 isa attributes.
8728 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
8729 nox64 isa attributes.
8730 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
8731 nox64 isa attributes.
8732 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
8733
88b97037
UB
87342013-03-17 Uros Bizjak <ubizjak@gmail.com>
8735
8736 * config/alpha/alpha.c (TARGET_LRA_P): New define.
8737
9f4f1735
JJ
87382013-03-17 Jakub Jelinek <jakub@redhat.com>
8739
8740 PR target/56640
8741 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
8742 class names. Remove trailing comma after "ALL_REGS".
8743
48f4a6fa
JH
87442013-03-16 Jan Hubicka <jh@suse.cz>
8745
8746 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
8747 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
8748 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
8749 of cgraph_get_create_node.
8750 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
8751
98e81123
JM
87522013-03-16 Jason Merrill <jason@redhat.com>
8753
8754 PR debug/49090
8755 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
8756 with DW_AT_default_value.
8757
8a298c04
JJ
87582013-03-16 Jakub Jelinek <jakub@redhat.com>
8759
8760 * BASE-VER: Set to 4.9.0.
8761
4323afa0
AK
87622013-03-14 Andi Kleen <ak@linux.intel.com>
8763
8764 PR target/56619
8765 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
8766 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
8767 Document _x* TSX intrinsics.
8768
b3c0d469
JJ
87692013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
8770 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
8771
8772 * configure.ac: Add MicroBlaze TLS support detection.
8773 * configure: Regenerate.
88b97037
UB
8774 * config/microblaze/microblaze-protos.h
8775 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
8776 symbol_mentioned_p, label_mentioned_p): Add prototypes.
8777 * config/microblaze/microblaze.c (microblaze_address_type): Add
8778 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
8779 (microblaze_address_info): Add tls_reloc.
8780 (TARGET_HAVE_TLS): Define.
8781 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
8782 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
8783 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
8784 load_tls_operand, microblaze_call_tls_get_addr,
8785 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
8786 (microblaze_classify_unspec): Handle UNSPEC_TLS.
8787 (get_base_reg): Use microblaze_tls_symbol_p.
8788 (microblaze_classify_address): Handle TLS.
88b97037
UB
8789 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
8790 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
8791 (microblaze_legitimize_address): Handle TLS.
8792 (microblaze_address_insns): Handle ADDRESS_TLS.
8793 (pic_address_needs_scratch): Handle TLS.
8794 (print_operand_address): Handle TLS.
8795 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
8796 (microblaze_expand_move): Handle TLS.
88b97037
UB
8797 (microblaze_legitimate_constant_p): Check
8798 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
8799 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
8800 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
8801 (PIC_OFFSET_TABLE_REGNUM): Set.
8802 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
8803 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
8804 (addsi3, movsi_internal2, movdf_internal): Update constraints
8805 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
8806 (move_operand): Redefine as move_src_operand,
8807 check microblaze_tls_referenced_p.
8cc9a5a5 8808
d803a491
IB
88092013-03-14 Ian Bolton <ian.bolton@arm.com>
8810
8811 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
8812 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
8813
a8504f22
IB
88142013-03-14 Ian Bolton <ian.bolton@arm.com>
8815
8816 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
8817 CC mode for AND.
8818
df2dfaea
JJ
88192013-03-14 Jakub Jelinek <jakub@redhat.com>
8820
fbd28bc3
JJ
8821 PR tree-optimization/53265
8822 * common.opt (Waggressive-loop-optimizations): New option.
8823 * tree-ssa-loop-niter.c: Include tree-pass.h.
8824 (do_warn_aggressive_loop_optimizations): New function.
8825 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
8826 if number_of_latch_executions returned constant.
8827 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
8828 early. If number_of_latch_executions returned constant, set
8829 nb_iterations_upper_bound back to it.
8830 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
8831 field.
8832 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
8833 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
8834
df2dfaea
JJ
8835 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
8836 (MULTILIB_OSDIRNAMES): Set.
8837 * genmultilib: If defaultosdirname doesn't start with :: , set
8838 defaultosdirname2 instead, clear it and emit two . multilib_raw
8839 entries instead of just one.
8840
ee0d2b68
KK
88412013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
8842
8843 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
8844 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
8845 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
8846 (SUBTARGET_OVERRIDE_OPTIONS): New.
8847
decc676e
OE
88482013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
8849
8850 PR target/49880
8851 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
8852 (musermode): Convert to Var(TARGET_USERMODE).
8853 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
8854 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
8855 * config/sh/sh.c (sh_option_override): Use
8856 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
8857 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
8858 condition.
8859 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
8860 TARGET_SH4.
8861 (udivsi3_i4_single, divsi3_i4_single): Use
8862 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
8863
f4b719c7
DK
88642013-03-13 Dave Korn <dave.korn.cygwin@....>
8865
8866 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
8867 default setting.
8868
c40eced0
RB
88692013-03-13 Richard Biener <rguenther@suse.de>
8870
8871 PR tree-optimization/56608
8872 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
8873 calls when vectorizing basic-blocks.
8874
1bfa5973
JJ
88752013-03-13 Jakub Jelinek <jakub@redhat.com>
8876
8877 PR plugins/45078
8878 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
8879 tm_file.
8880
6fcf5434
JJ
88812013-03-12 Jakub Jelinek <jakub@redhat.com>
8882
8883 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
8884
4f38fa8c
JH
88852013-03-11 Jan Hubicka <jh@suse.cz>
8886
8887 PR lto/56557
8888 * lto-streamer-out.c (output_symbol_p): Skip references from
8889 constructors of external variables.
8890
c5c5ba89
JH
88912013-03-11 Jan Hubicka <jh@suse.cz>
8892
8893 PR middle-end/56571
8894 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
8895 from pseudos.
8896 * emit-rtl.c (verify_rtx_sharing): Likewise.
8897 (copy_insn_1): Likewise.
8898 * rtl.c (copy_rtx): Likewise.
8899
c2a939b1
GJL
89002013-03-11 Georg-Johann Lay <avr@gjlay.de>
8901
8902 PR target/56591
8903 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
8904 output_operand_lossage message.
88b97037 8905
3c3279fb
RE
89062013-03-11 Richard Earnshaw <rearnsha@arm.com>
8907
8908 PR target/56470
8909 * arm.c (shift_op): Validate RTL pattern on the fly.
8910 (arm_print_operand, case 'S'): Don't use shift_operator to validate
8911 the RTL.
8912
aef5ef9d
JDA
89132013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8914
8915 PR target/56347
8916 * config/pa/pa.md (call_value): Check for calls to powf and direct to
8917 new call patterns that clobber %fr12.
8918 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
8919 split and postreload patterns.
8920 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
8921 registers %fr12 and %fr12R as call used.
8922
456610d3
SB
89232013-03-09 Steven Bosscher <steven@gcc.gnu.org>
8924
8925 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
8926 (canon_address, record_store, replace_read, check_mem_read_rtx,
8927 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
8928 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
8929 rest_of_handle_dse): Likewise.
8930
4b1baac8
RS
89312013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
8932
8933 PR middle-end/56524
8934 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
8935 Add base_optabs.
8936 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
8937 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
8938 (save_optabs_if_changed): Replace with...
8939 (init_tree_optimization_optabs): ...this.
8940 * optabs.c (save_optabs_if_changed): Rename to...
8941 (init_tree_optimization_optabs): ...this. Take the optimization node
8942 as argument. Do nothing if the base optabs are already correct.
8943 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
8944 to recompute optabs.
8945 * function.h (function): Remove optabs field.
8946 * function.c (invoke_set_current_function_hook): Call
8947 init_tree_optimization_optabs. Use the result to initialize
8948 this_fn_optabs.
8949
b7a78683
AH
89502013-02-27 Aldy Hernandez <aldyh@redhat.com>
8951
8952 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
8953 if GTMA_HAS_NO_INSTRUMENTATION.
8954 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
8955 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
8956 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
8957 * gimple-pretty-print.c (dump_gimple_transaction): Handle
8958 GTMA_HAS_NO_INSTRUMENTATION.
8959
6384c29b
JJ
89602013-03-08 Jakub Jelinek <jakub@redhat.com>
8961
8962 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
8963 libasan_preinit.o.
8964
ecd4f20a
MP
89652013-03-08 Marek Polacek <polacek@redhat.com>
8966 Jakub Jelinek <jakub@redhat.com>
8967
8968 PR tree-optimization/56478
8969 * predict.c (is_comparison_with_loop_invariant_p): Change the
8970 type of loop_step to tree.
8971 (predict_loops): Adjust.
8972 (predict_iv_comparison): Perform the computations on double_ints.
8973
64366d35
RB
89742013-03-08 Richard Biener <rguenther@suse.de>
8975
8976 PR tree-optimization/56570
8977 * tree-cfg.c (verify_expr_location_1): Verify locations for
8978 DECL_DEBUG_EXPR.
8979 * tree-sra.c (create_access_replacement): Strip locations
8980 from DECL_DEBUG_EXPRs.
8981
a9d5a059
RB
89822013-03-08 Richard Biener <rguenther@suse.de>
8983
8984 * tree-inline.c (expand_call_inline): Do not associate
8985 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
8986 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
8987
b7aa4e9a
RB
89882013-03-08 Richard Biener <rguenther@suse.de>
8989
8990 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
8991 or block changes with -Og. Fix for location / block encoding
8992 changes and PHI arguments with locations.
8993
c4c2f9fa
SB
89942013-03-07 Steven Bosscher <steven@gcc.gnu.org>
8995
8996 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
8997 for all counters.
8998 (struct output_info): Likewise.
8999 (register_overhead): Remove bad gcc_assert.
9000 (bitmap_find_bit): If there is only a single bitmap element, do not
9001 count a miss as a search.
9002 (print_statistics): Update for counter type changes.
9003 (dump_bitmap_statistics): Likewise. Print headers such that they
9004 are properly lined up with the printed counters.
9005
5bf6606a
JJ
90062013-03-07 Jakub Jelinek <jakub@redhat.com>
9007
9008 PR tree-optimization/56559
9009 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
9010 check that it has only a single use.
9011
2c653d46
RB
90122013-03-07 Richard Biener <rguenther@suse.de>
9013
9014 * doc/invoke.texi (fwhole-program): Discourage use in combination
9015 with -flto.
9016
a72d8780
JJ
90172013-03-06 Jakub Jelinek <jakub@redhat.com>
9018
01a454df
JJ
9019 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
9020
c1781047
JJ
9021 PR tree-optimization/56539
9022 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
9023 instead of GSI_CONTINUE_LINKING as last argument to
9024 force_gimple_operand_gsi. Adjust function comment.
9025
9772c47a
JJ
9026 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
9027 aarch64-cores.def.
9028
a72d8780
JJ
9029 PR middle-end/56548
9030 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
9031 promoted mode, convert the result back to the original mode.
9032
fa5556de
RB
90332013-03-06 Richard Biener <rguenther@suse.de>
9034
9035 PR middle-end/56294
9036 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
9037 (insert_updated_phi_nodes_compare_uids): New function.
9038 (update_ssa): Sort symbols_to_rename after UID before
9039 traversing it to insert PHI nodes.
9040
010403d1
RB
90412013-03-06 Richard Biener <rguenther@suse.de>
9042
9043 PR middle-end/50494
9044 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
9045 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
9046
9047 Revert
9048 2013-02-13 Richard Biener <rguenther@suse.de>
9049
9050 PR lto/50494
9051 * varasm.c (output_constant_def_1): Get the decl representing
9052 the constant as argument.
9053 (output_constant_def): Wrap output_constant_def_1.
9054 (make_decl_rtl): Use output_constant_def_1 with the decl
9055 representing the constant.
9056 (build_constant_desc): Optionally re-use a decl already
9057 representing the constant.
9058 (tree_output_constant_def): Adjust.
9059
3c27ce4c
JY
90602013-03-06 Joey Ye <joey.ye@arm.com>
9061
9062 PR lto/50293
9063 * gcc.c (convert_white_space): New function.
9064 (main): Handles white space in function name.
9065
8f6d1c86
OE
90662013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
9067
9068 PR target/56529
9069 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
9070 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
9071 to SH_DIV_CALL_TABLE for TARGET_SH2.
9072 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
9073 list.
9074 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
9075 call-table options.
9076
798a209f
SA
90772013-03-05 Sterling Augustine <saugustine@google.com>
9078 Cary Coutant <ccoutant@google.com>
9079
9080 PR debug/55364
9081 * dwarf2out.c (resolve_addr): Don't call
9082 remove_loc_list_addr_table_entries a second time for the same
9083 expression.
9084
6cfa417f 90852013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 9086
6cfa417f
JJ
9087 PR debug/56510
9088 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
9089 (avoid_complex_debug_insns): New function.
9090 (expand_debug_locations): Call it.
9091
9092 PR rtl-optimization/56484
9093 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
9094 lifetimes of hard registers on small register class machines.
9095
90962013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
9097
9098 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 9099 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 9100 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
9101 fast_interrupt.
9102 (microblaze_fast_interrupt_function_p): New function.
9103 (microblaze_is_interrupt_handler): Rename to
9104 microblaze_is_interrupt_variant and add fast_interrupt check.
9105 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
9106 (save_restore_insns): Likewise.
9107 (compute_frame_size): Likewise.
9108 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
9109 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
9110 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
9111 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
9112 microblaze_is_interrupt_variant.
9113
731aefac
KT
91142013-03-05 Kai Tietz <ktietz@redhat.com>
9115
9116 * sdbout.c (sdbout_one_type): Switch to current function's section
9117 supporting cold/hot.
9118
a72d8780 91192013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
9120
9121 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
9122 -mxl-reorder.
9123
334e71e8
JJ
91242013-03-05 Jakub Jelinek <jakub@redhat.com>
9125
0b50e654
JJ
9126 PR middle-end/56461
9127 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
9128 if VALGRIND_GET_VBITS is defined, temporarily make object
9129 memory all defined, and restore previous valgrind addressability
9130 and definability afterwards. Free this_object at the end.
9131
4ccf8f43
JJ
9132 PR middle-end/56461
9133 * lra.c (lra): Call lra_clear_live_ranges if live_p,
9134 right before calling lra_create_live_ranges, also call it
9135 when clearing live_p. Only call lra_clear_live_ranges
9136 at the end if live_p.
9137
334e71e8
JJ
9138 PR middle-end/56461
9139 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
9140
9ca966ca
RB
91412013-03-05 Richard Biener <rguenther@suse.de>
9142
9143 PR tree-optimization/56521
9144 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
9145 value-id.
9146
d273b176
SB
91472013-03-05 Steven Bosscher <steven@gcc.gnu.org>
9148
9149 PR c++/55135
9150 * except.h (remove_unreachable_eh_regions): New prototype.
9151 * except.c (remove_eh_handler_splicer): New function, split out
9152 of remove_eh_handler.
9153 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
9154 warning about running it on many EH regions one at a time.
9155 (remove_unreachable_eh_regions_worker): New function, walk the
9156 EH tree in depth-first order and remove non-marked regions.
9157 (remove_unreachable_eh_regions): New function.
9158 * tree-eh.c (mark_reachable_handlers): New function, split out
9159 from remove_unreachable_handlers.
9160 (remove_unreachable_handlers): Use mark_reachable_handlers and
9161 remove_unreachable_eh_regions.
9162 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
9163 and remove_unreachable_eh_regions.
9164
5e7f1aef
RB
91652013-03-05 Richard Biener <rguenther@suse.de>
9166
9167 PR middle-end/56525
9168 * loop-init.c (fix_loop_structure): Remove loops in two stages,
9169 not freeing them until the end.
9170
f276b762
AK
91712013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9172
9173 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
9174
12a43ab8
RB
91752013-03-05 Richard Biener <rguenther@suse.de>
9176
9177 PR tree-optimization/56270
9178 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
9179 of loads after scheduling an SLP instance.
9180
93675444
JJ
91812013-03-05 Jakub Jelinek <jakub@redhat.com>
9182
db4138e3
JJ
9183 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
9184 tic6x.exp.
9185 (check_gcc_parallelize): Run guality.exp as a separate job from
9186 vect.exp with unsorted.exp and $(dg_target_exps) separately from
9187 struct-layout-1.exp with stackalign.exp.
9188
dd3d1ec0
JJ
9189 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
9190
b8d381a3
JJ
9191 PR middle-end/56461
9192 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
9193 load_index sbitmap even if some bit in it isn't set.
9194
b4f9786b
JJ
9195 PR middle-end/56461
9196 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
9197 (discover_iteration_bound_by_body_walk): Change queues to
9198 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
9199 spelling in comment. Call safe_push on queues[bound_index] directly.
9200 Release queues[queue_index] in every iteration unconditionally.
9201 Release bounds vector.
9202
93675444
JJ
9203 PR middle-end/56461
9204 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
9205 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
9206 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
9207 inner_phis vector.
9208
3e492e9c
RB
92092013-03-05 Richard Biener <rguenther@suse.de>
9210
9211 PR lto/56515
9212 * tree-inline.c (remap_blocks_to_null): New function.
9213 (expand_call_inline): When expanding a call stmt without
9214 an associated block inline remap all callee blocks to NULL.
9215
a5d1569a
JJ
92162013-03-05 Jakub Jelinek <jakub@redhat.com>
9217
86efb5cd
JJ
9218 PR rtl-optimization/56494
9219 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
9220 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
9221 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
9222
85f5dbea
JJ
9223 PR middle-end/56461
9224 * sel-sched-ir.c (free_sched_pools): Release
9225 succs_info_pool.stack[succs_info_pool.max_top] vectors too
9226 if succs_info_pool.max_top isn't -1.
9227
a5d1569a
JJ
9228 PR bootstrap/56509
9229 * opts.c (opts_obstack, opts_concat): Moved to...
9230 * opts-common.c (opts_obstack, opts_concat): ... here.
9231
4432aa6c
JJ
92322013-03-04 Jakub Jelinek <jakub@redhat.com>
9233
9234 PR middle-end/56461
9235 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
9236
f3a1fb91
MJ
92372013-03-04 Martin Jambor <mjambor@suse.cz>
9238
9239 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
9240 all appropriate places.
9241
22110e6c
EB
92422013-01-04 Eric Botcazou <ebotcazou@adacore.com>
9243
9244 PR tree-optimization/56424
9245 * ipa-split.c (split_function): Do not set the RSO flag if result is
9246 not by reference and its type is a register type.
9247
a72d8780 92482013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 9249
88b97037 9250 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 9251 (microblaze_legitimate_pic_operand): Likewise
88b97037 9252 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
9253 new function microblaze_legitimate_pic_operand
9254 * config/microblaze/microblaze-protos.h
9255 (microblaze_legitimate_pic_operand): Declare.
9256
a72d8780 92572013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 9258
a72d8780 9259 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 9260 New predicate for supported rtx code types.
a72d8780 9261 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
9262 call_insn_simple_operand predicate.
9263
541d9ac8
JJ
92642013-03-04 Jakub Jelinek <jakub@redhat.com>
9265
5eb010bc
JJ
9266 PR middle-end/56461
9267 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
9268 partitions.ordered_remove.
9269
30862efc
JJ
9270 PR middle-end/56461
9271 * tree-vect-stmts.c (vectorizable_conversion): Don't call
9272 vec_oprnds0.create (1) for modifier == NONE.
9273
8930f723
JJ
9274 PR middle-end/56461
9275 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
9276 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
9277 vec_oprnds1 right before pushing anything to it for
9278 scalar_shift_arg.
9279
541d9ac8
JJ
9280 PR middle-end/56461
9281 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
9282 set nbbs to 0 instead of having separate code path.
9283 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
9284 instead of false as last argument if returning NULL.
9285
7aa7f2e3
SL
92862013-03-03 Sandra Loosemore <sandra@codesourcery.com>
9287
9288 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
9289 the attribute is now called "target" instead of "option".
9290 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
9291 * doc/tm.texi.in (Target Attributes): Likewise document the correct
9292 attribute/pragma name for TARGET_OPTION_VALID_P and
9293 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
9294 * doc/tm.texi: Regenerated.
9295
8930f723 92962013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 9297
8930f723 9298 * config/microblaze/microblaze.c:
cb8a1637 9299 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
9300 * config/microblaze/microblaze.h: Add -mxl-reorder to
9301 DRIVER_SELF_SPECS.
9302 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
9303 instructions emitted if TARGET_REORDER.
88b97037
UB
9304 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
9305 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 9306 separately.
cb8a1637 9307
4dc1d68c
XDL
93082013-03-01 Xinliang David Li <davidxl@google.com>
9309
9310 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
9311 walk length.
9312
689eaba3
JJ
93132013-03-01 Jakub Jelinek <jakub@redhat.com>
9314
9d676bf6
JJ
9315 PR middle-end/56461
9316 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
9317 vector even when returning true. Fix up function comment formatting.
9318
caff7edf
JJ
9319 PR middle-end/56461
9320 * ira-build.c (ira_loop_nodes_count): New variable.
9321 (create_loop_tree_nodes): Initialize it.
9322 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
9323
b6b9227d
JJ
9324 PR middle-end/56461
9325 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
9326 method on dr_chain and result_chain.
9327 * tree-vect-stmts.c (vectorizable_store): Only call
9328 result_chain.create if j == 0.
9329
689eaba3
JJ
9330 PR middle-end/56461
9331 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
9332 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
9333 before overwriting it.
9334
40bf31ed
TB
93352013-03-01 Tobias Burnus <burnus@net-b.de>
9336
9337 * doc/extended.texi (C Extensions): Change order in @menu
9338 to match @node.
9339 (Other MIPS Built-in Functions): Move last MIPS entry before
9340 "picoChip Built-in Functions".
9341 (SH Built-in Functions): Move after RX Built-in Functions.
9342 * doc/gcc.texi (Introduction): Change order in @menu
9343 to match @node.
9344 * doc/md.texi (Constraints): Ditto.
9345 * gty.texi (Type Information): Ditto.
9346 (User-provided marking routines for template types): Make
9347 subsection.
9348 * doc/invoke.texi (AArch64 Options): Move before
9349 "Adapteva Epiphany Options".
9350
e664c61c
KS
93512013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
9352 Jakub Jelinek <jakub@redhat.com>
9353
9354 PR sanitizer/56454
9355 * asan.c (gate_asan): Lookup no_sanitize_address instead of
9356 no_address_safety_analysis attribute.
9357 * doc/extend.texi (no_address_safety_attribute): Rename to
9358 no_sanitize_address attribute, mention no_address_safety_analysis
9359 attribute as deprecated alias.
9360
37b5ec8f
JJ
93612013-02-28 Jakub Jelinek <jakub@redhat.com>
9362
9363 PR middle-end/56461
9364 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
9365 type to vec<vec<tree> > *.
9366 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
9367 to be vec<tree> instead of vec<tree> *, set vec_defs
9368 to vNULL and call vec_defs.create (number_of_vects), adjust other
9369 uses of vec_defs.
9370 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
9371 vectorizable_condition): Adjust vect_get_slp_defs callers.
9372
ba96cdfb
JG
93732013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
9374
9375 * config/aarch64/aarch64.c
9376 (aarch64_float_const_representable): Remove unused variable.
9377
6f549691
JG
93782013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
9379
9380 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
9381
af55e82d
JG
93822013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
9383
9384 * config/aarch64/aarch64-builtins.c
9385 (aarch64_init_simd_builtins): Make static.
9386
1df3f464
JG
93872013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
9388
9389 * config/aarch64/aarch64.c
9390 (aarch64_simd_make_constant): Make static.
9391
f8f42513
MJ
93922013-02-28 Martin Jambor <mjambor@suse.cz>
9393
9394 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
9395 with no initialization to the RHS of debug statements.
9396
b48b3fc4
MJ
93972013-02-28 Martin Jambor <mjambor@suse.cz>
9398
9399 PR tree-optimization/56294
9400 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
9401 Adjust dumping.
9402 (get_access_replacement): Do not call create_access_replacement.
9403 Assert a replacement exists.
9404 (get_repl_default_def_ssa_name): Create the replacement declaration
9405 itself.
9406
c3ae224c
RR
94072013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9408
9409 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
9410 final_end_function.
9411
45fa0eef
MP
94122013-02-28 Marek Polacek <polacek@redhat.com>
9413
9414 PR rtl-optimization/56466
9415 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
9416 if we're changing a loop.
9417 (peel_loops_completely): Likewise.
9418
502c067d
PC
94192013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
9420
9421 PR c++/55813
9422 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
9423
ff24afc8
GJL
94242013-02-28 Georg-Johann Lay <avr@gjlay.de>
9425
9426 PR target/56445
9427 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
9428 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
9429 INTX_FTYPE_FX, FX_FTYPE_INTX.
9430 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
9431
c7b1fc1b
GJL
94322013-02-28 Georg-Johann Lay <avr@gjlay.de>
9433
9434 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
9435 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
9436 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
9437 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
9438 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
9439 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
9440 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
9441 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
9442 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
9443 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
9444 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
9445 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
9446 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
9447 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
9448 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
9449 (avrxmega6): Increase max flash segments from 5 to 6.
9450 * config/avr/t-multilib: Regenerate.
9451 * config/avr/avr-tables.opt: Regenerate.
9452 * doc/avr-mmcu.texi: Regenerate.
9453
4a0e3cfe
GJL
94542013-02-28 Georg-Johann Lay <avr@gjlay.de>
9455
9456 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
9457 (avr_device_to_arch): Rename to avr_device_to_ld.
9458 (avr_device_to_as): New prototype.
9459 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
9460 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
9461 * config/avr/driver-avr.c (avr_device_to_as): New.
9462 (avr_device_to_arch): Rename to avr_device_to_ld.
9463
97785e52
JJ
94642013-02-27 Jakub Jelinek <jakub@redhat.com>
9465
3f292312
JJ
9466 PR middle-end/56461
9467 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
9468 method on dr_chain and result_chain.
9469
a344216b
JJ
9470 PR middle-end/56461
9471 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
9472 pointer_set_destroy on not_executed_last_iteration.
9473
f121ad02 9474 PR middle-end/56461
88b97037 9475 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 9476
307f83a3
JJ
9477 PR middle-end/56461
9478 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
9479 FOR_EACH_DEFINED_FUNCTION when freeing state.
9480
e19624ee
JJ
9481 PR middle-end/56461
9482 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
9483 pool_free.
9484 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
9485 overwriting it.
9486
90e709fd
JJ
9487 PR middle-end/56461
9488 * ipa-cp.c (decide_whether_version_node): Call vec_free on
9489 known_aggs[i].items and release known_aggs vector.
9490
97785e52
JJ
9491 PR middle-end/56461
9492 * ipa-reference.c (propagate): Free node_info even for alias nodes.
9493
94942013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 9495
97785e52
JJ
9496 * config/microblaze/microblaze.c (microblaze_emit_compare):
9497 Use xor for EQ/NE comparisions.
9498 * config/microblaze/microblaze.md (cstoresf4): Add constraints
9499 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 9500
6fa5e0ed
JJ
95012013-02-27 Jakub Jelinek <jakub@redhat.com>
9502
9503 PR middle-end/56461
9504 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
9505 vector.
9506 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
9507 vec_safe_push, always update *slot.
9508 (redirect_edge_var_map_clear): Use vec_free.
9509 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
9510 (free_var_map_entry): Use vec_free.
9511 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
9512 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
9513
436a956a
AB
95142013-02-27 Andrey Belevantsev <abel@ispras.ru>
9515
9516 PR middle-end/45472
436a956a
AB
9517 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
9518 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
9519 Reorder tests for speculativeness in the logical and operator.
9520
f5c2caca
JJ
95212013-02-27 Jakub Jelinek <jakub@redhat.com>
9522
0fcb564b
JJ
9523 * incpath.c (add_standard_paths): Use reconcat instead of concat
9524 where appropriate and avoid leaking memory.
9525
dc357798
JJ
9526 * opts.h: Include obstack.h.
9527 (opts_concat): New prototype.
9528 (opts_obstack): New declaration.
9529 * opts.c (opts_concat): New function.
9530 (opts_obstack): New variable.
9531 (init_options_struct): Call gcc_init_obstack on opts_obstack.
9532 (finish_options): Use opts_concat instead of concat
9533 and XOBNEWVEC instead of XNEWVEC.
9534 * opts-common.c (generate_canonical_option, decode_cmdline_option,
9535 generate_option): Likewise.
9536 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
9537 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
9538
f5c2caca
JJ
9539 PR target/56455
9540 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
9541 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
9542
d0163673
JJ
95432013-02-26 Jakub Jelinek <jakub@redhat.com>
9544
9545 PR middle-end/56461
9546 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
9547
b5ad2b8e
JR
95482013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
9549
9550 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
9551 (arm_block_move_unaligned_straight): Likewise.
9552 (arm_adjust_block_mem): Likewise.
9553
9b639e2c
JR
95542013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
9555
9556 PR target/48901
9557 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
9558 temp, cond and label.
9559 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
9560
e13a0ccb
JR
9561 PR target/52500
9562 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
9563 * config/c6x/c6x.h (dbx_register_map): Update declaration.
9564
fbe4f171
JR
9565 PR target/52501
9566 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
9567 of prologue/epilogue functions.
9568
ae006543
JR
9569 PR target/52550
9570 * config/tilegx/tilegx.c (tilegx_expand_prologue):
9571 Remove unused variable cfa_offset.
9572 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
9573
c81369fa
JR
9574 PR target/54639
9575 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
9576 type promotion to unsigned.
9577
f8a8fea7
JR
9578 PR target/54640
9579 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
9580 for HOST_WIDE_INT of 32 bit / same size as int.
9581 (arm_block_move_unaligned_straight): Likewise.
9582 (arm_adjust_block_mem): Likewise.
9583
f8be5169
JR
9584 PR target/54662
9585 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
9586 ALL_CFLAGS.
9587
f1ad3354
MP
95882013-02-26 Marek Polacek <polacek@redhat.com>
9589
9590 PR tree-optimization/56426
88b97037 9591 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 9592
a6af0f42
RB
95932013-02-26 Richard Biener <rguenther@suse.de>
9594
9595 PR target/56444
9596 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
9597 unused variable loops.
9598
aca43c6c
JJ
95992013-02-26 Jakub Jelinek <jakub@redhat.com>
9600
cecbe5d9
JJ
9601 PR tree-optimization/56448
9602 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
9603 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
9604 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
9605 later operands of the references, or even first operand for
9606 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
9607
aca43c6c
JJ
9608 PR tree-optimization/56443
9609 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
9610 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
9611 to type_for_mode langhook.
9612
53e2e141
MT
96132013-02-25 Matt Turner <mattst88@gmail.com>
9614
9615 * doc/invoke.texi: Document r4700.
9616
259ee451
RB
96172013-02-25 Richard Biener <rguenther@suse.de>
9618
9619 PR tree-optimization/56175
9620 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
9621 split out from ...
9622 (simplify_bitwise_binary): ... here. Also guard the conversion
9623 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
9624
6d65e8f1
CM
96252013-02-25 Catherine Moore <clm@codesourcery.com>
9626
9627 Revert:
9628 2013-02-24 Catherine Moore <clm@codesourcery.com>
9629 Maciej W. Rozycki <macro@codesourcery.com>
9630 Tom de Vries <tom@codesourcery.com>
a72d8780 9631 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
9632 Iain Sandoe <iain@codesourcery.com>
9633 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 9634 Chao-ying Fu <fu@mips.com>
88b97037 9635
6d65e8f1 9636 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 9637 Document new function attributes.
6d65e8f1
CM
9638 * doc/invoke.texi (minterlink-compressed, mmicromips,
9639 m14k, m14ke, m14kec): Document new options.
9640 (minterlink-mips16): Update documentation.
9641 * doc/md.texi (ZC, ZD): Document new constraints.
9642 * configure.ac (gcc_cv_as_micromips): Check if linker
9643 supports the .set micromips directive.
9644 * configure: Regenerate.
9645 * config.in: Regenerate.
9646 * config/mips/mips-tables.opt: Regenerate.
9647 * config/mips/micromips.md: New file.
9648 * constraints.md (ZC, AD): New constraints.
9649 * config/mips/predicates.md (movep_src_register): New predicate.
9650 (movep_src_operand): New predicate.
9651 (non_volatile_mem_operand): New predicate.
9652 * config/mips/mips.md (multimem): New type.
9653 (length): Differentiate between 17-bit and 18-bit branch offsets.
9654 (MOVEP1, MOVEP2): New mode iterator.
9655 (mov_<load>l): Use ZC constraint.
9656 (mov_<load>r): Likewise.
9657 (mov_<store>l): Likewise.
9658 (mov_<store>r): Likewise.
9659 (*branch_equality<mode>_inverted): Add microMIPS support.
9660 (*branch_equality<mode>): Likewise.
9661 (*jump_absolute): Likewise.
9662 (indirect_jump_<mode>): Likewise.
9663 (tablejump_<mode>): Likewise.
9664 (<optab>_internal): Likewise.
9665 (sibcall_internal): Likewise.
9666 (sibcall_value_internal): Likewise.
9667 (prefetch): Use constraint ZD.
9668 * config/mips/mips.opt (minterlink-compressed): New option.
9669 (minterlink-mips16): Now an alias for minterlink-compressed.
9670 (mmicromips): New option.
9671 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
9672 (compare_and_swap_12): Likewise.
9673 (sync_add<mode>): Likewise.
9674 (sync_<optab>_12): Likewise.
9675 (sync_old_<optab>_12): Likewise.
9676 (sync_new_<optab>_12): Likewise.
9677 (sync_nand_12): Likewise.
9678 (sync_old_nand_12): Likewise.
9679 (sync_new_nand_12): Likewise.
9680 (sync_sub<mode>): Likewise.
9681 (sync_old_add<mode>): Likewise.
9682 (sync_old_sub<mode>): Likewise.
9683 (sync_new_add<mode>): Likewise.
9684 (sync_new_sub<mode>): Likewise.
9685 (sync_<optab><mode>): Likewise.
9686 (sync_old_<optab><mode>): Likewise.
9687 (sync_new_<optab><mode>): Likewise.
9688 (sync_nand<mode>): Likewise.
9689 (sync_old_nand<mode>): Likewise.
9690 (sync_new_nand<mode>): Likewise.
9691 (sync_lock_test_and_set<mode>): Likewise.
9692 (test_and_set_12): Likewise.
9693 (atomic_compare_and_swap<mode>): Likewise.
9694 (atomic_exchange<mode>_llsc): Likewise.
9695 (atomic_fetch_add<mode>_llsc): Likewise.
9696 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
9697 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
9698 (umips_save_restore_pattern_p): Likewise.
9699 (umips_load_store_pair_p): Likewise.
9700 (umips_output_load_store_pair): Likewise.
9701 (umips_movep_target_p): Likewise.
9702 (umips_12bit_offset_address_p): Likewise.
9703 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
9704 (mips_base_mips16): Rename this...
9705 (mips_base_compression_flags): ...to this. Update all uses.
9706 (mips_attribute_table): Add micromips, nomicromips and nocompression.
9707 (mips_mips16_decl_p): Delete.
9708 (mips_nomips16_decl_p): Delete.
9709 (mips_get_compress_on_flags): New function.
9710 (mips_get_compress_off_flags): New function.
9711 (mips_get_compress_mode): New function.
9712 (mips_get_compress_on_name): New function.
9713 (mips_get_compress_off_name): New function.
9714 (mips_insert_attributes): Support multiple compression types.
9715 (mips_merge_decl_attributes): Likewise.
9716 (umips_12bit_offset_address_p): New function.
9717 (mips_start_function_definition): Emit .set micromips directive.
9718 (mips_call_may_need_jalx_p): New function.
9719 (mips_function_ok_for_sibcall): Add microMIPS support.
9720 (mips_print_operand_punctuation): Support short delay slots and
9721 compact jumps.
9722 (umips_swm_mask, umips_swm_encoding): New.
9723 (umips_build_save_restore): New function.
9724 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
9725 (was_mips16_p): Remove.
9726 (old_compression_mode): New.
9727 (mips_set_compression_mode): New function.
9728 (mips_set_current_function): Add microMIPS support.
9729 (mips_option_override): Likewise.
9730 (umips_save_restore_pattern_p): New function.
9731 (umips_output_save_restore): New function.
9732 (umips_load_store_pair_p_1): New function.
9733 (umips_load_store_pair_p): New function.
9734 (umips_output_load_store_pair_1): New function.
9735 (umips_output_load_store_pair): New function.
9736 (umips_movep_target_p) New function.
9737 (mips_prepare_pch_save): Add microMIPS support.
9738 * config/mips/mips.h (TARGET_COMPRESSION): New.
9739 (TARGET_CPU_CPP_BUILTINS): Update macro
9740 to use new compression flags and to support microMIPS.
9741 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
9742 (MIPS_ARCH_FLOAT_SPEC): Likewise.
9743 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
9744 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
9745 (ASM_SPEC): Support mmicromips and mno-micromips.
9746 (M16STORE_REG_P): New macro.
9747 (MIPS_CALL): Support TARGET_MICROMIPS.
9748 (MICROMIPS_J): New macro.
9749 (mips_base_mips16): Rename this...
9750 (mips_base_compression_flags): ...to this.
9751 (UMIPS_12BIT_OFFSET_P): New macro.
9752 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
9753 (MULTILIB_DIRNAMES): Likewise.
9754
5e5df392
TV
97552013-02-25 Tom de Vries <tom@codesourcery.com>
9756
9757 PR rtl-optimization/56131
9758 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
9759 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
9760 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
9761
3fdb53c1
TB
97622013-02-25 Tobias Burnus <burnus@net-b.de>
9763
9764 * doc/invoke.texi (-fsanitize=): Move from optimization
9765 to debugging options.
9766
ed358aea
AB
97672013-02-25 Andrey Belevantsev <abel@ispras.ru>
9768
9769 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
9770
f45e9053
AB
97712013-02-25 Andrey Belevantsev <abel@ispras.ru>
9772 Alexander Monakov <amonakov@ispras.ru>
9773
9774 PR middle-end/56077
9775 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
9776 flush pending lists also on non-jumps. Adjust comment.
9777
6941b508
CM
97782013-02-24 Catherine Moore <clm@codesourcery.com>
9779 Maciej W. Rozycki <macro@codesourcery.com>
9780 Tom de Vries <tom@codesourcery.com>
a72d8780 9781 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
9782 Iain Sandoe <iain@codesourcery.com>
9783 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 9784 Chao-ying Fu <fu@mips.com>
6941b508
CM
9785
9786 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 9787 Document new function attributes.
6941b508
CM
9788 * doc/invoke.texi (minterlink-compressed, mmicromips,
9789 m14k, m14ke, m14kec): Document new options.
9790 (minterlink-mips16): Update documentation.
9791 * doc/md.texi (ZC, ZD): Document new constraints.
9792 * configure.ac (gcc_cv_as_micromips): Check if linker
9793 supports the .set micromips directive.
9794 * configure: Regenerate.
9795 * config.in: Regenerate.
9796 * config/mips/mips-tables.opt: Regenerate.
9797 * config/mips/micromips.md: New file.
9798 * constraints.md (ZC, AD): New constraints.
9799 * config/mips/predicates.md (movep_src_register): New predicate.
9800 (movep_src_operand): New predicate.
9801 (non_volatile_mem_operand): New predicate.
9802 * config/mips/mips.md (multimem): New type.
9803 (length): Differentiate between 17-bit and 18-bit branch offsets.
9804 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 9805 (mov_<load>l): Use ZC constraint.
6941b508
CM
9806 (mov_<load>r): Likewise.
9807 (mov_<store>l): Likewise.
9808 (mov_<store>r): Likewise.
9809 (*branch_equality<mode>_inverted): Add microMIPS support.
9810 (*branch_equality<mode>): Likewise.
9811 (*jump_absolute): Likewise.
9812 (indirect_jump_<mode>): Likewise.
9813 (tablejump_<mode>): Likewise.
9814 (<optab>_internal): Likewise.
9815 (sibcall_internal): Likewise.
9816 (sibcall_value_internal): Likewise.
9817 (prefetch): Use constraint ZD.
9818 * config/mips/mips.opt (minterlink-compressed): New option.
9819 (minterlink-mips16): Now an alias for minterlink-compressed.
9820 (mmicromips): New option.
9821 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
9822 (compare_and_swap_12): Likewise.
9823 (sync_add<mode>): Likewise.
9824 (sync_<optab>_12): Likewise.
9825 (sync_old_<optab>_12): Likewise.
9826 (sync_new_<optab>_12): Likewise.
9827 (sync_nand_12): Likewise.
9828 (sync_old_nand_12): Likewise.
9829 (sync_new_nand_12): Likewise.
9830 (sync_sub<mode>): Likewise.
9831 (sync_old_add<mode>): Likewise.
9832 (sync_old_sub<mode>): Likewise.
9833 (sync_new_add<mode>): Likewise.
9834 (sync_new_sub<mode>): Likewise.
9835 (sync_<optab><mode>): Likewise.
9836 (sync_old_<optab><mode>): Likewise.
9837 (sync_new_<optab><mode>): Likewise.
9838 (sync_nand<mode>): Likewise.
9839 (sync_old_nand<mode>): Likewise.
9840 (sync_new_nand<mode>): Likewise.
9841 (sync_lock_test_and_set<mode>): Likewise.
9842 (test_and_set_12): Likewise.
9843 (atomic_compare_and_swap<mode>): Likewise.
9844 (atomic_exchange<mode>_llsc): Likewise.
9845 (atomic_fetch_add<mode>_llsc): Likewise.
9846 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
9847 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
9848 (umips_save_restore_pattern_p): Likewise.
9849 (umips_load_store_pair_p): Likewise.
9850 (umips_output_load_store_pair): Likewise.
9851 (umips_movep_target_p): Likewise.
9852 (umips_12bit_offset_address_p): Likewise.
9853 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
9854 (mips_base_mips16): Rename this...
9855 (mips_base_compression_flags): ...to this. Update all uses.
9856 (mips_attribute_table): Add micromips, nomicromips and nocompression.
9857 (mips_mips16_decl_p): Delete.
9858 (mips_nomips16_decl_p): Delete.
3fdb53c1 9859 (mips_get_compress_on_flags): New function.
6941b508
CM
9860 (mips_get_compress_off_flags): New function.
9861 (mips_get_compress_mode): New function.
9862 (mips_get_compress_on_name): New function.
9863 (mips_get_compress_off_name): New function.
9864 (mips_insert_attributes): Support multiple compression types.
9865 (mips_merge_decl_attributes): Likewise.
9866 (umips_12bit_offset_address_p): New function.
9867 (mips_start_function_definition): Emit .set micromips directive.
9868 (mips_call_may_need_jalx_p): New function.
9869 (mips_function_ok_for_sibcall): Add microMIPS support.
9870 (mips_print_operand_punctuation): Support short delay slots and
9871 compact jumps.
9872 (umips_swm_mask, umips_swm_encoding): New.
9873 (umips_build_save_restore): New function.
9874 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
9875 (was_mips16_p): Remove.
9876 (old_compression_mode): New.
9877 (mips_set_compression_mode): New function.
9878 (mips_set_current_function): Add microMIPS support.
9879 (mips_option_override): Likewise.
9880 (umips_save_restore_pattern_p): New function.
9881 (umips_output_save_restore): New function.
9882 (umips_load_store_pair_p_1): New function.
9883 (umips_load_store_pair_p): New function.
9884 (umips_output_load_store_pair_1): New function.
9885 (umips_output_load_store_pair): New function.
9886 (umips_movep_target_p) New function.
9887 (mips_prepare_pch_save): Add microMIPS support.
9888 * config/mips/mips.h (TARGET_COMPRESSION): New.
9889 (TARGET_CPU_CPP_BUILTINS): Update macro
9890 to use new compression flags and to support microMIPS.
9891 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
9892 (MIPS_ARCH_FLOAT_SPEC): Likewise.
9893 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
9894 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
9895 (ASM_SPEC): Support mmicromips and mno-micromips.
9896 (M16STORE_REG_P): New macro.
9897 (MIPS_CALL): Support TARGET_MICROMIPS.
9898 (MICROMIPS_J): New macro.
9899 (mips_base_mips16): Rename this...
9900 (mips_base_compression_flags): ...to this.
9901 (UMIPS_12BIT_OFFSET_P): New macro.
9902 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
9903 (MULTILIB_DIRNAMES): Likewise.
9904
cdebbc6d
JJ
99052013-02-24 Jakub Jelinek <jakub@redhat.com>
9906
9907 PR target/52555
9908 * target-globals.c (save_target_globals): For init_reg_sets and
9909 target_reinit remporarily set this_fn_optabs to this_target_optabs.
9910
18c63565
JG
99112013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
9912
9913 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
9914 * config/aarch64/t-aarch64
9915 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
9916
2194f7a2
VM
99172013-02-22 Vladimir Makarov <vmakarov@redhat.com>
9918
9919 PR inline-asm/56148
9920 * lra-constraints.c (process_alt_operands): Reload operand
9921 conflicting with earlier clobber only if no more other conflicting
9922 operands.
9923
7d613735
JJ
99242013-02-22 Jakub Jelinek <jakub@redhat.com>
9925
9926 PR sanitizer/56393
9927 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
9928 if not linking a shared library.
9929
ac8d93a7
SL
99302013-02-22 Seth LaForge <sethml@google.com>
9931
9932 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
9933
e0237780
GY
99342013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
9935
3fdb53c1
TB
9936 * config/arm/arm.md (split for extendsidi): Update condition.
9937 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
9938 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
9939 (qhs_zextenddi_cstr): Likewise.
e0237780 9940
d7fde18c
JJ
99412013-02-21 Jakub Jelinek <jakub@redhat.com>
9942
be63b77d
JJ
9943 PR middle-end/56420
9944 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
9945 avoid signed wrapping.
9946 (expand_mult): Handle properly multiplication by
9947 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
9948 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
9949 in the compiler if coeff is HOST_WIDE_INT_MIN.
9950 (expand_divmod): Don't make ext_op1 static, change it's type to
9951 uhwi. Avoid undefined behavior in -INTVAL (op1).
9952
d7fde18c
JJ
9953 PR rtl-optimization/50339
9954 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
9955 field.
9956 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
9957 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
9958 into splitting_ashiftrt field.
9959 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
9960 ASHIFTRT.
9961 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
9962 choices.
9963
6aad4455
AH
99642013-02-20 Aldy Hernandez <aldyh@redhat.com>
9965
9966 PR middle-end/56108
9967 * trans-mem.c (execute_tm_mark): Do not expand transactions that
9968 are sure to go irrevocable.
9969
38fe784d
HPN
99702013-02-21 Hans-Peter Nilsson <hp@axis.com>
9971
9972 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
9973 scalars are valid operands.
9974
0fd44da3
MJ
99752013-02-21 Martin Jambor <mjambor@suse.cz>
9976
9977 PR tree-optimization/56310
9978 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
9979 only matching indices and non-negative final offsets.
9980 (intersect_aggregates_with_edge): Pass src_idx to
9981 agg_replacements_to_vector. Pass src_idx insstead of index to
9982 intersect_with_agg_replacements.
9983
7a92038b
MJ
99842013-02-21 Martin Jambor <mjambor@suse.cz>
9985
9986 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
9987 instead of hard-wired defaults.
9988
c0da9c37
MR
99892013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
9990
9991 * doc/invoke.texi (MIPS Options): Update documentation of the
9992 floating-point multiply-accumulate instruction restrictions.
9993
d247ea0c 99942013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
9995
9996 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
9997 asan_shadow_offset on x86_64 linux.
9998
22deefcb
RB
99992013-02-21 Richard Biener <rguenther@suse.de>
10000
10001 PR tree-optimization/56415
10002 Revert
10003 2013-02-11 Richard Biener <rguenther@suse.de>
10004
10005 PR tree-optimization/56273
10006 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
10007 first VRP run.
10008
7bcc6e75
JJ
100092013-02-21 Jakub Jelinek <jakub@redhat.com>
10010
a0ad148f
JJ
10011 PR bootstrap/56258
10012 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
10013 instead of @itemx.
10014
7bcc6e75
JJ
10015 PR inline-asm/56405
10016 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
10017 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
10018
a0a7b611
JH
100192013-02-20 Jan Hubicka <jh@suse.cz>
10020
10021 PR tree-optimization/56265
88b97037
UB
10022 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
10023 when target is referenced for first time.
a0a7b611 10024
c0e50f72
RB
100252013-02-20 Richard Biener <rguenther@suse.de>
10026
10027 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
10028 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
10029 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
10030 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
10031 not return anything.
10032 (rename_ssa_copies): Do not remove unused locals.
10033 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 10034 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
10035 * passes.c (execute_function_todo): Do not schedule unused locals
10036 removal if cleanup_tree_cfg did something.
10037 * tree-ssa-live.c (remove_unused_locals): Dump statistics
10038 about the number of removed locals.
10039
a52ca739
RB
100402013-02-20 Richard Biener <rguenther@suse.de>
10041
10042 PR tree-optimization/56398
88b97037 10043 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 10044
ec9c9d1b
MJ
100452013-02-20 Martin Jambor <mjambor@suse.cz>
10046
10047 PR tree-optimization/55334
10048 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
10049 restricted pointers to arrays.
10050
e91c8ed6 100512013-02-20 Richard Biener <rguenther@suse.de>
88b97037 10052 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
10053
10054 PR tree-optimization/56396
10055 * tree-ssa-ccp.c (n_const_val): New static variable.
10056 (get_value): Return NULL for SSA names we don't have a lattice
10057 entry for.
10058 (ccp_initialize): Initialize n_const_val.
10059 * tree-ssa-copy.c (n_copy_of): New static variable.
10060 (init_copy_prop): Initialize n_copy_of.
10061 (get_value): Return NULL_TREE for SSA names we don't have a
10062 lattice entry for.
10063
3d916479
MJ
100642013-02-20 Martin Jambor <mjambor@suse.cz>
10065
10066 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
10067
71a86758
RB
100682013-02-20 Richard Biener <rguenther@suse.de>
10069
10070 * genpreds.c (write_lookup_constraint): Do not compare first
10071 letter of the constraint again.
10072
79836a12
RB
100732013-02-20 Richard Biener <rguenther@suse.de>
10074
10075 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
10076 and ceil_log2.
10077 (get_use_iv_cost): Terminate hashtable walk when coming across
10078 an empty entry.
10079
bbe4fb2c
IZ
100802013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
10081
10082 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
10083 reassociation for avx2 targets.
10084
a72d8780 100852012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 10086
c77f83d5
EI
10087 * config/microblaze/microblaze.c: microblaze_has_clz = 0
10088 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 10089 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
10090 version and TARGET_PATTERN_COMPARE check
10091 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 10092
a72d8780 100932012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 10094
a72d8780 10095 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
10096 function before branching.
10097
242387fa
AB
100982012-02-19 Andrey Belevantsev <abel@ispras.ru>
10099
10100 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
10101 DUMP_INSN_RTX_UID.
10102 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
10103
b4979ab9
AB
101042012-02-19 Andrey Belevantsev <abel@ispras.ru>
10105
10106 PR middle-end/55889
b4979ab9
AB
10107 * sel-sched.c: Include ira.h.
10108 (implicit_clobber_conflict_p): New function.
10109 (moveup_expr): Use it.
88b97037 10110 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 10111
24d63016
RB
101122013-02-19 Richard Biener <rguenther@suse.de>
10113
10114 PR tree-optimization/56384
10115 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
10116 (vn_hash_type): Split out from ...
10117 (vn_hash_constant_with_type): ... here.
10118 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
10119 (vn_phi_eq): Compare types from vn_phi_s structure.
10120 (vn_phi_lookup): Populate vn_phi_s type.
10121 (vn_phi_insert): Likewise.
10122
a475fd3d
JJ
101232013-02-19 Jakub Jelinek <jakub@redhat.com>
10124
47cc28f5
JJ
10125 PR tree-optimization/56350
10126 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
10127 if haven't found reduction or nested cycle operand, rather than
10128 asserting we must find it.
10129
a475fd3d
JJ
10130 PR tree-optimization/56381
10131 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
10132 to fold_build3.
10133
101342013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
10135 Jakub Jelinek <jakub@redhat.com>
10136
10137 PR target/52555
10138 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
10139 (swap_optab_enable): Same.
10140 (init_all_optabs): Use argument instead of global.
88b97037 10141 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
10142 * expr.h (init_all_optabs): Add argument to prototype.
10143 (TREE_OPTIMIZATION_OPTABS): New.
10144 (save_optabs_if_changed): Protoize.
10145 * optabs.h: Declare this_fn_optabs.
10146 * optabs.c (save_optabs_if_changed): New.
10147 Declare this_fn_optabs.
10148 (init_optabs): Add argument to init_all_optabs() call.
10149 * function.c (invoke_set_current_function_hook): Handle per
10150 function optabs.
10151 * function.h (struct function): New field optabs.
10152 * config/mips/mips.c (mips_set_mips16_mode): Handle when
10153 optimization_current_node has changed.
10154 * target-globals.h (save_target_globals_default_opts): Protoize.
10155 * target-globals.c (save_target_globals_default_opts): New.
10156
3f587ca3
JDA
101572013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10158
10159 PR target/56347
10160 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
10161 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
10162
10163 PR target/56214
10164 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
10165 and HImode, require all displacements to be an integer multiple of
10166 their mode size.
ceaca33e
JDA
10167 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
10168 only allow QImode and HImode when reload is in progress and strict is
10169 true. Likewise for symbolic addresses. Use base14_operand to check
10170 displacements in REG+BASE addresses.
10171
fe0b4796
RB
101722013-02-18 Richard Biener <rguenther@suse.de>
10173
10174 PR tree-optimization/56366
10175 * tree-vect-loop.c (get_initial_def_for_induction): Properly
10176 handle sign-conversion of outer-loop initial induction value.
10177
6aaf596b
RB
101782013-02-18 Richard Biener <rguenther@suse.de>
10179
73db8ff1 10180 PR middle-end/56349
6aaf596b
RB
10181 * cfghooks.c (merge_blocks): If we merge a latch into another
10182 block adjust references to it.
10183 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
10184 (verify_loop_structure): Verify that a recorded latch is in fact
10185 a latch.
10186
5e97dfb6
RB
101872013-02-18 Richard Biener <rguenther@suse.de>
10188
10189 PR tree-optimization/56321
10190 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
10191 order SSA name release and virtual operand unlinking.
10192
825527e8
EI
101932013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
10194
10195 * config/microblaze/microblaze.md (save_stack_block): Define.
10196 (restore_stack_block): Likewise.
10197
debd11d9
EI
101982013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
10199
10200 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
10201 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
10202 * config/microblaze/microblaze.c (microblaze_option_override):
10203 Bail out early for PIC modes when target does not support PIC.
10204
8ec77be0
EI
102052013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
10206
88b97037 10207 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
10208 Replace with a microblaze version.
10209 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 10210 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
10211 microblaze.
10212
b41288b3
JJ
102132013-02-16 Jakub Jelinek <jakub@redhat.com>
10214 Dodji Seketeli <dodji@redhat.com>
10215
10216 PR asan/56330
88b97037 10217 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
10218 (instrument_mem_region_access): Do not forget to always put
10219 instrumentation of the of 'base' and 'base + len' in a "if (len !=
10220 0) statement, even for cases where either 'base' or 'base + len'
10221 are not instrumented -- because they have been previously
10222 instrumented. Simplify the logic by putting all the statements
10223 instrument 'base + len' inside a sequence, and then insert that
10224 sequence right before the current insertion point. Then, to
10225 instrument 'base + len', just get an iterator on that statement.
10226 And do not forget to update the pointer to iterator the function
10227 received as argument.
10228
47918951
VM
102292013-02-15 Vladimir Makarov <vmakarov@redhat.com>
10230
10231 PR rtl-optimization/56348
10232 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
10233
3fb7c699
SB
102342013-02-15 Steven Bosscher <steven@gcc.gnu.org>
10235
10236 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
10237 (clean_graph_dump_file): Pass base to start_graph_dump.
10238
576fe41a
RH
102392013-02-14 Richard Henderson <rth@redhat.com>
10240
10241 PR target/55941
10242 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
10243
bb3accfa
SB
102442013-02-14 Steven Bosscher <steven@gcc.gnu.org>
10245
10246 * collect2-aix.h: Define F_LOADONLY.
10247
03143140
RB
102482013-02-14 Richard Biener <rguenther@suse.de>
10249
10250 PR lto/50494
10251 * varasm.c (output_constant_def_1): Get the decl representing
10252 the constant as argument.
10253 (output_constant_def): Wrap output_constant_def_1.
10254 (make_decl_rtl): Use output_constant_def_1 with the decl
10255 representing the constant.
10256 (build_constant_desc): Optionally re-use a decl already
10257 representing the constant.
10258 (tree_output_constant_def): Adjust.
10259
8fb06726
DS
102602013-02-14 Dodji Seketeli <dodji@redhat.com>
10261
10262 Fix an asan crash
10263 * asan.c (instrument_builtin_call): Really put the length of the
10264 second source argument into src1_len.
10265
c4bfe8bf
JJ
102662013-02-13 Jakub Jelinek <jakub@redhat.com>
10267
10268 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
10269 argument. If it is false, don't create edge from then_bb to
10270 fallthru_bb.
10271 (insert_if_then_before_iter): Pass true to it.
10272 (build_check_stmt): Pass false to it.
10273 (transform_statements): Flush hash table only on extended basic
10274 block boundaries, rather than at the beginning of every bb.
10275 Don't flush hash table on nonfreeing_call_p calls.
10276 * tree-flow.h (nonfreeing_call_p): New prototype.
10277 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
10278
7afe2801
DM
102792013-02-13 David S. Miller <davem@davemloft.net>
10280
10281 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
10282
70cc3288
VM
102832013-02-13 Vladimir Makarov <vmakarov@redhat.com>
10284
10285 PR target/56184
10286 * ira.c (max_regno_before_ira): Move from ...
10287 (ira): ... here.
10288 (fix_reg_equiv_init): Use max_regno_before_ira instead of
10289 vec_safe_length.
10290
6422242b
JJ
102912013-02-13 Jakub Jelinek <jakub@redhat.com>
10292
10293 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
10294
976a81ee
RB
102952013-02-13 Richard Biener <rguenther@suse.de>
10296
10297 PR lto/56295
10298 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
10299 globals in MEM_REFs.
10300
c1874a87
RB
103012013-02-13 Richard Biener <rguenther@suse.de>
10302
10303 * loop-init.c (loop_optimizer_init): Clear loop state when
10304 re-initializing preserved loops.
10305 * loop-unswitch.c (unswitch_single_loop): Return whether
10306 we unswitched the loop. Do not verify loop state here.
88b97037 10307 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 10308
b4ab7d34
KS
103092013-02-13 Kostya Serebryany <kcc@google.com>
10310
88b97037
UB
10311 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
10312 on x86_64 linux.
b4ab7d34
KS
10313 * sanitizer.def: Rename __asan_init to __asan_init_v1.
10314
bdcbe80c
DS
103152013-02-12 Dodji Seketeli <dodji@redhat.com>
10316
10317 Avoid instrumenting duplicated memory access in the same basic block
10318 * Makefile.in (asan.o): Add new dependency on hash-table.h
10319 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
10320 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
10321 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
10322 (free_mem_ref_resources, has_mem_ref_been_instrumented)
10323 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
10324 (get_mem_ref_of_assignment): New functions.
10325 (get_mem_refs_of_builtin_call): Extract from
10326 instrument_builtin_call and tweak a little bit to make it fit with
10327 the new signature.
10328 (instrument_builtin_call): Use the new
10329 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
10330 of is_gimple_builtin_call.
10331 (instrument_derefs, instrument_mem_region_access): Insert the
10332 instrumented memory reference into the hash table.
10333 (maybe_instrument_assignment): Renamed instrument_assignment into
10334 this, and change it to advance the iterator when instrumentation
10335 actually happened and return true in that case. This makes it
10336 homogeneous with maybe_instrument_assignment, and thus give a
10337 chance to callers to be more 'regular'.
10338 (transform_statements): Clear the memory reference hash table
10339 whenever we enter a new BB, when we cross a function call, or when
10340 we are done transforming statements. Use
10341 maybe_instrument_assignment instead of instrumentation. No more
10342 need to special case maybe_instrument_assignment and advance the
10343 iterator after calling it; it's now handled just like
10344 maybe_instrument_call. Update comment.
10345
4861a1f7
RB
103462013-02-13 Richard Biener <rguenther@suse.de>
10347
10348 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
10349 Fix loop discovery code.
10350
1c86bd80
VM
103512013-02-12 Vladimir Makarov <vmakarov@redhat.com>
10352
10353 PR inline-asm/56148
10354 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 10355 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
10356 the operand is not reloaded. Prefer to reload conflicting operand
10357 if earlyclobber and matching operands are the same.
10358
7cbda518
RB
103592013-02-12 Richard Biener <rguenther@suse.de>
10360
10361 PR lto/56297
10362 * lto-streamer-out.c (write_symbol): Do not output symbols
10363 for hard register variables.
10364
e68a4ef6
GJL
103652013-02-12 Georg-Johann Lay <avr@gjlay.de>
10366
10367 PR target/54222
10368 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
10369 (umulsidi3_insn, mulsidi3_insn): New insns.
10370
a72d8780 103712013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
10372
10373 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
10374 (struct tune_params): Add vec_costs field.
10375 * config/arm/arm.c (arm_builtin_vectorization_cost)
10376 (arm_add_stmt_cost): New functions.
10377 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
10378 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
10379 (arm_default_vec_cost): New struct of type cpu_vec_costs.
10380 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
10381 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
10382 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
10383 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
10384
43320568
RB
103852013-02-12 Richard Biener <rguenther@suse.de>
10386
10387 PR lto/56295
10388 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
10389 decls again if possible.
10390
a011aa39
RB
103912013-02-12 Richard Biener <rguenther@suse.de>
10392
10393 PR middle-end/56288
10394 * tree-ssa.c (verify_ssa_name): Fix check, move
10395 SSA_NAME_IN_FREE_LIST check up.
10396
6da26889
JJ
103972013-02-12 Jakub Jelinek <jakub@redhat.com>
10398 Steven Bosscher <steven@gcc.gnu.org>
10399
10400 PR rtl-optimization/56151
10401 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
10402 equal to op0 or op1, and last_insn pattern is CODE operation
10403 with MEM dest and one of the operands matches that MEM.
10404
f80e0faf
ST
104052013-02-11 Sriraman Tallam <tmsriramgoogle.com>
10406
10407 * doc/extend.texi: Document Function Multiversioning and "default"
10408 parameter string to target attribute.
10409 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
10410 target attribute parameter is "default".
10411 (ix86_compare_version_priority): Remove checks for target attribute.
10412 (ix86_mangle_function_version_assembler_name): Change error to sorry.
10413 Remove check for target attribute equal to NULL. Add assert.
10414 (ix86_generate_version_dispatcher_body): Change error to sorry.
10415
6c59ffd1
IS
104162013-02-11 Iain Sandoe <iain@codesourcery.com>
10417 Jack Howarth <howarth@bromo.med.uc.edu>
10418 Patrick Marlier <patrick.marlier@gmail.com>
10419
10420 PR libitm/55693
10421 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
10422 define ENDFILE_SPEC as TM_DESTRUCTOR.
10423 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
10424
a72d8780 104252013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
10426 Jack Howarth <howarth@bromo.med.uc.edu>
10427 Jakub Jelinek <jakub@redhat.com>
10428
10429 PR sanitizer/55617
10430 * config/darwin.c (cdtor_record): Rename ctor_record.
10431 (sort_cdtor_records): Rename sort_ctor_records.
10432 (finalize_dtors): New routine to sort destructors by
10433 priority before use in assemble_integer.
10434 (machopic_asm_out_destructor): Use finalize_dtors if needed.
10435
b63fe007
UB
104362013-02-11 Uros Bizjak <ubizjak@gmail.com>
10437
10438 PR rtl-optimization/56275
10439 * simplify-rtx.c (avoid_constant_pool_reference): Check that
10440 offset is non-negative and less than cmode size before
10441 calling simplify_subreg.
10442
8e89b5b5
RB
104432013-02-11 Richard Biener <rguenther@suse.de>
10444
10445 PR tree-optimization/56264
10446 * cfgloop.h (fix_loop_structure): Adjust prototype.
10447 * loop-init.c (fix_loop_structure): Return the number of
10448 newly discovered loops.
10449 * tree-cfgcleanup.c (repair_loop_structures): When new loops
10450 are discovered, do a full loop-closed SSA rewrite.
10451
b4a4b56d
RB
104522013-02-11 Richard Biener <rguenther@suse.de>
10453
10454 PR tree-optimization/56273
10455 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
10456 first VRP run.
10457 (check_array_ref): Fix missing newline in dumps.
10458 (search_for_addr_array): Likewise.
10459
0c885229
DE
104602013-02-09 David Edelsohn <dje.gcc@gmail.com>
10461
10462 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
10463
59ac9a55
JJ
104642013-02-09 Jakub Jelinek <jakub@redhat.com>
10465
10466 PR target/56256
10467 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
10468
25bb0bb5
VM
104692013-02-08 Vladimir Makarov <vmakarov@redhat.com>
10470
10471 PR rtl-optimization/56246
0c885229 10472 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
10473 reload pseudo.
10474 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
10475 constraints are satisfied.
10476
a698cc03
JL
104772013-02-08 Jeff Law <law@redhat.com>
10478
10479 PR debug/53948
10480 * emit-rtl.c (reg_is_parm_p): New function.
10481 * regs.h (reg_is_parm_p): New prototype.
10482 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
10483 callee-clobbered registers.
10484
e1122ddd
MM
104852013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
10486
10487 PR target/56043
10488 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
10489 If there is no implicit builtin declaration, just return NULL.
10490
19c5f6e6
UB
104912013-02-08 Uros Bizjak <ubizjak@gmail.com>
10492
10493 * config/i386/sse.md (FMAMODEM): New mode iterator.
10494 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
10495 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
10496
2480f2ca 104972013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 10498
2480f2ca
UB
10499 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
10500 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
10501 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
10502
105032013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
10504
10505 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
10506 (microblaze*-*-elf): Likewise.
10507 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
10508 LINK_SPEC.
10509 * config/microblaze/microblaze-c.c: Add builtin defines for
10510 _LITTLE_ENDIAN and _BIG_ENDIAN.
10511 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
10512 add to TARGET_DEFAULT flags.
76ef61fb 10513 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
10514 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
10515 * config/microblaze/microblaze.md: Update extendsidi2 and
10516 movdi_internal instructions to use low-order / high-order reg
10517 print_operands.
10518 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
10519 options and inversemask / mask of LITTLE_ENDIAN.
10520 * config/microblaze/t-microblaze: Expand multilib options to
10521 include mlittle-endian (le) and update exceptions patterns.
10522
600a5961
JJ
105232013-02-08 Jakub Jelinek <jakub@redhat.com>
10524
5df81313
JJ
10525 PR rtl-optimization/56195
10526 * lra-constraints.c (get_reload_reg): Don't reuse regs
10527 if they have smaller mode than requested, if they have
10528 wider mode than requested, try to return a SUBREG.
10529
600a5961
JJ
10530 PR tree-optimization/56250
10531 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
10532 if type is unsigned and code isn't MULT_EXPR.
10533
ff544649
GJL
105342013-02-08 Georg-Johann Lay <avr@gjlay.de>
10535
10536 PR tree-optimization/56064
10537 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
10538 bits according to mode.
10539 * fixed-value.h (fixed_from_double_int)
10540 (const_fixed_from_double_int): Adjust comments.
10541
e45cde98
RB
105422013-02-08 Richard Biener <rguenther@suse.de>
10543
10544 PR lto/56231
10545 * lto-streamer.h (struct data_in): Remove current_file, current_line
10546 and current_col members.
10547 * lto-streamer-out.c (lto_output_location): Stream changed bits
10548 en-block for efficiency.
10549 * lto-streamer-in.c (clear_line_info): Remove.
10550 (lto_input_location): Cache current file, line and column
10551 globally via local statics. Read changed bits en-block.
10552 (input_function): Do not call clear_line_info.
10553 (lto_read_body): Likewise.
10554 (lto_input_toplevel_asms): Likewise.
10555
c1ca73d8
MM
105562013-02-08 Michael Matz <matz@suse.de>
10557
10558 PR tree-optimization/52448
10559 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
10560 (nt_call_phase): New static.
10561 (add_or_mark_expr): Only mark accesses with newer phase than any
10562 call seen.
10563 (nonfreeing_call_p): New.
10564 (nt_init_block): Update nt_call_phase, mark blocks as visited.
10565 (nt_fini_block): Keep blocks marked as visited.
10566 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
10567
57548aa2
RB
105682013-02-08 Richard Biener <rguenther@suse.de>
10569
10570 * ira.c (ira): Free broken dominator information.
10571
8e10366f
UB
105722013-02-08 Uros Bizjak <ubizjak@gmail.com>
10573
10574 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
10575
f64fb0fa
MP
105762013-02-08 Marek Polacek <polacek@redhat.com>
10577
8e10366f 10578 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 10579
0375167b
RB
105802013-02-08 Richard Biener <rguenther@suse.de>
10581
10582 PR middle-end/56181
10583 * cfgloop.h (flow_loops_find): Adjust.
10584 (bb_loop_header_p): Declare.
10585 * cfgloop.c (bb_loop_header_p): New function split out from ...
10586 (flow_loops_find): ... here. Adjust function signature,
10587 support incremental loop structure update.
10588 (verify_loop_structure): Cleanup. Verify a loop is a loop.
10589 * cfgloopmanip.c (fix_loop_structure): Move ...
10590 * loop-init.c (fix_loop_structure): ... here.
10591 (apply_loop_flags): Split out from ...
10592 (loop_optimizer_init): ... here.
10593 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
10594 in incremental mode, only remove dead loops here.
10595
85d768f3
GJL
105962013-02-08 Georg-Johann Lay <avr@gjlay.de>
10597
10598 PR target/54222
10599 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
10600 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
10601 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
10602 (*round<mode>3.libgcc): New insns for fixed-modes.
10603 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
10604 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
10605 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
10606 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
10607 implementations. Define to __builtin_avr_absFX,
10608 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
10609 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
10610 __builtin_avr_countlsFX, respectively.
10611 * config/avr/avr-c.c (target.h): Include it.
10612 (enum avr_builtin_id): New enum.
10613 (avr_resolve_overloaded_builtin): New static function.
10614 (avr_register_target_pragmas): Use it to set
10615 targetm.resolve_overloaded_builtin.
10616 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
10617 tree nodes used by DEF_BUILTIN.
10618 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
10619 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
10620 <AVR_BUILTIN_xxBITS>: Same.
10621
661bc682
RB
106222013-02-08 Richard Biener <rguenther@suse.de>
10623
10624 * cfgloop.c (verify_loop_structure): Properly handle
10625 a loop exiting to another loop header.
10626 * ira-int.h (ira_loops): Remove.
10627 * ira.c (ira_loops): Remove.
10628 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
10629 (do_reload): Use loop_optimizer_finalize.
10630 * ira-build.c (create_loop_tree_nodes): Use get_loops and
10631 number_of_loops to access the loop tree.
10632 (more_one_region_p): Likewise.
10633 (finish_loop_tree_nodes): Likewise.
10634 (rebuild_regno_allocno_maps): Likewise.
10635 (mark_loops_for_removal): Likewise.
10636 (mark_all_loops_for_removal): Likewise.
10637 (remove_unnecessary_regions): Likewise.
10638 (ira_build): Likewise.
10639 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
10640
0d5049b2
RB
106412013-02-08 Richard Biener <rguenther@suse.de>
10642
10643 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
10644 * ipa-pure-const.c (analyze_function): Avoid calling
10645 mark_irreducible_loops twice.
8e10366f 10646 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 10647
499f32e8
DM
106482013-02-07 David S. Miller <davem@davemloft.net>
10649
10650 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
10651 on 'reg'.
10652 * var-tracking.c (vt_add_function_parameter): Test the presence of
10653 HAVE_window_save properly and do not remap argument registers when
10654 we have a leaf function.
10655
6edc3e32
UB
106562013-02-07 Uros Bizjak <ubizjak@gmail.com>
10657
10658 PR bootstrap/56227
10659 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
10660 instead of "ll".
10661 * config/i386/i386.c (ix86_print_operand): Ditto.
10662
5306401f
VM
106632013-02-07 Vladimir Makarov <vmakarov@redhat.com>
10664
6edc3e32 10665 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 10666
027ece11
VM
106672013-02-07 Vladimir Makarov <vmakarov@redhat.com>
10668
10669 PR rtl-optimization/56225
10670 * lra-constraints.c (process_alt_operands): Check that reload hard
10671 reg can hold value for strict_low_part.
10672
f980dfdb
JJ
106732013-02-07 Jakub Jelinek <jakub@redhat.com>
10674
10675 PR debug/56154
10676 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
10677 dwarf2out_end_function.
10678 (in_first_function_p, maybe_at_text_label_p,
10679 first_loclabel_num_not_at_text_label): New variables.
10680 (dwarf2out_var_location): In the first function find out
6edc3e32 10681 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
10682 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
10683 functions.
10684
73dd3123
EB
106852013-02-07 Eric Botcazou <ebotcazou@adacore.com>
10686
10687 PR rtl-optimization/56178
10688 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
10689 SUBREG of a register. Tidy up related block of code.
10690 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
10691 note if the source is a register or a SUBREG of a register.
10692
e3936f47
JJ
106932013-02-07 Jakub Jelinek <jakub@redhat.com>
10694
10695 PR target/56228
10696 * config/rs6000/rs6000.md (ptrm): New mode attr.
10697 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
10698 call_value_indirect_aix<pttrsize>,
10699 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
10700 m in constraints.
10701
d96d674b
MH
107022013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
10703
10704 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
10705 if -bnortl. Convert to strcmp and strncmp.
10706
921f2dee
AM
107072013-02-07 Alan Modra <amodra@gmail.com>
10708
10709 PR target/54009
10710 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
10711 addresses won't wrap when offsetting.
10712 (rs6000_secondary_reload): Provide secondary reloads needed for
10713 wrapping LO_SUM addresses.
10714
d09c7dba
TS
107152013-02-06 Thomas Schwinge <thomas@codesourcery.com>
10716
10717 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
10718 MACH, just __MACH__.
10719
a44bbd48
RB
107202013-02-06 Richard Biener <rguenther@suse.de>
10721
10722 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
10723 instead of calling fix_loop_structure.
10724
6d840d99
JJ
107252013-02-06 Jakub Jelinek <jakub@redhat.com>
10726
10727 PR middle-end/56217
10728 * omp-low.c (use_pointer_for_field): Return false if
10729 lower_send_shared_vars doesn't generate any copy-out code.
10730
0f33baa9
TV
107312013-02-06 Tom de Vries <tom@codesourcery.com>
10732
10733 PR rtl-optimization/56131
10734 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
10735 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
10736 of the label is NULL. Add comment.
10737
11f1e3ab
JJ
107382013-02-05 Jakub Jelinek <jakub@redhat.com>
10739
31502f9f
JJ
10740 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
10741
a74db9bd
JJ
10742 PR sanitizer/55374
10743 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
10744 (STATIC_LIBTSAN_LIBS): Likewise.
10745 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
10746 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
10747 is defined, don't add anything else beyond that.
10748 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
10749 (LINK_COMMAND_SPEC): Use them.
10750
11f1e3ab
JJ
10751 PR tree-optimization/56205
10752 * tree-stdarg.c (check_all_va_list_escapes): Return true if
10753 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
10754 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
10755
14ac6aa2
RB
107562013-02-05 Richard Biener <rguenther@suse.de>
10757
10758 PR tree-optimization/53342
10759 PR tree-optimization/53185
10760 * tree-vectorizer.h (vect_check_strided_load): Remove.
10761 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
10762 not disallow peeling for vectorized strided loads.
10763 (vect_check_strided_load): Make static and simplify.
10764 (vect_analyze_data_refs): Adjust.
10765 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
10766 correctly when vectorizing strided loads.
10767
6f22445a
RB
107682013-02-05 Richard Biener <rguenther@suse.de>
10769
10770 * doc/install.texi: Refer to ISL, not PPL.
10771
39f9719e
JH
107722013-02-05 Jan Hubicka <jh@suse.cz>
10773
ec4224ac
JH
10774 PR tree-optimization/55789
10775 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
10776
107772013-02-05 Jan Hubicka <jh@suse.cz>
10778
10779 PR tree-optimization/55789
39f9719e
JH
10780 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
10781 the dead call anyway.
10782
956d3b33
EB
107832013-02-05 Eric Botcazou <ebotcazou@adacore.com>
10784
10785 PR sanitizer/55374
10786 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
10787
107882013-02-04 Alexander Potapenko <glider@google.com>
10789 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
10790 Jakub Jelinek <jakub@redhat.com>
10791
10792 PR sanitizer/55617
10793 * config/darwin.c (sort_ctor_records): Stabilized qsort
10794 on constructor priority by using original position.
10795 (finalize_ctors): New routine to sort constructors by
10796 priority before use in assemble_integer.
10797 (machopic_asm_out_constructor): Use finalize_ctors if needed.
10798
7ac3af38
JJ
107992013-02-04 Jakub Jelinek <jakub@redhat.com>
10800
10801 PR libstdc++/54314
10802 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
10803 about visibility on artificial decls.
10804 * config/sol2.c (solaris_assemble_visibility): Likewise.
10805
152689dc
KT
108062013-02-04 Kai Tietz <ktietz@redhat.com>
10807
10808 PR target/56186
10809 * config/i386/i386.c (function_value_ms_64): Add additional valtype
10810 argument and improve checking of return-argument types for 16-byte
10811 modes.
10812 (ix86_function_value_1): Add additional valtype argument on call
10813 of function_value_64.
10814 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
10815 handling infunction_value_64 function.
10816
2b5987b5
MGD
108172013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
10818
7ac3af38 10819 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 10820
14597080
RB
108212013-02-04 Richard Biener <rguenther@suse.de>
10822
10823 PR tree-optimization/56188
10824 * tree-ssa-structalias.c (label_visit): Consider case with
10825 initially non-empty points-to set.
10826 (perform_var_substitution): Dump node mapping and clean up.
10827
ed73881e
RG
108282013-02-04 Richard Guenther <rguenther@suse.de>
10829
10830 PR lto/56168
10831 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
10832 node prevail as last resort.
10833 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 10834 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 10835
139a0707
RB
108362013-02-04 Richard Biener <rguenther@suse.de>
10837
10838 PR tree-optimization/56113
10839 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
10840 Merge into ...
10841 (equiv_class_lookup_or_add): ... this.
10842 (label_visit): Adjust and fix error in previous patch.
10843 (perform_var_substitution): Adjust.
10844
50fe8924
OE
108452013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
10846
10847 * config/sh/divtab.c: Fix formatting and comments throughout the file.
10848 * config/sh/sh4-300.md: Likewise.
10849 * config/sh/sh4a.md: Likewise.
10850 * config/sh/constraints.md: Likewise.
10851 * config/sh/sh.md: Likewise.
10852 * config/sh/netbsd-elf.h: Likewise.
10853 * config/sh/predicates.md: Likewise.
10854 * config/sh/sh-protos.h: Likewise.
10855 * config/sh/ushmedia.h: Likewise.
10856 * config/sh/linux.h: Likewise.
10857 * config/sh/sh.c: Likewise.
10858 * config/sh/superh.h: Likewise.
10859 * config/sh/elf.h: Likewise.
10860 * config/sh/sh4.md: Likewise.
10861 * config/sh/sh.h: Likewise.
10862
1a04ac2b
JDA
108632013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10864
10865 * config/pa/constraints.md: Adjust unused letters. Change "T"
10866 constraint to match_test floating_point_store_memory_operand().
10867 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
10868 (base14_operand): New.
10869 (floating_point_store_memory_operand): New.
10870 (integer_store_memory_operand): Revise to use base14_operand and
10871 reg_plus_base_memory_operand.
10872 (move_dest_operand): Allow symbolic_memory_operands.
10873 (symbolic_memory_operand): Check for LO_SOM.
10874 (symbolic_operand): Change default case to break.
10875 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
10876 CONST_DOUBLE values to be reloaded by putting them into memory when
10877 the destination is a floating point register.
10878 (movdf): Remove code to handle CONST_DOUBLE.
10879 (movsf): Likewise.
10880 (reload_indf_r1): New.
10881 (reload_insf_r1): New.
10882 Consistently use "Q" and "T" constraints with integer and floating
10883 point move instructions, respectively.
10884 (movdi): Remove FAIL.
10885 Change predicate for source operand unamed DImode move from
10886 general_operand to move_src_operand.
10887 (umulsidi3): Change predicate for destination operand to
10888 register_operand.
10889 Likewise for similar unamed patterns.
10890 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
10891 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
10892 (hppa_legitimize_address): Simplify mask calculation.
10893 (pa_emit_move_sequence): Revised handling of secondary reloads from
10894 REG+D addresses for floating point loads and stores. Directly handle
10895 loading CONST0_RTX (mode) to a floating point register.
10896 (pa_secondary_reload): Handle reloading DF and SFmode constant values
10897 to floating point registers. Don't restrict secondary reloads to
10898 floating point registers to integer modes. Revise some comments and
10899 cleanup some code.
10900 (TARGET_LEGITIMATE_ADDRESS_P): Define.
10901 (pa_legitimate_address_p): New.
10902 (pa_legitimize_reload_address): New.
10903 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
10904 (STRICT_REG_OK_FOR_BASE_P): New.
10905 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
10906 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
10907
3bf65591
DE
109082013-02-03 David Edelsohn <dje.gcc@gmail.com>
10909 Andrew Dixie <andrewd@gentrack.com>
10910
10911 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
10912 flag set.
10913
c0a8a3e6
RS
109142013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
10915
10916 * expmed.c (extract_bit_field_1): Pass the full width of the
10917 structure to get_best_reg_extraction_insn.
10918
99113dff
DE
109192013-02-01 David Edelsohn <dje.gcc@gmail.com>
10920
10921 PR target/54601
10922 * configure.ac (use_cxa_atexit): Add AIX.
10923 * configure: Regenerate.
10924
10925 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
10926
ddd84654
JJ
109272013-02-01 Jakub Jelinek <jakub@redhat.com>
10928
10929 PR debug/54793
10930 * final.c (need_profile_function): New variable.
10931 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
10932 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
10933 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
10934 notes, targetm.asm_out.function_prologue doesn't emit anything,
10935 HAVE_prologue and profiler should be emitted before prologue,
10936 set need_profile_function instead of emitting it.
10937 (final_scan_insn): If need_profile_function, emit
10938 profile_function on the first NOTE_INSN_BASIC_BLOCK or
10939 NOTE_INSN_FUNCTION_BEG note.
10940
109412013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
10942
10943 * config/rs6000/rs6000.md (smulditi3): New.
10944 (umulditi3): New.
10945
ff2a9d88
RH
10946 * config/alpha/alpha.md (umulditi3): New.
10947
14d52b90
DE
109482013-02-01 David Edelsohn <dje.gcc@gmail.com>
10949
10950 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
10951 (ASM_OUTPUT_ALIGNED_LOCAL): New.
10952
8c7ca45c
RB
109532013-02-01 Richard Biener <rguenther@suse.de>
10954
10955 PR tree-optimization/56113
10956 * tree-ssa-structalias.c (label_visit): Reduce work for
10957 single-predecessor nodes.
10958
9f419393
EB
109592013-02-01 Eric Botcazou <ebotcazou@adacore.com>
10960
10961 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
10962 range isn't testing for zero.
10963
c5f4be84
SB
109642013-01-31 Steven Bosscher <steven@gcc.gnu.org>
10965
10966 PR middle-end/56113
10967 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
10968
dbdbd982
NC
109692013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
10970 Nick Clifton <nickc@redhat.com>
10971
10972 * config/v850/constraints.md (Q): Define as a memory constraint.
10973 * config/v850/predicates.md (label_ref_operand): New predicate.
10974 (e3v5_shift_operand): New predicate.
10975 (ior_operator): New predicate.
10976 * config/v850/t-v850: Add e3v5 multilib.
10977 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
10978 (v850_gen_movdi): Prototype.
10979 * config/v850/v850.c: Add support for e3v5 architecture.
10980 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
10981 TARGET_V850E_UP.
10982 (construct_save_jarl): Add e3v5 long JARL support.
10983 (v850_adjust_insn_length): New function. Adjust length of call
10984 insns when using e3v5 instructions.
10985 (v850_gen_movdi): New function: Generate instructions to move a
10986 DImode value.
10987 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
10988 (CPP_SPEC): Define __v850e3v5__ as appropriate.
10989 (TARGET_USE_FPU): Enable for e3v5.
10990 (CONST_OK_FOR_W): New macro.
10991 (ADJUST_INSN_LENGTH): Define.
10992 * config/v850/v850.md (UNSPEC_LOOP): Define.
10993 (attr cpu): Add v850e3v5.
10994 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
10995 (movdi): New pattern.
10996 (movdi_internal): New pattern.
10997 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
10998 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
10999 (cstoresf4): Likewise.
11000 (cstoredf4): Likewise.
11001 (insv): New pattern.
11002 (rotlso3_a): New pattern.
11003 (rotlsi3_b): New pattern
11004 (rotlsi3_v850e3v5): New pattern.
11005 (doloop_begin): New pattern.
11006 (fix_loop_counter): New pattern.
11007 (doloop_end): New pattern.
11008 (branch_normal): Add e3v5 long branch support.
11009 (branch_invert): Likewise.
11010 (branch_z_normal): Likewise.
11011 (branch_z_invert): Likewise.
11012 (branch_nz_normal): Likewise.
11013 (branch_nz_invert): Likewise.
11014 (call_internal_short): Add e3v5 register-indirect JARL support.
11015 (call_internal_long): Likewise.
11016 (call_value_internal_short): Likewise.
11017 (call_value_internal_long): Likewise.
11018 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
11019 (mloop): New option.
11020 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 11021 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 11022
73861a41
PK
110232013-01-31 Paul Koning <ni1d@arrl.net>
11024
11025 PR debug/55059
11026 PR debug/54508
11027 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
11028 children if parent is a class.
11029 (prune_unused_types_prune): Don't add DW_AT_declaration.
11030
e44978dc
RB
110312013-01-31 Richard Biener <rguenther@suse.de>
11032
11033 PR tree-optimization/56157
11034 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
11035 match up operand with SLP child.
11036
90b10dec
JM
110372013-01-31 Jason Merrill <jason@redhat.com>
11038
04d2dadd 11039 PR debug/54410
90b10dec
JM
11040 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
11041 parameters the first time.
11042 (gen_scheduled_generic_parms_dies): Check completeness here.
11043
6e616110
RB
110442013-01-31 Richard Biener <rguenther@suse.de>
11045
11046 PR middle-end/53073
11047 * common.opt (faggressive-loop-optimizations): New flag,
11048 enabled by default.
11049 * doc/invoke.texi (faggressive-loop-optimizations): Document.
11050 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
11051 infer_loop_bounds_from_undefined by it.
11052
636f59cf
RB
110532013-01-31 Richard Biener <rguenther@suse.de>
11054
11055 PR tree-optimization/56150
11056 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
11057 visit virtual operands.
11058 (find_uses_to_rename_bb): Likewise.
11059
110602013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
11061
11062 PR tree-optimization/56150
11063 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
11064 mixed store non-store stmts.
11065
32887460
JJ
110662013-01-30 Jakub Jelinek <jakub@redhat.com>
11067
e60e09a0
JJ
11068 PR sanitizer/55374
11069 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
11070 LIBASAN_EARLY_SPEC is defined.
11071 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
11072 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
11073 before %o.
11074 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
11075
32887460
JJ
11076 PR c++/55742
11077 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
11078 invalid args instead of ICEing on it.
11079 (ix86_valid_target_attribute_tree): Return error_mark_node if
11080 ix86_valid_target_attribute_inner_p failed.
11081 (ix86_valid_target_attribute_p): Return false only if
11082 ix86_valid_target_attribute_tree returned error_mark_node. Allow
11083 target("default") attribute.
11084 (sorted_attr_string): Change argument from const char * to tree,
11085 merge in all target attribute arguments rather than just one.
11086 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
11087 instead of free. Avoid using strcat.
11088 (ix86_mangle_function_version_assembler_name): Mangle
11089 target("default") as if no target attribute is present. Adjust
11090 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
11091 instead of xmalloc and XDELETEVEC instead of free.
11092 (ix86_function_versions): Don't return true if one of the decls
11093 doesn't have target attribute. If they don't and one of the decls
11094 is DECL_FUNCTION_VERSIONED, report an error. Adjust
11095 sorted_attr_string caller. Use XDELETEVEC instead of free.
11096 (ix86_supports_function_versions): Remove.
11097 (make_name): Fix up formatting.
11098 (make_dispatcher_decl): Remove resolver_name and its initialization.
11099 Avoid leaking memory.
11100 (is_function_default_version): Return true if there is
11101 target("default") attribute rather than no target attribute at all.
11102 (make_resolver_func): Avoid leaking memory.
11103 (ix86_generate_version_dispatcher_body): Likewise.
11104 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
11105 * target.def (supports_function_versions): Remove.
11106 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
11107 * doc/tm.texi: Regenerated.
11108
73cca0cc
VM
111092013-01-30 Vladimir Makarov <vmakarov@redhat.com>
11110
11111 PR rtl-optimization/56144
11112 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
11113 for values with side effects.
11114
11452e7b
RB
111152013-01-30 Richard Biener <rguenther@suse.de>
11116
11117 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
11118 (sparseset_pop): Likewise.
11119 * cfganal.c (compute_idf): Likewise. Increase work-stack size
11120 to be able to use quick_push in the worker loop.
11121
01cb1ef5
MP
111222013-01-30 Marek Polacek <polacek@redhat.com>
11123
11124 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
11125
e892936e
RB
111262013-01-30 Richard Biener <rguenther@suse.de>
11127
11128 PR lto/56147
6edc3e32 11129 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 11130
cc06c01d
GJL
111312013-01-30 Georg-Johann Lay <avr@gjlay.de>
11132
11133 PR tree-optimization/56064
11134 * fixed-value.c (fixed_from_double_int): New function.
11135 * fixed-value.h (fixed_from_double_int): New prototype.
11136 (const_fixed_from_double_int): New static inline function.
11137 * fold-const.c (native_interpret_fixed): New static function.
11138 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
11139 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
11140 (native_encode_fixed): New static function.
11141 (native_encode_expr) <FIXED_CST>: Use it.
11142 (native_interpret_int): Move double_int worker code to...
11143 * double-int.c (double_int::from_buffer): ...this new static method.
11144 * double-int.h (double_int::from_buffer): Prototype it.
11145
d394a308
RB
111462013-01-30 Richard Biener <rguenther@suse.de>
11147
11148 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
11149 New pointer-map and obstack.
11150 (init_alias_vars): Allocate pointer-map and obstack.
11151 (delete_points_to_sets): Free them.
11152 (find_what_var_points_to): Cache result.
11153 (find_what_p_points_to): Adjust for changed interface of
11154 find_what_var_points_to.
11155 (compute_points_to_sets): Likewise.
11156 (ipa_pta_execute): Likewise.
11157
20804d96
RO
111582013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11159
11160 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
11161 * configure: Regenerate.
11162 * config.in: Regenerate.
11163 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
11164 #nobits/#progbits if supported.
11165
a7ad88a2
OE
111662013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
11167
11168 PR target/56121
11169 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
11170 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
11171 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
11172
7af79f92
GY
111732013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
11174
91bfca59
OE
11175 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
11176 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 11177
753bcf7b
GY
111782013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
11179
91bfca59
OE
11180 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
11181 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 11182
8cbc2ea8
GY
111832013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
11184
91bfca59
OE
11185 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
11186 declaration.
11187 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
11188 * config/arm/cortex-a7.md: New bypasses using
11189 arm_mac_accumulator_is_result.
8cbc2ea8 11190
697a3325
GY
111912013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
11192
91bfca59 11193 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 11194 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
11195 (cortex_a7_fpfmad): New reservation.
11196 (cortex_a7_fpmacs): Use ffmas and update required units.
11197 (cortex_a7_fpmuld): Update required units and latency.
11198 (cortex_a7_fpmacd): Likewise.
11199 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
11200 (cortex_a7_neon). Likewise.
11201 (bypass) Update participating units.
697a3325 11202
29637783
GY
112032013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
11204
91bfca59
OE
11205 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
11206 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
11207 from fmac to ffma.
11208 * config/arm/vfp11.md (vfp_farith): Use ffmas.
11209 (vfp_fmul): Use ffmad.
11210 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
11211 (cortex_r4_fmacd): Use ffmad.
11212 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
11213 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
11214 (cortex_a9_fmacd): Use ffmad.
11215 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
11216 (cortex_a8_vfp_macd): Use ffmad.
11217 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
11218 (cortex_a5_fpmacd): Use ffmad.
11219 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
11220 (cortex_a15_vfp_macd): Use ffmad.
11221 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 11222
2ee8a2d5
JM
112232013-01-29 Jason Merrill <jason@redhat.com>
11224
11225 PR libstdc++/54314
11226 * varasm.c (default_assemble_visibility): Don't warn about
11227 visibility on artificial decls.
11228
78d087bc
RB
112292013-01-29 Richard Biener <rguenther@suse.de>
11230
11231 PR tree-optimization/56113
11232 * tree-ssa-structalias.c (equiv_class_lookup): Also return
11233 the bitmap leader.
11234 (label_visit): Free duplicate bitmaps and record the leader instead.
11235 (perform_var_substitution): Adjust.
11236
83ba4d6f
RB
112372013-01-29 Richard Biener <rguenther@suse.de>
11238
11239 PR tree-optimization/55270
11240 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
11241 the CFG, schedule loops for fixup.
11242
66dfe13f
NC
112432013-01-29 Nick Clifton <nickc@redhat.com>
11244
11245 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
11246 SP_REG.
11247
5a579c3b
LE
112482013-01-28 Leif Ekblad <leif@rdos.net>
11249
11250 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
11251 * config/i386/i386.h (TARGET_RDOS): New macro.
11252 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
11253 * config/i386/i386.c (ix86_option_override_internal): For 64bit
11254 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
11255 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
11256 DEFAULT_LARGE_SECTION_THRESHOLD.
11257 * config/i386/i386.md (R14_REG, R15_REG): New constants.
11258 * config/i386/rdos.h: New file.
11259 * config/i386/rdos64.h: New file.
11260
51e44392
BS
112612013-01-28 Bernd Schmidt <bernds@codesourcery.com>
11262
11263 PR other/54814
11264 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
11265 TEST_HARD_REG_BIT.
11266
db1fb332
JJ
112672013-01-28 Jakub Jelinek <jakub@redhat.com>
11268
11269 PR rtl-optimization/56117
11270 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
11271 call cselib_lookup_from_insn on the MEM before calling
11272 add_insn_mem_dependence.
11273
16917761
RB
112742013-01-28 Richard Biener <rguenther@suse.de>
11275
11276 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
11277 to a stmt that didn't have one.
11278 (copy_phis_for_bb): Likewise for PHI arguments.
11279 (copy_debug_stmt): Likewise for debug stmts.
11280
b9fc0497
RB
112812013-01-28 Richard Biener <rguenther@suse.de>
11282
11283 PR tree-optimization/56034
6edc3e32 11284 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
11285 (partition_builtin_p): Adjust.
11286 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
11287 it is the last partition.
11288 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
11289 up the vertex for the definition.
11290 (classify_partition): Classify whether a partition is a
11291 PKIND_REDUCTION, thus has uses outside of the loop.
11292 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
11293 Merge all PKIND_REDUCTION partitions into the last partition.
11294 (tree_loop_distribution): Seed partitions from reductions as well.
11295
aa710d25
JJ
112962013-01-28 Jakub Jelinek <jakub@redhat.com>
11297
0bfbca58
JJ
11298 PR tree-optimization/56125
11299 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
11300 pow(x,c) into sqrt(x) * powi(x, n/2) or
11301 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
11302 optimizing for size.
11303 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
11304 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
11305 integer.
11306
aa710d25
JJ
11307 PR tree-optimization/56094
11308 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
11309 to UNKNOWN_LOCATION while gimplifying expr.
11310
77dc5297
UB
113112013-01-27 Uros Bizjak <ubizjak@gmail.com>
11312
11313 PR target/56114
11314 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
11315 operand 0 in movabs insn template for -masm=intel asm alternative.
11316 (*movabs<mode>_2): Ditto for operand 1.
11317
0bfbca58 113182013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
11319
11320 PR target/54663
11321 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
11322 of microblaze-c.o
11323
0bfbca58 113242013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
11325
11326 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
11327 tm_file.
11328
0bfbca58 113292013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
11330
11331 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
11332 Undef to avoid warning.
11333
478f60f9
MH
113342013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
11335
11336 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
11337 * configure: Regenerate.
11338
d7fa6ee2
JJ
113392013-01-25 Jakub Jelinek <jakub@redhat.com>
11340
11341 PR tree-optimization/56098
11342 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
11343 for stmts with volatile ops.
11344 (cond_store_replacement): Don't optimize if assign has volatile ops.
11345 (cond_if_else_store_replacement_1): Don't optimize if either
11346 then_assign or else_assign have volatile ops.
11347 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
11348 volatile ops.
11349
f8fe87bd
GJL
113502013-01-25 Georg-Johann Lay <avr@gjlay.de>
11351
11352 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
11353
28398d0d
GJL
113542013-01-25 Georg-Johann Lay <avr@gjlay.de>
11355
11356 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
11357 missing ':' in asm example.
11358
b7d7d917
TB
113592013-01-25 Tejas Belagod <tejas.belagod@arm.com>
11360
11361 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
11362 entries into lane and laneq entries.
77dc5297
UB
11363 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
11364 Remove AdvSIMD scalar modes.
b7d7d917
TB
11365 (aarch64_sq<r>dmulh_laneq<mode>): New.
11366 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
11367 modes.
11368 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
11369 builtin implementations to relfect changes in RTL in aarch64-simd.md.
11370 * config/aarch64/iterators.md (VCOND): New.
11371 (VCONQ): New.
11372
556f9906
GJL
113732013-01-25 Georg-Johann Lay <avr@gjlay.de>
11374
11375 PR target/54222
11376 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
11377 Add NULL LIBNAME argument to existing definitions.
11378 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
11379 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
11380 * config/avr/avr.c (DEF_BUILTIN): Same.
11381 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
11382 (avr_expand_builtin): Expand to a vanilla call if a libgcc
11383 implementation is available (DECL_ASSEMBLER_NAME is set).
11384 (avr_fold_absfx): New static function.
11385 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
11386 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
11387 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
11388 AVR_BUILTIN_ABSLLK.
11389 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
11390 (abshk, absk, abslk, absllk): Provide as static inline functions.
11391
1f546bbb
MP
113922013-01-25 Marek Polacek <polacek@redhat.com>
11393
11394 PR tree-optimization/56035
11395 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
11396
7e184bd7
UB
113972012-01-24 Uros Bizjak <ubizjak@gmail.com>
11398
11399 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
11400 (*movtf_internal_rex64): Add (!o,C) alternative
11401 (*movxf_internal_rex64): Ditto.
11402 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
11403
f5ba49ac
SM
114042013-01-24 Shenghou Ma <minux.ma@gmail.com>
11405
11406 * doc/invoke.texi: fix typo.
11407 * doc/objc.texi: fix typo.
11408
a6343728
RS
114092013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
11410
11411 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
11412 for the first two alternatives.
11413
cd030c07
DN
114142013-01-24 Diego Novillo <dnovillo@google.com>
11415
77dc5297 11416 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
11417 (ggc-zone.o): Remove.
11418 * configure.ac: Remove option --with-gc.
11419 * configure: Re-generate.
11420 * doc/install.texi: Remove documentation for --with-gc.
11421 * gengtype.c (write_enum_defn): Remove. Update all users.
11422 (write_Types_process_field): Remove generation of gt_e_* argument.
11423 (output_type_enum): Remove. Update all users.
11424 (write_enum_defn): Remove. Update all users.
11425 (enum alloc_zone): Remove. Update all users.
77dc5297 11426 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
11427 * ggc-common.c (ggc_splay_alloc): Remove first argument.
11428 Update all callers.
11429 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 11430 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
11431 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
11432 Update all users.
aaf1e810 11433 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
11434 (struct alloc_zone): Remove.
11435 (ggc_internal_alloc_zone_stat): Remove.
11436 (ggc_internal_cleared_alloc_zone_stat): Remove.
11437 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
11438 (ggc_pch_count_object): Remove last argument. Update all users.
11439 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
11440 (struct alloc_zone): Remove.
11441 * ggc-zone.c: Remove.
77dc5297 11442 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
11443 (struct alloc_zone): Remove.
11444 (ggc_alloc_typed_stat): Remove.
11445 (ggc_alloc_typed): Remove.
11446 (ggc_splay_alloc): Remove first argument.
11447 (rtl_zone): Remove. Update all users.
11448 (tree_zone): Remove. Update all users.
11449 (tree_id_zone): Remove. Update all users.
11450 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 11451 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 11452 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 11453 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 11454
a861ffa4
GJL
114552013-01-24 Georg-Johann Lay <avr@gjlay.de>
11456
11457 * config/avr/avr.c (avr_out_fract): Make register numbers that
11458 might be outside of source operand signed.
11459
593c0ddd
UB
114602013-01-24 Uros Bizjak <ubizjak@gmail.com>
11461
11462 * config/i386/constraints.md (Yf): New constraint.
11463 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
11464 of f constraint to conditionaly disable x87 register preferences.
11465 (*movdf_internal): Ditto.
11466 (*movsf_internal): Ditto.
11467
e86c0101
SB
114682013-01-24 Steven Bosscher <steven@gcc.gnu.org>
11469
11470 PR inline-asm/55934
11471 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
11472 that have operands with impossible constraints.
11473 Add a FIXME for a speed-up opportunity.
11474 * lra-constraints.c (process_alt_operands): Verify that a class
11475 selected from constraints on asms is valid for the operand mode.
11476 (curr_insn_transform): Remove incorrect comment.
11477
f6fee35f
DE
114782013-01-23 David Edelsohn <dje.gcc@gmail.com>
11479
11480 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
11481 TOC operand is a valid symbol ref in the constant pool.
11482
114832013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 11484
aaf1e810 11485 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 11486
dc62d7d1
GJL
114872013-01-23 Georg-Johann Lay <avr@gjlay.de>
11488
11489 PR target/54222
11490 * config/avr/stdfix.h: New file.
11491 * t-avr (stdfix-gcc.h): New rule to build it.
11492 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
11493
2660d12d
KS
114942013-01-23 Kostya Serebryany <kcc@google.com>
11495
77dc5297
UB
11496 * config/darwin.h: remove dependency on
11497 CoreFoundation (asan on Mac OS).
2660d12d 11498
a70418fc
JJ
114992013-01-23 Jakub Jelinek <jakub@redhat.com>
11500
11501 PR target/49069
11502 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
11503 instead of cmpdi_operand for first comparison operand.
11504 Don't assert that comparison operands aren't both constants.
11505
47876a2a
JW
115062013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
11507
11508 * doc/install.texi (Downloading the Source): Update references to
11509 downloading separate components.
11510
115112013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
11512
11513 * doc/extend.texi (__int128): Improve grammar.
11514
47876a2a 115152013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
11516
11517 PR target/56028
11518 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
11519 alternative to (o,r).
11520 (*movdi_internal_rex64): Remove (!o,n) alternative.
11521 (DImode immediate->memory splitter): Remove.
11522 (DImode immediate->memory peephole2): Remove.
11523 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
11524 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
11525 alternative to (!o,*r).
11526 (*movtf_internal_sse): New pattern.
11527 (*movxf_internal_rex64): New pattern.
11528 (*movxf_internal): Disable for TARGET_64BIT.
11529 (*movdf_internal_rex64): Remove (!o,F) alternative.
11530
3a984f10
JJ
115312013-01-22 Jakub Jelinek <jakub@redhat.com>
11532
502498d5
JJ
11533 PR middle-end/56074
11534 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
11535 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
11536 * tree-vect-loop-manip.c (find_loop_location): Also ignore
11537 stmt locations where LOCATION_LOCUS of the stmt location is
11538 UNKNOWN_LOCATION or BUILTINS_LOCATION.
11539
3a984f10
JJ
11540 PR target/55686
11541 * config/i386/i386.md (UNSPEC_STOS): New.
11542 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
11543 *strsetqi_1): Add UNSPEC_STOS.
11544
fa817f7f
PC
115452013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
11546
11547 PR c++/56067
11548 * doc/invoke.texi: Remove left over -Wsynth example.
11549
8f498c1b
JJ
115502013-01-21 Jakub Jelinek <jakub@redhat.com>
11551
11552 PR tree-optimization/56051
11553 * fold-const.c (fold_binary_loc): Don't fold
11554 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
11555 a narrowing conversion, or widening conversion from signed
11556 to unsigned.
11557
47876a2a 115582013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
11559
11560 PR rtl-optimization/56023
11561 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
11562 dependent on debug instruction.
11563
5b9db1bc
MJ
115642013-01-21 Martin Jambor <mjambor@suse.cz>
11565
11566 PR middle-end/56022
11567 * function.c (allocate_struct_function): Call
11568 invoke_set_current_function_hook earlier.
11569
e8bb7d68
JJ
115702013-01-21 Jakub Jelinek <jakub@redhat.com>
11571
11572 * reload1.c (init_reload): Only initialize reload_obstack
11573 during the first call.
11574
616a4e32
MP
115752013-01-21 Marek Polacek <polacek@redhat.com>
11576
11577 * cfgloop.c (verify_loop_structure): Fix up grammar.
11578
4401981b
YHH
115792013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
11580
11581 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
11582 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
11583
8e87740b
RR
115842013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11585
11586 PR target/56058
11587 * config/arm/marvell-pj4.md: Update copyright year.
11588 Fix up use of alu to alu_reg and simple_alu_imm.
11589
47876a2a 115902013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
11591
11592 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
11593
89d56d79
VM
115942013-01-20 Vladimir Makarov <vmakarov@redhat.com>
11595
11596 PR target/55433
11597 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 11598 insn for secondary memory move when memory mode should be different.
89d56d79 11599
fe603553
JDA
116002013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11601
11602 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
11603 atomic_storedi_1): New patterns.
11604
01284895
VK
116052013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
11606
11607 btver2 pipeline descriptions.
11608 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
11609 descriptions.
11610 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 11611 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
11612 type attributes.
11613 * config/i386/btver2.md: New file describing btver2 pipelines.
11614
5630e3e1
JL
116152013-01-19 Andrew Pinski <apinski@cavium.com>
11616
11617 PR tree-optimization/52631
11618 * tree-ssa-sccvn (visit_use): Before looking up the original
11619 statement, try looking up the simplified expression.
11620
650ae806
AG
116212013-01-19 Anthony Green <green@moxielogic.com>
11622
11623 * config/moxie/moxie.c (moxie_expand_prologue): Set
11624 current_function_static_stack_size.
11625
e300ec2d
JJ
116262013-01-18 Jakub Jelinek <jakub@redhat.com>
11627
11628 PR tree-optimization/56029
11629 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
11630 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
11631
a3d7af04
SS
116322013-01-18 Sharad Singhai <singhai@google.com>
11633
11634 PR tree-optimization/55995
11635 * dumpfile.c (dump_loc): Print location only if available.
11636 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
11637
66aa7879
VM
116382013-01-18 Vladimir Makarov <vmakarov@redhat.com>
11639
11640 PR target/55433
11641 * lra-constraints.c (curr_insn_transform): Reuse original insn for
11642 secondary memory move.
11643 (inherit_reload_reg): Use rclass instead of cl for
11644 check_secondary_memory_needed_p.
11645
3f0fee7b
JJ
116462013-01-18 Jakub Jelinek <jakub@redhat.com>
11647
11648 PR middle-end/56015
11649 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 11650 the case where writing real complex part of target modifies op1.
3f0fee7b 11651
70c67693
JG
116522013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
11653
11654 * config/aarch64/aarch64-simd.md
11655 (aarch64_vcond_internal<mode>): Handle unordered cases.
11656 * config/aarch64/iterators.md (v_cmp_result): New.
11657
df8de9b3
YHH
116582013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
11659 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11660
11661 * config/arm/marvell-pj4.md: New file.
11662 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
11663 * config/arm/arm.md (generic_sched): Add marvell_pj4.
11664 (generic_vfp): Likewise.
11665 * config/arm/arm-cores.def: Add marvell-pj4.
11666 * config/arm/arm-tune.md: Regenerate.
11667 * config/arm/arm-tables.opt: Regenerate.
11668 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
11669 * doc/invoke.texi: Document marvell-pj4.
11670
be30c356
TB
116712013-01-18 Tejas Belagod <tejas.belagod@arm.com>
11672
11673 * config/aarch64/arm_neon.h: Map scalar types to standard types.
11674
0bfbca58 116752013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
11676
11677 PR debug/54114
11678 PR debug/54402
11679 PR debug/49888
11680 * var-tracking.c (negative_power_of_two_p): New.
11681 (global_get_addr_cache, local_get_addr_cache): New.
11682 (get_addr_from_global_cache, get_addr_from_local_cache): New.
11683 (vt_canonicalize_addr): Rewrite using the above. Adjust the
11684 heading comment.
11685 (vt_stack_offset_p): Remove.
11686 (vt_canon_true_dep): Always canonicalize loc's address.
11687 (clobber_overlapping_mems): Make sure we have a MEM.
11688 (local_get_addr_clear_given_value): New.
11689 (val_reset): Clear local cached entries.
11690 (compute_bb_dataflow): Create and release the local cache.
11691 Disable duplicate MEMs clobbering.
11692 (emit_notes_in_bb): Clobber MEMs likewise.
11693 (vt_emit_notes): Create and release the local cache.
11694 (vt_initialize, vt_finalize): Create and release the global
11695 cache, respectively.
1f6bc337 11696 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 11697
0bfbca58 116982013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
11699
11700 PR libmudflap/53359
11701 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
11702 not found in the symtab.
11703
0bfbca58 117042013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 11705
c350ba53 11706 PR debug/56006
3aa03517
AO
11707 PR rtl-optimization/55547
11708 PR rtl-optimization/53827
11709 PR debug/53671
11710 PR debug/49888
11711 * alias.c (offset_overlap_p): New, factored out of...
11712 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
11713 the conservative special case for symbolic constants. Don't
11714 adjust zero sizes on alignment.
11715
c664546f
JL
117162013-01-18 Bernd Schmidt <bernds@codesourcery.com>
11717
11718 PR rtl-optimization/52573
11719 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
11720 REG_UNUSED for the same register.
11721
1bd3f750
MP
117222013-01-17 Richard Biener <rguenther@suse.de>
11723 Marek Polacek <polacek@redhat.com>
11724
11725 PR rtl-optimization/55833
11726 * loop-unswitch.c (unswitch_loops): Move loop verification...
11727 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
11728 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
11729 Set it to true when we're removing a loop from hierarchy tree in
11730 an irreducible region.
11731 (fix_bb_placements): Adjust caller.
11732 (fix_loop_placements): Likewise.
11733
e52a8b71
GJL
117342013-01-17 Georg-Johann Lay <avr@gjlay.de>
11735
11736 * config/avr/builtins.def (DEF_BUILTIN): Factor out
11737 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
11738 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
11739 Remove ID. Adjust comments.
11740 * config/avr/avr-c.c (avr_builtin_name): Remove.
11741 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
11742 * config/avr/avr.c (avr_tolower): New static function.
11743 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
11744 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
11745 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
11746 default expansion.
11747
8386a7ea
JH
117482013-01-17 Jan Hubicka <jh@suse.cz>
11749
610fb637 11750 PR tree-optimization/55273
8386a7ea
JH
11751 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
11752
47876a2a 117532013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
11754
11755 PR target/55981
11756 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
11757 store through atomic_store<mode>_1.
11758 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
11759
8222c37e
MJ
117602013-01-17 Martin Jambor <mjambor@suse.cz>
11761
11762 PR tree-optimizations/55264
11763 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
11764 for virtual methods.
11765 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
11766 virtual methods before inlining is over.
11767 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
11768 virtual functions.
11769 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
11770 non-virtual.
11771
79f01c76
VM
117722013-01-16 Vladimir Makarov <vmakarov@redhat.com>
11773
11774 PR rtl-optimization/56005
11775 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
11776 pending reads for prefetch.
11777
d0b6bb1b
IB
117782013-01-16 Ian Bolton <ian.bolton@arm.com>
11779
aaf1e810 11780 * config/aarch64/aarch64.md
d0b6bb1b
IB
11781 (*cstoresi_neg_uxtw): New pattern.
11782 (*cmovsi_insn_uxtw): New pattern.
11783 (*<optab>si3_uxtw): New pattern.
11784 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
11785 (*<optab>si3_insn_uxtw): New pattern.
11786 (*bswapsi2_uxtw): New pattern.
11787
cb9cf03b
RB
117882013-01-16 Richard Biener <rguenther@suse.de>
11789
11790 * tree-inline.c (tree_function_versioning): Remove set but
11791 never used variable.
11792
2cfc56b9
RB
117932013-01-16 Richard Biener <rguenther@suse.de>
11794
11795 PR tree-optimization/55964
11796 * tree-flow.h (rename_variables_in_loop): Remove.
11797 (rename_variables_in_bb): Likewise.
11798 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
11799 (copy_loop_before): Adjust and delete update-ssa status.
11800 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 11801 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
11802 (rename_variables_in_loop): Remove.
11803 (slpeel_update_phis_for_duplicate_loop): Likewise.
11804 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
11805 use available cfg machinery instead of duplicating it.
11806 Update PHI nodes and perform poor-mans SSA update here.
11807 (slpeel_tree_peel_loop_to_edge): Adjust.
11808
c25a0c60
RB
118092013-01-16 Richard Biener <rguenther@suse.de>
11810
11811 PR tree-optimization/54767
11812 PR tree-optimization/53465
11813 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
11814 (vrp_visit_phi_node): For PHI arguments coming via backedges
11815 drop all symbolical range information.
11816 (execute_vrp): Compute backedges.
11817
04b535af
RB
118182013-01-16 Richard Biener <rguenther@suse.de>
11819
11820 * doc/install.texi: Update CLooG and ISL requirements to
11821 0.18.0 and 0.11.1.
11822
8b0a1e0b
CB
118232013-01-16 Christian Bruel <christian.bruel@st.com>
11824
11825 PR target/55301
11826 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
11827 (broken_move): Handle UNSPECV_SP_SWITCH_B.
11828 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
11829
118302013-01-16 DJ Delorie <dj@redhat.com>
11831
11832 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
11833 (UNSPECV_SP_SWITCH_E): New.
11834 (sp_switch_1): Change to an unspec.
11835 (sp_switch_2): Change to an unspec. Don't use post-inc when we
11836 replace $r15.
11837
118382013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
11839
11840 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
11841 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
11842 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
11843 (expand_mem_thread_fence): Ditto.
11844 (expand_mem_signal_fence): Ditto.
11845 (expand_atomic_load): Ditto.
11846 (expand_atomic_store): Ditto.
11847
0bfbca58 118482013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
11849
11850 PR rtl-optimization/55547
11851 PR rtl-optimization/53827
11852 PR debug/53671
11853 PR debug/49888
11854 * alias.c (memrefs_conflict_p): Set sizes to negative after
11855 AND adjustments.
11856
305e3ac1
JJ
118572013-01-15 Jakub Jelinek <jakub@redhat.com>
11858
11859 PR target/55940
11860 * function.c (thread_prologue_and_epilogue_insns): Always
11861 add crtl->drap_reg to set_up_by_prologue.set, even if
11862 stack_realign_drap is false.
11863
f78ac4f2
JBG
118642013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11865
11866 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
11867 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
11868 *call): Fix indention.
11869
a78a8cc4
TV
118702013-01-15 Tom de Vries <tom@codesourcery.com>
11871
11872 PR target/55876
11873 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
11874 Update comment.
11875
0e80383f
VM
118762013-01-15 Vladimir Makarov <vmakarov@redhat.com>
11877
305e3ac1 11878 PR rtl-optimization/55153
0e80383f
VM
11879 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
11880
207b5956
MJ
118812013-01-15 Martin Jambor <mjambor@suse.cz>
11882
11883 PR tree-optimization/55920
11884 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
11885 accesses as grp_to_be_debug_replaced.
11886
a7818b54
JJ
118872013-01-15 Jakub Jelinek <jakub@redhat.com>
11888
11889 PR tree-optimization/55920
11890 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
11891 there is non-useless type conversion needed from debug rhs to lhs,
11892 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
11893
b0fe107e
JM
118942013-01-15 Joseph Myers <joseph@codesourcery.com>
11895 Mikael Pettersson <mikpe@it.uu.se>
11896
11897 PR target/43961
11898 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
11899 Thumb.
11900 (ASM_OUTPUT_CASE_LABEL): Remove.
11901 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
11902 * final.c (shorten_branches): Update alignment of labels before
11903 jump tables if CASE_VECTOR_SHORTEN_MODE.
11904
34ab62ee
RB
119052013-01-15 Richard Biener <rguenther@suse.de>
11906
11907 PR bootstrap/55961
11908 * system.h: Do not include gmp.h for building host tools.
11909
783a3a05
RB
119102013-01-15 Richard Biener <rguenther@suse.de>
11911
11912 PR middle-end/55882
11913 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
11914 account for bitpos when computing alignment.
11915
3a579e09
VY
119162013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
11917
11918 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
11919 (ix86_target_macros_internal): Likewise.
11920
11921 * config/i386/i386.c (m_CORE2I7): Removed.
11922 (m_CORE_HASWELL): New macro.
11923 (m_CORE_ALL): Likewise.
11924 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
11925 (initial_ix86_arch_features): Likewise.
11926 (processor_target_table): Initializations for Core avx2.
11927 (cpu_names): New names "core-avx2".
11928 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
11929 PROCESSOR_CORE_HASWELL.
11930 (ix86_issue_rate): New case.
11931 (ia32_multipass_dfa_lookahead): Likewise.
11932 (ix86_sched_init_global): Likewise.
11933
11934 * config/i386/i386.h (TARGET_HASWELL): New macro.
11935 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
11936 (processor_type): New PROCESSOR_HASWELL.
11937
955f5a07
JJ
119382013-01-15 Jakub Jelinek <jakub@redhat.com>
11939
ff784829
JJ
11940 PR tree-optimization/55955
11941 * tree-vect-loop.c (vectorizable_reduction): Give up early on
11942 *SHIFT_EXPR and *ROTATE_EXPR codes.
11943
955f5a07
JJ
11944 PR tree-optimization/48766
11945 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
11946 -ftrapv disable -fwrapv.
11947
aeb8b4e9
GJL
119482013-01-14 Georg-Johann Lay <avr@gjlay.de>
11949
11950 PR target/55974
11951 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
11952 etc. to 1 and not to __flash.
11953 Use LL suffix for __INT24_MAX__ with -mint8.
11954 Use ULL suffix for __UINT24_MAX__ with -mint8.
11955
1c494c6a
GJL
119562013-01-14 Georg-Johann Lay <avr@gjlay.de>
11957
11958 * config/avr/avr-arch.h
11959 (struct base_arch_s): Use typedef avr_arch_t instead.
11960 (struct arch_info_s): Use typedef avr_arch_info_t instead.
11961 (struct mcu_type_s): Use typedef avr_mcu_t instead.
11962 * config/avr/avr.c: Same.
11963 * config/avr/avr-devices.c: Same.
11964 * config/avr/driver-avr.c: Same.
11965 * config/avr/gen-avr-mmcu-texi.c: Same.
11966 * config/avr/avr-mcus.def: Adjust comment.
11967
a50344cb
TB
119682013-01-14 Tejas Belagod <tejas.belagod@arm.com>
11969
88e784e6
UB
11970 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
11971 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 11972
47876a2a 119732013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
11974 Andi Kleen <ak@linux.intel.com>
11975
11976 PR target/55948
11977 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
11978 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
11979 memmodel flag.
11980
00892272
GJL
119812013-01-14 Georg-Johann Lay <avr@gjlay.de>
11982
11983 * config/avr/avr-stdint.h: Remove trailing blanks.
11984 * config/avr/avr-log.h: Same.
11985 * config/avr/avr-arch.h: Same.
11986 * config/avr/avr-devices.c: Same.
11987 * config/avr/avr-dimode.md: Same.
11988 * config/avr/predicates.md: Same.
11989 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 11990
00892272
GJL
11991 * config/avr/avr-protos.h: Same. And:
11992 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
11993 (init_cumulative_args): Rename to avr_init_cumulative_args.
11994 (expand_prologue): Rename to avr_expand_prologue.
11995 (expand_epilogue): Rename to avr_expand_epilogue.
11996 (adjust_insn_length): Rename to avr_adjust_insn_length.
11997 (notice_update_cc): Rename to avr_notice_update_cc.
11998 (final_prescan_insn): Rename to avr_final_prescan_insn.
11999 * config/avr/avr.c: Same.
12000 * config/avr/avr.h: Same.
12001 * config/avr/avr.md: Remove trailing blanks.
12002 (prologue): Use avr_expand_prologue.
12003 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
12004
7bb01996
RB
120052013-01-14 Richard Biener <rguenther@suse.de>
12006
12007 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
12008 verify_location, collect_subblocks): New functions.
12009 (verify_gimple_in_cfg): Verify that locations only reference
12010 BLOCKs in the functions BLOCK tree.
12011
2724573f
RB
120122013-01-14 Richard Biener <rguenther@suse.de>
12013
12014 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
12015 PHI argument.
12016 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
12017 unshare reference.
12018 (insert_out_of_ssa_copy_on_edge): Likewise.
12019 (rewrite_close_phi_out_of_ssa): Likewise.
12020 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
12021 debug expressions.
12022 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
12023 propagated constants.
12024 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
12025 can not be shared.
12026
9a0bbab6
GJL
120272013-01-14 Georg-Johann Lay <avr@gjlay.de>
12028
12029 * config/avr/avr-modes.def: Add GPL copyright notice.
12030
45805f17
UB
120312013-01-13 Uros Bizjak <ubizjak@gmail.com>
12032
12033 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
12034 MEMMODEL_MASK to determine memory model.
12035 (atomic_store<mode>): Ditto from operands[2].
12036 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
12037
9d60be38
JJ
120382013-01-13 Jakub Jelinek <jakub@redhat.com>
12039
12040 PR fortran/55935
45805f17 12041 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
12042 (fold_gimple_assign): Don't call unshare_expr here.
12043 (fold_ctor_reference): Call unshare_expr.
12044
e7f49d92
TG
120452013-01-13 Terry Guo <terry.guo@arm.com>
12046
aaf1e810
EB
12047 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
12048 * doc/fragments.texi: Document MULTILIB_REUSE.
12049 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 12050 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 12051 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
12052 (tmpmultilib4): Ditto.
12053 (multilib_reuse): New multilib argument.
12054
fbd03a27
RS
120552013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
12056
12057 * Makefile.in: Update copyright.
12058
b3681f13
TV
120592013-01-12 Tom de Vries <tom@codesourcery.com>
12060
12061 PR middle-end/55890
12062 * calls.c (expand_call): Check if arg_nr is valid.
12063
3f287e4b
MM
120642013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
12065
12066 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
12067 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
12068 documentation. Add missing '__' in front of
12069 __builtin_ia32_packssdw256.
3f287e4b 12070
1abcd5eb
AK
120712013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12072
12073 PR target/55719
12074 * config/s390/s390.c (s390_preferred_reload_class): Do not return
12075 NO_REGS for larl operands.
12076 (s390_reload_larl_operand): Use s390_load_address instead of
12077 emit_move_insn.
12078
980d0812
RB
120792013-01-11 Richard Biener <rguenther@suse.de>
12080
12081 * tree-cfg.c (verify_node_sharing_1): Split out from ...
12082 (verify_node_sharing): ... here.
12083 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
12084
7cb9fd07
EB
120852013-01-11 Eric Botcazou <ebotcazou@adacore.com>
12086
12087 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
12088 Substitute TREECHECKING.
12089 * configure: Regenerate.
12090 * Makefile.in (TREECHECKING): New.
12091
47876a2a 120922013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
12093
12094 PR tree-optimization/44061
12095 * tree-vrp.c (extract_range_basic): Compute zero as
12096 value-range for __builtin_constant_p of function parameters.
12097
d1e082c2
RS
120982013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
12099
45805f17 12100 Update copyright years.
d1e082c2 12101
f85021b0
VM
121022013-01-10 Vladimir Makarov <vmakarov@redhat.com>
12103
9d60be38 12104 PR rtl-optimization/55672
0160442c
VM
12105 * lra-eliminations.c (mark_not_eliminable): Permit addition with
12106 const to be eliminable.
f85021b0 12107
7a8b1ec4
DE
121082013-01-10 David Edelsohn <dje.gcc@gmail.com>
12109
12110 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
12111 * configure: Regenerate.
12112
ad2e5b71
RB
121132013-01-10 Richard Biener <rguenther@suse.de>
12114
ddf9322d 12115 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 12116
ffc5b2bb
RB
121172013-01-10 Richard Biener <rguenther@suse.de>
12118
12119 PR bootstrap/55792
12120 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
12121 locations for virtual PHI arguments.
12122 (rewrite_update_phi_arguments): Likewise.
12123
e1f674e4
JS
121242013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
12125
12126 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
12127 on to assembler.
12128
a57fc743
JJ
121292013-01-10 Jakub Jelinek <jakub@redhat.com>
12130
12131 PR tree-optimization/55921
12132 * tree-complex.c (expand_complex_asm): New function.
12133 (expand_complex_operations_1): Call it for GIMPLE_ASM.
12134
0ff4390d
AK
121352013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12136
12137 PR target/55718
12138 * config/s390/s390.c (s390_symref_operand_p)
12139 (s390_loadrelative_operand_p): Merge the two functions.
12140 (s390_check_qrst_address, print_operand_address): Add parameters
12141 to s390_loadrelative_operand_p invokation.
12142 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
12143 (s390_reload_larl_operand, s390_secondary_reload): Use
12144 s390_loadrelative_operand_p instead of s390_symref_operand_p.
12145 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
12146
6f557e0e
MS
121472013-01-09 Mike Stump <mikestump@comcast.net>
12148
12149 * dse.c (record_store): Remove unnecessary assert.
12150
7770c9e9
JH
121512013-01-09 Jan Hubicka <jh@suse.cz>
12152
12153 PR tree-optimization/55569
12154 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
12155 * cfgloop.h (scale_loop_profile): Likewise.
12156
a19b1432
JH
121572013-01-09 Jan Hubicka <jh@suse.cz>
12158
12159 PR lto/45375
ddf9322d
UB
12160 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
12161 functions.
a19b1432
JH
12162 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
12163
9a002da8
RS
121642013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
12165
12166 PR middle-end/55114
12167 * expr.h (maybe_emit_group_store): Declare.
12168 * expr.c (maybe_emit_group_store): New function.
12169 * builtins.c (expand_builtin_int_roundingfn): Call it.
12170 (expand_builtin_int_roundingfn_2): Likewise.
12171
511dcace
VM
121722013-01-09 Vladimir Makarov <vmakarov@redhat.com>
12173
e1f2b729 12174 PR rtl-optimization/55829
511dcace
VM
12175 * lra-constraints.c (match_reload): Add code for absent output.
12176 (curr_insn_transform): Add code for reloads of matched inputs
12177 without output.
12178
7b0fe4f4
UB
121792013-01-09 Uros Bizjak <ubizjak@gmail.com>
12180
12181 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
12182 attribute of movddup insn to DF.
12183 (*vec_interleave_lowv2df): Ditto.
12184 (vec_dupv2df): Ditto.
12185
870ca331
JH
121862013-01-09 Jan Hubicka <jh@suse.cz>
12187
12188 PR tree-optimiation/55875
12189 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
12190 EVERY_ITERATION parameter.
7b0fe4f4 12191 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
12192 (idx_infer_loop_bounds): Similarly here.
12193 (n_of_executions_at_most): Simplify
12194 to only test for cases where statement is dominated by the
7b0fe4f4 12195 particular bound; handle correctly the "postdominance" test.
870ca331
JH
12196 (scev_probably_wraps_p): Use max loop iterations info
12197 as a global bound first.
12198
6f575fe4 121992013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
12200 Nick Clifton <nickc@redhat.com>
12201
12202 * config/v850/v850.md (cbranchsf4): New pattern.
12203 (cstoresf4): New pattern.
12204 (cbranchdf4): New pattern.
12205 (cstoredf4): New pattern.
12206 (movsicc): Disallow floating point comparisons.
12207 (cmpsf_le_insn): Fix order of operators.
12208 (cmpsf_lt_insn): Likewise.
12209 (cmpsf_eq_insn): Likewise.
12210 (cmpdf_le_insn): Likewise.
12211 (cmpdf_lt_insn): Likewise.
12212 (cmpdf_eq_insn): Likewise.
12213 (cmpsf_ge_insn): Use LE comparison.
12214 (cmpdf_ge_insn): Likewise.
12215 (cmpsf_gt_insn): Use LT comparison.
12216 (cmpdf_gt_insn): Likewise.
12217 (cmpsf_ne_insn): Delete pattern.
12218 (cmpdf_ne_insn): Delete pattern.
12219 * config/v850/v850.c (v850_gen_float_compare): Use
12220 gen_cmpdf_eq_insn for NE comparison.
12221 (v850_float_z_comparison_operator)
12222 (v850_float_nz_comparison_operator): Move from here ...
12223 * config/v850/predicates.md: ... to here. Move GT and GE
12224 comparisons into v850_float_z_comparison_operator.
12225 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
12226 Delete prototype.
12227 (v850_float_nz_comparison_operator): Likewise.
12228
f0d54148
JDA
122292013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12230
12231 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
12232 with calls to gen_insvsi/gen_insvdi.
12233
8f01beca
VK
122342013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
12235
12236 * config/i386/i386.c (initial_ix86_tune_features): Set up
12237 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
12238
2aa579ad
JJ
122392013-01-09 Steven Bosscher <steven@gcc.gnu.org>
12240 Jakub Jelinek <jakub@redhat.com>
12241
12242 PR tree-optimization/48189
12243 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
12244 If nitercst is 0, don't predict the exit edge.
12245
6edc3e32 122462013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
12247
12248 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
12249 in asm_fprintf with reg_names.
12250 (aarch64_print_operand_address): Likewise.
12251 (aarch64_return_addr): Likewise.
12252 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
12253
f6f94d94
JDA
122542013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12255
12256 * config/pa/pa.h (VAL_U6_BITS_P): Define.
12257 (INT_U6_BITS): Likewise.
12258 * config/pa/predicates.md (uint6_operand): New predicate.
12259 (shift5_operand, shift6_operand): Likewise.
12260 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
12261 arith32_operand.
12262 (lshrdi3): Use shift6_operand.
12263 (shrpsi4, shrpdi4): New insn patterns.
12264 (extzv): Delete expander.
12265 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
12266 predicates in unamed zero extract patterns. Tighten common constraint.
12267 (extv): Delete expander.
12268 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
12269 predicates in unamed sign extract patterns. Tighten common constraint.
12270 (insv): Delete expander.
12271 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
12272 predicates in unamed insert patterns. Tighten common constraint.
12273 Change uint32_operand predicate to uint6_operand predicate in unamed
12274 DImode pattern to insert constant values of type 1...1xxxx.
12275
36b72910
JH
122762013-01-04 Jan Hubicka <jh@suse.cz>
12277
12278 PR tree-optimization/55823
7b0fe4f4
UB
12279 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
12280 issue.
36b72910 12281
47876a2a 122822013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
12283 Uros Bizjak <ubizjak@gmail.com>
12284
12285 PR rtl-optimization/55845
12286 * df-problems.c (can_move_insns_across): Stop scanning at
12287 volatile_insn_p source instruction or give up if
12288 across_from .. across_to range contains any volatile_insn_p
12289 instructions.
12290
4369c11e
TB
122912013-01-08 Tejas Belagod <tejas.belagod@arm.com>
12292
7b0fe4f4
UB
12293 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
12294 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
12295 Declare.
4369c11e 12296 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 12297 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 12298
aeb7e7c1
JJ
122992013-01-08 Jakub Jelinek <jakub@redhat.com>
12300
12301 PR fortran/55341
12302 * asan.c (asan_clear_shadow): New function.
12303 (asan_emit_stack_protection): Use it.
12304
a02ad1aa
TB
123052013-01-08 Tejas Belagod <tejas.belagod@arm.com>
12306
12307 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
12308 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
12309 with tab instead of space.
12310
f90d87f5
NC
123112013-01-08 Nick Clifton <nickc@redhat.com>
12312
12313 * config/rl78/rl78.c (rl78_expand_prologue): Always select
12314 register bank 0 at the start of an interrupt handler.
83ffd964
NC
12315 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
12316 MDBH registers.
f90d87f5 12317
385eb93d
JG
123182013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
12319
12320 * config/aarch64/aarch64-simd.md
12321 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
12322 (aarch64_simd_bsl): Likewise.
12323 (aarch64_vcond_internal<mode>): Likewise.
12324 (vcond<mode><mode>): Likewise.
12325 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
12326 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
12327
4dcd1054
JG
123282013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
12329
12330 * config/aarch64/aarch64-builtins.c
12331 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
12332
4267a4a6
MJ
123332013-01-08 Martin Jambor <mjambor@suse.cz>
12334
12335 PR debug/55579
12336 * tree-sra.c (analyze_access_subtree): Return true also after
12337 potentially creating a debug-only replacement.
12338
5f4e6de3
JJ
123392013-01-08 Jakub Jelinek <jakub@redhat.com>
12340
3138f224
JJ
12341 PR middle-end/55890
12342 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
12343
5f4e6de3
JJ
12344 PR tree-optimization/54120
12345 * tree-vrp.c (range_fits_type_p): Don't allow
12346 src_precision < precision from signed vr to unsigned_p
12347 if vr->min or vr->max is negative.
12348 (simplify_float_conversion_using_ranges): Test can_float_p
12349 against CODE_FOR_nothing.
12350
f3ef18ff
JJ
123512013-01-08 Jakub Jelinek <jakub@redhat.com>
12352 Richard Biener <rguenther@suse.de>
12353
12354 PR middle-end/55851
12355 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
12356 types instead of just INTEGER_TYPE types.
12357
25c210f9
MK
123582013-01-07 Mark Kettenis <kettenis@openbsd.org>
12359
12360 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
12361 TF_SIZE): Define.
f90d87f5 12362
81826a7b
SE
123632013-01-07 Steve Ellcey <sellcey@mips.com>
12364
12365 PR target/42661
12366 * config/mips/mips.opt: Change mad to mmad to match documentation.
12367
35678514
GJL
123682013-01-07 Georg-Johann Lay <avr@gjlay.de>
12369
12370 PR target/55897
12371 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
12372 .progmemx.data now.
12373
e5669488
GJL
123742013-01-07 Georg-Johann Lay <avr@gjlay.de>
12375
12376 PR target/55897
12377 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
12378 (avr_addrspace_t): Add .section_name field.
12379 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
12380 array size.
12381 (avr_addrspace): Same. Initialize .section_name. Remove last
12382 NULL entry. Put __memx into .progmemx.data.
12383 (progmem_section_prefix): Remove.
12384 (avr_asm_init_sections): No need to initialize progmem_section.
12385 (avr_asm_named_section): Use avr_addrspace[].section_name to get
12386 section name prefix.
12387 (avr_asm_select_section): Ditto. And use get_unnamed_section to
12388 retrieve the progmem section.
12389 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
12390 boundary to run over avr_addrspace[].
12391 (avr_register_target_pragmas): Ditto.
12392
656e6f37
JJ
123932013-01-06 Jakub Jelinek <jakub@redhat.com>
12394
12395 * varasm.c (output_constant_def_contents): For asan_protect_global
12396 protected strings, adjust DECL_ALIGN if needed, before testing for
12397 anchored symbols.
12398 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
12399 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
12400 normal decls.
12401 (output_object_block): For asan protected decls, emit asan padding
12402 after their contents.
12403 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
12404 (asan_finish_file): Test it here instead.
12405
6edc3e32
UB
124062013-01-07 Nick Clifton <nickc@redhat.com>
12407 Matthias Klose <doko@debian.org>
12408 Doug Kwan <dougkwan@google.com>
12409 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
12410
12411 PR driver/55470
12412 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
12413
12414 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
12415
12416 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
12417
7b0fe4f4 12418 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
12419
12420 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
12421
2a095093
GJL
124222013-01-07 Georg-Johann Lay <avr@gjlay.de>
12423
f3b503f4 12424 PR target/54461
2a095093
GJL
12425 * doc/install.texi (Cross-Compiler-Specific Options): Document
12426 --with-avrlibc.
12427
383f9b34
TB
124282013-01-07 Tejas Belagod <tejas.belagod@arm.com>
12429
12430 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
12431 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
12432 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
12433 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
12434 vqmovun_high_s64): Fix source operand number and update copyright.
12435
3626621a
RB
124362013-01-07 Richard Biener <rguenther@suse.de>
12437
12438 PR middle-end/55890
12439 * gimple.h (gimple_call_builtin_p): New overload.
12440 * gimple.c (validate_call): New function.
12441 (gimple_call_builtin_p): Likewise.
12442 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
12443 Use gimple_call_builtin_p.
12444 (find_func_clobbers): Likewise.
12445 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
12446 (strlen_optimize_stmt): Likewise.
12447
8b2ea410
JG
124482013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
12449
12450 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
12451 (vld1q_dup_*): Likewise.
12452 (vld1_*): Likewise.
12453 (vld1q_*): Likewise.
12454 (vld1_lane_*): Likewise.
12455 (vld1q_lane_*): Likewise.
12456
9713d329
RB
124572013-01-07 Richard Biener <rguenther@suse.de>
12458
12459 * lto-streamer.h (LTO_minor_version): Bump to 2.
12460
3520f7cc
JG
124612013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
12462
12463 * config/aarch64/aarch64-protos.h
12464 (aarch64_const_double_zero_rtx_p): Rename to...
12465 (aarch64_float_const_zero_rtx_p): ...this.
12466 (aarch64_float_const_representable_p): New.
12467 (aarch64_output_simd_mov_immediate): Likewise.
12468 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
12469 move immediate case.
12470 * config/aarch64/aarch64.c
12471 (aarch64_const_double_zero_rtx_p): Rename to...
12472 (aarch64_float_const_zero_rtx_p): ...this.
12473 (aarch64_print_operand): Allow printing of new constants.
12474 (aarch64_valid_floating_const): New.
12475 (aarch64_legitimate_constant_p): Check for valid floating-point
12476 constants.
12477 (aarch64_simd_valid_immediate): Likewise.
12478 (aarch64_vect_float_const_representable_p): New.
12479 (aarch64_float_const_representable_p): Likewise.
12480 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
12481 (aarch64_output_simd_mov_immediate): New.
12482 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
12483 (*movdf_aarch64): Likewise.
12484 * config/aarch64/constraints.md (Ufc): New.
12485 (Y): call aarch64_float_const_zero_rtx.
12486 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
12487
e167c04d
RB
124882013-01-07 Richard Biener <rguenther@suse.de>
12489
12490 PR tree-optimization/55888
12491 PR tree-optimization/55862
12492 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
12493 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
12494 not if it is contained therein.
12495
0139aaab
GJL
124962013-01-07 Georg-Johann Lay <avr@gjlay.de>
12497
12498 * config/avr/t-avr: Typo.
12499
4a176b23
GJL
125002013-01-07 Georg-Johann Lay <avr@gjlay.de>
12501
12502 PR55243
12503 * config/avr/t-avr: Don't automatically rebuild
12504 $(srcdir)/config/avr/t-multilib
12505 $(srcdir)/config/avr/avr-tables.opt
12506 $(srcdir)/doc/avr-mmcu.texi
12507 (avr-mcus): New phony target to build them on request.
12508 (s-avr-mlib, s-avr-mmcu-texi): Remove.
12509 * avr/avr-mcus.def: Adjust comments.
12510
c7afdc98
UB
125112013-01-07 Uros Bizjak <ubizjak@gmail.com>
12512
12513 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
12514
1ab05c31
RS
125152013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
12516
12517 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
12518
488e3acc
RS
125192013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
12520
12521 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
12522
a89599d2
DE
125232013-01-05 David Edelsohn <dje.gcc@gmail.com>
12524
12525 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
12526 to generate profiling.
12527 * config/rs6000/aix64.h (LIB_SPEC): Same.
12528
70f09188
AP
125292013-01-04 Andrew Pinski <apinski@cavium.com>
12530
12531 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
12532 New function.
12533 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
12534
918d445f
UB
125352013-01-04 Uros Bizjak <ubizjak@gmail.com>
12536
12537 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
12538 unconditionally.
12539 (ix86_expand_move): Ditto.
12540 (ix86_zero_extend_to_Pmode): Ditto.
12541 (ix86_expand_call): Ditto.
12542 (ix86_expand_special_args_builtin): Ditto.
12543 (ix86_expand_builtin): Ditto.
12544
361618ec
RB
125452013-01-04 Richard Biener <rguenther@suse.de>
12546
12547 PR tree-optimization/55862
12548 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
12549 translating them through PHI nodes.
12550
87eab554
MJ
125512013-01-04 Martin Jambor <mjambor@suse.cz>
12552
12553 PR tree-optimization/55755
12554 * tree-sra.c (sra_modify_assign): Do not check that an access has no
12555 children when trying to avoid producing a VIEW_CONVERT_EXPR.
12556
33879b9f
MP
125572013-01-04 Marek Polacek <polacek@redhat.com>
12558
12559 PR middle-end/55859
12560 * opts.c (default_options_optimization): Clarify error message.
12561
3068819a
RB
125622013-01-04 Richard Biener <rguenther@suse.de>
12563
12564 PR middle-end/55863
12565 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
12566 reassociation.
12567
0e4ae794
JDA
125682013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12569
12570 PR target/53789
12571 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
12572 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
12573 references.
0e4ae794 12574
65c88cef
RH
125752013-01-03 Richard Henderson <rth@redhat.com>
12576
12577 * config/i386/i386.c (ix86_expand_move): Always assign to op1
12578 after eliminating TLS symbols.
12579
8ac16127
MG
125802013-01-03 Marc Glisse <marc.glisse@inria.fr>
12581
12582 PR bootstrap/50167
12583 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
12584 * graphite-poly.c (debug_gmp_value): Likewise.
12585
bb664f09
UB
125862013-01-03 Uros Bizjak <ubizjak@gmail.com>
12587
12588 PR target/55712
12589 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
12590 selected code model, define __code_mode_small__, __code_model_medium__,
12591 __code_model_large__, __code_model_32__ or __code_model_kernel__.
12592 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
12593 xchg temporary register with %k. Declare temporary register as
12594 early clobbered.
12595 [__x86_64__]: For medium and large code models, preserve %rbx register.
12596
bcf1ef00
RB
125972013-01-03 Richard Biener <rguenther@suse.de>
12598
0506634a 12599 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
12600 (dump_subscript): Adjust.
12601 (finalize_ddr_dependent): Do not dump redundant info.
12602 (analyze_siv_subscript): Adjust.
12603 (subscript_dependence_tester): Likewise.
12604 (compute_affine_dependence): Likewise.
12605
59fd17e3
RB
126062013-01-03 Richard Biener <rguenther@suse.de>
12607
12608 Revert
12609 2013-01-03 Richard Biener <rguenther@suse.de>
12610
12611 PR tree-optimization/55857
12612 * tree-vect-stmts.c (vectorizable_load): Do not setup
12613 re-alignment for invariant loads.
12614
12615 2013-01-02 Richard Biener <rguenther@suse.de>
12616
12617 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 12618 invariant load do not generate a vector load from the scalar location.
59fd17e3 12619
595c2679
RB
126202013-01-03 Richard Biener <rguenther@suse.de>
12621
12622 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
12623 for not vectorizing.
12624 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
12625 not build INDIRECT_REFs, call get_name once only.
12626 (vect_create_data_ref_ptr): Likewise. Dump base object kind
12627 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
12628
90bb7d7a
RB
126292013-01-03 Richard Biener <rguenther@suse.de>
12630
12631 PR tree-optimization/55857
12632 * tree-vect-stmts.c (vectorizable_load): Do not setup
12633 re-alignment for invariant loads.
12634
f09b77ca
RB
126352013-01-03 Richard Biener <rguenther@suse.de>
12636
12637 PR lto/55848
12638 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
12639 prefer a built-in decl.
12640
3461a16e
JJ
126412013-01-03 Jakub Jelinek <jakub@redhat.com>
12642
df8e2b4f
JJ
12643 * gcc.c (process_command): Update copyright notice dates.
12644 * gcov.c (print_version): Likewise.
12645 * gcov-dump.c (print_version): Likewise.
12646
3461a16e
JJ
12647 PR rtl-optimization/55838
12648 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
12649 iv0.step, iv1.step and step.
12650
8b5546d6
JJ
126512013-01-03 Jakub Jelinek <jakub@redhat.com>
12652 Marc Glisse <marc.glisse@inria.fr>
12653
12654 PR tree-optimization/55832
12655 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
12656 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
12657 integer_{one,zero}_node.
12658
8ab1d2e9
JJ
126592013-01-03 Jakub Jelinek <jakub@redhat.com>
12660
12661 PR debug/54402
12662 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
12663 * var-tracking.c (reverse_op): Don't add reverse ops to
12664 VALUEs that have already
0506634a 12665 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 12666
5b9ad1d4
GP
126672013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
12668
12669 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
12670
e25a6711
TJ
126712013-01-02 Teresa Johnson <tejohnson@google.com>
12672
12673 * dumpfile.c (dump_loc): Print filename with location.
12674 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
12675 new location_t parameter to emit complete unroll message with
12676 new dump framework.
12677 (canonicalize_loop_induction_variables): Compute loops location
12678 and pass to try_unroll_loop_completely.
12679 * loop-unroll.c (report_unroll_peel): New function.
12680 (peel_loops_completely): Use new dump format with location
12681 for main dumpfile message, and invoke report_unroll_peel on success.
12682 (decide_unrolling_and_peeling): Ditto.
12683 (decide_peel_once_rolling): Remove old dumpfile message subsumed
12684 by report_unroll_peel.
12685 (decide_peel_completely): Ditto.
12686 (decide_unroll_constant_iterations): Ditto.
12687 (decide_unroll_runtime_iterations): Ditto.
12688 (decide_peel_simple): Ditto.
12689 (decide_unroll_stupid): Ditto.
12690 * cfgloop.c (get_loop_location): New function.
12691 * cfgloop.h (get_loop_location): Declare.
12692
77878621
ST
126932013-01-02 Sriraman Tallam <tmsriram@google.com>
12694
12695 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
12696 NULL.
12697
9e65d03e
JDA
126982013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12699
12700 PR middle-end/55198
12701 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
12702 BLKmode objects when EXPAND_MEMORY is specified.
12703
6a7da30f
ST
127042013-01-02 Sriraman Tallam <tmsriram@google.com>
12705
12706 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
12707 in loop predicate.
12708 (fold_builtin_cpu): Do not share cpu model decls across statements.
12709
e78167f2
JM
127102013-01-02 Jason Merrill <jason@redhat.com>
12711
12712 PR c++/55804
12713 * tree.c (build_array_type_1): Revert earlier change.
12714
8c075fb4
YZ
127152013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
12716
12717 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
12718 "cortex-a57".
12719 * config/aarch64/aarch64-tune.md: Re-generate.
12720
0682ed3e
RB
127212013-01-02 Richard Biener <rguenther@suse.de>
12722
12723 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 12724 invariant load do not generate a vector load from the scalar location.
0682ed3e 12725
b8f6a302
RB
127262013-01-02 Richard Biener <rguenther@suse.de>
12727
12728 PR bootstrap/55784
12729 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
12730 * configure: Regenerate.
12731
04b80dbb
RS
127322013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
12733
12734 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
12735 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
12736 (expand_builtin_int_roundingfn_2): Keep the original target around
12737 for the fallback case.
12738
635b0b0c
RS
127392013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
12740
12741 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
12742 to be clear for sign changes.
12743
42d57399
JH
127442013-01-01 Jan Hubicka <jh@suse.cz>
12745
12746 * ipa-inline-analysis.c: Fix formatting.
12747
5bb6669d
JJ
127482013-01-01 Jakub Jelinek <jakub@redhat.com>
12749
12750 PR tree-optimization/55831
12751 * tree-vect-loop.c (get_initial_def_for_induction): Use
12752 gsi_after_labels instead of gsi_start_bb.
ad41bd84 12753\f
86a2db33 12754Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
12755
12756Copying and distribution of this file, with or without modification,
12757are permitted in any medium without royalty provided the copyright
12758notice and this notice are preserved.
This page took 6.735229 seconds and 5 git commands to generate.