]> gcc.gnu.org Git - gcc.git/blob - gcc/ChangeLog
re PR tree-optimization/57584 (ice: SSA corruption: Unable to coalesce ssa_names)
[gcc.git] / gcc / ChangeLog
1 2013-06-20 Richard Biener <rguenther@suse.de>
2
3 PR tree-optimization/57584
4 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
5 SSA names into the expanded expression that take part in
6 abnormal coalescing.
7
8 2013-06-19 <singhai@google.com>
9
10 * gcov.c (print_usage): Handle new option.
11 (process_args): Ditto.
12 (get_gcov_intermediate_filename): New function.
13 (output_intermediate_file): New function.
14 (output_gcov_file): New function
15 (generate_results): Handle new option.
16 (release_function): Relase demangled name.
17 (read_graph_file): Handle demangled name.
18 (output_lines): Ditto.
19 * doc/gcov.texi: Document gcov intermediate format.
20
21 2013-06-19 Vladimir Makarov <vmakarov@redhat.com>
22
23 PR bootstrap/57604
24 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
25 (lra_emit_add): Use the functions. Add comment about Y as an
26 address segment.
27
28 2013-06-19 David Edelsohn <dje.gcc@gmail.com>
29
30 PR driver/57652
31 * collect2.c (collect_atexit): New.
32 (collect_exit): Delete.
33 (main): Register collect_atexit with atexit.
34 (collect_wait): Change collect_exit to exit.
35 (do_wait): Same.
36 * collect2.h (collect_exit): Delete.
37 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
38
39 2013-06-19 Wei Mi <wmi@google.com>
40
41 PR rtl-optimization/57518
42 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
43 if regno is used in paradoxical subreg.
44 (update_equiv_regs): Check pdx_subregs[regno] before
45 set a reg to be equivalent with a mem.
46
47 2013-06-19 Matthias Klose <doko@ubuntu.com>
48
49 PR driver/57651
50 * file-find.h (find_a_file): Add a mode parameter.
51 * file-find.c (find_a_file): Likewise.
52 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
53 with X_OK for the executables.
54 * collect2.c (main): Call find_a_file with X_OK.
55
56 2013-06-19 Steve Ellcey <sellcey@mips.com>
57
58 PR target/56942
59 * config/mips/mips.md (casesi_internal_mips16_<mode>):
60 Use NEXT_INSN instead of next_real_insn.
61
62 2013-06-19 Jan Hubicka <jh@suse.cz>
63
64 * cgraph.h (const_value_known_p): Replace by ...
65 (ctor_for_folding): .. this one.
66 * cgraphunit.c (process_function_and_variable_attributes): Use it.
67 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
68 * expr.c (expand_expr_real_1): Likewise.
69 (string_constant): Likewise.
70 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
71 * ipa.c (process_references): Likewise.
72 (symtab_remove_unreachable_nodes): Likewise.
73 * ipa-inline-analysis.c (param_change_prob): Likewise.
74 * gimple-fold.c (canonicalize_constructor_val): Likewise.
75 (get_base_constructor): Likwise.
76 * varpool.c (varpool_remove_node): Likewise.
77 (varpool_remove_initializer): LIkewise.
78 (dump_varpool_node): LIkwise.
79 (const_value_known_p): Rewrite to ...
80 (ctor_for_folding): ... this one.
81
82 2013-06-19 Jakub Jelinek <jakub@redhat.com>
83
84 PR driver/57651
85 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
86 PERSONALITY in $PATH derived prefixes.
87
88 2013-06-19 Jeff Law <law@redhat.com>
89
90 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
91 in comment.
92
93 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
94 (simplify_bitwise_binary): Use it to simpify certain binary ops on
95 booleans.
96
97 2013-06-19 Sofiane Naci <sofiane.naci@arm.com>
98
99 * config/arm/vfp.md: Move VFP instruction classification documentation
100 to ...
101 * config/arm/arm.md: ... here. Update instruction classification
102 documentation.
103
104 2013-06-19 Richard Earnshaw <rearnsha@arm.com>
105
106 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
107 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
108 pattern. Use more efficient sequences on ARMv5 and Thumb2.
109
110 2013-06-19 Steven Bosscher <steven@gcc.gnu.org>
111
112 PR target/57609
113 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
114 with NEXT_INSN. Use tablejump_p to check for jump table data
115 insns.
116
117 2013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
118
119 PR c++/56544
120 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
121 that now in C++ the value is correct per the C++ standards.
122
123 2013-06-19 Richard Biener <rguenther@suse.de>
124
125 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
126 for global context.
127
128 2013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
129
130 Revert:
131 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
132
133 PR target/57609
134 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
135 with next_active_insn.
136
137 2013-06-18 Sriraman Tallam <tmsriram@google.com>
138
139 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
140 functions are inlined during failures to flag an error.
141 * tree-inline.c (expand_call_inline): Allow the error to be flagged
142 in early inline pass.
143
144 2013-06-18 H.J. Lu <hongjiu.lu@intel.com>
145
146 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
147 in comments.
148
149 2013-06-18 Julian Brown <julian@codesourcery.com>
150
151 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
152 Permit virtual register pre-reload if !strict.
153 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
154 change.
155 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
156 prototype.
157 * config/arm/neon.md (movmisalign<mode>): Use
158 neon_perm_struct_or_reg_operand instead of
159 neon_struct_or_register_operand.
160 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
161 neon_permissive_struct_operand instead of neon_struct_operand.
162 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
163 neon_vector_mem_operand.
164 * config/arm/predicates.md (neon_struct_operand): Adjust call to
165 neon_vector_mem_operand.
166 (neon_permissive_struct_operand): New.
167 (neon_struct_or_register_operand): Rename to...
168 (neon_perm_struct_or_reg_operand): This. Adjust call to
169 neon_vector_mem_operand.
170
171 2013-06-18 Richard Biener <rguenther@suse.de>
172
173 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
174 * lto-streamer.h: Include pointer-set.h.
175 (struct lto_decl_slot): Remove.
176 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
177 Remove next_index entry.
178 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
179 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
180 (lto_init_tree_ref_encoder): Adjust.
181 (lto_destroy_tree_ref_encoder): Likewise.
182 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
183 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
184 (lto_output_decl_index): Adjust.
185 (lto_new_out_decl_state): Likewise.
186 (lto_record_function_out_decl_state): Likewise.
187 * lto-streamer-out.c (copy_function): Likewise.
188
189 2013-06-18 Richard Biener <rguenther@suse.de>
190
191 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
192 * cgraphunit.c: Include cfgloop.h.
193 (init_lowered_empty_function): Initialize the loop tree.
194 (assemble_thunk): Insert new BBs into loops.
195
196 2013-06-18 Richard Biener <rguenther@suse.de>
197
198 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
199 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
200 the map from cache entry to cache index optional.
201 (streamer_tree_cache_replace_tree): Adjust accordingly.
202 (streamer_tree_cache_append): Likewise.
203 (streamer_tree_cache_delete): Likewise.
204 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
205 streamer cache map from cache entry to cache index.
206 * lto-streamer-out.c (create_output_block): Adjust.
207
208 2013-06-18 Sofiane Naci <sofiane.naci@arm.com>
209
210 * config/arm/arm.md (attribute "insn"): Move multiplication and
211 division attributes to...
212 (attribute "type"): ... here. Remove mult.
213 (attribute "mul32"): New attribute.
214 (attribute "mul64"): Add umaal.
215 (*arm_mulsi3): Update attributes.
216 (*arm_mulsi3_v6): Likewise.
217 (*thumb_mulsi3): Likewise.
218 (*thumb_mulsi3_v6): Likewise.
219 (*mulsi3_compare0): Likewise.
220 (*mulsi3_compare0_v6): Likewise.
221 (*mulsi_compare0_scratch): Likewise.
222 (*mulsi_compare0_scratch_v6): Likewise.
223 (*mulsi3addsi): Likewise.
224 (*mulsi3addsi_v6): Likewise.
225 (*mulsi3addsi_compare0): Likewise.
226 (*mulsi3addsi_compare0_v6): Likewise.
227 (*mulsi3addsi_compare0_scratch): Likewise.
228 (*mulsi3addsi_compare0_scratch_v6): Likewise.
229 (*mulsi3subsi): Likewise.
230 (*mulsidi3adddi): Likewise.
231 (*mulsi3addsi_v6): Likewise.
232 (*mulsidi3adddi_v6): Likewise.
233 (*mulsidi3_nov6): Likewise.
234 (*mulsidi3_v6): Likewise.
235 (*umulsidi3_nov6): Likewise.
236 (*umulsidi3_v6): Likewise.
237 (*umulsidi3adddi): Likewise.
238 (*umulsidi3adddi_v6): Likewise.
239 (*smulsi3_highpart_nov6): Likewise.
240 (*smulsi3_highpart_v6): Likewise.
241 (*umulsi3_highpart_nov6): Likewise.
242 (*umulsi3_highpart_v6): Likewise.
243 (mulhisi3): Likewise.
244 (*mulhisi3tb): Likewise.
245 (*mulhisi3bt): Likewise.
246 (*mulhisi3tt): Likewise.
247 (maddhisi4): Likewise.
248 (*maddhisi4tb): Likewise.
249 (*maddhisi4tt): Likewise.
250 (maddhidi4): Likewise.
251 (*maddhidi4tb): Likewise.
252 (*maddhidi4tt): Likewise.
253 (divsi3): Likewise.
254 (udivsi3): Likewise.
255 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
256 (thumb2_mulsi_short_compare0): Likewise.
257 (thumb2_mulsi_short_compare0_scratch): Likewise.
258 * config/arm/arm1020e.md (1020mult1): Update attribute change.
259 (1020mult2): Likewise.
260 (1020mult3): Likewise.
261 (1020mult4): Likewise.
262 (1020mult5): Likewise.
263 (1020mult6): Likewise.
264 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
265 change.
266 (cortex_a15_mult64): Likewise.
267 (cortex_a15_sdiv): Likewise.
268 (cortex_a15_udiv): Likewise.
269 * config/arm/arm1026ejs.md (mult1): Update attribute change.
270 (mult2): Likewise.
271 (mult3): Likewise.
272 (mult4): Likewise.
273 (mult5): Likewise.
274 (mult6): Likewise.
275 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
276 (pj4_ir_div): Likewise.
277 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
278 (11_mult2): Likewise.
279 (11_mult3): Likewise.
280 (11_mult4): Likewise.
281 (11_mult5): Likewise.
282 (11_mult6): Likewise.
283 (11_mult7): Likewise.
284 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
285 (cortex_a8_mla): Likewise.
286 (cortex_a8_mull): Likewise.
287 (cortex_a8_smulwy): Likewise.
288 (cortex_a8_smlald): Likewise.
289 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
290 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
291 (cortex_r4_mul_3): Likewise.
292 (cortex_r4_mla_4): Likewise.
293 (cortex_r4_mla_3): Likewise.
294 (cortex_r4_smlald): Likewise.
295 (cortex_r4_mull): Likewise.
296 (cortex_r4_sdiv): Likewise.
297 (cortex_r4_udiv): Likewise.
298 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
299 (cortex_a7_idiv): Likewise.
300 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
301 (9_mult2): Likewise.
302 (9_mult3): Likewise.
303 (9_mult4): Likewise.
304 (9_mult5): Likewise.
305 (9_mult6): Likewise.
306 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
307 (cortex_a53_sdiv): Likewise.
308 (cortex_a53_udiv): Likewise.
309 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
310 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
311 (mp626_mult2): Likewise.
312 (mp626_mult3): Likewise.
313 (mp626_mult4): Likewise.
314 * config/arm/fa526.md (526_mult1): Update attribute change.
315 (526_mult2): Likewise.
316 * config/arm/arm-generic.md (mult): Update attribute change.
317 (mult_ldsched_strongarm): Likewise.
318 (mult_ldsched): Likewise.
319 (multi_cycle): Likewise.
320 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
321 * config/arm/fa606te.md (606te_mult1): Update attribute change.
322 (606te_mult2): Likewise.
323 (606te_mult3): Likewise.
324 (606te_mult4): Likewise.
325 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
326 (cortex_a9_mac16): Likewise.
327 (cortex_a9_multiply): Likewise.
328 (cortex_a9_mac): Likewise.
329 (cortex_a9_multiply_long): Likewise.
330 * config/arm/fa626te.md (626te_mult1): Update attribute change.
331 (626te_mult2): Likewise.
332 (626te_mult3): Likewise.
333 (626te_mult4): Likewise.
334
335 2013-06-18 Richard Biener <rguenther@suse.de>
336
337 PR lto/57334
338 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
339
340 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
341
342 PR target/57609
343 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
344 with next_active_insn.
345
346 2013-06-18 Alan Modra <amodra@gmail.com>
347
348 * config/rs6000/rs6000.h (enum data_align): New.
349 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
350 (DATA_ABI_ALIGNMENT): Define.
351 (CONSTANT_ALIGNMENT): Correct comment.
352 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
353 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
354
355 2013-06-17 David Malcolm <dmalcolm@redhat.com>
356
357 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
358 ATTRIBUTE_UNUSED marking.
359
360 2013-06-17 Sofiane Naci <sofiane.naci@arm.com>
361
362 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
363 alternative and update.
364 (aarch64_dup_lanedi): Delete.
365 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
366 * config/aarch64/aarch64-simd-builtins.def: Update.
367
368 2013-06-17 Richard Biener <rguenther@suse.de>
369
370 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
371 (lto_input_scc): Declare.
372 (lto_input_tree_1): Likewise.
373 (struct lto_stats_d): Add num_tree_bodies_output and
374 num_pickle_refs_output.
375 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
376 (lto_read_tree_1): Split out from ...
377 (lto_read_tree): ... this.
378 (lto_input_scc): New function.
379 (lto_input_tree_1): Split out from ...
380 (lto_input_tree): ... this. Handle LTO_tree_scc.
381 (lto_data_in_create): Create the streamer cache without hashes.
382 * lto-streamer-out.c (create_output_block): Create the streamer
383 cache with hashes when not doing WPA.
384 (lto_write_tree_1): Split out from ...
385 (lto_write_tree): ... this.
386 (get_symbol_initial_value): New function.
387 (lto_output_tree_1): Split out from ...
388 (lto_output_tree): ... this. Write trees as series of SCCs
389 using a DFS walk via DFS_write_tree.
390 (struct sccs, struct scc_entry): New types.
391 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
392 (DFS_write_tree_body): New function.
393 (DFS_write_tree): Likewise.
394 (hash_tree): Likewise.
395 (scc_entry_compare): Likewise.
396 (hash_scc): Likewise.
397 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
398 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
399 TREE_CHAIN as regular reference.
400 (streamer_read_integer_cst): Remove.
401 (streamer_get_pickled_tree): Adjust.
402 * tree-streamer-out.c (streamer_write_chain): Disable streaming
403 of DECL_EXTERNALs in BLOCK_VARS for now.
404 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
405 reference.
406 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
407 Add hash value argument and record that if hashes are recorded
408 in the cache.
409 (streamer_tree_cache_insert_1): Adjust.
410 (streamer_tree_cache_insert): Likewise.
411 (streamer_tree_cache_insert_at): Rename to ...
412 (streamer_tree_cache_replace_tree): ... this and adjust.
413 (streamer_tree_cache_append): Adjust.
414 (record_common_node): Likewise.
415 (streamer_tree_cache_create): Add argument whether to
416 record hash values together with trees.
417 (streamer_tree_cache_delete): Adjust.
418 * tree-streamer.h (struct streamer_tree_cache_d): Add
419 vector of hashes.
420 (streamer_read_integer_cst): Remove.
421 (streamer_tree_cache_insert): Adjust.
422 (streamer_tree_cache_append): Likewise.
423 (streamer_tree_cache_insert_at): Rename to ...
424 (streamer_tree_cache_replace_tree): ... this and adjust.
425 (streamer_tree_cache_create): Add argument whether to record hashes.
426 (streamer_tree_cache_get): Rename to ...
427 (streamer_tree_cache_get_tree): ... this.
428 (streamer_tree_cache_get_hash): New function.
429 * tree.c (cache_integer_cst): New function.
430 * tree.h (cache_integer_cst): Declare.
431 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
432 * lto-symtab.c (lto_varpool_replace_node): Only release
433 DECL_INITIAL of non-prevailing decls.
434 * varpool.c (varpool_remove_initializer): Do not release
435 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
436
437 2013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
438
439 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
440 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
441 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
442 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
443 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
444 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
445 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
446 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
447 instead of TARGET_64BIT.
448 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
449 Require ISA_HAS_<D>DIV.
450
451 2013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
452
453 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
454 (mips*-*-linux*): Move default with_llsc setting to where other
455 defaults are set.
456 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
457 with_arch block.
458 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
459 Likewise. Remove default with_tune setting. Move default float
460 setting to its own block. Handle with_llsc in the same block as above.
461
462 2013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
463
464 PR rtl-optimization/57425
465 PR rtl-optimization/57569
466 * alias.c (write_dependence_p): Add new parameters mem_mode,
467 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
468 Changed all callers.
469 (canon_anti_dependence): New function.
470 * cse.c (check_dependence): Use canon_anti_dependence.
471 * cselib.c (cselib_invalidate_mem): Likewise.
472 * rtl.h (canon_anti_dependence): Declare.
473
474 2013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
475
476 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
477 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
478 ".set mips3" for 64-bit targets.
479
480 2013-06-15 Dehao Chen <dehao@google.com>
481
482 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
483 * gimple-low.c (gimple_check_call_matching_types): Likewise.
484 (gimple_check_call_args): Likewise.
485 * value-prof.c (check_ic_target): Likewise.
486 * ipa-inline.c (early_inliner): Likewise.
487 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
488 * cgraph.c (cgraph_create_edge_1): Likewise.
489 (cgraph_make_edge_direct): Likewise.
490
491 2013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
492
493 PR target/57615
494 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
495 rs6000_output_move_128bit to handle emitting quad memory
496 operations. Set attribute length to 8 bytes.
497
498 2013-06-14 Vidya Praveen <vidyapraveen@arm.com>
499
500 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
501 New pattern.
502 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
503 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
504 (aarch64_<su>mlsl<mode>): Likewise.
505
506 2013-06-14 Mike Stump <mikestump@comcast.net>
507
508 * Makefile.in (TARGET_H): Add insn-codes.h.
509
510 2013-06-14 Alan Modra <amodra@gmail.com>
511
512 PR middle-end/57134
513 PR middle-end/57586
514 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
515 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
516 bitfield expansion when EXPAND_MEMORY.
517 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
518
519 2013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
520
521 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
522 test for clearing quad memory on 32-bit later.
523
524 2013-06-13 Marc Glisse <marc.glisse@inria.fr>
525
526 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
527 (fold_negate_expr): Likewise.
528 (fold_real_zero_addition_p): Handle vectors.
529 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
530
531 2013-06-14 Alan Modra <amodra@gmail.com>
532
533 * varasm.c (force_const_mem): Revert 2013-06-07 change.
534
535 2013-06-13 Jan Hubicka <jh@suse.cz>
536
537 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
538 Local comdats are not externally visible.
539 * symtab.c (dump_symtab_base): Dump externally visible.
540 (verify_symtab_base): Verify back links in the symtab hash.
541
542 2013-06-13 Bin Cheng <bin.cheng@arm.com>
543
544 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
545 CONVERT_EXPR as equal nodes.
546
547 2013-06-13 Bin Cheng <bin.cheng@arm.com>
548
549 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
550
551 2013-06-13 Marc Glisse <marc.glisse@inria.fr>
552
553 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
554 Generalize to complex and vector.
555 * tree.c (build_all_ones_cst): New function.
556 * tree.h (build_all_ones_cst): Declare it.
557
558 2013-06-13 Alan Modra <amodra@gmail.com>
559
560 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
561 * config/rs6000/rs6000.md (signbittf2): New insn.
562 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
563 (abstf2_internal, cmptf_internal2): Likewise.
564 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
565
566 2013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
567 Pat Haugen <pthaugen@us.ibm.com>
568 Peter Bergner <bergner@vnet.ibm.com>
569
570 * config/rs6000/rs6000.c (emit_load_locked): Add support for
571 power8 byte, half-word, and quad-word atomic instructions.
572 (emit_store_conditional): Likewise.
573 (rs6000_expand_atomic_compare_and_swap): Likewise.
574 (rs6000_expand_atomic_op): Likewise.
575
576 * config/rs6000/sync.md (larx): Add new modes for power8.
577 (stcx): Likewise.
578 (AINT): New mode iterator to include TImode as well as normal
579 integer modes on power8.
580 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
581 that VSX registers are not considered. Use AINT mode iterator
582 instead of INT1 to allow inclusion of quad word atomic operations
583 on power8.
584 (load_locked<mode>): Likewise.
585 (store_conditional<mode>): Likewise.
586 (atomic_compare_and_swap<mode>): Likewise.
587 (atomic_exchange<mode>): Likewise.
588 (atomic_nand<mode>): Likewise.
589 (atomic_fetch_<fetchop_name><mode>): Likewise.
590 (atomic_nand_fetch<mode>): Likewise.
591 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
592 each type.
593 (ATOMIC): On power8, add QImode, HImode modes.
594 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
595 modes that promote to SImode.
596 (load_lockedti): Convert TImode arguments to PTImode, so that we
597 get a guaranteed even/odd register pair.
598 (load_lockedpti): Likewise.
599 (store_conditionalti): Likewise.
600 (store_conditionalpti): Likewise.
601
602 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
603 atomic load/store instructions.
604 (HSI): Likewise.
605
606 2013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
607
608 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
609 loads.
610 (insn_count): New attribute, with most cases extracted from...
611 (length): ...here. Redefine most cases in terms of insn_count.
612 (single_insn): Delete.
613 (can_delay): Use insn_count to check for single instructions.
614 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
615 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
616 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
617 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
618 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
619 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
620 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
621 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
622 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
623 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
624 rather than "length".
625 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
626 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
627 Use "insn_count" rather than "length".
628 * config/mips/mips-dsp.md
629 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
630 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
631 length attributes.
632
633 2013-06-12 Marc Glisse <marc.glisse@inria.fr>
634
635 PR tree-optimization/57361
636 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
637
638 2013-06-12 Sofiane Naci <sofiane.naci@arm.com>
639
640 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
641 to split.
642 (aarch64_simd_combine<mode>): New instruction expansion.
643 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
644 function prototype.
645 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
646 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
647
648 2013-06-12 Jan Hubicka <jh@suse.cz>
649
650 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
651 decl has when in streaming stage.
652 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
653 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
654
655 2013-06-12 Roland Stigge <stigge@antcom.de>
656
657 PR target/57578
658 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
659
660 2013-06-12 Jakub Jelinek <jakub@redhat.com>
661
662 PR tree-optimization/57537
663 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
664 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
665
666 2013-06-12 Richard Biener <rguenther@suse.de>
667
668 * data-streamer.h (streamer_write_char_stream): CSE
669 obs->current_pointer.
670 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
671 streamer_write_char_stream manually and optimize the resulting loop.
672 (streamer_write_hwi_stream): Likewise.
673
674 2013-06-12 Jan Hubicka <jh@suse.cz>
675
676 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
677 * cgraph.h (varpool_create_empty_node): Declare.
678 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
679 duplicated nodes.
680 * symtab.c (symtab_unregister_node): Be lax about missin entries
681 in node hash.
682 (symtab_get_node): Update comment.
683 * varpool.c (varpool_create_empty_node): Break out from ...
684 (varpool_node_for_decl): ... here.
685 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
686
687 2013-06-12 Eric Botcazou <ebotcazou@adacore.com>
688
689 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
690 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
691 part. Use straight-line flow at the end.
692 <COMPONENT_REF>: Remove superfluous else.
693 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
694
695 2013-06-12 Jakub Jelinek <jakub@redhat.com>
696
697 PR target/56564
698 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
699 target hook even for !TREE_PUBLIC decls. If no resolution info
700 is available, return false for common and external decls.
701
702 2013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
703
704 * config/rl78/constraints.md (U): New constraint.
705 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
706 valloc attribute.
707
708 2013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
709
710 PR target/57589
711 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
712 to allow returning address to AT_PLATFORM name.
713
714 2013-06-11 Jan Hubicka <jh@suse.cz>
715
716 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
717 * cgraph.h (symtab_node_base): Add weakref flag.
718 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
719 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
720 (output_weakrefs): Use weakref flag.
721 * fold-const.c (simple_operand_p): Handle WEAK.
722 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
723 * ipa.c (varpool_externally_visible_p): Drop weakref.
724 (function_and_variable_visibility): Update comment; fix weakref
725 sanity checks; do not clear DECL_WEAK on them.
726 * lto-cgraph.c (lto_output_node): update.
727 (lto_output_varpool_node): Update.
728 (input_overwrite_node): Update.
729 (input_node): Update.
730 (input_varpool_node): Update.
731 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
732 (lto_symtab_merge_symbols): Add sanity check.
733 (lto_symtab_prevailing_decl): Do not special case weakrefs.
734 * passes.c (rest_of_decl_compilation): Set static flag, too.
735 * symtab.c (dump_symtab_base): Dump weakref.
736 (verify_symtab_base): Sanity check weakrefs.
737 (symtab_make_decl_local): Remove duplicated code.
738 (symtab_alias_ultimate_target): Simplify.
739 * varpool.c (varpool_create_variable_alias): Set weakref flag.
740
741 2013-06-11 DJ Delorie <dj@redhat.com>
742
743 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
744 (rl78_unwind_word_mode): New.
745
746 2013-06-11 David Malcolm <dmalcolm@redhat.com>
747
748 * final.c (debug_prefix_maps): Make static.
749
750 2013-06-11 David Malcolm <dmalcolm@redhat.com>
751
752 * function.c (initial_trampoline): Remove stray copy.
753
754 2013-06-11 Sofiane Naci <sofiane.naci@arm.com>
755
756 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
757
758 2013-06-11 Martin Jambor <mjambor@suse.cz>
759
760 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
761 within bounds at the beginning of the function.
762
763 2013-06-11 Alan Modra <amodra@gmail.com>
764
765 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
766 reporting.
767 (get_named_section): Don't NULL !DECL_P decl.
768
769 2013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
770
771 * doc/invoke.texi (core-avx2): Document.
772 (slm): Likewise.
773 (atom): Updated with MOVBE.
774
775 2013-06-11 Richard Biener <rguenther@suse.de>
776
777 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
778
779 2013-06-11 Anton Blanchard <anton@samba.org>
780
781 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
782 correct shift value in little-endian mode.
783
784 2013-06-11 Jakub Jelinek <jakub@redhat.com>
785
786 PR target/56564
787 * varasm.c (get_variable_align): Move #endif to the right place.
788
789 2013-06-10 Cary Coutant <ccoutant@google.com>
790
791 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
792 for hash so that hash table traversal order is deterministic.
793
794 2013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
795 Pat Haugen <pthaugen@us.ibm.com>
796 Peter Bergner <bergner@vnet.ibm.com>
797
798 * config/rs6000/vector.md (GPR move splitter): Do not split moves
799 of vectors in GPRS if they are direct moves or quad word load or
800 store moves.
801
802 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
803 declaration.
804 (direct_move_p): Likewise.
805 (quad_load_store_p): Likewise.
806
807 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
808 classes into bins based on the physical register type.
809 (reg_class_to_reg_type): Likewise.
810 (IS_STD_REG_TYPE): Likewise.
811 (IS_FP_VECT_REG_TYPE): Likewise.
812 (reload_fpr_gpr): Arrays to determine what insn to use if we can
813 use direct move instructions.
814 (reload_gpr_vsx): Likewise.
815 (reload_vsx_gpr): Likewise.
816 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
817 information that is a simplification of register classes. Also
818 precalculate direct move reload helpers.
819 (direct_move_p): New function to return true if the operation can
820 be done as a direct move instruciton.
821 (quad_load_store_p): New function to return true if the operation
822 is a quad memory operation.
823 (rs6000_legitimize_address): If quad memory, only allow register
824 indirect for TImode addresses.
825 (rs6000_legitimate_address_p): Likewise.
826 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
827 (rs6000_reload_register_type): Likewise.
828 (register_to_reg_type): Return register type.
829 (rs6000_secondary_reload_simple_move): New helper function for
830 secondary reload and secondary memory needed to identify anything
831 that is a simple move, and does not need reloading.
832 (rs6000_secondary_reload_direct_move): New helper function for
833 secondary reload to identify cases that can be done with several
834 instructions via the direct move instructions.
835 (rs6000_secondary_reload_move): New helper function for secondary
836 reload to identify moves between register types that can be done.
837 (rs6000_secondary_reload): Add support for quad memory operations
838 and for direct move.
839 (rs6000_secondary_memory_needed): Likewise.
840 (rs6000_debug_secondary_memory_needed): Change argument names.
841 (rs6000_output_move_128bit): New function to return the move to
842 use for 128-bit moves, including knowing about the various
843 limitations of quad memory operations.
844
845 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
846 memory operations. call rs6000_output_move_128bit for the actual
847 instruciton(s) to generate.
848 (vsx_movti_64bit): Likewise.
849
850 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
851 (UNSPEC_P8V_MTVSRWZ): Likewise.
852 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
853 (UNSPEC_P8V_MTVSRD): Likewise.
854 (UNSPEC_P8V_XXPERMDI): Likewise.
855 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
856 (UNSPEC_FUSION_GPR): Likewise.
857 (FMOVE128_GPR): New iterator for direct move.
858 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
859 (f32_sv): Likewise.
860 (f32_dm): Likewise.
861 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
862 loads and direct move instructions.
863 (zero_extendsidi2_lfiwzx): Likewise.
864 (extendsidi2_lfiwax): Likewise.
865 (extendsidi2_nocell): Likewise.
866 (floatsi<mode>2_lfiwax): Likewise.
867 (lfiwax): Likewise.
868 (floatunssi<mode>2_lfiwzx): Likewise.
869 (lfiwzx): Likewise.
870 (fix_trunc<mode>_stfiwx): Likewise.
871 (fixuns_trunc<mode>_stfiwx): Likewise.
872 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
873 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
874 (parity<mode>2_cmpb): Set length/type attr.
875 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
876 for 'mr.' to fast_compare.
877 (bpermd_<mode>): Change type attr to popcnt.
878 (p8_fmrgow_<mode>): New insns for power8 direct move support.
879 (p8_mtvsrwz_1): Likewise.
880 (p8_mtvsrwz_2): Likewise.
881 (reload_fpr_from_gpr<mode>): Likewise.
882 (p8_mtvsrd_1): Likewise.
883 (p8_mtvsrd_2): Likewise.
884 (p8_xxpermdi_<mode>): Likewise.
885 (reload_vsx_from_gpr<mode>): Likewise.
886 (reload_vsx_from_gprsf): Likewise.
887 (p8_mfvsrd_3_<mode>): LIkewise.
888 (reload_gpr_from_vsx<mode>): Likewise.
889 (reload_gpr_from_vsxsf): Likewise.
890 (p8_mfvsrd_4_disf): Likewise.
891 (multi-word GPR splits): Do not split direct moves or quad memory
892 operations.
893
894 2013-06-10 David Malcolm <dmalcolm@redhat.com>
895
896 * tree-into-ssa.c (interesting_blocks): Make static.
897
898 2013-06-10 Jakub Jelinek <jakub@redhat.com>
899
900 PR target/56564
901 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
902 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
903 Use DATA_ABI_ALIGNMENT for that case instead if defined.
904 (get_variable_align): New function.
905 (get_variable_section, emit_bss, emit_common,
906 assemble_variable_contents, place_block_symbol): Use
907 get_variable_align instead of DECL_ALIGN.
908 (assemble_noswitch_variable): Add align argument, use it
909 instead of DECL_ALIGN.
910 (assemble_variable): Adjust caller. Use get_variable_align
911 instead of DECL_ALIGN.
912 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
913 caller.
914 (DATA_ABI_ALIGNMENT): Define.
915 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
916 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
917 opt is false, only return the psABI mandated alignment increase.
918 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
919 (DATA_ABI_ALIGNMENT): ... this.
920 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
921 (DATA_ABI_ALIGNMENT): ... this.
922 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
923 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
924 (DATA_ABI_ALIGNMENT): ... this.
925 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
926 * doc/tm.texi: Regenerated.
927
928 2013-06-10 Uros Bizjak <ubizjak@gmail.com>
929
930 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
931 cmp_code to construct REG_EQUAL note.
932
933 2013-06-09 Jakub Jelinek <jakub@redhat.com>
934
935 PR target/57568
936 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
937 that operands[2] doesn't overlap with operands[0].
938
939 2013-06-09 David Edelsohn <dje.gcc@gmail.com>
940 Jan Hubicka <jh@suse.cz>
941
942 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
943 hack to mark symbols as used.
944
945 2013-06-08 Vladimir Makarov <vmakarov@redhat.com>
946
947 PR rtl-optimization/57559
948 * lra-constraints.c (process_alt_operands): Don't discourage
949 memory with known offset for offsetable memory constraint.
950 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
951
952 2013-06-08 Eric Botcazou <ebotcazou@adacore.com>
953
954 * varasm.c (struct oc_local_state): Reorder fields.
955 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
956 and adjust accordingly.
957 (output_constructor): Reorder initialization code and adjust call to
958 output_constructor_bitfield.
959
960 2013-06-07 Jan Hubicka <jh@suse.cz>
961
962 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
963
964 2013-06-07 David Malcolm <dmalcolm@redhat.com>
965
966 * tree-object-size.c (unknown): Make const.
967
968 2013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
969
970 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
971 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
972 for last alternative in the cpu_facility attribute.
973
974 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
975
976 PR target/56315
977 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
978 (xordi3): Change operand 2 constraint to arm_xordi_operand.
979 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
980 * config/arm/constraints.md (Dg): New constraint.
981 * config/arm/neon.md (xordi3_neon): Remove.
982 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
983 * config/arm/predicates.md (arm_xordi_operand): New predicate.
984
985 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
986
987 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
988 Clean up alternatives.
989
990 2013-06-07 Alan Modra <amodra@gmail.com>
991
992 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
993 va_list_gpr_size.
994
995 2013-06-07 Alan Modra <amodra@gmail.com>
996
997 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
998
999 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1000
1001 * config/arm/constraints.md (Df): New constraint.
1002 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
1003 Correct length attribute for last two alternatives.
1004
1005 2013-06-07 Alan Modra <amodra@gmail.com>
1006
1007 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
1008 override user -mfp-in-toc.
1009 (offsettable_ok_by_alignment): Consider just the current access
1010 rather than the whole object, unless BLKmode. Handle
1011 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
1012 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
1013 for -mcmodel=medium.
1014 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
1015 override user -mfp-in-toc or -msum-in-toc. Default to
1016 -mno-fp-in-toc for -mcmodel=medium.
1017
1018 2013-06-06 DJ Delorie <dj@redhat.com>
1019
1020 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
1021 TARGET_VALID_POINTER_MODE.
1022
1023 2013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
1024 Pat Haugen <pthaugen@us.ibm.com>
1025 Peter Bergner <bergner@vnet.ibm.com>
1026
1027 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
1028 Document new power8 builtins.
1029
1030 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
1031 condition code register, to allow 128-bit logical operations to be
1032 done in the VSX or GPR registers.
1033 (nor<mode>3): Use the canonical form for nor.
1034 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
1035 vclz*, and vpopcnt* vector instructions.
1036 (nand<mode>3): Likewise.
1037 (orc<mode>3): Likewise.
1038 (clz<mode>2): LIkewise.
1039 (popcount<mode>2): Likewise.
1040
1041 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
1042 that only the GPRs are recognized.
1043
1044 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1045 support for new power8 builtins.
1046
1047 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
1048 builtin functions.
1049 (xscvdpspn): Likewise.
1050 (vclz): Likewise.
1051 (vclzb): Likewise.
1052 (vclzh): Likewise.
1053 (vclzw): Likewise.
1054 (vclzd): Likewise.
1055 (vpopcnt): Likewise.
1056 (vpopcntb): Likewise.
1057 (vpopcnth): Likewise.
1058 (vpopcntw): Likewise.
1059 (vpopcntd): Likewise.
1060 (vgbbd): Likewise.
1061 (vmrgew): Likewise.
1062 (vmrgow): Likewise.
1063 (eqv): Likewise.
1064 (eqv_v16qi3): Likewise.
1065 (eqv_v8hi3): Likewise.
1066 (eqv_v4si3): Likewise.
1067 (eqv_v2di3): Likewise.
1068 (eqv_v4sf3): Likewise.
1069 (eqv_v2df3): Likewise.
1070 (nand): Likewise.
1071 (nand_v16qi3): Likewise.
1072 (nand_v8hi3): Likewise.
1073 (nand_v4si3): Likewise.
1074 (nand_v2di3): Likewise.
1075 (nand_v4sf3): Likewise.
1076 (nand_v2df3): Likewise.
1077 (orc): Likewise.
1078 (orc_v16qi3): Likewise.
1079 (orc_v8hi3): Likewise.
1080 (orc_v4si3): Likewise.
1081 (orc_v2di3): Likewise.
1082 (orc_v4sf3): Likewise.
1083 (orc_v2df3): Likewise.
1084
1085 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
1086 allow power8 quad mode in 64-bit.
1087 (rs6000_builtin_vectorized_function): Add support to vectorize
1088 ISA 2.07 count leading zeros, population count builtins.
1089 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
1090 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
1091 (builtin_function_type): Add vgbbd builtin function which takes an
1092 unsigned argument.
1093 (altivec_expand_vec_perm_const): Add support for new power8 merge
1094 instructions.
1095
1096 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
1097 that does not include TImdoe for use with 32-bit.
1098 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
1099 instructions.
1100 (UNSPEC_VSX_CVDPSPN): Likewise.
1101 (vsx_xscvdpspn): Likewise.
1102 (vsx_xscvspdpn): Likewise.
1103 (vsx_xscvdpspn_scalar): Likewise.
1104 (vsx_xscvspdpn_directmove): Likewise.
1105 (vsx_and<mode>3): Split logical operations into 32-bit and
1106 64-bit. Add support to do logical operations on TImode as well as
1107 VSX vector types. Allow logical operations to be done in either
1108 VSX registers or in general purpose registers in 64-bit mode. Add
1109 splitters if GPRs were used. For AND, add clobber of CCmode to
1110 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
1111 encoding.
1112 (vsx_and<mode>3_32bit): Likewise.
1113 (vsx_and<mode>3_64bit): Likewise.
1114 (vsx_ior<mode>3): Likewise.
1115 (vsx_ior<mode>3_32bit): Likewise.
1116 (vsx_ior<mode>3_64bit): Likewise.
1117 (vsx_xor<mode>3): Likewise.
1118 (vsx_xor<mode>3_32bit): Likewise.
1119 (vsx_xor<mode>3_64bit): Likewise.
1120 (vsx_one_cmpl<mode>2): Likewise.
1121 (vsx_one_cmpl<mode>2_32bit): Likewise.
1122 (vsx_one_cmpl<mode>2_64bit): Likewise.
1123 (vsx_nor<mode>3): Likewise.
1124 (vsx_nor<mode>3_32bit): Likewise.
1125 (vsx_nor<mode>3_64bit): Likewise.
1126 (vsx_andc<mode>3): Likewise.
1127 (vsx_andc<mode>3_32bit): Likewise.
1128 (vsx_andc<mode>3_64bit): Likewise.
1129 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
1130 and xxlorc instructions.
1131 (vsx_eqv<mode>3_64bit): Likewise.
1132 (vsx_nand<mode>3_32bit): Likewise.
1133 (vsx_nand<mode>3_64bit): Likewise.
1134 (vsx_orc<mode>3_32bit): Likewise.
1135 (vsx_orc<mode>3_64bit): Likewise.
1136
1137 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
1138
1139 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
1140 instruction.
1141 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
1142 (p8_vmrgow): Likewise.
1143 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
1144 GPRs to be split under VSX.
1145 (p8v_clz<mode>2): Add power8 count leading zero support.
1146 (p8v_popcount<mode>2): Add power8 population count support.
1147 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
1148 support.
1149
1150 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
1151 instruction.
1152
1153 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
1154 builtin functions.
1155 (vec_nand): Likewise.
1156 (vec_vclz): Likewise.
1157 (vec_vclzb): Likewise.
1158 (vec_vclzd): Likewise.
1159 (vec_vclzh): Likewise.
1160 (vec_vclzw): Likewise.
1161 (vec_vgbbd): Likewise.
1162 (vec_vmrgew): Likewise.
1163 (vec_vmrgow): Likewise.
1164 (vec_vpopcnt): Likewise.
1165 (vec_vpopcntb): Likewise.
1166 (vec_vpopcntd): Likewise.
1167 (vec_vpopcnth): Likewise.
1168 (vec_vpopcntw): Likewise.
1169
1170 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
1171
1172 PR rtl-optimization/57468
1173 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
1174 spilled pseudos.
1175
1176 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
1177
1178 PR rtl-optimization/57459
1179 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
1180 type when setting live regs.
1181
1182 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
1183
1184 * config/s390/s390.opt (mlra): New option.
1185 * config/s390/s390.c (s390_decompose_address): Check displacement
1186 for all registers for LRA.
1187 (s390_secondary_reload): Don't used secondary reloads for LRA.
1188 (s390_lra_p): New function.
1189 (TARGET_LRA_P): Define.
1190 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
1191 of attribute cpu_facility to zarch for the last alternative.
1192 (*cmpmem_short): Ditto.
1193
1194 2013-06-06 Eric Botcazou <ebotcazou@adacore.com>
1195
1196 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
1197 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
1198 (arm_expand_prologue): Likewise.
1199
1200 2013-06-06 Teresa Johnson <tejohnson@google.com>
1201
1202 PR c++/53743
1203 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
1204 as this is now done by redirect_edge_and_branch_force.
1205 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
1206 barriers, and fix interaction with splitting.
1207 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
1208 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
1209 reflect changes made in the routine.
1210 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
1211 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
1212 since this is called in cfglayout mode, and replace partition fixup
1213 with assert as that is now done by force_nonfallthru_and_redirect.
1214 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
1215 already be marked with region crossing note.
1216 (insert_section_boundary_note): Make non-static, gate on flag
1217 has_bb_partition, rewrite to also check for multiple partitions.
1218 (rest_of_handle_reorder_blocks): Remove call to
1219 insert_section_boundary_note, now done later during free_cfg.
1220 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
1221 * bb-reorder.h (insert_section_boundary_note): Declare.
1222 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
1223 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
1224 invoke insert_section_boundary_note.
1225 (try_redirect_by_replacing_jump): Remove unnecessary
1226 check for region crossing note.
1227 (fixup_partition_crossing): New function.
1228 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
1229 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
1230 in non-cfglayout mode.
1231 (force_nonfallthru_and_redirect): Fixup partition boundaries,
1232 remove old code that tried to do this. Emit barrier correctly
1233 when we are in cfglayout mode.
1234 (last_bb_in_partition): New function.
1235 (rtl_split_edge): Correctly fixup partition boundaries.
1236 (commit_one_edge_insertion): Remove old code that tried to
1237 fixup region crossing edge since this is now handled in
1238 split_block, and set up insertion point correctly since
1239 block may now end in a jump.
1240 (verify_hot_cold_block_grouping): Guard against checking when not in
1241 linearized RTL mode.
1242 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
1243 notes.
1244 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
1245 rtl_verify_flow_info, so not called in cfglayout mode.
1246 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
1247 (fixup_reorder_chain): Remove old code that attempted to fixup region
1248 crossing note as this is now handled in force_nonfallthru_and_redirect.
1249 (duplicate_insn_chain): Don't duplicate switch section notes.
1250 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
1251 note.
1252 * basic-block.h (emit_barrier_after_bb): Declare.
1253
1254 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1255
1256 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
1257 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
1258 arm_usatsihi): Adjust alternatives for arm_restrict_it.
1259
1260 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1261
1262 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
1263 where appropriate.
1264 * config/arm/ldmstm.md: Regenerate.
1265
1266 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1267
1268 * config/arm/sync.md (atomic_loaddi_1):
1269 Disable predication for arm_restrict_it.
1270 (arm_load_exclusive<mode>): Likewise.
1271 (arm_load_exclusivesi): Likewise.
1272 (arm_load_exclusivedi): Likewise.
1273 (arm_load_acquire_exclusive<mode>): Likewise.
1274 (arm_load_acquire_exclusivesi): Likewise.
1275 (arm_load_acquire_exclusivedi): Likewise.
1276 (arm_store_exclusive<mode>): Likewise.
1277 (arm_store_exclusive<mode>): Likewise.
1278 (arm_store_release_exclusivedi): Likewise.
1279 (arm_store_release_exclusive<mode>): Likewise.
1280
1281 2013-06-06 Richard Biener <rguenther@suse.de>
1282
1283 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
1284 after LTO_null.
1285 (lto_tag_is_tree_code_p): Adjust.
1286 (lto_tag_is_gimple_code_p): Likewise.
1287 (lto_gimple_code_to_tag): Likewise.
1288 (lto_tag_to_gimple_code): Likewise.
1289 (lto_tree_code_to_tag): Likewise.
1290 (lto_tag_to_tree_code): Likewise.
1291 * data-streamer.h (streamer_write_hwi_in_range): Use
1292 uhwi streaming to stream the normalized range.
1293 (streamer_read_hwi_in_range): Likewise.
1294
1295 2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1296
1297 * config/arm/arm.md (enabled_for_depr_it): New attribute.
1298 (predicable_short_it): Likewise.
1299 (predicated): Likewise.
1300 (enabled): Handle above.
1301 (define_cond_exec): Set predicated attribute to yes.
1302
1303 2013-06-05 Mike Stump <mikestump@comcast.net>
1304
1305 * gdbinit.in (__FUNCTION__): Add.
1306
1307 2013-06-05 Uros Bizjak <ubizjak@gmail.com>
1308
1309 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
1310 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
1311
1312 2013-06-05 Jan Hubicka <jh@suse.cz>
1313
1314 * varasm.c (mark_decl_referenced): Revert the removal until targets
1315 are fixed.
1316
1317 2013-06-05 David Edelsohn <dje.gcc@gmail.com>
1318
1319 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
1320 instead of mark_decl_referenced.
1321
1322 2013-06-05 Jan Hubicka <jh@suse.cz>
1323
1324 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
1325 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
1326 and symtab_used_from_object_file_p.
1327 (cgraph_make_node_local_1): Clear forced_by_abi.
1328 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
1329 * cgraph.h (symtab_node_base): Add forced_by_abi.
1330 (decide_is_variable_needed): Remove.
1331 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
1332 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
1333 (decide_is_symbol_needed): ... this one; handle symbols in general;
1334 always analyze virtuals; honnor forced_by_abi.
1335 (cgraph_finalize_function): Update.
1336 (varpool_finalize_decl): Update.
1337 (symbol_defined_and_needed): Remove.
1338 (analyze_functions): Update.
1339 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
1340 output_refs, input_overwrite_node): Handle forced_by_abi.
1341 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
1342 (address_taken_from_non_vtable_p): ... this one.
1343 (comdat_can_be_unshared_p_1): New function.
1344 (cgraph_comdat_can_be_unshared_p): Rename to ...
1345 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
1346 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
1347 (function_and_variable_visibility): Clear forced_by_abi as needed.
1348 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
1349 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
1350 * symtab.c (dump_symtab_base): Dump forced_by_abi.
1351 * varpool.c (decide_is_variable_needed): Remove.
1352
1353 2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1354
1355 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
1356 (arm_option_override): Override arm_restrict_it where appropriate.
1357 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
1358 * config/arm/arm.opt (mrestrict-it): New command-line option.
1359 * doc/invoke.texi: Document -mrestrict-it.
1360
1361 2013-06-05 David Malcolm <dmalcolm@redhat.com>
1362
1363 * tsan.c (tsan_atomic_table): Make const.
1364
1365 2013-06-05 Richard Biener <rguenther@suse.de>
1366
1367 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
1368 index associated with the tree we are supposed to replace.
1369 * tree-streamer-out.c (pack_ts_base_value_fields): Output
1370 TREE_ASM_WRITTEN as zero for everything but SSA names.
1371
1372 2013-06-05 David Malcolm <dmalcolm@redhat.com>
1373
1374 * tree-ssa-structalias.c (call_stmt_vars): Make static.
1375
1376 2013-06-04 Jan Hubicka <jh@suse.cz>
1377
1378 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
1379 (input_node, input_varpool_node): Handle correctly external same
1380 body aliases.
1381 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
1382 nodes at ltrans stage.
1383
1384 2013-06-04 Jan Hubicka <jh@suse.cz>
1385
1386 * ipa-inline.c (update_caller_keys): Fix availability test.
1387 (update_callee_keys): Likewise.
1388 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
1389 to follow ELF standard.
1390
1391 2013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
1392
1393 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
1394 (mips64r5900el-*-elf*): New configurations.
1395 * config/mips/mips-cpus.def (r5900): New processor.
1396 * config/mips/mips-tables.opt: Regenerate.
1397 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
1398 (mips_issue_rate): Handle PROCESSOR_R5900.
1399 (mips_reorg_process_insns): Force reorder mode for the R5900.
1400 * config/mips/mips.h (TARGET_MIPS5900): Define.
1401 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
1402 TARGET_MIPS5900.
1403 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
1404 TARGET_MIPS5900.
1405 * config/mips/mips.md (processor): Add r5900.
1406 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
1407
1408 2013-06-04 Ian Bolton <ian.bolton@arm.com>
1409
1410 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
1411 into function to generate MOVI instruction.
1412 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
1413 (aarch64_preferred_simd_mode): Turn into wrapper.
1414 (aarch64_output_scalar_simd_mov_immediate): New function.
1415 * config/aarch64/aarch64-protos.h: Add prototype for above.
1416
1417 2013-06-04 Ian Bolton <ian.bolton@arm.com>
1418
1419 * config/aarch64/aarch64.c (simd_immediate_info): Remove
1420 element_char member.
1421 (sizetochar): Return signed char.
1422 (aarch64_simd_valid_immediate): Remove elchar and other
1423 unnecessary variables.
1424 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
1425 Calculate element_char as required.
1426 * config/aarch64/aarch64-protos.h: Update and move prototype
1427 for aarch64_output_simd_mov_immediate.
1428 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
1429 Update arguments.
1430
1431 2013-06-04 Ian Bolton <ian.bolton@arm.com>
1432
1433 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
1434 information completed by aarch64_simd_valid_immediate.
1435 (aarch64_legitimate_constant_p): Update arguments.
1436 (aarch64_simd_valid_immediate): Work with struct rather than many
1437 pointers.
1438 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
1439 (aarch64_simd_make_constant): Update arguments.
1440 (aarch64_output_simd_mov_immediate): Work with struct rather than
1441 many pointers. Output immediate directly rather than as operand.
1442 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
1443 Update prototype.
1444 * config/aarch64/constraints.md (Dn): Update arguments.
1445
1446 2013-06-04 Ian Bolton <ian.bolton@arm.com>
1447
1448 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
1449 longer static.
1450 (aarch64_simd_immediate_valid_for_move): Remove.
1451 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
1452 (aarch64_simd_make_constant): Update call.
1453 (aarch64_output_simd_mov_immediate): Update call.
1454 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
1455 Add prototype.
1456 * config/aarch64/constraints.md (Dn): Update call.
1457
1458 2013-06-04 Ian Bolton <ian.bolton@arm.com>
1459
1460 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
1461 return type to bool for prototype.
1462 (aarch64_legitimate_constant_p): Check for true instead of not -1.
1463 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
1464 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
1465
1466 2013-06-04 Catherine Moore <clm@codesourcery.com>
1467
1468 * config/mips/mips.opt (meva): New.
1469 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
1470 (ASM_SPEC): Handle -meva.
1471 * doc/invoke.texi (meva): Document.
1472
1473 2013-06-04 Alan Modra <amodra@gmail.com>
1474
1475 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
1476 constant output.
1477
1478 2013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1479
1480 * rtl.def: Add extra fourth optional field to define_cond_exec.
1481 * gensupport.c (process_one_cond_exec): Process attributes from
1482 define_cond_exec.
1483 * doc/md.texi: Document fourth field in define_cond_exec.
1484
1485 2013-06-04 Eric Botcazou <ebotcazou@adacore.com>
1486
1487 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
1488 out the processing order as in store_bit_field_1.
1489
1490 2013-06-04 Jan Hubicka <jh@suse.cz>
1491
1492 PR middle-end/57500
1493 * cgraphunit.c (cgraph_process_same_body_aliases): Create
1494 non-VAR_DECL node if it does not exist yet.
1495
1496 2013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
1497
1498 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
1499 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
1500 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
1501 target_cpu_default setting.
1502
1503 2013-06-03 Teresa Johnson <tejohnson@google.com>
1504
1505 * dumpfile.c (opt_info_switch_p): Change -fopt-info
1506 default to -fopt-info=optimized instead of all.
1507 * doc/invoke.texi: Ditto.
1508 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
1509 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
1510 (execute_vect_slp): Emit BB vectorization success under
1511 MSG_OPTIMIZED_LOCATIONS.
1512 * tree-vect-slp.c (vect_slp_transform_bb): Change
1513 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
1514 * tree-vect-loop.c (vect_transform_loop): Ditto.
1515
1516 2013-06-03 Jason Merrill <jason@redhat.com>
1517
1518 PR c++/57415
1519 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1520 Use TARGET_EXPR for C++.
1521
1522 2013-06-03 Jakub Jelinek <jakub@redhat.com>
1523
1524 PR rtl-optimization/57268
1525 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1526 if DEBUG_INSN_P (insn).
1527
1528 Reapply
1529 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
1530
1531 PR rtl-optimization/57268
1532 * sched-deps.c (sched_analyze_2): Flush dependence lists if
1533 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
1534
1535 2013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
1536
1537 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
1538 (ix86_avoid_lea_for_addr): Likewise.
1539 (exact_dependency_1): Likewise.
1540 (ix86_adjust_cost): Likewise.
1541 (swap_top_of_ready_list): Fix formatting and !reload_completed check
1542 removed.
1543 (do_reorder_for_imul): Fix typo, formatting and
1544 !reload_completed check removed.
1545 (ix86_sched_reorder): Fix typo and formatting.
1546 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
1547 list.
1548
1549 2013-06-03 Sofiane Naci <sofiane.naci@arm.com>
1550
1551 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
1552
1553 2013-06-03 Eric Botcazou <ebotcazou@adacore.com>
1554
1555 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
1556 <STRING_CST>: Likewise.
1557 <VECTOR_CST>: Likewise.
1558
1559 2013-06-01 Janus Weil <janus@gcc.gnu.org>
1560 Mikael Morin <mikael@gcc.gnu.org>
1561
1562 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
1563 * config.in: Regenerated.
1564 * configure: Regenerated.
1565
1566 2013-06-01 Jan Hubicka <jh@suse.cz>
1567
1568 PR middle-end/57366
1569 * cgraphunit.c (compile): When weakref is not supported,
1570 set up transparent aliases before final output pass.
1571 * varasm.c (assemble_alias): Do not try to do it here.
1572
1573 2013-06-01 Jan Hubicka <jh@suse.cz>
1574
1575 PR middle-end/57467
1576 * passes.c (for_per_function): Skip unanalyzed functions.
1577
1578 2013-06-01 Jan Hubicka <jh@suse.cz>
1579
1580 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
1581 (lto_symtab_merge_symbols_1): ... this one.
1582 (lto_symtab_merge_cgraph_nodes): Rename to ...
1583 (lto_symtab_merge_symbols): ... this one; simplify.
1584 * cgraph.c (same_body_aliases_done): Rename to ...
1585 (cpp_implicit_aliases_done): ... this one.
1586 (cgraph_create_function_alias): Update.
1587 (cgraph_same_body_alias): Update.
1588 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
1589 (verify_edge_corresponds_to_fndecl): Simplify.
1590 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
1591 (cgraph_node): Remove same_body_alias.
1592 (varpool_node): Remove alias_of and extra_name_alias.
1593 (same_body_aliases_done): Rename to ..
1594 (cpp_implicit_aliases_done): ... this one.
1595 (symtab_alias_ultimate_target): Add default parameter.
1596 (symtab_resolve_alias): New function.
1597 (fixup_same_cpp_alias_visibility): Declare.
1598 (cgraph_function_node): Add default parameter.
1599 (cgraph_node_asm_name): Likewise.
1600 (cgraph_function_or_thunk_node): Add default parameter; do
1601 not ICE when it is NULL.
1602 (varpool_variable_node): Likewise.
1603 * tree-emutls.c (create_emultls_var): Update.
1604 (ipa_lower_emutls): Update.
1605 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
1606 (cgraph_reset_node): Reset alias info.
1607 (cgraph_finalize_function): Update.
1608 (fixup_same_cpp_alias_visibility): Move to symtab.c.
1609 (analyze_function): Simplify.
1610 (cgraph_process_same_body_aliases): Simplify.
1611 (analyze_functions): Fixup same body aliases.
1612 (handle_alias_pairs): Simplify.
1613 (assemble_thunk): Update.
1614 (assemble_thunks_and_aliases): Update.
1615 (output_weakrefs): Rewrite.
1616 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
1617 (lto_output_varpool_node): Likewise.
1618 (compute_ltrans_boundary): Remve assert.
1619 (get_alias_symbol): New functoin.
1620 (input_node): Rewrite alias handling.
1621 (input_varpool_node): Likewise.
1622 * ipa-pure-const.c (propagate_pure_const): Fix formating.
1623 * ipa.c (process_references): Handle weakrefs correctly.
1624 (symtab_remove_unreachable_nodes): Likewise.
1625 * trans-mem.c (get_cg_data): Update.
1626 (ipa_tm_create_version_alias): Update.
1627 (ipa_tm_execute): Update.
1628 * symtab.c (dump_symtab_base): Dump aliases.
1629 (verify_symtab_base): Verify aliases.
1630 (symtab_node_availability): New function.
1631 (symtab_alias_ultimate_target): Simplify.
1632 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
1633 handle all the fixup cases.
1634 (symtab_resolve_alias): New function.
1635 * passes.c (ipa_write_summaries): Handle weakrefs.
1636 * varpool.c (varpool_analyze_node): Simplify.
1637 (assemble_aliases): Update.
1638 (varpool_create_variable_alias): Simplify.
1639 (varpool_extra_name_alias): Simplify.
1640 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
1641 (lto_symtab_merge_symbols): ... this one.
1642
1643 2013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
1644
1645 Revert
1646 PR rtl-optimization/57268
1647 * sched-deps.c (sched_analyze_2): Flush dependence lists if
1648 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
1649
1650 2013-06-01 Tobias Burnus <burnus@net-b.de>
1651
1652 Partially reverted:
1653 2013-05-31 Tobias Burnus <burnus@net-b.de>
1654
1655 PR middle-end/57073
1656 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
1657 further up.
1658
1659 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
1660
1661 PR rtl-optimization/57268
1662 * sched-deps.c (sched_analyze_2): Flush dependence lists if
1663 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
1664
1665 2013-05-31 Eric Botcazou <ebotcazou@adacore.com>
1666
1667 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
1668 unordered comparison operators when -fno-trapping-math is in effect
1669 on the e500.
1670 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
1671 and implement unordered comparison operators properly on the e500.
1672
1673 2013-05-31 Eric Botcazou <ebotcazou@adacore.com>
1674
1675 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
1676 for constant scalar integers.
1677 (simplify_relational_operation_1): Likewise.
1678
1679 2013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
1680
1681 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
1682 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
1683 Fix comment.
1684
1685 2013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
1686 Igor Zamyatin <igor.zamyatin@intel.com>
1687
1688 Silvermont (SLM) architecture performance tuning.
1689 * config/i386/i386.h (enum ix86_tune_indices): Add
1690 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
1691 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
1692
1693 * config/i386/i386.c (initial_ix86_tune_features)
1694 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
1695 (ix86_lea_outperforms): Handle Silvermont tuning.
1696 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
1697 call.
1698 (ix86_use_lea_for_mov): Likewise.
1699 (ix86_avoid_lea_for_addr): Likewise.
1700 (ix86_lea_for_add_ok): Likewise.
1701 (exact_dependency_1): New function.
1702 (exact_store_load_dependency): Likewise.
1703 (ix86_adjust_cost): Handle Silvermont tuning.
1704 (do_reoder_for_imul): Likewise.
1705 (swap_top_of_ready_list): New function.
1706 (ix86_sched_reorder): Changed to handle Silvermont tuning.
1707
1708 * config/i386/i386.md (peepholes that split memory operand in fp
1709 converts): New.
1710
1711 2013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
1712
1713 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1714 Remove un-necessary braces.
1715
1716 2013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
1717
1718 * config/aarch64/aarch64.c (aarch64_classify_symbol):
1719 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
1720
1721 2013-05-31 Tobias Burnus <burnus@net-b.de>
1722
1723 PR middle-end/57073
1724 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
1725
1726 2013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1727
1728 PR target/56315
1729 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
1730 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
1731 * config/arm/neon.md (iordi3_neon): Remove.
1732 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
1733 * config/arm/predicates.md (imm_for_neon_logic_operand):
1734 Move to earlier in the file.
1735 (neon_logic_op2): Likewise.
1736 (arm_iordi_operand_neon): New predicate.
1737
1738 2013-05-31 Richard Biener <rguenther@suse.de>
1739
1740 PR tree-optimization/57478
1741 PR tree-optimization/57453
1742 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
1743 are life as well.
1744
1745 2013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
1746
1747 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
1748 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
1749
1750 2013-05-30 Tobias Burnus <burnus@net-b.de>
1751 Thomas Koenig <tkoenig@gcc.gnu.org>
1752
1753 PR middle-end/57073
1754 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
1755 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
1756
1757 2013-05-30 Steven Bosscher <steven@gcc.gnu.org>
1758
1759 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
1760
1761 2013-05-30 Vladimir Makarov <vmakarov@redhat.com>
1762
1763 * target.def (register_usage_leveling_p): New hook.
1764 * targhooks.c (default_register_usage_leveling_p): New.
1765 * targhooks.h (default_register_usage_leveling_p): New prototype.
1766 * lra-assigns.c (register_usage_leveling_p): Use the hook.
1767 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
1768 * doc/tm.texi: Update.
1769 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
1770
1771 2013-05-30 Ian Bolton <ian.bolton@arm.com>
1772
1773 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
1774 (*insv_reg<mode>): New define_insn.
1775
1776 2013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
1777
1778 PR rtl-optimization/57439
1779 * postreload.c (move2add_valid_value_p): Check that we have
1780 a zero subreg_regno_offset when accessing the register in
1781 the requested mode.
1782
1783 2013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
1784 Igor Zamyatin <igor.zamyatin@intel.com>
1785
1786 Silvermont (SLM) architecture pipeline model, tuning and
1787 insn selection.
1788 * config.gcc: Add slm config options and target.
1789
1790 * config/i386/slm.md: New.
1791
1792 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
1793
1794 * gcc/config/i386/i386-c.c (ix86_target_macros_internal): New case
1795 PROCESSOR_SLM.
1796 (ix86_target_macros_internal): Likewise.
1797
1798 * gcc/config/i386/i386.c (slm_cost): New cost.
1799 (m_SLM): New macro flag.
1800 (initial_ix86_tune_features): Set m_SLM.
1801 (x86_accumulate_outgoing_args): Likewise.
1802 (x86_arch_always_fancy_math_387): Likewise.
1803 (processor_target_table): Add slm cost.
1804 (cpu_names): Add slm cpu name.
1805 (x86_option_override_internal): Set SLM ISA.
1806 (ix86_issue_rate): New case PROCESSOR_SLM.
1807 (ia32_multipass_dfa_lookahead): Likewise.
1808 (fold_builtin_cpu): Add slm.
1809
1810 * config/i386/i386.h (TARGET_SLM): New target macro.
1811 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
1812 (processor_type): Add PROCESSOR_SLM.
1813
1814 * config/i386/i386.md (cpu): Add new value "slm".
1815 (slm.md): Include slm.md.
1816
1817 2013-05-30 Bernd Schmidt <bernds@codesourcery.com>
1818 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1819
1820 * config/arm/arm-protos.h: Add and update function protos.
1821 * config/arm/arm.c (use_simple_return_p): New added.
1822 (thumb2_expand_return): Check simple_return flag.
1823 * config/arm/arm.md: Add simple_return and conditional simple_return.
1824 * config/arm/iterators.md: Add iterator for return and simple_return.
1825
1826 2013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1827
1828 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
1829 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
1830 (arm_emit_vfp_multi_reg_pop): Likewise.
1831 (thumb2_emit_ldrd_pop): Likewise.
1832 (arm_expand_epilogue): Add misc REG_CFA notes.
1833 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
1834
1835 2013-05-29 Lawrence Crowl <crowl@google.com>
1836
1837 * config/arm/t-arm: Update for below.
1838
1839 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
1840 Change type to hash_table. Update dependent calls and types.
1841
1842 * config/i386/t-cygming: Update for below.
1843
1844 * config/i386/t-interix: Update for below.
1845
1846 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
1847 Change type to hash_table. Update dependent calls and types.
1848 (i386_find_on_wrapper_list::wrappers): Likewise.
1849
1850 * config/ia64/t-ia64: Update for below.
1851
1852 * config/ia64/ia64.c (bundle_state_table):
1853 Change type to hash_table. Update dependent calls and types.
1854
1855 * config/mips/mips.c (mips_reorg_process_insns::htab):
1856 Change type to hash_table. Update dependent calls and types.
1857
1858 * config/sol2.c (solaris_comdat_htab):
1859 Change type to hash_table. Update dependent calls and types.
1860
1861 * config/t-sol2: Update for above.
1862
1863 2013-05-29 Teresa Johnson <tejohnson@google.com>
1864
1865 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
1866 functions are not yet marked as defined.
1867
1868 2013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
1869 Pat Haugen <pthaugen@us.ibm.com>
1870 Peter Bergner <bergner@vnet.ibm.com>
1871
1872 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
1873 instructions.
1874 (VEC_A): Likewise.
1875 (VEC_C): Likewise.
1876 (vrotl<mode>3): Likewise.
1877 (vashl<mode>3): Likewise.
1878 (vlshr<mode>3): Likewise.
1879 (vashr<mode>3): Likewise.
1880
1881 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1882 support for power8 V2DI builtins.
1883
1884 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
1885 power8 V2DI builtins.
1886 (vupkhsw): Likewise.
1887 (vupklsw): Likewise.
1888 (vaddudm): Likewise.
1889 (vminsd): Likewise.
1890 (vmaxsd): Likewise.
1891 (vminud): Likewise.
1892 (vmaxud): Likewise.
1893 (vpkudum): Likewise.
1894 (vpksdss): Likewise.
1895 (vpkudus): Likewise.
1896 (vpksdus): Likewise.
1897 (vrld): Likewise.
1898 (vsld): Likewise.
1899 (vsrd): Likewise.
1900 (vsrad): Likewise.
1901 (vsubudm): Likewise.
1902 (vcmpequd): Likewise.
1903 (vcmpgtsd): Likewise.
1904 (vcmpgtud): Likewise.
1905 (vcmpequd_p): Likewise.
1906 (vcmpgtsd_p): Likewise.
1907 (vcmpgtud_p): Likewise.
1908 (vupkhsw): Likewise.
1909 (vupklsw): Likewise.
1910 (vaddudm): Likewise.
1911 (vmaxsd): Likewise.
1912 (vmaxud): Likewise.
1913 (vminsd): Likewise.
1914 (vminud): Likewise.
1915 (vpksdss): Likewise.
1916 (vpksdus): Likewise.
1917 (vpkudum): Likewise.
1918 (vpkudus): Likewise.
1919 (vrld): Likewise.
1920 (vsld): Likewise.
1921 (vsrad): Likewise.
1922 (vsrd): Likewise.
1923 (vsubudm): Likewise.
1924
1925 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
1926 support for power8 V2DI instructions.
1927
1928 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
1929 power8 V2DI instructions. Combine pack and unpack insns to use an
1930 iterator for each mode. Check whether a particular mode supports
1931 Altivec instructions instead of just checking TARGET_ALTIVEC.
1932 (UNSPEC_VPKUWUM): Likewise.
1933 (UNSPEC_VPKSHSS): Likewise.
1934 (UNSPEC_VPKSWSS): Likewise.
1935 (UNSPEC_VPKUHUS): Likewise.
1936 (UNSPEC_VPKSHUS): Likewise.
1937 (UNSPEC_VPKUWUS): Likewise.
1938 (UNSPEC_VPKSWUS): Likewise.
1939 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
1940 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
1941 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
1942 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
1943 (UNSPEC_VUPKHSB): Likewise.
1944 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
1945 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
1946 (UNSPEC_VUPKHSH): Likewise.
1947 (UNSPEC_VUPKLSB): Likewise.
1948 (UNSPEC_VUPKLSH): Likewise.
1949 (VI2): Likewise.
1950 (VI_char): Likewise.
1951 (VI_scalar): Likewise.
1952 (VI_unit): Likewise.
1953 (VP): Likewise.
1954 (VP_small): Likewise.
1955 (VP_small_lc): Likewise.
1956 (VU_char): Likewise.
1957 (add<mode>3): Likewise.
1958 (altivec_vaddcuw): Likewise.
1959 (altivec_vaddu<VI_char>s): Likewise.
1960 (altivec_vadds<VI_char>s): Likewise.
1961 (sub<mode>3): Likewise.
1962 (altivec_vsubcuw): Likewise.
1963 (altivec_vsubu<VI_char>s): Likewise.
1964 (altivec_vsubs<VI_char>s): Likewise.
1965 (altivec_vavgs<VI_char>): Likewise.
1966 (altivec_vcmpbfp): Likewise.
1967 (altivec_eq<mode>): Likewise.
1968 (altivec_gt<mode>): Likewise.
1969 (altivec_gtu<mode>): Likewise.
1970 (umax<mode>3): Likewise.
1971 (smax<mode>3): Likewise.
1972 (umin<mode>3): Likewise.
1973 (smin<mode>3): Likewise.
1974 (altivec_vpkuhum): Likewise.
1975 (altivec_vpkuwum): Likewise.
1976 (altivec_vpkshss): Likewise.
1977 (altivec_vpkswss): Likewise.
1978 (altivec_vpkuhus): Likewise.
1979 (altivec_vpkshus): Likewise.
1980 (altivec_vpkuwus): Likewise.
1981 (altivec_vpkswus): Likewise.
1982 (altivec_vpks<VI_char>ss): Likewise.
1983 (altivec_vpks<VI_char>us): Likewise.
1984 (altivec_vpku<VI_char>us): Likewise.
1985 (altivec_vpku<VI_char>um): Likewise.
1986 (altivec_vrl<VI_char>): Likewise.
1987 (altivec_vsl<VI_char>): Likewise.
1988 (altivec_vsr<VI_char>): Likewise.
1989 (altivec_vsra<VI_char>): Likewise.
1990 (altivec_vsldoi_<mode>): Likewise.
1991 (altivec_vupkhsb): Likewise.
1992 (altivec_vupkhs<VU_char>): Likewise.
1993 (altivec_vupkls<VU_char>): Likewise.
1994 (altivec_vupkhsh): Likewise.
1995 (altivec_vupklsb): Likewise.
1996 (altivec_vupklsh): Likewise.
1997 (altivec_vcmpequ<VI_char>_p): Likewise.
1998 (altivec_vcmpgts<VI_char>_p): Likewise.
1999 (altivec_vcmpgtu<VI_char>_p): Likewise.
2000 (abs<mode>2): Likewise.
2001 (vec_unpacks_hi_v16qi): Likewise.
2002 (vec_unpacks_hi_v8hi): Likewise.
2003 (vec_unpacks_lo_v16qi): Likewise.
2004 (vec_unpacks_hi_<VP_small_lc>): Likewise.
2005 (vec_unpacks_lo_v8hi): Likewise.
2006 (vec_unpacks_lo_<VP_small_lc>): Likewise.
2007 (vec_pack_trunc_v8h): Likewise.
2008 (vec_pack_trunc_v4si): Likewise.
2009 (vec_pack_trunc_<mode>): Likewise.
2010
2011 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
2012 V2DI builtins.
2013 (vec_vmaxsd): Likewise.
2014 (vec_vmaxud): Likewise.
2015 (vec_vminsd): Likewise.
2016 (vec_vminud): Likewise.
2017 (vec_vpksdss): Likewise.
2018 (vec_vpksdus): Likewise.
2019 (vec_vpkudum): Likewise.
2020 (vec_vpkudus): Likewise.
2021 (vec_vrld): Likewise.
2022 (vec_vsld): Likewise.
2023 (vec_vsrad): Likewise.
2024 (vec_vsrd): Likewise.
2025 (vec_vsubudm): Likewise.
2026 (vec_vupkhsw): Likewise.
2027 (vec_vupklsw): Likewise.
2028
2029 2013-05-29 Jan Hubicka <jh@suse.cz>
2030
2031 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
2032 flags; reorder rest of fields in more consistent way.
2033 (varpool_node): Remove analyzed, finalized and alias.
2034 (cgraph_ndoe): Likewise.
2035 (symtab_alias_ultimate_target): New function.
2036 (cgraph_function_node): Move offline.
2037 (cgraph_reset_node): Declare.
2038 (cgraph_comdat_can_be_unshared_p): Remove.
2039 (varpool_remove_initializer): Declare.
2040 (varpool_first_defined_variable, varpool_next_defined_variable
2041 cgraph_first_defined_function, cgraph_next_defined_function): Update.
2042 (cgraph_function_with_gimple_body_p): Update.
2043 (varpool_all_refs_explicit_p): Update.
2044 (symtab_alias_target): New function.
2045 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
2046 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
2047 (cgraph_function_or_thunk_node): Simplify using
2048 symtab_alias_ultimate_target.
2049 (varpool_variable_node): Likewise.
2050 * cgraph.c (cgraph_create_function_alias): Update.
2051 (cgraph_add_thunk): Update.
2052 (cgraph_remove_node): Update.
2053 (dump_cgraph_node): Do not dump removed flags.
2054 (cgraph_function_body_availability): Update.
2055 (cgraph_propagate_frequency): Update.
2056 (verify_cgraph_node): Check sanity of local flag.
2057 (cgraph_function_node): Move here from cgraph.h; revamp for
2058 cgraph_function_or_thunk_node.
2059 * lto-symtab.c (lto_varpool_replace_node): Update.
2060 (lto_symtab_resolve_can_prevail_p): Update.
2061 (lto_symtab_merge_cgraph_nodes): Update.
2062 * ipa-cp.c (determine_versionability, initialize_node_lattices,
2063 propagate_constants_accross_call, devirtualization_time_bonus,
2064 ipcp_propagate_stage): Update.
2065 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
2066 * ipa-inline-transform.c (clone_inlined_nodes,
2067 preserve_function_body_p): Update.
2068 * ipa-reference.c (propagate): Update.
2069 (write_node_summary_p): Update.
2070 * toplev.c (wrapup_global_declaration_2): Update.
2071 * cgraphunit.c (cgraph_analyze_function): Rename to ...
2072 (analyze_function) ... this one.
2073 (cgraph_process_new_functions): Update.
2074 (cgraph_reset_node): Export.
2075 (cgraph_finalize_function): Update.
2076 (cgraph_add_new_function): Update.
2077 (process_function_and_variable_attributes): Update.
2078 (varpool_finalize_decl): Update.
2079 (symbol_finalized): Remove.
2080 (symbol_finalized_and_needed): Rename to ...
2081 (symbol_defined_and_needed): ... update.
2082 (cgraph_analyze_functions): Update.
2083 (handle_alias_pairs): Update.
2084 (mark_functions_to_output): Update.
2085 (assemble_thunk): Update.
2086 (output_in_order): Update.
2087 (output_weakrefs): Update.
2088 (finalize_compilation_unit): Update.
2089 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
2090 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
2091 input_node, input_varpool_node): Update.
2092 * dbxout.c (dbxout_expand_expr): Update.
2093 * cgraphclones.c (cgraph_clone_node): Update.
2094 (cgraph_copy_node_for_versioning): Update.
2095 (cgraph_materialize_clone): Update.
2096 (cgraph_materialize_all_clones): Update.
2097 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
2098 propagate_pure_const, propagate_nothrow): Update.
2099 * lto-streamer-out.c (lto_output, write_symbol): Update.
2100 * ipa-utils.c (ipa_reverse_postorder): Update.
2101 * ipa-inline.c (can_inline_edge_p): Update.
2102 (update_caller_keys, ipa_inline): Update.
2103 * dwarf2out.c (reference_to_unused,
2104 premark_types_used_by_global_vars_helper): Update.
2105 * tree-eh.c (tree_could_trap_p): Update.
2106 * ipa-split.c (consider_split, execute_split_functions): Update.
2107 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
2108 has_addr_references_p): Update; move ahead in file for better
2109 readability.
2110 (process_references): Simplify.
2111 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
2112 bodies are removed.
2113 (cgraph_comdat_can_be_unshared_p): Make static.
2114 (cgraph_externally_visible_p): Update.
2115 (varpool_externally_visible_p): Update.
2116 (function_and_variable_visibility): Update.
2117 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
2118 ipa_tm_mark_force_output_node): Update.
2119 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
2120 estimate_edge_devirt_benefit, inline_generate_summary,
2121 inline_write_summary): Update.
2122 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
2123 * ipa-prop.c (ipa_compute_jump_functions): Update.
2124 (ipa_print_node_params, ipa_prop_read_section,
2125 ipa_update_after_lto_read, read_replacements_section): Update.
2126 * varasm.c (mark_decl_referenced): Update.
2127 (assemble_alias, dump_tm_clone_pairs): Update.
2128 * tree-inline.c (copy_bb): Update.
2129 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
2130 Update.
2131 * symtab.c (dump_symtab_base): Print new flags.
2132 (verify_symtab_base): Verify new flags.
2133 (symtab_alias_ultimate_target): New function.
2134 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
2135 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
2136 Update.
2137 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
2138 Update.
2139 * i386.c (ix86_get_function_versions_dispatcher,
2140 ix86_generate_version_dispatcher_body): Update.
2141 (fold_builtin_cpu): Use varpool_add_new_variable.
2142 * varpool.c (varpool_remove_initializer): Break out from ...
2143 (varpool_remove_node): ... this one.
2144 (dump_varpool_node, varpool_node_for_asm,
2145 cgraph_variable_initializer_availability, varpool_analyze_node,
2146 varpool_assemble_decl, varpool_remove_unreferenced_decls,
2147 varpool_finalize_named_section_flags, varpool_create_variable_alias):
2148 Update.
2149
2150 2013-05-29 Jan Hubicka <jh@suse.cz>
2151
2152 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
2153
2154 2013-05-29 Easwaran Raman <eraman@google.com>
2155
2156 PR tree-optimization/57442
2157 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
2158 when control exits the main loop.
2159
2160 2013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
2161
2162 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
2163 and RX600.
2164 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
2165 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
2166 * rx/t-rx: Add rx100 under multi library matches option for nofpu
2167 option.
2168
2169 2013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2170
2171 PR tree-optimization/57441
2172 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
2173 Don't limit size of incr_vec to number of candidates.
2174
2175 2013-05-29 Steve Ellcey <sellcey@imgtec.com>
2176
2177 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
2178 and mips16 directories.
2179 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
2180 (MULTILIB_DIRNAMES): Ditto.
2181 (MULTILIB_EXCEPTIONS): Add new exceptions.
2182 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
2183 (MULTILIB_DIRNAMES): Ditto.
2184 (MULTILIB_EXCEPTIONS): Add new exceptions.
2185
2186 2012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
2187 Marcus Shawcroft <marcus.shawcroft@arm.com>
2188
2189 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
2190 SYMBOL_TINY_ABSOLUTE.
2191 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
2192 SYMBOL_TINY_ABSOLUTE.
2193 (aarch64_expand_mov_immediate): Likewise.
2194 (aarch64_classify_symbol): Likewise.
2195 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
2196 Permit SYMBOL_TINY_ABSOLUTE.
2197 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
2198
2199 2013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
2200 Marcus Shawcroft <marcus.shawcroft@arm.com>
2201
2202 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
2203 Refactor if/switch. Replace gcc_assert with if.
2204
2205 2013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2206
2207 * config/i386/i386.c (initial_ix86_tune_features): Enable
2208 FP Reassociation for AMD bdver1 and bdver2.
2209
2210 2013-05-29 Martin Jambor <mjambor@suse.cz>
2211
2212 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
2213 and IMAGPART_EXPR do not occur within other handled_components.
2214
2215 2013-05-29 Richard Biener <rguenther@suse.de>
2216
2217 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
2218 access on whether the use is in the BB we currently try to
2219 vectorize.
2220 (vect_bb_vectorization_profitable_p): Pass the BB we currently
2221 vectorize to vect_bb_slp_scalar_cost.
2222
2223 2013-05-29 Richard Biener <rguenther@suse.de>
2224
2225 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
2226 computing scalar cost offsetted by stmts that are kept live
2227 by scalar uses.
2228 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
2229 for computation of scalar cost.
2230
2231 2013-05-28 Steve Ellcey <sellcey@mips.com>
2232
2233 * config/mips/mips-cpus.def (mips32r2): Change processor type.
2234
2235 2013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
2236
2237 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
2238 array notation built-in reduction functions.
2239 * doc/passes.texi (Passes): Added documentation about changes done
2240 for Cilk Plus.
2241 * doc/invoke.texi (C Dialect Options): Added documentation about
2242 the -fcilkplus flag.
2243 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
2244 (BUILTINS_DEF): Depend on cilkplus.def.
2245 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
2246 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
2247 * cilkplus.def: New file.
2248
2249 2013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
2250
2251 PR rtl-optimization/57439
2252 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
2253
2254 2013-05-28 Easwaran Raman <eraman@google.com>
2255
2256 PR tree-optimization/57337
2257 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
2258 (find_insert_point): Correctly identify the insertion point
2259 when two statements with the same UID is compared.
2260
2261 2013-05-28 Richard Biener <rguenther@suse.de>
2262
2263 PR tree-optimization/56787
2264 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
2265 from the list of data references.
2266 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
2267 clobbers.
2268 (vect_analyze_loop_operations): Likewise.
2269 (vect_transform_loop): Remove clobbers.
2270
2271 2013-05-28 Martin Jambor <mjambor@suse.cz>
2272
2273 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
2274 and REALPART_EXPRs have scalar type.
2275
2276 2013-05-28 Richard Biener <rguenther@suse.de>
2277
2278 PR tree-optimization/57411
2279 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
2280 virtual operands.
2281 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
2282 virtual operand propagation.
2283
2284 2013-05-28 Eric Botcazou <ebotcazou@adacore.com>
2285
2286 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
2287 destination register for bmasksi_vis.
2288 (vector_init_bshuffle): Likewise.
2289 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
2290
2291 2013-05-28 Eric Botcazou <ebotcazou@adacore.com>
2292
2293 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
2294 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
2295 mode if the instruction isn't available in the original mode.
2296 * config/sparc/sparc.opt (mfix-ut699): New option.
2297 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
2298 (divdf3): Turn into expander.
2299 (divdf3_nofix): New insn.
2300 (divdf3_fix): Likewise.
2301 (divsf3): Disable if -mfix-ut699.
2302 (sqrtdf2): Turn into expander.
2303 (sqrtdf2_nofix): New insn.
2304 (sqrtdf2_fix): Likewise.
2305 (sqrtsf2): Disable if -mfix-ut699.
2306
2307 2013-05-27 Richard Biener <rguenther@suse.de>
2308
2309 PR middle-end/57412
2310 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
2311 block for the new loop.
2312
2313 2013-05-27 Richard Biener <rguenther@suse.de>
2314
2315 PR tree-optimization/57343
2316 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
2317 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
2318 (number_of_iterations_cond): Do not build the folded tree.
2319
2320 2013-05-27 Richard Biener <rguenther@suse.de>
2321
2322 Revert
2323 PR middle-end/57381
2324 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
2325 OEP_CONSTANT_ADDRESS_OF retained.
2326
2327 PR tree-optimization/57417
2328 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
2329 for unchanged base.
2330 (set_ssa_val_to): Compare addresses using
2331 get_addr_base_and_unit_offset.
2332
2333 2013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
2334
2335 PR rtl-optimization/56833
2336 * postreload.c (move2add_record_mode): New function.
2337 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
2338 (move2add_use_add2_insn): Use move2add_record_sym_value.
2339 (move2add_use_add3_insn): Likewise.
2340 (reload_cse_move2add): Use move2add_valid_value_p and
2341 move2add_record_mode. Invalidate call-clobbered and REG_INC
2342 affected regs by setting reg_mode to VOIDmode.
2343 (move2add_note_store): Don't pretend the inside of a SUBREG is
2344 the actual destination. Invalidate single/leading registers by
2345 setting reg_mode to VOIDmode.
2346 Use move2add_record_sym_value, move2add_valid_value_p and
2347 move2add_record_mode.
2348
2349 2013-05-27 Richard Biener <rguenther@suse.de>
2350
2351 PR tree-optimization/57396
2352 * tree-affine.c (double_int_constant_multiple_p): Properly
2353 return false for val == 0 and div != 0.
2354
2355 2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
2356
2357 * config/mips/mips.h: Use #elif in preprocessor conditions.
2358
2359 2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
2360
2361 PR target/53916
2362 * config/mips/constraints.md (kl): New constraint.
2363 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
2364 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
2365 constraint for operand 0. Split after CSE for MIPS16. Emit a move
2366 from LO for MIPS16.
2367 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
2368
2369 2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
2370
2371 PR target/55777
2372 * config/mips/mips.c (mips_can_inline_p): New function.
2373 (TARGET_CAN_INLINE_P): Define.
2374
2375 2013-05-25 Steven Bosscher <steven@gcc.gnu.org>
2376
2377 * sched-int.h (ds_t, dw_t): Make unsigned int.
2378 Fix documentation that describes how all the ds_t bits are used.
2379 Reserve the last bit for delayed-branch scheduling.
2380 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
2381 (BITS_PER_DEP_WEAK): Fix definition and documentation.
2382 (gen_dep_weak_1): Remove prototype.
2383 * sched-deps.c (get_dep_weak_1): Make static.
2384 * target.def (speculate_insn, needs_block_p, gen_spec_check,
2385 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
2386 * doc/tm.texi: Regenerate.
2387 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
2388
2389 2013-05-24 Steven Bosscher <steven@gcc.gnu.org>
2390
2391 PR debug/56950
2392 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
2393
2394 2013-05-24 Nathan Sidwell <nathan@codesourcery.com>
2395 Sandra Loosemore <sandra@codesourcery.com>
2396
2397 * config.gcc (powerpc-*): Allow native for with-cpu.
2398
2399 2013-05-24 Jeff Law <law@redhat.com>
2400
2401 PR tree-optimization/57124
2402 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
2403 conversion feeding a condition if the range has an overflow
2404 if -fstrict-overflow. Add warnings for when we do make the
2405 transformation.
2406
2407 2013-05-24 Dehao Chen <dehao@google.com>
2408
2409 * tree-cfg.c (locus_discrim_map): Fix the typo.
2410 (locus_discrim_hasher): Likewise.
2411 (locus_discrim_hasher::hash): Likewise.
2412 (locus_discrim_hasher::equal): Likewise.
2413
2414 2013-05-24 Martin Jambor <mjambor@suse.cz>
2415
2416 PR tree-optimization/57294
2417 * cgraph.h (ipa_record_stmt_references): Declare.
2418 * cgraphbuild.c (ipa_record_stmt_references): New function.
2419 (build_cgraph_edges): Use ipa_record_stmt_references.
2420 (rebuild_cgraph_edges): Likewise.
2421 (cgraph_rebuild_references): Likewise.
2422 * ipa-prop.c (ipa_modify_call_arguments): Discard references
2423 associated with the old statement and build references from the
2424 newly built statements.
2425 * ipa-ref.c (ipa_remove_stmt_references): New function.
2426 * ipa-ref.h (ipa_remove_stmt_references): Declare.
2427
2428 2013-05-24 Vladimir Makarov <vmakarov@redhat.com>
2429
2430 * lra-constraints.c (emit_spill_move): Use smaller mode for
2431 mem-mem moves.
2432 (check_and_process_move): Consider mem-reg moves for secondary
2433 too.
2434 (curr_insn_transform): Don't lose insns emitted before for
2435 secondary memory moves.
2436 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
2437 reg set up in the current insn.
2438
2439 2013-05-24 Dehao Chen <dehao@google.com>
2440
2441 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
2442 hash function.
2443 (locus_descrim_hasher::equal): Likewise.
2444 (build_gimple_cfg): New discriminator assignment algorithm.
2445 (make_edges): Likewise.
2446 (next_discriminator_for_locus): Likewise.
2447 (same_line_p): Likewise.
2448 (assign_discriminators): Likewise.
2449 (make_cond_expr_edges): Likewise.
2450 (make_gimple_switch_edges): Likewise.
2451 (make_goto_expr_edges): Likewise.
2452 (make_gimple_asm_edges): Likewise.
2453
2454 2013-05-24 Ian Bolton <ian.bolton@arm.com>
2455
2456 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
2457 X format specifier to only display bottom 16 bits.
2458 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
2459 immediate to match for operand 2, since it will be masked.
2460
2461 2013-05-24 Richard Biener <rguenther@suse.de>
2462
2463 PR tree-optimization/57287
2464 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
2465 all SSA names that occur in abnormal PHIs.
2466
2467 2013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
2468
2469 PR tree-ssa/57385
2470 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
2471 that index is not negative.
2472
2473 2013-05-24 Eric Botcazou <ebotcazou@adacore.com>
2474
2475 PR rtl-optimization/55177
2476 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
2477 (simplify_byte_swapping_operation): New.
2478 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
2479 (simplify_relational_operation_1): Deal with BSWAP.
2480
2481 2013-05-23 Richard Henderson <rth@redhat.com>
2482
2483 PR target/56742
2484 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
2485 (ix86_reorg): Call it.
2486
2487 2013-05-23 Uros Bizjak <ubizjak@gmail.com>
2488
2489 PR target/57379
2490 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
2491 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
2492 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
2493
2494 2013-05-23 Christian Bruel <christian.bruel@st.com>
2495
2496 PR debug/57351
2497 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
2498
2499 2013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
2500 Marcus Shawcroft <marcus.shawcroft@arm.com>
2501
2502 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
2503 * config/aarch64/constraints.md (Usa): Remove.
2504 * doc/md.texi (AArch64 Usa): Remove.
2505
2506 2013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
2507 Marcus Shawcroft <marcus.shawcroft@arm.com>
2508
2509 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
2510 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
2511 * config/aarch64/predicates.md (aarch64_const_address): Remove.
2512 (aarch64_mov_operand): Use aarch64_mov_operand_p.
2513
2514 2013-05-23 Vidya Praveen <vidyapraveen@arm.com>
2515
2516 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
2517 instruction (AdvSIMD).
2518 * config/aarch64/aarch64-builtins.c
2519 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
2520 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
2521
2522 2013-05-23 Martin Jambor <mjambor@suse.cz>
2523
2524 PR middle-end/57347
2525 * tree.h (contains_bitfld_component_ref_p): Declare.
2526 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
2527 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
2528 caller.
2529 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
2530 not access a bit-field. Assert all final offsets are byte-aligned.
2531
2532 2013-05-23 Richard Biener <rguenther@suse.de>
2533
2534 PR tree-optimization/57380
2535 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
2536 least one invariant or re-used load.
2537 * passes.c (init_optimization_passes): Move pass_phiprop before
2538 pass_forwprop.
2539
2540 2013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
2541
2542 * config/aarch64/aarch64-simd.md
2543 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
2544
2545 2013-05-23 Richard Biener <rguenther@suse.de>
2546
2547 PR middle-end/57381
2548 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
2549 OEP_CONSTANT_ADDRESS_OF retained.
2550
2551 2013-05-23 Jakub Jelinek <jakub@redhat.com>
2552
2553 PR middle-end/57344
2554 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
2555 don't lower unit. Handle unit not being always BITS_PER_WORD.
2556
2557 2013-05-23 Richard Biener <rguenther@suse.de>
2558
2559 PR rtl-optimization/57341
2560 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
2561 instead of true_dependence.
2562
2563 2013-05-22 David Malcolm <dmalcolm@redhat.com>
2564
2565 * bb-reorder.c (branch_threshold): Make const.
2566 (exec_threshold): Ditto.
2567
2568 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
2569 Pat Haugen <pthaugen@us.ibm.com>
2570 Peter Bergner <bergner@vnet.ibm.com>
2571
2572 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
2573 documentation for the power8 crypto builtins.
2574
2575 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
2576
2577 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
2578 macros for defining power8 builtin functions.
2579 (BU_P8V_AV_2): Likewise.
2580 (BU_P8V_AV_P): Likewise.
2581 (BU_P8V_VSX_1): Likewise.
2582 (BU_P8V_OVERLOAD_1): Likewise.
2583 (BU_P8V_OVERLOAD_2): Likewise.
2584 (BU_CRYPTO_1): Likewise.
2585 (BU_CRYPTO_2): Likewise.
2586 (BU_CRYPTO_3): Likewise.
2587 (BU_CRYPTO_OVERLOAD_1): Likewise.
2588 (BU_CRYPTO_OVERLOAD_2): Likewise.
2589 (XSCVSPDP): Fix typo, point to the correct instruction.
2590 (VCIPHER): Add power8 crypto builtins.
2591 (VCIPHERLAST): Likewise.
2592 (VNCIPHER): Likewise.
2593 (VNCIPHERLAST): Likewise.
2594 (VPMSUMB): Likewise.
2595 (VPMSUMH): Likewise.
2596 (VPMSUMW): Likewise.
2597 (VPERMXOR_V2DI): Likewise.
2598 (VPERMXOR_V4SI: Likewise.
2599 (VPERMXOR_V8HI: Likewise.
2600 (VPERMXOR_V16QI: Likewise.
2601 (VSHASIGMAW): Likewise.
2602 (VSHASIGMAD): Likewise.
2603 (VPMSUM): Likewise.
2604 (VPERMXOR): Likewise.
2605 (VSHASIGMA): Likewise.
2606
2607 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
2608 __CRYPTO__ if the crypto instructions are available.
2609 (altivec_overloaded_builtins): Add support for overloaded power8
2610 builtins.
2611
2612 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
2613 support for power8 crypto builtins.
2614 (builtin_function_type): Likewise.
2615 (altivec_init_builtins): Add support for builtins that take vector
2616 long long (V2DI) arguments.
2617
2618 * config/rs6000/crypto.md: New file, define power8 crypto
2619 instructions.
2620
2621 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
2622 Pat Haugen <pthaugen@us.ibm.com>
2623 Peter Bergner <bergner@vnet.ibm.com>
2624
2625 * doc/invoke.texi (Option Summary): Add power8 options.
2626 (RS/6000 and PowerPC Options): Likewise.
2627
2628 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
2629 constraints.md instead of rs6000.h. Reorder w* constraints. Add
2630 wm, wn, wr documentation.
2631
2632 * gcc/config/rs6000/constraints.md (wm): New constraint for VSX
2633 registers if direct move instructions are enabled.
2634 (wn): New constraint for no registers.
2635 (wq): New constraint for quad word even GPR registers.
2636 (wr): New constraint if 64-bit instructions are enabled.
2637 (wv): New constraint if power8 vector instructions are enabled.
2638 (wQ): New constraint for quad word memory locations.
2639
2640 * gcc/config/rs6000/predicates.md (const_0_to_15_operand): New
2641 constraint for 0..15 for crypto instructions.
2642 (gpc_reg_operand): If VSX allow registers in VSX registers as well
2643 as GPR and floating point registers.
2644 (int_reg_operand): New predicate to match only GPR registers.
2645 (base_reg_operand): New predicate to match base registers.
2646 (quad_int_reg_operand): New predicate to match even GPR registers
2647 for quad memory operations.
2648 (vsx_reg_or_cint_operand): New predicate to allow vector logical
2649 operations in both GPR and VSX registers.
2650 (quad_memory_operand): New predicate for quad memory operations.
2651 (reg_or_indexed_operand): New predicate for direct move support.
2652
2653 * gcc/config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
2654 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
2655 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
2656 (POWERPC_MASKS): Add power8 options.
2657 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
2658 various options.
2659
2660 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
2661 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
2662
2663 * gcc/config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
2664 (-mpower8-fusion): New power8 options.
2665 (-mpower8-fusion-sign): Likewise.
2666 (-mpower8-vector): Likewise.
2667 (-mcrypto): Likewise.
2668 (-mdirect-move): Likewise.
2669 (-mquad-memory): Likewise.
2670
2671 * gcc/config/rs6000/rs6000.c (power8_cost): Initial definition for
2672 power8.
2673 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
2674 registers.
2675 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
2676 (rs6000_debug_vector_unit): Add p8_vector.
2677 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
2678 definitions. Also print fusion state.
2679 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
2680 (rs6000_builtin_mask_calculate): Add power8 builtin support.
2681 (rs6000_option_override_internal): Add support for power8.
2682 (rs6000_common_init_builtins): Add debugging for skipped builtins
2683 if -mdebug=builtin.
2684 (rs6000_adjust_cost): Add power8 support.
2685 (rs6000_issue_rate): Likewise.
2686 (insn_must_be_first_in_group): Likewise.
2687 (insn_must_be_last_in_group): Likewise.
2688 (force_new_group): Likewise.
2689 (rs6000_register_move_cost): Likewise.
2690 (rs6000_opt_masks): Likewise.
2691
2692 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
2693 power8 capable assembler, default to power7 options.
2694 (TARGET_DIRECT_MOVE): Likewise.
2695 (TARGET_CRYPTO): Likewise.
2696 (TARGET_P8_VECTOR): Likewise.
2697 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
2698 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
2699 (VECTOR_MEM_P8_VECTOR_P): Likewise.
2700 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
2701 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
2702 (TARGET_XSCVDPSPN): Likewise.
2703 (TARGET_XSCVSPDPN): Likewsie.
2704 (TARGET_SYNC_HI_QI): Likewise.
2705 (TARGET_SYNC_TI): Likewise.
2706 (MASK_CRYPTO): Likewise.
2707 (MASK_DIRECT_MOVE): Likewise.
2708 (MASK_P8_FUSION): Likewise.
2709 (MASK_P8_VECTOR): Likewise.
2710 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
2711 temporary used by some of the direct move instructions to get two FP
2712 temporary registers does not force creation of a stack frame.
2713 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
2714 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
2715 that any VSX registers are tieable, even if they are also an
2716 Altivec vector mode.
2717 (r6000_reg_class_enum): Add wm, wr, wv constraints.
2718 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
2719 (RS6000_BTM_CRYPTO): Likewise.
2720 (RS6000_BTM_COMMON): Likewise.
2721
2722 * config/rs6000/rs6000.md (cpu attribute): Add power8.
2723 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
2724 (enum rs6000_vector): Add power8 vector support.
2725
2726 2013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2727
2728 PR target/19599
2729 PR target/57340
2730 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
2731 (any_sibcall_could_use_r3): this and handle indirect calls.
2732 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
2733
2734 2013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2735
2736 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
2737
2738 2013-05-22 Richard Biener <rguenther@suse.de>
2739
2740 PR middle-end/57349
2741 * profile.c (branch_prob): Do not split blocks that are
2742 abnormally receiving from ECF_RETURNS_TWICE functions.
2743
2744 2013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
2745
2746 * recog.c (offsettable_address_addr_space_p): Fix calculation of
2747 address mode. Move pointer mode initialization to the same place.
2748
2749 2013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2750
2751 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
2752 while it has any effect.
2753
2754 2013-05-21 Easwaran Raman <eraman@google.com>
2755
2756 PR tree-optimization/57322
2757 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
2758 UID of the statement added to the BB to be 1.
2759
2760 2013-05-21 Jakub Jelinek <jakub@redhat.com>
2761
2762 PR tree-optimization/57331
2763 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
2764 of conversion from pointer type to integral type with integer.
2765
2766 2013-05-21 Martin Jambor <mjambor@suse.cz>
2767
2768 PR lto/57289
2769 * ipa-prop.c (ipa_read_node_info): Process param_used and
2770 controlled_uses in the same order as when writing.
2771
2772 2013-05-21 Magnus Granberg <baldrick@free.fr>
2773
2774 PR plugins/56754
2775 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
2776
2777 2013-05-21 Richard Biener <rguenther@suse.de>
2778
2779 PR tree-optimization/57318
2780 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
2781 estimate stmts with side-effects as likely eliminated.
2782
2783 2013-05-21 Richard Biener <rguenther@suse.de>
2784
2785 PR tree-optimization/57330
2786 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
2787 preserve the call stmts fntype.
2788
2789 2013-05-21 Richard Biener <rguenther@suse.de>
2790
2791 PR tree-optimization/57303
2792 * tree-ssa-sink.c (statement_sink_location): Improve killing
2793 stmt detection and properly handle self-assignments.
2794
2795 2013-05-21 Christian Bruel <christian.bruel@st.com>
2796
2797 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
2798 spanning registers. LEAF_REG_REMAP is supported only for contiguous
2799 registers. Set register size out of the PARALLEL loop.
2800
2801 2013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
2802
2803 PR target/56547
2804 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
2805 (*fmasf4, *fmasf4_media): New insns.
2806
2807 2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
2808
2809 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
2810 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
2811 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
2812 (mips_idiv_insns): Update the comments to say that the returned
2813 instruction counts are in units of BASE_INSN_LENGTH.
2814 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
2815 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
2816 using 2 rather than 4 as the length of indirect MIPS16 and
2817 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
2818 length of a NOP. Don't divide MIPS16 lengths by 2.
2819 (mips16_split_long_branches): Assume a branch is long if the
2820 length is greater than 4 rather than 8.
2821 * config/mips/mips.md (length): Give MIPS16 lengths directly,
2822 rather than multiplying them by 2. Multiply instruction counts
2823 by BASE_INSN_LENGTH rather than 4.
2824 (*jump_mips16, tls_get_tp_mips16_<mode>)
2825 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
2826
2827 2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
2828
2829 * config/mips/mips.md (extended_mips16): Remove branch case.
2830 (length): Remove duplicated extended_mips16 test.
2831
2832 2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
2833
2834 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
2835
2836 2013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
2837
2838 * recog.h (Recog_data): Rename to...
2839 (recog_data_d): ...this.
2840 (recog_data): Update accordingly.
2841 * recog.c (recog_data): Likewise.
2842 * reload.c (save_recog_data): Likewise.
2843 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
2844 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
2845
2846 2013-05-17 Julian Brown <julian@codesourcery.com>
2847
2848 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
2849 found in a REG_EQUAL note, invalidate it.
2850
2851 2013-05-17 Easwaran Raman <eraman@google.com>
2852
2853 * tree-ssa-reassoc.c (find_insert_point): New function.
2854 (insert_stmt_after): Likewise.
2855 (get_def_stmt): Likewise.
2856 (ensure_ops_are_available): Likewise.
2857 (not_dominated_by): Likewise.
2858 (rewrite_expr_tree): Do not move statements beyond what is
2859 necessary. Remove call to swap_ops_for_binary_stmt...
2860 (reassociate_bb): ... and move it here.
2861 (build_and_add_sum): Assign UIDs for new statements.
2862 (linearize_expr): Likewise.
2863 (do_reassoc): Renumber gimple statement UIDs.
2864
2865 2013-05-17 Jan Hubicka <jh@suse.cz>
2866
2867 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
2868 weakrefs.
2869 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
2870 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
2871 weakrefs.
2872 (output_weakrefs): Update.
2873
2874 2013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
2875 Martin Jambor <mjambor@suse.cz>
2876
2877 PR middle-end/57276
2878 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
2879 value that corresponds to the given aggval is found in values vector.
2880
2881 2013-05-17 Uros Bizjak <ubizjak@gmail.com>
2882
2883 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
2884 sse, sse2, sse3, ssse3 and sse4a flags to options.
2885
2886 2013-05-17 David Malcolm <dmalcolm@redhat.com>
2887
2888 * gengtype-state.c: (s_expr_writer): New class, to handle
2889 prettifying of output layout of s-expressions.
2890 (state_writer): New class, to write out gtype.state.
2891 (state_written_type_count): Move this variable into member data of
2892 state_writer.
2893 (s_expr_writer::s_expr_writer): New code: constructor for new class
2894 (state_writer::state_writer(): ditto
2895 (s_expr_writer::write_new_line): New function
2896 (s_expr_writer::write_any_indent): ditto
2897 (s_expr_writer::begin_s_expr): ditto
2898 (s_expr_writer::end_s_expr): ditto
2899 (write_state_fileloc): convert to method of state_writer...
2900 (state_writer:: write_state_fileloc): ...and use methods of
2901 s_expr_writer to write indentation into the gtype.state output file
2902 to visually represent the hierarchical structure of the list
2903 structures
2904 (write_state_fields): ditto, renaming to...
2905 (state_writer::write_state_fields)
2906 (write_state_a_string): ditto, renaming to...
2907 (state_writer::write_state_a_string)
2908 (write_state_string_option): ditto, renaming to...
2909 (state_writer::write_state_string_option)
2910 (write_state_type_option): ditto, renaming to...
2911 (state_writer::write_state_type_option)
2912 (write_state_nested_option): ditto, renaming to...
2913 (state_writer::write_state_nested_option)
2914 (write_state_option): ditto, renaming to...
2915 (state_writer::write_state_option)
2916 (write_state_options): ditto, renaming to...
2917 (state_writer::write_state_options)
2918 (write_state_lang_bitmap): ditto, renaming to...
2919 (state_writer::write_state_lang_bitmap)
2920 (write_state_version): ditto, renaming to...
2921 (state_writer::write_state_version)
2922 (write_state_scalar_type): ditto, renaming to...
2923 (state_writer::write_state_scalar_type)
2924 (write_state_string_type): ditto, renaming to...
2925 (state_writer::write_state_string_type)
2926 (write_state_undefined_type): ditto, renaming to...
2927 (state_writer::write_state_undefined_type)
2928 (write_state_struct_union_type): ditto, renaming to...
2929 (state_writer::write_state_struct_union_type)
2930 (write_state_struct_type): ditto, renaming to...
2931 (state_writer::write_state_struct_type)
2932 (write_state_user_struct_type): ditto, renaming to...
2933 (state_writer::write_state_user_struct_type)
2934 (write_state_lang_struct_type): ditto, renaming to...
2935 (state_writer::write_state_lang_struct_type)
2936 (write_state_param_struct_type): ditto, renaming to...
2937 (state_writer::write_state_param_struct_type)
2938 (write_state_pointer_type): ditto, renaming to...
2939 (state_writer::write_state_pointer_type)
2940 (write_state_array_type): ditto, renaming to...
2941 (state_writer::write_state_array_type)
2942 (write_state_gc_used): ditto, renaming to...
2943 (state_writer::write_state_gc_used)
2944 (write_state_common_type_content): ditto, renaming to...
2945 (state_writer::write_state_common_type_content)
2946 (write_state_type): ditto, renaming to...
2947 (state_writer::write_state_type)
2948 (write_state_pair_list): ditto, renaming to...
2949 (state_writer::write_state_pair_list)
2950 (write_state_pair): ditto, renaming to...
2951 (state_writer::write_state_pair)
2952 (write_state_typedefs): ditto, renaming to...
2953 (state_writer::write_state_typedefs)
2954 (write_state_structures): ditto, renaming to...
2955 (state_writer::write_state_structures)
2956 (write_state_param_structs): ditto, renaming to...
2957 (state_writer::write_state_param_structs)
2958 (write_state_variables): ditto, renaming to...
2959 (state_writer::write_state_variables)
2960 (write_state_srcdir): ditto, renaming to...
2961 (state_writer::write_state_srcdir)
2962 (write_state_files_list): ditto, renaming to...
2963 (state_writer::write_state_files_list)
2964 (write_state_languages): ditto, renaming to...
2965 (state_writer::write_state_languages)
2966 (write_state): create a state_writer instance and use it when
2967 writing out the state file
2968
2969 2013-05-17 Mike Stump <mikestump@comcast.net>
2970
2971 PR rtl-optimization/57304
2972 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
2973 accessing DF_REF_REAL_LOC.
2974
2975 2013-05-17 Jakub Jelinek <jakub@redhat.com>
2976
2977 PR rtl-optimization/57281
2978 PR rtl-optimization/57300
2979 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
2980 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
2981 what the other splitter did if the registers are dead.
2982
2983 2013-05-17 Richard Biener <rguenther@suse.de>
2984
2985 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
2986 MEM_REF offsets.
2987
2988 2013-05-17 Jakub Jelinek <jakub@redhat.com>
2989
2990 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
2991 linking.
2992
2993 2013-05-17 Marek Polacek <polacek@redhat.com>
2994
2995 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
2996 length when doing non-zero store of storing '\0' to '\0'.
2997
2998 2013-05-17 Jakub Jelinek <jakub@redhat.com>
2999
3000 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
3001 vect_external_def oprnd1 with loop_vinfo, try to emit
3002 optional cast, negation and and stmts on the loop preheader
3003 edge instead of into the pattern def seq.
3004
3005 PR tree-optimization/57051
3006 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
3007 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
3008
3009 2013-05-16 Nick Clifton <nickc@redhat.com>
3010
3011 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
3012 (rl78_is_naked_func): New function.
3013 (rl78_expand_prologue): Skip prologue generation for naked functions.
3014 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
3015 * doc/extend.texi (naked): Add RL78 to the list of processors
3016 that supports this attribute.
3017
3018 2013-05-16 Jeff Law <law@redhat.com>
3019
3020 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
3021
3022 2013-05-16 Uros Bizjak <ubizjak@gmail.com>
3023
3024 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
3025 cache parameters using detect_caches_amd also for CYRIX,
3026 NSC and TM2 signatures.
3027
3028 2013-05-16 Uros Bizjak <ubizjak@gmail.com>
3029 Dzianis Kahanovich <mahatma@eu.by>
3030
3031 PR target/45359
3032 PR target/46396
3033 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3034 VIA/Centaur processors and determine their cache parameters
3035 using detect_caches_amd.
3036
3037 2013-05-16 Teresa Johnson <tejohnson@google.com>
3038
3039 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
3040 (rtl_verify_edges): New function.
3041 (rtl_verify_bb_insns): Ditto.
3042 (rtl_verify_bb_pointers): Ditto.
3043 (rtl_verify_bb_insn_chain): Ditto.
3044 (rtl_verify_fallthru): Ditto.
3045 (rtl_verify_bb_layout): Ditto.
3046 (rtl_verify_flow_info_1): Outline checks into new functions.
3047 (rtl_verify_flow_info): Ditto.
3048
3049 2013-05-16 Steve Ellcey <sellcey@imgtec.com>
3050
3051 * cfghooks.c (copy_bbs): Add update_dominance argument.
3052 * cfghooks.h (copy_bbs): Update prototype.
3053 * tree-cfg.c (gimple_duplicate_sese_region):
3054 Add update_dominance argument.
3055 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
3056 * tree-ssa-loop-ch.c (copy_loop_headers): Update
3057 gimple_duplicate_sese_region call.
3058 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
3059 Update copy_bbs call.
3060 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
3061 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
3062
3063 2013-05-16 Jakub Jelinek <jakub@redhat.com>
3064
3065 * tree-vectorizer.h (NUM_PATTERNS): Increment.
3066 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
3067 vect_recog_rotate_pattern.
3068 (vect_recog_rotate_pattern): New function.
3069
3070 2013-05-16 Jason Merrill <jason@redhat.com>
3071
3072 * Makefile.in (LLINKER): New variable.
3073 (mostlyclean): Remove link mutex.
3074 * configure.ac: Handle --enable-link-mutex.
3075 * lock-and-run.sh: New script.
3076
3077 2013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3078
3079 PR target/19599
3080 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
3081 for NULL decl.
3082
3083 2013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3084
3085 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
3086
3087 2013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
3088
3089 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
3090 * config/arm/arm.c (next_consecutive_mem): New function.
3091 (gen_movmem_ldrd_strd): Likewise.
3092 * config/arm/arm.md (movmemqi): Update condition and code.
3093 (unaligned_loaddi, unaligned_storedi): New patterns.
3094
3095 2013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3096
3097 * config.gcc: Obsolete *-*-solaris2.9*.
3098 * doc/install.texi (Specific, *-*-solaris2*): Document it.
3099
3100 2013-05-16 Richard Biener <rguenther@suse.de>
3101
3102 * passes.c (init_optimization_passes): Move pass_parallelize_loops
3103 earlier, after GRAPHITE transforms and IV canonicalization.
3104
3105 2013-05-16 Jakub Jelinek <jakub@redhat.com>
3106
3107 * omp-low.c (extract_omp_for_data): For collapsed loops,
3108 if at least one of the loops is known at compile time to
3109 iterate zero times, set count to 0.
3110 (expand_omp_regimplify_p): New function.
3111 (expand_omp_for_generic): For collapsed loops, if at least
3112 one of the loops isn't known to iterate at least once,
3113 add runtime check with setting count to 0.
3114 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
3115 For unsigned types if it isn't known at compile time that
3116 the loop will iterate at least once, add runtime check to bypass
3117 the whole loop if initial condition isn't true.
3118
3119 2013-05-16 Nathan Sidwell <nathan@codesourcery.com>
3120
3121 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
3122
3123 2013-05-16 Marc Glisse <marc.glisse@inria.fr>
3124
3125 PR middle-end/57286
3126 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
3127 transformations to avoid an infinite loop.
3128
3129 2013-05-16 Marek Polacek <polacek@redhat.com>
3130
3131 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
3132
3133 2013-05-15 Leif Ekblad <leif@rdos.net>
3134
3135 * config/i386/i386.c (ix86_decompose_address): Use
3136 DEFAULT_TLS_SEG_REG to access TLS segment register.
3137 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
3138 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
3139 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
3140
3141 2013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
3142
3143 PR target/57260
3144 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
3145 sibling calls to functions that would normally be lazily bound,
3146 unless $gp is call-clobbered.
3147
3148 2013-05-15 Uros Bizjak <ubizjak@gmail.com>
3149
3150 * config/i386/i386.c (ix86_option_override_internal): Update
3151 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
3152 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
3153 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
3154 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
3155 of TARGET_3DNOW.
3156 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
3157
3158 2013-05-15 Andreas Schwab <schwab@suse.de>
3159
3160 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
3161 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
3162 third operand.
3163
3164 2013-05-15 Teresa Johnson <tejohnson@google.com>
3165
3166 * loop-unroll.c (report_unroll_peel): Check decision before
3167 emitting unroll/peel message.
3168
3169 2013-05-15 Teresa Johnson <tejohnson@google.com>
3170
3171 * function.h (has_bb_partition): New rtl_data flag.
3172 (bb_reorder_complete): Ditto.
3173 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
3174 instead of flag_reorder_blocks_and_partition.
3175 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
3176 with some enhancements.
3177 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
3178 * bb-reorder.c (connect_traces): Check for has_bb_partition
3179 instead of flag_reorder_blocks_and_partition.
3180 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
3181 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
3182 verify_hot_cold_block_grouping.
3183 (partition_hot_cold_basic_blocks): Set has_bb_partition.
3184
3185 2013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3186
3187 PR target/19599
3188 * config/arm/predicates.md (call_insn_operand): New predicate.
3189 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
3190 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
3191 if insn is not a tail call.
3192 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
3193 registers.
3194 * config/arm/arm.h (enum reg_class): New caller save register class.
3195 (REG_CLASS_NAMES): Likewise.
3196 (REG_CLASS_CONTENTS): Likewise.
3197 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
3198 without decls.
3199
3200 2013-05-15 Richard Biener <rguenther@suse.de>
3201
3202 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
3203 of MSG_OPTIMIZED_LOCATIONS.
3204 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
3205 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
3206 message.
3207 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
3208 of MSG_OPTIMIZED_LOCATIONS.
3209 (execute_vect_slp): Likewise.
3210 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
3211 (vect_create_cond_for_alias_checks): Likewise.
3212 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
3213 (vect_recog_widen_mult_pattern): Likewise.
3214 (vect_recog_widen_sum_pattern): Likewise.
3215 (vect_recog_over_widening_pattern): Likewise.
3216 (vect_recog_widen_shift_pattern): Likewise.
3217 (vect_recog_vector_vector_shift_pattern): Likewise.
3218 (vect_recog_divmod_pattern): Likewise.
3219 (vect_recog_mixed_size_cond_pattern): Likewise.
3220 (vect_recog_bool_pattern): Likewise.
3221 (vect_pattern_recog_1): Likewise.
3222
3223 2013-05-15 Martin Jambor <mjambor@suse.cz>
3224
3225 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
3226 non-functions to builtin_unreachable.
3227 * ipa-inline-transform.c (inline_call): Do not assert estimates were
3228 correct when new direct edges were discovered.
3229
3230 2013-05-15 Martin Jambor <mjambor@suse.cz>
3231
3232 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
3233 header, print symbol order instead of node uid, print more information
3234 about indirect edge targets.
3235 (ipa_make_edge_direct_to_target): Print symbol order instead of node
3236 uids.
3237 (ipa_make_edge_direct_to_target): Likewise.
3238 (remove_described_reference): Likewise.
3239 (propagate_controlled_uses): Likewise.
3240 (ipa_print_node_params): Also print symbol order.
3241 (ipcp_transform_function): Print symbol order instead of node uids.
3242 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
3243 (cgraph_get_create_real_symbol_node): Likewise.
3244 * ipa-cp.c (print_lattice): Likewise.
3245 (print_all_lattices): Likewise.
3246 (determine_versionability): Likewise.
3247 (initialize_node_lattices): Likewise.
3248 (estimate_local_effects): Likewise.
3249 (update_profiling_info): Likewise.
3250 (create_specialized_node): Likewise.
3251 (perhaps_add_new_callers): Likewise.
3252 (decide_about_value): Likewise.
3253 (decide_whether_version_node): Likewise.
3254 (identify_dead_nodes): Likewise.
3255 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
3256 (dump_inline_summary): Likewise.
3257 (estimate_node_size_and_time): Likewise.
3258 (inline_analyze_function): Likewise.
3259 * ipa-inline.c (report_inline_failed_reason): Likewise.
3260 (want_early_inline_function_p): Likewise.
3261 (edge_badness): Likewise.
3262 (update_edge_key): Likewise.
3263 (inline_small_functions): Likewise. Add dumping of order to two other
3264 dumps.
3265 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
3266 instead of node uids.
3267 (propagate_pure_const): Likewise.
3268 (propagate_pure_const): Likewise.
3269 * ipa-utils.c (dump_cgraph_node_set): Likewise.
3270 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
3271 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
3272 of node uids.
3273 * tree-pretty-print.c (dump_function_header): Likewise.
3274 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
3275 Print symbol order instead of node uids.
3276
3277 2013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3278
3279 * config/s390/s390.c (s390_register_move_cost): Don't impose the
3280 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
3281
3282 2013-05-15 Richard Biener <rguenther@suse.de>
3283
3284 PR tree-optimization/57275
3285 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
3286 return value for fail to do runtime alias checks for gather loads.
3287
3288 2013-05-15 Jan Hubicka <jh@suse.cz>
3289
3290 PR lto/57038
3291 PR lto/47375
3292 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
3293 weakrefs are not external.
3294 (lto_symtab_merge_decls): Fix thinko when dealing with
3295 non-lto_symtab decls.
3296 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
3297 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
3298 * varpool.c (dump_varpool_node): Dump more flags.
3299
3300 2013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
3301
3302 * config/i386/i386.c (processor_alias_table): Add instruction
3303 FSGSBASE for AMD bdver3 architecture.
3304
3305 2013-05-14 Jakub Jelinek <jakub@redhat.com>
3306
3307 * tree.c (warn_deprecated_use): Print file:line using locus color.
3308 * diagnostic.c (diagnostic_report_current_module): Print file:line
3309 and file:line:column using locus color.
3310
3311 2013-05-14 Mike Stump <mikestump@comcast.net>
3312
3313 * gdbinit.in: Add __null.
3314
3315 2013-05-14 Mike Stump <mikestump@comcast.net>
3316
3317 * recog.h: Rename struct recog_data to Recog_data.
3318 * recog.c: Likewise.
3319 * reload.c (can_reload_into): Likewise.
3320 * config/picochip/picochip.c: Likewise.
3321
3322 2013-05-14 Mike Stump <mikestump@comcast.net>
3323
3324 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
3325
3326 2013-05-14 Steven Bosscher <steven@gcc.gnu.org>
3327
3328 * resource.h (struct resources): Remove unch_memory member.
3329 (CLEAR_RESOURCE): Don't clear unch_memory.
3330 * resource.c (mark_referenced_resources): Don't set it.
3331 (mark_set_resources): Likewise.
3332 (mark_target_live_regs): Don't clear it.
3333 (init_resource_info): Likewise.
3334 * reorg.c (resource_conflicts_p): Don't compare it.
3335 (redundant_insn): Don't set it.
3336
3337 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
3338 Remove prototypes.
3339 * emit-rtl.c (next_label): Remove unused function.
3340 (skip_consecutive_labels, link_cc0_insns): Move to ...
3341 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
3342 only place where these functions are used, and make them static.
3343
3344 2013-05-14 Marc Glisse <marc.glisse@inria.fr>
3345
3346 * fold-const.c (fold_negate_expr): Handle vectors.
3347 (fold_truth_not_expr): Make it static.
3348 (fold_invert_truthvalue): New static function.
3349 (invert_truthvalue_loc): Handle vectors. Do not call
3350 fold_truth_not_expr directly.
3351 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
3352 <TRUTH_NOT_EXPR>: Do not cast to boolean.
3353 (fold_comparison): Handle vector constants.
3354 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
3355 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
3356 * tree.h (fold_truth_not_expr): Remove declaration.
3357
3358 2013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
3359
3360 * config/aarch64/aarch64-simd.md
3361 (aarch64_vcond_internal<mode>): Rename to...
3362 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
3363 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
3364 float modes. Clarify all iterator modes.
3365 (vcond<mode><mode>): Use new name for vcond expanders.
3366 (vcond<v_cmp_result><mode>): Likewise.
3367 (vcondu<mode><mode>: Likewise.
3368 * config/aarch64/iterators.md (VDQF_COND): New.
3369
3370 2013-05-14 Marc Glisse <marc.glisse@inria.fr>
3371
3372 PR bootstrap/57266
3373 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
3374 variable for the shift amount. Check that we shift by non-negative
3375 amounts.
3376
3377 2013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
3378
3379 PR target/42017
3380 * config/arm/arm.h (EPILOGUE_USES): Only return true
3381 for LR_REGNUM after epilogue_completed.
3382
3383 2013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
3384
3385 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
3386 is error_mark_node.
3387
3388 2013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3389
3390 PR target/57261
3391 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
3392 and Solaris 11+/x86 with gld.
3393 * configure: Regenerate.
3394
3395 2013-05-14 Jakub Jelinek <jakub@redhat.com>
3396
3397 * expmed.c (expand_shift_1): Canonicalize rotates by
3398 constant bitsize / 2 to bitsize - 1.
3399 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
3400 case ROTATERT>: Likewise.
3401
3402 Revert:
3403 2013-05-10 Jakub Jelinek <jakub@redhat.com>
3404
3405 * config/i386/i386.md (rotateinv): New code attr.
3406 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
3407 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
3408 roll $31, %eax, etc.
3409
3410 2013-05-14 Richard Biener <rguenther@suse.de>
3411
3412 PR middle-end/57235
3413 * tree-eh.c (sink_clobbers): Give up for successors with
3414 multiple predecessors and no virtual uses.
3415
3416 2013-05-14 Eric Botcazou <ebotcazou@adacore.com>
3417
3418 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
3419 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
3420
3421 2013-05-14 Jakub Jelinek <jakub@redhat.com>
3422
3423 PR middle-end/57251
3424 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
3425 the case when both op0 and op1 have VOIDmode.
3426
3427 2013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
3428
3429 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
3430 in multiply-accumulate mode.
3431
3432 2013-05-13 Guozhi Wei <carrot@google.com>
3433
3434 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
3435
3436 2013-05-13 Kai Tietz <ktietz@redhat.com>
3437
3438 PR target/56975
3439 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
3440 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
3441 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
3442 * config/i386/i386.c (ix86_option_override_internal): Likewise.
3443 (ix86_expand_prologue): Likewise.
3444 (ix86_expand_split_stack_prologue): Likewise.
3445 (legitimate_pic_address_disp_p): Likewise.
3446 (legitimize_pic_address): Likewise.
3447 (legitimize_tls_address): Likewise.
3448 (legitimize_pe_coff_symbol): Likewise.
3449 (output_pic_addr_const): Likewise.
3450 (construct_plt_address): Likewise.
3451 (ix86_expand_call): Likewise.
3452 (x86_output_mi_thunk): Likewise.
3453 (x86_function_profiler): Likewise.
3454
3455 2013-05-13 Sofiane Naci <sofiane.naci@arm.com>
3456
3457 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
3458 similar switch cases.
3459 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
3460 (aarch64_simd_mov_to_<mode>low): Delete.
3461 (aarch64_simd_mov_to_<mode>high): Delete.
3462 (move_lo_quad_<mode>): Add w<-r alternative.
3463 (aarch64_simd_move_hi_quad_<mode>): Likewise.
3464 (aarch64_simd_mov_from_*): Update type attribute.
3465 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
3466 statement.
3467
3468 2013-05-13 Jan Hubicka <jh@suse.cz>
3469
3470 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
3471 * config/i386/i386.c (ix86_compute_frame_layout,
3472 ix86_expand_epilogue, emit_i387_cw_initialization,
3473 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
3474 ix86_local_alignment): Fix use of size/speed predicates.
3475
3476 2013-05-13 Jakub Jelinek <jakub@redhat.com>
3477
3478 PR tree-optimization/45216
3479 PR tree-optimization/57157
3480 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
3481 the (-Y) & (B - 1) variant if OP is |.
3482 * expmed.c (expand_shift_1): For rotations by const0_rtx just
3483 return shifted. Use (-op1) & (prec - 1) as other_amount
3484 instead of prec - op1.
3485
3486 2013-05-13 Martin Jambor <mjambor@suse.cz>
3487
3488 PR middle-end/42371
3489 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
3490 (ipa_constant_data): New type.
3491 (ipa_jump_func): Use ipa_constant_data to hold information about
3492 constant jump functions.
3493 (ipa_get_jf_constant): Adjust to jump function type changes.
3494 (ipa_get_jf_constant_rdesc): New function.
3495 (ipa_param_descriptor): New field controlled_uses.
3496 (ipa_get_controlled_uses): New function.
3497 (ipa_set_controlled_uses): Likewise.
3498 * ipa-ref.h (ipa_find_reference): Declare.
3499 * ipa-prop.c (ipa_cst_ref_desc): New type.
3500 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
3501 changes.
3502 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
3503 New parameter cs. Adjust all callers.
3504 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
3505 (remove_described_reference): New function.
3506 (jfunc_rdesc_usable): Likewise.
3507 (try_make_edge_direct_simple_call): Decrement controlled use count,
3508 attempt to remove reference if it hits zero.
3509 (combine_controlled_uses_counters): New function.
3510 (propagate_controlled_uses): Likewise.
3511 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
3512 (ipa_edge_duplication_hook): Duplicate reference descriptions.
3513 (ipa_print_node_params): Print described use counter.
3514 (ipa_write_jump_function): Adjust to jump function type changes.
3515 (ipa_read_jump_function): New parameter CS, pass it to
3516 ipa_set_jf_constant. Adjust caller.
3517 (ipa_write_node_info): Stream controlled use count
3518 (ipa_read_node_info): Likewise.
3519 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
3520 asserting.
3521 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
3522 count. Remove cloning-added reference if it reaches zero.
3523 * ipa-ref.c (ipa_find_reference): New function.
3524
3525 2013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
3526
3527 * config/i386/i386.c (processor_target_table): Modified default
3528 alignment values for AMD BD and BT architectures.
3529
3530 2013-05-13 Marc Glisse <marc.glisse@inria.fr>
3531
3532 * tree-vect-generic.c (uniform_vector_p): Move ...
3533 * tree.c (uniform_vector_p): ... here.
3534 * tree.h (uniform_vector_p): Declare it.
3535 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
3536 into a scalar.
3537
3538 2013-05-13 Jakub Jelinek <jakub@redhat.com>
3539
3540 PR tree-optimization/57230
3541 * tree-ssa-strlen.c (handle_char_store): Record length for
3542 array store from STRING_CST.
3543
3544 PR tree-optimization/57230
3545 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
3546 check.
3547
3548 2013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
3549
3550 * config/epiphany/epiphany.c (epiphany_init): Check size of
3551 NUM_MODES_FOR_MODE_SWITCHING.
3552 (epiphany_expand_prologue):
3553 Remove CONFIG_REGNUM initial value handling code.
3554 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
3555 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
3556 (emit_set_fp_mode, epiphany_mode_after): Likewise.
3557 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
3558 Don't return 1 for FP_MODE_NONE.
3559 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
3560 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
3561 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
3562 * config/epiphany/epiphany.md (save_config): New pattern.
3563
3564 2013-05-12 Uros Bizjak <ubizjak@gmail.com>
3565
3566 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
3567
3568 2013-05-10 Uros Bizjak <ubizjak@gmail.com>
3569
3570 * config/i386/i386.md (memory): Handle sseishft1.
3571 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
3572 (*vec_extractv2di_1): Ditto.
3573
3574 2013-05-10 Vladimir Makarov <vmakarov@redhat.com>
3575
3576 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
3577 saved registers.
3578
3579 2013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
3580
3581 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
3582 Add mthumb/march=armv7-a multilib.
3583 Add mthumb/march=armv7-r multilib.
3584 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
3585
3586 2013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
3587
3588 * config/v850/t-rtems: Add more multilibs.
3589
3590 2013-05-10 Richard Biener <rguenther@suse.de>
3591
3592 PR tree-optimization/57214
3593 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
3594 not propagate from SSA names that occur in abnormal PHI nodes.
3595
3596 2013-05-10 Marc Glisse <marc.glisse@inria.fr>
3597
3598 * stor-layout.c (element_precision): New function.
3599 * machmode.h (element_precision): Declare it.
3600 * tree.c (build_minus_one_cst): New function.
3601 (element_precision): Likewise.
3602 * tree.h (build_minus_one_cst): Declare new function.
3603 (element_precision): Likewise.
3604 * fold-const.c (operand_equal_p): Use element_precision.
3605 (fold_binary_loc): Handle vector types.
3606 * convert.c (convert_to_integer): Use element_precision.
3607 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
3608 separately.
3609
3610 2013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
3611
3612 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
3613 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
3614 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
3615 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
3616 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
3617 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
3618 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
3619 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
3620 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
3621 (Uuw8): New constraints.
3622 (Usb4): Move into alphabetical order.
3623 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
3624 (sd8_operand, ub8_operand, uw8_operand): New predicates.
3625 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
3626 previously unnamed patterns.
3627 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
3628 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
3629 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
3630 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
3631 of set_attr_alternative/if_then_else. Use extended_mips16 instead
3632 of specific lengths.
3633
3634 2013-05-10 Jakub Jelinek <jakub@redhat.com>
3635
3636 * config/i386/i386.md (rotateinv): New code attr.
3637 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
3638 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
3639 roll $31, %eax, etc.
3640
3641 PR tree-optimization/45216
3642 PR tree-optimization/57157
3643 * tree-ssa-forwprop.c (simplify_rotate): New function.
3644 (ssa_forward_propagate_and_combine): Call it.
3645
3646 2013-05-10 Richard Biener <rguenther@suse.de>
3647
3648 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
3649 disable peeling when we version for aliasing.
3650 (vector_alignment_reachable_p): Honor explicit user alignment.
3651 (vect_supportable_dr_alignment): Likewise.
3652 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
3653 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
3654 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
3655 then peeling to arrange for the cost-model check to come first.
3656
3657 2013-05-10 Alan Modra <amodra@gmail.com>
3658
3659 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
3660 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
3661 * configure: Regenerate.
3662
3663 2013-05-10 Alan Modra <amodra@gmail.com>
3664
3665 PR target/55033
3666 * varasm.c (default_elf_select_section): Move !DECL_P check..
3667 (get_named_section): ..to here before calling get_section_name.
3668 Adjust assertion.
3669 (default_section_type_flags): Add DECL_P check.
3670 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
3671 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
3672
3673 2013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
3674
3675 * config/epiphany/epiphany.c (epiphany_expand_prologue):
3676 When using gen_stack_adjust_str with a register offset, add a
3677 REG_FRAME_RELATED_EXPR note.
3678
3679 2013-05-09 Uros Bizjak <ubizjak@gmail.com>
3680
3681 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
3682 (*vec_extractv4si_zext_mem): Ditto.
3683 (*vec_extractv2di): Add 0->x and x->x alternatives.
3684 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
3685 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
3686
3687 2013-05-09 Jason Merrill <jason@redhat.com>
3688
3689 N3639 C++1y VLA support
3690 * gimplify.c (gimplify_vla_decl): Don't touch an existing
3691 DECL_VALUE_EXPR.
3692
3693 * tree.c (build_constructor_va): New.
3694 * tree.h: Declare it.
3695
3696 2013-05-09 Martin Jambor <mjambor@suse.cz>
3697
3698 PR lto/57084
3699 * gimple-fold.c (canonicalize_constructor_val): Call
3700 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
3701
3702 2013-05-09 Jan Hubicka <jh@suse.cz>
3703 Richard Biener <rguenther@suse.de>
3704
3705 PR lto/54095
3706 * symtab.c (symtab_make_decl_local): Do not add private names.
3707
3708 2013-05-09 Jan Hubicka <jh@suse.cz>
3709
3710 PR lto/54095
3711 * symtab.c (insert_to_assembler_name_hash): Handle clones.
3712 (unlink_from_assembler_name_hash): Likewise.
3713 (symtab_prevail_in_asm_name_hash, symtab_register_node,
3714 symtab_unregister_node, symtab_initialize_asm_name_hash,
3715 change_decl_assembler_name): Update.
3716
3717 2013-05-09 Sofiane Naci <sofiane.naci@arm.com>
3718
3719 * config/aarch64/aarch64.md: New movtf split.
3720 (*movtf_aarch64): Update.
3721 (aarch64_movdi_tilow): Handle TF modes and rename to
3722 aarch64_movdi_<mode>low.
3723 (aarch64_movdi_tihigh): Handle TF modes and rename to
3724 aarch64_movdi_<mode>high
3725 (aarch64_movtihigh_di): Handle TF modes and rename to
3726 aarch64_mov<mode>high_di
3727 (aarch64_movtilow_di): Handle TF modes and rename to
3728 aarch64_mov<mode>low_di
3729 (aarch64_movtilow_tilow): Remove spurious whitespace.
3730 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
3731 splits.
3732 (aarch64_print_operand): Update.
3733
3734 2013-05-09 Alan Modra <amodra@gmail.com>
3735
3736 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
3737 powerpc64le.
3738 * configure: Regenerate.
3739
3740 2013-05-08 Uros Bizjak <ubizjak@gmail.com>
3741
3742 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
3743 splitter preparation statements.
3744 * config/i386/sse.md (*vec_extract* splitters): Ditto.
3745 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
3746 adjust_address_nv.
3747
3748 2013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3749
3750 * gimple-ssa-strength-reduction.c (count_candidates): Change
3751 return value to int.
3752 (analyze_candidates_and_replace): Change type of length to int.
3753
3754 2013-05-08 Uros Bizjak <ubizjak@gmail.com>
3755
3756 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
3757 (*vec_extract<mode>): Use VI12_128 mode iterator.
3758 (*vec_extract<mode>_mem): Ditto.
3759 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
3760 attribute.
3761
3762 2013-05-08 Diego Novillo <dnovillo@google.com>
3763
3764 PR bootstrap/54659
3765
3766 Revert:
3767 2012-08-17 Diego Novillo <dnovillo@google.com>
3768
3769 PR bootstrap/54281
3770 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
3771 * config.in: Regenerate.
3772 * configure: Regenerate.
3773 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
3774
3775 2013-05-08 Jan Hubicka <jh@suse.cz>
3776
3777 PR lto/54095
3778 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
3779 * cgraph.h (symtab_node_base): Add unique_name.
3780 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
3781 input_overwrite_node, input_varpool_node): Stream unique_name.
3782 * cgraphclones.c (cgraph_create_virtual_clone,
3783 cgraph_function_versioning): Set unique_name.
3784 * ipa.c (function_and_variable_visibility): Set unique_name.
3785
3786 2013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3787
3788 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
3789 (alloc_cand_and_find_basis): Restrict conditional candidate
3790 processing to CAND_MULTs.
3791
3792 2013-05-08 Jan Hubicka <jh@suse.cz>
3793
3794 PR lto/54095
3795 lto-symtab.c (lto_symtab_symbol_p): New function.
3796 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
3797 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
3798 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
3799 Skip static symbols.
3800
3801 2013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
3802
3803 PR tree-optimization/57200
3804 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
3805 Only call inform if the preceding warning_at returns true.
3806
3807 2013-05-07 Han Shen <shenhan@google.com>
3808
3809 * cfgexpand.c (record_or_union_type_has_array_p): New function.
3810 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
3811 * common.opt (fstack-protector-strong): New option.
3812 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
3813 * doc/invoke.texi (Optimization Options): Document
3814 "-fstack-protector-strong".
3815 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
3816
3817 2013-05-06 Steven Bosscher <steven@gcc.gnu.org>
3818
3819 * config/mips/mips.c (mips_machine_reorg2): Return 0.
3820
3821 2013-05-07 Vladimir Makarov <vmakarov@redhat.com>
3822
3823 * ira.c (update_equiv_regs): Add insn having equiv memory even if
3824 it is not lhs of the insn.
3825 (setup_reg_equiv): Remove insn having equiv memory which it is not
3826 lhs of the insn.
3827 * lra-constraints.c (process_address): Try to improve generation
3828 code for address base + disp.
3829 (lra_constraints): Make correct the code for checking insn setting
3830 up backward equivalence. Remove insn only if it is in the init
3831 insn list.
3832 * lra-eliminations.c (update_reg_eliminate): Change return value.
3833 (lra_eliminate): Use the result.
3834
3835 2013-05-07 Uros Bizjak <ubizjak@gmail.com>
3836
3837 * config/i386/sse.md (ssescalarnummask): New mode attribute.
3838 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
3839 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
3840 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
3841 register target operands.
3842 (*vec_extractv8hi_sse2): New pattern.
3843 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
3844 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
3845 (*vec_extract<mode>_mem): New insn and split pattern.
3846
3847 2013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
3848
3849 * config/arm/arm.c (arm_asan_shadow_offset): New function.
3850 (TARGET_ASAN_SHADOW_OFFSET): Define.
3851 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
3852 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
3853
3854 2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3855
3856 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
3857 (incr_vec_index): Return -1 if increment not found.
3858 (create_add_on_incoming_edge): Assert if increment not found.
3859 (record_increment): Limit number of increments recorded.
3860 (all_phi_incrs_profitable): Return false if an increment not found.
3861 (replace_profitable_candidates): Don't process increments that were
3862 not recorded.
3863 (analyze_candidates_and_replace): Limit size of incr_vec.
3864
3865 2013-05-07 Richard Biener <rguenther@suse.de>
3866
3867 * calls.c (special_function_p): setjmp-like functions are leaf.
3868 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
3869 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
3870
3871 2013-05-07 Sofiane Naci <sofiane.naci@arm.com>
3872
3873 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
3874 (aarch64_simd_mov<mode>): New expander.
3875 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
3876 (aarch64_simd_mov_to_<mode>high): Likewise.
3877 (aarch64_simd_mov_from_<mode>low): Likewise.
3878 (aarch64_simd_mov_from_<mode>high): Likewise.
3879 (aarch64_dup_lane<mode>): Update.
3880 (aarch64_dup_lanedi): New instruction pattern.
3881 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
3882 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
3883
3884 2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3885
3886 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
3887 (replace_mult_candidate): Remove unnecessary argument; remove
3888 unnecessary parameter from call to introduce_cast_before_cand.
3889 (replace_unconditional_candidate): Remove unnecessary parameter
3890 from call to replace_mult_candidate.
3891 (replace_conditional_candidate): Likewise.
3892 (insert_initializers): Use make_temp_ssa_name.
3893 (introduce_cast_before_cand): Remove unnecessary argument; use
3894 make_temp_ssa_name.
3895 (replace_one_candidate): Remove unnecessary argument; remove
3896 unnecessary parameter from calls to introduce_cast_before_cand.
3897 (replace_profitable_candidates): Remove unnecessary parameters
3898 from calls to replace_one_candidate.
3899
3900 2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3901
3902 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
3903 phi def as possibly hiding a basis for a CAND_ADD whose operands
3904 have been commuted in the analysis.
3905 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
3906
3907 2013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
3908
3909 * config/aarch64/aarch64.md
3910 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
3911 shift value between 0-4.
3912
3913 2013-05-07 Richard Biener <rguenther@suse.de>
3914
3915 * double-int.h (rshift): New overload.
3916 * double-int.c (rshift): New function.
3917 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
3918 (create_reference_ops_from_ref): Remove.
3919 (vn_reference_insert): Use shared ops for constructing the
3920 reference and copy it.
3921
3922 2013-05-07 Richard Biener <rguenther@suse.de>
3923
3924 PR middle-end/57190
3925 * tree-eh.c (sink_clobbers): Properly propagate
3926 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
3927
3928 2013-05-07 Jakub Jelinek <jakub@redhat.com>
3929
3930 PR tree-optimization/57149
3931 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
3932 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
3933 collect_phi_def_edges, execute_late_warn_uninitialized): Use
3934 uninit_undefined_value_p instead of ssa_undefined_value_p.
3935
3936 PR debug/57184
3937 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
3938 for modifier == EXPAND_INITIALIZER.
3939
3940 2013-05-07 Anton Blanchard <anton@samba.org>
3941
3942 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
3943 for powerpc64 little endian.
3944 * configure: Regenerate.
3945
3946 2013-05-06 Graham Stott <grahams@btinternet.com>
3947
3948 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
3949 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
3950 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
3951 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
3952
3953 2013-05-06 Graham Stott <grahams@btinternet.com>
3954
3955 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
3956 codes which allow non-lvalues.
3957
3958 2013-05-06 Marc Glisse <marc.glisse@inria.fr>
3959
3960 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
3961 components are all 1s.
3962 (integer_minus_onep): New function.
3963 * tree.h (integer_minus_onep): Declare it.
3964 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
3965 integer_minus_onep instead of integer_all_onesp.
3966
3967 2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3968
3969 PR target/52933
3970 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
3971 variations of these patterns.
3972
3973 2013-05-06 Uros Bizjak <ubizjak@gmail.com>
3974
3975 * config/i386/i386.md (isa): Add x64_sse4 member.
3976 (enabled): Handle x64_sse4.
3977 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
3978 instruction for 64bit SSE4_1 targets. Update insn attributes.
3979 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
3980 instruction for SSE4_1 targets. Update insn attributes.
3981 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
3982 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
3983 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
3984 const_1 selector.
3985 (*vec_extractv4si): Rename from *sse4_1_pextrd.
3986 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
3987 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
3988
3989 2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3990
3991 PR target/57108
3992 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
3993
3994 2013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
3995
3996 * final.c (do_assembler_dialects): Don't handle curly braces and
3997 vertical bar escaped by % as dialect delimiters.
3998 (output_asm_insn): Print curly braces and vertical bar if escaped
3999 by % and ASSEMBLER_DIALECT defined.
4000 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
4001 * doc/tm.texi: Regenerated.
4002
4003 2013-05-06 Steven Bosscher <steven@gcc.gnu.org>
4004
4005 * config/mips/mips.c: Include tree-pass.h.
4006 (mips_reorg): Split in pre- and post-dbr_schedule parts.
4007 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
4008 (pass_mips_machine_reorg2): New machine specific pass.
4009 (insert_pass_mips_machine_reorg2): New pass plugin definition.
4010 (mips_option_override): Register the new pass.
4011 * rtl.h (cleanup_barriers): Remove prototype.
4012 (dbr_schedule): Likewise.
4013 * jump.c (cleanup_barriers): Make static.
4014 * reorg.c (dbr_schedule): Likewise.
4015
4016 2013-05-06 Richard Biener <rguenther@suse.de>
4017
4018 PR tree-optimization/57185
4019 * tree-parloops.c (add_field_for_reduction): Handle anonymous
4020 SSA names properly.
4021
4022 2013-05-06 Uros Bizjak <ubizjak@gmail.com>
4023
4024 PR target/57106
4025 * config/i386/i386.c (add_parameter_dependencies): Add dependence
4026 between "first_arg" and "insn", not "last" and "insn".
4027
4028 2013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4029
4030 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
4031 (find_candidates_in_block): Re-enable slsr_process_phi.
4032 (create_phi_basis): Fix double counting of candidate adjustment.
4033
4034 2013-05-06 Richard Biener <rguenther@suse.de>
4035
4036 PR middle-end/57147
4037 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
4038 the edge is also fallthru, preserve it and just clear the
4039 abnormal flag.
4040 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
4041 also complex, preserve that and just clear the fallthru flag.
4042 * tree-inline.c (update_ssa_across_abnormal_edges): Also
4043 update virtual operands.
4044
4045 2013-05-06 Alan Modra <amodra@gmail.com>
4046
4047 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
4048 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
4049 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
4050 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
4051 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
4052 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
4053
4054 2013-05-06 Alan Modra <amodra@gmail.com>
4055
4056 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
4057 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
4058 (DEFAULT_ASM_ENDIAN): Define.
4059 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
4060 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
4061 Update -K PIC clause from sysv4.h.
4062 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
4063 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
4064
4065 2013-05-06 Alan Modra <amodra@gmail.com>
4066
4067 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
4068 twice for little-endian.
4069 (ashrdi3_no_power, ashrdi3): Support little-endian.
4070
4071 2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4072
4073 PR target/55303
4074 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
4075 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
4076 related expanders.
4077 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
4078 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
4079 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
4080 New predicates.
4081
4082 2013-05-05 Steven Bosscher <steven@gcc.gnu.org>
4083 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4084
4085 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
4086 * config/pa/pa.opt: Make mbig-switch a no-op.
4087 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
4088 (CASE_VECTOR_MODE): Always return SImode.
4089 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
4090 for the !TARGET_BIG_SWITCH case.
4091 * config/pa/pa-linux.h: Likewise.
4092 * config/pa/pa-openbsd.h: Likewise.
4093 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
4094 * config/pa/pa.md (short_jump): Remove define_insn.
4095 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
4096 (casesi0): Remove define_insn.
4097 (type): Remove btable_branch.
4098 (pa_combine_type): Likewise.
4099 (in_nullified_branch_delay): Likewise.
4100 (in_call_delay): Likewise.
4101 (define_delay): Likewise.
4102 (define_insn_reservation "Z3"): Likewise.
4103 (define_insn_reservation "Z4"): Likewise.
4104 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
4105 (pa_adjust_insn_length): Remove adjustment for btable branches.
4106 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
4107 and mno-big-switch
4108
4109 2013-05-05 Uros Bizjak <ubizjak@gmail.com>
4110
4111 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
4112 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
4113 Add m->r,x alternatives.
4114 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
4115 splitters using SWI48x mode iterator.
4116 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
4117 TARGET_64BIT. Add m->x alternative.
4118 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
4119 Add o->x alternative. Enable for TARGET_SSE.
4120 (sse_storeq): Remove expander.
4121 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
4122 with memory input operand.
4123 (*vec_extractv2di_1 splitter): New.
4124 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
4125 * config/i386/i386.md (ssevecmodelower): New mode attribute.
4126
4127 2013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
4128
4129 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
4130 (INT_LOWPART): Delete.
4131 (extract_MB): Adjust.
4132 (extract_ME): Adjust.
4133 (print_operand): Adjust.
4134
4135 2013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
4136
4137 * config/rs6000/predicates.md (reg_or_add_cint_operand,
4138 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
4139 (reg_or_logical_cint_operand, easy_fp_constant,
4140 logical_const_operand): Delete "CONST_DOUBLE" case.
4141 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
4142 "HOST_BITS_PER_WIDE_INT == 64" test.
4143 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
4144 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
4145 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
4146 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
4147 test.
4148 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
4149 CONST_DOUBLE DImode/VOIDmode case.
4150 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
4151 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
4152 CONST_DOUBLE VOIDmode case.
4153 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
4154 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
4155 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
4156 Delete CONST_DOUBLE case.
4157 (splitters for mov FMOVE64 const_double): Delete
4158 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
4159 "HOST_BITS_PER_WIDE_INT >= 64" test.
4160 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
4161 case.
4162 (mov DI const_double): Delete.
4163
4164 2013-05-04 Jakub Jelinek <jakub@redhat.com>
4165
4166 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
4167 on op shows all bits zero in mode of a lowpart subreg, return zero.
4168
4169 2013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
4170
4171 PR target/57150
4172 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
4173 to save TFmode registers and DImode to save TImode registers for
4174 caller save operations.
4175 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
4176 mark being partially clobbered since they only use the first
4177 double word.
4178
4179 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
4180 and TDmode only use the upper 64-bits of each VSX register.
4181
4182 2013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4183
4184 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
4185 (find_candidates_in_block): Disable slsr_process_phi.
4186
4187 2013-05-03 Guozhi Wei <carrot@google.com>
4188
4189 * coverage.c (coverage_obj_init): Move the construction of gcov
4190 constructor to ...
4191 (build_init_ctor): ... here.
4192
4193 2013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4194
4195 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
4196 (slsr_cand_d): Redefine def_phi.
4197 (stride_status, phi_adjust_status, count_phis_status): New enums.
4198 (find_phi_def): New.
4199 (find_basis_for_base_expr): New.
4200 (find_basis_for_candidate): Handle hidden bases.
4201 (alloc_cand_and_find_basis): Handle phi candidates.
4202 (slsr_process_phi): New.
4203 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
4204 (create_mul_imm_cand): Likewise.
4205 (create_add_ssa_cand): Exclude phi base candidates.
4206 (create_add_imm_cand): Likewise.
4207 (slsr_process_cast): Likewise.
4208 (slsr_process_copy): Likewise.
4209 (find_candidates_in_block): Handle phi candidates.
4210 (dump_candidate): Likewise.
4211 (unconditional_cands): Delete.
4212 (unconditional_cands_with_known_stride_p): Delete.
4213 (phi_dependent_cand_p): New.
4214 (cand_increment): Handle phi-dependent candidates.
4215 (replace_dependent): Delete.
4216 (replace_mult_candidate): New.
4217 (replace_unconditional_candidate): New.
4218 (incr_vec_index): Move to avoid forward reference.
4219 (create_add_on_incoming_edge): New.
4220 (create_phi_basis): New.
4221 (replace_dependents): Delete.
4222 (replace_conditional_candidate): New.
4223 (phi_add_costs): New.
4224 (replace_uncond_cands_and_profitable_phis): New.
4225 (record_increment): Handle phi adjustments.
4226 (record_phi_increments): New.
4227 (record_increments): Handle phi adjustments.
4228 (phi_incr_cost): New.
4229 (lowest_cost_path): Handle phis.
4230 (total_savings): Likewise.
4231 (analyze_increments): Likewise.
4232 (ncd_with_phi): New.
4233 (ncd_of_cand_and_phis): New.
4234 (nearest_common_dominator_for_cands): Handle phi increments.
4235 (all_phi_incrs_profitable): New.
4236 (replace_profitable_candidates): Handle phi-dependent candidates.
4237 (analyze_candidates_and_replace): Likewise.
4238
4239 2013-05-03 Teresa Johnson <tejohnson@google.com>
4240
4241 PR bootstrap/57154
4242 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
4243 do not exceed REG_BR_PROB_BASE.
4244
4245 2013-05-03 Jeff Law <law@redhat.com>
4246
4247 PR tree-optimization/57144
4248 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
4249 operand of the condition will bit into the new type when eliminating
4250 a cast feeding a condition.
4251
4252 2013-05-03 Jakub Jelinek <jakub@redhat.com>
4253
4254 PR rtl-optimization/57130
4255 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
4256 of COMPARE as in_code to the recursive call if needed.
4257
4258 2013-05-03 Uros Bizjak <ubizjak@gmail.com>
4259
4260 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
4261 (enabled): Handle new members.
4262 * config/i386/sse.md (*vec_concatv2si): Merge from
4263 *vec_concatv2si_sse2 and vec_concatv2si_sse.
4264 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
4265
4266 2013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
4267
4268 PR tree-optimization/57027
4269 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
4270 for fnms opportunity, check we got the prerequisite kind
4271 of tree / gimple before using accessor functions.
4272
4273 2013-05-03 Richard Biener <rguenther@suse.de>
4274
4275 * double-int.h (lshift): New overload without precision
4276 and arith argument.
4277 (operator *=, operator +=, operator -=): Move ...
4278 * double-int.c (operator *=, operator +=, operator -=): ... here
4279 and implement more efficiently.
4280 (mul_double_with_sign): Remove.
4281 (lshift_double): Adjust to take unsinged shift argument, push
4282 dispatching code to callers.
4283 (mul_double_wide_with_sign): Add early out for callers that
4284 are not interested in high parts or overflow.
4285 (lshift): New function.
4286 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
4287 dispatch code here.
4288 (lrotate, rrotate): Use logical shifts.
4289 * expr.c (get_inner_reference): Use lshift.
4290 * fixed-value.c (do_fixed_divide): Likewise.
4291 * tree-dfa.c (get_ref_base_and_extent): Likewise.
4292 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
4293 (indirect_refs_may_alias_p): Likewise.
4294 (stmt_kills_ref_p_1): Likewise.
4295
4296 2013-05-03 Vidya Praveen <vidyapraveen@arm.com>
4297
4298 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
4299
4300 2013-05-03 Vidya Praveen <vidyapraveen@arm.com>
4301
4302 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
4303 scalar form of FABD instruction.
4304
4305 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
4306
4307 * lra-constraints.c (process_alt_operands): Add checking alt
4308 number to choose the best alternative.
4309
4310 2013-05-02 Richard Biener <rguenther@suse.de>
4311
4312 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
4313 bitmap and its handling.
4314 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
4315
4316 2013-05-02 Richard Biener <rguenther@suse.de>
4317
4318 PR middle-end/57140
4319 * tree-inline.c (copy_loops): Properly handle removed loops.
4320 (copy_cfg_body): Mark destination loops for fixup if source
4321 loops needed fixup.
4322
4323 2013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
4324
4325 PR target/56732
4326 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
4327 generating simple_return for naked functions.
4328
4329 2013-05-02 Martin Jambor <mjambor@suse.cz>
4330
4331 PR middle-end/56988
4332 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
4333 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
4334 flags match.
4335 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
4336 ipa_agg_replacement_value structures.
4337 (known_aggs_to_agg_replacement_list): Likewise.
4338 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
4339 (read_agg_replacement_chain): Likewise.
4340 (ipcp_transform_function): Also check that by_ref flags match.
4341
4342 2013-05-02 Richard Biener <rguenther@suse.de>
4343
4344 * graphds.h (struct graph): Add obstack member.
4345 * graphds.c (new_graph): Initialize obstack and allocate
4346 vertices from it.
4347 (add_edge): Allocate edge from the obstack.
4348 (free_graph): Free the obstack instead of all edges and vertices.
4349
4350 2013-05-02 Teresa Johnson <tejohnson@google.com>
4351
4352 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
4353 divides.
4354 * cfg.c (update_bb_profile_for_threading): Ditto.
4355 * tree-inline.c (copy_bb): Ditto.
4356 (copy_edges_for_bb): Ditto.
4357 (initialize_cfun): Ditto.
4358 (copy_cfg_body): Ditto.
4359 (expand_call_inline): Ditto.
4360 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
4361 (estimate_node_size_and_time): Ditto.
4362 (inline_merge_summary): Ditto.
4363 * cgraphclones.c (cgraph_clone_edge): Ditto.
4364 (cgraph_clone_node): Ditto.
4365 * sched-rgn.c (compute_dom_prob_ps): Ditto.
4366 (compute_trg_info): Ditto.
4367
4368 2013-05-02 Ian Bolton <ian.bolton@arm.com>
4369
4370 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
4371 S reg when fp attribute set.
4372 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
4373
4374 2013-05-02 Ian Bolton <ian.bolton@arm.com>
4375
4376 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
4377 New pattern.
4378 (*and_one_cmplsi3_compare0_uxtw): Likewise.
4379 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
4380 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
4381
4382 2013-05-02 Richard Biener <rguenther@suse.de>
4383
4384 * tree-scalar-evolution.c (scev_info_hasher): Remove.
4385 (struct instantiate_cache_entry): New type.
4386 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
4387 (struct instantiate_cache_type): New type.
4388 (set_instantiated_value, get_instantiated_value): Remove.
4389 (get_instantiated_value_entry): New function.
4390 (instantiate_scev_name): Use the new cache and adjust.
4391 (instantiate_scev_poly): Adjust.
4392 (instantiate_scev_binary): Likewise.
4393 (instantiate_array_ref): Likewise.
4394 (instantiate_scev_convert): Likewise.
4395 (instantiate_scev_not): Likewise.
4396 (instantiate_scev_3): Likewise.
4397 (instantiate_scev_2): Likewise.
4398 (instantiate_scev_r): Likewise.
4399 (instantiate_scev): Likewise.
4400 (resolve_mixers): Likewise.
4401
4402 2013-05-01 Vladimir Makarov <vmakarov@redhat.com>
4403
4404 PR target/57091
4405 * lra-constraints.c (best_small_class_operands_num): Remove.
4406 (process_alt_operands): Remove small_class_operands_num. Take
4407 small classes operands into losers and only if the operand is not
4408 matched. Modify debugging output.
4409 (curr_insn_transform): Remove best_small_class_operands_num.
4410 Print insn name.
4411
4412 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4413
4414 * config/aarch64/aarch64-builtins.c
4415 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
4416 * config/aarch64/aarch64-simd-builtins.def
4417 (reduc_splus_): Add new modes.
4418 (reduc_uplus_): New.
4419 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
4420 (reduc_uplus_v4sf): Likewise.
4421 (reduc_splus_v4sf): Likewise.
4422 (aarch64_addv<mode>): Likewise.
4423 (reduc_uplus_<mode>): Likewise.
4424 (reduc_splus_<mode>): Likewise.
4425 (aarch64_addvv2di): Likewise.
4426 (reduc_uplus_v2di): Likewise.
4427 (reduc_splus_v2di): Likewise.
4428 (aarch64_addvv2si): Likewise.
4429 (reduc_uplus_v2si): Likewise.
4430 (reduc_splus_v2si): Likewise.
4431 (reduc_<sur>plus_<mode>): New.
4432 (reduc_<sur>plus_v2di): Likewise.
4433 (reduc_<sur>plus_v2si): Likewise.
4434 (reduc_<sur>plus_v4sf): Likewise.
4435 (aarch64_addpv4sf): Likewise.
4436 * config/aarch64/arm_neon.h
4437 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
4438 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
4439 add UNSPEC_SADDV, UNSPEC_UADDV.
4440 (SUADDV): New.
4441 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
4442
4443 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4444
4445 * config/aarch64/arm_neon.h
4446 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
4447
4448 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4449
4450 * config/aarch64/aarch64-builtins
4451 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
4452
4453 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4454
4455 * config/aarch64/aarch64-simd-builtins.def
4456 (reduc_smax_): New.
4457 (reduc_smin_): Likewise.
4458 (reduc_umax_): Likewise.
4459 (reduc_umin_): Likewise.
4460 (reduc_smax_nan_): Likewise.
4461 (reduc_smin_nan_): Likewise.
4462 (fmax): Remove.
4463 (fmin): Likewise.
4464 (smax): Update for V2SF, V4SF and V2DF modes.
4465 (smin): Likewise.
4466 (smax_nan): New.
4467 (smin_nan): Likewise.
4468 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
4469 (<su><maxmin><mode>3): ...This, refactor.
4470 (s<maxmin><mode>3): New.
4471 (<maxmin_uns><mode>3): Likewise.
4472 (reduc_<maxmin_uns>_<mode>): Refactor.
4473 (reduc_<maxmin_uns>_v4sf): Likewise.
4474 (reduc_<maxmin_uns>_v2si): Likewise.
4475 (aarch64_<fmaxmin><mode>: Remove.
4476 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
4477 new builtin names.
4478 (vmin<q>_f<32,64>): Likewise.
4479 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
4480 (FMAXMIN): New.
4481 (su): Add mappings for smax, smin, umax, umin.
4482 (maxmin): New.
4483 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
4484 (FMAXMIN): Rename as...
4485 (FMAXMIN_UNS): ...This.
4486 (maxminv): Remove.
4487 (fmaxminv): Likewise.
4488 (fmaxmin): Likewise.
4489 (maxmin_uns): New.
4490 (maxmin_uns_op): Likewise.
4491
4492 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4493
4494 * config/aarch64/arm_neon.h
4495 (vac<ge, gt><sd>_f<32, 64>): Rename to...
4496 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
4497 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
4498
4499 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4500
4501 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
4502 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
4503
4504 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4505
4506 * config/aarch64/aarch64-simd.md
4507 (vcond<mode>_internal): Handle special cases for constant masks.
4508 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
4509 (vcondu<mode><mode>): Likewise.
4510 (vcond<v_cmp_result><mode>): New.
4511
4512 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4513
4514 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
4515 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
4516 * config/aarch64/aarch64-simd-builtins.def
4517 (cmeq): Update to BUILTIN_VALLDI.
4518 (cmgt): Likewise.
4519 (cmge): Likewise.
4520 (cmle): Likewise.
4521 (cmlt): Likewise.
4522 * config/aarch64/arm_neon.h
4523 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
4524 to builtins or C as appropriate.
4525
4526 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4527
4528 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
4529 (cmgeu): ...This.
4530 (cmhi): Rename to...
4531 (cmgtu): ...This.
4532 * config/aarch64/aarch64-simd.md
4533 (simd_mode): Add SF.
4534 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
4535 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
4536 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
4537 (cstore<mode>_neg): ...This.
4538 * config/aarch64/iterators.md
4539 (VALLF): new.
4540 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
4541 (COMPARISONS): New.
4542 (UCOMPARISONS): Likewise.
4543 (optab): Add missing comparisons.
4544 (n_optab): New.
4545 (cmp_1): Likewise.
4546 (cmp_2): Likewise.
4547 (CMP): Likewise.
4548 (cmp): Remove.
4549 (VCMP_S): Likewise.
4550 (VCMP_U): Likewise.
4551 (V_cmp_result): Add DF, SF modes.
4552 (v_cmp_result): Likewise.
4553 (v): Likewise.
4554 (vmtype): Likewise.
4555 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
4556
4557 2013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
4558
4559 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
4560 define_insn to define_insn_and_split.
4561 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
4562 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
4563 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
4564 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
4565 (thumb2_negscc): Likewise.
4566
4567 2013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
4568
4569 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
4570
4571 2013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
4572
4573 * config/arm/thumb2.md: Remove trailing whitespaces.
4574
4575 2013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
4576
4577 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
4578 Use gen_int_mode rather than GEN_INT.
4579
4580 2013-04-30 H.J. Lu <hongjiu.lu@intel.com>
4581
4582 * value-prof.c (stream_in_histogram_value): Remove the strayed
4583 debug_gimple_stmt.
4584
4585 2013-04-30 Richard Biener <rguenther@suse.de>
4586
4587 PR middle-end/57122
4588 * cfghooks.c (split_edge): Properly check for the loop latch edge.
4589
4590 2013-04-30 Richard Biener <rguenther@suse.de>
4591
4592 PR middle-end/57107
4593 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
4594
4595 2013-04-30 Andrey Belevantsev <abel@ispras.ru>
4596
4597 PR rtl-optimization/56957
4598 PR rtl-optimization/57105
4599 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
4600 variable. Use just INSN_UID for determining whether an insn
4601 should be only disconnected from the insn stream.
4602 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
4603
4604 2013-04-30 Jakub Jelinek <jakub@redhat.com>
4605
4606 PR tree-optimization/57104
4607 * tsan.c (instrument_expr): Don't instrument accesses to
4608 DECL_HARD_REGISTER VAR_DECLs.
4609
4610 2013-04-30 Richard Biener <rguenther@suse.de>
4611
4612 * function.h (loops_for_fn): New inline function.
4613 (set_loops_for_fn): Likewise.
4614 * cfgloop.h (place_new_loop): Add struct function parameter.
4615 (get_loop): Likewise.
4616 (get_loops): Likewise.
4617 (number_of_loops): Likewise.
4618 (fel_next): Adjust.
4619 (fel_init): Likewise.
4620 * cfg.c (get_loop_copy): Adjust.
4621 * cfgloop.c (flow_loops_dump): Likewise.
4622 (record_loop_exits): Likewise.
4623 (verify_loop_structure): Likewise.
4624 * cfgloopanal.c (mark_irreducible_loops): Likewise.
4625 (estimate_reg_pressure_cost): Likewise.
4626 (mark_loop_exit_edges): Likewise.
4627 * cfgloopmanip.c (place_new_loop): Likewise.
4628 (add_loop): Likewise.
4629 (duplicate_loop): Likewise.
4630 * graph.c (draw_cfg_nodes): Likewise.
4631 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
4632 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
4633 (extract_affine_chrec): Likewise.
4634 (build_scop_iteration_domain): Likewise.
4635 * graphite.c (graphite_initialize): Likewise.
4636 * ira-build.c (create_loop_tree_nodes): Likewise.
4637 (more_one_region_p): Likewise.
4638 (rebuild_regno_allocno_maps): Likewise.
4639 (mark_loops_for_removal): Likewise.
4640 (mark_all_loops_for_removal): Likewise.
4641 (remove_unnecessary_regions): Likewise.
4642 (ira_build): Likewise.
4643 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
4644 * loop-init.c (fix_loop_structure): Likewise.
4645 (gate_rtl_move_loop_invariants): Likewise.
4646 (gate_rtl_unswitch): Likewise.
4647 (gate_rtl_unroll_and_peel_loops): Likewise.
4648 (rtl_doloop): Likewise.
4649 * lto-streamer-in.c (input_cfg): Likewise.
4650 * lto-streamer-out.c (output_cfg): Likewise.
4651 * modulo-sched.c (sms_schedule): Likewise.
4652 * predict.c (tree_estimate_probability): Likewise.
4653 (tree_estimate_probability_driver): Likewise.
4654 (estimate_loops): Likewise.
4655 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
4656 (move_sese_region_to_fn): Likewise.
4657 (debug_loop_num): Likewise.
4658 * tree-chrec.c (chrec_evaluate): Likewise.
4659 (hide_evolution_in_other_loops_than_loop): Likewise.
4660 (chrec_component_in_loop_num): Likewise.
4661 (reset_evolution_in_loop): Likewise.
4662 (evolution_function_is_invariant_rec_p): Likewise.
4663 * tree-if-conv.c (main_tree_if_conversion): Likewise.
4664 * tree-inline.c (copy_loops): Likewise.
4665 (copy_cfg_body): Likewise.
4666 (tree_function_versioning): Likewise.
4667 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
4668 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
4669 Likewise.
4670 (add_to_evolution_1): Likewise.
4671 (scev_const_prop): Likewise.
4672 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
4673 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
4674 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
4675 (tree_ssa_lim_initialize): Likewise.
4676 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
4677 (verify_loop_closed_ssa): Likewise.
4678 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
4679 (tree_ssa_loop_im): Likewise.
4680 (tree_ssa_loop_unswitch): Likewise.
4681 (tree_vectorize): Likewise.
4682 (check_data_deps): Likewise.
4683 (tree_ssa_loop_ivcanon): Likewise.
4684 (tree_ssa_loop_bounds): Likewise.
4685 (tree_complete_unroll): Likewise.
4686 (tree_complete_unroll_inner): Likewise.
4687 (tree_parallelize_loops): Likewise.
4688 (tree_ssa_loop_prefetch): Likewise.
4689 (tree_ssa_loop_ivopts): Likewise.
4690 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
4691 * tree-vectorizer.c (vectorize_loops): Likewise.
4692
4693 2013-04-29 Mike Frysinger <vapier@gentoo.org>
4694
4695 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
4696 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
4697 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
4698 with EABI_LINK_SPEC.
4699
4700 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
4701
4702 PR target/44578
4703 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
4704 alternative.
4705
4706 2013-04-29 Vladimir Makarov <vmakarov@redhat.com>
4707
4708 PR target/57097
4709 * lra-constraints.c (process_alt_operands): Discourage a bit more
4710 using memory for pseudos. Print cost dump for alternatives.
4711 Modify cost values for conflicts with early clobbers.
4712 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
4713
4714 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
4715
4716 PR target/57098
4717 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
4718
4719 2013-04-29 Ian Bolton <ian.bolton@arm.com>
4720
4721 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
4722 from/to S register.
4723 (movdi_aarch64): Support LDR/STR from/to D register.
4724
4725 2013-04-29 Ian Bolton <ian.bolton@arm.com>
4726
4727 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
4728 or higher by default.
4729
4730 2013-04-29 Richard Biener <rguenther@suse.de>
4731
4732 PR middle-end/57075
4733 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
4734 even if not adding abnormal edges for calls that can make
4735 abnormal gotos.
4736
4737 2013-04-29 Richard Biener <rguenther@suse.de>
4738
4739 PR middle-end/57103
4740 * tree-cfg.c (move_stmt_op): Fix condition under which to update
4741 TREE_BLOCK.
4742 (move_stmt_r): Remove redundant checking.
4743
4744 2013-04-29 Teresa Johnson <tejohnson@google.com>
4745
4746 PR bootstrap/57077
4747 * basic-block.h (apply_scale): New function.
4748 (apply_probability): Use apply_scale.
4749 * gimple-streamer-in.c (input_bb): Ditto.
4750 * lto-streamer-in.c (input_cfg): Ditto.
4751 * lto-cgraph.c (merge_profile_summaries): Ditto.
4752 * tree-optimize.c (execute_fixup_cfg): Ditto.
4753 * tree-inline.c (copy_bb): Update comment to use apply_scale.
4754 (copy_edges_for_bb): Ditto.
4755 (copy_cfg_body): Ditto.
4756
4757 2013-04-29 Tom de Vries <tom@codesourcery.com>
4758
4759 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
4760 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
4761 (tail_merge_optimize): Handle current_loops == NULL.
4762
4763 2013-04-26 Jeff Law <law@redhat.com>
4764
4765 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
4766 (simplify_cond_using_ranges): Generalize code to simplify
4767 COND_EXPRs where one argument is a constant and the other
4768 is an SSA_NAME created by an integral type conversion.
4769
4770 2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4771
4772 * config/arm/arm.md (store_minmaxsi): Use only when
4773 optimize_insn_for_size_p.
4774
4775 2013-04-29 Christian Bruel <christian.bruel@st.com>
4776
4777 PR target/57108
4778 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
4779
4780 2013-04-29 Richard Biener <rguenther@suse.de>
4781
4782 PR middle-end/57089
4783 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
4784 loop tree make sure to schedule a fixup for the child as well.
4785 (expand_omp_for_generic): Properly add loops.
4786 (expand_omp_for_static_nochunk): Likewise.
4787 (expand_omp_for_static_chunk): Likewise.
4788 (expand_omp_for): For the degenerate case fixup loops.
4789 (expand_omp_sections): Fix default bb placement in loops.
4790 (expand_omp_atomic_pipeline): Properly add loops.
4791
4792 2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4793
4794 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
4795
4796 2013-04-29 Tom de Vries <tom@codesourcery.com>
4797
4798 * tree-ssa-tail-merge.c: Update header comment.
4799
4800 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4801
4802 * config/aarch64/arm_neon.h
4803 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
4804 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
4805 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
4806 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
4807 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
4808 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
4809 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
4810 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
4811
4812 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4813
4814 * config/aarch64/aarch64-simd.md
4815 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
4816 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
4817 fix_trunc, fixuns_trunc.
4818 (ftrunc<VDQF:mode>2): New.
4819 * config/aarch64/iterators.md (optab): Add fix, fixuns.
4820 (fix_trunc_optab): New.
4821
4822 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4823
4824 * config/aarch64/aarch64-builtins.c
4825 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
4826 iceilf, lround, iroundf.
4827
4828 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
4829
4830 PR target/54349
4831 * config/i386/i386.h (enum ix86_tune_indices)
4832 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
4833 New, split from X86_TUNE_INTER_UNIT_MOVES.
4834 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
4835 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
4836 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
4837 (TARGET_INTER_UNIT_MOVES): Remove.
4838 * config/i386/i386.c (initial_ix86_tune_features): Update.
4839 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
4840 (ix86_expand_convert_uns_didf_sse): Use
4841 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
4842 (ix86_expand_vector_init_one_nonzero): Ditto.
4843 (ix86_expand_vector_init_interleave): Ditto.
4844 (inline_secondary_memory_needed): Return true for moves from SSE class
4845 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
4846 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
4847 * config/i386/constraints.md (Yi, Ym): Depend on
4848 TARGET_INTER_UNIT_MOVES_TO_VEC.
4849 (Yj, Yn): New constraints.
4850 * config/i386/i386.md (*movdi_internal): Change constraints of
4851 operand 1 from Yi to Yj and from Ym to Yn.
4852 (*movsi_internal): Ditto.
4853 (*movdf_internal): Ditto.
4854 (*movsf_internal): Ditto.
4855 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
4856 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
4857 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
4858 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
4859 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
4860 * config/i386/sse.md (movdi_to_sse): Ditto.
4861 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
4862 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
4863 TARGET_INTER_UNIT_MOVES.
4864 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
4865 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
4866 instead of TARGET_INTER_UNIT_MOVES.
4867 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
4868 operand 1 from Yi to Yj and from Ym to Yn.
4869
4870 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4871
4872 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
4873 (float_truncate_hi_): Likewise.
4874 (float_extend_lo_): Likewise.
4875 (float_truncate_lo_): Likewise.
4876 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
4877 (aarch64_float_extend_lo_v2df): Likewise.
4878 (vec_unpacks_hi_v4sf): Likewise.
4879 (aarch64_float_truncate_lo_v2sf): Likewise.
4880 (aarch64_float_truncate_hi_v4sf): Likewise.
4881 (vec_pack_trunc_v2df): Likewise.
4882 (vec_pack_trunc_df): Likewise.
4883
4884 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4885
4886 * config/aarch64/aarch64-builtins.c
4887 (aarch64_fold_builtin): Fold float conversions.
4888 * config/aarch64/aarch64-simd-builtins.def
4889 (floatv2si, floatv4si, floatv2di): New.
4890 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
4891 * config/aarch64/aarch64-simd.md
4892 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
4893 * config/aarch64/iterators.md (FLOATUORS): New.
4894 (optab): Add float, floatuns.
4895 (su_optab): Likewise.
4896
4897 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4898
4899 * config/aarch64/aarch64-builtins.c
4900 (aarch64_builtin_vectorized_function): Use new names for
4901 fcvt builtins.
4902 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
4903 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
4904 (fcvtzu): Split as...
4905 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
4906 (fcvtas): Split as...
4907 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
4908 (fcvtau): Split as...
4909 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
4910 (fcvtps): Split as...
4911 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
4912 (fcvtpu): Split as...
4913 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
4914 (fcvtms): Split as...
4915 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
4916 (fcvtmu): Split as...
4917 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
4918 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
4919 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
4920 (lfrintnusf, lfrintnudf): Likewise.
4921 * config/aarch64/aarch64-simd.md
4922 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
4923 define_insn.
4924 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
4925 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
4926 (fcvt_pattern): Likewise.
4927
4928 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4929
4930 * config/aarch64/aarch64-simd.md
4931 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
4932 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
4933
4934 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4935
4936 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
4937 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
4938 (vrnd<a,m,n,p>_f32): Implement using builtins.
4939 (vrnd<i,x><q>_f<32, 64>): New.
4940
4941 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4942
4943 * config/aarch64/aarch64-builtins.c
4944 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
4945 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
4946 (frintz): Rename to...
4947 (btrunc): ...this.
4948 (frintp): Rename to...
4949 (ceil): ...this.
4950 (frintm): Rename to...
4951 (floor): ...this.
4952 (frinti): Rename to...
4953 (nearbyint): ...this.
4954 (frintx): Rename to...
4955 (rint): ...this.
4956 (frinta): Rename to...
4957 (round): ...this.
4958 * config/aarch64/aarch64-simd.md
4959 (aarch64_frint<frint_suffix><mode>): Delete.
4960 (<frint_pattern><mode>2): Convert to insn.
4961 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
4962 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
4963 (frint_pattern): Likewise.
4964 (frint_suffix): Likewise.
4965
4966 2013-04-29 Richard Biener <rguenther@suse.de>
4967
4968 PR tree-optimization/57081
4969 * loop-init.c: Include tree-flow.h.
4970 (loop_optimizer_finalize): Free number of iteration estimates.
4971 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
4972
4973 2013-04-29 Jakub Jelinek <jakub@redhat.com>
4974
4975 PR tree-optimization/57083
4976 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
4977 non-singleton shift count range, zero extend low_bound for uns case.
4978
4979 * config/i386/predicates.md (general_vector_operand): New predicate.
4980 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
4981 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
4982 if they aren't nonimmediate operands. If their original values
4983 satisfy const_vector_equal_evenodd_p, don't shift them.
4984 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
4985 predicates. For the SSE4.1 case force operands[{1,2}] into registers
4986 if not nonimmediate_operand.
4987 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
4988 instead of register_operand.
4989 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
4990
4991 2013-04-28 Eric Botcazou <ebotcazou@adacore.com>
4992
4993 * stor-layout.c (finalize_size_functions): Allocate a structure and
4994 reset cfun before dumping the functions.
4995
4996 2013-04-27 Jakub Jelinek <jakub@redhat.com>
4997
4998 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
4999
5000 PR target/56866
5001 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
5002 use xop_pmacsdqh if uns_p.
5003 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
5004 the immediate rotate count.
5005
5006 2013-04-26 Vladimir Makarov <vmakarov@redhat.com>
5007
5008 * rtl.h (struct rtx_def): Add comment for field jump.
5009 (LRA_SUBREG_P): New macro.
5010 * recog.c (register_operand): Check LRA_SUBREG_P.
5011 * lra.c (lra): Add note at the end of RTL code. Align non-empty
5012 stack frame.
5013 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
5014 (lra_final_code_change): Skip subreg change for operators.
5015 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
5016 if there are no operand changes.
5017 * lra-constraints.c (curr_insn_set): New.
5018 (match_reload): Set LRA_SUBREG_P.
5019 (emit_spill_move): Ditto.
5020 (check_and_process_move): Use curr_insn_set. Process only single
5021 set insns. Don't initialize sec_mem_p and change_p.
5022 (simplify_operand_subreg): Use LRA_SUBREG_P.
5023 (reg_in_class_p): New function.
5024 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
5025 of #ifdef. Add code to remove cycling.
5026 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
5027 non-null disp. Reload inner instead of disp when base and index
5028 are null. Try to put lo_sum into register.
5029 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
5030 (check_and_process_move): Move code for move cost check to
5031 simple_move_p. Remove equiv_substitution.
5032 (simple_move_p): New function.
5033 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
5034 curr_insn_set. Call check_and_process_move only for single set
5035 insns. Use the new function. Move call of check_and_process_move
5036 after operand equiv substitution and address process.
5037
5038 2013-04-26 Jakub Jelinek <jakub@redhat.com>
5039
5040 PR go/57045
5041 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
5042 with nonlocal goto receivers or returns twice calls, ignore
5043 unininitialized values from abnormal edges to nl goto receiver
5044 or returns twice call.
5045
5046 2013-04-26 Jakub Jelinek <jakub@redhat.com>
5047
5048 PR tree-optimization/57051
5049 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
5050 and VEC_RSHIFT_EXPR if shift count is a multiple of element
5051 bitsize.
5052
5053 2013-04-26 Richard Biener <rguenther@suse.de>
5054
5055 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
5056 (expand_omp_taskreg): Likewise. Mark loops for fixup.
5057 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
5058 (fixup_loop_arrays_after_move): New function.
5059 (move_sese_region_to_fn): Properly outline the loop tree parts
5060 of the SESE region.
5061
5062 2013-04-26 Uros Bizjak <ubizjak@gmail.com>
5063
5064 * config/i386/i386.md (type, unit): Fix long lines.
5065
5066 2013-04-26 Richard Biener <rguenther@suse.de>
5067
5068 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
5069 (lto-streamer-out.o): Likewise.
5070 * cfgloop.c (init_loops_structure): Export, add struct function
5071 argument and adjust.
5072 (flow_loops_find): Adjust.
5073 * cfgloop.h (enum loop_estimation): Add EST_LAST.
5074 (init_loops_structure): Declare.
5075 * lto-streamer-in.c: Include cfgloop.h.
5076 (input_cfg): Input the loop tree.
5077 * lto-streamer-out.c: Include cfgloop.h.
5078 (output_cfg): Output the loop tree.
5079 (output_struct_function_base): Do not drop PROP_loops.
5080
5081 2013-03-26 Richard Biener <rguenther@suse.de>
5082
5083 * tree-cfg.c (execute_build_cfg): Build the loop tree.
5084 (pass_build_cfg): Provide PROP_loops.
5085 (move_sese_region_to_fn): Remove loops that are outlined into fn
5086 for now.
5087 * tree-inline.c: Include cfgloop.h.
5088 (initialize_cfun): Do not drop PROP_loops.
5089 (copy_loops): New function.
5090 (copy_cfg_body): Copy loop structure.
5091 (tree_function_versioning): Initialize destination loop tree.
5092 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
5093 (pass_parallelize_loops): Do IL verification.
5094 * loop-init.c (loop_optimizer_init): Fixup loops if required.
5095 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
5096 the CFG make sure we fixup loops as well.
5097 * tree-ssa-tail-merge.c: Include cfgloop.h.
5098 (replace_block_by): When merging loop latches mark loops for fixup.
5099 * lto-streamer-out.c (output_struct_function_base): Drop
5100 PROP_loops for now.
5101 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
5102 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
5103 * ipa-split.c: Include cfgloop.h.
5104 (split_function): Add the new return block to the loop tree root.
5105 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
5106 whether we have removed the forwarder block.
5107 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
5108 * cfgloop.h (place_new_loop): Declare.
5109 * cfgloopmanip.c (place_new_loop): Export.
5110 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
5111 (tree-switch-conversion.o): Likewise.
5112 (tree-complex.o): Likewise.
5113 (tree-inline.o): Likewise.
5114 (tree-ssa-tailmerge.o): Likewise.
5115 (ipa-split.o): Likewise.
5116 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
5117 (tree-ssa-copy.o): Likewise.
5118 * tree-switch-conversion.c: Include cfgloop.h
5119 (process_switch): If we emit a bit-test cascade, schedule loops
5120 for fixup.
5121 * tree-complex.c: Include cfgloop.h.
5122 (expand_complex_div_wide): Properly add new basic-blocks to loops.
5123 * asan.c: Include cfgloop.h.
5124 (create_cond_insert_point): Properly add new basic-blocks to
5125 loops, schedule loop fixup.
5126 * cfgloop.c (verify_loop_structure): Check that looks are not
5127 marked for fixup.
5128 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
5129 to loops.
5130 (expand_omp_for_generic): Likewise.
5131 (expand_omp_sections): Likewise.
5132 (expand_omp_atomic_pipeline): Schedule loops for fixup.
5133 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
5134 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
5135 is initialized, not when loops are present.
5136 * tree-parloops.c (parallelize_loops): Remove checking here.
5137 * passes.c (init_optimization_passes): Schedule a copy-propagation
5138 pass before complete unrolling of inner loops.
5139
5140 2013-04-26 Jakub Jelinek <jakub@redhat.com>
5141
5142 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
5143 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
5144 (colorize_init): Add argument to _WIN32 version.
5145 * toplev.c: Include diagnostic-color.h.
5146 (process_options): Default to -fdiagnostics-color=auto if
5147 GCC_COLORS env var is in the environment.
5148 * common.opt (fdiagnostics-color=): Add Var and Init.
5149 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
5150 env var is in the environment, the default is auto rather than never.
5151
5152 * diagnostic.h (file_name_as_prefix): Add context argument.
5153 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
5154 the string as locus.
5155 * langhooks.c (lhd_print_error_function): Adjust caller.
5156
5157 2013-04-25 Lawrence Crowl <crowl@google.com>
5158
5159 * var-tracking.c (shared_hash_def::htab):
5160 Change type to hash_table. Update dependent calls and types.
5161
5162 2013-04-25 Lawrence Crowl <crowl@google.com>
5163
5164 * Makefile.in: Update as needed below.
5165
5166 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
5167 Move declaration to after the type's method definitons.
5168
5169 * attribs.c (htab_t scoped_attributes::attribute_hash):
5170 Change type to hash_table. Update dependent calls and types.
5171
5172 * bitmap.c (htab_t bitmap_desc_hash):
5173 Change type to hash_table. Update dependent calls and types.
5174
5175 * cselib.c (htab_t cselib_hash_table):
5176 Change type to hash_table. Update dependent calls and types.
5177
5178 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
5179 (hash_string_slot_node): Move implementation into lto-streamer.h
5180 struct string_slot_hasher.
5181 (eq_string_slot_node): Likewise.
5182
5183 * data-streamer-out.c: Update output_block::string_hash_table
5184 dependent calls and types.
5185
5186 * dwarf2cfi.c (htab_t trace_index):
5187 Change type to hash_table. Update dependent calls and types.
5188
5189 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
5190 Change type to hash_table. Update dependent calls and types.
5191 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
5192 (htab_t optimize_external_refs::map): Likewise.
5193 (htab_t output_comp_unit::extern_map): Likewise.
5194 (htab_t output_comdat_type_unit::extern_map): Likewise.
5195 (htab_t output_macinfo::macinfo_htab): Likewise.
5196 (htab_t optimize_location_lists::htab): Likewise.
5197 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
5198
5199 * except.c (htab_t ehspec_hash_type):
5200 Change type to hash_table. Update dependent calls and types.
5201 (assign_filter_values::ttypes): Likewise.
5202 (assign_filter_values::ehspec): Likewise.
5203 (sjlj_assign_call_site_values::ar_hash): Likewise.
5204 (convert_to_eh_region_ranges::ar_hash): Likewise.
5205
5206 * gcse.c (htab_t pre_ldst_table):
5207 Change type to hash_table. Update dependent calls and types.
5208
5209 * ggc-common.c (htab_t saving_htab):
5210 Change type to hash_table. Update dependent calls and types.
5211 (htab_t loc_hash): Likewise.
5212 (htab_t ptr_hash): Likewise.
5213 (call_count): Rename ggc_call_count.
5214 (call_alloc): Rename ggc_call_alloc.
5215 (loc_descriptor): Rename make_loc_descriptor.
5216 (add_statistics): Rename ggc_add_statistics.
5217
5218 * ggc-common.c (saving_htab):
5219 Change type to hash_table. Update dependent calls and types.
5220
5221 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
5222 (push_gimplify_context): Likewise.
5223 (pop_gimplify_context): Likewise.
5224 (struct gimple_temp_hash_elt): Added.
5225 (struct gimplify_hasher): Likewise.
5226 (struct gimplify_ctx.temp_htab):
5227 Change type to hash_table. Update dependent calls and types.
5228
5229 * gimple-fold.c: Include gimplify-ctx.h.
5230
5231 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
5232 Change type to hash_table. Update dependent calls and types.
5233 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
5234 avoid potential global name collision.
5235
5236 * gimplify.c: Include gimplify-ctx.h.
5237 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
5238 (htab_t gimplify_ctx::temp_htab):
5239 Update dependent calls and types for new type hash_table.
5240 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
5241 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
5242
5243 * gimplify-ctx.h: New.
5244 (struct gimple_temp_hash_elt): Move from gimplify.c.
5245 (class gimplify_hasher): New.
5246 (struct gimplify_ctx): Move from gimple.h.
5247 (htab_t gimplify_ctx::temp_htab):
5248 Change type to hash_table. Update dependent calls and types.
5249
5250 * graphite-clast-to-gimple.c: Include graphite-htab.h.
5251 (htab_t ivs_params::newivs_index):
5252 Change type to hash_table. Update dependent calls and types.
5253 (htab_t ivs_params::params_index): Likewise.
5254 (htab_t print_generated_program::params_index): Likewise.
5255 (htab_t gloog::newivs_index): Likewise.
5256 (htab_t gloog::params_index): Likewise.
5257
5258 * graphite.c: Include graphite-htab.h.
5259 4htab_t graphite_transform_loops::bb_pbb_mapping):
5260 Change type to hash_table. Update dependent calls and types.
5261
5262 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
5263 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
5264 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
5265
5266 * graphite-dependences.c: Include graphite-htab.h.
5267 (loop_is_parallel_p): Change hash table type of parameter.
5268
5269 * graphite-htab.h: New.
5270 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
5271 (extern find_pbb_via_hash): Move from graphite-poly.h.
5272 (extern loop_is_parallel_p): Move from graphite-poly.h.
5273 (extern get_loop_body_pbbs): Move from graphite-poly.h.
5274
5275 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
5276 (extern loop_is_parallel_p): Move to graphite-htab.h.
5277 (extern get_loop_body_pbbs): Move to graphite-htab.h.
5278
5279 * haifa-sched.c (htab_t delay_htab):
5280 Change type to hash_table. Update dependent calls and types.
5281 (htab_t delay_htab_i2): Likewise.
5282
5283 * ira-color.c (htab_t allocno_hard_regs_htab):
5284 Change type to hash_table. Update dependent calls and types.
5285
5286 * ira-costs.c (htab_t cost_classes_htab):
5287 Change type to hash_table. Update dependent calls and types.
5288
5289 * loop-invariant.c (htab_t merge_identical_invariants::eq):
5290 Change type to hash_table. Update dependent calls and types.
5291
5292 * loop-iv.c (htab_t bivs):
5293 Change type to hash_table. Update dependent calls and types.
5294
5295 * loop-unroll.c (htab_t opt_info::insns_to_split):
5296 Change type to hash_table. Update dependent calls and types.
5297 (htab_t opt_info::insns_with_var_to_expand): Likewise.
5298
5299 * lto-streamer.h (struct string_slot): Move from data-streamer.h
5300 (struct string_slot_hasher): New.
5301 (htab_t output_block::string_hash_table):
5302 Change type to hash_table. Update dependent calls and types.
5303
5304 * lto-streamer-in.c (freeing_string_slot_hasher): New.
5305 (htab_t file_name_hash_table):
5306 Change type to hash_table. Update dependent calls and types.
5307
5308 * lto-streamer-out.c: Update output_block::string_hash_table dependent
5309 calls and types.
5310
5311 * lto-streamer.c (htab_t tree_htab):
5312 Change type to hash_table. Update dependent calls and types.
5313
5314 * omp-low.c: Include gimplify-ctx.h.
5315
5316 * passes.c (htab_t name_to_pass_map):
5317 Change type to hash_table. Update dependent calls and types.
5318 (pass_traverse): Rename to passes_pass_traverse.
5319
5320 * plugin.c (htab_t event_tab):
5321 Change type to hash_table. Update dependent calls and types.
5322
5323 * postreload-gcse.c (htab_t expr_table):
5324 Change type to hash_table. Update dependent calls and types.
5325 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
5326
5327 * sese.c (debug_rename_map_1): Make extern.
5328 (htab_t copy_bb_and_scalar_dependences::rename_map):
5329 Change type to hash_table. Update dependent calls and types.
5330
5331 * sese.h (extern debug_rename_map): Move to .c file.
5332
5333 * store-motion.c (htab_t store_motion_mems_table):
5334 Change type to hash_table. Update dependent calls and types.
5335
5336 * trans-mem.c (htab_t tm_new_mem_hash):
5337 Change type to hash_table. Update dependent calls and types.
5338
5339 * tree-browser.c (htab_t TB_up_ht):
5340 Change type to hash_table. Update dependent calls and types.
5341
5342 * tree-cfg.c (htab_t discriminator_per_locus):
5343 Change type to hash_table. Update dependent calls and types.
5344
5345 * tree-complex.c: Include tree-hasher.h
5346 (htab_t complex_variable_components):
5347 Change type to hash_table. Update dependent calls and types.
5348
5349 * tree-eh.c (htab_t finally_tree):
5350 Change type to hash_table. Update dependent calls and types.
5351
5352 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
5353 struct int_tree_hasher.
5354 (extern int_tree_map_eq): Likewise.
5355 (uid_decl_map_hash): Removed.
5356 (extern decl_tree_map_eq): Likewise.
5357
5358 * tree-hasher.h: New.
5359 (struct int_tree_hasher): New.
5360 (typedef int_tree_htab_type): New.
5361
5362 * tree-inline.c: Include gimplify-ctx.h.
5363
5364 * tree-mudflap.c: Include gimplify-ctx.h.
5365
5366 * tree-parloops.c: Include tree-hasher.h.
5367 (htab_t eliminate_local_variables_stmt::decl_address):
5368 Change type to hash_table. Update dependent calls and types.
5369 (htab_t separate_decls_in_region::decl_copies): Likewise.
5370
5371 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
5372 Change type to hash_table. Update dependent calls and types.
5373
5374 * tree-sra.c (candidates):
5375 Change type to hash_table. Update dependent calls and types.
5376
5377 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
5378 in tree-flow.h.
5379 (int_tree_map_hash): Likewise.
5380
5381 * tree-ssa-dom.c (htab_t avail_exprs):
5382 Change type to hash_table. Update dependent calls and types.
5383
5384 * tree-ssa-live.c (var_map_base_init::tree_to_index):
5385 Change type to hash_table. Update dependent calls and types.
5386
5387 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
5388 Change type to hash_table. Update dependent calls and types.
5389
5390 * tree-ssa-phiopt.c (seen_ssa_names):
5391 Change type to hash_table. Update dependent calls and types.
5392
5393 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
5394 Change type to hash_table. Update dependent calls and types.
5395
5396 * tree-ssa-uncprop.c (equiv):
5397 Change type to hash_table. Update dependent calls and types.
5398
5399 2013-04-25 Jakub Jelinek <jakub@redhat.com>
5400
5401 PR rtl-optimization/57003
5402 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
5403 call note_stores with kill_clobbered_value callback again after
5404 killing regs_invalidated_by_call.
5405
5406 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
5407
5408 * config/aarch64/aarch64-simd.md
5409 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
5410 (aarch64_simd_bsl<mode>): Likewise.
5411 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
5412
5413 2013-04-25 Marek Polacek <polacek@redhat.com>
5414
5415 PR tree-optimization/57066
5416 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
5417
5418 2013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
5419
5420 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
5421
5422 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
5423
5424 * config/aarch64/aarch64-builtins.c
5425 (aarch64_fold_builtin): New.
5426 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
5427 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
5428 * config/aarch64/aarch64-simd-builtins.def (abs): New.
5429 * config/aarch64/arm_neon.h
5430 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
5431
5432 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
5433 Tejas Belagod <tejas.belagod@arm.com>
5434
5435 * config/aarch64/aarch64-builtins.c
5436 (aarch64_gimple_fold_builtin): New.
5437 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
5438 * config/aarch64/aarch64-simd-builtins.def (addv): New.
5439 * config/aarch64/aarch64-simd.md (addpv4sf): New.
5440 (addvv4sf): Update.
5441 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
5442
5443 2013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
5444
5445 * config/aarch64/aarch64.md
5446 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
5447
5448 2013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
5449
5450 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
5451 (*ngcsi_uxtw): New pattern.
5452
5453 2013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5454 Julian Brown <julian@codesourcery.com>
5455
5456 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
5457 (TB_DREG): Add T_V4HF.
5458 (v4hf_UP): New macro.
5459 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5460 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5461 Handle initialisation of V4HF. Adjust initialisation of reinterpret
5462 built-ins.
5463 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5464 (arm_vector_mode_supported_p): Handle V4HF.
5465 (arm_mangle_map): Handle V4HFmode.
5466 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
5467 * config/arm/arm_neon_builtins.def: Add entries for
5468 vcvtv4hfv4sf, vcvtv4sfv4hf.
5469 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
5470 (neon_vcvtv4hfv4sf): Likewise.
5471 * config/arm/neon-gen.ml: Handle half-precision floating point
5472 features.
5473 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
5474 * config/arm/arm_neon.h: Regenerate.
5475 * config/arm/neon.ml (type elts): Add F16.
5476 (type vectype): Add T_float16x4, T_floatHF.
5477 (type vecmode): Add V4HF.
5478 (type features): Add Requires_FP_bit feature.
5479 (elt_width): Handle F16.
5480 (elt_class): Likewise.
5481 (elt_of_class_width): Likewise.
5482 (mode_of_elt): Refactor.
5483 (type_for_elt): Handle F16, fix error messages.
5484 (vectype_size): Handle T_float16x4.
5485 (vcvt_sh): New function.
5486 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
5487 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
5488 (string_of_mode): Handle V4HF.
5489 * doc/arm-neon-intrinsics.texi: Regenerate.
5490
5491 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
5492
5493 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
5494 format specifier in 'X' case.
5495
5496 2013-04-25 Alan Modra <amodra@gmail.com>
5497
5498 PR target/57052
5499 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
5500 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
5501 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
5502 Repeat for many other rotate/shift and mask patterns using subregs.
5503 Name lshiftrt insns.
5504 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
5505 on WORDS_BIG_ENDIAN.
5506
5507 2013-04-25 Alan Modra <amodra@gmail.com>
5508
5509 * config.gcc: Support little-endian powerpc-linux targets.
5510 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
5511 (LINK_OS_LINUX_SPEC): Define.
5512 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
5513 Preserve MASK_LITTLE_ENDIAN.
5514 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
5515 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
5516 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
5517 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
5518 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
5519 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
5520 Correct fp word order for little-endian. Don't shift toc entries
5521 smaller than a word for little-endian.
5522 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
5523 (bswapdi2 splits): Correct low-part subreg for little-endian.
5524 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
5525 low/high where such is correct only for be.
5526 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
5527 little-endian for -mcall-aixdesc.
5528
5529 2013-04-25 Alan Modra <amodra@gmail.com>
5530
5531 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
5532 replace_equiv_address_nv.
5533
5534 2013-04-25 Alan Modra <amodra@gmail.com>
5535
5536 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
5537
5538 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
5539
5540 Revert:
5541 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
5542 * rtl.h (struct rtx_def): ...
5543
5544 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
5545
5546 PR rtl-optimizations/57046
5547 * lra-constraints (split_reg): Set up lra_risky_transformations_p
5548 for multi-reg splits.
5549
5550 2013-04-24 H.J. Lu <hongjiu.lu@intel.com>
5551
5552 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
5553
5554 2013-04-24 Sterling Augustine <saugustine@google.com>
5555
5556 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
5557 (comp_dir_string, debug_str_dwo_section): New.
5558 (DEBUG_STR_DWO_SECTION): Rename to ...
5559 (DEBUG_DWO_STR_SECTION): ... this.
5560 (DEBUG_NORM_STR_SECTION): Delete.
5561 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
5562 (DEBUG_STR_DWO_SECTION_FLAGS): New.
5563 (find_AT_string): Move most logic to ...
5564 (find_AT_string_in_table): ... here. New.
5565 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
5566 add_skeleton_AT_string. Delete logic.
5567 (output_skeleton_debug_sections): Remove call to
5568 add_top_level_skeleton_die_attrs.
5569 (add_comp_dir_attribute): Move logic to comp_dir_string.
5570 (dwarf2out_init): Initialize debug_str_dwo_section.
5571 (output_indirect_string): Call find_string_form.
5572 (output_indirect_strings): Rewrite.
5573 (prune_unused_types): Empty skeleton_debug_str_hash.
5574 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
5575 (dwarf2out_finish): Call output_indirect_strings.
5576
5577 2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
5578
5579 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
5580
5581 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
5582
5583 * rtl.h (struct rtx_def): Add comment for field jump.
5584 (LRA_SUBREG_P): New macro.
5585 * recog.c (register_operand): Check LRA_SUBREG_P.
5586 * lra.c (lra): Add note at the end of RTL code. Align non-empty
5587 stack frame.
5588 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
5589 (lra_final_code_change): Skip subreg change for operators.
5590 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
5591 if there are no operand changes.
5592 * lra-constraints.c (curr_insn_set): New.
5593 (match_reload): Set LRA_SUBREG_P.
5594 (emit_spill_move): Ditto.
5595 (check_and_process_move): Use curr_insn_set. Process only single
5596 set insns. Don't initialize sec_mem_p and change_p.
5597 (simplify_operand_subreg): Use LRA_SUBREG_P.
5598 (reg_in_class_p): New function.
5599 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
5600 of #ifdef. Add code to remove cycling.
5601 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
5602 non-null disp. Reload inner instead of disp when base and index
5603 are null. Try to put lo_sum into register.
5604 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
5605 (check_and_process_move): Move code for move cost check to
5606 simple_move_p. Remove equiv_substitution.
5607 (simple_move_p): New function.
5608 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
5609 curr_insn_set. Call check_and_process_move only for single set
5610 insns. Use the new function. Move call of check_and_process_move
5611 after operand equiv substitution and address process.
5612
5613 2013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
5614
5615 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
5616 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
5617 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
5618
5619 2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
5620
5621 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
5622
5623 2013-04-24 Marek Polacek <polacek@redhat.com>
5624
5625 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
5626 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
5627 (select_loops_exit_conditions): Likewise.
5628 (number_of_iterations_for_all_loops): Likewise.
5629 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
5630 (scev_analysis): Likewise.
5631
5632 2013-04-02 Catherine Moore <clm@codesourcery.com>
5633 Chao-ying Fu <fu@mips.com>
5634
5635 * config/mips/micromips.md (jraddiusp): New pattern.
5636 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
5637 instruction if possible.
5638
5639 2013-04-24 Alan Modra <amodra@gmail.com>
5640
5641 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
5642
5643 2013-04-24 Julian Brown <julian@codesourcery.com>
5644 Chung-Lin Tang <cltang@codesourcery.com>
5645
5646 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
5647 dependency behavior in enumeration type DIE generation. Add TODO note
5648 to comments about future DW_FORM_sdata/udata re-work of related code.
5649
5650 2013-04-23 Lawrence Crowl <crowl@google.com>
5651
5652 * Makefile.in: Update as needed below.
5653
5654 * hash-table.h (class hash_table):
5655 Correct many methods with parameter types compare_type to the correct
5656 value_type. (Correct code was unlikely to notice the change.)
5657 (hash_table::elements_with_deleted) New.
5658 (class hashtable::iterator): New.
5659 (hashtable::begin()): New.
5660 (hashtable::end()): New.
5661 (FOR_EACH_HASH_TABLE_ELEMENT): New.
5662
5663 * statistics.c (statistics_hashes):
5664 Change type to hash_table. Update dependent calls and types.
5665
5666 * tree-into-ssa.c (var_infos):
5667 Change type to hash_table. Update dependent calls and types.
5668
5669 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
5670 Change type to hash_table. Update dependent calls and types.
5671
5672 * tree-ssa-loop-im.c (struct mem_ref.refs):
5673 Change type to hash_table. Update dependent calls and types.
5674
5675 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
5676 Change type to hash_table. Update dependent calls and types.
5677
5678 * tree-ssa-sccvn.c (vn_tables_s::nary):
5679 Change type to hash_table. Update dependent calls and types.
5680 (vn_tables_s::phis): Likewise.
5681 (vn_tables_s::references): Likewise.
5682
5683 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
5684 (vn_reference_eq): Update parameter and return types.
5685
5686 * tree-ssa-structalias.c (pointer_equiv_class_table):
5687 Change type to hash_table. Update dependent calls and types.
5688 (location_equiv_class_table): Likewise.
5689
5690 * tree-vect-data-refs.c: Consequential changes for making
5691 peeling a hash_table.
5692
5693 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
5694 (destroy_loop_vec_info): Dependent hash_table update.
5695
5696 * tree-vectorizer.h (peeling_htab):
5697 Change type to hash_table. Update dependent calls and types.
5698
5699 2013-04-23 Shiva Chen <shiva0217@gmail.com>
5700
5701 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
5702 to check the register content is equal or not.
5703 * lra-constraints.c (match_reload): Use lra_assign_reg_val
5704 to assign register content record.
5705 * lra-eliminations.c (update_reg_eliminate): Use
5706 lra_update_reg_val_offset to update register content offset.
5707 * lra-int.h (struct lra_reg): Add offset member.
5708 (lra_reg_val_equal_p): New static inline function.
5709 (lra_update_reg_val_offset): New static inline function.
5710 (lra_assign_reg_val): New static inline function.
5711 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
5712 to assign register content record.
5713 (initialize_lra_reg_info_element): Initial offset to zero.
5714
5715 2013-04-23 Catherine Moore <clm@codesourcery.com>
5716
5717 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
5718 operands. Record compression.
5719
5720 2013-04-23 Xinliang David Li <davidxl@google.com>
5721
5722 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
5723
5724 2013-04-23 Richard Biener <rguenther@suse.de>
5725
5726 PR middle-end/57036
5727 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
5728 parameter, only add abnormal goto edges from the copied body
5729 if the call could perform abnormal gotos.
5730 (copy_cfg_body): Adjust.
5731
5732 2013-04-23 Sofiane Naci <sofiane.naci@arm.com>
5733
5734 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
5735
5736 2013-04-23 Andreas Schwab <schwab@linux-m68k.org>
5737
5738 * coretypes.h (gimple_stmt_iterator): Add struct to make
5739 compatible with C.
5740
5741 2013-04-23 Richard Biener <rguenther@suse.de>
5742
5743 PR tree-optimization/57026
5744 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
5745 from SSA names occuring in abnormal PHI nodes.
5746
5747 2013-04-22 Andi Kleen <ak@linux.intel.com>
5748
5749 * lto/lto.c (print_lto_report_1): Fix LTO report names.
5750
5751 2013-04-22 Andi Kleen <ak@linux.intel.com>
5752
5753 * lto/lto.c (print_lto_report_1): Declare early.
5754 (read_cgraph_and_symbols): Call print_lto_report_1 early.
5755
5756 2013-04-22 Andi Kleen <ak@linux.intel.com>
5757
5758 * common.opt (-flto-report-wpa): Add.
5759 * doc/invoke.texi (-flto-report-wpa): Add.
5760 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
5761 (lto_main): dito.
5762
5763 2013-04-22 Xinliang David Li <davidxl@google.com>
5764
5765 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
5766 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
5767 * Makefile.in: New dependency
5768
5769 David Daney <ddaney.cavm@gmail.com>
5770
5771 * configure.ac (gcc_cv_as_micromips_support): Use the
5772 --fatal-warnings option.
5773 * configure: Regenerate.
5774
5775 2013-04-22 Marek Polacek <polacek@redhat.com>
5776
5777 PR sanitizer/56990
5778 * tsan.c (instrument_expr): Don't instrument expression
5779 in case its size is zero.
5780
5781 2013-04-22 Uros Bizjak <ubizjak@gmail.com>
5782
5783 PR target/57032
5784 Revert:
5785 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
5786
5787 * config/alpha/alpha.c (TARGET_LRA_P): New define.
5788
5789 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
5790
5791 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
5792 (gimple_stmt_iterator): New typedef.
5793 * gimple.h (gimple_stmt_iterator): Rename to...
5794 (gimple_stmt_iterator_d): ... This.
5795 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
5796 trees be valid for GIMPLE and GENERIC.
5797 (TARGET_GIMPLE_FOLD_BUILTIN): New.
5798 * gimple-fold.c (gimple_fold_call): Call target hook
5799 gimple_fold_builtin.
5800 * hooks.c (hook_bool_gsiptr_false): New.
5801 * hooks.h (hook_bool_gsiptr_false): New.
5802 * target.def (fold_stmt): New.
5803 * doc/tm.texi: Regenerate.
5804
5805 2013-04-22 Vladimir Makarov <vmakarov@redhat.com>
5806
5807 PR target/57018
5808 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
5809 a set sp if no stack realignment.
5810
5811 2013-04-22 Nick Clifton <nickc@redhat.com>
5812
5813 * config.gcc (tilegx-linux): Extend extra_objs rather than
5814 overwriting it.
5815 (tilepro-linux): Likewise.
5816
5817 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
5818
5819 * config/aarch64/aarch64-builtins.c
5820 (CF): Remove.
5821 (CF0, CF1, CF2, CF3, CF4, CF10): New.
5822 (VAR<1-12>): Add MAP parameter.
5823 (BUILTIN_*): Likewise.
5824 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
5825 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
5826 (aarch64_ushl_n<mode>): Likewise.
5827 (aarch64_sshr_n<mode>): Likewise.
5828 (aarch64_ushr_n<mode>): Likewise.
5829 (aarch64_<maxmin><mode>): Likewise.
5830 (aarch64_sqrt<mode>): Likewise.
5831 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
5832 (vshr<q>_n_*): Likewise.
5833
5834 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
5835
5836 * config/aarch64/aarch64-builtins.c
5837 (aarch64_simd_builtin_type_mode): Handle SF types.
5838 (sf_UP): Define.
5839 (BUILTIN_GPF): Define.
5840 (aarch64_init_simd_builtins): Handle SF types.
5841 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
5842 (frecps): Likewise.
5843 (frecpx): Likewise.
5844 * config/aarch64/aarch64-simd.md
5845 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
5846 (aarch64_frecpe<mode>): New.
5847 (aarch64_frecps<mode>): Likewise.
5848 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
5849 (v8type): Add frecp<esx>.
5850 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
5851 (aarch64_frecps<mode>): Likewise.
5852 * config/aarch64/iterators.md (FRECP): New.
5853 (frecp_suffix): Likewise.
5854 * config/aarch64/arm_neon.h
5855 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
5856
5857 2013-04-22 Christian Bruel <christian.bruel@st.com>
5858
5859 PR target/56995
5860 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
5861 (REG_CLASS_NAMES): Idem.
5862 (REG_CLASS_CONTENTS): Idem.
5863 (REGCLASS_HAS_FP_REG): Idem.
5864 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
5865 (sh_conditional_register_usage): Idem.
5866
5867 2013-04-21 Jeff Law <law@redhat.com>
5868
5869 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
5870 (ssa_forward_propagate_and_combine): Use it.
5871
5872 2013-04-19 Vladimir Makarov <vmakarov@redhat.com>
5873
5874 * lra.c: Update the flow chart diagram.
5875
5876 2013-04-19 Vladimir Makarov <vmakarov@redhat.com>
5877
5878 PR rtl-optimization/56847
5879 * lra-constraints.c (process_alt_operands): Discourage alternative
5880 with non-matche doffsettable memory constraint fro memory with
5881 known offset.
5882
5883 2013-04-19 Richard Biener <rguenther@suse.de>
5884
5885 PR tree-optimization/56982
5886 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
5887 function.
5888 * gimplify.c (gimplify_call_expr): Notice special calls.
5889 (gimplify_modify_expr): Likewise.
5890 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
5891 abnormal control flow receivers.
5892 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
5893 in the same way as cfun->has_nonlocal_labels.
5894 (gimple_purge_dead_abnormal_call_edges): Likewise.
5895 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
5896 receivers start a basic-block.
5897
5898 2013-04-19 Richard Biener <rguenther@suse.de>
5899
5900 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
5901 member ...
5902 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
5903 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
5904 (SLP_TREE_LOAD_PERMUTATION): Add.
5905 (vect_transform_slp_perm_load): Adjust prototype.
5906 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
5907 (vect_free_slp_instance): Likewise.
5908 (vect_create_new_slp_node): Likewise.
5909 (vect_supported_slp_permutation_p): Remove.
5910 (vect_slp_rearrange_stmts): Adjust.
5911 (vect_supported_load_permutation_p): Likewise. Inline
5912 vect_supported_slp_permutation_p here.
5913 (vect_analyze_slp_instance): Compute load permutations per
5914 slp node instead of per instance.
5915 (vect_get_slp_defs): Adjust.
5916 (vect_transform_slp_perm_load): Likewise.
5917 (vect_schedule_slp_instance): Remove redundant code.
5918 (vect_schedule_slp): Remove hack for PR56270, add it ...
5919 * tree-vect-stmts.c (vectorizable_load): ... here, do not
5920 CSE loads for SLP. Adjust.
5921
5922 2013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
5923
5924 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
5925 spelling in two comments.
5926
5927 2013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
5928
5929 PR target/56797
5930 * config/arm/arm.c (load_multiple_sequence): Require SP
5931 as base register for loads if SP is in the register list.
5932
5933 2013-04-19 Martin Jambor <mjambor@suse.cz>
5934
5935 PR tree-optimization/56718
5936 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
5937 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
5938 and made public. Adjusted all callers.
5939 (ipa_intraprocedural_devirtualization): New function.
5940 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
5941 (ipa_intraprocedural_devirtualization): Likewise.
5942 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
5943
5944 2013-04-19 Richard Biener <rguenther@suse.de>
5945
5946 PR tree-optimization/57000
5947 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
5948
5949 2013-04-19 Terry Guo <terry.guo@arm.com>
5950
5951 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
5952 Replace with ...
5953 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
5954 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
5955 (cortex_m4_fmacs): Use new reservations.
5956 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
5957
5958 2013-04-18 Vladimir Makarov <vmakarov@redhat.com>
5959
5960 PR rtl-optimization/56999
5961 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
5962 related code.
5963 (lra_coalesce): Remove split_origin_bitmap and related code.
5964 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
5965 ranges if necessary.
5966
5967 2013-04-18 Uros Bizjak <ubizjak@gmail.com>
5968
5969 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
5970 New array.
5971 (ix86_expand_call): Remove clobbered_registers array and use
5972 x86_64_ms_sysv_extra_clobbered_registers instead.
5973 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
5974 Declare here.
5975 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
5976 predicate.
5977 * config/i386/i386.md (*call_rex64_ms_sysv): Use
5978 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
5979 (*call_value_rex64_ms_sysv): Ditto.
5980
5981 2013-04-18 Cary Coutant <ccoutant@google.com>
5982
5983 * dwarf2out.c (output_pubnames): Check die_perennial_p of
5984 parent instead of die_mark.
5985
5986 2013-04-18 Diego Novillo <dnovillo@google.com>
5987
5988 * gimple.c (create_gimple_tmp): New.
5989 (get_expr_type): New.
5990 (build_assign): New.
5991 (build_type_cast): New.
5992 * gimple.h (enum ssa_mode): Define.
5993 (gimple_seq_set_location): New.
5994 * asan.c (build_check_stmt): Change some gimple_build_* calls
5995 to use build_assign and build_type_cast.
5996
5997 2013-04-18 Richard Biener <rguenther@suse.de>
5998
5999 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
6000 handle negative step. Remove redundant checks.
6001 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
6002 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
6003 for negative step and grouped loads fail to vectorize.
6004
6005 2013-04-18 Steven Bosscher <steven@gcc.gnu.org>
6006
6007 * emit-rtl.c (reset_insn_used_flags): New function.
6008 (reset_all_used_flags): Use it.
6009 (verify_insn_sharing): New function.
6010 (verify_rtl_sharing): Fix verification for SEQUENCEs.
6011
6012 2013-04-18 Jakub Jelinek <jakub@redhat.com>
6013
6014 PR tree-optimization/56984
6015 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
6016 and (x >> M) >= N don't register any assertion if N << M is the
6017 minimum value.
6018
6019 2013-04-18 Steven Bosscher <steven@gcc.gnu.org>
6020
6021 * lower-subreg.c (resolve_simple_move): If called self-recursive,
6022 do not delete_insn insns that have not yet been emitted, only
6023 unlink them with remove_insn.
6024 * df-scan.c (df_insn_delete): Revert r197492.
6025
6026 2013-04-17 Steven Bosscher <steven@gcc.gnu.org>
6027
6028 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
6029 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
6030
6031 2013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
6032
6033 * config/arm/arm.md (movsicc_insn): Convert define_insn into
6034 define_insn_and_split.
6035 (and_scc,ior_scc,negscc): Likewise.
6036 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
6037
6038 2013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
6039
6040 * config/arm/arm.c (use_return_insn): Return 0 for targets that
6041 can benefit from using a sequence of LDRD instructions in epilogue
6042 instead of a single LDM instruction.
6043
6044 2013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
6045
6046 PR 45688
6047 * doc/extend.texi: Fix typo.
6048
6049 2013-04-17 Richard Biener <rguenther@suse.de>
6050
6051 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
6052 (vect_build_slp_tree): ... here.
6053 (vect_build_slp_tree_1): Compute which stmts of the SLP group
6054 match. Remove special-casing of mismatched complex loads.
6055 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
6056 re-try the match with swapped commutative operands.
6057 (vect_supported_load_permutation_p): Remove special-casing of
6058 mismatched complex loads.
6059 (vect_analyze_slp_instance): Adjust.
6060
6061 2013-04-17 Richard Biener <rguenther@suse.de>
6062
6063 PR rtl-optimization/56921
6064 * cfgloop.h (struct loop): Add simple_loop_desc member.
6065 (struct niter_desc): Mark with GTY(()).
6066 (simple_loop_desc): Do not use aux field but simple_loop_desc.
6067 * loop-iv.c (get_simple_loop_desc): Likewise.
6068 (free_simple_loop_desc): Likewise.
6069
6070 Revert
6071 2013-04-16 Richard Biener <rguenther@suse.de>
6072
6073 PR rtl-optimization/56921
6074 * loop-init.c (pass_rtl_move_loop_invariants): Add
6075 TODO_do_not_ggc_collect to todo_flags_finish.
6076 (pass_rtl_unswitch): Same.
6077 (pass_rtl_unroll_and_peel_loops): Same.
6078 (pass_rtl_doloop): Same.
6079
6080 2013-04-17 Eric Botcazou <ebotcazou@adacore.com>
6081
6082 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
6083 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
6084 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
6085 references.
6086 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
6087 * tree-streamer.c (record_common_node): Adjust reference in comment.
6088
6089 2013-04-17 Terry Guo <terry.guo@arm.com>
6090
6091 * config/arm/cortex-m4.md: Add a new bypass.
6092
6093 2013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
6094
6095 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
6096 New pattern.
6097 (*subs_<optab><mode>_multp2): New pattern.
6098 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
6099 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
6100
6101 2013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
6102
6103 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
6104 (*subs_mul_imm_<mode>): New pattern.
6105
6106 2013-04-16 David Edelsohn <dje.gcc@gmail.com>
6107
6108 PR target/56948
6109 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
6110 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
6111 (vsx_movti_32bit): Change j->wa to O->wa.
6112
6113 2013-04-16 Richard Biener <rguenther@suse.de>
6114
6115 PR rtl-optimization/56921
6116 * loop-init.c (pass_rtl_move_loop_invariants): Add
6117 TODO_do_not_ggc_collect to todo_flags_finish.
6118 (pass_rtl_unswitch): Same.
6119 (pass_rtl_unroll_and_peel_loops): Same.
6120 (pass_rtl_doloop): Same.
6121
6122 2013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
6123
6124 * config/arm/arm.c (emit_multi_reg_push): New declaration
6125 for an existing function.
6126 (arm_emit_strd_push): New function.
6127 (arm_expand_prologue): Used here.
6128 (arm_emit_ldrd_pop): New function.
6129 (arm_expand_epilogue): Used here.
6130 (arm_get_frame_offsets): Update condition.
6131 (arm_emit_multi_reg_pop): Add a special case for load of a single
6132 register with writeback.
6133
6134 2013-04-16 Uros Bizjak <ubizjak@gmail.com>
6135
6136 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
6137 description.
6138
6139 2013-04-16 Richard Biener <rguenther@suse.de>
6140
6141 PR tree-optimization/56756
6142 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
6143 (first_mem_ref_loc): New.
6144 (execute_sm): Place the load temporarily before a previous
6145 access instead of in the latch edge to ensure its SSA dependencies
6146 are defined at points dominating the load.
6147
6148 2013-04-16 Steven Bosscher <steven@gcc.gnu.org>
6149
6150 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
6151 correct fix by moving header and footer insn to the footer of
6152 the merged basic block. Clear BB_END of the merged-away block.
6153
6154 PR middle-end/43631
6155 * emit-rtl.c (make_note_raw): New function.
6156 (link_insn_into_chain): New static inline function.
6157 (add_insn): Use it.
6158 (add_insn_before, add_insn_after): Factor insn chain linking code...
6159 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
6160 using link_insn_into_chain.
6161 (note_outside_basic_block_p): New helper function for emit_note_after
6162 and emit_note_before.
6163 (emit_note_after): Use nobb variant of add_insn_after if the note
6164 should not be contained in a basic block.
6165 (emit_note_before): Use nobb variant of add_insn_before if the note
6166 should not be contained in a basic block.
6167 (emit_note_copy): Use make_note_raw.
6168 (emit_note): Likewise.
6169 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
6170 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
6171 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
6172 the moved barrier the tail of the basic block it follows.
6173 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
6174
6175 2013-04-15 Jakub Jelinek <jakub@redhat.com>
6176
6177 PR tree-optimization/56962
6178 * gimple-ssa-strength-reduction.c (record_increment): Only set
6179 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
6180 either rhs1 or rhs2 is equal to c->base_expr.
6181
6182 2013-04-15 Richard Biener <rguenther@suse.de>
6183
6184 PR tree-optimization/56933
6185 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
6186 member.
6187 (GROUP_READ_WRITE_DEPENDENCE): Remove.
6188 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
6189 * tree-vect-data-refs.c (vect_analyze_group_access): Move
6190 dependence check ...
6191 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
6192 ... here.
6193 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
6194 GROUP_READ_WRITE_DEPENDENCE.
6195
6196 2013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6197
6198 * emit-rtl.c (reset_all_used_flags): New function.
6199 (verify_rtl_sharing): Call reset_all_used_flags before and after
6200 performing the checks.
6201
6202 2013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6203
6204 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
6205 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
6206 * config/arm/constraints.md (De): New constraint.
6207 * config/arm/neon.md (anddi3_neon): Delete.
6208 (neon_vand<mode>): Expand to standard anddi3 pattern.
6209 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
6210 Move earlier in the file.
6211 (neon_inv_logic_op2): Likewise.
6212 (arm_anddi_operand_neon): New predicate.
6213
6214 2013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6215
6216 * configure.ac (gcc_cv_ld_as_needed): Set
6217 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
6218 Use -z ignore, -z record on *-*-solaris2*.
6219 (HAVE_LD_AS_NEEDED): Update comment.
6220 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
6221 * configure: Regenerate.
6222 * config.in: Regenerate.
6223 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
6224 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
6225 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
6226 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
6227 equivalents. Fix markup.
6228 * doc/tm.texi: Regenerate.
6229
6230 2013-04-15 Andrew Hsieh <andrewhsieh.google.com>
6231
6232 * config/i386/i386.opt: New option mstack-protector-guard=.
6233 * config/i386/i386-opts.h: Add enum stack_protector_guard.
6234 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
6235 TARGET_SSP_TLS_GUARD.
6236 * config/i386/i386.c (ix86_option_override_internal): Set
6237 ix86_stack_protector_guard.
6238 * config/i386/i386.md (stack_protect_set): Enable for
6239 TARGET_SSP_TLS_GUARD only.
6240 (stack_protect_set_<mode>): Ditto.
6241 (stack_protect_test): Ditto.
6242 (stack_protect_test_<mode>): Ditto.
6243 * doc/invoke.texi (i386 Option): Document.
6244
6245 2013-04-15 Eric Botcazou <ebotcazou@adacore.com>
6246
6247 PR target/56890
6248 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
6249 (S_MODES): Set H_MODE bit.
6250 (SF_MODES): Set only S_MODE and SF_MODE bits.
6251 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
6252 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
6253 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
6254 <MODE_FLOAT>: Likewise.
6255
6256 2013-04-15 Joey Ye <joey.ye@arm.com>
6257
6258 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
6259
6260 2013-04-15 Joey Ye <joey.ye@arm.com>
6261
6262 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
6263 for real far jump.
6264 (thumb_far_jump_used_p): Count instruction size and set
6265 far_jump_used.
6266
6267 2013-04-14 Eric Botcazou <ebotcazou@adacore.com>
6268
6269 * reorg.c (fill_simple_delay_slots): Reindent block of code.
6270 * resource.c (mark_target_live_regs): Reformat conditional block.
6271
6272 2013-04-13 Steven Bosscher <steven@gcc.gnu.org>
6273
6274 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
6275 notes, they are emitted only just before final.
6276 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
6277
6278 2013-04-13 Steven Bosscher <steven@gcc.gnu.org>
6279
6280 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
6281 * cfgrtl.c (delete_insn): Call it here instead.
6282 * lra-spills.c (lra_final_code_change): Use delete_insn.
6283 * haifa-sched.c (sched_remove_insn): Likewise.
6284 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
6285 returning to the nop pool.
6286 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
6287 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
6288
6289 2013-04-12 Steven Bosscher <steven@gcc.gnu.org>
6290
6291 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
6292 * doc/tm.texi: Regenerated.
6293
6294 2013-04-12 Uros Bizjak <ubizjak@gmail.com>
6295
6296 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
6297 QImode checks.
6298
6299 2013-04-12 Steven Bosscher <steven@gcc.gnu.org>
6300
6301 * df-core.c (df_find_def): Compare register numbers.
6302 (df_find_use): Likewise.
6303
6304 2013-04-12 Vladimir Makarov <vmakarov@redhat.com>
6305
6306 PR target/56903
6307 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
6308 lra_in_progress for return.
6309
6310 2013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
6311
6312 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
6313 define_insn into define_insn_and_split and emit movsicc patterns.
6314
6315 2013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
6316
6317 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
6318
6319 2013-04-12 Richard Biener <rguenther@suse.de>
6320
6321 * tree-pass.h (TODO_do_not_ggc_collect): New.
6322 * passes.c (execute_one_ipa_transform_pass): Honor
6323 TODO_do_not_ggc_collect.
6324 (execute_one_pass): Likewise.
6325
6326 Revert
6327 2013-04-10 Richard Biener <rguenther@suse.de>
6328
6329 * passes.c (init_optimization_passes): Remove reload pass.
6330 * ira.c (do_reload): Merge into ...
6331 (ira): ... this.
6332 (rest_of_handle_reload): Remove.
6333 (pass_reload): Likewise.
6334 * config/i386/i386.c (ix86_option_override): Refer to ira instead
6335 of reload for vzeroupper pass placement.
6336
6337 2013-04-12 Jakub Jelinek <jakub@redhat.com>
6338
6339 PR tree-optimization/56918
6340 PR tree-optimization/56920
6341 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
6342 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
6343 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
6344 use wide_mul_with_sign method.
6345
6346 2013-04-12 Richard Biener <rguenther@suse.de>
6347
6348 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
6349 not be considered a gimple constant.
6350
6351 2013-04-12 Marc Glisse <marc.glisse@inria.fr>
6352
6353 * fold-const.c (const_binop): Handle vector shifts by a scalar.
6354 (fold_binary_loc): Call const_binop also for mixed vector-scalar
6355 operations.
6356
6357 2013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
6358 Jakub Jelinek <jakub@redhat.com>
6359
6360 * opts.c: Include diagnostic-color.h.
6361 (common_handle_option): Handle OPT_fdiagnostics_color_.
6362 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
6363 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
6364 (diagnostic-color.o): New.
6365 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
6366 (diagnostic_color_rule): New enum.
6367 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
6368 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
6369 the location string.
6370 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
6371 either NULL, or color kind.
6372 * diagnostic-color.c: New file.
6373 * diagnostic-color.h: New file.
6374 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
6375 arguments.
6376 * doc/invoke.texi (-fdiagnostics-color): Document.
6377 * pretty-print.h (pp_show_color): Define.
6378 (struct pretty_print_info): Add show_color field.
6379 * diagnostic.c: Include diagnostic-color.h.
6380 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
6381 macros. Colorize error:, warning: etc. strings and also the location
6382 string.
6383 (diagnostic_show_locus): Colorize the caret line.
6384 * pretty-print.c: Include diagnostic-color.h.
6385 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
6386 inside of %< %> quotes or quoted through q format modifier.
6387
6388 2013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6389
6390 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
6391
6392 2013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
6393
6394 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
6395 code in CC_NZ mode.
6396 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
6397 pattern.
6398
6399 2013-04-11 Marek Polacek <polacek@redhat.com>
6400
6401 PR tree-optimization/48184
6402 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
6403
6404 2013-04-11 Eric Botcazou <ebotcazou@adacore.com>
6405
6406 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
6407 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
6408 (skip_simple_arithmetic): Tidy up.
6409 * tree.h (skip_simple_constant_arithmetic): Declare.
6410
6411 2013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
6412
6413 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
6414
6415 2013-04-11 Richard Biener <rguenther@suse.de>
6416
6417 * tree-vect-loop.c (get_initial_def_for_induction): Properly
6418 generate vector constants.
6419
6420 2013-04-11 Richard Biener <rguenther@suse.de>
6421
6422 PR tree-optimization/56878
6423 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
6424 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
6425 New function.
6426 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
6427 Prefer to align the DR with the most invariant base address.
6428
6429 2013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
6430
6431 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
6432 comment.
6433
6434 2013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
6435
6436 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
6437 floating-point vector comparisons against 0.
6438
6439 2013-04-11 Jakub Jelinek <jakub@redhat.com>
6440
6441 PR tree-optimization/56899
6442 * fold-const.c (extract_muldiv_1): Apply distributive law
6443 only if TYPE_OVERFLOW_WRAPS (ctype).
6444
6445 2013-04-11 Bin Cheng <bin.cheng@arm.com>
6446
6447 PR target/56124
6448 * ira-costs.c (scan_one_insn): Check whether the source rtx of
6449 loading has side effect.
6450
6451 2013-04-10 Steven Bosscher <steven@gcc.gnu.org>
6452
6453 * config/sparc/sparc.c: Include tree-pass.h.
6454 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
6455 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
6456 head of file. Change return type. Split off gate function.
6457 (sparc_gate_work_around_errata): New function.
6458 (pass_work_around_errata): New pass definition.
6459 (insert_pass_work_around_errata) New pass insert definition to
6460 insert pass_work_around_errata just after delayed-branch scheduling.
6461 (sparc_option_override): Insert the pass.
6462 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
6463
6464 2013-04-10 David S. Miller <davem@davemloft.net>
6465
6466 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
6467 or -mcpu=hypersparc.
6468
6469 * target.def (cstore_mode): New hook.
6470 * target.h: Include insn-codes.h
6471 * targhooks.c: Likewise.
6472 (default_cstore_mode): New function.
6473 * targhooks.h: Declare it.
6474 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
6475 * doc/tm.texi: Rebuild.
6476 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
6477 target hook, rather than inspecting the insn_data.
6478 * config/sparc/sparc.c (sparc_cstore_mode): New function.
6479 (TARGET_CSTORE_MODE): Redefine.
6480 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
6481 result patterns.
6482 * config/sparc/predicates.md (cstore_result_operand): New special
6483 predicate.
6484 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
6485 Use it for operand 0.
6486 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
6487 (*snesi_special): Likewise.
6488 (*snesi_zero): Likewise.
6489 (*seqsi_zero): Likewise.
6490 (*sltu_insn): Likewise.
6491 (*sgeu_insn): Likewise.
6492 (*seqdi_special): Make operand 0 and comparison operation be of
6493 DImode.
6494 (*snedi_special): Likewise.
6495 (*snedi_special_vis3): Likewise.
6496 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
6497 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
6498 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
6499 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
6500 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
6501 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
6502 (*sltu_extend_sp64): Likewise.
6503 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
6504 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
6505 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
6506 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
6507 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
6508
6509 2013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
6510
6511 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
6512 (aarch64_start_file): Use the new function.
6513
6514 2013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
6515 Jason Merrill <jason@redhat.com>
6516
6517 * common.opt: Add -gdwarf.
6518 * opts.c (common_handle_option): Handle it.
6519 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
6520
6521 2013-04-10 Richard Biener <rguenther@suse.de>
6522
6523 * passes.c (execute_todo): Do not call ggc_collect conditional here.
6524 (execute_one_ipa_transform_pass): But unconditionally here.
6525 (execute_one_pass): And here.
6526 (init_optimization_passes): Remove reload pass.
6527 * tree-pass.h (TODO_ggc_collect): Remove.
6528 (pass_reload): Likewise.
6529 * ira.c (do_reload): Merge into ...
6530 (ira): ... this.
6531 (rest_of_handle_reload): Remove.
6532 (pass_reload): Likewise.
6533 * config/i386/i386.c (ix86_option_override): Refer to ira instead
6534 of reload for vzeroupper pass placement.
6535 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
6536 and todo_flags_finish of all passes.
6537
6538 2013-04-10 Richard Biener <rguenther@suse.de>
6539
6540 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
6541 first_const_oprnd field, rename first_def_type to first_op_type.
6542 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
6543 (vect_get_and_check_slp_defs): Always use the type of the
6544 operand. Allow mixed vect_external_def, vect_constant_def types.
6545 (vect_get_constant_vectors): Handle mixed vect_external_def,
6546 vect_constant_def types.
6547
6548 2013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
6549
6550 PR tree-optimization/55524
6551 * tree-ssa-math-opts.c
6552 (convert_mult_to_fma): Don't use an fms construct
6553 when we don't have an fms operation, but fnma, and it looks
6554 likely that we'll be able to use the latter.
6555
6556 2013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6557
6558 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
6559 function.
6560 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
6561 inline fail caused by overwritable functions.
6562
6563 2013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
6564
6565 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
6566 unnecessary bits in the constant power of two case.
6567
6568 2013-04-10 Richard Biener <rguenther@suse.de>
6569
6570 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
6571 broken code swapping operands.
6572 (vect_build_slp_tree): Do not compute load permutations here.
6573 (vect_analyze_slp_instance): Compute load permutations here,
6574 after building the SLP tree.
6575
6576 2013-04-09 Christian Bruel <christian.bruel@st.com>
6577
6578 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
6579 of next/prev_real_insn.
6580
6581 2013-04-09 Jan Hubicka <jh@suse.cz>
6582
6583 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
6584 Drop aliased parameter.
6585 (function_and_variable_visibility): Do not handle alias pairs.
6586 * cgraph.c (varpool_externally_visible_p): Update prototype.
6587 * varpool.c (varpool_add_new_variable): Update.
6588
6589 2013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6590
6591 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
6592
6593 2013-04-09 Steven Bosscher <steven@gcc.gnu.org>
6594
6595 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
6596
6597 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
6598
6599 2013-04-09 Marek Polacek <polacek@redhat.com>
6600
6601 PR tree-optimization/48762
6602 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
6603
6604 2013-04-09 Richard Biener <rguenther@suse.de>
6605
6606 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
6607 dealing with cost.
6608 (vect_build_slp_tree): Likewise.
6609 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
6610 calculating the cost of a SLP instance.
6611 (vect_analyze_slp_instance): Use it from here, after building
6612 the SLP tree.
6613
6614 2013-04-09 Jakub Jelinek <jakub@redhat.com>
6615
6616 PR middle-end/56883
6617 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
6618 expand_omp_for_static_chunk): Use simple_p = true in
6619 force_gimple_operand_gsi calls when assigning to addressable decls.
6620
6621 2013-04-09 Jeff Law <law@redhat.com>
6622
6623 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
6624 when the boolean was created by converting a wider object which
6625 had a boolean range.
6626
6627 2013-04-09 Richard Biener <rguenther@suse.de>
6628
6629 * tree-vectorizer.h (slp_void_p): Remove.
6630 (slp_tree): Typedef before _slp_tree declaration.
6631 (struct _slp_tree): Use a vector of slp_tree as children.
6632 (vect_get_place_in_interleaving_chain): Remove.
6633 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
6634 Move ...
6635 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
6636 and make static.
6637 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
6638 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
6639 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
6640 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
6641 Use slp_node instead of slp_void_p and adjust.
6642
6643 2013-04-09 Richard Biener <rguenther@suse.de>
6644
6645 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
6646 work that is not necessary.
6647
6648 2013-04-09 Jakub Jelinek <jakub@redhat.com>
6649
6650 PR tree-optimization/56854
6651 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
6652 forward into clobber stmts if it would change MEM_REF lhs into
6653 non-MEM_REF.
6654
6655 2013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
6656
6657 * tree.c (type_hash_lookup, type_hash_add): Make static.
6658 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
6659
6660 2013-04-09 Richard Biener <rguenther@suse.de>
6661
6662 * tree.h (unsave_expr_now): Remove.
6663 * tree-inline.c (mark_local_for_remap_r): Remove.
6664 (unsave_expr_1): Likewise.
6665 (unsave_r): Likewise.
6666 (unsave_expr_now): Likewise.
6667 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
6668 (propagate_tree_value): Likewise.
6669
6670 2013-04-08 Steven Bosscher <steven@gcc.gnu.org>
6671
6672 * doc/rtl.texi (sequence): Rewrite documentation to match the
6673 current use of SEQUENCE rtl objects.
6674 * rtl.def (SEQUENCE): Likewise.
6675
6676 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
6677 Update documentation.
6678 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
6679 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
6680
6681 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
6682
6683 2013-04-08 Teresa Johnson <tejohnson@google.com>
6684
6685 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
6686 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
6687 methods.
6688 (estimate_edge_size_and_time): Add comment to suggest using rounding
6689 methods.
6690 (estimate_node_size_and_time): Ditto.
6691 (remap_edge_change_prob): Use helper rounding divide methods.
6692 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
6693 (gimple_mod_pow2_value_transform): Ditto.
6694 (gimple_mod_subtract_transform): Ditto.
6695 (gimple_ic_transform): Ditto.
6696 (gimple_stringops_transform): Ditto.
6697 * stmt.c (conditional_probability): Ditto.
6698 (emit_case_dispatch_table): Ditto.
6699 * lto-cgraph.c (merge_profile_summaries): Ditto.
6700 * tree-optimize.c (execute_fixup_cfg): Ditto.
6701 * cfgcleanup.c (try_forward_edges): Ditto.
6702 * cfgloopmanip.c (scale_loop_profile): Ditto.
6703 (loopify): Ditto.
6704 (duplicate_loop_to_header_edge): Ditto.
6705 (lv_adjust_loop_entry_edge): Ditto.
6706 * tree-vect-loop.c (vect_transform_loop): Ditto.
6707 * profile.c (compute_branch_probabilities): Ditto.
6708 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
6709 * lto-streamer-in.c (input_cfg): Ditto.
6710 * gimple-streamer-in.c (input_bb): Ditto.
6711 * ipa-cp.c (update_profiling_info): Ditto.
6712 (update_specialized_profile): Ditto.
6713 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
6714 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
6715 rounding methods.
6716 * sched-rgn.c (compute_dom_prob_ps): Ditto.
6717 (compute_trg_info): Ditto.
6718 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
6719 (purge_dead_edges): Ditto.
6720 * loop-unswitch.c (unswitch_loop): Ditto.
6721 * cgraphclones.c (cgraph_clone_edge): Ditto.
6722 (cgraph_clone_node): Ditto.
6723 * tree-inline.c (copy_bb): Ditto.
6724 (copy_edges_for_bb): Ditto.
6725 (initialize_cfun): Ditto.
6726 (copy_cfg_body): Ditto.
6727 (expand_call_inline): Ditto.
6728
6729 2013-04-08 Kai Tietz <ktietz@redhat.com>
6730
6731 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
6732 TARGET_CYGWIN64 by TARGET_64BIT.
6733
6734 2013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
6735
6736 * config/epiphany/epiphany.md (GPR_1): New constant.
6737 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
6738 * config/epiphany/epiphany.c (gen_compare_reg):
6739 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
6740 is already in place.
6741 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
6742 Don't require being called during rtl expansion; If y operlaps r0,
6743 return 0.
6744 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
6745 (epiphany_expand_epilogue): Likewise.
6746
6747 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
6748 Don't use CC_FPmode for ORDERED / UNORDERED.
6749 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
6750
6751 * config/epiphany/constraints.md (CnL): New constraint.
6752 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
6753 * config/epiphany/predicates.md (add_operand): Allow 1024.
6754
6755 * config/epiphany/epiphany.md (logical_op): New code iterator.
6756 (op_mnc): New code attribute.
6757 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
6758 (mov_f+1, mov_f+2): New peephole2 patterns.
6759
6760 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
6761 (cstoresi4): Also allow re-use of zero result when doing a NE
6762 comparison to a non-zero operand.
6763 Use (clobber (scratch)) for first insn if the gpr output is not needed.
6764
6765 * config/epiphany/epiphany.md (<insn_opname>v2si3):
6766 Use gen_addsi3_i / gen_subsi3_i.
6767
6768 2013-04-08 Jakub Jelinek <jakub@redhat.com>
6769
6770 PR c++/34949
6771 PR c++/50243
6772 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
6773 contain anything but clobbers, at most one __builtin_stack_restore,
6774 optionally debug stmts and final resx, and if it has at least one
6775 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
6776 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
6777 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
6778 which isn't defaut definition, remove them.
6779 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
6780 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
6781 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
6782 with MEM_REF LHS with SSA_NAME address.
6783
6784 2013-04-08 Jeff Law <law@redhat.com>
6785
6786 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
6787
6788 2013-04-08 Richard Biener <rguenther@suse.de>
6789
6790 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
6791 extra newline.
6792 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
6793 determined vector type.
6794 (vect_analyze_data_refs): Likewise.
6795 (vect_get_new_vect_var): Adjust.
6796 (vect_create_destination_var): Preserve SSA name versions.
6797 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
6798 not dump anything here.
6799
6800 2013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
6801
6802 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
6803 Add member lr_slot_known.
6804 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
6805 if necessary.
6806 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
6807 Remove code that sets lr_slot_offset according to what a previous
6808 version of epiphany_emit_save_restore used to do.
6809 (epiphany_emit_save_restore): When doing an lr save or restore,
6810 set/verify lr_slot_known and lr_slot_offset.
6811
6812 2013-04-08 Xinyu Qi <xyqi@marvell.com>
6813
6814 PR target/54338
6815 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
6816 in ALL_REGS.
6817
6818 2013-04-08 Richard Biener <rguenther@suse.de>
6819
6820 * alias.c (find_base_term): Fix thinko in previous change.
6821
6822 2013-04-08 Jakub Jelinek <jakub@redhat.com>
6823
6824 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
6825 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
6826 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
6827 if possible to compute val.
6828 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
6829 For QImode integers don't require anything about precision. Use
6830 const_with_all_bytes_same to find out if the constant doesn't have
6831 repeated bytes in it.
6832
6833 2013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6834
6835 * config/s390/s390.c (s390_expand_insv): Only accept insertions
6836 within mode size.
6837
6838 2013-04-08 Marek Polacek <polacek@redhat.com>
6839
6840 PR rtl-optimization/48182
6841 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
6842 value to 1.
6843
6844 2013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6845
6846 PR target/55487
6847 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
6848 nuses, make sure we have a label.
6849
6850 2013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6851
6852 PR target/56843
6853 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
6854 (rs6000_emit_swdiv_low_precision): Remove.
6855 (rs6000_emit_swdiv): Rewrite to handle between one and four
6856 iterations of Newton-Raphson generally; modify required number of
6857 iterations for some cases.
6858 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
6859
6860 2013-04-05 Steven Bosscher <steven@gcc.gnu.org>
6861
6862 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
6863 set-but-unused variable.
6864
6865 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
6866 basic blocks of released function bodies garbage-collectable.
6867
6868 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
6869 (struct rtl_opt_pass): Add TODO_df_finish.
6870
6871 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
6872
6873 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6874
6875 * config/arm/constraints.md (q): New constraint.
6876 * config/arm/ldrdstrd.md: New file.
6877 * config/arm/arm.md (ldrdstrd.md) New include.
6878 (arm_movdi): Use "q" instead of "r" constraint
6879 for double-word memory access.
6880 (movdf_soft_insn): Likewise.
6881 * config/arm/vfp.md (movdi_vfp): Likewise.
6882 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
6883 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
6884 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
6885 (mem_ok_for_ldrd_strd): Likewise.
6886 (output_move_double): Update assertion.
6887
6888 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6889
6890 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
6891
6892 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6893
6894 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
6895 define_insn_and_split.
6896 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
6897
6898 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6899
6900 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
6901 define_insn_and_split.
6902 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
6903 (shiftsi3_compare): New pattern.
6904 (rrx): New pattern.
6905 * config/arm/unspecs.md (UNSPEC_RRX): New.
6906
6907 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6908
6909 * config/arm/arm.md (negdi_extendsidi): New pattern.
6910 (negdi_zero_extendsidi): Likewise.
6911
6912 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6913
6914 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
6915 define_insn_and_split.
6916 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
6917 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
6918
6919 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6920
6921 * config/arm/arm.md (arm_subdi3): Convert define_insn into
6922 define_insn_and_split.
6923 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
6924 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
6925
6926 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6927
6928 * config/arm/arm.md (subsi3_carryin): New pattern.
6929 (subsi3_carryin_const): Likewise.
6930 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
6931 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
6932
6933 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6934
6935 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
6936
6937 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
6938
6939 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
6940 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
6941
6942 2013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6943
6944 * config/arm/arm.c (arm_expand_builtin): Change fcode
6945 type to unsigned int.
6946
6947 2013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6948
6949 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
6950
6951 2013-04-04 Ian Lance Taylor <iant@google.com>
6952
6953 * doc/standards.texi (Standards): The Go frontend supports the Go 1
6954 language standard.
6955
6956 2013-04-04 Steven Bosscher <steven@gcc.gnu.org>
6957
6958 PR middle-end/56729
6959 * df-scan.c (df_insn_delete): Disable failing assert.
6960
6961 2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6962
6963 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
6964 New function prototype.
6965 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
6966 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
6967 (arm_builtin_vectorized_function): New function.
6968
6969 2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6970
6971 * config/arm/arm_neon_builtins.def: New file.
6972 * config/arm/arm.c (neon_builtin_data): Move contents to
6973 arm_neon_builtins.def.
6974 (enum arm_builtins): Include neon builtin definitions.
6975 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
6976 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
6977
6978 2013-04-04 Marek Polacek <polacek@redhat.com>
6979
6980 PR tree-optimization/48186
6981 * predict.c (maybe_hot_frequency_p): Return false if
6982 HOT_BB_FREQUENCY_FRACTION is 0.
6983 (cgraph_maybe_hot_edge_p): Likewise.
6984
6985 2013-04-04 Richard Biener <rguenther@suse.de>
6986
6987 PR tree-optimization/56826
6988 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
6989 more accurately.
6990
6991 2013-04-04 Richard Biener <rguenther@suse.de>
6992
6993 PR tree-optimization/56213
6994 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
6995 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
6996
6997 2013-04-04 Richard Biener <rguenther@suse.de>
6998
6999 PR tree-optimization/56837
7000 * tree-loop-distribution.c (classify_partition): For non-zero
7001 values require that the value has the same precision as its
7002 mode to be useful as memset value.
7003
7004 2013-04-03 Nick Clifton <nickc@redhat.com>
7005
7006 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
7007 (fmssf4): Use fmsf.s on E3V5 architectures.
7008 (fnmasf4): Use fnmaf.s on E3V5 architectures.
7009 (fnmssf4): Use fnmsf.s on E3V5 architectures.
7010
7011 2013-04-03 Jeff Law <law@redhat.com>
7012
7013 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
7014 (lra-eliminations.o): Likewise.
7015
7016 2013-04-03 Teresa Johnson <tejohnson@google.com>
7017
7018 * gcov-io.c (compute_working_sets): Moved most of body of old
7019 compute_working_sets here from profile.c.
7020 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
7021 (gcov_working_set_t): Moved typedef here from basic-block.h
7022 (compute_working_set): Declare.
7023 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
7024 (get_working_sets): Renamed from compute_working_set,
7025 replace most of body with call to new compute_working_sets.
7026 (get_exec_counts): Replace call to compute_working_sets
7027 to get_working_sets.
7028 * profile.h (get_working_sets): Renamed from compute_working_set.
7029 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
7030 to get_working_sets.
7031 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
7032 * gcov-dump.c (dump_working_sets): New function.
7033
7034 2013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
7035
7036 * hwint.c (sext_hwi, zext_hwi): New functions.
7037 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
7038 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
7039 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
7040 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
7041 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
7042 (sext_hwi, zext_hwi): New functions.
7043
7044 2013-04-03 Jeff Law <law@redhat.com>
7045
7046 PR tree-optimization/56799
7047 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
7048 back test for widening conversion erroneously dropped in prior change.
7049
7050 2013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7051
7052 PR target/56809
7053 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
7054 instead of next_real_insn.
7055
7056 2013-04-03 Marek Polacek <polacek@redhat.com>
7057
7058 PR sanitizer/55702
7059 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
7060
7061 2013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7062
7063 PR target/56809
7064 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
7065 next_real_insn.
7066 (thumb1_output_casesi): Likewise.
7067 (thumb2_output_casesi): Likewise.
7068
7069 2013-04-03 Richard Biener <rguenther@suse.de>
7070
7071 PR tree-optimization/56817
7072 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
7073 Split out ...
7074 (tree_unroll_loops_completely_1): ... new function to manually
7075 walk the loop tree, properly defering outer loops of unrolled
7076 loops to later iterations.
7077
7078 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
7079
7080 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
7081 (vectorizable_load): Likewise.
7082 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
7083 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
7084
7085 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
7086
7087 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
7088 BIT_FIELD_REF.
7089
7090 2013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7091
7092 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
7093
7094 2013-04-03 Bin Cheng <bin.cheng@arm.com>
7095
7096 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
7097
7098 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
7099
7100 PR tree-optimization/56790
7101 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
7102 folding.
7103
7104 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
7105
7106 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
7107 Handle VEC_MERGE.
7108 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
7109 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
7110 equal arguments.
7111
7112 2013-04-03 Jakub Jelinek <jakub@redhat.com>
7113
7114 PR c/19449
7115 * tree.h (force_folding_builtin_constant_p): New decl.
7116 * builtins.c (force_folding_builtin_constant_p): New variable.
7117 (fold_builtin_constant_p): Fold immediately also if
7118 force_folding_builtin_constant_p.
7119
7120 2013-04-03 Richard Biener <rguenther@suse.de>
7121
7122 PR tree-optimization/56812
7123 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
7124 DRs of the same interleaving chain are independent.
7125
7126 2013-04-02 Jason Merrill <jason@redhat.com>
7127
7128 * gdbinit.in (pbb): Use debug fn.
7129
7130 2013-04-02 Lawrence Crowl <crowl@google.com>
7131
7132 * sese.h (struct ivtype_map_elt_s): Remove unused.
7133 (extern debug_ivtype_map): Remove unused.
7134 (extern eq_ivtype_map_elts): Remove unused.
7135 * sese.c (debug_ivtype_map): Removed unused.
7136 (debug_ivtype_map_1): Removed unused.
7137 (debug_ivtype_elt): Remove unused.
7138 (eq_ivtype_map_elts): Remove unused.
7139
7140
7141 2013-04-02 Kai Tietz <ktietz@redhat.com>
7142
7143 PR target/52790
7144 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
7145 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
7146 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
7147 function.
7148 (legitimize_pe_coff_symbol): Likewise.
7149 (is_imported_p): New helper-function.
7150 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
7151 for Windows x64 targets.
7152 (ix86_expand_prologue): Optimize for pe-coff targets.
7153 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
7154 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
7155 medium/large code-model.
7156 (legitimize_pic_address): Likewise.
7157 (legitimize_tls_address): Likewise.
7158 (ix86_expand_call): Likewise.
7159 (x86_output_mi_thunk): Likewise.
7160 (get_dllimport_decl): Add new beimport argument.
7161 (construct_plt_address): Don't assert for x64 pe-coff targets.
7162 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
7163 targets.
7164 (SYMBOL_FLAG_STUBVAR): New macro.
7165 (SYMBOL_REF_STUBVAR_P): Likewise.
7166 * config/i386/winnt.c (stub_list): New structure.
7167 (stub_head): New local variable.
7168 (i386_pe_record_stub): New function.
7169 (i386_pe_file_end): Emit refptr-stubs.
7170
7171 2013-04-02 Jakub Jelinek <jakub@redhat.com>
7172
7173 PR rtl-optimization/56745
7174 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
7175 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
7176
7177 PR c++/34949
7178 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
7179 and both of them are MEM_REFs, just compare first argument for
7180 equality and attempt to deal even with differing offsets.
7181
7182 PR c++/34949
7183 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
7184 of gimple_clobber_p to be MEM_REF.
7185 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
7186 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
7187 after gimplification.
7188 * asan.c (get_mem_ref_of_assignment): Don't instrument
7189 gimple_clobber_p stmts.
7190 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
7191 gimple_clobber_p stmt if they have MEM_REF lhs and
7192 are dead because of another gimple_clobber_p stmt.
7193 * tree-ssa-live.c (clear_unused_block_pointer): Treat
7194 gimple_clobber_p stmts like debug stmts.
7195 (remove_unused_locals): Remove clobbers with MEM_REF lhs
7196 that refer to unused VAR_DECLs or uninitialized values.
7197 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
7198 gimple_clobber_p stmts if they refer to removed parameters.
7199 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
7200 formatting.
7201
7202 2013-04-02 Uros Bizjak <ubizjak@gmail.com>
7203
7204 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
7205 using SWI48 mode attribute.
7206
7207 2013-04-02 Wei Mi <wmi@google.com>
7208
7209 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
7210 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
7211 *<rotate_insn><mode>3_mask in i386.md.
7212
7213 2013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
7214
7215 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
7216
7217 2013-04-02 Richard Biener <rguenther@suse.de>
7218
7219 PR tree-optimization/56778
7220 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
7221 Runtime alias tests are not supported for gather loads.
7222 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
7223 stmts referenced from SSA operands before updating SSA form.
7224
7225 2013-04-02 Ian Caulfield <ian.caulfield@arm.com>
7226 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7227
7228 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
7229 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
7230 * config/arm/cortex-a53.md: New file.
7231 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
7232 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
7233 * config/arm/arm.c (arm_issue_rate): Likewise.
7234 * config/arm/arm-tune.md: Regenerate
7235 * config/arm/arm-tables.opt: Regenerate.
7236 * config/arm/arm-cores.def: Add cortex-a53.
7237
7238 2013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
7239
7240 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
7241 non-static link.
7242
7243 2013-04-02 Sofiane Naci <sofiane.naci@arm.com>
7244
7245 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
7246 scalar load/store operations using B/H registers.
7247 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
7248
7249 2013-04-02 Sofiane Naci <sofiane.naci@arm.com>
7250
7251 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
7252 scalar move.
7253 * config/aarch64/aarch64.c
7254 (aarch64_simd_scalar_immediate_valid_for_move): New.
7255 * config/aarch64/aarch64-protos.h
7256 (aarch64_simd_scalar_immediate_valid_for_move): New.
7257 * config/aarch64/constraints.md (Dh, Dq): New.
7258 * config/aarch64/iterators.md (hq): New.
7259
7260 2013-04-02 Eric Botcazou <ebotcazou@adacore.com>
7261
7262 * reorg.c (get_branch_condition): Deal with conditional returns.
7263 (fill_simple_delay_slots): Remove dead code dealing with jumps.
7264
7265 2013-04-01 Wei Mi <wmi@google.com>
7266
7267 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
7268 Truncate operand 2 using %b asm operand modifier.
7269 (*<shift_insn><mode>3_mask): Ditto.
7270 (*<rotate_insn><mode>3_mask): Ditto.
7271
7272 2013-04-01 Steven Bosscher <steven@gcc.gnu.org>
7273
7274 PR middle-end/56798
7275 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
7276
7277 2013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
7278
7279 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
7280 of next_real_insn.
7281 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
7282
7283 2013-03-30 Lawrence Crowl <crowl@google.com>
7284
7285 * dse.c (clear_alias_sets): Remove never set.
7286 (disqualified_clear_alias_sets): Remove never set.
7287 (clear_alias_mode_pool): Remove never set.
7288 (dse_step0): Remove condition that is never true.
7289 (canon_address): Remove condition that is never true.
7290 (dse_step7): Remove condition that is never true.
7291 (rest_of_handle_dse): Remove condition that is never true.
7292 (rest_of_handle_dse::did_global): Remove never read from above.
7293 (dse_step2_spill): Remove never called from above.
7294 (dse_step5_spill): Remove never called from above.
7295
7296 2013-03-30 Steven Bosscher <steven@gcc.gnu.org>
7297
7298 * doc/md.texi (Standard Names) <casesi>: Update documentation for
7299 JUMP_TABLE_DATA changes.
7300 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
7301 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
7302 (Insns) <jump_table_data>: New entry.
7303 * doc/tm.texi: Regenerate.
7304
7305 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
7306
7307 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
7308 for table jump at the end of a basic block using tablejump_p.
7309 * targhooks.c (default_invalid_within_doloop): Likewise.
7310 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
7311 target hook implementation that is identical to the default hook.
7312 (rs6000_invalid_within_doloop): Remove.
7313
7314 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
7315 unused variable from tablejump_p call.
7316
7317 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
7318 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
7319 (INSN_DELETED_P): Likewise.
7320 (emit_jump_table_data): New prototype.
7321 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
7322 after 4th as unused.
7323 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
7324 * sched-vis.c (print_insn): Likewise.
7325 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
7326 insn for compatibility with back ends that use next_active_insn to
7327 identify jump table data.
7328 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
7329 (remove_insn): Likewise.
7330 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
7331 to be emitted.
7332 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
7333 (emit_jump_table_data): New function.
7334
7335 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
7336 basic block, a JUMP_TABLE_DATA never is.
7337 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
7338 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
7339 off from code handling real insns.
7340 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
7341 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
7342 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
7343 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
7344 is not a NONDEBUG_INSN_P.
7345 * ira-costs.c (scan_one_insn): Likewise.
7346 * jump.c (mark_all_labels): Likewise.
7347 (mark_jump_label_1): Likewise.
7348 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
7349 * lra.c (get_insn_freq): Expect all insns reaching here to be in
7350 a basic block.
7351 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
7352 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
7353 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
7354 JUMP_TABLE_DATA_P insns.
7355 (calculate_elim_costs_all_insns): Likewise.
7356 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
7357 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
7358 (delete_output_reload): Code style fixups.
7359 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
7360 insn flags on this non-insn.
7361 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
7362 as scheduling barriers, for pre-change compatibility.
7363 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
7364 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
7365
7366 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
7367 redundant JUMP_TABLE_DATA_P test.
7368 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
7369 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
7370 (frv_for_each_packet): Likewise.
7371 * config/i386/i386.c (min_insn_size): Likewise.
7372 (ix86_avoid_jump_mispredicts): Likewise.
7373 * config/m32r/m32r.c (m32r_is_insn): Likewise.
7374 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
7375 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
7376 (mips16_insn_length): Robustify.
7377 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
7378 (mips16_split_long_branches): Likewise.
7379 * config/pa/pa.c (pa_combine_instructions): Likewise.
7380 * config/rs6000/rs6000.c (get_next_active_insn): Treat
7381 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
7382 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
7383 as contributing to pool range lengths.
7384 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
7385 Remove redundant JUMP_TABLE_DATA_P test.
7386 (sh_loop_align): Likewise.
7387 (split_branches): Likewise.
7388 (sh_insn_length_adjustment): Likewise.
7389 * config/spu/spu.c (get_branch_target): Likewise.
7390
7391 2013-03-29 Jan Hubicka <jh@suse.cz>
7392
7393 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
7394 gcov streaming; stream hot bb threshold to ltrans.
7395 * predict.c (get_hot_bb_threshold): Break out from ....
7396 (maybe_hot_count_p): ... here.
7397 (set_hot_bb_threshold): New function.
7398 * lto-section-in.c (lto_section_name): Add profile.
7399 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
7400 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
7401 and data-streamer.h
7402 (histogram_entry): New structure.
7403 (histogram, histogram_pool): New global vars.
7404 (histogram_hash): New structure.
7405 (histogram_hash::hash): New method.
7406 (histogram_hash::equal): Likewise.
7407 (account_time_size): New function.
7408 (cmp_counts): New function.
7409 (dump_histogram): New function.
7410 (ipa_profile_generate_summary): New function.
7411 (ipa_profile_write_summary): New function.
7412 (ipa_profile_read_summary): New function.
7413 (ipa_profile): Decide on threshold.
7414 (pass_ipa_profile): Add ipa_profile_write_summary and
7415 ipa_profile_read_summary.
7416 * Makefile.in (ipa.o): Update dependencies.
7417 * lto-streamer.h (LTO_section_ipa_profile): New section.
7418
7419 2013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
7420
7421 * tree.h (VAR_P): New.
7422
7423 2013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
7424
7425 PR lto/56777
7426 * doc/invoke.texi ([-fwhole-program]): Fix typo.
7427
7428 2013-03-29 Steven Bosscher <steven@gcc.gnu.org>
7429
7430 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
7431 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
7432 (control_flow_insn_p): Likewise.
7433 * cfgrtl.c (duplicate_insn_chain): Likewise.
7434 * final.c (get_attr_length_1): Likewise.
7435 (shorten_branches): Likewise.
7436 (final_scan_insn): Likewise.
7437 * function.c (instantiate_virtual_regs): Likewise.
7438 * gcse.c (insert_insn_end_basic_block): Likewise.
7439 * ira-costs.c (scan_one_insn): Likewise.
7440 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
7441 * lra.c (check_rtl): Likewise.
7442 * reload1.c (elimination_costs_in_insn): Likewise.
7443 * reorg.c (follow_jumps): Likewise.
7444
7445 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
7446 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
7447 (thumb_far_jump_used_p): Likewise.
7448 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
7449 (workaround_speculation): Likewise.
7450 (add_sched_insns_for_speculation): Likewise.
7451 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
7452 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
7453 (frv_for_each_packet): Likewise.
7454 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
7455 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
7456 (final_emit_insn_group_barriers): Likewise.
7457 * config/m32r/m32r.c (m32r_is_insn): Likewise.
7458 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
7459 (mips16_insn_length): Likewise.
7460 * config/pa/pa.c (pa_reorg): Likewise.
7461 (pa_combine_instructions): Likewise.
7462 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
7463 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
7464 (sh_reorg): Likewise.
7465 (split_branches): Likewise.
7466 * config/spu/spu.c (get_branch_target): Likewise.
7467
7468 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
7469 JUMP_TABLE_DATA_P.
7470
7471 2013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
7472
7473 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
7474 Fix declaration name.
7475
7476 2013-03-28 Lawrence Crowl <crowl@google.com>
7477
7478 * graphds.h (struct graph.indicies): Remove unused.
7479 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
7480 (SCOP_ORIGINAL_PDDRS): Remove unused.
7481 * sese.h (extern insert_loop_close_phis): Removed unused.
7482 (extern insert_guard_phis): Removed unused.
7483 (extern ivtype_map_elt_info): Removed unused.
7484 (new_ivtype_map_elt): Removed unused.
7485 * sese.c (ivtype_map_elt_info): Removed unused.
7486
7487 2013-03-28 Lawrence Crowl <crowl@google.com>
7488
7489 * Makefile.in: Add several missing include dependences.
7490 (DUMPFILE_H): New.
7491 (test-dump.o): New. This object is not added to any executable,
7492 but is present for ad-hoc testing.
7493 * bitmap.c
7494 (debug (const bitmap_head_def &)): New.
7495 (debug (const bitmap_head_def *)): New.
7496 * bitmap.h
7497 (extern debug (const bitmap_head_def &)): New.
7498 (extern debug (const bitmap_head_def *)): New.
7499 * cfg.c
7500 (debug (edge_def &)): New.
7501 (debug (edge_def *)): New.
7502 * cfghooks.c
7503 (debug (basic_block_def &)): New.
7504 (debug (basic_block_def *)): New.
7505 * dumpfile.h
7506 (dump_node (const_tree, int, FILE *)): Correct source file.
7507 * dwarf2out.c
7508 (debug (die_struct &)): New.
7509 (debug (die_struct *)): New.
7510 * dwarf2out.h
7511 (extern debug (die_struct &)): New.
7512 (extern debug (die_struct *)): New.
7513 * gimple-pretty-print.c
7514 (debug (gimple_statement_d &)): New.
7515 (debug (gimple_statement_d *)): New.
7516 * gimple-pretty-print.h
7517 (extern debug (gimple_statement_d &)): New.
7518 (extern debug (gimple_statement_d *)): New.
7519 * ira-build.c
7520 (debug (ira_allocno_copy &)): New.
7521 (debug (ira_allocno_copy *)): New.
7522 (debug (ira_allocno &)): New.
7523 (debug (ira_allocno *)): New.
7524 * ira-int.h
7525 (extern debug (ira_allocno_copy &)): New.
7526 (extern debug (ira_allocno_copy *)): New.
7527 (extern debug (ira_allocno &)): New.
7528 (extern debug (ira_allocno *)): New.
7529 * ira-lives.c
7530 (debug (live_range &)): New.
7531 (debug (live_range *)): New.
7532 * lra-int.h
7533 (debug (lra_live_range &)): New.
7534 (debug (lra_live_range *)): New.
7535 * lra-lives.c
7536 (debug (lra_live_range &)): New.
7537 (debug (lra_live_range *)): New.
7538 * omega.c
7539 (debug (omega_pb_d &)): New.
7540 (debug (omega_pb_d *)): New.
7541 * omega.h
7542 (extern debug (omega_pb_d &)): New.
7543 (extern debug (omega_pb_d *)): New.
7544 * print-rtl.c
7545 (debug (const rtx_def &)): New.
7546 (debug (const rtx_def *)): New.
7547 * print-tree.c
7548 (debug_tree (tree): Move within file.
7549 (debug_raw (const tree_node &)): New.
7550 (debug_raw (const tree_node *)): New.
7551 (dump_tree_via_hooks (const tree_node *, int)): New.
7552 (debug (const tree_node &)): New.
7553 (debug (const tree_node *)): New.
7554 (debug_verbose (const tree_node &)): New.
7555 (debug_verbose (const tree_node *)): New.
7556 (debug_head (const tree_node &)): New.
7557 (debug_head (const tree_node *)): New.
7558 (debug_body (const tree_node &)): New.
7559 (debug_body (const tree_node *)): New.
7560 (debug_vec_tree (tree): Move and reimplement in terms of dump.
7561 (debug (vec<tree, va_gc> &)): New.
7562 (debug (vec<tree, va_gc> *)): New.
7563 * rtl.h
7564 (extern debug (const rtx_def &)): New.
7565 (extern debug (const rtx_def *)): New.
7566 * sbitmap.c
7567 (debug_raw (simple_bitmap_def &)): New.
7568 (debug_raw (simple_bitmap_def *)): New.
7569 (debug (simple_bitmap_def &)): New.
7570 (debug (simple_bitmap_def *)): New.
7571 * sbitmap.h
7572 (extern debug (simple_bitmap_def &)): New.
7573 (extern debug (simple_bitmap_def *)): New.
7574 (extern debug_raw (simple_bitmap_def &)): New.
7575 (extern debug_raw (simple_bitmap_def *)): New.
7576 * sel-sched-dump.c
7577 (debug (vinsn_def &)): New.
7578 (debug (vinsn_def *)): New.
7579 (debug_verbose (vinsn_def &)): New.
7580 (debug_verbose (vinsn_def *)): New.
7581 (debug (expr_def &)): New.
7582 (debug (expr_def *)): New.
7583 (debug_verbose (expr_def &)): New.
7584 (debug_verbose (expr_def *)): New.
7585 (debug (vec<rtx> &)): New.
7586 (debug (vec<rtx> *)): New.
7587 * sel-sched-dump.h
7588 (extern debug (vinsn_def &)): New.
7589 (extern debug (vinsn_def *)): New.
7590 (extern debug_verbose (vinsn_def &)): New.
7591 (extern debug_verbose (vinsn_def *)): New.
7592 (extern debug (expr_def &)): New.
7593 (extern debug (expr_def *)): New.
7594 (extern debug_verbose (expr_def &)): New.
7595 (extern debug_verbose (expr_def *)): New.
7596 (extern debug (vec<rtx> &)): New.
7597 (extern debug (vec<rtx> *)): New.
7598 * sel-sched-ir.h
7599 (_list_iter_cond_expr): Make inline instead of static.
7600 * sreal.c
7601 (debug (sreal &)): New.
7602 (debug (sreal *)): New.
7603 * sreal.h
7604 (extern debug (sreal &)): New.
7605 (extern debug (sreal *)): New.
7606 * tree.h
7607 (extern debug_raw (const tree_node &)): New.
7608 (extern debug_raw (const tree_node *)): New.
7609 (extern debug (const tree_node &)): New.
7610 (extern debug (const tree_node *)): New.
7611 (extern debug_verbose (const tree_node &)): New.
7612 (extern debug_verbose (const tree_node *)): New.
7613 (extern debug_head (const tree_node &)): New.
7614 (extern debug_head (const tree_node *)): New.
7615 (extern debug_body (const tree_node &)): New.
7616 (extern debug_body (const tree_node *)): New.
7617 (extern debug (vec<tree, va_gc> &)): New.
7618 (extern debug (vec<tree, va_gc> *)): New.
7619 * tree-cfg.c
7620 (debug (struct loop &)): New.
7621 (debug (struct loop *)): New.
7622 (debug_verbose (struct loop &)): New.
7623 (debug_verbose (struct loop *)): New.
7624 * tree-dump.c: Add header dependence.
7625 * tree-flow.h
7626 (extern debug (struct loop &)): New.
7627 (extern debug (struct loop *)): New.
7628 (extern debug_verbose (struct loop &)): New.
7629 (extern debug_verbose (struct loop *)): New.
7630 * tree-data-ref.c
7631 (debug (data_reference &)): New.
7632 (debug (data_reference *)): New.
7633 (debug (vec<data_reference_p> &)): New.
7634 (debug (vec<data_reference_p> *)): New.
7635 (debug (vec<ddr_p> &)): New.
7636 (debug (vec<ddr_p> *)): New.
7637 * tree-data-ref.h
7638 (extern debug (data_reference &)): New.
7639 (extern debug (data_reference *)): New.
7640 (extern debug (vec<data_reference_p> &)): New.
7641 (extern debug (vec<data_reference_p> *)): New.
7642 (extern debug (vec<ddr_p> &)): New.
7643 (extern debug (vec<ddr_p> *)): New.
7644 * tree-ssa-alias.c
7645 (debug (pt_solution &)): New.
7646 (debug (pt_solution *)): New.
7647 * tree-ssa-alias.h
7648 (extern debug (pt_solution &)): New.
7649 (extern debug (pt_solution *)): New.
7650 * tree-ssa-alias.c
7651 (debug (_var_map &)): New.
7652 (debug (_var_map *)): New.
7653 (debug (tree_live_info_d &)): New.
7654 (debug (tree_live_info_d *)): New.
7655 * tree-ssa-alias.h
7656 (extern debug (_var_map &)): New.
7657 (extern debug (_var_map *)): New.
7658 (extern debug (tree_live_info_d &)): New.
7659 (extern debug (tree_live_info_d *)): New.
7660
7661 2013-03-28 Jan Hubicka <jh@suse.cz>
7662
7663 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
7664
7665 2013-03-28 Ian Bolton <ian.bolton@arm.com>
7666
7667 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
7668 record only when desired or required.
7669
7670 2013-03-28 Uros Bizjak <ubizjak@gmail.com>
7671
7672 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
7673 *vec_extractv2di_1_rex64. Use x64 isa attribute.
7674
7675 2013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
7676
7677 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
7678 (*andsi3_compare0_uxtw): New pattern.
7679 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
7680 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
7681
7682 2013-03-28 Jan Hubicka <jh@suse.cz>
7683
7684 * data-streamer-in.c (streamer_read_gcov_count): New function.
7685 * gimple-streamer-out.c: Include value-prof.h.
7686 (output_gimple_stmt): Output histogram.
7687 (output_bb): Use streamer_write_gcov_count.
7688 * value-prof.c: Include data-streamer.h
7689 (dump_histogram_value): Add HIST_TYPE_MAX.
7690 (stream_out_histogram_value): New function.
7691 (stream_in_histogram_value): New function.
7692 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
7693 (stream_out_histogram_value, stream_in_histogram_value): Declare.
7694 * data-streamer-out.c (streamer_write_gcov_count): New function.
7695 (streamer_write_gcov_count_stream): New function.
7696 * lto-cgraph.c (lto_output_edge): Update counter streaming.
7697 (lto_output_node): Likewise.
7698 (input_node, input_edge): Likewise.
7699 * lto-streamer-out.c (output_cfg): Update streaming.
7700 * lto-streamer-in.c (input_cfg): Likewise.
7701 * data-streamer.h (streamer_write_gcov_count,
7702 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
7703 * gimple-streamer-in.c: Include value-prof.h
7704 (input_gimple_stmt): Input histograms.
7705 (input_bb): Update profile streaming.
7706
7707 2013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
7708
7709 * genmodes.c (emit_max_int): New function.
7710 (emit_insn_modes_h): Added call to emit_max_function.
7711 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
7712 Added doc.
7713 * machmode.def: Fixed comment.
7714
7715 2013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
7716
7717 * combine.c (try_combine): Removed useless assert.
7718 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
7719
7720 2013-03-28 Marek Polacek <polacek@redhat.com>
7721 Richard Biener <rguenther@suse.de>
7722
7723 PR tree-optimization/56695
7724 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
7725 build signed result of a vector comparison.
7726 * tree-cfg.c (verify_gimple_comparison): Check that a result
7727 of a vector comparison has signed type.
7728
7729 2013-03-28 Richard Biener <rguenther@suse.de>
7730
7731 PR tree-optimization/37021
7732 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
7733 do not restrict gaps between groups.
7734 * tree-vect-stmts.c (vectorizable_load): Properly account for
7735 a gap between groups.
7736
7737 2013-03-28 Eric Botcazou <ebotcazou@adacore.com>
7738
7739 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
7740 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
7741 is not enabled.
7742
7743 2013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
7744
7745 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
7746 * doc/extend.texi (Named Address Spaces): Ditto.
7747 (Variable Attributes): Ditto.
7748
7749 2013-03-27 Kai Tietz <ktietz@redhat.com>
7750
7751 * config.build: Add support for cygwin x64 target.
7752 * config.gcc: Likewise.
7753 * config.host: Likewise.
7754 * configure.ac: Likewise
7755 * configure: Regenerated.
7756
7757 2013-03-27 Kai Tietz <ktietz@redhat.com>
7758
7759 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
7760 * config/i386/t-cygwin-w64: New file.
7761 * config/i386/cygwin-w64.h: New file.
7762 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
7763 and add support for x64-cygwin target.
7764 (CPP_SPEC): Likewise.
7765 (CXX_WRAP_SPEC_LIST): Undefine before define.
7766 (LIBGCJ_SONAME): Use 15 as version.
7767
7768 2013-03-27 Richard Biener <rguenther@suse.de>
7769
7770 PR tree-optimization/56716
7771 * tree-ssa-structalias.c (perform_var_substitution): Adjust
7772 dumping for ref nodes.
7773
7774 2013-03-27 Martin Jambor <mjambor@suse.cz>
7775
7776 PR tree-optimization/55334
7777 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
7778 restricted pointers to arrays.
7779
7780 2013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
7781
7782 * Makefile.in (.SUFFIXES): Add .cc.
7783 (.c.o): Apply same recipe for implicit rule .cc.o.
7784
7785 2013-03-27 Richard Biener <rguenther@suse.de>
7786
7787 PR tree-optimization/37021
7788 * tree-vect-data-refs.c (vect_check_strided_load): Allow
7789 REALPART/IMAGPART_EXPRs around the supported refs.
7790 * tree-ssa-structalias.c (find_func_aliases): Assume that
7791 floating-point values are not used to transfer pointers.
7792
7793 2013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
7794
7795 * target.def (TARGET_HAS_IFUNC_P): New target hook.
7796 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
7797 * doc/tm.texi: Regenerate.
7798 * targhooks.h (default_has_ifunc_p): New.
7799 * targhooks.c (default_has_ifunc_p): Ditto.
7800 * config/linux-protos.h: New file.
7801 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of
7802 this hook for linux which disables support of indirect functions in
7803 android.
7804 * config/linux-android.c: New file.
7805 * config/t-linux-android.c: Ditto.
7806 * config.gcc: Added new object file linux-android.o.
7807 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
7808 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
7809 * varasm.c (do_assemble_alias): Likewise.
7810 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
7811 doesn't support indirect functions.
7812 * configure: Regenerate.
7813
7814 2013-03-27 Bin Cheng <bin.cheng@arm.com>
7815
7816 PR target/56102
7817 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
7818 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
7819 mult-word mode.
7820
7821 2013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7822
7823 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
7824
7825 2013-03-27 Terry Guo <terry.guo@arm.com>
7826
7827 * config/arm/arm-cores.def: Added core cortex-r7.
7828 * config/arm/arm-tune.md: Regenerated.
7829 * config/arm/arm-tables.opt: Regenerated.
7830 * doc/invoke.texi: Added entry for core cortex-r7.
7831
7832 2013-03-27 Walter Lee <walt@tilera.com>
7833
7834 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
7835 double-decrement of next_scratch_regno.
7836
7837 2013-03-27 Walter Lee <walt@tilera.com>
7838
7839 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
7840 input operands.
7841 (insn_v1mulus): Ditto.
7842 (insn_v2muls): Ditto.
7843
7844 2013-03-27 Walter Lee <walt@tilera.com>
7845
7846 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
7847 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
7848
7849 2013-03-27 Walter Lee <walt@tilera.com>
7850
7851 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
7852 (*sibcall_value): Ditto.
7853
7854 2013-03-27 Walter Lee <walt@tilera.com>
7855
7856 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
7857 (insn_mnz_v8qi): ... this ...
7858 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
7859 vector equivalent.
7860 (insn_v<n>mnz): Replaced by ...
7861 (insn_v1mnz): ... this ...
7862 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
7863 equivalent.
7864 (insn_mz_<mode>): Replaced by ...
7865 (insn_mz_v8qi): ... this ...
7866 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
7867 vector equivalent.
7868 (insn_v<n>mz): Replaced by ...
7869 (insn_v1mz): ... this ...
7870 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
7871 equivalent.
7872
7873 2013-03-26 Eric Botcazou <ebotcazou@adacore.com>
7874
7875 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
7876
7877 2013-03-26 Roland McGrath <mcgrathr@google.com>
7878
7879 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
7880 than fprintf with a non-constant, non-format string.
7881
7882 2013-03-26 Uros Bizjak <ubizjak@gmail.com>
7883
7884 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
7885 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
7886 operand 0 predicate.
7887 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
7888 attribute. Use general_x64nomem_operand as operand 1 predicate.
7889 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
7890 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
7891 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
7892 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
7893 (mov<mode>_insv_1): Remove expander. Merge insn with
7894 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
7895 Use general_x64nomem_operand as operand 1 predicate.
7896 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
7897 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
7898 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
7899 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
7900 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
7901 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
7902 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
7903 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
7904 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
7905 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
7906 (general_x64nomem_operand): Ditto.
7907
7908 2013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
7909
7910 * config/rtems.opt: Add -pthread option.
7911
7912 2013-03-26 Richard Biener <rguenther@suse.de>
7913
7914 * alias.c (find_base_term): Avoid redundant and not used recursion.
7915 (base_alias_check): Get the initial base term from the caller.
7916 (true_dependence_1): Compute and pass base terms to base_alias_check.
7917 (write_dependence_p): Likewise.
7918 (may_alias_p): Likewise.
7919
7920 2013-03-26 Sofiane Naci <sofiane.naci@arm.com>
7921
7922 * config/aarch64/aarch64.c (aarch64_classify_address): Support
7923 PC-relative load in SI modes and above only.
7924
7925 2013-03-26 Xinyu Qi <xyqi@marvell.com>
7926
7927 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
7928 * config/arm/iwmmxt.md (WCGR0): Update.
7929 (WCGR1, WCGR2, WCGR3): Likewise.
7930
7931 2013-03-26 Uros Bizjak <ubizjak@gmail.com>
7932
7933 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
7934 Use x64 and nox64 isa attributes.
7935
7936 2013-03-26 Richard Biener <rguenther@suse.de>
7937
7938 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
7939 alignment computations and rely on get_object_alignment_1
7940 for the !TYPE_P case.
7941 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
7942
7943 2013-03-26 Walter Lee <walt@tilera.com>
7944
7945 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
7946 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
7947
7948 2013-03-25 Jeff Law <law@redhat.com>
7949
7950 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
7951 check for INTEGRAL_TYPE_P that was missing due to checking in
7952 wrong version of prior patch.
7953
7954 2013-03-25 Walter Lee <walt@tilera.com>
7955
7956 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
7957 TILEGX_INSN_SHUFFLEBYTES1.
7958 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
7959 shufflebytes1.
7960 (tilegx_builtins): Ditto.
7961 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
7962
7963 2013-03-25 Walter Lee <walt@tilera.com>
7964
7965 * config/tilegx/tilegx.md (floatsisf2): New pattern.
7966 (floatunssisf2): New pattern.
7967 (floatsidf2): New pattern.
7968 (floatunssidf2): New pattern.
7969
7970 2013-03-25 Walter Lee <walt@tilera.com>
7971
7972 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
7973 tests for constraint J, K, N, P.
7974
7975 2013-03-25 Walter Lee <walt@tilera.com>
7976
7977 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
7978 Use indirect/pcrel encoding.
7979 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
7980 Ditto.
7981
7982 2013-03-25 Steve Ellcey <sellcey@mips.com>
7983
7984 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
7985 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
7986 * config/mips/mips.c (mips_option_override): Set IMADD default.
7987 * config/mips/mips.h (PTF_AVOID_IMADD): New.
7988 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
7989 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
7990 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
7991 * doc/invoke.texi (-mimadd/-mno-imadd): New.
7992
7993 2013-03-25 Jeff Law <law@redhat.com>
7994
7995 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
7996 slightly to avoid creating and folding useless trees. Simplify
7997 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
7998
7999 2013-03-25 Uros Bizjak <ubizjak@gmail.com>
8000
8001 * config/i386/i386.md (*zero_extendsidi2): Merge with
8002 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
8003 * config/i386/predicates.md (x86_64_zext_operand): Rename from
8004 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
8005 targets. Clarify comment.
8006
8007 2013-03-25 Martin Jambor <mjambor@suse.cz>
8008
8009 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
8010 pass-through jump functions differently.
8011 (ipa_read_jump_function): Likewise. Also use setter functions to set
8012 up jump functions.
8013
8014 2013-03-25 Martin Jambor <mjambor@suse.cz>
8015
8016 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
8017 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
8018 process it.
8019 (ipa_get_indirect_edge_target): New function.
8020 (devirtualization_time_bonus): New parameter known_aggs, pass it to
8021 ipa_get_indirect_edge_target. Update all callers.
8022 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
8023 ipa_get_indirect_edge_target_1 instead of calling
8024 ipa_get_indirect_edge_target.
8025 (create_specialized_node): Pass aggvlas to
8026 ipcp_discover_new_direct_edges.
8027
8028 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8029
8030 * config/arm/arm.md (f_sels, f_seld): New types.
8031 (*cmov<mode>): New pattern.
8032 * config/arm/predicates.md (arm_vsel_comparison_operator): New
8033 predicate.
8034
8035 2013-03-25 Kai Tietz <ktietz@redhat.com>
8036
8037 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
8038 POSIX-printf for mingw-hosted builds.
8039
8040 2013-03-25 Richard Biener <rguenther@suse.de>
8041
8042 PR middle-end/56694
8043 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
8044 must-not-throw stmt location.
8045
8046 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8047
8048 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
8049 Emit load-acquire versions when acq is true.
8050 (arm_emit_store_exclusive): Add rel parameter.
8051 Emit store-release versions when rel is true.
8052 (arm_split_compare_and_swap): Use acquire-release instructions
8053 instead.
8054 of barriers when appropriate.
8055 (arm_split_atomic_op): Likewise.
8056 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
8057 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
8058 (VUNSPEC_SLX): Likewise.
8059 (VUNSPEC_LDA): Likewise.
8060 (VUNSPEC_STL): Likewise.
8061 * config/arm/sync.md (atomic_load<mode>): New pattern.
8062 (atomic_store<mode>): Likewise.
8063 (arm_load_acquire_exclusive<mode>): Likewise.
8064 (arm_load_acquire_exclusivesi): Likewise.
8065 (arm_load_acquire_exclusivedi): Likewise.
8066 (arm_store_release_exclusive<mode>): Likewise.
8067
8068 2013-03-25 Catherine Moore <clm@codesourcery.com>
8069
8070 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
8071 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
8072 * config/mip/predicates.md (lwsp_swsp_operand,
8073 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
8074 sb16_operand, db4_operand, db7_operand, ib3_operand,
8075 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
8076 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
8077 andi16_operand): New predicates.
8078 * config/mips/mips.md (compression): New attribute.
8079 (enabled): New attribute.
8080 (length): Consider compression in computing length.
8081 (shift_compression): New code attribute.
8082 (*add<mode>3): New operands. Record compression.
8083 (sub<mode>3): Likewise.
8084 (one_cmpl<mode>2): Likewise.
8085 (*and<mode>3): Likewise.
8086 (*ior<mode>3): Likewise.
8087 (unnamed pattern for xor): Likewise.
8088 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
8089 (*<optab><mode>3): Likewise.
8090 (*mov<mode>_internal: Likewise.
8091 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
8092 (mips_unsigned_immediate_p): New.
8093 (umips_lwsp_swsp_address_p): New.
8094 (m16_based_address_p): New.
8095 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
8096 (mips_unsigned_immediate_p): New prototype.
8097 (lwsp_swsp_address_p): New prototype.
8098 (m16_based_address_p): New prototype.
8099 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
8100 (mips_signed_immediate_p): New function.
8101 (m16_based_address_p): New function.
8102 (lwsp_swsp_address_p): New function.
8103 (mips_print_operand_punctuation): Recognize short delay slot insns
8104 for microMIPS.add<mode>3"
8105
8106 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8107
8108 PR target/56720
8109 * config/arm/iterators.md (v_cmp_result): New mode attribute.
8110 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
8111
8112 2013-03-25 Richard Biener <rguenther@suse.de>
8113
8114 PR tree-optimization/56689
8115 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
8116 any edge.
8117
8118 2013-03-25 Richard Biener <rguenther@suse.de>
8119
8120 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
8121 of bitmap.
8122 (memory_references): Likewise.
8123 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
8124 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
8125 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
8126 (gather_mem_refs_in_loops): Fold into ...
8127 (analyze_memory_references): ... this. Move initialization
8128 to tree_ssa_lim_initialize.
8129 (fill_always_executed_in): Rename to ...
8130 (fill_always_executed_in_1): ... this.
8131 (fill_always_executed_in): Move contains_call computation to
8132 this new function from ...
8133 (tree_ssa_lim_initialize): ... here.
8134 (tree_ssa_lim): Call fill_always_executed_in.
8135
8136 2013-03-25 Eric Botcazou <ebotcazou@adacore.com>
8137
8138 * postreload.c (reload_combine): Fix code detecting returns.
8139
8140 2013-03-25 Eric Botcazou <ebotcazou@adacore.com>
8141
8142 * function.c (emit_use_return_register_into_block): On cc0 targets,
8143 do not emit the sequence between cc0 setter and user.
8144
8145 2013-03-25 Kai Tietz <ktietz@redhat.com>
8146
8147 * config/i386/predicates.md (local_symbolic_operand): Interpret
8148 dll-imported symbols as none-local.
8149
8150 2013-03-25 Richard Biener <rguenther@suse.de>
8151
8152 * tree-ssa-loop-im.c (struct depend): Remove.
8153 (struct lim_aux_data): Make depends a vec of gimples.
8154 (free_lim_aux_data): Adjust.
8155 (add_dependency): Likewise.
8156 (set_level): Likewise.
8157
8158 2013-03-25 Richard Biener <rguenther@suse.de>
8159
8160 PR middle-end/56434
8161 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
8162 the pointer returned by calls with ECF_MALLOC set.
8163
8164 2013-03-24 Uros Bizjak <ubizjak@gmail.com>
8165
8166 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
8167
8168 2013-03-24 Uros Bizjak <ubizjak@gmail.com>
8169
8170 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
8171 using MMXMODE mode iterator.
8172 (*move<mode>_internal): Merge with *movv2sf_internal and
8173 *movv2sf_internal_rex64 using MMXMODE mode iterator.
8174
8175 2013-03-23 Steven Bosscher <steven@gcc.gnu.org>
8176
8177 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
8178 (record_last_mem_set_info): Likewise.
8179
8180 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
8181 of XNEWVEC followed by memset.
8182 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
8183
8184 2013-03-23 Steven Bosscher <steven@gcc.gnu.org>
8185
8186 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
8187 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
8188 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
8189 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
8190 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
8191 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
8192 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
8193 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
8194 BARRIER_P instead of GET_CODE.
8195
8196 2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
8197
8198 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
8199 inaccuracy in the probing code.
8200
8201 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
8202 (ctrapdi4): Likewise.
8203
8204 2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
8205
8206 * calls.c (expand_call): Add missing guard to code handling return
8207 of non-BLKmode structures in MSB.
8208 * function.c (expand_function_end): Likewise.
8209
8210 2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
8211
8212 * combine.c (try_combine): Adjust comment. Do not add the set of
8213 insn #0 if the destination indirectly is set or dies in insn #2.
8214 Tidy up code to distribute a new note.
8215
8216 2013-03-22 Uros Bizjak <ubizjak@gmail.com>
8217
8218 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
8219 also for alternatives 16 and 17.
8220
8221 2013-03-22 Uros Bizjak <ubizjak@gmail.com>
8222
8223 * config/i386/sse.md (*mov<mode>_internal): Merge with
8224 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
8225 Emit insn template depending on type attribute. Use
8226 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
8227 movd instead of movq mnemonic for interunit moves. Rewrite mode
8228 attribute calculation. Remove unit attribute calculation.
8229 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
8230 Set prefix_data16 attribute for DImode ssemov types.
8231 Use Ym instead of y for SSE-MMX conversion alternatives.
8232 Reorder operand constraints.
8233
8234 2013-03-22 Steven Bosscher <steven@gcc.gnu.org>
8235
8236 * df.h (df_insn_delete): Adjust prototype.
8237 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
8238 and let it decide whether mark the basic block dirty.
8239 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
8240 * df-scan.c (df_insn_info_delete): New helper function, split
8241 off from df_insn_delete.
8242 (df_scan_free_bb_info): Use it.
8243 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
8244 Likewise.
8245 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
8246 that the insn is actually an insn and it has a non-NULL basic block.
8247 Do not mark basic block dirty if only deleting a DEBUG_INSN.
8248
8249 2013-03-22 Richard Biener <rguenther@suse.de>
8250
8251 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
8252 dep_ref members.
8253 (mem_ref_alloc): Do not allocate them.
8254 (refs_independent_p): Do not query or maintain a cache.
8255
8256 2013-03-22 Richard Biener <rguenther@suse.de>
8257
8258 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
8259 (gather_mem_refs_in_loops): Do not compute it.
8260 (analyze_memory_references): Do not allocate it.
8261 (tree_ssa_lim_finalize): Do not free it.
8262 (for_all_locs_in_loop): Do not query all_refs_in_loop.
8263
8264 2013-03-22 Richard Biener <rguenther@suse.de>
8265
8266 * is-a.h (as_a): Use gcc_checking_assert.
8267
8268 2013-03-22 Ian Bolton <ian.bolton@arm.com>
8269
8270 * config/aarch64/aarch64.c (aarch64_print_operand): New
8271 format specifier for printing a constant in hex.
8272 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
8273 format specifier for printing second operand.
8274
8275 2013-03-22 Richard Biener <rguenther@suse.de>
8276
8277 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
8278 bitmaps.
8279 (gather_mem_refs_in_loops): Perform store accumulation here.
8280 (create_vop_ref_mapping_loop): Remove.
8281 (create_vop_ref_mapping): Likewise.
8282 (analyze_memory_references): Initialize refs_stored_in_loop.
8283 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
8284 (record_indep_loop): Remove.
8285 (record_dep_loop): New function.
8286 (ref_indep_loop_p_1): Adjust to only walk over references
8287 in the loop, not its subloops.
8288 (ref_indep_loop_p): Rename to ...
8289 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
8290 maintaining a more fine-grained cache.
8291 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
8292 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
8293
8294 2013-03-22 Richard Biener <rguenther@suse.de>
8295
8296 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
8297 (struct mem_ref): Make accesses_in_loop a vec of a vec of
8298 aggregate mem_ref_loc.
8299 (free_mem_ref_locs): Inline into ...
8300 (memref_free): ... this and adjust.
8301 (mem_ref_alloc): Adjust.
8302 (mem_ref_locs_alloc): Remove.
8303 (record_mem_ref_loc): Adjust.
8304 (get_all_locs_in_loop): Rewrite into ...
8305 (for_all_locs_in_loop): ... this iterator.
8306 (rewrite_mem_ref_loc): New functor.
8307 (rewrite_mem_refs): Use for_all_locs_in_loop.
8308 (sm_set_flag_if_changed): New functor.
8309 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
8310 (ref_always_accessed): New functor.
8311 (ref_always_accessed_p): Use for_all_locs_in_loop.
8312
8313 2013-03-21 Marc Glisse <marc.glisse@inria.fr>
8314
8315 * tree-pass.h (PROP_gimple_lvec): New.
8316 * passes.c (dump_properties): Handle PROP_gimple_lvec.
8317 (init_optimization_passes): Move pass_lower_vector.
8318 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
8319 PROP_gimple_lvec.
8320 (pass_lower_vector): Provide PROP_gimple_lvec.
8321 (pass_lower_vector_ssa): Likewise.
8322 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
8323
8324 2013-03-21 Mark Wielaard <mjw@redhat.com>
8325
8326 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
8327
8328 2013-03-21 Uros Bizjak <ubizjak@gmail.com>
8329
8330 * config/i386/i386.md (*movdi_internal): Disparage slightly
8331 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
8332 conversion alternatives.
8333
8334 2013-03-21 Jakub Jelinek <jakub@redhat.com>
8335
8336 PR middle-end/48087
8337 * diagnostic.def (DK_WERROR): New kind.
8338 * diagnostic.h (werrorcount): Define.
8339 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
8340 promoted to DK_ERROR, increment DK_WERROR counter instead of
8341 DK_ERROR counter.
8342 * toplev.c (toplev_main): Call print_ignored_options even if
8343 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
8344 even if just werrorcount is non-zero.
8345
8346 PR debug/55608
8347 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
8348 on failure.
8349 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
8350 (string_cst_pool_decl): New function.
8351 (optimize_one_addr_into_implicit_ptr): New function.
8352 (resolve_addr_in_expr): Optimize DWARF location expression
8353 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
8354 which doesn't live in memory, but has DW_AT_location or
8355 DW_AT_const_value, or refers to a string literal, into
8356 DW_OP_GNU_implicit_pointer.
8357 (optimize_location_into_implicit_ptr): New function.
8358 (resolve_addr): If removing DW_AT_location of a variable because
8359 it was DW_OP_addr of address of the variable, but the variable doesn't
8360 live in memory, try to emit const value attribute for the initializer.
8361
8362 2013-03-21 Marc Glisse <marc.glisse@inria.fr>
8363
8364 * tree.h (VECTOR_TYPE_P): New macro.
8365 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
8366 TYPE_MODE): Use it.
8367 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
8368 VEC_COND_EXPR cannot be lvalues.
8369 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
8370
8371 2013-03-21 Marc Glisse <marc.glisse@inria.fr>
8372
8373 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
8374 Restrict the transformation to equal modes.
8375
8376 2013-03-21 Richard Biener <rguenther@suse.de>
8377
8378 PR tree-optimization/39326
8379 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
8380 (MEM_ANALYZABLE): Adjust.
8381 (record_mem_ref_loc): Move bitmap ops ...
8382 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
8383 unanalyzable refs, do not record locations for it.
8384 (analyze_memory_references): Allocate ref zero as shared
8385 unanalyzable ref.
8386 (refs_independent_p): Do not test for unanalyzed mems here.
8387 (ref_indep_loop_p_1): Special-case disambiguation against
8388 the unanalyzed ref.
8389 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
8390
8391 2013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
8392
8393 * config/arm/arm-protos.h (tune_params): Add
8394 prefer_neon_for_64bits field.
8395 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
8396 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
8397 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
8398 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
8399 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
8400 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
8401 (arm_option_override): Handle -mneon-for-64bits new option.
8402 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
8403 (prefer_neon_for_64bits): Declare new variable.
8404 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
8405 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
8406 (arch_enabled): Handle new arch types. Remove support for onlya8
8407 and nota8.
8408 (one_cmpldi2): Use new arch names.
8409 (zero_extend<mode>di2, extend<mode>di2): Ditto.
8410 * config/arm/arm.opt (mneon-for-64bits): Add option.
8411 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
8412 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
8413 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
8414 of onlya8.
8415 * doc/invoke.texi (-mneon-for-64bits): Document.
8416
8417 2013-03-21 Richard Biener <rguenther@suse.de>
8418
8419 PR tree-optimization/39326
8420 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
8421 (sort_bbs_in_loop_postorder_cmp): New function.
8422 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
8423
8424 2013-03-21 Richard Biener <rguenther@suse.de>
8425
8426 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
8427 (vect_insert_into_interleaving_chain): Likewise.
8428 (vect_drs_dependent_in_basic_block): Inline ...
8429 (vect_slp_analyze_data_ref_dependence): ... here. New function,
8430 split out from ...
8431 (vect_analyze_data_ref_dependence): ... here. Simplify.
8432 (vect_check_interleaving): Simplify.
8433 (vect_analyze_data_ref_dependences): Likewise. Split out ...
8434 (vect_slp_analyze_data_ref_dependences): ... this new function.
8435 (dr_group_sort_cmp): New function.
8436 (vect_analyze_data_ref_accesses): Compute data-reference groups
8437 here instead of in vect_analyze_data_ref_dependence. Use
8438 a more efficient algorithm.
8439 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
8440 vect_slp_analyze_data_ref_dependences. Call
8441 vect_analyze_data_ref_accesses earlier.
8442 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
8443 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
8444 (vect_slp_analyze_data_ref_dependences): New prototype.
8445
8446 2013-03-21 Richard Biener <rguenther@suse.de>
8447
8448 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
8449 ref is stored in the loop.
8450 (find_refs_for_sm): Walk only over all stores.
8451 (store_motion_loop): Allocate from lim_bitmap_obstack.
8452 (store_motion): Likewise.
8453
8454 2013-03-21 Richard Biener <rguenther@suse.de>
8455
8456 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
8457 Update virtual SSA form.
8458
8459 2013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8460
8461 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
8462 * configure: Regenerate.
8463 * config.in: Regenerate.
8464 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
8465 if !HAVE_LD_EH_FRAME_CIEV3.
8466
8467 2013-03-21 Richard Biener <rguenther@suse.de>
8468
8469 * tree-cfg.c (verify_expr_no_block): New function.
8470 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
8471 nor DECL_VALUE_EXPR have locations with associated blocks.
8472 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
8473 (clear_unused_block_pointer): Remove code dealing with
8474 blocks in DECL_DEBUG_EXPR locations.
8475
8476 2013-03-21 Richard Biener <rguenther@suse.de>
8477
8478 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
8479 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
8480 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
8481 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
8482 instead of DECL_DEBUG_EXPR_IS_FROM.
8483 * gimplify.c (gimplify_modify_expr): Likewise.
8484 * tree-cfg.c (verify_expr_location_1): Likewise.
8485 * tree-complex.c (create_one_component_var): Likewise.
8486 * tree-sra.c (create_access_replacement): Likewise.
8487 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
8488 (clear_unused_block_pointer): Likewise.
8489 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
8490 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
8491 * var-tracking.c (var_debug_decl): Likewise.
8492 (track_expr_p): Likewise.
8493 * tree-inline.c (add_local_variables): Likewise. Set
8494 DECL_HAS_DEBUG_EXPR_P after copying it.
8495 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
8496 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
8497
8498 2013-03-21 Uros Bizjak <ubizjak@gmail.com>
8499
8500 PR bootstrap/56656
8501 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
8502 * configure: Regenerate.
8503 * config.in: Regenerate.
8504 * config/i386/i386.md (*movdf_internal): Use
8505 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
8506 movd instead of movq mnemonic for interunit moves.
8507 (*movdi_internal): Ditto.
8508
8509 2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
8510
8511 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
8512 (abd<mode>_3): New pattern.
8513 (aba<mode>_3): New pattern.
8514 (fabd<mode>_3): New pattern.
8515
8516 2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
8517
8518 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
8519 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
8520 occurrence of REGISTER_PREFIX as its empty string.
8521
8522 2013-03-20 Jeff Law <law@redhat.com>
8523
8524 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
8525 addititional equivalences for equality comparisons between an SSA_NAME
8526 and a constant where the SSA_NAME was set from a widening conversion.
8527
8528 2013-03-20 Walter Lee <walt@tilera.com>
8529
8530 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
8531
8532 2013-03-20 Uros Bizjak <ubizjak@gmail.com>
8533
8534 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
8535 depending on type attribute.
8536 (*movti_internal): Ditto.
8537 (*movtf_internal): Ditto.
8538 (*movxf_internal): Ditto.
8539 (*movdf_internal): Ditto.
8540 (*movsf_internal): Ditto.
8541
8542 2013-03-20 Uros Bizjak <ubizjak@gmail.com>
8543
8544 * config/i386/i386.md (*movti_internal): Set prefix attribute to
8545 maybe_vex for sselog1 and ssemov types.
8546 (*movdi_internal): Reorder operand constraints.
8547 (*movsi_internal): Ditto. Set prefix attribute to
8548 maybe_vex for sselog1 and ssemov types.
8549 (*movtf_internal): Set prefix attribute to maybe_vex
8550 for sselog1 and ssemov types.
8551 (*movdf_internal): Ditto. Set prefix_data16 attribute for
8552 DImode ssemov types. Reorder operand constraints.
8553 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
8554 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
8555 attribute for SImode ssemov types. Reorder operand constraints.
8556
8557 2013-03-20 Martin Jambor <mjambor@suse.cz>
8558
8559 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
8560 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
8561
8562 2013-03-20 Pat Haugen <pthaugen@us.ibm.com>
8563
8564 * config/rs6000/predicates.md (indexed_address, update_address_mem
8565 update_indexed_address_mem): New predicates.
8566 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
8567 attribute for load/store instructions.
8568 * config/rs6000/dfp.md (movsd_store): Likewise.
8569 (movsd_load): Likewise.
8570 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
8571 (unnamed HI->DI extend define_insn): Likewise.
8572 (unnamed SI->DI extend define_insn): Likewise.
8573 (unnamed QI->SI extend define_insn): Likewise.
8574 (unnamed QI->HI extend define_insn): Likewise.
8575 (unnamed HI->SI extend define_insn): Likewise.
8576 (unnamed HI->SI extend define_insn): Likewise.
8577 (extendsfdf2_fpr): Likewise.
8578 (movsi_internal1): Likewise.
8579 (movsi_internal1_single): Likewise.
8580 (movhi_internal): Likewise.
8581 (movqi_internal): Likewise.
8582 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
8583 attribute for load/store instructions.
8584 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
8585 instructions.
8586 (mov<mode>_softfloat): Likewise.
8587 (mov<mode>_hardfloat32): Likewise.
8588 (mov<mode>_hardfloat64): Likewise.
8589 (mov<mode>_softfloat64): Likewise.
8590 (movdi_internal32): Likewise.
8591 (movdi_internal64): Likewise.
8592 (probe_stack_<mode>): Likewise.
8593
8594 2013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
8595
8596 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
8597 floating point, and decimal floating point to reload iterator.
8598
8599 * config/rs6000/constraints.md (wl constraint): New constraints to
8600 return FLOAT_REGS if certain options are used to reduce the number
8601 of separate patterns that exist in the file.
8602 (wx constraint): Likewise.
8603 (wz constraint): Likewise.
8604
8605 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
8606 -mdebug=reg, print wg, wl, wx, and wz constraints.
8607 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
8608 Initialize the reload functions for 64-bit binary/decimal floating
8609 point types.
8610 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
8611 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
8612 create the buffer on the stack to overcome not having a 32-bit
8613 load and store.
8614 (rs6000_emit_move): Likewise.
8615 (rs6000_secondary_memory_needed_rtx): Likewise.
8616 (rs6000_alloc_sdmode_stack_slot): Likewise.
8617 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
8618 via xxlxor, just like DFmode 0.0.
8619
8620 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
8621 define as 1 if we are running on a power7 or newer.
8622 (enum r6000_reg_class_enum): Add new constraints.
8623
8624 * config/rs6000/dfp.md (movsd): Delete, combine with binary
8625 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
8626 with other moves by using conditional constraits (wg). Use LFIWZX
8627 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
8628 (movsd splitter): Likewise.
8629 (movsd_hardfloat): Likewise.
8630 (movsd_softfloat): Likewise.
8631
8632 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
8633 binary and decimal floating point moves.
8634 (fmove_ok): New attributes to combine binary and decimal floating
8635 point moves, and to combine power6x (mfpgpr) moves along normal
8636 floating moves.
8637 (real_value_to_target): Likewise.
8638 (f32_lr): Likewise.
8639 (f32_lm): Likewise.
8640 (f32_li): Likewise.
8641 (f32_sr): Likewise.
8642 (f32_sm): Likewise.
8643 (f32_si): Likewise.
8644 (movsf): Combine binary and decimal floating point moves. Combine
8645 power6x (mfpgpr) moves with other moves by using conditional
8646 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
8647 (mov<mode> for SFmode/SDmode); Likewise.
8648 (SFmode/SDmode splitters): Likewise.
8649 (movsf_hardfloat): Likewise.
8650 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
8651 (movsf_softfloat): Likewise.
8652 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
8653
8654 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
8655 wx and wz constraints.
8656
8657 * config/rs6000/constraints.md (wg constraint): New constraint to
8658 return FLOAT_REGS if -mmfpgpr (power6x) was used.
8659
8660 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
8661 constraint.
8662
8663 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
8664 -mdebug=reg, print wg, wl, wx, and wz constraints.
8665 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
8666 Initialize the reload functions for 64-bit binary/decimal floating
8667 point types.
8668 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
8669 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
8670 create the buffer on the stack to overcome not having a 32-bit
8671 load and store.
8672 (rs6000_emit_move): Likewise.
8673 (rs6000_secondary_memory_needed_rtx): Likewise.
8674 (rs6000_alloc_sdmode_stack_slot): Likewise.
8675 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
8676 via xxlxor, just like DFmode 0.0.
8677
8678 * config/rs6000/dfp.md (movdd): Delete, combine with binary
8679 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
8680 with other moves by using conditional constraits (wg). Use LFIWZX
8681 and STFIWX for loading SDmode on power7.
8682 (movdd splitters): Likewise.
8683 (movdd_hardfloat32): Likewise.
8684 (movdd_softfloat32): Likewise.
8685 (movdd_hardfloat64_mfpgpr): Likewise.
8686 (movdd_hardfloat64): Likewise.
8687 (movdd_softfloat64): Likewise.
8688
8689 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
8690 64-bit binary and decimal floating point moves.
8691 (FMOVE64X): Likewise.
8692 (movdf): Combine 64-bit binary and decimal floating point moves.
8693 Combine power6x (mfpgpr) moves with other moves by using
8694 conditional constraits (wg).
8695 (mov<mode> for DFmode/DDmode): Likewise.
8696 (DFmode/DDmode splitters): Likewise.
8697 (movdf_hardfloat32): Likewise.
8698 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
8699 (movdf_softfloat32): Likewise.
8700 (movdf_hardfloat64_mfpgpr): Likewise.
8701 (movdf_hardfloat64): Likewise.
8702 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
8703 (movdf_softfloat64): Likewise.
8704 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
8705 (reload_<mode>_load): Move to later in the file so they aren't in
8706 the middle of the floating point move insns.
8707 (reload_<mode>_store): Likewise.
8708
8709 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
8710 constraint.
8711
8712 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
8713 constraint if -mdebug=reg.
8714 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
8715 Enable using dd reload support if needed.
8716
8717 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
8718 binary and decimal floating point moves in rs6000.md.
8719 (movtd_internal): Likewise.
8720
8721 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
8722 decimal floating point moves.
8723 (movtf): Likewise.
8724 (movtf_internal): Likewise.
8725 (mov<mode>_internal, TDmode/TFmode): Likewise.
8726 (movtf_softfloat): Likewise.
8727 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
8728
8729 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
8730 movdi_internal64, using wg constraint for move direct operations.
8731 (movdi_internal64): Likewise.
8732
8733 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
8734 MODES_TIEABLE_P for selected modes. Print the numerical value of
8735 the various virtual registers. Use GPR/FPR first/last values,
8736 instead of hard coding the register numbers. Print which modes
8737 have reload functions registered.
8738 (rs6000_option_override_internal): If -mdebug=reg, trace the options
8739 settings before/after setting cpu, target and subtarget settings.
8740 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
8741 and for secondary reload failures in rs6000_secondary_reload_inner.
8742 (rs6000_secondary_reload_fail): Likewise.
8743 (rs6000_secondary_reload_inner): Likewise.
8744
8745 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
8746 macros for first/last GPR and FPR registers.
8747 (LAST_GPR_REGNO): Likewise.
8748 (FIRST_FPR_REGNO): Likewise.
8749 (LAST_FPR_REGNO): Likewise.
8750
8751 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
8752 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
8753 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
8754 (vcond<mode><mode>): Likewise.
8755 (vcondu<mode><mode>): Likewise.
8756 (vector_gtu<mode>): Likewise.
8757 (vector_gte<mode>): Likewise.
8758 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
8759 to prevent the compiler from converting DImode operations to TImode.
8760 (ior<mode>3): Likewise.
8761 (and<mode>3): Likewise.
8762 (one_cmpl<mode>2): Likewise.
8763 (nor<mode>3): Likewise.
8764 (andc<mode>3): Likewise.
8765
8766 * config/rs6000/constraints.md (wt constraint): New constraint
8767 that returns VSX_REGS if TImode is allowed in VSX registers.
8768
8769 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
8770 constant under VSX.
8771
8772 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
8773 similar to TImode, but it is restricted to being in the GPRs.
8774
8775 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
8776 TImode to occupy a single VSX register.
8777
8778 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
8779 -mvsx-timode for power7/power8.
8780 (power7 cpu): Likewise.
8781 (power8 cpu): Likewise.
8782
8783 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
8784 sure that TFmode/TDmode take up two registers if they are ever
8785 allowed in the upper VSX registers.
8786 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
8787 registers.
8788 (rs6000_init_hard_regno_mode_ok): Likewise.
8789 (rs6000_debug_reg_global): Add debugging for PTImode and wt
8790 constraint. Print if LRA is turned on.
8791 (rs6000_option_override_internal): Give an error if -mvsx-timode
8792 and VSX is not enabled.
8793 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
8794 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
8795 to reg+offset addressing. Use PTImode when checking offset
8796 addresses for validity.
8797 (reg_offset_addressing_ok_p): Likewise.
8798 (rs6000_legitimate_offset_address_p): Likewise.
8799 (rs6000_legitimize_address): Likewise.
8800 (rs6000_legitimize_reload_address): Likewise.
8801 (rs6000_legitimate_address_p): Likewise.
8802 (rs6000_eliminate_indexed_memrefs): Likewise.
8803 (rs6000_emit_move): Likewise.
8804 (rs6000_secondary_reload): Likewise.
8805 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
8806 reloads to fpr registers to continue to use reg+offset addressing,
8807 but 64-bit reloads to altivec registers need reg+reg addressing.
8808 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
8809 it. Treat LO_SUM like a PLUS operation.
8810 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
8811 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
8812 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
8813 registers to share a register with a smaller sized type, since VSX
8814 puts scalars in the upper 64-bits.
8815 (print_operand): Add support for PTImode.
8816 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
8817 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
8818 registers, but don't have arithmetic support.
8819 (rs6000_memory_move_cost): Add test for VSX.
8820 (rs6000_opt_masks): Add -mvsx-timode.
8821
8822 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
8823 for TImode.
8824 (VSs): Likewise.
8825 (VSr): Use wt constraint for TImode.
8826 (VSv): Drop TImode support.
8827 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
8828 (vsx_movti_64bit): Likewise.
8829 (vsx_movti_32bit): Likewise.
8830 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
8831 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
8832 one '?' on the appropriate output constraint. Do not allow TImode
8833 logical operations on 32-bit systems.
8834 (vsx_ior<mode>3): Likewise.
8835 (vsx_xor<mode>3): Likewise.
8836 (vsx_one_cmpl<mode>2): Likewise.
8837 (vsx_nor<mode>3): Likewise.
8838 (vsx_andc<mode>3): Likewise.
8839 (vsx_concat_<mode>): Likewise.
8840 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
8841
8842 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
8843 OPTION_MASK_VSX_TIMODE.
8844 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
8845 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
8846
8847 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
8848 (TI2 iterator): New iterator for TImode, PTImode.
8849 (wd mode attribute): Add values for vector types.
8850 (movti_string): Replace TI move operations with operations for TImode
8851 and PTImode. Add support for TImode being allowed in VSX registers.
8852 (mov<mode>_string, TImode/PTImode): Likewise.
8853 (movti_ppc64): Likewise.
8854 (mov<mode>_ppc64, TImode/PTImode): Likewise.
8855 (TI mode splitters): Likewise.
8856
8857 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
8858 constraint.
8859
8860 2013-03-20 Marc Glisse <marc.glisse@inria.fr>
8861
8862 PR tree-optimization/56355
8863 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
8864 Also handle integers with undefined overflow.
8865
8866 2013-03-20 Catherine Moore <clm@codesourcery.com>
8867 Maciej W. Rozycki <macro@codesourcery.com>
8868 Tom de Vries <tom@codesourcery.com>
8869 Nathan Sidwell <nathan@codesourcery.com>
8870 Iain Sandoe <iain@codesourcery.com>
8871 Nathan Froyd <froydnj@codesourcery.com>
8872 Chao-ying Fu <fu@mips.com>
8873
8874 * doc/extend.texi: (micromips, nomicromips, nocompression):
8875 Document new function attributes.
8876 * doc/invoke.texi (minterlink-compressed, mmicromips,
8877 m14k, m14ke, m14kec): Document new options.
8878 (minterlink-mips16): Update documentation.
8879 * doc/md.texi (ZC, ZD): Document new constraints.
8880 * configure.ac (gcc_cv_as_micromips): Check if linker
8881 supports the .set micromips directive.
8882 * configure: Regenerate.
8883 * config.in: Regenerate.
8884 * config/mips/mips-tables.opt: Regenerate.
8885 * config/mips/micromips.md: New file.
8886 * constraints.md (ZC, ZD): New constraints.
8887 * config/mips/predicates.md (movep_src_register): New predicate.
8888 (movep_src_operand): New predicate.
8889 (non_volatile_mem_operand): New predicate.
8890 * config/mips/mips.md (multimem): New type.
8891 (length): Differentiate between 17-bit and 18-bit branch offsets.
8892 (MOVEP1, MOVEP2): New mode iterator.
8893 (mov_<load>l): Use ZC constraint.
8894 (mov_<load>r): Likewise.
8895 (mov_<store>l): Likewise.
8896 (mov_<store>r): Likewise.
8897 (*branch_equality<mode>_inverted): Add microMIPS support.
8898 (*branch_equality<mode>): Likewise.
8899 (*jump_absolute): Likewise.
8900 (indirect_jump_<mode>): Likewise.
8901 (tablejump_<mode>): Likewise.
8902 (<optab>_internal): Likewise.
8903 (sibcall_internal): Likewise.
8904 (sibcall_value_internal): Likewise.
8905 (prefetch): Use constraint ZD.
8906 * config/mips/mips.opt (minterlink-compressed): New option.
8907 (minterlink-mips16): Now an alias for minterlink-compressed.
8908 (mmicromips): New option.
8909 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
8910 (compare_and_swap_12): Likewise.
8911 (sync_add<mode>): Likewise.
8912 (sync_<optab>_12): Likewise.
8913 (sync_old_<optab>_12): Likewise.
8914 (sync_new_<optab>_12): Likewise.
8915 (sync_nand_12): Likewise.
8916 (sync_old_nand_12): Likewise.
8917 (sync_new_nand_12): Likewise.
8918 (sync_sub<mode>): Likewise.
8919 (sync_old_add<mode>): Likewise.
8920 (sync_old_sub<mode>): Likewise.
8921 (sync_new_add<mode>): Likewise.
8922 (sync_new_sub<mode>): Likewise.
8923 (sync_<optab><mode>): Likewise.
8924 (sync_old_<optab><mode>): Likewise.
8925 (sync_new_<optab><mode>): Likewise.
8926 (sync_nand<mode>): Likewise.
8927 (sync_old_nand<mode>): Likewise.
8928 (sync_new_nand<mode>): Likewise.
8929 (sync_lock_test_and_set<mode>): Likewise.
8930 (test_and_set_12): Likewise.
8931 (atomic_compare_and_swap<mode>): Likewise.
8932 (atomic_exchange<mode>_llsc): Likewise.
8933 (atomic_fetch_add<mode>_llsc): Likewise.
8934 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
8935 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
8936 (umips_save_restore_pattern_p): Likewise.
8937 (umips_load_store_pair_p): Likewise.
8938 (umips_output_load_store_pair): Likewise.
8939 (umips_movep_target_p): Likewise.
8940 (umips_12bit_offset_address_p): Likewise.
8941 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
8942 (mips_base_mips16): Rename this...
8943 (mips_base_compression_flags): ...to this. Update all uses.
8944 (mips_attribute_table): Add micromips, nomicromips and nocompression.
8945 (mips_mips16_decl_p): Delete.
8946 (mips_nomips16_decl_p): Delete.
8947 (mips_get_compress_on_flags): New function.
8948 (mips_get_compress_off_flags): New function.
8949 (mips_get_compress_mode): New function.
8950 (mips_get_compress_on_name): New function.
8951 (mips_get_compress_off_name): New function.
8952 (mips_insert_attributes): Support multiple compression types.
8953 (mips_merge_decl_attributes): Likewise.
8954 (umips_12bit_offset_address_p): New function.
8955 (mips_start_function_definition): Emit .set micromips directive.
8956 (mips_call_may_need_jalx_p): New function.
8957 (mips_function_ok_for_sibcall): Add microMIPS support.
8958 (mips_print_operand_punctuation): Support short delay slots and
8959 compact jumps.
8960 (umips_swm_mask, umips_swm_encoding): New.
8961 (umips_build_save_restore): New function.
8962 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
8963 (was_mips16_p): Remove.
8964 (old_compression_mode): New.
8965 (mips_set_compression_mode): New function.
8966 (mips_set_current_function): Add microMIPS support.
8967 (mips_option_override): Likewise.
8968 (umips_save_restore_pattern_p): New function.
8969 (umips_output_save_restore): New function.
8970 (umips_load_store_pair_p_1): New function.
8971 (umips_load_store_pair_p): New function.
8972 (umips_output_load_store_pair_1): New function.
8973 (umips_output_load_store_pair): New function.
8974 (umips_movep_target_p) New function.
8975 (mips_prepare_pch_save): Add microMIPS support.
8976 * config/mips/mips.h (TARGET_COMPRESSION): New.
8977 (TARGET_CPU_CPP_BUILTINS): Update macro
8978 to use new compression flags and to support microMIPS.
8979 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
8980 (MIPS_ARCH_FLOAT_SPEC): Likewise.
8981 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
8982 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
8983 (ASM_SPEC): Support mmicromips and mno-micromips.
8984 (M16STORE_REG_P): New macro.
8985 (MIPS_CALL): Support TARGET_MICROMIPS.
8986 (MICROMIPS_J): New macro.
8987 (mips_base_mips16): Rename this...
8988 (mips_base_compression_flags): ...to this.
8989 (UMIPS_12BIT_OFFSET_P): New macro.
8990 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
8991 (MULTILIB_DIRNAMES): Likewise.
8992 2013-03-20 Richard Biener <rguenther@suse.de>
8993
8994 PR tree-optimization/56661
8995 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
8996 the result does not have to be distinct.
8997
8998 2013-03-20 Richard Biener <rguenther@suse.de>
8999
9000 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
9001 remap_gimple_op_r.
9002
9003 2013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9004 Steven Bosscher <steven@gcc.gnu.org>
9005
9006 PR rtl-optimization/56605
9007 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
9008
9009 2013-03-20 Uros Bizjak <ubizjak@gmail.com>
9010
9011 PR bootstrap/56656
9012 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
9013 that require movd instead of movq.
9014
9015 2013-03-20 Richard Biener <rguenther@suse.de>
9016
9017 * tree-ssa-structalias.c (struct variable_info): Add pointer
9018 to the first field of an aggregate with sub-vars. Make
9019 this and the pointer to the next subfield its ID.
9020 (vi_next): New function.
9021 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
9022 storedanything_id, integer_id): Increment by one.
9023 (new_var_info, get_call_vi, lookup_call_clobber_vi,
9024 get_call_clobber_vi): Adjust.
9025 (solution_set_expand): Simplify and speedup.
9026 (solution_set_add): Inline into ...
9027 (set_union_with_increment): ... this. Adjust accordingly.
9028 (do_sd_constraint): Likewise.
9029 (do_ds_constraint): Likewise.
9030 (do_complex_constraint): Simplify.
9031 (build_pred_graph): Adjust.
9032 (solve_graph): Likewise. Simplify and speedup.
9033 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
9034 get_constraint_for_component_ref, get_constraint_for_1,
9035 first_vi_for_offset, first_or_preceding_vi_for_offset,
9036 create_function_info_for, create_variable_info_for_1,
9037 create_variable_info_for, intra_create_variable_infos): Adjust.
9038 (init_base_vars): Push NULL for ID zero.
9039 (compute_points_to_sets): Adjust.
9040
9041 2013-03-20 Richard Biener <rguenther@suse.de>
9042
9043 * cfgloop.c (verify_loop_structure): Streamline and avoid
9044 ICEing on corrupt loop tree.
9045 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
9046 loop tree.
9047
9048 2013-03-20 Richard Biener <rguenther@suse.de>
9049
9050 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
9051 check whether an SSA update is needed.
9052
9053 2013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
9054
9055 * config/mips/constraints.md (T): Rename to...
9056 (Yf): ...this.
9057 (U): Rename to...
9058 (Yd): ...this.
9059 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
9060 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
9061
9062 2013-03-19 Ian Bolton <ian.bolton@arm.com>
9063
9064 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
9065 (*subsi3_carryin_uxtw): Likewise.
9066
9067 2013-03-19 Ian Bolton <ian.bolton@arm.com>
9068
9069 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
9070 (*rorsi3_insn_uxtw): Likewise.
9071
9072 2013-03-19 Ian Bolton <ian.bolton@arm.com>
9073
9074 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
9075 (*extrsi5_insn_uxtw): Likewise.
9076
9077 2013-03-19 Richard Biener <rguenther@suse.de>
9078
9079 PR tree-optimization/56273
9080 * passes.c (init_optimization_passes): Move second VRP after DOM.
9081
9082 2013-03-19 Uros Bizjak <ubizjak@gmail.com>
9083
9084 * config/i386/i386.md (*movti_internal): Merge from
9085 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
9086 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
9087 nox64 isa attributes.
9088
9089 2013-03-18 Richard Biener <rguenther@suse.de>
9090
9091 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
9092 (unite): Likewise.
9093 (merge_node_constraints): Likewise.
9094 (build_succ_graph): Likewise.
9095 (valid_graph_edge): Inline into single caller.
9096 (unify_nodes): Likewise. Use bitmap_set_bit return value
9097 and cache varinfo.
9098 (scc_visit): Fix formatting and variable use.
9099 (do_sd_constraint): Use gcc_checking_assert.
9100 (do_ds_constraint): Likewise.
9101 (do_complex_constraint): Likewise.
9102 (condense_visit): Likewise. Cleanup.
9103 (dump_pred_graph): New function.
9104 (perform_var_substitution): Dump the pred-graph before
9105 variable substitution.
9106 (find_equivalent_node): Use gcc_checking_assert.
9107 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
9108
9109 2013-03-18 Richard Biener <rguenther@suse.de>
9110
9111 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
9112 Remove cond_expr_stmt_list argument and do not gimplify the
9113 built expression.
9114 (vect_loop_versioning): Adjust.
9115 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
9116 Cleanup to use less temporaries.
9117 (vect_create_data_ref_ptr): Cleanup.
9118
9119 2013-03-18 Jakub Jelinek <jakub@redhat.com>
9120
9121 PR tree-optimization/56635
9122 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
9123 require types_compatible_p types.
9124
9125 2013-03-18 Nick Clifton <nickc@redhat.com>
9126
9127 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
9128 spurious backslash.
9129
9130 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
9131 Add missing line to comment describing function.
9132
9133 2013-03-18 Richard Biener <rguenther@suse.de>
9134
9135 PR tree-optimization/56210
9136 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
9137 Handle string / character search functions.
9138 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
9139
9140 2013-03-18 Richard Biener <rguenther@suse.de>
9141
9142 PR middle-end/56483
9143 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
9144 and implement properly.
9145 * gimple.h (gimple_cond_single_var_p): Remove.
9146
9147 2013-03-18 Richard Biener <rguenther@suse.de>
9148
9149 * tree-data-ref.h (find_data_references_in_loop): Declare.
9150 * tree-data-ref.c (get_references_in_stmt): Use a stack
9151 vector pre-allocated in the callers.
9152 (find_data_references_in_stmt): Adjust.
9153 (graphite_find_data_references_in_stmt): Likewise.
9154 (create_rdg_vertices): Likewise.
9155 (find_data_references_in_loop): Export.
9156 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
9157 Compute dependences here...
9158 (vect_analyze_data_refs): ...not here. When we encounter
9159 a non-vectorizable data reference in basic-block vectorization
9160 truncate the data reference vector. Do not bother to
9161 fixup data-dependence information for gather loads.
9162 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
9163 of data references, as reported.
9164
9165 2013-03-18 Richard Biener <rguenther@suse.de>
9166
9167 PR tree-optimization/3713
9168 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
9169 has_constants and expr.
9170 (stmt_has_constants): Properly valueize SSA names when deciding
9171 whether the stmt has constants.
9172
9173 2013-03-18 Richard Biener <rguenther@suse.de>
9174
9175 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
9176 whole function when there is nothing to do.
9177 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
9178 * tree-vectorizer.c (vectorize_loops): Update virtual and
9179 loop-closed SSA once.
9180 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
9181
9182 2013-03-18 Richard Biener <rguenther@suse.de>
9183
9184 PR middle-end/56113
9185 * domwalk.c (bb_postorder): New global static.
9186 (cmp_bb_postorder): New function.
9187 (walk_dominator_tree): Replace scheme imposing an order for
9188 visiting dominator sons by one sorting them at the time they
9189 are pushed on the stack.
9190
9191 2013-03-18 Richard Biener <rguenther@suse.de>
9192
9193 PR tree-optimization/39326
9194 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
9195 (struct mem_ref): Replace mem member with ao_ref typed member.
9196 (MEM_ANALYZABLE): Adjust.
9197 (memref_eq): Likewise.
9198 (mem_ref_alloc): Likewise.
9199 (gather_mem_refs_stmt): Likewise.
9200 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
9201 (execute_sm_if_changed_flag_set): Adjust.
9202 (execute_sm): Likewise.
9203 (ref_always_accessed_p): Likewise.
9204 (refs_independent_p): Likewise.
9205 (can_sm_ref_p): Likewise.
9206
9207 2013-03-18 Jakub Jelinek <jakub@redhat.com>
9208
9209 PR c/56566
9210 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
9211 return 1 even for !unsignedp.
9212
9213 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
9214
9215 * config/i386/i386.md (isa): Add x64 and nox64.
9216 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
9217 (*pushtf): Enable *roF alternative for x64 isa only.
9218 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
9219 mode attribute of integer alternatives to DImode for TARGET_64BIT.
9220 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
9221 (*movtf_internal): Merge from *movtf_internal_rex64 and
9222 *movtf_internal_sse. Use x64 and nox64 isa attributes.
9223 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
9224 nox64 isa attributes.
9225 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
9226 nox64 isa attributes.
9227 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
9228
9229 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
9230
9231 * config/alpha/alpha.c (TARGET_LRA_P): New define.
9232
9233 2013-03-17 Jakub Jelinek <jakub@redhat.com>
9234
9235 PR target/56640
9236 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
9237 class names. Remove trailing comma after "ALL_REGS".
9238
9239 2013-03-16 Jan Hubicka <jh@suse.cz>
9240
9241 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
9242 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
9243 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
9244 of cgraph_get_create_node.
9245 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
9246
9247 2013-03-16 Jason Merrill <jason@redhat.com>
9248
9249 PR debug/49090
9250 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
9251 with DW_AT_default_value.
9252
9253 2013-03-16 Jakub Jelinek <jakub@redhat.com>
9254
9255 * BASE-VER: Set to 4.9.0.
9256
9257 2013-03-14 Andi Kleen <ak@linux.intel.com>
9258
9259 PR target/56619
9260 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
9261 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
9262 Document _x* TSX intrinsics.
9263
9264 2013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
9265 David Holsgrove <david.holsgrove@xilinx.com>
9266
9267 * configure.ac: Add MicroBlaze TLS support detection.
9268 * configure: Regenerate.
9269 * config/microblaze/microblaze-protos.h
9270 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
9271 symbol_mentioned_p, label_mentioned_p): Add prototypes.
9272 * config/microblaze/microblaze.c (microblaze_address_type): Add
9273 ADDRESS_TLS and tls_reloc address types.
9274 (microblaze_address_info): Add tls_reloc.
9275 (TARGET_HAVE_TLS): Define.
9276 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
9277 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
9278 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
9279 load_tls_operand, microblaze_call_tls_get_addr,
9280 microblaze_legitimize_tls_address): New functions.
9281 (microblaze_classify_unspec): Handle UNSPEC_TLS.
9282 (get_base_reg): Use microblaze_tls_symbol_p.
9283 (microblaze_classify_address): Handle TLS.
9284 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
9285 label_mentioned_p and microblaze_tls_referenced_p.
9286 (microblaze_legitimize_address): Handle TLS.
9287 (microblaze_address_insns): Handle ADDRESS_TLS.
9288 (pic_address_needs_scratch): Handle TLS.
9289 (print_operand_address): Handle TLS.
9290 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
9291 (microblaze_expand_move): Handle TLS.
9292 (microblaze_legitimate_constant_p): Check
9293 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
9294 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
9295 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
9296 (PIC_OFFSET_TABLE_REGNUM): Set.
9297 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
9298 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
9299 (addsi3, movsi_internal2, movdf_internal): Update constraints
9300 * config/microblaze/predicates.md (arith_plus_operand): Define
9301 (move_operand): Redefine as move_src_operand,
9302 check microblaze_tls_referenced_p.
9303
9304 2013-03-14 Ian Bolton <ian.bolton@arm.com>
9305
9306 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
9307 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
9308
9309 2013-03-14 Ian Bolton <ian.bolton@arm.com>
9310
9311 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
9312 CC mode for AND.
9313
9314 2013-03-14 Jakub Jelinek <jakub@redhat.com>
9315
9316 PR tree-optimization/53265
9317 * common.opt (Waggressive-loop-optimizations): New option.
9318 * tree-ssa-loop-niter.c: Include tree-pass.h.
9319 (do_warn_aggressive_loop_optimizations): New function.
9320 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
9321 if number_of_latch_executions returned constant.
9322 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
9323 early. If number_of_latch_executions returned constant, set
9324 nb_iterations_upper_bound back to it.
9325 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
9326 field.
9327 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
9328 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
9329
9330 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
9331 (MULTILIB_OSDIRNAMES): Set.
9332 * genmultilib: If defaultosdirname doesn't start with :: , set
9333 defaultosdirname2 instead, clear it and emit two . multilib_raw
9334 entries instead of just one.
9335
9336 2013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
9337
9338 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
9339 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
9340 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
9341 (SUBTARGET_OVERRIDE_OPTIONS): New.
9342
9343 2013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
9344
9345 PR target/49880
9346 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
9347 (musermode): Convert to Var(TARGET_USERMODE).
9348 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
9349 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
9350 * config/sh/sh.c (sh_option_override): Use
9351 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
9352 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
9353 condition.
9354 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
9355 TARGET_SH4.
9356 (udivsi3_i4_single, divsi3_i4_single): Use
9357 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
9358
9359 2013-03-13 Dave Korn <dave.korn.cygwin@....>
9360
9361 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
9362 default setting.
9363
9364 2013-03-13 Richard Biener <rguenther@suse.de>
9365
9366 PR tree-optimization/56608
9367 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
9368 calls when vectorizing basic-blocks.
9369
9370 2013-03-13 Jakub Jelinek <jakub@redhat.com>
9371
9372 PR plugins/45078
9373 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
9374 tm_file.
9375
9376 2013-03-12 Jakub Jelinek <jakub@redhat.com>
9377
9378 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
9379
9380 2013-03-11 Jan Hubicka <jh@suse.cz>
9381
9382 PR lto/56557
9383 * lto-streamer-out.c (output_symbol_p): Skip references from
9384 constructors of external variables.
9385
9386 2013-03-11 Jan Hubicka <jh@suse.cz>
9387
9388 PR middle-end/56571
9389 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
9390 from pseudos.
9391 * emit-rtl.c (verify_rtx_sharing): Likewise.
9392 (copy_insn_1): Likewise.
9393 * rtl.c (copy_rtx): Likewise.
9394
9395 2013-03-11 Georg-Johann Lay <avr@gjlay.de>
9396
9397 PR target/56591
9398 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
9399 output_operand_lossage message.
9400
9401 2013-03-11 Richard Earnshaw <rearnsha@arm.com>
9402
9403 PR target/56470
9404 * arm.c (shift_op): Validate RTL pattern on the fly.
9405 (arm_print_operand, case 'S'): Don't use shift_operator to validate
9406 the RTL.
9407
9408 2013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9409
9410 PR target/56347
9411 * config/pa/pa.md (call_value): Check for calls to powf and direct to
9412 new call patterns that clobber %fr12.
9413 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
9414 split and postreload patterns.
9415 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
9416 registers %fr12 and %fr12R as call used.
9417
9418 2013-03-09 Steven Bosscher <steven@gcc.gnu.org>
9419
9420 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
9421 (canon_address, record_store, replace_read, check_mem_read_rtx,
9422 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
9423 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
9424 rest_of_handle_dse): Likewise.
9425
9426 2013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
9427
9428 PR middle-end/56524
9429 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
9430 Add base_optabs.
9431 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
9432 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
9433 (save_optabs_if_changed): Replace with...
9434 (init_tree_optimization_optabs): ...this.
9435 * optabs.c (save_optabs_if_changed): Rename to...
9436 (init_tree_optimization_optabs): ...this. Take the optimization node
9437 as argument. Do nothing if the base optabs are already correct.
9438 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
9439 to recompute optabs.
9440 * function.h (function): Remove optabs field.
9441 * function.c (invoke_set_current_function_hook): Call
9442 init_tree_optimization_optabs. Use the result to initialize
9443 this_fn_optabs.
9444
9445 2013-02-27 Aldy Hernandez <aldyh@redhat.com>
9446
9447 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
9448 if GTMA_HAS_NO_INSTRUMENTATION.
9449 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
9450 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
9451 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
9452 * gimple-pretty-print.c (dump_gimple_transaction): Handle
9453 GTMA_HAS_NO_INSTRUMENTATION.
9454
9455 2013-03-08 Jakub Jelinek <jakub@redhat.com>
9456
9457 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
9458 libasan_preinit.o.
9459
9460 2013-03-08 Marek Polacek <polacek@redhat.com>
9461 Jakub Jelinek <jakub@redhat.com>
9462
9463 PR tree-optimization/56478
9464 * predict.c (is_comparison_with_loop_invariant_p): Change the
9465 type of loop_step to tree.
9466 (predict_loops): Adjust.
9467 (predict_iv_comparison): Perform the computations on double_ints.
9468
9469 2013-03-08 Richard Biener <rguenther@suse.de>
9470
9471 PR tree-optimization/56570
9472 * tree-cfg.c (verify_expr_location_1): Verify locations for
9473 DECL_DEBUG_EXPR.
9474 * tree-sra.c (create_access_replacement): Strip locations
9475 from DECL_DEBUG_EXPRs.
9476
9477 2013-03-08 Richard Biener <rguenther@suse.de>
9478
9479 * tree-inline.c (expand_call_inline): Do not associate
9480 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
9481 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
9482
9483 2013-03-08 Richard Biener <rguenther@suse.de>
9484
9485 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
9486 or block changes with -Og. Fix for location / block encoding
9487 changes and PHI arguments with locations.
9488
9489 2013-03-07 Steven Bosscher <steven@gcc.gnu.org>
9490
9491 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
9492 for all counters.
9493 (struct output_info): Likewise.
9494 (register_overhead): Remove bad gcc_assert.
9495 (bitmap_find_bit): If there is only a single bitmap element, do not
9496 count a miss as a search.
9497 (print_statistics): Update for counter type changes.
9498 (dump_bitmap_statistics): Likewise. Print headers such that they
9499 are properly lined up with the printed counters.
9500
9501 2013-03-07 Jakub Jelinek <jakub@redhat.com>
9502
9503 PR tree-optimization/56559
9504 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
9505 check that it has only a single use.
9506
9507 2013-03-07 Richard Biener <rguenther@suse.de>
9508
9509 * doc/invoke.texi (fwhole-program): Discourage use in combination
9510 with -flto.
9511
9512 2013-03-06 Jakub Jelinek <jakub@redhat.com>
9513
9514 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
9515
9516 PR tree-optimization/56539
9517 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
9518 instead of GSI_CONTINUE_LINKING as last argument to
9519 force_gimple_operand_gsi. Adjust function comment.
9520
9521 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
9522 aarch64-cores.def.
9523
9524 PR middle-end/56548
9525 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
9526 promoted mode, convert the result back to the original mode.
9527
9528 2013-03-06 Richard Biener <rguenther@suse.de>
9529
9530 PR middle-end/56294
9531 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
9532 (insert_updated_phi_nodes_compare_uids): New function.
9533 (update_ssa): Sort symbols_to_rename after UID before
9534 traversing it to insert PHI nodes.
9535
9536 2013-03-06 Richard Biener <rguenther@suse.de>
9537
9538 PR middle-end/50494
9539 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
9540 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
9541
9542 Revert
9543 2013-02-13 Richard Biener <rguenther@suse.de>
9544
9545 PR lto/50494
9546 * varasm.c (output_constant_def_1): Get the decl representing
9547 the constant as argument.
9548 (output_constant_def): Wrap output_constant_def_1.
9549 (make_decl_rtl): Use output_constant_def_1 with the decl
9550 representing the constant.
9551 (build_constant_desc): Optionally re-use a decl already
9552 representing the constant.
9553 (tree_output_constant_def): Adjust.
9554
9555 2013-03-06 Joey Ye <joey.ye@arm.com>
9556
9557 PR lto/50293
9558 * gcc.c (convert_white_space): New function.
9559 (main): Handles white space in function name.
9560
9561 2013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
9562
9563 PR target/56529
9564 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
9565 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
9566 to SH_DIV_CALL_TABLE for TARGET_SH2.
9567 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
9568 list.
9569 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
9570 call-table options.
9571
9572 2013-03-05 Sterling Augustine <saugustine@google.com>
9573 Cary Coutant <ccoutant@google.com>
9574
9575 PR debug/55364
9576 * dwarf2out.c (resolve_addr): Don't call
9577 remove_loc_list_addr_table_entries a second time for the same
9578 expression.
9579
9580 2013-03-05 Jakub Jelinek <jakub@redhat.com>
9581
9582 PR debug/56510
9583 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
9584 (avoid_complex_debug_insns): New function.
9585 (expand_debug_locations): Call it.
9586
9587 PR rtl-optimization/56484
9588 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
9589 lifetimes of hard registers on small register class machines.
9590
9591 2013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
9592
9593 * config/microblaze/microblaze-protos.h: Rename
9594 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
9595 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
9596 fast_interrupt.
9597 (microblaze_fast_interrupt_function_p): New function.
9598 (microblaze_is_interrupt_handler): Rename to
9599 microblaze_is_interrupt_variant and add fast_interrupt check.
9600 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
9601 (save_restore_insns): Likewise.
9602 (compute_frame_size): Likewise.
9603 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
9604 (microblaze_globalize_label): Likewise.
9605 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
9606 * config/microblaze/microblaze.md: Use wrapper
9607 microblaze_is_interrupt_variant.
9608
9609 2013-03-05 Kai Tietz <ktietz@redhat.com>
9610
9611 * sdbout.c (sdbout_one_type): Switch to current function's section
9612 supporting cold/hot.
9613
9614 2013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
9615
9616 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
9617 -mxl-reorder.
9618
9619 2013-03-05 Jakub Jelinek <jakub@redhat.com>
9620
9621 PR middle-end/56461
9622 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
9623 if VALGRIND_GET_VBITS is defined, temporarily make object
9624 memory all defined, and restore previous valgrind addressability
9625 and definability afterwards. Free this_object at the end.
9626
9627 PR middle-end/56461
9628 * lra.c (lra): Call lra_clear_live_ranges if live_p,
9629 right before calling lra_create_live_ranges, also call it
9630 when clearing live_p. Only call lra_clear_live_ranges
9631 at the end if live_p.
9632
9633 PR middle-end/56461
9634 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
9635
9636 2013-03-05 Richard Biener <rguenther@suse.de>
9637
9638 PR tree-optimization/56521
9639 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
9640 value-id.
9641
9642 2013-03-05 Steven Bosscher <steven@gcc.gnu.org>
9643
9644 PR c++/55135
9645 * except.h (remove_unreachable_eh_regions): New prototype.
9646 * except.c (remove_eh_handler_splicer): New function, split out
9647 of remove_eh_handler.
9648 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
9649 warning about running it on many EH regions one at a time.
9650 (remove_unreachable_eh_regions_worker): New function, walk the
9651 EH tree in depth-first order and remove non-marked regions.
9652 (remove_unreachable_eh_regions): New function.
9653 * tree-eh.c (mark_reachable_handlers): New function, split out
9654 from remove_unreachable_handlers.
9655 (remove_unreachable_handlers): Use mark_reachable_handlers and
9656 remove_unreachable_eh_regions.
9657 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
9658 and remove_unreachable_eh_regions.
9659
9660 2013-03-05 Richard Biener <rguenther@suse.de>
9661
9662 PR middle-end/56525
9663 * loop-init.c (fix_loop_structure): Remove loops in two stages,
9664 not freeing them until the end.
9665
9666 2013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9667
9668 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
9669
9670 2013-03-05 Richard Biener <rguenther@suse.de>
9671
9672 PR tree-optimization/56270
9673 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
9674 of loads after scheduling an SLP instance.
9675
9676 2013-03-05 Jakub Jelinek <jakub@redhat.com>
9677
9678 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
9679 tic6x.exp.
9680 (check_gcc_parallelize): Run guality.exp as a separate job from
9681 vect.exp with unsorted.exp and $(dg_target_exps) separately from
9682 struct-layout-1.exp with stackalign.exp.
9683
9684 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
9685
9686 PR middle-end/56461
9687 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
9688 load_index sbitmap even if some bit in it isn't set.
9689
9690 PR middle-end/56461
9691 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
9692 (discover_iteration_bound_by_body_walk): Change queues to
9693 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
9694 spelling in comment. Call safe_push on queues[bound_index] directly.
9695 Release queues[queue_index] in every iteration unconditionally.
9696 Release bounds vector.
9697
9698 PR middle-end/56461
9699 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
9700 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
9701 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
9702 inner_phis vector.
9703
9704 2013-03-05 Richard Biener <rguenther@suse.de>
9705
9706 PR lto/56515
9707 * tree-inline.c (remap_blocks_to_null): New function.
9708 (expand_call_inline): When expanding a call stmt without
9709 an associated block inline remap all callee blocks to NULL.
9710
9711 2013-03-05 Jakub Jelinek <jakub@redhat.com>
9712
9713 PR rtl-optimization/56494
9714 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
9715 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
9716 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
9717
9718 PR middle-end/56461
9719 * sel-sched-ir.c (free_sched_pools): Release
9720 succs_info_pool.stack[succs_info_pool.max_top] vectors too
9721 if succs_info_pool.max_top isn't -1.
9722
9723 PR bootstrap/56509
9724 * opts.c (opts_obstack, opts_concat): Moved to...
9725 * opts-common.c (opts_obstack, opts_concat): ... here.
9726
9727 2013-03-04 Jakub Jelinek <jakub@redhat.com>
9728
9729 PR middle-end/56461
9730 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
9731
9732 2013-03-04 Martin Jambor <mjambor@suse.cz>
9733
9734 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
9735 all appropriate places.
9736
9737 2013-01-04 Eric Botcazou <ebotcazou@adacore.com>
9738
9739 PR tree-optimization/56424
9740 * ipa-split.c (split_function): Do not set the RSO flag if result is
9741 not by reference and its type is a register type.
9742
9743 2013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
9744
9745 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
9746 (microblaze_legitimate_pic_operand): Likewise
9747 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
9748 new function microblaze_legitimate_pic_operand
9749 * config/microblaze/microblaze-protos.h
9750 (microblaze_legitimate_pic_operand): Declare.
9751
9752 2013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
9753
9754 * config/microblaze/predicates.md (call_insn_simple_operand):
9755 New predicate for supported rtx code types.
9756 * config/microblaze/microblaze.md (call_internal1): Use
9757 call_insn_simple_operand predicate.
9758
9759 2013-03-04 Jakub Jelinek <jakub@redhat.com>
9760
9761 PR middle-end/56461
9762 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
9763 partitions.ordered_remove.
9764
9765 PR middle-end/56461
9766 * tree-vect-stmts.c (vectorizable_conversion): Don't call
9767 vec_oprnds0.create (1) for modifier == NONE.
9768
9769 PR middle-end/56461
9770 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
9771 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
9772 vec_oprnds1 right before pushing anything to it for
9773 scalar_shift_arg.
9774
9775 PR middle-end/56461
9776 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
9777 set nbbs to 0 instead of having separate code path.
9778 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
9779 instead of false as last argument if returning NULL.
9780
9781 2013-03-03 Sandra Loosemore <sandra@codesourcery.com>
9782
9783 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
9784 the attribute is now called "target" instead of "option".
9785 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
9786 * doc/tm.texi.in (Target Attributes): Likewise document the correct
9787 attribute/pragma name for TARGET_OPTION_VALID_P and
9788 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
9789 * doc/tm.texi: Regenerated.
9790
9791 2013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
9792
9793 * config/microblaze/microblaze.c:
9794 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
9795 * config/microblaze/microblaze.h: Add -mxl-reorder to
9796 DRIVER_SELF_SPECS.
9797 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
9798 instructions emitted if TARGET_REORDER.
9799 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
9800 or 0 for -m/-mno case, but initialises as 2 to detect default use case
9801 separately.
9802
9803 2013-03-01 Xinliang David Li <davidxl@google.com>
9804
9805 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
9806 walk length.
9807
9808 2013-03-01 Jakub Jelinek <jakub@redhat.com>
9809
9810 PR middle-end/56461
9811 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
9812 vector even when returning true. Fix up function comment formatting.
9813
9814 PR middle-end/56461
9815 * ira-build.c (ira_loop_nodes_count): New variable.
9816 (create_loop_tree_nodes): Initialize it.
9817 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
9818
9819 PR middle-end/56461
9820 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
9821 method on dr_chain and result_chain.
9822 * tree-vect-stmts.c (vectorizable_store): Only call
9823 result_chain.create if j == 0.
9824
9825 PR middle-end/56461
9826 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
9827 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
9828 before overwriting it.
9829
9830 2013-03-01 Tobias Burnus <burnus@net-b.de>
9831
9832 * doc/extended.texi (C Extensions): Change order in @menu
9833 to match @node.
9834 (Other MIPS Built-in Functions): Move last MIPS entry before
9835 "picoChip Built-in Functions".
9836 (SH Built-in Functions): Move after RX Built-in Functions.
9837 * doc/gcc.texi (Introduction): Change order in @menu
9838 to match @node.
9839 * doc/md.texi (Constraints): Ditto.
9840 * gty.texi (Type Information): Ditto.
9841 (User-provided marking routines for template types): Make
9842 subsection.
9843 * doc/invoke.texi (AArch64 Options): Move before
9844 "Adapteva Epiphany Options".
9845
9846 2013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
9847 Jakub Jelinek <jakub@redhat.com>
9848
9849 PR sanitizer/56454
9850 * asan.c (gate_asan): Lookup no_sanitize_address instead of
9851 no_address_safety_analysis attribute.
9852 * doc/extend.texi (no_address_safety_attribute): Rename to
9853 no_sanitize_address attribute, mention no_address_safety_analysis
9854 attribute as deprecated alias.
9855
9856 2013-02-28 Jakub Jelinek <jakub@redhat.com>
9857
9858 PR middle-end/56461
9859 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
9860 type to vec<vec<tree> > *.
9861 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
9862 to be vec<tree> instead of vec<tree> *, set vec_defs
9863 to vNULL and call vec_defs.create (number_of_vects), adjust other
9864 uses of vec_defs.
9865 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
9866 vectorizable_condition): Adjust vect_get_slp_defs callers.
9867
9868 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
9869
9870 * config/aarch64/aarch64.c
9871 (aarch64_float_const_representable): Remove unused variable.
9872
9873 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
9874
9875 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
9876
9877 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
9878
9879 * config/aarch64/aarch64-builtins.c
9880 (aarch64_init_simd_builtins): Make static.
9881
9882 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
9883
9884 * config/aarch64/aarch64.c
9885 (aarch64_simd_make_constant): Make static.
9886
9887 2013-02-28 Martin Jambor <mjambor@suse.cz>
9888
9889 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
9890 with no initialization to the RHS of debug statements.
9891
9892 2013-02-28 Martin Jambor <mjambor@suse.cz>
9893
9894 PR tree-optimization/56294
9895 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
9896 Adjust dumping.
9897 (get_access_replacement): Do not call create_access_replacement.
9898 Assert a replacement exists.
9899 (get_repl_default_def_ssa_name): Create the replacement declaration
9900 itself.
9901
9902 2013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9903
9904 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
9905 final_end_function.
9906
9907 2013-02-28 Marek Polacek <polacek@redhat.com>
9908
9909 PR rtl-optimization/56466
9910 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
9911 if we're changing a loop.
9912 (peel_loops_completely): Likewise.
9913
9914 2013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
9915
9916 PR c++/55813
9917 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
9918
9919 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
9920
9921 PR target/56445
9922 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
9923 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
9924 INTX_FTYPE_FX, FX_FTYPE_INTX.
9925 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
9926
9927 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
9928
9929 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
9930 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
9931 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
9932 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
9933 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
9934 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
9935 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
9936 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
9937 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
9938 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
9939 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
9940 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
9941 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
9942 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
9943 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
9944 (avrxmega6): Increase max flash segments from 5 to 6.
9945 * config/avr/t-multilib: Regenerate.
9946 * config/avr/avr-tables.opt: Regenerate.
9947 * doc/avr-mmcu.texi: Regenerate.
9948
9949 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
9950
9951 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
9952 (avr_device_to_arch): Rename to avr_device_to_ld.
9953 (avr_device_to_as): New prototype.
9954 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
9955 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
9956 * config/avr/driver-avr.c (avr_device_to_as): New.
9957 (avr_device_to_arch): Rename to avr_device_to_ld.
9958
9959 2013-02-27 Jakub Jelinek <jakub@redhat.com>
9960
9961 PR middle-end/56461
9962 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
9963 method on dr_chain and result_chain.
9964
9965 PR middle-end/56461
9966 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
9967 pointer_set_destroy on not_executed_last_iteration.
9968
9969 PR middle-end/56461
9970 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
9971
9972 PR middle-end/56461
9973 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
9974 FOR_EACH_DEFINED_FUNCTION when freeing state.
9975
9976 PR middle-end/56461
9977 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
9978 pool_free.
9979 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
9980 overwriting it.
9981
9982 PR middle-end/56461
9983 * ipa-cp.c (decide_whether_version_node): Call vec_free on
9984 known_aggs[i].items and release known_aggs vector.
9985
9986 PR middle-end/56461
9987 * ipa-reference.c (propagate): Free node_info even for alias nodes.
9988
9989 2013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
9990
9991 * config/microblaze/microblaze.c (microblaze_emit_compare):
9992 Use xor for EQ/NE comparisions.
9993 * config/microblaze/microblaze.md (cstoresf4): Add constraints
9994 (cbranchsf4): Adjust operator to comparison_operator.
9995
9996 2013-02-27 Jakub Jelinek <jakub@redhat.com>
9997
9998 PR middle-end/56461
9999 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
10000 vector.
10001 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
10002 vec_safe_push, always update *slot.
10003 (redirect_edge_var_map_clear): Use vec_free.
10004 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
10005 (free_var_map_entry): Use vec_free.
10006 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
10007 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
10008
10009 2013-02-27 Andrey Belevantsev <abel@ispras.ru>
10010
10011 PR middle-end/45472
10012 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
10013 when the may_trap_p bit of the exprs being merged differs.
10014 Reorder tests for speculativeness in the logical and operator.
10015
10016 2013-02-27 Jakub Jelinek <jakub@redhat.com>
10017
10018 * incpath.c (add_standard_paths): Use reconcat instead of concat
10019 where appropriate and avoid leaking memory.
10020
10021 * opts.h: Include obstack.h.
10022 (opts_concat): New prototype.
10023 (opts_obstack): New declaration.
10024 * opts.c (opts_concat): New function.
10025 (opts_obstack): New variable.
10026 (init_options_struct): Call gcc_init_obstack on opts_obstack.
10027 (finish_options): Use opts_concat instead of concat
10028 and XOBNEWVEC instead of XNEWVEC.
10029 * opts-common.c (generate_canonical_option, decode_cmdline_option,
10030 generate_option): Likewise.
10031 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
10032 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
10033
10034 PR target/56455
10035 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
10036 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
10037
10038 2013-02-26 Jakub Jelinek <jakub@redhat.com>
10039
10040 PR middle-end/56461
10041 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
10042
10043 2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
10044
10045 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
10046 (arm_block_move_unaligned_straight): Likewise.
10047 (arm_adjust_block_mem): Likewise.
10048
10049 2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
10050
10051 PR target/48901
10052 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
10053 temp, cond and label.
10054 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
10055
10056 PR target/52500
10057 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
10058 * config/c6x/c6x.h (dbx_register_map): Update declaration.
10059
10060 PR target/52501
10061 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
10062 of prologue/epilogue functions.
10063
10064 PR target/52550
10065 * config/tilegx/tilegx.c (tilegx_expand_prologue):
10066 Remove unused variable cfa_offset.
10067 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
10068
10069 PR target/54639
10070 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
10071 type promotion to unsigned.
10072
10073 PR target/54640
10074 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
10075 for HOST_WIDE_INT of 32 bit / same size as int.
10076 (arm_block_move_unaligned_straight): Likewise.
10077 (arm_adjust_block_mem): Likewise.
10078
10079 PR target/54662
10080 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
10081 ALL_CFLAGS.
10082
10083 2013-02-26 Marek Polacek <polacek@redhat.com>
10084
10085 PR tree-optimization/56426
10086 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
10087
10088 2013-02-26 Richard Biener <rguenther@suse.de>
10089
10090 PR target/56444
10091 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
10092 unused variable loops.
10093
10094 2013-02-26 Jakub Jelinek <jakub@redhat.com>
10095
10096 PR tree-optimization/56448
10097 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
10098 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
10099 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
10100 later operands of the references, or even first operand for
10101 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
10102
10103 PR tree-optimization/56443
10104 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
10105 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
10106 to type_for_mode langhook.
10107
10108 2013-02-25 Matt Turner <mattst88@gmail.com>
10109
10110 * doc/invoke.texi: Document r4700.
10111
10112 2013-02-25 Richard Biener <rguenther@suse.de>
10113
10114 PR tree-optimization/56175
10115 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
10116 split out from ...
10117 (simplify_bitwise_binary): ... here. Also guard the conversion
10118 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
10119
10120 2013-02-25 Catherine Moore <clm@codesourcery.com>
10121
10122 Revert:
10123 2013-02-24 Catherine Moore <clm@codesourcery.com>
10124 Maciej W. Rozycki <macro@codesourcery.com>
10125 Tom de Vries <tom@codesourcery.com>
10126 Nathan Sidwell <nathan@codesourcery.com>
10127 Iain Sandoe <iain@codesourcery.com>
10128 Nathan Froyd <froydnj@codesourcery.com>
10129 Chao-ying Fu <fu@mips.com>
10130
10131 * doc/extend.texi: (micromips, nomicromips, nocompression):
10132 Document new function attributes.
10133 * doc/invoke.texi (minterlink-compressed, mmicromips,
10134 m14k, m14ke, m14kec): Document new options.
10135 (minterlink-mips16): Update documentation.
10136 * doc/md.texi (ZC, ZD): Document new constraints.
10137 * configure.ac (gcc_cv_as_micromips): Check if linker
10138 supports the .set micromips directive.
10139 * configure: Regenerate.
10140 * config.in: Regenerate.
10141 * config/mips/mips-tables.opt: Regenerate.
10142 * config/mips/micromips.md: New file.
10143 * constraints.md (ZC, AD): New constraints.
10144 * config/mips/predicates.md (movep_src_register): New predicate.
10145 (movep_src_operand): New predicate.
10146 (non_volatile_mem_operand): New predicate.
10147 * config/mips/mips.md (multimem): New type.
10148 (length): Differentiate between 17-bit and 18-bit branch offsets.
10149 (MOVEP1, MOVEP2): New mode iterator.
10150 (mov_<load>l): Use ZC constraint.
10151 (mov_<load>r): Likewise.
10152 (mov_<store>l): Likewise.
10153 (mov_<store>r): Likewise.
10154 (*branch_equality<mode>_inverted): Add microMIPS support.
10155 (*branch_equality<mode>): Likewise.
10156 (*jump_absolute): Likewise.
10157 (indirect_jump_<mode>): Likewise.
10158 (tablejump_<mode>): Likewise.
10159 (<optab>_internal): Likewise.
10160 (sibcall_internal): Likewise.
10161 (sibcall_value_internal): Likewise.
10162 (prefetch): Use constraint ZD.
10163 * config/mips/mips.opt (minterlink-compressed): New option.
10164 (minterlink-mips16): Now an alias for minterlink-compressed.
10165 (mmicromips): New option.
10166 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
10167 (compare_and_swap_12): Likewise.
10168 (sync_add<mode>): Likewise.
10169 (sync_<optab>_12): Likewise.
10170 (sync_old_<optab>_12): Likewise.
10171 (sync_new_<optab>_12): Likewise.
10172 (sync_nand_12): Likewise.
10173 (sync_old_nand_12): Likewise.
10174 (sync_new_nand_12): Likewise.
10175 (sync_sub<mode>): Likewise.
10176 (sync_old_add<mode>): Likewise.
10177 (sync_old_sub<mode>): Likewise.
10178 (sync_new_add<mode>): Likewise.
10179 (sync_new_sub<mode>): Likewise.
10180 (sync_<optab><mode>): Likewise.
10181 (sync_old_<optab><mode>): Likewise.
10182 (sync_new_<optab><mode>): Likewise.
10183 (sync_nand<mode>): Likewise.
10184 (sync_old_nand<mode>): Likewise.
10185 (sync_new_nand<mode>): Likewise.
10186 (sync_lock_test_and_set<mode>): Likewise.
10187 (test_and_set_12): Likewise.
10188 (atomic_compare_and_swap<mode>): Likewise.
10189 (atomic_exchange<mode>_llsc): Likewise.
10190 (atomic_fetch_add<mode>_llsc): Likewise.
10191 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
10192 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
10193 (umips_save_restore_pattern_p): Likewise.
10194 (umips_load_store_pair_p): Likewise.
10195 (umips_output_load_store_pair): Likewise.
10196 (umips_movep_target_p): Likewise.
10197 (umips_12bit_offset_address_p): Likewise.
10198 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
10199 (mips_base_mips16): Rename this...
10200 (mips_base_compression_flags): ...to this. Update all uses.
10201 (mips_attribute_table): Add micromips, nomicromips and nocompression.
10202 (mips_mips16_decl_p): Delete.
10203 (mips_nomips16_decl_p): Delete.
10204 (mips_get_compress_on_flags): New function.
10205 (mips_get_compress_off_flags): New function.
10206 (mips_get_compress_mode): New function.
10207 (mips_get_compress_on_name): New function.
10208 (mips_get_compress_off_name): New function.
10209 (mips_insert_attributes): Support multiple compression types.
10210 (mips_merge_decl_attributes): Likewise.
10211 (umips_12bit_offset_address_p): New function.
10212 (mips_start_function_definition): Emit .set micromips directive.
10213 (mips_call_may_need_jalx_p): New function.
10214 (mips_function_ok_for_sibcall): Add microMIPS support.
10215 (mips_print_operand_punctuation): Support short delay slots and
10216 compact jumps.
10217 (umips_swm_mask, umips_swm_encoding): New.
10218 (umips_build_save_restore): New function.
10219 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
10220 (was_mips16_p): Remove.
10221 (old_compression_mode): New.
10222 (mips_set_compression_mode): New function.
10223 (mips_set_current_function): Add microMIPS support.
10224 (mips_option_override): Likewise.
10225 (umips_save_restore_pattern_p): New function.
10226 (umips_output_save_restore): New function.
10227 (umips_load_store_pair_p_1): New function.
10228 (umips_load_store_pair_p): New function.
10229 (umips_output_load_store_pair_1): New function.
10230 (umips_output_load_store_pair): New function.
10231 (umips_movep_target_p) New function.
10232 (mips_prepare_pch_save): Add microMIPS support.
10233 * config/mips/mips.h (TARGET_COMPRESSION): New.
10234 (TARGET_CPU_CPP_BUILTINS): Update macro
10235 to use new compression flags and to support microMIPS.
10236 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
10237 (MIPS_ARCH_FLOAT_SPEC): Likewise.
10238 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
10239 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
10240 (ASM_SPEC): Support mmicromips and mno-micromips.
10241 (M16STORE_REG_P): New macro.
10242 (MIPS_CALL): Support TARGET_MICROMIPS.
10243 (MICROMIPS_J): New macro.
10244 (mips_base_mips16): Rename this...
10245 (mips_base_compression_flags): ...to this.
10246 (UMIPS_12BIT_OFFSET_P): New macro.
10247 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
10248 (MULTILIB_DIRNAMES): Likewise.
10249
10250 2013-02-25 Tom de Vries <tom@codesourcery.com>
10251
10252 PR rtl-optimization/56131
10253 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
10254 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
10255 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
10256
10257 2013-02-25 Tobias Burnus <burnus@net-b.de>
10258
10259 * doc/invoke.texi (-fsanitize=): Move from optimization
10260 to debugging options.
10261
10262 2013-02-25 Andrey Belevantsev <abel@ispras.ru>
10263
10264 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
10265
10266 2013-02-25 Andrey Belevantsev <abel@ispras.ru>
10267 Alexander Monakov <amonakov@ispras.ru>
10268
10269 PR middle-end/56077
10270 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
10271 flush pending lists also on non-jumps. Adjust comment.
10272
10273 2013-02-24 Catherine Moore <clm@codesourcery.com>
10274 Maciej W. Rozycki <macro@codesourcery.com>
10275 Tom de Vries <tom@codesourcery.com>
10276 Nathan Sidwell <nathan@codesourcery.com>
10277 Iain Sandoe <iain@codesourcery.com>
10278 Nathan Froyd <froydnj@codesourcery.com>
10279 Chao-ying Fu <fu@mips.com>
10280
10281 * doc/extend.texi: (micromips, nomicromips, nocompression):
10282 Document new function attributes.
10283 * doc/invoke.texi (minterlink-compressed, mmicromips,
10284 m14k, m14ke, m14kec): Document new options.
10285 (minterlink-mips16): Update documentation.
10286 * doc/md.texi (ZC, ZD): Document new constraints.
10287 * configure.ac (gcc_cv_as_micromips): Check if linker
10288 supports the .set micromips directive.
10289 * configure: Regenerate.
10290 * config.in: Regenerate.
10291 * config/mips/mips-tables.opt: Regenerate.
10292 * config/mips/micromips.md: New file.
10293 * constraints.md (ZC, AD): New constraints.
10294 * config/mips/predicates.md (movep_src_register): New predicate.
10295 (movep_src_operand): New predicate.
10296 (non_volatile_mem_operand): New predicate.
10297 * config/mips/mips.md (multimem): New type.
10298 (length): Differentiate between 17-bit and 18-bit branch offsets.
10299 (MOVEP1, MOVEP2): New mode iterator.
10300 (mov_<load>l): Use ZC constraint.
10301 (mov_<load>r): Likewise.
10302 (mov_<store>l): Likewise.
10303 (mov_<store>r): Likewise.
10304 (*branch_equality<mode>_inverted): Add microMIPS support.
10305 (*branch_equality<mode>): Likewise.
10306 (*jump_absolute): Likewise.
10307 (indirect_jump_<mode>): Likewise.
10308 (tablejump_<mode>): Likewise.
10309 (<optab>_internal): Likewise.
10310 (sibcall_internal): Likewise.
10311 (sibcall_value_internal): Likewise.
10312 (prefetch): Use constraint ZD.
10313 * config/mips/mips.opt (minterlink-compressed): New option.
10314 (minterlink-mips16): Now an alias for minterlink-compressed.
10315 (mmicromips): New option.
10316 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
10317 (compare_and_swap_12): Likewise.
10318 (sync_add<mode>): Likewise.
10319 (sync_<optab>_12): Likewise.
10320 (sync_old_<optab>_12): Likewise.
10321 (sync_new_<optab>_12): Likewise.
10322 (sync_nand_12): Likewise.
10323 (sync_old_nand_12): Likewise.
10324 (sync_new_nand_12): Likewise.
10325 (sync_sub<mode>): Likewise.
10326 (sync_old_add<mode>): Likewise.
10327 (sync_old_sub<mode>): Likewise.
10328 (sync_new_add<mode>): Likewise.
10329 (sync_new_sub<mode>): Likewise.
10330 (sync_<optab><mode>): Likewise.
10331 (sync_old_<optab><mode>): Likewise.
10332 (sync_new_<optab><mode>): Likewise.
10333 (sync_nand<mode>): Likewise.
10334 (sync_old_nand<mode>): Likewise.
10335 (sync_new_nand<mode>): Likewise.
10336 (sync_lock_test_and_set<mode>): Likewise.
10337 (test_and_set_12): Likewise.
10338 (atomic_compare_and_swap<mode>): Likewise.
10339 (atomic_exchange<mode>_llsc): Likewise.
10340 (atomic_fetch_add<mode>_llsc): Likewise.
10341 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
10342 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
10343 (umips_save_restore_pattern_p): Likewise.
10344 (umips_load_store_pair_p): Likewise.
10345 (umips_output_load_store_pair): Likewise.
10346 (umips_movep_target_p): Likewise.
10347 (umips_12bit_offset_address_p): Likewise.
10348 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
10349 (mips_base_mips16): Rename this...
10350 (mips_base_compression_flags): ...to this. Update all uses.
10351 (mips_attribute_table): Add micromips, nomicromips and nocompression.
10352 (mips_mips16_decl_p): Delete.
10353 (mips_nomips16_decl_p): Delete.
10354 (mips_get_compress_on_flags): New function.
10355 (mips_get_compress_off_flags): New function.
10356 (mips_get_compress_mode): New function.
10357 (mips_get_compress_on_name): New function.
10358 (mips_get_compress_off_name): New function.
10359 (mips_insert_attributes): Support multiple compression types.
10360 (mips_merge_decl_attributes): Likewise.
10361 (umips_12bit_offset_address_p): New function.
10362 (mips_start_function_definition): Emit .set micromips directive.
10363 (mips_call_may_need_jalx_p): New function.
10364 (mips_function_ok_for_sibcall): Add microMIPS support.
10365 (mips_print_operand_punctuation): Support short delay slots and
10366 compact jumps.
10367 (umips_swm_mask, umips_swm_encoding): New.
10368 (umips_build_save_restore): New function.
10369 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
10370 (was_mips16_p): Remove.
10371 (old_compression_mode): New.
10372 (mips_set_compression_mode): New function.
10373 (mips_set_current_function): Add microMIPS support.
10374 (mips_option_override): Likewise.
10375 (umips_save_restore_pattern_p): New function.
10376 (umips_output_save_restore): New function.
10377 (umips_load_store_pair_p_1): New function.
10378 (umips_load_store_pair_p): New function.
10379 (umips_output_load_store_pair_1): New function.
10380 (umips_output_load_store_pair): New function.
10381 (umips_movep_target_p) New function.
10382 (mips_prepare_pch_save): Add microMIPS support.
10383 * config/mips/mips.h (TARGET_COMPRESSION): New.
10384 (TARGET_CPU_CPP_BUILTINS): Update macro
10385 to use new compression flags and to support microMIPS.
10386 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
10387 (MIPS_ARCH_FLOAT_SPEC): Likewise.
10388 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
10389 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
10390 (ASM_SPEC): Support mmicromips and mno-micromips.
10391 (M16STORE_REG_P): New macro.
10392 (MIPS_CALL): Support TARGET_MICROMIPS.
10393 (MICROMIPS_J): New macro.
10394 (mips_base_mips16): Rename this...
10395 (mips_base_compression_flags): ...to this.
10396 (UMIPS_12BIT_OFFSET_P): New macro.
10397 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
10398 (MULTILIB_DIRNAMES): Likewise.
10399
10400 2013-02-24 Jakub Jelinek <jakub@redhat.com>
10401
10402 PR target/52555
10403 * target-globals.c (save_target_globals): For init_reg_sets and
10404 target_reinit remporarily set this_fn_optabs to this_target_optabs.
10405
10406 2013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
10407
10408 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
10409 * config/aarch64/t-aarch64
10410 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
10411
10412 2013-02-22 Vladimir Makarov <vmakarov@redhat.com>
10413
10414 PR inline-asm/56148
10415 * lra-constraints.c (process_alt_operands): Reload operand
10416 conflicting with earlier clobber only if no more other conflicting
10417 operands.
10418
10419 2013-02-22 Jakub Jelinek <jakub@redhat.com>
10420
10421 PR sanitizer/56393
10422 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
10423 if not linking a shared library.
10424
10425 2013-02-22 Seth LaForge <sethml@google.com>
10426
10427 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
10428
10429 2013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
10430
10431 * config/arm/arm.md (split for extendsidi): Update condition.
10432 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
10433 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
10434 (qhs_zextenddi_cstr): Likewise.
10435
10436 2013-02-21 Jakub Jelinek <jakub@redhat.com>
10437
10438 PR middle-end/56420
10439 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
10440 avoid signed wrapping.
10441 (expand_mult): Handle properly multiplication by
10442 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
10443 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
10444 in the compiler if coeff is HOST_WIDE_INT_MIN.
10445 (expand_divmod): Don't make ext_op1 static, change it's type to
10446 uhwi. Avoid undefined behavior in -INTVAL (op1).
10447
10448 PR rtl-optimization/50339
10449 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
10450 field.
10451 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
10452 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
10453 into splitting_ashiftrt field.
10454 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
10455 ASHIFTRT.
10456 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
10457 choices.
10458
10459 2013-02-20 Aldy Hernandez <aldyh@redhat.com>
10460
10461 PR middle-end/56108
10462 * trans-mem.c (execute_tm_mark): Do not expand transactions that
10463 are sure to go irrevocable.
10464
10465 2013-02-21 Hans-Peter Nilsson <hp@axis.com>
10466
10467 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
10468 scalars are valid operands.
10469
10470 2013-02-21 Martin Jambor <mjambor@suse.cz>
10471
10472 PR tree-optimization/56310
10473 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
10474 only matching indices and non-negative final offsets.
10475 (intersect_aggregates_with_edge): Pass src_idx to
10476 agg_replacements_to_vector. Pass src_idx insstead of index to
10477 intersect_with_agg_replacements.
10478
10479 2013-02-21 Martin Jambor <mjambor@suse.cz>
10480
10481 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
10482 instead of hard-wired defaults.
10483
10484 2013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
10485
10486 * doc/invoke.texi (MIPS Options): Update documentation of the
10487 floating-point multiply-accumulate instruction restrictions.
10488
10489 2013-02-21 Kostya Serebryany <kcc@google.com>
10490
10491 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
10492 asan_shadow_offset on x86_64 linux.
10493
10494 2013-02-21 Richard Biener <rguenther@suse.de>
10495
10496 PR tree-optimization/56415
10497 Revert
10498 2013-02-11 Richard Biener <rguenther@suse.de>
10499
10500 PR tree-optimization/56273
10501 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
10502 first VRP run.
10503
10504 2013-02-21 Jakub Jelinek <jakub@redhat.com>
10505
10506 PR bootstrap/56258
10507 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
10508 instead of @itemx.
10509
10510 PR inline-asm/56405
10511 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
10512 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
10513
10514 2013-02-20 Jan Hubicka <jh@suse.cz>
10515
10516 PR tree-optimization/56265
10517 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
10518 when target is referenced for first time.
10519
10520 2013-02-20 Richard Biener <rguenther@suse.de>
10521
10522 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
10523 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
10524 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
10525 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
10526 not return anything.
10527 (rename_ssa_copies): Do not remove unused locals.
10528 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
10529 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
10530 * passes.c (execute_function_todo): Do not schedule unused locals
10531 removal if cleanup_tree_cfg did something.
10532 * tree-ssa-live.c (remove_unused_locals): Dump statistics
10533 about the number of removed locals.
10534
10535 2013-02-20 Richard Biener <rguenther@suse.de>
10536
10537 PR tree-optimization/56398
10538 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
10539
10540 2013-02-20 Martin Jambor <mjambor@suse.cz>
10541
10542 PR tree-optimization/55334
10543 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
10544 restricted pointers to arrays.
10545
10546 2013-02-20 Richard Biener <rguenther@suse.de>
10547 Jakub Jelinek <jakub@redhat.com>
10548
10549 PR tree-optimization/56396
10550 * tree-ssa-ccp.c (n_const_val): New static variable.
10551 (get_value): Return NULL for SSA names we don't have a lattice
10552 entry for.
10553 (ccp_initialize): Initialize n_const_val.
10554 * tree-ssa-copy.c (n_copy_of): New static variable.
10555 (init_copy_prop): Initialize n_copy_of.
10556 (get_value): Return NULL_TREE for SSA names we don't have a
10557 lattice entry for.
10558
10559 2013-02-20 Martin Jambor <mjambor@suse.cz>
10560
10561 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
10562
10563 2013-02-20 Richard Biener <rguenther@suse.de>
10564
10565 * genpreds.c (write_lookup_constraint): Do not compare first
10566 letter of the constraint again.
10567
10568 2013-02-20 Richard Biener <rguenther@suse.de>
10569
10570 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
10571 and ceil_log2.
10572 (get_use_iv_cost): Terminate hashtable walk when coming across
10573 an empty entry.
10574
10575 2013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
10576
10577 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
10578 reassociation for avx2 targets.
10579
10580 2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
10581
10582 * config/microblaze/microblaze.c: microblaze_has_clz = 0
10583 Add version check for v8.10.a to enable microblaze_has_clz
10584 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
10585 version and TARGET_PATTERN_COMPARE check
10586 * config/microblaze/microblaze.md: New clzsi2 instruction
10587
10588 2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
10589
10590 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
10591 function before branching.
10592
10593 2012-02-19 Andrey Belevantsev <abel@ispras.ru>
10594
10595 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
10596 DUMP_INSN_RTX_UID.
10597 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
10598
10599 2012-02-19 Andrey Belevantsev <abel@ispras.ru>
10600
10601 PR middle-end/55889
10602 * sel-sched.c: Include ira.h.
10603 (implicit_clobber_conflict_p): New function.
10604 (moveup_expr): Use it.
10605 * Makefile.in (sel-sched.o): Depend on ira.h.
10606
10607 2013-02-19 Richard Biener <rguenther@suse.de>
10608
10609 PR tree-optimization/56384
10610 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
10611 (vn_hash_type): Split out from ...
10612 (vn_hash_constant_with_type): ... here.
10613 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
10614 (vn_phi_eq): Compare types from vn_phi_s structure.
10615 (vn_phi_lookup): Populate vn_phi_s type.
10616 (vn_phi_insert): Likewise.
10617
10618 2013-02-19 Jakub Jelinek <jakub@redhat.com>
10619
10620 PR tree-optimization/56350
10621 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
10622 if haven't found reduction or nested cycle operand, rather than
10623 asserting we must find it.
10624
10625 PR tree-optimization/56381
10626 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
10627 to fold_build3.
10628
10629 2013-02-18 Aldy Hernandez <aldyh@redhat.com>
10630 Jakub Jelinek <jakub@redhat.com>
10631
10632 PR target/52555
10633 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
10634 (swap_optab_enable): Same.
10635 (init_all_optabs): Use argument instead of global.
10636 * tree.h (struct tree_optimization_option): New field target_optabs.
10637 * expr.h (init_all_optabs): Add argument to prototype.
10638 (TREE_OPTIMIZATION_OPTABS): New.
10639 (save_optabs_if_changed): Protoize.
10640 * optabs.h: Declare this_fn_optabs.
10641 * optabs.c (save_optabs_if_changed): New.
10642 Declare this_fn_optabs.
10643 (init_optabs): Add argument to init_all_optabs() call.
10644 * function.c (invoke_set_current_function_hook): Handle per
10645 function optabs.
10646 * function.h (struct function): New field optabs.
10647 * config/mips/mips.c (mips_set_mips16_mode): Handle when
10648 optimization_current_node has changed.
10649 * target-globals.h (save_target_globals_default_opts): Protoize.
10650 * target-globals.c (save_target_globals_default_opts): New.
10651
10652 2013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10653
10654 PR target/56347
10655 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
10656 registers %fr12 and %fr12R as call used.
10657
10658 PR target/56214
10659 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
10660 and HImode, require all displacements to be an integer multiple of
10661 their mode size.
10662 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
10663 only allow QImode and HImode when reload is in progress and strict is
10664 true. Likewise for symbolic addresses. Use base14_operand to check
10665 displacements in REG+BASE addresses.
10666
10667 2013-02-18 Richard Biener <rguenther@suse.de>
10668
10669 PR tree-optimization/56366
10670 * tree-vect-loop.c (get_initial_def_for_induction): Properly
10671 handle sign-conversion of outer-loop initial induction value.
10672
10673 2013-02-18 Richard Biener <rguenther@suse.de>
10674
10675 PR middle-end/56349
10676 * cfghooks.c (merge_blocks): If we merge a latch into another
10677 block adjust references to it.
10678 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
10679 (verify_loop_structure): Verify that a recorded latch is in fact
10680 a latch.
10681
10682 2013-02-18 Richard Biener <rguenther@suse.de>
10683
10684 PR tree-optimization/56321
10685 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
10686 order SSA name release and virtual operand unlinking.
10687
10688 2013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
10689
10690 * config/microblaze/microblaze.md (save_stack_block): Define.
10691 (restore_stack_block): Likewise.
10692
10693 2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
10694
10695 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
10696 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
10697 * config/microblaze/microblaze.c (microblaze_option_override):
10698 Bail out early for PIC modes when target does not support PIC.
10699
10700 2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
10701
10702 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
10703 Replace with a microblaze version.
10704 (microblaze_trampoline_init): Adapt for microblaze.
10705 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
10706 microblaze.
10707
10708 2013-02-16 Jakub Jelinek <jakub@redhat.com>
10709 Dodji Seketeli <dodji@redhat.com>
10710
10711 PR asan/56330
10712 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
10713 (instrument_mem_region_access): Do not forget to always put
10714 instrumentation of the of 'base' and 'base + len' in a "if (len !=
10715 0) statement, even for cases where either 'base' or 'base + len'
10716 are not instrumented -- because they have been previously
10717 instrumented. Simplify the logic by putting all the statements
10718 instrument 'base + len' inside a sequence, and then insert that
10719 sequence right before the current insertion point. Then, to
10720 instrument 'base + len', just get an iterator on that statement.
10721 And do not forget to update the pointer to iterator the function
10722 received as argument.
10723
10724 2013-02-15 Vladimir Makarov <vmakarov@redhat.com>
10725
10726 PR rtl-optimization/56348
10727 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
10728
10729 2013-02-15 Steven Bosscher <steven@gcc.gnu.org>
10730
10731 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
10732 (clean_graph_dump_file): Pass base to start_graph_dump.
10733
10734 2013-02-14 Richard Henderson <rth@redhat.com>
10735
10736 PR target/55941
10737 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
10738
10739 2013-02-14 Steven Bosscher <steven@gcc.gnu.org>
10740
10741 * collect2-aix.h: Define F_LOADONLY.
10742
10743 2013-02-14 Richard Biener <rguenther@suse.de>
10744
10745 PR lto/50494
10746 * varasm.c (output_constant_def_1): Get the decl representing
10747 the constant as argument.
10748 (output_constant_def): Wrap output_constant_def_1.
10749 (make_decl_rtl): Use output_constant_def_1 with the decl
10750 representing the constant.
10751 (build_constant_desc): Optionally re-use a decl already
10752 representing the constant.
10753 (tree_output_constant_def): Adjust.
10754
10755 2013-02-14 Dodji Seketeli <dodji@redhat.com>
10756
10757 Fix an asan crash
10758 * asan.c (instrument_builtin_call): Really put the length of the
10759 second source argument into src1_len.
10760
10761 2013-02-13 Jakub Jelinek <jakub@redhat.com>
10762
10763 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
10764 argument. If it is false, don't create edge from then_bb to
10765 fallthru_bb.
10766 (insert_if_then_before_iter): Pass true to it.
10767 (build_check_stmt): Pass false to it.
10768 (transform_statements): Flush hash table only on extended basic
10769 block boundaries, rather than at the beginning of every bb.
10770 Don't flush hash table on nonfreeing_call_p calls.
10771 * tree-flow.h (nonfreeing_call_p): New prototype.
10772 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
10773
10774 2013-02-13 David S. Miller <davem@davemloft.net>
10775
10776 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
10777
10778 2013-02-13 Vladimir Makarov <vmakarov@redhat.com>
10779
10780 PR target/56184
10781 * ira.c (max_regno_before_ira): Move from ...
10782 (ira): ... here.
10783 (fix_reg_equiv_init): Use max_regno_before_ira instead of
10784 vec_safe_length.
10785
10786 2013-02-13 Jakub Jelinek <jakub@redhat.com>
10787
10788 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
10789
10790 2013-02-13 Richard Biener <rguenther@suse.de>
10791
10792 PR lto/56295
10793 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
10794 globals in MEM_REFs.
10795
10796 2013-02-13 Richard Biener <rguenther@suse.de>
10797
10798 * loop-init.c (loop_optimizer_init): Clear loop state when
10799 re-initializing preserved loops.
10800 * loop-unswitch.c (unswitch_single_loop): Return whether
10801 we unswitched the loop. Do not verify loop state here.
10802 (unswitch_loops): When we unswitched a loop discover new loops.
10803
10804 2013-02-13 Kostya Serebryany <kcc@google.com>
10805
10806 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
10807 on x86_64 linux.
10808 * sanitizer.def: Rename __asan_init to __asan_init_v1.
10809
10810 2013-02-12 Dodji Seketeli <dodji@redhat.com>
10811
10812 Avoid instrumenting duplicated memory access in the same basic block
10813 * Makefile.in (asan.o): Add new dependency on hash-table.h
10814 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
10815 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
10816 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
10817 (free_mem_ref_resources, has_mem_ref_been_instrumented)
10818 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
10819 (get_mem_ref_of_assignment): New functions.
10820 (get_mem_refs_of_builtin_call): Extract from
10821 instrument_builtin_call and tweak a little bit to make it fit with
10822 the new signature.
10823 (instrument_builtin_call): Use the new
10824 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
10825 of is_gimple_builtin_call.
10826 (instrument_derefs, instrument_mem_region_access): Insert the
10827 instrumented memory reference into the hash table.
10828 (maybe_instrument_assignment): Renamed instrument_assignment into
10829 this, and change it to advance the iterator when instrumentation
10830 actually happened and return true in that case. This makes it
10831 homogeneous with maybe_instrument_assignment, and thus give a
10832 chance to callers to be more 'regular'.
10833 (transform_statements): Clear the memory reference hash table
10834 whenever we enter a new BB, when we cross a function call, or when
10835 we are done transforming statements. Use
10836 maybe_instrument_assignment instead of instrumentation. No more
10837 need to special case maybe_instrument_assignment and advance the
10838 iterator after calling it; it's now handled just like
10839 maybe_instrument_call. Update comment.
10840
10841 2013-02-13 Richard Biener <rguenther@suse.de>
10842
10843 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
10844 Fix loop discovery code.
10845
10846 2013-02-12 Vladimir Makarov <vmakarov@redhat.com>
10847
10848 PR inline-asm/56148
10849 * lra-constraints.c (process_alt_operands): Match early clobber
10850 operand with itself. Check conflicts with earlyclobber only if
10851 the operand is not reloaded. Prefer to reload conflicting operand
10852 if earlyclobber and matching operands are the same.
10853
10854 2013-02-12 Richard Biener <rguenther@suse.de>
10855
10856 PR lto/56297
10857 * lto-streamer-out.c (write_symbol): Do not output symbols
10858 for hard register variables.
10859
10860 2013-02-12 Georg-Johann Lay <avr@gjlay.de>
10861
10862 PR target/54222
10863 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
10864 (umulsidi3_insn, mulsidi3_insn): New insns.
10865
10866 2013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
10867
10868 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
10869 (struct tune_params): Add vec_costs field.
10870 * config/arm/arm.c (arm_builtin_vectorization_cost)
10871 (arm_add_stmt_cost): New functions.
10872 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
10873 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
10874 (arm_default_vec_cost): New struct of type cpu_vec_costs.
10875 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
10876 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
10877 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
10878 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
10879
10880 2013-02-12 Richard Biener <rguenther@suse.de>
10881
10882 PR lto/56295
10883 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
10884 decls again if possible.
10885
10886 2013-02-12 Richard Biener <rguenther@suse.de>
10887
10888 PR middle-end/56288
10889 * tree-ssa.c (verify_ssa_name): Fix check, move
10890 SSA_NAME_IN_FREE_LIST check up.
10891
10892 2013-02-12 Jakub Jelinek <jakub@redhat.com>
10893 Steven Bosscher <steven@gcc.gnu.org>
10894
10895 PR rtl-optimization/56151
10896 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
10897 equal to op0 or op1, and last_insn pattern is CODE operation
10898 with MEM dest and one of the operands matches that MEM.
10899
10900 2013-02-11 Sriraman Tallam <tmsriramgoogle.com>
10901
10902 * doc/extend.texi: Document Function Multiversioning and "default"
10903 parameter string to target attribute.
10904 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
10905 target attribute parameter is "default".
10906 (ix86_compare_version_priority): Remove checks for target attribute.
10907 (ix86_mangle_function_version_assembler_name): Change error to sorry.
10908 Remove check for target attribute equal to NULL. Add assert.
10909 (ix86_generate_version_dispatcher_body): Change error to sorry.
10910
10911 2013-02-11 Iain Sandoe <iain@codesourcery.com>
10912 Jack Howarth <howarth@bromo.med.uc.edu>
10913 Patrick Marlier <patrick.marlier@gmail.com>
10914
10915 PR libitm/55693
10916 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
10917 define ENDFILE_SPEC as TM_DESTRUCTOR.
10918 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
10919
10920 2013-02-11 Alexander Potapenko <glider@google.com>
10921 Jack Howarth <howarth@bromo.med.uc.edu>
10922 Jakub Jelinek <jakub@redhat.com>
10923
10924 PR sanitizer/55617
10925 * config/darwin.c (cdtor_record): Rename ctor_record.
10926 (sort_cdtor_records): Rename sort_ctor_records.
10927 (finalize_dtors): New routine to sort destructors by
10928 priority before use in assemble_integer.
10929 (machopic_asm_out_destructor): Use finalize_dtors if needed.
10930
10931 2013-02-11 Uros Bizjak <ubizjak@gmail.com>
10932
10933 PR rtl-optimization/56275
10934 * simplify-rtx.c (avoid_constant_pool_reference): Check that
10935 offset is non-negative and less than cmode size before
10936 calling simplify_subreg.
10937
10938 2013-02-11 Richard Biener <rguenther@suse.de>
10939
10940 PR tree-optimization/56264
10941 * cfgloop.h (fix_loop_structure): Adjust prototype.
10942 * loop-init.c (fix_loop_structure): Return the number of
10943 newly discovered loops.
10944 * tree-cfgcleanup.c (repair_loop_structures): When new loops
10945 are discovered, do a full loop-closed SSA rewrite.
10946
10947 2013-02-11 Richard Biener <rguenther@suse.de>
10948
10949 PR tree-optimization/56273
10950 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
10951 first VRP run.
10952 (check_array_ref): Fix missing newline in dumps.
10953 (search_for_addr_array): Likewise.
10954
10955 2013-02-09 David Edelsohn <dje.gcc@gmail.com>
10956
10957 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
10958
10959 2013-02-09 Jakub Jelinek <jakub@redhat.com>
10960
10961 PR target/56256
10962 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
10963
10964 2013-02-08 Vladimir Makarov <vmakarov@redhat.com>
10965
10966 PR rtl-optimization/56246
10967 * lra-constraints.c (simplify_operand_subreg): Try to reuse
10968 reload pseudo.
10969 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
10970 constraints are satisfied.
10971
10972 2013-02-08 Jeff Law <law@redhat.com>
10973
10974 PR debug/53948
10975 * emit-rtl.c (reg_is_parm_p): New function.
10976 * regs.h (reg_is_parm_p): New prototype.
10977 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
10978 callee-clobbered registers.
10979
10980 2013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
10981
10982 PR target/56043
10983 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
10984 If there is no implicit builtin declaration, just return NULL.
10985
10986 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
10987
10988 * config/i386/sse.md (FMAMODEM): New mode iterator.
10989 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
10990 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
10991
10992 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
10993
10994 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
10995 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
10996 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
10997
10998 2013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
10999
11000 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
11001 (microblaze*-*-elf): Likewise.
11002 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
11003 LINK_SPEC.
11004 * config/microblaze/microblaze-c.c: Add builtin defines for
11005 _LITTLE_ENDIAN and _BIG_ENDIAN.
11006 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
11007 add to TARGET_DEFAULT flags.
11008 Expand ASM_SPEC and LINK_SPEC.
11009 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
11010 * config/microblaze/microblaze.md: Update extendsidi2 and
11011 movdi_internal instructions to use low-order / high-order reg
11012 print_operands.
11013 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
11014 options and inversemask / mask of LITTLE_ENDIAN.
11015 * config/microblaze/t-microblaze: Expand multilib options to
11016 include mlittle-endian (le) and update exceptions patterns.
11017
11018 2013-02-08 Jakub Jelinek <jakub@redhat.com>
11019
11020 PR rtl-optimization/56195
11021 * lra-constraints.c (get_reload_reg): Don't reuse regs
11022 if they have smaller mode than requested, if they have
11023 wider mode than requested, try to return a SUBREG.
11024
11025 PR tree-optimization/56250
11026 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
11027 if type is unsigned and code isn't MULT_EXPR.
11028
11029 2013-02-08 Georg-Johann Lay <avr@gjlay.de>
11030
11031 PR tree-optimization/56064
11032 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
11033 bits according to mode.
11034 * fixed-value.h (fixed_from_double_int)
11035 (const_fixed_from_double_int): Adjust comments.
11036
11037 2013-02-08 Richard Biener <rguenther@suse.de>
11038
11039 PR lto/56231
11040 * lto-streamer.h (struct data_in): Remove current_file, current_line
11041 and current_col members.
11042 * lto-streamer-out.c (lto_output_location): Stream changed bits
11043 en-block for efficiency.
11044 * lto-streamer-in.c (clear_line_info): Remove.
11045 (lto_input_location): Cache current file, line and column
11046 globally via local statics. Read changed bits en-block.
11047 (input_function): Do not call clear_line_info.
11048 (lto_read_body): Likewise.
11049 (lto_input_toplevel_asms): Likewise.
11050
11051 2013-02-08 Michael Matz <matz@suse.de>
11052
11053 PR tree-optimization/52448
11054 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
11055 (nt_call_phase): New static.
11056 (add_or_mark_expr): Only mark accesses with newer phase than any
11057 call seen.
11058 (nonfreeing_call_p): New.
11059 (nt_init_block): Update nt_call_phase, mark blocks as visited.
11060 (nt_fini_block): Keep blocks marked as visited.
11061 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
11062
11063 2013-02-08 Richard Biener <rguenther@suse.de>
11064
11065 * ira.c (ira): Free broken dominator information.
11066
11067 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
11068
11069 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
11070
11071 2013-02-08 Marek Polacek <polacek@redhat.com>
11072
11073 * cfgloop.c (verify_loop_structure): Add more checking of headers.
11074
11075 2013-02-08 Richard Biener <rguenther@suse.de>
11076
11077 PR middle-end/56181
11078 * cfgloop.h (flow_loops_find): Adjust.
11079 (bb_loop_header_p): Declare.
11080 * cfgloop.c (bb_loop_header_p): New function split out from ...
11081 (flow_loops_find): ... here. Adjust function signature,
11082 support incremental loop structure update.
11083 (verify_loop_structure): Cleanup. Verify a loop is a loop.
11084 * cfgloopmanip.c (fix_loop_structure): Move ...
11085 * loop-init.c (fix_loop_structure): ... here.
11086 (apply_loop_flags): Split out from ...
11087 (loop_optimizer_init): ... here.
11088 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
11089 in incremental mode, only remove dead loops here.
11090
11091 2013-02-08 Georg-Johann Lay <avr@gjlay.de>
11092
11093 PR target/54222
11094 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
11095 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
11096 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
11097 (*round<mode>3.libgcc): New insns for fixed-modes.
11098 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
11099 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
11100 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
11101 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
11102 implementations. Define to __builtin_avr_absFX,
11103 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
11104 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
11105 __builtin_avr_countlsFX, respectively.
11106 * config/avr/avr-c.c (target.h): Include it.
11107 (enum avr_builtin_id): New enum.
11108 (avr_resolve_overloaded_builtin): New static function.
11109 (avr_register_target_pragmas): Use it to set
11110 targetm.resolve_overloaded_builtin.
11111 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
11112 tree nodes used by DEF_BUILTIN.
11113 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
11114 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
11115 <AVR_BUILTIN_xxBITS>: Same.
11116
11117 2013-02-08 Richard Biener <rguenther@suse.de>
11118
11119 * cfgloop.c (verify_loop_structure): Properly handle
11120 a loop exiting to another loop header.
11121 * ira-int.h (ira_loops): Remove.
11122 * ira.c (ira_loops): Remove.
11123 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
11124 (do_reload): Use loop_optimizer_finalize.
11125 * ira-build.c (create_loop_tree_nodes): Use get_loops and
11126 number_of_loops to access the loop tree.
11127 (more_one_region_p): Likewise.
11128 (finish_loop_tree_nodes): Likewise.
11129 (rebuild_regno_allocno_maps): Likewise.
11130 (mark_loops_for_removal): Likewise.
11131 (mark_all_loops_for_removal): Likewise.
11132 (remove_unnecessary_regions): Likewise.
11133 (ira_build): Likewise.
11134 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
11135
11136 2013-02-08 Richard Biener <rguenther@suse.de>
11137
11138 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
11139 * ipa-pure-const.c (analyze_function): Avoid calling
11140 mark_irreducible_loops twice.
11141 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
11142
11143 2013-02-07 David S. Miller <davem@davemloft.net>
11144
11145 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
11146 on 'reg'.
11147 * var-tracking.c (vt_add_function_parameter): Test the presence of
11148 HAVE_window_save properly and do not remap argument registers when
11149 we have a leaf function.
11150
11151 2013-02-07 Uros Bizjak <ubizjak@gmail.com>
11152
11153 PR bootstrap/56227
11154 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
11155 instead of "ll".
11156 * config/i386/i386.c (ix86_print_operand): Ditto.
11157
11158 2013-02-07 Vladimir Makarov <vmakarov@redhat.com>
11159
11160 * lra-constraints.c (process_alt_operands): Fix recently added comment.
11161
11162 2013-02-07 Vladimir Makarov <vmakarov@redhat.com>
11163
11164 PR rtl-optimization/56225
11165 * lra-constraints.c (process_alt_operands): Check that reload hard
11166 reg can hold value for strict_low_part.
11167
11168 2013-02-07 Jakub Jelinek <jakub@redhat.com>
11169
11170 PR debug/56154
11171 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
11172 dwarf2out_end_function.
11173 (in_first_function_p, maybe_at_text_label_p,
11174 first_loclabel_num_not_at_text_label): New variables.
11175 (dwarf2out_var_location): In the first function find out
11176 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
11177 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
11178 functions.
11179
11180 2013-02-07 Eric Botcazou <ebotcazou@adacore.com>
11181
11182 PR rtl-optimization/56178
11183 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
11184 SUBREG of a register. Tidy up related block of code.
11185 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
11186 note if the source is a register or a SUBREG of a register.
11187
11188 2013-02-07 Jakub Jelinek <jakub@redhat.com>
11189
11190 PR target/56228
11191 * config/rs6000/rs6000.md (ptrm): New mode attr.
11192 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
11193 call_value_indirect_aix<pttrsize>,
11194 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
11195 m in constraints.
11196
11197 2013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
11198
11199 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
11200 if -bnortl. Convert to strcmp and strncmp.
11201
11202 2013-02-07 Alan Modra <amodra@gmail.com>
11203
11204 PR target/54009
11205 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
11206 addresses won't wrap when offsetting.
11207 (rs6000_secondary_reload): Provide secondary reloads needed for
11208 wrapping LO_SUM addresses.
11209
11210 2013-02-06 Thomas Schwinge <thomas@codesourcery.com>
11211
11212 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
11213 MACH, just __MACH__.
11214
11215 2013-02-06 Richard Biener <rguenther@suse.de>
11216
11217 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
11218 instead of calling fix_loop_structure.
11219
11220 2013-02-06 Jakub Jelinek <jakub@redhat.com>
11221
11222 PR middle-end/56217
11223 * omp-low.c (use_pointer_for_field): Return false if
11224 lower_send_shared_vars doesn't generate any copy-out code.
11225
11226 2013-02-06 Tom de Vries <tom@codesourcery.com>
11227
11228 PR rtl-optimization/56131
11229 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
11230 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
11231 of the label is NULL. Add comment.
11232
11233 2013-02-05 Jakub Jelinek <jakub@redhat.com>
11234
11235 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
11236
11237 PR sanitizer/55374
11238 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
11239 (STATIC_LIBTSAN_LIBS): Likewise.
11240 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
11241 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
11242 is defined, don't add anything else beyond that.
11243 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
11244 (LINK_COMMAND_SPEC): Use them.
11245
11246 PR tree-optimization/56205
11247 * tree-stdarg.c (check_all_va_list_escapes): Return true if
11248 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
11249 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
11250
11251 2013-02-05 Richard Biener <rguenther@suse.de>
11252
11253 PR tree-optimization/53342
11254 PR tree-optimization/53185
11255 * tree-vectorizer.h (vect_check_strided_load): Remove.
11256 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
11257 not disallow peeling for vectorized strided loads.
11258 (vect_check_strided_load): Make static and simplify.
11259 (vect_analyze_data_refs): Adjust.
11260 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
11261 correctly when vectorizing strided loads.
11262
11263 2013-02-05 Richard Biener <rguenther@suse.de>
11264
11265 * doc/install.texi: Refer to ISL, not PPL.
11266
11267 2013-02-05 Jan Hubicka <jh@suse.cz>
11268
11269 PR tree-optimization/55789
11270 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
11271
11272 2013-02-05 Jan Hubicka <jh@suse.cz>
11273
11274 PR tree-optimization/55789
11275 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
11276 the dead call anyway.
11277
11278 2013-02-05 Eric Botcazou <ebotcazou@adacore.com>
11279
11280 PR sanitizer/55374
11281 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
11282
11283 2013-02-04 Alexander Potapenko <glider@google.com>
11284 Jack Howarth <howarth@bromo.med.uc.edu>
11285 Jakub Jelinek <jakub@redhat.com>
11286
11287 PR sanitizer/55617
11288 * config/darwin.c (sort_ctor_records): Stabilized qsort
11289 on constructor priority by using original position.
11290 (finalize_ctors): New routine to sort constructors by
11291 priority before use in assemble_integer.
11292 (machopic_asm_out_constructor): Use finalize_ctors if needed.
11293
11294 2013-02-04 Jakub Jelinek <jakub@redhat.com>
11295
11296 PR libstdc++/54314
11297 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
11298 about visibility on artificial decls.
11299 * config/sol2.c (solaris_assemble_visibility): Likewise.
11300
11301 2013-02-04 Kai Tietz <ktietz@redhat.com>
11302
11303 PR target/56186
11304 * config/i386/i386.c (function_value_ms_64): Add additional valtype
11305 argument and improve checking of return-argument types for 16-byte
11306 modes.
11307 (ix86_function_value_1): Add additional valtype argument on call
11308 of function_value_64.
11309 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
11310 handling infunction_value_64 function.
11311
11312 2013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
11313
11314 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
11315
11316 2013-02-04 Richard Biener <rguenther@suse.de>
11317
11318 PR tree-optimization/56188
11319 * tree-ssa-structalias.c (label_visit): Consider case with
11320 initially non-empty points-to set.
11321 (perform_var_substitution): Dump node mapping and clean up.
11322
11323 2013-02-04 Richard Guenther <rguenther@suse.de>
11324
11325 PR lto/56168
11326 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
11327 node prevail as last resort.
11328 (lto_symtab_merge_decls): Remove guard on LTRANS here.
11329 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
11330
11331 2013-02-04 Richard Biener <rguenther@suse.de>
11332
11333 PR tree-optimization/56113
11334 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
11335 Merge into ...
11336 (equiv_class_lookup_or_add): ... this.
11337 (label_visit): Adjust and fix error in previous patch.
11338 (perform_var_substitution): Adjust.
11339
11340 2013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
11341
11342 * config/sh/divtab.c: Fix formatting and comments throughout the file.
11343 * config/sh/sh4-300.md: Likewise.
11344 * config/sh/sh4a.md: Likewise.
11345 * config/sh/constraints.md: Likewise.
11346 * config/sh/sh.md: Likewise.
11347 * config/sh/netbsd-elf.h: Likewise.
11348 * config/sh/predicates.md: Likewise.
11349 * config/sh/sh-protos.h: Likewise.
11350 * config/sh/ushmedia.h: Likewise.
11351 * config/sh/linux.h: Likewise.
11352 * config/sh/sh.c: Likewise.
11353 * config/sh/superh.h: Likewise.
11354 * config/sh/elf.h: Likewise.
11355 * config/sh/sh4.md: Likewise.
11356 * config/sh/sh.h: Likewise.
11357
11358 2013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11359
11360 * config/pa/constraints.md: Adjust unused letters. Change "T"
11361 constraint to match_test floating_point_store_memory_operand().
11362 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
11363 (base14_operand): New.
11364 (floating_point_store_memory_operand): New.
11365 (integer_store_memory_operand): Revise to use base14_operand and
11366 reg_plus_base_memory_operand.
11367 (move_dest_operand): Allow symbolic_memory_operands.
11368 (symbolic_memory_operand): Check for LO_SOM.
11369 (symbolic_operand): Change default case to break.
11370 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
11371 CONST_DOUBLE values to be reloaded by putting them into memory when
11372 the destination is a floating point register.
11373 (movdf): Remove code to handle CONST_DOUBLE.
11374 (movsf): Likewise.
11375 (reload_indf_r1): New.
11376 (reload_insf_r1): New.
11377 Consistently use "Q" and "T" constraints with integer and floating
11378 point move instructions, respectively.
11379 (movdi): Remove FAIL.
11380 Change predicate for source operand unamed DImode move from
11381 general_operand to move_src_operand.
11382 (umulsidi3): Change predicate for destination operand to
11383 register_operand.
11384 Likewise for similar unamed patterns.
11385 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
11386 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
11387 (hppa_legitimize_address): Simplify mask calculation.
11388 (pa_emit_move_sequence): Revised handling of secondary reloads from
11389 REG+D addresses for floating point loads and stores. Directly handle
11390 loading CONST0_RTX (mode) to a floating point register.
11391 (pa_secondary_reload): Handle reloading DF and SFmode constant values
11392 to floating point registers. Don't restrict secondary reloads to
11393 floating point registers to integer modes. Revise some comments and
11394 cleanup some code.
11395 (TARGET_LEGITIMATE_ADDRESS_P): Define.
11396 (pa_legitimate_address_p): New.
11397 (pa_legitimize_reload_address): New.
11398 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
11399 (STRICT_REG_OK_FOR_BASE_P): New.
11400 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
11401 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
11402
11403 2013-02-03 David Edelsohn <dje.gcc@gmail.com>
11404 Andrew Dixie <andrewd@gentrack.com>
11405
11406 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
11407 flag set.
11408
11409 2013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
11410
11411 * expmed.c (extract_bit_field_1): Pass the full width of the
11412 structure to get_best_reg_extraction_insn.
11413
11414 2013-02-01 David Edelsohn <dje.gcc@gmail.com>
11415
11416 PR target/54601
11417 * configure.ac (use_cxa_atexit): Add AIX.
11418 * configure: Regenerate.
11419
11420 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
11421
11422 2013-02-01 Jakub Jelinek <jakub@redhat.com>
11423
11424 PR debug/54793
11425 * final.c (need_profile_function): New variable.
11426 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
11427 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
11428 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
11429 notes, targetm.asm_out.function_prologue doesn't emit anything,
11430 HAVE_prologue and profiler should be emitted before prologue,
11431 set need_profile_function instead of emitting it.
11432 (final_scan_insn): If need_profile_function, emit
11433 profile_function on the first NOTE_INSN_BASIC_BLOCK or
11434 NOTE_INSN_FUNCTION_BEG note.
11435
11436 2013-02-01 Richard Henderson <rth@redhat.com>
11437
11438 * config/rs6000/rs6000.md (smulditi3): New.
11439 (umulditi3): New.
11440
11441 * config/alpha/alpha.md (umulditi3): New.
11442
11443 2013-02-01 David Edelsohn <dje.gcc@gmail.com>
11444
11445 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
11446 (ASM_OUTPUT_ALIGNED_LOCAL): New.
11447
11448 2013-02-01 Richard Biener <rguenther@suse.de>
11449
11450 PR tree-optimization/56113
11451 * tree-ssa-structalias.c (label_visit): Reduce work for
11452 single-predecessor nodes.
11453
11454 2013-02-01 Eric Botcazou <ebotcazou@adacore.com>
11455
11456 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
11457 range isn't testing for zero.
11458
11459 2013-01-31 Steven Bosscher <steven@gcc.gnu.org>
11460
11461 PR middle-end/56113
11462 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
11463
11464 2013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
11465 Nick Clifton <nickc@redhat.com>
11466
11467 * config/v850/constraints.md (Q): Define as a memory constraint.
11468 * config/v850/predicates.md (label_ref_operand): New predicate.
11469 (e3v5_shift_operand): New predicate.
11470 (ior_operator): New predicate.
11471 * config/v850/t-v850: Add e3v5 multilib.
11472 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
11473 (v850_gen_movdi): Prototype.
11474 * config/v850/v850.c: Add support for e3v5 architecture.
11475 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
11476 TARGET_V850E_UP.
11477 (construct_save_jarl): Add e3v5 long JARL support.
11478 (v850_adjust_insn_length): New function. Adjust length of call
11479 insns when using e3v5 instructions.
11480 (v850_gen_movdi): New function: Generate instructions to move a
11481 DImode value.
11482 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
11483 (CPP_SPEC): Define __v850e3v5__ as appropriate.
11484 (TARGET_USE_FPU): Enable for e3v5.
11485 (CONST_OK_FOR_W): New macro.
11486 (ADJUST_INSN_LENGTH): Define.
11487 * config/v850/v850.md (UNSPEC_LOOP): Define.
11488 (attr cpu): Add v850e3v5.
11489 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
11490 (movdi): New pattern.
11491 (movdi_internal): New pattern.
11492 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
11493 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
11494 (cstoresf4): Likewise.
11495 (cstoredf4): Likewise.
11496 (insv): New pattern.
11497 (rotlso3_a): New pattern.
11498 (rotlsi3_b): New pattern
11499 (rotlsi3_v850e3v5): New pattern.
11500 (doloop_begin): New pattern.
11501 (fix_loop_counter): New pattern.
11502 (doloop_end): New pattern.
11503 (branch_normal): Add e3v5 long branch support.
11504 (branch_invert): Likewise.
11505 (branch_z_normal): Likewise.
11506 (branch_z_invert): Likewise.
11507 (branch_nz_normal): Likewise.
11508 (branch_nz_invert): Likewise.
11509 (call_internal_short): Add e3v5 register-indirect JARL support.
11510 (call_internal_long): Likewise.
11511 (call_value_internal_short): Likewise.
11512 (call_value_internal_long): Likewise.
11513 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
11514 (mloop): New option.
11515 * config.gcc: Add support for configuring v840e3v5 target.
11516 * doc/invoke.texi: Document new v850 specific command line options.
11517
11518 2013-01-31 Paul Koning <ni1d@arrl.net>
11519
11520 PR debug/55059
11521 PR debug/54508
11522 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
11523 children if parent is a class.
11524 (prune_unused_types_prune): Don't add DW_AT_declaration.
11525
11526 2013-01-31 Richard Biener <rguenther@suse.de>
11527
11528 PR tree-optimization/56157
11529 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
11530 match up operand with SLP child.
11531
11532 2013-01-31 Jason Merrill <jason@redhat.com>
11533
11534 PR debug/54410
11535 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
11536 parameters the first time.
11537 (gen_scheduled_generic_parms_dies): Check completeness here.
11538
11539 2013-01-31 Richard Biener <rguenther@suse.de>
11540
11541 PR middle-end/53073
11542 * common.opt (faggressive-loop-optimizations): New flag,
11543 enabled by default.
11544 * doc/invoke.texi (faggressive-loop-optimizations): Document.
11545 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
11546 infer_loop_bounds_from_undefined by it.
11547
11548 2013-01-31 Richard Biener <rguenther@suse.de>
11549
11550 PR tree-optimization/56150
11551 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
11552 visit virtual operands.
11553 (find_uses_to_rename_bb): Likewise.
11554
11555 2013-01-31 Richard Biener <rguenther@suse.de>
11556
11557 PR tree-optimization/56150
11558 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
11559 mixed store non-store stmts.
11560
11561 2013-01-30 Jakub Jelinek <jakub@redhat.com>
11562
11563 PR sanitizer/55374
11564 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
11565 LIBASAN_EARLY_SPEC is defined.
11566 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
11567 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
11568 before %o.
11569 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
11570
11571 PR c++/55742
11572 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
11573 invalid args instead of ICEing on it.
11574 (ix86_valid_target_attribute_tree): Return error_mark_node if
11575 ix86_valid_target_attribute_inner_p failed.
11576 (ix86_valid_target_attribute_p): Return false only if
11577 ix86_valid_target_attribute_tree returned error_mark_node. Allow
11578 target("default") attribute.
11579 (sorted_attr_string): Change argument from const char * to tree,
11580 merge in all target attribute arguments rather than just one.
11581 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
11582 instead of free. Avoid using strcat.
11583 (ix86_mangle_function_version_assembler_name): Mangle
11584 target("default") as if no target attribute is present. Adjust
11585 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
11586 instead of xmalloc and XDELETEVEC instead of free.
11587 (ix86_function_versions): Don't return true if one of the decls
11588 doesn't have target attribute. If they don't and one of the decls
11589 is DECL_FUNCTION_VERSIONED, report an error. Adjust
11590 sorted_attr_string caller. Use XDELETEVEC instead of free.
11591 (ix86_supports_function_versions): Remove.
11592 (make_name): Fix up formatting.
11593 (make_dispatcher_decl): Remove resolver_name and its initialization.
11594 Avoid leaking memory.
11595 (is_function_default_version): Return true if there is
11596 target("default") attribute rather than no target attribute at all.
11597 (make_resolver_func): Avoid leaking memory.
11598 (ix86_generate_version_dispatcher_body): Likewise.
11599 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
11600 * target.def (supports_function_versions): Remove.
11601 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
11602 * doc/tm.texi: Regenerated.
11603
11604 2013-01-30 Vladimir Makarov <vmakarov@redhat.com>
11605
11606 PR rtl-optimization/56144
11607 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
11608 for values with side effects.
11609
11610 2013-01-30 Richard Biener <rguenther@suse.de>
11611
11612 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
11613 (sparseset_pop): Likewise.
11614 * cfganal.c (compute_idf): Likewise. Increase work-stack size
11615 to be able to use quick_push in the worker loop.
11616
11617 2013-01-30 Marek Polacek <polacek@redhat.com>
11618
11619 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
11620
11621 2013-01-30 Richard Biener <rguenther@suse.de>
11622
11623 PR lto/56147
11624 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
11625
11626 2013-01-30 Georg-Johann Lay <avr@gjlay.de>
11627
11628 PR tree-optimization/56064
11629 * fixed-value.c (fixed_from_double_int): New function.
11630 * fixed-value.h (fixed_from_double_int): New prototype.
11631 (const_fixed_from_double_int): New static inline function.
11632 * fold-const.c (native_interpret_fixed): New static function.
11633 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
11634 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
11635 (native_encode_fixed): New static function.
11636 (native_encode_expr) <FIXED_CST>: Use it.
11637 (native_interpret_int): Move double_int worker code to...
11638 * double-int.c (double_int::from_buffer): ...this new static method.
11639 * double-int.h (double_int::from_buffer): Prototype it.
11640
11641 2013-01-30 Richard Biener <rguenther@suse.de>
11642
11643 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
11644 New pointer-map and obstack.
11645 (init_alias_vars): Allocate pointer-map and obstack.
11646 (delete_points_to_sets): Free them.
11647 (find_what_var_points_to): Cache result.
11648 (find_what_p_points_to): Adjust for changed interface of
11649 find_what_var_points_to.
11650 (compute_points_to_sets): Likewise.
11651 (ipa_pta_execute): Likewise.
11652
11653 2013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11654
11655 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
11656 * configure: Regenerate.
11657 * config.in: Regenerate.
11658 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
11659 #nobits/#progbits if supported.
11660
11661 2013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
11662
11663 PR target/56121
11664 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
11665 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
11666 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
11667
11668 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
11669
11670 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
11671 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
11672
11673 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
11674
11675 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
11676 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
11677
11678 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
11679
11680 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
11681 declaration.
11682 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
11683 * config/arm/cortex-a7.md: New bypasses using
11684 arm_mac_accumulator_is_result.
11685
11686 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
11687
11688 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
11689 (cortex_a7_neon_mla): Likewise.
11690 (cortex_a7_fpfmad): New reservation.
11691 (cortex_a7_fpmacs): Use ffmas and update required units.
11692 (cortex_a7_fpmuld): Update required units and latency.
11693 (cortex_a7_fpmacd): Likewise.
11694 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
11695 (cortex_a7_neon). Likewise.
11696 (bypass) Update participating units.
11697
11698 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
11699
11700 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
11701 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
11702 from fmac to ffma.
11703 * config/arm/vfp11.md (vfp_farith): Use ffmas.
11704 (vfp_fmul): Use ffmad.
11705 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
11706 (cortex_r4_fmacd): Use ffmad.
11707 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
11708 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
11709 (cortex_a9_fmacd): Use ffmad.
11710 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
11711 (cortex_a8_vfp_macd): Use ffmad.
11712 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
11713 (cortex_a5_fpmacd): Use ffmad.
11714 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
11715 (cortex_a15_vfp_macd): Use ffmad.
11716 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
11717
11718 2013-01-29 Jason Merrill <jason@redhat.com>
11719
11720 PR libstdc++/54314
11721 * varasm.c (default_assemble_visibility): Don't warn about
11722 visibility on artificial decls.
11723
11724 2013-01-29 Richard Biener <rguenther@suse.de>
11725
11726 PR tree-optimization/56113
11727 * tree-ssa-structalias.c (equiv_class_lookup): Also return
11728 the bitmap leader.
11729 (label_visit): Free duplicate bitmaps and record the leader instead.
11730 (perform_var_substitution): Adjust.
11731
11732 2013-01-29 Richard Biener <rguenther@suse.de>
11733
11734 PR tree-optimization/55270
11735 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
11736 the CFG, schedule loops for fixup.
11737
11738 2013-01-29 Nick Clifton <nickc@redhat.com>
11739
11740 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
11741 SP_REG.
11742
11743 2013-01-28 Leif Ekblad <leif@rdos.net>
11744
11745 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
11746 * config/i386/i386.h (TARGET_RDOS): New macro.
11747 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
11748 * config/i386/i386.c (ix86_option_override_internal): For 64bit
11749 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
11750 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
11751 DEFAULT_LARGE_SECTION_THRESHOLD.
11752 * config/i386/i386.md (R14_REG, R15_REG): New constants.
11753 * config/i386/rdos.h: New file.
11754 * config/i386/rdos64.h: New file.
11755
11756 2013-01-28 Bernd Schmidt <bernds@codesourcery.com>
11757
11758 PR other/54814
11759 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
11760 TEST_HARD_REG_BIT.
11761
11762 2013-01-28 Jakub Jelinek <jakub@redhat.com>
11763
11764 PR rtl-optimization/56117
11765 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
11766 call cselib_lookup_from_insn on the MEM before calling
11767 add_insn_mem_dependence.
11768
11769 2013-01-28 Richard Biener <rguenther@suse.de>
11770
11771 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
11772 to a stmt that didn't have one.
11773 (copy_phis_for_bb): Likewise for PHI arguments.
11774 (copy_debug_stmt): Likewise for debug stmts.
11775
11776 2013-01-28 Richard Biener <rguenther@suse.de>
11777
11778 PR tree-optimization/56034
11779 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
11780 (partition_builtin_p): Adjust.
11781 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
11782 it is the last partition.
11783 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
11784 up the vertex for the definition.
11785 (classify_partition): Classify whether a partition is a
11786 PKIND_REDUCTION, thus has uses outside of the loop.
11787 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
11788 Merge all PKIND_REDUCTION partitions into the last partition.
11789 (tree_loop_distribution): Seed partitions from reductions as well.
11790
11791 2013-01-28 Jakub Jelinek <jakub@redhat.com>
11792
11793 PR tree-optimization/56125
11794 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
11795 pow(x,c) into sqrt(x) * powi(x, n/2) or
11796 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
11797 optimizing for size.
11798 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
11799 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
11800 integer.
11801
11802 PR tree-optimization/56094
11803 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
11804 to UNKNOWN_LOCATION while gimplifying expr.
11805
11806 2013-01-27 Uros Bizjak <ubizjak@gmail.com>
11807
11808 PR target/56114
11809 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
11810 operand 0 in movabs insn template for -masm=intel asm alternative.
11811 (*movabs<mode>_2): Ditto for operand 1.
11812
11813 2013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
11814
11815 PR target/54663
11816 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
11817 of microblaze-c.o
11818
11819 2013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
11820
11821 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
11822 tm_file.
11823
11824 2013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
11825
11826 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
11827 Undef to avoid warning.
11828
11829 2013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
11830
11831 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
11832 * configure: Regenerate.
11833
11834 2013-01-25 Jakub Jelinek <jakub@redhat.com>
11835
11836 PR tree-optimization/56098
11837 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
11838 for stmts with volatile ops.
11839 (cond_store_replacement): Don't optimize if assign has volatile ops.
11840 (cond_if_else_store_replacement_1): Don't optimize if either
11841 then_assign or else_assign have volatile ops.
11842 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
11843 volatile ops.
11844
11845 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
11846
11847 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
11848
11849 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
11850
11851 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
11852 missing ':' in asm example.
11853
11854 2013-01-25 Tejas Belagod <tejas.belagod@arm.com>
11855
11856 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
11857 entries into lane and laneq entries.
11858 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
11859 Remove AdvSIMD scalar modes.
11860 (aarch64_sq<r>dmulh_laneq<mode>): New.
11861 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
11862 modes.
11863 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
11864 builtin implementations to relfect changes in RTL in aarch64-simd.md.
11865 * config/aarch64/iterators.md (VCOND): New.
11866 (VCONQ): New.
11867
11868 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
11869
11870 PR target/54222
11871 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
11872 Add NULL LIBNAME argument to existing definitions.
11873 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
11874 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
11875 * config/avr/avr.c (DEF_BUILTIN): Same.
11876 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
11877 (avr_expand_builtin): Expand to a vanilla call if a libgcc
11878 implementation is available (DECL_ASSEMBLER_NAME is set).
11879 (avr_fold_absfx): New static function.
11880 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
11881 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
11882 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
11883 AVR_BUILTIN_ABSLLK.
11884 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
11885 (abshk, absk, abslk, absllk): Provide as static inline functions.
11886
11887 2013-01-25 Marek Polacek <polacek@redhat.com>
11888
11889 PR tree-optimization/56035
11890 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
11891
11892 2012-01-24 Uros Bizjak <ubizjak@gmail.com>
11893
11894 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
11895 (*movtf_internal_rex64): Add (!o,C) alternative
11896 (*movxf_internal_rex64): Ditto.
11897 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
11898
11899 2013-01-24 Shenghou Ma <minux.ma@gmail.com>
11900
11901 * doc/invoke.texi: fix typo.
11902 * doc/objc.texi: fix typo.
11903
11904 2013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
11905
11906 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
11907 for the first two alternatives.
11908
11909 2013-01-24 Diego Novillo <dnovillo@google.com>
11910
11911 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
11912 (ggc-zone.o): Remove.
11913 * configure.ac: Remove option --with-gc.
11914 * configure: Re-generate.
11915 * doc/install.texi: Remove documentation for --with-gc.
11916 * gengtype.c (write_enum_defn): Remove. Update all users.
11917 (write_Types_process_field): Remove generation of gt_e_* argument.
11918 (output_type_enum): Remove. Update all users.
11919 (write_enum_defn): Remove. Update all users.
11920 (enum alloc_zone): Remove. Update all users.
11921 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
11922 * ggc-common.c (ggc_splay_alloc): Remove first argument.
11923 Update all callers.
11924 (struct ptr_data): Remove field TYPE. Update all users.
11925 (gt_pch_note_object): Remove argument TYPE. Update all users.
11926 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
11927 Update all users.
11928 * ggc-none.c (ggc_alloc_typed_stat): Remove.
11929 (struct alloc_zone): Remove.
11930 (ggc_internal_alloc_zone_stat): Remove.
11931 (ggc_internal_cleared_alloc_zone_stat): Remove.
11932 * ggc-page.c (ggc_alloc_typed_stat): Remove.
11933 (ggc_pch_count_object): Remove last argument. Update all users.
11934 (ggc_pch_alloc_object): Remove last argument. Update all users.
11935 (struct alloc_zone): Remove.
11936 * ggc-zone.c: Remove.
11937 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
11938 (struct alloc_zone): Remove.
11939 (ggc_alloc_typed_stat): Remove.
11940 (ggc_alloc_typed): Remove.
11941 (ggc_splay_alloc): Remove first argument.
11942 (rtl_zone): Remove. Update all users.
11943 (tree_zone): Remove. Update all users.
11944 (tree_id_zone): Remove. Update all users.
11945 (ggc_internal_zone_alloc_stat): Remove. Update all users.
11946 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
11947 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
11948 * tree-ssanames.c: Remove references to zone allocator in comments.
11949
11950 2013-01-24 Georg-Johann Lay <avr@gjlay.de>
11951
11952 * config/avr/avr.c (avr_out_fract): Make register numbers that
11953 might be outside of source operand signed.
11954
11955 2013-01-24 Uros Bizjak <ubizjak@gmail.com>
11956
11957 * config/i386/constraints.md (Yf): New constraint.
11958 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
11959 of f constraint to conditionaly disable x87 register preferences.
11960 (*movdf_internal): Ditto.
11961 (*movsf_internal): Ditto.
11962
11963 2013-01-24 Steven Bosscher <steven@gcc.gnu.org>
11964
11965 PR inline-asm/55934
11966 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
11967 that have operands with impossible constraints.
11968 Add a FIXME for a speed-up opportunity.
11969 * lra-constraints.c (process_alt_operands): Verify that a class
11970 selected from constraints on asms is valid for the operand mode.
11971 (curr_insn_transform): Remove incorrect comment.
11972
11973 2013-01-23 David Edelsohn <dje.gcc@gmail.com>
11974
11975 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
11976 TOC operand is a valid symbol ref in the constant pool.
11977
11978 2013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
11979
11980 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
11981
11982 2013-01-23 Georg-Johann Lay <avr@gjlay.de>
11983
11984 PR target/54222
11985 * config/avr/stdfix.h: New file.
11986 * t-avr (stdfix-gcc.h): New rule to build it.
11987 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
11988
11989 2013-01-23 Kostya Serebryany <kcc@google.com>
11990
11991 * config/darwin.h: remove dependency on
11992 CoreFoundation (asan on Mac OS).
11993
11994 2013-01-23 Jakub Jelinek <jakub@redhat.com>
11995
11996 PR target/49069
11997 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
11998 instead of cmpdi_operand for first comparison operand.
11999 Don't assert that comparison operands aren't both constants.
12000
12001 2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
12002
12003 * doc/install.texi (Downloading the Source): Update references to
12004 downloading separate components.
12005
12006 2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
12007
12008 * doc/extend.texi (__int128): Improve grammar.
12009
12010 2013-01-22 Uros Bizjak <ubizjak@gmail.com>
12011
12012 PR target/56028
12013 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
12014 alternative to (o,r).
12015 (*movdi_internal_rex64): Remove (!o,n) alternative.
12016 (DImode immediate->memory splitter): Remove.
12017 (DImode immediate->memory peephole2): Remove.
12018 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
12019 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
12020 alternative to (!o,*r).
12021 (*movtf_internal_sse): New pattern.
12022 (*movxf_internal_rex64): New pattern.
12023 (*movxf_internal): Disable for TARGET_64BIT.
12024 (*movdf_internal_rex64): Remove (!o,F) alternative.
12025
12026 2013-01-22 Jakub Jelinek <jakub@redhat.com>
12027
12028 PR middle-end/56074
12029 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
12030 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
12031 * tree-vect-loop-manip.c (find_loop_location): Also ignore
12032 stmt locations where LOCATION_LOCUS of the stmt location is
12033 UNKNOWN_LOCATION or BUILTINS_LOCATION.
12034
12035 PR target/55686
12036 * config/i386/i386.md (UNSPEC_STOS): New.
12037 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
12038 *strsetqi_1): Add UNSPEC_STOS.
12039
12040 2013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
12041
12042 PR c++/56067
12043 * doc/invoke.texi: Remove left over -Wsynth example.
12044
12045 2013-01-21 Jakub Jelinek <jakub@redhat.com>
12046
12047 PR tree-optimization/56051
12048 * fold-const.c (fold_binary_loc): Don't fold
12049 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
12050 a narrowing conversion, or widening conversion from signed
12051 to unsigned.
12052
12053 2013-01-21 Uros Bizjak <ubizjak@gmail.com>
12054
12055 PR rtl-optimization/56023
12056 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
12057 dependent on debug instruction.
12058
12059 2013-01-21 Martin Jambor <mjambor@suse.cz>
12060
12061 PR middle-end/56022
12062 * function.c (allocate_struct_function): Call
12063 invoke_set_current_function_hook earlier.
12064
12065 2013-01-21 Jakub Jelinek <jakub@redhat.com>
12066
12067 * reload1.c (init_reload): Only initialize reload_obstack
12068 during the first call.
12069
12070 2013-01-21 Marek Polacek <polacek@redhat.com>
12071
12072 * cfgloop.c (verify_loop_structure): Fix up grammar.
12073
12074 2013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
12075
12076 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
12077 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
12078
12079 2013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12080
12081 PR target/56058
12082 * config/arm/marvell-pj4.md: Update copyright year.
12083 Fix up use of alu to alu_reg and simple_alu_imm.
12084
12085 2013-01-21 Uros Bizjak <ubizjak@gmail.com>
12086
12087 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
12088
12089 2013-01-20 Vladimir Makarov <vmakarov@redhat.com>
12090
12091 PR target/55433
12092 * lra-constraints.c (curr_insn_transform): Don't reuse original
12093 insn for secondary memory move when memory mode should be different.
12094
12095 2013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12096
12097 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
12098 atomic_storedi_1): New patterns.
12099
12100 2013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
12101
12102 btver2 pipeline descriptions.
12103 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
12104 descriptions.
12105 * config/i386/i386.md (btver2_decode): New type attributes.
12106 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
12107 type attributes.
12108 * config/i386/btver2.md: New file describing btver2 pipelines.
12109
12110 2013-01-19 Andrew Pinski <apinski@cavium.com>
12111
12112 PR tree-optimization/52631
12113 * tree-ssa-sccvn (visit_use): Before looking up the original
12114 statement, try looking up the simplified expression.
12115
12116 2013-01-19 Anthony Green <green@moxielogic.com>
12117
12118 * config/moxie/moxie.c (moxie_expand_prologue): Set
12119 current_function_static_stack_size.
12120
12121 2013-01-18 Jakub Jelinek <jakub@redhat.com>
12122
12123 PR tree-optimization/56029
12124 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
12125 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
12126
12127 2013-01-18 Sharad Singhai <singhai@google.com>
12128
12129 PR tree-optimization/55995
12130 * dumpfile.c (dump_loc): Print location only if available.
12131 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
12132
12133 2013-01-18 Vladimir Makarov <vmakarov@redhat.com>
12134
12135 PR target/55433
12136 * lra-constraints.c (curr_insn_transform): Reuse original insn for
12137 secondary memory move.
12138 (inherit_reload_reg): Use rclass instead of cl for
12139 check_secondary_memory_needed_p.
12140
12141 2013-01-18 Jakub Jelinek <jakub@redhat.com>
12142
12143 PR middle-end/56015
12144 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
12145 the case where writing real complex part of target modifies op1.
12146
12147 2013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
12148
12149 * config/aarch64/aarch64-simd.md
12150 (aarch64_vcond_internal<mode>): Handle unordered cases.
12151 * config/aarch64/iterators.md (v_cmp_result): New.
12152
12153 2013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
12154 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12155
12156 * config/arm/marvell-pj4.md: New file.
12157 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
12158 * config/arm/arm.md (generic_sched): Add marvell_pj4.
12159 (generic_vfp): Likewise.
12160 * config/arm/arm-cores.def: Add marvell-pj4.
12161 * config/arm/arm-tune.md: Regenerate.
12162 * config/arm/arm-tables.opt: Regenerate.
12163 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
12164 * doc/invoke.texi: Document marvell-pj4.
12165
12166 2013-01-18 Tejas Belagod <tejas.belagod@arm.com>
12167
12168 * config/aarch64/arm_neon.h: Map scalar types to standard types.
12169
12170 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
12171
12172 PR debug/54114
12173 PR debug/54402
12174 PR debug/49888
12175 * var-tracking.c (negative_power_of_two_p): New.
12176 (global_get_addr_cache, local_get_addr_cache): New.
12177 (get_addr_from_global_cache, get_addr_from_local_cache): New.
12178 (vt_canonicalize_addr): Rewrite using the above. Adjust the
12179 heading comment.
12180 (vt_stack_offset_p): Remove.
12181 (vt_canon_true_dep): Always canonicalize loc's address.
12182 (clobber_overlapping_mems): Make sure we have a MEM.
12183 (local_get_addr_clear_given_value): New.
12184 (val_reset): Clear local cached entries.
12185 (compute_bb_dataflow): Create and release the local cache.
12186 Disable duplicate MEMs clobbering.
12187 (emit_notes_in_bb): Clobber MEMs likewise.
12188 (vt_emit_notes): Create and release the local cache.
12189 (vt_initialize, vt_finalize): Create and release the global
12190 cache, respectively.
12191 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
12192
12193 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
12194
12195 PR libmudflap/53359
12196 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
12197 not found in the symtab.
12198
12199 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
12200
12201 PR debug/56006
12202 PR rtl-optimization/55547
12203 PR rtl-optimization/53827
12204 PR debug/53671
12205 PR debug/49888
12206 * alias.c (offset_overlap_p): New, factored out of...
12207 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
12208 the conservative special case for symbolic constants. Don't
12209 adjust zero sizes on alignment.
12210
12211 2013-01-18 Bernd Schmidt <bernds@codesourcery.com>
12212
12213 PR rtl-optimization/52573
12214 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
12215 REG_UNUSED for the same register.
12216
12217 2013-01-17 Richard Biener <rguenther@suse.de>
12218 Marek Polacek <polacek@redhat.com>
12219
12220 PR rtl-optimization/55833
12221 * loop-unswitch.c (unswitch_loops): Move loop verification...
12222 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
12223 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
12224 Set it to true when we're removing a loop from hierarchy tree in
12225 an irreducible region.
12226 (fix_bb_placements): Adjust caller.
12227 (fix_loop_placements): Likewise.
12228
12229 2013-01-17 Georg-Johann Lay <avr@gjlay.de>
12230
12231 * config/avr/builtins.def (DEF_BUILTIN): Factor out
12232 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
12233 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
12234 Remove ID. Adjust comments.
12235 * config/avr/avr-c.c (avr_builtin_name): Remove.
12236 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
12237 * config/avr/avr.c (avr_tolower): New static function.
12238 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
12239 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
12240 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
12241 default expansion.
12242
12243 2013-01-17 Jan Hubicka <jh@suse.cz>
12244
12245 PR tree-optimization/55273
12246 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
12247
12248 2013-01-17 Uros Bizjak <ubizjak@gmail.com>
12249
12250 PR target/55981
12251 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
12252 store through atomic_store<mode>_1.
12253 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
12254
12255 2013-01-17 Martin Jambor <mjambor@suse.cz>
12256
12257 PR tree-optimizations/55264
12258 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
12259 for virtual methods.
12260 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
12261 virtual methods before inlining is over.
12262 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
12263 virtual functions.
12264 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
12265 non-virtual.
12266
12267 2013-01-16 Vladimir Makarov <vmakarov@redhat.com>
12268
12269 PR rtl-optimization/56005
12270 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
12271 pending reads for prefetch.
12272
12273 2013-01-16 Ian Bolton <ian.bolton@arm.com>
12274
12275 * config/aarch64/aarch64.md
12276 (*cstoresi_neg_uxtw): New pattern.
12277 (*cmovsi_insn_uxtw): New pattern.
12278 (*<optab>si3_uxtw): New pattern.
12279 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
12280 (*<optab>si3_insn_uxtw): New pattern.
12281 (*bswapsi2_uxtw): New pattern.
12282
12283 2013-01-16 Richard Biener <rguenther@suse.de>
12284
12285 * tree-inline.c (tree_function_versioning): Remove set but
12286 never used variable.
12287
12288 2013-01-16 Richard Biener <rguenther@suse.de>
12289
12290 PR tree-optimization/55964
12291 * tree-flow.h (rename_variables_in_loop): Remove.
12292 (rename_variables_in_bb): Likewise.
12293 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
12294 (copy_loop_before): Adjust and delete update-ssa status.
12295 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
12296 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
12297 (rename_variables_in_loop): Remove.
12298 (slpeel_update_phis_for_duplicate_loop): Likewise.
12299 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
12300 use available cfg machinery instead of duplicating it.
12301 Update PHI nodes and perform poor-mans SSA update here.
12302 (slpeel_tree_peel_loop_to_edge): Adjust.
12303
12304 2013-01-16 Richard Biener <rguenther@suse.de>
12305
12306 PR tree-optimization/54767
12307 PR tree-optimization/53465
12308 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
12309 (vrp_visit_phi_node): For PHI arguments coming via backedges
12310 drop all symbolical range information.
12311 (execute_vrp): Compute backedges.
12312
12313 2013-01-16 Richard Biener <rguenther@suse.de>
12314
12315 * doc/install.texi: Update CLooG and ISL requirements to
12316 0.18.0 and 0.11.1.
12317
12318 2013-01-16 Christian Bruel <christian.bruel@st.com>
12319
12320 PR target/55301
12321 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
12322 (broken_move): Handle UNSPECV_SP_SWITCH_B.
12323 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
12324
12325 2013-01-16 DJ Delorie <dj@redhat.com>
12326
12327 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
12328 (UNSPECV_SP_SWITCH_E): New.
12329 (sp_switch_1): Change to an unspec.
12330 (sp_switch_2): Change to an unspec. Don't use post-inc when we
12331 replace $r15.
12332
12333 2013-01-16 Uros Bizjak <ubizjak@gmail.com>
12334
12335 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
12336 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
12337 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
12338 (expand_mem_thread_fence): Ditto.
12339 (expand_mem_signal_fence): Ditto.
12340 (expand_atomic_load): Ditto.
12341 (expand_atomic_store): Ditto.
12342
12343 2013-01-16 Alexandre Oliva <aoliva@redhat.com>
12344
12345 PR rtl-optimization/55547
12346 PR rtl-optimization/53827
12347 PR debug/53671
12348 PR debug/49888
12349 * alias.c (memrefs_conflict_p): Set sizes to negative after
12350 AND adjustments.
12351
12352 2013-01-15 Jakub Jelinek <jakub@redhat.com>
12353
12354 PR target/55940
12355 * function.c (thread_prologue_and_epilogue_insns): Always
12356 add crtl->drap_reg to set_up_by_prologue.set, even if
12357 stack_realign_drap is false.
12358
12359 2013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12360
12361 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
12362 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
12363 *call): Fix indention.
12364
12365 2013-01-15 Tom de Vries <tom@codesourcery.com>
12366
12367 PR target/55876
12368 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
12369 Update comment.
12370
12371 2013-01-15 Vladimir Makarov <vmakarov@redhat.com>
12372
12373 PR rtl-optimization/55153
12374 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
12375
12376 2013-01-15 Martin Jambor <mjambor@suse.cz>
12377
12378 PR tree-optimization/55920
12379 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
12380 accesses as grp_to_be_debug_replaced.
12381
12382 2013-01-15 Jakub Jelinek <jakub@redhat.com>
12383
12384 PR tree-optimization/55920
12385 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
12386 there is non-useless type conversion needed from debug rhs to lhs,
12387 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
12388
12389 2013-01-15 Joseph Myers <joseph@codesourcery.com>
12390 Mikael Pettersson <mikpe@it.uu.se>
12391
12392 PR target/43961
12393 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
12394 Thumb.
12395 (ASM_OUTPUT_CASE_LABEL): Remove.
12396 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
12397 * final.c (shorten_branches): Update alignment of labels before
12398 jump tables if CASE_VECTOR_SHORTEN_MODE.
12399
12400 2013-01-15 Richard Biener <rguenther@suse.de>
12401
12402 PR bootstrap/55961
12403 * system.h: Do not include gmp.h for building host tools.
12404
12405 2013-01-15 Richard Biener <rguenther@suse.de>
12406
12407 PR middle-end/55882
12408 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
12409 account for bitpos when computing alignment.
12410
12411 2013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
12412
12413 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
12414 (ix86_target_macros_internal): Likewise.
12415
12416 * config/i386/i386.c (m_CORE2I7): Removed.
12417 (m_CORE_HASWELL): New macro.
12418 (m_CORE_ALL): Likewise.
12419 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
12420 (initial_ix86_arch_features): Likewise.
12421 (processor_target_table): Initializations for Core avx2.
12422 (cpu_names): New names "core-avx2".
12423 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
12424 PROCESSOR_CORE_HASWELL.
12425 (ix86_issue_rate): New case.
12426 (ia32_multipass_dfa_lookahead): Likewise.
12427 (ix86_sched_init_global): Likewise.
12428
12429 * config/i386/i386.h (TARGET_HASWELL): New macro.
12430 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
12431 (processor_type): New PROCESSOR_HASWELL.
12432
12433 2013-01-15 Jakub Jelinek <jakub@redhat.com>
12434
12435 PR tree-optimization/55955
12436 * tree-vect-loop.c (vectorizable_reduction): Give up early on
12437 *SHIFT_EXPR and *ROTATE_EXPR codes.
12438
12439 PR tree-optimization/48766
12440 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
12441 -ftrapv disable -fwrapv.
12442
12443 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
12444
12445 PR target/55974
12446 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
12447 etc. to 1 and not to __flash.
12448 Use LL suffix for __INT24_MAX__ with -mint8.
12449 Use ULL suffix for __UINT24_MAX__ with -mint8.
12450
12451 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
12452
12453 * config/avr/avr-arch.h
12454 (struct base_arch_s): Use typedef avr_arch_t instead.
12455 (struct arch_info_s): Use typedef avr_arch_info_t instead.
12456 (struct mcu_type_s): Use typedef avr_mcu_t instead.
12457 * config/avr/avr.c: Same.
12458 * config/avr/avr-devices.c: Same.
12459 * config/avr/driver-avr.c: Same.
12460 * config/avr/gen-avr-mmcu-texi.c: Same.
12461 * config/avr/avr-mcus.def: Adjust comment.
12462
12463 2013-01-14 Tejas Belagod <tejas.belagod@arm.com>
12464
12465 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
12466 * config/aarch64/iterators.md (VALLDI): New.
12467
12468 2013-01-14 Uros Bizjak <ubizjak@gmail.com>
12469 Andi Kleen <ak@linux.intel.com>
12470
12471 PR target/55948
12472 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
12473 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
12474 memmodel flag.
12475
12476 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
12477
12478 * config/avr/avr-stdint.h: Remove trailing blanks.
12479 * config/avr/avr-log.h: Same.
12480 * config/avr/avr-arch.h: Same.
12481 * config/avr/avr-devices.c: Same.
12482 * config/avr/avr-dimode.md: Same.
12483 * config/avr/predicates.md: Same.
12484 * config/avr/avr-c.c: Same. And fix typo.
12485
12486 * config/avr/avr-protos.h: Same. And:
12487 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
12488 (init_cumulative_args): Rename to avr_init_cumulative_args.
12489 (expand_prologue): Rename to avr_expand_prologue.
12490 (expand_epilogue): Rename to avr_expand_epilogue.
12491 (adjust_insn_length): Rename to avr_adjust_insn_length.
12492 (notice_update_cc): Rename to avr_notice_update_cc.
12493 (final_prescan_insn): Rename to avr_final_prescan_insn.
12494 * config/avr/avr.c: Same.
12495 * config/avr/avr.h: Same.
12496 * config/avr/avr.md: Remove trailing blanks.
12497 (prologue): Use avr_expand_prologue.
12498 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
12499
12500 2013-01-14 Richard Biener <rguenther@suse.de>
12501
12502 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
12503 verify_location, collect_subblocks): New functions.
12504 (verify_gimple_in_cfg): Verify that locations only reference
12505 BLOCKs in the functions BLOCK tree.
12506
12507 2013-01-14 Richard Biener <rguenther@suse.de>
12508
12509 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
12510 PHI argument.
12511 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
12512 unshare reference.
12513 (insert_out_of_ssa_copy_on_edge): Likewise.
12514 (rewrite_close_phi_out_of_ssa): Likewise.
12515 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
12516 debug expressions.
12517 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
12518 propagated constants.
12519 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
12520 can not be shared.
12521
12522 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
12523
12524 * config/avr/avr-modes.def: Add GPL copyright notice.
12525
12526 2013-01-13 Uros Bizjak <ubizjak@gmail.com>
12527
12528 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
12529 MEMMODEL_MASK to determine memory model.
12530 (atomic_store<mode>): Ditto from operands[2].
12531 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
12532
12533 2013-01-13 Jakub Jelinek <jakub@redhat.com>
12534
12535 PR fortran/55935
12536 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
12537 (fold_gimple_assign): Don't call unshare_expr here.
12538 (fold_ctor_reference): Call unshare_expr.
12539
12540 2013-01-13 Terry Guo <terry.guo@arm.com>
12541
12542 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
12543 * doc/fragments.texi: Document MULTILIB_REUSE.
12544 * gcc.c (multilib_reuse): New internal spec.
12545 (set_multilib_dir): Also search multilib from multilib_reuse.
12546 * genmultilib (tmpmultilib3): Refactor code.
12547 (tmpmultilib4): Ditto.
12548 (multilib_reuse): New multilib argument.
12549
12550 2013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
12551
12552 * Makefile.in: Update copyright.
12553
12554 2013-01-12 Tom de Vries <tom@codesourcery.com>
12555
12556 PR middle-end/55890
12557 * calls.c (expand_call): Check if arg_nr is valid.
12558
12559 2013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
12560
12561 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
12562 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
12563 documentation. Add missing '__' in front of
12564 __builtin_ia32_packssdw256.
12565
12566 2013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12567
12568 PR target/55719
12569 * config/s390/s390.c (s390_preferred_reload_class): Do not return
12570 NO_REGS for larl operands.
12571 (s390_reload_larl_operand): Use s390_load_address instead of
12572 emit_move_insn.
12573
12574 2013-01-11 Richard Biener <rguenther@suse.de>
12575
12576 * tree-cfg.c (verify_node_sharing_1): Split out from ...
12577 (verify_node_sharing): ... here.
12578 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
12579
12580 2013-01-11 Eric Botcazou <ebotcazou@adacore.com>
12581
12582 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
12583 Substitute TREECHECKING.
12584 * configure: Regenerate.
12585 * Makefile.in (TREECHECKING): New.
12586
12587 2013-01-11 Richard Guenther <rguenther@suse.de>
12588
12589 PR tree-optimization/44061
12590 * tree-vrp.c (extract_range_basic): Compute zero as
12591 value-range for __builtin_constant_p of function parameters.
12592
12593 2013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
12594
12595 Update copyright years.
12596
12597 2013-01-10 Vladimir Makarov <vmakarov@redhat.com>
12598
12599 PR rtl-optimization/55672
12600 * lra-eliminations.c (mark_not_eliminable): Permit addition with
12601 const to be eliminable.
12602
12603 2013-01-10 David Edelsohn <dje.gcc@gmail.com>
12604
12605 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
12606 * configure: Regenerate.
12607
12608 2013-01-10 Richard Biener <rguenther@suse.de>
12609
12610 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
12611
12612 2013-01-10 Richard Biener <rguenther@suse.de>
12613
12614 PR bootstrap/55792
12615 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
12616 locations for virtual PHI arguments.
12617 (rewrite_update_phi_arguments): Likewise.
12618
12619 2013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
12620
12621 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
12622 on to assembler.
12623
12624 2013-01-10 Jakub Jelinek <jakub@redhat.com>
12625
12626 PR tree-optimization/55921
12627 * tree-complex.c (expand_complex_asm): New function.
12628 (expand_complex_operations_1): Call it for GIMPLE_ASM.
12629
12630 2013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12631
12632 PR target/55718
12633 * config/s390/s390.c (s390_symref_operand_p)
12634 (s390_loadrelative_operand_p): Merge the two functions.
12635 (s390_check_qrst_address, print_operand_address): Add parameters
12636 to s390_loadrelative_operand_p invokation.
12637 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
12638 (s390_reload_larl_operand, s390_secondary_reload): Use
12639 s390_loadrelative_operand_p instead of s390_symref_operand_p.
12640 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
12641
12642 2013-01-09 Mike Stump <mikestump@comcast.net>
12643
12644 * dse.c (record_store): Remove unnecessary assert.
12645
12646 2013-01-09 Jan Hubicka <jh@suse.cz>
12647
12648 PR tree-optimization/55569
12649 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
12650 * cfgloop.h (scale_loop_profile): Likewise.
12651
12652 2013-01-09 Jan Hubicka <jh@suse.cz>
12653
12654 PR lto/45375
12655 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
12656 functions.
12657 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
12658
12659 2013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
12660
12661 PR middle-end/55114
12662 * expr.h (maybe_emit_group_store): Declare.
12663 * expr.c (maybe_emit_group_store): New function.
12664 * builtins.c (expand_builtin_int_roundingfn): Call it.
12665 (expand_builtin_int_roundingfn_2): Likewise.
12666
12667 2013-01-09 Vladimir Makarov <vmakarov@redhat.com>
12668
12669 PR rtl-optimization/55829
12670 * lra-constraints.c (match_reload): Add code for absent output.
12671 (curr_insn_transform): Add code for reloads of matched inputs
12672 without output.
12673
12674 2013-01-09 Uros Bizjak <ubizjak@gmail.com>
12675
12676 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
12677 attribute of movddup insn to DF.
12678 (*vec_interleave_lowv2df): Ditto.
12679 (vec_dupv2df): Ditto.
12680
12681 2013-01-09 Jan Hubicka <jh@suse.cz>
12682
12683 PR tree-optimiation/55875
12684 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
12685 EVERY_ITERATION parameter.
12686 (number_of_iterations_exit): Check if exit is executed every iteration.
12687 (idx_infer_loop_bounds): Similarly here.
12688 (n_of_executions_at_most): Simplify
12689 to only test for cases where statement is dominated by the
12690 particular bound; handle correctly the "postdominance" test.
12691 (scev_probably_wraps_p): Use max loop iterations info
12692 as a global bound first.
12693
12694 2013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
12695 Nick Clifton <nickc@redhat.com>
12696
12697 * config/v850/v850.md (cbranchsf4): New pattern.
12698 (cstoresf4): New pattern.
12699 (cbranchdf4): New pattern.
12700 (cstoredf4): New pattern.
12701 (movsicc): Disallow floating point comparisons.
12702 (cmpsf_le_insn): Fix order of operators.
12703 (cmpsf_lt_insn): Likewise.
12704 (cmpsf_eq_insn): Likewise.
12705 (cmpdf_le_insn): Likewise.
12706 (cmpdf_lt_insn): Likewise.
12707 (cmpdf_eq_insn): Likewise.
12708 (cmpsf_ge_insn): Use LE comparison.
12709 (cmpdf_ge_insn): Likewise.
12710 (cmpsf_gt_insn): Use LT comparison.
12711 (cmpdf_gt_insn): Likewise.
12712 (cmpsf_ne_insn): Delete pattern.
12713 (cmpdf_ne_insn): Delete pattern.
12714 * config/v850/v850.c (v850_gen_float_compare): Use
12715 gen_cmpdf_eq_insn for NE comparison.
12716 (v850_float_z_comparison_operator)
12717 (v850_float_nz_comparison_operator): Move from here ...
12718 * config/v850/predicates.md: ... to here. Move GT and GE
12719 comparisons into v850_float_z_comparison_operator.
12720 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
12721 Delete prototype.
12722 (v850_float_nz_comparison_operator): Likewise.
12723
12724 2013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12725
12726 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
12727 with calls to gen_insvsi/gen_insvdi.
12728
12729 2013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
12730
12731 * config/i386/i386.c (initial_ix86_tune_features): Set up
12732 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
12733
12734 2013-01-09 Steven Bosscher <steven@gcc.gnu.org>
12735 Jakub Jelinek <jakub@redhat.com>
12736
12737 PR tree-optimization/48189
12738 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
12739 If nitercst is 0, don't predict the exit edge.
12740
12741 2013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
12742
12743 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
12744 in asm_fprintf with reg_names.
12745 (aarch64_print_operand_address): Likewise.
12746 (aarch64_return_addr): Likewise.
12747 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
12748
12749 2013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12750
12751 * config/pa/pa.h (VAL_U6_BITS_P): Define.
12752 (INT_U6_BITS): Likewise.
12753 * config/pa/predicates.md (uint6_operand): New predicate.
12754 (shift5_operand, shift6_operand): Likewise.
12755 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
12756 arith32_operand.
12757 (lshrdi3): Use shift6_operand.
12758 (shrpsi4, shrpdi4): New insn patterns.
12759 (extzv): Delete expander.
12760 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
12761 predicates in unamed zero extract patterns. Tighten common constraint.
12762 (extv): Delete expander.
12763 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
12764 predicates in unamed sign extract patterns. Tighten common constraint.
12765 (insv): Delete expander.
12766 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
12767 predicates in unamed insert patterns. Tighten common constraint.
12768 Change uint32_operand predicate to uint6_operand predicate in unamed
12769 DImode pattern to insert constant values of type 1...1xxxx.
12770
12771 2013-01-04 Jan Hubicka <jh@suse.cz>
12772
12773 PR tree-optimization/55823
12774 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
12775 issue.
12776
12777 2013-01-08 Jakub Jelinek <jakub@redhat.com>
12778 Uros Bizjak <ubizjak@gmail.com>
12779
12780 PR rtl-optimization/55845
12781 * df-problems.c (can_move_insns_across): Stop scanning at
12782 volatile_insn_p source instruction or give up if
12783 across_from .. across_to range contains any volatile_insn_p
12784 instructions.
12785
12786 2013-01-08 Tejas Belagod <tejas.belagod@arm.com>
12787
12788 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
12789 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
12790 Declare.
12791 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
12792 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
12793
12794 2013-01-08 Jakub Jelinek <jakub@redhat.com>
12795
12796 PR fortran/55341
12797 * asan.c (asan_clear_shadow): New function.
12798 (asan_emit_stack_protection): Use it.
12799
12800 2013-01-08 Tejas Belagod <tejas.belagod@arm.com>
12801
12802 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
12803 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
12804 with tab instead of space.
12805
12806 2013-01-08 Nick Clifton <nickc@redhat.com>
12807
12808 * config/rl78/rl78.c (rl78_expand_prologue): Always select
12809 register bank 0 at the start of an interrupt handler.
12810 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
12811 MDBH registers.
12812
12813 2013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
12814
12815 * config/aarch64/aarch64-simd.md
12816 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
12817 (aarch64_simd_bsl): Likewise.
12818 (aarch64_vcond_internal<mode>): Likewise.
12819 (vcond<mode><mode>): Likewise.
12820 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
12821 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
12822
12823 2013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
12824
12825 * config/aarch64/aarch64-builtins.c
12826 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
12827
12828 2013-01-08 Martin Jambor <mjambor@suse.cz>
12829
12830 PR debug/55579
12831 * tree-sra.c (analyze_access_subtree): Return true also after
12832 potentially creating a debug-only replacement.
12833
12834 2013-01-08 Jakub Jelinek <jakub@redhat.com>
12835
12836 PR middle-end/55890
12837 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
12838
12839 PR tree-optimization/54120
12840 * tree-vrp.c (range_fits_type_p): Don't allow
12841 src_precision < precision from signed vr to unsigned_p
12842 if vr->min or vr->max is negative.
12843 (simplify_float_conversion_using_ranges): Test can_float_p
12844 against CODE_FOR_nothing.
12845
12846 2013-01-08 Jakub Jelinek <jakub@redhat.com>
12847 Richard Biener <rguenther@suse.de>
12848
12849 PR middle-end/55851
12850 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
12851 types instead of just INTEGER_TYPE types.
12852
12853 2013-01-07 Mark Kettenis <kettenis@openbsd.org>
12854
12855 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
12856 TF_SIZE): Define.
12857
12858 2013-01-07 Steve Ellcey <sellcey@mips.com>
12859
12860 PR target/42661
12861 * config/mips/mips.opt: Change mad to mmad to match documentation.
12862
12863 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
12864
12865 PR target/55897
12866 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
12867 .progmemx.data now.
12868
12869 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
12870
12871 PR target/55897
12872 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
12873 (avr_addrspace_t): Add .section_name field.
12874 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
12875 array size.
12876 (avr_addrspace): Same. Initialize .section_name. Remove last
12877 NULL entry. Put __memx into .progmemx.data.
12878 (progmem_section_prefix): Remove.
12879 (avr_asm_init_sections): No need to initialize progmem_section.
12880 (avr_asm_named_section): Use avr_addrspace[].section_name to get
12881 section name prefix.
12882 (avr_asm_select_section): Ditto. And use get_unnamed_section to
12883 retrieve the progmem section.
12884 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
12885 boundary to run over avr_addrspace[].
12886 (avr_register_target_pragmas): Ditto.
12887
12888 2013-01-06 Jakub Jelinek <jakub@redhat.com>
12889
12890 * varasm.c (output_constant_def_contents): For asan_protect_global
12891 protected strings, adjust DECL_ALIGN if needed, before testing for
12892 anchored symbols.
12893 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
12894 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
12895 normal decls.
12896 (output_object_block): For asan protected decls, emit asan padding
12897 after their contents.
12898 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
12899 (asan_finish_file): Test it here instead.
12900
12901 2013-01-07 Nick Clifton <nickc@redhat.com>
12902 Matthias Klose <doko@debian.org>
12903 Doug Kwan <dougkwan@google.com>
12904 H.J. Lu <hongjiu.lu@intel.com>
12905
12906 PR driver/55470
12907 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
12908
12909 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
12910
12911 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
12912
12913 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
12914
12915 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
12916
12917 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
12918
12919 PR target/54461
12920 * doc/install.texi (Cross-Compiler-Specific Options): Document
12921 --with-avrlibc.
12922
12923 2013-01-07 Tejas Belagod <tejas.belagod@arm.com>
12924
12925 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
12926 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
12927 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
12928 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
12929 vqmovun_high_s64): Fix source operand number and update copyright.
12930
12931 2013-01-07 Richard Biener <rguenther@suse.de>
12932
12933 PR middle-end/55890
12934 * gimple.h (gimple_call_builtin_p): New overload.
12935 * gimple.c (validate_call): New function.
12936 (gimple_call_builtin_p): Likewise.
12937 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
12938 Use gimple_call_builtin_p.
12939 (find_func_clobbers): Likewise.
12940 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
12941 (strlen_optimize_stmt): Likewise.
12942
12943 2013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
12944
12945 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
12946 (vld1q_dup_*): Likewise.
12947 (vld1_*): Likewise.
12948 (vld1q_*): Likewise.
12949 (vld1_lane_*): Likewise.
12950 (vld1q_lane_*): Likewise.
12951
12952 2013-01-07 Richard Biener <rguenther@suse.de>
12953
12954 * lto-streamer.h (LTO_minor_version): Bump to 2.
12955
12956 2013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
12957
12958 * config/aarch64/aarch64-protos.h
12959 (aarch64_const_double_zero_rtx_p): Rename to...
12960 (aarch64_float_const_zero_rtx_p): ...this.
12961 (aarch64_float_const_representable_p): New.
12962 (aarch64_output_simd_mov_immediate): Likewise.
12963 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
12964 move immediate case.
12965 * config/aarch64/aarch64.c
12966 (aarch64_const_double_zero_rtx_p): Rename to...
12967 (aarch64_float_const_zero_rtx_p): ...this.
12968 (aarch64_print_operand): Allow printing of new constants.
12969 (aarch64_valid_floating_const): New.
12970 (aarch64_legitimate_constant_p): Check for valid floating-point
12971 constants.
12972 (aarch64_simd_valid_immediate): Likewise.
12973 (aarch64_vect_float_const_representable_p): New.
12974 (aarch64_float_const_representable_p): Likewise.
12975 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
12976 (aarch64_output_simd_mov_immediate): New.
12977 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
12978 (*movdf_aarch64): Likewise.
12979 * config/aarch64/constraints.md (Ufc): New.
12980 (Y): call aarch64_float_const_zero_rtx.
12981 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
12982
12983 2013-01-07 Richard Biener <rguenther@suse.de>
12984
12985 PR tree-optimization/55888
12986 PR tree-optimization/55862
12987 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
12988 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
12989 not if it is contained therein.
12990
12991 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
12992
12993 * config/avr/t-avr: Typo.
12994
12995 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
12996
12997 PR55243
12998 * config/avr/t-avr: Don't automatically rebuild
12999 $(srcdir)/config/avr/t-multilib
13000 $(srcdir)/config/avr/avr-tables.opt
13001 $(srcdir)/doc/avr-mmcu.texi
13002 (avr-mcus): New phony target to build them on request.
13003 (s-avr-mlib, s-avr-mmcu-texi): Remove.
13004 * avr/avr-mcus.def: Adjust comments.
13005
13006 2013-01-07 Uros Bizjak <ubizjak@gmail.com>
13007
13008 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
13009
13010 2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
13011
13012 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
13013
13014 2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
13015
13016 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
13017
13018 2013-01-05 David Edelsohn <dje.gcc@gmail.com>
13019
13020 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
13021 to generate profiling.
13022 * config/rs6000/aix64.h (LIB_SPEC): Same.
13023
13024 2013-01-04 Andrew Pinski <apinski@cavium.com>
13025
13026 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
13027 New function.
13028 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
13029
13030 2013-01-04 Uros Bizjak <ubizjak@gmail.com>
13031
13032 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
13033 unconditionally.
13034 (ix86_expand_move): Ditto.
13035 (ix86_zero_extend_to_Pmode): Ditto.
13036 (ix86_expand_call): Ditto.
13037 (ix86_expand_special_args_builtin): Ditto.
13038 (ix86_expand_builtin): Ditto.
13039
13040 2013-01-04 Richard Biener <rguenther@suse.de>
13041
13042 PR tree-optimization/55862
13043 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
13044 translating them through PHI nodes.
13045
13046 2013-01-04 Martin Jambor <mjambor@suse.cz>
13047
13048 PR tree-optimization/55755
13049 * tree-sra.c (sra_modify_assign): Do not check that an access has no
13050 children when trying to avoid producing a VIEW_CONVERT_EXPR.
13051
13052 2013-01-04 Marek Polacek <polacek@redhat.com>
13053
13054 PR middle-end/55859
13055 * opts.c (default_options_optimization): Clarify error message.
13056
13057 2013-01-04 Richard Biener <rguenther@suse.de>
13058
13059 PR middle-end/55863
13060 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
13061 reassociation.
13062
13063 2013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13064
13065 PR target/53789
13066 * config/pa/pa.md (movsi): Revert previous change.
13067 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
13068 references.
13069
13070 2013-01-03 Richard Henderson <rth@redhat.com>
13071
13072 * config/i386/i386.c (ix86_expand_move): Always assign to op1
13073 after eliminating TLS symbols.
13074
13075 2013-01-03 Marc Glisse <marc.glisse@inria.fr>
13076
13077 PR bootstrap/50167
13078 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
13079 * graphite-poly.c (debug_gmp_value): Likewise.
13080
13081 2013-01-03 Uros Bizjak <ubizjak@gmail.com>
13082
13083 PR target/55712
13084 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
13085 selected code model, define __code_mode_small__, __code_model_medium__,
13086 __code_model_large__, __code_model_32__ or __code_model_kernel__.
13087 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
13088 xchg temporary register with %k. Declare temporary register as
13089 early clobbered.
13090 [__x86_64__]: For medium and large code models, preserve %rbx register.
13091
13092 2013-01-03 Richard Biener <rguenther@suse.de>
13093
13094 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
13095 (dump_subscript): Adjust.
13096 (finalize_ddr_dependent): Do not dump redundant info.
13097 (analyze_siv_subscript): Adjust.
13098 (subscript_dependence_tester): Likewise.
13099 (compute_affine_dependence): Likewise.
13100
13101 2013-01-03 Richard Biener <rguenther@suse.de>
13102
13103 Revert
13104 2013-01-03 Richard Biener <rguenther@suse.de>
13105
13106 PR tree-optimization/55857
13107 * tree-vect-stmts.c (vectorizable_load): Do not setup
13108 re-alignment for invariant loads.
13109
13110 2013-01-02 Richard Biener <rguenther@suse.de>
13111
13112 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
13113 invariant load do not generate a vector load from the scalar location.
13114
13115 2013-01-03 Richard Biener <rguenther@suse.de>
13116
13117 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
13118 for not vectorizing.
13119 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
13120 not build INDIRECT_REFs, call get_name once only.
13121 (vect_create_data_ref_ptr): Likewise. Dump base object kind
13122 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
13123
13124 2013-01-03 Richard Biener <rguenther@suse.de>
13125
13126 PR tree-optimization/55857
13127 * tree-vect-stmts.c (vectorizable_load): Do not setup
13128 re-alignment for invariant loads.
13129
13130 2013-01-03 Richard Biener <rguenther@suse.de>
13131
13132 PR lto/55848
13133 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
13134 prefer a built-in decl.
13135
13136 2013-01-03 Jakub Jelinek <jakub@redhat.com>
13137
13138 * gcc.c (process_command): Update copyright notice dates.
13139 * gcov.c (print_version): Likewise.
13140 * gcov-dump.c (print_version): Likewise.
13141
13142 PR rtl-optimization/55838
13143 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
13144 iv0.step, iv1.step and step.
13145
13146 2013-01-03 Jakub Jelinek <jakub@redhat.com>
13147 Marc Glisse <marc.glisse@inria.fr>
13148
13149 PR tree-optimization/55832
13150 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
13151 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
13152 integer_{one,zero}_node.
13153
13154 2013-01-03 Jakub Jelinek <jakub@redhat.com>
13155
13156 PR debug/54402
13157 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
13158 * var-tracking.c (reverse_op): Don't add reverse ops to
13159 VALUEs that have already
13160 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
13161
13162 2013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
13163
13164 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
13165
13166 2013-01-02 Teresa Johnson <tejohnson@google.com>
13167
13168 * dumpfile.c (dump_loc): Print filename with location.
13169 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
13170 new location_t parameter to emit complete unroll message with
13171 new dump framework.
13172 (canonicalize_loop_induction_variables): Compute loops location
13173 and pass to try_unroll_loop_completely.
13174 * loop-unroll.c (report_unroll_peel): New function.
13175 (peel_loops_completely): Use new dump format with location
13176 for main dumpfile message, and invoke report_unroll_peel on success.
13177 (decide_unrolling_and_peeling): Ditto.
13178 (decide_peel_once_rolling): Remove old dumpfile message subsumed
13179 by report_unroll_peel.
13180 (decide_peel_completely): Ditto.
13181 (decide_unroll_constant_iterations): Ditto.
13182 (decide_unroll_runtime_iterations): Ditto.
13183 (decide_peel_simple): Ditto.
13184 (decide_unroll_stupid): Ditto.
13185 * cfgloop.c (get_loop_location): New function.
13186 * cfgloop.h (get_loop_location): Declare.
13187
13188 2013-01-02 Sriraman Tallam <tmsriram@google.com>
13189
13190 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
13191 NULL.
13192
13193 2013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13194
13195 PR middle-end/55198
13196 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
13197 BLKmode objects when EXPAND_MEMORY is specified.
13198
13199 2013-01-02 Sriraman Tallam <tmsriram@google.com>
13200
13201 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
13202 in loop predicate.
13203 (fold_builtin_cpu): Do not share cpu model decls across statements.
13204
13205 2013-01-02 Jason Merrill <jason@redhat.com>
13206
13207 PR c++/55804
13208 * tree.c (build_array_type_1): Revert earlier change.
13209
13210 2013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
13211
13212 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
13213 "cortex-a57".
13214 * config/aarch64/aarch64-tune.md: Re-generate.
13215
13216 2013-01-02 Richard Biener <rguenther@suse.de>
13217
13218 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
13219 invariant load do not generate a vector load from the scalar location.
13220
13221 2013-01-02 Richard Biener <rguenther@suse.de>
13222
13223 PR bootstrap/55784
13224 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
13225 * configure: Regenerate.
13226
13227 2013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
13228
13229 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
13230 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
13231 (expand_builtin_int_roundingfn_2): Keep the original target around
13232 for the fallback case.
13233
13234 2013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
13235
13236 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
13237 to be clear for sign changes.
13238
13239 2013-01-01 Jan Hubicka <jh@suse.cz>
13240
13241 * ipa-inline-analysis.c: Fix formatting.
13242
13243 2013-01-01 Jakub Jelinek <jakub@redhat.com>
13244
13245 PR tree-optimization/55831
13246 * tree-vect-loop.c (get_initial_def_for_induction): Use
13247 gsi_after_labels instead of gsi_start_bb.
13248 \f
13249 Copyright (C) 2013 Free Software Foundation, Inc.
13250
13251 Copying and distribution of this file, with or without modification,
13252 are permitted in any medium without royalty provided the copyright
13253 notice and this notice are preserved.
This page took 0.626816 seconds and 5 git commands to generate.