]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
ada-tree.h (DECL_BY_DOUBLE_REF_P): Delete.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
50751417
AM
12013-06-13 Alan Modra <amodra@gmail.com>
2
3 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
4 * config/rs6000/rs6000.md (signbittf2): New insn.
5 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
6 (abstf2_internal, cmptf_internal2): Likewise.
7 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
8
4b02c962
MM
92013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
10 Pat Haugen <pthaugen@us.ibm.com>
11 Peter Bergner <bergner@vnet.ibm.com>
12
13 * config/rs6000/rs6000.c (emit_load_locked): Add support for
14 power8 byte, half-word, and quad-word atomic instructions.
15 (emit_store_conditional): Likewise.
16 (rs6000_expand_atomic_compare_and_swap): Likewise.
17 (rs6000_expand_atomic_op): Likewise.
18
19 * config/rs6000/sync.md (larx): Add new modes for power8.
20 (stcx): Likewise.
21 (AINT): New mode iterator to include TImode as well as normal
22 integer modes on power8.
23 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
24 that VSX registers are not considered. Use AINT mode iterator
25 instead of INT1 to allow inclusion of quad word atomic operations
26 on power8.
27 (load_locked<mode>): Likewise.
28 (store_conditional<mode>): Likewise.
29 (atomic_compare_and_swap<mode>): Likewise.
30 (atomic_exchange<mode>): Likewise.
31 (atomic_nand<mode>): Likewise.
32 (atomic_fetch_<fetchop_name><mode>): Likewise.
33 (atomic_nand_fetch<mode>): Likewise.
34 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
35 each type.
36 (ATOMIC): On power8, add QImode, HImode modes.
37 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
38 modes that promote to SImode.
39 (load_lockedti): Convert TImode arguments to PTImode, so that we
40 get a guaranteed even/odd register pair.
41 (load_lockedpti): Likewise.
42 (store_conditionalti): Likewise.
43 (store_conditionalpti): Likewise.
44
45 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
46 atomic load/store instructions.
47 (HSI): Likewise.
48
710b6cc1
RS
492013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
50
51 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
52 loads.
53 (insn_count): New attribute, with most cases extracted from...
54 (length): ...here. Redefine most cases in terms of insn_count.
55 (single_insn): Delete.
56 (can_delay): Use insn_count to check for single instructions.
57 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
58 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
59 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
60 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
61 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
62 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
63 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
64 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
65 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
66 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
67 rather than "length".
68 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
69 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
70 Use "insn_count" rather than "length".
71 * config/mips/mips-dsp.md
72 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
73 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
74 length attributes.
75
1951f101
MG
762013-06-12 Marc Glisse <marc.glisse@inria.fr>
77
78 PR tree-optimization/57361
79 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
80
8b033a8a
SN
812013-06-12 Sofiane Naci <sofiane.naci@arm.com>
82
83 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): convert to split.
84 (aarch64_simd_combine<mode>): New instruction expansion.
85 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
86 function prototype.
87 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
88 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
89
ca0f62a8
JH
902013-06-12 Jan Hubicka <jh@suse.cz>
91
92 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
93 decl has when in streaming stage.
94 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
95 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
96
cddd69eb
RS
972013-06-12 Roland Stigge <stigge@antcom.de>
98
99 PR target/57578
100 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
101
bfdeda2c
JJ
1022013-06-12 Jakub Jelinek <jakub@redhat.com>
103
104 PR tree-optimization/57537
105 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
106 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
107
a4fa02d1
RB
1082013-06-12 Richard Biener <rguenther@suse.de>
109
110 * data-streamer.h (streamer_write_char_stream): CSE
111 obs->current_pointer.
112 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
113 streamer_write_char_stream manually and optimize the resulting loop.
114 (streamer_write_hwi_stream): Likewise.
115
bbf9ad07
JH
1162013-06-12 Jan Hubicka <jh@suse.cz>
117
118 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
119 * cgraph.h (varpool_create_empty_node): Declare.
120 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
121 duplicated nodes.
122 * symtab.c (symtab_unregister_node): Be lax about missin entries
123 in node hash.
124 (symtab_get_node): Update comment.
125 * varpool.c (varpool_create_empty_node): Break out from ...
126 (varpool_node_for_decl): ... here.
127 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
128
a53f90ad
EB
1292013-06-12 Eric Botcazou <ebotcazou@adacore.com>
130
131 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
132 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
133 part. Use straight-line flow at the end.
134 <COMPONENT_REF>: Remove superfluous else.
135 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
136
946f9306
JJ
1372013-06-12 Jakub Jelinek <jakub@redhat.com>
138
139 PR target/56564
140 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
141 target hook even for !TREE_PUBLIC decls. If no resolution info
142 is available, return false for common and external decls.
143
a7fca6f0
KP
1442013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
145
146 * config/rl78/constraints.md (U): New constraint.
147 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
148 valloc attribute.
149
c7d8f446
MM
1502013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
151
152 PR target/57589
153 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
154 to allow returning address to AT_PLATFORM name.
155
08346abd
JH
1562013-06-11 Jan Hubicka <jh@suse.cz>
157
158 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
159 * cgraph.h (symtab_node_base): Add weakref flag.
160 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
161 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
162 (output_weakrefs): Use weakref flag.
163 * fold-const.c (simple_operand_p): Handle WEAK.
164 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
165 * ipa.c (varpool_externally_visible_p): Drop weakref.
166 (function_and_variable_visibility): Update comment; fix weakref
167 sanity checks; do not clear DECL_WEAK on them.
168 * lto-cgraph.c (lto_output_node): update.
169 (lto_output_varpool_node): Update.
170 (input_overwrite_node): Update.
171 (input_node): Update.
172 (input_varpool_node): Update.
173 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
174 (lto_symtab_merge_symbols): Add sanity check.
175 (lto_symtab_prevailing_decl): Do not special case weakrefs.
176 * passes.c (rest_of_decl_compilation): Set static flag, too.
177 * symtab.c (dump_symtab_base): Dump weakref.
178 (verify_symtab_base): Sanity check weakrefs.
179 (symtab_make_decl_local): Remove duplicated code.
180 (symtab_alias_ultimate_target): Simplify.
181 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 182
d9af3652
DD
1832013-06-11 DJ Delorie <dj@redhat.com>
184
185 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
186 (rl78_unwind_word_mode): New.
187
ffa66012
DM
1882013-06-11 David Malcolm <dmalcolm@redhat.com>
189
190 * final.c (debug_prefix_maps): Make static.
191
783f2d35
DM
1922013-06-11 David Malcolm <dmalcolm@redhat.com>
193
194 * function.c (initial_trampoline): Remove stray copy.
195
7af26def
SN
1962013-06-11 Sofiane Naci <sofiane.naci@arm.com>
197
198 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
199
97756c0e
MJ
2002013-06-11 Martin Jambor <mjambor@suse.cz>
201
202 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
203 within bounds at the beginning of the function.
204
2c7b8bf6
AM
2052013-06-11 Alan Modra <amodra@gmail.com>
206
207 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
208 reporting.
209 (get_named_section): Don't NULL !DECL_P decl.
210
77cea46e
IZ
2112013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
212
213 * doc/invoke.texi (core-avx2): Document.
214 (slm): Likewise.
215 (atom): Updated with MOVBE.
216
888f0920
RB
2172013-06-11 Richard Biener <rguenther@suse.de>
218
219 * collect2.c (main): Do not redirect ld stdout/stderr when
220 debugging.
221
6b438d58
AB
2222013-06-11 Anton Blanchard <anton@samba.org>
223
224 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
225 correct shift value in little-endian mode.
226
3bc66938
JJ
2272013-06-11 Jakub Jelinek <jakub@redhat.com>
228
229 PR target/56564
230 * varasm.c (get_variable_align): Move #endif to the right place.
231
a5dc7f88
CC
2322013-06-10 Cary Coutant <ccoutant@google.com>
233
234 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
235 for hash so that hash table traversal order is deterministic.
236
19be72ab
MM
2372013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
238 Pat Haugen <pthaugen@us.ibm.com>
239 Peter Bergner <bergner@vnet.ibm.com>
240
241 * config/rs6000/vector.md (GPR move splitter): Do not split moves
242 of vectors in GPRS if they are direct moves or quad word load or
243 store moves.
244
245 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
246 declaration.
247 (direct_move_p): Likewise.
248 (quad_load_store_p): Likewise.
249
250 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
251 classes into bins based on the physical register type.
252 (reg_class_to_reg_type): Likewise.
253 (IS_STD_REG_TYPE): Likewise.
254 (IS_FP_VECT_REG_TYPE): Likewise.
255 (reload_fpr_gpr): Arrays to determine what insn to use if we can
256 use direct move instructions.
257 (reload_gpr_vsx): Likewise.
258 (reload_vsx_gpr): Likewise.
259 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
260 information that is a simplification of register classes. Also
261 precalculate direct move reload helpers.
262 (direct_move_p): New function to return true if the operation can
263 be done as a direct move instruciton.
264 (quad_load_store_p): New function to return true if the operation
265 is a quad memory operation.
266 (rs6000_legitimize_address): If quad memory, only allow register
267 indirect for TImode addresses.
268 (rs6000_legitimate_address_p): Likewise.
269 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
270 (rs6000_reload_register_type): Likewise.
271 (register_to_reg_type): Return register type.
272 (rs6000_secondary_reload_simple_move): New helper function for
273 secondary reload and secondary memory needed to identify anything
274 that is a simple move, and does not need reloading.
275 (rs6000_secondary_reload_direct_move): New helper function for
276 secondary reload to identify cases that can be done with several
277 instructions via the direct move instructions.
278 (rs6000_secondary_reload_move): New helper function for secondary
279 reload to identify moves between register types that can be done.
280 (rs6000_secondary_reload): Add support for quad memory operations
281 and for direct move.
282 (rs6000_secondary_memory_needed): Likewise.
283 (rs6000_debug_secondary_memory_needed): Change argument names.
284 (rs6000_output_move_128bit): New function to return the move to
285 use for 128-bit moves, including knowing about the various
286 limitations of quad memory operations.
287
288 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
289 memory operations. call rs6000_output_move_128bit for the actual
290 instruciton(s) to generate.
291 (vsx_movti_64bit): Likewise.
292
293 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
294 (UNSPEC_P8V_MTVSRWZ): Likewise.
295 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
296 (UNSPEC_P8V_MTVSRD): Likewise.
297 (UNSPEC_P8V_XXPERMDI): Likewise.
298 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
299 (UNSPEC_FUSION_GPR): Likewise.
300 (FMOVE128_GPR): New iterator for direct move.
301 (f32_lv): New mode attribute for load/store of SFmode/SDmode
302 values.
303 (f32_sv): Likewise.
304 (f32_dm): Likewise.
305 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
306 loads and direct move instructions.
307 (zero_extendsidi2_lfiwzx): Likewise.
308 (extendsidi2_lfiwax): Likewise.
309 (extendsidi2_nocell): Likewise.
310 (floatsi<mode>2_lfiwax): Likewise.
311 (lfiwax): Likewise.
312 (floatunssi<mode>2_lfiwzx): Likewise.
313 (lfiwzx): Likewise.
314 (fix_trunc<mode>_stfiwx): Likewise.
315 (fixuns_trunc<mode>_stfiwx): Likewise.
316 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
317 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
318 (parity<mode>2_cmpb): Set length/type attr.
319 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
320 for 'mr.' to fast_compare.
321 (bpermd_<mode>): Change type attr to popcnt.
322 (p8_fmrgow_<mode>): New insns for power8 direct move support.
323 (p8_mtvsrwz_1): Likewise.
324 (p8_mtvsrwz_2): Likewise.
325 (reload_fpr_from_gpr<mode>): Likewise.
326 (p8_mtvsrd_1): Likewise.
327 (p8_mtvsrd_2): Likewise.
328 (p8_xxpermdi_<mode>): Likewise.
329 (reload_vsx_from_gpr<mode>): Likewise.
330 (reload_vsx_from_gprsf): Likewise.
331 (p8_mfvsrd_3_<mode>): LIkewise.
332 (reload_gpr_from_vsx<mode>): Likewise.
333 (reload_gpr_from_vsxsf): Likewise.
334 (p8_mfvsrd_4_disf): Likewise.
335 (multi-word GPR splits): Do not split direct moves or quad memory
336 operations.
337
16876bdc
DM
3382013-06-10 David Malcolm <dmalcolm@redhat.com>
339
340 * tree-into-ssa.c (interesting_blocks): Make static.
341
df8a1d28
JJ
3422013-06-10 Jakub Jelinek <jakub@redhat.com>
343
344 PR target/56564
345 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
346 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
347 Use DATA_ABI_ALIGNMENT for that case instead if defined.
348 (get_variable_align): New function.
349 (get_variable_section, emit_bss, emit_common,
350 assemble_variable_contents, place_block_symbol): Use
351 get_variable_align instead of DECL_ALIGN.
352 (assemble_noswitch_variable): Add align argument, use it
353 instead of DECL_ALIGN.
354 (assemble_variable): Adjust caller. Use get_variable_align
355 instead of DECL_ALIGN.
356 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
357 caller.
358 (DATA_ABI_ALIGNMENT): Define.
359 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
360 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
361 opt is false, only return the psABI mandated alignment increase.
362 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
363 (DATA_ABI_ALIGNMENT): ... this.
364 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
365 (DATA_ABI_ALIGNMENT): ... this.
366 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
367 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
368 (DATA_ABI_ALIGNMENT): ... this.
369 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
370 * doc/tm.texi: Regenerated.
371
57b29ca6
UB
3722013-06-10 Uros Bizjak <ubizjak@gmail.com>
373
374 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
375 cmp_code to construct REG_EQUAL note.
376
3e56ed50
JJ
3772013-06-09 Jakub Jelinek <jakub@redhat.com>
378
379 PR target/57568
380 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
381 that operands[2] doesn't overlap with operands[0].
382
74fe2a1d
DE
3832013-06-09 David Edelsohn <dje.gcc@gmail.com>
384 Jan Hubicka <jh@suse.cz>
385
386 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
387 hack to mark symbols as used.
388
ed52a84e
VM
3892013-06-08 Vladimir Makarov <vmakarov@redhat.com>
390
391 PR rtl-optimization/57559
392 * lra-constraints.c (process_alt_operands): Don't discourage
393 memory with known offset for offsetable memory constraint.
394 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
395
299316ed
EB
3962013-06-08 Eric Botcazou <ebotcazou@adacore.com>
397
398 * varasm.c (struct oc_local_state): Reorder fields.
399 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
400 and adjust accordingly.
401 (output_constructor): Reorder initialization code and adjust call to
402 output_constructor_bitfield.
403
88ac60d3
JH
4042013-06-07 Jan Hubicka <jh@suse.cz>
405
406 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
407
4cdce1a8
DM
4082013-06-07 David Malcolm <dmalcolm@redhat.com>
409
410 * tree-object-size.c (unknown): Make const.
411
b5e0425c
AK
4122013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
413
414 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
415 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
416 for last alternative in the cpu_facility attribute.
417
79678d04
KT
4182013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
419
420 PR target/56315
421 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
422 (xordi3): Change operand 2 constraint to arm_xordi_operand.
423 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
424 * config/arm/constraints.md (Dg): New constraint.
425 * config/arm/neon.md (xordi3_neon): Remove.
426 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
427 * config/arm/predicates.md (arm_xordi_operand): New predicate.
428
b31ddbdb
KT
4292013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
430
431 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
432 Clean up alternatives.
433
8f90b7d4
AM
4342013-06-07 Alan Modra <amodra@gmail.com>
435
436 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
437 va_list_gpr_size.
438
961ce119
AM
4392013-06-07 Alan Modra <amodra@gmail.com>
440
441 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
442
33e49835
KT
4432013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
444
445 * config/arm/constraints.md (Df): New constraint.
446 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
447 Correct length attribute for last two alternatives.
448
acd17ae6
AM
4492013-06-07 Alan Modra <amodra@gmail.com>
450
451 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
452 override user -mfp-in-toc.
453 (offsettable_ok_by_alignment): Consider just the current access
454 rather than the whole object, unless BLKmode. Handle
455 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
456 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
457 for -mcmodel=medium.
458 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
459 override user -mfp-in-toc or -msum-in-toc. Default to
460 -mno-fp-in-toc for -mcmodel=medium.
461
73310b0e
DD
4622013-06-06 DJ Delorie <dj@redhat.com>
463
464 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
465 TARGET_VALID_POINTER_MODE.
466
0bd62dca
MM
4672013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
468 Pat Haugen <pthaugen@us.ibm.com>
469 Peter Bergner <bergner@vnet.ibm.com>
470
471 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
472 Document new power8 builtins.
473
474 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
475 condition code register, to allow 128-bit logical operations to be
476 done in the VSX or GPR registers.
477 (nor<mode>3): Use the canonical form for nor.
478 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
479 vclz*, and vpopcnt* vector instructions.
480 (nand<mode>3): Likewise.
481 (orc<mode>3): Likewise.
482 (clz<mode>2): LIkewise.
483 (popcount<mode>2): Likewise.
484
485 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
486 that only the GPRs are recognized.
487
488 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
489 support for new power8 builtins.
490
491 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
492 builtin functions.
493 (xscvdpspn): Likewise.
494 (vclz): Likewise.
495 (vclzb): Likewise.
496 (vclzh): Likewise.
497 (vclzw): Likewise.
498 (vclzd): Likewise.
499 (vpopcnt): Likewise.
500 (vpopcntb): Likewise.
501 (vpopcnth): Likewise.
502 (vpopcntw): Likewise.
503 (vpopcntd): Likewise.
504 (vgbbd): Likewise.
505 (vmrgew): Likewise.
506 (vmrgow): Likewise.
507 (eqv): Likewise.
508 (eqv_v16qi3): Likewise.
509 (eqv_v8hi3): Likewise.
510 (eqv_v4si3): Likewise.
511 (eqv_v2di3): Likewise.
512 (eqv_v4sf3): Likewise.
513 (eqv_v2df3): Likewise.
514 (nand): Likewise.
515 (nand_v16qi3): Likewise.
516 (nand_v8hi3): Likewise.
517 (nand_v4si3): Likewise.
518 (nand_v2di3): Likewise.
519 (nand_v4sf3): Likewise.
520 (nand_v2df3): Likewise.
521 (orc): Likewise.
522 (orc_v16qi3): Likewise.
523 (orc_v8hi3): Likewise.
524 (orc_v4si3): Likewise.
525 (orc_v2di3): Likewise.
526 (orc_v4sf3): Likewise.
527 (orc_v2df3): Likewise.
528
529 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
530 allow power8 quad mode in 64-bit.
531 (rs6000_builtin_vectorized_function): Add support to vectorize
532 ISA 2.07 count leading zeros, population count builtins.
533 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
534 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
535 (builtin_function_type): Add vgbbd builtin function which takes an
536 unsigned argument.
537 (altivec_expand_vec_perm_const): Add support for new power8 merge
538 instructions.
539
540 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
541 that does not include TImdoe for use with 32-bit.
542 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
543 instructions.
544 (UNSPEC_VSX_CVDPSPN): Likewise.
545 (vsx_xscvdpspn): Likewise.
546 (vsx_xscvspdpn): Likewise.
547 (vsx_xscvdpspn_scalar): Likewise.
548 (vsx_xscvspdpn_directmove): Likewise.
549 (vsx_and<mode>3): Split logical operations into 32-bit and
550 64-bit. Add support to do logical operations on TImode as well as
551 VSX vector types. Allow logical operations to be done in either
552 VSX registers or in general purpose registers in 64-bit mode. Add
553 splitters if GPRs were used. For AND, add clobber of CCmode to
554 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
555 encoding.
556 (vsx_and<mode>3_32bit): Likewise.
557 (vsx_and<mode>3_64bit): Likewise.
558 (vsx_ior<mode>3): Likewise.
559 (vsx_ior<mode>3_32bit): Likewise.
560 (vsx_ior<mode>3_64bit): Likewise.
561 (vsx_xor<mode>3): Likewise.
562 (vsx_xor<mode>3_32bit): Likewise.
563 (vsx_xor<mode>3_64bit): Likewise.
564 (vsx_one_cmpl<mode>2): Likewise.
565 (vsx_one_cmpl<mode>2_32bit): Likewise.
566 (vsx_one_cmpl<mode>2_64bit): Likewise.
567 (vsx_nor<mode>3): Likewise.
568 (vsx_nor<mode>3_32bit): Likewise.
569 (vsx_nor<mode>3_64bit): Likewise.
570 (vsx_andc<mode>3): Likewise.
571 (vsx_andc<mode>3_32bit): Likewise.
572 (vsx_andc<mode>3_64bit): Likewise.
573 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
574 and xxlorc instructions.
575 (vsx_eqv<mode>3_64bit): Likewise.
576 (vsx_nand<mode>3_32bit): Likewise.
577 (vsx_nand<mode>3_64bit): Likewise.
578 (vsx_orc<mode>3_32bit): Likewise.
579 (vsx_orc<mode>3_64bit): Likewise.
580
581 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
582
583 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
584 instruction.
585 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
586 (p8_vmrgow): Likewise.
587 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
588 GPRs to be split under VSX.
589 (p8v_clz<mode>2): Add power8 count leading zero support.
590 (p8v_popcount<mode>2): Add power8 population count support.
591 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
592 support.
593
594 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
595 instruction.
596
597 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
598 builtin functions.
599 (vec_nand): Likewise.
600 (vec_vclz): Likewise.
601 (vec_vclzb): Likewise.
602 (vec_vclzd): Likewise.
603 (vec_vclzh): Likewise.
604 (vec_vclzw): Likewise.
605 (vec_vgbbd): Likewise.
606 (vec_vmrgew): Likewise.
607 (vec_vmrgow): Likewise.
608 (vec_vpopcnt): Likewise.
609 (vec_vpopcntb): Likewise.
610 (vec_vpopcntd): Likewise.
611 (vec_vpopcnth): Likewise.
612 (vec_vpopcntw): Likewise.
613
37684c46
VM
6142013-06-06 Vladimir Makarov <vmakarov@redhat.com>
615
616 PR rtl-optimization/57468
617 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
618 spilled pseudos.
619
d89ae27c
VM
6202013-06-06 Vladimir Makarov <vmakarov@redhat.com>
621
622 PR rtl-optimization/57459
623 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
624 type when setting live regs.
625
3597e113
VM
6262013-06-06 Vladimir Makarov <vmakarov@redhat.com>
627
628 * config/s390/s390.opt (mlra): New option.
629 * config/s390/s390.c (s390_decompose_address): Check displacement
630 for all registers for LRA.
631 (s390_secondary_reload): Don't used secondary reloads for LRA.
632 (s390_lra_p): New function.
633 (TARGET_LRA_P): Define.
634 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
635 of attribute cpu_facility to zarch for the last alternative.
636 (*cmpmem_short): Ditto.
637
01037aeb
EB
6382013-06-06 Eric Botcazou <ebotcazou@adacore.com>
639
640 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
641 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
642 (arm_expand_prologue): Likewise.
643
3371a64f
TJ
6442013-06-06 Teresa Johnson <tejohnson@google.com>
645
646 PR c++/53743
647 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
648 as this is now done by redirect_edge_and_branch_force.
649 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
650 barriers, and fix interaction with splitting.
651 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
652 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
653 reflect changes made in the routine.
654 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
655 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
656 since this is called in cfglayout mode, and replace partition fixup
657 with assert as that is now done by force_nonfallthru_and_redirect.
658 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
659 already be marked with region crossing note.
660 (insert_section_boundary_note): Make non-static, gate on flag
661 has_bb_partition, rewrite to also check for multiple partitions.
662 (rest_of_handle_reorder_blocks): Remove call to
663 insert_section_boundary_note, now done later during free_cfg.
664 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
665 * bb-reorder.h (insert_section_boundary_note): Declare.
666 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
667 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
668 invoke insert_section_boundary_note.
669 (try_redirect_by_replacing_jump): Remove unnecessary
670 check for region crossing note.
671 (fixup_partition_crossing): New function.
672 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
673 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
674 in non-cfglayout mode.
675 (force_nonfallthru_and_redirect): Fixup partition boundaries,
676 remove old code that tried to do this. Emit barrier correctly
677 when we are in cfglayout mode.
678 (last_bb_in_partition): New function.
679 (rtl_split_edge): Correctly fixup partition boundaries.
680 (commit_one_edge_insertion): Remove old code that tried to
681 fixup region crossing edge since this is now handled in
682 split_block, and set up insertion point correctly since
683 block may now end in a jump.
684 (verify_hot_cold_block_grouping): Guard against checking when not in
685 linearized RTL mode.
686 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
687 notes.
688 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
689 rtl_verify_flow_info, so not called in cfglayout mode.
690 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
691 (fixup_reorder_chain): Remove old code that attempted to fixup region
692 crossing note as this is now handled in force_nonfallthru_and_redirect.
693 (duplicate_insn_chain): Don't duplicate switch section notes.
694 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
695 note.
696 * basic-block.h (emit_barrier_after_bb): Declare.
697
66071e10
KT
6982013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
699
700 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
701 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
702 arm_usatsihi): Adjust alternatives for arm_restrict_it.
703
0e26bf3d
KT
7042013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
705
706 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
707 where appropriate.
708 * config/arm/ldmstm.md: Regenerate.
709
12b4e7ef
KT
7102013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
711
712 * config/arm/sync.md (atomic_loaddi_1):
713 Disable predication for arm_restrict_it.
714 (arm_load_exclusive<mode>): Likewise.
715 (arm_load_exclusivesi): Likewise.
716 (arm_load_exclusivedi): Likewise.
717 (arm_load_acquire_exclusive<mode>): Likewise.
718 (arm_load_acquire_exclusivesi): Likewise.
719 (arm_load_acquire_exclusivedi): Likewise.
720 (arm_store_exclusive<mode>): Likewise.
721 (arm_store_exclusive<mode>): Likewise.
722 (arm_store_release_exclusivedi): Likewise.
723 (arm_store_release_exclusive<mode>): Likewise.
724
15d16c8a
RB
7252013-06-06 Richard Biener <rguenther@suse.de>
726
727 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
728 after LTO_null.
729 (lto_tag_is_tree_code_p): Adjust.
730 (lto_tag_is_gimple_code_p): Likewise.
731 (lto_gimple_code_to_tag): Likewise.
732 (lto_tag_to_gimple_code): Likewise.
733 (lto_tree_code_to_tag): Likewise.
734 (lto_tag_to_tree_code): Likewise.
735 * data-streamer.h (streamer_write_hwi_in_range): Use
736 uhwi streaming to stream the normalized range.
737 (streamer_read_hwi_in_range): Likewise.
738
17a7fc37
KT
7392013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
740
741 * config/arm/arm.md (enabled_for_depr_it): New attribute.
742 (predicable_short_it): Likewise.
743 (predicated): Likewise.
744 (enabled): Handle above.
745 (define_cond_exec): Set predicated attribute to yes.
746
b57ca59b
MS
7472013-06-05 Mike Stump <mikestump@comcast.net>
748
749 * gdbinit.in (__FUNCTION__): Add.
750
c1e183a9
UB
7512013-06-05 Uros Bizjak <ubizjak@gmail.com>
752
753 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
754 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
755
0378bddb
JH
7562013-06-05 Jan Hubicka <jh@suse.cz>
757
758 * varasm.c (mark_decl_referenced): Revert the removal until targets
759 are fixed.
760
8f8a2057
DE
7612013-06-05 David Edelsohn <dje.gcc@gmail.com>
762
763 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
764 instead of mark_decl_referenced.
765
edb983b2
JH
7662013-06-05 Jan Hubicka <jh@suse.cz>
767
768 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
769 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
770 and symtab_used_from_object_file_p.
771 (cgraph_make_node_local_1): Clear forced_by_abi.
772 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
773 * cgraph.h (symtab_node_base): Add forced_by_abi.
774 (decide_is_variable_needed): Remove.
775 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
776 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
777 (decide_is_symbol_needed): ... this one; handle symbols in general;
778 always analyze virtuals; honnor forced_by_abi.
779 (cgraph_finalize_function): Update.
780 (varpool_finalize_decl): Update.
781 (symbol_defined_and_needed): Remove.
782 (analyze_functions): Update.
783 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
784 output_refs, input_overwrite_node): Handle forced_by_abi.
785 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
786 (address_taken_from_non_vtable_p): ... this one.
787 (comdat_can_be_unshared_p_1): New function.
788 (cgraph_comdat_can_be_unshared_p): Rename to ...
789 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
790 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
791 (function_and_variable_visibility): Clear forced_by_abi as needed.
792 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
793 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
794 * symtab.c (dump_symtab_base): Dump forced_by_abi.
795 * varpool.c (decide_is_variable_needed): Remove.
796
9912dbe5
KT
7972013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
798
799 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
800 (arm_option_override): Override arm_restrict_it where appropriate.
801 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
802 * config/arm/arm.opt (mrestrict-it): New command-line option.
803 * doc/invoke.texi: Document -mrestrict-it.
804
34c136b6
DM
8052013-06-05 David Malcolm <dmalcolm@redhat.com>
806
807 * tsan.c (tsan_atomic_table): Make const.
808
a367df53
RB
8092013-06-05 Richard Biener <rguenther@suse.de>
810
811 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
812 index associated with the tree we are supposed to replace.
813 * tree-streamer-out.c (pack_ts_base_value_fields): Output
814 TREE_ASM_WRITTEN as zero for everything but SSA names.
815
70d51a19
DM
8162013-06-05 David Malcolm <dmalcolm@redhat.com>
817
818 * tree-ssa-structalias.c (call_stmt_vars): Make static.
819
b9bd2075
JH
8202013-06-04 Jan Hubicka <jh@suse.cz>
821
822 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
823 (input_node, input_varpool_node): Handle correctly external same
824 body aliases.
825 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
826 nodes at ltrans stage.
827
aaae719d
JH
8282013-06-04 Jan Hubicka <jh@suse.cz>
829
830 * ipa-inline.c (update_caller_keys): Fix availability test.
831 (update_callee_keys): Likewise.
832 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
833 to follow ELF standard.
834
107eea2c
JU
8352013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
836
837 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
838 (mips64r5900el-*-elf*): New configurations.
839 * config/mips/mips-cpus.def (r5900): New processor.
840 * config/mips/mips-tables.opt: Regenerate.
841 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
842 (mips_issue_rate): Handle PROCESSOR_R5900.
843 (mips_reorg_process_insns): Force reorder mode for the R5900.
844 * config/mips/mips.h (TARGET_MIPS5900): Define.
845 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
846 TARGET_MIPS5900.
847 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
848 TARGET_MIPS5900.
849 * config/mips/mips.md (processor): Add r5900.
850 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
851
b7342d25
IB
8522013-06-04 Ian Bolton <ian.bolton@arm.com>
853
854 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
855 into function to generate MOVI instruction.
c1e183a9 856 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
857 (aarch64_preferred_simd_mode): Turn into wrapper.
858 (aarch64_output_scalar_simd_mov_immediate): New function.
859 * config/aarch64/aarch64-protos.h: Add prototype for above.
860
81c2dfb9
IB
8612013-06-04 Ian Bolton <ian.bolton@arm.com>
862
863 * config/aarch64/aarch64.c (simd_immediate_info): Remove
864 element_char member.
865 (sizetochar): Return signed char.
866 (aarch64_simd_valid_immediate): Remove elchar and other
867 unnecessary variables.
868 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
869 Calculate element_char as required.
870 * config/aarch64/aarch64-protos.h: Update and move prototype
871 for aarch64_output_simd_mov_immediate.
872 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
873 Update arguments.
874
48063b9d
IB
8752013-06-04 Ian Bolton <ian.bolton@arm.com>
876
877 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
878 information completed by aarch64_simd_valid_immediate.
879 (aarch64_legitimate_constant_p): Update arguments.
880 (aarch64_simd_valid_immediate): Work with struct rather than many
881 pointers.
882 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
883 (aarch64_simd_make_constant): Update arguments.
884 (aarch64_output_simd_mov_immediate): Work with struct rather than
885 many pointers. Output immediate directly rather than as operand.
886 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
887 Update prototype.
888 * config/aarch64/constraints.md (Dn): Update arguments.
889
3ea63f60
IB
8902013-06-04 Ian Bolton <ian.bolton@arm.com>
891
892 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
893 longer static.
894 (aarch64_simd_immediate_valid_for_move): Remove.
895 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
896 (aarch64_simd_make_constant): Update call.
897 (aarch64_output_simd_mov_immediate): Update call.
898 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
899 Add prototype.
900 * config/aarch64/constraints.md (Dn): Update call.
901
d8edd899
IB
9022013-06-04 Ian Bolton <ian.bolton@arm.com>
903
904 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
905 return type to bool for prototype.
906 (aarch64_legitimate_constant_p): Check for true instead of not -1.
907 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
908 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
909
44b20bb8
CM
9102013-06-04 Catherine Moore <clm@codesourcery.com>
911
912 * config/mips/mips.opt (meva): New.
c1e183a9 913 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
914 (ASM_SPEC): Handle -meva.
915 * doc/invoke.texi (meva): Document.
916
52befbd8
AM
9172013-06-04 Alan Modra <amodra@gmail.com>
918
919 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
920 constant output.
921
aadaf24e
KT
9222013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
923
924 * rtl.def: Add extra fourth optional field to define_cond_exec.
925 * gensupport.c (process_one_cond_exec): Process attributes from
926 define_cond_exec.
927 * doc/md.texi: Document fourth field in define_cond_exec.
928
0cd9e9ee
EB
9292013-06-04 Eric Botcazou <ebotcazou@adacore.com>
930
931 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
932 out the processing order as in store_bit_field_1.
933
cb0f665d
JH
9342013-06-04 Jan Hubicka <jh@suse.cz>
935
936 PR middle-end/57500
937 * cgraphunit.c (cgraph_process_same_body_aliases): Create
938 non-VAR_DECL node if it does not exist yet.
939
53984b9b
RS
9402013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
941
942 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
943 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
944 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
945 target_cpu_default setting.
946
5d318fd4
TJ
9472013-06-03 Teresa Johnson <tejohnson@google.com>
948
949 * dumpfile.c (opt_info_switch_p): Change -fopt-info
950 default to -fopt-info=optimized instead of all.
951 * doc/invoke.texi: Ditto.
952 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
953 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
954 (execute_vect_slp): Emit BB vectorization success under
955 MSG_OPTIMIZED_LOCATIONS.
956 * tree-vect-slp.c (vect_slp_transform_bb): Change
957 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
958 * tree-vect-loop.c (vect_transform_loop): Ditto.
959
ec3af349
JM
9602013-06-03 Jason Merrill <jason@redhat.com>
961
962 PR c++/57415
963 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
964 Use TARGET_EXPR for C++.
965
1baf9159
JJ
9662013-06-03 Jakub Jelinek <jakub@redhat.com>
967
968 PR rtl-optimization/57268
0cd9e9ee 969 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
970 if DEBUG_INSN_P (insn).
971
972 Reapply
973 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
974
975 PR rtl-optimization/57268
976 * sched-deps.c (sched_analyze_2): Flush dependence lists if
977 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
978
0f1d3965
YR
9792013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
980
981 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
982 (ix86_avoid_lea_for_addr): Likewise.
983 (exact_dependency_1): Likewise.
984 (ix86_adjust_cost): Likewise.
985 (swap_top_of_ready_list): Fix formatting and !reload_completed check
986 removed.
987 (do_reorder_for_imul): Fix typo, formatting and
988 !reload_completed check removed.
989 (ix86_sched_reorder): Fix typo and formatting.
990 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
991 list.
992
3bc30db4
SN
9932013-06-03 Sofiane Naci <sofiane.naci@arm.com>
994
995 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
996
19cc6fac
EB
9972013-06-03 Eric Botcazou <ebotcazou@adacore.com>
998
999 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
1000 <STRING_CST>: Likewise.
1001 <VECTOR_CST>: Likewise.
1002
c68a6e08
JW
10032013-06-01 Janus Weil <janus@gcc.gnu.org>
1004 Mikael Morin <mikael@gcc.gnu.org>
1005
1006 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
1007 * config.in: Regenerated.
1008 * configure: Regenerated.
1009
38e55e5c
JH
10102013-06-01 Jan Hubicka <jh@suse.cz>
1011
1012 PR middle-end/57366
1013 * cgraphunit.c (compile): When weakref is not supported,
1014 set up transparent aliases before final output pass.
1015 * varasm.c (assemble_alias): Do not try to do it here.
1016
eb51d2ff
JH
10172013-06-01 Jan Hubicka <jh@suse.cz>
1018
1019 PR middle-end/57467
1020 * passes.c (for_per_function): Skip unanalyzed functions.
1021
40a7fe1e
JH
10222013-06-01 Jan Hubicka <jh@suse.cz>
1023
1024 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
1025 (lto_symtab_merge_symbols_1): ... this one.
1026 (lto_symtab_merge_cgraph_nodes): Rename to ...
1027 (lto_symtab_merge_symbols): ... this one; simplify.
1028 * cgraph.c (same_body_aliases_done): Rename to ...
1029 (cpp_implicit_aliases_done): ... this one.
1030 (cgraph_create_function_alias): Update.
1031 (cgraph_same_body_alias): Update.
c1e183a9 1032 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 1033 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 1034 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
1035 (cgraph_node): Remove same_body_alias.
1036 (varpool_node): Remove alias_of and extra_name_alias.
1037 (same_body_aliases_done): Rename to ..
1038 (cpp_implicit_aliases_done): ... this one.
1039 (symtab_alias_ultimate_target): Add default parameter.
1040 (symtab_resolve_alias): New function.
1041 (fixup_same_cpp_alias_visibility): Declare.
1042 (cgraph_function_node): Add default parameter.
1043 (cgraph_node_asm_name): Likewise.
1044 (cgraph_function_or_thunk_node): Add default parameter; do
1045 not ICE when it is NULL.
1046 (varpool_variable_node): Likewise.
1047 * tree-emutls.c (create_emultls_var): Update.
1048 (ipa_lower_emutls): Update.
1049 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
1050 (cgraph_reset_node): Reset alias info.
1051 (cgraph_finalize_function): Update.
1052 (fixup_same_cpp_alias_visibility): Move to symtab.c.
1053 (analyze_function): Simplify.
1054 (cgraph_process_same_body_aliases): Simplify.
1055 (analyze_functions): Fixup same body aliases.
1056 (handle_alias_pairs): Simplify.
1057 (assemble_thunk): Update.
1058 (assemble_thunks_and_aliases): Update.
1059 (output_weakrefs): Rewrite.
1060 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
1061 (lto_output_varpool_node): Likewise.
1062 (compute_ltrans_boundary): Remve assert.
1063 (get_alias_symbol): New functoin.
1064 (input_node): Rewrite alias handling.
1065 (input_varpool_node): Likewise.
1066 * ipa-pure-const.c (propagate_pure_const): Fix formating.
1067 * ipa.c (process_references): Handle weakrefs correctly.
1068 (symtab_remove_unreachable_nodes): Likewise.
1069 * trans-mem.c (get_cg_data): Update.
1070 (ipa_tm_create_version_alias): Update.
1071 (ipa_tm_execute): Update.
1072 * symtab.c (dump_symtab_base): Dump aliases.
1073 (verify_symtab_base): Verify aliases.
1074 (symtab_node_availability): New function.
1075 (symtab_alias_ultimate_target): Simplify.
1076 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
1077 handle all the fixup cases.
1078 (symtab_resolve_alias): New function.
1079 * passes.c (ipa_write_summaries): Handle weakrefs.
1080 * varpool.c (varpool_analyze_node): Simplify.
1081 (assemble_aliases): Update.
1082 (varpool_create_variable_alias): Simplify.
1083 (varpool_extra_name_alias): Simplify.
1084 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
1085 (lto_symtab_merge_symbols): ... this one.
1086
21759881
DT
10872013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
1088
1089 Revert
1090 PR rtl-optimization/57268
1091 * sched-deps.c (sched_analyze_2): Flush dependence lists if
1092 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
1093
daf4e940
TB
10942013-06-01 Tobias Burnus <burnus@net-b.de>
1095
1096 Partially reverted:
1097 2013-05-31 Tobias Burnus <burnus@net-b.de>
1098
1099 PR middle-end/57073
1100 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
1101 further up.
1102
c359d8d0
DT
11032013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
1104
1105 PR rtl-optimization/57268
1106 * sched-deps.c (sched_analyze_2): Flush dependence lists if
1107 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
1108
4172215d
EB
11092013-05-31 Eric Botcazou <ebotcazou@adacore.com>
1110
1111 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
1112 unordered comparison operators when -fno-trapping-math is in effect
1113 on the e500.
1114 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
1115 and implement unordered comparison operators properly on the e500.
1116
a8c50132
EB
11172013-05-31 Eric Botcazou <ebotcazou@adacore.com>
1118
1119 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
1120 for constant scalar integers.
1121 (simplify_relational_operation_1): Likewise.
1122
44626634
SB
11232013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
1124
1125 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
1126 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
1127 Fix comment.
1128
55805e54
YR
11292013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
1130 Igor Zamyatin <igor.zamyatin@intel.com>
1131
1132 Silvermont (SLM) architecture performance tuning.
1133 * config/i386/i386.h (enum ix86_tune_indices): Add
1134 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
1135 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
1136
1137 * config/i386/i386.c (initial_ix86_tune_features)
1138 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
1139 (ix86_lea_outperforms): Handle Silvermont tuning.
1140 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
1141 call.
1142 (ix86_use_lea_for_mov): Likewise.
1143 (ix86_avoid_lea_for_addr): Likewise.
1144 (ix86_lea_for_add_ok): Likewise.
1145 (exact_dependency_1): New function.
1146 (exact_store_load_dependency): Likewise.
1147 (ix86_adjust_cost): Handle Silvermont tuning.
1148 (do_reoder_for_imul): Likewise.
1149 (swap_top_of_ready_list): New function.
1150 (ix86_sched_reorder): Changed to handle Silvermont tuning.
1151
1152 * config/i386/i386.md (peepholes that split memory operand in fp
1153 converts): New.
1154
e19c9de2
MS
11552013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
1156
1157 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1158 Remove un-necessary braces.
1159
38e6c9a6
MS
11602013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
1161
1162 * config/aarch64/aarch64.c (aarch64_classify_symbol):
1163 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
1164
e3530904
TB
11652013-05-31 Tobias Burnus <burnus@net-b.de>
1166
1167 PR middle-end/57073
c1e183a9 1168 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 1169
b6af05a9
KT
11702013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1171
1172 PR target/56315
1173 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
1174 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
1175 * config/arm/neon.md (iordi3_neon): Remove.
1176 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
1177 * config/arm/predicates.md (imm_for_neon_logic_operand):
1178 Move to earlier in the file.
1179 (neon_logic_op2): Likewise.
1180 (arm_iordi_operand_neon): New predicate.
1181
f800c166
RB
11822013-05-31 Richard Biener <rguenther@suse.de>
1183
1184 PR tree-optimization/57478
1185 PR tree-optimization/57453
1186 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
1187 are life as well.
1188
e571fa59
KP
11892013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
1190
1191 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
1192 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
1193
0fa6e0ef
TB
11942013-05-30 Tobias Burnus <burnus@net-b.de>
1195 Thomas Koenig <tkoenig@gcc.gnu.org>
1196
1197 PR middle-end/57073
1198 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
1199 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
1200
4688ddf5
SB
12012013-05-30 Steven Bosscher <steven@gcc.gnu.org>
1202
0fa6e0ef 1203 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 1204
3b9ceb4b
VM
12052013-05-30 Vladimir Makarov <vmakarov@redhat.com>
1206
1207 * target.def (register_usage_leveling_p): New hook.
1208 * targhooks.c (default_register_usage_leveling_p): New.
1209 * targhooks.h (default_register_usage_leveling_p): New prototype.
1210 * lra-assigns.c (register_usage_leveling_p): Use the hook.
1211 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
1212 * doc/tm.texi: Update.
1213 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
1214
65f9e789
IB
12152013-05-30 Ian Bolton <ian.bolton@arm.com>
1216
1217 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
1218 (*insv_reg<mode>): New define_insn.
1219
ca035367
JR
12202013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
1221
1222 PR rtl-optimization/57439
1223 * postreload.c (move2add_valid_value_p): Check that we have
1224 a zero subreg_regno_offset when accessing the register in
1225 the requested mode.
1226
0b871ccf
YR
12272013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
1228 Igor Zamyatin <igor.zamyatin@intel.com>
1229
1230 Silvermont (SLM) architecture pipeline model, tuning and
1231 insn selection.
1232 * config.gcc: Add slm config options and target.
1233
1234 * config/i386/slm.md: New.
1235
1236 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
1237
1238 * gcc/config/i386/i386-c.c (ix86_target_macros_internal): New case
1239 PROCESSOR_SLM.
1240 (ix86_target_macros_internal): Likewise.
1241
1242 * gcc/config/i386/i386.c (slm_cost): New cost.
1243 (m_SLM): New macro flag.
1244 (initial_ix86_tune_features): Set m_SLM.
1245 (x86_accumulate_outgoing_args): Likewise.
1246 (x86_arch_always_fancy_math_387): Likewise.
1247 (processor_target_table): Add slm cost.
1248 (cpu_names): Add slm cpu name.
1249 (x86_option_override_internal): Set SLM ISA.
1250 (ix86_issue_rate): New case PROCESSOR_SLM.
1251 (ia32_multipass_dfa_lookahead): Likewise.
1252 (fold_builtin_cpu): Add slm.
1253
1254 * config/i386/i386.h (TARGET_SLM): New target macro.
1255 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
1256 (processor_type): Add PROCESSOR_SLM.
1257
1258 * config/i386/i386.md (cpu): Add new value "slm".
1259 (slm.md): Include slm.md.
1260
24d5b097
XG
12612013-05-30 Bernd Schmidt <bernds@codesourcery.com>
1262 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1263
1264 * config/arm/arm-protos.h: Add and update function protos.
1265 * config/arm/arm.c (use_simple_return_p): New added.
1266 (thumb2_expand_return): Check simple_return flag.
1267 * config/arm/arm.md: Add simple_return and conditional simple_return.
1268 * config/arm/iterators.md: Add iterator for return and simple_return.
1269
c1cccc15
ZC
12702013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1271
1272 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
1273 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
1274 (arm_emit_vfp_multi_reg_pop): Likewise.
1275 (thumb2_emit_ldrd_pop): Likewise.
1276 (arm_expand_epilogue): Add misc REG_CFA notes.
1277 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
1278
3a4f280b
LC
12792013-05-29 Lawrence Crowl <crowl@google.com>
1280
1281 * config/arm/t-arm: Update for below.
1282
1283 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
1284 Change type to hash_table. Update dependent calls and types.
1285
1286 * config/i386/t-cygming: Update for below.
1287
1288 * config/i386/t-interix: Update for below.
1289
1290 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
1291 Change type to hash_table. Update dependent calls and types.
1292 (i386_find_on_wrapper_list::wrappers): Likewise.
1293
1294 * config/ia64/t-ia64: Update for below.
1295
1296 * config/ia64/ia64.c (bundle_state_table):
1297 Change type to hash_table. Update dependent calls and types.
1298
1299 * config/mips/mips.c (mips_reorg_process_insns::htab):
1300 Change type to hash_table. Update dependent calls and types.
1301
1302 * config/sol2.c (solaris_comdat_htab):
1303 Change type to hash_table. Update dependent calls and types.
1304
1305 * config/t-sol2: Update for above.
1306
1388a0e3
TJ
13072013-05-29 Teresa Johnson <tejohnson@google.com>
1308
1309 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
1310 functions are not yet marked as defined.
1311
a5965b52
MM
13122013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
1313 Pat Haugen <pthaugen@us.ibm.com>
1314 Peter Bergner <bergner@vnet.ibm.com>
1315
1316 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
1317 instructions.
1318 (VEC_A): Likewise.
1319 (VEC_C): Likewise.
1320 (vrotl<mode>3): Likewise.
1321 (vashl<mode>3): Likewise.
1322 (vlshr<mode>3): Likewise.
1323 (vashr<mode>3): Likewise.
1324
1325 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1326 support for power8 V2DI builtins.
1327
1328 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
1329 power8 V2DI builtins.
1330 (vupkhsw): Likewise.
1331 (vupklsw): Likewise.
1332 (vaddudm): Likewise.
1333 (vminsd): Likewise.
1334 (vmaxsd): Likewise.
1335 (vminud): Likewise.
1336 (vmaxud): Likewise.
1337 (vpkudum): Likewise.
1338 (vpksdss): Likewise.
1339 (vpkudus): Likewise.
1340 (vpksdus): Likewise.
1341 (vrld): Likewise.
1342 (vsld): Likewise.
1343 (vsrd): Likewise.
1344 (vsrad): Likewise.
1345 (vsubudm): Likewise.
1346 (vcmpequd): Likewise.
1347 (vcmpgtsd): Likewise.
1348 (vcmpgtud): Likewise.
1349 (vcmpequd_p): Likewise.
1350 (vcmpgtsd_p): Likewise.
1351 (vcmpgtud_p): Likewise.
1352 (vupkhsw): Likewise.
1353 (vupklsw): Likewise.
1354 (vaddudm): Likewise.
1355 (vmaxsd): Likewise.
1356 (vmaxud): Likewise.
1357 (vminsd): Likewise.
1358 (vminud): Likewise.
1359 (vpksdss): Likewise.
1360 (vpksdus): Likewise.
1361 (vpkudum): Likewise.
1362 (vpkudus): Likewise.
1363 (vrld): Likewise.
1364 (vsld): Likewise.
1365 (vsrad): Likewise.
1366 (vsrd): Likewise.
1367 (vsubudm): Likewise.
1368
1369 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
1370 support for power8 V2DI instructions.
1371
1372 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
1373 power8 V2DI instructions. Combine pack and unpack insns to use an
1374 iterator for each mode. Check whether a particular mode supports
1375 Altivec instructions instead of just checking TARGET_ALTIVEC.
1376 (UNSPEC_VPKUWUM): Likewise.
1377 (UNSPEC_VPKSHSS): Likewise.
1378 (UNSPEC_VPKSWSS): Likewise.
1379 (UNSPEC_VPKUHUS): Likewise.
1380 (UNSPEC_VPKSHUS): Likewise.
1381 (UNSPEC_VPKUWUS): Likewise.
1382 (UNSPEC_VPKSWUS): Likewise.
1383 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
1384 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
1385 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
1386 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
1387 (UNSPEC_VUPKHSB): Likewise.
1388 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
1389 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
1390 (UNSPEC_VUPKHSH): Likewise.
1391 (UNSPEC_VUPKLSB): Likewise.
1392 (UNSPEC_VUPKLSH): Likewise.
1393 (VI2): Likewise.
1394 (VI_char): Likewise.
1395 (VI_scalar): Likewise.
1396 (VI_unit): Likewise.
1397 (VP): Likewise.
1398 (VP_small): Likewise.
1399 (VP_small_lc): Likewise.
1400 (VU_char): Likewise.
1401 (add<mode>3): Likewise.
1402 (altivec_vaddcuw): Likewise.
1403 (altivec_vaddu<VI_char>s): Likewise.
1404 (altivec_vadds<VI_char>s): Likewise.
1405 (sub<mode>3): Likewise.
1406 (altivec_vsubcuw): Likewise.
1407 (altivec_vsubu<VI_char>s): Likewise.
1408 (altivec_vsubs<VI_char>s): Likewise.
1409 (altivec_vavgs<VI_char>): Likewise.
1410 (altivec_vcmpbfp): Likewise.
1411 (altivec_eq<mode>): Likewise.
1412 (altivec_gt<mode>): Likewise.
1413 (altivec_gtu<mode>): Likewise.
1414 (umax<mode>3): Likewise.
1415 (smax<mode>3): Likewise.
1416 (umin<mode>3): Likewise.
1417 (smin<mode>3): Likewise.
1418 (altivec_vpkuhum): Likewise.
1419 (altivec_vpkuwum): Likewise.
1420 (altivec_vpkshss): Likewise.
1421 (altivec_vpkswss): Likewise.
1422 (altivec_vpkuhus): Likewise.
1423 (altivec_vpkshus): Likewise.
1424 (altivec_vpkuwus): Likewise.
1425 (altivec_vpkswus): Likewise.
1426 (altivec_vpks<VI_char>ss): Likewise.
1427 (altivec_vpks<VI_char>us): Likewise.
1428 (altivec_vpku<VI_char>us): Likewise.
1429 (altivec_vpku<VI_char>um): Likewise.
1430 (altivec_vrl<VI_char>): Likewise.
1431 (altivec_vsl<VI_char>): Likewise.
1432 (altivec_vsr<VI_char>): Likewise.
1433 (altivec_vsra<VI_char>): Likewise.
1434 (altivec_vsldoi_<mode>): Likewise.
1435 (altivec_vupkhsb): Likewise.
1436 (altivec_vupkhs<VU_char>): Likewise.
1437 (altivec_vupkls<VU_char>): Likewise.
1438 (altivec_vupkhsh): Likewise.
1439 (altivec_vupklsb): Likewise.
1440 (altivec_vupklsh): Likewise.
1441 (altivec_vcmpequ<VI_char>_p): Likewise.
1442 (altivec_vcmpgts<VI_char>_p): Likewise.
1443 (altivec_vcmpgtu<VI_char>_p): Likewise.
1444 (abs<mode>2): Likewise.
1445 (vec_unpacks_hi_v16qi): Likewise.
1446 (vec_unpacks_hi_v8hi): Likewise.
1447 (vec_unpacks_lo_v16qi): Likewise.
1448 (vec_unpacks_hi_<VP_small_lc>): Likewise.
1449 (vec_unpacks_lo_v8hi): Likewise.
1450 (vec_unpacks_lo_<VP_small_lc>): Likewise.
1451 (vec_pack_trunc_v8h): Likewise.
1452 (vec_pack_trunc_v4si): Likewise.
1453 (vec_pack_trunc_<mode>): Likewise.
1454
1455 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
1456 V2DI builtins.
1457 (vec_vmaxsd): Likewise.
1458 (vec_vmaxud): Likewise.
1459 (vec_vminsd): Likewise.
1460 (vec_vminud): Likewise.
1461 (vec_vpksdss): Likewise.
1462 (vec_vpksdus): Likewise.
1463 (vec_vpkudum): Likewise.
1464 (vec_vpkudus): Likewise.
1465 (vec_vrld): Likewise.
1466 (vec_vsld): Likewise.
1467 (vec_vsrad): Likewise.
1468 (vec_vsrd): Likewise.
1469 (vec_vsubudm): Likewise.
1470 (vec_vupkhsw): Likewise.
1471 (vec_vupklsw): Likewise.
1472
e70670cf
JH
14732013-05-29 Jan Hubicka <jh@suse.cz>
1474
1475 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
1476 flags; reorder rest of fields in more consistent way.
1477 (varpool_node): Remove analyzed, finalized and alias.
1478 (cgraph_ndoe): Likewise.
1479 (symtab_alias_ultimate_target): New function.
1480 (cgraph_function_node): Move offline.
1481 (cgraph_reset_node): Declare.
1482 (cgraph_comdat_can_be_unshared_p): Remove.
1483 (varpool_remove_initializer): Declare.
1484 (varpool_first_defined_variable, varpool_next_defined_variable
1485 cgraph_first_defined_function, cgraph_next_defined_function): Update.
1486 (cgraph_function_with_gimple_body_p): Update.
1487 (varpool_all_refs_explicit_p): Update.
1488 (symtab_alias_target): New function.
1489 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
1490 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
1491 (cgraph_function_or_thunk_node): Simplify using
1492 symtab_alias_ultimate_target.
e70670cf
JH
1493 (varpool_variable_node): Likewise.
1494 * cgraph.c (cgraph_create_function_alias): Update.
1495 (cgraph_add_thunk): Update.
1496 (cgraph_remove_node): Update.
1497 (dump_cgraph_node): Do not dump removed flags.
1498 (cgraph_function_body_availability): Update.
1499 (cgraph_propagate_frequency): Update.
1500 (verify_cgraph_node): Check sanity of local flag.
1501 (cgraph_function_node): Move here from cgraph.h; revamp for
1502 cgraph_function_or_thunk_node.
1503 * lto-symtab.c (lto_varpool_replace_node): Update.
1504 (lto_symtab_resolve_can_prevail_p): Update.
1505 (lto_symtab_merge_cgraph_nodes): Update.
1506 * ipa-cp.c (determine_versionability, initialize_node_lattices,
1507 propagate_constants_accross_call, devirtualization_time_bonus,
1508 ipcp_propagate_stage): Update.
1509 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
1510 * ipa-inline-transform.c (clone_inlined_nodes,
1511 preserve_function_body_p): Update.
e70670cf
JH
1512 * ipa-reference.c (propagate): Update.
1513 (write_node_summary_p): Update.
1514 * toplev.c (wrapup_global_declaration_2): Update.
1515 * cgraphunit.c (cgraph_analyze_function): Rename to ...
1516 (analyze_function) ... this one.
1517 (cgraph_process_new_functions): Update.
1518 (cgraph_reset_node): Export.
1519 (cgraph_finalize_function): Update.
1520 (cgraph_add_new_function): Update.
1521 (process_function_and_variable_attributes): Update.
1522 (varpool_finalize_decl): Update.
1523 (symbol_finalized): Remove.
1524 (symbol_finalized_and_needed): Rename to ...
1525 (symbol_defined_and_needed): ... update.
1526 (cgraph_analyze_functions): Update.
1527 (handle_alias_pairs): Update.
1528 (mark_functions_to_output): Update.
1529 (assemble_thunk): Update.
1530 (output_in_order): Update.
1531 (output_weakrefs): Update.
1532 (finalize_compilation_unit): Update.
1533 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
1534 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
1535 input_node, input_varpool_node): Update.
1536 * dbxout.c (dbxout_expand_expr): Update.
1537 * cgraphclones.c (cgraph_clone_node): Update.
1538 (cgraph_copy_node_for_versioning): Update.
1539 (cgraph_materialize_clone): Update.
1540 (cgraph_materialize_all_clones): Update.
1541 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
1542 propagate_pure_const, propagate_nothrow): Update.
1543 * lto-streamer-out.c (lto_output, write_symbol): Update.
1544 * ipa-utils.c (ipa_reverse_postorder): Update.
1545 * ipa-inline.c (can_inline_edge_p): Update.
1546 (update_caller_keys, ipa_inline): Update.
1547 * dwarf2out.c (reference_to_unused,
1548 premark_types_used_by_global_vars_helper): Update.
1549 * tree-eh.c (tree_could_trap_p): Update.
1550 * ipa-split.c (consider_split, execute_split_functions): Update.
1551 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
1552 has_addr_references_p): Update; move ahead in file for better
1553 readability.
e70670cf
JH
1554 (process_references): Simplify.
1555 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
1556 bodies are removed.
1557 (cgraph_comdat_can_be_unshared_p): Make static.
1558 (cgraph_externally_visible_p): Update.
1559 (varpool_externally_visible_p): Update.
1560 (function_and_variable_visibility): Update.
1561 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
1562 ipa_tm_mark_force_output_node): Update.
1563 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
1564 estimate_edge_devirt_benefit, inline_generate_summary,
1565 inline_write_summary): Update.
1566 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
1567 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
1568 (ipa_print_node_params, ipa_prop_read_section,
1569 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
1570 * varasm.c (mark_decl_referenced): Update.
1571 (assemble_alias, dump_tm_clone_pairs): Update.
1572 * tree-inline.c (copy_bb): Update.
1573 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
1574 Update.
1575 * symtab.c (dump_symtab_base): Print new flags.
1576 (verify_symtab_base): Verify new flags.
1577 (symtab_alias_ultimate_target): New function.
1578 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
1579 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
1580 Update.
c1e183a9
UB
1581 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
1582 Update.
e70670cf
JH
1583 * i386.c (ix86_get_function_versions_dispatcher,
1584 ix86_generate_version_dispatcher_body): Update.
1585 (fold_builtin_cpu): Use varpool_add_new_variable.
1586 * varpool.c (varpool_remove_initializer): Break out from ...
1587 (varpool_remove_node): ... this one.
1588 (dump_varpool_node, varpool_node_for_asm,
1589 cgraph_variable_initializer_availability, varpool_analyze_node,
1590 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
1591 varpool_finalize_named_section_flags, varpool_create_variable_alias):
1592 Update.
e70670cf 1593
182802ad
JH
15942013-05-29 Jan Hubicka <jh@suse.cz>
1595
1596 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
1597
8190b609
ER
15982013-05-29 Easwaran Raman <eraman@google.com>
1599
1600 PR tree-optimization/57442
1601 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
1602 when control exits the main loop.
1603
69f5aa9b
SKS
16042013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
1605
1606 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
1607 and RX600.
c1e183a9 1608 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
1609 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
1610 * rx/t-rx: Add rx100 under multi library matches option for nofpu
1611 option.
1612
4b847da9
BS
16132013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1614
1615 PR tree-optimization/57441
1616 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
1617 Don't limit size of incr_vec to number of candidates.
1618
4fc43c39
SE
16192013-05-29 Steve Ellcey <sellcey@imgtec.com>
1620
1621 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
1622 and mips16 directories.
c1e183a9 1623 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
1624 (MULTILIB_DIRNAMES): Ditto.
1625 (MULTILIB_EXCEPTIONS): Add new exceptions.
1626 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
1627 (MULTILIB_DIRNAMES): Ditto.
1628 (MULTILIB_EXCEPTIONS): Add new exceptions.
1629
a5350ddc
CSS
16302012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
1631 Marcus Shawcroft <marcus.shawcroft@arm.com>
1632
1633 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
1634 SYMBOL_TINY_ABSOLUTE.
1635 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
1636 SYMBOL_TINY_ABSOLUTE.
1637 (aarch64_expand_mov_immediate): Likewise.
1638 (aarch64_classify_symbol): Likewise.
1639 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
1640 Permit SYMBOL_TINY_ABSOLUTE.
1641 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
1642
17f4d4bf
CSS
16432013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
1644 Marcus Shawcroft <marcus.shawcroft@arm.com>
1645
1646 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
1647 Refactor if/switch. Replace gcc_assert with if.
1648
c0186656
GG
16492013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
1650
1651 * config/i386/i386.c (initial_ix86_tune_features): Enable
1652 FP Reassociation for AMD bdver1 and bdver2.
1653
d20188f3
MJ
16542013-05-29 Martin Jambor <mjambor@suse.cz>
1655
1656 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
1657 and IMAGPART_EXPR do not occur within other handled_components.
1658
292cba13
RB
16592013-05-29 Richard Biener <rguenther@suse.de>
1660
1661 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
1662 access on whether the use is in the BB we currently try to
1663 vectorize.
1664 (vect_bb_vectorization_profitable_p): Pass the BB we currently
1665 vectorize to vect_bb_slp_scalar_cost.
1666
6eddf228
RB
16672013-05-29 Richard Biener <rguenther@suse.de>
1668
1669 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
1670 computing scalar cost offsetted by stmts that are kept live
1671 by scalar uses.
1672 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
1673 for computation of scalar cost.
1674
7df36117
SE
16752013-05-28 Steve Ellcey <sellcey@mips.com>
1676
1677 * config/mips/mips-cpus.def (mips32r2): Change processor type.
1678
36536d79
BI
16792013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
1680
1681 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
1682 array notation built-in reduction functions.
1683 * doc/passes.texi (Passes): Added documentation about changes done
1684 for Cilk Plus.
1685 * doc/invoke.texi (C Dialect Options): Added documentation about
1686 the -fcilkplus flag.
1687 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
1688 (BUILTINS_DEF): Depend on cilkplus.def.
1689 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
1690 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
1691 * cilkplus.def: New file.
1692
b49eefa5
JR
16932013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
1694
1695 PR rtl-optimization/57439
1696 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
1697
9daf6dbb
ER
16982013-05-28 Easwaran Raman <eraman@google.com>
1699
1700 PR tree-optimization/57337
1701 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
1702 (find_insert_point): Correctly identify the insertion point
1703 when two statements with the same UID is compared.
1704
fbd7e877
RB
17052013-05-28 Richard Biener <rguenther@suse.de>
1706
1707 PR tree-optimization/56787
1708 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
1709 from the list of data references.
1710 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
1711 clobbers.
1712 (vect_analyze_loop_operations): Likewise.
1713 (vect_transform_loop): Remove clobbers.
1714
bbba1117
MJ
17152013-05-28 Martin Jambor <mjambor@suse.cz>
1716
1717 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
1718 and REALPART_EXPRs have scalar type.
1719
bd388c2a
RB
17202013-05-28 Richard Biener <rguenther@suse.de>
1721
1722 PR tree-optimization/57411
1723 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
1724 virtual operands.
1725 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
1726 virtual operand propagation.
1727
2f56a311
EB
17282013-05-28 Eric Botcazou <ebotcazou@adacore.com>
1729
1730 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
1731 destination register for bmasksi_vis.
1732 (vector_init_bshuffle): Likewise.
1733 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
1734
5c3eacbb
EB
17352013-05-28 Eric Botcazou <ebotcazou@adacore.com>
1736
1737 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
1738 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
1739 mode if the instruction isn't available in the original mode.
1740 * config/sparc/sparc.opt (mfix-ut699): New option.
1741 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
1742 (divdf3): Turn into expander.
1743 (divdf3_nofix): New insn.
1744 (divdf3_fix): Likewise.
1745 (divsf3): Disable if -mfix-ut699.
1746 (sqrtdf2): Turn into expander.
1747 (sqrtdf2_nofix): New insn.
1748 (sqrtdf2_fix): Likewise.
1749 (sqrtsf2): Disable if -mfix-ut699.
1750
a1756c0a
RB
17512013-05-27 Richard Biener <rguenther@suse.de>
1752
1753 PR middle-end/57412
1754 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
1755 block for the new loop.
1756
5a892248
RB
17572013-05-27 Richard Biener <rguenther@suse.de>
1758
1759 PR tree-optimization/57343
1760 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
1761 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
1762 (number_of_iterations_cond): Do not build the folded tree.
1763
d1de852b
RB
17642013-05-27 Richard Biener <rguenther@suse.de>
1765
1766 Revert
1767 PR middle-end/57381
1768 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
1769 OEP_CONSTANT_ADDRESS_OF retained.
1770
1771 PR tree-optimization/57417
1772 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
1773 for unchanged base.
1774 (set_ssa_val_to): Compare addresses using
1775 get_addr_base_and_unit_offset.
1776
7894bc6b
JR
17772013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
1778
1779 PR rtl-optimization/56833
1780 * postreload.c (move2add_record_mode): New function.
1781 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
1782 (move2add_use_add2_insn): Use move2add_record_sym_value.
1783 (move2add_use_add3_insn): Likewise.
1784 (reload_cse_move2add): Use move2add_valid_value_p and
1785 move2add_record_mode. Invalidate call-clobbered and REG_INC
1786 affected regs by setting reg_mode to VOIDmode.
1787 (move2add_note_store): Don't pretend the inside of a SUBREG is
1788 the actual destination. Invalidate single/leading registers by
1789 setting reg_mode to VOIDmode.
1790 Use move2add_record_sym_value, move2add_valid_value_p and
1791 move2add_record_mode.
1792
b03be25f
RB
17932013-05-27 Richard Biener <rguenther@suse.de>
1794
1795 PR tree-optimization/57396
1796 * tree-affine.c (double_int_constant_multiple_p): Properly
1797 return false for val == 0 and div != 0.
1798
44e88db2
RS
17992013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
1800
1801 * config/mips/mips.h: Use #elif in preprocessor conditions.
1802
3b859704
RS
18032013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
1804
1805 PR target/53916
1806 * config/mips/constraints.md (kl): New constraint.
1807 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
1808 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
1809 constraint for operand 0. Split after CSE for MIPS16. Emit a move
1810 from LO for MIPS16.
1811 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
1812
c979d5f5
RS
18132013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
1814
1815 PR target/55777
1816 * config/mips/mips.c (mips_can_inline_p): New function.
1817 (TARGET_CAN_INLINE_P): Define.
1818
8e90de43
SB
18192013-05-25 Steven Bosscher <steven@gcc.gnu.org>
1820
1821 * sched-int.h (ds_t, dw_t): Make unsigned int.
1822 Fix documentation that describes how all the ds_t bits are used.
1823 Reserve the last bit for delayed-branch scheduling.
1824 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
1825 (BITS_PER_DEP_WEAK): Fix definition and documentation.
1826 (gen_dep_weak_1): Remove prototype.
1827 * sched-deps.c (get_dep_weak_1): Make static.
1828 * target.def (speculate_insn, needs_block_p, gen_spec_check,
1829 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
1830 * doc/tm.texi: Regenerate.
1831 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
1832
cb5cb194
SB
18332013-05-24 Steven Bosscher <steven@gcc.gnu.org>
1834
1835 PR debug/56950
1836 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
1837
5bd93ff6
NS
18382013-05-24 Nathan Sidwell <nathan@codesourcery.com>
1839 Sandra Loosemore <sandra@codesourcery.com>
1840
1841 * config.gcc (powerpc-*): Allow native for with-cpu.
1842
2343af65
JL
18432013-05-24 Jeff Law <law@redhat.com>
1844
1845 PR tree-optimization/57124
1846 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
1847 conversion feeding a condition if the range has an overflow
1848 if -fstrict-overflow. Add warnings for when we do make the
1849 transformation.
1850
3ad695b9
DC
18512013-05-24 Dehao Chen <dehao@google.com>
1852
04960246 1853 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
1854 (locus_discrim_hasher): Likewise.
1855 (locus_discrim_hasher::hash): Likewise.
1856 (locus_discrim_hasher::equal): Likewise.
1857
82338059
MJ
18582013-05-24 Martin Jambor <mjambor@suse.cz>
1859
1860 PR tree-optimization/57294
1861 * cgraph.h (ipa_record_stmt_references): Declare.
1862 * cgraphbuild.c (ipa_record_stmt_references): New function.
1863 (build_cgraph_edges): Use ipa_record_stmt_references.
1864 (rebuild_cgraph_edges): Likewise.
1865 (cgraph_rebuild_references): Likewise.
1866 * ipa-prop.c (ipa_modify_call_arguments): Discard references
1867 associated with the old statement and build references from the
1868 newly built statements.
1869 * ipa-ref.c (ipa_remove_stmt_references): New function.
1870 * ipa-ref.h (ipa_remove_stmt_references): Declare.
1871
1ccd4874
VM
18722013-05-24 Vladimir Makarov <vmakarov@redhat.com>
1873
55805e54 1874 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 1875 mem-mem moves.
55805e54 1876 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 1877 too.
55805e54 1878 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
1879 secondary memory moves.
1880 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
1881 reg set up in the current insn.
1882
25e25c73
DC
18832013-05-24 Dehao Chen <dehao@google.com>
1884
04960246 1885 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
1886 hash function.
1887 (locus_descrim_hasher::equal): Likewise.
04960246 1888 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
1889 (make_edges): Likewise.
1890 (next_discriminator_for_locus): Likewise.
1891 (same_line_p): Likewise.
1892 (assign_discriminators): Likewise.
1893 (make_cond_expr_edges): Likewise.
1894 (make_gimple_switch_edges): Likewise.
1895 (make_goto_expr_edges): Likewise.
1896 (make_gimple_asm_edges): Likewise.
1897
50d38551
IB
18982013-05-24 Ian Bolton <ian.bolton@arm.com>
1899
1900 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
1901 X format specifier to only display bottom 16 bits.
1902 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
1903 immediate to match for operand 2, since it will be masked.
1904
aea0101d
RB
19052013-05-24 Richard Biener <rguenther@suse.de>
1906
1907 PR tree-optimization/57287
1908 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
1909 all SSA names that occur in abnormal PHIs.
1910
634e03d3
AI
19112013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
1912
1913 PR tree-ssa/57385
1914 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
1915 that index is not negative.
1916
b17c024f
EB
19172013-05-24 Eric Botcazou <ebotcazou@adacore.com>
1918
1919 PR rtl-optimization/55177
1920 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
1921 (simplify_byte_swapping_operation): New.
1922 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
1923 (simplify_relational_operation_1): Deal with BSWAP.
1924
46aeac1b
RH
19252013-05-23 Richard Henderson <rth@redhat.com>
1926
1927 PR target/56742
1928 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
1929 (ix86_reorg): Call it.
1930
70cc1536
UB
19312013-05-23 Uros Bizjak <ubizjak@gmail.com>
1932
1933 PR target/57379
1934 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
1935 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
1936 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
1937
b3851501
CB
19382013-05-23 Christian Bruel <christian.bruel@st.com>
1939
1940 PR debug/57351
1941 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
1942
4e194912
CSS
19432013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
1944 Marcus Shawcroft <marcus.shawcroft@arm.com>
1945
1946 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
1947 * config/aarch64/constraints.md (Usa): Remove.
1948 * doc/md.texi (AArch64 Usa): Remove.
1949
83f8c414
CSS
19502013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
1951 Marcus Shawcroft <marcus.shawcroft@arm.com>
1952
1953 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
1954 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
1955 * config/aarch64/predicates.md (aarch64_const_address): Remove.
1956 (aarch64_mov_operand): Use aarch64_mov_operand_p.
1957
b5574232
VP
19582013-05-23 Vidya Praveen <vidyapraveen@arm.com>
1959
1960 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
1961 instruction (AdvSIMD).
1962 * config/aarch64/aarch64-builtins.c
1963 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
1964 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
1965
76c36cb1 19662013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
1967
1968 PR middle-end/57347
1969 * tree.h (contains_bitfld_component_ref_p): Declare.
1970 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
1971 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
1972 caller.
7d2fb524
MJ
1973 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
1974 not access a bit-field. Assert all final offsets are byte-aligned.
1975
ce521ae6
RB
19762013-05-23 Richard Biener <rguenther@suse.de>
1977
1978 PR tree-optimization/57380
1979 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
1980 least one invariant or re-used load.
1981 * passes.c (init_optimization_passes): Move pass_phiprop before
1982 pass_forwprop.
1983
75c7257f
JG
19842013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
1985
1986 * config/aarch64/aarch64-simd.md
1987 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
1988
af6d44b5
RB
19892013-05-23 Richard Biener <rguenther@suse.de>
1990
1991 PR middle-end/57381
1992 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
1993 OEP_CONSTANT_ADDRESS_OF retained.
1994
bd3647bf
JJ
19952013-05-23 Jakub Jelinek <jakub@redhat.com>
1996
1997 PR middle-end/57344
70cc1536
UB
1998 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
1999 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 2000
a55757ea
RB
20012013-05-23 Richard Biener <rguenther@suse.de>
2002
2003 PR rtl-optimization/57341
2004 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
2005 instead of true_dependence.
2006
cfb00b41
DM
20072013-05-22 David Malcolm <dmalcolm@redhat.com>
2008
dd1c676f
DM
2009 * bb-reorder.c (branch_threshold): Make const.
2010 (exec_threshold): Ditto.
cfb00b41 2011
f62511da
MM
20122013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
2013 Pat Haugen <pthaugen@us.ibm.com>
2014 Peter Bergner <bergner@vnet.ibm.com>
2015
2016 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
2017 documentation for the power8 crypto builtins.
2018
2019 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
2020
2021 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
2022 macros for defining power8 builtin functions.
2023 (BU_P8V_AV_2): Likewise.
2024 (BU_P8V_AV_P): Likewise.
2025 (BU_P8V_VSX_1): Likewise.
2026 (BU_P8V_OVERLOAD_1): Likewise.
2027 (BU_P8V_OVERLOAD_2): Likewise.
2028 (BU_CRYPTO_1): Likewise.
2029 (BU_CRYPTO_2): Likewise.
2030 (BU_CRYPTO_3): Likewise.
2031 (BU_CRYPTO_OVERLOAD_1): Likewise.
2032 (BU_CRYPTO_OVERLOAD_2): Likewise.
2033 (XSCVSPDP): Fix typo, point to the correct instruction.
2034 (VCIPHER): Add power8 crypto builtins.
2035 (VCIPHERLAST): Likewise.
2036 (VNCIPHER): Likewise.
2037 (VNCIPHERLAST): Likewise.
2038 (VPMSUMB): Likewise.
2039 (VPMSUMH): Likewise.
2040 (VPMSUMW): Likewise.
2041 (VPERMXOR_V2DI): Likewise.
2042 (VPERMXOR_V4SI: Likewise.
2043 (VPERMXOR_V8HI: Likewise.
2044 (VPERMXOR_V16QI: Likewise.
2045 (VSHASIGMAW): Likewise.
2046 (VSHASIGMAD): Likewise.
2047 (VPMSUM): Likewise.
2048 (VPERMXOR): Likewise.
2049 (VSHASIGMA): Likewise.
2050
2051 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
2052 __CRYPTO__ if the crypto instructions are available.
2053 (altivec_overloaded_builtins): Add support for overloaded power8
2054 builtins.
2055
2056 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
2057 support for power8 crypto builtins.
2058 (builtin_function_type): Likewise.
2059 (altivec_init_builtins): Add support for builtins that take vector
2060 long long (V2DI) arguments.
2061
2062 * config/rs6000/crypto.md: New file, define power8 crypto
2063 instructions.
2064
20652013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
2066 Pat Haugen <pthaugen@us.ibm.com>
2067 Peter Bergner <bergner@vnet.ibm.com>
2068
2069 * doc/invoke.texi (Option Summary): Add power8 options.
2070 (RS/6000 and PowerPC Options): Likewise.
2071
2072 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
2073 constraints.md instead of rs6000.h. Reorder w* constraints. Add
2074 wm, wn, wr documentation.
2075
2076 * gcc/config/rs6000/constraints.md (wm): New constraint for VSX
2077 registers if direct move instructions are enabled.
2078 (wn): New constraint for no registers.
2079 (wq): New constraint for quad word even GPR registers.
2080 (wr): New constraint if 64-bit instructions are enabled.
2081 (wv): New constraint if power8 vector instructions are enabled.
2082 (wQ): New constraint for quad word memory locations.
2083
2084 * gcc/config/rs6000/predicates.md (const_0_to_15_operand): New
2085 constraint for 0..15 for crypto instructions.
2086 (gpc_reg_operand): If VSX allow registers in VSX registers as well
2087 as GPR and floating point registers.
2088 (int_reg_operand): New predicate to match only GPR registers.
2089 (base_reg_operand): New predicate to match base registers.
2090 (quad_int_reg_operand): New predicate to match even GPR registers
2091 for quad memory operations.
2092 (vsx_reg_or_cint_operand): New predicate to allow vector logical
2093 operations in both GPR and VSX registers.
2094 (quad_memory_operand): New predicate for quad memory operations.
2095 (reg_or_indexed_operand): New predicate for direct move support.
2096
2097 * gcc/config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
2098 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
2099 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
2100 (POWERPC_MASKS): Add power8 options.
2101 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
2102 various options.
2103
2104 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
2105 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
2106
2107 * gcc/config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
2108 (-mpower8-fusion): New power8 options.
2109 (-mpower8-fusion-sign): Likewise.
2110 (-mpower8-vector): Likewise.
2111 (-mcrypto): Likewise.
2112 (-mdirect-move): Likewise.
2113 (-mquad-memory): Likewise.
2114
2115 * gcc/config/rs6000/rs6000.c (power8_cost): Initial definition for
2116 power8.
2117 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
2118 registers.
70cc1536 2119 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
2120 (rs6000_debug_vector_unit): Add p8_vector.
2121 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
2122 definitions. Also print fusion state.
2123 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
2124 (rs6000_builtin_mask_calculate): Add power8 builtin support.
2125 (rs6000_option_override_internal): Add support for power8.
2126 (rs6000_common_init_builtins): Add debugging for skipped builtins
2127 if -mdebug=builtin.
2128 (rs6000_adjust_cost): Add power8 support.
2129 (rs6000_issue_rate): Likewise.
2130 (insn_must_be_first_in_group): Likewise.
2131 (insn_must_be_last_in_group): Likewise.
2132 (force_new_group): Likewise.
2133 (rs6000_register_move_cost): Likewise.
2134 (rs6000_opt_masks): Likewise.
2135
2136 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
2137 power8 capable assembler, default to power7 options.
2138 (TARGET_DIRECT_MOVE): Likewise.
2139 (TARGET_CRYPTO): Likewise.
2140 (TARGET_P8_VECTOR): Likewise.
2141 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
2142 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
2143 (VECTOR_MEM_P8_VECTOR_P): Likewise.
2144 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
2145 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
2146 (TARGET_XSCVDPSPN): Likewise.
2147 (TARGET_XSCVSPDPN): Likewsie.
2148 (TARGET_SYNC_HI_QI): Likewise.
2149 (TARGET_SYNC_TI): Likewise.
2150 (MASK_CRYPTO): Likewise.
2151 (MASK_DIRECT_MOVE): Likewise.
2152 (MASK_P8_FUSION): Likewise.
2153 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
2154 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
2155 temporary used by some of the direct move instructions to get two FP
2156 temporary registers does not force creation of a stack frame.
f62511da
MM
2157 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
2158 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
2159 that any VSX registers are tieable, even if they are also an
2160 Altivec vector mode.
2161 (r6000_reg_class_enum): Add wm, wr, wv constraints.
2162 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
2163 (RS6000_BTM_CRYPTO): Likewise.
2164 (RS6000_BTM_COMMON): Likewise.
2165
2166 * config/rs6000/rs6000.md (cpu attribute): Add power8.
2167 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
2168 (enum rs6000_vector): Add power8 vector support.
2169
73a1a707
RR
21702013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2171
2172 PR target/19599
2173 PR target/57340
2174 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
2175 (any_sibcall_could_use_r3): this and handle indirect calls.
2176 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
2177
d28073d4
BS
21782013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2179
2180 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
2181
bee0b10c
RB
21822013-05-22 Richard Biener <rguenther@suse.de>
2183
2184 PR middle-end/57349
2185 * profile.c (branch_prob): Do not split blocks that are
2186 abnormally receiving from ECF_RETURNS_TWICE functions.
2187
98409b51
RS
21882013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
2189
2190 * recog.c (offsettable_address_addr_space_p): Fix calculation of
2191 address mode. Move pointer mode initialization to the same place.
2192
c0602ab8
MZ
21932013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2194
2195 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
2196 while it has any effect.
2197
4f7a634e
ER
21982013-05-21 Easwaran Raman <eraman@google.com>
2199
2200 PR tree-optimization/57322
9daf6dbb
ER
2201 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
2202 UID of the statement added to the BB to be 1.
4f7a634e 2203
a4ce1258
JJ
22042013-05-21 Jakub Jelinek <jakub@redhat.com>
2205
2206 PR tree-optimization/57331
70cc1536
UB
2207 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
2208 of conversion from pointer type to integral type with integer.
a4ce1258 2209
1b14621a
MJ
22102013-05-21 Martin Jambor <mjambor@suse.cz>
2211
2212 PR lto/57289
2213 * ipa-prop.c (ipa_read_node_info): Process param_used and
2214 controlled_uses in the same order as when writing.
2215
e60661f0
MG
22162013-05-21 Magnus Granberg <baldrick@free.fr>
2217
2218 PR plugins/56754
ee49aa34 2219 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 2220
4a61be9a
RB
22212013-05-21 Richard Biener <rguenther@suse.de>
2222
2223 PR tree-optimization/57318
2224 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
2225 estimate stmts with side-effects as likely eliminated.
2226
c52da5f7
RB
22272013-05-21 Richard Biener <rguenther@suse.de>
2228
2229 PR tree-optimization/57330
2230 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
2231 preserve the call stmts fntype.
2232
7ec67e2a
RB
22332013-05-21 Richard Biener <rguenther@suse.de>
2234
2235 PR tree-optimization/57303
2236 * tree-ssa-sink.c (statement_sink_location): Improve killing
2237 stmt detection and properly handle self-assignments.
2238
b112d513
CB
22392013-05-21 Christian Bruel <christian.bruel@st.com>
2240
55805e54
YR
2241 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
2242 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
2243 registers. Set register size out of the PARALLEL loop.
2244
14c2ec26
OE
22452013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
2246
2247 PR target/56547
2248 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
2249 (*fmasf4, *fmasf4_media): New insns.
2250
da734fa1
RS
22512013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
2252
2253 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
2254 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
2255 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
2256 (mips_idiv_insns): Update the comments to say that the returned
2257 instruction counts are in units of BASE_INSN_LENGTH.
2258 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
2259 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
2260 using 2 rather than 4 as the length of indirect MIPS16 and
2261 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
2262 length of a NOP. Don't divide MIPS16 lengths by 2.
2263 (mips16_split_long_branches): Assume a branch is long if the
2264 length is greater than 4 rather than 8.
2265 * config/mips/mips.md (length): Give MIPS16 lengths directly,
2266 rather than multiplying them by 2. Multiply instruction counts
2267 by BASE_INSN_LENGTH rather than 4.
2268 (*jump_mips16, tls_get_tp_mips16_<mode>)
2269 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
2270
13719e8b
RS
22712013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
2272
2273 * config/mips/mips.md (extended_mips16): Remove branch case.
2274 (length): Remove duplicated extended_mips16 test.
2275
c3850d14
RS
22762013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
2277
2278 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
2279
8da2e059
RS
22802013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
2281
2282 * recog.h (Recog_data): Rename to...
2283 (recog_data_d): ...this.
2284 (recog_data): Update accordingly.
2285 * recog.c (recog_data): Likewise.
2286 * reload.c (save_recog_data): Likewise.
2287 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
2288 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
2289
2df013f3
JB
22902013-05-17 Julian Brown <julian@codesourcery.com>
2291
2292 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
2293 found in a REG_EQUAL note, invalidate it.
2294
933f507d
ER
22952013-05-17 Easwaran Raman <eraman@google.com>
2296
2297 * tree-ssa-reassoc.c (find_insert_point): New function.
2298 (insert_stmt_after): Likewise.
2299 (get_def_stmt): Likewise.
2300 (ensure_ops_are_available): Likewise.
2301 (not_dominated_by): Likewise.
2302 (rewrite_expr_tree): Do not move statements beyond what is
2303 necessary. Remove call to swap_ops_for_binary_stmt...
2304 (reassociate_bb): ... and move it here.
2305 (build_and_add_sum): Assign UIDs for new statements.
2306 (linearize_expr): Likewise.
2307 (do_reassoc): Renumber gimple statement UIDs.
2308
e01c7cca
JH
23092013-05-17 Jan Hubicka <jh@suse.cz>
2310
2311 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
2312 weakrefs.
2313 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
2314 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
2315 weakrefs.
e01c7cca
JH
2316 (output_weakrefs): Update.
2317
c3272a92
PCC
23182013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
2319 Martin Jambor <mjambor@suse.cz>
2320
2321 PR middle-end/57276
2322 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
2323 value that corresponds to the given aggval is found in values vector.
2324
11c2aa39
UB
23252013-05-17 Uros Bizjak <ubizjak@gmail.com>
2326
2327 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
2328 sse, sse2, sse3, ssse3 and sse4a flags to options.
2329
abecc8c6
DM
23302013-05-17 David Malcolm <dmalcolm@redhat.com>
2331
2332 * gengtype-state.c: (s_expr_writer): New class, to handle
2333 prettifying of output layout of s-expressions.
2334 (state_writer): New class, to write out gtype.state.
2335 (state_written_type_count): Move this variable into member data of
2336 state_writer.
2337 (s_expr_writer::s_expr_writer): New code: constructor for new class
2338 (state_writer::state_writer(): ditto
2339 (s_expr_writer::write_new_line): New function
2340 (s_expr_writer::write_any_indent): ditto
2341 (s_expr_writer::begin_s_expr): ditto
2342 (s_expr_writer::end_s_expr): ditto
2343 (write_state_fileloc): convert to method of state_writer...
2344 (state_writer:: write_state_fileloc): ...and use methods of
2345 s_expr_writer to write indentation into the gtype.state output file
2346 to visually represent the hierarchical structure of the list
2347 structures
2348 (write_state_fields): ditto, renaming to...
2349 (state_writer::write_state_fields)
2350 (write_state_a_string): ditto, renaming to...
2351 (state_writer::write_state_a_string)
2352 (write_state_string_option): ditto, renaming to...
2353 (state_writer::write_state_string_option)
2354 (write_state_type_option): ditto, renaming to...
2355 (state_writer::write_state_type_option)
2356 (write_state_nested_option): ditto, renaming to...
2357 (state_writer::write_state_nested_option)
2358 (write_state_option): ditto, renaming to...
2359 (state_writer::write_state_option)
2360 (write_state_options): ditto, renaming to...
2361 (state_writer::write_state_options)
2362 (write_state_lang_bitmap): ditto, renaming to...
2363 (state_writer::write_state_lang_bitmap)
2364 (write_state_version): ditto, renaming to...
2365 (state_writer::write_state_version)
2366 (write_state_scalar_type): ditto, renaming to...
2367 (state_writer::write_state_scalar_type)
2368 (write_state_string_type): ditto, renaming to...
2369 (state_writer::write_state_string_type)
2370 (write_state_undefined_type): ditto, renaming to...
2371 (state_writer::write_state_undefined_type)
2372 (write_state_struct_union_type): ditto, renaming to...
2373 (state_writer::write_state_struct_union_type)
2374 (write_state_struct_type): ditto, renaming to...
2375 (state_writer::write_state_struct_type)
2376 (write_state_user_struct_type): ditto, renaming to...
2377 (state_writer::write_state_user_struct_type)
2378 (write_state_lang_struct_type): ditto, renaming to...
2379 (state_writer::write_state_lang_struct_type)
2380 (write_state_param_struct_type): ditto, renaming to...
2381 (state_writer::write_state_param_struct_type)
2382 (write_state_pointer_type): ditto, renaming to...
2383 (state_writer::write_state_pointer_type)
2384 (write_state_array_type): ditto, renaming to...
2385 (state_writer::write_state_array_type)
2386 (write_state_gc_used): ditto, renaming to...
2387 (state_writer::write_state_gc_used)
2388 (write_state_common_type_content): ditto, renaming to...
2389 (state_writer::write_state_common_type_content)
2390 (write_state_type): ditto, renaming to...
2391 (state_writer::write_state_type)
2392 (write_state_pair_list): ditto, renaming to...
2393 (state_writer::write_state_pair_list)
2394 (write_state_pair): ditto, renaming to...
2395 (state_writer::write_state_pair)
2396 (write_state_typedefs): ditto, renaming to...
2397 (state_writer::write_state_typedefs)
2398 (write_state_structures): ditto, renaming to...
2399 (state_writer::write_state_structures)
2400 (write_state_param_structs): ditto, renaming to...
2401 (state_writer::write_state_param_structs)
2402 (write_state_variables): ditto, renaming to...
2403 (state_writer::write_state_variables)
2404 (write_state_srcdir): ditto, renaming to...
2405 (state_writer::write_state_srcdir)
2406 (write_state_files_list): ditto, renaming to...
2407 (state_writer::write_state_files_list)
2408 (write_state_languages): ditto, renaming to...
2409 (state_writer::write_state_languages)
2410 (write_state): create a state_writer instance and use it when
2411 writing out the state file
2412
d6545f29
MS
24132013-05-17 Mike Stump <mikestump@comcast.net>
2414
816a3f73 2415 PR rtl-optimization/57304
d6545f29
MS
2416 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
2417 accessing DF_REF_REAL_LOC.
2418
38c821cf
JJ
24192013-05-17 Jakub Jelinek <jakub@redhat.com>
2420
2421 PR rtl-optimization/57281
2422 PR rtl-optimization/57300
2423 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
2424 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
2425 what the other splitter did if the registers are dead.
2426
2a293391
RB
24272013-05-17 Richard Biener <rguenther@suse.de>
2428
2429 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
2430 MEM_REF offsets.
2431
17042d2b
JJ
24322013-05-17 Jakub Jelinek <jakub@redhat.com>
2433
2434 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
2435 linking.
2436
5b115c1f
MP
24372013-05-17 Marek Polacek <polacek@redhat.com>
2438
11c2aa39
UB
2439 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
2440 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 2441
52d84413
JJ
24422013-05-17 Jakub Jelinek <jakub@redhat.com>
2443
68119618
JJ
2444 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
2445 vect_external_def oprnd1 with loop_vinfo, try to emit
2446 optional cast, negation and and stmts on the loop preheader
2447 edge instead of into the pattern def seq.
2448
52d84413
JJ
2449 PR tree-optimization/57051
2450 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
2451 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
2452
17b962bd
NC
24532013-05-16 Nick Clifton <nickc@redhat.com>
2454
2455 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
2456 (rl78_is_naked_func): New function.
56aefbf7
UB
2457 (rl78_expand_prologue): Skip prologue generation for naked functions.
2458 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
2459 * doc/extend.texi (naked): Add RL78 to the list of processors
2460 that supports this attribute.
2461
b1a0f84e
JL
24622013-05-16 Jeff Law <law@redhat.com>
2463
2464 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
2465
af0e415b
UB
24662013-05-16 Uros Bizjak <ubizjak@gmail.com>
2467
2468 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
2469 cache parameters using detect_caches_amd also for CYRIX,
2470 NSC and TM2 signatures.
2471
19db293a
UB
24722013-05-16 Uros Bizjak <ubizjak@gmail.com>
2473 Dzianis Kahanovich <mahatma@eu.by>
2474
2475 PR target/45359
2476 PR target/46396
2477 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
2478 VIA/Centaur processors and determine their cache parameters
2479 using detect_caches_amd.
2480
251a41b9
TJ
24812013-05-16 Teresa Johnson <tejohnson@google.com>
2482
2483 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
2484 (rtl_verify_edges): New function.
2485 (rtl_verify_bb_insns): Ditto.
2486 (rtl_verify_bb_pointers): Ditto.
2487 (rtl_verify_bb_insn_chain): Ditto.
2488 (rtl_verify_fallthru): Ditto.
2489 (rtl_verify_bb_layout): Ditto.
2490 (rtl_verify_flow_info_1): Outline checks into new functions.
2491 (rtl_verify_flow_info): Ditto.
2492
f14540b6
SE
24932013-05-16 Steve Ellcey <sellcey@imgtec.com>
2494
2495 * cfghooks.c (copy_bbs): Add update_dominance argument.
2496 * cfghooks.h (copy_bbs): Update prototype.
2497 * tree-cfg.c (gimple_duplicate_sese_region):
2498 Add update_dominance argument.
2499 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
2500 * tree-ssa-loop-ch.c (copy_loop_headers): Update
2501 gimple_duplicate_sese_region call.
2502 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
2503 Update copy_bbs call.
2504 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
2505 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
2506
7e9a3abb
JJ
25072013-05-16 Jakub Jelinek <jakub@redhat.com>
2508
2509 * tree-vectorizer.h (NUM_PATTERNS): Increment.
2510 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
2511 vect_recog_rotate_pattern.
2512 (vect_recog_rotate_pattern): New function.
2513
427b248d
JM
25142013-05-16 Jason Merrill <jason@redhat.com>
2515
2516 * Makefile.in (LLINKER): New variable.
2517 (mostlyclean): Remove link mutex.
2518 * configure.ac: Handle --enable-link-mutex.
2519 * lock-and-run.sh: New script.
2520
b871e3d2
RR
25212013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2522
2523 PR target/19599
2524 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
2525 for NULL decl.
2526
ce858126
RO
25272013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2528
2529 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
2530
798d3d04
GY
25312013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
2532
2533 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
2534 * config/arm/arm.c (next_consecutive_mem): New function.
2535 (gen_movmem_ldrd_strd): Likewise.
2536 * config/arm/arm.md (movmemqi): Update condition and code.
2537 (unaligned_loaddi, unaligned_storedi): New patterns.
2538
0baddc45
RO
25392013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2540
2541 * config.gcc: Obsolete *-*-solaris2.9*.
2542 * doc/install.texi (Specific, *-*-solaris2*): Document it.
2543
aa9d5bcf
RB
25442013-05-16 Richard Biener <rguenther@suse.de>
2545
2546 * passes.c (init_optimization_passes): Move pass_parallelize_loops
2547 earlier, after GRAPHITE transforms and IV canonicalization.
2548
5a0f4dd3
JJ
25492013-05-16 Jakub Jelinek <jakub@redhat.com>
2550
2551 * omp-low.c (extract_omp_for_data): For collapsed loops,
2552 if at least one of the loops is known at compile time to
2553 iterate zero times, set count to 0.
2554 (expand_omp_regimplify_p): New function.
2555 (expand_omp_for_generic): For collapsed loops, if at least
2556 one of the loops isn't known to iterate at least once,
2557 add runtime check with setting count to 0.
2558 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
2559 For unsigned types if it isn't known at compile time that
2560 the loop will iterate at least once, add runtime check to bypass
2561 the whole loop if initial condition isn't true.
2562
e3753785
NS
25632013-05-16 Nathan Sidwell <nathan@codesourcery.com>
2564
2565 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
2566
43bb4dd1
MG
25672013-05-16 Marc Glisse <marc.glisse@inria.fr>
2568
2569 PR middle-end/57286
2570 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
2571 transformations to avoid an infinite loop.
2572
3571dde6
MP
25732013-05-16 Marek Polacek <polacek@redhat.com>
2574
2575 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
2576
b8b3f0ca
LE
25772013-05-15 Leif Ekblad <leif@rdos.net>
2578
2579 * config/i386/i386.c (ix86_decompose_address): Use
2580 DEFAULT_TLS_SEG_REG to access TLS segment register.
2581 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
2582 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
2583 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
2584
e299a383
RS
25852013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
2586
2587 PR target/57260
2588 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
2589 sibling calls to functions that would normally be lazily bound,
2590 unless $gp is call-clobbered.
2591
e7208ea3
UB
25922013-05-15 Uros Bizjak <ubizjak@gmail.com>
2593
19db293a 2594 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 2595 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
2596 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
2597 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
2598 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
2599 of TARGET_3DNOW.
2600 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
2601
e7413f3d
AS
26022013-05-15 Andreas Schwab <schwab@suse.de>
2603
2604 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
2605 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
2606 third operand.
2607
ad4db775
TJ
26082013-05-15 Teresa Johnson <tejohnson@google.com>
2609
2610 * loop-unroll.c (report_unroll_peel): Check decision before
2611 emitting unroll/peel message.
2612
af205f67
TJ
26132013-05-15 Teresa Johnson <tejohnson@google.com>
2614
2615 * function.h (has_bb_partition): New rtl_data flag.
2616 (bb_reorder_complete): Ditto.
2617 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
2618 instead of flag_reorder_blocks_and_partition.
2619 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
2620 with some enhancements.
2621 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
2622 * bb-reorder.c (connect_traces): Check for has_bb_partition
2623 instead of flag_reorder_blocks_and_partition.
2624 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
2625 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
2626 verify_hot_cold_block_grouping.
2627 (partition_hot_cold_basic_blocks): Set has_bb_partition.
2628
9adcfa3c
RR
26292013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2630
2631 PR target/19599
2632 * config/arm/predicates.md (call_insn_operand): New predicate.
2633 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
2634 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
2635 if insn is not a tail call.
2636 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
2637 registers.
2638 * config/arm/arm.h (enum reg_class): New caller save register class.
2639 (REG_CLASS_NAMES): Likewise.
2640 (REG_CLASS_CONTENTS): Likewise.
2641 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
2642 without decls.
2643
ccb3ad87
RB
26442013-05-15 Richard Biener <rguenther@suse.de>
2645
2646 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
2647 of MSG_OPTIMIZED_LOCATIONS.
2648 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
2649 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
2650 message.
2651 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
2652 of MSG_OPTIMIZED_LOCATIONS.
2653 (execute_vect_slp): Likewise.
2654 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
2655 (vect_create_cond_for_alias_checks): Likewise.
2656 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
2657 (vect_recog_widen_mult_pattern): Likewise.
2658 (vect_recog_widen_sum_pattern): Likewise.
2659 (vect_recog_over_widening_pattern): Likewise.
2660 (vect_recog_widen_shift_pattern): Likewise.
2661 (vect_recog_vector_vector_shift_pattern): Likewise.
2662 (vect_recog_divmod_pattern): Likewise.
2663 (vect_recog_mixed_size_cond_pattern): Likewise.
2664 (vect_recog_bool_pattern): Likewise.
2665 (vect_pattern_recog_1): Likewise.
2666
48b1474e
MJ
26672013-05-15 Martin Jambor <mjambor@suse.cz>
2668
2669 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
2670 non-functions to builtin_unreachable.
2671 * ipa-inline-transform.c (inline_call): Do not assert estimates were
2672 correct when new direct edges were discovered.
2673
9de04252
MJ
26742013-05-15 Martin Jambor <mjambor@suse.cz>
2675
2676 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
2677 header, print symbol order instead of node uid, print more information
2678 about indirect edge targets.
2679 (ipa_make_edge_direct_to_target): Print symbol order instead of node
2680 uids.
2681 (ipa_make_edge_direct_to_target): Likewise.
2682 (remove_described_reference): Likewise.
2683 (propagate_controlled_uses): Likewise.
2684 (ipa_print_node_params): Also print symbol order.
2685 (ipcp_transform_function): Print symbol order instead of node uids.
2686 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
2687 (cgraph_get_create_real_symbol_node): Likewise.
2688 * ipa-cp.c (print_lattice): Likewise.
2689 (print_all_lattices): Likewise.
2690 (determine_versionability): Likewise.
2691 (initialize_node_lattices): Likewise.
2692 (estimate_local_effects): Likewise.
2693 (update_profiling_info): Likewise.
2694 (create_specialized_node): Likewise.
2695 (perhaps_add_new_callers): Likewise.
2696 (decide_about_value): Likewise.
2697 (decide_whether_version_node): Likewise.
2698 (identify_dead_nodes): Likewise.
2699 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
2700 (dump_inline_summary): Likewise.
2701 (estimate_node_size_and_time): Likewise.
2702 (inline_analyze_function): Likewise.
2703 * ipa-inline.c (report_inline_failed_reason): Likewise.
2704 (want_early_inline_function_p): Likewise.
2705 (edge_badness): Likewise.
2706 (update_edge_key): Likewise.
2707 (inline_small_functions): Likewise. Add dumping of order to two other
2708 dumps.
2709 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
2710 instead of node uids.
2711 (propagate_pure_const): Likewise.
2712 (propagate_pure_const): Likewise.
2713 * ipa-utils.c (dump_cgraph_node_set): Likewise.
2714 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
2715 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
2716 of node uids.
2717 * tree-pretty-print.c (dump_function_header): Likewise.
2718 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
2719 Print symbol order instead of node uids.
2720
1dd03b91
AK
27212013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2722
2723 * config/s390/s390.c (s390_register_move_cost): Don't impose the
2724 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
2725
fdf6a7b9
RB
27262013-05-15 Richard Biener <rguenther@suse.de>
2727
2728 PR tree-optimization/57275
2729 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
2730 return value for fail to do runtime alias checks for gather loads.
2731
2d6e4603
JH
27322013-05-15 Jan Hubicka <jh@suse.cz>
2733
2734 PR lto/57038
2735 PR lto/47375
e7208ea3
UB
2736 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
2737 weakrefs are not external.
2738 (lto_symtab_merge_decls): Fix thinko when dealing with
2739 non-lto_symtab decls.
2d6e4603
JH
2740 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
2741 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
2742 * varpool.c (dump_varpool_node): Dump more flags.
2743
83f44b39
GG
27442013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2745
2746 * config/i386/i386.c (processor_alias_table): Add instruction
2747 FSGSBASE for AMD bdver3 architecture.
2748
2e55d062
JJ
27492013-05-14 Jakub Jelinek <jakub@redhat.com>
2750
2751 * tree.c (warn_deprecated_use): Print file:line using locus color.
2752 * diagnostic.c (diagnostic_report_current_module): Print file:line
2753 and file:line:column using locus color.
2754
0bfdb81e
MS
27552013-05-14 Mike Stump <mikestump@comcast.net>
2756
2757 * gdbinit.in: Add __null.
2758
a508ef22
MS
27592013-05-14 Mike Stump <mikestump@comcast.net>
2760
2761 * recog.h: Rename struct recog_data to Recog_data.
2762 * recog.c: Likewise.
2763 * reload.c (can_reload_into): Likewise.
2764 * config/picochip/picochip.c: Likewise.
2765
e7180acb
MS
27662013-05-14 Mike Stump <mikestump@comcast.net>
2767
2768 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
2769
61216c26
SB
27702013-05-14 Steven Bosscher <steven@gcc.gnu.org>
2771
fd6beed4
SB
2772 * resource.h (struct resources): Remove unch_memory member.
2773 (CLEAR_RESOURCE): Don't clear unch_memory.
2774 * resource.c (mark_referenced_resources): Don't set it.
2775 (mark_set_resources): Likewise.
2776 (mark_target_live_regs): Don't clear it.
2777 (init_resource_info): Likewise.
2778 * reorg.c (resource_conflicts_p): Don't compare it.
2779 (redundant_insn): Don't set it.
2780
61216c26
SB
2781 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
2782 Remove prototypes.
2783 * emit-rtl.c (next_label): Remove unused function.
2784 (skip_consecutive_labels, link_cc0_insns): Move to ...
2785 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
2786 only place where these functions are used, and make them static.
2787
418d1b87
MG
27882013-05-14 Marc Glisse <marc.glisse@inria.fr>
2789
2790 * fold-const.c (fold_negate_expr): Handle vectors.
2791 (fold_truth_not_expr): Make it static.
2792 (fold_invert_truthvalue): New static function.
2793 (invert_truthvalue_loc): Handle vectors. Do not call
2794 fold_truth_not_expr directly.
2795 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
2796 <TRUTH_NOT_EXPR>: Do not cast to boolean.
2797 (fold_comparison): Handle vector constants.
2798 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
2799 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
2800 * tree.h (fold_truth_not_expr): Remove declaration.
2801
fc21784d
JG
28022013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
2803
2804 * config/aarch64/aarch64-simd.md
2805 (aarch64_vcond_internal<mode>): Rename to...
2806 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
2807 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
2808 float modes. Clarify all iterator modes.
2809 (vcond<mode><mode>): Use new name for vcond expanders.
2810 (vcond<v_cmp_result><mode>): Likewise.
2811 (vcondu<mode><mode>: Likewise.
2812 * config/aarch64/iterators.md (VDQF_COND): New.
2813
d4c52634
MG
28142013-05-14 Marc Glisse <marc.glisse@inria.fr>
2815
2816 PR bootstrap/57266
2817 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
2818 variable for the shift amount. Check that we shift by non-negative
2819 amounts.
2820
2b261262
CLT
28212013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
2822
2823 PR target/42017
2824 * config/arm/arm.h (EPILOGUE_USES): Only return true
2825 for LR_REGNUM after epilogue_completed.
2826
6e022d7b
JR
28272013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
2828
2829 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 2830 is error_mark_node.
6e022d7b 2831
56cf7859
RO
28322013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2833
2834 PR target/57261
2835 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
2836 and Solaris 11+/x86 with gld.
2837 * configure: Regenerate.
2838
75776c6d
JJ
28392013-05-14 Jakub Jelinek <jakub@redhat.com>
2840
2841 * expmed.c (expand_shift_1): Canonicalize rotates by
2842 constant bitsize / 2 to bitsize - 1.
7f998021 2843 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
2844 case ROTATERT>: Likewise.
2845
2846 Revert:
2847 2013-05-10 Jakub Jelinek <jakub@redhat.com>
2848
2849 * config/i386/i386.md (rotateinv): New code attr.
2850 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
2851 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
2852 roll $31, %eax, etc.
2853
df35498a
RB
28542013-05-14 Richard Biener <rguenther@suse.de>
2855
2856 PR middle-end/57235
2857 * tree-eh.c (sink_clobbers): Give up for successors with
2858 multiple predecessors and no virtual uses.
2859
cc6e7ece
EB
28602013-05-14 Eric Botcazou <ebotcazou@adacore.com>
2861
2862 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
2863 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
2864
f778dd4d
JJ
28652013-05-14 Jakub Jelinek <jakub@redhat.com>
2866
2867 PR middle-end/57251
2868 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
2869 the case when both op0 and op1 have VOIDmode.
2870
bad4df9b
KP
28712013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
2872
2873 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
2874 in multiply-accumulate mode.
2875
56f3e9ac
GW
28762013-05-13 Guozhi Wei <carrot@google.com>
2877
2878 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
2879
a3d7ab92
KT
28802013-05-13 Kai Tietz <ktietz@redhat.com>
2881
2882 PR target/56975
2883 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 2884 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 2885 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 2886 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
2887 (ix86_expand_prologue): Likewise.
2888 (ix86_expand_split_stack_prologue): Likewise.
2889 (legitimate_pic_address_disp_p): Likewise.
2890 (legitimize_pic_address): Likewise.
2891 (legitimize_tls_address): Likewise.
2892 (legitimize_pe_coff_symbol): Likewise.
2893 (output_pic_addr_const): Likewise.
2894 (construct_plt_address): Likewise.
2895 (ix86_expand_call): Likewise.
2896 (x86_output_mi_thunk): Likewise.
2897 (x86_function_profiler): Likewise.
2898
c59b7e28
SN
28992013-05-13 Sofiane Naci <sofiane.naci@arm.com>
2900
2901 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
2902 similar switch cases.
2903 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
2904 (aarch64_simd_mov_to_<mode>low): Delete.
2905 (aarch64_simd_mov_to_<mode>high): Delete.
2906 (move_lo_quad_<mode>): Add w<-r alternative.
2907 (aarch64_simd_move_hi_quad_<mode>): Likewise.
2908 (aarch64_simd_mov_from_*): Update type attribute.
2909 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
2910 statement.
2911
5f28524a
JH
29122013-05-13 Jan Hubicka <jh@suse.cz>
2913
2914 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
2915 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
2916 ix86_expand_epilogue, emit_i387_cw_initialization,
2917 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
2918 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 2919
ae6fa899
JJ
29202013-05-13 Jakub Jelinek <jakub@redhat.com>
2921
2922 PR tree-optimization/45216
2923 PR tree-optimization/57157
2924 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
2925 the (-Y) & (B - 1) variant if OP is |.
2926 * expmed.c (expand_shift_1): For rotations by const0_rtx just
2927 return shifted. Use (-op1) & (prec - 1) as other_amount
2928 instead of prec - op1.
2929
4502fe8d
MJ
29302013-05-13 Martin Jambor <mjambor@suse.cz>
2931
2932 PR middle-end/42371
2933 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
2934 (ipa_constant_data): New type.
2935 (ipa_jump_func): Use ipa_constant_data to hold information about
2936 constant jump functions.
2937 (ipa_get_jf_constant): Adjust to jump function type changes.
2938 (ipa_get_jf_constant_rdesc): New function.
2939 (ipa_param_descriptor): New field controlled_uses.
2940 (ipa_get_controlled_uses): New function.
2941 (ipa_set_controlled_uses): Likewise.
2942 * ipa-ref.h (ipa_find_reference): Declare.
2943 * ipa-prop.c (ipa_cst_ref_desc): New type.
2944 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
2945 changes.
2946 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
2947 New parameter cs. Adjust all callers.
2948 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
2949 (remove_described_reference): New function.
2950 (jfunc_rdesc_usable): Likewise.
2951 (try_make_edge_direct_simple_call): Decrement controlled use count,
2952 attempt to remove reference if it hits zero.
2953 (combine_controlled_uses_counters): New function.
2954 (propagate_controlled_uses): Likewise.
2955 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
2956 (ipa_edge_duplication_hook): Duplicate reference descriptions.
2957 (ipa_print_node_params): Print described use counter.
2958 (ipa_write_jump_function): Adjust to jump function type changes.
2959 (ipa_read_jump_function): New parameter CS, pass it to
2960 ipa_set_jf_constant. Adjust caller.
2961 (ipa_write_node_info): Stream controlled use count
2962 (ipa_read_node_info): Likewise.
2963 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
2964 asserting.
2965 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
2966 count. Remove cloning-added reference if it reaches zero.
2967 * ipa-ref.c (ipa_find_reference): New function.
2968
0864bfc2
GG
29692013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2970
e7208ea3 2971 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
2972 alignment values for AMD BD and BT architectures.
2973
640bfeb2
MG
29742013-05-13 Marc Glisse <marc.glisse@inria.fr>
2975
2976 * tree-vect-generic.c (uniform_vector_p): Move ...
2977 * tree.c (uniform_vector_p): ... here.
2978 * tree.h (uniform_vector_p): Declare it.
2979 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
2980 into a scalar.
2981
3a60f32b
JJ
29822013-05-13 Jakub Jelinek <jakub@redhat.com>
2983
198fe1bf
JJ
2984 PR tree-optimization/57230
2985 * tree-ssa-strlen.c (handle_char_store): Record length for
2986 array store from STRING_CST.
2987
3a60f32b
JJ
2988 PR tree-optimization/57230
2989 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
2990 check.
2991
566be57c
JR
29922013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
2993
2994 * config/epiphany/epiphany.c (epiphany_init): Check size of
2995 NUM_MODES_FOR_MODE_SWITCHING.
2996 (epiphany_expand_prologue):
2997 Remove CONFIG_REGNUM initial value handling code.
2998 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
2999 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 3000 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
3001 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
3002 Don't return 1 for FP_MODE_NONE.
3003 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
3004 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
3005 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
3006 * config/epiphany/epiphany.md (save_config): New pattern.
3007
0f2c2331
UB
30082013-05-12 Uros Bizjak <ubizjak@gmail.com>
3009
3010 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
3011
5b3f93c7
UB
30122013-05-10 Uros Bizjak <ubizjak@gmail.com>
3013
3014 * config/i386/i386.md (memory): Handle sseishft1.
3015 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
3016 (*vec_extractv2di_1): Ditto.
3017
1f873f0e
VM
30182013-05-10 Vladimir Makarov <vmakarov@redhat.com>
3019
3020 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
3021 saved registers.
3022
341427fa 30232013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
3024
3025 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
3026 Add mthumb/march=armv7-a multilib.
3027 Add mthumb/march=armv7-r multilib.
3028 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
3029
9e69bdde
RC
30302013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
3031
3032 * config/v850/t-rtems: Add more multilibs.
3033
9ff09a22
RB
30342013-05-10 Richard Biener <rguenther@suse.de>
3035
3036 PR tree-optimization/57214
3037 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
3038 not propagate from SSA names that occur in abnormal PHI nodes.
3039
a5e0cd1d
MG
30402013-05-10 Marc Glisse <marc.glisse@inria.fr>
3041
3042 * stor-layout.c (element_precision): New function.
3043 * machmode.h (element_precision): Declare it.
3044 * tree.c (build_minus_one_cst): New function.
3045 (element_precision): Likewise.
3046 * tree.h (build_minus_one_cst): Declare new function.
3047 (element_precision): Likewise.
3048 * fold-const.c (operand_equal_p): Use element_precision.
3049 (fold_binary_loc): Handle vector types.
3050 * convert.c (convert_to_integer): Use element_precision.
3051 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
3052 separately.
3053
cb2558bc
RS
30542013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
3055
3056 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
3057 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
3058 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
3059 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
3060 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
3061 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
3062 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
3063 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
3064 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
3065 (Uuw8): New constraints.
3066 (Usb4): Move into alphabetical order.
3067 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
3068 (sd8_operand, ub8_operand, uw8_operand): New predicates.
3069 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
3070 previously unnamed patterns.
3071 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
3072 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
3073 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
3074 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
3075 of set_attr_alternative/if_then_else. Use extended_mips16 instead
3076 of specific lengths.
3077
cb3b8d33
JJ
30782013-05-10 Jakub Jelinek <jakub@redhat.com>
3079
6f93c008
JJ
3080 * config/i386/i386.md (rotateinv): New code attr.
3081 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
3082 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
3083 roll $31, %eax, etc.
3084
cb3b8d33
JJ
3085 PR tree-optimization/45216
3086 PR tree-optimization/57157
3087 * tree-ssa-forwprop.c (simplify_rotate): New function.
3088 (ssa_forward_propagate_and_combine): Call it.
3089
afb119be
RB
30902013-05-10 Richard Biener <rguenther@suse.de>
3091
3092 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
3093 disable peeling when we version for aliasing.
3094 (vector_alignment_reachable_p): Honor explicit user alignment.
3095 (vect_supportable_dr_alignment): Likewise.
3096 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
3097 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
3098 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
3099 then peeling to arrange for the cost-model check to come first.
3100
01ae4861
AM
31012013-05-10 Alan Modra <amodra@gmail.com>
3102
3103 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
3104 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
3105 * configure: Regenerate.
3106
ebc9a431
AM
31072013-05-10 Alan Modra <amodra@gmail.com>
3108
3109 PR target/55033
3110 * varasm.c (default_elf_select_section): Move !DECL_P check..
3111 (get_named_section): ..to here before calling get_section_name.
3112 Adjust assertion.
3113 (default_section_type_flags): Add DECL_P check.
3114 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
3115 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
3116
d4bca93c
JR
31172013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
3118
3119 * config/epiphany/epiphany.c (epiphany_expand_prologue):
3120 When using gen_stack_adjust_str with a register offset, add a
3121 REG_FRAME_RELATED_EXPR note.
3122
60ca9a65
UB
31232013-05-09 Uros Bizjak <ubizjak@gmail.com>
3124
3125 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
3126 (*vec_extractv4si_zext_mem): Ditto.
3127 (*vec_extractv2di): Add 0->x and x->x alternatives.
3128 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
3129 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
3130
a3409c02
JM
31312013-05-09 Jason Merrill <jason@redhat.com>
3132
0138d6b2
JM
3133 N3639 C++1y VLA support
3134 * gimplify.c (gimplify_vla_decl): Don't touch an existing
3135 DECL_VALUE_EXPR.
3136
a3409c02
JM
3137 * tree.c (build_constructor_va): New.
3138 * tree.h: Declare it.
3139
66e6b990
MJ
31402013-05-09 Martin Jambor <mjambor@suse.cz>
3141
3142 PR lto/57084
3143 * gimple-fold.c (canonicalize_constructor_val): Call
3144 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
3145
64cfa6c0
JH
31462013-05-09 Jan Hubicka <jh@suse.cz>
3147 Richard Biener <rguenther@suse.de>
3148
3149 PR lto/54095
3150 * symtab.c (symtab_make_decl_local): Do not add private names.
3151
c3167b00
JH
31522013-05-09 Jan Hubicka <jh@suse.cz>
3153
3154 PR lto/54095
3155 * symtab.c (insert_to_assembler_name_hash): Handle clones.
3156 (unlink_from_assembler_name_hash): Likewise.
3157 (symtab_prevail_in_asm_name_hash, symtab_register_node,
3158 symtab_unregister_node, symtab_initialize_asm_name_hash,
3159 change_decl_assembler_name): Update.
3160
12dc6974
SN
31612013-05-09 Sofiane Naci <sofiane.naci@arm.com>
3162
3163 * config/aarch64/aarch64.md: New movtf split.
3164 (*movtf_aarch64): Update.
3165 (aarch64_movdi_tilow): Handle TF modes and rename to
3166 aarch64_movdi_<mode>low.
3167 (aarch64_movdi_tihigh): Handle TF modes and rename to
3168 aarch64_movdi_<mode>high
3169 (aarch64_movtihigh_di): Handle TF modes and rename to
3170 aarch64_mov<mode>high_di
3171 (aarch64_movtilow_di): Handle TF modes and rename to
3172 aarch64_mov<mode>low_di
3173 (aarch64_movtilow_tilow): Remove spurious whitespace.
3174 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
3175 splits.
3176 (aarch64_print_operand): Update.
3177
227eb343
AM
31782013-05-09 Alan Modra <amodra@gmail.com>
3179
3180 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
3181 powerpc64le.
3182 * configure: Regenerate.
3183
0b013847
UB
31842013-05-08 Uros Bizjak <ubizjak@gmail.com>
3185
3186 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
3187 splitter preparation statements.
3188 * config/i386/sse.md (*vec_extract* splitters): Ditto.
3189 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
3190 adjust_address_nv.
3191
1dc3d6e9
BS
31922013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3193
3194 * gimple-ssa-strength-reduction.c (count_candidates): Change
3195 return value to int.
3196 (analyze_candidates_and_replace): Change type of length to int.
3197
e61e7d28
UB
31982013-05-08 Uros Bizjak <ubizjak@gmail.com>
3199
3200 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
3201 (*vec_extract<mode>): Use VI12_128 mode iterator.
3202 (*vec_extract<mode>_mem): Ditto.
3203 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
3204 attribute.
3205
4fbfcf44
DN
32062013-05-08 Diego Novillo <dnovillo@google.com>
3207
3208 PR bootstrap/54659
3209
3210 Revert:
4fbfcf44
DN
3211 2012-08-17 Diego Novillo <dnovillo@google.com>
3212
e61e7d28
UB
3213 PR bootstrap/54281
3214 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
3215 * config.in: Regenerate.
3216 * configure: Regenerate.
3217 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 3218
702d8703
JH
32192013-05-08 Jan Hubicka <jh@suse.cz>
3220
3221 PR lto/54095
3222 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
3223 * cgraph.h (symtab_node_base): Add unique_name.
3224 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
3225 input_overwrite_node, input_varpool_node): Stream unique_name.
3226 * cgraphclones.c (cgraph_create_virtual_clone,
3227 cgraph_function_versioning): Set unique_name.
3228 * ipa.c (function_and_variable_visibility): Set unique_name.
3229
8b28cf47
BS
32302013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3231
3232 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
3233 (alloc_cand_and_find_basis): Restrict conditional candidate
3234 processing to CAND_MULTs.
3235
e86074fd
JH
32362013-05-08 Jan Hubicka <jh@suse.cz>
3237
3238 PR lto/54095
3239 lto-symtab.c (lto_symtab_symbol_p): New function.
3240 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
3241 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
3242 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
3243 Skip static symbols.
3244
44398cbe
PC
32452013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
3246
3247 PR tree-optimization/57200
3248 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
3249 Only call inform if the preceding warning_at returns true.
3250
f6bc1c4a
HS
32512013-05-07 Han Shen <shenhan@google.com>
3252
3253 * cfgexpand.c (record_or_union_type_has_array_p): New function.
3254 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
3255 * common.opt (fstack-protector-strong): New option.
3256 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
3257 * doc/invoke.texi (Optimization Options): Document
3258 "-fstack-protector-strong".
3259 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
3260
4ffecb1f
SB
32612013-05-06 Steven Bosscher <steven@gcc.gnu.org>
3262
3263 * config/mips/mips.c (mips_machine_reorg2): Return 0.
3264
5a107a0f
VM
32652013-05-07 Vladimir Makarov <vmakarov@redhat.com>
3266
3267 * ira.c (update_equiv_regs): Add insn having equiv memory even if
3268 it is not lhs of the insn.
3269 (setup_reg_equiv): Remove insn having equiv memory which it is not
3270 lhs of the insn.
3271 * lra-constraints.c (process_address): Try to improve generation
3272 code for address base + disp.
3273 (lra_constraints): Make correct the code for checking insn setting
3274 up backward equivalence. Remove insn only if it is in the init
3275 insn list.
3276 * lra-eliminations.c (update_reg_eliminate): Change return value.
3277 (lra_eliminate): Use the result.
3278
3f5783ea
UB
32792013-05-07 Uros Bizjak <ubizjak@gmail.com>
3280
3281 * config/i386/sse.md (ssescalarnummask): New mode attribute.
3282 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
3283 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
3284 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
3285 register target operands.
3286 (*vec_extractv8hi_sse2): New pattern.
3287 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
3288 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
3289 (*vec_extract<mode>_mem): New insn and split pattern.
3290
8a5800b8
CL
32912013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
3292
3293 * config/arm/arm.c (arm_asan_shadow_offset): New function.
3294 (TARGET_ASAN_SHADOW_OFFSET): Define.
3295 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
3296 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
3297
7bf55a70
BS
32982013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3299
3300 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
3301 (incr_vec_index): Return -1 if increment not found.
3302 (create_add_on_incoming_edge): Assert if increment not found.
3303 (record_increment): Limit number of increments recorded.
3304 (all_phi_incrs_profitable): Return false if an increment not found.
3305 (replace_profitable_candidates): Don't process increments that were
3306 not recorded.
3307 (analyze_candidates_and_replace): Limit size of incr_vec.
3308
3f8825c0
RB
33092013-05-07 Richard Biener <rguenther@suse.de>
3310
3311 * calls.c (special_function_p): setjmp-like functions are leaf.
3312 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
3313 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
3314
fd4842cd
SN
33152013-05-07 Sofiane Naci <sofiane.naci@arm.com>
3316
3317 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
3318 (aarch64_simd_mov<mode>): New expander.
3319 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
3320 (aarch64_simd_mov_to_<mode>high): Likewise.
3321 (aarch64_simd_mov_from_<mode>low): Likewise.
3322 (aarch64_simd_mov_from_<mode>high): Likewise.
3323 (aarch64_dup_lane<mode>): Update.
3324 (aarch64_dup_lanedi): New instruction pattern.
3325 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
3326 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
3327
a7a7d10e
BS
33282013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3329
3330 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
3331 (replace_mult_candidate): Remove unnecessary argument; remove
3332 unnecessary parameter from call to introduce_cast_before_cand.
3333 (replace_unconditional_candidate): Remove unnecessary parameter
3334 from call to replace_mult_candidate.
3335 (replace_conditional_candidate): Likewise.
3336 (insert_initializers): Use make_temp_ssa_name.
3337 (introduce_cast_before_cand): Remove unnecessary argument; use
3338 make_temp_ssa_name.
3339 (replace_one_candidate): Remove unnecessary argument; remove
3340 unnecessary parameter from calls to introduce_cast_before_cand.
3341 (replace_profitable_candidates): Remove unnecessary parameters
3342 from calls to replace_one_candidate.
3343
29105868
BS
33442013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3345
3346 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
3347 phi def as possibly hiding a basis for a CAND_ADD whose operands
3348 have been commuted in the analysis.
3349 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
3350
4095f9fa
N
33512013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
3352
3353 * config/aarch64/aarch64.md
3354 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
3355 shift value between 0-4.
3356
39e843e8
RB
33572013-05-07 Richard Biener <rguenther@suse.de>
3358
3359 * double-int.h (rshift): New overload.
3360 * double-int.c (rshift): New function.
3361 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
3362 (create_reference_ops_from_ref): Remove.
3363 (vn_reference_insert): Use shared ops for constructing the
3364 reference and copy it.
3365
0a1a83cb
RB
33662013-05-07 Richard Biener <rguenther@suse.de>
3367
3368 PR middle-end/57190
3369 * tree-eh.c (sink_clobbers): Properly propagate
3370 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
3371
43303d6f
JJ
33722013-05-07 Jakub Jelinek <jakub@redhat.com>
3373
ba7e83f8
JJ
3374 PR tree-optimization/57149
3375 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
3376 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
3377 collect_phi_def_edges, execute_late_warn_uninitialized): Use
3378 uninit_undefined_value_p instead of ssa_undefined_value_p.
3379
43303d6f
JJ
3380 PR debug/57184
3381 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
3382 for modifier == EXPAND_INITIALIZER.
3383
14523c25
AB
33842013-05-07 Anton Blanchard <anton@samba.org>
3385
3386 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
3387 for powerpc64 little endian.
3388 * configure: Regenerate.
3389
cb7c8be9
GS
33902013-05-06 Graham Stott <grahams@btinternet.com>
3391
3392 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
3393 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
3394 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
3395 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
3396
33972013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
3398
3399 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
3400 codes which allow non-lvalues.
3401
9a0ee7b0
MG
34022013-05-06 Marc Glisse <marc.glisse@inria.fr>
3403
3404 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
3405 components are all 1s.
3406 (integer_minus_onep): New function.
3407 * tree.h (integer_minus_onep): Declare it.
3408 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
3409 integer_minus_onep instead of integer_all_onesp.
3410
f2c17ea9
OE
34112013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3412
3413 PR target/52933
3414 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
3415 variations of these patterns.
3416
f75e6a51
UB
34172013-05-06 Uros Bizjak <ubizjak@gmail.com>
3418
3419 * config/i386/i386.md (isa): Add x64_sse4 member.
3420 (enabled): Handle x64_sse4.
3421 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
3422 instruction for 64bit SSE4_1 targets. Update insn attributes.
3423 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
3424 instruction for SSE4_1 targets. Update insn attributes.
3425 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
3426 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
3427 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
3428 const_1 selector.
3429 (*vec_extractv4si): Rename from *sse4_1_pextrd.
3430 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
3431 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
3432
a986d468
OE
34332013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3434
3435 PR target/57108
3436 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
3437
382522cb
MK
34382013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
3439
3440 * final.c (do_assembler_dialects): Don't handle curly braces and
3441 vertical bar escaped by % as dialect delimiters.
3442 (output_asm_insn): Print curly braces and vertical bar if escaped
3443 by % and ASSEMBLER_DIALECT defined.
3444 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
3445 * doc/tm.texi: Regenerated.
3446
fb0d5c60
SB
34472013-05-06 Steven Bosscher <steven@gcc.gnu.org>
3448
fb0d5c60
SB
3449 * config/mips/mips.c: Include tree-pass.h.
3450 (mips_reorg): Split in pre- and post-dbr_schedule parts.
3451 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
3452 (pass_mips_machine_reorg2): New machine specific pass.
3453 (insert_pass_mips_machine_reorg2): New pass plugin definition.
3454 (mips_option_override): Register the new pass.
3455 * rtl.h (cleanup_barriers): Remove prototype.
3456 (dbr_schedule): Likewise.
3457 * jump.c (cleanup_barriers): Make static.
3458 * reorg.c (dbr_schedule): Likewise.
3459
aa06a978
RB
34602013-05-06 Richard Biener <rguenther@suse.de>
3461
3462 PR tree-optimization/57185
3463 * tree-parloops.c (add_field_for_reduction): Handle anonymous
3464 SSA names properly.
3465
0b953bec
UB
34662013-05-06 Uros Bizjak <ubizjak@gmail.com>
3467
3468 PR target/57106
3469 * config/i386/i386.c (add_parameter_dependencies): Add dependence
3470 between "first_arg" and "insn", not "last" and "insn".
3471
28708525
WS
34722013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3473
3474 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
3475 (find_candidates_in_block): Re-enable slsr_process_phi.
3476 (create_phi_basis): Fix double counting of candidate adjustment.
3477
0107dca2
RB
34782013-05-06 Richard Biener <rguenther@suse.de>
3479
3480 PR middle-end/57147
3481 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
3482 the edge is also fallthru, preserve it and just clear the
3483 abnormal flag.
3484 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
3485 also complex, preserve that and just clear the fallthru flag.
3486 * tree-inline.c (update_ssa_across_abnormal_edges): Also
3487 update virtual operands.
3488
470d4d13
AM
34892013-05-06 Alan Modra <amodra@gmail.com>
3490
3491 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
3492 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
3493 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
3494 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
3495 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
3496 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
3497
8f1dbf8d
AM
34982013-05-06 Alan Modra <amodra@gmail.com>
3499
3500 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
3501 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
3502 (DEFAULT_ASM_ENDIAN): Define.
3503 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
3504 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
3505 Update -K PIC clause from sysv4.h.
3506 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
3507 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
3508
54890767
AM
35092013-05-06 Alan Modra <amodra@gmail.com>
3510
3511 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
3512 twice for little-endian.
3513 (ashrdi3_no_power, ashrdi3): Support little-endian.
3514
2353515d
OE
35152013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3516
3517 PR target/55303
3518 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
3519 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
3520 related expanders.
3521 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
3522 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
3523 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
3524 New predicates.
3525
33e67557
SB
35262013-05-05 Steven Bosscher <steven@gcc.gnu.org>
3527 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3528
3529 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
3530 * config/pa/pa.opt: Make mbig-switch a no-op.
3531 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
3532 (CASE_VECTOR_MODE): Always return SImode.
3533 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
3534 for the !TARGET_BIG_SWITCH case.
3535 * config/pa/pa-linux.h: Likewise.
3536 * config/pa/pa-openbsd.h: Likewise.
3537 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
3538 * config/pa/pa.md (short_jump): Remove define_insn.
3539 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
3540 (casesi0): Remove define_insn.
3541 (type): Remove btable_branch.
3542 (pa_combine_type): Likewise.
3543 (in_nullified_branch_delay): Likewise.
3544 (in_call_delay): Likewise.
3545 (define_delay): Likewise.
3546 (define_insn_reservation "Z3"): Likewise.
3547 (define_insn_reservation "Z4"): Likewise.
3548 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
3549 (pa_adjust_insn_length): Remove adjustment for btable branches.
3550 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
3551 and mno-big-switch
3552
3095685e
UB
35532013-05-05 Uros Bizjak <ubizjak@gmail.com>
3554
3555 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
3556 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
3557 Add m->r,x alternatives.
3558 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
3559 splitters using SWI48x mode iterator.
3560 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
3561 TARGET_64BIT. Add m->x alternative.
3562 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
3563 Add o->x alternative. Enable for TARGET_SSE.
3564 (sse_storeq): Remove expander.
3565 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
3566 with memory input operand.
3567 (*vec_extractv2di_1 splitter): New.
3568 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
3569 * config/i386/i386.md (ssevecmodelower): New mode attribute.
3570
4b36ae28
SB
35712013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
3572
3573 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
3574 (INT_LOWPART): Delete.
3575 (extract_MB): Adjust.
3576 (extract_ME): Adjust.
3577 (print_operand): Adjust.
3578
da226db2
SB
35792013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
3580
3581 * config/rs6000/predicates.md (reg_or_add_cint_operand,
3582 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
3583 (reg_or_logical_cint_operand, easy_fp_constant,
3584 logical_const_operand): Delete "CONST_DOUBLE" case.
3585 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
3586 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 3587 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
3588 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
3589 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
3590 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
3591 test.
3592 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
3593 CONST_DOUBLE DImode/VOIDmode case.
3594 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
3595 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
3596 CONST_DOUBLE VOIDmode case.
3597 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
3598 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
3599 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
3600 Delete CONST_DOUBLE case.
3601 (splitters for mov FMOVE64 const_double): Delete
3602 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
3603 "HOST_BITS_PER_WIDE_INT >= 64" test.
3604 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
3605 case.
3606 (mov DI const_double): Delete.
3607
40de22d6
JJ
36082013-05-04 Jakub Jelinek <jakub@redhat.com>
3609
3610 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
3611 on op shows all bits zero in mode of a lowpart subreg, return zero.
3612
5ec6aff2
MM
36132013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
3614
3615 PR target/57150
3616 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
3617 to save TFmode registers and DImode to save TImode registers for
3618 caller save operations.
3619 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
3620 mark being partially clobbered since they only use the first
3621 double word.
3622
3623 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
3624 and TDmode only use the upper 64-bits of each VSX register.
3625
2cefad90
BS
36262013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3627
3628 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
3629 (find_candidates_in_block): Disable slsr_process_phi.
3630
d6d7eee1
GW
36312013-05-03 Guozhi Wei <carrot@google.com>
3632
3633 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
3634 constructor to ...
3635 (build_init_ctor): ... here.
d6d7eee1 3636
9b92d12b
BS
36372013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3638
3639 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
3640 (slsr_cand_d): Redefine def_phi.
3641 (stride_status, phi_adjust_status, count_phis_status): New enums.
3642 (find_phi_def): New.
3643 (find_basis_for_base_expr): New.
3644 (find_basis_for_candidate): Handle hidden bases.
3645 (alloc_cand_and_find_basis): Handle phi candidates.
3646 (slsr_process_phi): New.
3647 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
3648 (create_mul_imm_cand): Likewise.
3649 (create_add_ssa_cand): Exclude phi base candidates.
3650 (create_add_imm_cand): Likewise.
3651 (slsr_process_cast): Likewise.
3652 (slsr_process_copy): Likewise.
3653 (find_candidates_in_block): Handle phi candidates.
3654 (dump_candidate): Likewise.
3655 (unconditional_cands): Delete.
3656 (unconditional_cands_with_known_stride_p): Delete.
3657 (phi_dependent_cand_p): New.
3658 (cand_increment): Handle phi-dependent candidates.
3659 (replace_dependent): Delete.
3660 (replace_mult_candidate): New.
3661 (replace_unconditional_candidate): New.
3662 (incr_vec_index): Move to avoid forward reference.
3663 (create_add_on_incoming_edge): New.
3664 (create_phi_basis): New.
3665 (replace_dependents): Delete.
3666 (replace_conditional_candidate): New.
3667 (phi_add_costs): New.
3668 (replace_uncond_cands_and_profitable_phis): New.
3669 (record_increment): Handle phi adjustments.
3670 (record_phi_increments): New.
3671 (record_increments): Handle phi adjustments.
3672 (phi_incr_cost): New.
3673 (lowest_cost_path): Handle phis.
3674 (total_savings): Likewise.
3675 (analyze_increments): Likewise.
3676 (ncd_with_phi): New.
3677 (ncd_of_cand_and_phis): New.
3678 (nearest_common_dominator_for_cands): Handle phi increments.
3679 (all_phi_incrs_profitable): New.
3680 (replace_profitable_candidates): Handle phi-dependent candidates.
3681 (analyze_candidates_and_replace): Likewise.
3682
68f073d4
TJ
36832013-05-03 Teresa Johnson <tejohnson@google.com>
3684
3685 PR bootstrap/57154
3686 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
3687 do not exceed REG_BR_PROB_BASE.
3688
a4ee7cb9
JL
36892013-05-03 Jeff Law <law@redhat.com>
3690
ade67f70 3691 PR tree-optimization/57144
a4ee7cb9
JL
3692 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
3693 operand of the condition will bit into the new type when eliminating
3694 a cast feeding a condition.
3695
47954c4e
JJ
36962013-05-03 Jakub Jelinek <jakub@redhat.com>
3697
3698 PR rtl-optimization/57130
3095685e
UB
3699 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
3700 of COMPARE as in_code to the recursive call if needed.
47954c4e 3701
3c21604f
UB
37022013-05-03 Uros Bizjak <ubizjak@gmail.com>
3703
3704 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
3705 (enabled): Handle new members.
3706 * config/i386/sse.md (*vec_concatv2si): Merge from
3707 *vec_concatv2si_sse2 and vec_concatv2si_sse.
3708 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
3709
95c03b36
JR
37102013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
3711
3712 PR tree-optimization/57027
3713 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
3714 for fnms opportunity, check we got the prerequisite kind
3715 of tree / gimple before using accessor functions.
3716
07bfc9ec
RB
37172013-05-03 Richard Biener <rguenther@suse.de>
3718
3719 * double-int.h (lshift): New overload without precision
3720 and arith argument.
3721 (operator *=, operator +=, operator -=): Move ...
3722 * double-int.c (operator *=, operator +=, operator -=): ... here
3723 and implement more efficiently.
3724 (mul_double_with_sign): Remove.
3725 (lshift_double): Adjust to take unsinged shift argument, push
3726 dispatching code to callers.
3727 (mul_double_wide_with_sign): Add early out for callers that
3728 are not interested in high parts or overflow.
3729 (lshift): New function.
3730 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
3731 dispatch code here.
3732 (lrotate, rrotate): Use logical shifts.
3733 * expr.c (get_inner_reference): Use lshift.
3734 * fixed-value.c (do_fixed_divide): Likewise.
3735 * tree-dfa.c (get_ref_base_and_extent): Likewise.
3736 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
3737 (indirect_refs_may_alias_p): Likewise.
3738 (stmt_kills_ref_p_1): Likewise.
3739
7769bb64
VP
37402013-05-03 Vidya Praveen <vidyapraveen@arm.com>
3741
3742 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
3743
1d0c8e5c
VP
37442013-05-03 Vidya Praveen <vidyapraveen@arm.com>
3745
3746 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
3747 scalar form of FABD instruction.
3748
f15feaf9
VM
37492013-05-02 Vladimir Makarov <vmakarov@redhat.com>
3750
3751 * lra-constraints.c (process_alt_operands): Add checking alt
3752 number to choose the best alternative.
3753
d90e76d4
RB
37542013-05-02 Richard Biener <rguenther@suse.de>
3755
3756 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
3757 bitmap and its handling.
3758 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
3759
9f8e7a96
RB
37602013-05-02 Richard Biener <rguenther@suse.de>
3761
3762 PR middle-end/57140
3763 * tree-inline.c (copy_loops): Properly handle removed loops.
3764 (copy_cfg_body): Mark destination loops for fixup if source
3765 loops needed fixup.
3766
f3a81b39
GY
37672013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
3768
3769 PR target/56732
3770 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
3771 generating simple_return for naked functions.
3772
7b920a9a
MJ
37732013-05-02 Martin Jambor <mjambor@suse.cz>
3774
3775 PR middle-end/56988
3776 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
3777 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
3778 flags match.
3779 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
3780 ipa_agg_replacement_value structures.
3781 (known_aggs_to_agg_replacement_list): Likewise.
3782 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
3783 (read_agg_replacement_chain): Likewise.
3784 (ipcp_transform_function): Also check that by_ref flags match.
3785
2c41c19d
RB
37862013-05-02 Richard Biener <rguenther@suse.de>
3787
3788 * graphds.h (struct graph): Add obstack member.
3789 * graphds.c (new_graph): Initialize obstack and allocate
3790 vertices from it.
3791 (add_edge): Allocate edge from the obstack.
3c21604f 3792 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 3793
8b47039c
TJ
37942013-05-02 Teresa Johnson <tejohnson@google.com>
3795
3796 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
3797 divides.
3798 * cfg.c (update_bb_profile_for_threading): Ditto.
3799 * tree-inline.c (copy_bb): Ditto.
3800 (copy_edges_for_bb): Ditto.
3801 (initialize_cfun): Ditto.
3802 (copy_cfg_body): Ditto.
3803 (expand_call_inline): Ditto.
3804 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
3805 (estimate_node_size_and_time): Ditto.
3806 (inline_merge_summary): Ditto.
3807 * cgraphclones.c (cgraph_clone_edge): Ditto.
3808 (cgraph_clone_node): Ditto.
3809 * sched-rgn.c (compute_dom_prob_ps): Ditto.
3810 (compute_trg_info): Ditto.
3811
da65928c
IB
38122013-05-02 Ian Bolton <ian.bolton@arm.com>
3813
3814 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
3815 S reg when fp attribute set.
3816 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
3817
add3c965
IB
38182013-05-02 Ian Bolton <ian.bolton@arm.com>
3819
3820 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
3821 New pattern.
3822 (*and_one_cmplsi3_compare0_uxtw): Likewise.
3823 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
3824 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
3825
fdd43ac4
RB
38262013-05-02 Richard Biener <rguenther@suse.de>
3827
3828 * tree-scalar-evolution.c (scev_info_hasher): Remove.
3829 (struct instantiate_cache_entry): New type.
3830 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
3831 (struct instantiate_cache_type): New type.
3832 (set_instantiated_value, get_instantiated_value): Remove.
3833 (get_instantiated_value_entry): New function.
3834 (instantiate_scev_name): Use the new cache and adjust.
3835 (instantiate_scev_poly): Adjust.
3836 (instantiate_scev_binary): Likewise.
3837 (instantiate_array_ref): Likewise.
3838 (instantiate_scev_convert): Likewise.
3839 (instantiate_scev_not): Likewise.
3840 (instantiate_scev_3): Likewise.
3841 (instantiate_scev_2): Likewise.
3842 (instantiate_scev_r): Likewise.
3843 (instantiate_scev): Likewise.
3844 (resolve_mixers): Likewise.
3845
36ff9dfb
VM
38462013-05-01 Vladimir Makarov <vmakarov@redhat.com>
3847
3848 PR target/57091
3849 * lra-constraints.c (best_small_class_operands_num): Remove.
3850 (process_alt_operands): Remove small_class_operands_num. Take
3851 small classes operands into losers and only if the operand is not
3852 matched. Modify debugging output.
3853 (curr_insn_transform): Remove best_small_class_operands_num.
3854 Print insn name.
3855
36054fab
JG
38562013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
3857
3858 * config/aarch64/aarch64-builtins.c
3859 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
3860 * config/aarch64/aarch64-simd-builtins.def
3861 (reduc_splus_): Add new modes.
3862 (reduc_uplus_): New.
3863 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
3864 (reduc_uplus_v4sf): Likewise.
3865 (reduc_splus_v4sf): Likewise.
3866 (aarch64_addv<mode>): Likewise.
3867 (reduc_uplus_<mode>): Likewise.
3868 (reduc_splus_<mode>): Likewise.
3869 (aarch64_addvv2di): Likewise.
3870 (reduc_uplus_v2di): Likewise.
3871 (reduc_splus_v2di): Likewise.
3872 (aarch64_addvv2si): Likewise.
3873 (reduc_uplus_v2si): Likewise.
3874 (reduc_splus_v2si): Likewise.
3875 (reduc_<sur>plus_<mode>): New.
3876 (reduc_<sur>plus_v2di): Likewise.
3877 (reduc_<sur>plus_v2si): Likewise.
3878 (reduc_<sur>plus_v4sf): Likewise.
3879 (aarch64_addpv4sf): Likewise.
3880 * config/aarch64/arm_neon.h
3881 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
3882 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
3883 add UNSPEC_SADDV, UNSPEC_UADDV.
3884 (SUADDV): New.
3885 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
3886
6dce23a8
JG
38872013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
3888
3889 * config/aarch64/arm_neon.h
3890 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
3891
1598945b
JG
38922013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
3893
3894 * config/aarch64/aarch64-builtins
3895 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
3896
998eaf97
JG
38972013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
3898
3899 * config/aarch64/aarch64-simd-builtins.def
3900 (reduc_smax_): New.
3901 (reduc_smin_): Likewise.
3902 (reduc_umax_): Likewise.
3903 (reduc_umin_): Likewise.
3904 (reduc_smax_nan_): Likewise.
3905 (reduc_smin_nan_): Likewise.
3906 (fmax): Remove.
3907 (fmin): Likewise.
3908 (smax): Update for V2SF, V4SF and V2DF modes.
3909 (smin): Likewise.
3910 (smax_nan): New.
3911 (smin_nan): Likewise.
3912 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
3913 (<su><maxmin><mode>3): ...This, refactor.
3914 (s<maxmin><mode>3): New.
3915 (<maxmin_uns><mode>3): Likewise.
3916 (reduc_<maxmin_uns>_<mode>): Refactor.
3917 (reduc_<maxmin_uns>_v4sf): Likewise.
3918 (reduc_<maxmin_uns>_v2si): Likewise.
3919 (aarch64_<fmaxmin><mode>: Remove.
3920 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
3921 new builtin names.
3922 (vmin<q>_f<32,64>): Likewise.
3923 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
3924 (FMAXMIN): New.
3925 (su): Add mappings for smax, smin, umax, umin.
3926 (maxmin): New.
3927 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
3928 (FMAXMIN): Rename as...
3929 (FMAXMIN_UNS): ...This.
3930 (maxminv): Remove.
3931 (fmaxminv): Likewise.
3932 (fmaxmin): Likewise.
3933 (maxmin_uns): New.
3934 (maxmin_uns_op): Likewise.
3935
bd11644e
JG
39362013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
3937
3938 * config/aarch64/arm_neon.h
3939 (vac<ge, gt><sd>_f<32, 64>): Rename to...
3940 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
3941 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
3942
75dd5ace
JG
39432013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
3944
3945 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
3946 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
3947
7c19979f
JG
39482013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
3949
3950 * config/aarch64/aarch64-simd.md
3951 (vcond<mode>_internal): Handle special cases for constant masks.
3952 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
3953 (vcondu<mode><mode>): Likewise.
3954 (vcond<v_cmp_result><mode>): New.
3955
bb60efd9
JG
39562013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
3957
3958 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
3959 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
3960 * config/aarch64/aarch64-simd-builtins.def
3961 (cmeq): Update to BUILTIN_VALLDI.
3962 (cmgt): Likewise.
3963 (cmge): Likewise.
3964 (cmle): Likewise.
3965 (cmlt): Likewise.
3966 * config/aarch64/arm_neon.h
3967 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
3968 to builtins or C as appropriate.
3969
889b9412
JG
39702013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
3971
3972 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
3973 (cmgeu): ...This.
3974 (cmhi): Rename to...
3975 (cmgtu): ...This.
3976 * config/aarch64/aarch64-simd.md
3977 (simd_mode): Add SF.
3978 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
3979 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
3980 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
3981 (cstore<mode>_neg): ...This.
3982 * config/aarch64/iterators.md
3983 (VALLF): new.
3984 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
3985 (COMPARISONS): New.
3986 (UCOMPARISONS): Likewise.
3987 (optab): Add missing comparisons.
3988 (n_optab): New.
3989 (cmp_1): Likewise.
3990 (cmp_2): Likewise.
3991 (CMP): Likewise.
3992 (cmp): Remove.
3993 (VCMP_S): Likewise.
3994 (VCMP_U): Likewise.
3995 (V_cmp_result): Add DF, SF modes.
3996 (v_cmp_result): Likewise.
3997 (v): Likewise.
3998 (vmtype): Likewise.
3999 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
4000
0a7dbb76
GY
40012013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
4002
4003 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
4004 define_insn to define_insn_and_split.
4005 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
4006 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
4007 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
4008 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
4009 (thumb2_negscc): Likewise.
4010
fb614ca6
GY
40112013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
4012
4013 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
4014
9e64a0bf
GY
40152013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
4016
4017 * config/arm/thumb2.md: Remove trailing whitespaces.
4018
d6b28156
RS
40192013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
4020
4021 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
4022 Use gen_int_mode rather than GEN_INT.
4023
f91674c3
L
40242013-04-30 H.J. Lu <hongjiu.lu@intel.com>
4025
b0dec607 4026 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
4027 debug_gimple_stmt.
4028
3551257c
RB
40292013-04-30 Richard Biener <rguenther@suse.de>
4030
4031 PR middle-end/57122
3c21604f 4032 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 4033
4c1aff1c
RB
40342013-04-30 Richard Biener <rguenther@suse.de>
4035
4036 PR middle-end/57107
4037 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
4038
54b8379a
AB
40392013-04-30 Andrey Belevantsev <abel@ispras.ru>
4040
4041 PR rtl-optimization/56957
4042 PR rtl-optimization/57105
54b8379a
AB
4043 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
4044 variable. Use just INSN_UID for determining whether an insn
4045 should be only disconnected from the insn stream.
4046 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
4047
abc27962
JJ
40482013-04-30 Jakub Jelinek <jakub@redhat.com>
4049
4050 PR tree-optimization/57104
4051 * tsan.c (instrument_expr): Don't instrument accesses to
4052 DECL_HARD_REGISTER VAR_DECLs.
4053
0fc822d0
RB
40542013-04-30 Richard Biener <rguenther@suse.de>
4055
4056 * function.h (loops_for_fn): New inline function.
4057 (set_loops_for_fn): Likewise.
4058 * cfgloop.h (place_new_loop): Add struct function parameter.
4059 (get_loop): Likewise.
4060 (get_loops): Likewise.
4061 (number_of_loops): Likewise.
4062 (fel_next): Adjust.
4063 (fel_init): Likewise.
4064 * cfg.c (get_loop_copy): Adjust.
4065 * cfgloop.c (flow_loops_dump): Likewise.
4066 (record_loop_exits): Likewise.
4067 (verify_loop_structure): Likewise.
4068 * cfgloopanal.c (mark_irreducible_loops): Likewise.
4069 (estimate_reg_pressure_cost): Likewise.
4070 (mark_loop_exit_edges): Likewise.
4071 * cfgloopmanip.c (place_new_loop): Likewise.
4072 (add_loop): Likewise.
4073 (duplicate_loop): Likewise.
4074 * graph.c (draw_cfg_nodes): Likewise.
4075 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
4076 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
4077 (extract_affine_chrec): Likewise.
4078 (build_scop_iteration_domain): Likewise.
4079 * graphite.c (graphite_initialize): Likewise.
4080 * ira-build.c (create_loop_tree_nodes): Likewise.
4081 (more_one_region_p): Likewise.
4082 (rebuild_regno_allocno_maps): Likewise.
4083 (mark_loops_for_removal): Likewise.
4084 (mark_all_loops_for_removal): Likewise.
4085 (remove_unnecessary_regions): Likewise.
4086 (ira_build): Likewise.
4087 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
4088 * loop-init.c (fix_loop_structure): Likewise.
4089 (gate_rtl_move_loop_invariants): Likewise.
4090 (gate_rtl_unswitch): Likewise.
4091 (gate_rtl_unroll_and_peel_loops): Likewise.
4092 (rtl_doloop): Likewise.
4093 * lto-streamer-in.c (input_cfg): Likewise.
4094 * lto-streamer-out.c (output_cfg): Likewise.
4095 * modulo-sched.c (sms_schedule): Likewise.
4096 * predict.c (tree_estimate_probability): Likewise.
4097 (tree_estimate_probability_driver): Likewise.
4098 (estimate_loops): Likewise.
4099 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
4100 (move_sese_region_to_fn): Likewise.
4101 (debug_loop_num): Likewise.
4102 * tree-chrec.c (chrec_evaluate): Likewise.
4103 (hide_evolution_in_other_loops_than_loop): Likewise.
4104 (chrec_component_in_loop_num): Likewise.
4105 (reset_evolution_in_loop): Likewise.
4106 (evolution_function_is_invariant_rec_p): Likewise.
4107 * tree-if-conv.c (main_tree_if_conversion): Likewise.
4108 * tree-inline.c (copy_loops): Likewise.
4109 (copy_cfg_body): Likewise.
4110 (tree_function_versioning): Likewise.
4111 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
4112 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
4113 Likewise.
4114 (add_to_evolution_1): Likewise.
4115 (scev_const_prop): Likewise.
4116 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
4117 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
4118 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
4119 (tree_ssa_lim_initialize): Likewise.
4120 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
4121 (verify_loop_closed_ssa): Likewise.
4122 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
4123 (tree_ssa_loop_im): Likewise.
4124 (tree_ssa_loop_unswitch): Likewise.
4125 (tree_vectorize): Likewise.
4126 (check_data_deps): Likewise.
4127 (tree_ssa_loop_ivcanon): Likewise.
4128 (tree_ssa_loop_bounds): Likewise.
4129 (tree_complete_unroll): Likewise.
4130 (tree_complete_unroll_inner): Likewise.
4131 (tree_parallelize_loops): Likewise.
4132 (tree_ssa_loop_prefetch): Likewise.
4133 (tree_ssa_loop_ivopts): Likewise.
4134 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
4135 * tree-vectorizer.c (vectorize_loops): Likewise.
4136
37953bd3
MF
41372013-04-29 Mike Frysinger <vapier@gentoo.org>
4138
4139 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
4140 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
4141 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
4142 with EABI_LINK_SPEC.
4143
f9ed28db
UB
41442013-04-29 Uros Bizjak <ubizjak@gmail.com>
4145
4146 PR target/44578
4147 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
4148 alternative.
4149
deca73f5
VM
41502013-04-29 Vladimir Makarov <vmakarov@redhat.com>
4151
4152 PR target/57097
37953bd3 4153 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
4154 using memory for pseudos. Print cost dump for alternatives.
4155 Modify cost values for conflicts with early clobbers.
4156 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
4157
fdca7d03
UB
41582013-04-29 Uros Bizjak <ubizjak@gmail.com>
4159
4160 PR target/57098
4161 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
4162
0b064172
IB
41632013-04-29 Ian Bolton <ian.bolton@arm.com>
4164
4165 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
4166 from/to S register.
4167 (movdi_aarch64): Support LDR/STR from/to D register.
4168
473cec55
IB
41692013-04-29 Ian Bolton <ian.bolton@arm.com>
4170
4171 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
4172 or higher by default.
4173
a6f30e66
RB
41742013-04-29 Richard Biener <rguenther@suse.de>
4175
4176 PR middle-end/57075
4177 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
4178 even if not adding abnormal edges for calls that can make
4179 abnormal gotos.
4180
0c2b2040
RB
41812013-04-29 Richard Biener <rguenther@suse.de>
4182
4183 PR middle-end/57103
4184 * tree-cfg.c (move_stmt_op): Fix condition under which to update
4185 TREE_BLOCK.
4186 (move_stmt_r): Remove redundant checking.
4187
f41f80f9
TJ
41882013-04-29 Teresa Johnson <tejohnson@google.com>
4189
4190 PR bootstrap/57077
4191 * basic-block.h (apply_scale): New function.
4192 (apply_probability): Use apply_scale.
4193 * gimple-streamer-in.c (input_bb): Ditto.
4194 * lto-streamer-in.c (input_cfg): Ditto.
4195 * lto-cgraph.c (merge_profile_summaries): Ditto.
4196 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 4197 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
4198 (copy_edges_for_bb): Ditto.
4199 (copy_cfg_body): Ditto.
4200
315bbd2e
TV
42012013-04-29 Tom de Vries <tom@codesourcery.com>
4202
4203 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
4204 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
4205 (tail_merge_optimize): Handle current_loops == NULL.
4206
ebbd90d8
JL
42072013-04-26 Jeff Law <law@redhat.com>
4208
4209 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
4210 (simplify_cond_using_ranges): Generalize code to simplify
4211 COND_EXPRs where one argument is a constant and the other
4212 is an SSA_NAME created by an integral type conversion.
4213
8b9b57eb
KT
42142013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4215
4216 * config/arm/arm.md (store_minmaxsi): Use only when
4217 optimize_insn_for_size_p.
4218
9498e5dc
CB
42192013-04-29 Christian Bruel <christian.bruel@st.com>
4220
4221 PR target/57108
4222 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
4223
6093bc06
RB
42242013-04-29 Richard Biener <rguenther@suse.de>
4225
4226 PR middle-end/57089
fdca7d03
UB
4227 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
4228 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
4229 (expand_omp_for_generic): Properly add loops.
4230 (expand_omp_for_static_nochunk): Likewise.
4231 (expand_omp_for_static_chunk): Likewise.
4232 (expand_omp_for): For the degenerate case fixup loops.
4233 (expand_omp_sections): Fix default bb placement in loops.
4234 (expand_omp_atomic_pipeline): Properly add loops.
4235
84aacbfd
KT
42362013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4237
4238 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
4239
8dee4479
TV
42402013-04-29 Tom de Vries <tom@codesourcery.com>
4241
4242 * tree-ssa-tail-merge.c: Update header comment.
4243
47934dc4
JG
42442013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4245
4246 * config/aarch64/arm_neon.h
4247 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
4248 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
4249 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
4250 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
4251 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
4252 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
4253 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
4254 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
4255
384be29f
JG
42562013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4257
4258 * config/aarch64/aarch64-simd.md
4259 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
4260 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
4261 fix_trunc, fixuns_trunc.
4262 (ftrunc<VDQF:mode>2): New.
4263 * config/aarch64/iterators.md (optab): Add fix, fixuns.
4264 (fix_trunc_optab): New.
4265
0386b123
JG
42662013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4267
4268 * config/aarch64/aarch64-builtins.c
4269 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
4270 iceilf, lround, iroundf.
4271
00fcb892
UB
42722013-04-29 Uros Bizjak <ubizjak@gmail.com>
4273
4274 PR target/54349
4275 * config/i386/i386.h (enum ix86_tune_indices)
4276 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
4277 New, split from X86_TUNE_INTER_UNIT_MOVES.
4278 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
4279 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
4280 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
4281 (TARGET_INTER_UNIT_MOVES): Remove.
4282 * config/i386/i386.c (initial_ix86_tune_features): Update.
4283 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
4284 (ix86_expand_convert_uns_didf_sse): Use
4285 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
4286 (ix86_expand_vector_init_one_nonzero): Ditto.
4287 (ix86_expand_vector_init_interleave): Ditto.
4288 (inline_secondary_memory_needed): Return true for moves from SSE class
4289 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
4290 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
4291 * config/i386/constraints.md (Yi, Ym): Depend on
4292 TARGET_INTER_UNIT_MOVES_TO_VEC.
4293 (Yj, Yn): New constraints.
4294 * config/i386/i386.md (*movdi_internal): Change constraints of
4295 operand 1 from Yi to Yj and from Ym to Yn.
4296 (*movsi_internal): Ditto.
4297 (*movdf_internal): Ditto.
4298 (*movsf_internal): Ditto.
4299 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
4300 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
4301 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
4302 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
4303 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
4304 * config/i386/sse.md (movdi_to_sse): Ditto.
4305 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
4306 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
4307 TARGET_INTER_UNIT_MOVES.
4308 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
4309 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
4310 instead of TARGET_INTER_UNIT_MOVES.
4311 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
4312 operand 1 from Yi to Yj and from Ym to Yn.
4313
4c871069
JG
43142013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4315
4316 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
4317 (float_truncate_hi_): Likewise.
4318 (float_extend_lo_): Likewise.
4319 (float_truncate_lo_): Likewise.
4320 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
4321 (aarch64_float_extend_lo_v2df): Likewise.
4322 (vec_unpacks_hi_v4sf): Likewise.
4323 (aarch64_float_truncate_lo_v2sf): Likewise.
4324 (aarch64_float_truncate_hi_v4sf): Likewise.
4325 (vec_pack_trunc_v2df): Likewise.
4326 (vec_pack_trunc_df): Likewise.
4327
1709ff9b
JG
43282013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4329
4330 * config/aarch64/aarch64-builtins.c
4331 (aarch64_fold_builtin): Fold float conversions.
4332 * config/aarch64/aarch64-simd-builtins.def
4333 (floatv2si, floatv4si, floatv2di): New.
4334 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
4335 * config/aarch64/aarch64-simd.md
4336 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
4337 * config/aarch64/iterators.md (FLOATUORS): New.
4338 (optab): Add float, floatuns.
4339 (su_optab): Likewise.
4340
ce966824
JG
43412013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4342
4343 * config/aarch64/aarch64-builtins.c
4344 (aarch64_builtin_vectorized_function): Use new names for
4345 fcvt builtins.
4346 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
4347 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
4348 (fcvtzu): Split as...
4349 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
4350 (fcvtas): Split as...
4351 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
4352 (fcvtau): Split as...
4353 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
4354 (fcvtps): Split as...
4355 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
4356 (fcvtpu): Split as...
4357 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
4358 (fcvtms): Split as...
4359 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
4360 (fcvtmu): Split as...
4361 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
4362 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
4363 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
4364 (lfrintnusf, lfrintnudf): Likewise.
4365 * config/aarch64/aarch64-simd.md
4366 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
4367 define_insn.
4368 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
4369 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
4370 (fcvt_pattern): Likewise.
4371
b9de24fe
JG
43722013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4373
4374 * config/aarch64/aarch64-simd.md
4375 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
4376 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
4377
77a205be
JG
43782013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4379
4380 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
4381 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
4382 (vrnd<a,m,n,p>_f32): Implement using builtins.
4383 (vrnd<i,x><q>_f<32, 64>): New.
4384
0659ce6f
JG
43852013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4386
4387 * config/aarch64/aarch64-builtins.c
4388 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
4389 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
4390 (frintz): Rename to...
4391 (btrunc): ...this.
4392 (frintp): Rename to...
4393 (ceil): ...this.
4394 (frintm): Rename to...
4395 (floor): ...this.
4396 (frinti): Rename to...
4397 (nearbyint): ...this.
4398 (frintx): Rename to...
4399 (rint): ...this.
4400 (frinta): Rename to...
4401 (round): ...this.
4402 * config/aarch64/aarch64-simd.md
4403 (aarch64_frint<frint_suffix><mode>): Delete.
4404 (<frint_pattern><mode>2): Convert to insn.
4405 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
4406 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
4407 (frint_pattern): Likewise.
4408 (frint_suffix): Likewise.
4409
ea78906a
RB
44102013-04-29 Richard Biener <rguenther@suse.de>
4411
4412 PR tree-optimization/57081
4413 * loop-init.c: Include tree-flow.h.
4414 (loop_optimizer_finalize): Free number of iteration estimates.
4415 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
4416
baee1763
JJ
44172013-04-29 Jakub Jelinek <jakub@redhat.com>
4418
94dc5332
JJ
4419 PR tree-optimization/57083
4420 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
4421 non-singleton shift count range, zero extend low_bound for uns case.
4422
baee1763
JJ
4423 * config/i386/predicates.md (general_vector_operand): New predicate.
4424 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
4425 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
4426 if they aren't nonimmediate operands. If their original values
4427 satisfy const_vector_equal_evenodd_p, don't shift them.
4428 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
4429 predicates. For the SSE4.1 case force operands[{1,2}] into registers
4430 if not nonimmediate_operand.
4431 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
4432 instead of register_operand.
4433 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
4434
a9073727 44352013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
4436
4437 * stor-layout.c (finalize_size_functions): Allocate a structure and
4438 reset cfun before dumping the functions.
4439
ba8011e6
JJ
44402013-04-27 Jakub Jelinek <jakub@redhat.com>
4441
d6fde69e
JJ
4442 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
4443
ba8011e6
JJ
4444 PR target/56866
4445 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
4446 use xop_pmacsdqh if uns_p.
4447 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
4448 the immediate rotate count.
4449
2c62cbaa
VM
44502013-04-26 Vladimir Makarov <vmakarov@redhat.com>
4451
4452 * rtl.h (struct rtx_def): Add comment for field jump.
4453 (LRA_SUBREG_P): New macro.
4454 * recog.c (register_operand): Check LRA_SUBREG_P.
4455 * lra.c (lra): Add note at the end of RTL code. Align non-empty
4456 stack frame.
4457 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
4458 (lra_final_code_change): Skip subreg change for operators.
4459 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
4460 if there are no operand changes.
4461 * lra-constraints.c (curr_insn_set): New.
4462 (match_reload): Set LRA_SUBREG_P.
4463 (emit_spill_move): Ditto.
4464 (check_and_process_move): Use curr_insn_set. Process only single
4465 set insns. Don't initialize sec_mem_p and change_p.
4466 (simplify_operand_subreg): Use LRA_SUBREG_P.
4467 (reg_in_class_p): New function.
4468 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
4469 of #ifdef. Add code to remove cycling.
4470 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
4471 non-null disp. Reload inner instead of disp when base and index
4472 are null. Try to put lo_sum into register.
4473 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
4474 (check_and_process_move): Move code for move cost check to
4475 simple_move_p. Remove equiv_substitution.
4476 (simple_move_p): New function.
4477 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
4478 curr_insn_set. Call check_and_process_move only for single set
4479 insns. Use the new function. Move call of check_and_process_move
4480 after operand equiv substitution and address process.
4481
e7d764f3
JJ
44822013-04-26 Jakub Jelinek <jakub@redhat.com>
4483
4484 PR go/57045
4485 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
4486 with nonlocal goto receivers or returns twice calls, ignore
4487 unininitialized values from abnormal edges to nl goto receiver
4488 or returns twice call.
4489
41e10689
JJ
44902013-04-26 Jakub Jelinek <jakub@redhat.com>
4491
4492 PR tree-optimization/57051
4493 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
4494 and VEC_RSHIFT_EXPR if shift count is a multiple of element
4495 bitsize.
4496
d7ed20db
RB
44972013-04-26 Richard Biener <rguenther@suse.de>
4498
4499 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
4500 (expand_omp_taskreg): Likewise. Mark loops for fixup.
4501 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
4502 (fixup_loop_arrays_after_move): New function.
4503 (move_sese_region_to_fn): Properly outline the loop tree parts
4504 of the SESE region.
4505
df93505e
UB
45062013-04-26 Uros Bizjak <ubizjak@gmail.com>
4507
4508 * config/i386/i386.md (type, unit): Fix long lines.
4509
dd366ec3
RB
45102013-04-26 Richard Biener <rguenther@suse.de>
4511
4512 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
4513 (lto-streamer-out.o): Likewise.
4514 * cfgloop.c (init_loops_structure): Export, add struct function
4515 argument and adjust.
4516 (flow_loops_find): Adjust.
4517 * cfgloop.h (enum loop_estimation): Add EST_LAST.
4518 (init_loops_structure): Declare.
4519 * lto-streamer-in.c: Include cfgloop.h.
4520 (input_cfg): Input the loop tree.
4521 * lto-streamer-out.c: Include cfgloop.h.
4522 (output_cfg): Output the loop tree.
4523 (output_struct_function_base): Do not drop PROP_loops.
4524
a9e0d843
RB
45252013-03-26 Richard Biener <rguenther@suse.de>
4526
4527 * tree-cfg.c (execute_build_cfg): Build the loop tree.
4528 (pass_build_cfg): Provide PROP_loops.
4529 (move_sese_region_to_fn): Remove loops that are outlined into fn
4530 for now.
4531 * tree-inline.c: Include cfgloop.h.
4532 (initialize_cfun): Do not drop PROP_loops.
4533 (copy_loops): New function.
4534 (copy_cfg_body): Copy loop structure.
4535 (tree_function_versioning): Initialize destination loop tree.
4536 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
4537 (pass_parallelize_loops): Do IL verification.
4538 * loop-init.c (loop_optimizer_init): Fixup loops if required.
4539 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
4540 the CFG make sure we fixup loops as well.
4541 * tree-ssa-tail-merge.c: Include cfgloop.h.
4542 (replace_block_by): When merging loop latches mark loops for fixup.
4543 * lto-streamer-out.c (output_struct_function_base): Drop
4544 PROP_loops for now.
4545 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
4546 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
4547 * ipa-split.c: Include cfgloop.h.
4548 (split_function): Add the new return block to the loop tree root.
4549 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
4550 whether we have removed the forwarder block.
4551 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
4552 * cfgloop.h (place_new_loop): Declare.
4553 * cfgloopmanip.c (place_new_loop): Export.
4554 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
4555 (tree-switch-conversion.o): Likewise.
4556 (tree-complex.o): Likewise.
4557 (tree-inline.o): Likewise.
4558 (tree-ssa-tailmerge.o): Likewise.
4559 (ipa-split.o): Likewise.
4560 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
4561 (tree-ssa-copy.o): Likewise.
4562 * tree-switch-conversion.c: Include cfgloop.h
4563 (process_switch): If we emit a bit-test cascade, schedule loops
4564 for fixup.
4565 * tree-complex.c: Include cfgloop.h.
4566 (expand_complex_div_wide): Properly add new basic-blocks to loops.
4567 * asan.c: Include cfgloop.h.
4568 (create_cond_insert_point): Properly add new basic-blocks to
4569 loops, schedule loop fixup.
4570 * cfgloop.c (verify_loop_structure): Check that looks are not
4571 marked for fixup.
4572 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
4573 to loops.
4574 (expand_omp_for_generic): Likewise.
4575 (expand_omp_sections): Likewise.
4576 (expand_omp_atomic_pipeline): Schedule loops for fixup.
4577 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
4578 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
4579 is initialized, not when loops are present.
4580 * tree-parloops.c (parallelize_loops): Remove checking here.
4581 * passes.c (init_optimization_passes): Schedule a copy-propagation
4582 pass before complete unrolling of inner loops.
4583
e78e8a0b
JJ
45842013-04-26 Jakub Jelinek <jakub@redhat.com>
4585
a2e836b2
JJ
4586 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
4587 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
4588 (colorize_init): Add argument to _WIN32 version.
4589 * toplev.c: Include diagnostic-color.h.
4590 (process_options): Default to -fdiagnostics-color=auto if
4591 GCC_COLORS env var is in the environment.
4592 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
4593 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
4594 env var is in the environment, the default is auto rather than never.
a2e836b2 4595
e78e8a0b
JJ
4596 * diagnostic.h (file_name_as_prefix): Add context argument.
4597 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
4598 the string as locus.
4599 * langhooks.c (lhd_print_error_function): Adjust caller.
4600
013e5ef9
LC
46012013-04-25 Lawrence Crowl <crowl@google.com>
4602
4603 * var-tracking.c (shared_hash_def::htab):
4604 Change type to hash_table. Update dependent calls and types.
4605
4a8fb1a1
LC
46062013-04-25 Lawrence Crowl <crowl@google.com>
4607
4608 * Makefile.in: Update as needed below.
4609
4610 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
4611 Move declaration to after the type's method definitons.
4612
4613 * attribs.c (htab_t scoped_attributes::attribute_hash):
4614 Change type to hash_table. Update dependent calls and types.
4615
4616 * bitmap.c (htab_t bitmap_desc_hash):
4617 Change type to hash_table. Update dependent calls and types.
4618
4619 * cselib.c (htab_t cselib_hash_table):
4620 Change type to hash_table. Update dependent calls and types.
4621
4622 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
4623 (hash_string_slot_node): Move implementation into lto-streamer.h
4624 struct string_slot_hasher.
4625 (eq_string_slot_node): Likewise.
4626
4627 * data-streamer-out.c: Update output_block::string_hash_table
4628 dependent calls and types.
4629
4630 * dwarf2cfi.c (htab_t trace_index):
4631 Change type to hash_table. Update dependent calls and types.
4632
4633 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
4634 Change type to hash_table. Update dependent calls and types.
4635 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
4636 (htab_t optimize_external_refs::map): Likewise.
4637 (htab_t output_comp_unit::extern_map): Likewise.
4638 (htab_t output_comdat_type_unit::extern_map): Likewise.
4639 (htab_t output_macinfo::macinfo_htab): Likewise.
4640 (htab_t optimize_location_lists::htab): Likewise.
4641 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
4642
4643 * except.c (htab_t ehspec_hash_type):
4644 Change type to hash_table. Update dependent calls and types.
4645 (assign_filter_values::ttypes): Likewise.
4646 (assign_filter_values::ehspec): Likewise.
4647 (sjlj_assign_call_site_values::ar_hash): Likewise.
4648 (convert_to_eh_region_ranges::ar_hash): Likewise.
4649
4650 * gcse.c (htab_t pre_ldst_table):
4651 Change type to hash_table. Update dependent calls and types.
4652
4653 * ggc-common.c (htab_t saving_htab):
4654 Change type to hash_table. Update dependent calls and types.
4655 (htab_t loc_hash): Likewise.
4656 (htab_t ptr_hash): Likewise.
4657 (call_count): Rename ggc_call_count.
4658 (call_alloc): Rename ggc_call_alloc.
4659 (loc_descriptor): Rename make_loc_descriptor.
4660 (add_statistics): Rename ggc_add_statistics.
4661
4662 * ggc-common.c (saving_htab):
4663 Change type to hash_table. Update dependent calls and types.
4664
4665 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
4666 (push_gimplify_context): Likewise.
4667 (pop_gimplify_context): Likewise.
4668 (struct gimple_temp_hash_elt): Added.
4669 (struct gimplify_hasher): Likewise.
4670 (struct gimplify_ctx.temp_htab):
4671 Change type to hash_table. Update dependent calls and types.
4672
4673 * gimple-fold.c: Include gimplify-ctx.h.
4674
4675 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
4676 Change type to hash_table. Update dependent calls and types.
4677 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
4678 avoid potential global name collision.
4679
4680 * gimplify.c: Include gimplify-ctx.h.
4681 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
4682 (htab_t gimplify_ctx::temp_htab):
4683 Update dependent calls and types for new type hash_table.
4684 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
4685 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
4686
4687 * gimplify-ctx.h: New.
4688 (struct gimple_temp_hash_elt): Move from gimplify.c.
4689 (class gimplify_hasher): New.
4690 (struct gimplify_ctx): Move from gimple.h.
4691 (htab_t gimplify_ctx::temp_htab):
4692 Change type to hash_table. Update dependent calls and types.
4693
4694 * graphite-clast-to-gimple.c: Include graphite-htab.h.
4695 (htab_t ivs_params::newivs_index):
4696 Change type to hash_table. Update dependent calls and types.
4697 (htab_t ivs_params::params_index): Likewise.
4698 (htab_t print_generated_program::params_index): Likewise.
4699 (htab_t gloog::newivs_index): Likewise.
4700 (htab_t gloog::params_index): Likewise.
4701
4702 * graphite.c: Include graphite-htab.h.
4703 4htab_t graphite_transform_loops::bb_pbb_mapping):
4704 Change type to hash_table. Update dependent calls and types.
4705
4706 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
4707 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
4708 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
4709
4710 * graphite-dependences.c: Include graphite-htab.h.
4711 (loop_is_parallel_p): Change hash table type of parameter.
4712
4713 * graphite-htab.h: New.
4714 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
4715 (extern find_pbb_via_hash): Move from graphite-poly.h.
4716 (extern loop_is_parallel_p): Move from graphite-poly.h.
4717 (extern get_loop_body_pbbs): Move from graphite-poly.h.
4718
4719 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
4720 (extern loop_is_parallel_p): Move to graphite-htab.h.
4721 (extern get_loop_body_pbbs): Move to graphite-htab.h.
4722
4723 * haifa-sched.c (htab_t delay_htab):
4724 Change type to hash_table. Update dependent calls and types.
4725 (htab_t delay_htab_i2): Likewise.
4726
4727 * ira-color.c (htab_t allocno_hard_regs_htab):
4728 Change type to hash_table. Update dependent calls and types.
4729
4730 * ira-costs.c (htab_t cost_classes_htab):
4731 Change type to hash_table. Update dependent calls and types.
4732
4733 * loop-invariant.c (htab_t merge_identical_invariants::eq):
4734 Change type to hash_table. Update dependent calls and types.
4735
4736 * loop-iv.c (htab_t bivs):
4737 Change type to hash_table. Update dependent calls and types.
4738
4739 * loop-unroll.c (htab_t opt_info::insns_to_split):
4740 Change type to hash_table. Update dependent calls and types.
4741 (htab_t opt_info::insns_with_var_to_expand): Likewise.
4742
4743 * lto-streamer.h (struct string_slot): Move from data-streamer.h
4744 (struct string_slot_hasher): New.
4745 (htab_t output_block::string_hash_table):
4746 Change type to hash_table. Update dependent calls and types.
4747
4748 * lto-streamer-in.c (freeing_string_slot_hasher): New.
4749 (htab_t file_name_hash_table):
4750 Change type to hash_table. Update dependent calls and types.
4751
4752 * lto-streamer-out.c: Update output_block::string_hash_table dependent
4753 calls and types.
4754
4755 * lto-streamer.c (htab_t tree_htab):
4756 Change type to hash_table. Update dependent calls and types.
4757
4758 * omp-low.c: Include gimplify-ctx.h.
4759
4760 * passes.c (htab_t name_to_pass_map):
4761 Change type to hash_table. Update dependent calls and types.
4762 (pass_traverse): Rename to passes_pass_traverse.
4763
4764 * plugin.c (htab_t event_tab):
4765 Change type to hash_table. Update dependent calls and types.
4766
4767 * postreload-gcse.c (htab_t expr_table):
4768 Change type to hash_table. Update dependent calls and types.
4769 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
4770
4771 * sese.c (debug_rename_map_1): Make extern.
4772 (htab_t copy_bb_and_scalar_dependences::rename_map):
4773 Change type to hash_table. Update dependent calls and types.
4774
4775 * sese.h (extern debug_rename_map): Move to .c file.
4776
4777 * store-motion.c (htab_t store_motion_mems_table):
4778 Change type to hash_table. Update dependent calls and types.
4779
4780 * trans-mem.c (htab_t tm_new_mem_hash):
4781 Change type to hash_table. Update dependent calls and types.
4782
4783 * tree-browser.c (htab_t TB_up_ht):
4784 Change type to hash_table. Update dependent calls and types.
4785
4786 * tree-cfg.c (htab_t discriminator_per_locus):
4787 Change type to hash_table. Update dependent calls and types.
4788
4789 * tree-complex.c: Include tree-hasher.h
4790 (htab_t complex_variable_components):
4791 Change type to hash_table. Update dependent calls and types.
4792
4793 * tree-eh.c (htab_t finally_tree):
4794 Change type to hash_table. Update dependent calls and types.
4795
4796 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
4797 struct int_tree_hasher.
4798 (extern int_tree_map_eq): Likewise.
4799 (uid_decl_map_hash): Removed.
4800 (extern decl_tree_map_eq): Likewise.
4801
4802 * tree-hasher.h: New.
4803 (struct int_tree_hasher): New.
4804 (typedef int_tree_htab_type): New.
4805
4806 * tree-inline.c: Include gimplify-ctx.h.
4807
4808 * tree-mudflap.c: Include gimplify-ctx.h.
4809
4810 * tree-parloops.c: Include tree-hasher.h.
4811 (htab_t eliminate_local_variables_stmt::decl_address):
4812 Change type to hash_table. Update dependent calls and types.
4813 (htab_t separate_decls_in_region::decl_copies): Likewise.
4814
4815 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
4816 Change type to hash_table. Update dependent calls and types.
4817
4818 * tree-sra.c (candidates):
4819 Change type to hash_table. Update dependent calls and types.
4820
4821 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
4822 in tree-flow.h.
4823 (int_tree_map_hash): Likewise.
4824
4825 * tree-ssa-dom.c (htab_t avail_exprs):
4826 Change type to hash_table. Update dependent calls and types.
4827
4828 * tree-ssa-live.c (var_map_base_init::tree_to_index):
4829 Change type to hash_table. Update dependent calls and types.
4830
4831 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
4832 Change type to hash_table. Update dependent calls and types.
4833
4834 * tree-ssa-phiopt.c (seen_ssa_names):
4835 Change type to hash_table. Update dependent calls and types.
4836
4837 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
4838 Change type to hash_table. Update dependent calls and types.
4839
4840 * tree-ssa-uncprop.c (equiv):
4841 Change type to hash_table. Update dependent calls and types.
4842
c5a44004
JJ
48432013-04-25 Jakub Jelinek <jakub@redhat.com>
4844
4845 PR rtl-optimization/57003
4846 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
4847 call note_stores with kill_clobbered_value callback again after
4848 killing regs_invalidated_by_call.
4849
09962a4a
JG
48502013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
4851
4852 * config/aarch64/aarch64-simd.md
4853 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
4854 (aarch64_simd_bsl<mode>): Likewise.
4855 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
4856
ea28bb0b
MP
48572013-04-25 Marek Polacek <polacek@redhat.com>
4858
4859 PR tree-optimization/57066
3c21604f 4860 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 4861
96659611
JG
48622013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
4863
4864 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
4865
9697e620
JG
48662013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
4867
4868 * config/aarch64/aarch64-builtins.c
4869 (aarch64_fold_builtin): New.
4870 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
4871 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
4872 * config/aarch64/aarch64-simd-builtins.def (abs): New.
4873 * config/aarch64/arm_neon.h
4874 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
4875
0ac198d3
JG
48762013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
4877 Tejas Belagod <tejas.belagod@arm.com>
4878
4879 * config/aarch64/aarch64-builtins.c
4880 (aarch64_gimple_fold_builtin): New.
4881 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
4882 * config/aarch64/aarch64-simd-builtins.def (addv): New.
4883 * config/aarch64/aarch64-simd.md (addpv4sf): New.
4884 (addvv4sf): Update.
4885 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
4886
58cff58c
N
48872013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
4888
df93505e 4889 * config/aarch64/aarch64.md
58cff58c
N
4890 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
4891
7e0228bf
N
48922013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
4893
4894 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
4895 (*ngcsi_uxtw): New pattern.
4896
5819f96f 48972013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 4898 Julian Brown <julian@codesourcery.com>
5819f96f
KT
4899
4900 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
4901 (TB_DREG): Add T_V4HF.
4902 (v4hf_UP): New macro.
4903 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 4904 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
4905 Handle initialisation of V4HF. Adjust initialisation of reinterpret
4906 built-ins.
df93505e 4907 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
4908 (arm_vector_mode_supported_p): Handle V4HF.
4909 (arm_mangle_map): Handle V4HFmode.
4910 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
4911 * config/arm/arm_neon_builtins.def: Add entries for
4912 vcvtv4hfv4sf, vcvtv4sfv4hf.
4913 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
4914 (neon_vcvtv4hfv4sf): Likewise.
4915 * config/arm/neon-gen.ml: Handle half-precision floating point
4916 features.
4917 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
4918 * config/arm/arm_neon.h: Regenerate.
4919 * config/arm/neon.ml (type elts): Add F16.
4920 (type vectype): Add T_float16x4, T_floatHF.
4921 (type vecmode): Add V4HF.
4922 (type features): Add Requires_FP_bit feature.
4923 (elt_width): Handle F16.
4924 (elt_class): Likewise.
4925 (elt_of_class_width): Likewise.
4926 (mode_of_elt): Refactor.
4927 (type_for_elt): Handle F16, fix error messages.
4928 (vectype_size): Handle T_float16x4.
4929 (vcvt_sh): New function.
4930 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
4931 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
4932 (string_of_mode): Handle V4HF.
4933 * doc/arm-neon-intrinsics.texi: Regenerate.
4934
1ef395e4
JG
49352013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
4936
4937 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
4938 format specifier in 'X' case.
4939
41c34e94
AM
49402013-04-25 Alan Modra <amodra@gmail.com>
4941
4942 PR target/57052
4943 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
4944 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
4945 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
4946 Repeat for many other rotate/shift and mask patterns using subregs.
4947 Name lshiftrt insns.
4948 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
4949 on WORDS_BIG_ENDIAN.
4950
b9a7eb5d
AM
49512013-04-25 Alan Modra <amodra@gmail.com>
4952
4953 * config.gcc: Support little-endian powerpc-linux targets.
4954 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
4955 (LINK_OS_LINUX_SPEC): Define.
4956 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
4957 Preserve MASK_LITTLE_ENDIAN.
4958 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
4959 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
4960 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
4961 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
4962 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
4963 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
4964 Correct fp word order for little-endian. Don't shift toc entries
4965 smaller than a word for little-endian.
4966 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
4967 (bswapdi2 splits): Correct low-part subreg for little-endian.
4968 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
4969 low/high where such is correct only for be.
4970 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
4971 little-endian for -mcall-aixdesc.
4972
87f73374
AM
49732013-04-25 Alan Modra <amodra@gmail.com>
4974
4975 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
4976 replace_equiv_address_nv.
4977
cabf91cd
AM
49782013-04-25 Alan Modra <amodra@gmail.com>
4979
4980 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
4981
0ae24cc8
VM
49822013-04-24 Vladimir Makarov <vmakarov@redhat.com>
4983
4984 Revert:
4985 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
4986 * rtl.h (struct rtx_def): ...
cabf91cd 4987
77bce07c
VM
49882013-04-24 Vladimir Makarov <vmakarov@redhat.com>
4989
4990 PR rtl-optimizations/57046
4991 * lra-constraints (split_reg): Set up lra_risky_transformations_p
4992 for multi-reg splits.
4993
0db63e7f
L
49942013-04-24 H.J. Lu <hongjiu.lu@intel.com>
4995
4996 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
4997
3362b6b6
SA
49982013-04-24 Sterling Augustine <saugustine@google.com>
4999
5000 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
5001 (comp_dir_string, debug_str_dwo_section): New.
5002 (DEBUG_STR_DWO_SECTION): Rename to ...
5003 (DEBUG_DWO_STR_SECTION): ... this.
5004 (DEBUG_NORM_STR_SECTION): Delete.
5005 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
5006 (DEBUG_STR_DWO_SECTION_FLAGS): New.
5007 (find_AT_string): Move most logic to ...
5008 (find_AT_string_in_table): ... here. New.
5009 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
5010 add_skeleton_AT_string. Delete logic.
5011 (output_skeleton_debug_sections): Remove call to
5012 add_top_level_skeleton_die_attrs.
5013 (add_comp_dir_attribute): Move logic to comp_dir_string.
5014 (dwarf2out_init): Initialize debug_str_dwo_section.
5015 (output_indirect_string): Call find_string_form.
5016 (output_indirect_strings): Rewrite.
5017 (prune_unused_types): Empty skeleton_debug_str_hash.
5018 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
5019 (dwarf2out_finish): Call output_indirect_strings.
5020
e93e18e9
PC
50212013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
5022
5023 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
5024
f6ce35ac
VM
50252013-04-24 Vladimir Makarov <vmakarov@redhat.com>
5026
cabf91cd 5027 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
5028 (LRA_SUBREG_P): New macro.
5029 * recog.c (register_operand): Check LRA_SUBREG_P.
5030 * lra.c (lra): Add note at the end of RTL code. Align non-empty
5031 stack frame.
5032 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
5033 (lra_final_code_change): Skip subreg change for operators.
5034 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
5035 if there are no operand changes.
5036 * lra-constraints.c (curr_insn_set): New.
5037 (match_reload): Set LRA_SUBREG_P.
5038 (emit_spill_move): Ditto.
5039 (check_and_process_move): Use curr_insn_set. Process only single
5040 set insns. Don't initialize sec_mem_p and change_p.
5041 (simplify_operand_subreg): Use LRA_SUBREG_P.
5042 (reg_in_class_p): New function.
5043 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
5044 of #ifdef. Add code to remove cycling.
5045 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
5046 non-null disp. Reload inner instead of disp when base and index
5047 are null. Try to put lo_sum into register.
5048 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 5049 (check_and_process_move): Move code for move cost check to
f6ce35ac 5050 simple_move_p. Remove equiv_substitution.
cabf91cd 5051 (simple_move_p): New function.
f6ce35ac
VM
5052 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
5053 curr_insn_set. Call check_and_process_move only for single set
5054 insns. Use the new function. Move call of check_and_process_move
5055 after operand equiv substitution and address process.
5056
38047d90
JG
50572013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
5058
5059 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
5060 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
5061 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
5062
13f39b2e
PC
50632013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
5064
5065 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
5066
97c116dc
MP
50672013-04-24 Marek Polacek <polacek@redhat.com>
5068
5069 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
5070 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
5071 (select_loops_exit_conditions): Likewise.
5072 (number_of_iterations_for_all_loops): Likewise.
5073 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
5074 (scev_analysis): Likewise.
5075
83082391
CM
50762013-04-02 Catherine Moore <clm@codesourcery.com>
5077 Chao-ying Fu <fu@mips.com>
5078
cabf91cd
AM
5079 * config/mips/micromips.md (jraddiusp): New pattern.
5080 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
5081 instruction if possible.
83082391 5082
19e34aa2
AM
50832013-04-24 Alan Modra <amodra@gmail.com>
5084
5085 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
5086
fdb6603c
JB
50872013-04-24 Julian Brown <julian@codesourcery.com>
5088 Chung-Lin Tang <cltang@codesourcery.com>
5089
5090 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
5091 dependency behavior in enumeration type DIE generation. Add TODO note
5092 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 5093
bf190e8d
LC
50942013-04-23 Lawrence Crowl <crowl@google.com>
5095
5096 * Makefile.in: Update as needed below.
5097
5098 * hash-table.h (class hash_table):
5099 Correct many methods with parameter types compare_type to the correct
5100 value_type. (Correct code was unlikely to notice the change.)
5101 (hash_table::elements_with_deleted) New.
5102 (class hashtable::iterator): New.
5103 (hashtable::begin()): New.
5104 (hashtable::end()): New.
5105 (FOR_EACH_HASH_TABLE_ELEMENT): New.
5106
5107 * statistics.c (statistics_hashes):
5108 Change type to hash_table. Update dependent calls and types.
5109
5110 * tree-into-ssa.c (var_infos):
5111 Change type to hash_table. Update dependent calls and types.
5112
5113 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
5114 Change type to hash_table. Update dependent calls and types.
5115
5116 * tree-ssa-loop-im.c (struct mem_ref.refs):
5117 Change type to hash_table. Update dependent calls and types.
5118
5119 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
5120 Change type to hash_table. Update dependent calls and types.
5121
5122 * tree-ssa-sccvn.c (vn_tables_s::nary):
5123 Change type to hash_table. Update dependent calls and types.
5124 (vn_tables_s::phis): Likewise.
5125 (vn_tables_s::references): Likewise.
5126
5127 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
5128 (vn_reference_eq): Update parameter and return types.
5129
5130 * tree-ssa-structalias.c (pointer_equiv_class_table):
5131 Change type to hash_table. Update dependent calls and types.
5132 (location_equiv_class_table): Likewise.
5133
5134 * tree-vect-data-refs.c: Consequential changes for making
5135 peeling a hash_table.
5136
5137 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
5138 (destroy_loop_vec_info): Dependent hash_table update.
5139
5140 * tree-vectorizer.h (peeling_htab):
5141 Change type to hash_table. Update dependent calls and types.
5142
d70a81dd
SC
51432013-04-23 Shiva Chen <shiva0217@gmail.com>
5144
cabf91cd
AM
5145 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
5146 to check the register content is equal or not.
5147 * lra-constraints.c (match_reload): Use lra_assign_reg_val
5148 to assign register content record.
5149 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 5150 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
5151 * lra-int.h (struct lra_reg): Add offset member.
5152 (lra_reg_val_equal_p): New static inline function.
5153 (lra_update_reg_val_offset): New static inline function.
5154 (lra_assign_reg_val): New static inline function.
5155 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
5156 to assign register content record.
5157 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 5158
b894a1f3
CM
51592013-04-23 Catherine Moore <clm@codesourcery.com>
5160
5161 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
5162 operands. Record compression.
5163
ecd14de9
XDL
51642013-04-23 Xinliang David Li <davidxl@google.com>
5165
5166 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
5167
92e776e9
RB
51682013-04-23 Richard Biener <rguenther@suse.de>
5169
5170 PR middle-end/57036
5171 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
5172 parameter, only add abnormal goto edges from the copied body
5173 if the call could perform abnormal gotos.
5174 (copy_cfg_body): Adjust.
5175
a15ee567
SN
51762013-04-23 Sofiane Naci <sofiane.naci@arm.com>
5177
5178 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
5179
08c52234
AS
51802013-04-23 Andreas Schwab <schwab@linux-m68k.org>
5181
5182 * coretypes.h (gimple_stmt_iterator): Add struct to make
5183 compatible with C.
5184
999c1171
RB
51852013-04-23 Richard Biener <rguenther@suse.de>
5186
5187 PR tree-optimization/57026
5188 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
5189 from SSA names occuring in abnormal PHI nodes.
5190
53669259
AK
51912013-04-22 Andi Kleen <ak@linux.intel.com>
5192
5193 * lto/lto.c (print_lto_report_1): Fix LTO report names.
5194
1a0ad150
AK
51952013-04-22 Andi Kleen <ak@linux.intel.com>
5196
5197 * lto/lto.c (print_lto_report_1): Declare early.
5198 (read_cgraph_and_symbols): Call print_lto_report_1 early.
5199
057f8f20
AK
52002013-04-22 Andi Kleen <ak@linux.intel.com>
5201
5202 * common.opt (-flto-report-wpa): Add.
5203 * doc/invoke.texi (-flto-report-wpa): Add.
5204 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
5205 (lto_main): dito.
5206
473b1e05
XDL
52072013-04-22 Xinliang David Li <davidxl@google.com>
5208
5209 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
5210 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
5211 * Makefile.in: New dependency
5212
cabf91cd 5213 David Daney <ddaney.cavm@gmail.com>
b1485a33 5214
cabf91cd
AM
5215 * configure.ac (gcc_cv_as_micromips_support): Use the
5216 --fatal-warnings option.
5217 * configure: Regenerate.
b1485a33 5218
829d0168
MP
52192013-04-22 Marek Polacek <polacek@redhat.com>
5220
5221 PR sanitizer/56990
5222 * tsan.c (instrument_expr): Don't instrument expression
5223 in case its size is zero.
5224
6d9b7208
UB
52252013-04-22 Uros Bizjak <ubizjak@gmail.com>
5226
5227 PR target/57032
5228 Revert:
5229 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
5230
5231 * config/alpha/alpha.c (TARGET_LRA_P): New define.
5232
ea679d55
JG
52332013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
5234
5235 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
5236 (gimple_stmt_iterator): New typedef.
5237 * gimple.h (gimple_stmt_iterator): Rename to...
5238 (gimple_stmt_iterator_d): ... This.
5239 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
5240 trees be valid for GIMPLE and GENERIC.
5241 (TARGET_GIMPLE_FOLD_BUILTIN): New.
5242 * gimple-fold.c (gimple_fold_call): Call target hook
5243 gimple_fold_builtin.
5244 * hooks.c (hook_bool_gsiptr_false): New.
5245 * hooks.h (hook_bool_gsiptr_false): New.
5246 * target.def (fold_stmt): New.
5247 * doc/tm.texi: Regenerate.
5248
88a581da
VM
52492013-04-22 Vladimir Makarov <vmakarov@redhat.com>
5250
5251 PR target/57018
5252 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
5253 a set sp if no stack realignment.
5254
92be22dc
NC
52552013-04-22 Nick Clifton <nickc@redhat.com>
5256
5257 * config.gcc (tilegx-linux): Extend extra_objs rather than
5258 overwriting it.
5259 (tilepro-linux): Likewise.
5260
0ddec79f
JG
52612013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
5262
5263 * config/aarch64/aarch64-builtins.c
5264 (CF): Remove.
5265 (CF0, CF1, CF2, CF3, CF4, CF10): New.
5266 (VAR<1-12>): Add MAP parameter.
5267 (BUILTIN_*): Likewise.
5268 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
5269 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
5270 (aarch64_ushl_n<mode>): Likewise.
5271 (aarch64_sshr_n<mode>): Likewise.
5272 (aarch64_ushr_n<mode>): Likewise.
5273 (aarch64_<maxmin><mode>): Likewise.
5274 (aarch64_sqrt<mode>): Likewise.
5275 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
5276 (vshr<q>_n_*): Likewise.
5277
0050faf8
JG
52782013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
5279
5280 * config/aarch64/aarch64-builtins.c
5281 (aarch64_simd_builtin_type_mode): Handle SF types.
5282 (sf_UP): Define.
5283 (BUILTIN_GPF): Define.
5284 (aarch64_init_simd_builtins): Handle SF types.
5285 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
5286 (frecps): Likewise.
5287 (frecpx): Likewise.
5288 * config/aarch64/aarch64-simd.md
5289 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
5290 (aarch64_frecpe<mode>): New.
5291 (aarch64_frecps<mode>): Likewise.
5292 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
5293 (v8type): Add frecp<esx>.
5294 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
5295 (aarch64_frecps<mode>): Likewise.
5296 * config/aarch64/iterators.md (FRECP): New.
5297 (frecp_suffix): Likewise.
5298 * config/aarch64/arm_neon.h
5299 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
5300
0fad3dbc 53012013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
5302
5303 PR target/56995
5304 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
5305 (REG_CLASS_NAMES): Idem.
5306 (REG_CLASS_CONTENTS): Idem.
5307 (REGCLASS_HAS_FP_REG): Idem.
5308 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
5309 (sh_conditional_register_usage): Idem.
5310
3e8a33f9
JL
53112013-04-21 Jeff Law <law@redhat.com>
5312
5313 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
5314 (ssa_forward_propagate_and_combine): Use it.
5315
f38e1b0a
VM
53162013-04-19 Vladimir Makarov <vmakarov@redhat.com>
5317
5318 * lra.c: Update the flow chart diagram.
5319
682303da
VM
53202013-04-19 Vladimir Makarov <vmakarov@redhat.com>
5321
5322 PR rtl-optimization/56847
5323 * lra-constraints.c (process_alt_operands): Discourage alternative
5324 with non-matche doffsettable memory constraint fro memory with
5325 known offset.
5326
f6b64c35
RB
53272013-04-19 Richard Biener <rguenther@suse.de>
5328
5329 PR tree-optimization/56982
5330 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
5331 function.
5332 * gimplify.c (gimplify_call_expr): Notice special calls.
5333 (gimplify_modify_expr): Likewise.
5334 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
5335 abnormal control flow receivers.
5336 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
5337 in the same way as cfun->has_nonlocal_labels.
5338 (gimple_purge_dead_abnormal_call_edges): Likewise.
5339 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
5340 receivers start a basic-block.
5341
01d8bf07
RB
53422013-04-19 Richard Biener <rguenther@suse.de>
5343
5344 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
5345 member ...
5346 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
5347 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
5348 (SLP_TREE_LOAD_PERMUTATION): Add.
5349 (vect_transform_slp_perm_load): Adjust prototype.
5350 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
5351 (vect_free_slp_instance): Likewise.
5352 (vect_create_new_slp_node): Likewise.
5353 (vect_supported_slp_permutation_p): Remove.
5354 (vect_slp_rearrange_stmts): Adjust.
5355 (vect_supported_load_permutation_p): Likewise. Inline
5356 vect_supported_slp_permutation_p here.
5357 (vect_analyze_slp_instance): Compute load permutations per
5358 slp node instead of per instance.
5359 (vect_get_slp_defs): Adjust.
5360 (vect_transform_slp_perm_load): Likewise.
5361 (vect_schedule_slp_instance): Remove redundant code.
5362 (vect_schedule_slp): Remove hack for PR56270, add it ...
5363 * tree-vect-stmts.c (vectorizable_load): ... here, do not
5364 CSE loads for SLP. Adjust.
5365
ede22fc3
GY
53662013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
5367
5368 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
5369 spelling in two comments.
5370
67bc84fb
GY
53712013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
5372
5373 PR target/56797
5374 * config/arm/arm.c (load_multiple_sequence): Require SP
5375 as base register for loads if SP is in the register list.
5376
e248d83f
MJ
53772013-04-19 Martin Jambor <mjambor@suse.cz>
5378
5379 PR tree-optimization/56718
5380 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
5381 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
5382 and made public. Adjusted all callers.
5383 (ipa_intraprocedural_devirtualization): New function.
5384 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
5385 (ipa_intraprocedural_devirtualization): Likewise.
5386 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
5387
4891e8f8
RB
53882013-04-19 Richard Biener <rguenther@suse.de>
5389
5390 PR tree-optimization/57000
5391 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
5392
dad89f7c
TG
53932013-04-19 Terry Guo <terry.guo@arm.com>
5394
5395 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
5396 Replace with ...
5397 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
5398 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
5399 (cortex_m4_fmacs): Use new reservations.
5400 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
5401
72ea0d47
VM
54022013-04-18 Vladimir Makarov <vmakarov@redhat.com>
5403
f1e6512c 5404 PR rtl-optimization/56999
72ea0d47
VM
5405 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
5406 related code.
5407 (lra_coalesce): Remove split_origin_bitmap and related code.
5408 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
5409 ranges if necessary.
5410
780a5b71
UB
54112013-04-18 Uros Bizjak <ubizjak@gmail.com>
5412
5413 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
5414 New array.
5415 (ix86_expand_call): Remove clobbered_registers array and use
5416 x86_64_ms_sysv_extra_clobbered_registers instead.
5417 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
5418 Declare here.
5419 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
5420 predicate.
5421 * config/i386/i386.md (*call_rex64_ms_sysv): Use
5422 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
5423 (*call_value_rex64_ms_sysv): Ditto.
5424
6f5a366a
CC
54252013-04-18 Cary Coutant <ccoutant@google.com>
5426
5427 * dwarf2out.c (output_pubnames): Check die_perennial_p of
5428 parent instead of die_mark.
5429
475b8f37
DN
54302013-04-18 Diego Novillo <dnovillo@google.com>
5431
5432 * gimple.c (create_gimple_tmp): New.
5433 (get_expr_type): New.
5434 (build_assign): New.
5435 (build_type_cast): New.
5436 * gimple.h (enum ssa_mode): Define.
5437 (gimple_seq_set_location): New.
5438 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 5439 to use build_assign and build_type_cast.
475b8f37 5440
08940f33
RB
54412013-04-18 Richard Biener <rguenther@suse.de>
5442
5443 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
5444 handle negative step. Remove redundant checks.
5445 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
5446 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
5447 for negative step and grouped loads fail to vectorize.
5448
0e0f87d4
SB
54492013-04-18 Steven Bosscher <steven@gcc.gnu.org>
5450
5451 * emit-rtl.c (reset_insn_used_flags): New function.
5452 (reset_all_used_flags): Use it.
5453 (verify_insn_sharing): New function.
5454 (verify_rtl_sharing): Fix verification for SEQUENCEs.
5455
4c445590
JJ
54562013-04-18 Jakub Jelinek <jakub@redhat.com>
5457
5458 PR tree-optimization/56984
5459 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
5460 and (x >> M) >= N don't register any assertion if N << M is the
5461 minimum value.
5462
6873ecab
SB
54632013-04-18 Steven Bosscher <steven@gcc.gnu.org>
5464
5465 * lower-subreg.c (resolve_simple_move): If called self-recursive,
5466 do not delete_insn insns that have not yet been emitted, only
5467 unlink them with remove_insn.
5468 * df-scan.c (df_insn_delete): Revert r197492.
5469
3ccb989e
SB
54702013-04-17 Steven Bosscher <steven@gcc.gnu.org>
5471
5472 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
5473 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
5474
54752013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
5476
5477 * config/arm/arm.md (movsicc_insn): Convert define_insn into
5478 define_insn_and_split.
5479 (and_scc,ior_scc,negscc): Likewise.
5480 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
5481
3ccb989e 54822013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
5483
5484 * config/arm/arm.c (use_return_insn): Return 0 for targets that
5485 can benefit from using a sequence of LDRD instructions in epilogue
5486 instead of a single LDM instruction.
5487
6d10a203
MLI
54882013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
5489
5490 PR 45688
5491 * doc/extend.texi: Fix typo.
5492
6983e6b5
RB
54932013-04-17 Richard Biener <rguenther@suse.de>
5494
5495 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
5496 (vect_build_slp_tree): ... here.
5497 (vect_build_slp_tree_1): Compute which stmts of the SLP group
5498 match. Remove special-casing of mismatched complex loads.
5499 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
5500 re-try the match with swapped commutative operands.
5501 (vect_supported_load_permutation_p): Remove special-casing of
5502 mismatched complex loads.
5503 (vect_analyze_slp_instance): Adjust.
5504
ef23e6a2
RB
55052013-04-17 Richard Biener <rguenther@suse.de>
5506
5507 PR rtl-optimization/56921
5508 * cfgloop.h (struct loop): Add simple_loop_desc member.
5509 (struct niter_desc): Mark with GTY(()).
5510 (simple_loop_desc): Do not use aux field but simple_loop_desc.
5511 * loop-iv.c (get_simple_loop_desc): Likewise.
5512 (free_simple_loop_desc): Likewise.
5513
5514 Revert
5515 2013-04-16 Richard Biener <rguenther@suse.de>
5516
5517 PR rtl-optimization/56921
5518 * loop-init.c (pass_rtl_move_loop_invariants): Add
5519 TODO_do_not_ggc_collect to todo_flags_finish.
5520 (pass_rtl_unswitch): Same.
5521 (pass_rtl_unroll_and_peel_loops): Same.
5522 (pass_rtl_doloop): Same.
5523
fc6f94f5
EB
55242013-04-17 Eric Botcazou <ebotcazou@adacore.com>
5525
5526 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
5527 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
5528 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
5529 references.
5530 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
5531 * tree-streamer.c (record_common_node): Adjust reference in comment.
5532
10a88311
TG
55332013-04-17 Terry Guo <terry.guo@arm.com>
5534
5535 * config/arm/cortex-m4.md: Add a new bypass.
5536
6d9b7208 55372013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
5538
5539 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
5540 New pattern.
5541 (*subs_<optab><mode>_multp2): New pattern.
5542 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
5543 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
5544
6d9b7208 55452013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
5546
5547 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
5548 (*subs_mul_imm_<mode>): New pattern.
5549
18a6701e
DE
55502013-04-16 David Edelsohn <dje.gcc@gmail.com>
5551
5552 PR target/56948
5553 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
5554 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
5555 (vsx_movti_32bit): Change j->wa to O->wa.
5556
07c37b2f
RB
55572013-04-16 Richard Biener <rguenther@suse.de>
5558
5559 PR rtl-optimization/56921
5560 * loop-init.c (pass_rtl_move_loop_invariants): Add
5561 TODO_do_not_ggc_collect to todo_flags_finish.
5562 (pass_rtl_unswitch): Same.
5563 (pass_rtl_unroll_and_peel_loops): Same.
5564 (pass_rtl_doloop): Same.
5565
0e0f87d4 55662013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
5567
5568 * config/arm/arm.c (emit_multi_reg_push): New declaration
5569 for an existing function.
5570 (arm_emit_strd_push): New function.
5571 (arm_expand_prologue): Used here.
5572 (arm_emit_ldrd_pop): New function.
5573 (arm_expand_epilogue): Used here.
5574 (arm_get_frame_offsets): Update condition.
5575 (arm_emit_multi_reg_pop): Add a special case for load of a single
5576 register with writeback.
5577
5e8e2af4
UB
55782013-04-16 Uros Bizjak <ubizjak@gmail.com>
5579
5580 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
5581 description.
5582
9fd9ccf7
RB
55832013-04-16 Richard Biener <rguenther@suse.de>
5584
5585 PR tree-optimization/56756
5586 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
5587 (first_mem_ref_loc): New.
5588 (execute_sm): Place the load temporarily before a previous
5589 access instead of in the latch edge to ensure its SSA dependencies
5590 are defined at points dominating the load.
5591
96fba521
SB
55922013-04-16 Steven Bosscher <steven@gcc.gnu.org>
5593
4c8af858
SB
5594 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
5595 correct fix by moving header and footer insn to the footer of
5596 the merged basic block. Clear BB_END of the merged-away block.
5597
96fba521
SB
5598 PR middle-end/43631
5599 * emit-rtl.c (make_note_raw): New function.
5600 (link_insn_into_chain): New static inline function.
5601 (add_insn): Use it.
5602 (add_insn_before, add_insn_after): Factor insn chain linking code...
5603 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
5604 using link_insn_into_chain.
5605 (note_outside_basic_block_p): New helper function for emit_note_after
5606 and emit_note_before.
5607 (emit_note_after): Use nobb variant of add_insn_after if the note
5608 should not be contained in a basic block.
5609 (emit_note_before): Use nobb variant of add_insn_before if the note
5610 should not be contained in a basic block.
5611 (emit_note_copy): Use make_note_raw.
5612 (emit_note): Likewise.
5613 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
5614 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
5615 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
5616 the moved barrier the tail of the basic block it follows.
5617 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
5618
7b8265ba
JJ
56192013-04-15 Jakub Jelinek <jakub@redhat.com>
5620
5621 PR tree-optimization/56962
5622 * gimple-ssa-strength-reduction.c (record_increment): Only set
5623 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
5624 either rhs1 or rhs2 is equal to c->base_expr.
5625
5185d248
RB
56262013-04-15 Richard Biener <rguenther@suse.de>
5627
5628 PR tree-optimization/56933
5629 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
5630 member.
5631 (GROUP_READ_WRITE_DEPENDENCE): Remove.
5632 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
5633 * tree-vect-data-refs.c (vect_analyze_group_access): Move
5634 dependence check ...
5635 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
5636 ... here.
5637 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
5638 GROUP_READ_WRITE_DEPENDENCE.
5639
a24243a0
AK
56402013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5641
5642 * emit-rtl.c (reset_all_used_flags): New function.
5643 (verify_rtl_sharing): Call reset_all_used_flags before and after
5644 performing the checks.
5645
1c50eada
KT
56462013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5647
5648 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
5649 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
5650 * config/arm/constraints.md (De): New constraint.
5651 * config/arm/neon.md (anddi3_neon): Delete.
5652 (neon_vand<mode>): Expand to standard anddi3 pattern.
5653 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
5654 Move earlier in the file.
5655 (neon_inv_logic_op2): Likewise.
5656 (arm_anddi_operand_neon): New predicate.
5657
e927b6ad
RO
56582013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5659
5660 * configure.ac (gcc_cv_ld_as_needed): Set
5661 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
5662 Use -z ignore, -z record on *-*-solaris2*.
5663 (HAVE_LD_AS_NEEDED): Update comment.
5664 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
5665 * configure: Regenerate.
5666 * config.in: Regenerate.
5667 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
5668 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
5669 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
5670 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
5671 equivalents. Fix markup.
5672 * doc/tm.texi: Regenerate.
5673
e0ea8797
AH
56742013-04-15 Andrew Hsieh <andrewhsieh.google.com>
5675
5676 * config/i386/i386.opt: New option mstack-protector-guard=.
5677 * config/i386/i386-opts.h: Add enum stack_protector_guard.
5678 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
5679 TARGET_SSP_TLS_GUARD.
5680 * config/i386/i386.c (ix86_option_override_internal): Set
5681 ix86_stack_protector_guard.
5682 * config/i386/i386.md (stack_protect_set): Enable for
5683 TARGET_SSP_TLS_GUARD only.
5684 (stack_protect_set_<mode>): Ditto.
5685 (stack_protect_test): Ditto.
5686 (stack_protect_test_<mode>): Ditto.
5687 * doc/invoke.texi (i386 Option): Document.
5688
811b72f9
EB
56892013-04-15 Eric Botcazou <ebotcazou@adacore.com>
5690
5691 PR target/56890
5692 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
5693 (S_MODES): Set H_MODE bit.
5694 (SF_MODES): Set only S_MODE and SF_MODE bits.
5695 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
5696 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
5697 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
5698 <MODE_FLOAT>: Likewise.
5699
5529fdd6
JY
57002013-04-15 Joey Ye <joey.ye@arm.com>
5701
5702 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
5703
517b1da2
JY
57042013-04-15 Joey Ye <joey.ye@arm.com>
5705
5706 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
5707 for real far jump.
5708 (thumb_far_jump_used_p): Count instruction size and set
5709 far_jump_used.
5710
01007ae0
EB
57112013-04-14 Eric Botcazou <ebotcazou@adacore.com>
5712
5713 * reorg.c (fill_simple_delay_slots): Reindent block of code.
5714 * resource.c (mark_target_live_regs): Reformat conditional block.
5715
c46f6580
SB
57162013-04-13 Steven Bosscher <steven@gcc.gnu.org>
5717
5718 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
5719 notes, they are emitted only just before final.
5720 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
5721
1f397f45
SB
57222013-04-13 Steven Bosscher <steven@gcc.gnu.org>
5723
5724 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
5725 * cfgrtl.c (delete_insn): Call it here instead.
5726 * lra-spills.c (lra_final_code_change): Use delete_insn.
5727 * haifa-sched.c (sched_remove_insn): Likewise.
5728 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
5729 returning to the nop pool.
5730 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
5731 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
5732
58a51369
SB
57332013-04-12 Steven Bosscher <steven@gcc.gnu.org>
5734
5735 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
5736 * doc/tm.texi: Regenerated.
5737
33159866
UB
57382013-04-12 Uros Bizjak <ubizjak@gmail.com>
5739
5740 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
5741 QImode checks.
5742
226e378f
SB
57432013-04-12 Steven Bosscher <steven@gcc.gnu.org>
5744
5745 * df-core.c (df_find_def): Compare register numbers.
5746 (df_find_use): Likewise.
5747
fafb9b18
VM
57482013-04-12 Vladimir Makarov <vmakarov@redhat.com>
5749
5750 PR target/56903
5751 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
5752 lra_in_progress for return.
5753
9a946fd6
GY
57542013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
5755
5756 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
5757 define_insn into define_insn_and_split and emit movsicc patterns.
5758
41b83758
GY
57592013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
5760
5761 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
5762
d3afd9aa
RB
57632013-04-12 Richard Biener <rguenther@suse.de>
5764
5765 * tree-pass.h (TODO_do_not_ggc_collect): New.
5766 * passes.c (execute_one_ipa_transform_pass): Honor
5767 TODO_do_not_ggc_collect.
5768 (execute_one_pass): Likewise.
5769
5770 Revert
5771 2013-04-10 Richard Biener <rguenther@suse.de>
5772
5773 * passes.c (init_optimization_passes): Remove reload pass.
5774 * ira.c (do_reload): Merge into ...
5775 (ira): ... this.
5776 (rest_of_handle_reload): Remove.
5777 (pass_reload): Likewise.
5778 * config/i386/i386.c (ix86_option_override): Refer to ira instead
5779 of reload for vzeroupper pass placement.
5780
06f9b387
JJ
57812013-04-12 Jakub Jelinek <jakub@redhat.com>
5782
5783 PR tree-optimization/56918
5784 PR tree-optimization/56920
5785 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
5786 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
5787 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
5788 use wide_mul_with_sign method.
5789
953094d2
RB
57902013-04-12 Richard Biener <rguenther@suse.de>
5791
5792 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
5793 not be considered a gimple constant.
5794
bb506982
MG
57952013-04-12 Marc Glisse <marc.glisse@inria.fr>
5796
5797 * fold-const.c (const_binop): Handle vector shifts by a scalar.
5798 (fold_binary_loc): Call const_binop also for mixed vector-scalar
5799 operations.
5800
4b84d650
JJ
58012013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
5802 Jakub Jelinek <jakub@redhat.com>
5803
5804 * opts.c: Include diagnostic-color.h.
5805 (common_handle_option): Handle OPT_fdiagnostics_color_.
5806 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
5807 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
5808 (diagnostic-color.o): New.
5809 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
5810 (diagnostic_color_rule): New enum.
5811 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
5812 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
5813 the location string.
5814 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
5815 either NULL, or color kind.
5816 * diagnostic-color.c: New file.
5817 * diagnostic-color.h: New file.
5818 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
5819 arguments.
5820 * doc/invoke.texi (-fdiagnostics-color): Document.
5821 * pretty-print.h (pp_show_color): Define.
5822 (struct pretty_print_info): Add show_color field.
5823 * diagnostic.c: Include diagnostic-color.h.
5824 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
5825 macros. Colorize error:, warning: etc. strings and also the location
5826 string.
5827 (diagnostic_show_locus): Colorize the caret line.
5828 * pretty-print.c: Include diagnostic-color.h.
5829 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
5830 inside of %< %> quotes or quoted through q format modifier.
5831
067a1e71
AK
58322013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5833
33159866 5834 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 5835
33159866 58362013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
5837
5838 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
5839 code in CC_NZ mode.
5840 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
5841 pattern.
5842
7b55f98f
MP
58432013-04-11 Marek Polacek <polacek@redhat.com>
5844
5845 PR tree-optimization/48184
33159866 5846 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 5847
966b587e
EB
58482013-04-11 Eric Botcazou <ebotcazou@adacore.com>
5849
5850 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
5851 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
5852 (skip_simple_arithmetic): Tidy up.
5853 * tree.h (skip_simple_constant_arithmetic): Declare.
5854
33159866 58552013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
5856
5857 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
5858
1d42c1ec
RB
58592013-04-11 Richard Biener <rguenther@suse.de>
5860
5861 * tree-vect-loop.c (get_initial_def_for_induction): Properly
5862 generate vector constants.
5863
4ba5ea11
RB
58642013-04-11 Richard Biener <rguenther@suse.de>
5865
5866 PR tree-optimization/56878
5867 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
5868 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
5869 New function.
5870 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
5871 Prefer to align the DR with the most invariant base address.
5872
f0defe58
SKS
58732013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
5874
5875 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
5876 comment.
5877
d07458be
JG
58782013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
5879
5880 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
5881 floating-point vector comparisons against 0.
5882
146b8692
JJ
58832013-04-11 Jakub Jelinek <jakub@redhat.com>
5884
5885 PR tree-optimization/56899
5886 * fold-const.c (extract_muldiv_1): Apply distributive law
5887 only if TYPE_OVERFLOW_WRAPS (ctype).
5888
b8578ff7
BC
58892013-04-11 Bin Cheng <bin.cheng@arm.com>
5890
5891 PR target/56124
5892 * ira-costs.c (scan_one_insn): Check whether the source rtx of
5893 loading has side effect.
5894
0ea8a6f9
SB
58952013-04-10 Steven Bosscher <steven@gcc.gnu.org>
5896
5897 * config/sparc/sparc.c: Include tree-pass.h.
5898 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
5899 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
5900 head of file. Change return type. Split off gate function.
5901 (sparc_gate_work_around_errata): New function.
5902 (pass_work_around_errata): New pass definition.
5903 (insert_pass_work_around_errata) New pass insert definition to
5904 insert pass_work_around_errata just after delayed-branch scheduling.
5905 (sparc_option_override): Insert the pass.
5906 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
5907
42e37616
DM
59082013-04-10 David S. Miller <davem@davemloft.net>
5909
89deeb3b
DM
5910 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
5911 or -mcpu=hypersparc.
5912
42e37616
DM
5913 * target.def (cstore_mode): New hook.
5914 * target.h: Include insn-codes.h
5915 * targhooks.c: Likewise.
5916 (default_cstore_mode): New function.
5917 * targhooks.h: Declare it.
5918 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
5919 * doc/tm.texi: Rebuild.
5920 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
5921 target hook, rather than inspecting the insn_data.
5922 * config/sparc/sparc.c (sparc_cstore_mode): New function.
5923 (TARGET_CSTORE_MODE): Redefine.
5924 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
5925 result patterns.
5926 * config/sparc/predicates.md (cstore_result_operand): New special
5927 predicate.
5928 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
5929 Use it for operand 0.
5930 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
5931 (*snesi_special): Likewise.
5932 (*snesi_zero): Likewise.
5933 (*seqsi_zero): Likewise.
5934 (*sltu_insn): Likewise.
5935 (*sgeu_insn): Likewise.
5936 (*seqdi_special): Make operand 0 and comparison operation be of
5937 DImode.
5938 (*snedi_special): Likewise.
5939 (*snedi_special_vis3): Likewise.
5940 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
5941 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
5942 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
5943 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
5944 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
5945 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
5946 (*sltu_extend_sp64): Likewise.
5947 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
5948 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
5949 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
5950 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
5951 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
5952
95ca411e
YZ
59532013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
5954
5955 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
5956 (aarch64_start_file): Use the new function.
5957
6782438d 59582013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 5959 Jason Merrill <jason@redhat.com>
6782438d
SKS
5960
5961 * common.opt: Add -gdwarf.
5962 * opts.c (common_handle_option): Handle it.
5963 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
5964
bb313b93
RB
59652013-04-10 Richard Biener <rguenther@suse.de>
5966
5967 * passes.c (execute_todo): Do not call ggc_collect conditional here.
5968 (execute_one_ipa_transform_pass): But unconditionally here.
5969 (execute_one_pass): And here.
5970 (init_optimization_passes): Remove reload pass.
5971 * tree-pass.h (TODO_ggc_collect): Remove.
5972 (pass_reload): Likewise.
5973 * ira.c (do_reload): Merge into ...
5974 (ira): ... this.
5975 (rest_of_handle_reload): Remove.
5976 (pass_reload): Likewise.
5977 * config/i386/i386.c (ix86_option_override): Refer to ira instead
5978 of reload for vzeroupper pass placement.
5979 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
5980 and todo_flags_finish of all passes.
5981
793d9a16
RB
59822013-04-10 Richard Biener <rguenther@suse.de>
5983
5984 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
5985 first_const_oprnd field, rename first_def_type to first_op_type.
5986 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
5987 (vect_get_and_check_slp_defs): Always use the type of the
5988 operand. Allow mixed vect_external_def, vect_constant_def types.
5989 (vect_get_constant_vectors): Handle mixed vect_external_def,
5990 vect_constant_def types.
5991
ee8a9b7b
JR
59922013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
5993
5994 PR tree-optimization/55524
5995 * tree-ssa-math-opts.c
5996 (convert_mult_to_fma): Don't use an fms construct
5997 when we don't have an fms operation, but fnma, and it looks
5998 likely that we'll be able to use the latter.
5999
6957a6f6
ZZ
60002013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6001
6002 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
6003 function.
6004 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
6005 inline fail caused by overwritable functions.
6006
34ab4a5b
CJW
60072013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
6008
6009 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
6010 unnecessary bits in the constant power of two case.
6011
abf9bfbc
RB
60122013-04-10 Richard Biener <rguenther@suse.de>
6013
6014 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
6015 broken code swapping operands.
6016 (vect_build_slp_tree): Do not compute load permutations here.
6017 (vect_analyze_slp_instance): Compute load permutations here,
6018 after building the SLP tree.
6019
f408477e
CB
60202013-04-09 Christian Bruel <christian.bruel@st.com>
6021
6022 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
6023 of next/prev_real_insn.
6024
5ac42672
JH
60252013-04-09 Jan Hubicka <jh@suse.cz>
6026
abf9bfbc
RB
6027 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
6028 Drop aliased parameter.
5ac42672
JH
6029 (function_and_variable_visibility): Do not handle alias pairs.
6030 * cgraph.c (varpool_externally_visible_p): Update prototype.
6031 * varpool.c (varpool_add_new_variable): Update.
6032
5017f1d2
KT
60332013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6034
6035 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
6036
48eecbee
SB
60372013-04-09 Steven Bosscher <steven@gcc.gnu.org>
6038
a949cf1c
SB
6039 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
6040
48eecbee
SB
6041 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
6042
75ef8e3d
MP
60432013-04-09 Marek Polacek <polacek@redhat.com>
6044
6045 PR tree-optimization/48762
33159866 6046 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 6047
23847df4
RB
60482013-04-09 Richard Biener <rguenther@suse.de>
6049
6050 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
6051 dealing with cost.
6052 (vect_build_slp_tree): Likewise.
6053 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
6054 calculating the cost of a SLP instance.
6055 (vect_analyze_slp_instance): Use it from here, after building
6056 the SLP tree.
6057
ea3a0fde
JJ
60582013-04-09 Jakub Jelinek <jakub@redhat.com>
6059
6060 PR middle-end/56883
6061 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
6062 expand_omp_for_static_chunk): Use simple_p = true in
6063 force_gimple_operand_gsi calls when assigning to addressable decls.
6064
a32dfe9d
JL
60652013-04-09 Jeff Law <law@redhat.com>
6066
6067 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
6068 when the boolean was created by converting a wider object which
6069 had a boolean range.
6070
d755c7ef
RB
60712013-04-09 Richard Biener <rguenther@suse.de>
6072
6073 * tree-vectorizer.h (slp_void_p): Remove.
6074 (slp_tree): Typedef before _slp_tree declaration.
6075 (struct _slp_tree): Use a vector of slp_tree as children.
6076 (vect_get_place_in_interleaving_chain): Remove.
6077 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
6078 Move ...
6079 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
6080 and make static.
6081 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
6082 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
6083 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
6084 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
6085 Use slp_node instead of slp_void_p and adjust.
6086
3d741091
RB
60872013-04-09 Richard Biener <rguenther@suse.de>
6088
6089 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
6090 work that is not necessary.
6091
39307ba7
JJ
60922013-04-09 Jakub Jelinek <jakub@redhat.com>
6093
6094 PR tree-optimization/56854
6095 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
6096 forward into clobber stmts if it would change MEM_REF lhs into
6097 non-MEM_REF.
6098
343881fd
MK
60992013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
6100
6101 * tree.c (type_hash_lookup, type_hash_add): Make static.
6102 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
6103
3922658a
RB
61042013-04-09 Richard Biener <rguenther@suse.de>
6105
6106 * tree.h (unsave_expr_now): Remove.
6107 * tree-inline.c (mark_local_for_remap_r): Remove.
6108 (unsave_expr_1): Likewise.
6109 (unsave_r): Likewise.
6110 (unsave_expr_now): Likewise.
6111 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
6112 (propagate_tree_value): Likewise.
6113
9fb6b620
SB
61142013-04-08 Steven Bosscher <steven@gcc.gnu.org>
6115
6116 * doc/rtl.texi (sequence): Rewrite documentation to match the
6117 current use of SEQUENCE rtl objects.
6118 * rtl.def (SEQUENCE): Likewise.
6119
6120 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
6121 Update documentation.
6122 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
6123 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
6124
6125 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
6126
8ddb5a29
TJ
61272013-04-08 Teresa Johnson <tejohnson@google.com>
6128
6129 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
6130 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 6131 methods.
8ddb5a29
TJ
6132 (estimate_edge_size_and_time): Add comment to suggest using rounding
6133 methods.
6134 (estimate_node_size_and_time): Ditto.
6135 (remap_edge_change_prob): Use helper rounding divide methods.
6136 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
6137 (gimple_mod_pow2_value_transform): Ditto.
6138 (gimple_mod_subtract_transform): Ditto.
6139 (gimple_ic_transform): Ditto.
6140 (gimple_stringops_transform): Ditto.
6141 * stmt.c (conditional_probability): Ditto.
6142 (emit_case_dispatch_table): Ditto.
6143 * lto-cgraph.c (merge_profile_summaries): Ditto.
6144 * tree-optimize.c (execute_fixup_cfg): Ditto.
6145 * cfgcleanup.c (try_forward_edges): Ditto.
6146 * cfgloopmanip.c (scale_loop_profile): Ditto.
6147 (loopify): Ditto.
6148 (duplicate_loop_to_header_edge): Ditto.
6149 (lv_adjust_loop_entry_edge): Ditto.
6150 * tree-vect-loop.c (vect_transform_loop): Ditto.
6151 * profile.c (compute_branch_probabilities): Ditto.
6152 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
6153 * lto-streamer-in.c (input_cfg): Ditto.
6154 * gimple-streamer-in.c (input_bb): Ditto.
6155 * ipa-cp.c (update_profiling_info): Ditto.
6156 (update_specialized_profile): Ditto.
6157 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
6158 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 6159 rounding methods.
8ddb5a29
TJ
6160 * sched-rgn.c (compute_dom_prob_ps): Ditto.
6161 (compute_trg_info): Ditto.
6162 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
6163 (purge_dead_edges): Ditto.
6164 * loop-unswitch.c (unswitch_loop): Ditto.
6165 * cgraphclones.c (cgraph_clone_edge): Ditto.
6166 (cgraph_clone_node): Ditto.
6167 * tree-inline.c (copy_bb): Ditto.
6168 (copy_edges_for_bb): Ditto.
6169 (initialize_cfun): Ditto.
6170 (copy_cfg_body): Ditto.
6171 (expand_call_inline): Ditto.
6172
661e6bd7
KT
61732013-04-08 Kai Tietz <ktietz@redhat.com>
6174
6175 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
6176 TARGET_CYGWIN64 by TARGET_64BIT.
6177
105766f3
JR
61782013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
6179
6180 * config/epiphany/epiphany.md (GPR_1): New constant.
6181 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
6182 * config/epiphany/epiphany.c (gen_compare_reg):
6183 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
6184 is already in place.
6185 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
6186 Don't require being called during rtl expansion; If y operlaps r0,
6187 return 0.
6188 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
6189 (epiphany_expand_epilogue): Likewise.
6190
8afab237
JR
6191 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
6192 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 6193 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 6194
fa7707d6
JR
6195 * config/epiphany/constraints.md (CnL): New constraint.
6196 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
6197 * config/epiphany/predicates.md (add_operand): Allow 1024.
6198
5138e18d
JR
6199 * config/epiphany/epiphany.md (logical_op): New code iterator.
6200 (op_mnc): New code attribute.
6201 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
6202 (mov_f+1, mov_f+2): New peephole2 patterns.
6203
2ccc703d
JR
6204 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
6205 (cstoresi4): Also allow re-use of zero result when doing a NE
6206 comparison to a non-zero operand.
aefb0819 6207 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 6208
093ac0a5
JR
6209 * config/epiphany/epiphany.md (<insn_opname>v2si3):
6210 Use gen_addsi3_i / gen_subsi3_i.
6211
f223bb13
JJ
62122013-04-08 Jakub Jelinek <jakub@redhat.com>
6213
6214 PR c++/34949
6215 PR c++/50243
6216 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
6217 contain anything but clobbers, at most one __builtin_stack_restore,
6218 optionally debug stmts and final resx, and if it has at least one
6219 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
6220 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
6221 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
6222 which isn't defaut definition, remove them.
6223 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
6224 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
6225 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
6226 with MEM_REF LHS with SSA_NAME address.
6227
4481581f
JL
62282013-04-08 Jeff Law <law@redhat.com>
6229
6230 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 6231
451dabda
RB
62322013-04-08 Richard Biener <rguenther@suse.de>
6233
6234 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
6235 extra newline.
6236 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
6237 determined vector type.
6238 (vect_analyze_data_refs): Likewise.
6239 (vect_get_new_vect_var): Adjust.
6240 (vect_create_destination_var): Preserve SSA name versions.
6241 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
6242 not dump anything here.
6243
3b088b47
JR
62442013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
6245
6246 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
6247 Add member lr_slot_known.
6248 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
6249 if necessary.
6250 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
6251 Remove code that sets lr_slot_offset according to what a previous
6252 version of epiphany_emit_save_restore used to do.
6253 (epiphany_emit_save_restore): When doing an lr save or restore,
6254 set/verify lr_slot_known and lr_slot_offset.
6255
d8484d41
XQ
62562013-04-08 Xinyu Qi <xyqi@marvell.com>
6257
33159866
UB
6258 PR target/54338
6259 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
6260 in ALL_REGS.
6261
481be1c4
RB
62622013-04-08 Richard Biener <rguenther@suse.de>
6263
6264 * alias.c (find_base_term): Fix thinko in previous change.
6265
401f3a81
JJ
62662013-04-08 Jakub Jelinek <jakub@redhat.com>
6267
6268 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
6269 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
6270 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
6271 if possible to compute val.
6272 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
6273 For QImode integers don't require anything about precision. Use
6274 const_with_all_bytes_same to find out if the constant doesn't have
6275 repeated bytes in it.
6276
03ed99a8
AK
62772013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6278
6279 * config/s390/s390.c (s390_expand_insv): Only accept insertions
6280 within mode size.
6281
781b2e62
MP
62822013-04-08 Marek Polacek <polacek@redhat.com>
6283
6284 PR rtl-optimization/48182
6285 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
6286 value to 1.
6287
27e430a2
JDA
62882013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6289
6290 PR target/55487
6291 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
6292 nuses, make sure we have a label.
6293
4902aa64
BS
62942013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6295
6296 PR target/56843
6297 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
6298 (rs6000_emit_swdiv_low_precision): Remove.
6299 (rs6000_emit_swdiv): Rewrite to handle between one and four
6300 iterations of Newton-Raphson generally; modify required number of
6301 iterations for some cases.
6302 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
6303
7bca81dc
SB
63042013-04-05 Steven Bosscher <steven@gcc.gnu.org>
6305
6306 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
6307 set-but-unused variable.
6308
6309 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
6310 basic blocks of released function bodies garbage-collectable.
6311
6312 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
6313 (struct rtl_opt_pass): Add TODO_df_finish.
6314
6315 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
6316
4542a38a
GY
63172013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6318
6319 * config/arm/constraints.md (q): New constraint.
6320 * config/arm/ldrdstrd.md: New file.
6321 * config/arm/arm.md (ldrdstrd.md) New include.
6322 (arm_movdi): Use "q" instead of "r" constraint
6323 for double-word memory access.
6324 (movdf_soft_insn): Likewise.
6325 * config/arm/vfp.md (movdi_vfp): Likewise.
6326 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 6327 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
6328 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
6329 (mem_ok_for_ldrd_strd): Likewise.
6330 (output_move_double): Update assertion.
6331
2385b218
GY
63322013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6333
6334 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
6335
75fe1cb5
GY
63362013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6337
6338 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
6339 define_insn_and_split.
6340 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
6341
dd660e8e
GY
63422013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6343
6344 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
6345 define_insn_and_split.
33159866 6346 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
6347 (shiftsi3_compare): New pattern.
6348 (rrx): New pattern.
6349 * config/arm/unspecs.md (UNSPEC_RRX): New.
6350
045e472c
GY
63512013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6352
6353 * config/arm/arm.md (negdi_extendsidi): New pattern.
6354 (negdi_zero_extendsidi): Likewise.
6355
3f3bf1a8
GY
63562013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6357
6358 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
6359 define_insn_and_split.
6360 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
6361 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
6362
b0b49556
GY
63632013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6364
6365 * config/arm/arm.md (arm_subdi3): Convert define_insn into
6366 define_insn_and_split.
6367 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
6368 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
6369
d633dd84
GY
63702013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6371
6372 * config/arm/arm.md (subsi3_carryin): New pattern.
6373 (subsi3_carryin_const): Likewise.
6374 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
6375 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
6376
f4499066
GY
63772013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6378
6379 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
6380
ceef6fd9
GY
63812013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6382
6383 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 6384 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 6385
ddbdd8a7
KT
63862013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6387
6388 * config/arm/arm.c (arm_expand_builtin): Change fcode
6389 type to unsigned int.
6390
8456d78a
RR
63912013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6392
6393 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
6394
526c230f
ILT
63952013-04-04 Ian Lance Taylor <iant@google.com>
6396
33159866
UB
6397 * doc/standards.texi (Standards): The Go frontend supports the Go 1
6398 language standard.
526c230f 6399
3cfbe04d
SB
64002013-04-04 Steven Bosscher <steven@gcc.gnu.org>
6401
6402 PR middle-end/56729
6403 * df-scan.c (df_insn_delete): Disable failing assert.
6404
dfa3f8d0
KT
64052013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6406
6407 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
6408 New function prototype.
6409 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
6410 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
6411 (arm_builtin_vectorized_function): New function.
6412
f7837758
KT
64132013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6414
6415 * config/arm/arm_neon_builtins.def: New file.
6416 * config/arm/arm.c (neon_builtin_data): Move contents to
6417 arm_neon_builtins.def.
6418 (enum arm_builtins): Include neon builtin definitions.
6419 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 6420 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 6421
39c1b6db
MP
64222013-04-04 Marek Polacek <polacek@redhat.com>
6423
6424 PR tree-optimization/48186
6425 * predict.c (maybe_hot_frequency_p): Return false if
6426 HOT_BB_FREQUENCY_FRACTION is 0.
6427 (cgraph_maybe_hot_edge_p): Likewise.
6428
314f64eb
RB
64292013-04-04 Richard Biener <rguenther@suse.de>
6430
6431 PR tree-optimization/56826
6432 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
6433 more accurately.
6434
51a905b2
RB
64352013-04-04 Richard Biener <rguenther@suse.de>
6436
6437 PR tree-optimization/56213
6438 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 6439 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 6440
f1bf4f3a
RB
64412013-04-04 Richard Biener <rguenther@suse.de>
6442
6443 PR tree-optimization/56837
6444 * tree-loop-distribution.c (classify_partition): For non-zero
6445 values require that the value has the same precision as its
6446 mode to be useful as memset value.
6447
0bca7ded
NC
64482013-04-03 Nick Clifton <nickc@redhat.com>
6449
33159866 6450 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
6451 (fmssf4): Use fmsf.s on E3V5 architectures.
6452 (fnmasf4): Use fnmaf.s on E3V5 architectures.
6453 (fnmssf4): Use fnmsf.s on E3V5 architectures.
6454
b4019227
JL
64552013-04-03 Jeff Law <law@redhat.com>
6456
6457 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
6458 (lra-eliminations.o): Likewise.
6459
f57ddb5b
TJ
64602013-04-03 Teresa Johnson <tejohnson@google.com>
6461
6462 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 6463 compute_working_sets here from profile.c.
f57ddb5b 6464 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
6465 (gcov_working_set_t): Moved typedef here from basic-block.h
6466 (compute_working_set): Declare.
f57ddb5b
TJ
6467 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
6468 (get_working_sets): Renamed from compute_working_set,
33159866 6469 replace most of body with call to new compute_working_sets.
f57ddb5b 6470 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
6471 to get_working_sets.
6472 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 6473 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 6474 to get_working_sets.
f57ddb5b
TJ
6475 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
6476 * gcov-dump.c (dump_working_sets): New function.
6477
5e0919f1
KZ
64782013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
6479
6480 * hwint.c (sext_hwi, zext_hwi): New functions.
6481 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
6482 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
6483 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
6484 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
6485 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
6486 (sext_hwi, zext_hwi): New functions.
0bca7ded 6487
be672e08
JL
64882013-04-03 Jeff Law <law@redhat.com>
6489
6490 PR tree-optimization/56799
33159866
UB
6491 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
6492 back test for widening conversion erroneously dropped in prior change.
be672e08 6493
9d821fa5
KT
64942013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6495
6496 PR target/56809
6497 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
6498 instead of next_real_insn.
6499
71c581e7
MP
65002013-04-03 Marek Polacek <polacek@redhat.com>
6501
6502 PR sanitizer/55702
33159866 6503 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 6504
4a32ef80
KT
65052013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6506
6507 PR target/56809
6508 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
6509 next_real_insn.
6510 (thumb1_output_casesi): Likewise.
6511 (thumb2_output_casesi): Likewise.
6512
1b2253d4
RB
65132013-04-03 Richard Biener <rguenther@suse.de>
6514
6515 PR tree-optimization/56817
6516 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
6517 Split out ...
6518 (tree_unroll_loops_completely_1): ... new function to manually
6519 walk the loop tree, properly defering outer loops of unrolled
6520 loops to later iterations.
6521
38000232
MG
65222013-04-03 Marc Glisse <marc.glisse@inria.fr>
6523
6524 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
6525 (vectorizable_load): Likewise.
6526 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
6527 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
6528
3fa35298
MG
65292013-04-03 Marc Glisse <marc.glisse@inria.fr>
6530
6531 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
6532 BIT_FIELD_REF.
6533
b3d45ff0
UW
65342013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6535
6536 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
6537
ec9202a8
BC
65382013-04-03 Bin Cheng <bin.cheng@arm.com>
6539
6540 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
6541
6805bd36
MG
65422013-04-03 Marc Glisse <marc.glisse@inria.fr>
6543
6544 PR tree-optimization/56790
33159866
UB
6545 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
6546 folding.
6805bd36 6547
da694a77
MG
65482013-04-03 Marc Glisse <marc.glisse@inria.fr>
6549
6550 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
6551 Handle VEC_MERGE.
6552 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
6553 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
6554 equal arguments.
6555
4e7d7b3d
JJ
65562013-04-03 Jakub Jelinek <jakub@redhat.com>
6557
6558 PR c/19449
6559 * tree.h (force_folding_builtin_constant_p): New decl.
6560 * builtins.c (force_folding_builtin_constant_p): New variable.
6561 (fold_builtin_constant_p): Fold immediately also if
6562 force_folding_builtin_constant_p.
6563
e6c9d234
RB
65642013-04-03 Richard Biener <rguenther@suse.de>
6565
6566 PR tree-optimization/56812
6567 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
6568 DRs of the same interleaving chain are independent.
6569
984d07dd
JM
65702013-04-02 Jason Merrill <jason@redhat.com>
6571
6572 * gdbinit.in (pbb): Use debug fn.
6573
622849c9
LC
65742013-04-02 Lawrence Crowl <crowl@google.com>
6575
6576 * sese.h (struct ivtype_map_elt_s): Remove unused.
6577 (extern debug_ivtype_map): Remove unused.
6578 (extern eq_ivtype_map_elts): Remove unused.
6579 * sese.c (debug_ivtype_map): Removed unused.
6580 (debug_ivtype_map_1): Removed unused.
6581 (debug_ivtype_elt): Remove unused.
6582 (eq_ivtype_map_elts): Remove unused.
6583
6584
82c0e1a0
KT
65852013-04-02 Kai Tietz <ktietz@redhat.com>
6586
6587 PR target/52790
6588 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
6589 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
6590 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
6591 function.
82c0e1a0
KT
6592 (legitimize_pe_coff_symbol): Likewise.
6593 (is_imported_p): New helper-function.
6594 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
6595 for Windows x64 targets.
6596 (ix86_expand_prologue): Optimize for pe-coff targets.
6597 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
6598 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
6599 medium/large code-model.
6600 (legitimize_pic_address): Likewise.
6601 (legitimize_tls_address): Likewise.
6602 (ix86_expand_call): Likewise.
6603 (x86_output_mi_thunk): Likewise.
6604 (get_dllimport_decl): Add new beimport argument.
6605 (construct_plt_address): Don't assert for x64 pe-coff targets.
6606 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
6607 targets.
6608 (SYMBOL_FLAG_STUBVAR): New macro.
6609 (SYMBOL_REF_STUBVAR_P): Likewise.
6610 * config/i386/winnt.c (stub_list): New structure.
6611 (stub_head): New local variable.
6612 (i386_pe_record_stub): New function.
6613 (i386_pe_file_end): Emit refptr-stubs.
6614
5d751b0c
JJ
66152013-04-02 Jakub Jelinek <jakub@redhat.com>
6616
09bb4c99
JJ
6617 PR rtl-optimization/56745
6618 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
6619 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
6620
a1d8947a
JJ
6621 PR c++/34949
6622 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
6623 and both of them are MEM_REFs, just compare first argument for
6624 equality and attempt to deal even with differing offsets.
6625
5d751b0c
JJ
6626 PR c++/34949
6627 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
6628 of gimple_clobber_p to be MEM_REF.
6629 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
6630 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
6631 after gimplification.
6632 * asan.c (get_mem_ref_of_assignment): Don't instrument
6633 gimple_clobber_p stmts.
6634 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
6635 gimple_clobber_p stmt if they have MEM_REF lhs and
6636 are dead because of another gimple_clobber_p stmt.
6637 * tree-ssa-live.c (clear_unused_block_pointer): Treat
6638 gimple_clobber_p stmts like debug stmts.
6639 (remove_unused_locals): Remove clobbers with MEM_REF lhs
6640 that refer to unused VAR_DECLs or uninitialized values.
6641 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
6642 gimple_clobber_p stmts if they refer to removed parameters.
6643 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
6644 formatting.
6645
e594716a
UB
66462013-04-02 Uros Bizjak <ubizjak@gmail.com>
6647
6648 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
6649 using SWI48 mode attribute.
6650
7a80735b
WM
66512013-04-02 Wei Mi <wmi@google.com>
6652
6653 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
6654 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
6655 *<rotate_insn><mode>3_mask in i386.md.
6656
f423a9e4
AI
66572013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
6658
6659 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
6660
90eb75f2
RB
66612013-04-02 Richard Biener <rguenther@suse.de>
6662
6663 PR tree-optimization/56778
6664 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
6665 Runtime alias tests are not supported for gather loads.
6666 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
6667 stmts referenced from SSA operands before updating SSA form.
6668
d8c69a92
IC
66692013-04-02 Ian Caulfield <ian.caulfield@arm.com>
6670 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6671
6672 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
6673 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
6674 * config/arm/cortex-a53.md: New file.
6675 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
6676 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
6677 * config/arm/arm.c (arm_issue_rate): Likewise.
6678 * config/arm/arm-tune.md: Regenerate
6679 * config/arm/arm-tables.opt: Regenerate.
6680 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 6681
239eb04c
ZC
66822013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
6683
6684 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
6685 non-static link.
6686
c902d3c8
SN
66872013-04-02 Sofiane Naci <sofiane.naci@arm.com>
6688
d8c69a92
IC
6689 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
6690 scalar load/store operations using B/H registers.
c902d3c8
SN
6691 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
6692
051d0e2f
SN
66932013-04-02 Sofiane Naci <sofiane.naci@arm.com>
6694
6695 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
6696 scalar move.
6697 * config/aarch64/aarch64.c
6698 (aarch64_simd_scalar_immediate_valid_for_move): New.
6699 * config/aarch64/aarch64-protos.h
6700 (aarch64_simd_scalar_immediate_valid_for_move): New.
6701 * config/aarch64/constraints.md (Dh, Dq): New.
6702 * config/aarch64/iterators.md (hq): New.
6703
0ee1e3d9
EB
67042013-04-02 Eric Botcazou <ebotcazou@adacore.com>
6705
6706 * reorg.c (get_branch_condition): Deal with conditional returns.
6707 (fill_simple_delay_slots): Remove dead code dealing with jumps.
6708
136fb3f7
WM
67092013-04-01 Wei Mi <wmi@google.com>
6710
6711 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
6712 Truncate operand 2 using %b asm operand modifier.
6713 (*<shift_insn><mode>3_mask): Ditto.
6714 (*<rotate_insn><mode>3_mask): Ditto.
6715
6388c738
SB
67162013-04-01 Steven Bosscher <steven@gcc.gnu.org>
6717
6718 PR middle-end/56798
6719 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
6720
f7a4d826
KK
67212013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
6722
6723 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
6724 of next_real_insn.
6725 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
6726
4b943a49
LC
67272013-03-30 Lawrence Crowl <crowl@google.com>
6728
6729 * dse.c (clear_alias_sets): Remove never set.
6730 (disqualified_clear_alias_sets): Remove never set.
6731 (clear_alias_mode_pool): Remove never set.
6732 (dse_step0): Remove condition that is never true.
6733 (canon_address): Remove condition that is never true.
6734 (dse_step7): Remove condition that is never true.
6735 (rest_of_handle_dse): Remove condition that is never true.
6736 (rest_of_handle_dse::did_global): Remove never read from above.
6737 (dse_step2_spill): Remove never called from above.
6738 (dse_step5_spill): Remove never called from above.
6739
39718607
SB
67402013-03-30 Steven Bosscher <steven@gcc.gnu.org>
6741
da5c6bde
SB
6742 * doc/md.texi (Standard Names) <casesi>: Update documentation for
6743 JUMP_TABLE_DATA changes.
6744 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
6745 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
6746 (Insns) <jump_table_data>: New entry.
6747 * doc/tm.texi: Regenerate.
6748
39718607
SB
6749 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
6750
6751 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
6752 for table jump at the end of a basic block using tablejump_p.
6753 * targhooks.c (default_invalid_within_doloop): Likewise.
6754 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
6755 target hook implementation that is identical to the default hook.
6756 (rs6000_invalid_within_doloop): Remove.
6757
6758 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
6759 unused variable from tablejump_p call.
6760
6761 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
6762 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
6763 (INSN_DELETED_P): Likewise.
6764 (emit_jump_table_data): New prototype.
6765 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
6766 after 4th as unused.
6767 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
6768 * sched-vis.c (print_insn): Likewise.
6769 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
6770 insn for compatibility with back ends that use next_active_insn to
6771 identify jump table data.
6772 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
6773 (remove_insn): Likewise.
6774 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
6775 to be emitted.
6776 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
6777 (emit_jump_table_data): New function.
6778
6779 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
6780 basic block, a JUMP_TABLE_DATA never is.
6781 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
6782 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
6783 off from code handling real insns.
6784 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
6785 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
6786 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
6787 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
6788 is not a NONDEBUG_INSN_P.
6789 * ira-costs.c (scan_one_insn): Likewise.
6790 * jump.c (mark_all_labels): Likewise.
6791 (mark_jump_label_1): Likewise.
6792 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
6793 * lra.c (get_insn_freq): Expect all insns reaching here to be in
6794 a basic block.
6795 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
6796 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
6797 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
6798 JUMP_TABLE_DATA_P insns.
6799 (calculate_elim_costs_all_insns): Likewise.
6800 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
6801 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
6802 (delete_output_reload): Code style fixups.
6803 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
6804 insn flags on this non-insn.
6805 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
6806 as scheduling barriers, for pre-change compatibility.
6807 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
6808 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
6809
6810 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
6811 redundant JUMP_TABLE_DATA_P test.
6812 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
6813 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
6814 (frv_for_each_packet): Likewise.
6815 * config/i386/i386.c (min_insn_size): Likewise.
6816 (ix86_avoid_jump_mispredicts): Likewise.
6817 * config/m32r/m32r.c (m32r_is_insn): Likewise.
6818 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
6819 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
6820 (mips16_insn_length): Robustify.
6821 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
6822 (mips16_split_long_branches): Likewise.
6823 * config/pa/pa.c (pa_combine_instructions): Likewise.
6824 * config/rs6000/rs6000.c (get_next_active_insn): Treat
6825 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
6826 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
6827 as contributing to pool range lengths.
6828 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
6829 Remove redundant JUMP_TABLE_DATA_P test.
6830 (sh_loop_align): Likewise.
6831 (split_branches): Likewise.
6832 (sh_insn_length_adjustment): Likewise.
6833 * config/spu/spu.c (get_branch_target): Likewise.
6834
0208f7da
JH
68352013-03-29 Jan Hubicka <jh@suse.cz>
6836
6837 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
6838 gcov streaming; stream hot bb threshold to ltrans.
6839 * predict.c (get_hot_bb_threshold): Break out from ....
6840 (maybe_hot_count_p): ... here.
6841 (set_hot_bb_threshold): New function.
6842 * lto-section-in.c (lto_section_name): Add profile.
6843 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
6844 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
6845 and data-streamer.h
6846 (histogram_entry): New structure.
6847 (histogram, histogram_pool): New global vars.
6848 (histogram_hash): New structure.
6849 (histogram_hash::hash): New method.
6850 (histogram_hash::equal): Likewise.
6851 (account_time_size): New function.
6852 (cmp_counts): New function.
6853 (dump_histogram): New function.
6854 (ipa_profile_generate_summary): New function.
6855 (ipa_profile_write_summary): New function.
6856 (ipa_profile_read_summary): New function.
6857 (ipa_profile): Decide on threshold.
e594716a
UB
6858 (pass_ipa_profile): Add ipa_profile_write_summary and
6859 ipa_profile_read_summary.
0208f7da
JH
6860 * Makefile.in (ipa.o): Update dependencies.
6861 * lto-streamer.h (LTO_section_ipa_profile): New section.
6862
5a6ccc94
GDR
68632013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
6864
6865 * tree.h (VAR_P): New.
6866
39385fa6
PC
68672013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
6868
6869 PR lto/56777
6870 * doc/invoke.texi ([-fwhole-program]): Fix typo.
6871
34f0d87a
SB
68722013-03-29 Steven Bosscher <steven@gcc.gnu.org>
6873
6874 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
6875 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
6876 (control_flow_insn_p): Likewise.
6877 * cfgrtl.c (duplicate_insn_chain): Likewise.
6878 * final.c (get_attr_length_1): Likewise.
6879 (shorten_branches): Likewise.
6880 (final_scan_insn): Likewise.
6881 * function.c (instantiate_virtual_regs): Likewise.
6882 * gcse.c (insert_insn_end_basic_block): Likewise.
6883 * ira-costs.c (scan_one_insn): Likewise.
6884 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
6885 * lra.c (check_rtl): Likewise.
6886 * reload1.c (elimination_costs_in_insn): Likewise.
6887 * reorg.c (follow_jumps): Likewise.
6888
6889 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
6890 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
6891 (thumb_far_jump_used_p): Likewise.
6892 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
6893 (workaround_speculation): Likewise.
6894 (add_sched_insns_for_speculation): Likewise.
6895 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
6896 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
6897 (frv_for_each_packet): Likewise.
6898 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
6899 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
6900 (final_emit_insn_group_barriers): Likewise.
6901 * config/m32r/m32r.c (m32r_is_insn): Likewise.
6902 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
6903 (mips16_insn_length): Likewise.
6904 * config/pa/pa.c (pa_reorg): Likewise.
6905 (pa_combine_instructions): Likewise.
6906 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
6907 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
6908 (sh_reorg): Likewise.
6909 (split_branches): Likewise.
6910 * config/spu/spu.c (get_branch_target): Likewise.
6911
6912 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
6913 JUMP_TABLE_DATA_P.
6914
4ac761b0
KY
69152013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
6916
39385fa6 6917 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
6918 Fix declaration name.
6919
58a49189
LC
69202013-03-28 Lawrence Crowl <crowl@google.com>
6921
6922 * graphds.h (struct graph.indicies): Remove unused.
6923 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
6924 (SCOP_ORIGINAL_PDDRS): Remove unused.
6925 * sese.h (extern insert_loop_close_phis): Removed unused.
6926 (extern insert_guard_phis): Removed unused.
6927 (extern ivtype_map_elt_info): Removed unused.
6928 (new_ivtype_map_elt): Removed unused.
6929 * sese.c (ivtype_map_elt_info): Removed unused.
6930
7b3b6ae4
LC
69312013-03-28 Lawrence Crowl <crowl@google.com>
6932
6933 * Makefile.in: Add several missing include dependences.
6934 (DUMPFILE_H): New.
6935 (test-dump.o): New. This object is not added to any executable,
6936 but is present for ad-hoc testing.
6937 * bitmap.c
6938 (debug (const bitmap_head_def &)): New.
6939 (debug (const bitmap_head_def *)): New.
6940 * bitmap.h
6941 (extern debug (const bitmap_head_def &)): New.
6942 (extern debug (const bitmap_head_def *)): New.
6943 * cfg.c
6944 (debug (edge_def &)): New.
6945 (debug (edge_def *)): New.
6946 * cfghooks.c
6947 (debug (basic_block_def &)): New.
6948 (debug (basic_block_def *)): New.
6949 * dumpfile.h
6950 (dump_node (const_tree, int, FILE *)): Correct source file.
6951 * dwarf2out.c
6952 (debug (die_struct &)): New.
6953 (debug (die_struct *)): New.
6954 * dwarf2out.h
6955 (extern debug (die_struct &)): New.
6956 (extern debug (die_struct *)): New.
6957 * gimple-pretty-print.c
6958 (debug (gimple_statement_d &)): New.
6959 (debug (gimple_statement_d *)): New.
6960 * gimple-pretty-print.h
6961 (extern debug (gimple_statement_d &)): New.
6962 (extern debug (gimple_statement_d *)): New.
6963 * ira-build.c
6964 (debug (ira_allocno_copy &)): New.
6965 (debug (ira_allocno_copy *)): New.
6966 (debug (ira_allocno &)): New.
6967 (debug (ira_allocno *)): New.
6968 * ira-int.h
6969 (extern debug (ira_allocno_copy &)): New.
6970 (extern debug (ira_allocno_copy *)): New.
6971 (extern debug (ira_allocno &)): New.
6972 (extern debug (ira_allocno *)): New.
6973 * ira-lives.c
6974 (debug (live_range &)): New.
6975 (debug (live_range *)): New.
6976 * lra-int.h
6977 (debug (lra_live_range &)): New.
6978 (debug (lra_live_range *)): New.
6979 * lra-lives.c
6980 (debug (lra_live_range &)): New.
6981 (debug (lra_live_range *)): New.
6982 * omega.c
6983 (debug (omega_pb_d &)): New.
6984 (debug (omega_pb_d *)): New.
6985 * omega.h
6986 (extern debug (omega_pb_d &)): New.
6987 (extern debug (omega_pb_d *)): New.
6988 * print-rtl.c
6989 (debug (const rtx_def &)): New.
6990 (debug (const rtx_def *)): New.
6991 * print-tree.c
6992 (debug_tree (tree): Move within file.
6993 (debug_raw (const tree_node &)): New.
6994 (debug_raw (const tree_node *)): New.
6995 (dump_tree_via_hooks (const tree_node *, int)): New.
6996 (debug (const tree_node &)): New.
6997 (debug (const tree_node *)): New.
6998 (debug_verbose (const tree_node &)): New.
6999 (debug_verbose (const tree_node *)): New.
7000 (debug_head (const tree_node &)): New.
7001 (debug_head (const tree_node *)): New.
7002 (debug_body (const tree_node &)): New.
7003 (debug_body (const tree_node *)): New.
7004 (debug_vec_tree (tree): Move and reimplement in terms of dump.
7005 (debug (vec<tree, va_gc> &)): New.
7006 (debug (vec<tree, va_gc> *)): New.
7007 * rtl.h
7008 (extern debug (const rtx_def &)): New.
7009 (extern debug (const rtx_def *)): New.
7010 * sbitmap.c
7011 (debug_raw (simple_bitmap_def &)): New.
7012 (debug_raw (simple_bitmap_def *)): New.
7013 (debug (simple_bitmap_def &)): New.
7014 (debug (simple_bitmap_def *)): New.
7015 * sbitmap.h
7016 (extern debug (simple_bitmap_def &)): New.
7017 (extern debug (simple_bitmap_def *)): New.
7018 (extern debug_raw (simple_bitmap_def &)): New.
7019 (extern debug_raw (simple_bitmap_def *)): New.
7020 * sel-sched-dump.c
7021 (debug (vinsn_def &)): New.
7022 (debug (vinsn_def *)): New.
7023 (debug_verbose (vinsn_def &)): New.
7024 (debug_verbose (vinsn_def *)): New.
7025 (debug (expr_def &)): New.
7026 (debug (expr_def *)): New.
7027 (debug_verbose (expr_def &)): New.
7028 (debug_verbose (expr_def *)): New.
7029 (debug (vec<rtx> &)): New.
7030 (debug (vec<rtx> *)): New.
7031 * sel-sched-dump.h
7032 (extern debug (vinsn_def &)): New.
7033 (extern debug (vinsn_def *)): New.
7034 (extern debug_verbose (vinsn_def &)): New.
7035 (extern debug_verbose (vinsn_def *)): New.
7036 (extern debug (expr_def &)): New.
7037 (extern debug (expr_def *)): New.
7038 (extern debug_verbose (expr_def &)): New.
7039 (extern debug_verbose (expr_def *)): New.
7040 (extern debug (vec<rtx> &)): New.
7041 (extern debug (vec<rtx> *)): New.
7042 * sel-sched-ir.h
7043 (_list_iter_cond_expr): Make inline instead of static.
7044 * sreal.c
7045 (debug (sreal &)): New.
7046 (debug (sreal *)): New.
7047 * sreal.h
7048 (extern debug (sreal &)): New.
7049 (extern debug (sreal *)): New.
7050 * tree.h
7051 (extern debug_raw (const tree_node &)): New.
7052 (extern debug_raw (const tree_node *)): New.
7053 (extern debug (const tree_node &)): New.
7054 (extern debug (const tree_node *)): New.
7055 (extern debug_verbose (const tree_node &)): New.
7056 (extern debug_verbose (const tree_node *)): New.
7057 (extern debug_head (const tree_node &)): New.
7058 (extern debug_head (const tree_node *)): New.
7059 (extern debug_body (const tree_node &)): New.
7060 (extern debug_body (const tree_node *)): New.
7061 (extern debug (vec<tree, va_gc> &)): New.
7062 (extern debug (vec<tree, va_gc> *)): New.
7063 * tree-cfg.c
7064 (debug (struct loop &)): New.
7065 (debug (struct loop *)): New.
7066 (debug_verbose (struct loop &)): New.
7067 (debug_verbose (struct loop *)): New.
7068 * tree-dump.c: Add header dependence.
7069 * tree-flow.h
7070 (extern debug (struct loop &)): New.
7071 (extern debug (struct loop *)): New.
7072 (extern debug_verbose (struct loop &)): New.
7073 (extern debug_verbose (struct loop *)): New.
7074 * tree-data-ref.c
7075 (debug (data_reference &)): New.
7076 (debug (data_reference *)): New.
7077 (debug (vec<data_reference_p> &)): New.
7078 (debug (vec<data_reference_p> *)): New.
7079 (debug (vec<ddr_p> &)): New.
7080 (debug (vec<ddr_p> *)): New.
7081 * tree-data-ref.h
7082 (extern debug (data_reference &)): New.
7083 (extern debug (data_reference *)): New.
7084 (extern debug (vec<data_reference_p> &)): New.
7085 (extern debug (vec<data_reference_p> *)): New.
7086 (extern debug (vec<ddr_p> &)): New.
7087 (extern debug (vec<ddr_p> *)): New.
7088 * tree-ssa-alias.c
7089 (debug (pt_solution &)): New.
7090 (debug (pt_solution *)): New.
7091 * tree-ssa-alias.h
7092 (extern debug (pt_solution &)): New.
7093 (extern debug (pt_solution *)): New.
7094 * tree-ssa-alias.c
7095 (debug (_var_map &)): New.
7096 (debug (_var_map *)): New.
7097 (debug (tree_live_info_d &)): New.
7098 (debug (tree_live_info_d *)): New.
7099 * tree-ssa-alias.h
7100 (extern debug (_var_map &)): New.
7101 (extern debug (_var_map *)): New.
7102 (extern debug (tree_live_info_d &)): New.
7103 (extern debug (tree_live_info_d *)): New.
7104
be77e1e5
JH
71052013-03-28 Jan Hubicka <jh@suse.cz>
7106
7107 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
7108
777e6976
IB
71092013-03-28 Ian Bolton <ian.bolton@arm.com>
7110
7111 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
7112 record only when desired or required.
7113
9cd347ae
UB
71142013-03-28 Uros Bizjak <ubizjak@gmail.com>
7115
7116 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
7117 *vec_extractv2di_1_rex64. Use x64 isa attribute.
7118
33159866 71192013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
7120
7121 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
7122 (*andsi3_compare0_uxtw): New pattern.
7123 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
7124 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
7125
89ab31c1
JH
71262013-03-28 Jan Hubicka <jh@suse.cz>
7127
7128 * data-streamer-in.c (streamer_read_gcov_count): New function.
7129 * gimple-streamer-out.c: Include value-prof.h.
7130 (output_gimple_stmt): Output histogram.
7131 (output_bb): Use streamer_write_gcov_count.
7132 * value-prof.c: Include data-streamer.h
7133 (dump_histogram_value): Add HIST_TYPE_MAX.
7134 (stream_out_histogram_value): New function.
7135 (stream_in_histogram_value): New function.
7136 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
7137 (stream_out_histogram_value, stream_in_histogram_value): Declare.
7138 * data-streamer-out.c (streamer_write_gcov_count): New function.
7139 (streamer_write_gcov_count_stream): New function.
7140 * lto-cgraph.c (lto_output_edge): Update counter streaming.
7141 (lto_output_node): Likewise.
7142 (input_node, input_edge): Likewise.
7143 * lto-streamer-out.c (output_cfg): Update streaming.
7144 * lto-streamer-in.c (input_cfg): Likewise.
7145 * data-streamer.h (streamer_write_gcov_count,
7146 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
7147 * gimple-streamer-in.c: Include value-prof.h
7148 (input_gimple_stmt): Input histograms.
7149 (input_bb): Update profile streaming.
7150
e594716a 71512013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 7152
33159866 7153 * genmodes.c (emit_max_int): New function.
8697be17 7154 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
7155 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
7156 Added doc.
8697be17 7157 * machmode.def: Fixed comment.
89ab31c1 7158
e594716a 71592013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
7160
7161 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
7162 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
7163
74946978
MP
71642013-03-28 Marek Polacek <polacek@redhat.com>
7165 Richard Biener <rguenther@suse.de>
7166
7167 PR tree-optimization/56695
7168 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
7169 build signed result of a vector comparison.
7170 * tree-cfg.c (verify_gimple_comparison): Check that a result
7171 of a vector comparison has signed type.
7172
a64b9c26
RB
71732013-03-28 Richard Biener <rguenther@suse.de>
7174
7175 PR tree-optimization/37021
7176 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
7177 do not restrict gaps between groups.
7178 * tree-vect-stmts.c (vectorizable_load): Properly account for
7179 a gap between groups.
7180
a9dc2a2f
EB
71812013-03-28 Eric Botcazou <ebotcazou@adacore.com>
7182
7183 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
7184 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
7185 is not enabled.
7186
53cb97f9
GP
71872013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
7188
7189 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
7190 * doc/extend.texi (Named Address Spaces): Ditto.
7191 (Variable Attributes): Ditto.
7192
b802ae5c
KT
71932013-03-27 Kai Tietz <ktietz@redhat.com>
7194
eddae10a
KT
7195 * config.build: Add support for cygwin x64 target.
7196 * config.gcc: Likewise.
7197 * config.host: Likewise.
7198 * configure.ac: Likewise
7199 * configure: Regenerated.
b802ae5c 7200
8269de54
KT
72012013-03-27 Kai Tietz <ktietz@redhat.com>
7202
7203 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
7204 * config/i386/t-cygwin-w64: New file.
7205 * config/i386/cygwin-w64.h: New file.
7206 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
7207 and add support for x64-cygwin target.
7208 (CPP_SPEC): Likewise.
7209 (CXX_WRAP_SPEC_LIST): Undefine before define.
7210 (LIBGCJ_SONAME): Use 15 as version.
7211
f49b33cb
RB
72122013-03-27 Richard Biener <rguenther@suse.de>
7213
7214 PR tree-optimization/56716
7215 * tree-ssa-structalias.c (perform_var_substitution): Adjust
7216 dumping for ref nodes.
7217
b37a6ce5
MJ
72182013-03-27 Martin Jambor <mjambor@suse.cz>
7219
7220 PR tree-optimization/55334
7221 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
7222 restricted pointers to arrays.
7223
9469b9b2
GDR
72242013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
7225
7226 * Makefile.in (.SUFFIXES): Add .cc.
7227 (.c.o): Apply same recipe for implicit rule .cc.o.
7228
7d24f650
RB
72292013-03-27 Richard Biener <rguenther@suse.de>
7230
7231 PR tree-optimization/37021
7232 * tree-vect-data-refs.c (vect_check_strided_load): Allow
7233 REALPART/IMAGPART_EXPRs around the supported refs.
7234 * tree-ssa-structalias.c (find_func_aliases): Assume that
7235 floating-point values are not used to transfer pointers.
7236
2f251a05
AI
72372013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
7238
39385fa6
PC
7239 * target.def (TARGET_HAS_IFUNC_P): New target hook.
7240 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
7241 * doc/tm.texi: Regenerate.
7242 * targhooks.h (default_has_ifunc_p): New.
7243 * targhooks.c (default_has_ifunc_p): Ditto.
7244 * config/linux-protos.h: New file.
7245 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of
2f251a05
AI
7246 this hook for linux which disables support of indirect functions in
7247 android.
39385fa6
PC
7248 * config/linux-android.c: New file.
7249 * config/t-linux-android.c: Ditto.
7250 * config.gcc: Added new object file linux-android.o.
7251 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 7252 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
39385fa6 7253 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
7254 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
7255 doesn't support indirect functions.
7256 * configure: Regenerate.
7257
78b4e425
BC
72582013-03-27 Bin Cheng <bin.cheng@arm.com>
7259
7260 PR target/56102
7261 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
7262 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
7263 mult-word mode.
7264
a5ba7b92
AK
72652013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7266
7267 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
7268
be624986
TG
72692013-03-27 Terry Guo <terry.guo@arm.com>
7270
7271 * config/arm/arm-cores.def: Added core cortex-r7.
7272 * config/arm/arm-tune.md: Regenerated.
7273 * config/arm/arm-tables.opt: Regenerated.
7274 * doc/invoke.texi: Added entry for core cortex-r7.
7275
0a514f47
WL
72762013-03-27 Walter Lee <walt@tilera.com>
7277
7278 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
7279 double-decrement of next_scratch_regno.
7280
9332b0d2
WL
72812013-03-27 Walter Lee <walt@tilera.com>
7282
801d9b2a 7283 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
7284 input operands.
7285 (insn_v1mulus): Ditto.
7286 (insn_v2muls): Ditto.
7287
f54ea5dd
WL
72882013-03-27 Walter Lee <walt@tilera.com>
7289
e594716a 7290 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
7291 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
7292
bf60f4ca
WL
72932013-03-27 Walter Lee <walt@tilera.com>
7294
e594716a 7295 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
7296 (*sibcall_value): Ditto.
7297
e3b51eeb
WL
72982013-03-27 Walter Lee <walt@tilera.com>
7299
7300 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
7301 (insn_mnz_v8qi): ... this ...
7302 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
7303 vector equivalent.
7304 (insn_v<n>mnz): Replaced by ...
7305 (insn_v1mnz): ... this ...
7306 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
7307 equivalent.
7308 (insn_mz_<mode>): Replaced by ...
7309 (insn_mz_v8qi): ... this ...
7310 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
7311 vector equivalent.
7312 (insn_v<n>mz): Replaced by ...
7313 (insn_v1mz): ... this ...
7314 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
7315 equivalent.
7316
4fc7b145
EB
73172013-03-26 Eric Botcazou <ebotcazou@adacore.com>
7318
7319 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
7320
6f33817e
RM
73212013-03-26 Roland McGrath <mcgrathr@google.com>
7322
7323 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
7324 than fprintf with a non-constant, non-format string.
7325
93a4145b
UB
73262013-03-26 Uros Bizjak <ubizjak@gmail.com>
7327
7328 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
7329 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
7330 operand 0 predicate.
7331 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
7332 attribute. Use general_x64nomem_operand as operand 1 predicate.
7333 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
7334 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
7335 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
7336 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
7337 (mov<mode>_insv_1): Remove expander. Merge insn with
7338 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
7339 Use general_x64nomem_operand as operand 1 predicate.
7340 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
7341 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
7342 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
7343 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
7344 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
7345 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
7346 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
7347 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
7348 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
7349 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
7350 (general_x64nomem_operand): Ditto.
7351
c6a9ed5a 73522013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
7353
7354 * config/rtems.opt: Add -pthread option.
7355
31b0a960
RB
73562013-03-26 Richard Biener <rguenther@suse.de>
7357
93a4145b
UB
7358 * alias.c (find_base_term): Avoid redundant and not used recursion.
7359 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
7360 (true_dependence_1): Compute and pass base terms to base_alias_check.
7361 (write_dependence_p): Likewise.
7362 (may_alias_p): Likewise.
7363
79517551
SN
73642013-03-26 Sofiane Naci <sofiane.naci@arm.com>
7365
7366 * config/aarch64/aarch64.c (aarch64_classify_address): Support
7367 PC-relative load in SI modes and above only.
7368
a76213b9
XQ
73692013-03-26 Xinyu Qi <xyqi@marvell.com>
7370
7371 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
7372 * config/arm/iwmmxt.md (WCGR0): Update.
7373 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 7374
37ff9355
UB
73752013-03-26 Uros Bizjak <ubizjak@gmail.com>
7376
7377 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
7378 Use x64 and nox64 isa attributes.
7379
30b0317c
RB
73802013-03-26 Richard Biener <rguenther@suse.de>
7381
7382 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
7383 alignment computations and rely on get_object_alignment_1
7384 for the !TYPE_P case.
7385 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
7386
cbcdb140
WL
73872013-03-26 Walter Lee <walt@tilera.com>
7388
7389 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
7390 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
7391
dd884525 73922013-03-25 Jeff Law <law@redhat.com>
be672e08 7393
33159866
UB
7394 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
7395 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
7396 wrong version of prior patch.
7397
0051d3ec
WL
73982013-03-25 Walter Lee <walt@tilera.com>
7399
7400 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
7401 TILEGX_INSN_SHUFFLEBYTES1.
7402 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
7403 shufflebytes1.
7404 (tilegx_builtins): Ditto.
7405 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
7406
065a3605
WL
74072013-03-25 Walter Lee <walt@tilera.com>
7408
7409 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
7410 (floatunssisf2): New pattern.
7411 (floatsidf2): New pattern.
7412 (floatunssidf2): New pattern.
065a3605 7413
5b2a3c82
WL
74142013-03-25 Walter Lee <walt@tilera.com>
7415
7416 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
7417 tests for constraint J, K, N, P.
7418
192ea533
WL
74192013-03-25 Walter Lee <walt@tilera.com>
7420
7421 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
7422 Use indirect/pcrel encoding.
7423 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
7424 Ditto.
7425
855e0d0b
SE
74262013-03-25 Steve Ellcey <sellcey@mips.com>
7427
7428 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
7429 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
7430 * config/mips/mips.c (mips_option_override): Set IMADD default.
7431 * config/mips/mips.h (PTF_AVOID_IMADD): New.
7432 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
7433 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
7434 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
7435 * doc/invoke.texi (-mimadd/-mno-imadd): New.
7436
39e45653
JL
74372013-03-25 Jeff Law <law@redhat.com>
7438
7439 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
7440 slightly to avoid creating and folding useless trees. Simplify
7441 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
7442
7482c470
UB
74432013-03-25 Uros Bizjak <ubizjak@gmail.com>
7444
7445 * config/i386/i386.md (*zero_extendsidi2): Merge with
7446 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
7447 * config/i386/predicates.md (x86_64_zext_operand): Rename from
7448 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
7449 targets. Clarify comment.
7450
4a53743e
MJ
74512013-03-25 Martin Jambor <mjambor@suse.cz>
7452
7453 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
7454 pass-through jump functions differently.
7455 (ipa_read_jump_function): Likewise. Also use setter functions to set
7456 up jump functions.
7457
162712de
MJ
74582013-03-25 Martin Jambor <mjambor@suse.cz>
7459
7460 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
7461 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
7462 process it.
7463 (ipa_get_indirect_edge_target): New function.
7464 (devirtualization_time_bonus): New parameter known_aggs, pass it to
7465 ipa_get_indirect_edge_target. Update all callers.
7466 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
7467 ipa_get_indirect_edge_target_1 instead of calling
7468 ipa_get_indirect_edge_target.
7469 (create_specialized_node): Pass aggvlas to
7470 ipcp_discover_new_direct_edges.
7471
a5a4c20a
KT
74722013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7473
7474 * config/arm/arm.md (f_sels, f_seld): New types.
7475 (*cmov<mode>): New pattern.
7476 * config/arm/predicates.md (arm_vsel_comparison_operator): New
7477 predicate.
7478
f992b9fc
KT
74792013-03-25 Kai Tietz <ktietz@redhat.com>
7480
7481 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
7482 POSIX-printf for mingw-hosted builds.
7483
c16fd676
RB
74842013-03-25 Richard Biener <rguenther@suse.de>
7485
7486 PR middle-end/56694
7487 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
7488 must-not-throw stmt location.
7489
5ad29f12
KT
74902013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7491
7492 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
7493 Emit load-acquire versions when acq is true.
7494 (arm_emit_store_exclusive): Add rel parameter.
7495 Emit store-release versions when rel is true.
7496 (arm_split_compare_and_swap): Use acquire-release instructions
7497 instead.
7498 of barriers when appropriate.
7499 (arm_split_atomic_op): Likewise.
7500 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
7501 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
7502 (VUNSPEC_SLX): Likewise.
7503 (VUNSPEC_LDA): Likewise.
7504 (VUNSPEC_STL): Likewise.
7505 * config/arm/sync.md (atomic_load<mode>): New pattern.
7506 (atomic_store<mode>): Likewise.
7507 (arm_load_acquire_exclusive<mode>): Likewise.
7508 (arm_load_acquire_exclusivesi): Likewise.
7509 (arm_load_acquire_exclusivedi): Likewise.
7510 (arm_store_release_exclusive<mode>): Likewise.
7511
03a7dddb
CM
75122013-03-25 Catherine Moore <clm@codesourcery.com>
7513
7514 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
7515 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
7516 * config/mip/predicates.md (lwsp_swsp_operand,
7517 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
7518 sb16_operand, db4_operand, db7_operand, ib3_operand,
7519 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
7520 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
7521 andi16_operand): New predicates.
7522 * config/mips/mips.md (compression): New attribute.
7523 (enabled): New attribute.
7524 (length): Consider compression in computing length.
7525 (shift_compression): New code attribute.
7526 (*add<mode>3): New operands. Record compression.
7527 (sub<mode>3): Likewise.
7528 (one_cmpl<mode>2): Likewise.
7529 (*and<mode>3): Likewise.
7530 (*ior<mode>3): Likewise.
7531 (unnamed pattern for xor): Likewise.
7532 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
7533 (*<optab><mode>3): Likewise.
7534 (*mov<mode>_internal: Likewise.
7535 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
7536 (mips_unsigned_immediate_p): New.
7537 (umips_lwsp_swsp_address_p): New.
7538 (m16_based_address_p): New.
7539 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
7540 (mips_unsigned_immediate_p): New prototype.
7541 (lwsp_swsp_address_p): New prototype.
7542 (m16_based_address_p): New prototype.
7543 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
7544 (mips_signed_immediate_p): New function.
7545 (m16_based_address_p): New function.
7546 (lwsp_swsp_address_p): New function.
7547 (mips_print_operand_punctuation): Recognize short delay slot insns
7548 for microMIPS.add<mode>3"
7549
f35c297f 75502013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 7551
f35c297f
KT
7552 PR target/56720
7553 * config/arm/iterators.md (v_cmp_result): New mode attribute.
7554 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
7555
051b9446
RB
75562013-03-25 Richard Biener <rguenther@suse.de>
7557
7558 PR tree-optimization/56689
7559 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
7560 any edge.
7561
374001cb
RB
75622013-03-25 Richard Biener <rguenther@suse.de>
7563
7564 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
7565 of bitmap.
7566 (memory_references): Likewise.
7567 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
7568 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
7569 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
7570 (gather_mem_refs_in_loops): Fold into ...
7571 (analyze_memory_references): ... this. Move initialization
7572 to tree_ssa_lim_initialize.
7573 (fill_always_executed_in): Rename to ...
7574 (fill_always_executed_in_1): ... this.
7575 (fill_always_executed_in): Move contains_call computation to
7576 this new function from ...
7577 (tree_ssa_lim_initialize): ... here.
7578 (tree_ssa_lim): Call fill_always_executed_in.
7579
57895947
EB
75802013-03-25 Eric Botcazou <ebotcazou@adacore.com>
7581
7582 * postreload.c (reload_combine): Fix code detecting returns.
7583
1e1b18c1
EB
75842013-03-25 Eric Botcazou <ebotcazou@adacore.com>
7585
7586 * function.c (emit_use_return_register_into_block): On cc0 targets,
7587 do not emit the sequence between cc0 setter and user.
7588
9216baf1
KT
75892013-03-25 Kai Tietz <ktietz@redhat.com>
7590
1e1b18c1
EB
7591 * config/i386/predicates.md (local_symbolic_operand): Interpret
7592 dll-imported symbols as none-local.
9216baf1 7593
76421b44
RB
75942013-03-25 Richard Biener <rguenther@suse.de>
7595
7596 * tree-ssa-loop-im.c (struct depend): Remove.
7597 (struct lim_aux_data): Make depends a vec of gimples.
7598 (free_lim_aux_data): Adjust.
7599 (add_dependency): Likewise.
7600 (set_level): Likewise.
7601
d154bfa2
RB
76022013-03-25 Richard Biener <rguenther@suse.de>
7603
7604 PR middle-end/56434
7605 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
7606 the pointer returned by calls with ECF_MALLOC set.
7607
2cd9804e
UB
76082013-03-24 Uros Bizjak <ubizjak@gmail.com>
7609
acef5fe0
UB
7610 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
7611
76122013-03-24 Uros Bizjak <ubizjak@gmail.com>
7613
7614 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
7615 using MMXMODE mode iterator.
7616 (*move<mode>_internal): Merge with *movv2sf_internal and
7617 *movv2sf_internal_rex64 using MMXMODE mode iterator.
7618
225ccc68
SB
76192013-03-23 Steven Bosscher <steven@gcc.gnu.org>
7620
85c0f02d
SB
7621 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
7622 (record_last_mem_set_info): Likewise.
7623
225ccc68
SB
7624 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
7625 of XNEWVEC followed by memset.
7626 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
7627
b64925dc
SB
76282013-03-23 Steven Bosscher <steven@gcc.gnu.org>
7629
7630 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
7631 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
7632 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
7633 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
7634 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
7635 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
7636 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
7637 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
7638 BARRIER_P instead of GET_CODE.
7639
b9aaf52e
EB
76402013-03-23 Eric Botcazou <ebotcazou@adacore.com>
7641
7642 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
7643 inaccuracy in the probing code.
7644
7645 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
7646 (ctrapdi4): Likewise.
7647
66de4d7c
EB
76482013-03-23 Eric Botcazou <ebotcazou@adacore.com>
7649
7650 * calls.c (expand_call): Add missing guard to code handling return
7651 of non-BLKmode structures in MSB.
7652 * function.c (expand_function_end): Likewise.
7653
4f25c8fb
EB
76542013-03-23 Eric Botcazou <ebotcazou@adacore.com>
7655
7656 * combine.c (try_combine): Adjust comment. Do not add the set of
7657 insn #0 if the destination indirectly is set or dies in insn #2.
7658 Tidy up code to distribute a new note.
7659
23b7850d
UB
76602013-03-22 Uros Bizjak <ubizjak@gmail.com>
7661
7662 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
7663 also for alternatives 16 and 17.
7664
bed852cf
UB
76652013-03-22 Uros Bizjak <ubizjak@gmail.com>
7666
7667 * config/i386/sse.md (*mov<mode>_internal): Merge with
7668 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
7669 Emit insn template depending on type attribute. Use
7670 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
7671 movd instead of movq mnemonic for interunit moves. Rewrite mode
7672 attribute calculation. Remove unit attribute calculation.
7673 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
7674 Set prefix_data16 attribute for DImode ssemov types.
7675 Use Ym instead of y for SSE-MMX conversion alternatives.
7676 Reorder operand constraints.
7677
1e8a7937
SB
76782013-03-22 Steven Bosscher <steven@gcc.gnu.org>
7679
7680 * df.h (df_insn_delete): Adjust prototype.
7681 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
7682 and let it decide whether mark the basic block dirty.
7683 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
7684 * df-scan.c (df_insn_info_delete): New helper function, split
7685 off from df_insn_delete.
7686 (df_scan_free_bb_info): Use it.
7687 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
7688 Likewise.
7689 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
7690 that the insn is actually an insn and it has a non-NULL basic block.
7691 Do not mark basic block dirty if only deleting a DEBUG_INSN.
7692
e14d094c
RB
76932013-03-22 Richard Biener <rguenther@suse.de>
7694
7695 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
7696 dep_ref members.
7697 (mem_ref_alloc): Do not allocate them.
7698 (refs_independent_p): Do not query or maintain a cache.
7699
e9cf7316
RB
77002013-03-22 Richard Biener <rguenther@suse.de>
7701
7702 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
7703 (gather_mem_refs_in_loops): Do not compute it.
7704 (analyze_memory_references): Do not allocate it.
7705 (tree_ssa_lim_finalize): Do not free it.
7706 (for_all_locs_in_loop): Do not query all_refs_in_loop.
7707
f046e81b
RB
77082013-03-22 Richard Biener <rguenther@suse.de>
7709
7710 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 7711
a05c0ddf
IB
77122013-03-22 Ian Bolton <ian.bolton@arm.com>
7713
7714 * config/aarch64/aarch64.c (aarch64_print_operand): New
7715 format specifier for printing a constant in hex.
7716 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
7717 format specifier for printing second operand.
7718
c00217fc
RB
77192013-03-22 Richard Biener <rguenther@suse.de>
7720
7721 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
7722 bitmaps.
7723 (gather_mem_refs_in_loops): Perform store accumulation here.
7724 (create_vop_ref_mapping_loop): Remove.
7725 (create_vop_ref_mapping): Likewise.
7726 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 7727 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
7728 (record_indep_loop): Remove.
7729 (record_dep_loop): New function.
7730 (ref_indep_loop_p_1): Adjust to only walk over references
7731 in the loop, not its subloops.
7732 (ref_indep_loop_p): Rename to ...
7733 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
7734 maintaining a more fine-grained cache.
7735 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
7736 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
7737
15d19bf8
RB
77382013-03-22 Richard Biener <rguenther@suse.de>
7739
7740 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
7741 (struct mem_ref): Make accesses_in_loop a vec of a vec of
7742 aggregate mem_ref_loc.
7743 (free_mem_ref_locs): Inline into ...
7744 (memref_free): ... this and adjust.
7745 (mem_ref_alloc): Adjust.
7746 (mem_ref_locs_alloc): Remove.
7747 (record_mem_ref_loc): Adjust.
7748 (get_all_locs_in_loop): Rewrite into ...
7749 (for_all_locs_in_loop): ... this iterator.
7750 (rewrite_mem_ref_loc): New functor.
7751 (rewrite_mem_refs): Use for_all_locs_in_loop.
7752 (sm_set_flag_if_changed): New functor.
7753 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
7754 (ref_always_accessed): New functor.
7755 (ref_always_accessed_p): Use for_all_locs_in_loop.
7756
6f37411d
MG
77572013-03-21 Marc Glisse <marc.glisse@inria.fr>
7758
7759 * tree-pass.h (PROP_gimple_lvec): New.
7760 * passes.c (dump_properties): Handle PROP_gimple_lvec.
7761 (init_optimization_passes): Move pass_lower_vector.
7762 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
7763 PROP_gimple_lvec.
7764 (pass_lower_vector): Provide PROP_gimple_lvec.
7765 (pass_lower_vector_ssa): Likewise.
7766 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
7767
511ef689
MW
77682013-03-21 Mark Wielaard <mjw@redhat.com>
7769
7770 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
7771
cc1df30b
UB
77722013-03-21 Uros Bizjak <ubizjak@gmail.com>
7773
7774 * config/i386/i386.md (*movdi_internal): Disparage slightly
7775 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
7776 conversion alternatives.
7777
c845cfe1
JJ
77782013-03-21 Jakub Jelinek <jakub@redhat.com>
7779
37e99116
JJ
7780 PR middle-end/48087
7781 * diagnostic.def (DK_WERROR): New kind.
7782 * diagnostic.h (werrorcount): Define.
7783 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
7784 promoted to DK_ERROR, increment DK_WERROR counter instead of
7785 DK_ERROR counter.
7786 * toplev.c (toplev_main): Call print_ignored_options even if
7787 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
7788 even if just werrorcount is non-zero.
7789
c845cfe1
JJ
7790 PR debug/55608
7791 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
7792 on failure.
7793 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
7794 (string_cst_pool_decl): New function.
7795 (optimize_one_addr_into_implicit_ptr): New function.
7796 (resolve_addr_in_expr): Optimize DWARF location expression
7797 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
7798 which doesn't live in memory, but has DW_AT_location or
7799 DW_AT_const_value, or refers to a string literal, into
7800 DW_OP_GNU_implicit_pointer.
7801 (optimize_location_into_implicit_ptr): New function.
7802 (resolve_addr): If removing DW_AT_location of a variable because
7803 it was DW_OP_addr of address of the variable, but the variable doesn't
7804 live in memory, try to emit const value attribute for the initializer.
7805
08e0cda6
MG
78062013-03-21 Marc Glisse <marc.glisse@inria.fr>
7807
7808 * tree.h (VECTOR_TYPE_P): New macro.
7809 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
7810 TYPE_MODE): Use it.
7811 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
7812 VEC_COND_EXPR cannot be lvalues.
7813 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
7814
d08633b4
MG
78152013-03-21 Marc Glisse <marc.glisse@inria.fr>
7816
7817 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
7818 Restrict the transformation to equal modes.
7819
e6647190
RB
78202013-03-21 Richard Biener <rguenther@suse.de>
7821
7822 PR tree-optimization/39326
7823 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
7824 (MEM_ANALYZABLE): Adjust.
7825 (record_mem_ref_loc): Move bitmap ops ...
7826 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
7827 unanalyzable refs, do not record locations for it.
7828 (analyze_memory_references): Allocate ref zero as shared
7829 unanalyzable ref.
7830 (refs_independent_p): Do not test for unanalyzed mems here.
7831 (ref_indep_loop_p_1): Special-case disambiguation against
7832 the unanalyzed ref.
cc1df30b 7833 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 7834
65074f54
CL
78352013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
7836
7837 * config/arm/arm-protos.h (tune_params): Add
7838 prefer_neon_for_64bits field.
7839 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
7840 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
7841 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
7842 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
7843 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
7844 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
7845 (arm_option_override): Handle -mneon-for-64bits new option.
7846 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
7847 (prefer_neon_for_64bits): Declare new variable.
7848 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 7849 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
7850 (arch_enabled): Handle new arch types. Remove support for onlya8
7851 and nota8.
7852 (one_cmpldi2): Use new arch names.
bc5faa5b 7853 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
7854 * config/arm/arm.opt (mneon-for-64bits): Add option.
7855 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
7856 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
7857 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
7858 of onlya8.
7859 * doc/invoke.texi (-mneon-for-64bits): Document.
7860
5a2d2a79
RB
78612013-03-21 Richard Biener <rguenther@suse.de>
7862
7863 PR tree-optimization/39326
7864 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
7865 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 7866 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 7867
5abe1e05
RB
78682013-03-21 Richard Biener <rguenther@suse.de>
7869
7870 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
7871 (vect_insert_into_interleaving_chain): Likewise.
7872 (vect_drs_dependent_in_basic_block): Inline ...
7873 (vect_slp_analyze_data_ref_dependence): ... here. New function,
7874 split out from ...
7875 (vect_analyze_data_ref_dependence): ... here. Simplify.
7876 (vect_check_interleaving): Simplify.
7877 (vect_analyze_data_ref_dependences): Likewise. Split out ...
7878 (vect_slp_analyze_data_ref_dependences): ... this new function.
7879 (dr_group_sort_cmp): New function.
7880 (vect_analyze_data_ref_accesses): Compute data-reference groups
7881 here instead of in vect_analyze_data_ref_dependence. Use
7882 a more efficient algorithm.
7883 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
7884 vect_slp_analyze_data_ref_dependences. Call
7885 vect_analyze_data_ref_accesses earlier.
7886 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
7887 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
7888 (vect_slp_analyze_data_ref_dependences): New prototype.
7889
cad1735b
RB
78902013-03-21 Richard Biener <rguenther@suse.de>
7891
7892 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
7893 ref is stored in the loop.
7894 (find_refs_for_sm): Walk only over all stores.
7895 (store_motion_loop): Allocate from lim_bitmap_obstack.
7896 (store_motion): Likewise.
7897
141310ef
RB
78982013-03-21 Richard Biener <rguenther@suse.de>
7899
7900 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
7901 Update virtual SSA form.
7902
5022315a
RO
79032013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7904
7905 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
7906 * configure: Regenerate.
7907 * config.in: Regenerate.
7908 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
7909 if !HAVE_LD_EH_FRAME_CIEV3.
7910
50d4421c
RB
79112013-03-21 Richard Biener <rguenther@suse.de>
7912
7913 * tree-cfg.c (verify_expr_no_block): New function.
7914 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
7915 nor DECL_VALUE_EXPR have locations with associated blocks.
7916 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
7917 (clear_unused_block_pointer): Remove code dealing with
7918 blocks in DECL_DEBUG_EXPR locations.
7919
839b422f
RB
79202013-03-21 Richard Biener <rguenther@suse.de>
7921
7922 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
7923 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
7924 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
7925 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
7926 instead of DECL_DEBUG_EXPR_IS_FROM.
7927 * gimplify.c (gimplify_modify_expr): Likewise.
7928 * tree-cfg.c (verify_expr_location_1): Likewise.
7929 * tree-complex.c (create_one_component_var): Likewise.
7930 * tree-sra.c (create_access_replacement): Likewise.
7931 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
7932 (clear_unused_block_pointer): Likewise.
7933 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
7934 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
7935 * var-tracking.c (var_debug_decl): Likewise.
7936 (track_expr_p): Likewise.
7937 * tree-inline.c (add_local_variables): Likewise. Set
7938 DECL_HAS_DEBUG_EXPR_P after copying it.
7939 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
7940 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
7941
fe04878d
UB
79422013-03-21 Uros Bizjak <ubizjak@gmail.com>
7943
7944 PR bootstrap/56656
7945 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
7946 * configure: Regenerate.
7947 * config.in: Regenerate.
7948 * config/i386/i386.md (*movdf_internal): Use
7949 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
7950 movd instead of movq mnemonic for interunit moves.
7951 (*movdi_internal): Ditto.
7952
bd059b26 79532013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
7954
7955 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
7956 (abd<mode>_3): New pattern.
7957 (aba<mode>_3): New pattern.
7958 (fabd<mode>_3): New pattern.
7959
bd059b26 79602013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
7961
7962 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
7963 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
7964 occurrence of REGISTER_PREFIX as its empty string.
7965
4f1f78b9
JL
79662013-03-20 Jeff Law <law@redhat.com>
7967
7968 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
7969 addititional equivalences for equality comparisons between an SSA_NAME
7970 and a constant where the SSA_NAME was set from a widening conversion.
7971
327a1118
WL
79722013-03-20 Walter Lee <walt@tilera.com>
7973
7974 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
7975
813e0036
UB
79762013-03-20 Uros Bizjak <ubizjak@gmail.com>
7977
7978 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
7979 depending on type attribute.
7980 (*movti_internal): Ditto.
7981 (*movtf_internal): Ditto.
7982 (*movxf_internal): Ditto.
7983 (*movdf_internal): Ditto.
7984 (*movsf_internal): Ditto.
7985
7cf34aae
UB
79862013-03-20 Uros Bizjak <ubizjak@gmail.com>
7987
7988 * config/i386/i386.md (*movti_internal): Set prefix attribute to
7989 maybe_vex for sselog1 and ssemov types.
7990 (*movdi_internal): Reorder operand constraints.
7991 (*movsi_internal): Ditto. Set prefix attribute to
7992 maybe_vex for sselog1 and ssemov types.
7993 (*movtf_internal): Set prefix attribute to maybe_vex
7994 for sselog1 and ssemov types.
7995 (*movdf_internal): Ditto. Set prefix_data16 attribute for
7996 DImode ssemov types. Reorder operand constraints.
7997 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
7998 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
7999 attribute for SImode ssemov types. Reorder operand constraints.
8000
19321415
MJ
80012013-03-20 Martin Jambor <mjambor@suse.cz>
8002
8003 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
8004 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
8005
c6d5ff83
MM
80062013-03-20 Pat Haugen <pthaugen@us.ibm.com>
8007
8008 * config/rs6000/predicates.md (indexed_address, update_address_mem
8009 update_indexed_address_mem): New predicates.
8010 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
8011 attribute for load/store instructions.
8012 * config/rs6000/dfp.md (movsd_store): Likewise.
8013 (movsd_load): Likewise.
8014 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
8015 (unnamed HI->DI extend define_insn): Likewise.
8016 (unnamed SI->DI extend define_insn): Likewise.
8017 (unnamed QI->SI extend define_insn): Likewise.
8018 (unnamed QI->HI extend define_insn): Likewise.
8019 (unnamed HI->SI extend define_insn): Likewise.
8020 (unnamed HI->SI extend define_insn): Likewise.
8021 (extendsfdf2_fpr): Likewise.
8022 (movsi_internal1): Likewise.
8023 (movsi_internal1_single): Likewise.
8024 (movhi_internal): Likewise.
8025 (movqi_internal): Likewise.
8026 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
8027 attribute for load/store instructions.
8028 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
8029 instructions.
8030 (mov<mode>_softfloat): Likewise.
8031 (mov<mode>_hardfloat32): Likewise.
8032 (mov<mode>_hardfloat64): Likewise.
8033 (mov<mode>_softfloat64): Likewise.
8034 (movdi_internal32): Likewise.
8035 (movdi_internal64): Likewise.
8036 (probe_stack_<mode>): Likewise.
8037
80382013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
8039
8040 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
8041 floating point, and decimal floating point to reload iterator.
8042
8043 * config/rs6000/constraints.md (wl constraint): New constraints to
8044 return FLOAT_REGS if certain options are used to reduce the number
8045 of separate patterns that exist in the file.
8046 (wx constraint): Likewise.
8047 (wz constraint): Likewise.
8048
8049 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
8050 -mdebug=reg, print wg, wl, wx, and wz constraints.
8051 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
8052 Initialize the reload functions for 64-bit binary/decimal floating
8053 point types.
8054 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
8055 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
8056 create the buffer on the stack to overcome not having a 32-bit
8057 load and store.
8058 (rs6000_emit_move): Likewise.
8059 (rs6000_secondary_memory_needed_rtx): Likewise.
8060 (rs6000_alloc_sdmode_stack_slot): Likewise.
8061 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
8062 via xxlxor, just like DFmode 0.0.
8063
8064 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
8065 define as 1 if we are running on a power7 or newer.
8066 (enum r6000_reg_class_enum): Add new constraints.
8067
8068 * config/rs6000/dfp.md (movsd): Delete, combine with binary
8069 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
8070 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 8071 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
8072 (movsd splitter): Likewise.
8073 (movsd_hardfloat): Likewise.
8074 (movsd_softfloat): Likewise.
8075
8076 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
8077 binary and decimal floating point moves.
8078 (fmove_ok): New attributes to combine binary and decimal floating
8079 point moves, and to combine power6x (mfpgpr) moves along normal
8080 floating moves.
8081 (real_value_to_target): Likewise.
8082 (f32_lr): Likewise.
8083 (f32_lm): Likewise.
8084 (f32_li): Likewise.
8085 (f32_sr): Likewise.
8086 (f32_sm): Likewise.
8087 (f32_si): Likewise.
8088 (movsf): Combine binary and decimal floating point moves. Combine
8089 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 8090 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
8091 (mov<mode> for SFmode/SDmode); Likewise.
8092 (SFmode/SDmode splitters): Likewise.
8093 (movsf_hardfloat): Likewise.
8094 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
8095 (movsf_softfloat): Likewise.
8096 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
8097
8098 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
8099 wx and wz constraints.
8100
8101 * config/rs6000/constraints.md (wg constraint): New constraint to
8102 return FLOAT_REGS if -mmfpgpr (power6x) was used.
8103
8104 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
8105 constraint.
8106
8107 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
8108 -mdebug=reg, print wg, wl, wx, and wz constraints.
8109 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
8110 Initialize the reload functions for 64-bit binary/decimal floating
8111 point types.
8112 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
8113 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
8114 create the buffer on the stack to overcome not having a 32-bit
8115 load and store.
8116 (rs6000_emit_move): Likewise.
8117 (rs6000_secondary_memory_needed_rtx): Likewise.
8118 (rs6000_alloc_sdmode_stack_slot): Likewise.
8119 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
8120 via xxlxor, just like DFmode 0.0.
8121
c6d5ff83
MM
8122 * config/rs6000/dfp.md (movdd): Delete, combine with binary
8123 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
8124 with other moves by using conditional constraits (wg). Use LFIWZX
8125 and STFIWX for loading SDmode on power7.
8126 (movdd splitters): Likewise.
8127 (movdd_hardfloat32): Likewise.
8128 (movdd_softfloat32): Likewise.
8129 (movdd_hardfloat64_mfpgpr): Likewise.
8130 (movdd_hardfloat64): Likewise.
8131 (movdd_softfloat64): Likewise.
8132
8133 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
8134 64-bit binary and decimal floating point moves.
8135 (FMOVE64X): Likewise.
8136 (movdf): Combine 64-bit binary and decimal floating point moves.
8137 Combine power6x (mfpgpr) moves with other moves by using
8138 conditional constraits (wg).
8139 (mov<mode> for DFmode/DDmode): Likewise.
8140 (DFmode/DDmode splitters): Likewise.
8141 (movdf_hardfloat32): Likewise.
8142 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
8143 (movdf_softfloat32): Likewise.
8144 (movdf_hardfloat64_mfpgpr): Likewise.
8145 (movdf_hardfloat64): Likewise.
8146 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
8147 (movdf_softfloat64): Likewise.
8148 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
8149 (reload_<mode>_load): Move to later in the file so they aren't in
8150 the middle of the floating point move insns.
8151 (reload_<mode>_store): Likewise.
8152
8153 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
8154 constraint.
8155
8156 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
8157 constraint if -mdebug=reg.
bd059b26
UB
8158 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
8159 Enable using dd reload support if needed.
c6d5ff83
MM
8160
8161 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
8162 binary and decimal floating point moves in rs6000.md.
8163 (movtd_internal): Likewise.
8164
8165 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
8166 decimal floating point moves.
8167 (movtf): Likewise.
8168 (movtf_internal): Likewise.
8169 (mov<mode>_internal, TDmode/TFmode): Likewise.
8170 (movtf_softfloat): Likewise.
8171 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
8172
8173 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
8174 movdi_internal64, using wg constraint for move direct operations.
8175 (movdi_internal64): Likewise.
8176
8177 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
8178 MODES_TIEABLE_P for selected modes. Print the numerical value of
8179 the various virtual registers. Use GPR/FPR first/last values,
8180 instead of hard coding the register numbers. Print which modes
8181 have reload functions registered.
bd059b26
UB
8182 (rs6000_option_override_internal): If -mdebug=reg, trace the options
8183 settings before/after setting cpu, target and subtarget settings.
8184 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
8185 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
8186 (rs6000_secondary_reload_fail): Likewise.
8187 (rs6000_secondary_reload_inner): Likewise.
8188
8189 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
8190 macros for first/last GPR and FPR registers.
8191 (LAST_GPR_REGNO): Likewise.
8192 (FIRST_FPR_REGNO): Likewise.
8193 (LAST_FPR_REGNO): Likewise.
8194
8195 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
8196 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
8197 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
8198 (vcond<mode><mode>): Likewise.
8199 (vcondu<mode><mode>): Likewise.
8200 (vector_gtu<mode>): Likewise.
8201 (vector_gte<mode>): Likewise.
8202 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 8203 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
8204 (ior<mode>3): Likewise.
8205 (and<mode>3): Likewise.
8206 (one_cmpl<mode>2): Likewise.
8207 (nor<mode>3): Likewise.
8208 (andc<mode>3): Likewise.
8209
8210 * config/rs6000/constraints.md (wt constraint): New constraint
8211 that returns VSX_REGS if TImode is allowed in VSX registers.
8212
8213 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
8214 constant under VSX.
8215
8216 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
8217 similar to TImode, but it is restricted to being in the GPRs.
8218
8219 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
8220 TImode to occupy a single VSX register.
8221
8222 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
8223 -mvsx-timode for power7/power8.
8224 (power7 cpu): Likewise.
8225 (power8 cpu): Likewise.
8226
8227 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
8228 sure that TFmode/TDmode take up two registers if they are ever
8229 allowed in the upper VSX registers.
8230 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
8231 registers.
8232 (rs6000_init_hard_regno_mode_ok): Likewise.
8233 (rs6000_debug_reg_global): Add debugging for PTImode and wt
8234 constraint. Print if LRA is turned on.
8235 (rs6000_option_override_internal): Give an error if -mvsx-timode
8236 and VSX is not enabled.
8237 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
8238 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
8239 to reg+offset addressing. Use PTImode when checking offset
8240 addresses for validity.
8241 (reg_offset_addressing_ok_p): Likewise.
8242 (rs6000_legitimate_offset_address_p): Likewise.
8243 (rs6000_legitimize_address): Likewise.
8244 (rs6000_legitimize_reload_address): Likewise.
8245 (rs6000_legitimate_address_p): Likewise.
8246 (rs6000_eliminate_indexed_memrefs): Likewise.
8247 (rs6000_emit_move): Likewise.
8248 (rs6000_secondary_reload): Likewise.
8249 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
8250 reloads to fpr registers to continue to use reg+offset addressing,
8251 but 64-bit reloads to altivec registers need reg+reg addressing.
8252 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
8253 it. Treat LO_SUM like a PLUS operation.
8254 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 8255 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
8256 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
8257 registers to share a register with a smaller sized type, since VSX
8258 puts scalars in the upper 64-bits.
8259 (print_operand): Add support for PTImode.
8260 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
8261 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
8262 registers, but don't have arithmetic support.
8263 (rs6000_memory_move_cost): Add test for VSX.
8264 (rs6000_opt_masks): Add -mvsx-timode.
8265
8266 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
8267 for TImode.
8268 (VSs): Likewise.
8269 (VSr): Use wt constraint for TImode.
8270 (VSv): Drop TImode support.
8271 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
8272 (vsx_movti_64bit): Likewise.
8273 (vsx_movti_32bit): Likewise.
8274 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
8275 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
8276 one '?' on the appropriate output constraint. Do not allow TImode
8277 logical operations on 32-bit systems.
8278 (vsx_ior<mode>3): Likewise.
8279 (vsx_xor<mode>3): Likewise.
8280 (vsx_one_cmpl<mode>2): Likewise.
8281 (vsx_nor<mode>3): Likewise.
8282 (vsx_andc<mode>3): Likewise.
8283 (vsx_concat_<mode>): Likewise.
8284 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
8285
8286 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
8287 OPTION_MASK_VSX_TIMODE.
8288 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
8289 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
8290
8291 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
8292 (TI2 iterator): New iterator for TImode, PTImode.
8293 (wd mode attribute): Add values for vector types.
bd059b26
UB
8294 (movti_string): Replace TI move operations with operations for TImode
8295 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
8296 (mov<mode>_string, TImode/PTImode): Likewise.
8297 (movti_ppc64): Likewise.
8298 (mov<mode>_ppc64, TImode/PTImode): Likewise.
8299 (TI mode splitters): Likewise.
8300
8301 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
8302 constraint.
8303
1fc5eced
MG
83042013-03-20 Marc Glisse <marc.glisse@inria.fr>
8305
8306 PR tree-optimization/56355
8307 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
8308 Also handle integers with undefined overflow.
8309
22c4c869
CM
83102013-03-20 Catherine Moore <clm@codesourcery.com>
8311 Maciej W. Rozycki <macro@codesourcery.com>
8312 Tom de Vries <tom@codesourcery.com>
8313 Nathan Sidwell <nathan@codesourcery.com>
8314 Iain Sandoe <iain@codesourcery.com>
8315 Nathan Froyd <froydnj@codesourcery.com>
8316 Chao-ying Fu <fu@mips.com>
8317
8318 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 8319 Document new function attributes.
22c4c869
CM
8320 * doc/invoke.texi (minterlink-compressed, mmicromips,
8321 m14k, m14ke, m14kec): Document new options.
8322 (minterlink-mips16): Update documentation.
8323 * doc/md.texi (ZC, ZD): Document new constraints.
8324 * configure.ac (gcc_cv_as_micromips): Check if linker
8325 supports the .set micromips directive.
8326 * configure: Regenerate.
8327 * config.in: Regenerate.
8328 * config/mips/mips-tables.opt: Regenerate.
8329 * config/mips/micromips.md: New file.
8330 * constraints.md (ZC, ZD): New constraints.
8331 * config/mips/predicates.md (movep_src_register): New predicate.
8332 (movep_src_operand): New predicate.
8333 (non_volatile_mem_operand): New predicate.
8334 * config/mips/mips.md (multimem): New type.
8335 (length): Differentiate between 17-bit and 18-bit branch offsets.
8336 (MOVEP1, MOVEP2): New mode iterator.
33159866 8337 (mov_<load>l): Use ZC constraint.
22c4c869
CM
8338 (mov_<load>r): Likewise.
8339 (mov_<store>l): Likewise.
8340 (mov_<store>r): Likewise.
8341 (*branch_equality<mode>_inverted): Add microMIPS support.
8342 (*branch_equality<mode>): Likewise.
8343 (*jump_absolute): Likewise.
8344 (indirect_jump_<mode>): Likewise.
8345 (tablejump_<mode>): Likewise.
8346 (<optab>_internal): Likewise.
8347 (sibcall_internal): Likewise.
8348 (sibcall_value_internal): Likewise.
8349 (prefetch): Use constraint ZD.
8350 * config/mips/mips.opt (minterlink-compressed): New option.
8351 (minterlink-mips16): Now an alias for minterlink-compressed.
8352 (mmicromips): New option.
8353 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
8354 (compare_and_swap_12): Likewise.
8355 (sync_add<mode>): Likewise.
8356 (sync_<optab>_12): Likewise.
8357 (sync_old_<optab>_12): Likewise.
8358 (sync_new_<optab>_12): Likewise.
8359 (sync_nand_12): Likewise.
8360 (sync_old_nand_12): Likewise.
8361 (sync_new_nand_12): Likewise.
8362 (sync_sub<mode>): Likewise.
8363 (sync_old_add<mode>): Likewise.
8364 (sync_old_sub<mode>): Likewise.
8365 (sync_new_add<mode>): Likewise.
8366 (sync_new_sub<mode>): Likewise.
8367 (sync_<optab><mode>): Likewise.
8368 (sync_old_<optab><mode>): Likewise.
8369 (sync_new_<optab><mode>): Likewise.
8370 (sync_nand<mode>): Likewise.
8371 (sync_old_nand<mode>): Likewise.
8372 (sync_new_nand<mode>): Likewise.
8373 (sync_lock_test_and_set<mode>): Likewise.
8374 (test_and_set_12): Likewise.
8375 (atomic_compare_and_swap<mode>): Likewise.
8376 (atomic_exchange<mode>_llsc): Likewise.
8377 (atomic_fetch_add<mode>_llsc): Likewise.
8378 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
8379 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
8380 (umips_save_restore_pattern_p): Likewise.
8381 (umips_load_store_pair_p): Likewise.
8382 (umips_output_load_store_pair): Likewise.
8383 (umips_movep_target_p): Likewise.
8384 (umips_12bit_offset_address_p): Likewise.
8385 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
8386 (mips_base_mips16): Rename this...
8387 (mips_base_compression_flags): ...to this. Update all uses.
8388 (mips_attribute_table): Add micromips, nomicromips and nocompression.
8389 (mips_mips16_decl_p): Delete.
8390 (mips_nomips16_decl_p): Delete.
33159866 8391 (mips_get_compress_on_flags): New function.
22c4c869
CM
8392 (mips_get_compress_off_flags): New function.
8393 (mips_get_compress_mode): New function.
8394 (mips_get_compress_on_name): New function.
8395 (mips_get_compress_off_name): New function.
8396 (mips_insert_attributes): Support multiple compression types.
8397 (mips_merge_decl_attributes): Likewise.
8398 (umips_12bit_offset_address_p): New function.
8399 (mips_start_function_definition): Emit .set micromips directive.
8400 (mips_call_may_need_jalx_p): New function.
8401 (mips_function_ok_for_sibcall): Add microMIPS support.
8402 (mips_print_operand_punctuation): Support short delay slots and
8403 compact jumps.
8404 (umips_swm_mask, umips_swm_encoding): New.
8405 (umips_build_save_restore): New function.
8406 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
8407 (was_mips16_p): Remove.
8408 (old_compression_mode): New.
8409 (mips_set_compression_mode): New function.
8410 (mips_set_current_function): Add microMIPS support.
8411 (mips_option_override): Likewise.
8412 (umips_save_restore_pattern_p): New function.
8413 (umips_output_save_restore): New function.
8414 (umips_load_store_pair_p_1): New function.
8415 (umips_load_store_pair_p): New function.
8416 (umips_output_load_store_pair_1): New function.
8417 (umips_output_load_store_pair): New function.
8418 (umips_movep_target_p) New function.
8419 (mips_prepare_pch_save): Add microMIPS support.
8420 * config/mips/mips.h (TARGET_COMPRESSION): New.
8421 (TARGET_CPU_CPP_BUILTINS): Update macro
8422 to use new compression flags and to support microMIPS.
8423 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
8424 (MIPS_ARCH_FLOAT_SPEC): Likewise.
8425 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
8426 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
8427 (ASM_SPEC): Support mmicromips and mno-micromips.
8428 (M16STORE_REG_P): New macro.
8429 (MIPS_CALL): Support TARGET_MICROMIPS.
8430 (MICROMIPS_J): New macro.
8431 (mips_base_mips16): Rename this...
8432 (mips_base_compression_flags): ...to this.
8433 (UMIPS_12BIT_OFFSET_P): New macro.
8434 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
8435 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
84362013-03-20 Richard Biener <rguenther@suse.de>
8437
8438 PR tree-optimization/56661
8439 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
8440 the result does not have to be distinct.
8441
54714c68
RB
84422013-03-20 Richard Biener <rguenther@suse.de>
8443
8444 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
8445 remap_gimple_op_r.
8446
cca1130d
BS
84472013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8448 Steven Bosscher <steven@gcc.gnu.org>
8449
8450 PR rtl-optimization/56605
8451 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
8452
2a930377
UB
84532013-03-20 Uros Bizjak <ubizjak@gmail.com>
8454
8455 PR bootstrap/56656
8456 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
8457 that require movd instead of movq.
8458
d6d305fe
RB
84592013-03-20 Richard Biener <rguenther@suse.de>
8460
8461 * tree-ssa-structalias.c (struct variable_info): Add pointer
8462 to the first field of an aggregate with sub-vars. Make
8463 this and the pointer to the next subfield its ID.
8464 (vi_next): New function.
8465 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
8466 storedanything_id, integer_id): Increment by one.
8467 (new_var_info, get_call_vi, lookup_call_clobber_vi,
8468 get_call_clobber_vi): Adjust.
8469 (solution_set_expand): Simplify and speedup.
8470 (solution_set_add): Inline into ...
8471 (set_union_with_increment): ... this. Adjust accordingly.
8472 (do_sd_constraint): Likewise.
8473 (do_ds_constraint): Likewise.
8474 (do_complex_constraint): Simplify.
8475 (build_pred_graph): Adjust.
8476 (solve_graph): Likewise. Simplify and speedup.
8477 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
8478 get_constraint_for_component_ref, get_constraint_for_1,
8479 first_vi_for_offset, first_or_preceding_vi_for_offset,
8480 create_function_info_for, create_variable_info_for_1,
8481 create_variable_info_for, intra_create_variable_infos): Adjust.
8482 (init_base_vars): Push NULL for ID zero.
8483 (compute_points_to_sets): Adjust.
8484
a271b42d
RB
84852013-03-20 Richard Biener <rguenther@suse.de>
8486
8487 * cfgloop.c (verify_loop_structure): Streamline and avoid
8488 ICEing on corrupt loop tree.
8489 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
8490 loop tree.
8491
ebd65954
RB
84922013-03-20 Richard Biener <rguenther@suse.de>
8493
8494 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
8495 check whether an SSA update is needed.
8496
4547b7ee
RS
84972013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
8498
8499 * config/mips/constraints.md (T): Rename to...
8500 (Yf): ...this.
8501 (U): Rename to...
8502 (Yd): ...this.
8503 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
8504 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
8505
0b8cdc58
IB
85062013-03-19 Ian Bolton <ian.bolton@arm.com>
8507
8508 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
8509 (*subsi3_carryin_uxtw): Likewise.
8510
5977a10d
IB
85112013-03-19 Ian Bolton <ian.bolton@arm.com>
8512
8513 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
8514 (*rorsi3_insn_uxtw): Likewise.
8515
bd83ff2c
IB
85162013-03-19 Ian Bolton <ian.bolton@arm.com>
8517
8518 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
8519 (*extrsi5_insn_uxtw): Likewise.
8520
ba65123c
RB
85212013-03-19 Richard Biener <rguenther@suse.de>
8522
8523 PR tree-optimization/56273
8524 * passes.c (init_optimization_passes): Move second VRP after DOM.
8525
2eac0476
UB
85262013-03-19 Uros Bizjak <ubizjak@gmail.com>
8527
8528 * config/i386/i386.md (*movti_internal): Merge from
8529 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
8530 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
8531 nox64 isa attributes.
8532
6e55eda7
RB
85332013-03-18 Richard Biener <rguenther@suse.de>
8534
8535 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
8536 (unite): Likewise.
8537 (merge_node_constraints): Likewise.
8538 (build_succ_graph): Likewise.
8539 (valid_graph_edge): Inline into single caller.
8540 (unify_nodes): Likewise. Use bitmap_set_bit return value
8541 and cache varinfo.
8542 (scc_visit): Fix formatting and variable use.
8543 (do_sd_constraint): Use gcc_checking_assert.
8544 (do_ds_constraint): Likewise.
8545 (do_complex_constraint): Likewise.
8546 (condense_visit): Likewise. Cleanup.
8547 (dump_pred_graph): New function.
8548 (perform_var_substitution): Dump the pred-graph before
8549 variable substitution.
8550 (find_equivalent_node): Use gcc_checking_assert.
8551 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
8552
4bdd44c4
RB
85532013-03-18 Richard Biener <rguenther@suse.de>
8554
8555 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
8556 Remove cond_expr_stmt_list argument and do not gimplify the
8557 built expression.
8558 (vect_loop_versioning): Adjust.
8559 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
8560 Cleanup to use less temporaries.
8561 (vect_create_data_ref_ptr): Cleanup.
8562
38c56a5b
JJ
85632013-03-18 Jakub Jelinek <jakub@redhat.com>
8564
8565 PR tree-optimization/56635
8566 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
8567 require types_compatible_p types.
8568
20b2e6a0
NC
85692013-03-18 Nick Clifton <nickc@redhat.com>
8570
a6178a25
NC
8571 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
8572 spurious backslash.
8573
20b2e6a0
NC
8574 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
8575 Add missing line to comment describing function.
8576
92608d0e
RB
85772013-03-18 Richard Biener <rguenther@suse.de>
8578
8579 PR tree-optimization/56210
8580 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8581 Handle string / character search functions.
8582 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
8583
31348d52
RB
85842013-03-18 Richard Biener <rguenther@suse.de>
8585
8586 PR middle-end/56483
8587 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
8588 and implement properly.
8589 * gimple.h (gimple_cond_single_var_p): Remove.
8590
fcac74a1
RB
85912013-03-18 Richard Biener <rguenther@suse.de>
8592
8593 * tree-data-ref.h (find_data_references_in_loop): Declare.
8594 * tree-data-ref.c (get_references_in_stmt): Use a stack
8595 vector pre-allocated in the callers.
8596 (find_data_references_in_stmt): Adjust.
8597 (graphite_find_data_references_in_stmt): Likewise.
8598 (create_rdg_vertices): Likewise.
8599 (find_data_references_in_loop): Export.
8600 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
8601 Compute dependences here...
8602 (vect_analyze_data_refs): ...not here. When we encounter
8603 a non-vectorizable data reference in basic-block vectorization
8604 truncate the data reference vector. Do not bother to
8605 fixup data-dependence information for gather loads.
8606 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
8607 of data references, as reported.
8608
0d5a1b56
RB
86092013-03-18 Richard Biener <rguenther@suse.de>
8610
8611 PR tree-optimization/3713
8612 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
8613 has_constants and expr.
8614 (stmt_has_constants): Properly valueize SSA names when deciding
8615 whether the stmt has constants.
8616
789c34e3
RB
86172013-03-18 Richard Biener <rguenther@suse.de>
8618
8619 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
8620 whole function when there is nothing to do.
8621 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
8622 * tree-vectorizer.c (vectorize_loops): Update virtual and
8623 loop-closed SSA once.
8624 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
8625
076b4605
RB
86262013-03-18 Richard Biener <rguenther@suse.de>
8627
8628 PR middle-end/56113
8629 * domwalk.c (bb_postorder): New global static.
8630 (cmp_bb_postorder): New function.
8631 (walk_dominator_tree): Replace scheme imposing an order for
8632 visiting dominator sons by one sorting them at the time they
8633 are pushed on the stack.
8634
bdb01696
RB
86352013-03-18 Richard Biener <rguenther@suse.de>
8636
8637 PR tree-optimization/39326
8638 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
8639 (struct mem_ref): Replace mem member with ao_ref typed member.
8640 (MEM_ANALYZABLE): Adjust.
8641 (memref_eq): Likewise.
8642 (mem_ref_alloc): Likewise.
8643 (gather_mem_refs_stmt): Likewise.
8644 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
8645 (execute_sm_if_changed_flag_set): Adjust.
8646 (execute_sm): Likewise.
8647 (ref_always_accessed_p): Likewise.
8648 (refs_independent_p): Likewise.
8649 (can_sm_ref_p): Likewise.
8650
12d2dc5e
JJ
86512013-03-18 Jakub Jelinek <jakub@redhat.com>
8652
8653 PR c/56566
8654 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
8655 return 1 even for !unsignedp.
8656
286fb677
UB
86572013-03-17 Uros Bizjak <ubizjak@gmail.com>
8658
8659 * config/i386/i386.md (isa): Add x64 and nox64.
8660 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
8661 (*pushtf): Enable *roF alternative for x64 isa only.
8662 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
8663 mode attribute of integer alternatives to DImode for TARGET_64BIT.
8664 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
8665 (*movtf_internal): Merge from *movtf_internal_rex64 and
8666 *movtf_internal_sse. Use x64 and nox64 isa attributes.
8667 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
8668 nox64 isa attributes.
8669 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
8670 nox64 isa attributes.
8671 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
8672
88b97037
UB
86732013-03-17 Uros Bizjak <ubizjak@gmail.com>
8674
8675 * config/alpha/alpha.c (TARGET_LRA_P): New define.
8676
9f4f1735
JJ
86772013-03-17 Jakub Jelinek <jakub@redhat.com>
8678
8679 PR target/56640
8680 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
8681 class names. Remove trailing comma after "ALL_REGS".
8682
48f4a6fa
JH
86832013-03-16 Jan Hubicka <jh@suse.cz>
8684
8685 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
8686 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
8687 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
8688 of cgraph_get_create_node.
8689 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
8690
98e81123
JM
86912013-03-16 Jason Merrill <jason@redhat.com>
8692
8693 PR debug/49090
8694 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
8695 with DW_AT_default_value.
8696
8a298c04
JJ
86972013-03-16 Jakub Jelinek <jakub@redhat.com>
8698
8699 * BASE-VER: Set to 4.9.0.
8700
4323afa0
AK
87012013-03-14 Andi Kleen <ak@linux.intel.com>
8702
8703 PR target/56619
8704 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
8705 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
8706 Document _x* TSX intrinsics.
8707
b3c0d469
JJ
87082013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
8709 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
8710
8711 * configure.ac: Add MicroBlaze TLS support detection.
8712 * configure: Regenerate.
88b97037
UB
8713 * config/microblaze/microblaze-protos.h
8714 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
8715 symbol_mentioned_p, label_mentioned_p): Add prototypes.
8716 * config/microblaze/microblaze.c (microblaze_address_type): Add
8717 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
8718 (microblaze_address_info): Add tls_reloc.
8719 (TARGET_HAVE_TLS): Define.
8720 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
8721 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
8722 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
8723 load_tls_operand, microblaze_call_tls_get_addr,
8724 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
8725 (microblaze_classify_unspec): Handle UNSPEC_TLS.
8726 (get_base_reg): Use microblaze_tls_symbol_p.
8727 (microblaze_classify_address): Handle TLS.
88b97037
UB
8728 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
8729 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
8730 (microblaze_legitimize_address): Handle TLS.
8731 (microblaze_address_insns): Handle ADDRESS_TLS.
8732 (pic_address_needs_scratch): Handle TLS.
8733 (print_operand_address): Handle TLS.
8734 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
8735 (microblaze_expand_move): Handle TLS.
88b97037
UB
8736 (microblaze_legitimate_constant_p): Check
8737 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
8738 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
8739 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
8740 (PIC_OFFSET_TABLE_REGNUM): Set.
8741 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
8742 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
8743 (addsi3, movsi_internal2, movdf_internal): Update constraints
8744 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
8745 (move_operand): Redefine as move_src_operand,
8746 check microblaze_tls_referenced_p.
8cc9a5a5 8747
d803a491
IB
87482013-03-14 Ian Bolton <ian.bolton@arm.com>
8749
8750 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
8751 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
8752
a8504f22
IB
87532013-03-14 Ian Bolton <ian.bolton@arm.com>
8754
8755 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
8756 CC mode for AND.
8757
df2dfaea
JJ
87582013-03-14 Jakub Jelinek <jakub@redhat.com>
8759
fbd28bc3
JJ
8760 PR tree-optimization/53265
8761 * common.opt (Waggressive-loop-optimizations): New option.
8762 * tree-ssa-loop-niter.c: Include tree-pass.h.
8763 (do_warn_aggressive_loop_optimizations): New function.
8764 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
8765 if number_of_latch_executions returned constant.
8766 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
8767 early. If number_of_latch_executions returned constant, set
8768 nb_iterations_upper_bound back to it.
8769 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
8770 field.
8771 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
8772 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
8773
df2dfaea
JJ
8774 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
8775 (MULTILIB_OSDIRNAMES): Set.
8776 * genmultilib: If defaultosdirname doesn't start with :: , set
8777 defaultosdirname2 instead, clear it and emit two . multilib_raw
8778 entries instead of just one.
8779
ee0d2b68
KK
87802013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
8781
8782 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
8783 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
8784 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
8785 (SUBTARGET_OVERRIDE_OPTIONS): New.
8786
decc676e
OE
87872013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
8788
8789 PR target/49880
8790 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
8791 (musermode): Convert to Var(TARGET_USERMODE).
8792 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
8793 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
8794 * config/sh/sh.c (sh_option_override): Use
8795 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
8796 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
8797 condition.
8798 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
8799 TARGET_SH4.
8800 (udivsi3_i4_single, divsi3_i4_single): Use
8801 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
8802
f4b719c7
DK
88032013-03-13 Dave Korn <dave.korn.cygwin@....>
8804
8805 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
8806 default setting.
8807
c40eced0
RB
88082013-03-13 Richard Biener <rguenther@suse.de>
8809
8810 PR tree-optimization/56608
8811 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
8812 calls when vectorizing basic-blocks.
8813
1bfa5973
JJ
88142013-03-13 Jakub Jelinek <jakub@redhat.com>
8815
8816 PR plugins/45078
8817 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
8818 tm_file.
8819
6fcf5434
JJ
88202013-03-12 Jakub Jelinek <jakub@redhat.com>
8821
8822 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
8823
4f38fa8c
JH
88242013-03-11 Jan Hubicka <jh@suse.cz>
8825
8826 PR lto/56557
8827 * lto-streamer-out.c (output_symbol_p): Skip references from
8828 constructors of external variables.
8829
c5c5ba89
JH
88302013-03-11 Jan Hubicka <jh@suse.cz>
8831
8832 PR middle-end/56571
8833 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
8834 from pseudos.
8835 * emit-rtl.c (verify_rtx_sharing): Likewise.
8836 (copy_insn_1): Likewise.
8837 * rtl.c (copy_rtx): Likewise.
8838
c2a939b1
GJL
88392013-03-11 Georg-Johann Lay <avr@gjlay.de>
8840
8841 PR target/56591
8842 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
8843 output_operand_lossage message.
88b97037 8844
3c3279fb
RE
88452013-03-11 Richard Earnshaw <rearnsha@arm.com>
8846
8847 PR target/56470
8848 * arm.c (shift_op): Validate RTL pattern on the fly.
8849 (arm_print_operand, case 'S'): Don't use shift_operator to validate
8850 the RTL.
8851
aef5ef9d
JDA
88522013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8853
8854 PR target/56347
8855 * config/pa/pa.md (call_value): Check for calls to powf and direct to
8856 new call patterns that clobber %fr12.
8857 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
8858 split and postreload patterns.
8859 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
8860 registers %fr12 and %fr12R as call used.
8861
456610d3
SB
88622013-03-09 Steven Bosscher <steven@gcc.gnu.org>
8863
8864 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
8865 (canon_address, record_store, replace_read, check_mem_read_rtx,
8866 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
8867 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
8868 rest_of_handle_dse): Likewise.
8869
4b1baac8
RS
88702013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
8871
8872 PR middle-end/56524
8873 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
8874 Add base_optabs.
8875 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
8876 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
8877 (save_optabs_if_changed): Replace with...
8878 (init_tree_optimization_optabs): ...this.
8879 * optabs.c (save_optabs_if_changed): Rename to...
8880 (init_tree_optimization_optabs): ...this. Take the optimization node
8881 as argument. Do nothing if the base optabs are already correct.
8882 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
8883 to recompute optabs.
8884 * function.h (function): Remove optabs field.
8885 * function.c (invoke_set_current_function_hook): Call
8886 init_tree_optimization_optabs. Use the result to initialize
8887 this_fn_optabs.
8888
b7a78683
AH
88892013-02-27 Aldy Hernandez <aldyh@redhat.com>
8890
8891 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
8892 if GTMA_HAS_NO_INSTRUMENTATION.
8893 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
8894 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
8895 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
8896 * gimple-pretty-print.c (dump_gimple_transaction): Handle
8897 GTMA_HAS_NO_INSTRUMENTATION.
8898
6384c29b
JJ
88992013-03-08 Jakub Jelinek <jakub@redhat.com>
8900
8901 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
8902 libasan_preinit.o.
8903
ecd4f20a
MP
89042013-03-08 Marek Polacek <polacek@redhat.com>
8905 Jakub Jelinek <jakub@redhat.com>
8906
8907 PR tree-optimization/56478
8908 * predict.c (is_comparison_with_loop_invariant_p): Change the
8909 type of loop_step to tree.
8910 (predict_loops): Adjust.
8911 (predict_iv_comparison): Perform the computations on double_ints.
8912
64366d35
RB
89132013-03-08 Richard Biener <rguenther@suse.de>
8914
8915 PR tree-optimization/56570
8916 * tree-cfg.c (verify_expr_location_1): Verify locations for
8917 DECL_DEBUG_EXPR.
8918 * tree-sra.c (create_access_replacement): Strip locations
8919 from DECL_DEBUG_EXPRs.
8920
a9d5a059
RB
89212013-03-08 Richard Biener <rguenther@suse.de>
8922
8923 * tree-inline.c (expand_call_inline): Do not associate
8924 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
8925 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
8926
b7aa4e9a
RB
89272013-03-08 Richard Biener <rguenther@suse.de>
8928
8929 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
8930 or block changes with -Og. Fix for location / block encoding
8931 changes and PHI arguments with locations.
8932
c4c2f9fa
SB
89332013-03-07 Steven Bosscher <steven@gcc.gnu.org>
8934
8935 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
8936 for all counters.
8937 (struct output_info): Likewise.
8938 (register_overhead): Remove bad gcc_assert.
8939 (bitmap_find_bit): If there is only a single bitmap element, do not
8940 count a miss as a search.
8941 (print_statistics): Update for counter type changes.
8942 (dump_bitmap_statistics): Likewise. Print headers such that they
8943 are properly lined up with the printed counters.
8944
5bf6606a
JJ
89452013-03-07 Jakub Jelinek <jakub@redhat.com>
8946
8947 PR tree-optimization/56559
8948 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
8949 check that it has only a single use.
8950
2c653d46
RB
89512013-03-07 Richard Biener <rguenther@suse.de>
8952
8953 * doc/invoke.texi (fwhole-program): Discourage use in combination
8954 with -flto.
8955
a72d8780
JJ
89562013-03-06 Jakub Jelinek <jakub@redhat.com>
8957
01a454df
JJ
8958 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
8959
c1781047
JJ
8960 PR tree-optimization/56539
8961 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
8962 instead of GSI_CONTINUE_LINKING as last argument to
8963 force_gimple_operand_gsi. Adjust function comment.
8964
9772c47a
JJ
8965 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
8966 aarch64-cores.def.
8967
a72d8780
JJ
8968 PR middle-end/56548
8969 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
8970 promoted mode, convert the result back to the original mode.
8971
fa5556de
RB
89722013-03-06 Richard Biener <rguenther@suse.de>
8973
8974 PR middle-end/56294
8975 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
8976 (insert_updated_phi_nodes_compare_uids): New function.
8977 (update_ssa): Sort symbols_to_rename after UID before
8978 traversing it to insert PHI nodes.
8979
010403d1
RB
89802013-03-06 Richard Biener <rguenther@suse.de>
8981
8982 PR middle-end/50494
8983 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
8984 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
8985
8986 Revert
8987 2013-02-13 Richard Biener <rguenther@suse.de>
8988
8989 PR lto/50494
8990 * varasm.c (output_constant_def_1): Get the decl representing
8991 the constant as argument.
8992 (output_constant_def): Wrap output_constant_def_1.
8993 (make_decl_rtl): Use output_constant_def_1 with the decl
8994 representing the constant.
8995 (build_constant_desc): Optionally re-use a decl already
8996 representing the constant.
8997 (tree_output_constant_def): Adjust.
8998
3c27ce4c
JY
89992013-03-06 Joey Ye <joey.ye@arm.com>
9000
9001 PR lto/50293
9002 * gcc.c (convert_white_space): New function.
9003 (main): Handles white space in function name.
9004
8f6d1c86
OE
90052013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
9006
9007 PR target/56529
9008 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
9009 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
9010 to SH_DIV_CALL_TABLE for TARGET_SH2.
9011 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
9012 list.
9013 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
9014 call-table options.
9015
798a209f
SA
90162013-03-05 Sterling Augustine <saugustine@google.com>
9017 Cary Coutant <ccoutant@google.com>
9018
9019 PR debug/55364
9020 * dwarf2out.c (resolve_addr): Don't call
9021 remove_loc_list_addr_table_entries a second time for the same
9022 expression.
9023
6cfa417f 90242013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 9025
6cfa417f
JJ
9026 PR debug/56510
9027 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
9028 (avoid_complex_debug_insns): New function.
9029 (expand_debug_locations): Call it.
9030
9031 PR rtl-optimization/56484
9032 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
9033 lifetimes of hard registers on small register class machines.
9034
90352013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
9036
9037 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 9038 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 9039 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
9040 fast_interrupt.
9041 (microblaze_fast_interrupt_function_p): New function.
9042 (microblaze_is_interrupt_handler): Rename to
9043 microblaze_is_interrupt_variant and add fast_interrupt check.
9044 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
9045 (save_restore_insns): Likewise.
9046 (compute_frame_size): Likewise.
9047 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
9048 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
9049 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
9050 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
9051 microblaze_is_interrupt_variant.
9052
731aefac
KT
90532013-03-05 Kai Tietz <ktietz@redhat.com>
9054
9055 * sdbout.c (sdbout_one_type): Switch to current function's section
9056 supporting cold/hot.
9057
a72d8780 90582013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
9059
9060 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
9061 -mxl-reorder.
9062
334e71e8
JJ
90632013-03-05 Jakub Jelinek <jakub@redhat.com>
9064
0b50e654
JJ
9065 PR middle-end/56461
9066 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
9067 if VALGRIND_GET_VBITS is defined, temporarily make object
9068 memory all defined, and restore previous valgrind addressability
9069 and definability afterwards. Free this_object at the end.
9070
4ccf8f43
JJ
9071 PR middle-end/56461
9072 * lra.c (lra): Call lra_clear_live_ranges if live_p,
9073 right before calling lra_create_live_ranges, also call it
9074 when clearing live_p. Only call lra_clear_live_ranges
9075 at the end if live_p.
9076
334e71e8
JJ
9077 PR middle-end/56461
9078 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
9079
9ca966ca
RB
90802013-03-05 Richard Biener <rguenther@suse.de>
9081
9082 PR tree-optimization/56521
9083 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
9084 value-id.
9085
d273b176
SB
90862013-03-05 Steven Bosscher <steven@gcc.gnu.org>
9087
9088 PR c++/55135
9089 * except.h (remove_unreachable_eh_regions): New prototype.
9090 * except.c (remove_eh_handler_splicer): New function, split out
9091 of remove_eh_handler.
9092 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
9093 warning about running it on many EH regions one at a time.
9094 (remove_unreachable_eh_regions_worker): New function, walk the
9095 EH tree in depth-first order and remove non-marked regions.
9096 (remove_unreachable_eh_regions): New function.
9097 * tree-eh.c (mark_reachable_handlers): New function, split out
9098 from remove_unreachable_handlers.
9099 (remove_unreachable_handlers): Use mark_reachable_handlers and
9100 remove_unreachable_eh_regions.
9101 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
9102 and remove_unreachable_eh_regions.
9103
5e7f1aef
RB
91042013-03-05 Richard Biener <rguenther@suse.de>
9105
9106 PR middle-end/56525
9107 * loop-init.c (fix_loop_structure): Remove loops in two stages,
9108 not freeing them until the end.
9109
f276b762
AK
91102013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9111
9112 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
9113
12a43ab8
RB
91142013-03-05 Richard Biener <rguenther@suse.de>
9115
9116 PR tree-optimization/56270
9117 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
9118 of loads after scheduling an SLP instance.
9119
93675444
JJ
91202013-03-05 Jakub Jelinek <jakub@redhat.com>
9121
db4138e3
JJ
9122 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
9123 tic6x.exp.
9124 (check_gcc_parallelize): Run guality.exp as a separate job from
9125 vect.exp with unsorted.exp and $(dg_target_exps) separately from
9126 struct-layout-1.exp with stackalign.exp.
9127
dd3d1ec0
JJ
9128 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
9129
b8d381a3
JJ
9130 PR middle-end/56461
9131 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
9132 load_index sbitmap even if some bit in it isn't set.
9133
b4f9786b
JJ
9134 PR middle-end/56461
9135 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
9136 (discover_iteration_bound_by_body_walk): Change queues to
9137 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
9138 spelling in comment. Call safe_push on queues[bound_index] directly.
9139 Release queues[queue_index] in every iteration unconditionally.
9140 Release bounds vector.
9141
93675444
JJ
9142 PR middle-end/56461
9143 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
9144 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
9145 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
9146 inner_phis vector.
9147
3e492e9c
RB
91482013-03-05 Richard Biener <rguenther@suse.de>
9149
9150 PR lto/56515
9151 * tree-inline.c (remap_blocks_to_null): New function.
9152 (expand_call_inline): When expanding a call stmt without
9153 an associated block inline remap all callee blocks to NULL.
9154
a5d1569a
JJ
91552013-03-05 Jakub Jelinek <jakub@redhat.com>
9156
86efb5cd
JJ
9157 PR rtl-optimization/56494
9158 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
9159 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
9160 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
9161
85f5dbea
JJ
9162 PR middle-end/56461
9163 * sel-sched-ir.c (free_sched_pools): Release
9164 succs_info_pool.stack[succs_info_pool.max_top] vectors too
9165 if succs_info_pool.max_top isn't -1.
9166
a5d1569a
JJ
9167 PR bootstrap/56509
9168 * opts.c (opts_obstack, opts_concat): Moved to...
9169 * opts-common.c (opts_obstack, opts_concat): ... here.
9170
4432aa6c
JJ
91712013-03-04 Jakub Jelinek <jakub@redhat.com>
9172
9173 PR middle-end/56461
9174 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
9175
f3a1fb91
MJ
91762013-03-04 Martin Jambor <mjambor@suse.cz>
9177
9178 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
9179 all appropriate places.
9180
22110e6c
EB
91812013-01-04 Eric Botcazou <ebotcazou@adacore.com>
9182
9183 PR tree-optimization/56424
9184 * ipa-split.c (split_function): Do not set the RSO flag if result is
9185 not by reference and its type is a register type.
9186
a72d8780 91872013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 9188
88b97037 9189 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 9190 (microblaze_legitimate_pic_operand): Likewise
88b97037 9191 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
9192 new function microblaze_legitimate_pic_operand
9193 * config/microblaze/microblaze-protos.h
9194 (microblaze_legitimate_pic_operand): Declare.
9195
a72d8780 91962013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 9197
a72d8780 9198 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 9199 New predicate for supported rtx code types.
a72d8780 9200 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
9201 call_insn_simple_operand predicate.
9202
541d9ac8
JJ
92032013-03-04 Jakub Jelinek <jakub@redhat.com>
9204
5eb010bc
JJ
9205 PR middle-end/56461
9206 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
9207 partitions.ordered_remove.
9208
30862efc
JJ
9209 PR middle-end/56461
9210 * tree-vect-stmts.c (vectorizable_conversion): Don't call
9211 vec_oprnds0.create (1) for modifier == NONE.
9212
8930f723
JJ
9213 PR middle-end/56461
9214 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
9215 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
9216 vec_oprnds1 right before pushing anything to it for
9217 scalar_shift_arg.
9218
541d9ac8
JJ
9219 PR middle-end/56461
9220 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
9221 set nbbs to 0 instead of having separate code path.
9222 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
9223 instead of false as last argument if returning NULL.
9224
7aa7f2e3
SL
92252013-03-03 Sandra Loosemore <sandra@codesourcery.com>
9226
9227 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
9228 the attribute is now called "target" instead of "option".
9229 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
9230 * doc/tm.texi.in (Target Attributes): Likewise document the correct
9231 attribute/pragma name for TARGET_OPTION_VALID_P and
9232 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
9233 * doc/tm.texi: Regenerated.
9234
8930f723 92352013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 9236
8930f723 9237 * config/microblaze/microblaze.c:
cb8a1637 9238 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
9239 * config/microblaze/microblaze.h: Add -mxl-reorder to
9240 DRIVER_SELF_SPECS.
9241 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
9242 instructions emitted if TARGET_REORDER.
88b97037
UB
9243 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
9244 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 9245 separately.
cb8a1637 9246
4dc1d68c
XDL
92472013-03-01 Xinliang David Li <davidxl@google.com>
9248
9249 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
9250 walk length.
9251
689eaba3
JJ
92522013-03-01 Jakub Jelinek <jakub@redhat.com>
9253
9d676bf6
JJ
9254 PR middle-end/56461
9255 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
9256 vector even when returning true. Fix up function comment formatting.
9257
caff7edf
JJ
9258 PR middle-end/56461
9259 * ira-build.c (ira_loop_nodes_count): New variable.
9260 (create_loop_tree_nodes): Initialize it.
9261 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
9262
b6b9227d
JJ
9263 PR middle-end/56461
9264 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
9265 method on dr_chain and result_chain.
9266 * tree-vect-stmts.c (vectorizable_store): Only call
9267 result_chain.create if j == 0.
9268
689eaba3
JJ
9269 PR middle-end/56461
9270 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
9271 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
9272 before overwriting it.
9273
40bf31ed
TB
92742013-03-01 Tobias Burnus <burnus@net-b.de>
9275
9276 * doc/extended.texi (C Extensions): Change order in @menu
9277 to match @node.
9278 (Other MIPS Built-in Functions): Move last MIPS entry before
9279 "picoChip Built-in Functions".
9280 (SH Built-in Functions): Move after RX Built-in Functions.
9281 * doc/gcc.texi (Introduction): Change order in @menu
9282 to match @node.
9283 * doc/md.texi (Constraints): Ditto.
9284 * gty.texi (Type Information): Ditto.
9285 (User-provided marking routines for template types): Make
9286 subsection.
9287 * doc/invoke.texi (AArch64 Options): Move before
9288 "Adapteva Epiphany Options".
9289
e664c61c
KS
92902013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
9291 Jakub Jelinek <jakub@redhat.com>
9292
9293 PR sanitizer/56454
9294 * asan.c (gate_asan): Lookup no_sanitize_address instead of
9295 no_address_safety_analysis attribute.
9296 * doc/extend.texi (no_address_safety_attribute): Rename to
9297 no_sanitize_address attribute, mention no_address_safety_analysis
9298 attribute as deprecated alias.
9299
37b5ec8f
JJ
93002013-02-28 Jakub Jelinek <jakub@redhat.com>
9301
9302 PR middle-end/56461
9303 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
9304 type to vec<vec<tree> > *.
9305 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
9306 to be vec<tree> instead of vec<tree> *, set vec_defs
9307 to vNULL and call vec_defs.create (number_of_vects), adjust other
9308 uses of vec_defs.
9309 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
9310 vectorizable_condition): Adjust vect_get_slp_defs callers.
9311
ba96cdfb
JG
93122013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
9313
9314 * config/aarch64/aarch64.c
9315 (aarch64_float_const_representable): Remove unused variable.
9316
6f549691
JG
93172013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
9318
9319 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
9320
af55e82d
JG
93212013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
9322
9323 * config/aarch64/aarch64-builtins.c
9324 (aarch64_init_simd_builtins): Make static.
9325
1df3f464
JG
93262013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
9327
9328 * config/aarch64/aarch64.c
9329 (aarch64_simd_make_constant): Make static.
9330
f8f42513
MJ
93312013-02-28 Martin Jambor <mjambor@suse.cz>
9332
9333 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
9334 with no initialization to the RHS of debug statements.
9335
b48b3fc4
MJ
93362013-02-28 Martin Jambor <mjambor@suse.cz>
9337
9338 PR tree-optimization/56294
9339 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
9340 Adjust dumping.
9341 (get_access_replacement): Do not call create_access_replacement.
9342 Assert a replacement exists.
9343 (get_repl_default_def_ssa_name): Create the replacement declaration
9344 itself.
9345
c3ae224c
RR
93462013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9347
9348 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
9349 final_end_function.
9350
45fa0eef
MP
93512013-02-28 Marek Polacek <polacek@redhat.com>
9352
9353 PR rtl-optimization/56466
9354 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
9355 if we're changing a loop.
9356 (peel_loops_completely): Likewise.
9357
502c067d
PC
93582013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
9359
9360 PR c++/55813
9361 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
9362
ff24afc8
GJL
93632013-02-28 Georg-Johann Lay <avr@gjlay.de>
9364
9365 PR target/56445
9366 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
9367 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
9368 INTX_FTYPE_FX, FX_FTYPE_INTX.
9369 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
9370
c7b1fc1b
GJL
93712013-02-28 Georg-Johann Lay <avr@gjlay.de>
9372
9373 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
9374 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
9375 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
9376 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
9377 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
9378 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
9379 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
9380 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
9381 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
9382 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
9383 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
9384 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
9385 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
9386 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
9387 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
9388 (avrxmega6): Increase max flash segments from 5 to 6.
9389 * config/avr/t-multilib: Regenerate.
9390 * config/avr/avr-tables.opt: Regenerate.
9391 * doc/avr-mmcu.texi: Regenerate.
9392
4a0e3cfe
GJL
93932013-02-28 Georg-Johann Lay <avr@gjlay.de>
9394
9395 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
9396 (avr_device_to_arch): Rename to avr_device_to_ld.
9397 (avr_device_to_as): New prototype.
9398 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
9399 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
9400 * config/avr/driver-avr.c (avr_device_to_as): New.
9401 (avr_device_to_arch): Rename to avr_device_to_ld.
9402
97785e52
JJ
94032013-02-27 Jakub Jelinek <jakub@redhat.com>
9404
3f292312
JJ
9405 PR middle-end/56461
9406 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
9407 method on dr_chain and result_chain.
9408
a344216b
JJ
9409 PR middle-end/56461
9410 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
9411 pointer_set_destroy on not_executed_last_iteration.
9412
f121ad02 9413 PR middle-end/56461
88b97037 9414 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 9415
307f83a3
JJ
9416 PR middle-end/56461
9417 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
9418 FOR_EACH_DEFINED_FUNCTION when freeing state.
9419
e19624ee
JJ
9420 PR middle-end/56461
9421 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
9422 pool_free.
9423 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
9424 overwriting it.
9425
90e709fd
JJ
9426 PR middle-end/56461
9427 * ipa-cp.c (decide_whether_version_node): Call vec_free on
9428 known_aggs[i].items and release known_aggs vector.
9429
97785e52
JJ
9430 PR middle-end/56461
9431 * ipa-reference.c (propagate): Free node_info even for alias nodes.
9432
94332013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 9434
97785e52
JJ
9435 * config/microblaze/microblaze.c (microblaze_emit_compare):
9436 Use xor for EQ/NE comparisions.
9437 * config/microblaze/microblaze.md (cstoresf4): Add constraints
9438 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 9439
6fa5e0ed
JJ
94402013-02-27 Jakub Jelinek <jakub@redhat.com>
9441
9442 PR middle-end/56461
9443 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
9444 vector.
9445 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
9446 vec_safe_push, always update *slot.
9447 (redirect_edge_var_map_clear): Use vec_free.
9448 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
9449 (free_var_map_entry): Use vec_free.
9450 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
9451 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
9452
436a956a
AB
94532013-02-27 Andrey Belevantsev <abel@ispras.ru>
9454
9455 PR middle-end/45472
436a956a
AB
9456 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
9457 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
9458 Reorder tests for speculativeness in the logical and operator.
9459
f5c2caca
JJ
94602013-02-27 Jakub Jelinek <jakub@redhat.com>
9461
0fcb564b
JJ
9462 * incpath.c (add_standard_paths): Use reconcat instead of concat
9463 where appropriate and avoid leaking memory.
9464
dc357798
JJ
9465 * opts.h: Include obstack.h.
9466 (opts_concat): New prototype.
9467 (opts_obstack): New declaration.
9468 * opts.c (opts_concat): New function.
9469 (opts_obstack): New variable.
9470 (init_options_struct): Call gcc_init_obstack on opts_obstack.
9471 (finish_options): Use opts_concat instead of concat
9472 and XOBNEWVEC instead of XNEWVEC.
9473 * opts-common.c (generate_canonical_option, decode_cmdline_option,
9474 generate_option): Likewise.
9475 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
9476 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
9477
f5c2caca
JJ
9478 PR target/56455
9479 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
9480 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
9481
d0163673
JJ
94822013-02-26 Jakub Jelinek <jakub@redhat.com>
9483
9484 PR middle-end/56461
9485 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
9486
b5ad2b8e
JR
94872013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
9488
9489 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
9490 (arm_block_move_unaligned_straight): Likewise.
9491 (arm_adjust_block_mem): Likewise.
9492
9b639e2c
JR
94932013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
9494
9495 PR target/48901
9496 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
9497 temp, cond and label.
9498 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
9499
e13a0ccb
JR
9500 PR target/52500
9501 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
9502 * config/c6x/c6x.h (dbx_register_map): Update declaration.
9503
fbe4f171
JR
9504 PR target/52501
9505 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
9506 of prologue/epilogue functions.
9507
ae006543
JR
9508 PR target/52550
9509 * config/tilegx/tilegx.c (tilegx_expand_prologue):
9510 Remove unused variable cfa_offset.
9511 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
9512
c81369fa
JR
9513 PR target/54639
9514 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
9515 type promotion to unsigned.
9516
f8a8fea7
JR
9517 PR target/54640
9518 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
9519 for HOST_WIDE_INT of 32 bit / same size as int.
9520 (arm_block_move_unaligned_straight): Likewise.
9521 (arm_adjust_block_mem): Likewise.
9522
f8be5169
JR
9523 PR target/54662
9524 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
9525 ALL_CFLAGS.
9526
f1ad3354
MP
95272013-02-26 Marek Polacek <polacek@redhat.com>
9528
9529 PR tree-optimization/56426
88b97037 9530 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 9531
a6af0f42
RB
95322013-02-26 Richard Biener <rguenther@suse.de>
9533
9534 PR target/56444
9535 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
9536 unused variable loops.
9537
aca43c6c
JJ
95382013-02-26 Jakub Jelinek <jakub@redhat.com>
9539
cecbe5d9
JJ
9540 PR tree-optimization/56448
9541 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
9542 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
9543 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
9544 later operands of the references, or even first operand for
9545 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
9546
aca43c6c
JJ
9547 PR tree-optimization/56443
9548 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
9549 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
9550 to type_for_mode langhook.
9551
53e2e141
MT
95522013-02-25 Matt Turner <mattst88@gmail.com>
9553
9554 * doc/invoke.texi: Document r4700.
9555
259ee451
RB
95562013-02-25 Richard Biener <rguenther@suse.de>
9557
9558 PR tree-optimization/56175
9559 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
9560 split out from ...
9561 (simplify_bitwise_binary): ... here. Also guard the conversion
9562 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
9563
6d65e8f1
CM
95642013-02-25 Catherine Moore <clm@codesourcery.com>
9565
9566 Revert:
9567 2013-02-24 Catherine Moore <clm@codesourcery.com>
9568 Maciej W. Rozycki <macro@codesourcery.com>
9569 Tom de Vries <tom@codesourcery.com>
a72d8780 9570 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
9571 Iain Sandoe <iain@codesourcery.com>
9572 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 9573 Chao-ying Fu <fu@mips.com>
88b97037 9574
6d65e8f1 9575 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 9576 Document new function attributes.
6d65e8f1
CM
9577 * doc/invoke.texi (minterlink-compressed, mmicromips,
9578 m14k, m14ke, m14kec): Document new options.
9579 (minterlink-mips16): Update documentation.
9580 * doc/md.texi (ZC, ZD): Document new constraints.
9581 * configure.ac (gcc_cv_as_micromips): Check if linker
9582 supports the .set micromips directive.
9583 * configure: Regenerate.
9584 * config.in: Regenerate.
9585 * config/mips/mips-tables.opt: Regenerate.
9586 * config/mips/micromips.md: New file.
9587 * constraints.md (ZC, AD): New constraints.
9588 * config/mips/predicates.md (movep_src_register): New predicate.
9589 (movep_src_operand): New predicate.
9590 (non_volatile_mem_operand): New predicate.
9591 * config/mips/mips.md (multimem): New type.
9592 (length): Differentiate between 17-bit and 18-bit branch offsets.
9593 (MOVEP1, MOVEP2): New mode iterator.
9594 (mov_<load>l): Use ZC constraint.
9595 (mov_<load>r): Likewise.
9596 (mov_<store>l): Likewise.
9597 (mov_<store>r): Likewise.
9598 (*branch_equality<mode>_inverted): Add microMIPS support.
9599 (*branch_equality<mode>): Likewise.
9600 (*jump_absolute): Likewise.
9601 (indirect_jump_<mode>): Likewise.
9602 (tablejump_<mode>): Likewise.
9603 (<optab>_internal): Likewise.
9604 (sibcall_internal): Likewise.
9605 (sibcall_value_internal): Likewise.
9606 (prefetch): Use constraint ZD.
9607 * config/mips/mips.opt (minterlink-compressed): New option.
9608 (minterlink-mips16): Now an alias for minterlink-compressed.
9609 (mmicromips): New option.
9610 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
9611 (compare_and_swap_12): Likewise.
9612 (sync_add<mode>): Likewise.
9613 (sync_<optab>_12): Likewise.
9614 (sync_old_<optab>_12): Likewise.
9615 (sync_new_<optab>_12): Likewise.
9616 (sync_nand_12): Likewise.
9617 (sync_old_nand_12): Likewise.
9618 (sync_new_nand_12): Likewise.
9619 (sync_sub<mode>): Likewise.
9620 (sync_old_add<mode>): Likewise.
9621 (sync_old_sub<mode>): Likewise.
9622 (sync_new_add<mode>): Likewise.
9623 (sync_new_sub<mode>): Likewise.
9624 (sync_<optab><mode>): Likewise.
9625 (sync_old_<optab><mode>): Likewise.
9626 (sync_new_<optab><mode>): Likewise.
9627 (sync_nand<mode>): Likewise.
9628 (sync_old_nand<mode>): Likewise.
9629 (sync_new_nand<mode>): Likewise.
9630 (sync_lock_test_and_set<mode>): Likewise.
9631 (test_and_set_12): Likewise.
9632 (atomic_compare_and_swap<mode>): Likewise.
9633 (atomic_exchange<mode>_llsc): Likewise.
9634 (atomic_fetch_add<mode>_llsc): Likewise.
9635 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
9636 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
9637 (umips_save_restore_pattern_p): Likewise.
9638 (umips_load_store_pair_p): Likewise.
9639 (umips_output_load_store_pair): Likewise.
9640 (umips_movep_target_p): Likewise.
9641 (umips_12bit_offset_address_p): Likewise.
9642 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
9643 (mips_base_mips16): Rename this...
9644 (mips_base_compression_flags): ...to this. Update all uses.
9645 (mips_attribute_table): Add micromips, nomicromips and nocompression.
9646 (mips_mips16_decl_p): Delete.
9647 (mips_nomips16_decl_p): Delete.
9648 (mips_get_compress_on_flags): New function.
9649 (mips_get_compress_off_flags): New function.
9650 (mips_get_compress_mode): New function.
9651 (mips_get_compress_on_name): New function.
9652 (mips_get_compress_off_name): New function.
9653 (mips_insert_attributes): Support multiple compression types.
9654 (mips_merge_decl_attributes): Likewise.
9655 (umips_12bit_offset_address_p): New function.
9656 (mips_start_function_definition): Emit .set micromips directive.
9657 (mips_call_may_need_jalx_p): New function.
9658 (mips_function_ok_for_sibcall): Add microMIPS support.
9659 (mips_print_operand_punctuation): Support short delay slots and
9660 compact jumps.
9661 (umips_swm_mask, umips_swm_encoding): New.
9662 (umips_build_save_restore): New function.
9663 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
9664 (was_mips16_p): Remove.
9665 (old_compression_mode): New.
9666 (mips_set_compression_mode): New function.
9667 (mips_set_current_function): Add microMIPS support.
9668 (mips_option_override): Likewise.
9669 (umips_save_restore_pattern_p): New function.
9670 (umips_output_save_restore): New function.
9671 (umips_load_store_pair_p_1): New function.
9672 (umips_load_store_pair_p): New function.
9673 (umips_output_load_store_pair_1): New function.
9674 (umips_output_load_store_pair): New function.
9675 (umips_movep_target_p) New function.
9676 (mips_prepare_pch_save): Add microMIPS support.
9677 * config/mips/mips.h (TARGET_COMPRESSION): New.
9678 (TARGET_CPU_CPP_BUILTINS): Update macro
9679 to use new compression flags and to support microMIPS.
9680 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
9681 (MIPS_ARCH_FLOAT_SPEC): Likewise.
9682 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
9683 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
9684 (ASM_SPEC): Support mmicromips and mno-micromips.
9685 (M16STORE_REG_P): New macro.
9686 (MIPS_CALL): Support TARGET_MICROMIPS.
9687 (MICROMIPS_J): New macro.
9688 (mips_base_mips16): Rename this...
9689 (mips_base_compression_flags): ...to this.
9690 (UMIPS_12BIT_OFFSET_P): New macro.
9691 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
9692 (MULTILIB_DIRNAMES): Likewise.
9693
5e5df392
TV
96942013-02-25 Tom de Vries <tom@codesourcery.com>
9695
9696 PR rtl-optimization/56131
9697 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
9698 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
9699 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
9700
3fdb53c1
TB
97012013-02-25 Tobias Burnus <burnus@net-b.de>
9702
9703 * doc/invoke.texi (-fsanitize=): Move from optimization
9704 to debugging options.
9705
ed358aea
AB
97062013-02-25 Andrey Belevantsev <abel@ispras.ru>
9707
9708 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
9709
f45e9053
AB
97102013-02-25 Andrey Belevantsev <abel@ispras.ru>
9711 Alexander Monakov <amonakov@ispras.ru>
9712
9713 PR middle-end/56077
9714 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
9715 flush pending lists also on non-jumps. Adjust comment.
9716
6941b508
CM
97172013-02-24 Catherine Moore <clm@codesourcery.com>
9718 Maciej W. Rozycki <macro@codesourcery.com>
9719 Tom de Vries <tom@codesourcery.com>
a72d8780 9720 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
9721 Iain Sandoe <iain@codesourcery.com>
9722 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 9723 Chao-ying Fu <fu@mips.com>
6941b508
CM
9724
9725 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 9726 Document new function attributes.
6941b508
CM
9727 * doc/invoke.texi (minterlink-compressed, mmicromips,
9728 m14k, m14ke, m14kec): Document new options.
9729 (minterlink-mips16): Update documentation.
9730 * doc/md.texi (ZC, ZD): Document new constraints.
9731 * configure.ac (gcc_cv_as_micromips): Check if linker
9732 supports the .set micromips directive.
9733 * configure: Regenerate.
9734 * config.in: Regenerate.
9735 * config/mips/mips-tables.opt: Regenerate.
9736 * config/mips/micromips.md: New file.
9737 * constraints.md (ZC, AD): New constraints.
9738 * config/mips/predicates.md (movep_src_register): New predicate.
9739 (movep_src_operand): New predicate.
9740 (non_volatile_mem_operand): New predicate.
9741 * config/mips/mips.md (multimem): New type.
9742 (length): Differentiate between 17-bit and 18-bit branch offsets.
9743 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 9744 (mov_<load>l): Use ZC constraint.
6941b508
CM
9745 (mov_<load>r): Likewise.
9746 (mov_<store>l): Likewise.
9747 (mov_<store>r): Likewise.
9748 (*branch_equality<mode>_inverted): Add microMIPS support.
9749 (*branch_equality<mode>): Likewise.
9750 (*jump_absolute): Likewise.
9751 (indirect_jump_<mode>): Likewise.
9752 (tablejump_<mode>): Likewise.
9753 (<optab>_internal): Likewise.
9754 (sibcall_internal): Likewise.
9755 (sibcall_value_internal): Likewise.
9756 (prefetch): Use constraint ZD.
9757 * config/mips/mips.opt (minterlink-compressed): New option.
9758 (minterlink-mips16): Now an alias for minterlink-compressed.
9759 (mmicromips): New option.
9760 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
9761 (compare_and_swap_12): Likewise.
9762 (sync_add<mode>): Likewise.
9763 (sync_<optab>_12): Likewise.
9764 (sync_old_<optab>_12): Likewise.
9765 (sync_new_<optab>_12): Likewise.
9766 (sync_nand_12): Likewise.
9767 (sync_old_nand_12): Likewise.
9768 (sync_new_nand_12): Likewise.
9769 (sync_sub<mode>): Likewise.
9770 (sync_old_add<mode>): Likewise.
9771 (sync_old_sub<mode>): Likewise.
9772 (sync_new_add<mode>): Likewise.
9773 (sync_new_sub<mode>): Likewise.
9774 (sync_<optab><mode>): Likewise.
9775 (sync_old_<optab><mode>): Likewise.
9776 (sync_new_<optab><mode>): Likewise.
9777 (sync_nand<mode>): Likewise.
9778 (sync_old_nand<mode>): Likewise.
9779 (sync_new_nand<mode>): Likewise.
9780 (sync_lock_test_and_set<mode>): Likewise.
9781 (test_and_set_12): Likewise.
9782 (atomic_compare_and_swap<mode>): Likewise.
9783 (atomic_exchange<mode>_llsc): Likewise.
9784 (atomic_fetch_add<mode>_llsc): Likewise.
9785 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
9786 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
9787 (umips_save_restore_pattern_p): Likewise.
9788 (umips_load_store_pair_p): Likewise.
9789 (umips_output_load_store_pair): Likewise.
9790 (umips_movep_target_p): Likewise.
9791 (umips_12bit_offset_address_p): Likewise.
9792 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
9793 (mips_base_mips16): Rename this...
9794 (mips_base_compression_flags): ...to this. Update all uses.
9795 (mips_attribute_table): Add micromips, nomicromips and nocompression.
9796 (mips_mips16_decl_p): Delete.
9797 (mips_nomips16_decl_p): Delete.
3fdb53c1 9798 (mips_get_compress_on_flags): New function.
6941b508
CM
9799 (mips_get_compress_off_flags): New function.
9800 (mips_get_compress_mode): New function.
9801 (mips_get_compress_on_name): New function.
9802 (mips_get_compress_off_name): New function.
9803 (mips_insert_attributes): Support multiple compression types.
9804 (mips_merge_decl_attributes): Likewise.
9805 (umips_12bit_offset_address_p): New function.
9806 (mips_start_function_definition): Emit .set micromips directive.
9807 (mips_call_may_need_jalx_p): New function.
9808 (mips_function_ok_for_sibcall): Add microMIPS support.
9809 (mips_print_operand_punctuation): Support short delay slots and
9810 compact jumps.
9811 (umips_swm_mask, umips_swm_encoding): New.
9812 (umips_build_save_restore): New function.
9813 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
9814 (was_mips16_p): Remove.
9815 (old_compression_mode): New.
9816 (mips_set_compression_mode): New function.
9817 (mips_set_current_function): Add microMIPS support.
9818 (mips_option_override): Likewise.
9819 (umips_save_restore_pattern_p): New function.
9820 (umips_output_save_restore): New function.
9821 (umips_load_store_pair_p_1): New function.
9822 (umips_load_store_pair_p): New function.
9823 (umips_output_load_store_pair_1): New function.
9824 (umips_output_load_store_pair): New function.
9825 (umips_movep_target_p) New function.
9826 (mips_prepare_pch_save): Add microMIPS support.
9827 * config/mips/mips.h (TARGET_COMPRESSION): New.
9828 (TARGET_CPU_CPP_BUILTINS): Update macro
9829 to use new compression flags and to support microMIPS.
9830 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
9831 (MIPS_ARCH_FLOAT_SPEC): Likewise.
9832 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
9833 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
9834 (ASM_SPEC): Support mmicromips and mno-micromips.
9835 (M16STORE_REG_P): New macro.
9836 (MIPS_CALL): Support TARGET_MICROMIPS.
9837 (MICROMIPS_J): New macro.
9838 (mips_base_mips16): Rename this...
9839 (mips_base_compression_flags): ...to this.
9840 (UMIPS_12BIT_OFFSET_P): New macro.
9841 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
9842 (MULTILIB_DIRNAMES): Likewise.
9843
cdebbc6d
JJ
98442013-02-24 Jakub Jelinek <jakub@redhat.com>
9845
9846 PR target/52555
9847 * target-globals.c (save_target_globals): For init_reg_sets and
9848 target_reinit remporarily set this_fn_optabs to this_target_optabs.
9849
18c63565
JG
98502013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
9851
9852 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
9853 * config/aarch64/t-aarch64
9854 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
9855
2194f7a2
VM
98562013-02-22 Vladimir Makarov <vmakarov@redhat.com>
9857
9858 PR inline-asm/56148
9859 * lra-constraints.c (process_alt_operands): Reload operand
9860 conflicting with earlier clobber only if no more other conflicting
9861 operands.
9862
7d613735
JJ
98632013-02-22 Jakub Jelinek <jakub@redhat.com>
9864
9865 PR sanitizer/56393
9866 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
9867 if not linking a shared library.
9868
ac8d93a7
SL
98692013-02-22 Seth LaForge <sethml@google.com>
9870
9871 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
9872
e0237780
GY
98732013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
9874
3fdb53c1
TB
9875 * config/arm/arm.md (split for extendsidi): Update condition.
9876 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
9877 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
9878 (qhs_zextenddi_cstr): Likewise.
e0237780 9879
d7fde18c
JJ
98802013-02-21 Jakub Jelinek <jakub@redhat.com>
9881
be63b77d
JJ
9882 PR middle-end/56420
9883 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
9884 avoid signed wrapping.
9885 (expand_mult): Handle properly multiplication by
9886 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
9887 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
9888 in the compiler if coeff is HOST_WIDE_INT_MIN.
9889 (expand_divmod): Don't make ext_op1 static, change it's type to
9890 uhwi. Avoid undefined behavior in -INTVAL (op1).
9891
d7fde18c
JJ
9892 PR rtl-optimization/50339
9893 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
9894 field.
9895 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
9896 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
9897 into splitting_ashiftrt field.
9898 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
9899 ASHIFTRT.
9900 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
9901 choices.
9902
6aad4455
AH
99032013-02-20 Aldy Hernandez <aldyh@redhat.com>
9904
9905 PR middle-end/56108
9906 * trans-mem.c (execute_tm_mark): Do not expand transactions that
9907 are sure to go irrevocable.
9908
38fe784d
HPN
99092013-02-21 Hans-Peter Nilsson <hp@axis.com>
9910
9911 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
9912 scalars are valid operands.
9913
0fd44da3
MJ
99142013-02-21 Martin Jambor <mjambor@suse.cz>
9915
9916 PR tree-optimization/56310
9917 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
9918 only matching indices and non-negative final offsets.
9919 (intersect_aggregates_with_edge): Pass src_idx to
9920 agg_replacements_to_vector. Pass src_idx insstead of index to
9921 intersect_with_agg_replacements.
9922
7a92038b
MJ
99232013-02-21 Martin Jambor <mjambor@suse.cz>
9924
9925 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
9926 instead of hard-wired defaults.
9927
c0da9c37
MR
99282013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
9929
9930 * doc/invoke.texi (MIPS Options): Update documentation of the
9931 floating-point multiply-accumulate instruction restrictions.
9932
d247ea0c 99332013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
9934
9935 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
9936 asan_shadow_offset on x86_64 linux.
9937
22deefcb
RB
99382013-02-21 Richard Biener <rguenther@suse.de>
9939
9940 PR tree-optimization/56415
9941 Revert
9942 2013-02-11 Richard Biener <rguenther@suse.de>
9943
9944 PR tree-optimization/56273
9945 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
9946 first VRP run.
9947
7bcc6e75
JJ
99482013-02-21 Jakub Jelinek <jakub@redhat.com>
9949
a0ad148f
JJ
9950 PR bootstrap/56258
9951 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
9952 instead of @itemx.
9953
7bcc6e75
JJ
9954 PR inline-asm/56405
9955 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
9956 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
9957
a0a7b611
JH
99582013-02-20 Jan Hubicka <jh@suse.cz>
9959
9960 PR tree-optimization/56265
88b97037
UB
9961 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
9962 when target is referenced for first time.
a0a7b611 9963
c0e50f72
RB
99642013-02-20 Richard Biener <rguenther@suse.de>
9965
9966 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
9967 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
9968 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
9969 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
9970 not return anything.
9971 (rename_ssa_copies): Do not remove unused locals.
9972 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 9973 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
9974 * passes.c (execute_function_todo): Do not schedule unused locals
9975 removal if cleanup_tree_cfg did something.
9976 * tree-ssa-live.c (remove_unused_locals): Dump statistics
9977 about the number of removed locals.
9978
a52ca739
RB
99792013-02-20 Richard Biener <rguenther@suse.de>
9980
9981 PR tree-optimization/56398
88b97037 9982 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 9983
ec9c9d1b
MJ
99842013-02-20 Martin Jambor <mjambor@suse.cz>
9985
9986 PR tree-optimization/55334
9987 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
9988 restricted pointers to arrays.
9989
e91c8ed6 99902013-02-20 Richard Biener <rguenther@suse.de>
88b97037 9991 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
9992
9993 PR tree-optimization/56396
9994 * tree-ssa-ccp.c (n_const_val): New static variable.
9995 (get_value): Return NULL for SSA names we don't have a lattice
9996 entry for.
9997 (ccp_initialize): Initialize n_const_val.
9998 * tree-ssa-copy.c (n_copy_of): New static variable.
9999 (init_copy_prop): Initialize n_copy_of.
10000 (get_value): Return NULL_TREE for SSA names we don't have a
10001 lattice entry for.
10002
3d916479
MJ
100032013-02-20 Martin Jambor <mjambor@suse.cz>
10004
10005 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
10006
71a86758
RB
100072013-02-20 Richard Biener <rguenther@suse.de>
10008
10009 * genpreds.c (write_lookup_constraint): Do not compare first
10010 letter of the constraint again.
10011
79836a12
RB
100122013-02-20 Richard Biener <rguenther@suse.de>
10013
10014 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
10015 and ceil_log2.
10016 (get_use_iv_cost): Terminate hashtable walk when coming across
10017 an empty entry.
10018
bbe4fb2c
IZ
100192013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
10020
10021 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
10022 reassociation for avx2 targets.
10023
a72d8780 100242012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 10025
c77f83d5
EI
10026 * config/microblaze/microblaze.c: microblaze_has_clz = 0
10027 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 10028 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
10029 version and TARGET_PATTERN_COMPARE check
10030 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 10031
a72d8780 100322012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 10033
a72d8780 10034 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
10035 function before branching.
10036
242387fa
AB
100372012-02-19 Andrey Belevantsev <abel@ispras.ru>
10038
10039 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
10040 DUMP_INSN_RTX_UID.
10041 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
10042
b4979ab9
AB
100432012-02-19 Andrey Belevantsev <abel@ispras.ru>
10044
10045 PR middle-end/55889
b4979ab9
AB
10046 * sel-sched.c: Include ira.h.
10047 (implicit_clobber_conflict_p): New function.
10048 (moveup_expr): Use it.
88b97037 10049 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 10050
24d63016
RB
100512013-02-19 Richard Biener <rguenther@suse.de>
10052
10053 PR tree-optimization/56384
10054 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
10055 (vn_hash_type): Split out from ...
10056 (vn_hash_constant_with_type): ... here.
10057 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
10058 (vn_phi_eq): Compare types from vn_phi_s structure.
10059 (vn_phi_lookup): Populate vn_phi_s type.
10060 (vn_phi_insert): Likewise.
10061
a475fd3d
JJ
100622013-02-19 Jakub Jelinek <jakub@redhat.com>
10063
47cc28f5
JJ
10064 PR tree-optimization/56350
10065 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
10066 if haven't found reduction or nested cycle operand, rather than
10067 asserting we must find it.
10068
a475fd3d
JJ
10069 PR tree-optimization/56381
10070 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
10071 to fold_build3.
10072
100732013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
10074 Jakub Jelinek <jakub@redhat.com>
10075
10076 PR target/52555
10077 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
10078 (swap_optab_enable): Same.
10079 (init_all_optabs): Use argument instead of global.
88b97037 10080 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
10081 * expr.h (init_all_optabs): Add argument to prototype.
10082 (TREE_OPTIMIZATION_OPTABS): New.
10083 (save_optabs_if_changed): Protoize.
10084 * optabs.h: Declare this_fn_optabs.
10085 * optabs.c (save_optabs_if_changed): New.
10086 Declare this_fn_optabs.
10087 (init_optabs): Add argument to init_all_optabs() call.
10088 * function.c (invoke_set_current_function_hook): Handle per
10089 function optabs.
10090 * function.h (struct function): New field optabs.
10091 * config/mips/mips.c (mips_set_mips16_mode): Handle when
10092 optimization_current_node has changed.
10093 * target-globals.h (save_target_globals_default_opts): Protoize.
10094 * target-globals.c (save_target_globals_default_opts): New.
10095
3f587ca3
JDA
100962013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10097
10098 PR target/56347
10099 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
10100 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
10101
10102 PR target/56214
10103 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
10104 and HImode, require all displacements to be an integer multiple of
10105 their mode size.
ceaca33e
JDA
10106 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
10107 only allow QImode and HImode when reload is in progress and strict is
10108 true. Likewise for symbolic addresses. Use base14_operand to check
10109 displacements in REG+BASE addresses.
10110
fe0b4796
RB
101112013-02-18 Richard Biener <rguenther@suse.de>
10112
10113 PR tree-optimization/56366
10114 * tree-vect-loop.c (get_initial_def_for_induction): Properly
10115 handle sign-conversion of outer-loop initial induction value.
10116
6aaf596b
RB
101172013-02-18 Richard Biener <rguenther@suse.de>
10118
73db8ff1 10119 PR middle-end/56349
6aaf596b
RB
10120 * cfghooks.c (merge_blocks): If we merge a latch into another
10121 block adjust references to it.
10122 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
10123 (verify_loop_structure): Verify that a recorded latch is in fact
10124 a latch.
10125
5e97dfb6
RB
101262013-02-18 Richard Biener <rguenther@suse.de>
10127
10128 PR tree-optimization/56321
10129 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
10130 order SSA name release and virtual operand unlinking.
10131
825527e8
EI
101322013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
10133
10134 * config/microblaze/microblaze.md (save_stack_block): Define.
10135 (restore_stack_block): Likewise.
10136
debd11d9
EI
101372013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
10138
10139 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
10140 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
10141 * config/microblaze/microblaze.c (microblaze_option_override):
10142 Bail out early for PIC modes when target does not support PIC.
10143
8ec77be0
EI
101442013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
10145
88b97037 10146 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
10147 Replace with a microblaze version.
10148 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 10149 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
10150 microblaze.
10151
b41288b3
JJ
101522013-02-16 Jakub Jelinek <jakub@redhat.com>
10153 Dodji Seketeli <dodji@redhat.com>
10154
10155 PR asan/56330
88b97037 10156 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
10157 (instrument_mem_region_access): Do not forget to always put
10158 instrumentation of the of 'base' and 'base + len' in a "if (len !=
10159 0) statement, even for cases where either 'base' or 'base + len'
10160 are not instrumented -- because they have been previously
10161 instrumented. Simplify the logic by putting all the statements
10162 instrument 'base + len' inside a sequence, and then insert that
10163 sequence right before the current insertion point. Then, to
10164 instrument 'base + len', just get an iterator on that statement.
10165 And do not forget to update the pointer to iterator the function
10166 received as argument.
10167
47918951
VM
101682013-02-15 Vladimir Makarov <vmakarov@redhat.com>
10169
10170 PR rtl-optimization/56348
10171 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
10172
3fb7c699
SB
101732013-02-15 Steven Bosscher <steven@gcc.gnu.org>
10174
10175 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
10176 (clean_graph_dump_file): Pass base to start_graph_dump.
10177
576fe41a
RH
101782013-02-14 Richard Henderson <rth@redhat.com>
10179
10180 PR target/55941
10181 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
10182
bb3accfa
SB
101832013-02-14 Steven Bosscher <steven@gcc.gnu.org>
10184
10185 * collect2-aix.h: Define F_LOADONLY.
10186
03143140
RB
101872013-02-14 Richard Biener <rguenther@suse.de>
10188
10189 PR lto/50494
10190 * varasm.c (output_constant_def_1): Get the decl representing
10191 the constant as argument.
10192 (output_constant_def): Wrap output_constant_def_1.
10193 (make_decl_rtl): Use output_constant_def_1 with the decl
10194 representing the constant.
10195 (build_constant_desc): Optionally re-use a decl already
10196 representing the constant.
10197 (tree_output_constant_def): Adjust.
10198
8fb06726
DS
101992013-02-14 Dodji Seketeli <dodji@redhat.com>
10200
10201 Fix an asan crash
10202 * asan.c (instrument_builtin_call): Really put the length of the
10203 second source argument into src1_len.
10204
c4bfe8bf
JJ
102052013-02-13 Jakub Jelinek <jakub@redhat.com>
10206
10207 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
10208 argument. If it is false, don't create edge from then_bb to
10209 fallthru_bb.
10210 (insert_if_then_before_iter): Pass true to it.
10211 (build_check_stmt): Pass false to it.
10212 (transform_statements): Flush hash table only on extended basic
10213 block boundaries, rather than at the beginning of every bb.
10214 Don't flush hash table on nonfreeing_call_p calls.
10215 * tree-flow.h (nonfreeing_call_p): New prototype.
10216 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
10217
7afe2801
DM
102182013-02-13 David S. Miller <davem@davemloft.net>
10219
10220 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
10221
70cc3288
VM
102222013-02-13 Vladimir Makarov <vmakarov@redhat.com>
10223
10224 PR target/56184
10225 * ira.c (max_regno_before_ira): Move from ...
10226 (ira): ... here.
10227 (fix_reg_equiv_init): Use max_regno_before_ira instead of
10228 vec_safe_length.
10229
6422242b
JJ
102302013-02-13 Jakub Jelinek <jakub@redhat.com>
10231
10232 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
10233
976a81ee
RB
102342013-02-13 Richard Biener <rguenther@suse.de>
10235
10236 PR lto/56295
10237 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
10238 globals in MEM_REFs.
10239
c1874a87
RB
102402013-02-13 Richard Biener <rguenther@suse.de>
10241
10242 * loop-init.c (loop_optimizer_init): Clear loop state when
10243 re-initializing preserved loops.
10244 * loop-unswitch.c (unswitch_single_loop): Return whether
10245 we unswitched the loop. Do not verify loop state here.
88b97037 10246 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 10247
b4ab7d34
KS
102482013-02-13 Kostya Serebryany <kcc@google.com>
10249
88b97037
UB
10250 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
10251 on x86_64 linux.
b4ab7d34
KS
10252 * sanitizer.def: Rename __asan_init to __asan_init_v1.
10253
bdcbe80c
DS
102542013-02-12 Dodji Seketeli <dodji@redhat.com>
10255
10256 Avoid instrumenting duplicated memory access in the same basic block
10257 * Makefile.in (asan.o): Add new dependency on hash-table.h
10258 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
10259 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
10260 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
10261 (free_mem_ref_resources, has_mem_ref_been_instrumented)
10262 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
10263 (get_mem_ref_of_assignment): New functions.
10264 (get_mem_refs_of_builtin_call): Extract from
10265 instrument_builtin_call and tweak a little bit to make it fit with
10266 the new signature.
10267 (instrument_builtin_call): Use the new
10268 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
10269 of is_gimple_builtin_call.
10270 (instrument_derefs, instrument_mem_region_access): Insert the
10271 instrumented memory reference into the hash table.
10272 (maybe_instrument_assignment): Renamed instrument_assignment into
10273 this, and change it to advance the iterator when instrumentation
10274 actually happened and return true in that case. This makes it
10275 homogeneous with maybe_instrument_assignment, and thus give a
10276 chance to callers to be more 'regular'.
10277 (transform_statements): Clear the memory reference hash table
10278 whenever we enter a new BB, when we cross a function call, or when
10279 we are done transforming statements. Use
10280 maybe_instrument_assignment instead of instrumentation. No more
10281 need to special case maybe_instrument_assignment and advance the
10282 iterator after calling it; it's now handled just like
10283 maybe_instrument_call. Update comment.
10284
4861a1f7
RB
102852013-02-13 Richard Biener <rguenther@suse.de>
10286
10287 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
10288 Fix loop discovery code.
10289
1c86bd80
VM
102902013-02-12 Vladimir Makarov <vmakarov@redhat.com>
10291
10292 PR inline-asm/56148
10293 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 10294 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
10295 the operand is not reloaded. Prefer to reload conflicting operand
10296 if earlyclobber and matching operands are the same.
10297
7cbda518
RB
102982013-02-12 Richard Biener <rguenther@suse.de>
10299
10300 PR lto/56297
10301 * lto-streamer-out.c (write_symbol): Do not output symbols
10302 for hard register variables.
10303
e68a4ef6
GJL
103042013-02-12 Georg-Johann Lay <avr@gjlay.de>
10305
10306 PR target/54222
10307 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
10308 (umulsidi3_insn, mulsidi3_insn): New insns.
10309
a72d8780 103102013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
10311
10312 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
10313 (struct tune_params): Add vec_costs field.
10314 * config/arm/arm.c (arm_builtin_vectorization_cost)
10315 (arm_add_stmt_cost): New functions.
10316 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
10317 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
10318 (arm_default_vec_cost): New struct of type cpu_vec_costs.
10319 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
10320 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
10321 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
10322 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
10323
43320568
RB
103242013-02-12 Richard Biener <rguenther@suse.de>
10325
10326 PR lto/56295
10327 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
10328 decls again if possible.
10329
a011aa39
RB
103302013-02-12 Richard Biener <rguenther@suse.de>
10331
10332 PR middle-end/56288
10333 * tree-ssa.c (verify_ssa_name): Fix check, move
10334 SSA_NAME_IN_FREE_LIST check up.
10335
6da26889
JJ
103362013-02-12 Jakub Jelinek <jakub@redhat.com>
10337 Steven Bosscher <steven@gcc.gnu.org>
10338
10339 PR rtl-optimization/56151
10340 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
10341 equal to op0 or op1, and last_insn pattern is CODE operation
10342 with MEM dest and one of the operands matches that MEM.
10343
f80e0faf
ST
103442013-02-11 Sriraman Tallam <tmsriramgoogle.com>
10345
10346 * doc/extend.texi: Document Function Multiversioning and "default"
10347 parameter string to target attribute.
10348 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
10349 target attribute parameter is "default".
10350 (ix86_compare_version_priority): Remove checks for target attribute.
10351 (ix86_mangle_function_version_assembler_name): Change error to sorry.
10352 Remove check for target attribute equal to NULL. Add assert.
10353 (ix86_generate_version_dispatcher_body): Change error to sorry.
10354
6c59ffd1
IS
103552013-02-11 Iain Sandoe <iain@codesourcery.com>
10356 Jack Howarth <howarth@bromo.med.uc.edu>
10357 Patrick Marlier <patrick.marlier@gmail.com>
10358
10359 PR libitm/55693
10360 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
10361 define ENDFILE_SPEC as TM_DESTRUCTOR.
10362 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
10363
a72d8780 103642013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
10365 Jack Howarth <howarth@bromo.med.uc.edu>
10366 Jakub Jelinek <jakub@redhat.com>
10367
10368 PR sanitizer/55617
10369 * config/darwin.c (cdtor_record): Rename ctor_record.
10370 (sort_cdtor_records): Rename sort_ctor_records.
10371 (finalize_dtors): New routine to sort destructors by
10372 priority before use in assemble_integer.
10373 (machopic_asm_out_destructor): Use finalize_dtors if needed.
10374
b63fe007
UB
103752013-02-11 Uros Bizjak <ubizjak@gmail.com>
10376
10377 PR rtl-optimization/56275
10378 * simplify-rtx.c (avoid_constant_pool_reference): Check that
10379 offset is non-negative and less than cmode size before
10380 calling simplify_subreg.
10381
8e89b5b5
RB
103822013-02-11 Richard Biener <rguenther@suse.de>
10383
10384 PR tree-optimization/56264
10385 * cfgloop.h (fix_loop_structure): Adjust prototype.
10386 * loop-init.c (fix_loop_structure): Return the number of
10387 newly discovered loops.
10388 * tree-cfgcleanup.c (repair_loop_structures): When new loops
10389 are discovered, do a full loop-closed SSA rewrite.
10390
b4a4b56d
RB
103912013-02-11 Richard Biener <rguenther@suse.de>
10392
10393 PR tree-optimization/56273
10394 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
10395 first VRP run.
10396 (check_array_ref): Fix missing newline in dumps.
10397 (search_for_addr_array): Likewise.
10398
0c885229
DE
103992013-02-09 David Edelsohn <dje.gcc@gmail.com>
10400
10401 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
10402
59ac9a55
JJ
104032013-02-09 Jakub Jelinek <jakub@redhat.com>
10404
10405 PR target/56256
10406 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
10407
25bb0bb5
VM
104082013-02-08 Vladimir Makarov <vmakarov@redhat.com>
10409
10410 PR rtl-optimization/56246
0c885229 10411 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
10412 reload pseudo.
10413 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
10414 constraints are satisfied.
10415
a698cc03
JL
104162013-02-08 Jeff Law <law@redhat.com>
10417
10418 PR debug/53948
10419 * emit-rtl.c (reg_is_parm_p): New function.
10420 * regs.h (reg_is_parm_p): New prototype.
10421 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
10422 callee-clobbered registers.
10423
e1122ddd
MM
104242013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
10425
10426 PR target/56043
10427 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
10428 If there is no implicit builtin declaration, just return NULL.
10429
19c5f6e6
UB
104302013-02-08 Uros Bizjak <ubizjak@gmail.com>
10431
10432 * config/i386/sse.md (FMAMODEM): New mode iterator.
10433 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
10434 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
10435
2480f2ca 104362013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 10437
2480f2ca
UB
10438 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
10439 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
10440 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
10441
104422013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
10443
10444 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
10445 (microblaze*-*-elf): Likewise.
10446 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
10447 LINK_SPEC.
10448 * config/microblaze/microblaze-c.c: Add builtin defines for
10449 _LITTLE_ENDIAN and _BIG_ENDIAN.
10450 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
10451 add to TARGET_DEFAULT flags.
76ef61fb 10452 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
10453 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
10454 * config/microblaze/microblaze.md: Update extendsidi2 and
10455 movdi_internal instructions to use low-order / high-order reg
10456 print_operands.
10457 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
10458 options and inversemask / mask of LITTLE_ENDIAN.
10459 * config/microblaze/t-microblaze: Expand multilib options to
10460 include mlittle-endian (le) and update exceptions patterns.
10461
600a5961
JJ
104622013-02-08 Jakub Jelinek <jakub@redhat.com>
10463
5df81313
JJ
10464 PR rtl-optimization/56195
10465 * lra-constraints.c (get_reload_reg): Don't reuse regs
10466 if they have smaller mode than requested, if they have
10467 wider mode than requested, try to return a SUBREG.
10468
600a5961
JJ
10469 PR tree-optimization/56250
10470 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
10471 if type is unsigned and code isn't MULT_EXPR.
10472
ff544649
GJL
104732013-02-08 Georg-Johann Lay <avr@gjlay.de>
10474
10475 PR tree-optimization/56064
10476 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
10477 bits according to mode.
10478 * fixed-value.h (fixed_from_double_int)
10479 (const_fixed_from_double_int): Adjust comments.
10480
e45cde98
RB
104812013-02-08 Richard Biener <rguenther@suse.de>
10482
10483 PR lto/56231
10484 * lto-streamer.h (struct data_in): Remove current_file, current_line
10485 and current_col members.
10486 * lto-streamer-out.c (lto_output_location): Stream changed bits
10487 en-block for efficiency.
10488 * lto-streamer-in.c (clear_line_info): Remove.
10489 (lto_input_location): Cache current file, line and column
10490 globally via local statics. Read changed bits en-block.
10491 (input_function): Do not call clear_line_info.
10492 (lto_read_body): Likewise.
10493 (lto_input_toplevel_asms): Likewise.
10494
c1ca73d8
MM
104952013-02-08 Michael Matz <matz@suse.de>
10496
10497 PR tree-optimization/52448
10498 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
10499 (nt_call_phase): New static.
10500 (add_or_mark_expr): Only mark accesses with newer phase than any
10501 call seen.
10502 (nonfreeing_call_p): New.
10503 (nt_init_block): Update nt_call_phase, mark blocks as visited.
10504 (nt_fini_block): Keep blocks marked as visited.
10505 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
10506
57548aa2
RB
105072013-02-08 Richard Biener <rguenther@suse.de>
10508
10509 * ira.c (ira): Free broken dominator information.
10510
8e10366f
UB
105112013-02-08 Uros Bizjak <ubizjak@gmail.com>
10512
10513 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
10514
f64fb0fa
MP
105152013-02-08 Marek Polacek <polacek@redhat.com>
10516
8e10366f 10517 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 10518
0375167b
RB
105192013-02-08 Richard Biener <rguenther@suse.de>
10520
10521 PR middle-end/56181
10522 * cfgloop.h (flow_loops_find): Adjust.
10523 (bb_loop_header_p): Declare.
10524 * cfgloop.c (bb_loop_header_p): New function split out from ...
10525 (flow_loops_find): ... here. Adjust function signature,
10526 support incremental loop structure update.
10527 (verify_loop_structure): Cleanup. Verify a loop is a loop.
10528 * cfgloopmanip.c (fix_loop_structure): Move ...
10529 * loop-init.c (fix_loop_structure): ... here.
10530 (apply_loop_flags): Split out from ...
10531 (loop_optimizer_init): ... here.
10532 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
10533 in incremental mode, only remove dead loops here.
10534
85d768f3
GJL
105352013-02-08 Georg-Johann Lay <avr@gjlay.de>
10536
10537 PR target/54222
10538 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
10539 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
10540 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
10541 (*round<mode>3.libgcc): New insns for fixed-modes.
10542 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
10543 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
10544 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
10545 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
10546 implementations. Define to __builtin_avr_absFX,
10547 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
10548 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
10549 __builtin_avr_countlsFX, respectively.
10550 * config/avr/avr-c.c (target.h): Include it.
10551 (enum avr_builtin_id): New enum.
10552 (avr_resolve_overloaded_builtin): New static function.
10553 (avr_register_target_pragmas): Use it to set
10554 targetm.resolve_overloaded_builtin.
10555 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
10556 tree nodes used by DEF_BUILTIN.
10557 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
10558 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
10559 <AVR_BUILTIN_xxBITS>: Same.
10560
661bc682
RB
105612013-02-08 Richard Biener <rguenther@suse.de>
10562
10563 * cfgloop.c (verify_loop_structure): Properly handle
10564 a loop exiting to another loop header.
10565 * ira-int.h (ira_loops): Remove.
10566 * ira.c (ira_loops): Remove.
10567 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
10568 (do_reload): Use loop_optimizer_finalize.
10569 * ira-build.c (create_loop_tree_nodes): Use get_loops and
10570 number_of_loops to access the loop tree.
10571 (more_one_region_p): Likewise.
10572 (finish_loop_tree_nodes): Likewise.
10573 (rebuild_regno_allocno_maps): Likewise.
10574 (mark_loops_for_removal): Likewise.
10575 (mark_all_loops_for_removal): Likewise.
10576 (remove_unnecessary_regions): Likewise.
10577 (ira_build): Likewise.
10578 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
10579
0d5049b2
RB
105802013-02-08 Richard Biener <rguenther@suse.de>
10581
10582 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
10583 * ipa-pure-const.c (analyze_function): Avoid calling
10584 mark_irreducible_loops twice.
8e10366f 10585 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 10586
499f32e8
DM
105872013-02-07 David S. Miller <davem@davemloft.net>
10588
10589 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
10590 on 'reg'.
10591 * var-tracking.c (vt_add_function_parameter): Test the presence of
10592 HAVE_window_save properly and do not remap argument registers when
10593 we have a leaf function.
10594
6edc3e32
UB
105952013-02-07 Uros Bizjak <ubizjak@gmail.com>
10596
10597 PR bootstrap/56227
10598 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
10599 instead of "ll".
10600 * config/i386/i386.c (ix86_print_operand): Ditto.
10601
5306401f
VM
106022013-02-07 Vladimir Makarov <vmakarov@redhat.com>
10603
6edc3e32 10604 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 10605
027ece11
VM
106062013-02-07 Vladimir Makarov <vmakarov@redhat.com>
10607
10608 PR rtl-optimization/56225
10609 * lra-constraints.c (process_alt_operands): Check that reload hard
10610 reg can hold value for strict_low_part.
10611
f980dfdb
JJ
106122013-02-07 Jakub Jelinek <jakub@redhat.com>
10613
10614 PR debug/56154
10615 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
10616 dwarf2out_end_function.
10617 (in_first_function_p, maybe_at_text_label_p,
10618 first_loclabel_num_not_at_text_label): New variables.
10619 (dwarf2out_var_location): In the first function find out
6edc3e32 10620 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
10621 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
10622 functions.
10623
73dd3123
EB
106242013-02-07 Eric Botcazou <ebotcazou@adacore.com>
10625
10626 PR rtl-optimization/56178
10627 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
10628 SUBREG of a register. Tidy up related block of code.
10629 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
10630 note if the source is a register or a SUBREG of a register.
10631
e3936f47
JJ
106322013-02-07 Jakub Jelinek <jakub@redhat.com>
10633
10634 PR target/56228
10635 * config/rs6000/rs6000.md (ptrm): New mode attr.
10636 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
10637 call_value_indirect_aix<pttrsize>,
10638 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
10639 m in constraints.
10640
d96d674b
MH
106412013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
10642
10643 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
10644 if -bnortl. Convert to strcmp and strncmp.
10645
921f2dee
AM
106462013-02-07 Alan Modra <amodra@gmail.com>
10647
10648 PR target/54009
10649 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
10650 addresses won't wrap when offsetting.
10651 (rs6000_secondary_reload): Provide secondary reloads needed for
10652 wrapping LO_SUM addresses.
10653
d09c7dba
TS
106542013-02-06 Thomas Schwinge <thomas@codesourcery.com>
10655
10656 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
10657 MACH, just __MACH__.
10658
a44bbd48
RB
106592013-02-06 Richard Biener <rguenther@suse.de>
10660
10661 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
10662 instead of calling fix_loop_structure.
10663
6d840d99
JJ
106642013-02-06 Jakub Jelinek <jakub@redhat.com>
10665
10666 PR middle-end/56217
10667 * omp-low.c (use_pointer_for_field): Return false if
10668 lower_send_shared_vars doesn't generate any copy-out code.
10669
0f33baa9
TV
106702013-02-06 Tom de Vries <tom@codesourcery.com>
10671
10672 PR rtl-optimization/56131
10673 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
10674 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
10675 of the label is NULL. Add comment.
10676
11f1e3ab
JJ
106772013-02-05 Jakub Jelinek <jakub@redhat.com>
10678
31502f9f
JJ
10679 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
10680
a74db9bd
JJ
10681 PR sanitizer/55374
10682 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
10683 (STATIC_LIBTSAN_LIBS): Likewise.
10684 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
10685 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
10686 is defined, don't add anything else beyond that.
10687 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
10688 (LINK_COMMAND_SPEC): Use them.
10689
11f1e3ab
JJ
10690 PR tree-optimization/56205
10691 * tree-stdarg.c (check_all_va_list_escapes): Return true if
10692 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
10693 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
10694
14ac6aa2
RB
106952013-02-05 Richard Biener <rguenther@suse.de>
10696
10697 PR tree-optimization/53342
10698 PR tree-optimization/53185
10699 * tree-vectorizer.h (vect_check_strided_load): Remove.
10700 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
10701 not disallow peeling for vectorized strided loads.
10702 (vect_check_strided_load): Make static and simplify.
10703 (vect_analyze_data_refs): Adjust.
10704 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
10705 correctly when vectorizing strided loads.
10706
6f22445a
RB
107072013-02-05 Richard Biener <rguenther@suse.de>
10708
10709 * doc/install.texi: Refer to ISL, not PPL.
10710
39f9719e
JH
107112013-02-05 Jan Hubicka <jh@suse.cz>
10712
ec4224ac
JH
10713 PR tree-optimization/55789
10714 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
10715
107162013-02-05 Jan Hubicka <jh@suse.cz>
10717
10718 PR tree-optimization/55789
39f9719e
JH
10719 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
10720 the dead call anyway.
10721
956d3b33
EB
107222013-02-05 Eric Botcazou <ebotcazou@adacore.com>
10723
10724 PR sanitizer/55374
10725 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
10726
107272013-02-04 Alexander Potapenko <glider@google.com>
10728 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
10729 Jakub Jelinek <jakub@redhat.com>
10730
10731 PR sanitizer/55617
10732 * config/darwin.c (sort_ctor_records): Stabilized qsort
10733 on constructor priority by using original position.
10734 (finalize_ctors): New routine to sort constructors by
10735 priority before use in assemble_integer.
10736 (machopic_asm_out_constructor): Use finalize_ctors if needed.
10737
7ac3af38
JJ
107382013-02-04 Jakub Jelinek <jakub@redhat.com>
10739
10740 PR libstdc++/54314
10741 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
10742 about visibility on artificial decls.
10743 * config/sol2.c (solaris_assemble_visibility): Likewise.
10744
152689dc
KT
107452013-02-04 Kai Tietz <ktietz@redhat.com>
10746
10747 PR target/56186
10748 * config/i386/i386.c (function_value_ms_64): Add additional valtype
10749 argument and improve checking of return-argument types for 16-byte
10750 modes.
10751 (ix86_function_value_1): Add additional valtype argument on call
10752 of function_value_64.
10753 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
10754 handling infunction_value_64 function.
10755
2b5987b5
MGD
107562013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
10757
7ac3af38 10758 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 10759
14597080
RB
107602013-02-04 Richard Biener <rguenther@suse.de>
10761
10762 PR tree-optimization/56188
10763 * tree-ssa-structalias.c (label_visit): Consider case with
10764 initially non-empty points-to set.
10765 (perform_var_substitution): Dump node mapping and clean up.
10766
ed73881e
RG
107672013-02-04 Richard Guenther <rguenther@suse.de>
10768
10769 PR lto/56168
10770 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
10771 node prevail as last resort.
10772 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 10773 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 10774
139a0707
RB
107752013-02-04 Richard Biener <rguenther@suse.de>
10776
10777 PR tree-optimization/56113
10778 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
10779 Merge into ...
10780 (equiv_class_lookup_or_add): ... this.
10781 (label_visit): Adjust and fix error in previous patch.
10782 (perform_var_substitution): Adjust.
10783
50fe8924
OE
107842013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
10785
10786 * config/sh/divtab.c: Fix formatting and comments throughout the file.
10787 * config/sh/sh4-300.md: Likewise.
10788 * config/sh/sh4a.md: Likewise.
10789 * config/sh/constraints.md: Likewise.
10790 * config/sh/sh.md: Likewise.
10791 * config/sh/netbsd-elf.h: Likewise.
10792 * config/sh/predicates.md: Likewise.
10793 * config/sh/sh-protos.h: Likewise.
10794 * config/sh/ushmedia.h: Likewise.
10795 * config/sh/linux.h: Likewise.
10796 * config/sh/sh.c: Likewise.
10797 * config/sh/superh.h: Likewise.
10798 * config/sh/elf.h: Likewise.
10799 * config/sh/sh4.md: Likewise.
10800 * config/sh/sh.h: Likewise.
10801
1a04ac2b
JDA
108022013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10803
10804 * config/pa/constraints.md: Adjust unused letters. Change "T"
10805 constraint to match_test floating_point_store_memory_operand().
10806 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
10807 (base14_operand): New.
10808 (floating_point_store_memory_operand): New.
10809 (integer_store_memory_operand): Revise to use base14_operand and
10810 reg_plus_base_memory_operand.
10811 (move_dest_operand): Allow symbolic_memory_operands.
10812 (symbolic_memory_operand): Check for LO_SOM.
10813 (symbolic_operand): Change default case to break.
10814 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
10815 CONST_DOUBLE values to be reloaded by putting them into memory when
10816 the destination is a floating point register.
10817 (movdf): Remove code to handle CONST_DOUBLE.
10818 (movsf): Likewise.
10819 (reload_indf_r1): New.
10820 (reload_insf_r1): New.
10821 Consistently use "Q" and "T" constraints with integer and floating
10822 point move instructions, respectively.
10823 (movdi): Remove FAIL.
10824 Change predicate for source operand unamed DImode move from
10825 general_operand to move_src_operand.
10826 (umulsidi3): Change predicate for destination operand to
10827 register_operand.
10828 Likewise for similar unamed patterns.
10829 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
10830 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
10831 (hppa_legitimize_address): Simplify mask calculation.
10832 (pa_emit_move_sequence): Revised handling of secondary reloads from
10833 REG+D addresses for floating point loads and stores. Directly handle
10834 loading CONST0_RTX (mode) to a floating point register.
10835 (pa_secondary_reload): Handle reloading DF and SFmode constant values
10836 to floating point registers. Don't restrict secondary reloads to
10837 floating point registers to integer modes. Revise some comments and
10838 cleanup some code.
10839 (TARGET_LEGITIMATE_ADDRESS_P): Define.
10840 (pa_legitimate_address_p): New.
10841 (pa_legitimize_reload_address): New.
10842 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
10843 (STRICT_REG_OK_FOR_BASE_P): New.
10844 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
10845 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
10846
3bf65591
DE
108472013-02-03 David Edelsohn <dje.gcc@gmail.com>
10848 Andrew Dixie <andrewd@gentrack.com>
10849
10850 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
10851 flag set.
10852
c0a8a3e6
RS
108532013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
10854
10855 * expmed.c (extract_bit_field_1): Pass the full width of the
10856 structure to get_best_reg_extraction_insn.
10857
99113dff
DE
108582013-02-01 David Edelsohn <dje.gcc@gmail.com>
10859
10860 PR target/54601
10861 * configure.ac (use_cxa_atexit): Add AIX.
10862 * configure: Regenerate.
10863
10864 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
10865
ddd84654
JJ
108662013-02-01 Jakub Jelinek <jakub@redhat.com>
10867
10868 PR debug/54793
10869 * final.c (need_profile_function): New variable.
10870 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
10871 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
10872 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
10873 notes, targetm.asm_out.function_prologue doesn't emit anything,
10874 HAVE_prologue and profiler should be emitted before prologue,
10875 set need_profile_function instead of emitting it.
10876 (final_scan_insn): If need_profile_function, emit
10877 profile_function on the first NOTE_INSN_BASIC_BLOCK or
10878 NOTE_INSN_FUNCTION_BEG note.
10879
108802013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
10881
10882 * config/rs6000/rs6000.md (smulditi3): New.
10883 (umulditi3): New.
10884
ff2a9d88
RH
10885 * config/alpha/alpha.md (umulditi3): New.
10886
14d52b90
DE
108872013-02-01 David Edelsohn <dje.gcc@gmail.com>
10888
10889 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
10890 (ASM_OUTPUT_ALIGNED_LOCAL): New.
10891
8c7ca45c
RB
108922013-02-01 Richard Biener <rguenther@suse.de>
10893
10894 PR tree-optimization/56113
10895 * tree-ssa-structalias.c (label_visit): Reduce work for
10896 single-predecessor nodes.
10897
9f419393
EB
108982013-02-01 Eric Botcazou <ebotcazou@adacore.com>
10899
10900 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
10901 range isn't testing for zero.
10902
c5f4be84
SB
109032013-01-31 Steven Bosscher <steven@gcc.gnu.org>
10904
10905 PR middle-end/56113
10906 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
10907
dbdbd982
NC
109082013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
10909 Nick Clifton <nickc@redhat.com>
10910
10911 * config/v850/constraints.md (Q): Define as a memory constraint.
10912 * config/v850/predicates.md (label_ref_operand): New predicate.
10913 (e3v5_shift_operand): New predicate.
10914 (ior_operator): New predicate.
10915 * config/v850/t-v850: Add e3v5 multilib.
10916 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
10917 (v850_gen_movdi): Prototype.
10918 * config/v850/v850.c: Add support for e3v5 architecture.
10919 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
10920 TARGET_V850E_UP.
10921 (construct_save_jarl): Add e3v5 long JARL support.
10922 (v850_adjust_insn_length): New function. Adjust length of call
10923 insns when using e3v5 instructions.
10924 (v850_gen_movdi): New function: Generate instructions to move a
10925 DImode value.
10926 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
10927 (CPP_SPEC): Define __v850e3v5__ as appropriate.
10928 (TARGET_USE_FPU): Enable for e3v5.
10929 (CONST_OK_FOR_W): New macro.
10930 (ADJUST_INSN_LENGTH): Define.
10931 * config/v850/v850.md (UNSPEC_LOOP): Define.
10932 (attr cpu): Add v850e3v5.
10933 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
10934 (movdi): New pattern.
10935 (movdi_internal): New pattern.
10936 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
10937 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
10938 (cstoresf4): Likewise.
10939 (cstoredf4): Likewise.
10940 (insv): New pattern.
10941 (rotlso3_a): New pattern.
10942 (rotlsi3_b): New pattern
10943 (rotlsi3_v850e3v5): New pattern.
10944 (doloop_begin): New pattern.
10945 (fix_loop_counter): New pattern.
10946 (doloop_end): New pattern.
10947 (branch_normal): Add e3v5 long branch support.
10948 (branch_invert): Likewise.
10949 (branch_z_normal): Likewise.
10950 (branch_z_invert): Likewise.
10951 (branch_nz_normal): Likewise.
10952 (branch_nz_invert): Likewise.
10953 (call_internal_short): Add e3v5 register-indirect JARL support.
10954 (call_internal_long): Likewise.
10955 (call_value_internal_short): Likewise.
10956 (call_value_internal_long): Likewise.
10957 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
10958 (mloop): New option.
10959 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 10960 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 10961
73861a41
PK
109622013-01-31 Paul Koning <ni1d@arrl.net>
10963
10964 PR debug/55059
10965 PR debug/54508
10966 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
10967 children if parent is a class.
10968 (prune_unused_types_prune): Don't add DW_AT_declaration.
10969
e44978dc
RB
109702013-01-31 Richard Biener <rguenther@suse.de>
10971
10972 PR tree-optimization/56157
10973 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
10974 match up operand with SLP child.
10975
90b10dec
JM
109762013-01-31 Jason Merrill <jason@redhat.com>
10977
04d2dadd 10978 PR debug/54410
90b10dec
JM
10979 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
10980 parameters the first time.
10981 (gen_scheduled_generic_parms_dies): Check completeness here.
10982
6e616110
RB
109832013-01-31 Richard Biener <rguenther@suse.de>
10984
10985 PR middle-end/53073
10986 * common.opt (faggressive-loop-optimizations): New flag,
10987 enabled by default.
10988 * doc/invoke.texi (faggressive-loop-optimizations): Document.
10989 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
10990 infer_loop_bounds_from_undefined by it.
10991
636f59cf
RB
109922013-01-31 Richard Biener <rguenther@suse.de>
10993
10994 PR tree-optimization/56150
10995 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
10996 visit virtual operands.
10997 (find_uses_to_rename_bb): Likewise.
10998
109992013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
11000
11001 PR tree-optimization/56150
11002 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
11003 mixed store non-store stmts.
11004
32887460
JJ
110052013-01-30 Jakub Jelinek <jakub@redhat.com>
11006
e60e09a0
JJ
11007 PR sanitizer/55374
11008 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
11009 LIBASAN_EARLY_SPEC is defined.
11010 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
11011 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
11012 before %o.
11013 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
11014
32887460
JJ
11015 PR c++/55742
11016 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
11017 invalid args instead of ICEing on it.
11018 (ix86_valid_target_attribute_tree): Return error_mark_node if
11019 ix86_valid_target_attribute_inner_p failed.
11020 (ix86_valid_target_attribute_p): Return false only if
11021 ix86_valid_target_attribute_tree returned error_mark_node. Allow
11022 target("default") attribute.
11023 (sorted_attr_string): Change argument from const char * to tree,
11024 merge in all target attribute arguments rather than just one.
11025 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
11026 instead of free. Avoid using strcat.
11027 (ix86_mangle_function_version_assembler_name): Mangle
11028 target("default") as if no target attribute is present. Adjust
11029 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
11030 instead of xmalloc and XDELETEVEC instead of free.
11031 (ix86_function_versions): Don't return true if one of the decls
11032 doesn't have target attribute. If they don't and one of the decls
11033 is DECL_FUNCTION_VERSIONED, report an error. Adjust
11034 sorted_attr_string caller. Use XDELETEVEC instead of free.
11035 (ix86_supports_function_versions): Remove.
11036 (make_name): Fix up formatting.
11037 (make_dispatcher_decl): Remove resolver_name and its initialization.
11038 Avoid leaking memory.
11039 (is_function_default_version): Return true if there is
11040 target("default") attribute rather than no target attribute at all.
11041 (make_resolver_func): Avoid leaking memory.
11042 (ix86_generate_version_dispatcher_body): Likewise.
11043 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
11044 * target.def (supports_function_versions): Remove.
11045 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
11046 * doc/tm.texi: Regenerated.
11047
73cca0cc
VM
110482013-01-30 Vladimir Makarov <vmakarov@redhat.com>
11049
11050 PR rtl-optimization/56144
11051 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
11052 for values with side effects.
11053
11452e7b
RB
110542013-01-30 Richard Biener <rguenther@suse.de>
11055
11056 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
11057 (sparseset_pop): Likewise.
11058 * cfganal.c (compute_idf): Likewise. Increase work-stack size
11059 to be able to use quick_push in the worker loop.
11060
01cb1ef5
MP
110612013-01-30 Marek Polacek <polacek@redhat.com>
11062
11063 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
11064
e892936e
RB
110652013-01-30 Richard Biener <rguenther@suse.de>
11066
11067 PR lto/56147
6edc3e32 11068 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 11069
cc06c01d
GJL
110702013-01-30 Georg-Johann Lay <avr@gjlay.de>
11071
11072 PR tree-optimization/56064
11073 * fixed-value.c (fixed_from_double_int): New function.
11074 * fixed-value.h (fixed_from_double_int): New prototype.
11075 (const_fixed_from_double_int): New static inline function.
11076 * fold-const.c (native_interpret_fixed): New static function.
11077 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
11078 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
11079 (native_encode_fixed): New static function.
11080 (native_encode_expr) <FIXED_CST>: Use it.
11081 (native_interpret_int): Move double_int worker code to...
11082 * double-int.c (double_int::from_buffer): ...this new static method.
11083 * double-int.h (double_int::from_buffer): Prototype it.
11084
d394a308
RB
110852013-01-30 Richard Biener <rguenther@suse.de>
11086
11087 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
11088 New pointer-map and obstack.
11089 (init_alias_vars): Allocate pointer-map and obstack.
11090 (delete_points_to_sets): Free them.
11091 (find_what_var_points_to): Cache result.
11092 (find_what_p_points_to): Adjust for changed interface of
11093 find_what_var_points_to.
11094 (compute_points_to_sets): Likewise.
11095 (ipa_pta_execute): Likewise.
11096
20804d96
RO
110972013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11098
11099 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
11100 * configure: Regenerate.
11101 * config.in: Regenerate.
11102 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
11103 #nobits/#progbits if supported.
11104
a7ad88a2
OE
111052013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
11106
11107 PR target/56121
11108 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
11109 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
11110 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
11111
7af79f92
GY
111122013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
11113
91bfca59
OE
11114 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
11115 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 11116
753bcf7b
GY
111172013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
11118
91bfca59
OE
11119 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
11120 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 11121
8cbc2ea8
GY
111222013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
11123
91bfca59
OE
11124 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
11125 declaration.
11126 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
11127 * config/arm/cortex-a7.md: New bypasses using
11128 arm_mac_accumulator_is_result.
8cbc2ea8 11129
697a3325
GY
111302013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
11131
91bfca59 11132 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 11133 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
11134 (cortex_a7_fpfmad): New reservation.
11135 (cortex_a7_fpmacs): Use ffmas and update required units.
11136 (cortex_a7_fpmuld): Update required units and latency.
11137 (cortex_a7_fpmacd): Likewise.
11138 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
11139 (cortex_a7_neon). Likewise.
11140 (bypass) Update participating units.
697a3325 11141
29637783
GY
111422013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
11143
91bfca59
OE
11144 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
11145 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
11146 from fmac to ffma.
11147 * config/arm/vfp11.md (vfp_farith): Use ffmas.
11148 (vfp_fmul): Use ffmad.
11149 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
11150 (cortex_r4_fmacd): Use ffmad.
11151 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
11152 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
11153 (cortex_a9_fmacd): Use ffmad.
11154 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
11155 (cortex_a8_vfp_macd): Use ffmad.
11156 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
11157 (cortex_a5_fpmacd): Use ffmad.
11158 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
11159 (cortex_a15_vfp_macd): Use ffmad.
11160 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 11161
2ee8a2d5
JM
111622013-01-29 Jason Merrill <jason@redhat.com>
11163
11164 PR libstdc++/54314
11165 * varasm.c (default_assemble_visibility): Don't warn about
11166 visibility on artificial decls.
11167
78d087bc
RB
111682013-01-29 Richard Biener <rguenther@suse.de>
11169
11170 PR tree-optimization/56113
11171 * tree-ssa-structalias.c (equiv_class_lookup): Also return
11172 the bitmap leader.
11173 (label_visit): Free duplicate bitmaps and record the leader instead.
11174 (perform_var_substitution): Adjust.
11175
83ba4d6f
RB
111762013-01-29 Richard Biener <rguenther@suse.de>
11177
11178 PR tree-optimization/55270
11179 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
11180 the CFG, schedule loops for fixup.
11181
66dfe13f
NC
111822013-01-29 Nick Clifton <nickc@redhat.com>
11183
11184 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
11185 SP_REG.
11186
5a579c3b
LE
111872013-01-28 Leif Ekblad <leif@rdos.net>
11188
11189 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
11190 * config/i386/i386.h (TARGET_RDOS): New macro.
11191 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
11192 * config/i386/i386.c (ix86_option_override_internal): For 64bit
11193 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
11194 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
11195 DEFAULT_LARGE_SECTION_THRESHOLD.
11196 * config/i386/i386.md (R14_REG, R15_REG): New constants.
11197 * config/i386/rdos.h: New file.
11198 * config/i386/rdos64.h: New file.
11199
51e44392
BS
112002013-01-28 Bernd Schmidt <bernds@codesourcery.com>
11201
11202 PR other/54814
11203 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
11204 TEST_HARD_REG_BIT.
11205
db1fb332
JJ
112062013-01-28 Jakub Jelinek <jakub@redhat.com>
11207
11208 PR rtl-optimization/56117
11209 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
11210 call cselib_lookup_from_insn on the MEM before calling
11211 add_insn_mem_dependence.
11212
16917761
RB
112132013-01-28 Richard Biener <rguenther@suse.de>
11214
11215 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
11216 to a stmt that didn't have one.
11217 (copy_phis_for_bb): Likewise for PHI arguments.
11218 (copy_debug_stmt): Likewise for debug stmts.
11219
b9fc0497
RB
112202013-01-28 Richard Biener <rguenther@suse.de>
11221
11222 PR tree-optimization/56034
6edc3e32 11223 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
11224 (partition_builtin_p): Adjust.
11225 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
11226 it is the last partition.
11227 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
11228 up the vertex for the definition.
11229 (classify_partition): Classify whether a partition is a
11230 PKIND_REDUCTION, thus has uses outside of the loop.
11231 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
11232 Merge all PKIND_REDUCTION partitions into the last partition.
11233 (tree_loop_distribution): Seed partitions from reductions as well.
11234
aa710d25
JJ
112352013-01-28 Jakub Jelinek <jakub@redhat.com>
11236
0bfbca58
JJ
11237 PR tree-optimization/56125
11238 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
11239 pow(x,c) into sqrt(x) * powi(x, n/2) or
11240 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
11241 optimizing for size.
11242 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
11243 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
11244 integer.
11245
aa710d25
JJ
11246 PR tree-optimization/56094
11247 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
11248 to UNKNOWN_LOCATION while gimplifying expr.
11249
77dc5297
UB
112502013-01-27 Uros Bizjak <ubizjak@gmail.com>
11251
11252 PR target/56114
11253 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
11254 operand 0 in movabs insn template for -masm=intel asm alternative.
11255 (*movabs<mode>_2): Ditto for operand 1.
11256
0bfbca58 112572013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
11258
11259 PR target/54663
11260 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
11261 of microblaze-c.o
11262
0bfbca58 112632013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
11264
11265 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
11266 tm_file.
11267
0bfbca58 112682013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
11269
11270 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
11271 Undef to avoid warning.
11272
478f60f9
MH
112732013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
11274
11275 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
11276 * configure: Regenerate.
11277
d7fa6ee2
JJ
112782013-01-25 Jakub Jelinek <jakub@redhat.com>
11279
11280 PR tree-optimization/56098
11281 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
11282 for stmts with volatile ops.
11283 (cond_store_replacement): Don't optimize if assign has volatile ops.
11284 (cond_if_else_store_replacement_1): Don't optimize if either
11285 then_assign or else_assign have volatile ops.
11286 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
11287 volatile ops.
11288
f8fe87bd
GJL
112892013-01-25 Georg-Johann Lay <avr@gjlay.de>
11290
11291 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
11292
28398d0d
GJL
112932013-01-25 Georg-Johann Lay <avr@gjlay.de>
11294
11295 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
11296 missing ':' in asm example.
11297
b7d7d917
TB
112982013-01-25 Tejas Belagod <tejas.belagod@arm.com>
11299
11300 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
11301 entries into lane and laneq entries.
77dc5297
UB
11302 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
11303 Remove AdvSIMD scalar modes.
b7d7d917
TB
11304 (aarch64_sq<r>dmulh_laneq<mode>): New.
11305 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
11306 modes.
11307 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
11308 builtin implementations to relfect changes in RTL in aarch64-simd.md.
11309 * config/aarch64/iterators.md (VCOND): New.
11310 (VCONQ): New.
11311
556f9906
GJL
113122013-01-25 Georg-Johann Lay <avr@gjlay.de>
11313
11314 PR target/54222
11315 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
11316 Add NULL LIBNAME argument to existing definitions.
11317 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
11318 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
11319 * config/avr/avr.c (DEF_BUILTIN): Same.
11320 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
11321 (avr_expand_builtin): Expand to a vanilla call if a libgcc
11322 implementation is available (DECL_ASSEMBLER_NAME is set).
11323 (avr_fold_absfx): New static function.
11324 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
11325 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
11326 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
11327 AVR_BUILTIN_ABSLLK.
11328 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
11329 (abshk, absk, abslk, absllk): Provide as static inline functions.
11330
1f546bbb
MP
113312013-01-25 Marek Polacek <polacek@redhat.com>
11332
11333 PR tree-optimization/56035
11334 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
11335
7e184bd7
UB
113362012-01-24 Uros Bizjak <ubizjak@gmail.com>
11337
11338 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
11339 (*movtf_internal_rex64): Add (!o,C) alternative
11340 (*movxf_internal_rex64): Ditto.
11341 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
11342
f5ba49ac
SM
113432013-01-24 Shenghou Ma <minux.ma@gmail.com>
11344
11345 * doc/invoke.texi: fix typo.
11346 * doc/objc.texi: fix typo.
11347
a6343728
RS
113482013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
11349
11350 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
11351 for the first two alternatives.
11352
cd030c07
DN
113532013-01-24 Diego Novillo <dnovillo@google.com>
11354
77dc5297 11355 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
11356 (ggc-zone.o): Remove.
11357 * configure.ac: Remove option --with-gc.
11358 * configure: Re-generate.
11359 * doc/install.texi: Remove documentation for --with-gc.
11360 * gengtype.c (write_enum_defn): Remove. Update all users.
11361 (write_Types_process_field): Remove generation of gt_e_* argument.
11362 (output_type_enum): Remove. Update all users.
11363 (write_enum_defn): Remove. Update all users.
11364 (enum alloc_zone): Remove. Update all users.
77dc5297 11365 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
11366 * ggc-common.c (ggc_splay_alloc): Remove first argument.
11367 Update all callers.
11368 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 11369 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
11370 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
11371 Update all users.
aaf1e810 11372 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
11373 (struct alloc_zone): Remove.
11374 (ggc_internal_alloc_zone_stat): Remove.
11375 (ggc_internal_cleared_alloc_zone_stat): Remove.
11376 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
11377 (ggc_pch_count_object): Remove last argument. Update all users.
11378 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
11379 (struct alloc_zone): Remove.
11380 * ggc-zone.c: Remove.
77dc5297 11381 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
11382 (struct alloc_zone): Remove.
11383 (ggc_alloc_typed_stat): Remove.
11384 (ggc_alloc_typed): Remove.
11385 (ggc_splay_alloc): Remove first argument.
11386 (rtl_zone): Remove. Update all users.
11387 (tree_zone): Remove. Update all users.
11388 (tree_id_zone): Remove. Update all users.
11389 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 11390 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 11391 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 11392 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 11393
a861ffa4
GJL
113942013-01-24 Georg-Johann Lay <avr@gjlay.de>
11395
11396 * config/avr/avr.c (avr_out_fract): Make register numbers that
11397 might be outside of source operand signed.
11398
593c0ddd
UB
113992013-01-24 Uros Bizjak <ubizjak@gmail.com>
11400
11401 * config/i386/constraints.md (Yf): New constraint.
11402 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
11403 of f constraint to conditionaly disable x87 register preferences.
11404 (*movdf_internal): Ditto.
11405 (*movsf_internal): Ditto.
11406
e86c0101
SB
114072013-01-24 Steven Bosscher <steven@gcc.gnu.org>
11408
11409 PR inline-asm/55934
11410 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
11411 that have operands with impossible constraints.
11412 Add a FIXME for a speed-up opportunity.
11413 * lra-constraints.c (process_alt_operands): Verify that a class
11414 selected from constraints on asms is valid for the operand mode.
11415 (curr_insn_transform): Remove incorrect comment.
11416
f6fee35f
DE
114172013-01-23 David Edelsohn <dje.gcc@gmail.com>
11418
11419 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
11420 TOC operand is a valid symbol ref in the constant pool.
11421
114222013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 11423
aaf1e810 11424 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 11425
dc62d7d1
GJL
114262013-01-23 Georg-Johann Lay <avr@gjlay.de>
11427
11428 PR target/54222
11429 * config/avr/stdfix.h: New file.
11430 * t-avr (stdfix-gcc.h): New rule to build it.
11431 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
11432
2660d12d
KS
114332013-01-23 Kostya Serebryany <kcc@google.com>
11434
77dc5297
UB
11435 * config/darwin.h: remove dependency on
11436 CoreFoundation (asan on Mac OS).
2660d12d 11437
a70418fc
JJ
114382013-01-23 Jakub Jelinek <jakub@redhat.com>
11439
11440 PR target/49069
11441 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
11442 instead of cmpdi_operand for first comparison operand.
11443 Don't assert that comparison operands aren't both constants.
11444
47876a2a
JW
114452013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
11446
11447 * doc/install.texi (Downloading the Source): Update references to
11448 downloading separate components.
11449
114502013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
11451
11452 * doc/extend.texi (__int128): Improve grammar.
11453
47876a2a 114542013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
11455
11456 PR target/56028
11457 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
11458 alternative to (o,r).
11459 (*movdi_internal_rex64): Remove (!o,n) alternative.
11460 (DImode immediate->memory splitter): Remove.
11461 (DImode immediate->memory peephole2): Remove.
11462 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
11463 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
11464 alternative to (!o,*r).
11465 (*movtf_internal_sse): New pattern.
11466 (*movxf_internal_rex64): New pattern.
11467 (*movxf_internal): Disable for TARGET_64BIT.
11468 (*movdf_internal_rex64): Remove (!o,F) alternative.
11469
3a984f10
JJ
114702013-01-22 Jakub Jelinek <jakub@redhat.com>
11471
502498d5
JJ
11472 PR middle-end/56074
11473 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
11474 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
11475 * tree-vect-loop-manip.c (find_loop_location): Also ignore
11476 stmt locations where LOCATION_LOCUS of the stmt location is
11477 UNKNOWN_LOCATION or BUILTINS_LOCATION.
11478
3a984f10
JJ
11479 PR target/55686
11480 * config/i386/i386.md (UNSPEC_STOS): New.
11481 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
11482 *strsetqi_1): Add UNSPEC_STOS.
11483
fa817f7f
PC
114842013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
11485
11486 PR c++/56067
11487 * doc/invoke.texi: Remove left over -Wsynth example.
11488
8f498c1b
JJ
114892013-01-21 Jakub Jelinek <jakub@redhat.com>
11490
11491 PR tree-optimization/56051
11492 * fold-const.c (fold_binary_loc): Don't fold
11493 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
11494 a narrowing conversion, or widening conversion from signed
11495 to unsigned.
11496
47876a2a 114972013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
11498
11499 PR rtl-optimization/56023
11500 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
11501 dependent on debug instruction.
11502
5b9db1bc
MJ
115032013-01-21 Martin Jambor <mjambor@suse.cz>
11504
11505 PR middle-end/56022
11506 * function.c (allocate_struct_function): Call
11507 invoke_set_current_function_hook earlier.
11508
e8bb7d68
JJ
115092013-01-21 Jakub Jelinek <jakub@redhat.com>
11510
11511 * reload1.c (init_reload): Only initialize reload_obstack
11512 during the first call.
11513
616a4e32
MP
115142013-01-21 Marek Polacek <polacek@redhat.com>
11515
11516 * cfgloop.c (verify_loop_structure): Fix up grammar.
11517
4401981b
YHH
115182013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
11519
11520 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
11521 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
11522
8e87740b
RR
115232013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11524
11525 PR target/56058
11526 * config/arm/marvell-pj4.md: Update copyright year.
11527 Fix up use of alu to alu_reg and simple_alu_imm.
11528
47876a2a 115292013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
11530
11531 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
11532
89d56d79
VM
115332013-01-20 Vladimir Makarov <vmakarov@redhat.com>
11534
11535 PR target/55433
11536 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 11537 insn for secondary memory move when memory mode should be different.
89d56d79 11538
fe603553
JDA
115392013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11540
11541 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
11542 atomic_storedi_1): New patterns.
11543
01284895
VK
115442013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
11545
11546 btver2 pipeline descriptions.
11547 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
11548 descriptions.
11549 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 11550 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
11551 type attributes.
11552 * config/i386/btver2.md: New file describing btver2 pipelines.
11553
5630e3e1
JL
115542013-01-19 Andrew Pinski <apinski@cavium.com>
11555
11556 PR tree-optimization/52631
11557 * tree-ssa-sccvn (visit_use): Before looking up the original
11558 statement, try looking up the simplified expression.
11559
650ae806
AG
115602013-01-19 Anthony Green <green@moxielogic.com>
11561
11562 * config/moxie/moxie.c (moxie_expand_prologue): Set
11563 current_function_static_stack_size.
11564
e300ec2d
JJ
115652013-01-18 Jakub Jelinek <jakub@redhat.com>
11566
11567 PR tree-optimization/56029
11568 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
11569 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
11570
a3d7af04
SS
115712013-01-18 Sharad Singhai <singhai@google.com>
11572
11573 PR tree-optimization/55995
11574 * dumpfile.c (dump_loc): Print location only if available.
11575 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
11576
66aa7879
VM
115772013-01-18 Vladimir Makarov <vmakarov@redhat.com>
11578
11579 PR target/55433
11580 * lra-constraints.c (curr_insn_transform): Reuse original insn for
11581 secondary memory move.
11582 (inherit_reload_reg): Use rclass instead of cl for
11583 check_secondary_memory_needed_p.
11584
3f0fee7b
JJ
115852013-01-18 Jakub Jelinek <jakub@redhat.com>
11586
11587 PR middle-end/56015
11588 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 11589 the case where writing real complex part of target modifies op1.
3f0fee7b 11590
70c67693
JG
115912013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
11592
11593 * config/aarch64/aarch64-simd.md
11594 (aarch64_vcond_internal<mode>): Handle unordered cases.
11595 * config/aarch64/iterators.md (v_cmp_result): New.
11596
df8de9b3
YHH
115972013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
11598 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11599
11600 * config/arm/marvell-pj4.md: New file.
11601 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
11602 * config/arm/arm.md (generic_sched): Add marvell_pj4.
11603 (generic_vfp): Likewise.
11604 * config/arm/arm-cores.def: Add marvell-pj4.
11605 * config/arm/arm-tune.md: Regenerate.
11606 * config/arm/arm-tables.opt: Regenerate.
11607 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
11608 * doc/invoke.texi: Document marvell-pj4.
11609
be30c356
TB
116102013-01-18 Tejas Belagod <tejas.belagod@arm.com>
11611
11612 * config/aarch64/arm_neon.h: Map scalar types to standard types.
11613
0bfbca58 116142013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
11615
11616 PR debug/54114
11617 PR debug/54402
11618 PR debug/49888
11619 * var-tracking.c (negative_power_of_two_p): New.
11620 (global_get_addr_cache, local_get_addr_cache): New.
11621 (get_addr_from_global_cache, get_addr_from_local_cache): New.
11622 (vt_canonicalize_addr): Rewrite using the above. Adjust the
11623 heading comment.
11624 (vt_stack_offset_p): Remove.
11625 (vt_canon_true_dep): Always canonicalize loc's address.
11626 (clobber_overlapping_mems): Make sure we have a MEM.
11627 (local_get_addr_clear_given_value): New.
11628 (val_reset): Clear local cached entries.
11629 (compute_bb_dataflow): Create and release the local cache.
11630 Disable duplicate MEMs clobbering.
11631 (emit_notes_in_bb): Clobber MEMs likewise.
11632 (vt_emit_notes): Create and release the local cache.
11633 (vt_initialize, vt_finalize): Create and release the global
11634 cache, respectively.
1f6bc337 11635 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 11636
0bfbca58 116372013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
11638
11639 PR libmudflap/53359
11640 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
11641 not found in the symtab.
11642
0bfbca58 116432013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 11644
c350ba53 11645 PR debug/56006
3aa03517
AO
11646 PR rtl-optimization/55547
11647 PR rtl-optimization/53827
11648 PR debug/53671
11649 PR debug/49888
11650 * alias.c (offset_overlap_p): New, factored out of...
11651 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
11652 the conservative special case for symbolic constants. Don't
11653 adjust zero sizes on alignment.
11654
c664546f
JL
116552013-01-18 Bernd Schmidt <bernds@codesourcery.com>
11656
11657 PR rtl-optimization/52573
11658 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
11659 REG_UNUSED for the same register.
11660
1bd3f750
MP
116612013-01-17 Richard Biener <rguenther@suse.de>
11662 Marek Polacek <polacek@redhat.com>
11663
11664 PR rtl-optimization/55833
11665 * loop-unswitch.c (unswitch_loops): Move loop verification...
11666 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
11667 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
11668 Set it to true when we're removing a loop from hierarchy tree in
11669 an irreducible region.
11670 (fix_bb_placements): Adjust caller.
11671 (fix_loop_placements): Likewise.
11672
e52a8b71
GJL
116732013-01-17 Georg-Johann Lay <avr@gjlay.de>
11674
11675 * config/avr/builtins.def (DEF_BUILTIN): Factor out
11676 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
11677 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
11678 Remove ID. Adjust comments.
11679 * config/avr/avr-c.c (avr_builtin_name): Remove.
11680 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
11681 * config/avr/avr.c (avr_tolower): New static function.
11682 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
11683 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
11684 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
11685 default expansion.
11686
8386a7ea
JH
116872013-01-17 Jan Hubicka <jh@suse.cz>
11688
610fb637 11689 PR tree-optimization/55273
8386a7ea
JH
11690 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
11691
47876a2a 116922013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
11693
11694 PR target/55981
11695 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
11696 store through atomic_store<mode>_1.
11697 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
11698
8222c37e
MJ
116992013-01-17 Martin Jambor <mjambor@suse.cz>
11700
11701 PR tree-optimizations/55264
11702 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
11703 for virtual methods.
11704 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
11705 virtual methods before inlining is over.
11706 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
11707 virtual functions.
11708 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
11709 non-virtual.
11710
79f01c76
VM
117112013-01-16 Vladimir Makarov <vmakarov@redhat.com>
11712
11713 PR rtl-optimization/56005
11714 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
11715 pending reads for prefetch.
11716
d0b6bb1b
IB
117172013-01-16 Ian Bolton <ian.bolton@arm.com>
11718
aaf1e810 11719 * config/aarch64/aarch64.md
d0b6bb1b
IB
11720 (*cstoresi_neg_uxtw): New pattern.
11721 (*cmovsi_insn_uxtw): New pattern.
11722 (*<optab>si3_uxtw): New pattern.
11723 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
11724 (*<optab>si3_insn_uxtw): New pattern.
11725 (*bswapsi2_uxtw): New pattern.
11726
cb9cf03b
RB
117272013-01-16 Richard Biener <rguenther@suse.de>
11728
11729 * tree-inline.c (tree_function_versioning): Remove set but
11730 never used variable.
11731
2cfc56b9
RB
117322013-01-16 Richard Biener <rguenther@suse.de>
11733
11734 PR tree-optimization/55964
11735 * tree-flow.h (rename_variables_in_loop): Remove.
11736 (rename_variables_in_bb): Likewise.
11737 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
11738 (copy_loop_before): Adjust and delete update-ssa status.
11739 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 11740 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
11741 (rename_variables_in_loop): Remove.
11742 (slpeel_update_phis_for_duplicate_loop): Likewise.
11743 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
11744 use available cfg machinery instead of duplicating it.
11745 Update PHI nodes and perform poor-mans SSA update here.
11746 (slpeel_tree_peel_loop_to_edge): Adjust.
11747
c25a0c60
RB
117482013-01-16 Richard Biener <rguenther@suse.de>
11749
11750 PR tree-optimization/54767
11751 PR tree-optimization/53465
11752 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
11753 (vrp_visit_phi_node): For PHI arguments coming via backedges
11754 drop all symbolical range information.
11755 (execute_vrp): Compute backedges.
11756
04b535af
RB
117572013-01-16 Richard Biener <rguenther@suse.de>
11758
11759 * doc/install.texi: Update CLooG and ISL requirements to
11760 0.18.0 and 0.11.1.
11761
8b0a1e0b
CB
117622013-01-16 Christian Bruel <christian.bruel@st.com>
11763
11764 PR target/55301
11765 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
11766 (broken_move): Handle UNSPECV_SP_SWITCH_B.
11767 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
11768
117692013-01-16 DJ Delorie <dj@redhat.com>
11770
11771 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
11772 (UNSPECV_SP_SWITCH_E): New.
11773 (sp_switch_1): Change to an unspec.
11774 (sp_switch_2): Change to an unspec. Don't use post-inc when we
11775 replace $r15.
11776
117772013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
11778
11779 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
11780 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
11781 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
11782 (expand_mem_thread_fence): Ditto.
11783 (expand_mem_signal_fence): Ditto.
11784 (expand_atomic_load): Ditto.
11785 (expand_atomic_store): Ditto.
11786
0bfbca58 117872013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
11788
11789 PR rtl-optimization/55547
11790 PR rtl-optimization/53827
11791 PR debug/53671
11792 PR debug/49888
11793 * alias.c (memrefs_conflict_p): Set sizes to negative after
11794 AND adjustments.
11795
305e3ac1
JJ
117962013-01-15 Jakub Jelinek <jakub@redhat.com>
11797
11798 PR target/55940
11799 * function.c (thread_prologue_and_epilogue_insns): Always
11800 add crtl->drap_reg to set_up_by_prologue.set, even if
11801 stack_realign_drap is false.
11802
f78ac4f2
JBG
118032013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11804
11805 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
11806 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
11807 *call): Fix indention.
11808
a78a8cc4
TV
118092013-01-15 Tom de Vries <tom@codesourcery.com>
11810
11811 PR target/55876
11812 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
11813 Update comment.
11814
0e80383f
VM
118152013-01-15 Vladimir Makarov <vmakarov@redhat.com>
11816
305e3ac1 11817 PR rtl-optimization/55153
0e80383f
VM
11818 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
11819
207b5956
MJ
118202013-01-15 Martin Jambor <mjambor@suse.cz>
11821
11822 PR tree-optimization/55920
11823 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
11824 accesses as grp_to_be_debug_replaced.
11825
a7818b54
JJ
118262013-01-15 Jakub Jelinek <jakub@redhat.com>
11827
11828 PR tree-optimization/55920
11829 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
11830 there is non-useless type conversion needed from debug rhs to lhs,
11831 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
11832
b0fe107e
JM
118332013-01-15 Joseph Myers <joseph@codesourcery.com>
11834 Mikael Pettersson <mikpe@it.uu.se>
11835
11836 PR target/43961
11837 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
11838 Thumb.
11839 (ASM_OUTPUT_CASE_LABEL): Remove.
11840 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
11841 * final.c (shorten_branches): Update alignment of labels before
11842 jump tables if CASE_VECTOR_SHORTEN_MODE.
11843
34ab62ee
RB
118442013-01-15 Richard Biener <rguenther@suse.de>
11845
11846 PR bootstrap/55961
11847 * system.h: Do not include gmp.h for building host tools.
11848
783a3a05
RB
118492013-01-15 Richard Biener <rguenther@suse.de>
11850
11851 PR middle-end/55882
11852 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
11853 account for bitpos when computing alignment.
11854
3a579e09
VY
118552013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
11856
11857 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
11858 (ix86_target_macros_internal): Likewise.
11859
11860 * config/i386/i386.c (m_CORE2I7): Removed.
11861 (m_CORE_HASWELL): New macro.
11862 (m_CORE_ALL): Likewise.
11863 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
11864 (initial_ix86_arch_features): Likewise.
11865 (processor_target_table): Initializations for Core avx2.
11866 (cpu_names): New names "core-avx2".
11867 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
11868 PROCESSOR_CORE_HASWELL.
11869 (ix86_issue_rate): New case.
11870 (ia32_multipass_dfa_lookahead): Likewise.
11871 (ix86_sched_init_global): Likewise.
11872
11873 * config/i386/i386.h (TARGET_HASWELL): New macro.
11874 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
11875 (processor_type): New PROCESSOR_HASWELL.
11876
955f5a07
JJ
118772013-01-15 Jakub Jelinek <jakub@redhat.com>
11878
ff784829
JJ
11879 PR tree-optimization/55955
11880 * tree-vect-loop.c (vectorizable_reduction): Give up early on
11881 *SHIFT_EXPR and *ROTATE_EXPR codes.
11882
955f5a07
JJ
11883 PR tree-optimization/48766
11884 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
11885 -ftrapv disable -fwrapv.
11886
aeb8b4e9
GJL
118872013-01-14 Georg-Johann Lay <avr@gjlay.de>
11888
11889 PR target/55974
11890 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
11891 etc. to 1 and not to __flash.
11892 Use LL suffix for __INT24_MAX__ with -mint8.
11893 Use ULL suffix for __UINT24_MAX__ with -mint8.
11894
1c494c6a
GJL
118952013-01-14 Georg-Johann Lay <avr@gjlay.de>
11896
11897 * config/avr/avr-arch.h
11898 (struct base_arch_s): Use typedef avr_arch_t instead.
11899 (struct arch_info_s): Use typedef avr_arch_info_t instead.
11900 (struct mcu_type_s): Use typedef avr_mcu_t instead.
11901 * config/avr/avr.c: Same.
11902 * config/avr/avr-devices.c: Same.
11903 * config/avr/driver-avr.c: Same.
11904 * config/avr/gen-avr-mmcu-texi.c: Same.
11905 * config/avr/avr-mcus.def: Adjust comment.
11906
a50344cb
TB
119072013-01-14 Tejas Belagod <tejas.belagod@arm.com>
11908
88e784e6
UB
11909 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
11910 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 11911
47876a2a 119122013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
11913 Andi Kleen <ak@linux.intel.com>
11914
11915 PR target/55948
11916 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
11917 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
11918 memmodel flag.
11919
00892272
GJL
119202013-01-14 Georg-Johann Lay <avr@gjlay.de>
11921
11922 * config/avr/avr-stdint.h: Remove trailing blanks.
11923 * config/avr/avr-log.h: Same.
11924 * config/avr/avr-arch.h: Same.
11925 * config/avr/avr-devices.c: Same.
11926 * config/avr/avr-dimode.md: Same.
11927 * config/avr/predicates.md: Same.
11928 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 11929
00892272
GJL
11930 * config/avr/avr-protos.h: Same. And:
11931 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
11932 (init_cumulative_args): Rename to avr_init_cumulative_args.
11933 (expand_prologue): Rename to avr_expand_prologue.
11934 (expand_epilogue): Rename to avr_expand_epilogue.
11935 (adjust_insn_length): Rename to avr_adjust_insn_length.
11936 (notice_update_cc): Rename to avr_notice_update_cc.
11937 (final_prescan_insn): Rename to avr_final_prescan_insn.
11938 * config/avr/avr.c: Same.
11939 * config/avr/avr.h: Same.
11940 * config/avr/avr.md: Remove trailing blanks.
11941 (prologue): Use avr_expand_prologue.
11942 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
11943
7bb01996
RB
119442013-01-14 Richard Biener <rguenther@suse.de>
11945
11946 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
11947 verify_location, collect_subblocks): New functions.
11948 (verify_gimple_in_cfg): Verify that locations only reference
11949 BLOCKs in the functions BLOCK tree.
11950
2724573f
RB
119512013-01-14 Richard Biener <rguenther@suse.de>
11952
11953 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
11954 PHI argument.
11955 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
11956 unshare reference.
11957 (insert_out_of_ssa_copy_on_edge): Likewise.
11958 (rewrite_close_phi_out_of_ssa): Likewise.
11959 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
11960 debug expressions.
11961 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
11962 propagated constants.
11963 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
11964 can not be shared.
11965
9a0bbab6
GJL
119662013-01-14 Georg-Johann Lay <avr@gjlay.de>
11967
11968 * config/avr/avr-modes.def: Add GPL copyright notice.
11969
45805f17
UB
119702013-01-13 Uros Bizjak <ubizjak@gmail.com>
11971
11972 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
11973 MEMMODEL_MASK to determine memory model.
11974 (atomic_store<mode>): Ditto from operands[2].
11975 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
11976
9d60be38
JJ
119772013-01-13 Jakub Jelinek <jakub@redhat.com>
11978
11979 PR fortran/55935
45805f17 11980 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
11981 (fold_gimple_assign): Don't call unshare_expr here.
11982 (fold_ctor_reference): Call unshare_expr.
11983
e7f49d92
TG
119842013-01-13 Terry Guo <terry.guo@arm.com>
11985
aaf1e810
EB
11986 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
11987 * doc/fragments.texi: Document MULTILIB_REUSE.
11988 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 11989 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 11990 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
11991 (tmpmultilib4): Ditto.
11992 (multilib_reuse): New multilib argument.
11993
fbd03a27
RS
119942013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
11995
11996 * Makefile.in: Update copyright.
11997
b3681f13
TV
119982013-01-12 Tom de Vries <tom@codesourcery.com>
11999
12000 PR middle-end/55890
12001 * calls.c (expand_call): Check if arg_nr is valid.
12002
3f287e4b
MM
120032013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
12004
12005 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
12006 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
12007 documentation. Add missing '__' in front of
12008 __builtin_ia32_packssdw256.
3f287e4b 12009
1abcd5eb
AK
120102013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12011
12012 PR target/55719
12013 * config/s390/s390.c (s390_preferred_reload_class): Do not return
12014 NO_REGS for larl operands.
12015 (s390_reload_larl_operand): Use s390_load_address instead of
12016 emit_move_insn.
12017
980d0812
RB
120182013-01-11 Richard Biener <rguenther@suse.de>
12019
12020 * tree-cfg.c (verify_node_sharing_1): Split out from ...
12021 (verify_node_sharing): ... here.
12022 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
12023
7cb9fd07
EB
120242013-01-11 Eric Botcazou <ebotcazou@adacore.com>
12025
12026 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
12027 Substitute TREECHECKING.
12028 * configure: Regenerate.
12029 * Makefile.in (TREECHECKING): New.
12030
47876a2a 120312013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
12032
12033 PR tree-optimization/44061
12034 * tree-vrp.c (extract_range_basic): Compute zero as
12035 value-range for __builtin_constant_p of function parameters.
12036
d1e082c2
RS
120372013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
12038
45805f17 12039 Update copyright years.
d1e082c2 12040
f85021b0
VM
120412013-01-10 Vladimir Makarov <vmakarov@redhat.com>
12042
9d60be38 12043 PR rtl-optimization/55672
0160442c
VM
12044 * lra-eliminations.c (mark_not_eliminable): Permit addition with
12045 const to be eliminable.
f85021b0 12046
7a8b1ec4
DE
120472013-01-10 David Edelsohn <dje.gcc@gmail.com>
12048
12049 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
12050 * configure: Regenerate.
12051
ad2e5b71
RB
120522013-01-10 Richard Biener <rguenther@suse.de>
12053
ddf9322d 12054 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 12055
ffc5b2bb
RB
120562013-01-10 Richard Biener <rguenther@suse.de>
12057
12058 PR bootstrap/55792
12059 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
12060 locations for virtual PHI arguments.
12061 (rewrite_update_phi_arguments): Likewise.
12062
e1f674e4
JS
120632013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
12064
12065 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
12066 on to assembler.
12067
a57fc743
JJ
120682013-01-10 Jakub Jelinek <jakub@redhat.com>
12069
12070 PR tree-optimization/55921
12071 * tree-complex.c (expand_complex_asm): New function.
12072 (expand_complex_operations_1): Call it for GIMPLE_ASM.
12073
0ff4390d
AK
120742013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12075
12076 PR target/55718
12077 * config/s390/s390.c (s390_symref_operand_p)
12078 (s390_loadrelative_operand_p): Merge the two functions.
12079 (s390_check_qrst_address, print_operand_address): Add parameters
12080 to s390_loadrelative_operand_p invokation.
12081 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
12082 (s390_reload_larl_operand, s390_secondary_reload): Use
12083 s390_loadrelative_operand_p instead of s390_symref_operand_p.
12084 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
12085
6f557e0e
MS
120862013-01-09 Mike Stump <mikestump@comcast.net>
12087
12088 * dse.c (record_store): Remove unnecessary assert.
12089
7770c9e9
JH
120902013-01-09 Jan Hubicka <jh@suse.cz>
12091
12092 PR tree-optimization/55569
12093 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
12094 * cfgloop.h (scale_loop_profile): Likewise.
12095
a19b1432
JH
120962013-01-09 Jan Hubicka <jh@suse.cz>
12097
12098 PR lto/45375
ddf9322d
UB
12099 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
12100 functions.
a19b1432
JH
12101 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
12102
9a002da8
RS
121032013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
12104
12105 PR middle-end/55114
12106 * expr.h (maybe_emit_group_store): Declare.
12107 * expr.c (maybe_emit_group_store): New function.
12108 * builtins.c (expand_builtin_int_roundingfn): Call it.
12109 (expand_builtin_int_roundingfn_2): Likewise.
12110
511dcace
VM
121112013-01-09 Vladimir Makarov <vmakarov@redhat.com>
12112
e1f2b729 12113 PR rtl-optimization/55829
511dcace
VM
12114 * lra-constraints.c (match_reload): Add code for absent output.
12115 (curr_insn_transform): Add code for reloads of matched inputs
12116 without output.
12117
7b0fe4f4
UB
121182013-01-09 Uros Bizjak <ubizjak@gmail.com>
12119
12120 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
12121 attribute of movddup insn to DF.
12122 (*vec_interleave_lowv2df): Ditto.
12123 (vec_dupv2df): Ditto.
12124
870ca331
JH
121252013-01-09 Jan Hubicka <jh@suse.cz>
12126
12127 PR tree-optimiation/55875
12128 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
12129 EVERY_ITERATION parameter.
7b0fe4f4 12130 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
12131 (idx_infer_loop_bounds): Similarly here.
12132 (n_of_executions_at_most): Simplify
12133 to only test for cases where statement is dominated by the
7b0fe4f4 12134 particular bound; handle correctly the "postdominance" test.
870ca331
JH
12135 (scev_probably_wraps_p): Use max loop iterations info
12136 as a global bound first.
12137
6f575fe4 121382013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
12139 Nick Clifton <nickc@redhat.com>
12140
12141 * config/v850/v850.md (cbranchsf4): New pattern.
12142 (cstoresf4): New pattern.
12143 (cbranchdf4): New pattern.
12144 (cstoredf4): New pattern.
12145 (movsicc): Disallow floating point comparisons.
12146 (cmpsf_le_insn): Fix order of operators.
12147 (cmpsf_lt_insn): Likewise.
12148 (cmpsf_eq_insn): Likewise.
12149 (cmpdf_le_insn): Likewise.
12150 (cmpdf_lt_insn): Likewise.
12151 (cmpdf_eq_insn): Likewise.
12152 (cmpsf_ge_insn): Use LE comparison.
12153 (cmpdf_ge_insn): Likewise.
12154 (cmpsf_gt_insn): Use LT comparison.
12155 (cmpdf_gt_insn): Likewise.
12156 (cmpsf_ne_insn): Delete pattern.
12157 (cmpdf_ne_insn): Delete pattern.
12158 * config/v850/v850.c (v850_gen_float_compare): Use
12159 gen_cmpdf_eq_insn for NE comparison.
12160 (v850_float_z_comparison_operator)
12161 (v850_float_nz_comparison_operator): Move from here ...
12162 * config/v850/predicates.md: ... to here. Move GT and GE
12163 comparisons into v850_float_z_comparison_operator.
12164 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
12165 Delete prototype.
12166 (v850_float_nz_comparison_operator): Likewise.
12167
f0d54148
JDA
121682013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12169
12170 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
12171 with calls to gen_insvsi/gen_insvdi.
12172
8f01beca
VK
121732013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
12174
12175 * config/i386/i386.c (initial_ix86_tune_features): Set up
12176 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
12177
2aa579ad
JJ
121782013-01-09 Steven Bosscher <steven@gcc.gnu.org>
12179 Jakub Jelinek <jakub@redhat.com>
12180
12181 PR tree-optimization/48189
12182 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
12183 If nitercst is 0, don't predict the exit edge.
12184
6edc3e32 121852013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
12186
12187 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
12188 in asm_fprintf with reg_names.
12189 (aarch64_print_operand_address): Likewise.
12190 (aarch64_return_addr): Likewise.
12191 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
12192
f6f94d94
JDA
121932013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12194
12195 * config/pa/pa.h (VAL_U6_BITS_P): Define.
12196 (INT_U6_BITS): Likewise.
12197 * config/pa/predicates.md (uint6_operand): New predicate.
12198 (shift5_operand, shift6_operand): Likewise.
12199 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
12200 arith32_operand.
12201 (lshrdi3): Use shift6_operand.
12202 (shrpsi4, shrpdi4): New insn patterns.
12203 (extzv): Delete expander.
12204 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
12205 predicates in unamed zero extract patterns. Tighten common constraint.
12206 (extv): Delete expander.
12207 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
12208 predicates in unamed sign extract patterns. Tighten common constraint.
12209 (insv): Delete expander.
12210 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
12211 predicates in unamed insert patterns. Tighten common constraint.
12212 Change uint32_operand predicate to uint6_operand predicate in unamed
12213 DImode pattern to insert constant values of type 1...1xxxx.
12214
36b72910
JH
122152013-01-04 Jan Hubicka <jh@suse.cz>
12216
12217 PR tree-optimization/55823
7b0fe4f4
UB
12218 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
12219 issue.
36b72910 12220
47876a2a 122212013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
12222 Uros Bizjak <ubizjak@gmail.com>
12223
12224 PR rtl-optimization/55845
12225 * df-problems.c (can_move_insns_across): Stop scanning at
12226 volatile_insn_p source instruction or give up if
12227 across_from .. across_to range contains any volatile_insn_p
12228 instructions.
12229
4369c11e
TB
122302013-01-08 Tejas Belagod <tejas.belagod@arm.com>
12231
7b0fe4f4
UB
12232 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
12233 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
12234 Declare.
4369c11e 12235 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 12236 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 12237
aeb7e7c1
JJ
122382013-01-08 Jakub Jelinek <jakub@redhat.com>
12239
12240 PR fortran/55341
12241 * asan.c (asan_clear_shadow): New function.
12242 (asan_emit_stack_protection): Use it.
12243
a02ad1aa
TB
122442013-01-08 Tejas Belagod <tejas.belagod@arm.com>
12245
12246 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
12247 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
12248 with tab instead of space.
12249
f90d87f5
NC
122502013-01-08 Nick Clifton <nickc@redhat.com>
12251
12252 * config/rl78/rl78.c (rl78_expand_prologue): Always select
12253 register bank 0 at the start of an interrupt handler.
83ffd964
NC
12254 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
12255 MDBH registers.
f90d87f5 12256
385eb93d
JG
122572013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
12258
12259 * config/aarch64/aarch64-simd.md
12260 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
12261 (aarch64_simd_bsl): Likewise.
12262 (aarch64_vcond_internal<mode>): Likewise.
12263 (vcond<mode><mode>): Likewise.
12264 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
12265 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
12266
4dcd1054
JG
122672013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
12268
12269 * config/aarch64/aarch64-builtins.c
12270 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
12271
4267a4a6
MJ
122722013-01-08 Martin Jambor <mjambor@suse.cz>
12273
12274 PR debug/55579
12275 * tree-sra.c (analyze_access_subtree): Return true also after
12276 potentially creating a debug-only replacement.
12277
5f4e6de3
JJ
122782013-01-08 Jakub Jelinek <jakub@redhat.com>
12279
3138f224
JJ
12280 PR middle-end/55890
12281 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
12282
5f4e6de3
JJ
12283 PR tree-optimization/54120
12284 * tree-vrp.c (range_fits_type_p): Don't allow
12285 src_precision < precision from signed vr to unsigned_p
12286 if vr->min or vr->max is negative.
12287 (simplify_float_conversion_using_ranges): Test can_float_p
12288 against CODE_FOR_nothing.
12289
f3ef18ff
JJ
122902013-01-08 Jakub Jelinek <jakub@redhat.com>
12291 Richard Biener <rguenther@suse.de>
12292
12293 PR middle-end/55851
12294 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
12295 types instead of just INTEGER_TYPE types.
12296
25c210f9
MK
122972013-01-07 Mark Kettenis <kettenis@openbsd.org>
12298
12299 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
12300 TF_SIZE): Define.
f90d87f5 12301
81826a7b
SE
123022013-01-07 Steve Ellcey <sellcey@mips.com>
12303
12304 PR target/42661
12305 * config/mips/mips.opt: Change mad to mmad to match documentation.
12306
35678514
GJL
123072013-01-07 Georg-Johann Lay <avr@gjlay.de>
12308
12309 PR target/55897
12310 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
12311 .progmemx.data now.
12312
e5669488
GJL
123132013-01-07 Georg-Johann Lay <avr@gjlay.de>
12314
12315 PR target/55897
12316 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
12317 (avr_addrspace_t): Add .section_name field.
12318 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
12319 array size.
12320 (avr_addrspace): Same. Initialize .section_name. Remove last
12321 NULL entry. Put __memx into .progmemx.data.
12322 (progmem_section_prefix): Remove.
12323 (avr_asm_init_sections): No need to initialize progmem_section.
12324 (avr_asm_named_section): Use avr_addrspace[].section_name to get
12325 section name prefix.
12326 (avr_asm_select_section): Ditto. And use get_unnamed_section to
12327 retrieve the progmem section.
12328 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
12329 boundary to run over avr_addrspace[].
12330 (avr_register_target_pragmas): Ditto.
12331
656e6f37
JJ
123322013-01-06 Jakub Jelinek <jakub@redhat.com>
12333
12334 * varasm.c (output_constant_def_contents): For asan_protect_global
12335 protected strings, adjust DECL_ALIGN if needed, before testing for
12336 anchored symbols.
12337 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
12338 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
12339 normal decls.
12340 (output_object_block): For asan protected decls, emit asan padding
12341 after their contents.
12342 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
12343 (asan_finish_file): Test it here instead.
12344
6edc3e32
UB
123452013-01-07 Nick Clifton <nickc@redhat.com>
12346 Matthias Klose <doko@debian.org>
12347 Doug Kwan <dougkwan@google.com>
12348 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
12349
12350 PR driver/55470
12351 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
12352
12353 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
12354
12355 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
12356
7b0fe4f4 12357 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
12358
12359 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
12360
2a095093
GJL
123612013-01-07 Georg-Johann Lay <avr@gjlay.de>
12362
f3b503f4 12363 PR target/54461
2a095093
GJL
12364 * doc/install.texi (Cross-Compiler-Specific Options): Document
12365 --with-avrlibc.
12366
383f9b34
TB
123672013-01-07 Tejas Belagod <tejas.belagod@arm.com>
12368
12369 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
12370 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
12371 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
12372 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
12373 vqmovun_high_s64): Fix source operand number and update copyright.
12374
3626621a
RB
123752013-01-07 Richard Biener <rguenther@suse.de>
12376
12377 PR middle-end/55890
12378 * gimple.h (gimple_call_builtin_p): New overload.
12379 * gimple.c (validate_call): New function.
12380 (gimple_call_builtin_p): Likewise.
12381 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
12382 Use gimple_call_builtin_p.
12383 (find_func_clobbers): Likewise.
12384 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
12385 (strlen_optimize_stmt): Likewise.
12386
8b2ea410
JG
123872013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
12388
12389 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
12390 (vld1q_dup_*): Likewise.
12391 (vld1_*): Likewise.
12392 (vld1q_*): Likewise.
12393 (vld1_lane_*): Likewise.
12394 (vld1q_lane_*): Likewise.
12395
9713d329
RB
123962013-01-07 Richard Biener <rguenther@suse.de>
12397
12398 * lto-streamer.h (LTO_minor_version): Bump to 2.
12399
3520f7cc
JG
124002013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
12401
12402 * config/aarch64/aarch64-protos.h
12403 (aarch64_const_double_zero_rtx_p): Rename to...
12404 (aarch64_float_const_zero_rtx_p): ...this.
12405 (aarch64_float_const_representable_p): New.
12406 (aarch64_output_simd_mov_immediate): Likewise.
12407 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
12408 move immediate case.
12409 * config/aarch64/aarch64.c
12410 (aarch64_const_double_zero_rtx_p): Rename to...
12411 (aarch64_float_const_zero_rtx_p): ...this.
12412 (aarch64_print_operand): Allow printing of new constants.
12413 (aarch64_valid_floating_const): New.
12414 (aarch64_legitimate_constant_p): Check for valid floating-point
12415 constants.
12416 (aarch64_simd_valid_immediate): Likewise.
12417 (aarch64_vect_float_const_representable_p): New.
12418 (aarch64_float_const_representable_p): Likewise.
12419 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
12420 (aarch64_output_simd_mov_immediate): New.
12421 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
12422 (*movdf_aarch64): Likewise.
12423 * config/aarch64/constraints.md (Ufc): New.
12424 (Y): call aarch64_float_const_zero_rtx.
12425 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
12426
e167c04d
RB
124272013-01-07 Richard Biener <rguenther@suse.de>
12428
12429 PR tree-optimization/55888
12430 PR tree-optimization/55862
12431 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
12432 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
12433 not if it is contained therein.
12434
0139aaab
GJL
124352013-01-07 Georg-Johann Lay <avr@gjlay.de>
12436
12437 * config/avr/t-avr: Typo.
12438
4a176b23
GJL
124392013-01-07 Georg-Johann Lay <avr@gjlay.de>
12440
12441 PR55243
12442 * config/avr/t-avr: Don't automatically rebuild
12443 $(srcdir)/config/avr/t-multilib
12444 $(srcdir)/config/avr/avr-tables.opt
12445 $(srcdir)/doc/avr-mmcu.texi
12446 (avr-mcus): New phony target to build them on request.
12447 (s-avr-mlib, s-avr-mmcu-texi): Remove.
12448 * avr/avr-mcus.def: Adjust comments.
12449
c7afdc98
UB
124502013-01-07 Uros Bizjak <ubizjak@gmail.com>
12451
12452 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
12453
1ab05c31
RS
124542013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
12455
12456 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
12457
488e3acc
RS
124582013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
12459
12460 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
12461
a89599d2
DE
124622013-01-05 David Edelsohn <dje.gcc@gmail.com>
12463
12464 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
12465 to generate profiling.
12466 * config/rs6000/aix64.h (LIB_SPEC): Same.
12467
70f09188
AP
124682013-01-04 Andrew Pinski <apinski@cavium.com>
12469
12470 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
12471 New function.
12472 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
12473
918d445f
UB
124742013-01-04 Uros Bizjak <ubizjak@gmail.com>
12475
12476 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
12477 unconditionally.
12478 (ix86_expand_move): Ditto.
12479 (ix86_zero_extend_to_Pmode): Ditto.
12480 (ix86_expand_call): Ditto.
12481 (ix86_expand_special_args_builtin): Ditto.
12482 (ix86_expand_builtin): Ditto.
12483
361618ec
RB
124842013-01-04 Richard Biener <rguenther@suse.de>
12485
12486 PR tree-optimization/55862
12487 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
12488 translating them through PHI nodes.
12489
87eab554
MJ
124902013-01-04 Martin Jambor <mjambor@suse.cz>
12491
12492 PR tree-optimization/55755
12493 * tree-sra.c (sra_modify_assign): Do not check that an access has no
12494 children when trying to avoid producing a VIEW_CONVERT_EXPR.
12495
33879b9f
MP
124962013-01-04 Marek Polacek <polacek@redhat.com>
12497
12498 PR middle-end/55859
12499 * opts.c (default_options_optimization): Clarify error message.
12500
3068819a
RB
125012013-01-04 Richard Biener <rguenther@suse.de>
12502
12503 PR middle-end/55863
12504 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
12505 reassociation.
12506
0e4ae794
JDA
125072013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12508
12509 PR target/53789
12510 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
12511 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
12512 references.
0e4ae794 12513
65c88cef
RH
125142013-01-03 Richard Henderson <rth@redhat.com>
12515
12516 * config/i386/i386.c (ix86_expand_move): Always assign to op1
12517 after eliminating TLS symbols.
12518
8ac16127
MG
125192013-01-03 Marc Glisse <marc.glisse@inria.fr>
12520
12521 PR bootstrap/50167
12522 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
12523 * graphite-poly.c (debug_gmp_value): Likewise.
12524
bb664f09
UB
125252013-01-03 Uros Bizjak <ubizjak@gmail.com>
12526
12527 PR target/55712
12528 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
12529 selected code model, define __code_mode_small__, __code_model_medium__,
12530 __code_model_large__, __code_model_32__ or __code_model_kernel__.
12531 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
12532 xchg temporary register with %k. Declare temporary register as
12533 early clobbered.
12534 [__x86_64__]: For medium and large code models, preserve %rbx register.
12535
bcf1ef00
RB
125362013-01-03 Richard Biener <rguenther@suse.de>
12537
0506634a 12538 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
12539 (dump_subscript): Adjust.
12540 (finalize_ddr_dependent): Do not dump redundant info.
12541 (analyze_siv_subscript): Adjust.
12542 (subscript_dependence_tester): Likewise.
12543 (compute_affine_dependence): Likewise.
12544
59fd17e3
RB
125452013-01-03 Richard Biener <rguenther@suse.de>
12546
12547 Revert
12548 2013-01-03 Richard Biener <rguenther@suse.de>
12549
12550 PR tree-optimization/55857
12551 * tree-vect-stmts.c (vectorizable_load): Do not setup
12552 re-alignment for invariant loads.
12553
12554 2013-01-02 Richard Biener <rguenther@suse.de>
12555
12556 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 12557 invariant load do not generate a vector load from the scalar location.
59fd17e3 12558
595c2679
RB
125592013-01-03 Richard Biener <rguenther@suse.de>
12560
12561 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
12562 for not vectorizing.
12563 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
12564 not build INDIRECT_REFs, call get_name once only.
12565 (vect_create_data_ref_ptr): Likewise. Dump base object kind
12566 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
12567
90bb7d7a
RB
125682013-01-03 Richard Biener <rguenther@suse.de>
12569
12570 PR tree-optimization/55857
12571 * tree-vect-stmts.c (vectorizable_load): Do not setup
12572 re-alignment for invariant loads.
12573
f09b77ca
RB
125742013-01-03 Richard Biener <rguenther@suse.de>
12575
12576 PR lto/55848
12577 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
12578 prefer a built-in decl.
12579
3461a16e
JJ
125802013-01-03 Jakub Jelinek <jakub@redhat.com>
12581
df8e2b4f
JJ
12582 * gcc.c (process_command): Update copyright notice dates.
12583 * gcov.c (print_version): Likewise.
12584 * gcov-dump.c (print_version): Likewise.
12585
3461a16e
JJ
12586 PR rtl-optimization/55838
12587 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
12588 iv0.step, iv1.step and step.
12589
8b5546d6
JJ
125902013-01-03 Jakub Jelinek <jakub@redhat.com>
12591 Marc Glisse <marc.glisse@inria.fr>
12592
12593 PR tree-optimization/55832
12594 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
12595 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
12596 integer_{one,zero}_node.
12597
8ab1d2e9
JJ
125982013-01-03 Jakub Jelinek <jakub@redhat.com>
12599
12600 PR debug/54402
12601 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
12602 * var-tracking.c (reverse_op): Don't add reverse ops to
12603 VALUEs that have already
0506634a 12604 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 12605
5b9ad1d4
GP
126062013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
12607
12608 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
12609
e25a6711
TJ
126102013-01-02 Teresa Johnson <tejohnson@google.com>
12611
12612 * dumpfile.c (dump_loc): Print filename with location.
12613 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
12614 new location_t parameter to emit complete unroll message with
12615 new dump framework.
12616 (canonicalize_loop_induction_variables): Compute loops location
12617 and pass to try_unroll_loop_completely.
12618 * loop-unroll.c (report_unroll_peel): New function.
12619 (peel_loops_completely): Use new dump format with location
12620 for main dumpfile message, and invoke report_unroll_peel on success.
12621 (decide_unrolling_and_peeling): Ditto.
12622 (decide_peel_once_rolling): Remove old dumpfile message subsumed
12623 by report_unroll_peel.
12624 (decide_peel_completely): Ditto.
12625 (decide_unroll_constant_iterations): Ditto.
12626 (decide_unroll_runtime_iterations): Ditto.
12627 (decide_peel_simple): Ditto.
12628 (decide_unroll_stupid): Ditto.
12629 * cfgloop.c (get_loop_location): New function.
12630 * cfgloop.h (get_loop_location): Declare.
12631
77878621
ST
126322013-01-02 Sriraman Tallam <tmsriram@google.com>
12633
12634 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
12635 NULL.
12636
9e65d03e
JDA
126372013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12638
12639 PR middle-end/55198
12640 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
12641 BLKmode objects when EXPAND_MEMORY is specified.
12642
6a7da30f
ST
126432013-01-02 Sriraman Tallam <tmsriram@google.com>
12644
12645 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
12646 in loop predicate.
12647 (fold_builtin_cpu): Do not share cpu model decls across statements.
12648
e78167f2
JM
126492013-01-02 Jason Merrill <jason@redhat.com>
12650
12651 PR c++/55804
12652 * tree.c (build_array_type_1): Revert earlier change.
12653
8c075fb4
YZ
126542013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
12655
12656 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
12657 "cortex-a57".
12658 * config/aarch64/aarch64-tune.md: Re-generate.
12659
0682ed3e
RB
126602013-01-02 Richard Biener <rguenther@suse.de>
12661
12662 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 12663 invariant load do not generate a vector load from the scalar location.
0682ed3e 12664
b8f6a302
RB
126652013-01-02 Richard Biener <rguenther@suse.de>
12666
12667 PR bootstrap/55784
12668 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
12669 * configure: Regenerate.
12670
04b80dbb
RS
126712013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
12672
12673 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
12674 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
12675 (expand_builtin_int_roundingfn_2): Keep the original target around
12676 for the fallback case.
12677
635b0b0c
RS
126782013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
12679
12680 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
12681 to be clear for sign changes.
12682
42d57399
JH
126832013-01-01 Jan Hubicka <jh@suse.cz>
12684
12685 * ipa-inline-analysis.c: Fix formatting.
12686
5bb6669d
JJ
126872013-01-01 Jakub Jelinek <jakub@redhat.com>
12688
12689 PR tree-optimization/55831
12690 * tree-vect-loop.c (get_initial_def_for_induction): Use
12691 gsi_after_labels instead of gsi_start_bb.
ad41bd84 12692\f
86a2db33 12693Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
12694
12695Copying and distribution of this file, with or without modification,
12696are permitted in any medium without royalty provided the copyright
12697notice and this notice are preserved.