
2013-06-22 Sriraman Tallam <tmsriram@google.com> * common/config/i386/i386-common.c: Handle LZCNT. From-SVN: r200347
13318 lines
480 KiB
Text
13318 lines
480 KiB
Text
2013-06-22 Sriraman Tallam <tmsriram@google.com>
|
||
|
||
* common/config/i386/i386-common.c: Handle LZCNT.
|
||
|
||
2013-06-22 Andi Kleen <ak@linux.intel.com>
|
||
|
||
* doc/extend.texi: Use __atomic_store_n instead of
|
||
__atomic_store in HLE example.
|
||
|
||
2013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
* config/sh/sh.c: Remove <cstdlib> workaround.
|
||
|
||
2013-06-21 Andi Kleen <ak@linux.intel.com>
|
||
|
||
* doc/extend.texi: Dont use __atomic_clear in HLE
|
||
example. Fix typo.
|
||
|
||
2013-06-21 Andi Kleen <ak@linux.intel.com>
|
||
|
||
* doc/extend.texi: Document that __atomic_clear and
|
||
__atomic_test_and_set should only be used with bool.
|
||
|
||
2013-06-20 Jan Hubicka <jh@suse.cz>
|
||
|
||
* gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
|
||
types_same_for_odr.
|
||
* tree.c (decls_same_for_odr): New function.
|
||
(same_for_edr): New function.
|
||
(types_same_for_odr): New function.
|
||
(get_binfo_at_offset): Use it.
|
||
* tree.h (types_same_for_odr): Declare.
|
||
|
||
2013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
|
||
Jason Merrill <jason@redhat.com>
|
||
|
||
* system.h: Include <cstdlib> as well as <stdlib.h>.
|
||
|
||
2013-06-20 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/57655
|
||
* config/i386/i386.c (construct_container): Report error if
|
||
long double is used with disabled x87 float returns.
|
||
|
||
2013-06-20 Jan Hubicka <jh@suse.cz>
|
||
|
||
* lto-cgraph.c (input_symtab): Do not set cgraph state.
|
||
|
||
2013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
PR rtl-optimization/57425
|
||
PR rtl-optimization/57569
|
||
* alias.c (write_dependence_p): Remove parameters mem_mode and
|
||
canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
|
||
Changed all callers.
|
||
(canon_anti_dependence): Get comments and semantics in sync.
|
||
Add parameter mem_canonicalized. Changed all callers.
|
||
* rtl.h (canon_anti_dependence): Update prototype.
|
||
|
||
2013-06-20 Richard Biener <rguenther@suse.de>
|
||
|
||
* data-streamer-in.c (streamer_read_uhwi): Optimize single
|
||
byte case, inline streamer_read_uchar and defer section
|
||
overrun check.
|
||
|
||
2013-06-20 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/57584
|
||
* tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
|
||
SSA names into the expanded expression that take part in
|
||
abnormal coalescing.
|
||
|
||
2013-06-19 <singhai@google.com>
|
||
|
||
* gcov.c (print_usage): Handle new option.
|
||
(process_args): Ditto.
|
||
(get_gcov_intermediate_filename): New function.
|
||
(output_intermediate_file): New function.
|
||
(output_gcov_file): New function
|
||
(generate_results): Handle new option.
|
||
(release_function): Relase demangled name.
|
||
(read_graph_file): Handle demangled name.
|
||
(output_lines): Ditto.
|
||
* doc/gcov.texi: Document gcov intermediate format.
|
||
|
||
2013-06-19 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR bootstrap/57604
|
||
* lra.c (emit_add3_insn, emit_add2_insn): New functions.
|
||
(lra_emit_add): Use the functions. Add comment about Y as an
|
||
address segment.
|
||
|
||
2013-06-19 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
PR driver/57652
|
||
* collect2.c (collect_atexit): New.
|
||
(collect_exit): Delete.
|
||
(main): Register collect_atexit with atexit.
|
||
(collect_wait): Change collect_exit to exit.
|
||
(do_wait): Same.
|
||
* collect2.h (collect_exit): Delete.
|
||
* tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
|
||
|
||
2013-06-19 Wei Mi <wmi@google.com>
|
||
|
||
PR rtl-optimization/57518
|
||
* ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
|
||
if regno is used in paradoxical subreg.
|
||
(update_equiv_regs): Check pdx_subregs[regno] before
|
||
set a reg to be equivalent with a mem.
|
||
|
||
2013-06-19 Matthias Klose <doko@ubuntu.com>
|
||
|
||
PR driver/57651
|
||
* file-find.h (find_a_file): Add a mode parameter.
|
||
* file-find.c (find_a_file): Likewise.
|
||
* gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
|
||
with X_OK for the executables.
|
||
* collect2.c (main): Call find_a_file with X_OK.
|
||
|
||
2013-06-19 Steve Ellcey <sellcey@mips.com>
|
||
|
||
PR target/56942
|
||
* config/mips/mips.md (casesi_internal_mips16_<mode>):
|
||
Use NEXT_INSN instead of next_real_insn.
|
||
|
||
2013-06-19 Jan Hubicka <jh@suse.cz>
|
||
|
||
* cgraph.h (const_value_known_p): Replace by ...
|
||
(ctor_for_folding): .. this one.
|
||
* cgraphunit.c (process_function_and_variable_attributes): Use it.
|
||
* lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
|
||
* expr.c (expand_expr_real_1): Likewise.
|
||
(string_constant): Likewise.
|
||
* tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
|
||
* ipa.c (process_references): Likewise.
|
||
(symtab_remove_unreachable_nodes): Likewise.
|
||
* ipa-inline-analysis.c (param_change_prob): Likewise.
|
||
* gimple-fold.c (canonicalize_constructor_val): Likewise.
|
||
(get_base_constructor): Likwise.
|
||
* varpool.c (varpool_remove_node): Likewise.
|
||
(varpool_remove_initializer): LIkewise.
|
||
(dump_varpool_node): LIkwise.
|
||
(const_value_known_p): Rewrite to ...
|
||
(ctor_for_folding): ... this one.
|
||
|
||
2013-06-19 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR driver/57651
|
||
* gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
|
||
PERSONALITY in $PATH derived prefixes.
|
||
|
||
2013-06-19 Jeff Law <law@redhat.com>
|
||
|
||
* tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
|
||
in comment.
|
||
|
||
* tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
|
||
(simplify_bitwise_binary): Use it to simpify certain binary ops on
|
||
booleans.
|
||
|
||
2013-06-19 Sofiane Naci <sofiane.naci@arm.com>
|
||
|
||
* config/arm/vfp.md: Move VFP instruction classification documentation
|
||
to ...
|
||
* config/arm/arm.md: ... here. Update instruction classification
|
||
documentation.
|
||
|
||
2013-06-19 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
|
||
(peepholes for eq(reg, not-0)): Ensure condition register is dead after
|
||
pattern. Use more efficient sequences on ARMv5 and Thumb2.
|
||
|
||
2013-06-19 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
PR target/57609
|
||
* config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
|
||
with NEXT_INSN. Use tablejump_p to check for jump table data
|
||
insns.
|
||
|
||
2013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/56544
|
||
* doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
|
||
that now in C++ the value is correct per the C++ standards.
|
||
|
||
2013-06-19 Richard Biener <rguenther@suse.de>
|
||
|
||
* expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
|
||
for global context.
|
||
|
||
2013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
Revert:
|
||
2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
PR target/57609
|
||
* config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
|
||
with next_active_insn.
|
||
|
||
2013-06-18 Sriraman Tallam <tmsriram@google.com>
|
||
|
||
* ipa-inline.c (inline_always_inline_functions): Pretend always_inline
|
||
functions are inlined during failures to flag an error.
|
||
* tree-inline.c (expand_call_inline): Allow the error to be flagged
|
||
in early inline pass.
|
||
|
||
2013-06-18 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* config/i386/i386.c (initial_ix86_tune_features): Fix a typo
|
||
in comments.
|
||
|
||
2013-06-18 Julian Brown <julian@codesourcery.com>
|
||
|
||
* config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
|
||
Permit virtual register pre-reload if !strict.
|
||
(coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
|
||
change.
|
||
* config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
|
||
prototype.
|
||
* config/arm/neon.md (movmisalign<mode>): Use
|
||
neon_perm_struct_or_reg_operand instead of
|
||
neon_struct_or_register_operand.
|
||
(*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
|
||
neon_permissive_struct_operand instead of neon_struct_operand.
|
||
* config/arm/constraints.md (Un, Um, Us): Adjust calls to
|
||
neon_vector_mem_operand.
|
||
* config/arm/predicates.md (neon_struct_operand): Adjust call to
|
||
neon_vector_mem_operand.
|
||
(neon_permissive_struct_operand): New.
|
||
(neon_struct_or_register_operand): Rename to...
|
||
(neon_perm_struct_or_reg_operand): This. Adjust call to
|
||
neon_vector_mem_operand.
|
||
|
||
2013-06-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
|
||
* lto-streamer.h: Include pointer-set.h.
|
||
(struct lto_decl_slot): Remove.
|
||
(struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
|
||
Remove next_index entry.
|
||
(lto_hash_decl_slot_node, lto_eq_decl_slot_node,
|
||
lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
|
||
(lto_init_tree_ref_encoder): Adjust.
|
||
(lto_destroy_tree_ref_encoder): Likewise.
|
||
* lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
|
||
lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
|
||
(lto_output_decl_index): Adjust.
|
||
(lto_new_out_decl_state): Likewise.
|
||
(lto_record_function_out_decl_state): Likewise.
|
||
* lto-streamer-out.c (copy_function): Likewise.
|
||
|
||
2013-06-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
|
||
* cgraphunit.c: Include cfgloop.h.
|
||
(init_lowered_empty_function): Initialize the loop tree.
|
||
(assemble_thunk): Insert new BBs into loops.
|
||
|
||
2013-06-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
|
||
* tree-streamer.c (streamer_tree_cache_create): Make maintaining
|
||
the map from cache entry to cache index optional.
|
||
(streamer_tree_cache_replace_tree): Adjust accordingly.
|
||
(streamer_tree_cache_append): Likewise.
|
||
(streamer_tree_cache_delete): Likewise.
|
||
* lto-streamer-in.c (lto_data_in_create): Do not maintain the
|
||
streamer cache map from cache entry to cache index.
|
||
* lto-streamer-out.c (create_output_block): Adjust.
|
||
|
||
2013-06-18 Sofiane Naci <sofiane.naci@arm.com>
|
||
|
||
* config/arm/arm.md (attribute "insn"): Move multiplication and
|
||
division attributes to...
|
||
(attribute "type"): ... here. Remove mult.
|
||
(attribute "mul32"): New attribute.
|
||
(attribute "mul64"): Add umaal.
|
||
(*arm_mulsi3): Update attributes.
|
||
(*arm_mulsi3_v6): Likewise.
|
||
(*thumb_mulsi3): Likewise.
|
||
(*thumb_mulsi3_v6): Likewise.
|
||
(*mulsi3_compare0): Likewise.
|
||
(*mulsi3_compare0_v6): Likewise.
|
||
(*mulsi_compare0_scratch): Likewise.
|
||
(*mulsi_compare0_scratch_v6): Likewise.
|
||
(*mulsi3addsi): Likewise.
|
||
(*mulsi3addsi_v6): Likewise.
|
||
(*mulsi3addsi_compare0): Likewise.
|
||
(*mulsi3addsi_compare0_v6): Likewise.
|
||
(*mulsi3addsi_compare0_scratch): Likewise.
|
||
(*mulsi3addsi_compare0_scratch_v6): Likewise.
|
||
(*mulsi3subsi): Likewise.
|
||
(*mulsidi3adddi): Likewise.
|
||
(*mulsi3addsi_v6): Likewise.
|
||
(*mulsidi3adddi_v6): Likewise.
|
||
(*mulsidi3_nov6): Likewise.
|
||
(*mulsidi3_v6): Likewise.
|
||
(*umulsidi3_nov6): Likewise.
|
||
(*umulsidi3_v6): Likewise.
|
||
(*umulsidi3adddi): Likewise.
|
||
(*umulsidi3adddi_v6): Likewise.
|
||
(*smulsi3_highpart_nov6): Likewise.
|
||
(*smulsi3_highpart_v6): Likewise.
|
||
(*umulsi3_highpart_nov6): Likewise.
|
||
(*umulsi3_highpart_v6): Likewise.
|
||
(mulhisi3): Likewise.
|
||
(*mulhisi3tb): Likewise.
|
||
(*mulhisi3bt): Likewise.
|
||
(*mulhisi3tt): Likewise.
|
||
(maddhisi4): Likewise.
|
||
(*maddhisi4tb): Likewise.
|
||
(*maddhisi4tt): Likewise.
|
||
(maddhidi4): Likewise.
|
||
(*maddhidi4tb): Likewise.
|
||
(*maddhidi4tt): Likewise.
|
||
(divsi3): Likewise.
|
||
(udivsi3): Likewise.
|
||
* config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
|
||
(thumb2_mulsi_short_compare0): Likewise.
|
||
(thumb2_mulsi_short_compare0_scratch): Likewise.
|
||
* config/arm/arm1020e.md (1020mult1): Update attribute change.
|
||
(1020mult2): Likewise.
|
||
(1020mult3): Likewise.
|
||
(1020mult4): Likewise.
|
||
(1020mult5): Likewise.
|
||
(1020mult6): Likewise.
|
||
* config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
|
||
change.
|
||
(cortex_a15_mult64): Likewise.
|
||
(cortex_a15_sdiv): Likewise.
|
||
(cortex_a15_udiv): Likewise.
|
||
* config/arm/arm1026ejs.md (mult1): Update attribute change.
|
||
(mult2): Likewise.
|
||
(mult3): Likewise.
|
||
(mult4): Likewise.
|
||
(mult5): Likewise.
|
||
(mult6): Likewise.
|
||
* config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
|
||
(pj4_ir_div): Likewise.
|
||
* config/arm/arm1136jfs.md (11_mult1): Update attribute change.
|
||
(11_mult2): Likewise.
|
||
(11_mult3): Likewise.
|
||
(11_mult4): Likewise.
|
||
(11_mult5): Likewise.
|
||
(11_mult6): Likewise.
|
||
(11_mult7): Likewise.
|
||
* config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
|
||
(cortex_a8_mla): Likewise.
|
||
(cortex_a8_mull): Likewise.
|
||
(cortex_a8_smulwy): Likewise.
|
||
(cortex_a8_smlald): Likewise.
|
||
* config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
|
||
* config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
|
||
(cortex_r4_mul_3): Likewise.
|
||
(cortex_r4_mla_4): Likewise.
|
||
(cortex_r4_mla_3): Likewise.
|
||
(cortex_r4_smlald): Likewise.
|
||
(cortex_r4_mull): Likewise.
|
||
(cortex_r4_sdiv): Likewise.
|
||
(cortex_r4_udiv): Likewise.
|
||
* config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
|
||
(cortex_a7_idiv): Likewise.
|
||
* config/arm/arm926ejs.md (9_mult1): Update attribute change.
|
||
(9_mult2): Likewise.
|
||
(9_mult3): Likewise.
|
||
(9_mult4): Likewise.
|
||
(9_mult5): Likewise.
|
||
(9_mult6): Likewise.
|
||
* config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
|
||
(cortex_a53_sdiv): Likewise.
|
||
(cortex_a53_udiv): Likewise.
|
||
* config/arm/fa726te.md (726te_mult_op): Update attribute change.
|
||
* config/arm/fmp626.md (mp626_mult1): Update attribute change.
|
||
(mp626_mult2): Likewise.
|
||
(mp626_mult3): Likewise.
|
||
(mp626_mult4): Likewise.
|
||
* config/arm/fa526.md (526_mult1): Update attribute change.
|
||
(526_mult2): Likewise.
|
||
* config/arm/arm-generic.md (mult): Update attribute change.
|
||
(mult_ldsched_strongarm): Likewise.
|
||
(mult_ldsched): Likewise.
|
||
(multi_cycle): Likewise.
|
||
* config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
|
||
* config/arm/fa606te.md (606te_mult1): Update attribute change.
|
||
(606te_mult2): Likewise.
|
||
(606te_mult3): Likewise.
|
||
(606te_mult4): Likewise.
|
||
* config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
|
||
(cortex_a9_mac16): Likewise.
|
||
(cortex_a9_multiply): Likewise.
|
||
(cortex_a9_mac): Likewise.
|
||
(cortex_a9_multiply_long): Likewise.
|
||
* config/arm/fa626te.md (626te_mult1): Update attribute change.
|
||
(626te_mult2): Likewise.
|
||
(626te_mult3): Likewise.
|
||
(626te_mult4): Likewise.
|
||
|
||
2013-06-18 Richard Biener <rguenther@suse.de>
|
||
|
||
PR lto/57334
|
||
* lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
|
||
|
||
2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
PR target/57609
|
||
* config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
|
||
with next_active_insn.
|
||
|
||
2013-06-18 Alan Modra <amodra@gmail.com>
|
||
|
||
* config/rs6000/rs6000.h (enum data_align): New.
|
||
(LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
|
||
(DATA_ABI_ALIGNMENT): Define.
|
||
(CONSTANT_ALIGNMENT): Correct comment.
|
||
* config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
|
||
* config/rs6000/rs6000.c (rs6000_data_alignment): New function.
|
||
|
||
2013-06-17 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
|
||
ATTRIBUTE_UNUSED marking.
|
||
|
||
2013-06-17 Sofiane Naci <sofiane.naci@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
|
||
alternative and update.
|
||
(aarch64_dup_lanedi): Delete.
|
||
* config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
|
||
* config/aarch64/aarch64-simd-builtins.def: Update.
|
||
|
||
2013-06-17 Richard Biener <rguenther@suse.de>
|
||
|
||
* lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
|
||
(lto_input_scc): Declare.
|
||
(lto_input_tree_1): Likewise.
|
||
(struct lto_stats_d): Add num_tree_bodies_output and
|
||
num_pickle_refs_output.
|
||
* lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
|
||
(lto_read_tree_1): Split out from ...
|
||
(lto_read_tree): ... this.
|
||
(lto_input_scc): New function.
|
||
(lto_input_tree_1): Split out from ...
|
||
(lto_input_tree): ... this. Handle LTO_tree_scc.
|
||
(lto_data_in_create): Create the streamer cache without hashes.
|
||
* lto-streamer-out.c (create_output_block): Create the streamer
|
||
cache with hashes when not doing WPA.
|
||
(lto_write_tree_1): Split out from ...
|
||
(lto_write_tree): ... this.
|
||
(get_symbol_initial_value): New function.
|
||
(lto_output_tree_1): Split out from ...
|
||
(lto_output_tree): ... this. Write trees as series of SCCs
|
||
using a DFS walk via DFS_write_tree.
|
||
(struct sccs, struct scc_entry): New types.
|
||
(next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
|
||
(DFS_write_tree_body): New function.
|
||
(DFS_write_tree): Likewise.
|
||
(hash_tree): Likewise.
|
||
(scc_entry_compare): Likewise.
|
||
(hash_scc): Likewise.
|
||
(tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
|
||
* tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
|
||
TREE_CHAIN as regular reference.
|
||
(streamer_read_integer_cst): Remove.
|
||
(streamer_get_pickled_tree): Adjust.
|
||
* tree-streamer-out.c (streamer_write_chain): Disable streaming
|
||
of DECL_EXTERNALs in BLOCK_VARS for now.
|
||
(write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
|
||
reference.
|
||
* tree-streamer.c (streamer_tree_cache_add_to_node_array):
|
||
Add hash value argument and record that if hashes are recorded
|
||
in the cache.
|
||
(streamer_tree_cache_insert_1): Adjust.
|
||
(streamer_tree_cache_insert): Likewise.
|
||
(streamer_tree_cache_insert_at): Rename to ...
|
||
(streamer_tree_cache_replace_tree): ... this and adjust.
|
||
(streamer_tree_cache_append): Adjust.
|
||
(record_common_node): Likewise.
|
||
(streamer_tree_cache_create): Add argument whether to
|
||
record hash values together with trees.
|
||
(streamer_tree_cache_delete): Adjust.
|
||
* tree-streamer.h (struct streamer_tree_cache_d): Add
|
||
vector of hashes.
|
||
(streamer_read_integer_cst): Remove.
|
||
(streamer_tree_cache_insert): Adjust.
|
||
(streamer_tree_cache_append): Likewise.
|
||
(streamer_tree_cache_insert_at): Rename to ...
|
||
(streamer_tree_cache_replace_tree): ... this and adjust.
|
||
(streamer_tree_cache_create): Add argument whether to record hashes.
|
||
(streamer_tree_cache_get): Rename to ...
|
||
(streamer_tree_cache_get_tree): ... this.
|
||
(streamer_tree_cache_get_hash): New function.
|
||
* tree.c (cache_integer_cst): New function.
|
||
* tree.h (cache_integer_cst): Declare.
|
||
(ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
|
||
* lto-symtab.c (lto_varpool_replace_node): Only release
|
||
DECL_INITIAL of non-prevailing decls.
|
||
* varpool.c (varpool_remove_initializer): Do not release
|
||
DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
|
||
|
||
2013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
|
||
|
||
* config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
|
||
(ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
|
||
* config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
|
||
(mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
|
||
(mul<mode>3_mul3): Handle TARGET_MIPS5900.
|
||
(mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
|
||
(<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
|
||
(<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
|
||
instead of TARGET_64BIT.
|
||
(divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
|
||
Require ISA_HAS_<D>DIV.
|
||
|
||
2013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
|
||
(mips*-*-linux*): Move default with_llsc setting to where other
|
||
defaults are set.
|
||
(mips*-*-vxworks*): Move with_arch default from with_cpu block to
|
||
with_arch block.
|
||
(mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
|
||
Likewise. Remove default with_tune setting. Move default float
|
||
setting to its own block. Handle with_llsc in the same block as above.
|
||
|
||
2013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
PR rtl-optimization/57425
|
||
PR rtl-optimization/57569
|
||
* alias.c (write_dependence_p): Add new parameters mem_mode,
|
||
canon_mem_addr and mem_canonicalized. Change type of writep to bool.
|
||
Changed all callers.
|
||
(canon_anti_dependence): New function.
|
||
* cse.c (check_dependence): Use canon_anti_dependence.
|
||
* cselib.c (cselib_invalidate_mem): Likewise.
|
||
* rtl.h (canon_anti_dependence): Declare.
|
||
|
||
2013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
|
||
|
||
* config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
|
||
* config/mips/mips.c (mips_start_ll_sc_sync_block): Output
|
||
".set mips3" for 64-bit targets.
|
||
|
||
2013-06-15 Dehao Chen <dehao@google.com>
|
||
|
||
* tree-flow.h (gimple_check_call_matching_types): Add new argument.
|
||
* gimple-low.c (gimple_check_call_matching_types): Likewise.
|
||
(gimple_check_call_args): Likewise.
|
||
* value-prof.c (check_ic_target): Likewise.
|
||
* ipa-inline.c (early_inliner): Likewise.
|
||
* ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
|
||
* cgraph.c (cgraph_create_edge_1): Likewise.
|
||
(cgraph_make_edge_direct): Likewise.
|
||
|
||
2013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
PR target/57615
|
||
* config/rs6000/rs6000.md (mov<mode>_ppc64): Call
|
||
rs6000_output_move_128bit to handle emitting quad memory
|
||
operations. Set attribute length to 8 bytes.
|
||
|
||
2013-06-14 Vidya Praveen <vidyapraveen@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
|
||
New pattern.
|
||
(aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
|
||
(aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
|
||
(aarch64_<su>mlsl<mode>): Likewise.
|
||
|
||
2013-06-14 Mike Stump <mikestump@comcast.net>
|
||
|
||
* Makefile.in (TARGET_H): Add insn-codes.h.
|
||
|
||
2013-06-14 Alan Modra <amodra@gmail.com>
|
||
|
||
PR middle-end/57134
|
||
PR middle-end/57586
|
||
* expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
|
||
EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
|
||
bitfield expansion when EXPAND_MEMORY.
|
||
(expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
|
||
|
||
2013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_option_override_internal): Move
|
||
test for clearing quad memory on 32-bit later.
|
||
|
||
2013-06-13 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* fold-const.c (negate_expr_p): Handle VECTOR_CST.
|
||
(fold_negate_expr): Likewise.
|
||
(fold_real_zero_addition_p): Handle vectors.
|
||
(fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
|
||
|
||
2013-06-14 Alan Modra <amodra@gmail.com>
|
||
|
||
* varasm.c (force_const_mem): Revert 2013-06-07 change.
|
||
|
||
2013-06-13 Jan Hubicka <jh@suse.cz>
|
||
|
||
* ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
|
||
Local comdats are not externally visible.
|
||
* symtab.c (dump_symtab_base): Dump externally visible.
|
||
(verify_symtab_base): Verify back links in the symtab hash.
|
||
|
||
2013-06-13 Bin Cheng <bin.cheng@arm.com>
|
||
|
||
* fold-const.c (operand_equal_p): Consider NOP_EXPR and
|
||
CONVERT_EXPR as equal nodes.
|
||
|
||
2013-06-13 Bin Cheng <bin.cheng@arm.com>
|
||
|
||
* rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
|
||
|
||
2013-06-13 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
|
||
Generalize to complex and vector.
|
||
* tree.c (build_all_ones_cst): New function.
|
||
* tree.h (build_all_ones_cst): Declare it.
|
||
|
||
2013-06-13 Alan Modra <amodra@gmail.com>
|
||
|
||
* config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
|
||
* config/rs6000/rs6000.md (signbittf2): New insn.
|
||
(extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
|
||
(abstf2_internal, cmptf_internal2): Likewise.
|
||
* config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
|
||
|
||
2013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
Pat Haugen <pthaugen@us.ibm.com>
|
||
Peter Bergner <bergner@vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000.c (emit_load_locked): Add support for
|
||
power8 byte, half-word, and quad-word atomic instructions.
|
||
(emit_store_conditional): Likewise.
|
||
(rs6000_expand_atomic_compare_and_swap): Likewise.
|
||
(rs6000_expand_atomic_op): Likewise.
|
||
|
||
* config/rs6000/sync.md (larx): Add new modes for power8.
|
||
(stcx): Likewise.
|
||
(AINT): New mode iterator to include TImode as well as normal
|
||
integer modes on power8.
|
||
(fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
|
||
that VSX registers are not considered. Use AINT mode iterator
|
||
instead of INT1 to allow inclusion of quad word atomic operations
|
||
on power8.
|
||
(load_locked<mode>): Likewise.
|
||
(store_conditional<mode>): Likewise.
|
||
(atomic_compare_and_swap<mode>): Likewise.
|
||
(atomic_exchange<mode>): Likewise.
|
||
(atomic_nand<mode>): Likewise.
|
||
(atomic_fetch_<fetchop_name><mode>): Likewise.
|
||
(atomic_nand_fetch<mode>): Likewise.
|
||
(mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
|
||
each type.
|
||
(ATOMIC): On power8, add QImode, HImode modes.
|
||
(load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
|
||
modes that promote to SImode.
|
||
(load_lockedti): Convert TImode arguments to PTImode, so that we
|
||
get a guaranteed even/odd register pair.
|
||
(load_lockedpti): Likewise.
|
||
(store_conditionalti): Likewise.
|
||
(store_conditionalpti): Likewise.
|
||
|
||
* config/rs6000/rs6000.md (QHI): New mode iterator for power8
|
||
atomic load/store instructions.
|
||
(HSI): Likewise.
|
||
|
||
2013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/mips/mips.md (extended_mips16): Include GOT and constant-pool
|
||
loads.
|
||
(insn_count): New attribute, with most cases extracted from...
|
||
(length): ...here. Redefine most cases in terms of insn_count.
|
||
(single_insn): Delete.
|
||
(can_delay): Use insn_count to check for single instructions.
|
||
(*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
|
||
(*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
|
||
(<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
|
||
(<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
|
||
(<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
|
||
(udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
|
||
(fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
|
||
(*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
|
||
(casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
|
||
(tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
|
||
rather than "length".
|
||
(tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
|
||
* config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
|
||
Use "insn_count" rather than "length".
|
||
* config/mips/mips-dsp.md
|
||
(mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
|
||
(mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
|
||
length attributes.
|
||
|
||
2013-06-12 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR tree-optimization/57361
|
||
* tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
|
||
|
||
2013-06-12 Sofiane Naci <sofiane.naci@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
|
||
to split.
|
||
(aarch64_simd_combine<mode>): New instruction expansion.
|
||
* config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
|
||
function prototype.
|
||
* config/aarch64/aarch64.c (aarch64_split_combine): New function.
|
||
* config/aarch64/iterators.md (Vdbl): Add entry for DF.
|
||
|
||
2013-06-12 Jan Hubicka <jh@suse.cz>
|
||
|
||
* cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
|
||
decl has when in streaming stage.
|
||
* lto-symtab.c (lto_symtab_merge_symbols): Likewise.
|
||
* cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
|
||
|
||
2013-06-12 Roland Stigge <stigge@antcom.de>
|
||
|
||
PR target/57578
|
||
* config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
|
||
|
||
2013-06-12 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/57537
|
||
* tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
|
||
vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
|
||
|
||
2013-06-12 Richard Biener <rguenther@suse.de>
|
||
|
||
* data-streamer.h (streamer_write_char_stream): CSE
|
||
obs->current_pointer.
|
||
* data-streamer-out.c (streamer_write_uhwi_stream): Inline
|
||
streamer_write_char_stream manually and optimize the resulting loop.
|
||
(streamer_write_hwi_stream): Likewise.
|
||
|
||
2013-06-12 Jan Hubicka <jh@suse.cz>
|
||
|
||
* lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
|
||
* cgraph.h (varpool_create_empty_node): Declare.
|
||
* lto-cgraph.c (input_node, input_varpool_node): Forcingly create
|
||
duplicated nodes.
|
||
* symtab.c (symtab_unregister_node): Be lax about missin entries
|
||
in node hash.
|
||
(symtab_get_node): Update comment.
|
||
* varpool.c (varpool_create_empty_node): Break out from ...
|
||
(varpool_node_for_decl): ... here.
|
||
* lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
|
||
|
||
2013-06-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
|
||
<MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
|
||
part. Use straight-line flow at the end.
|
||
<COMPONENT_REF>: Remove superfluous else.
|
||
<VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
|
||
|
||
2013-06-12 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/56564
|
||
* varasm.c (decl_binds_to_current_def_p): Call binds_local_p
|
||
target hook even for !TREE_PUBLIC decls. If no resolution info
|
||
is available, return false for common and external decls.
|
||
|
||
2013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
|
||
|
||
* config/rl78/constraints.md (U): New constraint.
|
||
* config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
|
||
valloc attribute.
|
||
|
||
2013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
PR target/57589
|
||
* config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
|
||
to allow returning address to AT_PLATFORM name.
|
||
|
||
2013-06-11 Jan Hubicka <jh@suse.cz>
|
||
|
||
* cgraph.c (cgraph_create_function_alias): Set weakref flag.
|
||
* cgraph.h (symtab_node_base): Add weakref flag.
|
||
* cgraphunit.c (cgraph_reset_node): Clear weakref flag.
|
||
(handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
|
||
(output_weakrefs): Use weakref flag.
|
||
* fold-const.c (simple_operand_p): Handle WEAK.
|
||
* gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
|
||
* ipa.c (varpool_externally_visible_p): Drop weakref.
|
||
(function_and_variable_visibility): Update comment; fix weakref
|
||
sanity checks; do not clear DECL_WEAK on them.
|
||
* lto-cgraph.c (lto_output_node): update.
|
||
(lto_output_varpool_node): Update.
|
||
(input_overwrite_node): Update.
|
||
(input_node): Update.
|
||
(input_varpool_node): Update.
|
||
* lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
|
||
(lto_symtab_merge_symbols): Add sanity check.
|
||
(lto_symtab_prevailing_decl): Do not special case weakrefs.
|
||
* passes.c (rest_of_decl_compilation): Set static flag, too.
|
||
* symtab.c (dump_symtab_base): Dump weakref.
|
||
(verify_symtab_base): Sanity check weakrefs.
|
||
(symtab_make_decl_local): Remove duplicated code.
|
||
(symtab_alias_ultimate_target): Simplify.
|
||
* varpool.c (varpool_create_variable_alias): Set weakref flag.
|
||
|
||
2013-06-11 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
|
||
(rl78_unwind_word_mode): New.
|
||
|
||
2013-06-11 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* final.c (debug_prefix_maps): Make static.
|
||
|
||
2013-06-11 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* function.c (initial_trampoline): Remove stray copy.
|
||
|
||
2013-06-11 Sofiane Naci <sofiane.naci@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
|
||
|
||
2013-06-11 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
|
||
within bounds at the beginning of the function.
|
||
|
||
2013-06-11 Alan Modra <amodra@gmail.com>
|
||
|
||
* varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
|
||
reporting.
|
||
(get_named_section): Don't NULL !DECL_P decl.
|
||
|
||
2013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
|
||
|
||
* doc/invoke.texi (core-avx2): Document.
|
||
(slm): Likewise.
|
||
(atom): Updated with MOVBE.
|
||
|
||
2013-06-11 Richard Biener <rguenther@suse.de>
|
||
|
||
* collect2.c (main): Do not redirect ld stdout/stderr when debugging.
|
||
|
||
2013-06-11 Anton Blanchard <anton@samba.org>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
|
||
correct shift value in little-endian mode.
|
||
|
||
2013-06-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/56564
|
||
* varasm.c (get_variable_align): Move #endif to the right place.
|
||
|
||
2013-06-10 Cary Coutant <ccoutant@google.com>
|
||
|
||
* dwarf2out.c (hash_external_ref): Use die_symbol or signature
|
||
for hash so that hash table traversal order is deterministic.
|
||
|
||
2013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
Pat Haugen <pthaugen@us.ibm.com>
|
||
Peter Bergner <bergner@vnet.ibm.com>
|
||
|
||
* config/rs6000/vector.md (GPR move splitter): Do not split moves
|
||
of vectors in GPRS if they are direct moves or quad word load or
|
||
store moves.
|
||
|
||
* config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
|
||
declaration.
|
||
(direct_move_p): Likewise.
|
||
(quad_load_store_p): Likewise.
|
||
|
||
* config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
|
||
classes into bins based on the physical register type.
|
||
(reg_class_to_reg_type): Likewise.
|
||
(IS_STD_REG_TYPE): Likewise.
|
||
(IS_FP_VECT_REG_TYPE): Likewise.
|
||
(reload_fpr_gpr): Arrays to determine what insn to use if we can
|
||
use direct move instructions.
|
||
(reload_gpr_vsx): Likewise.
|
||
(reload_vsx_gpr): Likewise.
|
||
(rs6000_init_hard_regno_mode_ok): Precalculate the register type
|
||
information that is a simplification of register classes. Also
|
||
precalculate direct move reload helpers.
|
||
(direct_move_p): New function to return true if the operation can
|
||
be done as a direct move instruciton.
|
||
(quad_load_store_p): New function to return true if the operation
|
||
is a quad memory operation.
|
||
(rs6000_legitimize_address): If quad memory, only allow register
|
||
indirect for TImode addresses.
|
||
(rs6000_legitimate_address_p): Likewise.
|
||
(enum reload_reg_type): Delete, replace with rs6000_reg_type.
|
||
(rs6000_reload_register_type): Likewise.
|
||
(register_to_reg_type): Return register type.
|
||
(rs6000_secondary_reload_simple_move): New helper function for
|
||
secondary reload and secondary memory needed to identify anything
|
||
that is a simple move, and does not need reloading.
|
||
(rs6000_secondary_reload_direct_move): New helper function for
|
||
secondary reload to identify cases that can be done with several
|
||
instructions via the direct move instructions.
|
||
(rs6000_secondary_reload_move): New helper function for secondary
|
||
reload to identify moves between register types that can be done.
|
||
(rs6000_secondary_reload): Add support for quad memory operations
|
||
and for direct move.
|
||
(rs6000_secondary_memory_needed): Likewise.
|
||
(rs6000_debug_secondary_memory_needed): Change argument names.
|
||
(rs6000_output_move_128bit): New function to return the move to
|
||
use for 128-bit moves, including knowing about the various
|
||
limitations of quad memory operations.
|
||
|
||
* config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
|
||
memory operations. call rs6000_output_move_128bit for the actual
|
||
instruciton(s) to generate.
|
||
(vsx_movti_64bit): Likewise.
|
||
|
||
* config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
|
||
(UNSPEC_P8V_MTVSRWZ): Likewise.
|
||
(UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
|
||
(UNSPEC_P8V_MTVSRD): Likewise.
|
||
(UNSPEC_P8V_XXPERMDI): Likewise.
|
||
(UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
|
||
(UNSPEC_FUSION_GPR): Likewise.
|
||
(FMOVE128_GPR): New iterator for direct move.
|
||
(f32_lv): New mode attribute for load/store of SFmode/SDmode values.
|
||
(f32_sv): Likewise.
|
||
(f32_dm): Likewise.
|
||
(zero_extend<mode>di2_internal1): Add support for power8 32-bit
|
||
loads and direct move instructions.
|
||
(zero_extendsidi2_lfiwzx): Likewise.
|
||
(extendsidi2_lfiwax): Likewise.
|
||
(extendsidi2_nocell): Likewise.
|
||
(floatsi<mode>2_lfiwax): Likewise.
|
||
(lfiwax): Likewise.
|
||
(floatunssi<mode>2_lfiwzx): Likewise.
|
||
(lfiwzx): Likewise.
|
||
(fix_trunc<mode>_stfiwx): Likewise.
|
||
(fixuns_trunc<mode>_stfiwx): Likewise.
|
||
(mov<mode>_hardfloat, 32-bit floating point): Likewise.
|
||
(mov<move>_hardfloat64, 64-bit floating point): Likewise.
|
||
(parity<mode>2_cmpb): Set length/type attr.
|
||
(unnamed shift right patterns, mov<mode>_internal2): Change type attr
|
||
for 'mr.' to fast_compare.
|
||
(bpermd_<mode>): Change type attr to popcnt.
|
||
(p8_fmrgow_<mode>): New insns for power8 direct move support.
|
||
(p8_mtvsrwz_1): Likewise.
|
||
(p8_mtvsrwz_2): Likewise.
|
||
(reload_fpr_from_gpr<mode>): Likewise.
|
||
(p8_mtvsrd_1): Likewise.
|
||
(p8_mtvsrd_2): Likewise.
|
||
(p8_xxpermdi_<mode>): Likewise.
|
||
(reload_vsx_from_gpr<mode>): Likewise.
|
||
(reload_vsx_from_gprsf): Likewise.
|
||
(p8_mfvsrd_3_<mode>): LIkewise.
|
||
(reload_gpr_from_vsx<mode>): Likewise.
|
||
(reload_gpr_from_vsxsf): Likewise.
|
||
(p8_mfvsrd_4_disf): Likewise.
|
||
(multi-word GPR splits): Do not split direct moves or quad memory
|
||
operations.
|
||
|
||
2013-06-10 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* tree-into-ssa.c (interesting_blocks): Make static.
|
||
|
||
2013-06-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/56564
|
||
* varasm.c (align_variable): Don't use DATA_ALIGNMENT or
|
||
CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
|
||
Use DATA_ABI_ALIGNMENT for that case instead if defined.
|
||
(get_variable_align): New function.
|
||
(get_variable_section, emit_bss, emit_common,
|
||
assemble_variable_contents, place_block_symbol): Use
|
||
get_variable_align instead of DECL_ALIGN.
|
||
(assemble_noswitch_variable): Add align argument, use it
|
||
instead of DECL_ALIGN.
|
||
(assemble_variable): Adjust caller. Use get_variable_align
|
||
instead of DECL_ALIGN.
|
||
* config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
|
||
caller.
|
||
(DATA_ABI_ALIGNMENT): Define.
|
||
* config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
|
||
* config/i386/i386.c (x86_data_alignment): Add opt argument. If
|
||
opt is false, only return the psABI mandated alignment increase.
|
||
* config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
|
||
(DATA_ABI_ALIGNMENT): ... this.
|
||
* config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
|
||
(DATA_ABI_ALIGNMENT): ... this.
|
||
* config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
|
||
* config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
|
||
(DATA_ABI_ALIGNMENT): ... this.
|
||
* doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
|
||
* doc/tm.texi: Regenerated.
|
||
|
||
2013-06-10 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
|
||
cmp_code to construct REG_EQUAL note.
|
||
|
||
2013-06-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/57568
|
||
* config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
|
||
that operands[2] doesn't overlap with operands[0].
|
||
|
||
2013-06-09 David Edelsohn <dje.gcc@gmail.com>
|
||
Jan Hubicka <jh@suse.cz>
|
||
|
||
* config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
|
||
hack to mark symbols as used.
|
||
|
||
2013-06-08 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/57559
|
||
* lra-constraints.c (process_alt_operands): Don't discourage
|
||
memory with known offset for offsetable memory constraint.
|
||
* lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
|
||
|
||
2013-06-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* varasm.c (struct oc_local_state): Reorder fields.
|
||
(output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
|
||
and adjust accordingly.
|
||
(output_constructor): Reorder initialization code and adjust call to
|
||
output_constructor_bitfield.
|
||
|
||
2013-06-07 Jan Hubicka <jh@suse.cz>
|
||
|
||
* symtab.c (symtab_resolve_alias): Do not remove alias attribute.
|
||
|
||
2013-06-07 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* tree-object-size.c (unknown): Make const.
|
||
|
||
2013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
* config/s390/s390.md (cpu_facility): Add cpu_zarch.
|
||
("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
|
||
for last alternative in the cpu_facility attribute.
|
||
|
||
2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
PR target/56315
|
||
* config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
|
||
(xordi3): Change operand 2 constraint to arm_xordi_operand.
|
||
* config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
|
||
* config/arm/constraints.md (Dg): New constraint.
|
||
* config/arm/neon.md (xordi3_neon): Remove.
|
||
(neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
|
||
* config/arm/predicates.md (arm_xordi_operand): New predicate.
|
||
|
||
2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
|
||
Clean up alternatives.
|
||
|
||
2013-06-07 Alan Modra <amodra@gmail.com>
|
||
|
||
* config/rs6000/rs6000.c (setup_incoming_varargs): Round up
|
||
va_list_gpr_size.
|
||
|
||
2013-06-07 Alan Modra <amodra@gmail.com>
|
||
|
||
* varasm.c (force_const_mem): Assert mode is not VOID or BLK.
|
||
|
||
2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/constraints.md (Df): New constraint.
|
||
* config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
|
||
Correct length attribute for last two alternatives.
|
||
|
||
2013-06-07 Alan Modra <amodra@gmail.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
|
||
override user -mfp-in-toc.
|
||
(offsettable_ok_by_alignment): Consider just the current access
|
||
rather than the whole object, unless BLKmode. Handle
|
||
CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
|
||
(use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
|
||
for -mcmodel=medium.
|
||
* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
|
||
override user -mfp-in-toc or -msum-in-toc. Default to
|
||
-mno-fp-in-toc for -mcmodel=medium.
|
||
|
||
2013-06-06 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
|
||
TARGET_VALID_POINTER_MODE.
|
||
|
||
2013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
Pat Haugen <pthaugen@us.ibm.com>
|
||
Peter Bergner <bergner@vnet.ibm.com>
|
||
|
||
* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
|
||
Document new power8 builtins.
|
||
|
||
* config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
|
||
condition code register, to allow 128-bit logical operations to be
|
||
done in the VSX or GPR registers.
|
||
(nor<mode>3): Use the canonical form for nor.
|
||
(eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
|
||
vclz*, and vpopcnt* vector instructions.
|
||
(nand<mode>3): Likewise.
|
||
(orc<mode>3): Likewise.
|
||
(clz<mode>2): LIkewise.
|
||
(popcount<mode>2): Likewise.
|
||
|
||
* config/rs6000/predicates.md (int_reg_operand): Rework tests so
|
||
that only the GPRs are recognized.
|
||
|
||
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
|
||
support for new power8 builtins.
|
||
|
||
* config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
|
||
builtin functions.
|
||
(xscvdpspn): Likewise.
|
||
(vclz): Likewise.
|
||
(vclzb): Likewise.
|
||
(vclzh): Likewise.
|
||
(vclzw): Likewise.
|
||
(vclzd): Likewise.
|
||
(vpopcnt): Likewise.
|
||
(vpopcntb): Likewise.
|
||
(vpopcnth): Likewise.
|
||
(vpopcntw): Likewise.
|
||
(vpopcntd): Likewise.
|
||
(vgbbd): Likewise.
|
||
(vmrgew): Likewise.
|
||
(vmrgow): Likewise.
|
||
(eqv): Likewise.
|
||
(eqv_v16qi3): Likewise.
|
||
(eqv_v8hi3): Likewise.
|
||
(eqv_v4si3): Likewise.
|
||
(eqv_v2di3): Likewise.
|
||
(eqv_v4sf3): Likewise.
|
||
(eqv_v2df3): Likewise.
|
||
(nand): Likewise.
|
||
(nand_v16qi3): Likewise.
|
||
(nand_v8hi3): Likewise.
|
||
(nand_v4si3): Likewise.
|
||
(nand_v2di3): Likewise.
|
||
(nand_v4sf3): Likewise.
|
||
(nand_v2df3): Likewise.
|
||
(orc): Likewise.
|
||
(orc_v16qi3): Likewise.
|
||
(orc_v8hi3): Likewise.
|
||
(orc_v4si3): Likewise.
|
||
(orc_v2di3): Likewise.
|
||
(orc_v4sf3): Likewise.
|
||
(orc_v2df3): Likewise.
|
||
|
||
* config/rs6000/rs6000.c (rs6000_option_override_internal): Only
|
||
allow power8 quad mode in 64-bit.
|
||
(rs6000_builtin_vectorized_function): Add support to vectorize
|
||
ISA 2.07 count leading zeros, population count builtins.
|
||
(rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
|
||
V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
|
||
(builtin_function_type): Add vgbbd builtin function which takes an
|
||
unsigned argument.
|
||
(altivec_expand_vec_perm_const): Add support for new power8 merge
|
||
instructions.
|
||
|
||
* config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
|
||
that does not include TImdoe for use with 32-bit.
|
||
(UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
|
||
instructions.
|
||
(UNSPEC_VSX_CVDPSPN): Likewise.
|
||
(vsx_xscvdpspn): Likewise.
|
||
(vsx_xscvspdpn): Likewise.
|
||
(vsx_xscvdpspn_scalar): Likewise.
|
||
(vsx_xscvspdpn_directmove): Likewise.
|
||
(vsx_and<mode>3): Split logical operations into 32-bit and
|
||
64-bit. Add support to do logical operations on TImode as well as
|
||
VSX vector types. Allow logical operations to be done in either
|
||
VSX registers or in general purpose registers in 64-bit mode. Add
|
||
splitters if GPRs were used. For AND, add clobber of CCmode to
|
||
allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
|
||
encoding.
|
||
(vsx_and<mode>3_32bit): Likewise.
|
||
(vsx_and<mode>3_64bit): Likewise.
|
||
(vsx_ior<mode>3): Likewise.
|
||
(vsx_ior<mode>3_32bit): Likewise.
|
||
(vsx_ior<mode>3_64bit): Likewise.
|
||
(vsx_xor<mode>3): Likewise.
|
||
(vsx_xor<mode>3_32bit): Likewise.
|
||
(vsx_xor<mode>3_64bit): Likewise.
|
||
(vsx_one_cmpl<mode>2): Likewise.
|
||
(vsx_one_cmpl<mode>2_32bit): Likewise.
|
||
(vsx_one_cmpl<mode>2_64bit): Likewise.
|
||
(vsx_nor<mode>3): Likewise.
|
||
(vsx_nor<mode>3_32bit): Likewise.
|
||
(vsx_nor<mode>3_64bit): Likewise.
|
||
(vsx_andc<mode>3): Likewise.
|
||
(vsx_andc<mode>3_32bit): Likewise.
|
||
(vsx_andc<mode>3_64bit): Likewise.
|
||
(vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
|
||
and xxlorc instructions.
|
||
(vsx_eqv<mode>3_64bit): Likewise.
|
||
(vsx_nand<mode>3_32bit): Likewise.
|
||
(vsx_nand<mode>3_64bit): Likewise.
|
||
(vsx_orc<mode>3_32bit): Likewise.
|
||
(vsx_orc<mode>3_64bit): Likewise.
|
||
|
||
* config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
|
||
|
||
* config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
|
||
instruction.
|
||
(p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
|
||
(p8_vmrgow): Likewise.
|
||
(altivec_and<mode>3): Add clobber of CCmode to allow AND using
|
||
GPRs to be split under VSX.
|
||
(p8v_clz<mode>2): Add power8 count leading zero support.
|
||
(p8v_popcount<mode>2): Add power8 population count support.
|
||
(p8v_vgbbd): Add power8 gather bits by bytes by doubleword
|
||
support.
|
||
|
||
* config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
|
||
instruction.
|
||
|
||
* config/rs6000/altivec.h (vec_eqv): Add defines to export power8
|
||
builtin functions.
|
||
(vec_nand): Likewise.
|
||
(vec_vclz): Likewise.
|
||
(vec_vclzb): Likewise.
|
||
(vec_vclzd): Likewise.
|
||
(vec_vclzh): Likewise.
|
||
(vec_vclzw): Likewise.
|
||
(vec_vgbbd): Likewise.
|
||
(vec_vmrgew): Likewise.
|
||
(vec_vmrgow): Likewise.
|
||
(vec_vpopcnt): Likewise.
|
||
(vec_vpopcntb): Likewise.
|
||
(vec_vpopcntd): Likewise.
|
||
(vec_vpopcnth): Likewise.
|
||
(vec_vpopcntw): Likewise.
|
||
|
||
2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/57468
|
||
* config/i386/i386.c (inline_secondary_memory_needed): Ignore
|
||
spilled pseudos.
|
||
|
||
2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/57459
|
||
* lra-constraints.c (update_ebb_live_info): Fix typo for operand
|
||
type when setting live regs.
|
||
|
||
2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
* config/s390/s390.opt (mlra): New option.
|
||
* config/s390/s390.c (s390_decompose_address): Check displacement
|
||
for all registers for LRA.
|
||
(s390_secondary_reload): Don't used secondary reloads for LRA.
|
||
(s390_lra_p): New function.
|
||
(TARGET_LRA_P): Define.
|
||
* config/s390/s390.md (*movmem_short, *clrmem_short): Change value
|
||
of attribute cpu_facility to zarch for the last alternative.
|
||
(*cmpmem_short): Ditto.
|
||
|
||
2013-06-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
|
||
(arm_compute_static_chain_stack_bytes): Use it. Tidy up.
|
||
(arm_expand_prologue): Likewise.
|
||
|
||
2013-06-06 Teresa Johnson <tejohnson@google.com>
|
||
|
||
PR c++/53743
|
||
* ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
|
||
as this is now done by redirect_edge_and_branch_force.
|
||
* function.c (thread_prologue_and_epilogue_insns): Insert new bb after
|
||
barriers, and fix interaction with splitting.
|
||
* emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
|
||
* cfgcleanup.c (try_forward_edges): Fix early return value to properly
|
||
reflect changes made in the routine.
|
||
* bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
|
||
(fix_up_fall_thru_edges): Remove incorrect check for bb layout order
|
||
since this is called in cfglayout mode, and replace partition fixup
|
||
with assert as that is now done by force_nonfallthru_and_redirect.
|
||
(add_reg_crossing_jump_notes): Handle the fact that some jumps may
|
||
already be marked with region crossing note.
|
||
(insert_section_boundary_note): Make non-static, gate on flag
|
||
has_bb_partition, rewrite to also check for multiple partitions.
|
||
(rest_of_handle_reorder_blocks): Remove call to
|
||
insert_section_boundary_note, now done later during free_cfg.
|
||
(duplicate_computed_gotos): Don't duplicate partition crossing edge.
|
||
* bb-reorder.h (insert_section_boundary_note): Declare.
|
||
* Makefile.in (cfgrtl.o): Depend on bb-reorder.h
|
||
* cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
|
||
invoke insert_section_boundary_note.
|
||
(try_redirect_by_replacing_jump): Remove unnecessary
|
||
check for region crossing note.
|
||
(fixup_partition_crossing): New function.
|
||
(rtl_redirect_edge_and_branch): Fixup partition boundaries.
|
||
(emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
|
||
in non-cfglayout mode.
|
||
(force_nonfallthru_and_redirect): Fixup partition boundaries,
|
||
remove old code that tried to do this. Emit barrier correctly
|
||
when we are in cfglayout mode.
|
||
(last_bb_in_partition): New function.
|
||
(rtl_split_edge): Correctly fixup partition boundaries.
|
||
(commit_one_edge_insertion): Remove old code that tried to
|
||
fixup region crossing edge since this is now handled in
|
||
split_block, and set up insertion point correctly since
|
||
block may now end in a jump.
|
||
(verify_hot_cold_block_grouping): Guard against checking when not in
|
||
linearized RTL mode.
|
||
(rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
|
||
notes.
|
||
(rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
|
||
rtl_verify_flow_info, so not called in cfglayout mode.
|
||
(rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
|
||
(fixup_reorder_chain): Remove old code that attempted to fixup region
|
||
crossing note as this is now handled in force_nonfallthru_and_redirect.
|
||
(duplicate_insn_chain): Don't duplicate switch section notes.
|
||
(rtl_can_remove_branch_p): Remove unnecessary check for region crossing
|
||
note.
|
||
* basic-block.h (emit_barrier_after_bb): Declare.
|
||
|
||
2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
|
||
sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
|
||
arm_usatsihi): Adjust alternatives for arm_restrict_it.
|
||
|
||
2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
|
||
where appropriate.
|
||
* config/arm/ldmstm.md: Regenerate.
|
||
|
||
2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/sync.md (atomic_loaddi_1):
|
||
Disable predication for arm_restrict_it.
|
||
(arm_load_exclusive<mode>): Likewise.
|
||
(arm_load_exclusivesi): Likewise.
|
||
(arm_load_exclusivedi): Likewise.
|
||
(arm_load_acquire_exclusive<mode>): Likewise.
|
||
(arm_load_acquire_exclusivesi): Likewise.
|
||
(arm_load_acquire_exclusivedi): Likewise.
|
||
(arm_store_exclusive<mode>): Likewise.
|
||
(arm_store_exclusive<mode>): Likewise.
|
||
(arm_store_release_exclusivedi): Likewise.
|
||
(arm_store_release_exclusive<mode>): Likewise.
|
||
|
||
2013-06-06 Richard Biener <rguenther@suse.de>
|
||
|
||
* lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
|
||
after LTO_null.
|
||
(lto_tag_is_tree_code_p): Adjust.
|
||
(lto_tag_is_gimple_code_p): Likewise.
|
||
(lto_gimple_code_to_tag): Likewise.
|
||
(lto_tag_to_gimple_code): Likewise.
|
||
(lto_tree_code_to_tag): Likewise.
|
||
(lto_tag_to_tree_code): Likewise.
|
||
* data-streamer.h (streamer_write_hwi_in_range): Use
|
||
uhwi streaming to stream the normalized range.
|
||
(streamer_read_hwi_in_range): Likewise.
|
||
|
||
2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.md (enabled_for_depr_it): New attribute.
|
||
(predicable_short_it): Likewise.
|
||
(predicated): Likewise.
|
||
(enabled): Handle above.
|
||
(define_cond_exec): Set predicated attribute to yes.
|
||
|
||
2013-06-05 Mike Stump <mikestump@comcast.net>
|
||
|
||
* gdbinit.in (__FUNCTION__): Add.
|
||
|
||
2013-06-05 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
|
||
GE, GT, GEU and GTU compares, modulo DImode compares with zero.
|
||
|
||
2013-06-05 Jan Hubicka <jh@suse.cz>
|
||
|
||
* varasm.c (mark_decl_referenced): Revert the removal until targets
|
||
are fixed.
|
||
|
||
2013-06-05 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
* config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
|
||
instead of mark_decl_referenced.
|
||
|
||
2013-06-05 Jan Hubicka <jh@suse.cz>
|
||
|
||
* cgraph.c (cgraph_remove_node): Clear forced_by_abi.
|
||
(cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
|
||
and symtab_used_from_object_file_p.
|
||
(cgraph_make_node_local_1): Clear forced_by_abi.
|
||
(cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
|
||
* cgraph.h (symtab_node_base): Add forced_by_abi.
|
||
(decide_is_variable_needed): Remove.
|
||
(varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
|
||
* cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
|
||
(decide_is_symbol_needed): ... this one; handle symbols in general;
|
||
always analyze virtuals; honnor forced_by_abi.
|
||
(cgraph_finalize_function): Update.
|
||
(varpool_finalize_decl): Update.
|
||
(symbol_defined_and_needed): Remove.
|
||
(analyze_functions): Update.
|
||
* lto-cgraph.c (lto_output_node, lto_output_varpool_node,
|
||
output_refs, input_overwrite_node): Handle forced_by_abi.
|
||
* ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
|
||
(address_taken_from_non_vtable_p): ... this one.
|
||
(comdat_can_be_unshared_p_1): New function.
|
||
(cgraph_comdat_can_be_unshared_p): Rename to ...
|
||
(comdat_can_be_unshared_p): ... this one; handle symbols in general.
|
||
(varpool_externally_visible_p): Use comdat_can_be_unshared_p.
|
||
(function_and_variable_visibility): Clear forced_by_abi as needed.
|
||
* trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
|
||
(ipa_tm_create_version_alias, ipa_tm_create_version): Update.
|
||
* symtab.c (dump_symtab_base): Dump forced_by_abi.
|
||
* varpool.c (decide_is_variable_needed): Remove.
|
||
|
||
2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
|
||
(arm_option_override): Override arm_restrict_it where appropriate.
|
||
(thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
|
||
* config/arm/arm.opt (mrestrict-it): New command-line option.
|
||
* doc/invoke.texi: Document -mrestrict-it.
|
||
|
||
2013-06-05 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* tsan.c (tsan_atomic_table): Make const.
|
||
|
||
2013-06-05 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-streamer.c (streamer_tree_cache_insert_1): Update the
|
||
index associated with the tree we are supposed to replace.
|
||
* tree-streamer-out.c (pack_ts_base_value_fields): Output
|
||
TREE_ASM_WRITTEN as zero for everything but SSA names.
|
||
|
||
2013-06-05 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* tree-ssa-structalias.c (call_stmt_vars): Make static.
|
||
|
||
2013-06-04 Jan Hubicka <jh@suse.cz>
|
||
|
||
* lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
|
||
(input_node, input_varpool_node): Handle correctly external same
|
||
body aliases.
|
||
* ipa.c (symtab_remove_unreachable_nodes): Do not remove external
|
||
nodes at ltrans stage.
|
||
|
||
2013-06-04 Jan Hubicka <jh@suse.cz>
|
||
|
||
* ipa-inline.c (update_caller_keys): Fix availability test.
|
||
(update_callee_keys): Likewise.
|
||
* symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
|
||
to follow ELF standard.
|
||
|
||
2013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
|
||
|
||
* config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
|
||
(mips64r5900el-*-elf*): New configurations.
|
||
* config/mips/mips-cpus.def (r5900): New processor.
|
||
* config/mips/mips-tables.opt: Regenerate.
|
||
* config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
|
||
(mips_issue_rate): Handle PROCESSOR_R5900.
|
||
(mips_reorg_process_insns): Force reorder mode for the R5900.
|
||
* config/mips/mips.h (TARGET_MIPS5900): Define.
|
||
(ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
|
||
TARGET_MIPS5900.
|
||
(ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
|
||
TARGET_MIPS5900.
|
||
* config/mips/mips.md (processor): Add r5900.
|
||
(MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
|
||
|
||
2013-06-04 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
|
||
into function to generate MOVI instruction.
|
||
* config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
|
||
(aarch64_preferred_simd_mode): Turn into wrapper.
|
||
(aarch64_output_scalar_simd_mov_immediate): New function.
|
||
* config/aarch64/aarch64-protos.h: Add prototype for above.
|
||
|
||
2013-06-04 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (simd_immediate_info): Remove
|
||
element_char member.
|
||
(sizetochar): Return signed char.
|
||
(aarch64_simd_valid_immediate): Remove elchar and other
|
||
unnecessary variables.
|
||
(aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
|
||
Calculate element_char as required.
|
||
* config/aarch64/aarch64-protos.h: Update and move prototype
|
||
for aarch64_output_simd_mov_immediate.
|
||
* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
|
||
Update arguments.
|
||
|
||
2013-06-04 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
|
||
information completed by aarch64_simd_valid_immediate.
|
||
(aarch64_legitimate_constant_p): Update arguments.
|
||
(aarch64_simd_valid_immediate): Work with struct rather than many
|
||
pointers.
|
||
(aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
|
||
(aarch64_simd_make_constant): Update arguments.
|
||
(aarch64_output_simd_mov_immediate): Work with struct rather than
|
||
many pointers. Output immediate directly rather than as operand.
|
||
* config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
|
||
Update prototype.
|
||
* config/aarch64/constraints.md (Dn): Update arguments.
|
||
|
||
2013-06-04 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
|
||
longer static.
|
||
(aarch64_simd_immediate_valid_for_move): Remove.
|
||
(aarch64_simd_scalar_immediate_valid_for_move): Update call.
|
||
(aarch64_simd_make_constant): Update call.
|
||
(aarch64_output_simd_mov_immediate): Update call.
|
||
* config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
|
||
Add prototype.
|
||
* config/aarch64/constraints.md (Dn): Update call.
|
||
|
||
2013-06-04 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
|
||
return type to bool for prototype.
|
||
(aarch64_legitimate_constant_p): Check for true instead of not -1.
|
||
(aarch64_simd_valid_immediate): Fix up each return to return a bool.
|
||
(aarch64_simd_immediate_valid_for_move): Update retval for bool.
|
||
|
||
2013-06-04 Catherine Moore <clm@codesourcery.com>
|
||
|
||
* config/mips/mips.opt (meva): New.
|
||
* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
|
||
(ASM_SPEC): Handle -meva.
|
||
* doc/invoke.texi (meva): Document.
|
||
|
||
2013-06-04 Alan Modra <amodra@gmail.com>
|
||
|
||
* config/rs6000/rs6000.c (output_toc): Correct little-endian float
|
||
constant output.
|
||
|
||
2013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* rtl.def: Add extra fourth optional field to define_cond_exec.
|
||
* gensupport.c (process_one_cond_exec): Process attributes from
|
||
define_cond_exec.
|
||
* doc/md.texi: Document fourth field in define_cond_exec.
|
||
|
||
2013-06-04 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
|
||
out the processing order as in store_bit_field_1.
|
||
|
||
2013-06-04 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR middle-end/57500
|
||
* cgraphunit.c (cgraph_process_same_body_aliases): Create
|
||
non-VAR_DECL node if it does not exist yet.
|
||
|
||
2013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
|
||
(mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
|
||
(mips64orion-*-elf*, mips64orionel-*-elf*): Remove
|
||
target_cpu_default setting.
|
||
|
||
2013-06-03 Teresa Johnson <tejohnson@google.com>
|
||
|
||
* dumpfile.c (opt_info_switch_p): Change -fopt-info
|
||
default to -fopt-info=optimized instead of all.
|
||
* doc/invoke.texi: Ditto.
|
||
* tree-vectorizer.c (vectorize_loops): Emit loop vectorization
|
||
success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
|
||
(execute_vect_slp): Emit BB vectorization success under
|
||
MSG_OPTIMIZED_LOCATIONS.
|
||
* tree-vect-slp.c (vect_slp_transform_bb): Change
|
||
MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
|
||
* tree-vect-loop.c (vect_transform_loop): Ditto.
|
||
|
||
2013-06-03 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/57415
|
||
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
|
||
Use TARGET_EXPR for C++.
|
||
|
||
2013-06-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/57268
|
||
* sched-deps.c (sched_analyze_2): Don't flush_pending_lists
|
||
if DEBUG_INSN_P (insn).
|
||
|
||
Reapply
|
||
2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
|
||
|
||
PR rtl-optimization/57268
|
||
* sched-deps.c (sched_analyze_2): Flush dependence lists if
|
||
the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
|
||
|
||
2013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
|
||
|
||
* config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
|
||
(ix86_avoid_lea_for_addr): Likewise.
|
||
(exact_dependency_1): Likewise.
|
||
(ix86_adjust_cost): Likewise.
|
||
(swap_top_of_ready_list): Fix formatting and !reload_completed check
|
||
removed.
|
||
(do_reorder_for_imul): Fix typo, formatting and
|
||
!reload_completed check removed.
|
||
(ix86_sched_reorder): Fix typo and formatting.
|
||
(fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
|
||
list.
|
||
|
||
2013-06-03 Sofiane Naci <sofiane.naci@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
|
||
|
||
2013-06-03 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
|
||
<STRING_CST>: Likewise.
|
||
<VECTOR_CST>: Likewise.
|
||
|
||
2013-06-01 Janus Weil <janus@gcc.gnu.org>
|
||
Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
* configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
|
||
* config.in: Regenerated.
|
||
* configure: Regenerated.
|
||
|
||
2013-06-01 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR middle-end/57366
|
||
* cgraphunit.c (compile): When weakref is not supported,
|
||
set up transparent aliases before final output pass.
|
||
* varasm.c (assemble_alias): Do not try to do it here.
|
||
|
||
2013-06-01 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR middle-end/57467
|
||
* passes.c (for_per_function): Skip unanalyzed functions.
|
||
|
||
2013-06-01 Jan Hubicka <jh@suse.cz>
|
||
|
||
* lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
|
||
(lto_symtab_merge_symbols_1): ... this one.
|
||
(lto_symtab_merge_cgraph_nodes): Rename to ...
|
||
(lto_symtab_merge_symbols): ... this one; simplify.
|
||
* cgraph.c (same_body_aliases_done): Rename to ...
|
||
(cpp_implicit_aliases_done): ... this one.
|
||
(cgraph_create_function_alias): Update.
|
||
(cgraph_same_body_alias): Update.
|
||
(dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
|
||
(verify_edge_corresponds_to_fndecl): Simplify.
|
||
* cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
|
||
(cgraph_node): Remove same_body_alias.
|
||
(varpool_node): Remove alias_of and extra_name_alias.
|
||
(same_body_aliases_done): Rename to ..
|
||
(cpp_implicit_aliases_done): ... this one.
|
||
(symtab_alias_ultimate_target): Add default parameter.
|
||
(symtab_resolve_alias): New function.
|
||
(fixup_same_cpp_alias_visibility): Declare.
|
||
(cgraph_function_node): Add default parameter.
|
||
(cgraph_node_asm_name): Likewise.
|
||
(cgraph_function_or_thunk_node): Add default parameter; do
|
||
not ICE when it is NULL.
|
||
(varpool_variable_node): Likewise.
|
||
* tree-emutls.c (create_emultls_var): Update.
|
||
(ipa_lower_emutls): Update.
|
||
* cgraphunit.c (cgraph_decide_is_function_needed): Update.
|
||
(cgraph_reset_node): Reset alias info.
|
||
(cgraph_finalize_function): Update.
|
||
(fixup_same_cpp_alias_visibility): Move to symtab.c.
|
||
(analyze_function): Simplify.
|
||
(cgraph_process_same_body_aliases): Simplify.
|
||
(analyze_functions): Fixup same body aliases.
|
||
(handle_alias_pairs): Simplify.
|
||
(assemble_thunk): Update.
|
||
(assemble_thunks_and_aliases): Update.
|
||
(output_weakrefs): Rewrite.
|
||
* lto-cgraph.c (lto_output_node): Rewrite alias handling.
|
||
(lto_output_varpool_node): Likewise.
|
||
(compute_ltrans_boundary): Remve assert.
|
||
(get_alias_symbol): New functoin.
|
||
(input_node): Rewrite alias handling.
|
||
(input_varpool_node): Likewise.
|
||
* ipa-pure-const.c (propagate_pure_const): Fix formating.
|
||
* ipa.c (process_references): Handle weakrefs correctly.
|
||
(symtab_remove_unreachable_nodes): Likewise.
|
||
* trans-mem.c (get_cg_data): Update.
|
||
(ipa_tm_create_version_alias): Update.
|
||
(ipa_tm_execute): Update.
|
||
* symtab.c (dump_symtab_base): Dump aliases.
|
||
(verify_symtab_base): Verify aliases.
|
||
(symtab_node_availability): New function.
|
||
(symtab_alias_ultimate_target): Simplify.
|
||
(fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
|
||
handle all the fixup cases.
|
||
(symtab_resolve_alias): New function.
|
||
* passes.c (ipa_write_summaries): Handle weakrefs.
|
||
* varpool.c (varpool_analyze_node): Simplify.
|
||
(assemble_aliases): Update.
|
||
(varpool_create_variable_alias): Simplify.
|
||
(varpool_extra_name_alias): Simplify.
|
||
* lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
|
||
(lto_symtab_merge_symbols): ... this one.
|
||
|
||
2013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
|
||
|
||
Revert
|
||
PR rtl-optimization/57268
|
||
* sched-deps.c (sched_analyze_2): Flush dependence lists if
|
||
the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
|
||
|
||
2013-06-01 Tobias Burnus <burnus@net-b.de>
|
||
|
||
Partially reverted:
|
||
2013-05-31 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR middle-end/57073
|
||
* tree-ssa-math-opts.c (execute_cse_sincos): Move check
|
||
further up.
|
||
|
||
2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
|
||
|
||
PR rtl-optimization/57268
|
||
* sched-deps.c (sched_analyze_2): Flush dependence lists if
|
||
the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
|
||
|
||
2013-05-31 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
|
||
unordered comparison operators when -fno-trapping-math is in effect
|
||
on the e500.
|
||
* config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
|
||
and implement unordered comparison operators properly on the e500.
|
||
|
||
2013-05-31 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
|
||
for constant scalar integers.
|
||
(simplify_relational_operation_1): Likewise.
|
||
|
||
2013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
|
||
* config/rs6000/rs6000.md (cpu): Reorder. Split long line.
|
||
Fix comment.
|
||
|
||
2013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
|
||
Igor Zamyatin <igor.zamyatin@intel.com>
|
||
|
||
Silvermont (SLM) architecture performance tuning.
|
||
* config/i386/i386.h (enum ix86_tune_indices): Add
|
||
X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
|
||
(TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
|
||
|
||
* config/i386/i386.c (initial_ix86_tune_features)
|
||
<X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
|
||
(ix86_lea_outperforms): Handle Silvermont tuning.
|
||
(ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
|
||
call.
|
||
(ix86_use_lea_for_mov): Likewise.
|
||
(ix86_avoid_lea_for_addr): Likewise.
|
||
(ix86_lea_for_add_ok): Likewise.
|
||
(exact_dependency_1): New function.
|
||
(exact_store_load_dependency): Likewise.
|
||
(ix86_adjust_cost): Handle Silvermont tuning.
|
||
(do_reoder_for_imul): Likewise.
|
||
(swap_top_of_ready_list): New function.
|
||
(ix86_sched_reorder): Changed to handle Silvermont tuning.
|
||
|
||
* config/i386/i386.md (peepholes that split memory operand in fp
|
||
converts): New.
|
||
|
||
2013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
|
||
Remove un-necessary braces.
|
||
|
||
2013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_classify_symbol):
|
||
Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
|
||
|
||
2013-05-31 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR middle-end/57073
|
||
* tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
|
||
|
||
2013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
PR target/56315
|
||
* config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
|
||
* config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
|
||
* config/arm/neon.md (iordi3_neon): Remove.
|
||
(neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
|
||
* config/arm/predicates.md (imm_for_neon_logic_operand):
|
||
Move to earlier in the file.
|
||
(neon_logic_op2): Likewise.
|
||
(arm_iordi_operand_neon): New predicate.
|
||
|
||
2013-05-31 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/57478
|
||
PR tree-optimization/57453
|
||
* tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
|
||
are life as well.
|
||
|
||
2013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
|
||
|
||
* config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
|
||
(*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
|
||
|
||
2013-05-30 Tobias Burnus <burnus@net-b.de>
|
||
Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR middle-end/57073
|
||
* tree-ssa-math-opts.c (execute_cse_sincos): Optimize
|
||
powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
|
||
|
||
2013-05-30 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* rtlanal.c (tablejump_p): Expect table and label to be adjacent.
|
||
|
||
2013-05-30 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
* target.def (register_usage_leveling_p): New hook.
|
||
* targhooks.c (default_register_usage_leveling_p): New.
|
||
* targhooks.h (default_register_usage_leveling_p): New prototype.
|
||
* lra-assigns.c (register_usage_leveling_p): Use the hook.
|
||
* doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
|
||
* doc/tm.texi: Update.
|
||
* config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
|
||
|
||
2013-05-30 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (insv<mode>): New define_expand.
|
||
(*insv_reg<mode>): New define_insn.
|
||
|
||
2013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
PR rtl-optimization/57439
|
||
* postreload.c (move2add_valid_value_p): Check that we have
|
||
a zero subreg_regno_offset when accessing the register in
|
||
the requested mode.
|
||
|
||
2013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
|
||
Igor Zamyatin <igor.zamyatin@intel.com>
|
||
|
||
Silvermont (SLM) architecture pipeline model, tuning and
|
||
insn selection.
|
||
* config.gcc: Add slm config options and target.
|
||
|
||
* config/i386/slm.md: New.
|
||
|
||
* config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
|
||
|
||
* gcc/config/i386/i386-c.c (ix86_target_macros_internal): New case
|
||
PROCESSOR_SLM.
|
||
(ix86_target_macros_internal): Likewise.
|
||
|
||
* gcc/config/i386/i386.c (slm_cost): New cost.
|
||
(m_SLM): New macro flag.
|
||
(initial_ix86_tune_features): Set m_SLM.
|
||
(x86_accumulate_outgoing_args): Likewise.
|
||
(x86_arch_always_fancy_math_387): Likewise.
|
||
(processor_target_table): Add slm cost.
|
||
(cpu_names): Add slm cpu name.
|
||
(x86_option_override_internal): Set SLM ISA.
|
||
(ix86_issue_rate): New case PROCESSOR_SLM.
|
||
(ia32_multipass_dfa_lookahead): Likewise.
|
||
(fold_builtin_cpu): Add slm.
|
||
|
||
* config/i386/i386.h (TARGET_SLM): New target macro.
|
||
(target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
|
||
(processor_type): Add PROCESSOR_SLM.
|
||
|
||
* config/i386/i386.md (cpu): Add new value "slm".
|
||
(slm.md): Include slm.md.
|
||
|
||
2013-05-30 Bernd Schmidt <bernds@codesourcery.com>
|
||
Zhenqiang Chen <zhenqiang.chen@linaro.org>
|
||
|
||
* config/arm/arm-protos.h: Add and update function protos.
|
||
* config/arm/arm.c (use_simple_return_p): New added.
|
||
(thumb2_expand_return): Check simple_return flag.
|
||
* config/arm/arm.md: Add simple_return and conditional simple_return.
|
||
* config/arm/iterators.md: Add iterator for return and simple_return.
|
||
|
||
2013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
|
||
|
||
* config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
|
||
(arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
|
||
(arm_emit_vfp_multi_reg_pop): Likewise.
|
||
(thumb2_emit_ldrd_pop): Likewise.
|
||
(arm_expand_epilogue): Add misc REG_CFA notes.
|
||
(arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
|
||
|
||
2013-05-29 Lawrence Crowl <crowl@google.com>
|
||
|
||
* config/arm/t-arm: Update for below.
|
||
|
||
* config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* config/i386/t-cygming: Update for below.
|
||
|
||
* config/i386/t-interix: Update for below.
|
||
|
||
* config/i386/winnt.c (i386_pe_section_type_flags::htab):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
(i386_find_on_wrapper_list::wrappers): Likewise.
|
||
|
||
* config/ia64/t-ia64: Update for below.
|
||
|
||
* config/ia64/ia64.c (bundle_state_table):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* config/mips/mips.c (mips_reorg_process_insns::htab):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* config/sol2.c (solaris_comdat_htab):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* config/t-sol2: Update for above.
|
||
|
||
2013-05-29 Teresa Johnson <tejohnson@google.com>
|
||
|
||
* passes.c (dump_passes): Use FOR_EACH_FUNCTION since
|
||
functions are not yet marked as defined.
|
||
|
||
2013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
Pat Haugen <pthaugen@us.ibm.com>
|
||
Peter Bergner <bergner@vnet.ibm.com>
|
||
|
||
* config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
|
||
instructions.
|
||
(VEC_A): Likewise.
|
||
(VEC_C): Likewise.
|
||
(vrotl<mode>3): Likewise.
|
||
(vashl<mode>3): Likewise.
|
||
(vlshr<mode>3): Likewise.
|
||
(vashr<mode>3): Likewise.
|
||
|
||
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
|
||
support for power8 V2DI builtins.
|
||
|
||
* config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
|
||
power8 V2DI builtins.
|
||
(vupkhsw): Likewise.
|
||
(vupklsw): Likewise.
|
||
(vaddudm): Likewise.
|
||
(vminsd): Likewise.
|
||
(vmaxsd): Likewise.
|
||
(vminud): Likewise.
|
||
(vmaxud): Likewise.
|
||
(vpkudum): Likewise.
|
||
(vpksdss): Likewise.
|
||
(vpkudus): Likewise.
|
||
(vpksdus): Likewise.
|
||
(vrld): Likewise.
|
||
(vsld): Likewise.
|
||
(vsrd): Likewise.
|
||
(vsrad): Likewise.
|
||
(vsubudm): Likewise.
|
||
(vcmpequd): Likewise.
|
||
(vcmpgtsd): Likewise.
|
||
(vcmpgtud): Likewise.
|
||
(vcmpequd_p): Likewise.
|
||
(vcmpgtsd_p): Likewise.
|
||
(vcmpgtud_p): Likewise.
|
||
(vupkhsw): Likewise.
|
||
(vupklsw): Likewise.
|
||
(vaddudm): Likewise.
|
||
(vmaxsd): Likewise.
|
||
(vmaxud): Likewise.
|
||
(vminsd): Likewise.
|
||
(vminud): Likewise.
|
||
(vpksdss): Likewise.
|
||
(vpksdus): Likewise.
|
||
(vpkudum): Likewise.
|
||
(vpkudus): Likewise.
|
||
(vrld): Likewise.
|
||
(vsld): Likewise.
|
||
(vsrad): Likewise.
|
||
(vsrd): Likewise.
|
||
(vsubudm): Likewise.
|
||
|
||
* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
|
||
support for power8 V2DI instructions.
|
||
|
||
* config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
|
||
power8 V2DI instructions. Combine pack and unpack insns to use an
|
||
iterator for each mode. Check whether a particular mode supports
|
||
Altivec instructions instead of just checking TARGET_ALTIVEC.
|
||
(UNSPEC_VPKUWUM): Likewise.
|
||
(UNSPEC_VPKSHSS): Likewise.
|
||
(UNSPEC_VPKSWSS): Likewise.
|
||
(UNSPEC_VPKUHUS): Likewise.
|
||
(UNSPEC_VPKSHUS): Likewise.
|
||
(UNSPEC_VPKUWUS): Likewise.
|
||
(UNSPEC_VPKSWUS): Likewise.
|
||
(UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
|
||
(UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
|
||
(UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
|
||
(UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
|
||
(UNSPEC_VUPKHSB): Likewise.
|
||
(UNSPEC_VUNPACK_HI_SIGN): Likewise.
|
||
(UNSPEC_VUNPACK_LO_SIGN): Likewise.
|
||
(UNSPEC_VUPKHSH): Likewise.
|
||
(UNSPEC_VUPKLSB): Likewise.
|
||
(UNSPEC_VUPKLSH): Likewise.
|
||
(VI2): Likewise.
|
||
(VI_char): Likewise.
|
||
(VI_scalar): Likewise.
|
||
(VI_unit): Likewise.
|
||
(VP): Likewise.
|
||
(VP_small): Likewise.
|
||
(VP_small_lc): Likewise.
|
||
(VU_char): Likewise.
|
||
(add<mode>3): Likewise.
|
||
(altivec_vaddcuw): Likewise.
|
||
(altivec_vaddu<VI_char>s): Likewise.
|
||
(altivec_vadds<VI_char>s): Likewise.
|
||
(sub<mode>3): Likewise.
|
||
(altivec_vsubcuw): Likewise.
|
||
(altivec_vsubu<VI_char>s): Likewise.
|
||
(altivec_vsubs<VI_char>s): Likewise.
|
||
(altivec_vavgs<VI_char>): Likewise.
|
||
(altivec_vcmpbfp): Likewise.
|
||
(altivec_eq<mode>): Likewise.
|
||
(altivec_gt<mode>): Likewise.
|
||
(altivec_gtu<mode>): Likewise.
|
||
(umax<mode>3): Likewise.
|
||
(smax<mode>3): Likewise.
|
||
(umin<mode>3): Likewise.
|
||
(smin<mode>3): Likewise.
|
||
(altivec_vpkuhum): Likewise.
|
||
(altivec_vpkuwum): Likewise.
|
||
(altivec_vpkshss): Likewise.
|
||
(altivec_vpkswss): Likewise.
|
||
(altivec_vpkuhus): Likewise.
|
||
(altivec_vpkshus): Likewise.
|
||
(altivec_vpkuwus): Likewise.
|
||
(altivec_vpkswus): Likewise.
|
||
(altivec_vpks<VI_char>ss): Likewise.
|
||
(altivec_vpks<VI_char>us): Likewise.
|
||
(altivec_vpku<VI_char>us): Likewise.
|
||
(altivec_vpku<VI_char>um): Likewise.
|
||
(altivec_vrl<VI_char>): Likewise.
|
||
(altivec_vsl<VI_char>): Likewise.
|
||
(altivec_vsr<VI_char>): Likewise.
|
||
(altivec_vsra<VI_char>): Likewise.
|
||
(altivec_vsldoi_<mode>): Likewise.
|
||
(altivec_vupkhsb): Likewise.
|
||
(altivec_vupkhs<VU_char>): Likewise.
|
||
(altivec_vupkls<VU_char>): Likewise.
|
||
(altivec_vupkhsh): Likewise.
|
||
(altivec_vupklsb): Likewise.
|
||
(altivec_vupklsh): Likewise.
|
||
(altivec_vcmpequ<VI_char>_p): Likewise.
|
||
(altivec_vcmpgts<VI_char>_p): Likewise.
|
||
(altivec_vcmpgtu<VI_char>_p): Likewise.
|
||
(abs<mode>2): Likewise.
|
||
(vec_unpacks_hi_v16qi): Likewise.
|
||
(vec_unpacks_hi_v8hi): Likewise.
|
||
(vec_unpacks_lo_v16qi): Likewise.
|
||
(vec_unpacks_hi_<VP_small_lc>): Likewise.
|
||
(vec_unpacks_lo_v8hi): Likewise.
|
||
(vec_unpacks_lo_<VP_small_lc>): Likewise.
|
||
(vec_pack_trunc_v8h): Likewise.
|
||
(vec_pack_trunc_v4si): Likewise.
|
||
(vec_pack_trunc_<mode>): Likewise.
|
||
|
||
* config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
|
||
V2DI builtins.
|
||
(vec_vmaxsd): Likewise.
|
||
(vec_vmaxud): Likewise.
|
||
(vec_vminsd): Likewise.
|
||
(vec_vminud): Likewise.
|
||
(vec_vpksdss): Likewise.
|
||
(vec_vpksdus): Likewise.
|
||
(vec_vpkudum): Likewise.
|
||
(vec_vpkudus): Likewise.
|
||
(vec_vrld): Likewise.
|
||
(vec_vsld): Likewise.
|
||
(vec_vsrad): Likewise.
|
||
(vec_vsrd): Likewise.
|
||
(vec_vsubudm): Likewise.
|
||
(vec_vupkhsw): Likewise.
|
||
(vec_vupklsw): Likewise.
|
||
|
||
2013-05-29 Jan Hubicka <jh@suse.cz>
|
||
|
||
* cgraph.h (symtab_node_base): Add definition, alias and analyzed
|
||
flags; reorder rest of fields in more consistent way.
|
||
(varpool_node): Remove analyzed, finalized and alias.
|
||
(cgraph_ndoe): Likewise.
|
||
(symtab_alias_ultimate_target): New function.
|
||
(cgraph_function_node): Move offline.
|
||
(cgraph_reset_node): Declare.
|
||
(cgraph_comdat_can_be_unshared_p): Remove.
|
||
(varpool_remove_initializer): Declare.
|
||
(varpool_first_defined_variable, varpool_next_defined_variable
|
||
cgraph_first_defined_function, cgraph_next_defined_function): Update.
|
||
(cgraph_function_with_gimple_body_p): Update.
|
||
(varpool_all_refs_explicit_p): Update.
|
||
(symtab_alias_target): New function.
|
||
(cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
|
||
(cgraph_alias_target, varpool_alias_target): .. this one; simplify.
|
||
(cgraph_function_or_thunk_node): Simplify using
|
||
symtab_alias_ultimate_target.
|
||
(varpool_variable_node): Likewise.
|
||
* cgraph.c (cgraph_create_function_alias): Update.
|
||
(cgraph_add_thunk): Update.
|
||
(cgraph_remove_node): Update.
|
||
(dump_cgraph_node): Do not dump removed flags.
|
||
(cgraph_function_body_availability): Update.
|
||
(cgraph_propagate_frequency): Update.
|
||
(verify_cgraph_node): Check sanity of local flag.
|
||
(cgraph_function_node): Move here from cgraph.h; revamp for
|
||
cgraph_function_or_thunk_node.
|
||
* lto-symtab.c (lto_varpool_replace_node): Update.
|
||
(lto_symtab_resolve_can_prevail_p): Update.
|
||
(lto_symtab_merge_cgraph_nodes): Update.
|
||
* ipa-cp.c (determine_versionability, initialize_node_lattices,
|
||
propagate_constants_accross_call, devirtualization_time_bonus,
|
||
ipcp_propagate_stage): Update.
|
||
* tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
|
||
* ipa-inline-transform.c (clone_inlined_nodes,
|
||
preserve_function_body_p): Update.
|
||
* ipa-reference.c (propagate): Update.
|
||
(write_node_summary_p): Update.
|
||
* toplev.c (wrapup_global_declaration_2): Update.
|
||
* cgraphunit.c (cgraph_analyze_function): Rename to ...
|
||
(analyze_function) ... this one.
|
||
(cgraph_process_new_functions): Update.
|
||
(cgraph_reset_node): Export.
|
||
(cgraph_finalize_function): Update.
|
||
(cgraph_add_new_function): Update.
|
||
(process_function_and_variable_attributes): Update.
|
||
(varpool_finalize_decl): Update.
|
||
(symbol_finalized): Remove.
|
||
(symbol_finalized_and_needed): Rename to ...
|
||
(symbol_defined_and_needed): ... update.
|
||
(cgraph_analyze_functions): Update.
|
||
(handle_alias_pairs): Update.
|
||
(mark_functions_to_output): Update.
|
||
(assemble_thunk): Update.
|
||
(output_in_order): Update.
|
||
(output_weakrefs): Update.
|
||
(finalize_compilation_unit): Update.
|
||
* lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
|
||
lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
|
||
input_node, input_varpool_node): Update.
|
||
* dbxout.c (dbxout_expand_expr): Update.
|
||
* cgraphclones.c (cgraph_clone_node): Update.
|
||
(cgraph_copy_node_for_versioning): Update.
|
||
(cgraph_materialize_clone): Update.
|
||
(cgraph_materialize_all_clones): Update.
|
||
* ipa-pure-const.c (analyze_function, pure_const_write_summary,
|
||
propagate_pure_const, propagate_nothrow): Update.
|
||
* lto-streamer-out.c (lto_output, write_symbol): Update.
|
||
* ipa-utils.c (ipa_reverse_postorder): Update.
|
||
* ipa-inline.c (can_inline_edge_p): Update.
|
||
(update_caller_keys, ipa_inline): Update.
|
||
* dwarf2out.c (reference_to_unused,
|
||
premark_types_used_by_global_vars_helper): Update.
|
||
* tree-eh.c (tree_could_trap_p): Update.
|
||
* ipa-split.c (consider_split, execute_split_functions): Update.
|
||
* ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
|
||
has_addr_references_p): Update; move ahead in file for better
|
||
readability.
|
||
(process_references): Simplify.
|
||
(symtab_remove_unreachable_nodes): Update; cleanup way function/var
|
||
bodies are removed.
|
||
(cgraph_comdat_can_be_unshared_p): Make static.
|
||
(cgraph_externally_visible_p): Update.
|
||
(varpool_externally_visible_p): Update.
|
||
(function_and_variable_visibility): Update.
|
||
* trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
|
||
ipa_tm_mark_force_output_node): Update.
|
||
* ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
|
||
estimate_edge_devirt_benefit, inline_generate_summary,
|
||
inline_write_summary): Update.
|
||
* gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
|
||
* ipa-prop.c (ipa_compute_jump_functions): Update.
|
||
(ipa_print_node_params, ipa_prop_read_section,
|
||
ipa_update_after_lto_read, read_replacements_section): Update.
|
||
* varasm.c (mark_decl_referenced): Update.
|
||
(assemble_alias, dump_tm_clone_pairs): Update.
|
||
* tree-inline.c (copy_bb): Update.
|
||
(estimate_num_insns, optimize_inline_calls, tree_function_versioning):
|
||
Update.
|
||
* symtab.c (dump_symtab_base): Print new flags.
|
||
(verify_symtab_base): Verify new flags.
|
||
(symtab_alias_ultimate_target): New function.
|
||
* tree-ssa-structalias.c (get_constraint_for_ssa_var,
|
||
create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
|
||
Update.
|
||
* passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
|
||
Update.
|
||
* i386.c (ix86_get_function_versions_dispatcher,
|
||
ix86_generate_version_dispatcher_body): Update.
|
||
(fold_builtin_cpu): Use varpool_add_new_variable.
|
||
* varpool.c (varpool_remove_initializer): Break out from ...
|
||
(varpool_remove_node): ... this one.
|
||
(dump_varpool_node, varpool_node_for_asm,
|
||
cgraph_variable_initializer_availability, varpool_analyze_node,
|
||
varpool_assemble_decl, varpool_remove_unreferenced_decls,
|
||
varpool_finalize_named_section_flags, varpool_create_variable_alias):
|
||
Update.
|
||
|
||
2013-05-29 Jan Hubicka <jh@suse.cz>
|
||
|
||
* passes.c (init_optimization_passes): Move OMP expansion into lowering.
|
||
|
||
2013-05-29 Easwaran Raman <eraman@google.com>
|
||
|
||
PR tree-optimization/57442
|
||
* tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
|
||
when control exits the main loop.
|
||
|
||
2013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
|
||
|
||
* rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
|
||
and RX600.
|
||
* rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
|
||
* rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
|
||
* rx/t-rx: Add rx100 under multi library matches option for nofpu
|
||
option.
|
||
|
||
2013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
PR tree-optimization/57441
|
||
* gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
|
||
Don't limit size of incr_vec to number of candidates.
|
||
|
||
2013-05-29 Steve Ellcey <sellcey@imgtec.com>
|
||
|
||
* config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
|
||
and mips16 directories.
|
||
* config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
|
||
(MULTILIB_DIRNAMES): Ditto.
|
||
(MULTILIB_EXCEPTIONS): Add new exceptions.
|
||
* config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
|
||
(MULTILIB_DIRNAMES): Ditto.
|
||
(MULTILIB_EXCEPTIONS): Add new exceptions.
|
||
|
||
2012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
|
||
Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
|
||
* config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
|
||
SYMBOL_TINY_ABSOLUTE.
|
||
* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
|
||
SYMBOL_TINY_ABSOLUTE.
|
||
(aarch64_expand_mov_immediate): Likewise.
|
||
(aarch64_classify_symbol): Likewise.
|
||
(aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
|
||
Permit SYMBOL_TINY_ABSOLUTE.
|
||
* config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
|
||
|
||
2013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
|
||
Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
|
||
Refactor if/switch. Replace gcc_assert with if.
|
||
|
||
2013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
|
||
|
||
* config/i386/i386.c (initial_ix86_tune_features): Enable
|
||
FP Reassociation for AMD bdver1 and bdver2.
|
||
|
||
2013-05-29 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
|
||
and IMAGPART_EXPR do not occur within other handled_components.
|
||
|
||
2013-05-29 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
|
||
access on whether the use is in the BB we currently try to
|
||
vectorize.
|
||
(vect_bb_vectorization_profitable_p): Pass the BB we currently
|
||
vectorize to vect_bb_slp_scalar_cost.
|
||
|
||
2013-05-29 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
|
||
computing scalar cost offsetted by stmts that are kept live
|
||
by scalar uses.
|
||
(vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
|
||
for computation of scalar cost.
|
||
|
||
2013-05-28 Steve Ellcey <sellcey@mips.com>
|
||
|
||
* config/mips/mips-cpus.def (mips32r2): Change processor type.
|
||
|
||
2013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
|
||
|
||
* doc/extend.texi (C Extensions): Added documentation about Cilk Plus
|
||
array notation built-in reduction functions.
|
||
* doc/passes.texi (Passes): Added documentation about changes done
|
||
for Cilk Plus.
|
||
* doc/invoke.texi (C Dialect Options): Added documentation about
|
||
the -fcilkplus flag.
|
||
* Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
|
||
(BUILTINS_DEF): Depend on cilkplus.def.
|
||
* builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
|
||
* builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
|
||
* cilkplus.def: New file.
|
||
|
||
2013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
PR rtl-optimization/57439
|
||
* postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
|
||
|
||
2013-05-28 Easwaran Raman <eraman@google.com>
|
||
|
||
PR tree-optimization/57337
|
||
* tree-ssa-reassoc.c (appears_later_in_bb): New function.
|
||
(find_insert_point): Correctly identify the insertion point
|
||
when two statements with the same UID is compared.
|
||
|
||
2013-05-28 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56787
|
||
* tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
|
||
from the list of data references.
|
||
* tree-vect-loop.c (vect_determine_vectorization_factor): Skip
|
||
clobbers.
|
||
(vect_analyze_loop_operations): Likewise.
|
||
(vect_transform_loop): Remove clobbers.
|
||
|
||
2013-05-28 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
|
||
and REALPART_EXPRs have scalar type.
|
||
|
||
2013-05-28 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/57411
|
||
* tree-ssa-copy.c (may_propagate_copy): Cannot propagate
|
||
virtual operands.
|
||
* tree-ssa-dom.c (eliminate_const_or_copy): Special-case
|
||
virtual operand propagation.
|
||
|
||
2013-05-28 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
|
||
destination register for bmasksi_vis.
|
||
(vector_init_bshuffle): Likewise.
|
||
* config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
|
||
|
||
2013-05-28 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* doc/invoke.texi (SPARC Options): Document -mfix-ut699.
|
||
* builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
|
||
mode if the instruction isn't available in the original mode.
|
||
* config/sparc/sparc.opt (mfix-ut699): New option.
|
||
* config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
|
||
(divdf3): Turn into expander.
|
||
(divdf3_nofix): New insn.
|
||
(divdf3_fix): Likewise.
|
||
(divsf3): Disable if -mfix-ut699.
|
||
(sqrtdf2): Turn into expander.
|
||
(sqrtdf2_nofix): New insn.
|
||
(sqrtdf2_fix): Likewise.
|
||
(sqrtsf2): Disable if -mfix-ut699.
|
||
|
||
2013-05-27 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/57412
|
||
* omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
|
||
block for the new loop.
|
||
|
||
2013-05-27 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/57343
|
||
* tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
|
||
use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
|
||
(number_of_iterations_cond): Do not build the folded tree.
|
||
|
||
2013-05-27 Richard Biener <rguenther@suse.de>
|
||
|
||
Revert
|
||
PR middle-end/57381
|
||
* fold-const.c (operand_equal_p): Compare FIELD_DECLs with
|
||
OEP_CONSTANT_ADDRESS_OF retained.
|
||
|
||
PR tree-optimization/57417
|
||
* tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
|
||
for unchanged base.
|
||
(set_ssa_val_to): Compare addresses using
|
||
get_addr_base_and_unit_offset.
|
||
|
||
2013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
PR rtl-optimization/56833
|
||
* postreload.c (move2add_record_mode): New function.
|
||
(move2add_record_sym_value, move2add_valid_value_p): Likewise.
|
||
(move2add_use_add2_insn): Use move2add_record_sym_value.
|
||
(move2add_use_add3_insn): Likewise.
|
||
(reload_cse_move2add): Use move2add_valid_value_p and
|
||
move2add_record_mode. Invalidate call-clobbered and REG_INC
|
||
affected regs by setting reg_mode to VOIDmode.
|
||
(move2add_note_store): Don't pretend the inside of a SUBREG is
|
||
the actual destination. Invalidate single/leading registers by
|
||
setting reg_mode to VOIDmode.
|
||
Use move2add_record_sym_value, move2add_valid_value_p and
|
||
move2add_record_mode.
|
||
|
||
2013-05-27 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/57396
|
||
* tree-affine.c (double_int_constant_multiple_p): Properly
|
||
return false for val == 0 and div != 0.
|
||
|
||
2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/mips/mips.h: Use #elif in preprocessor conditions.
|
||
|
||
2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
PR target/53916
|
||
* config/mips/constraints.md (kl): New constraint.
|
||
* config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
|
||
(divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
|
||
constraint for operand 0. Split after CSE for MIPS16. Emit a move
|
||
from LO for MIPS16.
|
||
(udivmod<mode>4_internal): Likewise udivmod<mode>4.
|
||
|
||
2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
PR target/55777
|
||
* config/mips/mips.c (mips_can_inline_p): New function.
|
||
(TARGET_CAN_INLINE_P): Define.
|
||
|
||
2013-05-25 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* sched-int.h (ds_t, dw_t): Make unsigned int.
|
||
Fix documentation that describes how all the ds_t bits are used.
|
||
Reserve the last bit for delayed-branch scheduling.
|
||
(BITS_PER_DEP_STATUS): Move to ds_t typedef.
|
||
(BITS_PER_DEP_WEAK): Fix definition and documentation.
|
||
(gen_dep_weak_1): Remove prototype.
|
||
* sched-deps.c (get_dep_weak_1): Make static.
|
||
* target.def (speculate_insn, needs_block_p, gen_spec_check,
|
||
get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
|
||
* doc/tm.texi: Regenerate.
|
||
* config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
|
||
|
||
2013-05-24 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
PR debug/56950
|
||
* haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
|
||
|
||
2013-05-24 Nathan Sidwell <nathan@codesourcery.com>
|
||
Sandra Loosemore <sandra@codesourcery.com>
|
||
|
||
* config.gcc (powerpc-*): Allow native for with-cpu.
|
||
|
||
2013-05-24 Jeff Law <law@redhat.com>
|
||
|
||
PR tree-optimization/57124
|
||
* tree-vrp.c (simplify_cond_using_ranges): Only simplify a
|
||
conversion feeding a condition if the range has an overflow
|
||
if -fstrict-overflow. Add warnings for when we do make the
|
||
transformation.
|
||
|
||
2013-05-24 Dehao Chen <dehao@google.com>
|
||
|
||
* tree-cfg.c (locus_discrim_map): Fix the typo.
|
||
(locus_discrim_hasher): Likewise.
|
||
(locus_discrim_hasher::hash): Likewise.
|
||
(locus_discrim_hasher::equal): Likewise.
|
||
|
||
2013-05-24 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR tree-optimization/57294
|
||
* cgraph.h (ipa_record_stmt_references): Declare.
|
||
* cgraphbuild.c (ipa_record_stmt_references): New function.
|
||
(build_cgraph_edges): Use ipa_record_stmt_references.
|
||
(rebuild_cgraph_edges): Likewise.
|
||
(cgraph_rebuild_references): Likewise.
|
||
* ipa-prop.c (ipa_modify_call_arguments): Discard references
|
||
associated with the old statement and build references from the
|
||
newly built statements.
|
||
* ipa-ref.c (ipa_remove_stmt_references): New function.
|
||
* ipa-ref.h (ipa_remove_stmt_references): Declare.
|
||
|
||
2013-05-24 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
* lra-constraints.c (emit_spill_move): Use smaller mode for
|
||
mem-mem moves.
|
||
(check_and_process_move): Consider mem-reg moves for secondary
|
||
too.
|
||
(curr_insn_transform): Don't lose insns emitted before for
|
||
secondary memory moves.
|
||
(inherit_in_ebb): Mark defined reg. Add usage only if it is not a
|
||
reg set up in the current insn.
|
||
|
||
2013-05-24 Dehao Chen <dehao@google.com>
|
||
|
||
* tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
|
||
hash function.
|
||
(locus_descrim_hasher::equal): Likewise.
|
||
(build_gimple_cfg): New discriminator assignment algorithm.
|
||
(make_edges): Likewise.
|
||
(next_discriminator_for_locus): Likewise.
|
||
(same_line_p): Likewise.
|
||
(assign_discriminators): Likewise.
|
||
(make_cond_expr_edges): Likewise.
|
||
(make_gimple_switch_edges): Likewise.
|
||
(make_goto_expr_edges): Likewise.
|
||
(make_gimple_asm_edges): Likewise.
|
||
|
||
2013-05-24 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_print_operand): Change the
|
||
X format specifier to only display bottom 16 bits.
|
||
* config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
|
||
immediate to match for operand 2, since it will be masked.
|
||
|
||
2013-05-24 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/57287
|
||
* tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
|
||
all SSA names that occur in abnormal PHIs.
|
||
|
||
2013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
|
||
|
||
PR tree-ssa/57385
|
||
* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
|
||
that index is not negative.
|
||
|
||
2013-05-24 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR rtl-optimization/55177
|
||
* simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
|
||
(simplify_byte_swapping_operation): New.
|
||
(simplify_binary_operation_1): Call it for AND, IOR and XOR.
|
||
(simplify_relational_operation_1): Deal with BSWAP.
|
||
|
||
2013-05-23 Richard Henderson <rth@redhat.com>
|
||
|
||
PR target/56742
|
||
* config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
|
||
(ix86_reorg): Call it.
|
||
|
||
2013-05-23 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/57379
|
||
* config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
|
||
* config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
|
||
REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
|
||
|
||
2013-05-23 Christian Bruel <christian.bruel@st.com>
|
||
|
||
PR debug/57351
|
||
* config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
|
||
|
||
2013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
|
||
Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
|
||
* config/aarch64/constraints.md (Usa): Remove.
|
||
* doc/md.texi (AArch64 Usa): Remove.
|
||
|
||
2013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
|
||
Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
|
||
* config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
|
||
* config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
|
||
* config/aarch64/predicates.md (aarch64_const_address): Remove.
|
||
(aarch64_mov_operand): Use aarch64_mov_operand_p.
|
||
|
||
2013-05-23 Vidya Praveen <vidyapraveen@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
|
||
instruction (AdvSIMD).
|
||
* config/aarch64/aarch64-builtins.c
|
||
(aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
|
||
* config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
|
||
|
||
2013-05-23 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR middle-end/57347
|
||
* tree.h (contains_bitfld_component_ref_p): Declare.
|
||
* tree-sra.c (contains_bitfld_comp_ref_p): Move...
|
||
* tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
|
||
caller.
|
||
* ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
|
||
not access a bit-field. Assert all final offsets are byte-aligned.
|
||
|
||
2013-05-23 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/57380
|
||
* tree-ssa-phiprop.c (propagate_with_phi): Do not require at
|
||
least one invariant or re-used load.
|
||
* passes.c (init_optimization_passes): Move pass_phiprop before
|
||
pass_forwprop.
|
||
|
||
2013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md
|
||
(aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
|
||
|
||
2013-05-23 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/57381
|
||
* fold-const.c (operand_equal_p): Compare FIELD_DECLs with
|
||
OEP_CONSTANT_ADDRESS_OF retained.
|
||
|
||
2013-05-23 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/57344
|
||
* expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
|
||
don't lower unit. Handle unit not being always BITS_PER_WORD.
|
||
|
||
2013-05-23 Richard Biener <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/57341
|
||
* ira.c (validate_equiv_mem_from_store): Use anti_dependence
|
||
instead of true_dependence.
|
||
|
||
2013-05-22 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* bb-reorder.c (branch_threshold): Make const.
|
||
(exec_threshold): Ditto.
|
||
|
||
2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
Pat Haugen <pthaugen@us.ibm.com>
|
||
Peter Bergner <bergner@vnet.ibm.com>
|
||
|
||
* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
|
||
documentation for the power8 crypto builtins.
|
||
|
||
* config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
|
||
|
||
* config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
|
||
macros for defining power8 builtin functions.
|
||
(BU_P8V_AV_2): Likewise.
|
||
(BU_P8V_AV_P): Likewise.
|
||
(BU_P8V_VSX_1): Likewise.
|
||
(BU_P8V_OVERLOAD_1): Likewise.
|
||
(BU_P8V_OVERLOAD_2): Likewise.
|
||
(BU_CRYPTO_1): Likewise.
|
||
(BU_CRYPTO_2): Likewise.
|
||
(BU_CRYPTO_3): Likewise.
|
||
(BU_CRYPTO_OVERLOAD_1): Likewise.
|
||
(BU_CRYPTO_OVERLOAD_2): Likewise.
|
||
(XSCVSPDP): Fix typo, point to the correct instruction.
|
||
(VCIPHER): Add power8 crypto builtins.
|
||
(VCIPHERLAST): Likewise.
|
||
(VNCIPHER): Likewise.
|
||
(VNCIPHERLAST): Likewise.
|
||
(VPMSUMB): Likewise.
|
||
(VPMSUMH): Likewise.
|
||
(VPMSUMW): Likewise.
|
||
(VPERMXOR_V2DI): Likewise.
|
||
(VPERMXOR_V4SI: Likewise.
|
||
(VPERMXOR_V8HI: Likewise.
|
||
(VPERMXOR_V16QI: Likewise.
|
||
(VSHASIGMAW): Likewise.
|
||
(VSHASIGMAD): Likewise.
|
||
(VPMSUM): Likewise.
|
||
(VPERMXOR): Likewise.
|
||
(VSHASIGMA): Likewise.
|
||
|
||
* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
|
||
__CRYPTO__ if the crypto instructions are available.
|
||
(altivec_overloaded_builtins): Add support for overloaded power8
|
||
builtins.
|
||
|
||
* config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
|
||
support for power8 crypto builtins.
|
||
(builtin_function_type): Likewise.
|
||
(altivec_init_builtins): Add support for builtins that take vector
|
||
long long (V2DI) arguments.
|
||
|
||
* config/rs6000/crypto.md: New file, define power8 crypto
|
||
instructions.
|
||
|
||
2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
Pat Haugen <pthaugen@us.ibm.com>
|
||
Peter Bergner <bergner@vnet.ibm.com>
|
||
|
||
* doc/invoke.texi (Option Summary): Add power8 options.
|
||
(RS/6000 and PowerPC Options): Likewise.
|
||
|
||
* doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
|
||
constraints.md instead of rs6000.h. Reorder w* constraints. Add
|
||
wm, wn, wr documentation.
|
||
|
||
* gcc/config/rs6000/constraints.md (wm): New constraint for VSX
|
||
registers if direct move instructions are enabled.
|
||
(wn): New constraint for no registers.
|
||
(wq): New constraint for quad word even GPR registers.
|
||
(wr): New constraint if 64-bit instructions are enabled.
|
||
(wv): New constraint if power8 vector instructions are enabled.
|
||
(wQ): New constraint for quad word memory locations.
|
||
|
||
* gcc/config/rs6000/predicates.md (const_0_to_15_operand): New
|
||
constraint for 0..15 for crypto instructions.
|
||
(gpc_reg_operand): If VSX allow registers in VSX registers as well
|
||
as GPR and floating point registers.
|
||
(int_reg_operand): New predicate to match only GPR registers.
|
||
(base_reg_operand): New predicate to match base registers.
|
||
(quad_int_reg_operand): New predicate to match even GPR registers
|
||
for quad memory operations.
|
||
(vsx_reg_or_cint_operand): New predicate to allow vector logical
|
||
operations in both GPR and VSX registers.
|
||
(quad_memory_operand): New predicate for quad memory operations.
|
||
(reg_or_indexed_operand): New predicate for direct move support.
|
||
|
||
* gcc/config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
|
||
Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
|
||
(ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
|
||
(POWERPC_MASKS): Add power8 options.
|
||
(power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
|
||
various options.
|
||
|
||
* gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
|
||
Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
|
||
|
||
* gcc/config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
|
||
(-mpower8-fusion): New power8 options.
|
||
(-mpower8-fusion-sign): Likewise.
|
||
(-mpower8-vector): Likewise.
|
||
(-mcrypto): Likewise.
|
||
(-mdirect-move): Likewise.
|
||
(-mquad-memory): Likewise.
|
||
|
||
* gcc/config/rs6000/rs6000.c (power8_cost): Initial definition for
|
||
power8.
|
||
(rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
|
||
registers.
|
||
(rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
|
||
(rs6000_debug_vector_unit): Add p8_vector.
|
||
(rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
|
||
definitions. Also print fusion state.
|
||
(rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
|
||
(rs6000_builtin_mask_calculate): Add power8 builtin support.
|
||
(rs6000_option_override_internal): Add support for power8.
|
||
(rs6000_common_init_builtins): Add debugging for skipped builtins
|
||
if -mdebug=builtin.
|
||
(rs6000_adjust_cost): Add power8 support.
|
||
(rs6000_issue_rate): Likewise.
|
||
(insn_must_be_first_in_group): Likewise.
|
||
(insn_must_be_last_in_group): Likewise.
|
||
(force_new_group): Likewise.
|
||
(rs6000_register_move_cost): Likewise.
|
||
(rs6000_opt_masks): Likewise.
|
||
|
||
* config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
|
||
power8 capable assembler, default to power7 options.
|
||
(TARGET_DIRECT_MOVE): Likewise.
|
||
(TARGET_CRYPTO): Likewise.
|
||
(TARGET_P8_VECTOR): Likewise.
|
||
(VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
|
||
(VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
|
||
(VECTOR_MEM_P8_VECTOR_P): Likewise.
|
||
(VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
|
||
(VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
|
||
(TARGET_XSCVDPSPN): Likewise.
|
||
(TARGET_XSCVSPDPN): Likewsie.
|
||
(TARGET_SYNC_HI_QI): Likewise.
|
||
(TARGET_SYNC_TI): Likewise.
|
||
(MASK_CRYPTO): Likewise.
|
||
(MASK_DIRECT_MOVE): Likewise.
|
||
(MASK_P8_FUSION): Likewise.
|
||
(MASK_P8_VECTOR): Likewise.
|
||
(REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
|
||
temporary used by some of the direct move instructions to get two FP
|
||
temporary registers does not force creation of a stack frame.
|
||
(VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
|
||
(MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
|
||
that any VSX registers are tieable, even if they are also an
|
||
Altivec vector mode.
|
||
(r6000_reg_class_enum): Add wm, wr, wv constraints.
|
||
(RS6000_BTM_P8_VECTOR): Power8 builtin support.
|
||
(RS6000_BTM_CRYPTO): Likewise.
|
||
(RS6000_BTM_COMMON): Likewise.
|
||
|
||
* config/rs6000/rs6000.md (cpu attribute): Add power8.
|
||
* config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
|
||
(enum rs6000_vector): Add power8 vector support.
|
||
|
||
2013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
PR target/19599
|
||
PR target/57340
|
||
* config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
|
||
(any_sibcall_could_use_r3): this and handle indirect calls.
|
||
(arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
|
||
|
||
2013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
|
||
|
||
2013-05-22 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/57349
|
||
* profile.c (branch_prob): Do not split blocks that are
|
||
abnormally receiving from ECF_RETURNS_TWICE functions.
|
||
|
||
2013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
|
||
|
||
* recog.c (offsettable_address_addr_space_p): Fix calculation of
|
||
address mode. Move pointer mode initialization to the same place.
|
||
|
||
2013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
|
||
|
||
* read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
|
||
while it has any effect.
|
||
|
||
2013-05-21 Easwaran Raman <eraman@google.com>
|
||
|
||
PR tree-optimization/57322
|
||
* tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
|
||
UID of the statement added to the BB to be 1.
|
||
|
||
2013-05-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/57331
|
||
* tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
|
||
of conversion from pointer type to integral type with integer.
|
||
|
||
2013-05-21 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR lto/57289
|
||
* ipa-prop.c (ipa_read_node_info): Process param_used and
|
||
controlled_uses in the same order as when writing.
|
||
|
||
2013-05-21 Magnus Granberg <baldrick@free.fr>
|
||
|
||
PR plugins/56754
|
||
* Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
|
||
|
||
2013-05-21 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/57318
|
||
* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
|
||
estimate stmts with side-effects as likely eliminated.
|
||
|
||
2013-05-21 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/57330
|
||
* cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
|
||
preserve the call stmts fntype.
|
||
|
||
2013-05-21 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/57303
|
||
* tree-ssa-sink.c (statement_sink_location): Improve killing
|
||
stmt detection and properly handle self-assignments.
|
||
|
||
2013-05-21 Christian Bruel <christian.bruel@st.com>
|
||
|
||
* dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
|
||
spanning registers. LEAF_REG_REMAP is supported only for contiguous
|
||
registers. Set register size out of the PARALLEL loop.
|
||
|
||
2013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
PR target/56547
|
||
* config/sh/sh.md (fmasf4): Remove empty constraints strings.
|
||
(*fmasf4, *fmasf4_media): New insns.
|
||
|
||
2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
|
||
* config/mips/mips.c (mips_symbol_insns, mips_address_insns)
|
||
(mips_const_insns, mips_split_const_insns, mips_load_store_insns)
|
||
(mips_idiv_insns): Update the comments to say that the returned
|
||
instruction counts are in units of BASE_INSN_LENGTH.
|
||
(mips_adjust_insn_length): Multiply the mips_load_label_num_insns
|
||
by BASE_INSN_LENGTH rather than 4. Add the jump separately,
|
||
using 2 rather than 4 as the length of indirect MIPS16 and
|
||
microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
|
||
length of a NOP. Don't divide MIPS16 lengths by 2.
|
||
(mips16_split_long_branches): Assume a branch is long if the
|
||
length is greater than 4 rather than 8.
|
||
* config/mips/mips.md (length): Give MIPS16 lengths directly,
|
||
rather than multiplying them by 2. Multiply instruction counts
|
||
by BASE_INSN_LENGTH rather than 4.
|
||
(*jump_mips16, tls_get_tp_mips16_<mode>)
|
||
(*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
|
||
|
||
2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/mips/mips.md (extended_mips16): Remove branch case.
|
||
(length): Remove duplicated extended_mips16 test.
|
||
|
||
2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
|
||
|
||
2013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* recog.h (Recog_data): Rename to...
|
||
(recog_data_d): ...this.
|
||
(recog_data): Update accordingly.
|
||
* recog.c (recog_data): Likewise.
|
||
* reload.c (save_recog_data): Likewise.
|
||
* config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
|
||
(picochip_save_recog_data, picochip_restore_recog_data): Likewise.
|
||
|
||
2013-05-17 Julian Brown <julian@codesourcery.com>
|
||
|
||
* gcse.c (compute_ld_motion_mems): If a non-simple MEM is
|
||
found in a REG_EQUAL note, invalidate it.
|
||
|
||
2013-05-17 Easwaran Raman <eraman@google.com>
|
||
|
||
* tree-ssa-reassoc.c (find_insert_point): New function.
|
||
(insert_stmt_after): Likewise.
|
||
(get_def_stmt): Likewise.
|
||
(ensure_ops_are_available): Likewise.
|
||
(not_dominated_by): Likewise.
|
||
(rewrite_expr_tree): Do not move statements beyond what is
|
||
necessary. Remove call to swap_ops_for_binary_stmt...
|
||
(reassociate_bb): ... and move it here.
|
||
(build_and_add_sum): Assign UIDs for new statements.
|
||
(linearize_expr): Likewise.
|
||
(do_reassoc): Renumber gimple statement UIDs.
|
||
|
||
2013-05-17 Jan Hubicka <jh@suse.cz>
|
||
|
||
* lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
|
||
weakrefs.
|
||
* cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
|
||
* cgraphunit.c (handle_alias_pairs): Store target of unresolved
|
||
weakrefs.
|
||
(output_weakrefs): Update.
|
||
|
||
2013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
|
||
Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR middle-end/57276
|
||
* ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
|
||
value that corresponds to the given aggval is found in values vector.
|
||
|
||
2013-05-17 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
|
||
sse, sse2, sse3, ssse3 and sse4a flags to options.
|
||
|
||
2013-05-17 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* gengtype-state.c: (s_expr_writer): New class, to handle
|
||
prettifying of output layout of s-expressions.
|
||
(state_writer): New class, to write out gtype.state.
|
||
(state_written_type_count): Move this variable into member data of
|
||
state_writer.
|
||
(s_expr_writer::s_expr_writer): New code: constructor for new class
|
||
(state_writer::state_writer(): ditto
|
||
(s_expr_writer::write_new_line): New function
|
||
(s_expr_writer::write_any_indent): ditto
|
||
(s_expr_writer::begin_s_expr): ditto
|
||
(s_expr_writer::end_s_expr): ditto
|
||
(write_state_fileloc): convert to method of state_writer...
|
||
(state_writer:: write_state_fileloc): ...and use methods of
|
||
s_expr_writer to write indentation into the gtype.state output file
|
||
to visually represent the hierarchical structure of the list
|
||
structures
|
||
(write_state_fields): ditto, renaming to...
|
||
(state_writer::write_state_fields)
|
||
(write_state_a_string): ditto, renaming to...
|
||
(state_writer::write_state_a_string)
|
||
(write_state_string_option): ditto, renaming to...
|
||
(state_writer::write_state_string_option)
|
||
(write_state_type_option): ditto, renaming to...
|
||
(state_writer::write_state_type_option)
|
||
(write_state_nested_option): ditto, renaming to...
|
||
(state_writer::write_state_nested_option)
|
||
(write_state_option): ditto, renaming to...
|
||
(state_writer::write_state_option)
|
||
(write_state_options): ditto, renaming to...
|
||
(state_writer::write_state_options)
|
||
(write_state_lang_bitmap): ditto, renaming to...
|
||
(state_writer::write_state_lang_bitmap)
|
||
(write_state_version): ditto, renaming to...
|
||
(state_writer::write_state_version)
|
||
(write_state_scalar_type): ditto, renaming to...
|
||
(state_writer::write_state_scalar_type)
|
||
(write_state_string_type): ditto, renaming to...
|
||
(state_writer::write_state_string_type)
|
||
(write_state_undefined_type): ditto, renaming to...
|
||
(state_writer::write_state_undefined_type)
|
||
(write_state_struct_union_type): ditto, renaming to...
|
||
(state_writer::write_state_struct_union_type)
|
||
(write_state_struct_type): ditto, renaming to...
|
||
(state_writer::write_state_struct_type)
|
||
(write_state_user_struct_type): ditto, renaming to...
|
||
(state_writer::write_state_user_struct_type)
|
||
(write_state_lang_struct_type): ditto, renaming to...
|
||
(state_writer::write_state_lang_struct_type)
|
||
(write_state_param_struct_type): ditto, renaming to...
|
||
(state_writer::write_state_param_struct_type)
|
||
(write_state_pointer_type): ditto, renaming to...
|
||
(state_writer::write_state_pointer_type)
|
||
(write_state_array_type): ditto, renaming to...
|
||
(state_writer::write_state_array_type)
|
||
(write_state_gc_used): ditto, renaming to...
|
||
(state_writer::write_state_gc_used)
|
||
(write_state_common_type_content): ditto, renaming to...
|
||
(state_writer::write_state_common_type_content)
|
||
(write_state_type): ditto, renaming to...
|
||
(state_writer::write_state_type)
|
||
(write_state_pair_list): ditto, renaming to...
|
||
(state_writer::write_state_pair_list)
|
||
(write_state_pair): ditto, renaming to...
|
||
(state_writer::write_state_pair)
|
||
(write_state_typedefs): ditto, renaming to...
|
||
(state_writer::write_state_typedefs)
|
||
(write_state_structures): ditto, renaming to...
|
||
(state_writer::write_state_structures)
|
||
(write_state_param_structs): ditto, renaming to...
|
||
(state_writer::write_state_param_structs)
|
||
(write_state_variables): ditto, renaming to...
|
||
(state_writer::write_state_variables)
|
||
(write_state_srcdir): ditto, renaming to...
|
||
(state_writer::write_state_srcdir)
|
||
(write_state_files_list): ditto, renaming to...
|
||
(state_writer::write_state_files_list)
|
||
(write_state_languages): ditto, renaming to...
|
||
(state_writer::write_state_languages)
|
||
(write_state): create a state_writer instance and use it when
|
||
writing out the state file
|
||
|
||
2013-05-17 Mike Stump <mikestump@comcast.net>
|
||
|
||
PR rtl-optimization/57304
|
||
* web.c (union_match_dups): Ensure that DF_REF_LOC exists before
|
||
accessing DF_REF_REAL_LOC.
|
||
|
||
2013-05-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/57281
|
||
PR rtl-optimization/57300
|
||
* config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
|
||
(extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
|
||
what the other splitter did if the registers are dead.
|
||
|
||
2013-05-17 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
|
||
MEM_REF offsets.
|
||
|
||
2013-05-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
|
||
linking.
|
||
|
||
2013-05-17 Marek Polacek <polacek@redhat.com>
|
||
|
||
* tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
|
||
length when doing non-zero store of storing '\0' to '\0'.
|
||
|
||
2013-05-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* tree-vect-patterns.c (vect_recog_rotate_pattern): For
|
||
vect_external_def oprnd1 with loop_vinfo, try to emit
|
||
optional cast, negation and and stmts on the loop preheader
|
||
edge instead of into the pattern def seq.
|
||
|
||
PR tree-optimization/57051
|
||
* fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
|
||
case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
|
||
|
||
2013-05-16 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/rl78/rl78.c (rl78_attribute_table): Add naked.
|
||
(rl78_is_naked_func): New function.
|
||
(rl78_expand_prologue): Skip prologue generation for naked functions.
|
||
(rl78_expand_epilogue): Skip epilogue generation for naked functions.
|
||
* doc/extend.texi (naked): Add RL78 to the list of processors
|
||
that supports this attribute.
|
||
|
||
2013-05-16 Jeff Law <law@redhat.com>
|
||
|
||
* Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
|
||
|
||
2013-05-16 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/driver-i386.c (host_detect_local_cpu): Determine
|
||
cache parameters using detect_caches_amd also for CYRIX,
|
||
NSC and TM2 signatures.
|
||
|
||
2013-05-16 Uros Bizjak <ubizjak@gmail.com>
|
||
Dzianis Kahanovich <mahatma@eu.by>
|
||
|
||
PR target/45359
|
||
PR target/46396
|
||
* config/i386/driver-i386.c (host_detect_local_cpu): Detect
|
||
VIA/Centaur processors and determine their cache parameters
|
||
using detect_caches_amd.
|
||
|
||
2013-05-16 Teresa Johnson <tejohnson@google.com>
|
||
|
||
* cfgrtl.c (verify_hot_cold_block_grouping): Return err.
|
||
(rtl_verify_edges): New function.
|
||
(rtl_verify_bb_insns): Ditto.
|
||
(rtl_verify_bb_pointers): Ditto.
|
||
(rtl_verify_bb_insn_chain): Ditto.
|
||
(rtl_verify_fallthru): Ditto.
|
||
(rtl_verify_bb_layout): Ditto.
|
||
(rtl_verify_flow_info_1): Outline checks into new functions.
|
||
(rtl_verify_flow_info): Ditto.
|
||
|
||
2013-05-16 Steve Ellcey <sellcey@imgtec.com>
|
||
|
||
* cfghooks.c (copy_bbs): Add update_dominance argument.
|
||
* cfghooks.h (copy_bbs): Update prototype.
|
||
* tree-cfg.c (gimple_duplicate_sese_region):
|
||
Add update_dominance argument.
|
||
* tree-flow.h (gimple_duplicate_sese_region): Update prototype.
|
||
* tree-ssa-loop-ch.c (copy_loop_headers): Update
|
||
gimple_duplicate_sese_region call.
|
||
* tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
|
||
Update copy_bbs call.
|
||
* cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
|
||
* trans-mem.c (ipa_uninstrument_transaction): Ditto.
|
||
|
||
2013-05-16 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* tree-vectorizer.h (NUM_PATTERNS): Increment.
|
||
* tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
|
||
vect_recog_rotate_pattern.
|
||
(vect_recog_rotate_pattern): New function.
|
||
|
||
2013-05-16 Jason Merrill <jason@redhat.com>
|
||
|
||
* Makefile.in (LLINKER): New variable.
|
||
(mostlyclean): Remove link mutex.
|
||
* configure.ac: Handle --enable-link-mutex.
|
||
* lock-and-run.sh: New script.
|
||
|
||
2013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
PR target/19599
|
||
* config/arm/arm.c (arm_function_ok_for_sibcall): Add check
|
||
for NULL decl.
|
||
|
||
2013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
|
||
|
||
2013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
|
||
* config/arm/arm.c (next_consecutive_mem): New function.
|
||
(gen_movmem_ldrd_strd): Likewise.
|
||
* config/arm/arm.md (movmemqi): Update condition and code.
|
||
(unaligned_loaddi, unaligned_storedi): New patterns.
|
||
|
||
2013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* config.gcc: Obsolete *-*-solaris2.9*.
|
||
* doc/install.texi (Specific, *-*-solaris2*): Document it.
|
||
|
||
2013-05-16 Richard Biener <rguenther@suse.de>
|
||
|
||
* passes.c (init_optimization_passes): Move pass_parallelize_loops
|
||
earlier, after GRAPHITE transforms and IV canonicalization.
|
||
|
||
2013-05-16 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* omp-low.c (extract_omp_for_data): For collapsed loops,
|
||
if at least one of the loops is known at compile time to
|
||
iterate zero times, set count to 0.
|
||
(expand_omp_regimplify_p): New function.
|
||
(expand_omp_for_generic): For collapsed loops, if at least
|
||
one of the loops isn't known to iterate at least once,
|
||
add runtime check with setting count to 0.
|
||
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
|
||
For unsigned types if it isn't known at compile time that
|
||
the loop will iterate at least once, add runtime check to bypass
|
||
the whole loop if initial condition isn't true.
|
||
|
||
2013-05-16 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
|
||
|
||
2013-05-16 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR middle-end/57286
|
||
* fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
|
||
transformations to avoid an infinite loop.
|
||
|
||
2013-05-16 Marek Polacek <polacek@redhat.com>
|
||
|
||
* tree-scalar-evolution.c (scev_const_prop): Add more dumps.
|
||
|
||
2013-05-15 Leif Ekblad <leif@rdos.net>
|
||
|
||
* config/i386/i386.c (ix86_decompose_address): Use
|
||
DEFAULT_TLS_SEG_REG to access TLS segment register.
|
||
* config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
|
||
* config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
|
||
(TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
|
||
|
||
2013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
PR target/57260
|
||
* config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
|
||
sibling calls to functions that would normally be lazily bound,
|
||
unless $gp is call-clobbered.
|
||
|
||
2013-05-15 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.c (ix86_option_override_internal): Update
|
||
processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
|
||
PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
|
||
non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
|
||
* config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
|
||
of TARGET_3DNOW.
|
||
(*prefetch_3dnow): Enable for TARGET_PRFCHW only.
|
||
|
||
2013-05-15 Andreas Schwab <schwab@suse.de>
|
||
|
||
* config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
|
||
for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
|
||
third operand.
|
||
|
||
2013-05-15 Teresa Johnson <tejohnson@google.com>
|
||
|
||
* loop-unroll.c (report_unroll_peel): Check decision before
|
||
emitting unroll/peel message.
|
||
|
||
2013-05-15 Teresa Johnson <tejohnson@google.com>
|
||
|
||
* function.h (has_bb_partition): New rtl_data flag.
|
||
(bb_reorder_complete): Ditto.
|
||
* cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
|
||
instead of flag_reorder_blocks_and_partition.
|
||
* cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
|
||
with some enhancements.
|
||
(rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
|
||
* bb-reorder.c (connect_traces): Check for has_bb_partition
|
||
instead of flag_reorder_blocks_and_partition.
|
||
(verify_hot_cold_block_grouping): Moved to cfgrtl.c.
|
||
(reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
|
||
verify_hot_cold_block_grouping.
|
||
(partition_hot_cold_basic_blocks): Set has_bb_partition.
|
||
|
||
2013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
PR target/19599
|
||
* config/arm/predicates.md (call_insn_operand): New predicate.
|
||
* config/arm/constraints.md ("Cs", "Ss"): New constraints.
|
||
* config/arm/arm.md (*call_insn, *call_value_insn): Match only
|
||
if insn is not a tail call.
|
||
(*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
|
||
registers.
|
||
* config/arm/arm.h (enum reg_class): New caller save register class.
|
||
(REG_CLASS_NAMES): Likewise.
|
||
(REG_CLASS_CONTENTS): Likewise.
|
||
* config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
|
||
without decls.
|
||
|
||
2013-05-15 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
|
||
of MSG_OPTIMIZED_LOCATIONS.
|
||
* tree-vect-slp.c (vect_make_slp_decision): Likewise.
|
||
(vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
|
||
message.
|
||
* tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
|
||
of MSG_OPTIMIZED_LOCATIONS.
|
||
(execute_vect_slp): Likewise.
|
||
* tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
|
||
(vect_create_cond_for_alias_checks): Likewise.
|
||
* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
|
||
(vect_recog_widen_mult_pattern): Likewise.
|
||
(vect_recog_widen_sum_pattern): Likewise.
|
||
(vect_recog_over_widening_pattern): Likewise.
|
||
(vect_recog_widen_shift_pattern): Likewise.
|
||
(vect_recog_vector_vector_shift_pattern): Likewise.
|
||
(vect_recog_divmod_pattern): Likewise.
|
||
(vect_recog_mixed_size_cond_pattern): Likewise.
|
||
(vect_recog_bool_pattern): Likewise.
|
||
(vect_pattern_recog_1): Likewise.
|
||
|
||
2013-05-15 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
|
||
non-functions to builtin_unreachable.
|
||
* ipa-inline-transform.c (inline_call): Do not assert estimates were
|
||
correct when new direct edges were discovered.
|
||
|
||
2013-05-15 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
|
||
header, print symbol order instead of node uid, print more information
|
||
about indirect edge targets.
|
||
(ipa_make_edge_direct_to_target): Print symbol order instead of node
|
||
uids.
|
||
(ipa_make_edge_direct_to_target): Likewise.
|
||
(remove_described_reference): Likewise.
|
||
(propagate_controlled_uses): Likewise.
|
||
(ipa_print_node_params): Also print symbol order.
|
||
(ipcp_transform_function): Print symbol order instead of node uids.
|
||
* cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
|
||
(cgraph_get_create_real_symbol_node): Likewise.
|
||
* ipa-cp.c (print_lattice): Likewise.
|
||
(print_all_lattices): Likewise.
|
||
(determine_versionability): Likewise.
|
||
(initialize_node_lattices): Likewise.
|
||
(estimate_local_effects): Likewise.
|
||
(update_profiling_info): Likewise.
|
||
(create_specialized_node): Likewise.
|
||
(perhaps_add_new_callers): Likewise.
|
||
(decide_about_value): Likewise.
|
||
(decide_whether_version_node): Likewise.
|
||
(identify_dead_nodes): Likewise.
|
||
* ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
|
||
(dump_inline_summary): Likewise.
|
||
(estimate_node_size_and_time): Likewise.
|
||
(inline_analyze_function): Likewise.
|
||
* ipa-inline.c (report_inline_failed_reason): Likewise.
|
||
(want_early_inline_function_p): Likewise.
|
||
(edge_badness): Likewise.
|
||
(update_edge_key): Likewise.
|
||
(inline_small_functions): Likewise. Add dumping of order to two other
|
||
dumps.
|
||
* ipa-pure-const.c (pure_const_read_summary): Print symbol order
|
||
instead of node uids.
|
||
(propagate_pure_const): Likewise.
|
||
(propagate_pure_const): Likewise.
|
||
* ipa-utils.c (dump_cgraph_node_set): Likewise.
|
||
* lto-cgraph.c (input_node): Explicitly specify we dump uid.
|
||
* lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
|
||
of node uids.
|
||
* tree-pretty-print.c (dump_function_header): Likewise.
|
||
* tree-sra.c (convert_callers_for_node): Dump in traditional format.
|
||
Print symbol order instead of node uids.
|
||
|
||
2013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
* config/s390/s390.c (s390_register_move_cost): Don't impose the
|
||
FPR<->GPR move cost penalty if ldgr/lgdr can be used.
|
||
|
||
2013-05-15 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/57275
|
||
* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
|
||
return value for fail to do runtime alias checks for gather loads.
|
||
|
||
2013-05-15 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR lto/57038
|
||
PR lto/47375
|
||
* lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
|
||
weakrefs are not external.
|
||
(lto_symtab_merge_decls): Fix thinko when dealing with
|
||
non-lto_symtab decls.
|
||
(lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
|
||
(lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
|
||
* varpool.c (dump_varpool_node): Dump more flags.
|
||
|
||
2013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
|
||
|
||
* config/i386/i386.c (processor_alias_table): Add instruction
|
||
FSGSBASE for AMD bdver3 architecture.
|
||
|
||
2013-05-14 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* tree.c (warn_deprecated_use): Print file:line using locus color.
|
||
* diagnostic.c (diagnostic_report_current_module): Print file:line
|
||
and file:line:column using locus color.
|
||
|
||
2013-05-14 Mike Stump <mikestump@comcast.net>
|
||
|
||
* gdbinit.in: Add __null.
|
||
|
||
2013-05-14 Mike Stump <mikestump@comcast.net>
|
||
|
||
* recog.h: Rename struct recog_data to Recog_data.
|
||
* recog.c: Likewise.
|
||
* reload.c (can_reload_into): Likewise.
|
||
* config/picochip/picochip.c: Likewise.
|
||
|
||
2013-05-14 Mike Stump <mikestump@comcast.net>
|
||
|
||
* web.c (union_match_dups): Also check DF_REF_REAL_LOC.
|
||
|
||
2013-05-14 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* resource.h (struct resources): Remove unch_memory member.
|
||
(CLEAR_RESOURCE): Don't clear unch_memory.
|
||
* resource.c (mark_referenced_resources): Don't set it.
|
||
(mark_set_resources): Likewise.
|
||
(mark_target_live_regs): Don't clear it.
|
||
(init_resource_info): Likewise.
|
||
* reorg.c (resource_conflicts_p): Don't compare it.
|
||
(redundant_insn): Don't set it.
|
||
|
||
* rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
|
||
Remove prototypes.
|
||
* emit-rtl.c (next_label): Remove unused function.
|
||
(skip_consecutive_labels, link_cc0_insns): Move to ...
|
||
* reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
|
||
only place where these functions are used, and make them static.
|
||
|
||
2013-05-14 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* fold-const.c (fold_negate_expr): Handle vectors.
|
||
(fold_truth_not_expr): Make it static.
|
||
(fold_invert_truthvalue): New static function.
|
||
(invert_truthvalue_loc): Handle vectors. Do not call
|
||
fold_truth_not_expr directly.
|
||
(fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
|
||
<TRUTH_NOT_EXPR>: Do not cast to boolean.
|
||
(fold_comparison): Handle vector constants.
|
||
(fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
|
||
(fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
|
||
* tree.h (fold_truth_not_expr): Remove declaration.
|
||
|
||
2013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md
|
||
(aarch64_vcond_internal<mode>): Rename to...
|
||
(aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
|
||
(aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
|
||
float modes. Clarify all iterator modes.
|
||
(vcond<mode><mode>): Use new name for vcond expanders.
|
||
(vcond<v_cmp_result><mode>): Likewise.
|
||
(vcondu<mode><mode>: Likewise.
|
||
* config/aarch64/iterators.md (VDQF_COND): New.
|
||
|
||
2013-05-14 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR bootstrap/57266
|
||
* fold-const.c (fold_binary_loc) <shift>: Use an unsigned
|
||
variable for the shift amount. Check that we shift by non-negative
|
||
amounts.
|
||
|
||
2013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
|
||
|
||
PR target/42017
|
||
* config/arm/arm.h (EPILOGUE_USES): Only return true
|
||
for LR_REGNUM after epilogue_completed.
|
||
|
||
2013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
* config/avr/avr.c (avr_encode_section_info): Bail out if the type
|
||
is error_mark_node.
|
||
|
||
2013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
PR target/57261
|
||
* configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
|
||
and Solaris 11+/x86 with gld.
|
||
* configure: Regenerate.
|
||
|
||
2013-05-14 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* expmed.c (expand_shift_1): Canonicalize rotates by
|
||
constant bitsize / 2 to bitsize - 1.
|
||
* simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
|
||
case ROTATERT>: Likewise.
|
||
|
||
Revert:
|
||
2013-05-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/i386/i386.md (rotateinv): New code attr.
|
||
(*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
|
||
*<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
|
||
roll $31, %eax, etc.
|
||
|
||
2013-05-14 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/57235
|
||
* tree-eh.c (sink_clobbers): Give up for successors with
|
||
multiple predecessors and no virtual uses.
|
||
|
||
2013-05-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
|
||
* config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
|
||
|
||
2013-05-14 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/57251
|
||
* expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
|
||
the case when both op0 and op1 have VOIDmode.
|
||
|
||
2013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
|
||
|
||
* config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
|
||
in multiply-accumulate mode.
|
||
|
||
2013-05-13 Guozhi Wei <carrot@google.com>
|
||
|
||
* dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
|
||
|
||
2013-05-13 Kai Tietz <ktietz@redhat.com>
|
||
|
||
PR target/56975
|
||
* config/i386/cygming.h (TARGET_PECOFF): Define as true.
|
||
* config/i386/i386.h (TARGET_PECOFF): Define by default as false.
|
||
(PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
|
||
* config/i386/i386.c (ix86_option_override_internal): Likewise.
|
||
(ix86_expand_prologue): Likewise.
|
||
(ix86_expand_split_stack_prologue): Likewise.
|
||
(legitimate_pic_address_disp_p): Likewise.
|
||
(legitimize_pic_address): Likewise.
|
||
(legitimize_tls_address): Likewise.
|
||
(legitimize_pe_coff_symbol): Likewise.
|
||
(output_pic_addr_const): Likewise.
|
||
(construct_plt_address): Likewise.
|
||
(ix86_expand_call): Likewise.
|
||
(x86_output_mi_thunk): Likewise.
|
||
(x86_function_profiler): Likewise.
|
||
|
||
2013-05-13 Sofiane Naci <sofiane.naci@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
|
||
similar switch cases.
|
||
(aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
|
||
(aarch64_simd_mov_to_<mode>low): Delete.
|
||
(aarch64_simd_mov_to_<mode>high): Delete.
|
||
(move_lo_quad_<mode>): Add w<-r alternative.
|
||
(aarch64_simd_move_hi_quad_<mode>): Likewise.
|
||
(aarch64_simd_mov_from_*): Update type attribute.
|
||
* config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
|
||
statement.
|
||
|
||
2013-05-13 Jan Hubicka <jh@suse.cz>
|
||
|
||
* mode-switching.c (optimize_mode_switching): Set correct RTL profile.
|
||
* config/i386/i386.c (ix86_compute_frame_layout,
|
||
ix86_expand_epilogue, emit_i387_cw_initialization,
|
||
ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
|
||
ix86_local_alignment): Fix use of size/speed predicates.
|
||
|
||
2013-05-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/45216
|
||
PR tree-optimization/57157
|
||
* tree-ssa-forwprop.c (simplify_rotate): Only recognize
|
||
the (-Y) & (B - 1) variant if OP is |.
|
||
* expmed.c (expand_shift_1): For rotations by const0_rtx just
|
||
return shifted. Use (-op1) & (prec - 1) as other_amount
|
||
instead of prec - op1.
|
||
|
||
2013-05-13 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR middle-end/42371
|
||
* ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
|
||
(ipa_constant_data): New type.
|
||
(ipa_jump_func): Use ipa_constant_data to hold information about
|
||
constant jump functions.
|
||
(ipa_get_jf_constant): Adjust to jump function type changes.
|
||
(ipa_get_jf_constant_rdesc): New function.
|
||
(ipa_param_descriptor): New field controlled_uses.
|
||
(ipa_get_controlled_uses): New function.
|
||
(ipa_set_controlled_uses): Likewise.
|
||
* ipa-ref.h (ipa_find_reference): Declare.
|
||
* ipa-prop.c (ipa_cst_ref_desc): New type.
|
||
(ipa_print_node_jump_functions_for_edge): Adjust for jump function type
|
||
changes.
|
||
(ipa_set_jf_constant): Likewise. Also create reference descriptions.
|
||
New parameter cs. Adjust all callers.
|
||
(ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
|
||
(remove_described_reference): New function.
|
||
(jfunc_rdesc_usable): Likewise.
|
||
(try_make_edge_direct_simple_call): Decrement controlled use count,
|
||
attempt to remove reference if it hits zero.
|
||
(combine_controlled_uses_counters): New function.
|
||
(propagate_controlled_uses): Likewise.
|
||
(ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
|
||
(ipa_edge_duplication_hook): Duplicate reference descriptions.
|
||
(ipa_print_node_params): Print described use counter.
|
||
(ipa_write_jump_function): Adjust to jump function type changes.
|
||
(ipa_read_jump_function): New parameter CS, pass it to
|
||
ipa_set_jf_constant. Adjust caller.
|
||
(ipa_write_node_info): Stream controlled use count
|
||
(ipa_read_node_info): Likewise.
|
||
* cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
|
||
asserting.
|
||
* ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
|
||
count. Remove cloning-added reference if it reaches zero.
|
||
* ipa-ref.c (ipa_find_reference): New function.
|
||
|
||
2013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
|
||
|
||
* config/i386/i386.c (processor_target_table): Modified default
|
||
alignment values for AMD BD and BT architectures.
|
||
|
||
2013-05-13 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* tree-vect-generic.c (uniform_vector_p): Move ...
|
||
* tree.c (uniform_vector_p): ... here.
|
||
* tree.h (uniform_vector_p): Declare it.
|
||
* fold-const.c (fold_binary_loc) <shift>: Turn the second argument
|
||
into a scalar.
|
||
|
||
2013-05-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/57230
|
||
* tree-ssa-strlen.c (handle_char_store): Record length for
|
||
array store from STRING_CST.
|
||
|
||
PR tree-optimization/57230
|
||
* tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
|
||
check.
|
||
|
||
2013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
* config/epiphany/epiphany.c (epiphany_init): Check size of
|
||
NUM_MODES_FOR_MODE_SWITCHING.
|
||
(epiphany_expand_prologue):
|
||
Remove CONFIG_REGNUM initial value handling code.
|
||
(epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
|
||
(epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
|
||
(emit_set_fp_mode, epiphany_mode_after): Likewise.
|
||
(epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
|
||
Don't return 1 for FP_MODE_NONE.
|
||
* config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
|
||
Add value for EPIPHANY_MSW_ENTITY_CONFIG.
|
||
(EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
|
||
* config/epiphany/epiphany.md (save_config): New pattern.
|
||
|
||
2013-05-12 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
|
||
|
||
2013-05-10 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (memory): Handle sseishft1.
|
||
* config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
|
||
(*vec_extractv2di_1): Ditto.
|
||
|
||
2013-05-10 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
* lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
|
||
saved registers.
|
||
|
||
2013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||
|
||
* config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
|
||
Add mthumb/march=armv7-a multilib.
|
||
Add mthumb/march=armv7-r multilib.
|
||
Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
|
||
|
||
2013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||
|
||
* config/v850/t-rtems: Add more multilibs.
|
||
|
||
2013-05-10 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/57214
|
||
* tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
|
||
not propagate from SSA names that occur in abnormal PHI nodes.
|
||
|
||
2013-05-10 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* stor-layout.c (element_precision): New function.
|
||
* machmode.h (element_precision): Declare it.
|
||
* tree.c (build_minus_one_cst): New function.
|
||
(element_precision): Likewise.
|
||
* tree.h (build_minus_one_cst): Declare new function.
|
||
(element_precision): Likewise.
|
||
* fold-const.c (operand_equal_p): Use element_precision.
|
||
(fold_binary_loc): Handle vector types.
|
||
* convert.c (convert_to_integer): Use element_precision.
|
||
* gimple.c (iterative_hash_canonical_type): Handle complex and vectors
|
||
separately.
|
||
|
||
2013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
|
||
(m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
|
||
(m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
|
||
(m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
|
||
* config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
|
||
(m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
|
||
(m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
|
||
(m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
|
||
* config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
|
||
(Uuw8): New constraints.
|
||
(Usb4): Move into alphabetical order.
|
||
* config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
|
||
(sd8_operand, ub8_operand, uw8_operand): New predicates.
|
||
* config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
|
||
previously unnamed patterns.
|
||
(*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
|
||
(*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
|
||
(*slt<u>_<GPR:mode><GPR2:mode>_mips16)
|
||
(*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
|
||
of set_attr_alternative/if_then_else. Use extended_mips16 instead
|
||
of specific lengths.
|
||
|
||
2013-05-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/i386/i386.md (rotateinv): New code attr.
|
||
(*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
|
||
*<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
|
||
roll $31, %eax, etc.
|
||
|
||
PR tree-optimization/45216
|
||
PR tree-optimization/57157
|
||
* tree-ssa-forwprop.c (simplify_rotate): New function.
|
||
(ssa_forward_propagate_and_combine): Call it.
|
||
|
||
2013-05-10 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
|
||
disable peeling when we version for aliasing.
|
||
(vector_alignment_reachable_p): Honor explicit user alignment.
|
||
(vect_supportable_dr_alignment): Likewise.
|
||
* tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
|
||
STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
|
||
* tree-vect-loop.c (vect_transform_loop): First apply versioning,
|
||
then peeling to arrange for the cost-model check to come first.
|
||
|
||
2013-05-10 Alan Modra <amodra@gmail.com>
|
||
|
||
* configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
|
||
(HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
|
||
* configure: Regenerate.
|
||
|
||
2013-05-10 Alan Modra <amodra@gmail.com>
|
||
|
||
PR target/55033
|
||
* varasm.c (default_elf_select_section): Move !DECL_P check..
|
||
(get_named_section): ..to here before calling get_section_name.
|
||
Adjust assertion.
|
||
(default_section_type_flags): Add DECL_P check.
|
||
* config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
|
||
* config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
|
||
|
||
2013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
* config/epiphany/epiphany.c (epiphany_expand_prologue):
|
||
When using gen_stack_adjust_str with a register offset, add a
|
||
REG_FRAME_RELATED_EXPR note.
|
||
|
||
2013-05-09 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
|
||
(*vec_extractv4si_zext_mem): Ditto.
|
||
(*vec_extractv2di): Add 0->x and x->x alternatives.
|
||
* config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
|
||
* config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
|
||
|
||
2013-05-09 Jason Merrill <jason@redhat.com>
|
||
|
||
N3639 C++1y VLA support
|
||
* gimplify.c (gimplify_vla_decl): Don't touch an existing
|
||
DECL_VALUE_EXPR.
|
||
|
||
* tree.c (build_constructor_va): New.
|
||
* tree.h: Declare it.
|
||
|
||
2013-05-09 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR lto/57084
|
||
* gimple-fold.c (canonicalize_constructor_val): Call
|
||
cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
|
||
|
||
2013-05-09 Jan Hubicka <jh@suse.cz>
|
||
Richard Biener <rguenther@suse.de>
|
||
|
||
PR lto/54095
|
||
* symtab.c (symtab_make_decl_local): Do not add private names.
|
||
|
||
2013-05-09 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR lto/54095
|
||
* symtab.c (insert_to_assembler_name_hash): Handle clones.
|
||
(unlink_from_assembler_name_hash): Likewise.
|
||
(symtab_prevail_in_asm_name_hash, symtab_register_node,
|
||
symtab_unregister_node, symtab_initialize_asm_name_hash,
|
||
change_decl_assembler_name): Update.
|
||
|
||
2013-05-09 Sofiane Naci <sofiane.naci@arm.com>
|
||
|
||
* config/aarch64/aarch64.md: New movtf split.
|
||
(*movtf_aarch64): Update.
|
||
(aarch64_movdi_tilow): Handle TF modes and rename to
|
||
aarch64_movdi_<mode>low.
|
||
(aarch64_movdi_tihigh): Handle TF modes and rename to
|
||
aarch64_movdi_<mode>high
|
||
(aarch64_movtihigh_di): Handle TF modes and rename to
|
||
aarch64_mov<mode>high_di
|
||
(aarch64_movtilow_di): Handle TF modes and rename to
|
||
aarch64_mov<mode>low_di
|
||
(aarch64_movtilow_tilow): Remove spurious whitespace.
|
||
* config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
|
||
splits.
|
||
(aarch64_print_operand): Update.
|
||
|
||
2013-05-09 Alan Modra <amodra@gmail.com>
|
||
|
||
* configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
|
||
powerpc64le.
|
||
* configure: Regenerate.
|
||
|
||
2013-05-08 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
|
||
splitter preparation statements.
|
||
* config/i386/sse.md (*vec_extract* splitters): Ditto.
|
||
(*avx_vperm_broadcast_<mode>): Use adjust_address instead of
|
||
adjust_address_nv.
|
||
|
||
2013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* gimple-ssa-strength-reduction.c (count_candidates): Change
|
||
return value to int.
|
||
(analyze_candidates_and_replace): Change type of length to int.
|
||
|
||
2013-05-08 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
|
||
(*vec_extract<mode>): Use VI12_128 mode iterator.
|
||
(*vec_extract<mode>_mem): Ditto.
|
||
(*vec_extract*_mem splitters): Merge splitters using VI_128 mode
|
||
attribute.
|
||
|
||
2013-05-08 Diego Novillo <dnovillo@google.com>
|
||
|
||
PR bootstrap/54659
|
||
|
||
Revert:
|
||
2012-08-17 Diego Novillo <dnovillo@google.com>
|
||
|
||
PR bootstrap/54281
|
||
* configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
|
||
* config.in: Regenerate.
|
||
* configure: Regenerate.
|
||
* intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
|
||
|
||
2013-05-08 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR lto/54095
|
||
* cgraph.c (cgraph_make_node_local_1): Se unique_name.
|
||
* cgraph.h (symtab_node_base): Add unique_name.
|
||
* lto-cgraph.c (lto_output_node, lto_output_varpool_node,
|
||
input_overwrite_node, input_varpool_node): Stream unique_name.
|
||
* cgraphclones.c (cgraph_create_virtual_clone,
|
||
cgraph_function_versioning): Set unique_name.
|
||
* ipa.c (function_and_variable_visibility): Set unique_name.
|
||
|
||
2013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
|
||
(alloc_cand_and_find_basis): Restrict conditional candidate
|
||
processing to CAND_MULTs.
|
||
|
||
2013-05-08 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR lto/54095
|
||
lto-symtab.c (lto_symtab_symbol_p): New function.
|
||
(lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
|
||
lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
|
||
lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
|
||
Skip static symbols.
|
||
|
||
2013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR tree-optimization/57200
|
||
* tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
|
||
Only call inform if the preceding warning_at returns true.
|
||
|
||
2013-05-07 Han Shen <shenhan@google.com>
|
||
|
||
* cfgexpand.c (record_or_union_type_has_array_p): New function.
|
||
(expand_used_vars): Add logic handling '-fstack-protector-strong'.
|
||
* common.opt (fstack-protector-strong): New option.
|
||
* doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
|
||
* doc/invoke.texi (Optimization Options): Document
|
||
"-fstack-protector-strong".
|
||
* gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
|
||
|
||
2013-05-06 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* config/mips/mips.c (mips_machine_reorg2): Return 0.
|
||
|
||
2013-05-07 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
* ira.c (update_equiv_regs): Add insn having equiv memory even if
|
||
it is not lhs of the insn.
|
||
(setup_reg_equiv): Remove insn having equiv memory which it is not
|
||
lhs of the insn.
|
||
* lra-constraints.c (process_address): Try to improve generation
|
||
code for address base + disp.
|
||
(lra_constraints): Make correct the code for checking insn setting
|
||
up backward equivalence. Remove insn only if it is in the init
|
||
insn list.
|
||
* lra-eliminations.c (update_reg_eliminate): Change return value.
|
||
(lra_eliminate): Use the result.
|
||
|
||
2013-05-07 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/sse.md (ssescalarnummask): New mode attribute.
|
||
(PEXTR_MODE, PEXTR_MODEx): New mode iterators.
|
||
(*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
|
||
*sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
|
||
register target operands.
|
||
(*vec_extractv8hi_sse2): New pattern.
|
||
(*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
|
||
(*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
|
||
(*vec_extract<mode>_mem): New insn and split pattern.
|
||
|
||
2013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
|
||
|
||
* config/arm/arm.c (arm_asan_shadow_offset): New function.
|
||
(TARGET_ASAN_SHADOW_OFFSET): Define.
|
||
* config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
|
||
(LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
|
||
|
||
2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
|
||
(incr_vec_index): Return -1 if increment not found.
|
||
(create_add_on_incoming_edge): Assert if increment not found.
|
||
(record_increment): Limit number of increments recorded.
|
||
(all_phi_incrs_profitable): Return false if an increment not found.
|
||
(replace_profitable_candidates): Don't process increments that were
|
||
not recorded.
|
||
(analyze_candidates_and_replace): Limit size of incr_vec.
|
||
|
||
2013-05-07 Richard Biener <rguenther@suse.de>
|
||
|
||
* calls.c (special_function_p): setjmp-like functions are leaf.
|
||
* builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
|
||
* tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
|
||
|
||
2013-05-07 Sofiane Naci <sofiane.naci@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
|
||
(aarch64_simd_mov<mode>): New expander.
|
||
(aarch64_simd_mov_to_<mode>low): New instruction pattern.
|
||
(aarch64_simd_mov_to_<mode>high): Likewise.
|
||
(aarch64_simd_mov_from_<mode>low): Likewise.
|
||
(aarch64_simd_mov_from_<mode>high): Likewise.
|
||
(aarch64_dup_lane<mode>): Update.
|
||
(aarch64_dup_lanedi): New instruction pattern.
|
||
* config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
|
||
* config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
|
||
|
||
2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
|
||
(replace_mult_candidate): Remove unnecessary argument; remove
|
||
unnecessary parameter from call to introduce_cast_before_cand.
|
||
(replace_unconditional_candidate): Remove unnecessary parameter
|
||
from call to replace_mult_candidate.
|
||
(replace_conditional_candidate): Likewise.
|
||
(insert_initializers): Use make_temp_ssa_name.
|
||
(introduce_cast_before_cand): Remove unnecessary argument; use
|
||
make_temp_ssa_name.
|
||
(replace_one_candidate): Remove unnecessary argument; remove
|
||
unnecessary parameter from calls to introduce_cast_before_cand.
|
||
(replace_profitable_candidates): Remove unnecessary parameters
|
||
from calls to replace_one_candidate.
|
||
|
||
2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
|
||
phi def as possibly hiding a basis for a CAND_ADD whose operands
|
||
have been commuted in the analysis.
|
||
(alloc_cand_and_find_basis): Add parms to call to find_phi_def.
|
||
|
||
2013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
|
||
|
||
* config/aarch64/aarch64.md
|
||
(cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
|
||
shift value between 0-4.
|
||
|
||
2013-05-07 Richard Biener <rguenther@suse.de>
|
||
|
||
* double-int.h (rshift): New overload.
|
||
* double-int.c (rshift): New function.
|
||
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
|
||
(create_reference_ops_from_ref): Remove.
|
||
(vn_reference_insert): Use shared ops for constructing the
|
||
reference and copy it.
|
||
|
||
2013-05-07 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/57190
|
||
* tree-eh.c (sink_clobbers): Properly propagate
|
||
SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
|
||
|
||
2013-05-07 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/57149
|
||
* tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
|
||
(can_skip_redundant_opnd, compute_uninit_opnds_pos,
|
||
collect_phi_def_edges, execute_late_warn_uninitialized): Use
|
||
uninit_undefined_value_p instead of ssa_undefined_value_p.
|
||
|
||
PR debug/57184
|
||
* expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
|
||
for modifier == EXPAND_INITIALIZER.
|
||
|
||
2013-05-07 Anton Blanchard <anton@samba.org>
|
||
|
||
* configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
|
||
for powerpc64 little endian.
|
||
* configure: Regenerate.
|
||
|
||
2013-05-06 Graham Stott <grahams@btinternet.com>
|
||
|
||
* expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
|
||
mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
|
||
wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
|
||
shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
|
||
|
||
2013-05-06 Graham Stott <grahams@btinternet.com>
|
||
|
||
* gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
|
||
codes which allow non-lvalues.
|
||
|
||
2013-05-06 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
|
||
components are all 1s.
|
||
(integer_minus_onep): New function.
|
||
* tree.h (integer_minus_onep): Declare it.
|
||
* fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
|
||
integer_minus_onep instead of integer_all_onesp.
|
||
|
||
2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
PR target/52933
|
||
* config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
|
||
variations of these patterns.
|
||
|
||
2013-05-06 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (isa): Add x64_sse4 member.
|
||
(enabled): Handle x64_sse4.
|
||
(*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
|
||
instruction for 64bit SSE4_1 targets. Update insn attributes.
|
||
(*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
|
||
instruction for SSE4_1 targets. Update insn attributes.
|
||
* config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
|
||
with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
|
||
(*vec_extractv2di_1): Merge with *sse4_1_pextrq having
|
||
const_1 selector.
|
||
(*vec_extractv4si): Rename from *sse4_1_pextrd.
|
||
(*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
|
||
(*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
|
||
|
||
2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
PR target/57108
|
||
* config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
|
||
|
||
2013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
|
||
|
||
* final.c (do_assembler_dialects): Don't handle curly braces and
|
||
vertical bar escaped by % as dialect delimiters.
|
||
(output_asm_insn): Print curly braces and vertical bar if escaped
|
||
by % and ASSEMBLER_DIALECT defined.
|
||
* doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
|
||
* doc/tm.texi: Regenerated.
|
||
|
||
2013-05-06 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* config/mips/mips.c: Include tree-pass.h.
|
||
(mips_reorg): Split in pre- and post-dbr_schedule parts.
|
||
(mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
|
||
(pass_mips_machine_reorg2): New machine specific pass.
|
||
(insert_pass_mips_machine_reorg2): New pass plugin definition.
|
||
(mips_option_override): Register the new pass.
|
||
* rtl.h (cleanup_barriers): Remove prototype.
|
||
(dbr_schedule): Likewise.
|
||
* jump.c (cleanup_barriers): Make static.
|
||
* reorg.c (dbr_schedule): Likewise.
|
||
|
||
2013-05-06 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/57185
|
||
* tree-parloops.c (add_field_for_reduction): Handle anonymous
|
||
SSA names properly.
|
||
|
||
2013-05-06 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/57106
|
||
* config/i386/i386.c (add_parameter_dependencies): Add dependence
|
||
between "first_arg" and "insn", not "last" and "insn".
|
||
|
||
2013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
|
||
(find_candidates_in_block): Re-enable slsr_process_phi.
|
||
(create_phi_basis): Fix double counting of candidate adjustment.
|
||
|
||
2013-05-06 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/57147
|
||
* tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
|
||
the edge is also fallthru, preserve it and just clear the
|
||
abnormal flag.
|
||
* tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
|
||
also complex, preserve that and just clear the fallthru flag.
|
||
* tree-inline.c (update_ssa_across_abnormal_edges): Also
|
||
update virtual operands.
|
||
|
||
2013-05-06 Alan Modra <amodra@gmail.com>
|
||
|
||
* config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
|
||
(LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
|
||
* config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
|
||
* config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
|
||
(LINK_TARGET_SPEC): Use ENDIAN_SELECT.
|
||
* config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
|
||
|
||
2013-05-06 Alan Modra <amodra@gmail.com>
|
||
|
||
* config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
|
||
(ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
|
||
(DEFAULT_ASM_ENDIAN): Define.
|
||
(CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
|
||
* config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
|
||
Update -K PIC clause from sysv4.h.
|
||
(ASM_SPEC_COMMON): Use ENDIAN_SELECT.
|
||
(LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
|
||
|
||
2013-05-06 Alan Modra <amodra@gmail.com>
|
||
|
||
* config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
|
||
twice for little-endian.
|
||
(ashrdi3_no_power, ashrdi3): Support little-endian.
|
||
|
||
2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
PR target/55303
|
||
* config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
|
||
* config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
|
||
related expanders.
|
||
* config/sh/iterators.md (SMIN_SMAX): New code iterator.
|
||
* config/sh/predicates.md (arith_reg_or_0_or_1_operand,
|
||
clips_min_const_int, clips_max_const_int, clipu_max_const_int):
|
||
New predicates.
|
||
|
||
2013-05-05 Steven Bosscher <steven@gcc.gnu.org>
|
||
John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
|
||
* config/pa/pa.opt: Make mbig-switch a no-op.
|
||
* config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
|
||
(CASE_VECTOR_MODE): Always return SImode.
|
||
(ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
|
||
for the !TARGET_BIG_SWITCH case.
|
||
* config/pa/pa-linux.h: Likewise.
|
||
* config/pa/pa-openbsd.h: Likewise.
|
||
* config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
|
||
* config/pa/pa.md (short_jump): Remove define_insn.
|
||
(casesi): Remove code for the !TARGET_BIG_SWITCH case.
|
||
(casesi0): Remove define_insn.
|
||
(type): Remove btable_branch.
|
||
(pa_combine_type): Likewise.
|
||
(in_nullified_branch_delay): Likewise.
|
||
(in_call_delay): Likewise.
|
||
(define_delay): Likewise.
|
||
(define_insn_reservation "Z3"): Likewise.
|
||
(define_insn_reservation "Z4"): Likewise.
|
||
* config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
|
||
(pa_adjust_insn_length): Remove adjustment for btable branches.
|
||
* doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
|
||
and mno-big-switch
|
||
|
||
2013-05-05 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
|
||
from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
|
||
Add m->r,x alternatives.
|
||
(*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
|
||
splitters using SWI48x mode iterator.
|
||
(*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
|
||
TARGET_64BIT. Add m->x alternative.
|
||
(*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
|
||
Add o->x alternative. Enable for TARGET_SSE.
|
||
(sse_storeq): Remove expander.
|
||
(*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
|
||
with memory input operand.
|
||
(*vec_extractv2di_1 splitter): New.
|
||
(*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
|
||
* config/i386/i386.md (ssevecmodelower): New mode attribute.
|
||
|
||
2013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
|
||
(INT_LOWPART): Delete.
|
||
(extract_MB): Adjust.
|
||
(extract_ME): Adjust.
|
||
(print_operand): Adjust.
|
||
|
||
2013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/predicates.md (reg_or_add_cint_operand,
|
||
reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
|
||
(reg_or_logical_cint_operand, easy_fp_constant,
|
||
logical_const_operand): Delete "CONST_DOUBLE" case.
|
||
* config/rs6000/rs6000.c (num_insns_constant_wide): Delete
|
||
"HOST_BITS_PER_WIDE_INT == 64" test.
|
||
(num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
|
||
(build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
|
||
(rs6000_emit_set_const): Delete CONST_DOUBLE case.
|
||
(rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
|
||
test.
|
||
(includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
|
||
CONST_DOUBLE DImode/VOIDmode case.
|
||
(INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
|
||
(print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
|
||
CONST_DOUBLE VOIDmode case.
|
||
(output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
|
||
(rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
|
||
* config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
|
||
Delete CONST_DOUBLE case.
|
||
(splitters for mov FMOVE64 const_double): Delete
|
||
"HOST_BITS_PER_WIDE_INT == 32" case. Delete
|
||
"HOST_BITS_PER_WIDE_INT >= 64" test.
|
||
(splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
|
||
case.
|
||
(mov DI const_double): Delete.
|
||
|
||
2013-05-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
|
||
on op shows all bits zero in mode of a lowpart subreg, return zero.
|
||
|
||
2013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
PR target/57150
|
||
* config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
|
||
to save TFmode registers and DImode to save TImode registers for
|
||
caller save operations.
|
||
(HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
|
||
mark being partially clobbered since they only use the first
|
||
double word.
|
||
|
||
* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
|
||
and TDmode only use the upper 64-bits of each VSX register.
|
||
|
||
2013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
|
||
(find_candidates_in_block): Disable slsr_process_phi.
|
||
|
||
2013-05-03 Guozhi Wei <carrot@google.com>
|
||
|
||
* coverage.c (coverage_obj_init): Move the construction of gcov
|
||
constructor to ...
|
||
(build_init_ctor): ... here.
|
||
|
||
2013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
|
||
(slsr_cand_d): Redefine def_phi.
|
||
(stride_status, phi_adjust_status, count_phis_status): New enums.
|
||
(find_phi_def): New.
|
||
(find_basis_for_base_expr): New.
|
||
(find_basis_for_candidate): Handle hidden bases.
|
||
(alloc_cand_and_find_basis): Handle phi candidates.
|
||
(slsr_process_phi): New.
|
||
(create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
|
||
(create_mul_imm_cand): Likewise.
|
||
(create_add_ssa_cand): Exclude phi base candidates.
|
||
(create_add_imm_cand): Likewise.
|
||
(slsr_process_cast): Likewise.
|
||
(slsr_process_copy): Likewise.
|
||
(find_candidates_in_block): Handle phi candidates.
|
||
(dump_candidate): Likewise.
|
||
(unconditional_cands): Delete.
|
||
(unconditional_cands_with_known_stride_p): Delete.
|
||
(phi_dependent_cand_p): New.
|
||
(cand_increment): Handle phi-dependent candidates.
|
||
(replace_dependent): Delete.
|
||
(replace_mult_candidate): New.
|
||
(replace_unconditional_candidate): New.
|
||
(incr_vec_index): Move to avoid forward reference.
|
||
(create_add_on_incoming_edge): New.
|
||
(create_phi_basis): New.
|
||
(replace_dependents): Delete.
|
||
(replace_conditional_candidate): New.
|
||
(phi_add_costs): New.
|
||
(replace_uncond_cands_and_profitable_phis): New.
|
||
(record_increment): Handle phi adjustments.
|
||
(record_phi_increments): New.
|
||
(record_increments): Handle phi adjustments.
|
||
(phi_incr_cost): New.
|
||
(lowest_cost_path): Handle phis.
|
||
(total_savings): Likewise.
|
||
(analyze_increments): Likewise.
|
||
(ncd_with_phi): New.
|
||
(ncd_of_cand_and_phis): New.
|
||
(nearest_common_dominator_for_cands): Handle phi increments.
|
||
(all_phi_incrs_profitable): New.
|
||
(replace_profitable_candidates): Handle phi-dependent candidates.
|
||
(analyze_candidates_and_replace): Likewise.
|
||
|
||
2013-05-03 Teresa Johnson <tejohnson@google.com>
|
||
|
||
PR bootstrap/57154
|
||
* sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
|
||
do not exceed REG_BR_PROB_BASE.
|
||
|
||
2013-05-03 Jeff Law <law@redhat.com>
|
||
|
||
PR tree-optimization/57144
|
||
* tree-vrp.c (simplify_cond_using_ranges): Verify the constant
|
||
operand of the condition will bit into the new type when eliminating
|
||
a cast feeding a condition.
|
||
|
||
2013-05-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/57130
|
||
* combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
|
||
of COMPARE as in_code to the recursive call if needed.
|
||
|
||
2013-05-03 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
|
||
(enabled): Handle new members.
|
||
* config/i386/sse.md (*vec_concatv2si): Merge from
|
||
*vec_concatv2si_sse2 and vec_concatv2si_sse.
|
||
(vec_concatv2di): Merge with *vec_concatv2di_rex64.
|
||
|
||
2013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
PR tree-optimization/57027
|
||
* tree-ssa-math-opts.c (convert_mult_to_fma): When checking
|
||
for fnms opportunity, check we got the prerequisite kind
|
||
of tree / gimple before using accessor functions.
|
||
|
||
2013-05-03 Richard Biener <rguenther@suse.de>
|
||
|
||
* double-int.h (lshift): New overload without precision
|
||
and arith argument.
|
||
(operator *=, operator +=, operator -=): Move ...
|
||
* double-int.c (operator *=, operator +=, operator -=): ... here
|
||
and implement more efficiently.
|
||
(mul_double_with_sign): Remove.
|
||
(lshift_double): Adjust to take unsinged shift argument, push
|
||
dispatching code to callers.
|
||
(mul_double_wide_with_sign): Add early out for callers that
|
||
are not interested in high parts or overflow.
|
||
(lshift): New function.
|
||
(lshift, rshift, alshift, arshift, llshift, lrshift): Add
|
||
dispatch code here.
|
||
(lrotate, rrotate): Use logical shifts.
|
||
* expr.c (get_inner_reference): Use lshift.
|
||
* fixed-value.c (do_fixed_divide): Likewise.
|
||
* tree-dfa.c (get_ref_base_and_extent): Likewise.
|
||
* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
|
||
(indirect_refs_may_alias_p): Likewise.
|
||
(stmt_kills_ref_p_1): Likewise.
|
||
|
||
2013-05-03 Vidya Praveen <vidyapraveen@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
|
||
|
||
2013-05-03 Vidya Praveen <vidyapraveen@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
|
||
scalar form of FABD instruction.
|
||
|
||
2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
* lra-constraints.c (process_alt_operands): Add checking alt
|
||
number to choose the best alternative.
|
||
|
||
2013-05-02 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
|
||
bitmap and its handling.
|
||
(pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
|
||
|
||
2013-05-02 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/57140
|
||
* tree-inline.c (copy_loops): Properly handle removed loops.
|
||
(copy_cfg_body): Mark destination loops for fixup if source
|
||
loops needed fixup.
|
||
|
||
2013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
PR target/56732
|
||
* config/arm/arm.c (arm_expand_epilogue): Check really_return before
|
||
generating simple_return for naked functions.
|
||
|
||
2013-05-02 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR middle-end/56988
|
||
* ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
|
||
* ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
|
||
flags match.
|
||
(find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
|
||
ipa_agg_replacement_value structures.
|
||
(known_aggs_to_agg_replacement_list): Likewise.
|
||
* ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
|
||
(read_agg_replacement_chain): Likewise.
|
||
(ipcp_transform_function): Also check that by_ref flags match.
|
||
|
||
2013-05-02 Richard Biener <rguenther@suse.de>
|
||
|
||
* graphds.h (struct graph): Add obstack member.
|
||
* graphds.c (new_graph): Initialize obstack and allocate
|
||
vertices from it.
|
||
(add_edge): Allocate edge from the obstack.
|
||
(free_graph): Free the obstack instead of all edges and vertices.
|
||
|
||
2013-05-02 Teresa Johnson <tejohnson@google.com>
|
||
|
||
* loop-unswitch.c (unswitch_loop): Use helper routines with rounding
|
||
divides.
|
||
* cfg.c (update_bb_profile_for_threading): Ditto.
|
||
* tree-inline.c (copy_bb): Ditto.
|
||
(copy_edges_for_bb): Ditto.
|
||
(initialize_cfun): Ditto.
|
||
(copy_cfg_body): Ditto.
|
||
(expand_call_inline): Ditto.
|
||
* ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
|
||
(estimate_node_size_and_time): Ditto.
|
||
(inline_merge_summary): Ditto.
|
||
* cgraphclones.c (cgraph_clone_edge): Ditto.
|
||
(cgraph_clone_node): Ditto.
|
||
* sched-rgn.c (compute_dom_prob_ps): Ditto.
|
||
(compute_trg_info): Ditto.
|
||
|
||
2013-05-02 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
|
||
S reg when fp attribute set.
|
||
(movdi_aarch64): Only allow to/from D reg when fp attribute set.
|
||
|
||
2013-05-02 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
|
||
New pattern.
|
||
(*and_one_cmplsi3_compare0_uxtw): Likewise.
|
||
(*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
|
||
(*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
|
||
|
||
2013-05-02 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-scalar-evolution.c (scev_info_hasher): Remove.
|
||
(struct instantiate_cache_entry): New type.
|
||
(struct instantiate_cache_entry_hasher): New hashtable descriptor.
|
||
(struct instantiate_cache_type): New type.
|
||
(set_instantiated_value, get_instantiated_value): Remove.
|
||
(get_instantiated_value_entry): New function.
|
||
(instantiate_scev_name): Use the new cache and adjust.
|
||
(instantiate_scev_poly): Adjust.
|
||
(instantiate_scev_binary): Likewise.
|
||
(instantiate_array_ref): Likewise.
|
||
(instantiate_scev_convert): Likewise.
|
||
(instantiate_scev_not): Likewise.
|
||
(instantiate_scev_3): Likewise.
|
||
(instantiate_scev_2): Likewise.
|
||
(instantiate_scev_r): Likewise.
|
||
(instantiate_scev): Likewise.
|
||
(resolve_mixers): Likewise.
|
||
|
||
2013-05-01 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/57091
|
||
* lra-constraints.c (best_small_class_operands_num): Remove.
|
||
(process_alt_operands): Remove small_class_operands_num. Take
|
||
small classes operands into losers and only if the operand is not
|
||
matched. Modify debugging output.
|
||
(curr_insn_transform): Remove best_small_class_operands_num.
|
||
Print insn name.
|
||
|
||
2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c
|
||
(aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
|
||
* config/aarch64/aarch64-simd-builtins.def
|
||
(reduc_splus_): Add new modes.
|
||
(reduc_uplus_): New.
|
||
* config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
|
||
(reduc_uplus_v4sf): Likewise.
|
||
(reduc_splus_v4sf): Likewise.
|
||
(aarch64_addv<mode>): Likewise.
|
||
(reduc_uplus_<mode>): Likewise.
|
||
(reduc_splus_<mode>): Likewise.
|
||
(aarch64_addvv2di): Likewise.
|
||
(reduc_uplus_v2di): Likewise.
|
||
(reduc_splus_v2di): Likewise.
|
||
(aarch64_addvv2si): Likewise.
|
||
(reduc_uplus_v2si): Likewise.
|
||
(reduc_splus_v2si): Likewise.
|
||
(reduc_<sur>plus_<mode>): New.
|
||
(reduc_<sur>plus_v2di): Likewise.
|
||
(reduc_<sur>plus_v2si): Likewise.
|
||
(reduc_<sur>plus_v4sf): Likewise.
|
||
(aarch64_addpv4sf): Likewise.
|
||
* config/aarch64/arm_neon.h
|
||
(vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
|
||
* config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
|
||
add UNSPEC_SADDV, UNSPEC_UADDV.
|
||
(SUADDV): New.
|
||
(sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
|
||
|
||
2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/arm_neon.h
|
||
(v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
|
||
|
||
2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins
|
||
(aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
|
||
|
||
2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def
|
||
(reduc_smax_): New.
|
||
(reduc_smin_): Likewise.
|
||
(reduc_umax_): Likewise.
|
||
(reduc_umin_): Likewise.
|
||
(reduc_smax_nan_): Likewise.
|
||
(reduc_smin_nan_): Likewise.
|
||
(fmax): Remove.
|
||
(fmin): Likewise.
|
||
(smax): Update for V2SF, V4SF and V2DF modes.
|
||
(smin): Likewise.
|
||
(smax_nan): New.
|
||
(smin_nan): Likewise.
|
||
* config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
|
||
(<su><maxmin><mode>3): ...This, refactor.
|
||
(s<maxmin><mode>3): New.
|
||
(<maxmin_uns><mode>3): Likewise.
|
||
(reduc_<maxmin_uns>_<mode>): Refactor.
|
||
(reduc_<maxmin_uns>_v4sf): Likewise.
|
||
(reduc_<maxmin_uns>_v2si): Likewise.
|
||
(aarch64_<fmaxmin><mode>: Remove.
|
||
* config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
|
||
new builtin names.
|
||
(vmin<q>_f<32,64>): Likewise.
|
||
* config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
|
||
(FMAXMIN): New.
|
||
(su): Add mappings for smax, smin, umax, umin.
|
||
(maxmin): New.
|
||
(FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
|
||
(FMAXMIN): Rename as...
|
||
(FMAXMIN_UNS): ...This.
|
||
(maxminv): Remove.
|
||
(fmaxminv): Likewise.
|
||
(fmaxmin): Likewise.
|
||
(maxmin_uns): New.
|
||
(maxmin_uns_op): Likewise.
|
||
|
||
2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/arm_neon.h
|
||
(vac<ge, gt><sd>_f<32, 64>): Rename to...
|
||
(vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
|
||
(vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
|
||
|
||
2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
|
||
* config/aarch64/iterators.md (FAC_COMPARISONS): New.
|
||
|
||
2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md
|
||
(vcond<mode>_internal): Handle special cases for constant masks.
|
||
(vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
|
||
(vcondu<mode><mode>): Likewise.
|
||
(vcond<v_cmp_result><mode>): New.
|
||
|
||
2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
|
||
(aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
|
||
* config/aarch64/aarch64-simd-builtins.def
|
||
(cmeq): Update to BUILTIN_VALLDI.
|
||
(cmgt): Likewise.
|
||
(cmge): Likewise.
|
||
(cmle): Likewise.
|
||
(cmlt): Likewise.
|
||
* config/aarch64/arm_neon.h
|
||
(vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
|
||
to builtins or C as appropriate.
|
||
|
||
2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
|
||
(cmgeu): ...This.
|
||
(cmhi): Rename to...
|
||
(cmgtu): ...This.
|
||
* config/aarch64/aarch64-simd.md
|
||
(simd_mode): Add SF.
|
||
(aarch64_vcond_internal): Use new names for unsigned comparison insns.
|
||
(aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
|
||
* config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
|
||
(cstore<mode>_neg): ...This.
|
||
* config/aarch64/iterators.md
|
||
(VALLF): new.
|
||
(unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
|
||
(COMPARISONS): New.
|
||
(UCOMPARISONS): Likewise.
|
||
(optab): Add missing comparisons.
|
||
(n_optab): New.
|
||
(cmp_1): Likewise.
|
||
(cmp_2): Likewise.
|
||
(CMP): Likewise.
|
||
(cmp): Remove.
|
||
(VCMP_S): Likewise.
|
||
(VCMP_U): Likewise.
|
||
(V_cmp_result): Add DF, SF modes.
|
||
(v_cmp_result): Likewise.
|
||
(v): Likewise.
|
||
(vmtype): Likewise.
|
||
* config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
|
||
|
||
2013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
|
||
define_insn to define_insn_and_split.
|
||
(thumb32_umaxsi3,thumb2_uminsi3): Likewise.
|
||
(thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
|
||
(thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
|
||
(thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
|
||
(thumb2_negscc): Likewise.
|
||
|
||
2013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
|
||
|
||
2013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/thumb2.md: Remove trailing whitespaces.
|
||
|
||
2013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
|
||
|
||
* explow.c (plus_constant): Pass "mode" to immed_double_int_const.
|
||
Use gen_int_mode rather than GEN_INT.
|
||
|
||
2013-04-30 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* value-prof.c (stream_in_histogram_value): Remove the strayed
|
||
debug_gimple_stmt.
|
||
|
||
2013-04-30 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/57122
|
||
* cfghooks.c (split_edge): Properly check for the loop latch edge.
|
||
|
||
2013-04-30 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/57107
|
||
* tree-eh.c (sink_clobbers): Preserve virtual SSA form.
|
||
|
||
2013-04-30 Andrey Belevantsev <abel@ispras.ru>
|
||
|
||
PR rtl-optimization/56957
|
||
PR rtl-optimization/57105
|
||
* sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
|
||
variable. Use just INSN_UID for determining whether an insn
|
||
should be only disconnected from the insn stream.
|
||
* sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
|
||
|
||
2013-04-30 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/57104
|
||
* tsan.c (instrument_expr): Don't instrument accesses to
|
||
DECL_HARD_REGISTER VAR_DECLs.
|
||
|
||
2013-04-30 Richard Biener <rguenther@suse.de>
|
||
|
||
* function.h (loops_for_fn): New inline function.
|
||
(set_loops_for_fn): Likewise.
|
||
* cfgloop.h (place_new_loop): Add struct function parameter.
|
||
(get_loop): Likewise.
|
||
(get_loops): Likewise.
|
||
(number_of_loops): Likewise.
|
||
(fel_next): Adjust.
|
||
(fel_init): Likewise.
|
||
* cfg.c (get_loop_copy): Adjust.
|
||
* cfgloop.c (flow_loops_dump): Likewise.
|
||
(record_loop_exits): Likewise.
|
||
(verify_loop_structure): Likewise.
|
||
* cfgloopanal.c (mark_irreducible_loops): Likewise.
|
||
(estimate_reg_pressure_cost): Likewise.
|
||
(mark_loop_exit_edges): Likewise.
|
||
* cfgloopmanip.c (place_new_loop): Likewise.
|
||
(add_loop): Likewise.
|
||
(duplicate_loop): Likewise.
|
||
* graph.c (draw_cfg_nodes): Likewise.
|
||
* graphite-clast-to-gimple.c (translate_clast_user): Likewise.
|
||
* graphite-sese-to-poly.c (build_scop_scattering): Likewise.
|
||
(extract_affine_chrec): Likewise.
|
||
(build_scop_iteration_domain): Likewise.
|
||
* graphite.c (graphite_initialize): Likewise.
|
||
* ira-build.c (create_loop_tree_nodes): Likewise.
|
||
(more_one_region_p): Likewise.
|
||
(rebuild_regno_allocno_maps): Likewise.
|
||
(mark_loops_for_removal): Likewise.
|
||
(mark_all_loops_for_removal): Likewise.
|
||
(remove_unnecessary_regions): Likewise.
|
||
(ira_build): Likewise.
|
||
* ira-emit.c (setup_entered_from_non_parent_p): Likewise.
|
||
* loop-init.c (fix_loop_structure): Likewise.
|
||
(gate_rtl_move_loop_invariants): Likewise.
|
||
(gate_rtl_unswitch): Likewise.
|
||
(gate_rtl_unroll_and_peel_loops): Likewise.
|
||
(rtl_doloop): Likewise.
|
||
* lto-streamer-in.c (input_cfg): Likewise.
|
||
* lto-streamer-out.c (output_cfg): Likewise.
|
||
* modulo-sched.c (sms_schedule): Likewise.
|
||
* predict.c (tree_estimate_probability): Likewise.
|
||
(tree_estimate_probability_driver): Likewise.
|
||
(estimate_loops): Likewise.
|
||
* tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
|
||
(move_sese_region_to_fn): Likewise.
|
||
(debug_loop_num): Likewise.
|
||
* tree-chrec.c (chrec_evaluate): Likewise.
|
||
(hide_evolution_in_other_loops_than_loop): Likewise.
|
||
(chrec_component_in_loop_num): Likewise.
|
||
(reset_evolution_in_loop): Likewise.
|
||
(evolution_function_is_invariant_rec_p): Likewise.
|
||
* tree-if-conv.c (main_tree_if_conversion): Likewise.
|
||
* tree-inline.c (copy_loops): Likewise.
|
||
(copy_cfg_body): Likewise.
|
||
(tree_function_versioning): Likewise.
|
||
* tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
|
||
* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
|
||
Likewise.
|
||
(add_to_evolution_1): Likewise.
|
||
(scev_const_prop): Likewise.
|
||
* tree-scalar-evolution.h (get_chrec_loop): Likewise.
|
||
* tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
|
||
* tree-ssa-loop-im.c (analyze_memory_references): Likewise.
|
||
(tree_ssa_lim_initialize): Likewise.
|
||
* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
|
||
(verify_loop_closed_ssa): Likewise.
|
||
* tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
|
||
(tree_ssa_loop_im): Likewise.
|
||
(tree_ssa_loop_unswitch): Likewise.
|
||
(tree_vectorize): Likewise.
|
||
(check_data_deps): Likewise.
|
||
(tree_ssa_loop_ivcanon): Likewise.
|
||
(tree_ssa_loop_bounds): Likewise.
|
||
(tree_complete_unroll): Likewise.
|
||
(tree_complete_unroll_inner): Likewise.
|
||
(tree_parallelize_loops): Likewise.
|
||
(tree_ssa_loop_prefetch): Likewise.
|
||
(tree_ssa_loop_ivopts): Likewise.
|
||
* tree-ssa.c (execute_update_addresses_taken): Liekwise.
|
||
* tree-vectorizer.c (vectorize_loops): Likewise.
|
||
|
||
2013-04-29 Mike Frysinger <vapier@gentoo.org>
|
||
|
||
* config/arm/bpabi.h (EABI_LINK_SPEC): Define.
|
||
(BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
|
||
* config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
|
||
with EABI_LINK_SPEC.
|
||
|
||
2013-04-29 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/44578
|
||
* config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
|
||
alternative.
|
||
|
||
2013-04-29 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/57097
|
||
* lra-constraints.c (process_alt_operands): Discourage a bit more
|
||
using memory for pseudos. Print cost dump for alternatives.
|
||
Modify cost values for conflicts with early clobbers.
|
||
(curr_insn_transform): Spill pseudos reassigned to NO_REGS.
|
||
|
||
2013-04-29 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/57098
|
||
* config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
|
||
|
||
2013-04-29 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
|
||
from/to S register.
|
||
(movdi_aarch64): Support LDR/STR from/to D register.
|
||
|
||
2013-04-29 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* common/config/aarch64/aarch64-common.c: Enable REE pass at O2
|
||
or higher by default.
|
||
|
||
2013-04-29 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/57075
|
||
* tree-inline.c (copy_edges_for_bb): Still split the bbs,
|
||
even if not adding abnormal edges for calls that can make
|
||
abnormal gotos.
|
||
|
||
2013-04-29 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/57103
|
||
* tree-cfg.c (move_stmt_op): Fix condition under which to update
|
||
TREE_BLOCK.
|
||
(move_stmt_r): Remove redundant checking.
|
||
|
||
2013-04-29 Teresa Johnson <tejohnson@google.com>
|
||
|
||
PR bootstrap/57077
|
||
* basic-block.h (apply_scale): New function.
|
||
(apply_probability): Use apply_scale.
|
||
* gimple-streamer-in.c (input_bb): Ditto.
|
||
* lto-streamer-in.c (input_cfg): Ditto.
|
||
* lto-cgraph.c (merge_profile_summaries): Ditto.
|
||
* tree-optimize.c (execute_fixup_cfg): Ditto.
|
||
* tree-inline.c (copy_bb): Update comment to use apply_scale.
|
||
(copy_edges_for_bb): Ditto.
|
||
(copy_cfg_body): Ditto.
|
||
|
||
2013-04-29 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
|
||
(replace_block_by): Don't set LOOPS_NEED_FIXUP.
|
||
(tail_merge_optimize): Handle current_loops == NULL.
|
||
|
||
2013-04-26 Jeff Law <law@redhat.com>
|
||
|
||
* tree-vrp.c (range_fits_type_p): Move to earlier point in file.
|
||
(simplify_cond_using_ranges): Generalize code to simplify
|
||
COND_EXPRs where one argument is a constant and the other
|
||
is an SSA_NAME created by an integral type conversion.
|
||
|
||
2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.md (store_minmaxsi): Use only when
|
||
optimize_insn_for_size_p.
|
||
|
||
2013-04-29 Christian Bruel <christian.bruel@st.com>
|
||
|
||
PR target/57108
|
||
* sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
|
||
|
||
2013-04-29 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/57089
|
||
* omp-low.c (expand_omp_taskreg): If the parent function had a broken
|
||
loop tree make sure to schedule a fixup for the child as well.
|
||
(expand_omp_for_generic): Properly add loops.
|
||
(expand_omp_for_static_nochunk): Likewise.
|
||
(expand_omp_for_static_chunk): Likewise.
|
||
(expand_omp_for): For the degenerate case fixup loops.
|
||
(expand_omp_sections): Fix default bb placement in loops.
|
||
(expand_omp_atomic_pipeline): Properly add loops.
|
||
|
||
2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
|
||
|
||
2013-04-29 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* tree-ssa-tail-merge.c: Update header comment.
|
||
|
||
2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/arm_neon.h
|
||
(vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
|
||
(vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
|
||
(vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
|
||
(vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
|
||
(vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
|
||
(vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
|
||
(vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
|
||
(vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
|
||
|
||
2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md
|
||
(<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
|
||
(<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
|
||
fix_trunc, fixuns_trunc.
|
||
(ftrunc<VDQF:mode>2): New.
|
||
* config/aarch64/iterators.md (optab): Add fix, fixuns.
|
||
(fix_trunc_optab): New.
|
||
|
||
2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c
|
||
(aarch64_builtin_vectorized_function): Vectorize over ifloorf,
|
||
iceilf, lround, iroundf.
|
||
|
||
2013-04-29 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/54349
|
||
* config/i386/i386.h (enum ix86_tune_indices)
|
||
<X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
|
||
New, split from X86_TUNE_INTER_UNIT_MOVES.
|
||
<X86_TUNE_INTER_UNIT_MOVES>: Remove.
|
||
(TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
|
||
(TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
|
||
(TARGET_INTER_UNIT_MOVES): Remove.
|
||
* config/i386/i386.c (initial_ix86_tune_features): Update.
|
||
Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
|
||
(ix86_expand_convert_uns_didf_sse): Use
|
||
TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
|
||
(ix86_expand_vector_init_one_nonzero): Ditto.
|
||
(ix86_expand_vector_init_interleave): Ditto.
|
||
(inline_secondary_memory_needed): Return true for moves from SSE class
|
||
registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
|
||
to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
|
||
* config/i386/constraints.md (Yi, Ym): Depend on
|
||
TARGET_INTER_UNIT_MOVES_TO_VEC.
|
||
(Yj, Yn): New constraints.
|
||
* config/i386/i386.md (*movdi_internal): Change constraints of
|
||
operand 1 from Yi to Yj and from Ym to Yn.
|
||
(*movsi_internal): Ditto.
|
||
(*movdf_internal): Ditto.
|
||
(*movsf_internal): Ditto.
|
||
(*float<SWI48x:mode><X87MODEF:mode>2_1): Use
|
||
TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
|
||
(*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
|
||
(floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
|
||
(floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
|
||
* config/i386/sse.md (movdi_to_sse): Ditto.
|
||
(sse2_stored): Change constraint of operand 1 from Yi to Yj.
|
||
Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
|
||
TARGET_INTER_UNIT_MOVES.
|
||
(sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
|
||
(sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
|
||
instead of TARGET_INTER_UNIT_MOVES.
|
||
* config/i386/mmx.md (*mov<mode>_internal): Change constraint of
|
||
operand 1 from Yi to Yj and from Ym to Yn.
|
||
|
||
2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
|
||
(float_truncate_hi_): Likewise.
|
||
(float_extend_lo_): Likewise.
|
||
(float_truncate_lo_): Likewise.
|
||
* config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
|
||
(aarch64_float_extend_lo_v2df): Likewise.
|
||
(vec_unpacks_hi_v4sf): Likewise.
|
||
(aarch64_float_truncate_lo_v2sf): Likewise.
|
||
(aarch64_float_truncate_hi_v4sf): Likewise.
|
||
(vec_pack_trunc_v2df): Likewise.
|
||
(vec_pack_trunc_df): Likewise.
|
||
|
||
2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c
|
||
(aarch64_fold_builtin): Fold float conversions.
|
||
* config/aarch64/aarch64-simd-builtins.def
|
||
(floatv2si, floatv4si, floatv2di): New.
|
||
(floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
|
||
* config/aarch64/aarch64-simd.md
|
||
(<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
|
||
* config/aarch64/iterators.md (FLOATUORS): New.
|
||
(optab): Add float, floatuns.
|
||
(su_optab): Likewise.
|
||
|
||
2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c
|
||
(aarch64_builtin_vectorized_function): Use new names for
|
||
fcvt builtins.
|
||
* config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
|
||
(lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
|
||
(fcvtzu): Split as...
|
||
(lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
|
||
(fcvtas): Split as...
|
||
(lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
|
||
(fcvtau): Split as...
|
||
(lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
|
||
(fcvtps): Split as...
|
||
(lceilv2sf, lceilv4sf, lceilv2df): ...This.
|
||
(fcvtpu): Split as...
|
||
(lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
|
||
(fcvtms): Split as...
|
||
(lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
|
||
(fcvtmu): Split as...
|
||
(lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
|
||
(lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
|
||
(lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
|
||
(lfrintnusf, lfrintnudf): Likewise.
|
||
* config/aarch64/aarch64-simd.md
|
||
(l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
|
||
define_insn.
|
||
(aarch64_fcvt<frint_suffix><su><mode>): Remove.
|
||
* config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
|
||
(fcvt_pattern): Likewise.
|
||
|
||
2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md
|
||
(l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
|
||
(l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
|
||
|
||
2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
|
||
(vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
|
||
(vrnd<a,m,n,p>_f32): Implement using builtins.
|
||
(vrnd<i,x><q>_f<32, 64>): New.
|
||
|
||
2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c
|
||
(aarch64_builtin_vectorized_function): Fold to standard pattern names.
|
||
* config/aarch64/aarch64-simd-builtins.def (frintn): New.
|
||
(frintz): Rename to...
|
||
(btrunc): ...this.
|
||
(frintp): Rename to...
|
||
(ceil): ...this.
|
||
(frintm): Rename to...
|
||
(floor): ...this.
|
||
(frinti): Rename to...
|
||
(nearbyint): ...this.
|
||
(frintx): Rename to...
|
||
(rint): ...this.
|
||
(frinta): Rename to...
|
||
(round): ...this.
|
||
* config/aarch64/aarch64-simd.md
|
||
(aarch64_frint<frint_suffix><mode>): Delete.
|
||
(<frint_pattern><mode>2): Convert to insn.
|
||
* config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
|
||
* config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
|
||
(frint_pattern): Likewise.
|
||
(frint_suffix): Likewise.
|
||
|
||
2013-04-29 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/57081
|
||
* loop-init.c: Include tree-flow.h.
|
||
(loop_optimizer_finalize): Free number of iteration estimates.
|
||
* Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
|
||
|
||
2013-04-29 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/57083
|
||
* tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
|
||
non-singleton shift count range, zero extend low_bound for uns case.
|
||
|
||
* config/i386/predicates.md (general_vector_operand): New predicate.
|
||
* config/i386/i386.c (const_vector_equal_evenodd_p): New function.
|
||
(ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
|
||
if they aren't nonimmediate operands. If their original values
|
||
satisfy const_vector_equal_evenodd_p, don't shift them.
|
||
* config/i386/sse.md (mul<mode>3): Use general_vector_operand
|
||
predicates. For the SSE4.1 case force operands[{1,2}] into registers
|
||
if not nonimmediate_operand.
|
||
(vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
|
||
instead of register_operand.
|
||
(vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
|
||
|
||
2013-04-28 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* stor-layout.c (finalize_size_functions): Allocate a structure and
|
||
reset cfun before dumping the functions.
|
||
|
||
2013-04-27 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
|
||
|
||
PR target/56866
|
||
* config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
|
||
use xop_pmacsdqh if uns_p.
|
||
* config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
|
||
the immediate rotate count.
|
||
|
||
2013-04-26 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
* rtl.h (struct rtx_def): Add comment for field jump.
|
||
(LRA_SUBREG_P): New macro.
|
||
* recog.c (register_operand): Check LRA_SUBREG_P.
|
||
* lra.c (lra): Add note at the end of RTL code. Align non-empty
|
||
stack frame.
|
||
* lra-spills.c (lra_spill): Align stack after spilling pseudos.
|
||
(lra_final_code_change): Skip subreg change for operators.
|
||
* lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
|
||
if there are no operand changes.
|
||
* lra-constraints.c (curr_insn_set): New.
|
||
(match_reload): Set LRA_SUBREG_P.
|
||
(emit_spill_move): Ditto.
|
||
(check_and_process_move): Use curr_insn_set. Process only single
|
||
set insns. Don't initialize sec_mem_p and change_p.
|
||
(simplify_operand_subreg): Use LRA_SUBREG_P.
|
||
(reg_in_class_p): New function.
|
||
(process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
|
||
of #ifdef. Add code to remove cycling.
|
||
(process_address): Check EXTRA_CONSTRAINT_STR. Process even if
|
||
non-null disp. Reload inner instead of disp when base and index
|
||
are null. Try to put lo_sum into register.
|
||
(EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
|
||
(check_and_process_move): Move code for move cost check to
|
||
simple_move_p. Remove equiv_substitution.
|
||
(simple_move_p): New function.
|
||
(curr_insn_transform): Initialize sec_mem_p and change_p. Set up
|
||
curr_insn_set. Call check_and_process_move only for single set
|
||
insns. Use the new function. Move call of check_and_process_move
|
||
after operand equiv substitution and address process.
|
||
|
||
2013-04-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR go/57045
|
||
* tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
|
||
with nonlocal goto receivers or returns twice calls, ignore
|
||
unininitialized values from abnormal edges to nl goto receiver
|
||
or returns twice call.
|
||
|
||
2013-04-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/57051
|
||
* fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
|
||
and VEC_RSHIFT_EXPR if shift count is a multiple of element
|
||
bitsize.
|
||
|
||
2013-04-26 Richard Biener <rguenther@suse.de>
|
||
|
||
* omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
|
||
(expand_omp_taskreg): Likewise. Mark loops for fixup.
|
||
* tree-cfg.c (move_block_to_fn): Remap loop fathers.
|
||
(fixup_loop_arrays_after_move): New function.
|
||
(move_sese_region_to_fn): Properly outline the loop tree parts
|
||
of the SESE region.
|
||
|
||
2013-04-26 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (type, unit): Fix long lines.
|
||
|
||
2013-04-26 Richard Biener <rguenther@suse.de>
|
||
|
||
* Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
|
||
(lto-streamer-out.o): Likewise.
|
||
* cfgloop.c (init_loops_structure): Export, add struct function
|
||
argument and adjust.
|
||
(flow_loops_find): Adjust.
|
||
* cfgloop.h (enum loop_estimation): Add EST_LAST.
|
||
(init_loops_structure): Declare.
|
||
* lto-streamer-in.c: Include cfgloop.h.
|
||
(input_cfg): Input the loop tree.
|
||
* lto-streamer-out.c: Include cfgloop.h.
|
||
(output_cfg): Output the loop tree.
|
||
(output_struct_function_base): Do not drop PROP_loops.
|
||
|
||
2013-03-26 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-cfg.c (execute_build_cfg): Build the loop tree.
|
||
(pass_build_cfg): Provide PROP_loops.
|
||
(move_sese_region_to_fn): Remove loops that are outlined into fn
|
||
for now.
|
||
* tree-inline.c: Include cfgloop.h.
|
||
(initialize_cfun): Do not drop PROP_loops.
|
||
(copy_loops): New function.
|
||
(copy_cfg_body): Copy loop structure.
|
||
(tree_function_versioning): Initialize destination loop tree.
|
||
* tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
|
||
(pass_parallelize_loops): Do IL verification.
|
||
* loop-init.c (loop_optimizer_init): Fixup loops if required.
|
||
* tree-optimize.c (execute_fixup_cfg): If we need to cleanup
|
||
the CFG make sure we fixup loops as well.
|
||
* tree-ssa-tail-merge.c: Include cfgloop.h.
|
||
(replace_block_by): When merging loop latches mark loops for fixup.
|
||
* lto-streamer-out.c (output_struct_function_base): Drop
|
||
PROP_loops for now.
|
||
* tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
|
||
(tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
|
||
* ipa-split.c: Include cfgloop.h.
|
||
(split_function): Add the new return block to the loop tree root.
|
||
* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
|
||
whether we have removed the forwarder block.
|
||
(merge_phi_nodes): If we removed a forwarder mark loops for fixup.
|
||
* cfgloop.h (place_new_loop): Declare.
|
||
* cfgloopmanip.c (place_new_loop): Export.
|
||
* Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
|
||
(tree-switch-conversion.o): Likewise.
|
||
(tree-complex.o): Likewise.
|
||
(tree-inline.o): Likewise.
|
||
(tree-ssa-tailmerge.o): Likewise.
|
||
(ipa-split.o): Likewise.
|
||
(tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
|
||
(tree-ssa-copy.o): Likewise.
|
||
* tree-switch-conversion.c: Include cfgloop.h
|
||
(process_switch): If we emit a bit-test cascade, schedule loops
|
||
for fixup.
|
||
* tree-complex.c: Include cfgloop.h.
|
||
(expand_complex_div_wide): Properly add new basic-blocks to loops.
|
||
* asan.c: Include cfgloop.h.
|
||
(create_cond_insert_point): Properly add new basic-blocks to
|
||
loops, schedule loop fixup.
|
||
* cfgloop.c (verify_loop_structure): Check that looks are not
|
||
marked for fixup.
|
||
* omp-low.c (expand_parallel_call): Properly add new basic-blocks
|
||
to loops.
|
||
(expand_omp_for_generic): Likewise.
|
||
(expand_omp_sections): Likewise.
|
||
(expand_omp_atomic_pipeline): Schedule loops for fixup.
|
||
* tree-ssa-copy.c: Include tree-scalar-evolution.h.
|
||
(fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
|
||
is initialized, not when loops are present.
|
||
* tree-parloops.c (parallelize_loops): Remove checking here.
|
||
* passes.c (init_optimization_passes): Schedule a copy-propagation
|
||
pass before complete unrolling of inner loops.
|
||
|
||
2013-04-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* Makefile.in (toplev.o): Depend on diagnostic-color.h.
|
||
* diagnostic-color.c (should_colorize): Remove _WIN32 version.
|
||
(colorize_init): Add argument to _WIN32 version.
|
||
* toplev.c: Include diagnostic-color.h.
|
||
(process_options): Default to -fdiagnostics-color=auto if
|
||
GCC_COLORS env var is in the environment.
|
||
* common.opt (fdiagnostics-color=): Add Var and Init.
|
||
* doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
|
||
env var is in the environment, the default is auto rather than never.
|
||
|
||
* diagnostic.h (file_name_as_prefix): Add context argument.
|
||
* diagnostic.c (file_name_as_prefix): Likewise. Colorize
|
||
the string as locus.
|
||
* langhooks.c (lhd_print_error_function): Adjust caller.
|
||
|
||
2013-04-25 Lawrence Crowl <crowl@google.com>
|
||
|
||
* var-tracking.c (shared_hash_def::htab):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
2013-04-25 Lawrence Crowl <crowl@google.com>
|
||
|
||
* Makefile.in: Update as needed below.
|
||
|
||
* alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
|
||
Move declaration to after the type's method definitons.
|
||
|
||
* attribs.c (htab_t scoped_attributes::attribute_hash):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* bitmap.c (htab_t bitmap_desc_hash):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* cselib.c (htab_t cselib_hash_table):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* data-streamer.h (struct string_slot): Move to lto-streamer.h.
|
||
(hash_string_slot_node): Move implementation into lto-streamer.h
|
||
struct string_slot_hasher.
|
||
(eq_string_slot_node): Likewise.
|
||
|
||
* data-streamer-out.c: Update output_block::string_hash_table
|
||
dependent calls and types.
|
||
|
||
* dwarf2cfi.c (htab_t trace_index):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* dwarf2out.c (htab_t break_out_includes::cu_hash_table):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
(htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
|
||
(htab_t optimize_external_refs::map): Likewise.
|
||
(htab_t output_comp_unit::extern_map): Likewise.
|
||
(htab_t output_comdat_type_unit::extern_map): Likewise.
|
||
(htab_t output_macinfo::macinfo_htab): Likewise.
|
||
(htab_t optimize_location_lists::htab): Likewise.
|
||
(htab_t dwarf2out_finish::comdat_type_table): Likewise.
|
||
|
||
* except.c (htab_t ehspec_hash_type):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
(assign_filter_values::ttypes): Likewise.
|
||
(assign_filter_values::ehspec): Likewise.
|
||
(sjlj_assign_call_site_values::ar_hash): Likewise.
|
||
(convert_to_eh_region_ranges::ar_hash): Likewise.
|
||
|
||
* gcse.c (htab_t pre_ldst_table):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* ggc-common.c (htab_t saving_htab):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
(htab_t loc_hash): Likewise.
|
||
(htab_t ptr_hash): Likewise.
|
||
(call_count): Rename ggc_call_count.
|
||
(call_alloc): Rename ggc_call_alloc.
|
||
(loc_descriptor): Rename make_loc_descriptor.
|
||
(add_statistics): Rename ggc_add_statistics.
|
||
|
||
* ggc-common.c (saving_htab):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
|
||
(push_gimplify_context): Likewise.
|
||
(pop_gimplify_context): Likewise.
|
||
(struct gimple_temp_hash_elt): Added.
|
||
(struct gimplify_hasher): Likewise.
|
||
(struct gimplify_ctx.temp_htab):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* gimple-fold.c: Include gimplify-ctx.h.
|
||
|
||
* gimple-ssa-strength-reduction.c (htab_t base_cand_map):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
(base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
|
||
avoid potential global name collision.
|
||
|
||
* gimplify.c: Include gimplify-ctx.h.
|
||
(struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
|
||
(htab_t gimplify_ctx::temp_htab):
|
||
Update dependent calls and types for new type hash_table.
|
||
(gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
|
||
(gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
|
||
|
||
* gimplify-ctx.h: New.
|
||
(struct gimple_temp_hash_elt): Move from gimplify.c.
|
||
(class gimplify_hasher): New.
|
||
(struct gimplify_ctx): Move from gimple.h.
|
||
(htab_t gimplify_ctx::temp_htab):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* graphite-clast-to-gimple.c: Include graphite-htab.h.
|
||
(htab_t ivs_params::newivs_index):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
(htab_t ivs_params::params_index): Likewise.
|
||
(htab_t print_generated_program::params_index): Likewise.
|
||
(htab_t gloog::newivs_index): Likewise.
|
||
(htab_t gloog::params_index): Likewise.
|
||
|
||
* graphite.c: Include graphite-htab.h.
|
||
4htab_t graphite_transform_loops::bb_pbb_mapping):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
|
||
(bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
|
||
(eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
|
||
|
||
* graphite-dependences.c: Include graphite-htab.h.
|
||
(loop_is_parallel_p): Change hash table type of parameter.
|
||
|
||
* graphite-htab.h: New.
|
||
(typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
|
||
(extern find_pbb_via_hash): Move from graphite-poly.h.
|
||
(extern loop_is_parallel_p): Move from graphite-poly.h.
|
||
(extern get_loop_body_pbbs): Move from graphite-poly.h.
|
||
|
||
* graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
|
||
(extern loop_is_parallel_p): Move to graphite-htab.h.
|
||
(extern get_loop_body_pbbs): Move to graphite-htab.h.
|
||
|
||
* haifa-sched.c (htab_t delay_htab):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
(htab_t delay_htab_i2): Likewise.
|
||
|
||
* ira-color.c (htab_t allocno_hard_regs_htab):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* ira-costs.c (htab_t cost_classes_htab):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* loop-invariant.c (htab_t merge_identical_invariants::eq):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* loop-iv.c (htab_t bivs):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* loop-unroll.c (htab_t opt_info::insns_to_split):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
(htab_t opt_info::insns_with_var_to_expand): Likewise.
|
||
|
||
* lto-streamer.h (struct string_slot): Move from data-streamer.h
|
||
(struct string_slot_hasher): New.
|
||
(htab_t output_block::string_hash_table):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* lto-streamer-in.c (freeing_string_slot_hasher): New.
|
||
(htab_t file_name_hash_table):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* lto-streamer-out.c: Update output_block::string_hash_table dependent
|
||
calls and types.
|
||
|
||
* lto-streamer.c (htab_t tree_htab):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* omp-low.c: Include gimplify-ctx.h.
|
||
|
||
* passes.c (htab_t name_to_pass_map):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
(pass_traverse): Rename to passes_pass_traverse.
|
||
|
||
* plugin.c (htab_t event_tab):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* postreload-gcse.c (htab_t expr_table):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
(dump_hash_table_entry): Rename dump_expr_hash_table_entry.
|
||
|
||
* sese.c (debug_rename_map_1): Make extern.
|
||
(htab_t copy_bb_and_scalar_dependences::rename_map):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* sese.h (extern debug_rename_map): Move to .c file.
|
||
|
||
* store-motion.c (htab_t store_motion_mems_table):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* trans-mem.c (htab_t tm_new_mem_hash):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* tree-browser.c (htab_t TB_up_ht):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* tree-cfg.c (htab_t discriminator_per_locus):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* tree-complex.c: Include tree-hasher.h
|
||
(htab_t complex_variable_components):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* tree-eh.c (htab_t finally_tree):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
|
||
struct int_tree_hasher.
|
||
(extern int_tree_map_eq): Likewise.
|
||
(uid_decl_map_hash): Removed.
|
||
(extern decl_tree_map_eq): Likewise.
|
||
|
||
* tree-hasher.h: New.
|
||
(struct int_tree_hasher): New.
|
||
(typedef int_tree_htab_type): New.
|
||
|
||
* tree-inline.c: Include gimplify-ctx.h.
|
||
|
||
* tree-mudflap.c: Include gimplify-ctx.h.
|
||
|
||
* tree-parloops.c: Include tree-hasher.h.
|
||
(htab_t eliminate_local_variables_stmt::decl_address):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
(htab_t separate_decls_in_region::decl_copies): Likewise.
|
||
|
||
* tree-scalar-evolution.c (htab_t resolve_mixers::cache):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* tree-sra.c (candidates):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
|
||
in tree-flow.h.
|
||
(int_tree_map_hash): Likewise.
|
||
|
||
* tree-ssa-dom.c (htab_t avail_exprs):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* tree-ssa-live.c (var_map_base_init::tree_to_index):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* tree-ssa-phiopt.c (seen_ssa_names):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* tree-ssa-strlen.c (decl_to_stridxlist_htab):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* tree-ssa-uncprop.c (equiv):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
2013-04-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/57003
|
||
* regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
|
||
call note_stores with kill_clobbered_value callback again after
|
||
killing regs_invalidated_by_call.
|
||
|
||
2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md
|
||
(aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
|
||
(aarch64_simd_bsl<mode>): Likewise.
|
||
* config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
|
||
|
||
2013-04-25 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR tree-optimization/57066
|
||
* builtins.c (fold_builtin_logb): Return +Inf for -Inf.
|
||
|
||
2013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
|
||
|
||
2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c
|
||
(aarch64_fold_builtin): New.
|
||
* config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
|
||
* config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
|
||
* config/aarch64/aarch64-simd-builtins.def (abs): New.
|
||
* config/aarch64/arm_neon.h
|
||
(vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
|
||
|
||
2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
|
||
Tejas Belagod <tejas.belagod@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c
|
||
(aarch64_gimple_fold_builtin): New.
|
||
* config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
|
||
* config/aarch64/aarch64-simd-builtins.def (addv): New.
|
||
* config/aarch64/aarch64-simd.md (addpv4sf): New.
|
||
(addvv4sf): Update.
|
||
* config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
|
||
|
||
2013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
|
||
|
||
* config/aarch64/aarch64.md
|
||
(*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
|
||
|
||
2013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
|
||
|
||
* config/aarch64/aarch64.md (*ngc<mode>): New pattern.
|
||
(*ngcsi_uxtw): New pattern.
|
||
|
||
2013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
Julian Brown <julian@codesourcery.com>
|
||
|
||
* config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
|
||
(TB_DREG): Add T_V4HF.
|
||
(v4hf_UP): New macro.
|
||
(neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
|
||
(arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
|
||
Handle initialisation of V4HF. Adjust initialisation of reinterpret
|
||
built-ins.
|
||
(arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
|
||
(arm_vector_mode_supported_p): Handle V4HF.
|
||
(arm_mangle_map): Handle V4HFmode.
|
||
* config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
|
||
* config/arm/arm_neon_builtins.def: Add entries for
|
||
vcvtv4hfv4sf, vcvtv4sfv4hf.
|
||
* config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
|
||
(neon_vcvtv4hfv4sf): Likewise.
|
||
* config/arm/neon-gen.ml: Handle half-precision floating point
|
||
features.
|
||
* config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
|
||
* config/arm/arm_neon.h: Regenerate.
|
||
* config/arm/neon.ml (type elts): Add F16.
|
||
(type vectype): Add T_float16x4, T_floatHF.
|
||
(type vecmode): Add V4HF.
|
||
(type features): Add Requires_FP_bit feature.
|
||
(elt_width): Handle F16.
|
||
(elt_class): Likewise.
|
||
(elt_of_class_width): Likewise.
|
||
(mode_of_elt): Refactor.
|
||
(type_for_elt): Handle F16, fix error messages.
|
||
(vectype_size): Handle T_float16x4.
|
||
(vcvt_sh): New function.
|
||
(ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
|
||
(string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
|
||
(string_of_mode): Handle V4HF.
|
||
* doc/arm-neon-intrinsics.texi: Regenerate.
|
||
|
||
2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
|
||
format specifier in 'X' case.
|
||
|
||
2013-04-25 Alan Modra <amodra@gmail.com>
|
||
|
||
PR target/57052
|
||
* config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
|
||
rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
|
||
(rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
|
||
Repeat for many other rotate/shift and mask patterns using subregs.
|
||
Name lshiftrt insns.
|
||
(ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
|
||
on WORDS_BIG_ENDIAN.
|
||
|
||
2013-04-25 Alan Modra <amodra@gmail.com>
|
||
|
||
* config.gcc: Support little-endian powerpc-linux targets.
|
||
* config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
|
||
(LINK_OS_LINUX_SPEC): Define.
|
||
* config/rs6000/linuxspe.h (TARGET_DEFAULT):
|
||
Preserve MASK_LITTLE_ENDIAN.
|
||
* config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
|
||
* config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
|
||
* config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
|
||
(LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
|
||
(LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
|
||
* config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
|
||
Correct fp word order for little-endian. Don't shift toc entries
|
||
smaller than a word for little-endian.
|
||
* config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
|
||
(bswapdi2 splits): Correct low-part subreg for little-endian.
|
||
Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
|
||
low/high where such is correct only for be.
|
||
* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
|
||
little-endian for -mcall-aixdesc.
|
||
|
||
2013-04-25 Alan Modra <amodra@gmail.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
|
||
replace_equiv_address_nv.
|
||
|
||
2013-04-25 Alan Modra <amodra@gmail.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
|
||
|
||
2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
Revert:
|
||
2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
|
||
* rtl.h (struct rtx_def): ...
|
||
|
||
2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimizations/57046
|
||
* lra-constraints (split_reg): Set up lra_risky_transformations_p
|
||
for multi-reg splits.
|
||
|
||
2013-04-24 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* config/i386/x86-64.h (ASM_SPEC): Support -mx32.
|
||
|
||
2013-04-24 Sterling Augustine <saugustine@google.com>
|
||
|
||
* dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
|
||
(comp_dir_string, debug_str_dwo_section): New.
|
||
(DEBUG_STR_DWO_SECTION): Rename to ...
|
||
(DEBUG_DWO_STR_SECTION): ... this.
|
||
(DEBUG_NORM_STR_SECTION): Delete.
|
||
(DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
|
||
(DEBUG_STR_DWO_SECTION_FLAGS): New.
|
||
(find_AT_string): Move most logic to ...
|
||
(find_AT_string_in_table): ... here. New.
|
||
(add_top_level_skeleton_die_attrs): Call comp_dir_string and
|
||
add_skeleton_AT_string. Delete logic.
|
||
(output_skeleton_debug_sections): Remove call to
|
||
add_top_level_skeleton_die_attrs.
|
||
(add_comp_dir_attribute): Move logic to comp_dir_string.
|
||
(dwarf2out_init): Initialize debug_str_dwo_section.
|
||
(output_indirect_string): Call find_string_form.
|
||
(output_indirect_strings): Rewrite.
|
||
(prune_unused_types): Empty skeleton_debug_str_hash.
|
||
Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
|
||
(dwarf2out_finish): Call output_indirect_strings.
|
||
|
||
2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
* doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
|
||
|
||
2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
* rtl.h (struct rtx_def): Add comment for field jump.
|
||
(LRA_SUBREG_P): New macro.
|
||
* recog.c (register_operand): Check LRA_SUBREG_P.
|
||
* lra.c (lra): Add note at the end of RTL code. Align non-empty
|
||
stack frame.
|
||
* lra-spills.c (lra_spill): Align stack after spilling pseudos.
|
||
(lra_final_code_change): Skip subreg change for operators.
|
||
* lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
|
||
if there are no operand changes.
|
||
* lra-constraints.c (curr_insn_set): New.
|
||
(match_reload): Set LRA_SUBREG_P.
|
||
(emit_spill_move): Ditto.
|
||
(check_and_process_move): Use curr_insn_set. Process only single
|
||
set insns. Don't initialize sec_mem_p and change_p.
|
||
(simplify_operand_subreg): Use LRA_SUBREG_P.
|
||
(reg_in_class_p): New function.
|
||
(process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
|
||
of #ifdef. Add code to remove cycling.
|
||
(process_address): Check EXTRA_CONSTRAINT_STR. Process even if
|
||
non-null disp. Reload inner instead of disp when base and index
|
||
are null. Try to put lo_sum into register.
|
||
(EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
|
||
(check_and_process_move): Move code for move cost check to
|
||
simple_move_p. Remove equiv_substitution.
|
||
(simple_move_p): New function.
|
||
(curr_insn_transform): Initialize sec_mem_p and change_p. Set up
|
||
curr_insn_set. Call check_and_process_move only for single set
|
||
insns. Use the new function. Move call of check_and_process_move
|
||
after operand equiv substitution and address process.
|
||
|
||
2013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
|
||
(vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
|
||
(vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
|
||
|
||
2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
* doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
|
||
|
||
2013-04-24 Marek Polacek <polacek@redhat.com>
|
||
|
||
* tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
|
||
* tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
|
||
(select_loops_exit_conditions): Likewise.
|
||
(number_of_iterations_for_all_loops): Likewise.
|
||
(analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
|
||
(scev_analysis): Likewise.
|
||
|
||
2013-04-02 Catherine Moore <clm@codesourcery.com>
|
||
Chao-ying Fu <fu@mips.com>
|
||
|
||
* config/mips/micromips.md (jraddiusp): New pattern.
|
||
* config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
|
||
instruction if possible.
|
||
|
||
2013-04-24 Alan Modra <amodra@gmail.com>
|
||
|
||
* config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
|
||
|
||
2013-04-24 Julian Brown <julian@codesourcery.com>
|
||
Chung-Lin Tang <cltang@codesourcery.com>
|
||
|
||
* dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
|
||
dependency behavior in enumeration type DIE generation. Add TODO note
|
||
to comments about future DW_FORM_sdata/udata re-work of related code.
|
||
|
||
2013-04-23 Lawrence Crowl <crowl@google.com>
|
||
|
||
* Makefile.in: Update as needed below.
|
||
|
||
* hash-table.h (class hash_table):
|
||
Correct many methods with parameter types compare_type to the correct
|
||
value_type. (Correct code was unlikely to notice the change.)
|
||
(hash_table::elements_with_deleted) New.
|
||
(class hashtable::iterator): New.
|
||
(hashtable::begin()): New.
|
||
(hashtable::end()): New.
|
||
(FOR_EACH_HASH_TABLE_ELEMENT): New.
|
||
|
||
* statistics.c (statistics_hashes):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* tree-into-ssa.c (var_infos):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* tree-ssa-coalesce.c (struct coalesce_list_d.list):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* tree-ssa-loop-im.c (struct mem_ref.refs):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* tree-ssa-reassoc.c (undistribute_ops_list::ctable):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
* tree-ssa-sccvn.c (vn_tables_s::nary):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
(vn_tables_s::phis): Likewise.
|
||
(vn_tables_s::references): Likewise.
|
||
|
||
* tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
|
||
(vn_reference_eq): Update parameter and return types.
|
||
|
||
* tree-ssa-structalias.c (pointer_equiv_class_table):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
(location_equiv_class_table): Likewise.
|
||
|
||
* tree-vect-data-refs.c: Consequential changes for making
|
||
peeling a hash_table.
|
||
|
||
* tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
|
||
(destroy_loop_vec_info): Dependent hash_table update.
|
||
|
||
* tree-vectorizer.h (peeling_htab):
|
||
Change type to hash_table. Update dependent calls and types.
|
||
|
||
2013-04-23 Shiva Chen <shiva0217@gmail.com>
|
||
|
||
* lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
|
||
to check the register content is equal or not.
|
||
* lra-constraints.c (match_reload): Use lra_assign_reg_val
|
||
to assign register content record.
|
||
* lra-eliminations.c (update_reg_eliminate): Use
|
||
lra_update_reg_val_offset to update register content offset.
|
||
* lra-int.h (struct lra_reg): Add offset member.
|
||
(lra_reg_val_equal_p): New static inline function.
|
||
(lra_update_reg_val_offset): New static inline function.
|
||
(lra_assign_reg_val): New static inline function.
|
||
* lra.c (lra_create_new_reg): Use lra_assign_reg_val
|
||
to assign register content record.
|
||
(initialize_lra_reg_info_element): Initial offset to zero.
|
||
|
||
2013-04-23 Catherine Moore <clm@codesourcery.com>
|
||
|
||
* config/mips/mips.md (*movhi_internal, *movqi_internal): New
|
||
operands. Record compression.
|
||
|
||
2013-04-23 Xinliang David Li <davidxl@google.com>
|
||
|
||
* cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
|
||
|
||
2013-04-23 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/57036
|
||
* tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
|
||
parameter, only add abnormal goto edges from the copied body
|
||
if the call could perform abnormal gotos.
|
||
(copy_cfg_body): Adjust.
|
||
|
||
2013-04-23 Sofiane Naci <sofiane.naci@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
|
||
|
||
2013-04-23 Andreas Schwab <schwab@linux-m68k.org>
|
||
|
||
* coretypes.h (gimple_stmt_iterator): Add struct to make
|
||
compatible with C.
|
||
|
||
2013-04-23 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/57026
|
||
* tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
|
||
from SSA names occuring in abnormal PHI nodes.
|
||
|
||
2013-04-22 Andi Kleen <ak@linux.intel.com>
|
||
|
||
* lto/lto.c (print_lto_report_1): Fix LTO report names.
|
||
|
||
2013-04-22 Andi Kleen <ak@linux.intel.com>
|
||
|
||
* lto/lto.c (print_lto_report_1): Declare early.
|
||
(read_cgraph_and_symbols): Call print_lto_report_1 early.
|
||
|
||
2013-04-22 Andi Kleen <ak@linux.intel.com>
|
||
|
||
* common.opt (-flto-report-wpa): Add.
|
||
* doc/invoke.texi (-flto-report-wpa): Add.
|
||
* lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
|
||
(lto_main): dito.
|
||
|
||
2013-04-22 Xinliang David Li <davidxl@google.com>
|
||
|
||
* graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
|
||
* cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
|
||
* Makefile.in: New dependency
|
||
|
||
David Daney <ddaney.cavm@gmail.com>
|
||
|
||
* configure.ac (gcc_cv_as_micromips_support): Use the
|
||
--fatal-warnings option.
|
||
* configure: Regenerate.
|
||
|
||
2013-04-22 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR sanitizer/56990
|
||
* tsan.c (instrument_expr): Don't instrument expression
|
||
in case its size is zero.
|
||
|
||
2013-04-22 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/57032
|
||
Revert:
|
||
2013-03-17 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/alpha/alpha.c (TARGET_LRA_P): New define.
|
||
|
||
2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* coretypes.h (gimple_stmt_iterator_d): Forward declare.
|
||
(gimple_stmt_iterator): New typedef.
|
||
* gimple.h (gimple_stmt_iterator): Rename to...
|
||
(gimple_stmt_iterator_d): ... This.
|
||
* doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
|
||
trees be valid for GIMPLE and GENERIC.
|
||
(TARGET_GIMPLE_FOLD_BUILTIN): New.
|
||
* gimple-fold.c (gimple_fold_call): Call target hook
|
||
gimple_fold_builtin.
|
||
* hooks.c (hook_bool_gsiptr_false): New.
|
||
* hooks.h (hook_bool_gsiptr_false): New.
|
||
* target.def (fold_stmt): New.
|
||
* doc/tm.texi: Regenerate.
|
||
|
||
2013-04-22 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/57018
|
||
* lra-eliminations.c (mark_not_eliminable): Prevent elimination of
|
||
a set sp if no stack realignment.
|
||
|
||
2013-04-22 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config.gcc (tilegx-linux): Extend extra_objs rather than
|
||
overwriting it.
|
||
(tilepro-linux): Likewise.
|
||
|
||
2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c
|
||
(CF): Remove.
|
||
(CF0, CF1, CF2, CF3, CF4, CF10): New.
|
||
(VAR<1-12>): Add MAP parameter.
|
||
(BUILTIN_*): Likewise.
|
||
* config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
|
||
* config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
|
||
(aarch64_ushl_n<mode>): Likewise.
|
||
(aarch64_sshr_n<mode>): Likewise.
|
||
(aarch64_ushr_n<mode>): Likewise.
|
||
(aarch64_<maxmin><mode>): Likewise.
|
||
(aarch64_sqrt<mode>): Likewise.
|
||
* config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
|
||
(vshr<q>_n_*): Likewise.
|
||
|
||
2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c
|
||
(aarch64_simd_builtin_type_mode): Handle SF types.
|
||
(sf_UP): Define.
|
||
(BUILTIN_GPF): Define.
|
||
(aarch64_init_simd_builtins): Handle SF types.
|
||
* config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
|
||
(frecps): Likewise.
|
||
(frecpx): Likewise.
|
||
* config/aarch64/aarch64-simd.md
|
||
(simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
|
||
(aarch64_frecpe<mode>): New.
|
||
(aarch64_frecps<mode>): Likewise.
|
||
* config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
|
||
(v8type): Add frecp<esx>.
|
||
(aarch64_frecp<FRECP:frecp_suffix><mode>): New.
|
||
(aarch64_frecps<mode>): Likewise.
|
||
* config/aarch64/iterators.md (FRECP): New.
|
||
(frecp_suffix): Likewise.
|
||
* config/aarch64/arm_neon.h
|
||
(vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
|
||
|
||
2013-04-22 Christian Bruel <christian.bruel@st.com>
|
||
|
||
PR target/56995
|
||
* config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
|
||
(REG_CLASS_NAMES): Idem.
|
||
(REG_CLASS_CONTENTS): Idem.
|
||
(REGCLASS_HAS_FP_REG): Idem.
|
||
* config/sh/sh.c (sh_cannot_change_mode_class): Idem.
|
||
(sh_conditional_register_usage): Idem.
|
||
|
||
2013-04-21 Jeff Law <law@redhat.com>
|
||
|
||
* tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
|
||
(ssa_forward_propagate_and_combine): Use it.
|
||
|
||
2013-04-19 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
* lra.c: Update the flow chart diagram.
|
||
|
||
2013-04-19 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/56847
|
||
* lra-constraints.c (process_alt_operands): Discourage alternative
|
||
with non-matche doffsettable memory constraint fro memory with
|
||
known offset.
|
||
|
||
2013-04-19 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56982
|
||
* builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
|
||
function.
|
||
* gimplify.c (gimplify_call_expr): Notice special calls.
|
||
(gimplify_modify_expr): Likewise.
|
||
* tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
|
||
abnormal control flow receivers.
|
||
(call_can_make_abnormal_goto): Handle cfun->calls_setjmp
|
||
in the same way as cfun->has_nonlocal_labels.
|
||
(gimple_purge_dead_abnormal_call_edges): Likewise.
|
||
(stmt_starts_bb_p): Make setjmp-like abnormal control flow
|
||
receivers start a basic-block.
|
||
|
||
2013-04-19 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vectorizer.h (struct _slp_instance): Move load_permutation
|
||
member ...
|
||
(struct _slp_tree): ... here. Make it a vector of unsigned ints.
|
||
(SLP_INSTANCE_LOAD_PERMUTATION): Remove.
|
||
(SLP_TREE_LOAD_PERMUTATION): Add.
|
||
(vect_transform_slp_perm_load): Adjust prototype.
|
||
* tree-vect-slp.c (vect_free_slp_tree): Adjust.
|
||
(vect_free_slp_instance): Likewise.
|
||
(vect_create_new_slp_node): Likewise.
|
||
(vect_supported_slp_permutation_p): Remove.
|
||
(vect_slp_rearrange_stmts): Adjust.
|
||
(vect_supported_load_permutation_p): Likewise. Inline
|
||
vect_supported_slp_permutation_p here.
|
||
(vect_analyze_slp_instance): Compute load permutations per
|
||
slp node instead of per instance.
|
||
(vect_get_slp_defs): Adjust.
|
||
(vect_transform_slp_perm_load): Likewise.
|
||
(vect_schedule_slp_instance): Remove redundant code.
|
||
(vect_schedule_slp): Remove hack for PR56270, add it ...
|
||
* tree-vect-stmts.c (vectorizable_load): ... here, do not
|
||
CSE loads for SLP. Adjust.
|
||
|
||
2013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
|
||
spelling in two comments.
|
||
|
||
2013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
PR target/56797
|
||
* config/arm/arm.c (load_multiple_sequence): Require SP
|
||
as base register for loads if SP is in the register list.
|
||
|
||
2013-04-19 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR tree-optimization/56718
|
||
* ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
|
||
* ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
|
||
and made public. Adjusted all callers.
|
||
(ipa_intraprocedural_devirtualization): New function.
|
||
* ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
|
||
(ipa_intraprocedural_devirtualization): Likewise.
|
||
* Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
|
||
|
||
2013-04-19 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/57000
|
||
* tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
|
||
|
||
2013-04-19 Terry Guo <terry.guo@arm.com>
|
||
|
||
* config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
|
||
Replace with ...
|
||
(cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
|
||
(cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
|
||
(cortex_m4_fmacs): Use new reservations.
|
||
(cortex_m4_f_load, cortex_m4_f_store): Likewise.
|
||
|
||
2013-04-18 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/56999
|
||
* lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
|
||
related code.
|
||
(lra_coalesce): Remove split_origin_bitmap and related code.
|
||
* lra.c (lra): Coalesce after undoing inheritance. Recreate live
|
||
ranges if necessary.
|
||
|
||
2013-04-18 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
|
||
New array.
|
||
(ix86_expand_call): Remove clobbered_registers array and use
|
||
x86_64_ms_sysv_extra_clobbered_registers instead.
|
||
* config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
|
||
Declare here.
|
||
* config/i386/predicates.md (call_rex64_ms_sysv_operation): New
|
||
predicate.
|
||
* config/i386/i386.md (*call_rex64_ms_sysv): Use
|
||
call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
|
||
(*call_value_rex64_ms_sysv): Ditto.
|
||
|
||
2013-04-18 Cary Coutant <ccoutant@google.com>
|
||
|
||
* dwarf2out.c (output_pubnames): Check die_perennial_p of
|
||
parent instead of die_mark.
|
||
|
||
2013-04-18 Diego Novillo <dnovillo@google.com>
|
||
|
||
* gimple.c (create_gimple_tmp): New.
|
||
(get_expr_type): New.
|
||
(build_assign): New.
|
||
(build_type_cast): New.
|
||
* gimple.h (enum ssa_mode): Define.
|
||
(gimple_seq_set_location): New.
|
||
* asan.c (build_check_stmt): Change some gimple_build_* calls
|
||
to use build_assign and build_type_cast.
|
||
|
||
2013-04-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-data-refs.c (vect_analyze_group_access): Properly
|
||
handle negative step. Remove redundant checks.
|
||
(vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
|
||
* tree-vect-stmts.c (vectorizable_load): Instead of asserting
|
||
for negative step and grouped loads fail to vectorize.
|
||
|
||
2013-04-18 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* emit-rtl.c (reset_insn_used_flags): New function.
|
||
(reset_all_used_flags): Use it.
|
||
(verify_insn_sharing): New function.
|
||
(verify_rtl_sharing): Fix verification for SEQUENCEs.
|
||
|
||
2013-04-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/56984
|
||
* tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
|
||
and (x >> M) >= N don't register any assertion if N << M is the
|
||
minimum value.
|
||
|
||
2013-04-18 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* lower-subreg.c (resolve_simple_move): If called self-recursive,
|
||
do not delete_insn insns that have not yet been emitted, only
|
||
unlink them with remove_insn.
|
||
* df-scan.c (df_insn_delete): Revert r197492.
|
||
|
||
2013-04-17 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
|
||
* reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
|
||
|
||
2013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.md (movsicc_insn): Convert define_insn into
|
||
define_insn_and_split.
|
||
(and_scc,ior_scc,negscc): Likewise.
|
||
(cmpsi2_addneg, subsi3_compare): Convert to named patterns.
|
||
|
||
2013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.c (use_return_insn): Return 0 for targets that
|
||
can benefit from using a sequence of LDRD instructions in epilogue
|
||
instead of a single LDM instruction.
|
||
|
||
2013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
|
||
|
||
PR 45688
|
||
* doc/extend.texi: Fix typo.
|
||
|
||
2013-04-17 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
|
||
(vect_build_slp_tree): ... here.
|
||
(vect_build_slp_tree_1): Compute which stmts of the SLP group
|
||
match. Remove special-casing of mismatched complex loads.
|
||
(vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
|
||
re-try the match with swapped commutative operands.
|
||
(vect_supported_load_permutation_p): Remove special-casing of
|
||
mismatched complex loads.
|
||
(vect_analyze_slp_instance): Adjust.
|
||
|
||
2013-04-17 Richard Biener <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/56921
|
||
* cfgloop.h (struct loop): Add simple_loop_desc member.
|
||
(struct niter_desc): Mark with GTY(()).
|
||
(simple_loop_desc): Do not use aux field but simple_loop_desc.
|
||
* loop-iv.c (get_simple_loop_desc): Likewise.
|
||
(free_simple_loop_desc): Likewise.
|
||
|
||
Revert
|
||
2013-04-16 Richard Biener <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/56921
|
||
* loop-init.c (pass_rtl_move_loop_invariants): Add
|
||
TODO_do_not_ggc_collect to todo_flags_finish.
|
||
(pass_rtl_unswitch): Same.
|
||
(pass_rtl_unroll_and_peel_loops): Same.
|
||
(pass_rtl_doloop): Same.
|
||
|
||
2013-04-17 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
|
||
(decl_refs_may_alias_p): Add REF1 and REF2 parameters.
|
||
Use nonoverlapping_component_refs_of_decl_p to disambiguate component
|
||
references.
|
||
(refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
|
||
* tree-streamer.c (record_common_node): Adjust reference in comment.
|
||
|
||
2013-04-17 Terry Guo <terry.guo@arm.com>
|
||
|
||
* config/arm/cortex-m4.md: Add a new bypass.
|
||
|
||
2013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
|
||
|
||
* config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
|
||
New pattern.
|
||
(*subs_<optab><mode>_multp2): New pattern.
|
||
(*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
|
||
(*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
|
||
|
||
2013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
|
||
|
||
* config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
|
||
(*subs_mul_imm_<mode>): New pattern.
|
||
|
||
2013-04-16 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
PR target/56948
|
||
* config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
|
||
(vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
|
||
(vsx_movti_32bit): Change j->wa to O->wa.
|
||
|
||
2013-04-16 Richard Biener <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/56921
|
||
* loop-init.c (pass_rtl_move_loop_invariants): Add
|
||
TODO_do_not_ggc_collect to todo_flags_finish.
|
||
(pass_rtl_unswitch): Same.
|
||
(pass_rtl_unroll_and_peel_loops): Same.
|
||
(pass_rtl_doloop): Same.
|
||
|
||
2013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.c (emit_multi_reg_push): New declaration
|
||
for an existing function.
|
||
(arm_emit_strd_push): New function.
|
||
(arm_expand_prologue): Used here.
|
||
(arm_emit_ldrd_pop): New function.
|
||
(arm_expand_epilogue): Used here.
|
||
(arm_get_frame_offsets): Update condition.
|
||
(arm_emit_multi_reg_pop): Add a special case for load of a single
|
||
register with writeback.
|
||
|
||
2013-04-16 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
|
||
description.
|
||
|
||
2013-04-16 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56756
|
||
* tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
|
||
(first_mem_ref_loc): New.
|
||
(execute_sm): Place the load temporarily before a previous
|
||
access instead of in the latch edge to ensure its SSA dependencies
|
||
are defined at points dominating the load.
|
||
|
||
2013-04-16 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
|
||
correct fix by moving header and footer insn to the footer of
|
||
the merged basic block. Clear BB_END of the merged-away block.
|
||
|
||
PR middle-end/43631
|
||
* emit-rtl.c (make_note_raw): New function.
|
||
(link_insn_into_chain): New static inline function.
|
||
(add_insn): Use it.
|
||
(add_insn_before, add_insn_after): Factor insn chain linking code...
|
||
(add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
|
||
using link_insn_into_chain.
|
||
(note_outside_basic_block_p): New helper function for emit_note_after
|
||
and emit_note_before.
|
||
(emit_note_after): Use nobb variant of add_insn_after if the note
|
||
should not be contained in a basic block.
|
||
(emit_note_before): Use nobb variant of add_insn_before if the note
|
||
should not be contained in a basic block.
|
||
(emit_note_copy): Use make_note_raw.
|
||
(emit_note): Likewise.
|
||
* bb-reorder.c (insert_section_boundary_note): Remove hack to set
|
||
BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
|
||
* jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
|
||
the moved barrier the tail of the basic block it follows.
|
||
* var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
|
||
|
||
2013-04-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/56962
|
||
* gimple-ssa-strength-reduction.c (record_increment): Only set
|
||
initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
|
||
either rhs1 or rhs2 is equal to c->base_expr.
|
||
|
||
2013-04-15 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56933
|
||
* tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
|
||
member.
|
||
(GROUP_READ_WRITE_DEPENDENCE): Remove.
|
||
(STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
|
||
* tree-vect-data-refs.c (vect_analyze_group_access): Move
|
||
dependence check ...
|
||
vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
|
||
... here.
|
||
* tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
|
||
GROUP_READ_WRITE_DEPENDENCE.
|
||
|
||
2013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
* emit-rtl.c (reset_all_used_flags): New function.
|
||
(verify_rtl_sharing): Call reset_all_used_flags before and after
|
||
performing the checks.
|
||
|
||
2013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
|
||
* config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
|
||
* config/arm/constraints.md (De): New constraint.
|
||
* config/arm/neon.md (anddi3_neon): Delete.
|
||
(neon_vand<mode>): Expand to standard anddi3 pattern.
|
||
* config/arm/predicates.md (imm_for_neon_inv_logic_operand):
|
||
Move earlier in the file.
|
||
(neon_inv_logic_op2): Likewise.
|
||
(arm_anddi_operand_neon): New predicate.
|
||
|
||
2013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* configure.ac (gcc_cv_ld_as_needed): Set
|
||
gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
|
||
Use -z ignore, -z record on *-*-solaris2*.
|
||
(HAVE_LD_AS_NEEDED): Update comment.
|
||
(LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
|
||
* configure: Regenerate.
|
||
* config.in: Regenerate.
|
||
* gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
|
||
LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
|
||
* config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
|
||
* doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
|
||
equivalents. Fix markup.
|
||
* doc/tm.texi: Regenerate.
|
||
|
||
2013-04-15 Andrew Hsieh <andrewhsieh.google.com>
|
||
|
||
* config/i386/i386.opt: New option mstack-protector-guard=.
|
||
* config/i386/i386-opts.h: Add enum stack_protector_guard.
|
||
* config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
|
||
TARGET_SSP_TLS_GUARD.
|
||
* config/i386/i386.c (ix86_option_override_internal): Set
|
||
ix86_stack_protector_guard.
|
||
* config/i386/i386.md (stack_protect_set): Enable for
|
||
TARGET_SSP_TLS_GUARD only.
|
||
(stack_protect_set_<mode>): Ditto.
|
||
(stack_protect_test): Ditto.
|
||
(stack_protect_test_<mode>): Ditto.
|
||
* doc/invoke.texi (i386 Option): Document.
|
||
|
||
2013-04-15 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR target/56890
|
||
* config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
|
||
(S_MODES): Set H_MODE bit.
|
||
(SF_MODES): Set only S_MODE and SF_MODE bits.
|
||
(DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
|
||
(sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
|
||
<MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
|
||
<MODE_FLOAT>: Likewise.
|
||
|
||
2013-04-15 Joey Ye <joey.ye@arm.com>
|
||
|
||
* config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
|
||
|
||
2013-04-15 Joey Ye <joey.ye@arm.com>
|
||
|
||
* config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
|
||
for real far jump.
|
||
(thumb_far_jump_used_p): Count instruction size and set
|
||
far_jump_used.
|
||
|
||
2013-04-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* reorg.c (fill_simple_delay_slots): Reindent block of code.
|
||
* resource.c (mark_target_live_regs): Reformat conditional block.
|
||
|
||
2013-04-13 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
|
||
notes, they are emitted only just before final.
|
||
* sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
|
||
|
||
2013-04-13 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* emit-rtl.c (remove_insn): Do not call df_insn_delete here.
|
||
* cfgrtl.c (delete_insn): Call it here instead.
|
||
* lra-spills.c (lra_final_code_change): Use delete_insn.
|
||
* haifa-sched.c (sched_remove_insn): Likewise.
|
||
* sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
|
||
returning to the nop pool.
|
||
(sel_remove_insn): Simplify the only_disconnect case via remove_insn,
|
||
use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
|
||
|
||
2013-04-12 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
|
||
* doc/tm.texi: Regenerated.
|
||
|
||
2013-04-12 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
|
||
QImode checks.
|
||
|
||
2013-04-12 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* df-core.c (df_find_def): Compare register numbers.
|
||
(df_find_use): Likewise.
|
||
|
||
2013-04-12 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/56903
|
||
* config/i386/i386.c (ix86_hard_regno_mode_ok): Add
|
||
lra_in_progress for return.
|
||
|
||
2013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
|
||
define_insn into define_insn_and_split and emit movsicc patterns.
|
||
|
||
2013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
|
||
|
||
2013-04-12 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-pass.h (TODO_do_not_ggc_collect): New.
|
||
* passes.c (execute_one_ipa_transform_pass): Honor
|
||
TODO_do_not_ggc_collect.
|
||
(execute_one_pass): Likewise.
|
||
|
||
Revert
|
||
2013-04-10 Richard Biener <rguenther@suse.de>
|
||
|
||
* passes.c (init_optimization_passes): Remove reload pass.
|
||
* ira.c (do_reload): Merge into ...
|
||
(ira): ... this.
|
||
(rest_of_handle_reload): Remove.
|
||
(pass_reload): Likewise.
|
||
* config/i386/i386.c (ix86_option_override): Refer to ira instead
|
||
of reload for vzeroupper pass placement.
|
||
|
||
2013-04-12 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/56918
|
||
PR tree-optimization/56920
|
||
* fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
|
||
instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
|
||
argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
|
||
use wide_mul_with_sign method.
|
||
|
||
2013-04-12 Richard Biener <rguenther@suse.de>
|
||
|
||
* gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
|
||
not be considered a gimple constant.
|
||
|
||
2013-04-12 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* fold-const.c (const_binop): Handle vector shifts by a scalar.
|
||
(fold_binary_loc): Call const_binop also for mixed vector-scalar
|
||
operations.
|
||
|
||
2013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* opts.c: Include diagnostic-color.h.
|
||
(common_handle_option): Handle OPT_fdiagnostics_color_.
|
||
* Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
|
||
(diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
|
||
(diagnostic-color.o): New.
|
||
* common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
|
||
(diagnostic_color_rule): New enum.
|
||
* dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
|
||
* langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
|
||
the location string.
|
||
* diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
|
||
either NULL, or color kind.
|
||
* diagnostic-color.c: New file.
|
||
* diagnostic-color.h: New file.
|
||
* diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
|
||
arguments.
|
||
* doc/invoke.texi (-fdiagnostics-color): Document.
|
||
* pretty-print.h (pp_show_color): Define.
|
||
(struct pretty_print_info): Add show_color field.
|
||
* diagnostic.c: Include diagnostic-color.h.
|
||
(diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
|
||
macros. Colorize error:, warning: etc. strings and also the location
|
||
string.
|
||
(diagnostic_show_locus): Colorize the caret line.
|
||
* pretty-print.c: Include diagnostic-color.h.
|
||
(pp_base_format): Handle %r and %R format specifiers. Colorize strings
|
||
inside of %< %> quotes or quoted through q format modifier.
|
||
|
||
2013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
* ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
|
||
|
||
2013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
|
||
code in CC_NZ mode.
|
||
* config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
|
||
pattern.
|
||
|
||
2013-04-11 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR tree-optimization/48184
|
||
* params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
|
||
|
||
2013-04-11 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* stor-layout.c (skip_simple_constant_arithmetic): Move to...
|
||
* tree.c (skip_simple_constant_arithmetic): ...here and make public.
|
||
(skip_simple_arithmetic): Tidy up.
|
||
* tree.h (skip_simple_constant_arithmetic): Declare.
|
||
|
||
2013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
|
||
|
||
* config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
|
||
|
||
2013-04-11 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-loop.c (get_initial_def_for_induction): Properly
|
||
generate vector constants.
|
||
|
||
2013-04-11 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56878
|
||
* tree-flow.h (outermost_invariant_loop_for_expr): Declare.
|
||
* tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
|
||
New function.
|
||
* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
|
||
Prefer to align the DR with the most invariant base address.
|
||
|
||
2013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
|
||
|
||
* opts.c (common_handle_option): Fix formatting and add FALLTHRU
|
||
comment.
|
||
|
||
2013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
|
||
floating-point vector comparisons against 0.
|
||
|
||
2013-04-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/56899
|
||
* fold-const.c (extract_muldiv_1): Apply distributive law
|
||
only if TYPE_OVERFLOW_WRAPS (ctype).
|
||
|
||
2013-04-11 Bin Cheng <bin.cheng@arm.com>
|
||
|
||
PR target/56124
|
||
* ira-costs.c (scan_one_insn): Check whether the source rtx of
|
||
loading has side effect.
|
||
|
||
2013-04-10 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* config/sparc/sparc.c: Include tree-pass.h.
|
||
(TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
|
||
(sparc_reorg): Rename to sparc_do_work_around_errata. Move to
|
||
head of file. Change return type. Split off gate function.
|
||
(sparc_gate_work_around_errata): New function.
|
||
(pass_work_around_errata): New pass definition.
|
||
(insert_pass_work_around_errata) New pass insert definition to
|
||
insert pass_work_around_errata just after delayed-branch scheduling.
|
||
(sparc_option_override): Insert the pass.
|
||
* config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
|
||
|
||
2013-04-10 David S. Miller <davem@davemloft.net>
|
||
|
||
* config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
|
||
or -mcpu=hypersparc.
|
||
|
||
* target.def (cstore_mode): New hook.
|
||
* target.h: Include insn-codes.h
|
||
* targhooks.c: Likewise.
|
||
(default_cstore_mode): New function.
|
||
* targhooks.h: Declare it.
|
||
* doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
|
||
* doc/tm.texi: Rebuild.
|
||
* expmed.c (emit_cstore): Obtain cstore boolean result mode using
|
||
target hook, rather than inspecting the insn_data.
|
||
* config/sparc/sparc.c (sparc_cstore_mode): New function.
|
||
(TARGET_CSTORE_MODE): Redefine.
|
||
(emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
|
||
result patterns.
|
||
* config/sparc/predicates.md (cstore_result_operand): New special
|
||
predicate.
|
||
* config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
|
||
Use it for operand 0.
|
||
(*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
|
||
(*snesi_special): Likewise.
|
||
(*snesi_zero): Likewise.
|
||
(*seqsi_zero): Likewise.
|
||
(*sltu_insn): Likewise.
|
||
(*sgeu_insn): Likewise.
|
||
(*seqdi_special): Make operand 0 and comparison operation be of
|
||
DImode.
|
||
(*snedi_special): Likewise.
|
||
(*snedi_special_vis3): Likewise.
|
||
(*neg_snesi_zero): Rename to *neg_snesisi_zero.
|
||
(*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
|
||
(*snesi_zero_extend): Delete, covered by 'P' mode iterator.
|
||
(*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
|
||
(*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
|
||
(*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
|
||
(*sltu_extend_sp64): Likewise.
|
||
(*neg_sltu_insn): Rename to *neg_sltusi_insn.
|
||
(*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
|
||
(*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
|
||
(*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
|
||
(*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
|
||
|
||
2013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_print_extension): New function.
|
||
(aarch64_start_file): Use the new function.
|
||
|
||
2013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
|
||
Jason Merrill <jason@redhat.com>
|
||
|
||
* common.opt: Add -gdwarf.
|
||
* opts.c (common_handle_option): Handle it.
|
||
* gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
|
||
|
||
2013-04-10 Richard Biener <rguenther@suse.de>
|
||
|
||
* passes.c (execute_todo): Do not call ggc_collect conditional here.
|
||
(execute_one_ipa_transform_pass): But unconditionally here.
|
||
(execute_one_pass): And here.
|
||
(init_optimization_passes): Remove reload pass.
|
||
* tree-pass.h (TODO_ggc_collect): Remove.
|
||
(pass_reload): Likewise.
|
||
* ira.c (do_reload): Merge into ...
|
||
(ira): ... this.
|
||
(rest_of_handle_reload): Remove.
|
||
(pass_reload): Likewise.
|
||
* config/i386/i386.c (ix86_option_override): Refer to ira instead
|
||
of reload for vzeroupper pass placement.
|
||
* <everywhere>: Remove TODO_ggc_collect from todo_flags_start
|
||
and todo_flags_finish of all passes.
|
||
|
||
2013-04-10 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vectorizer.h (struct _slp_oprnd_info): Remove
|
||
first_const_oprnd field, rename first_def_type to first_op_type.
|
||
* tree-vect-slp.c (vect_create_oprnd_info): Adjust.
|
||
(vect_get_and_check_slp_defs): Always use the type of the
|
||
operand. Allow mixed vect_external_def, vect_constant_def types.
|
||
(vect_get_constant_vectors): Handle mixed vect_external_def,
|
||
vect_constant_def types.
|
||
|
||
2013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
PR tree-optimization/55524
|
||
* tree-ssa-math-opts.c
|
||
(convert_mult_to_fma): Don't use an fms construct
|
||
when we don't have an fms operation, but fnma, and it looks
|
||
likely that we'll be able to use the latter.
|
||
|
||
2013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
|
||
|
||
* cif-code.def (OVERWRITABLE): Correct the comment for overwritable
|
||
function.
|
||
* ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
|
||
inline fail caused by overwritable functions.
|
||
|
||
2013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
|
||
|
||
* combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
|
||
unnecessary bits in the constant power of two case.
|
||
|
||
2013-04-10 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
|
||
broken code swapping operands.
|
||
(vect_build_slp_tree): Do not compute load permutations here.
|
||
(vect_analyze_slp_instance): Compute load permutations here,
|
||
after building the SLP tree.
|
||
|
||
2013-04-09 Christian Bruel <christian.bruel@st.com>
|
||
|
||
* config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
|
||
of next/prev_real_insn.
|
||
|
||
2013-04-09 Jan Hubicka <jh@suse.cz>
|
||
|
||
* ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
|
||
Drop aliased parameter.
|
||
(function_and_variable_visibility): Do not handle alias pairs.
|
||
* cgraph.c (varpool_externally_visible_p): Update prototype.
|
||
* varpool.c (varpool_add_new_variable): Update.
|
||
|
||
2013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
|
||
|
||
2013-04-09 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
|
||
|
||
* config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
|
||
|
||
2013-04-09 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR tree-optimization/48762
|
||
* params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
|
||
|
||
2013-04-09 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
|
||
dealing with cost.
|
||
(vect_build_slp_tree): Likewise.
|
||
(vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
|
||
calculating the cost of a SLP instance.
|
||
(vect_analyze_slp_instance): Use it from here, after building
|
||
the SLP tree.
|
||
|
||
2013-04-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/56883
|
||
* omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
|
||
expand_omp_for_static_chunk): Use simple_p = true in
|
||
force_gimple_operand_gsi calls when assigning to addressable decls.
|
||
|
||
2013-04-09 Jeff Law <law@redhat.com>
|
||
|
||
* tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
|
||
when the boolean was created by converting a wider object which
|
||
had a boolean range.
|
||
|
||
2013-04-09 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vectorizer.h (slp_void_p): Remove.
|
||
(slp_tree): Typedef before _slp_tree declaration.
|
||
(struct _slp_tree): Use a vector of slp_tree as children.
|
||
(vect_get_place_in_interleaving_chain): Remove.
|
||
* tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
|
||
Move ...
|
||
* tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
|
||
and make static.
|
||
(vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
|
||
vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
|
||
vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
|
||
vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
|
||
Use slp_node instead of slp_void_p and adjust.
|
||
|
||
2013-04-09 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
|
||
work that is not necessary.
|
||
|
||
2013-04-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/56854
|
||
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
|
||
forward into clobber stmts if it would change MEM_REF lhs into
|
||
non-MEM_REF.
|
||
|
||
2013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
|
||
|
||
* tree.c (type_hash_lookup, type_hash_add): Make static.
|
||
* tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
|
||
|
||
2013-04-09 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree.h (unsave_expr_now): Remove.
|
||
* tree-inline.c (mark_local_for_remap_r): Remove.
|
||
(unsave_expr_1): Likewise.
|
||
(unsave_r): Likewise.
|
||
(unsave_expr_now): Likewise.
|
||
* tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
|
||
(propagate_tree_value): Likewise.
|
||
|
||
2013-04-08 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* doc/rtl.texi (sequence): Rewrite documentation to match the
|
||
current use of SEQUENCE rtl objects.
|
||
* rtl.def (SEQUENCE): Likewise.
|
||
|
||
* doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
|
||
Update documentation.
|
||
(NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
|
||
NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
|
||
|
||
* reg-notes.def (REG_EH_CONTEXT): Remove unused note.
|
||
|
||
2013-04-08 Teresa Johnson <tejohnson@google.com>
|
||
|
||
* basic-block.h (GCOV_COMPUTE_SCALE): Define.
|
||
* ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
|
||
methods.
|
||
(estimate_edge_size_and_time): Add comment to suggest using rounding
|
||
methods.
|
||
(estimate_node_size_and_time): Ditto.
|
||
(remap_edge_change_prob): Use helper rounding divide methods.
|
||
* value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
|
||
(gimple_mod_pow2_value_transform): Ditto.
|
||
(gimple_mod_subtract_transform): Ditto.
|
||
(gimple_ic_transform): Ditto.
|
||
(gimple_stringops_transform): Ditto.
|
||
* stmt.c (conditional_probability): Ditto.
|
||
(emit_case_dispatch_table): Ditto.
|
||
* lto-cgraph.c (merge_profile_summaries): Ditto.
|
||
* tree-optimize.c (execute_fixup_cfg): Ditto.
|
||
* cfgcleanup.c (try_forward_edges): Ditto.
|
||
* cfgloopmanip.c (scale_loop_profile): Ditto.
|
||
(loopify): Ditto.
|
||
(duplicate_loop_to_header_edge): Ditto.
|
||
(lv_adjust_loop_entry_edge): Ditto.
|
||
* tree-vect-loop.c (vect_transform_loop): Ditto.
|
||
* profile.c (compute_branch_probabilities): Ditto.
|
||
* cfgbuild.c (compute_outgoing_frequencies): Ditto.
|
||
* lto-streamer-in.c (input_cfg): Ditto.
|
||
* gimple-streamer-in.c (input_bb): Ditto.
|
||
* ipa-cp.c (update_profiling_info): Ditto.
|
||
(update_specialized_profile): Ditto.
|
||
* tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
|
||
* cfg.c (update_bb_profile_for_threading): Add comment to suggest using
|
||
rounding methods.
|
||
* sched-rgn.c (compute_dom_prob_ps): Ditto.
|
||
(compute_trg_info): Ditto.
|
||
* cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
|
||
(purge_dead_edges): Ditto.
|
||
* loop-unswitch.c (unswitch_loop): Ditto.
|
||
* cgraphclones.c (cgraph_clone_edge): Ditto.
|
||
(cgraph_clone_node): Ditto.
|
||
* tree-inline.c (copy_bb): Ditto.
|
||
(copy_edges_for_bb): Ditto.
|
||
(initialize_cfun): Ditto.
|
||
(copy_cfg_body): Ditto.
|
||
(expand_call_inline): Ditto.
|
||
|
||
2013-04-08 Kai Tietz <ktietz@redhat.com>
|
||
|
||
* config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
|
||
TARGET_CYGWIN64 by TARGET_64BIT.
|
||
|
||
2013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
* config/epiphany/epiphany.md (GPR_1): New constant.
|
||
(define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
|
||
* config/epiphany/epiphany.c (gen_compare_reg):
|
||
For flag_finite_math_only, avoid swapping operands when r0 and/or r1
|
||
is already in place.
|
||
Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
|
||
Don't require being called during rtl expansion; If y operlaps r0,
|
||
return 0.
|
||
(epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
|
||
(epiphany_expand_epilogue): Likewise.
|
||
|
||
* config/epiphany/epiphany.c (epiphany_select_cc_mode):
|
||
Don't use CC_FPmode for ORDERED / UNORDERED.
|
||
* config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
|
||
|
||
* config/epiphany/constraints.md (CnL): New constraint.
|
||
* config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
|
||
* config/epiphany/predicates.md (add_operand): Allow 1024.
|
||
|
||
* config/epiphany/epiphany.md (logical_op): New code iterator.
|
||
(op_mnc): New code attribute.
|
||
(<op_mnc>_f, mov_f, cstoresi4): New patterns.
|
||
(mov_f+1, mov_f+2): New peephole2 patterns.
|
||
|
||
* config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
|
||
(cstoresi4): Also allow re-use of zero result when doing a NE
|
||
comparison to a non-zero operand.
|
||
Use (clobber (scratch)) for first insn if the gpr output is not needed.
|
||
|
||
* config/epiphany/epiphany.md (<insn_opname>v2si3):
|
||
Use gen_addsi3_i / gen_subsi3_i.
|
||
|
||
2013-04-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/34949
|
||
PR c++/50243
|
||
* tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
|
||
contain anything but clobbers, at most one __builtin_stack_restore,
|
||
optionally debug stmts and final resx, and if it has at least one
|
||
incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
|
||
(sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
|
||
Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
|
||
which isn't defaut definition, remove them.
|
||
(unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
|
||
instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
|
||
* tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
|
||
with MEM_REF LHS with SSA_NAME address.
|
||
|
||
2013-04-08 Jeff Law <law@redhat.com>
|
||
|
||
* gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
|
||
|
||
2013-04-08 Richard Biener <rguenther@suse.de>
|
||
|
||
* gimple-pretty-print.c (debug_gimple_stmt): Do not print
|
||
extra newline.
|
||
* tree-vect-loop.c (vect_determine_vectorization_factor): Dump
|
||
determined vector type.
|
||
(vect_analyze_data_refs): Likewise.
|
||
(vect_get_new_vect_var): Adjust.
|
||
(vect_create_destination_var): Preserve SSA name versions.
|
||
* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
|
||
not dump anything here.
|
||
|
||
2013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
* config/epiphany/epiphany.h (struct GTY (()) machine_function):
|
||
Add member lr_slot_known.
|
||
* config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
|
||
if necessary.
|
||
* config/epiphany/epiphany.c (epiphany_compute_frame_size):
|
||
Remove code that sets lr_slot_offset according to what a previous
|
||
version of epiphany_emit_save_restore used to do.
|
||
(epiphany_emit_save_restore): When doing an lr save or restore,
|
||
set/verify lr_slot_known and lr_slot_offset.
|
||
|
||
2013-04-08 Xinyu Qi <xyqi@marvell.com>
|
||
|
||
PR target/54338
|
||
* config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
|
||
in ALL_REGS.
|
||
|
||
2013-04-08 Richard Biener <rguenther@suse.de>
|
||
|
||
* alias.c (find_base_term): Fix thinko in previous change.
|
||
|
||
2013-04-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* tree-loop-distribution.c (const_with_all_bytes_same): New function.
|
||
(generate_memset_builtin): Only handle integer_all_onesp as -1 val if
|
||
TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
|
||
if possible to compute val.
|
||
(classify_partition): Verify CONSTRUCTOR doesn't have any elts.
|
||
For QImode integers don't require anything about precision. Use
|
||
const_with_all_bytes_same to find out if the constant doesn't have
|
||
repeated bytes in it.
|
||
|
||
2013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
* config/s390/s390.c (s390_expand_insv): Only accept insertions
|
||
within mode size.
|
||
|
||
2013-04-08 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR rtl-optimization/48182
|
||
* params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
|
||
value to 1.
|
||
|
||
2013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR target/55487
|
||
* config/pa/pa.c (legitimize_pic_address): Before incrementing label
|
||
nuses, make sure we have a label.
|
||
|
||
2013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
PR target/56843
|
||
* config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
|
||
(rs6000_emit_swdiv_low_precision): Remove.
|
||
(rs6000_emit_swdiv): Rewrite to handle between one and four
|
||
iterations of Newton-Raphson generally; modify required number of
|
||
iterations for some cases.
|
||
* config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
|
||
|
||
2013-04-05 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* bb-reorder.c (fix_crossing_unconditional_branches): Remove a
|
||
set-but-unused variable.
|
||
|
||
* cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
|
||
basic blocks of released function bodies garbage-collectable.
|
||
|
||
* ree.c (find_and_remove_re): Do not call df_finish_pass here.
|
||
(struct rtl_opt_pass): Add TODO_df_finish.
|
||
|
||
* rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
|
||
|
||
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/constraints.md (q): New constraint.
|
||
* config/arm/ldrdstrd.md: New file.
|
||
* config/arm/arm.md (ldrdstrd.md) New include.
|
||
(arm_movdi): Use "q" instead of "r" constraint
|
||
for double-word memory access.
|
||
(movdf_soft_insn): Likewise.
|
||
* config/arm/vfp.md (movdi_vfp): Likewise.
|
||
* config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
|
||
* config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
|
||
* config/arm/arm.c (gen_operands_ldrd_strd): New function.
|
||
(mem_ok_for_ldrd_strd): Likewise.
|
||
(output_move_double): Update assertion.
|
||
|
||
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.md: Comment on splitting Thumb1 patterns.
|
||
|
||
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.md (arm_smax_insn): Convert define_insn into
|
||
define_insn_and_split.
|
||
(arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
|
||
|
||
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
|
||
define_insn_and_split.
|
||
(arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
|
||
(shiftsi3_compare): New pattern.
|
||
(rrx): New pattern.
|
||
* config/arm/unspecs.md (UNSPEC_RRX): New.
|
||
|
||
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.md (negdi_extendsidi): New pattern.
|
||
(negdi_zero_extendsidi): Likewise.
|
||
|
||
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
|
||
define_insn_and_split.
|
||
(arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
|
||
(arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
|
||
|
||
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.md (arm_subdi3): Convert define_insn into
|
||
define_insn_and_split.
|
||
(subdi_di_zesidi,subdi_di_sesidi): Likewise.
|
||
(subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
|
||
|
||
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.md (subsi3_carryin): New pattern.
|
||
(subsi3_carryin_const): Likewise.
|
||
(subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
|
||
(subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
|
||
|
||
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
|
||
|
||
2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
|
||
(addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
|
||
|
||
2013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.c (arm_expand_builtin): Change fcode
|
||
type to unsigned int.
|
||
|
||
2013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
* doc/invoke.texi (ARM Options): Document cortex-a53 support.
|
||
|
||
2013-04-04 Ian Lance Taylor <iant@google.com>
|
||
|
||
* doc/standards.texi (Standards): The Go frontend supports the Go 1
|
||
language standard.
|
||
|
||
2013-04-04 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
PR middle-end/56729
|
||
* df-scan.c (df_insn_delete): Disable failing assert.
|
||
|
||
2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm-protos.h (arm_builtin_vectorized_function):
|
||
New function prototype.
|
||
* config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
|
||
(TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
|
||
(arm_builtin_vectorized_function): New function.
|
||
|
||
2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm_neon_builtins.def: New file.
|
||
* config/arm/arm.c (neon_builtin_data): Move contents to
|
||
arm_neon_builtins.def.
|
||
(enum arm_builtins): Include neon builtin definitions.
|
||
(ARM_BUILTIN_NEON_BASE): Move from enum to macro.
|
||
* config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
|
||
|
||
2013-04-04 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR tree-optimization/48186
|
||
* predict.c (maybe_hot_frequency_p): Return false if
|
||
HOT_BB_FREQUENCY_FRACTION is 0.
|
||
(cgraph_maybe_hot_edge_p): Likewise.
|
||
|
||
2013-04-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56826
|
||
* tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
|
||
more accurately.
|
||
|
||
2013-04-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56213
|
||
* tree-vect-data-refs.c (vect_check_strided_load): Remove.
|
||
(vect_analyze_data_refs): Allow all non-nested loads as strided loads.
|
||
|
||
2013-04-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56837
|
||
* tree-loop-distribution.c (classify_partition): For non-zero
|
||
values require that the value has the same precision as its
|
||
mode to be useful as memset value.
|
||
|
||
2013-04-03 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
|
||
(fmssf4): Use fmsf.s on E3V5 architectures.
|
||
(fnmasf4): Use fnmaf.s on E3V5 architectures.
|
||
(fnmssf4): Use fnmsf.s on E3V5 architectures.
|
||
|
||
2013-04-03 Jeff Law <law@redhat.com>
|
||
|
||
* Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
|
||
(lra-eliminations.o): Likewise.
|
||
|
||
2013-04-03 Teresa Johnson <tejohnson@google.com>
|
||
|
||
* gcov-io.c (compute_working_sets): Moved most of body of old
|
||
compute_working_sets here from profile.c.
|
||
* gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
|
||
(gcov_working_set_t): Moved typedef here from basic-block.h
|
||
(compute_working_set): Declare.
|
||
* profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
|
||
(get_working_sets): Renamed from compute_working_set,
|
||
replace most of body with call to new compute_working_sets.
|
||
(get_exec_counts): Replace call to compute_working_sets
|
||
to get_working_sets.
|
||
* profile.h (get_working_sets): Renamed from compute_working_set.
|
||
* lto-cgraph.c (input_symtab): Replace call to compute_working_sets
|
||
to get_working_sets.
|
||
* basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
|
||
* gcov-dump.c (dump_working_sets): New function.
|
||
|
||
2013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
* hwint.c (sext_hwi, zext_hwi): New functions.
|
||
* hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
|
||
HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
|
||
HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
|
||
HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
|
||
HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
|
||
(sext_hwi, zext_hwi): New functions.
|
||
|
||
2013-04-03 Jeff Law <law@redhat.com>
|
||
|
||
PR tree-optimization/56799
|
||
* tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
|
||
back test for widening conversion erroneously dropped in prior change.
|
||
|
||
2013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
PR target/56809
|
||
* config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
|
||
instead of next_real_insn.
|
||
|
||
2013-04-03 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR sanitizer/55702
|
||
* tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
|
||
|
||
2013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
PR target/56809
|
||
* config/arm/arm.c (is_jump_table): Use next_active_insn instead of
|
||
next_real_insn.
|
||
(thumb1_output_casesi): Likewise.
|
||
(thumb2_output_casesi): Likewise.
|
||
|
||
2013-04-03 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56817
|
||
* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
|
||
Split out ...
|
||
(tree_unroll_loops_completely_1): ... new function to manually
|
||
walk the loop tree, properly defering outer loops of unrolled
|
||
loops to later iterations.
|
||
|
||
2013-04-03 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
|
||
(vectorizable_load): Likewise.
|
||
* tree-vect-slp.c (vect_build_slp_tree): Likewise.
|
||
* tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
|
||
|
||
2013-04-03 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
|
||
BIT_FIELD_REF.
|
||
|
||
2013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
|
||
|
||
* config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
|
||
|
||
2013-04-03 Bin Cheng <bin.cheng@arm.com>
|
||
|
||
* rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
|
||
|
||
2013-04-03 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR tree-optimization/56790
|
||
* fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
|
||
folding.
|
||
|
||
2013-04-03 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
|
||
Handle VEC_MERGE.
|
||
(simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
|
||
for masks. Test for side effects. Handle nested VEC_MERGE. Handle
|
||
equal arguments.
|
||
|
||
2013-04-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c/19449
|
||
* tree.h (force_folding_builtin_constant_p): New decl.
|
||
* builtins.c (force_folding_builtin_constant_p): New variable.
|
||
(fold_builtin_constant_p): Fold immediately also if
|
||
force_folding_builtin_constant_p.
|
||
|
||
2013-04-03 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56812
|
||
* tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
|
||
DRs of the same interleaving chain are independent.
|
||
|
||
2013-04-02 Jason Merrill <jason@redhat.com>
|
||
|
||
* gdbinit.in (pbb): Use debug fn.
|
||
|
||
2013-04-02 Lawrence Crowl <crowl@google.com>
|
||
|
||
* sese.h (struct ivtype_map_elt_s): Remove unused.
|
||
(extern debug_ivtype_map): Remove unused.
|
||
(extern eq_ivtype_map_elts): Remove unused.
|
||
* sese.c (debug_ivtype_map): Removed unused.
|
||
(debug_ivtype_map_1): Removed unused.
|
||
(debug_ivtype_elt): Remove unused.
|
||
(eq_ivtype_map_elts): Remove unused.
|
||
|
||
|
||
2013-04-02 Kai Tietz <ktietz@redhat.com>
|
||
|
||
PR target/52790
|
||
* config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
|
||
* config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
|
||
* config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
|
||
function.
|
||
(legitimize_pe_coff_symbol): Likewise.
|
||
(is_imported_p): New helper-function.
|
||
(ix86_option_override_internal): Make MEDIUM_PIC the default code-model
|
||
for Windows x64 targets.
|
||
(ix86_expand_prologue): Optimize for pe-coff targets.
|
||
(ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
|
||
(legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
|
||
medium/large code-model.
|
||
(legitimize_pic_address): Likewise.
|
||
(legitimize_tls_address): Likewise.
|
||
(ix86_expand_call): Likewise.
|
||
(x86_output_mi_thunk): Likewise.
|
||
(get_dllimport_decl): Add new beimport argument.
|
||
(construct_plt_address): Don't assert for x64 pe-coff targets.
|
||
* config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
|
||
targets.
|
||
(SYMBOL_FLAG_STUBVAR): New macro.
|
||
(SYMBOL_REF_STUBVAR_P): Likewise.
|
||
* config/i386/winnt.c (stub_list): New structure.
|
||
(stub_head): New local variable.
|
||
(i386_pe_record_stub): New function.
|
||
(i386_pe_file_end): Emit refptr-stubs.
|
||
|
||
2013-04-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/56745
|
||
* ifcvt.c (cond_exec_find_if_block): Don't try to optimize
|
||
if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
|
||
|
||
PR c++/34949
|
||
* tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
|
||
and both of them are MEM_REFs, just compare first argument for
|
||
equality and attempt to deal even with differing offsets.
|
||
|
||
PR c++/34949
|
||
* tree-cfg.c (verify_gimple_assign_single): Allow lhs
|
||
of gimple_clobber_p to be MEM_REF.
|
||
* gimplify.c (gimplify_modify_expr): Gimplify *to_p of
|
||
an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
|
||
after gimplification.
|
||
* asan.c (get_mem_ref_of_assignment): Don't instrument
|
||
gimple_clobber_p stmts.
|
||
* tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
|
||
gimple_clobber_p stmt if they have MEM_REF lhs and
|
||
are dead because of another gimple_clobber_p stmt.
|
||
* tree-ssa-live.c (clear_unused_block_pointer): Treat
|
||
gimple_clobber_p stmts like debug stmts.
|
||
(remove_unused_locals): Remove clobbers with MEM_REF lhs
|
||
that refer to unused VAR_DECLs or uninitialized values.
|
||
* tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
|
||
gimple_clobber_p stmts if they refer to removed parameters.
|
||
(get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
|
||
formatting.
|
||
|
||
2013-04-02 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
|
||
using SWI48 mode attribute.
|
||
|
||
2013-04-02 Wei Mi <wmi@google.com>
|
||
|
||
* config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
|
||
ashl<mode>3_mask, *<shift_insn><mode>3_mask and
|
||
*<rotate_insn><mode>3_mask in i386.md.
|
||
|
||
2013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
|
||
|
||
* config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
|
||
|
||
2013-04-02 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56778
|
||
* tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
|
||
Runtime alias tests are not supported for gather loads.
|
||
* tree-vect-loop-manip.c (vect_loop_versioning): Insert
|
||
stmts referenced from SSA operands before updating SSA form.
|
||
|
||
2013-04-02 Ian Caulfield <ian.caulfield@arm.com>
|
||
Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
* config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
|
||
* config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
|
||
* config/arm/cortex-a53.md: New file.
|
||
* config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
|
||
* config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
|
||
* config/arm/arm.c (arm_issue_rate): Likewise.
|
||
* config/arm/arm-tune.md: Regenerate
|
||
* config/arm/arm-tables.opt: Regenerate.
|
||
* config/arm/arm-cores.def: Add cortex-a53.
|
||
|
||
2013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
|
||
|
||
* config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
|
||
non-static link.
|
||
|
||
2013-04-02 Sofiane Naci <sofiane.naci@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
|
||
scalar load/store operations using B/H registers.
|
||
(*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
|
||
|
||
2013-04-02 Sofiane Naci <sofiane.naci@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
|
||
scalar move.
|
||
* config/aarch64/aarch64.c
|
||
(aarch64_simd_scalar_immediate_valid_for_move): New.
|
||
* config/aarch64/aarch64-protos.h
|
||
(aarch64_simd_scalar_immediate_valid_for_move): New.
|
||
* config/aarch64/constraints.md (Dh, Dq): New.
|
||
* config/aarch64/iterators.md (hq): New.
|
||
|
||
2013-04-02 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* reorg.c (get_branch_condition): Deal with conditional returns.
|
||
(fill_simple_delay_slots): Remove dead code dealing with jumps.
|
||
|
||
2013-04-01 Wei Mi <wmi@google.com>
|
||
|
||
* config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
|
||
Truncate operand 2 using %b asm operand modifier.
|
||
(*<shift_insn><mode>3_mask): Ditto.
|
||
(*<rotate_insn><mode>3_mask): Ditto.
|
||
|
||
2013-04-01 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
PR middle-end/56798
|
||
* cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
|
||
|
||
2013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
* config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
|
||
of next_real_insn.
|
||
(casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
|
||
|
||
2013-03-30 Lawrence Crowl <crowl@google.com>
|
||
|
||
* dse.c (clear_alias_sets): Remove never set.
|
||
(disqualified_clear_alias_sets): Remove never set.
|
||
(clear_alias_mode_pool): Remove never set.
|
||
(dse_step0): Remove condition that is never true.
|
||
(canon_address): Remove condition that is never true.
|
||
(dse_step7): Remove condition that is never true.
|
||
(rest_of_handle_dse): Remove condition that is never true.
|
||
(rest_of_handle_dse::did_global): Remove never read from above.
|
||
(dse_step2_spill): Remove never called from above.
|
||
(dse_step5_spill): Remove never called from above.
|
||
|
||
2013-03-30 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* doc/md.texi (Standard Names) <casesi>: Update documentation for
|
||
JUMP_TABLE_DATA changes.
|
||
* doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
|
||
* doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
|
||
(Insns) <jump_table_data>: New entry.
|
||
* doc/tm.texi: Regenerate.
|
||
|
||
* cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
|
||
|
||
* postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
|
||
for table jump at the end of a basic block using tablejump_p.
|
||
* targhooks.c (default_invalid_within_doloop): Likewise.
|
||
* config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
|
||
target hook implementation that is identical to the default hook.
|
||
(rs6000_invalid_within_doloop): Remove.
|
||
|
||
* bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
|
||
unused variable from tablejump_p call.
|
||
|
||
* rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
|
||
* rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
|
||
(INSN_DELETED_P): Likewise.
|
||
(emit_jump_table_data): New prototype.
|
||
* gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
|
||
after 4th as unused.
|
||
* print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
|
||
* sched-vis.c (print_insn): Likewise.
|
||
* emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
|
||
insn for compatibility with back ends that use next_active_insn to
|
||
identify jump table data.
|
||
(set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
|
||
(remove_insn): Likewise.
|
||
(emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
|
||
to be emitted.
|
||
(emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
|
||
(emit_jump_table_data): New function.
|
||
|
||
* cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
|
||
basic block, a JUMP_TABLE_DATA never is.
|
||
(control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
|
||
* cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
|
||
off from code handling real insns.
|
||
* final.c (get_attr_length_1): Simplify for JUMP_INSNs.
|
||
* function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
|
||
test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
|
||
* gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
|
||
is not a NONDEBUG_INSN_P.
|
||
* ira-costs.c (scan_one_insn): Likewise.
|
||
* jump.c (mark_all_labels): Likewise.
|
||
(mark_jump_label_1): Likewise.
|
||
* lra-eliminations.c (eliminate_regs_in_insn): Likewise.
|
||
* lra.c (get_insn_freq): Expect all insns reaching here to be in
|
||
a basic block.
|
||
(check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
|
||
* predict.c (expensive_function_p): Use FOR_BB_INSNS.
|
||
* reload1.c (calculate_needs_all_insns): Call set_label_offsets for
|
||
JUMP_TABLE_DATA_P insns.
|
||
(calculate_elim_costs_all_insns): Likewise.
|
||
(set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
|
||
(elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
|
||
(delete_output_reload): Code style fixups.
|
||
* reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
|
||
insn flags on this non-insn.
|
||
* sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
|
||
as scheduling barriers, for pre-change compatibility.
|
||
* stmt.c (emit_case_dispatch_table): Emit jump table data not as
|
||
JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
|
||
|
||
* config/alpha/alpha.c (alpha_does_function_need_gp): Remove
|
||
redundant JUMP_TABLE_DATA_P test.
|
||
* config/arm/arm.c (thumb_far_jump_used_p): Likewise.
|
||
* config/frv/frv.c (frv_function_contains_far_jump): Likewise.
|
||
(frv_for_each_packet): Likewise.
|
||
* config/i386/i386.c (min_insn_size): Likewise.
|
||
(ix86_avoid_jump_mispredicts): Likewise.
|
||
* config/m32r/m32r.c (m32r_is_insn): Likewise.
|
||
* config/mep/mep.c (mep_reorg_erepeat): Likewise.
|
||
* config/mips/mips.c (USEFUL_INSN_P): Likewise.
|
||
(mips16_insn_length): Robustify.
|
||
(mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
|
||
(mips16_split_long_branches): Likewise.
|
||
* config/pa/pa.c (pa_combine_instructions): Likewise.
|
||
* config/rs6000/rs6000.c (get_next_active_insn): Treat
|
||
JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
|
||
* config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
|
||
as contributing to pool range lengths.
|
||
* config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
|
||
Remove redundant JUMP_TABLE_DATA_P test.
|
||
(sh_loop_align): Likewise.
|
||
(split_branches): Likewise.
|
||
(sh_insn_length_adjustment): Likewise.
|
||
* config/spu/spu.c (get_branch_target): Likewise.
|
||
|
||
2013-03-29 Jan Hubicka <jh@suse.cz>
|
||
|
||
* lto-cgraph.c (output_profile_summary, input_profile_summary): Use
|
||
gcov streaming; stream hot bb threshold to ltrans.
|
||
* predict.c (get_hot_bb_threshold): Break out from ....
|
||
(maybe_hot_count_p): ... here.
|
||
(set_hot_bb_threshold): New function.
|
||
* lto-section-in.c (lto_section_name): Add profile.
|
||
* profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
|
||
* ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
|
||
and data-streamer.h
|
||
(histogram_entry): New structure.
|
||
(histogram, histogram_pool): New global vars.
|
||
(histogram_hash): New structure.
|
||
(histogram_hash::hash): New method.
|
||
(histogram_hash::equal): Likewise.
|
||
(account_time_size): New function.
|
||
(cmp_counts): New function.
|
||
(dump_histogram): New function.
|
||
(ipa_profile_generate_summary): New function.
|
||
(ipa_profile_write_summary): New function.
|
||
(ipa_profile_read_summary): New function.
|
||
(ipa_profile): Decide on threshold.
|
||
(pass_ipa_profile): Add ipa_profile_write_summary and
|
||
ipa_profile_read_summary.
|
||
* Makefile.in (ipa.o): Update dependencies.
|
||
* lto-streamer.h (LTO_section_ipa_profile): New section.
|
||
|
||
2013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
||
|
||
* tree.h (VAR_P): New.
|
||
|
||
2013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR lto/56777
|
||
* doc/invoke.texi ([-fwhole-program]): Fix typo.
|
||
|
||
2013-03-29 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
|
||
of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
|
||
(control_flow_insn_p): Likewise.
|
||
* cfgrtl.c (duplicate_insn_chain): Likewise.
|
||
* final.c (get_attr_length_1): Likewise.
|
||
(shorten_branches): Likewise.
|
||
(final_scan_insn): Likewise.
|
||
* function.c (instantiate_virtual_regs): Likewise.
|
||
* gcse.c (insert_insn_end_basic_block): Likewise.
|
||
* ira-costs.c (scan_one_insn): Likewise.
|
||
* lra-eliminations.c (eliminate_regs_in_insn): Likewise.
|
||
* lra.c (check_rtl): Likewise.
|
||
* reload1.c (elimination_costs_in_insn): Likewise.
|
||
* reorg.c (follow_jumps): Likewise.
|
||
|
||
* config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
|
||
of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
|
||
(thumb_far_jump_used_p): Likewise.
|
||
* config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
|
||
(workaround_speculation): Likewise.
|
||
(add_sched_insns_for_speculation): Likewise.
|
||
* config/c6x/c6x.c (reorg_emit_nops): Likewise.
|
||
* config/frv/frv.c (frv_function_contains_far_jump): Likewise.
|
||
(frv_for_each_packet): Likewise.
|
||
* config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
|
||
* config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
|
||
(final_emit_insn_group_barriers): Likewise.
|
||
* config/m32r/m32r.c (m32r_is_insn): Likewise.
|
||
* config/mips/mips.c (USEFUL_INSN_P): Likewise.
|
||
(mips16_insn_length): Likewise.
|
||
* config/pa/pa.c (pa_reorg): Likewise.
|
||
(pa_combine_instructions): Likewise.
|
||
* config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
|
||
* config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
|
||
(sh_reorg): Likewise.
|
||
(split_branches): Likewise.
|
||
* config/spu/spu.c (get_branch_target): Likewise.
|
||
|
||
* config/s390/s390.c (s390_chunkify_start): Simplify logic using
|
||
JUMP_TABLE_DATA_P.
|
||
|
||
2013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
|
||
|
||
* config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
|
||
Fix declaration name.
|
||
|
||
2013-03-28 Lawrence Crowl <crowl@google.com>
|
||
|
||
* graphds.h (struct graph.indicies): Remove unused.
|
||
* graphite-poly.h (struct graph.original_pddrs): Remove unused.
|
||
(SCOP_ORIGINAL_PDDRS): Remove unused.
|
||
* sese.h (extern insert_loop_close_phis): Removed unused.
|
||
(extern insert_guard_phis): Removed unused.
|
||
(extern ivtype_map_elt_info): Removed unused.
|
||
(new_ivtype_map_elt): Removed unused.
|
||
* sese.c (ivtype_map_elt_info): Removed unused.
|
||
|
||
2013-03-28 Lawrence Crowl <crowl@google.com>
|
||
|
||
* Makefile.in: Add several missing include dependences.
|
||
(DUMPFILE_H): New.
|
||
(test-dump.o): New. This object is not added to any executable,
|
||
but is present for ad-hoc testing.
|
||
* bitmap.c
|
||
(debug (const bitmap_head_def &)): New.
|
||
(debug (const bitmap_head_def *)): New.
|
||
* bitmap.h
|
||
(extern debug (const bitmap_head_def &)): New.
|
||
(extern debug (const bitmap_head_def *)): New.
|
||
* cfg.c
|
||
(debug (edge_def &)): New.
|
||
(debug (edge_def *)): New.
|
||
* cfghooks.c
|
||
(debug (basic_block_def &)): New.
|
||
(debug (basic_block_def *)): New.
|
||
* dumpfile.h
|
||
(dump_node (const_tree, int, FILE *)): Correct source file.
|
||
* dwarf2out.c
|
||
(debug (die_struct &)): New.
|
||
(debug (die_struct *)): New.
|
||
* dwarf2out.h
|
||
(extern debug (die_struct &)): New.
|
||
(extern debug (die_struct *)): New.
|
||
* gimple-pretty-print.c
|
||
(debug (gimple_statement_d &)): New.
|
||
(debug (gimple_statement_d *)): New.
|
||
* gimple-pretty-print.h
|
||
(extern debug (gimple_statement_d &)): New.
|
||
(extern debug (gimple_statement_d *)): New.
|
||
* ira-build.c
|
||
(debug (ira_allocno_copy &)): New.
|
||
(debug (ira_allocno_copy *)): New.
|
||
(debug (ira_allocno &)): New.
|
||
(debug (ira_allocno *)): New.
|
||
* ira-int.h
|
||
(extern debug (ira_allocno_copy &)): New.
|
||
(extern debug (ira_allocno_copy *)): New.
|
||
(extern debug (ira_allocno &)): New.
|
||
(extern debug (ira_allocno *)): New.
|
||
* ira-lives.c
|
||
(debug (live_range &)): New.
|
||
(debug (live_range *)): New.
|
||
* lra-int.h
|
||
(debug (lra_live_range &)): New.
|
||
(debug (lra_live_range *)): New.
|
||
* lra-lives.c
|
||
(debug (lra_live_range &)): New.
|
||
(debug (lra_live_range *)): New.
|
||
* omega.c
|
||
(debug (omega_pb_d &)): New.
|
||
(debug (omega_pb_d *)): New.
|
||
* omega.h
|
||
(extern debug (omega_pb_d &)): New.
|
||
(extern debug (omega_pb_d *)): New.
|
||
* print-rtl.c
|
||
(debug (const rtx_def &)): New.
|
||
(debug (const rtx_def *)): New.
|
||
* print-tree.c
|
||
(debug_tree (tree): Move within file.
|
||
(debug_raw (const tree_node &)): New.
|
||
(debug_raw (const tree_node *)): New.
|
||
(dump_tree_via_hooks (const tree_node *, int)): New.
|
||
(debug (const tree_node &)): New.
|
||
(debug (const tree_node *)): New.
|
||
(debug_verbose (const tree_node &)): New.
|
||
(debug_verbose (const tree_node *)): New.
|
||
(debug_head (const tree_node &)): New.
|
||
(debug_head (const tree_node *)): New.
|
||
(debug_body (const tree_node &)): New.
|
||
(debug_body (const tree_node *)): New.
|
||
(debug_vec_tree (tree): Move and reimplement in terms of dump.
|
||
(debug (vec<tree, va_gc> &)): New.
|
||
(debug (vec<tree, va_gc> *)): New.
|
||
* rtl.h
|
||
(extern debug (const rtx_def &)): New.
|
||
(extern debug (const rtx_def *)): New.
|
||
* sbitmap.c
|
||
(debug_raw (simple_bitmap_def &)): New.
|
||
(debug_raw (simple_bitmap_def *)): New.
|
||
(debug (simple_bitmap_def &)): New.
|
||
(debug (simple_bitmap_def *)): New.
|
||
* sbitmap.h
|
||
(extern debug (simple_bitmap_def &)): New.
|
||
(extern debug (simple_bitmap_def *)): New.
|
||
(extern debug_raw (simple_bitmap_def &)): New.
|
||
(extern debug_raw (simple_bitmap_def *)): New.
|
||
* sel-sched-dump.c
|
||
(debug (vinsn_def &)): New.
|
||
(debug (vinsn_def *)): New.
|
||
(debug_verbose (vinsn_def &)): New.
|
||
(debug_verbose (vinsn_def *)): New.
|
||
(debug (expr_def &)): New.
|
||
(debug (expr_def *)): New.
|
||
(debug_verbose (expr_def &)): New.
|
||
(debug_verbose (expr_def *)): New.
|
||
(debug (vec<rtx> &)): New.
|
||
(debug (vec<rtx> *)): New.
|
||
* sel-sched-dump.h
|
||
(extern debug (vinsn_def &)): New.
|
||
(extern debug (vinsn_def *)): New.
|
||
(extern debug_verbose (vinsn_def &)): New.
|
||
(extern debug_verbose (vinsn_def *)): New.
|
||
(extern debug (expr_def &)): New.
|
||
(extern debug (expr_def *)): New.
|
||
(extern debug_verbose (expr_def &)): New.
|
||
(extern debug_verbose (expr_def *)): New.
|
||
(extern debug (vec<rtx> &)): New.
|
||
(extern debug (vec<rtx> *)): New.
|
||
* sel-sched-ir.h
|
||
(_list_iter_cond_expr): Make inline instead of static.
|
||
* sreal.c
|
||
(debug (sreal &)): New.
|
||
(debug (sreal *)): New.
|
||
* sreal.h
|
||
(extern debug (sreal &)): New.
|
||
(extern debug (sreal *)): New.
|
||
* tree.h
|
||
(extern debug_raw (const tree_node &)): New.
|
||
(extern debug_raw (const tree_node *)): New.
|
||
(extern debug (const tree_node &)): New.
|
||
(extern debug (const tree_node *)): New.
|
||
(extern debug_verbose (const tree_node &)): New.
|
||
(extern debug_verbose (const tree_node *)): New.
|
||
(extern debug_head (const tree_node &)): New.
|
||
(extern debug_head (const tree_node *)): New.
|
||
(extern debug_body (const tree_node &)): New.
|
||
(extern debug_body (const tree_node *)): New.
|
||
(extern debug (vec<tree, va_gc> &)): New.
|
||
(extern debug (vec<tree, va_gc> *)): New.
|
||
* tree-cfg.c
|
||
(debug (struct loop &)): New.
|
||
(debug (struct loop *)): New.
|
||
(debug_verbose (struct loop &)): New.
|
||
(debug_verbose (struct loop *)): New.
|
||
* tree-dump.c: Add header dependence.
|
||
* tree-flow.h
|
||
(extern debug (struct loop &)): New.
|
||
(extern debug (struct loop *)): New.
|
||
(extern debug_verbose (struct loop &)): New.
|
||
(extern debug_verbose (struct loop *)): New.
|
||
* tree-data-ref.c
|
||
(debug (data_reference &)): New.
|
||
(debug (data_reference *)): New.
|
||
(debug (vec<data_reference_p> &)): New.
|
||
(debug (vec<data_reference_p> *)): New.
|
||
(debug (vec<ddr_p> &)): New.
|
||
(debug (vec<ddr_p> *)): New.
|
||
* tree-data-ref.h
|
||
(extern debug (data_reference &)): New.
|
||
(extern debug (data_reference *)): New.
|
||
(extern debug (vec<data_reference_p> &)): New.
|
||
(extern debug (vec<data_reference_p> *)): New.
|
||
(extern debug (vec<ddr_p> &)): New.
|
||
(extern debug (vec<ddr_p> *)): New.
|
||
* tree-ssa-alias.c
|
||
(debug (pt_solution &)): New.
|
||
(debug (pt_solution *)): New.
|
||
* tree-ssa-alias.h
|
||
(extern debug (pt_solution &)): New.
|
||
(extern debug (pt_solution *)): New.
|
||
* tree-ssa-alias.c
|
||
(debug (_var_map &)): New.
|
||
(debug (_var_map *)): New.
|
||
(debug (tree_live_info_d &)): New.
|
||
(debug (tree_live_info_d *)): New.
|
||
* tree-ssa-alias.h
|
||
(extern debug (_var_map &)): New.
|
||
(extern debug (_var_map *)): New.
|
||
(extern debug (tree_live_info_d &)): New.
|
||
(extern debug (tree_live_info_d *)): New.
|
||
|
||
2013-03-28 Jan Hubicka <jh@suse.cz>
|
||
|
||
* lto-cgraph.c (merge_profile_summaries): Fix overflows.
|
||
|
||
2013-03-28 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
|
||
record only when desired or required.
|
||
|
||
2013-03-28 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (*vec_extract2vdi_1): Merge with
|
||
*vec_extractv2di_1_rex64. Use x64 isa attribute.
|
||
|
||
2013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
|
||
|
||
* config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
|
||
(*andsi3_compare0_uxtw): New pattern.
|
||
(*and_<SHIFT:optab><mode>3_compare0): New pattern.
|
||
(*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
|
||
|
||
2013-03-28 Jan Hubicka <jh@suse.cz>
|
||
|
||
* data-streamer-in.c (streamer_read_gcov_count): New function.
|
||
* gimple-streamer-out.c: Include value-prof.h.
|
||
(output_gimple_stmt): Output histogram.
|
||
(output_bb): Use streamer_write_gcov_count.
|
||
* value-prof.c: Include data-streamer.h
|
||
(dump_histogram_value): Add HIST_TYPE_MAX.
|
||
(stream_out_histogram_value): New function.
|
||
(stream_in_histogram_value): New function.
|
||
* value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
|
||
(stream_out_histogram_value, stream_in_histogram_value): Declare.
|
||
* data-streamer-out.c (streamer_write_gcov_count): New function.
|
||
(streamer_write_gcov_count_stream): New function.
|
||
* lto-cgraph.c (lto_output_edge): Update counter streaming.
|
||
(lto_output_node): Likewise.
|
||
(input_node, input_edge): Likewise.
|
||
* lto-streamer-out.c (output_cfg): Update streaming.
|
||
* lto-streamer-in.c (input_cfg): Likewise.
|
||
* data-streamer.h (streamer_write_gcov_count,
|
||
streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
|
||
* gimple-streamer-in.c: Include value-prof.h
|
||
(input_gimple_stmt): Input histograms.
|
||
(input_bb): Update profile streaming.
|
||
|
||
2013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
* genmodes.c (emit_max_int): New function.
|
||
(emit_insn_modes_h): Added call to emit_max_function.
|
||
* doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
|
||
Added doc.
|
||
* machmode.def: Fixed comment.
|
||
|
||
2013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
* combine.c (try_combine): Removed useless assert.
|
||
* cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
|
||
|
||
2013-03-28 Marek Polacek <polacek@redhat.com>
|
||
Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56695
|
||
* tree-vect-stmts.c (vectorizable_condition): Unconditionally
|
||
build signed result of a vector comparison.
|
||
* tree-cfg.c (verify_gimple_comparison): Check that a result
|
||
of a vector comparison has signed type.
|
||
|
||
2013-03-28 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/37021
|
||
* tree-vect-slp.c (vect_build_slp_tree): When not unrolling
|
||
do not restrict gaps between groups.
|
||
* tree-vect-stmts.c (vectorizable_load): Properly account for
|
||
a gap between groups.
|
||
|
||
2013-03-28 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* toplev.c (process_options): Do not disable -fomit-frame-pointer on a
|
||
general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
|
||
is not enabled.
|
||
|
||
2013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
|
||
* doc/extend.texi (Named Address Spaces): Ditto.
|
||
(Variable Attributes): Ditto.
|
||
|
||
2013-03-27 Kai Tietz <ktietz@redhat.com>
|
||
|
||
* config.build: Add support for cygwin x64 target.
|
||
* config.gcc: Likewise.
|
||
* config.host: Likewise.
|
||
* configure.ac: Likewise
|
||
* configure: Regenerated.
|
||
|
||
2013-03-27 Kai Tietz <ktietz@redhat.com>
|
||
|
||
* config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
|
||
* config/i386/t-cygwin-w64: New file.
|
||
* config/i386/cygwin-w64.h: New file.
|
||
* config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
|
||
and add support for x64-cygwin target.
|
||
(CPP_SPEC): Likewise.
|
||
(CXX_WRAP_SPEC_LIST): Undefine before define.
|
||
(LIBGCJ_SONAME): Use 15 as version.
|
||
|
||
2013-03-27 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56716
|
||
* tree-ssa-structalias.c (perform_var_substitution): Adjust
|
||
dumping for ref nodes.
|
||
|
||
2013-03-27 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR tree-optimization/55334
|
||
* ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
|
||
restricted pointers to arrays.
|
||
|
||
2013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
||
|
||
* Makefile.in (.SUFFIXES): Add .cc.
|
||
(.c.o): Apply same recipe for implicit rule .cc.o.
|
||
|
||
2013-03-27 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/37021
|
||
* tree-vect-data-refs.c (vect_check_strided_load): Allow
|
||
REALPART/IMAGPART_EXPRs around the supported refs.
|
||
* tree-ssa-structalias.c (find_func_aliases): Assume that
|
||
floating-point values are not used to transfer pointers.
|
||
|
||
2013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
|
||
|
||
* target.def (TARGET_HAS_IFUNC_P): New target hook.
|
||
* doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
|
||
* doc/tm.texi: Regenerate.
|
||
* targhooks.h (default_has_ifunc_p): New.
|
||
* targhooks.c (default_has_ifunc_p): Ditto.
|
||
* config/linux-protos.h: New file.
|
||
* config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of
|
||
this hook for linux which disables support of indirect functions in
|
||
android.
|
||
* config/linux-android.c: New file.
|
||
* config/t-linux-android.c: Ditto.
|
||
* config.gcc: Added new object file linux-android.o.
|
||
* config/i386/i386.c (ix86_get_function_versions_dispatcher):
|
||
Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
|
||
* varasm.c (do_assemble_alias): Likewise.
|
||
* configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
|
||
doesn't support indirect functions.
|
||
* configure: Regenerate.
|
||
|
||
2013-03-27 Bin Cheng <bin.cheng@arm.com>
|
||
|
||
PR target/56102
|
||
* config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
|
||
rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
|
||
mult-word mode.
|
||
|
||
2013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
* config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
|
||
|
||
2013-03-27 Terry Guo <terry.guo@arm.com>
|
||
|
||
* config/arm/arm-cores.def: Added core cortex-r7.
|
||
* config/arm/arm-tune.md: Regenerated.
|
||
* config/arm/arm-tables.opt: Regenerated.
|
||
* doc/invoke.texi: Added entry for core cortex-r7.
|
||
|
||
2013-03-27 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
|
||
double-decrement of next_scratch_regno.
|
||
|
||
2013-03-27 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
|
||
input operands.
|
||
(insn_v1mulus): Ditto.
|
||
(insn_v2muls): Ditto.
|
||
|
||
2013-03-27 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
|
||
(ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
|
||
|
||
2013-03-27 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
|
||
(*sibcall_value): Ditto.
|
||
|
||
2013-03-27 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
|
||
(insn_mnz_v8qi): ... this ...
|
||
(insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
|
||
vector equivalent.
|
||
(insn_v<n>mnz): Replaced by ...
|
||
(insn_v1mnz): ... this ...
|
||
(insn_v2mnz): ... and this. Replace (const_int 0) with the vector
|
||
equivalent.
|
||
(insn_mz_<mode>): Replaced by ...
|
||
(insn_mz_v8qi): ... this ...
|
||
(insn_mz_v4hi): ... and this. Replace (const_int 0) with the
|
||
vector equivalent.
|
||
(insn_v<n>mz): Replaced by ...
|
||
(insn_v1mz): ... this ...
|
||
(insn_v2mz): ... and this. Replace (const_int 0) with the vector
|
||
equivalent.
|
||
|
||
2013-03-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* doc/invoke.texi (SPARC options): Remove -mlittle-endian.
|
||
|
||
2013-03-26 Roland McGrath <mcgrathr@google.com>
|
||
|
||
* config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
|
||
than fprintf with a non-constant, non-format string.
|
||
|
||
2013-03-26 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
|
||
using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
|
||
operand 0 predicate.
|
||
(*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
|
||
attribute. Use general_x64nomem_operand as operand 1 predicate.
|
||
(*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
|
||
attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
|
||
(*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
|
||
attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
|
||
(mov<mode>_insv_1): Remove expander. Merge insn with
|
||
movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
|
||
Use general_x64nomem_operand as operand 1 predicate.
|
||
(addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
|
||
(*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
|
||
attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
|
||
(*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
|
||
attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
|
||
(*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
|
||
attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
|
||
(*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
|
||
isa attribute. Use general_x64nomem_operand as operand 2 predicate.
|
||
* config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
|
||
(general_x64nomem_operand): Ditto.
|
||
|
||
2013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||
|
||
* config/rtems.opt: Add -pthread option.
|
||
|
||
2013-03-26 Richard Biener <rguenther@suse.de>
|
||
|
||
* alias.c (find_base_term): Avoid redundant and not used recursion.
|
||
(base_alias_check): Get the initial base term from the caller.
|
||
(true_dependence_1): Compute and pass base terms to base_alias_check.
|
||
(write_dependence_p): Likewise.
|
||
(may_alias_p): Likewise.
|
||
|
||
2013-03-26 Sofiane Naci <sofiane.naci@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_classify_address): Support
|
||
PC-relative load in SI modes and above only.
|
||
|
||
2013-03-26 Xinyu Qi <xyqi@marvell.com>
|
||
|
||
* config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
|
||
* config/arm/iwmmxt.md (WCGR0): Update.
|
||
(WCGR1, WCGR2, WCGR3): Likewise.
|
||
|
||
2013-03-26 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
|
||
Use x64 and nox64 isa attributes.
|
||
|
||
2013-03-26 Richard Biener <rguenther@suse.de>
|
||
|
||
* emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
|
||
alignment computations and rely on get_object_alignment_1
|
||
for the !TYPE_P case.
|
||
Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
|
||
|
||
2013-03-26 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
|
||
* config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
|
||
|
||
2013-03-25 Jeff Law <law@redhat.com>
|
||
|
||
* tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
|
||
check for INTEGRAL_TYPE_P that was missing due to checking in
|
||
wrong version of prior patch.
|
||
|
||
2013-03-25 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
|
||
TILEGX_INSN_SHUFFLEBYTES1.
|
||
* config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
|
||
shufflebytes1.
|
||
(tilegx_builtins): Ditto.
|
||
* config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
|
||
|
||
2013-03-25 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilegx/tilegx.md (floatsisf2): New pattern.
|
||
(floatunssisf2): New pattern.
|
||
(floatsidf2): New pattern.
|
||
(floatunssidf2): New pattern.
|
||
|
||
2013-03-25 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
|
||
tests for constraint J, K, N, P.
|
||
|
||
2013-03-25 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
|
||
Use indirect/pcrel encoding.
|
||
* config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
|
||
Ditto.
|
||
|
||
2013-03-25 Steve Ellcey <sellcey@mips.com>
|
||
|
||
* config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
|
||
74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
|
||
* config/mips/mips.c (mips_option_override): Set IMADD default.
|
||
* config/mips/mips.h (PTF_AVOID_IMADD): New.
|
||
(ISA_HAS_MADD_MSUB): Remove MIPS16 check.
|
||
(GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
|
||
* config/mips/mips.md (mimadd): New flag for integer madd/msub.
|
||
* doc/invoke.texi (-mimadd/-mno-imadd): New.
|
||
|
||
2013-03-25 Jeff Law <law@redhat.com>
|
||
|
||
* tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
|
||
slightly to avoid creating and folding useless trees. Simplify
|
||
slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
|
||
|
||
2013-03-25 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (*zero_extendsidi2): Merge with
|
||
*zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
|
||
* config/i386/predicates.md (x86_64_zext_operand): Rename from
|
||
x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
|
||
targets. Clarify comment.
|
||
|
||
2013-03-25 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
|
||
pass-through jump functions differently.
|
||
(ipa_read_jump_function): Likewise. Also use setter functions to set
|
||
up jump functions.
|
||
|
||
2013-03-25 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
|
||
ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
|
||
process it.
|
||
(ipa_get_indirect_edge_target): New function.
|
||
(devirtualization_time_bonus): New parameter known_aggs, pass it to
|
||
ipa_get_indirect_edge_target. Update all callers.
|
||
(ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
|
||
ipa_get_indirect_edge_target_1 instead of calling
|
||
ipa_get_indirect_edge_target.
|
||
(create_specialized_node): Pass aggvlas to
|
||
ipcp_discover_new_direct_edges.
|
||
|
||
2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.md (f_sels, f_seld): New types.
|
||
(*cmov<mode>): New pattern.
|
||
* config/arm/predicates.md (arm_vsel_comparison_operator): New
|
||
predicate.
|
||
|
||
2013-03-25 Kai Tietz <ktietz@redhat.com>
|
||
|
||
* config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
|
||
POSIX-printf for mingw-hosted builds.
|
||
|
||
2013-03-25 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/56694
|
||
* tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
|
||
must-not-throw stmt location.
|
||
|
||
2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
|
||
Emit load-acquire versions when acq is true.
|
||
(arm_emit_store_exclusive): Add rel parameter.
|
||
Emit store-release versions when rel is true.
|
||
(arm_split_compare_and_swap): Use acquire-release instructions
|
||
instead.
|
||
of barriers when appropriate.
|
||
(arm_split_atomic_op): Likewise.
|
||
* config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
|
||
* config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
|
||
(VUNSPEC_SLX): Likewise.
|
||
(VUNSPEC_LDA): Likewise.
|
||
(VUNSPEC_STL): Likewise.
|
||
* config/arm/sync.md (atomic_load<mode>): New pattern.
|
||
(atomic_store<mode>): Likewise.
|
||
(arm_load_acquire_exclusive<mode>): Likewise.
|
||
(arm_load_acquire_exclusivesi): Likewise.
|
||
(arm_load_acquire_exclusivedi): Likewise.
|
||
(arm_store_release_exclusive<mode>): Likewise.
|
||
|
||
2013-03-25 Catherine Moore <clm@codesourcery.com>
|
||
|
||
* config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
|
||
Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
|
||
* config/mip/predicates.md (lwsp_swsp_operand,
|
||
lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
|
||
sb16_operand, db4_operand, db7_operand, ib3_operand,
|
||
sb4_operand, ub4_operand, uh4_operand, uw4_operand,
|
||
uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
|
||
andi16_operand): New predicates.
|
||
* config/mips/mips.md (compression): New attribute.
|
||
(enabled): New attribute.
|
||
(length): Consider compression in computing length.
|
||
(shift_compression): New code attribute.
|
||
(*add<mode>3): New operands. Record compression.
|
||
(sub<mode>3): Likewise.
|
||
(one_cmpl<mode>2): Likewise.
|
||
(*and<mode>3): Likewise.
|
||
(*ior<mode>3): Likewise.
|
||
(unnamed pattern for xor): Likewise.
|
||
(*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
|
||
(*<optab><mode>3): Likewise.
|
||
(*mov<mode>_internal: Likewise.
|
||
* config/mips/mips-protos.h (mips_signed_immediate_p): New.
|
||
(mips_unsigned_immediate_p): New.
|
||
(umips_lwsp_swsp_address_p): New.
|
||
(m16_based_address_p): New.
|
||
* config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
|
||
(mips_unsigned_immediate_p): New prototype.
|
||
(lwsp_swsp_address_p): New prototype.
|
||
(m16_based_address_p): New prototype.
|
||
* config/mips/mips.c (mips_unsigned_immediate_p): New function.
|
||
(mips_signed_immediate_p): New function.
|
||
(m16_based_address_p): New function.
|
||
(lwsp_swsp_address_p): New function.
|
||
(mips_print_operand_punctuation): Recognize short delay slot insns
|
||
for microMIPS.add<mode>3"
|
||
|
||
2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
PR target/56720
|
||
* config/arm/iterators.md (v_cmp_result): New mode attribute.
|
||
* config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
|
||
|
||
2013-03-25 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56689
|
||
* tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
|
||
any edge.
|
||
|
||
2013-03-25 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
|
||
of bitmap.
|
||
(memory_references): Likewise.
|
||
(outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
|
||
gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
|
||
ref_indep_loop_p_2, find_refs_for_sm): Adjust.
|
||
(gather_mem_refs_in_loops): Fold into ...
|
||
(analyze_memory_references): ... this. Move initialization
|
||
to tree_ssa_lim_initialize.
|
||
(fill_always_executed_in): Rename to ...
|
||
(fill_always_executed_in_1): ... this.
|
||
(fill_always_executed_in): Move contains_call computation to
|
||
this new function from ...
|
||
(tree_ssa_lim_initialize): ... here.
|
||
(tree_ssa_lim): Call fill_always_executed_in.
|
||
|
||
2013-03-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* postreload.c (reload_combine): Fix code detecting returns.
|
||
|
||
2013-03-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* function.c (emit_use_return_register_into_block): On cc0 targets,
|
||
do not emit the sequence between cc0 setter and user.
|
||
|
||
2013-03-25 Kai Tietz <ktietz@redhat.com>
|
||
|
||
* config/i386/predicates.md (local_symbolic_operand): Interpret
|
||
dll-imported symbols as none-local.
|
||
|
||
2013-03-25 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-loop-im.c (struct depend): Remove.
|
||
(struct lim_aux_data): Make depends a vec of gimples.
|
||
(free_lim_aux_data): Adjust.
|
||
(add_dependency): Likewise.
|
||
(set_level): Likewise.
|
||
|
||
2013-03-25 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/56434
|
||
* calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
|
||
the pointer returned by calls with ECF_MALLOC set.
|
||
|
||
2013-03-24 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
|
||
|
||
2013-03-24 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
|
||
using MMXMODE mode iterator.
|
||
(*move<mode>_internal): Merge with *movv2sf_internal and
|
||
*movv2sf_internal_rex64 using MMXMODE mode iterator.
|
||
|
||
2013-03-23 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
|
||
(record_last_mem_set_info): Likewise.
|
||
|
||
* df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
|
||
of XNEWVEC followed by memset.
|
||
(df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
|
||
|
||
2013-03-23 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
|
||
config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
|
||
config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
|
||
config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
|
||
config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
|
||
config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
|
||
dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
|
||
the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
|
||
BARRIER_P instead of GET_CODE.
|
||
|
||
2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
|
||
inaccuracy in the probing code.
|
||
|
||
* config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
|
||
(ctrapdi4): Likewise.
|
||
|
||
2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* calls.c (expand_call): Add missing guard to code handling return
|
||
of non-BLKmode structures in MSB.
|
||
* function.c (expand_function_end): Likewise.
|
||
|
||
2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* combine.c (try_combine): Adjust comment. Do not add the set of
|
||
insn #0 if the destination indirectly is set or dies in insn #2.
|
||
Tidy up code to distribute a new note.
|
||
|
||
2013-03-22 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
|
||
also for alternatives 16 and 17.
|
||
|
||
2013-03-22 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/sse.md (*mov<mode>_internal): Merge with
|
||
*mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
|
||
Emit insn template depending on type attribute. Use
|
||
HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
|
||
movd instead of movq mnemonic for interunit moves. Rewrite mode
|
||
attribute calculation. Remove unit attribute calculation.
|
||
Set prefix attribute to maybe_vex for sselog1 and ssemov types.
|
||
Set prefix_data16 attribute for DImode ssemov types.
|
||
Use Ym instead of y for SSE-MMX conversion alternatives.
|
||
Reorder operand constraints.
|
||
|
||
2013-03-22 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* df.h (df_insn_delete): Adjust prototype.
|
||
* emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
|
||
and let it decide whether mark the basic block dirty.
|
||
(set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
|
||
* df-scan.c (df_insn_info_delete): New helper function, split
|
||
off from df_insn_delete.
|
||
(df_scan_free_bb_info): Use it.
|
||
(df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
|
||
Likewise.
|
||
(df_insn_delete): Likewise. Take insn rtx as argument. Verify
|
||
that the insn is actually an insn and it has a non-NULL basic block.
|
||
Do not mark basic block dirty if only deleting a DEBUG_INSN.
|
||
|
||
2013-03-22 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
|
||
dep_ref members.
|
||
(mem_ref_alloc): Do not allocate them.
|
||
(refs_independent_p): Do not query or maintain a cache.
|
||
|
||
2013-03-22 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
|
||
(gather_mem_refs_in_loops): Do not compute it.
|
||
(analyze_memory_references): Do not allocate it.
|
||
(tree_ssa_lim_finalize): Do not free it.
|
||
(for_all_locs_in_loop): Do not query all_refs_in_loop.
|
||
|
||
2013-03-22 Richard Biener <rguenther@suse.de>
|
||
|
||
* is-a.h (as_a): Use gcc_checking_assert.
|
||
|
||
2013-03-22 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_print_operand): New
|
||
format specifier for printing a constant in hex.
|
||
* config/aarch64/aarch64.md (insv_imm<mode>): Use the X
|
||
format specifier for printing second operand.
|
||
|
||
2013-03-22 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
|
||
bitmaps.
|
||
(gather_mem_refs_in_loops): Perform store accumulation here.
|
||
(create_vop_ref_mapping_loop): Remove.
|
||
(create_vop_ref_mapping): Likewise.
|
||
(analyze_memory_references): Initialize refs_stored_in_loop.
|
||
(LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
|
||
(record_indep_loop): Remove.
|
||
(record_dep_loop): New function.
|
||
(ref_indep_loop_p_1): Adjust to only walk over references
|
||
in the loop, not its subloops.
|
||
(ref_indep_loop_p): Rename to ...
|
||
(ref_indep_loop_p_2): ... this and recurse over the loop tree,
|
||
maintaining a more fine-grained cache.
|
||
(ref_indep_loop_p): Wrap ref_indep_loop_p_2.
|
||
(tree_ssa_lim_finalize): Free refs_stored_in_loop.
|
||
|
||
2013-03-22 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
|
||
(struct mem_ref): Make accesses_in_loop a vec of a vec of
|
||
aggregate mem_ref_loc.
|
||
(free_mem_ref_locs): Inline into ...
|
||
(memref_free): ... this and adjust.
|
||
(mem_ref_alloc): Adjust.
|
||
(mem_ref_locs_alloc): Remove.
|
||
(record_mem_ref_loc): Adjust.
|
||
(get_all_locs_in_loop): Rewrite into ...
|
||
(for_all_locs_in_loop): ... this iterator.
|
||
(rewrite_mem_ref_loc): New functor.
|
||
(rewrite_mem_refs): Use for_all_locs_in_loop.
|
||
(sm_set_flag_if_changed): New functor.
|
||
(execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
|
||
(ref_always_accessed): New functor.
|
||
(ref_always_accessed_p): Use for_all_locs_in_loop.
|
||
|
||
2013-03-21 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* tree-pass.h (PROP_gimple_lvec): New.
|
||
* passes.c (dump_properties): Handle PROP_gimple_lvec.
|
||
(init_optimization_passes): Move pass_lower_vector.
|
||
* tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
|
||
PROP_gimple_lvec.
|
||
(pass_lower_vector): Provide PROP_gimple_lvec.
|
||
(pass_lower_vector_ssa): Likewise.
|
||
* cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
|
||
|
||
2013-03-21 Mark Wielaard <mjw@redhat.com>
|
||
|
||
* dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
|
||
|
||
2013-03-21 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (*movdi_internal): Disparage slightly
|
||
all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
|
||
conversion alternatives.
|
||
|
||
2013-03-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/48087
|
||
* diagnostic.def (DK_WERROR): New kind.
|
||
* diagnostic.h (werrorcount): Define.
|
||
* diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
|
||
promoted to DK_ERROR, increment DK_WERROR counter instead of
|
||
DK_ERROR counter.
|
||
* toplev.c (toplev_main): Call print_ignored_options even if
|
||
just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
|
||
even if just werrorcount is non-zero.
|
||
|
||
PR debug/55608
|
||
* dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
|
||
on failure.
|
||
(resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
|
||
(string_cst_pool_decl): New function.
|
||
(optimize_one_addr_into_implicit_ptr): New function.
|
||
(resolve_addr_in_expr): Optimize DWARF location expression
|
||
DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
|
||
which doesn't live in memory, but has DW_AT_location or
|
||
DW_AT_const_value, or refers to a string literal, into
|
||
DW_OP_GNU_implicit_pointer.
|
||
(optimize_location_into_implicit_ptr): New function.
|
||
(resolve_addr): If removing DW_AT_location of a variable because
|
||
it was DW_OP_addr of address of the variable, but the variable doesn't
|
||
live in memory, try to emit const value attribute for the initializer.
|
||
|
||
2013-03-21 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* tree.h (VECTOR_TYPE_P): New macro.
|
||
(VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
|
||
TYPE_MODE): Use it.
|
||
* fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
|
||
VEC_COND_EXPR cannot be lvalues.
|
||
(fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
|
||
|
||
2013-03-21 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
|
||
Restrict the transformation to equal modes.
|
||
|
||
2013-03-21 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/39326
|
||
* tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
|
||
(MEM_ANALYZABLE): Adjust.
|
||
(record_mem_ref_loc): Move bitmap ops ...
|
||
(gather_mem_refs_stmt): ... here. Use the shared mem-ref for
|
||
unanalyzable refs, do not record locations for it.
|
||
(analyze_memory_references): Allocate ref zero as shared
|
||
unanalyzable ref.
|
||
(refs_independent_p): Do not test for unanalyzed mems here.
|
||
(ref_indep_loop_p_1): Special-case disambiguation against
|
||
the unanalyzed ref.
|
||
(ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
|
||
|
||
2013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
|
||
|
||
* config/arm/arm-protos.h (tune_params): Add
|
||
prefer_neon_for_64bits field.
|
||
* config/arm/arm.c (prefer_neon_for_64bits): New variable.
|
||
(arm_slowmul_tune): Default prefer_neon_for_64bits to false.
|
||
(arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
|
||
(arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
|
||
(arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
|
||
(arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
|
||
(arm_option_override): Handle -mneon-for-64bits new option.
|
||
* config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
|
||
(prefer_neon_for_64bits): Declare new variable.
|
||
* config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
|
||
avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
|
||
(arch_enabled): Handle new arch types. Remove support for onlya8
|
||
and nota8.
|
||
(one_cmpldi2): Use new arch names.
|
||
(zero_extend<mode>di2, extend<mode>di2): Ditto.
|
||
* config/arm/arm.opt (mneon-for-64bits): Add option.
|
||
* config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
|
||
(anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
|
||
neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
|
||
of onlya8.
|
||
* doc/invoke.texi (-mneon-for-64bits): Document.
|
||
|
||
2013-03-21 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/39326
|
||
* tree-ssa-loop-im.c (bb_loop_postorder): New global static.
|
||
(sort_bbs_in_loop_postorder_cmp): New function.
|
||
(gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
|
||
|
||
2013-03-21 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
|
||
(vect_insert_into_interleaving_chain): Likewise.
|
||
(vect_drs_dependent_in_basic_block): Inline ...
|
||
(vect_slp_analyze_data_ref_dependence): ... here. New function,
|
||
split out from ...
|
||
(vect_analyze_data_ref_dependence): ... here. Simplify.
|
||
(vect_check_interleaving): Simplify.
|
||
(vect_analyze_data_ref_dependences): Likewise. Split out ...
|
||
(vect_slp_analyze_data_ref_dependences): ... this new function.
|
||
(dr_group_sort_cmp): New function.
|
||
(vect_analyze_data_ref_accesses): Compute data-reference groups
|
||
here instead of in vect_analyze_data_ref_dependence. Use
|
||
a more efficient algorithm.
|
||
* tree-vect-slp.c (vect_slp_analyze_bb_1): Use
|
||
vect_slp_analyze_data_ref_dependences. Call
|
||
vect_analyze_data_ref_accesses earlier.
|
||
* tree-vect-loop.c (vect_analyze_loop_2): Likewise.
|
||
* tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
|
||
(vect_slp_analyze_data_ref_dependences): New prototype.
|
||
|
||
2013-03-21 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
|
||
ref is stored in the loop.
|
||
(find_refs_for_sm): Walk only over all stores.
|
||
(store_motion_loop): Allocate from lim_bitmap_obstack.
|
||
(store_motion): Likewise.
|
||
|
||
2013-03-21 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
|
||
Update virtual SSA form.
|
||
|
||
2013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
|
||
* configure: Regenerate.
|
||
* config.in: Regenerate.
|
||
* config/sol2.c (solaris_override_options): Only enforce DWARF 2
|
||
if !HAVE_LD_EH_FRAME_CIEV3.
|
||
|
||
2013-03-21 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-cfg.c (verify_expr_no_block): New function.
|
||
(verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
|
||
nor DECL_VALUE_EXPR have locations with associated blocks.
|
||
* tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
|
||
(clear_unused_block_pointer): Remove code dealing with
|
||
blocks in DECL_DEBUG_EXPR locations.
|
||
|
||
2013-03-21 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
|
||
(DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
|
||
* tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
|
||
* dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
|
||
instead of DECL_DEBUG_EXPR_IS_FROM.
|
||
* gimplify.c (gimplify_modify_expr): Likewise.
|
||
* tree-cfg.c (verify_expr_location_1): Likewise.
|
||
* tree-complex.c (create_one_component_var): Likewise.
|
||
* tree-sra.c (create_access_replacement): Likewise.
|
||
* tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
|
||
(clear_unused_block_pointer): Likewise.
|
||
* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
|
||
* tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
|
||
* var-tracking.c (var_debug_decl): Likewise.
|
||
(track_expr_p): Likewise.
|
||
* tree-inline.c (add_local_variables): Likewise. Set
|
||
DECL_HAS_DEBUG_EXPR_P after copying it.
|
||
* tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
|
||
instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
|
||
|
||
2013-03-21 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR bootstrap/56656
|
||
* configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
|
||
* configure: Regenerate.
|
||
* config.in: Regenerate.
|
||
* config/i386/i386.md (*movdf_internal): Use
|
||
HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
|
||
movd instead of movq mnemonic for interunit moves.
|
||
(*movdi_internal): Ditto.
|
||
|
||
2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
|
||
(abd<mode>_3): New pattern.
|
||
(aba<mode>_3): New pattern.
|
||
(fabd<mode>_3): New pattern.
|
||
|
||
2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
|
||
|
||
* config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
|
||
* config/aarch64/aarch64.c (aarch64_print_operand): Remove all
|
||
occurrence of REGISTER_PREFIX as its empty string.
|
||
|
||
2013-03-20 Jeff Law <law@redhat.com>
|
||
|
||
* tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
|
||
addititional equivalences for equality comparisons between an SSA_NAME
|
||
and a constant where the SSA_NAME was set from a widening conversion.
|
||
|
||
2013-03-20 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilegx/sync.md (atomic_test_and_set): New pattern.
|
||
|
||
2013-03-20 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (*movoi_internal_avx): Emit insn template
|
||
depending on type attribute.
|
||
(*movti_internal): Ditto.
|
||
(*movtf_internal): Ditto.
|
||
(*movxf_internal): Ditto.
|
||
(*movdf_internal): Ditto.
|
||
(*movsf_internal): Ditto.
|
||
|
||
2013-03-20 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (*movti_internal): Set prefix attribute to
|
||
maybe_vex for sselog1 and ssemov types.
|
||
(*movdi_internal): Reorder operand constraints.
|
||
(*movsi_internal): Ditto. Set prefix attribute to
|
||
maybe_vex for sselog1 and ssemov types.
|
||
(*movtf_internal): Set prefix attribute to maybe_vex
|
||
for sselog1 and ssemov types.
|
||
(*movdf_internal): Ditto. Set prefix_data16 attribute for
|
||
DImode ssemov types. Reorder operand constraints.
|
||
(*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
|
||
attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
|
||
attribute for SImode ssemov types. Reorder operand constraints.
|
||
|
||
2013-03-20 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
|
||
* ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
|
||
|
||
2013-03-20 Pat Haugen <pthaugen@us.ibm.com>
|
||
|
||
* config/rs6000/predicates.md (indexed_address, update_address_mem
|
||
update_indexed_address_mem): New predicates.
|
||
* config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
|
||
attribute for load/store instructions.
|
||
* config/rs6000/dfp.md (movsd_store): Likewise.
|
||
(movsd_load): Likewise.
|
||
* config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
|
||
(unnamed HI->DI extend define_insn): Likewise.
|
||
(unnamed SI->DI extend define_insn): Likewise.
|
||
(unnamed QI->SI extend define_insn): Likewise.
|
||
(unnamed QI->HI extend define_insn): Likewise.
|
||
(unnamed HI->SI extend define_insn): Likewise.
|
||
(unnamed HI->SI extend define_insn): Likewise.
|
||
(extendsfdf2_fpr): Likewise.
|
||
(movsi_internal1): Likewise.
|
||
(movsi_internal1_single): Likewise.
|
||
(movhi_internal): Likewise.
|
||
(movqi_internal): Likewise.
|
||
(movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
|
||
attribute for load/store instructions.
|
||
(mov<mode>_hardfloat): Set correct "type" attribute for load/store
|
||
instructions.
|
||
(mov<mode>_softfloat): Likewise.
|
||
(mov<mode>_hardfloat32): Likewise.
|
||
(mov<mode>_hardfloat64): Likewise.
|
||
(mov<mode>_softfloat64): Likewise.
|
||
(movdi_internal32): Likewise.
|
||
(movdi_internal64): Likewise.
|
||
(probe_stack_<mode>): Likewise.
|
||
|
||
2013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
|
||
floating point, and decimal floating point to reload iterator.
|
||
|
||
* config/rs6000/constraints.md (wl constraint): New constraints to
|
||
return FLOAT_REGS if certain options are used to reduce the number
|
||
of separate patterns that exist in the file.
|
||
(wx constraint): Likewise.
|
||
(wz constraint): Likewise.
|
||
|
||
* config/rs6000/rs6000.c (rs6000_debug_reg_global): If
|
||
-mdebug=reg, print wg, wl, wx, and wz constraints.
|
||
(rs6000_init_hard_regno_mode_ok): Initialize new constraints.
|
||
Initialize the reload functions for 64-bit binary/decimal floating
|
||
point types.
|
||
(reg_offset_addressing_ok_p): If we are on a power7 or later, use
|
||
LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
|
||
create the buffer on the stack to overcome not having a 32-bit
|
||
load and store.
|
||
(rs6000_emit_move): Likewise.
|
||
(rs6000_secondary_memory_needed_rtx): Likewise.
|
||
(rs6000_alloc_sdmode_stack_slot): Likewise.
|
||
(rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
|
||
via xxlxor, just like DFmode 0.0.
|
||
|
||
* config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
|
||
define as 1 if we are running on a power7 or newer.
|
||
(enum r6000_reg_class_enum): Add new constraints.
|
||
|
||
* config/rs6000/dfp.md (movsd): Delete, combine with binary
|
||
floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
|
||
with other moves by using conditional constraits (wg). Use LFIWZX
|
||
and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
|
||
(movsd splitter): Likewise.
|
||
(movsd_hardfloat): Likewise.
|
||
(movsd_softfloat): Likewise.
|
||
|
||
* config/rs6000/rs6000.md (FMOVE32): New iterators to combine
|
||
binary and decimal floating point moves.
|
||
(fmove_ok): New attributes to combine binary and decimal floating
|
||
point moves, and to combine power6x (mfpgpr) moves along normal
|
||
floating moves.
|
||
(real_value_to_target): Likewise.
|
||
(f32_lr): Likewise.
|
||
(f32_lm): Likewise.
|
||
(f32_li): Likewise.
|
||
(f32_sr): Likewise.
|
||
(f32_sm): Likewise.
|
||
(f32_si): Likewise.
|
||
(movsf): Combine binary and decimal floating point moves. Combine
|
||
power6x (mfpgpr) moves with other moves by using conditional
|
||
constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
|
||
(mov<mode> for SFmode/SDmode); Likewise.
|
||
(SFmode/SDmode splitters): Likewise.
|
||
(movsf_hardfloat): Likewise.
|
||
(mov<mode>_hardfloat for SFmode/SDmode): Likewise.
|
||
(movsf_softfloat): Likewise.
|
||
(mov<mode>_softfloat for SFmode/SDmode): Likewise.
|
||
|
||
* doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
|
||
wx and wz constraints.
|
||
|
||
* config/rs6000/constraints.md (wg constraint): New constraint to
|
||
return FLOAT_REGS if -mmfpgpr (power6x) was used.
|
||
|
||
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
|
||
constraint.
|
||
|
||
* config/rs6000/rs6000.c (rs6000_debug_reg_global): If
|
||
-mdebug=reg, print wg, wl, wx, and wz constraints.
|
||
(rs6000_init_hard_regno_mode_ok): Initialize new constraints.
|
||
Initialize the reload functions for 64-bit binary/decimal floating
|
||
point types.
|
||
(reg_offset_addressing_ok_p): If we are on a power7 or later, use
|
||
LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
|
||
create the buffer on the stack to overcome not having a 32-bit
|
||
load and store.
|
||
(rs6000_emit_move): Likewise.
|
||
(rs6000_secondary_memory_needed_rtx): Likewise.
|
||
(rs6000_alloc_sdmode_stack_slot): Likewise.
|
||
(rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
|
||
via xxlxor, just like DFmode 0.0.
|
||
|
||
* config/rs6000/dfp.md (movdd): Delete, combine with binary
|
||
floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
|
||
with other moves by using conditional constraits (wg). Use LFIWZX
|
||
and STFIWX for loading SDmode on power7.
|
||
(movdd splitters): Likewise.
|
||
(movdd_hardfloat32): Likewise.
|
||
(movdd_softfloat32): Likewise.
|
||
(movdd_hardfloat64_mfpgpr): Likewise.
|
||
(movdd_hardfloat64): Likewise.
|
||
(movdd_softfloat64): Likewise.
|
||
|
||
* config/rs6000/rs6000.md (FMOVE64): New iterators to combine
|
||
64-bit binary and decimal floating point moves.
|
||
(FMOVE64X): Likewise.
|
||
(movdf): Combine 64-bit binary and decimal floating point moves.
|
||
Combine power6x (mfpgpr) moves with other moves by using
|
||
conditional constraits (wg).
|
||
(mov<mode> for DFmode/DDmode): Likewise.
|
||
(DFmode/DDmode splitters): Likewise.
|
||
(movdf_hardfloat32): Likewise.
|
||
(mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
|
||
(movdf_softfloat32): Likewise.
|
||
(movdf_hardfloat64_mfpgpr): Likewise.
|
||
(movdf_hardfloat64): Likewise.
|
||
(mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
|
||
(movdf_softfloat64): Likewise.
|
||
(mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
|
||
(reload_<mode>_load): Move to later in the file so they aren't in
|
||
the middle of the floating point move insns.
|
||
(reload_<mode>_store): Likewise.
|
||
|
||
* doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
|
||
constraint.
|
||
|
||
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
|
||
constraint if -mdebug=reg.
|
||
(rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
|
||
Enable using dd reload support if needed.
|
||
|
||
* config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
|
||
binary and decimal floating point moves in rs6000.md.
|
||
(movtd_internal): Likewise.
|
||
|
||
* config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
|
||
decimal floating point moves.
|
||
(movtf): Likewise.
|
||
(movtf_internal): Likewise.
|
||
(mov<mode>_internal, TDmode/TFmode): Likewise.
|
||
(movtf_softfloat): Likewise.
|
||
(mov<mode>_softfloat, TDmode/TFmode): Likewise.
|
||
|
||
* config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
|
||
movdi_internal64, using wg constraint for move direct operations.
|
||
(movdi_internal64): Likewise.
|
||
|
||
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
|
||
MODES_TIEABLE_P for selected modes. Print the numerical value of
|
||
the various virtual registers. Use GPR/FPR first/last values,
|
||
instead of hard coding the register numbers. Print which modes
|
||
have reload functions registered.
|
||
(rs6000_option_override_internal): If -mdebug=reg, trace the options
|
||
settings before/after setting cpu, target and subtarget settings.
|
||
(rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
|
||
and for secondary reload failures in rs6000_secondary_reload_inner.
|
||
(rs6000_secondary_reload_fail): Likewise.
|
||
(rs6000_secondary_reload_inner): Likewise.
|
||
|
||
* config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
|
||
macros for first/last GPR and FPR registers.
|
||
(LAST_GPR_REGNO): Likewise.
|
||
(FIRST_FPR_REGNO): Likewise.
|
||
(LAST_FPR_REGNO): Likewise.
|
||
|
||
* config/rs6000/vector.md (mul<mode>3): Use the combined macro
|
||
VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
|
||
VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
|
||
(vcond<mode><mode>): Likewise.
|
||
(vcondu<mode><mode>): Likewise.
|
||
(vector_gtu<mode>): Likewise.
|
||
(vector_gte<mode>): Likewise.
|
||
(xor<mode>3): Don't allow logical operations on TImode in 32-bit
|
||
to prevent the compiler from converting DImode operations to TImode.
|
||
(ior<mode>3): Likewise.
|
||
(and<mode>3): Likewise.
|
||
(one_cmpl<mode>2): Likewise.
|
||
(nor<mode>3): Likewise.
|
||
(andc<mode>3): Likewise.
|
||
|
||
* config/rs6000/constraints.md (wt constraint): New constraint
|
||
that returns VSX_REGS if TImode is allowed in VSX registers.
|
||
|
||
* config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
|
||
constant under VSX.
|
||
|
||
* config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
|
||
similar to TImode, but it is restricted to being in the GPRs.
|
||
|
||
* config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
|
||
TImode to occupy a single VSX register.
|
||
|
||
* config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
|
||
-mvsx-timode for power7/power8.
|
||
(power7 cpu): Likewise.
|
||
(power8 cpu): Likewise.
|
||
|
||
* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
|
||
sure that TFmode/TDmode take up two registers if they are ever
|
||
allowed in the upper VSX registers.
|
||
(rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
|
||
registers.
|
||
(rs6000_init_hard_regno_mode_ok): Likewise.
|
||
(rs6000_debug_reg_global): Add debugging for PTImode and wt
|
||
constraint. Print if LRA is turned on.
|
||
(rs6000_option_override_internal): Give an error if -mvsx-timode
|
||
and VSX is not enabled.
|
||
(invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
|
||
-mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
|
||
to reg+offset addressing. Use PTImode when checking offset
|
||
addresses for validity.
|
||
(reg_offset_addressing_ok_p): Likewise.
|
||
(rs6000_legitimate_offset_address_p): Likewise.
|
||
(rs6000_legitimize_address): Likewise.
|
||
(rs6000_legitimize_reload_address): Likewise.
|
||
(rs6000_legitimate_address_p): Likewise.
|
||
(rs6000_eliminate_indexed_memrefs): Likewise.
|
||
(rs6000_emit_move): Likewise.
|
||
(rs6000_secondary_reload): Likewise.
|
||
(rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
|
||
reloads to fpr registers to continue to use reg+offset addressing,
|
||
but 64-bit reloads to altivec registers need reg+reg addressing.
|
||
Drop test for PRE_MODIFY, since VSX loads/stores no longer support
|
||
it. Treat LO_SUM like a PLUS operation.
|
||
(rs6000_secondary_reload_class): If type is 64-bit, prefer to use
|
||
FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
|
||
(rs6000_cannot_change_mode_class): Do not allow TImode in VSX
|
||
registers to share a register with a smaller sized type, since VSX
|
||
puts scalars in the upper 64-bits.
|
||
(print_operand): Add support for PTImode.
|
||
(rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
|
||
VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
|
||
registers, but don't have arithmetic support.
|
||
(rs6000_memory_move_cost): Add test for VSX.
|
||
(rs6000_opt_masks): Add -mvsx-timode.
|
||
|
||
* config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
|
||
for TImode.
|
||
(VSs): Likewise.
|
||
(VSr): Use wt constraint for TImode.
|
||
(VSv): Drop TImode support.
|
||
(vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
|
||
(vsx_movti_64bit): Likewise.
|
||
(vsx_movti_32bit): Likewise.
|
||
(vec_store_<mode>): Use VSX iterator instead of vector iterator.
|
||
(vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
|
||
one '?' on the appropriate output constraint. Do not allow TImode
|
||
logical operations on 32-bit systems.
|
||
(vsx_ior<mode>3): Likewise.
|
||
(vsx_xor<mode>3): Likewise.
|
||
(vsx_one_cmpl<mode>2): Likewise.
|
||
(vsx_nor<mode>3): Likewise.
|
||
(vsx_andc<mode>3): Likewise.
|
||
(vsx_concat_<mode>): Likewise.
|
||
(vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
|
||
|
||
* config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
|
||
OPTION_MASK_VSX_TIMODE.
|
||
(enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
|
||
(STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
|
||
|
||
* config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
|
||
(TI2 iterator): New iterator for TImode, PTImode.
|
||
(wd mode attribute): Add values for vector types.
|
||
(movti_string): Replace TI move operations with operations for TImode
|
||
and PTImode. Add support for TImode being allowed in VSX registers.
|
||
(mov<mode>_string, TImode/PTImode): Likewise.
|
||
(movti_ppc64): Likewise.
|
||
(mov<mode>_ppc64, TImode/PTImode): Likewise.
|
||
(TI mode splitters): Likewise.
|
||
|
||
* doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
|
||
constraint.
|
||
|
||
2013-03-20 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR tree-optimization/56355
|
||
* fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
|
||
Also handle integers with undefined overflow.
|
||
|
||
2013-03-20 Catherine Moore <clm@codesourcery.com>
|
||
Maciej W. Rozycki <macro@codesourcery.com>
|
||
Tom de Vries <tom@codesourcery.com>
|
||
Nathan Sidwell <nathan@codesourcery.com>
|
||
Iain Sandoe <iain@codesourcery.com>
|
||
Nathan Froyd <froydnj@codesourcery.com>
|
||
Chao-ying Fu <fu@mips.com>
|
||
|
||
* doc/extend.texi: (micromips, nomicromips, nocompression):
|
||
Document new function attributes.
|
||
* doc/invoke.texi (minterlink-compressed, mmicromips,
|
||
m14k, m14ke, m14kec): Document new options.
|
||
(minterlink-mips16): Update documentation.
|
||
* doc/md.texi (ZC, ZD): Document new constraints.
|
||
* configure.ac (gcc_cv_as_micromips): Check if linker
|
||
supports the .set micromips directive.
|
||
* configure: Regenerate.
|
||
* config.in: Regenerate.
|
||
* config/mips/mips-tables.opt: Regenerate.
|
||
* config/mips/micromips.md: New file.
|
||
* constraints.md (ZC, ZD): New constraints.
|
||
* config/mips/predicates.md (movep_src_register): New predicate.
|
||
(movep_src_operand): New predicate.
|
||
(non_volatile_mem_operand): New predicate.
|
||
* config/mips/mips.md (multimem): New type.
|
||
(length): Differentiate between 17-bit and 18-bit branch offsets.
|
||
(MOVEP1, MOVEP2): New mode iterator.
|
||
(mov_<load>l): Use ZC constraint.
|
||
(mov_<load>r): Likewise.
|
||
(mov_<store>l): Likewise.
|
||
(mov_<store>r): Likewise.
|
||
(*branch_equality<mode>_inverted): Add microMIPS support.
|
||
(*branch_equality<mode>): Likewise.
|
||
(*jump_absolute): Likewise.
|
||
(indirect_jump_<mode>): Likewise.
|
||
(tablejump_<mode>): Likewise.
|
||
(<optab>_internal): Likewise.
|
||
(sibcall_internal): Likewise.
|
||
(sibcall_value_internal): Likewise.
|
||
(prefetch): Use constraint ZD.
|
||
* config/mips/mips.opt (minterlink-compressed): New option.
|
||
(minterlink-mips16): Now an alias for minterlink-compressed.
|
||
(mmicromips): New option.
|
||
* config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
|
||
(compare_and_swap_12): Likewise.
|
||
(sync_add<mode>): Likewise.
|
||
(sync_<optab>_12): Likewise.
|
||
(sync_old_<optab>_12): Likewise.
|
||
(sync_new_<optab>_12): Likewise.
|
||
(sync_nand_12): Likewise.
|
||
(sync_old_nand_12): Likewise.
|
||
(sync_new_nand_12): Likewise.
|
||
(sync_sub<mode>): Likewise.
|
||
(sync_old_add<mode>): Likewise.
|
||
(sync_old_sub<mode>): Likewise.
|
||
(sync_new_add<mode>): Likewise.
|
||
(sync_new_sub<mode>): Likewise.
|
||
(sync_<optab><mode>): Likewise.
|
||
(sync_old_<optab><mode>): Likewise.
|
||
(sync_new_<optab><mode>): Likewise.
|
||
(sync_nand<mode>): Likewise.
|
||
(sync_old_nand<mode>): Likewise.
|
||
(sync_new_nand<mode>): Likewise.
|
||
(sync_lock_test_and_set<mode>): Likewise.
|
||
(test_and_set_12): Likewise.
|
||
(atomic_compare_and_swap<mode>): Likewise.
|
||
(atomic_exchange<mode>_llsc): Likewise.
|
||
(atomic_fetch_add<mode>_llsc): Likewise.
|
||
* config/mips/mips-cpus.def (m14kc, m14k): New processors.
|
||
* config/mips/mips-protos.h (umips_output_save_restore): New prototype.
|
||
(umips_save_restore_pattern_p): Likewise.
|
||
(umips_load_store_pair_p): Likewise.
|
||
(umips_output_load_store_pair): Likewise.
|
||
(umips_movep_target_p): Likewise.
|
||
(umips_12bit_offset_address_p): Likewise.
|
||
* config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
|
||
(mips_base_mips16): Rename this...
|
||
(mips_base_compression_flags): ...to this. Update all uses.
|
||
(mips_attribute_table): Add micromips, nomicromips and nocompression.
|
||
(mips_mips16_decl_p): Delete.
|
||
(mips_nomips16_decl_p): Delete.
|
||
(mips_get_compress_on_flags): New function.
|
||
(mips_get_compress_off_flags): New function.
|
||
(mips_get_compress_mode): New function.
|
||
(mips_get_compress_on_name): New function.
|
||
(mips_get_compress_off_name): New function.
|
||
(mips_insert_attributes): Support multiple compression types.
|
||
(mips_merge_decl_attributes): Likewise.
|
||
(umips_12bit_offset_address_p): New function.
|
||
(mips_start_function_definition): Emit .set micromips directive.
|
||
(mips_call_may_need_jalx_p): New function.
|
||
(mips_function_ok_for_sibcall): Add microMIPS support.
|
||
(mips_print_operand_punctuation): Support short delay slots and
|
||
compact jumps.
|
||
(umips_swm_mask, umips_swm_encoding): New.
|
||
(umips_build_save_restore): New function.
|
||
(mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
|
||
(was_mips16_p): Remove.
|
||
(old_compression_mode): New.
|
||
(mips_set_compression_mode): New function.
|
||
(mips_set_current_function): Add microMIPS support.
|
||
(mips_option_override): Likewise.
|
||
(umips_save_restore_pattern_p): New function.
|
||
(umips_output_save_restore): New function.
|
||
(umips_load_store_pair_p_1): New function.
|
||
(umips_load_store_pair_p): New function.
|
||
(umips_output_load_store_pair_1): New function.
|
||
(umips_output_load_store_pair): New function.
|
||
(umips_movep_target_p) New function.
|
||
(mips_prepare_pch_save): Add microMIPS support.
|
||
* config/mips/mips.h (TARGET_COMPRESSION): New.
|
||
(TARGET_CPU_CPP_BUILTINS): Update macro
|
||
to use new compression flags and to support microMIPS.
|
||
(MIPS_ISA_LEVEL_SPEC): Add m14k processors.
|
||
(MIPS_ARCH_FLOAT_SPEC): Likewise.
|
||
(ISA_HAS_LWXS): Include TARGET_MICROMIPS.
|
||
(ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
|
||
(ASM_SPEC): Support mmicromips and mno-micromips.
|
||
(M16STORE_REG_P): New macro.
|
||
(MIPS_CALL): Support TARGET_MICROMIPS.
|
||
(MICROMIPS_J): New macro.
|
||
(mips_base_mips16): Rename this...
|
||
(mips_base_compression_flags): ...to this.
|
||
(UMIPS_12BIT_OFFSET_P): New macro.
|
||
* config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
|
||
(MULTILIB_DIRNAMES): Likewise.
|
||
2013-03-20 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56661
|
||
* tree-ssa-sccvn.c (visit_use): Only value-number calls if
|
||
the result does not have to be distinct.
|
||
|
||
2013-03-20 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
|
||
remap_gimple_op_r.
|
||
|
||
2013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
PR rtl-optimization/56605
|
||
* loop-iv.c (implies_p): Handle equal RTXs and subregs.
|
||
|
||
2013-03-20 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR bootstrap/56656
|
||
* config/i386/i386.md (*movdi_internal): Handle broken assemblers
|
||
that require movd instead of movq.
|
||
|
||
2013-03-20 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-structalias.c (struct variable_info): Add pointer
|
||
to the first field of an aggregate with sub-vars. Make
|
||
this and the pointer to the next subfield its ID.
|
||
(vi_next): New function.
|
||
(nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
|
||
storedanything_id, integer_id): Increment by one.
|
||
(new_var_info, get_call_vi, lookup_call_clobber_vi,
|
||
get_call_clobber_vi): Adjust.
|
||
(solution_set_expand): Simplify and speedup.
|
||
(solution_set_add): Inline into ...
|
||
(set_union_with_increment): ... this. Adjust accordingly.
|
||
(do_sd_constraint): Likewise.
|
||
(do_ds_constraint): Likewise.
|
||
(do_complex_constraint): Simplify.
|
||
(build_pred_graph): Adjust.
|
||
(solve_graph): Likewise. Simplify and speedup.
|
||
(get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
|
||
get_constraint_for_component_ref, get_constraint_for_1,
|
||
first_vi_for_offset, first_or_preceding_vi_for_offset,
|
||
create_function_info_for, create_variable_info_for_1,
|
||
create_variable_info_for, intra_create_variable_infos): Adjust.
|
||
(init_base_vars): Push NULL for ID zero.
|
||
(compute_points_to_sets): Adjust.
|
||
|
||
2013-03-20 Richard Biener <rguenther@suse.de>
|
||
|
||
* cfgloop.c (verify_loop_structure): Streamline and avoid
|
||
ICEing on corrupt loop tree.
|
||
* graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
|
||
loop tree.
|
||
|
||
2013-03-20 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
|
||
check whether an SSA update is needed.
|
||
|
||
2013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/mips/constraints.md (T): Rename to...
|
||
(Yf): ...this.
|
||
(U): Rename to...
|
||
(Yd): ...this.
|
||
* config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
|
||
(*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
|
||
|
||
2013-03-19 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
|
||
(*subsi3_carryin_uxtw): Likewise.
|
||
|
||
2013-03-19 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
|
||
(*rorsi3_insn_uxtw): Likewise.
|
||
|
||
2013-03-19 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
|
||
(*extrsi5_insn_uxtw): Likewise.
|
||
|
||
2013-03-19 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56273
|
||
* passes.c (init_optimization_passes): Move second VRP after DOM.
|
||
|
||
2013-03-19 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (*movti_internal): Merge from
|
||
*movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
|
||
(*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
|
||
nox64 isa attributes.
|
||
|
||
2013-03-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-structalias.c (find): Use gcc_checking_assert.
|
||
(unite): Likewise.
|
||
(merge_node_constraints): Likewise.
|
||
(build_succ_graph): Likewise.
|
||
(valid_graph_edge): Inline into single caller.
|
||
(unify_nodes): Likewise. Use bitmap_set_bit return value
|
||
and cache varinfo.
|
||
(scc_visit): Fix formatting and variable use.
|
||
(do_sd_constraint): Use gcc_checking_assert.
|
||
(do_ds_constraint): Likewise.
|
||
(do_complex_constraint): Likewise.
|
||
(condense_visit): Likewise. Cleanup.
|
||
(dump_pred_graph): New function.
|
||
(perform_var_substitution): Dump the pred-graph before
|
||
variable substitution.
|
||
(find_equivalent_node): Use gcc_checking_assert.
|
||
(rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
|
||
|
||
2013-03-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
|
||
Remove cond_expr_stmt_list argument and do not gimplify the
|
||
built expression.
|
||
(vect_loop_versioning): Adjust.
|
||
* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
|
||
Cleanup to use less temporaries.
|
||
(vect_create_data_ref_ptr): Cleanup.
|
||
|
||
2013-03-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/56635
|
||
* fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
|
||
require types_compatible_p types.
|
||
|
||
2013-03-18 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
|
||
spurious backslash.
|
||
|
||
* config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
|
||
Add missing line to comment describing function.
|
||
|
||
2013-03-18 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56210
|
||
* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
|
||
Handle string / character search functions.
|
||
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
|
||
|
||
2013-03-18 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/56483
|
||
* cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
|
||
and implement properly.
|
||
* gimple.h (gimple_cond_single_var_p): Remove.
|
||
|
||
2013-03-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-data-ref.h (find_data_references_in_loop): Declare.
|
||
* tree-data-ref.c (get_references_in_stmt): Use a stack
|
||
vector pre-allocated in the callers.
|
||
(find_data_references_in_stmt): Adjust.
|
||
(graphite_find_data_references_in_stmt): Likewise.
|
||
(create_rdg_vertices): Likewise.
|
||
(find_data_references_in_loop): Export.
|
||
* tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
|
||
Compute dependences here...
|
||
(vect_analyze_data_refs): ...not here. When we encounter
|
||
a non-vectorizable data reference in basic-block vectorization
|
||
truncate the data reference vector. Do not bother to
|
||
fixup data-dependence information for gather loads.
|
||
* tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
|
||
of data references, as reported.
|
||
|
||
2013-03-18 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/3713
|
||
* tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
|
||
has_constants and expr.
|
||
(stmt_has_constants): Properly valueize SSA names when deciding
|
||
whether the stmt has constants.
|
||
|
||
2013-03-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
|
||
whole function when there is nothing to do.
|
||
* tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
|
||
* tree-vectorizer.c (vectorize_loops): Update virtual and
|
||
loop-closed SSA once.
|
||
* tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
|
||
|
||
2013-03-18 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/56113
|
||
* domwalk.c (bb_postorder): New global static.
|
||
(cmp_bb_postorder): New function.
|
||
(walk_dominator_tree): Replace scheme imposing an order for
|
||
visiting dominator sons by one sorting them at the time they
|
||
are pushed on the stack.
|
||
|
||
2013-03-18 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/39326
|
||
* tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
|
||
(struct mem_ref): Replace mem member with ao_ref typed member.
|
||
(MEM_ANALYZABLE): Adjust.
|
||
(memref_eq): Likewise.
|
||
(mem_ref_alloc): Likewise.
|
||
(gather_mem_refs_stmt): Likewise.
|
||
(mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
|
||
(execute_sm_if_changed_flag_set): Adjust.
|
||
(execute_sm): Likewise.
|
||
(ref_always_accessed_p): Likewise.
|
||
(refs_independent_p): Likewise.
|
||
(can_sm_ref_p): Likewise.
|
||
|
||
2013-03-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c/56566
|
||
* tree.c (tree_int_cst_min_precision): For integer_zerop (value)
|
||
return 1 even for !unsignedp.
|
||
|
||
2013-03-17 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (isa): Add x64 and nox64.
|
||
(enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
|
||
(*pushtf): Enable *roF alternative for x64 isa only.
|
||
(*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
|
||
mode attribute of integer alternatives to DImode for TARGET_64BIT.
|
||
(*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
|
||
(*movtf_internal): Merge from *movtf_internal_rex64 and
|
||
*movtf_internal_sse. Use x64 and nox64 isa attributes.
|
||
(*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
|
||
nox64 isa attributes.
|
||
(*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
|
||
nox64 isa attributes.
|
||
* config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
|
||
|
||
2013-03-17 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/alpha/alpha.c (TARGET_LRA_P): New define.
|
||
|
||
2013-03-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/56640
|
||
* config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
|
||
class names. Remove trailing comma after "ALL_REGS".
|
||
|
||
2013-03-16 Jan Hubicka <jh@suse.cz>
|
||
|
||
* cgraph.h (cgraph_get_create_real_symbol_node): Declare.
|
||
* cgraph.c (cgraph_get_create_real_symbol_node): New function.
|
||
* cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
|
||
of cgraph_get_create_node.
|
||
* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
|
||
|
||
2013-03-16 Jason Merrill <jason@redhat.com>
|
||
|
||
PR debug/49090
|
||
* dwarf2out.c (gen_generic_params_dies): Indicate default arguments
|
||
with DW_AT_default_value.
|
||
|
||
2013-03-16 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* BASE-VER: Set to 4.9.0.
|
||
|
||
2013-03-14 Andi Kleen <ak@linux.intel.com>
|
||
|
||
PR target/56619
|
||
* doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
|
||
__ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
|
||
Document _x* TSX intrinsics.
|
||
|
||
2013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
|
||
David Holsgrove <david.holsgrove@xilinx.com>
|
||
|
||
* configure.ac: Add MicroBlaze TLS support detection.
|
||
* configure: Regenerate.
|
||
* config/microblaze/microblaze-protos.h
|
||
(microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
|
||
symbol_mentioned_p, label_mentioned_p): Add prototypes.
|
||
* config/microblaze/microblaze.c (microblaze_address_type): Add
|
||
ADDRESS_TLS and tls_reloc address types.
|
||
(microblaze_address_info): Add tls_reloc.
|
||
(TARGET_HAVE_TLS): Define.
|
||
(get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
|
||
microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
|
||
symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
|
||
load_tls_operand, microblaze_call_tls_get_addr,
|
||
microblaze_legitimize_tls_address): New functions.
|
||
(microblaze_classify_unspec): Handle UNSPEC_TLS.
|
||
(get_base_reg): Use microblaze_tls_symbol_p.
|
||
(microblaze_classify_address): Handle TLS.
|
||
(microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
|
||
label_mentioned_p and microblaze_tls_referenced_p.
|
||
(microblaze_legitimize_address): Handle TLS.
|
||
(microblaze_address_insns): Handle ADDRESS_TLS.
|
||
(pic_address_needs_scratch): Handle TLS.
|
||
(print_operand_address): Handle TLS.
|
||
(microblaze_expand_prologue): Check TLS_NEEDS_GOT.
|
||
(microblaze_expand_move): Handle TLS.
|
||
(microblaze_legitimate_constant_p): Check
|
||
microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
|
||
(TARGET_CANNOT_FORCE_CONST_MEM): Define.
|
||
* config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
|
||
(PIC_OFFSET_TABLE_REGNUM): Set.
|
||
* config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
|
||
* config/microblaze/microblaze.md (UNSPEC_TLS): Define.
|
||
(addsi3, movsi_internal2, movdf_internal): Update constraints
|
||
* config/microblaze/predicates.md (arith_plus_operand): Define
|
||
(move_operand): Redefine as move_src_operand,
|
||
check microblaze_tls_referenced_p.
|
||
|
||
2013-03-14 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
|
||
(*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
|
||
|
||
2013-03-14 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
|
||
CC mode for AND.
|
||
|
||
2013-03-14 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/53265
|
||
* common.opt (Waggressive-loop-optimizations): New option.
|
||
* tree-ssa-loop-niter.c: Include tree-pass.h.
|
||
(do_warn_aggressive_loop_optimizations): New function.
|
||
(record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
|
||
if number_of_latch_executions returned constant.
|
||
(estimate_numbers_of_iterations_loop): Call number_of_latch_executions
|
||
early. If number_of_latch_executions returned constant, set
|
||
nb_iterations_upper_bound back to it.
|
||
* cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
|
||
field.
|
||
* Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
|
||
* doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
|
||
|
||
* config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
|
||
(MULTILIB_OSDIRNAMES): Set.
|
||
* genmultilib: If defaultosdirname doesn't start with :: , set
|
||
defaultosdirname2 instead, clear it and emit two . multilib_raw
|
||
entries instead of just one.
|
||
|
||
2013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
* config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
|
||
(SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
|
||
* config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
|
||
(SUBTARGET_OVERRIDE_OPTIONS): New.
|
||
|
||
2013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
PR target/49880
|
||
* config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
|
||
(musermode): Convert to Var(TARGET_USERMODE).
|
||
* config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
|
||
MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
|
||
* config/sh/sh.c (sh_option_override): Use
|
||
TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
|
||
* config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
|
||
condition.
|
||
(udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
|
||
TARGET_SH4.
|
||
(udivsi3_i4_single, divsi3_i4_single): Use
|
||
TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
|
||
|
||
2013-03-13 Dave Korn <dave.korn.cygwin@....>
|
||
|
||
* config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
|
||
default setting.
|
||
|
||
2013-03-13 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56608
|
||
* tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
|
||
calls when vectorizing basic-blocks.
|
||
|
||
2013-03-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR plugins/45078
|
||
* config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
|
||
tm_file.
|
||
|
||
2013-03-12 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
|
||
|
||
2013-03-11 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR lto/56557
|
||
* lto-streamer-out.c (output_symbol_p): Skip references from
|
||
constructors of external variables.
|
||
|
||
2013-03-11 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR middle-end/56571
|
||
* valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
|
||
from pseudos.
|
||
* emit-rtl.c (verify_rtx_sharing): Likewise.
|
||
(copy_insn_1): Likewise.
|
||
* rtl.c (copy_rtx): Likewise.
|
||
|
||
2013-03-11 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR target/56591
|
||
* config/avr/avr.c (avr_print_operand): Add space after '%c' in
|
||
output_operand_lossage message.
|
||
|
||
2013-03-11 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
PR target/56470
|
||
* arm.c (shift_op): Validate RTL pattern on the fly.
|
||
(arm_print_operand, case 'S'): Don't use shift_operator to validate
|
||
the RTL.
|
||
|
||
2013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR target/56347
|
||
* config/pa/pa.md (call_value): Check for calls to powf and direct to
|
||
new call patterns that clobber %fr12.
|
||
(call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
|
||
split and postreload patterns.
|
||
* config/pa/pa.c (pa_conditional_register_usage): Revert marking
|
||
registers %fr12 and %fr12R as call used.
|
||
|
||
2013-03-09 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
|
||
(canon_address, record_store, replace_read, check_mem_read_rtx,
|
||
scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
|
||
dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
|
||
rest_of_handle_dse): Likewise.
|
||
|
||
2013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
PR middle-end/56524
|
||
* tree.h (tree_optimization_option): Rename target_optabs to optabs.
|
||
Add base_optabs.
|
||
(TREE_OPTIMIZATION_OPTABS): Update after previous field change.
|
||
(TREE_OPTIMIZATION_BASE_OPTABS): New macro.
|
||
(save_optabs_if_changed): Replace with...
|
||
(init_tree_optimization_optabs): ...this.
|
||
* optabs.c (save_optabs_if_changed): Rename to...
|
||
(init_tree_optimization_optabs): ...this. Take the optimization node
|
||
as argument. Do nothing if the base optabs are already correct.
|
||
Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
|
||
to recompute optabs.
|
||
* function.h (function): Remove optabs field.
|
||
* function.c (invoke_set_current_function_hook): Call
|
||
init_tree_optimization_optabs. Use the result to initialize
|
||
this_fn_optabs.
|
||
|
||
2013-02-27 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
* trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
|
||
if GTMA_HAS_NO_INSTRUMENTATION.
|
||
(generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
|
||
(ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
|
||
* gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
|
||
* gimple-pretty-print.c (dump_gimple_transaction): Handle
|
||
GTMA_HAS_NO_INSTRUMENTATION.
|
||
|
||
2013-03-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
|
||
libasan_preinit.o.
|
||
|
||
2013-03-08 Marek Polacek <polacek@redhat.com>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/56478
|
||
* predict.c (is_comparison_with_loop_invariant_p): Change the
|
||
type of loop_step to tree.
|
||
(predict_loops): Adjust.
|
||
(predict_iv_comparison): Perform the computations on double_ints.
|
||
|
||
2013-03-08 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56570
|
||
* tree-cfg.c (verify_expr_location_1): Verify locations for
|
||
DECL_DEBUG_EXPR.
|
||
* tree-sra.c (create_access_replacement): Strip locations
|
||
from DECL_DEBUG_EXPRs.
|
||
|
||
2013-03-08 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-inline.c (expand_call_inline): Do not associate
|
||
a BLOCK with the location in BLOCK_SOURCE_LOCATION.
|
||
* tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
|
||
|
||
2013-03-08 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-ter.c (is_replaceable_p): Do not TER across location
|
||
or block changes with -Og. Fix for location / block encoding
|
||
changes and PHI arguments with locations.
|
||
|
||
2013-03-07 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
|
||
for all counters.
|
||
(struct output_info): Likewise.
|
||
(register_overhead): Remove bad gcc_assert.
|
||
(bitmap_find_bit): If there is only a single bitmap element, do not
|
||
count a miss as a search.
|
||
(print_statistics): Update for counter type changes.
|
||
(dump_bitmap_statistics): Likewise. Print headers such that they
|
||
are properly lined up with the printed counters.
|
||
|
||
2013-03-07 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/56559
|
||
* tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
|
||
check that it has only a single use.
|
||
|
||
2013-03-07 Richard Biener <rguenther@suse.de>
|
||
|
||
* doc/invoke.texi (fwhole-program): Discourage use in combination
|
||
with -flto.
|
||
|
||
2013-03-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
|
||
|
||
PR tree-optimization/56539
|
||
* tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
|
||
instead of GSI_CONTINUE_LINKING as last argument to
|
||
force_gimple_operand_gsi. Adjust function comment.
|
||
|
||
* config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
|
||
aarch64-cores.def.
|
||
|
||
PR middle-end/56548
|
||
* expr.c (expand_cond_expr_using_cmove): When expanding cmove in
|
||
promoted mode, convert the result back to the original mode.
|
||
|
||
2013-03-06 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/56294
|
||
* tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
|
||
(insert_updated_phi_nodes_compare_uids): New function.
|
||
(update_ssa): Sort symbols_to_rename after UID before
|
||
traversing it to insert PHI nodes.
|
||
|
||
2013-03-06 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/50494
|
||
* tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
|
||
Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
|
||
|
||
Revert
|
||
2013-02-13 Richard Biener <rguenther@suse.de>
|
||
|
||
PR lto/50494
|
||
* varasm.c (output_constant_def_1): Get the decl representing
|
||
the constant as argument.
|
||
(output_constant_def): Wrap output_constant_def_1.
|
||
(make_decl_rtl): Use output_constant_def_1 with the decl
|
||
representing the constant.
|
||
(build_constant_desc): Optionally re-use a decl already
|
||
representing the constant.
|
||
(tree_output_constant_def): Adjust.
|
||
|
||
2013-03-06 Joey Ye <joey.ye@arm.com>
|
||
|
||
PR lto/50293
|
||
* gcc.c (convert_white_space): New function.
|
||
(main): Handles white space in function name.
|
||
|
||
2013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
PR target/56529
|
||
* config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
|
||
instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
|
||
to SH_DIV_CALL_TABLE for TARGET_SH2.
|
||
* config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
|
||
list.
|
||
* doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
|
||
call-table options.
|
||
|
||
2013-03-05 Sterling Augustine <saugustine@google.com>
|
||
Cary Coutant <ccoutant@google.com>
|
||
|
||
PR debug/55364
|
||
* dwarf2out.c (resolve_addr): Don't call
|
||
remove_loc_list_addr_table_entries a second time for the same
|
||
expression.
|
||
|
||
2013-03-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/56510
|
||
* cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
|
||
(avoid_complex_debug_insns): New function.
|
||
(expand_debug_locations): Call it.
|
||
|
||
PR rtl-optimization/56484
|
||
* ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
|
||
lifetimes of hard registers on small register class machines.
|
||
|
||
2013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
|
||
|
||
* config/microblaze/microblaze-protos.h: Rename
|
||
microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
|
||
* config/microblaze/microblaze.c (microblaze_attribute_table): Add
|
||
fast_interrupt.
|
||
(microblaze_fast_interrupt_function_p): New function.
|
||
(microblaze_is_interrupt_handler): Rename to
|
||
microblaze_is_interrupt_variant and add fast_interrupt check.
|
||
(microblaze_must_save_register): Use microblaze_is_interrupt_variant.
|
||
(save_restore_insns): Likewise.
|
||
(compute_frame_size): Likewise.
|
||
(microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
|
||
(microblaze_globalize_label): Likewise.
|
||
* config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
|
||
* config/microblaze/microblaze.md: Use wrapper
|
||
microblaze_is_interrupt_variant.
|
||
|
||
2013-03-05 Kai Tietz <ktietz@redhat.com>
|
||
|
||
* sdbout.c (sdbout_one_type): Switch to current function's section
|
||
supporting cold/hot.
|
||
|
||
2013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
|
||
|
||
* doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
|
||
-mxl-reorder.
|
||
|
||
2013-03-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/56461
|
||
* ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
|
||
if VALGRIND_GET_VBITS is defined, temporarily make object
|
||
memory all defined, and restore previous valgrind addressability
|
||
and definability afterwards. Free this_object at the end.
|
||
|
||
PR middle-end/56461
|
||
* lra.c (lra): Call lra_clear_live_ranges if live_p,
|
||
right before calling lra_create_live_ranges, also call it
|
||
when clearing live_p. Only call lra_clear_live_ranges
|
||
at the end if live_p.
|
||
|
||
PR middle-end/56461
|
||
* sched-deps.c (delete_dep_node): Free DEP_REPLACE.
|
||
|
||
2013-03-05 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56521
|
||
* tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
|
||
value-id.
|
||
|
||
2013-03-05 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
PR c++/55135
|
||
* except.h (remove_unreachable_eh_regions): New prototype.
|
||
* except.c (remove_eh_handler_splicer): New function, split out
|
||
of remove_eh_handler.
|
||
(remove_eh_handler): Use remove_eh_handler_splicer. Add comment
|
||
warning about running it on many EH regions one at a time.
|
||
(remove_unreachable_eh_regions_worker): New function, walk the
|
||
EH tree in depth-first order and remove non-marked regions.
|
||
(remove_unreachable_eh_regions): New function.
|
||
* tree-eh.c (mark_reachable_handlers): New function, split out
|
||
from remove_unreachable_handlers.
|
||
(remove_unreachable_handlers): Use mark_reachable_handlers and
|
||
remove_unreachable_eh_regions.
|
||
(remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
|
||
and remove_unreachable_eh_regions.
|
||
|
||
2013-03-05 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/56525
|
||
* loop-init.c (fix_loop_structure): Remove loops in two stages,
|
||
not freeing them until the end.
|
||
|
||
2013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
* config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
|
||
|
||
2013-03-05 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56270
|
||
* tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
|
||
of loads after scheduling an SLP instance.
|
||
|
||
2013-03-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
|
||
tic6x.exp.
|
||
(check_gcc_parallelize): Run guality.exp as a separate job from
|
||
vect.exp with unsorted.exp and $(dg_target_exps) separately from
|
||
struct-layout-1.exp with stackalign.exp.
|
||
|
||
* alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
|
||
|
||
PR middle-end/56461
|
||
* tree-vect-slp.c (vect_supported_load_permutation_p): Free
|
||
load_index sbitmap even if some bit in it isn't set.
|
||
|
||
PR middle-end/56461
|
||
* tree-ssa-loop-niter.c (bb_queue): Remove typedef.
|
||
(discover_iteration_bound_by_body_walk): Change queues to
|
||
vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
|
||
spelling in comment. Call safe_push on queues[bound_index] directly.
|
||
Release queues[queue_index] in every iteration unconditionally.
|
||
Release bounds vector.
|
||
|
||
PR middle-end/56461
|
||
* tree-vect-stmts.c (free_stmt_vec_info_vec): Call
|
||
free_stmt_vec_info on any left-over stmt_vec_info in the vector.
|
||
* tree-vect-loop.c (vect_create_epilog_for_reduction): Release
|
||
inner_phis vector.
|
||
|
||
2013-03-05 Richard Biener <rguenther@suse.de>
|
||
|
||
PR lto/56515
|
||
* tree-inline.c (remap_blocks_to_null): New function.
|
||
(expand_call_inline): When expanding a call stmt without
|
||
an associated block inline remap all callee blocks to NULL.
|
||
|
||
2013-03-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/56494
|
||
* simplify-rtx.c (simplify_truncation): If C is narrower than A,
|
||
optimize (truncate:A (subreg:B (truncate:C X) 0)) into
|
||
(subreg:A (truncate:C X) 0) instead of (truncate:A X).
|
||
|
||
PR middle-end/56461
|
||
* sel-sched-ir.c (free_sched_pools): Release
|
||
succs_info_pool.stack[succs_info_pool.max_top] vectors too
|
||
if succs_info_pool.max_top isn't -1.
|
||
|
||
PR bootstrap/56509
|
||
* opts.c (opts_obstack, opts_concat): Moved to...
|
||
* opts-common.c (opts_obstack, opts_concat): ... here.
|
||
|
||
2013-03-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/56461
|
||
* diagnostic.c (diagnostic_append_note): Save and restore old prefix.
|
||
|
||
2013-03-04 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
|
||
all appropriate places.
|
||
|
||
2013-01-04 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR tree-optimization/56424
|
||
* ipa-split.c (split_function): Do not set the RSO flag if result is
|
||
not by reference and its type is a register type.
|
||
|
||
2013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
|
||
|
||
* config/microblaze/microblaze.c (microblaze_valid_pic_const): New
|
||
(microblaze_legitimate_pic_operand): Likewise
|
||
* config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
|
||
new function microblaze_legitimate_pic_operand
|
||
* config/microblaze/microblaze-protos.h
|
||
(microblaze_legitimate_pic_operand): Declare.
|
||
|
||
2013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
|
||
|
||
* config/microblaze/predicates.md (call_insn_simple_operand):
|
||
New predicate for supported rtx code types.
|
||
* config/microblaze/microblaze.md (call_internal1): Use
|
||
call_insn_simple_operand predicate.
|
||
|
||
2013-03-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/56461
|
||
* tree-loop-distribution.c (ldist_gen): Call partition_free after each
|
||
partitions.ordered_remove.
|
||
|
||
PR middle-end/56461
|
||
* tree-vect-stmts.c (vectorizable_conversion): Don't call
|
||
vec_oprnds0.create (1) for modifier == NONE.
|
||
|
||
PR middle-end/56461
|
||
* tree-vect-stmts.c (vectorizable_shift): Don't call create methods
|
||
on vec_oprnds0 or vec_oprnds1 before loop, only call it on
|
||
vec_oprnds1 right before pushing anything to it for
|
||
scalar_shift_arg.
|
||
|
||
PR middle-end/56461
|
||
* tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
|
||
set nbbs to 0 instead of having separate code path.
|
||
(vect_analyze_loop_form): Call destroy_loop_vec_info with true
|
||
instead of false as last argument if returning NULL.
|
||
|
||
2013-03-03 Sandra Loosemore <sandra@codesourcery.com>
|
||
|
||
* target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
|
||
the attribute is now called "target" instead of "option".
|
||
(TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
|
||
* doc/tm.texi.in (Target Attributes): Likewise document the correct
|
||
attribute/pragma name for TARGET_OPTION_VALID_P and
|
||
TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
|
||
* doc/tm.texi: Regenerated.
|
||
|
||
2013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
|
||
|
||
* config/microblaze/microblaze.c:
|
||
Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
|
||
* config/microblaze/microblaze.h: Add -mxl-reorder to
|
||
DRIVER_SELF_SPECS.
|
||
* config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
|
||
instructions emitted if TARGET_REORDER.
|
||
* config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
|
||
or 0 for -m/-mno case, but initialises as 2 to detect default use case
|
||
separately.
|
||
|
||
2013-03-01 Xinliang David Li <davidxl@google.com>
|
||
|
||
* tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
|
||
walk length.
|
||
|
||
2013-03-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/56461
|
||
* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
|
||
vector even when returning true. Fix up function comment formatting.
|
||
|
||
PR middle-end/56461
|
||
* ira-build.c (ira_loop_nodes_count): New variable.
|
||
(create_loop_tree_nodes): Initialize it.
|
||
(finish_loop_tree_nodes): Use it instead of looking at current_loops.
|
||
|
||
PR middle-end/56461
|
||
* tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
|
||
method on dr_chain and result_chain.
|
||
* tree-vect-stmts.c (vectorizable_store): Only call
|
||
result_chain.create if j == 0.
|
||
|
||
PR middle-end/56461
|
||
* tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
|
||
vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
|
||
before overwriting it.
|
||
|
||
2013-03-01 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* doc/extended.texi (C Extensions): Change order in @menu
|
||
to match @node.
|
||
(Other MIPS Built-in Functions): Move last MIPS entry before
|
||
"picoChip Built-in Functions".
|
||
(SH Built-in Functions): Move after RX Built-in Functions.
|
||
* doc/gcc.texi (Introduction): Change order in @menu
|
||
to match @node.
|
||
* doc/md.texi (Constraints): Ditto.
|
||
* gty.texi (Type Information): Ditto.
|
||
(User-provided marking routines for template types): Make
|
||
subsection.
|
||
* doc/invoke.texi (AArch64 Options): Move before
|
||
"Adapteva Epiphany Options".
|
||
|
||
2013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR sanitizer/56454
|
||
* asan.c (gate_asan): Lookup no_sanitize_address instead of
|
||
no_address_safety_analysis attribute.
|
||
* doc/extend.texi (no_address_safety_attribute): Rename to
|
||
no_sanitize_address attribute, mention no_address_safety_analysis
|
||
attribute as deprecated alias.
|
||
|
||
2013-02-28 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/56461
|
||
* tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
|
||
type to vec<vec<tree> > *.
|
||
* tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
|
||
to be vec<tree> instead of vec<tree> *, set vec_defs
|
||
to vNULL and call vec_defs.create (number_of_vects), adjust other
|
||
uses of vec_defs.
|
||
* tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
|
||
vectorizable_condition): Adjust vect_get_slp_defs callers.
|
||
|
||
2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64.c
|
||
(aarch64_float_const_representable): Remove unused variable.
|
||
|
||
2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
|
||
|
||
2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c
|
||
(aarch64_init_simd_builtins): Make static.
|
||
|
||
2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64.c
|
||
(aarch64_simd_make_constant): Make static.
|
||
|
||
2013-02-28 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
|
||
with no initialization to the RHS of debug statements.
|
||
|
||
2013-02-28 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR tree-optimization/56294
|
||
* tree-sra.c (analyze_access_subtree): Create replacement declarations.
|
||
Adjust dumping.
|
||
(get_access_replacement): Do not call create_access_replacement.
|
||
Assert a replacement exists.
|
||
(get_repl_default_def_ssa_name): Create the replacement declaration
|
||
itself.
|
||
|
||
2013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
* config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
|
||
final_end_function.
|
||
|
||
2013-02-28 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR rtl-optimization/56466
|
||
* loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
|
||
if we're changing a loop.
|
||
(peel_loops_completely): Likewise.
|
||
|
||
2013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/55813
|
||
* doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
|
||
|
||
2013-02-28 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR target/56445
|
||
* config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
|
||
macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
|
||
INTX_FTYPE_FX, FX_FTYPE_INTX.
|
||
* config/avr/builtins.def: Adjust respective DEF_BUILTIN.
|
||
|
||
2013-02-28 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
* avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
|
||
(ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
|
||
(atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
|
||
(atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
|
||
(atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
|
||
(atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
|
||
(atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
|
||
(atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
|
||
(atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
|
||
(atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
|
||
(atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
|
||
(atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
|
||
(atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
|
||
(atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
|
||
(atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
|
||
(avrxmega6): Increase max flash segments from 5 to 6.
|
||
* config/avr/t-multilib: Regenerate.
|
||
* config/avr/avr-tables.opt: Regenerate.
|
||
* doc/avr-mmcu.texi: Regenerate.
|
||
|
||
2013-02-28 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
* config/avr/avr.h (device_to_arch): Rename to device_to_ld.
|
||
(avr_device_to_arch): Rename to avr_device_to_ld.
|
||
(avr_device_to_as): New prototype.
|
||
(EXTRA_SPEC_FUNCTIONS): Add device_to_as.
|
||
(ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
|
||
* config/avr/driver-avr.c (avr_device_to_as): New.
|
||
(avr_device_to_arch): Rename to avr_device_to_ld.
|
||
|
||
2013-02-27 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/56461
|
||
* tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
|
||
method on dr_chain and result_chain.
|
||
|
||
PR middle-end/56461
|
||
* tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
|
||
pointer_set_destroy on not_executed_last_iteration.
|
||
|
||
PR middle-end/56461
|
||
* tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
|
||
|
||
PR middle-end/56461
|
||
* ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
|
||
FOR_EACH_DEFINED_FUNCTION when freeing state.
|
||
|
||
PR middle-end/56461
|
||
* df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
|
||
pool_free.
|
||
(df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
|
||
overwriting it.
|
||
|
||
PR middle-end/56461
|
||
* ipa-cp.c (decide_whether_version_node): Call vec_free on
|
||
known_aggs[i].items and release known_aggs vector.
|
||
|
||
PR middle-end/56461
|
||
* ipa-reference.c (propagate): Free node_info even for alias nodes.
|
||
|
||
2013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
|
||
|
||
* config/microblaze/microblaze.c (microblaze_emit_compare):
|
||
Use xor for EQ/NE comparisions.
|
||
* config/microblaze/microblaze.md (cstoresf4): Add constraints
|
||
(cbranchsf4): Adjust operator to comparison_operator.
|
||
|
||
2013-02-27 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/56461
|
||
* tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
|
||
vector.
|
||
* tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
|
||
vec_safe_push, always update *slot.
|
||
(redirect_edge_var_map_clear): Use vec_free.
|
||
(redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
|
||
(free_var_map_entry): Use vec_free.
|
||
* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
|
||
FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
|
||
|
||
2013-02-27 Andrey Belevantsev <abel@ispras.ru>
|
||
|
||
PR middle-end/45472
|
||
* sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
|
||
when the may_trap_p bit of the exprs being merged differs.
|
||
Reorder tests for speculativeness in the logical and operator.
|
||
|
||
2013-02-27 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* incpath.c (add_standard_paths): Use reconcat instead of concat
|
||
where appropriate and avoid leaking memory.
|
||
|
||
* opts.h: Include obstack.h.
|
||
(opts_concat): New prototype.
|
||
(opts_obstack): New declaration.
|
||
* opts.c (opts_concat): New function.
|
||
(opts_obstack): New variable.
|
||
(init_options_struct): Call gcc_init_obstack on opts_obstack.
|
||
(finish_options): Use opts_concat instead of concat
|
||
and XOBNEWVEC instead of XNEWVEC.
|
||
* opts-common.c (generate_canonical_option, decode_cmdline_option,
|
||
generate_option): Likewise.
|
||
* Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
|
||
* lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
|
||
|
||
PR target/56455
|
||
* stmt.c (expand_switch_as_decision_tree_p): If flag_pic
|
||
and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
|
||
|
||
2013-02-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/56461
|
||
* lra-spills.c (lra_spill): Free spill_hard_reg at the end.
|
||
|
||
2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
* config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
|
||
(arm_block_move_unaligned_straight): Likewise.
|
||
(arm_adjust_block_mem): Likewise.
|
||
|
||
2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
PR target/48901
|
||
* config/lm32/lm32.c (gen_int_relational): Remove unused variables
|
||
temp, cond and label.
|
||
* config/lm32/lm32.md (ashlsi3): Remove unused variable one.
|
||
|
||
PR target/52500
|
||
* config/c6x/c6x.c (dbx_register_map): Change to unsigned.
|
||
* config/c6x/c6x.h (dbx_register_map): Update declaration.
|
||
|
||
PR target/52501
|
||
* config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
|
||
of prologue/epilogue functions.
|
||
|
||
PR target/52550
|
||
* config/tilegx/tilegx.c (tilegx_expand_prologue):
|
||
Remove unused variable cfa_offset.
|
||
* config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
|
||
|
||
PR target/54639
|
||
* config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
|
||
type promotion to unsigned.
|
||
|
||
PR target/54640
|
||
* config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
|
||
for HOST_WIDE_INT of 32 bit / same size as int.
|
||
(arm_block_move_unaligned_straight): Likewise.
|
||
(arm_adjust_block_mem): Likewise.
|
||
|
||
PR target/54662
|
||
* config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
|
||
ALL_CFLAGS.
|
||
|
||
2013-02-26 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR tree-optimization/56426
|
||
* tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
|
||
|
||
2013-02-26 Richard Biener <rguenther@suse.de>
|
||
|
||
PR target/56444
|
||
* config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
|
||
unused variable loops.
|
||
|
||
2013-02-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/56448
|
||
* fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
|
||
TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
|
||
Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
|
||
later operands of the references, or even first operand for
|
||
INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
|
||
|
||
PR tree-optimization/56443
|
||
* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
|
||
overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
|
||
to type_for_mode langhook.
|
||
|
||
2013-02-25 Matt Turner <mattst88@gmail.com>
|
||
|
||
* doc/invoke.texi: Document r4700.
|
||
|
||
2013-02-25 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56175
|
||
* tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
|
||
split out from ...
|
||
(simplify_bitwise_binary): ... here. Also guard the conversion
|
||
of (type) X op CST to (type) (X op ((type-x) CST)) with it.
|
||
|
||
2013-02-25 Catherine Moore <clm@codesourcery.com>
|
||
|
||
Revert:
|
||
2013-02-24 Catherine Moore <clm@codesourcery.com>
|
||
Maciej W. Rozycki <macro@codesourcery.com>
|
||
Tom de Vries <tom@codesourcery.com>
|
||
Nathan Sidwell <nathan@codesourcery.com>
|
||
Iain Sandoe <iain@codesourcery.com>
|
||
Nathan Froyd <froydnj@codesourcery.com>
|
||
Chao-ying Fu <fu@mips.com>
|
||
|
||
* doc/extend.texi: (micromips, nomicromips, nocompression):
|
||
Document new function attributes.
|
||
* doc/invoke.texi (minterlink-compressed, mmicromips,
|
||
m14k, m14ke, m14kec): Document new options.
|
||
(minterlink-mips16): Update documentation.
|
||
* doc/md.texi (ZC, ZD): Document new constraints.
|
||
* configure.ac (gcc_cv_as_micromips): Check if linker
|
||
supports the .set micromips directive.
|
||
* configure: Regenerate.
|
||
* config.in: Regenerate.
|
||
* config/mips/mips-tables.opt: Regenerate.
|
||
* config/mips/micromips.md: New file.
|
||
* constraints.md (ZC, AD): New constraints.
|
||
* config/mips/predicates.md (movep_src_register): New predicate.
|
||
(movep_src_operand): New predicate.
|
||
(non_volatile_mem_operand): New predicate.
|
||
* config/mips/mips.md (multimem): New type.
|
||
(length): Differentiate between 17-bit and 18-bit branch offsets.
|
||
(MOVEP1, MOVEP2): New mode iterator.
|
||
(mov_<load>l): Use ZC constraint.
|
||
(mov_<load>r): Likewise.
|
||
(mov_<store>l): Likewise.
|
||
(mov_<store>r): Likewise.
|
||
(*branch_equality<mode>_inverted): Add microMIPS support.
|
||
(*branch_equality<mode>): Likewise.
|
||
(*jump_absolute): Likewise.
|
||
(indirect_jump_<mode>): Likewise.
|
||
(tablejump_<mode>): Likewise.
|
||
(<optab>_internal): Likewise.
|
||
(sibcall_internal): Likewise.
|
||
(sibcall_value_internal): Likewise.
|
||
(prefetch): Use constraint ZD.
|
||
* config/mips/mips.opt (minterlink-compressed): New option.
|
||
(minterlink-mips16): Now an alias for minterlink-compressed.
|
||
(mmicromips): New option.
|
||
* config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
|
||
(compare_and_swap_12): Likewise.
|
||
(sync_add<mode>): Likewise.
|
||
(sync_<optab>_12): Likewise.
|
||
(sync_old_<optab>_12): Likewise.
|
||
(sync_new_<optab>_12): Likewise.
|
||
(sync_nand_12): Likewise.
|
||
(sync_old_nand_12): Likewise.
|
||
(sync_new_nand_12): Likewise.
|
||
(sync_sub<mode>): Likewise.
|
||
(sync_old_add<mode>): Likewise.
|
||
(sync_old_sub<mode>): Likewise.
|
||
(sync_new_add<mode>): Likewise.
|
||
(sync_new_sub<mode>): Likewise.
|
||
(sync_<optab><mode>): Likewise.
|
||
(sync_old_<optab><mode>): Likewise.
|
||
(sync_new_<optab><mode>): Likewise.
|
||
(sync_nand<mode>): Likewise.
|
||
(sync_old_nand<mode>): Likewise.
|
||
(sync_new_nand<mode>): Likewise.
|
||
(sync_lock_test_and_set<mode>): Likewise.
|
||
(test_and_set_12): Likewise.
|
||
(atomic_compare_and_swap<mode>): Likewise.
|
||
(atomic_exchange<mode>_llsc): Likewise.
|
||
(atomic_fetch_add<mode>_llsc): Likewise.
|
||
* config/mips/mips-cpus.def (m14kc, m14k): New processors.
|
||
* config/mips/mips-protos.h (umips_output_save_restore): New prototype.
|
||
(umips_save_restore_pattern_p): Likewise.
|
||
(umips_load_store_pair_p): Likewise.
|
||
(umips_output_load_store_pair): Likewise.
|
||
(umips_movep_target_p): Likewise.
|
||
(umips_12bit_offset_address_p): Likewise.
|
||
* config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
|
||
(mips_base_mips16): Rename this...
|
||
(mips_base_compression_flags): ...to this. Update all uses.
|
||
(mips_attribute_table): Add micromips, nomicromips and nocompression.
|
||
(mips_mips16_decl_p): Delete.
|
||
(mips_nomips16_decl_p): Delete.
|
||
(mips_get_compress_on_flags): New function.
|
||
(mips_get_compress_off_flags): New function.
|
||
(mips_get_compress_mode): New function.
|
||
(mips_get_compress_on_name): New function.
|
||
(mips_get_compress_off_name): New function.
|
||
(mips_insert_attributes): Support multiple compression types.
|
||
(mips_merge_decl_attributes): Likewise.
|
||
(umips_12bit_offset_address_p): New function.
|
||
(mips_start_function_definition): Emit .set micromips directive.
|
||
(mips_call_may_need_jalx_p): New function.
|
||
(mips_function_ok_for_sibcall): Add microMIPS support.
|
||
(mips_print_operand_punctuation): Support short delay slots and
|
||
compact jumps.
|
||
(umips_swm_mask, umips_swm_encoding): New.
|
||
(umips_build_save_restore): New function.
|
||
(mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
|
||
(was_mips16_p): Remove.
|
||
(old_compression_mode): New.
|
||
(mips_set_compression_mode): New function.
|
||
(mips_set_current_function): Add microMIPS support.
|
||
(mips_option_override): Likewise.
|
||
(umips_save_restore_pattern_p): New function.
|
||
(umips_output_save_restore): New function.
|
||
(umips_load_store_pair_p_1): New function.
|
||
(umips_load_store_pair_p): New function.
|
||
(umips_output_load_store_pair_1): New function.
|
||
(umips_output_load_store_pair): New function.
|
||
(umips_movep_target_p) New function.
|
||
(mips_prepare_pch_save): Add microMIPS support.
|
||
* config/mips/mips.h (TARGET_COMPRESSION): New.
|
||
(TARGET_CPU_CPP_BUILTINS): Update macro
|
||
to use new compression flags and to support microMIPS.
|
||
(MIPS_ISA_LEVEL_SPEC): Add m14k processors.
|
||
(MIPS_ARCH_FLOAT_SPEC): Likewise.
|
||
(ISA_HAS_LWXS): Include TARGET_MICROMIPS.
|
||
(ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
|
||
(ASM_SPEC): Support mmicromips and mno-micromips.
|
||
(M16STORE_REG_P): New macro.
|
||
(MIPS_CALL): Support TARGET_MICROMIPS.
|
||
(MICROMIPS_J): New macro.
|
||
(mips_base_mips16): Rename this...
|
||
(mips_base_compression_flags): ...to this.
|
||
(UMIPS_12BIT_OFFSET_P): New macro.
|
||
* config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
|
||
(MULTILIB_DIRNAMES): Likewise.
|
||
|
||
2013-02-25 Tom de Vries <tom@codesourcery.com>
|
||
|
||
PR rtl-optimization/56131
|
||
* insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
|
||
* cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
|
||
NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
|
||
|
||
2013-02-25 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* doc/invoke.texi (-fsanitize=): Move from optimization
|
||
to debugging options.
|
||
|
||
2013-02-25 Andrey Belevantsev <abel@ispras.ru>
|
||
|
||
* sched-deps.c (sched_analyze_insn): Fix typo in comment.
|
||
|
||
2013-02-25 Andrey Belevantsev <abel@ispras.ru>
|
||
Alexander Monakov <amonakov@ispras.ru>
|
||
|
||
PR middle-end/56077
|
||
* sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
|
||
flush pending lists also on non-jumps. Adjust comment.
|
||
|
||
2013-02-24 Catherine Moore <clm@codesourcery.com>
|
||
Maciej W. Rozycki <macro@codesourcery.com>
|
||
Tom de Vries <tom@codesourcery.com>
|
||
Nathan Sidwell <nathan@codesourcery.com>
|
||
Iain Sandoe <iain@codesourcery.com>
|
||
Nathan Froyd <froydnj@codesourcery.com>
|
||
Chao-ying Fu <fu@mips.com>
|
||
|
||
* doc/extend.texi: (micromips, nomicromips, nocompression):
|
||
Document new function attributes.
|
||
* doc/invoke.texi (minterlink-compressed, mmicromips,
|
||
m14k, m14ke, m14kec): Document new options.
|
||
(minterlink-mips16): Update documentation.
|
||
* doc/md.texi (ZC, ZD): Document new constraints.
|
||
* configure.ac (gcc_cv_as_micromips): Check if linker
|
||
supports the .set micromips directive.
|
||
* configure: Regenerate.
|
||
* config.in: Regenerate.
|
||
* config/mips/mips-tables.opt: Regenerate.
|
||
* config/mips/micromips.md: New file.
|
||
* constraints.md (ZC, AD): New constraints.
|
||
* config/mips/predicates.md (movep_src_register): New predicate.
|
||
(movep_src_operand): New predicate.
|
||
(non_volatile_mem_operand): New predicate.
|
||
* config/mips/mips.md (multimem): New type.
|
||
(length): Differentiate between 17-bit and 18-bit branch offsets.
|
||
(MOVEP1, MOVEP2): New mode iterator.
|
||
(mov_<load>l): Use ZC constraint.
|
||
(mov_<load>r): Likewise.
|
||
(mov_<store>l): Likewise.
|
||
(mov_<store>r): Likewise.
|
||
(*branch_equality<mode>_inverted): Add microMIPS support.
|
||
(*branch_equality<mode>): Likewise.
|
||
(*jump_absolute): Likewise.
|
||
(indirect_jump_<mode>): Likewise.
|
||
(tablejump_<mode>): Likewise.
|
||
(<optab>_internal): Likewise.
|
||
(sibcall_internal): Likewise.
|
||
(sibcall_value_internal): Likewise.
|
||
(prefetch): Use constraint ZD.
|
||
* config/mips/mips.opt (minterlink-compressed): New option.
|
||
(minterlink-mips16): Now an alias for minterlink-compressed.
|
||
(mmicromips): New option.
|
||
* config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
|
||
(compare_and_swap_12): Likewise.
|
||
(sync_add<mode>): Likewise.
|
||
(sync_<optab>_12): Likewise.
|
||
(sync_old_<optab>_12): Likewise.
|
||
(sync_new_<optab>_12): Likewise.
|
||
(sync_nand_12): Likewise.
|
||
(sync_old_nand_12): Likewise.
|
||
(sync_new_nand_12): Likewise.
|
||
(sync_sub<mode>): Likewise.
|
||
(sync_old_add<mode>): Likewise.
|
||
(sync_old_sub<mode>): Likewise.
|
||
(sync_new_add<mode>): Likewise.
|
||
(sync_new_sub<mode>): Likewise.
|
||
(sync_<optab><mode>): Likewise.
|
||
(sync_old_<optab><mode>): Likewise.
|
||
(sync_new_<optab><mode>): Likewise.
|
||
(sync_nand<mode>): Likewise.
|
||
(sync_old_nand<mode>): Likewise.
|
||
(sync_new_nand<mode>): Likewise.
|
||
(sync_lock_test_and_set<mode>): Likewise.
|
||
(test_and_set_12): Likewise.
|
||
(atomic_compare_and_swap<mode>): Likewise.
|
||
(atomic_exchange<mode>_llsc): Likewise.
|
||
(atomic_fetch_add<mode>_llsc): Likewise.
|
||
* config/mips/mips-cpus.def (m14kc, m14k): New processors.
|
||
* config/mips/mips-protos.h (umips_output_save_restore): New prototype.
|
||
(umips_save_restore_pattern_p): Likewise.
|
||
(umips_load_store_pair_p): Likewise.
|
||
(umips_output_load_store_pair): Likewise.
|
||
(umips_movep_target_p): Likewise.
|
||
(umips_12bit_offset_address_p): Likewise.
|
||
* config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
|
||
(mips_base_mips16): Rename this...
|
||
(mips_base_compression_flags): ...to this. Update all uses.
|
||
(mips_attribute_table): Add micromips, nomicromips and nocompression.
|
||
(mips_mips16_decl_p): Delete.
|
||
(mips_nomips16_decl_p): Delete.
|
||
(mips_get_compress_on_flags): New function.
|
||
(mips_get_compress_off_flags): New function.
|
||
(mips_get_compress_mode): New function.
|
||
(mips_get_compress_on_name): New function.
|
||
(mips_get_compress_off_name): New function.
|
||
(mips_insert_attributes): Support multiple compression types.
|
||
(mips_merge_decl_attributes): Likewise.
|
||
(umips_12bit_offset_address_p): New function.
|
||
(mips_start_function_definition): Emit .set micromips directive.
|
||
(mips_call_may_need_jalx_p): New function.
|
||
(mips_function_ok_for_sibcall): Add microMIPS support.
|
||
(mips_print_operand_punctuation): Support short delay slots and
|
||
compact jumps.
|
||
(umips_swm_mask, umips_swm_encoding): New.
|
||
(umips_build_save_restore): New function.
|
||
(mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
|
||
(was_mips16_p): Remove.
|
||
(old_compression_mode): New.
|
||
(mips_set_compression_mode): New function.
|
||
(mips_set_current_function): Add microMIPS support.
|
||
(mips_option_override): Likewise.
|
||
(umips_save_restore_pattern_p): New function.
|
||
(umips_output_save_restore): New function.
|
||
(umips_load_store_pair_p_1): New function.
|
||
(umips_load_store_pair_p): New function.
|
||
(umips_output_load_store_pair_1): New function.
|
||
(umips_output_load_store_pair): New function.
|
||
(umips_movep_target_p) New function.
|
||
(mips_prepare_pch_save): Add microMIPS support.
|
||
* config/mips/mips.h (TARGET_COMPRESSION): New.
|
||
(TARGET_CPU_CPP_BUILTINS): Update macro
|
||
to use new compression flags and to support microMIPS.
|
||
(MIPS_ISA_LEVEL_SPEC): Add m14k processors.
|
||
(MIPS_ARCH_FLOAT_SPEC): Likewise.
|
||
(ISA_HAS_LWXS): Include TARGET_MICROMIPS.
|
||
(ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
|
||
(ASM_SPEC): Support mmicromips and mno-micromips.
|
||
(M16STORE_REG_P): New macro.
|
||
(MIPS_CALL): Support TARGET_MICROMIPS.
|
||
(MICROMIPS_J): New macro.
|
||
(mips_base_mips16): Rename this...
|
||
(mips_base_compression_flags): ...to this.
|
||
(UMIPS_12BIT_OFFSET_P): New macro.
|
||
* config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
|
||
(MULTILIB_DIRNAMES): Likewise.
|
||
|
||
2013-02-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/52555
|
||
* target-globals.c (save_target_globals): For init_reg_sets and
|
||
target_reinit remporarily set this_fn_optabs to this_target_optabs.
|
||
|
||
2013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def: Add copyright header.
|
||
* config/aarch64/t-aarch64
|
||
(aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
|
||
|
||
2013-02-22 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR inline-asm/56148
|
||
* lra-constraints.c (process_alt_operands): Reload operand
|
||
conflicting with earlier clobber only if no more other conflicting
|
||
operands.
|
||
|
||
2013-02-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR sanitizer/56393
|
||
* config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
|
||
if not linking a shared library.
|
||
|
||
2013-02-22 Seth LaForge <sethml@google.com>
|
||
|
||
* config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
|
||
|
||
2013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.md (split for extendsidi): Update condition.
|
||
(zero_extend<mode>di2,extend<mode>di2): Add an alternative.
|
||
* config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
|
||
(qhs_zextenddi_cstr): Likewise.
|
||
|
||
2013-02-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/56420
|
||
* expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
|
||
avoid signed wrapping.
|
||
(expand_mult): Handle properly multiplication by
|
||
((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
|
||
((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
|
||
in the compiler if coeff is HOST_WIDE_INT_MIN.
|
||
(expand_divmod): Don't make ext_op1 static, change it's type to
|
||
uhwi. Avoid undefined behavior in -INTVAL (op1).
|
||
|
||
PR rtl-optimization/50339
|
||
* lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
|
||
field.
|
||
* lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
|
||
(compute_costs): Call compute_splitting_shift also for ASHIFTRT
|
||
into splitting_ashiftrt field.
|
||
(find_decomposable_shift_zext, resolve_shift_zext): Handle also
|
||
ASHIFTRT.
|
||
(dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
|
||
choices.
|
||
|
||
2013-02-20 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
PR middle-end/56108
|
||
* trans-mem.c (execute_tm_mark): Do not expand transactions that
|
||
are sure to go irrevocable.
|
||
|
||
2013-02-21 Hans-Peter Nilsson <hp@axis.com>
|
||
|
||
* doc/rtl.texi (vec_concat, vec_duplicate): Mention that
|
||
scalars are valid operands.
|
||
|
||
2013-02-21 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR tree-optimization/56310
|
||
* ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
|
||
only matching indices and non-negative final offsets.
|
||
(intersect_aggregates_with_edge): Pass src_idx to
|
||
agg_replacements_to_vector. Pass src_idx insstead of index to
|
||
intersect_with_agg_replacements.
|
||
|
||
2013-02-21 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
|
||
instead of hard-wired defaults.
|
||
|
||
2013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
|
||
|
||
* doc/invoke.texi (MIPS Options): Update documentation of the
|
||
floating-point multiply-accumulate instruction restrictions.
|
||
|
||
2013-02-21 Kostya Serebryany <kcc@google.com>
|
||
|
||
* config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
|
||
asan_shadow_offset on x86_64 linux.
|
||
|
||
2013-02-21 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56415
|
||
Revert
|
||
2013-02-11 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56273
|
||
* tree-vrp.c (simplify_cond_using_ranges): Disable for the
|
||
first VRP run.
|
||
|
||
2013-02-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR bootstrap/56258
|
||
* doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
|
||
instead of @itemx.
|
||
|
||
PR inline-asm/56405
|
||
* expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
|
||
use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
|
||
|
||
2013-02-20 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR tree-optimization/56265
|
||
* ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
|
||
when target is referenced for first time.
|
||
|
||
2013-02-20 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
|
||
* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
|
||
* tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
|
||
* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
|
||
not return anything.
|
||
(rename_ssa_copies): Do not remove unused locals.
|
||
* tree-ssa-ccp.c (do_ssa_ccp): Likewise.
|
||
* tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
|
||
* passes.c (execute_function_todo): Do not schedule unused locals
|
||
removal if cleanup_tree_cfg did something.
|
||
* tree-ssa-live.c (remove_unused_locals): Dump statistics
|
||
about the number of removed locals.
|
||
|
||
2013-02-20 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56398
|
||
* tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
|
||
|
||
2013-02-20 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR tree-optimization/55334
|
||
* ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
|
||
restricted pointers to arrays.
|
||
|
||
2013-02-20 Richard Biener <rguenther@suse.de>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/56396
|
||
* tree-ssa-ccp.c (n_const_val): New static variable.
|
||
(get_value): Return NULL for SSA names we don't have a lattice
|
||
entry for.
|
||
(ccp_initialize): Initialize n_const_val.
|
||
* tree-ssa-copy.c (n_copy_of): New static variable.
|
||
(init_copy_prop): Initialize n_copy_of.
|
||
(get_value): Return NULL_TREE for SSA names we don't have a
|
||
lattice entry for.
|
||
|
||
2013-02-20 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* ipa-cp.c (initialize_node_lattices): Fix dumping condition.
|
||
|
||
2013-02-20 Richard Biener <rguenther@suse.de>
|
||
|
||
* genpreds.c (write_lookup_constraint): Do not compare first
|
||
letter of the constraint again.
|
||
|
||
2013-02-20 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
|
||
and ceil_log2.
|
||
(get_use_iv_cost): Terminate hashtable walk when coming across
|
||
an empty entry.
|
||
|
||
2013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
|
||
|
||
* config/i386/i386.c (initial_ix86_tune_features): Turn on fp
|
||
reassociation for avx2 targets.
|
||
|
||
2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
|
||
|
||
* config/microblaze/microblaze.c: microblaze_has_clz = 0
|
||
Add version check for v8.10.a to enable microblaze_has_clz
|
||
* config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
|
||
version and TARGET_PATTERN_COMPARE check
|
||
* config/microblaze/microblaze.md: New clzsi2 instruction
|
||
|
||
2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
|
||
|
||
* config/microblaze/microblaze.md (call_value_intern): Check symbol is
|
||
function before branching.
|
||
|
||
2012-02-19 Andrey Belevantsev <abel@ispras.ru>
|
||
|
||
* sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
|
||
DUMP_INSN_RTX_UID.
|
||
(dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
|
||
|
||
2012-02-19 Andrey Belevantsev <abel@ispras.ru>
|
||
|
||
PR middle-end/55889
|
||
* sel-sched.c: Include ira.h.
|
||
(implicit_clobber_conflict_p): New function.
|
||
(moveup_expr): Use it.
|
||
* Makefile.in (sel-sched.o): Depend on ira.h.
|
||
|
||
2013-02-19 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56384
|
||
* tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
|
||
(vn_hash_type): Split out from ...
|
||
(vn_hash_constant_with_type): ... here.
|
||
* tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
|
||
(vn_phi_eq): Compare types from vn_phi_s structure.
|
||
(vn_phi_lookup): Populate vn_phi_s type.
|
||
(vn_phi_insert): Likewise.
|
||
|
||
2013-02-19 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/56350
|
||
* tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
|
||
if haven't found reduction or nested cycle operand, rather than
|
||
asserting we must find it.
|
||
|
||
PR tree-optimization/56381
|
||
* tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
|
||
to fold_build3.
|
||
|
||
2013-02-18 Aldy Hernandez <aldyh@redhat.com>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/52555
|
||
* genopinit.c (raw_optab_handler): Use this_fn_optabs.
|
||
(swap_optab_enable): Same.
|
||
(init_all_optabs): Use argument instead of global.
|
||
* tree.h (struct tree_optimization_option): New field target_optabs.
|
||
* expr.h (init_all_optabs): Add argument to prototype.
|
||
(TREE_OPTIMIZATION_OPTABS): New.
|
||
(save_optabs_if_changed): Protoize.
|
||
* optabs.h: Declare this_fn_optabs.
|
||
* optabs.c (save_optabs_if_changed): New.
|
||
Declare this_fn_optabs.
|
||
(init_optabs): Add argument to init_all_optabs() call.
|
||
* function.c (invoke_set_current_function_hook): Handle per
|
||
function optabs.
|
||
* function.h (struct function): New field optabs.
|
||
* config/mips/mips.c (mips_set_mips16_mode): Handle when
|
||
optimization_current_node has changed.
|
||
* target-globals.h (save_target_globals_default_opts): Protoize.
|
||
* target-globals.c (save_target_globals_default_opts): New.
|
||
|
||
2013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR target/56347
|
||
* config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
|
||
registers %fr12 and %fr12R as call used.
|
||
|
||
PR target/56214
|
||
* config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
|
||
and HImode, require all displacements to be an integer multiple of
|
||
their mode size.
|
||
* config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
|
||
only allow QImode and HImode when reload is in progress and strict is
|
||
true. Likewise for symbolic addresses. Use base14_operand to check
|
||
displacements in REG+BASE addresses.
|
||
|
||
2013-02-18 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56366
|
||
* tree-vect-loop.c (get_initial_def_for_induction): Properly
|
||
handle sign-conversion of outer-loop initial induction value.
|
||
|
||
2013-02-18 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/56349
|
||
* cfghooks.c (merge_blocks): If we merge a latch into another
|
||
block adjust references to it.
|
||
* cfgloop.c (flow_loops_find): Reset latch before recomputing it.
|
||
(verify_loop_structure): Verify that a recorded latch is in fact
|
||
a latch.
|
||
|
||
2013-02-18 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56321
|
||
* tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
|
||
order SSA name release and virtual operand unlinking.
|
||
|
||
2013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
|
||
|
||
* config/microblaze/microblaze.md (save_stack_block): Define.
|
||
(restore_stack_block): Likewise.
|
||
|
||
2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
|
||
|
||
* config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
|
||
* config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
|
||
* config/microblaze/microblaze.c (microblaze_option_override):
|
||
Bail out early for PIC modes when target does not support PIC.
|
||
|
||
2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
|
||
|
||
* config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
|
||
Replace with a microblaze version.
|
||
(microblaze_trampoline_init): Adapt for microblaze.
|
||
* config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
|
||
microblaze.
|
||
|
||
2013-02-16 Jakub Jelinek <jakub@redhat.com>
|
||
Dodji Seketeli <dodji@redhat.com>
|
||
|
||
PR asan/56330
|
||
* asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
|
||
(instrument_mem_region_access): Do not forget to always put
|
||
instrumentation of the of 'base' and 'base + len' in a "if (len !=
|
||
0) statement, even for cases where either 'base' or 'base + len'
|
||
are not instrumented -- because they have been previously
|
||
instrumented. Simplify the logic by putting all the statements
|
||
instrument 'base + len' inside a sequence, and then insert that
|
||
sequence right before the current insertion point. Then, to
|
||
instrument 'base + len', just get an iterator on that statement.
|
||
And do not forget to update the pointer to iterator the function
|
||
received as argument.
|
||
|
||
2013-02-15 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/56348
|
||
* lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
|
||
|
||
2013-02-15 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* graph.c (start_graph_dump): Print dumpfile base as digraph label.
|
||
(clean_graph_dump_file): Pass base to start_graph_dump.
|
||
|
||
2013-02-14 Richard Henderson <rth@redhat.com>
|
||
|
||
PR target/55941
|
||
* lower-subreg.c (simple_move): Check dest mode instead of src mode.
|
||
|
||
2013-02-14 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* collect2-aix.h: Define F_LOADONLY.
|
||
|
||
2013-02-14 Richard Biener <rguenther@suse.de>
|
||
|
||
PR lto/50494
|
||
* varasm.c (output_constant_def_1): Get the decl representing
|
||
the constant as argument.
|
||
(output_constant_def): Wrap output_constant_def_1.
|
||
(make_decl_rtl): Use output_constant_def_1 with the decl
|
||
representing the constant.
|
||
(build_constant_desc): Optionally re-use a decl already
|
||
representing the constant.
|
||
(tree_output_constant_def): Adjust.
|
||
|
||
2013-02-14 Dodji Seketeli <dodji@redhat.com>
|
||
|
||
Fix an asan crash
|
||
* asan.c (instrument_builtin_call): Really put the length of the
|
||
second source argument into src1_len.
|
||
|
||
2013-02-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* asan.c (create_cond_insert_point): Add create_then_fallthru_edge
|
||
argument. If it is false, don't create edge from then_bb to
|
||
fallthru_bb.
|
||
(insert_if_then_before_iter): Pass true to it.
|
||
(build_check_stmt): Pass false to it.
|
||
(transform_statements): Flush hash table only on extended basic
|
||
block boundaries, rather than at the beginning of every bb.
|
||
Don't flush hash table on nonfreeing_call_p calls.
|
||
* tree-flow.h (nonfreeing_call_p): New prototype.
|
||
* tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
|
||
|
||
2013-02-13 David S. Miller <davem@davemloft.net>
|
||
|
||
* expmed.c (expand_shift_1): Only strip scalar integer subregs.
|
||
|
||
2013-02-13 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/56184
|
||
* ira.c (max_regno_before_ira): Move from ...
|
||
(ira): ... here.
|
||
(fix_reg_equiv_init): Use max_regno_before_ira instead of
|
||
vec_safe_length.
|
||
|
||
2013-02-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
|
||
|
||
2013-02-13 Richard Biener <rguenther@suse.de>
|
||
|
||
PR lto/56295
|
||
* gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
|
||
globals in MEM_REFs.
|
||
|
||
2013-02-13 Richard Biener <rguenther@suse.de>
|
||
|
||
* loop-init.c (loop_optimizer_init): Clear loop state when
|
||
re-initializing preserved loops.
|
||
* loop-unswitch.c (unswitch_single_loop): Return whether
|
||
we unswitched the loop. Do not verify loop state here.
|
||
(unswitch_loops): When we unswitched a loop discover new loops.
|
||
|
||
2013-02-13 Kostya Serebryany <kcc@google.com>
|
||
|
||
* config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
|
||
on x86_64 linux.
|
||
* sanitizer.def: Rename __asan_init to __asan_init_v1.
|
||
|
||
2013-02-12 Dodji Seketeli <dodji@redhat.com>
|
||
|
||
Avoid instrumenting duplicated memory access in the same basic block
|
||
* Makefile.in (asan.o): Add new dependency on hash-table.h
|
||
* asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
|
||
(asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
|
||
(has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
|
||
(free_mem_ref_resources, has_mem_ref_been_instrumented)
|
||
(has_stmt_been_instrumented_p, update_mem_ref_hash_table)
|
||
(get_mem_ref_of_assignment): New functions.
|
||
(get_mem_refs_of_builtin_call): Extract from
|
||
instrument_builtin_call and tweak a little bit to make it fit with
|
||
the new signature.
|
||
(instrument_builtin_call): Use the new
|
||
get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
|
||
of is_gimple_builtin_call.
|
||
(instrument_derefs, instrument_mem_region_access): Insert the
|
||
instrumented memory reference into the hash table.
|
||
(maybe_instrument_assignment): Renamed instrument_assignment into
|
||
this, and change it to advance the iterator when instrumentation
|
||
actually happened and return true in that case. This makes it
|
||
homogeneous with maybe_instrument_assignment, and thus give a
|
||
chance to callers to be more 'regular'.
|
||
(transform_statements): Clear the memory reference hash table
|
||
whenever we enter a new BB, when we cross a function call, or when
|
||
we are done transforming statements. Use
|
||
maybe_instrument_assignment instead of instrumentation. No more
|
||
need to special case maybe_instrument_assignment and advance the
|
||
iterator after calling it; it's now handled just like
|
||
maybe_instrument_call. Update comment.
|
||
|
||
2013-02-13 Richard Biener <rguenther@suse.de>
|
||
|
||
* config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
|
||
Fix loop discovery code.
|
||
|
||
2013-02-12 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR inline-asm/56148
|
||
* lra-constraints.c (process_alt_operands): Match early clobber
|
||
operand with itself. Check conflicts with earlyclobber only if
|
||
the operand is not reloaded. Prefer to reload conflicting operand
|
||
if earlyclobber and matching operands are the same.
|
||
|
||
2013-02-12 Richard Biener <rguenther@suse.de>
|
||
|
||
PR lto/56297
|
||
* lto-streamer-out.c (write_symbol): Do not output symbols
|
||
for hard register variables.
|
||
|
||
2013-02-12 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR target/54222
|
||
* config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
|
||
(umulsidi3_insn, mulsidi3_insn): New insns.
|
||
|
||
2013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
|
||
|
||
* config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
|
||
(struct tune_params): Add vec_costs field.
|
||
* config/arm/arm.c (arm_builtin_vectorization_cost)
|
||
(arm_add_stmt_cost): New functions.
|
||
(TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
|
||
(TARGET_VECTORIZE_ADD_STMT_COST): Define.
|
||
(arm_default_vec_cost): New struct of type cpu_vec_costs.
|
||
(arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
|
||
(arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
|
||
(arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
|
||
(arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
|
||
|
||
2013-02-12 Richard Biener <rguenther@suse.de>
|
||
|
||
PR lto/56295
|
||
* gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
|
||
decls again if possible.
|
||
|
||
2013-02-12 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/56288
|
||
* tree-ssa.c (verify_ssa_name): Fix check, move
|
||
SSA_NAME_IN_FREE_LIST check up.
|
||
|
||
2013-02-12 Jakub Jelinek <jakub@redhat.com>
|
||
Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
PR rtl-optimization/56151
|
||
* optabs.c (add_equal_note): Don't return 0 if target is a MEM,
|
||
equal to op0 or op1, and last_insn pattern is CODE operation
|
||
with MEM dest and one of the operands matches that MEM.
|
||
|
||
2013-02-11 Sriraman Tallam <tmsriramgoogle.com>
|
||
|
||
* doc/extend.texi: Document Function Multiversioning and "default"
|
||
parameter string to target attribute.
|
||
* config/i386/i386.c (get_builtin_code_for_version): Return 0 if
|
||
target attribute parameter is "default".
|
||
(ix86_compare_version_priority): Remove checks for target attribute.
|
||
(ix86_mangle_function_version_assembler_name): Change error to sorry.
|
||
Remove check for target attribute equal to NULL. Add assert.
|
||
(ix86_generate_version_dispatcher_body): Change error to sorry.
|
||
|
||
2013-02-11 Iain Sandoe <iain@codesourcery.com>
|
||
Jack Howarth <howarth@bromo.med.uc.edu>
|
||
Patrick Marlier <patrick.marlier@gmail.com>
|
||
|
||
PR libitm/55693
|
||
* config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
|
||
define ENDFILE_SPEC as TM_DESTRUCTOR.
|
||
* config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
|
||
|
||
2013-02-11 Alexander Potapenko <glider@google.com>
|
||
Jack Howarth <howarth@bromo.med.uc.edu>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR sanitizer/55617
|
||
* config/darwin.c (cdtor_record): Rename ctor_record.
|
||
(sort_cdtor_records): Rename sort_ctor_records.
|
||
(finalize_dtors): New routine to sort destructors by
|
||
priority before use in assemble_integer.
|
||
(machopic_asm_out_destructor): Use finalize_dtors if needed.
|
||
|
||
2013-02-11 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR rtl-optimization/56275
|
||
* simplify-rtx.c (avoid_constant_pool_reference): Check that
|
||
offset is non-negative and less than cmode size before
|
||
calling simplify_subreg.
|
||
|
||
2013-02-11 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56264
|
||
* cfgloop.h (fix_loop_structure): Adjust prototype.
|
||
* loop-init.c (fix_loop_structure): Return the number of
|
||
newly discovered loops.
|
||
* tree-cfgcleanup.c (repair_loop_structures): When new loops
|
||
are discovered, do a full loop-closed SSA rewrite.
|
||
|
||
2013-02-11 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56273
|
||
* tree-vrp.c (simplify_cond_using_ranges): Disable for the
|
||
first VRP run.
|
||
(check_array_ref): Fix missing newline in dumps.
|
||
(search_for_addr_array): Likewise.
|
||
|
||
2013-02-09 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
* config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
|
||
|
||
2013-02-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/56256
|
||
* config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
|
||
|
||
2013-02-08 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/56246
|
||
* lra-constraints.c (simplify_operand_subreg): Try to reuse
|
||
reload pseudo.
|
||
* lra.c (lra): Clear lra_optional_reload_pseudos only when all
|
||
constraints are satisfied.
|
||
|
||
2013-02-08 Jeff Law <law@redhat.com>
|
||
|
||
PR debug/53948
|
||
* emit-rtl.c (reg_is_parm_p): New function.
|
||
* regs.h (reg_is_parm_p): New prototype.
|
||
* ira-conflicts.c (ira_build_conflicts): Allow parameters in
|
||
callee-clobbered registers.
|
||
|
||
2013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
PR target/56043
|
||
* config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
|
||
If there is no implicit builtin declaration, just return NULL.
|
||
|
||
2013-02-08 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/sse.md (FMAMODEM): New mode iterator.
|
||
(fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
|
||
mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
|
||
|
||
2013-02-08 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
|
||
when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
|
||
* config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
|
||
|
||
2013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
|
||
|
||
* config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
|
||
(microblaze*-*-elf): Likewise.
|
||
* config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
|
||
LINK_SPEC.
|
||
* config/microblaze/microblaze-c.c: Add builtin defines for
|
||
_LITTLE_ENDIAN and _BIG_ENDIAN.
|
||
* config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
|
||
add to TARGET_DEFAULT flags.
|
||
Expand ASM_SPEC and LINK_SPEC.
|
||
Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
|
||
* config/microblaze/microblaze.md: Update extendsidi2 and
|
||
movdi_internal instructions to use low-order / high-order reg
|
||
print_operands.
|
||
* config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
|
||
options and inversemask / mask of LITTLE_ENDIAN.
|
||
* config/microblaze/t-microblaze: Expand multilib options to
|
||
include mlittle-endian (le) and update exceptions patterns.
|
||
|
||
2013-02-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/56195
|
||
* lra-constraints.c (get_reload_reg): Don't reuse regs
|
||
if they have smaller mode than requested, if they have
|
||
wider mode than requested, try to return a SUBREG.
|
||
|
||
PR tree-optimization/56250
|
||
* fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
|
||
if type is unsigned and code isn't MULT_EXPR.
|
||
|
||
2013-02-08 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR tree-optimization/56064
|
||
* fixed-value.c (fixed_from_double_int): Sign/zero extend payload
|
||
bits according to mode.
|
||
* fixed-value.h (fixed_from_double_int)
|
||
(const_fixed_from_double_int): Adjust comments.
|
||
|
||
2013-02-08 Richard Biener <rguenther@suse.de>
|
||
|
||
PR lto/56231
|
||
* lto-streamer.h (struct data_in): Remove current_file, current_line
|
||
and current_col members.
|
||
* lto-streamer-out.c (lto_output_location): Stream changed bits
|
||
en-block for efficiency.
|
||
* lto-streamer-in.c (clear_line_info): Remove.
|
||
(lto_input_location): Cache current file, line and column
|
||
globally via local statics. Read changed bits en-block.
|
||
(input_function): Do not call clear_line_info.
|
||
(lto_read_body): Likewise.
|
||
(lto_input_toplevel_asms): Likewise.
|
||
|
||
2013-02-08 Michael Matz <matz@suse.de>
|
||
|
||
PR tree-optimization/52448
|
||
* tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
|
||
(nt_call_phase): New static.
|
||
(add_or_mark_expr): Only mark accesses with newer phase than any
|
||
call seen.
|
||
(nonfreeing_call_p): New.
|
||
(nt_init_block): Update nt_call_phase, mark blocks as visited.
|
||
(nt_fini_block): Keep blocks marked as visited.
|
||
(get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
|
||
|
||
2013-02-08 Richard Biener <rguenther@suse.de>
|
||
|
||
* ira.c (ira): Free broken dominator information.
|
||
|
||
2013-02-08 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
|
||
|
||
2013-02-08 Marek Polacek <polacek@redhat.com>
|
||
|
||
* cfgloop.c (verify_loop_structure): Add more checking of headers.
|
||
|
||
2013-02-08 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/56181
|
||
* cfgloop.h (flow_loops_find): Adjust.
|
||
(bb_loop_header_p): Declare.
|
||
* cfgloop.c (bb_loop_header_p): New function split out from ...
|
||
(flow_loops_find): ... here. Adjust function signature,
|
||
support incremental loop structure update.
|
||
(verify_loop_structure): Cleanup. Verify a loop is a loop.
|
||
* cfgloopmanip.c (fix_loop_structure): Move ...
|
||
* loop-init.c (fix_loop_structure): ... here.
|
||
(apply_loop_flags): Split out from ...
|
||
(loop_optimizer_init): ... here.
|
||
(fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
|
||
in incremental mode, only remove dead loops here.
|
||
|
||
2013-02-08 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR target/54222
|
||
* config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
|
||
* config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
|
||
(round<mode>3, round<mode>3_const): New expanders for fixed-mode.
|
||
(*round<mode>3.libgcc): New insns for fixed-modes.
|
||
* config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
|
||
(ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
|
||
(ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
|
||
* config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
|
||
implementations. Define to __builtin_avr_absFX,
|
||
__builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
|
||
(roundFX, countlsFX): Define to __builtin_avr_roundFX,
|
||
__builtin_avr_countlsFX, respectively.
|
||
* config/avr/avr-c.c (target.h): Include it.
|
||
(enum avr_builtin_id): New enum.
|
||
(avr_resolve_overloaded_builtin): New static function.
|
||
(avr_register_target_pragmas): Use it to set
|
||
targetm.resolve_overloaded_builtin.
|
||
* config/avr/avr.c (avr_init_builtins): Supply myriads of local
|
||
tree nodes used by DEF_BUILTIN.
|
||
(avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
|
||
(avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
|
||
<AVR_BUILTIN_xxBITS>: Same.
|
||
|
||
2013-02-08 Richard Biener <rguenther@suse.de>
|
||
|
||
* cfgloop.c (verify_loop_structure): Properly handle
|
||
a loop exiting to another loop header.
|
||
* ira-int.h (ira_loops): Remove.
|
||
* ira.c (ira_loops): Remove.
|
||
(ira): Use loop_optimizer_init and loop_optimizer_finalize.
|
||
(do_reload): Use loop_optimizer_finalize.
|
||
* ira-build.c (create_loop_tree_nodes): Use get_loops and
|
||
number_of_loops to access the loop tree.
|
||
(more_one_region_p): Likewise.
|
||
(finish_loop_tree_nodes): Likewise.
|
||
(rebuild_regno_allocno_maps): Likewise.
|
||
(mark_loops_for_removal): Likewise.
|
||
(mark_all_loops_for_removal): Likewise.
|
||
(remove_unnecessary_regions): Likewise.
|
||
(ira_build): Likewise.
|
||
* ira-emit.c (setup_entered_from_non_parent_p): Likewise.
|
||
|
||
2013-02-08 Richard Biener <rguenther@suse.de>
|
||
|
||
* Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
|
||
* ipa-pure-const.c (analyze_function): Avoid calling
|
||
mark_irreducible_loops twice.
|
||
* tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
|
||
|
||
2013-02-07 David S. Miller <davem@davemloft.net>
|
||
|
||
* dwarf2out.c (based_loc_descr): Perform leaf register remapping
|
||
on 'reg'.
|
||
* var-tracking.c (vt_add_function_parameter): Test the presence of
|
||
HAVE_window_save properly and do not remap argument registers when
|
||
we have a leaf function.
|
||
|
||
2013-02-07 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR bootstrap/56227
|
||
* ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
|
||
instead of "ll".
|
||
* config/i386/i386.c (ix86_print_operand): Ditto.
|
||
|
||
2013-02-07 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
* lra-constraints.c (process_alt_operands): Fix recently added comment.
|
||
|
||
2013-02-07 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/56225
|
||
* lra-constraints.c (process_alt_operands): Check that reload hard
|
||
reg can hold value for strict_low_part.
|
||
|
||
2013-02-07 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/56154
|
||
* dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
|
||
dwarf2out_end_function.
|
||
(in_first_function_p, maybe_at_text_label_p,
|
||
first_loclabel_num_not_at_text_label): New variables.
|
||
(dwarf2out_var_location): In the first function find out
|
||
lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
|
||
(find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
|
||
functions.
|
||
|
||
2013-02-07 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR rtl-optimization/56178
|
||
* cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
|
||
SUBREG of a register. Tidy up related block of code.
|
||
* fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
|
||
note if the source is a register or a SUBREG of a register.
|
||
|
||
2013-02-07 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/56228
|
||
* config/rs6000/rs6000.md (ptrm): New mode attr.
|
||
(call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
|
||
call_value_indirect_aix<pttrsize>,
|
||
call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
|
||
m in constraints.
|
||
|
||
2013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
|
||
|
||
* collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
|
||
if -bnortl. Convert to strcmp and strncmp.
|
||
|
||
2013-02-07 Alan Modra <amodra@gmail.com>
|
||
|
||
PR target/54009
|
||
* config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
|
||
addresses won't wrap when offsetting.
|
||
(rs6000_secondary_reload): Provide secondary reloads needed for
|
||
wrapping LO_SUM addresses.
|
||
|
||
2013-02-06 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
|
||
MACH, just __MACH__.
|
||
|
||
2013-02-06 Richard Biener <rguenther@suse.de>
|
||
|
||
* tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
|
||
instead of calling fix_loop_structure.
|
||
|
||
2013-02-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/56217
|
||
* omp-low.c (use_pointer_for_field): Return false if
|
||
lower_send_shared_vars doesn't generate any copy-out code.
|
||
|
||
2013-02-06 Tom de Vries <tom@codesourcery.com>
|
||
|
||
PR rtl-optimization/56131
|
||
* cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
|
||
to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
|
||
of the label is NULL. Add comment.
|
||
|
||
2013-02-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* tree.h (struct tree_decl_with_vis): Remove thread_local field.
|
||
|
||
PR sanitizer/55374
|
||
* config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
|
||
(STATIC_LIBTSAN_LIBS): Likewise.
|
||
* gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
|
||
(LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
|
||
is defined, don't add anything else beyond that.
|
||
(SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
|
||
(LINK_COMMAND_SPEC): Use them.
|
||
|
||
PR tree-optimization/56205
|
||
* tree-stdarg.c (check_all_va_list_escapes): Return true if
|
||
there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
|
||
and some va_list_escape_vars SSA_NAME appears in some PHI argument.
|
||
|
||
2013-02-05 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/53342
|
||
PR tree-optimization/53185
|
||
* tree-vectorizer.h (vect_check_strided_load): Remove.
|
||
* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
|
||
not disallow peeling for vectorized strided loads.
|
||
(vect_check_strided_load): Make static and simplify.
|
||
(vect_analyze_data_refs): Adjust.
|
||
* tree-vect-stmts.c (vectorizable_load): Handle peeled loops
|
||
correctly when vectorizing strided loads.
|
||
|
||
2013-02-05 Richard Biener <rguenther@suse.de>
|
||
|
||
* doc/install.texi: Refer to ISL, not PPL.
|
||
|
||
2013-02-05 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR tree-optimization/55789
|
||
* params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
|
||
|
||
2013-02-05 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR tree-optimization/55789
|
||
* cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
|
||
the dead call anyway.
|
||
|
||
2013-02-05 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR sanitizer/55374
|
||
* config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
|
||
|
||
2013-02-04 Alexander Potapenko <glider@google.com>
|
||
Jack Howarth <howarth@bromo.med.uc.edu>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR sanitizer/55617
|
||
* config/darwin.c (sort_ctor_records): Stabilized qsort
|
||
on constructor priority by using original position.
|
||
(finalize_ctors): New routine to sort constructors by
|
||
priority before use in assemble_integer.
|
||
(machopic_asm_out_constructor): Use finalize_ctors if needed.
|
||
|
||
2013-02-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR libstdc++/54314
|
||
* config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
|
||
about visibility on artificial decls.
|
||
* config/sol2.c (solaris_assemble_visibility): Likewise.
|
||
|
||
2013-02-04 Kai Tietz <ktietz@redhat.com>
|
||
|
||
PR target/56186
|
||
* config/i386/i386.c (function_value_ms_64): Add additional valtype
|
||
argument and improve checking of return-argument types for 16-byte
|
||
modes.
|
||
(ix86_function_value_1): Add additional valtype argument on call
|
||
of function_value_64.
|
||
(return_in_memory_ms_64): Sync 16-byte sized mode handling with
|
||
handling infunction_value_64 function.
|
||
|
||
2013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
|
||
|
||
* reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
|
||
|
||
2013-02-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56188
|
||
* tree-ssa-structalias.c (label_visit): Consider case with
|
||
initially non-empty points-to set.
|
||
(perform_var_substitution): Dump node mapping and clean up.
|
||
|
||
2013-02-04 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR lto/56168
|
||
* lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
|
||
node prevail as last resort.
|
||
(lto_symtab_merge_decls): Remove guard on LTRANS here.
|
||
(lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
|
||
|
||
2013-02-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56113
|
||
* tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
|
||
Merge into ...
|
||
(equiv_class_lookup_or_add): ... this.
|
||
(label_visit): Adjust and fix error in previous patch.
|
||
(perform_var_substitution): Adjust.
|
||
|
||
2013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
* config/sh/divtab.c: Fix formatting and comments throughout the file.
|
||
* config/sh/sh4-300.md: Likewise.
|
||
* config/sh/sh4a.md: Likewise.
|
||
* config/sh/constraints.md: Likewise.
|
||
* config/sh/sh.md: Likewise.
|
||
* config/sh/netbsd-elf.h: Likewise.
|
||
* config/sh/predicates.md: Likewise.
|
||
* config/sh/sh-protos.h: Likewise.
|
||
* config/sh/ushmedia.h: Likewise.
|
||
* config/sh/linux.h: Likewise.
|
||
* config/sh/sh.c: Likewise.
|
||
* config/sh/superh.h: Likewise.
|
||
* config/sh/elf.h: Likewise.
|
||
* config/sh/sh4.md: Likewise.
|
||
* config/sh/sh.h: Likewise.
|
||
|
||
2013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* config/pa/constraints.md: Adjust unused letters. Change "T"
|
||
constraint to match_test floating_point_store_memory_operand().
|
||
* config/pa/predicates.md (reg_plus_base_memory_operand): New.
|
||
(base14_operand): New.
|
||
(floating_point_store_memory_operand): New.
|
||
(integer_store_memory_operand): Revise to use base14_operand and
|
||
reg_plus_base_memory_operand.
|
||
(move_dest_operand): Allow symbolic_memory_operands.
|
||
(symbolic_memory_operand): Check for LO_SOM.
|
||
(symbolic_operand): Change default case to break.
|
||
* config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
|
||
CONST_DOUBLE values to be reloaded by putting them into memory when
|
||
the destination is a floating point register.
|
||
(movdf): Remove code to handle CONST_DOUBLE.
|
||
(movsf): Likewise.
|
||
(reload_indf_r1): New.
|
||
(reload_insf_r1): New.
|
||
Consistently use "Q" and "T" constraints with integer and floating
|
||
point move instructions, respectively.
|
||
(movdi): Remove FAIL.
|
||
Change predicate for source operand unamed DImode move from
|
||
general_operand to move_src_operand.
|
||
(umulsidi3): Change predicate for destination operand to
|
||
register_operand.
|
||
Likewise for similar unamed patterns.
|
||
* config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
|
||
* config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
|
||
(hppa_legitimize_address): Simplify mask calculation.
|
||
(pa_emit_move_sequence): Revised handling of secondary reloads from
|
||
REG+D addresses for floating point loads and stores. Directly handle
|
||
loading CONST0_RTX (mode) to a floating point register.
|
||
(pa_secondary_reload): Handle reloading DF and SFmode constant values
|
||
to floating point registers. Don't restrict secondary reloads to
|
||
floating point registers to integer modes. Revise some comments and
|
||
cleanup some code.
|
||
(TARGET_LEGITIMATE_ADDRESS_P): Define.
|
||
(pa_legitimate_address_p): New.
|
||
(pa_legitimize_reload_address): New.
|
||
* config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
|
||
(STRICT_REG_OK_FOR_BASE_P): New.
|
||
(GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
|
||
(LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
|
||
|
||
2013-02-03 David Edelsohn <dje.gcc@gmail.com>
|
||
Andrew Dixie <andrewd@gentrack.com>
|
||
|
||
* collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
|
||
flag set.
|
||
|
||
2013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* expmed.c (extract_bit_field_1): Pass the full width of the
|
||
structure to get_best_reg_extraction_insn.
|
||
|
||
2013-02-01 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
PR target/54601
|
||
* configure.ac (use_cxa_atexit): Add AIX.
|
||
* configure: Regenerate.
|
||
|
||
* config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
|
||
|
||
2013-02-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/54793
|
||
* final.c (need_profile_function): New variable.
|
||
(final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
|
||
If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
|
||
is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
|
||
notes, targetm.asm_out.function_prologue doesn't emit anything,
|
||
HAVE_prologue and profiler should be emitted before prologue,
|
||
set need_profile_function instead of emitting it.
|
||
(final_scan_insn): If need_profile_function, emit
|
||
profile_function on the first NOTE_INSN_BASIC_BLOCK or
|
||
NOTE_INSN_FUNCTION_BEG note.
|
||
|
||
2013-02-01 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/rs6000/rs6000.md (smulditi3): New.
|
||
(umulditi3): New.
|
||
|
||
* config/alpha/alpha.md (umulditi3): New.
|
||
|
||
2013-02-01 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
* config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
|
||
(ASM_OUTPUT_ALIGNED_LOCAL): New.
|
||
|
||
2013-02-01 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56113
|
||
* tree-ssa-structalias.c (label_visit): Reduce work for
|
||
single-predecessor nodes.
|
||
|
||
2013-02-01 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
|
||
range isn't testing for zero.
|
||
|
||
2013-01-31 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
PR middle-end/56113
|
||
* fwprop.c (fwprop_init): Set up loops without CFG modifications.
|
||
|
||
2013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
|
||
Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/v850/constraints.md (Q): Define as a memory constraint.
|
||
* config/v850/predicates.md (label_ref_operand): New predicate.
|
||
(e3v5_shift_operand): New predicate.
|
||
(ior_operator): New predicate.
|
||
* config/v850/t-v850: Add e3v5 multilib.
|
||
* config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
|
||
(v850_gen_movdi): Prototype.
|
||
* config/v850/v850.c: Add support for e3v5 architecture.
|
||
Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
|
||
TARGET_V850E_UP.
|
||
(construct_save_jarl): Add e3v5 long JARL support.
|
||
(v850_adjust_insn_length): New function. Adjust length of call
|
||
insns when using e3v5 instructions.
|
||
(v850_gen_movdi): New function: Generate instructions to move a
|
||
DImode value.
|
||
* config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
|
||
(CPP_SPEC): Define __v850e3v5__ as appropriate.
|
||
(TARGET_USE_FPU): Enable for e3v5.
|
||
(CONST_OK_FOR_W): New macro.
|
||
(ADJUST_INSN_LENGTH): Define.
|
||
* config/v850/v850.md (UNSPEC_LOOP): Define.
|
||
(attr cpu): Add v850e3v5.
|
||
Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
|
||
(movdi): New pattern.
|
||
(movdi_internal): New pattern.
|
||
(cbranchsf4): Conditionalize on TARGET_USE_FPU.
|
||
(cbranchdf4): Conditionalize on TARGET_USE_FPU.
|
||
(cstoresf4): Likewise.
|
||
(cstoredf4): Likewise.
|
||
(insv): New pattern.
|
||
(rotlso3_a): New pattern.
|
||
(rotlsi3_b): New pattern
|
||
(rotlsi3_v850e3v5): New pattern.
|
||
(doloop_begin): New pattern.
|
||
(fix_loop_counter): New pattern.
|
||
(doloop_end): New pattern.
|
||
(branch_normal): Add e3v5 long branch support.
|
||
(branch_invert): Likewise.
|
||
(branch_z_normal): Likewise.
|
||
(branch_z_invert): Likewise.
|
||
(branch_nz_normal): Likewise.
|
||
(branch_nz_invert): Likewise.
|
||
(call_internal_short): Add e3v5 register-indirect JARL support.
|
||
(call_internal_long): Likewise.
|
||
(call_value_internal_short): Likewise.
|
||
(call_value_internal_long): Likewise.
|
||
* config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
|
||
(mloop): New option.
|
||
* config.gcc: Add support for configuring v840e3v5 target.
|
||
* doc/invoke.texi: Document new v850 specific command line options.
|
||
|
||
2013-01-31 Paul Koning <ni1d@arrl.net>
|
||
|
||
PR debug/55059
|
||
PR debug/54508
|
||
* dwarf2out.c (prune_unused_types_mark): Mark all of parent's
|
||
children if parent is a class.
|
||
(prune_unused_types_prune): Don't add DW_AT_declaration.
|
||
|
||
2013-01-31 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56157
|
||
* tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
|
||
match up operand with SLP child.
|
||
|
||
2013-01-31 Jason Merrill <jason@redhat.com>
|
||
|
||
PR debug/54410
|
||
* dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
|
||
parameters the first time.
|
||
(gen_scheduled_generic_parms_dies): Check completeness here.
|
||
|
||
2013-01-31 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/53073
|
||
* common.opt (faggressive-loop-optimizations): New flag,
|
||
enabled by default.
|
||
* doc/invoke.texi (faggressive-loop-optimizations): Document.
|
||
* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
|
||
infer_loop_bounds_from_undefined by it.
|
||
|
||
2013-01-31 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56150
|
||
* tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
|
||
visit virtual operands.
|
||
(find_uses_to_rename_bb): Likewise.
|
||
|
||
2013-01-31 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56150
|
||
* tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
|
||
mixed store non-store stmts.
|
||
|
||
2013-01-30 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR sanitizer/55374
|
||
* gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
|
||
LIBASAN_EARLY_SPEC is defined.
|
||
(LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
|
||
(LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
|
||
before %o.
|
||
* config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
|
||
|
||
PR c++/55742
|
||
* config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
|
||
invalid args instead of ICEing on it.
|
||
(ix86_valid_target_attribute_tree): Return error_mark_node if
|
||
ix86_valid_target_attribute_inner_p failed.
|
||
(ix86_valid_target_attribute_p): Return false only if
|
||
ix86_valid_target_attribute_tree returned error_mark_node. Allow
|
||
target("default") attribute.
|
||
(sorted_attr_string): Change argument from const char * to tree,
|
||
merge in all target attribute arguments rather than just one.
|
||
Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
|
||
instead of free. Avoid using strcat.
|
||
(ix86_mangle_function_version_assembler_name): Mangle
|
||
target("default") as if no target attribute is present. Adjust
|
||
sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
|
||
instead of xmalloc and XDELETEVEC instead of free.
|
||
(ix86_function_versions): Don't return true if one of the decls
|
||
doesn't have target attribute. If they don't and one of the decls
|
||
is DECL_FUNCTION_VERSIONED, report an error. Adjust
|
||
sorted_attr_string caller. Use XDELETEVEC instead of free.
|
||
(ix86_supports_function_versions): Remove.
|
||
(make_name): Fix up formatting.
|
||
(make_dispatcher_decl): Remove resolver_name and its initialization.
|
||
Avoid leaking memory.
|
||
(is_function_default_version): Return true if there is
|
||
target("default") attribute rather than no target attribute at all.
|
||
(make_resolver_func): Avoid leaking memory.
|
||
(ix86_generate_version_dispatcher_body): Likewise.
|
||
(TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
|
||
* target.def (supports_function_versions): Remove.
|
||
* doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
|
||
* doc/tm.texi: Regenerated.
|
||
|
||
2013-01-30 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/56144
|
||
* lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
|
||
for values with side effects.
|
||
|
||
2013-01-30 Richard Biener <rguenther@suse.de>
|
||
|
||
* sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
|
||
(sparseset_pop): Likewise.
|
||
* cfganal.c (compute_idf): Likewise. Increase work-stack size
|
||
to be able to use quick_push in the worker loop.
|
||
|
||
2013-01-30 Marek Polacek <polacek@redhat.com>
|
||
|
||
* cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
|
||
|
||
2013-01-30 Richard Biener <rguenther@suse.de>
|
||
|
||
PR lto/56147
|
||
* lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
|
||
|
||
2013-01-30 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR tree-optimization/56064
|
||
* fixed-value.c (fixed_from_double_int): New function.
|
||
* fixed-value.h (fixed_from_double_int): New prototype.
|
||
(const_fixed_from_double_int): New static inline function.
|
||
* fold-const.c (native_interpret_fixed): New static function.
|
||
(native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
|
||
(can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
|
||
(native_encode_fixed): New static function.
|
||
(native_encode_expr) <FIXED_CST>: Use it.
|
||
(native_interpret_int): Move double_int worker code to...
|
||
* double-int.c (double_int::from_buffer): ...this new static method.
|
||
* double-int.h (double_int::from_buffer): Prototype it.
|
||
|
||
2013-01-30 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
|
||
New pointer-map and obstack.
|
||
(init_alias_vars): Allocate pointer-map and obstack.
|
||
(delete_points_to_sets): Free them.
|
||
(find_what_var_points_to): Cache result.
|
||
(find_what_p_points_to): Adjust for changed interface of
|
||
find_what_var_points_to.
|
||
(compute_points_to_sets): Likewise.
|
||
(ipa_pta_execute): Likewise.
|
||
|
||
2013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* configure.ac (HAVE_AS_SPARC_NOBITS): New test.
|
||
* configure: Regenerate.
|
||
* config.in: Regenerate.
|
||
* config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
|
||
#nobits/#progbits if supported.
|
||
|
||
2013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
PR target/56121
|
||
* config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
|
||
bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
|
||
bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
|
||
|
||
2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
|
||
(cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
|
||
|
||
2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
|
||
* config/arm/cortex-a7.md (cortex_a7_call): Update required units.
|
||
|
||
2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
|
||
declaration.
|
||
* config/arm/arm.c (arm_mac_accumulator_is_result): New function.
|
||
* config/arm/cortex-a7.md: New bypasses using
|
||
arm_mac_accumulator_is_result.
|
||
|
||
2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
|
||
(cortex_a7_neon_mla): Likewise.
|
||
(cortex_a7_fpfmad): New reservation.
|
||
(cortex_a7_fpmacs): Use ffmas and update required units.
|
||
(cortex_a7_fpmuld): Update required units and latency.
|
||
(cortex_a7_fpmacd): Likewise.
|
||
(cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
|
||
(cortex_a7_neon). Likewise.
|
||
(bypass) Update participating units.
|
||
|
||
2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
|
||
|
||
* config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
|
||
* config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
|
||
from fmac to ffma.
|
||
* config/arm/vfp11.md (vfp_farith): Use ffmas.
|
||
(vfp_fmul): Use ffmad.
|
||
* config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
|
||
(cortex_r4_fmacd): Use ffmad.
|
||
* config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
|
||
* config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
|
||
(cortex_a9_fmacd): Use ffmad.
|
||
* config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
|
||
(cortex_a8_vfp_macd): Use ffmad.
|
||
* config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
|
||
(cortex_a5_fpmacd): Use ffmad.
|
||
* config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
|
||
(cortex_a15_vfp_macd): Use ffmad.
|
||
* config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
|
||
|
||
2013-01-29 Jason Merrill <jason@redhat.com>
|
||
|
||
PR libstdc++/54314
|
||
* varasm.c (default_assemble_visibility): Don't warn about
|
||
visibility on artificial decls.
|
||
|
||
2013-01-29 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56113
|
||
* tree-ssa-structalias.c (equiv_class_lookup): Also return
|
||
the bitmap leader.
|
||
(label_visit): Free duplicate bitmaps and record the leader instead.
|
||
(perform_var_substitution): Adjust.
|
||
|
||
2013-01-29 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/55270
|
||
* tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
|
||
the CFG, schedule loops for fixup.
|
||
|
||
2013-01-29 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
|
||
SP_REG.
|
||
|
||
2013-01-28 Leif Ekblad <leif@rdos.net>
|
||
|
||
* config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
|
||
* config/i386/i386.h (TARGET_RDOS): New macro.
|
||
(DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
|
||
* config/i386/i386.c (ix86_option_override_internal): For 64bit
|
||
TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
|
||
* config/i386/i386.opt (mlarge-data-threshold): Initialize to
|
||
DEFAULT_LARGE_SECTION_THRESHOLD.
|
||
* config/i386/i386.md (R14_REG, R15_REG): New constants.
|
||
* config/i386/rdos.h: New file.
|
||
* config/i386/rdos64.h: New file.
|
||
|
||
2013-01-28 Bernd Schmidt <bernds@codesourcery.com>
|
||
|
||
PR other/54814
|
||
* reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
|
||
TEST_HARD_REG_BIT.
|
||
|
||
2013-01-28 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/56117
|
||
* sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
|
||
call cselib_lookup_from_insn on the MEM before calling
|
||
add_insn_mem_dependence.
|
||
|
||
2013-01-28 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
|
||
to a stmt that didn't have one.
|
||
(copy_phis_for_bb): Likewise for PHI arguments.
|
||
(copy_debug_stmt): Likewise for debug stmts.
|
||
|
||
2013-01-28 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/56034
|
||
* tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
|
||
(partition_builtin_p): Adjust.
|
||
(generate_code_for_partition): Handle PKIND_REDUCTION. Assert
|
||
it is the last partition.
|
||
(rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
|
||
up the vertex for the definition.
|
||
(classify_partition): Classify whether a partition is a
|
||
PKIND_REDUCTION, thus has uses outside of the loop.
|
||
(ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
|
||
Merge all PKIND_REDUCTION partitions into the last partition.
|
||
(tree_loop_distribution): Seed partitions from reductions as well.
|
||
|
||
2013-01-28 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/56125
|
||
* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
|
||
pow(x,c) into sqrt(x) * powi(x, n/2) or
|
||
1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
|
||
optimizing for size.
|
||
Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
|
||
1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
|
||
integer.
|
||
|
||
PR tree-optimization/56094
|
||
* gimplify.c (force_gimple_operand_1): Temporarily set input_location
|
||
to UNKNOWN_LOCATION while gimplifying expr.
|
||
|
||
2013-01-27 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/56114
|
||
* config/i386/i386.md (*movabs<mode>_1): Add square brackets around
|
||
operand 0 in movabs insn template for -masm=intel asm alternative.
|
||
(*movabs<mode>_2): Ditto for operand 1.
|
||
|
||
2013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
|
||
|
||
PR target/54663
|
||
* config.gcc (microblaze*-linux*): Add tmake_file to allow building
|
||
of microblaze-c.o
|
||
|
||
2013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
|
||
|
||
* config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
|
||
tm_file.
|
||
|
||
2013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
|
||
|
||
* config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
|
||
Undef to avoid warning.
|
||
|
||
2013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
|
||
|
||
* configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
|
||
* configure: Regenerate.
|
||
|
||
2013-01-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/56098
|
||
* tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
|
||
for stmts with volatile ops.
|
||
(cond_store_replacement): Don't optimize if assign has volatile ops.
|
||
(cond_if_else_store_replacement_1): Don't optimize if either
|
||
then_assign or else_assign have volatile ops.
|
||
(hoist_adjacent_loads): Don't optimize if either def1 or def2 have
|
||
volatile ops.
|
||
|
||
2013-01-25 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
* doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
|
||
|
||
2013-01-25 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
* doc/extend.texi (Example of asm with clobbered asm reg): Fix
|
||
missing ':' in asm example.
|
||
|
||
2013-01-25 Tejas Belagod <tejas.belagod@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
|
||
entries into lane and laneq entries.
|
||
* config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
|
||
Remove AdvSIMD scalar modes.
|
||
(aarch64_sq<r>dmulh_laneq<mode>): New.
|
||
(aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
|
||
modes.
|
||
* config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
|
||
builtin implementations to relfect changes in RTL in aarch64-simd.md.
|
||
* config/aarch64/iterators.md (VCOND): New.
|
||
(VCONQ): New.
|
||
|
||
2013-01-25 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR target/54222
|
||
* config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
|
||
Add NULL LIBNAME argument to existing definitions.
|
||
(ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
|
||
* config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
|
||
* config/avr/avr.c (DEF_BUILTIN): Same.
|
||
(avr_init_builtins): Pass down LIBNAME to add_builtin_function.
|
||
(avr_expand_builtin): Expand to a vanilla call if a libgcc
|
||
implementation is available (DECL_ASSEMBLER_NAME is set).
|
||
(avr_fold_absfx): New static function.
|
||
(avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
|
||
AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
|
||
AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
|
||
AVR_BUILTIN_ABSLLK.
|
||
* config/avr/stdfix.h (abshr, absr, abslr, absllr)
|
||
(abshk, absk, abslk, absllk): Provide as static inline functions.
|
||
|
||
2013-01-25 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR tree-optimization/56035
|
||
* cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
|
||
|
||
2012-01-24 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
|
||
(*movtf_internal_rex64): Add (!o,C) alternative
|
||
(*movxf_internal_rex64): Ditto.
|
||
(*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
|
||
|
||
2013-01-24 Shenghou Ma <minux.ma@gmail.com>
|
||
|
||
* doc/invoke.texi: fix typo.
|
||
* doc/objc.texi: fix typo.
|
||
|
||
2013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
|
||
for the first two alternatives.
|
||
|
||
2013-01-24 Diego Novillo <dnovillo@google.com>
|
||
|
||
* Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
|
||
(ggc-zone.o): Remove.
|
||
* configure.ac: Remove option --with-gc.
|
||
* configure: Re-generate.
|
||
* doc/install.texi: Remove documentation for --with-gc.
|
||
* gengtype.c (write_enum_defn): Remove. Update all users.
|
||
(write_Types_process_field): Remove generation of gt_e_* argument.
|
||
(output_type_enum): Remove. Update all users.
|
||
(write_enum_defn): Remove. Update all users.
|
||
(enum alloc_zone): Remove. Update all users.
|
||
(write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
|
||
* ggc-common.c (ggc_splay_alloc): Remove first argument.
|
||
Update all callers.
|
||
(struct ptr_data): Remove field TYPE. Update all users.
|
||
(gt_pch_note_object): Remove argument TYPE. Update all users.
|
||
* ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
|
||
Update all users.
|
||
* ggc-none.c (ggc_alloc_typed_stat): Remove.
|
||
(struct alloc_zone): Remove.
|
||
(ggc_internal_alloc_zone_stat): Remove.
|
||
(ggc_internal_cleared_alloc_zone_stat): Remove.
|
||
* ggc-page.c (ggc_alloc_typed_stat): Remove.
|
||
(ggc_pch_count_object): Remove last argument. Update all users.
|
||
(ggc_pch_alloc_object): Remove last argument. Update all users.
|
||
(struct alloc_zone): Remove.
|
||
* ggc-zone.c: Remove.
|
||
* ggc.h (gt_pch_note_object): Remove last argument. Update all users.
|
||
(struct alloc_zone): Remove.
|
||
(ggc_alloc_typed_stat): Remove.
|
||
(ggc_alloc_typed): Remove.
|
||
(ggc_splay_alloc): Remove first argument.
|
||
(rtl_zone): Remove. Update all users.
|
||
(tree_zone): Remove. Update all users.
|
||
(tree_id_zone): Remove. Update all users.
|
||
(ggc_internal_zone_alloc_stat): Remove. Update all users.
|
||
(ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
|
||
(ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
|
||
* tree-ssanames.c: Remove references to zone allocator in comments.
|
||
|
||
2013-01-24 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
* config/avr/avr.c (avr_out_fract): Make register numbers that
|
||
might be outside of source operand signed.
|
||
|
||
2013-01-24 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/constraints.md (Yf): New constraint.
|
||
* config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
|
||
of f constraint to conditionaly disable x87 register preferences.
|
||
(*movdf_internal): Ditto.
|
||
(*movsf_internal): Ditto.
|
||
|
||
2013-01-24 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
PR inline-asm/55934
|
||
* lra-assigns.c (assign_by_spills): Throw away the pattern of asms
|
||
that have operands with impossible constraints.
|
||
Add a FIXME for a speed-up opportunity.
|
||
* lra-constraints.c (process_alt_operands): Verify that a class
|
||
selected from constraints on asms is valid for the operand mode.
|
||
(curr_insn_transform): Remove incorrect comment.
|
||
|
||
2013-01-23 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
|
||
TOC operand is a valid symbol ref in the constant pool.
|
||
|
||
2013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
|
||
|
||
* config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
|
||
|
||
2013-01-23 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR target/54222
|
||
* config/avr/stdfix.h: New file.
|
||
* t-avr (stdfix-gcc.h): New rule to build it.
|
||
(EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
|
||
|
||
2013-01-23 Kostya Serebryany <kcc@google.com>
|
||
|
||
* config/darwin.h: remove dependency on
|
||
CoreFoundation (asan on Mac OS).
|
||
|
||
2013-01-23 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/49069
|
||
* config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
|
||
instead of cmpdi_operand for first comparison operand.
|
||
Don't assert that comparison operands aren't both constants.
|
||
|
||
2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
|
||
|
||
* doc/install.texi (Downloading the Source): Update references to
|
||
downloading separate components.
|
||
|
||
2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
|
||
|
||
* doc/extend.texi (__int128): Improve grammar.
|
||
|
||
2013-01-22 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/56028
|
||
* config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
|
||
alternative to (o,r).
|
||
(*movdi_internal_rex64): Remove (!o,n) alternative.
|
||
(DImode immediate->memory splitter): Remove.
|
||
(DImode immediate->memory peephole2): Remove.
|
||
(movtf): Enable for TARGET_64BIT || TARGET_SSE.
|
||
(*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
|
||
alternative to (!o,*r).
|
||
(*movtf_internal_sse): New pattern.
|
||
(*movxf_internal_rex64): New pattern.
|
||
(*movxf_internal): Disable for TARGET_64BIT.
|
||
(*movdf_internal_rex64): Remove (!o,F) alternative.
|
||
|
||
2013-01-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/56074
|
||
* dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
|
||
isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
|
||
* tree-vect-loop-manip.c (find_loop_location): Also ignore
|
||
stmt locations where LOCATION_LOCUS of the stmt location is
|
||
UNKNOWN_LOCATION or BUILTINS_LOCATION.
|
||
|
||
PR target/55686
|
||
* config/i386/i386.md (UNSPEC_STOS): New.
|
||
(strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
|
||
*strsetqi_1): Add UNSPEC_STOS.
|
||
|
||
2013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/56067
|
||
* doc/invoke.texi: Remove left over -Wsynth example.
|
||
|
||
2013-01-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/56051
|
||
* fold-const.c (fold_binary_loc): Don't fold
|
||
X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
|
||
a narrowing conversion, or widening conversion from signed
|
||
to unsigned.
|
||
|
||
2013-01-21 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR rtl-optimization/56023
|
||
* haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
|
||
dependent on debug instruction.
|
||
|
||
2013-01-21 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR middle-end/56022
|
||
* function.c (allocate_struct_function): Call
|
||
invoke_set_current_function_hook earlier.
|
||
|
||
2013-01-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* reload1.c (init_reload): Only initialize reload_obstack
|
||
during the first call.
|
||
|
||
2013-01-21 Marek Polacek <polacek@redhat.com>
|
||
|
||
* cfgloop.c (verify_loop_structure): Fix up grammar.
|
||
|
||
2013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
|
||
|
||
* config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
|
||
pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
|
||
|
||
2013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
PR target/56058
|
||
* config/arm/marvell-pj4.md: Update copyright year.
|
||
Fix up use of alu to alu_reg and simple_alu_imm.
|
||
|
||
2013-01-21 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
|
||
|
||
2013-01-20 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/55433
|
||
* lra-constraints.c (curr_insn_transform): Don't reuse original
|
||
insn for secondary memory move when memory mode should be different.
|
||
|
||
2013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
|
||
atomic_storedi_1): New patterns.
|
||
|
||
2013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
|
||
|
||
btver2 pipeline descriptions.
|
||
* config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
|
||
descriptions.
|
||
* config/i386/i386.md (btver2_decode): New type attributes.
|
||
* config/i386/sse.md (btver2_decode, btver2_sse_attr): New
|
||
type attributes.
|
||
* config/i386/btver2.md: New file describing btver2 pipelines.
|
||
|
||
2013-01-19 Andrew Pinski <apinski@cavium.com>
|
||
|
||
PR tree-optimization/52631
|
||
* tree-ssa-sccvn (visit_use): Before looking up the original
|
||
statement, try looking up the simplified expression.
|
||
|
||
2013-01-19 Anthony Green <green@moxielogic.com>
|
||
|
||
* config/moxie/moxie.c (moxie_expand_prologue): Set
|
||
current_function_static_stack_size.
|
||
|
||
2013-01-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/56029
|
||
* tree-phinodes.c (reserve_phi_args_for_new_edge): Set
|
||
gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
|
||
|
||
2013-01-18 Sharad Singhai <singhai@google.com>
|
||
|
||
PR tree-optimization/55995
|
||
* dumpfile.c (dump_loc): Print location only if available.
|
||
* tree-vectorizer.c (increase_alignment): Intialize vect_location.
|
||
|
||
2013-01-18 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/55433
|
||
* lra-constraints.c (curr_insn_transform): Reuse original insn for
|
||
secondary memory move.
|
||
(inherit_reload_reg): Use rclass instead of cl for
|
||
check_secondary_memory_needed_p.
|
||
|
||
2013-01-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/56015
|
||
* expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
|
||
the case where writing real complex part of target modifies op1.
|
||
|
||
2013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md
|
||
(aarch64_vcond_internal<mode>): Handle unordered cases.
|
||
* config/aarch64/iterators.md (v_cmp_result): New.
|
||
|
||
2013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
|
||
Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
* config/arm/marvell-pj4.md: New file.
|
||
* config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
|
||
* config/arm/arm.md (generic_sched): Add marvell_pj4.
|
||
(generic_vfp): Likewise.
|
||
* config/arm/arm-cores.def: Add marvell-pj4.
|
||
* config/arm/arm-tune.md: Regenerate.
|
||
* config/arm/arm-tables.opt: Regenerate.
|
||
* config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
|
||
* doc/invoke.texi: Document marvell-pj4.
|
||
|
||
2013-01-18 Tejas Belagod <tejas.belagod@arm.com>
|
||
|
||
* config/aarch64/arm_neon.h: Map scalar types to standard types.
|
||
|
||
2013-01-18 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
PR debug/54114
|
||
PR debug/54402
|
||
PR debug/49888
|
||
* var-tracking.c (negative_power_of_two_p): New.
|
||
(global_get_addr_cache, local_get_addr_cache): New.
|
||
(get_addr_from_global_cache, get_addr_from_local_cache): New.
|
||
(vt_canonicalize_addr): Rewrite using the above. Adjust the
|
||
heading comment.
|
||
(vt_stack_offset_p): Remove.
|
||
(vt_canon_true_dep): Always canonicalize loc's address.
|
||
(clobber_overlapping_mems): Make sure we have a MEM.
|
||
(local_get_addr_clear_given_value): New.
|
||
(val_reset): Clear local cached entries.
|
||
(compute_bb_dataflow): Create and release the local cache.
|
||
Disable duplicate MEMs clobbering.
|
||
(emit_notes_in_bb): Clobber MEMs likewise.
|
||
(vt_emit_notes): Create and release the local cache.
|
||
(vt_initialize, vt_finalize): Create and release the global
|
||
cache, respectively.
|
||
* alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
|
||
|
||
2013-01-18 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
PR libmudflap/53359
|
||
* tree-mudflap.c (mudflap_finish_file): Skip deferred decls
|
||
not found in the symtab.
|
||
|
||
2013-01-18 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
PR debug/56006
|
||
PR rtl-optimization/55547
|
||
PR rtl-optimization/53827
|
||
PR debug/53671
|
||
PR debug/49888
|
||
* alias.c (offset_overlap_p): New, factored out of...
|
||
(memrefs_conflict_p): ... this. Use absolute sizes. Retain
|
||
the conservative special case for symbolic constants. Don't
|
||
adjust zero sizes on alignment.
|
||
|
||
2013-01-18 Bernd Schmidt <bernds@codesourcery.com>
|
||
|
||
PR rtl-optimization/52573
|
||
* regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
|
||
REG_UNUSED for the same register.
|
||
|
||
2013-01-17 Richard Biener <rguenther@suse.de>
|
||
Marek Polacek <polacek@redhat.com>
|
||
|
||
PR rtl-optimization/55833
|
||
* loop-unswitch.c (unswitch_loops): Move loop verification...
|
||
(unswitch_single_loop): ...here. Call mark_irreducible_loops.
|
||
* cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
|
||
Set it to true when we're removing a loop from hierarchy tree in
|
||
an irreducible region.
|
||
(fix_bb_placements): Adjust caller.
|
||
(fix_loop_placements): Likewise.
|
||
|
||
2013-01-17 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
* config/avr/builtins.def (DEF_BUILTIN): Factor out
|
||
"__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
|
||
Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
|
||
Remove ID. Adjust comments.
|
||
* config/avr/avr-c.c (avr_builtin_name): Remove.
|
||
(avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
|
||
* config/avr/avr.c (avr_tolower): New static function.
|
||
(DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
|
||
Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
|
||
(avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
|
||
default expansion.
|
||
|
||
2013-01-17 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR tree-optimization/55273
|
||
* loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
|
||
|
||
2013-01-17 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/55981
|
||
* config/i386/sync.md (atomic_store<mode>): Always generate SWImode
|
||
store through atomic_store<mode>_1.
|
||
(atomic_store<mode>_1): Macroize insn using SWI mode iterator.
|
||
|
||
2013-01-17 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR tree-optimizations/55264
|
||
* ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
|
||
for virtual methods.
|
||
* ipa.c (symtab_remove_unreachable_nodes): Never return true for
|
||
virtual methods before inlining is over.
|
||
* cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
|
||
virtual functions.
|
||
* cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
|
||
non-virtual.
|
||
|
||
2013-01-16 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/56005
|
||
* sched-deps.c (sched_analyze_2): Check deps->readonly for adding
|
||
pending reads for prefetch.
|
||
|
||
2013-01-16 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.md
|
||
(*cstoresi_neg_uxtw): New pattern.
|
||
(*cmovsi_insn_uxtw): New pattern.
|
||
(*<optab>si3_uxtw): New pattern.
|
||
(*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
|
||
(*<optab>si3_insn_uxtw): New pattern.
|
||
(*bswapsi2_uxtw): New pattern.
|
||
|
||
2013-01-16 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-inline.c (tree_function_versioning): Remove set but
|
||
never used variable.
|
||
|
||
2013-01-16 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/55964
|
||
* tree-flow.h (rename_variables_in_loop): Remove.
|
||
(rename_variables_in_bb): Likewise.
|
||
* tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
|
||
(copy_loop_before): Adjust and delete update-ssa status.
|
||
* tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
|
||
(rename_variables_in_bb): Likewise. Properly walk over predecessors.
|
||
(rename_variables_in_loop): Remove.
|
||
(slpeel_update_phis_for_duplicate_loop): Likewise.
|
||
(slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
|
||
use available cfg machinery instead of duplicating it.
|
||
Update PHI nodes and perform poor-mans SSA update here.
|
||
(slpeel_tree_peel_loop_to_edge): Adjust.
|
||
|
||
2013-01-16 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/54767
|
||
PR tree-optimization/53465
|
||
* tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
|
||
(vrp_visit_phi_node): For PHI arguments coming via backedges
|
||
drop all symbolical range information.
|
||
(execute_vrp): Compute backedges.
|
||
|
||
2013-01-16 Richard Biener <rguenther@suse.de>
|
||
|
||
* doc/install.texi: Update CLooG and ISL requirements to
|
||
0.18.0 and 0.11.1.
|
||
|
||
2013-01-16 Christian Bruel <christian.bruel@st.com>
|
||
|
||
PR target/55301
|
||
* config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
|
||
(broken_move): Handle UNSPECV_SP_SWITCH_B.
|
||
* config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
|
||
|
||
2013-01-16 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
|
||
(UNSPECV_SP_SWITCH_E): New.
|
||
(sp_switch_1): Change to an unspec.
|
||
(sp_switch_2): Change to an unspec. Don't use post-inc when we
|
||
replace $r15.
|
||
|
||
2013-01-16 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
|
||
with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
|
||
* optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
|
||
(expand_mem_thread_fence): Ditto.
|
||
(expand_mem_signal_fence): Ditto.
|
||
(expand_atomic_load): Ditto.
|
||
(expand_atomic_store): Ditto.
|
||
|
||
2013-01-16 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
PR rtl-optimization/55547
|
||
PR rtl-optimization/53827
|
||
PR debug/53671
|
||
PR debug/49888
|
||
* alias.c (memrefs_conflict_p): Set sizes to negative after
|
||
AND adjustments.
|
||
|
||
2013-01-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/55940
|
||
* function.c (thread_prologue_and_epilogue_insns): Always
|
||
add crtl->drap_reg to set_up_by_prologue.set, even if
|
||
stack_realign_drap is false.
|
||
|
||
2013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
||
|
||
* config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
|
||
and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
|
||
*call): Fix indention.
|
||
|
||
2013-01-15 Tom de Vries <tom@codesourcery.com>
|
||
|
||
PR target/55876
|
||
* optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
|
||
Update comment.
|
||
|
||
2013-01-15 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/55153
|
||
* sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
|
||
|
||
2013-01-15 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR tree-optimization/55920
|
||
* tree-sra.c (analyze_access_subtree): Do not mark non-removable
|
||
accesses as grp_to_be_debug_replaced.
|
||
|
||
2013-01-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/55920
|
||
* tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
|
||
there is non-useless type conversion needed from debug rhs to lhs,
|
||
use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
|
||
|
||
2013-01-15 Joseph Myers <joseph@codesourcery.com>
|
||
Mikael Pettersson <mikpe@it.uu.se>
|
||
|
||
PR target/43961
|
||
* config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
|
||
Thumb.
|
||
(ASM_OUTPUT_CASE_LABEL): Remove.
|
||
(ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
|
||
* final.c (shorten_branches): Update alignment of labels before
|
||
jump tables if CASE_VECTOR_SHORTEN_MODE.
|
||
|
||
2013-01-15 Richard Biener <rguenther@suse.de>
|
||
|
||
PR bootstrap/55961
|
||
* system.h: Do not include gmp.h for building host tools.
|
||
|
||
2013-01-15 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/55882
|
||
* emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
|
||
account for bitpos when computing alignment.
|
||
|
||
2013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
|
||
|
||
* config/i386/i386-c.c (ix86_target_macros_internal): New case.
|
||
(ix86_target_macros_internal): Likewise.
|
||
|
||
* config/i386/i386.c (m_CORE2I7): Removed.
|
||
(m_CORE_HASWELL): New macro.
|
||
(m_CORE_ALL): Likewise.
|
||
(initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
|
||
(initial_ix86_arch_features): Likewise.
|
||
(processor_target_table): Initializations for Core avx2.
|
||
(cpu_names): New names "core-avx2".
|
||
(ix86_option_override_internal): Changed PROCESSOR_COREI7 by
|
||
PROCESSOR_CORE_HASWELL.
|
||
(ix86_issue_rate): New case.
|
||
(ia32_multipass_dfa_lookahead): Likewise.
|
||
(ix86_sched_init_global): Likewise.
|
||
|
||
* config/i386/i386.h (TARGET_HASWELL): New macro.
|
||
(target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
|
||
(processor_type): New PROCESSOR_HASWELL.
|
||
|
||
2013-01-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/55955
|
||
* tree-vect-loop.c (vectorizable_reduction): Give up early on
|
||
*SHIFT_EXPR and *ROTATE_EXPR codes.
|
||
|
||
PR tree-optimization/48766
|
||
* opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
|
||
-ftrapv disable -fwrapv.
|
||
|
||
2013-01-14 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR target/55974
|
||
* config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
|
||
etc. to 1 and not to __flash.
|
||
Use LL suffix for __INT24_MAX__ with -mint8.
|
||
Use ULL suffix for __UINT24_MAX__ with -mint8.
|
||
|
||
2013-01-14 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
* config/avr/avr-arch.h
|
||
(struct base_arch_s): Use typedef avr_arch_t instead.
|
||
(struct arch_info_s): Use typedef avr_arch_info_t instead.
|
||
(struct mcu_type_s): Use typedef avr_mcu_t instead.
|
||
* config/avr/avr.c: Same.
|
||
* config/avr/avr-devices.c: Same.
|
||
* config/avr/driver-avr.c: Same.
|
||
* config/avr/gen-avr-mmcu-texi.c: Same.
|
||
* config/avr/avr-mcus.def: Adjust comment.
|
||
|
||
2013-01-14 Tejas Belagod <tejas.belagod@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
|
||
* config/aarch64/iterators.md (VALLDI): New.
|
||
|
||
2013-01-14 Uros Bizjak <ubizjak@gmail.com>
|
||
Andi Kleen <ak@linux.intel.com>
|
||
|
||
PR target/55948
|
||
* config/i386/sync.md (atomic_store<mode>_1): New pattern.
|
||
(atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
|
||
memmodel flag.
|
||
|
||
2013-01-14 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
* config/avr/avr-stdint.h: Remove trailing blanks.
|
||
* config/avr/avr-log.h: Same.
|
||
* config/avr/avr-arch.h: Same.
|
||
* config/avr/avr-devices.c: Same.
|
||
* config/avr/avr-dimode.md: Same.
|
||
* config/avr/predicates.md: Same.
|
||
* config/avr/avr-c.c: Same. And fix typo.
|
||
|
||
* config/avr/avr-protos.h: Same. And:
|
||
(function_arg_regno_p): Rename to avr_function_arg_regno_p.
|
||
(init_cumulative_args): Rename to avr_init_cumulative_args.
|
||
(expand_prologue): Rename to avr_expand_prologue.
|
||
(expand_epilogue): Rename to avr_expand_epilogue.
|
||
(adjust_insn_length): Rename to avr_adjust_insn_length.
|
||
(notice_update_cc): Rename to avr_notice_update_cc.
|
||
(final_prescan_insn): Rename to avr_final_prescan_insn.
|
||
* config/avr/avr.c: Same.
|
||
* config/avr/avr.h: Same.
|
||
* config/avr/avr.md: Remove trailing blanks.
|
||
(prologue): Use avr_expand_prologue.
|
||
(epilogue, sibcall_epilogue): Use avr_expand_epilogue.
|
||
|
||
2013-01-14 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-cfg.c (verify_expr_location, verify_expr_location_1,
|
||
verify_location, collect_subblocks): New functions.
|
||
(verify_gimple_in_cfg): Verify that locations only reference
|
||
BLOCKs in the functions BLOCK tree.
|
||
|
||
2013-01-14 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
|
||
PHI argument.
|
||
* graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
|
||
unshare reference.
|
||
(insert_out_of_ssa_copy_on_edge): Likewise.
|
||
(rewrite_close_phi_out_of_ssa): Likewise.
|
||
* tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
|
||
debug expressions.
|
||
* tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
|
||
propagated constants.
|
||
* tree-cfg.c (tree_node_can_be_shared): Handled component-refs
|
||
can not be shared.
|
||
|
||
2013-01-14 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
* config/avr/avr-modes.def: Add GPL copyright notice.
|
||
|
||
2013-01-13 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/sync.md (mem_thread_fence): Mask operands[0] with
|
||
MEMMODEL_MASK to determine memory model.
|
||
(atomic_store<mode>): Ditto from operands[2].
|
||
* config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
|
||
|
||
2013-01-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR fortran/55935
|
||
* gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
|
||
(fold_gimple_assign): Don't call unshare_expr here.
|
||
(fold_ctor_reference): Call unshare_expr.
|
||
|
||
2013-01-13 Terry Guo <terry.guo@arm.com>
|
||
|
||
* Makefile.in (s-mlib): New argument MULTILIB_REUSE.
|
||
* doc/fragments.texi: Document MULTILIB_REUSE.
|
||
* gcc.c (multilib_reuse): New internal spec.
|
||
(set_multilib_dir): Also search multilib from multilib_reuse.
|
||
* genmultilib (tmpmultilib3): Refactor code.
|
||
(tmpmultilib4): Ditto.
|
||
(multilib_reuse): New multilib argument.
|
||
|
||
2013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* Makefile.in: Update copyright.
|
||
|
||
2013-01-12 Tom de Vries <tom@codesourcery.com>
|
||
|
||
PR middle-end/55890
|
||
* calls.c (expand_call): Check if arg_nr is valid.
|
||
|
||
2013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
* doc/extend.texi (X86 Built-in Functions): Add whitespace in
|
||
__builtin_ia32_paddb256 and __builtin_ia32_pavgb256
|
||
documentation. Add missing '__' in front of
|
||
__builtin_ia32_packssdw256.
|
||
|
||
2013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
PR target/55719
|
||
* config/s390/s390.c (s390_preferred_reload_class): Do not return
|
||
NO_REGS for larl operands.
|
||
(s390_reload_larl_operand): Use s390_load_address instead of
|
||
emit_move_insn.
|
||
|
||
2013-01-11 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-cfg.c (verify_node_sharing_1): Split out from ...
|
||
(verify_node_sharing): ... here.
|
||
(verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
|
||
|
||
2013-01-11 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
|
||
Substitute TREECHECKING.
|
||
* configure: Regenerate.
|
||
* Makefile.in (TREECHECKING): New.
|
||
|
||
2013-01-11 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/44061
|
||
* tree-vrp.c (extract_range_basic): Compute zero as
|
||
value-range for __builtin_constant_p of function parameters.
|
||
|
||
2013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
Update copyright years.
|
||
|
||
2013-01-10 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/55672
|
||
* lra-eliminations.c (mark_not_eliminable): Permit addition with
|
||
const to be eliminable.
|
||
|
||
2013-01-10 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
* configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
|
||
* configure: Regenerate.
|
||
|
||
2013-01-10 Richard Biener <rguenther@suse.de>
|
||
|
||
* builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
|
||
|
||
2013-01-10 Richard Biener <rguenther@suse.de>
|
||
|
||
PR bootstrap/55792
|
||
* tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
|
||
locations for virtual PHI arguments.
|
||
(rewrite_update_phi_arguments): Likewise.
|
||
|
||
2013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
|
||
|
||
* config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
|
||
on to assembler.
|
||
|
||
2013-01-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/55921
|
||
* tree-complex.c (expand_complex_asm): New function.
|
||
(expand_complex_operations_1): Call it for GIMPLE_ASM.
|
||
|
||
2013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
PR target/55718
|
||
* config/s390/s390.c (s390_symref_operand_p)
|
||
(s390_loadrelative_operand_p): Merge the two functions.
|
||
(s390_check_qrst_address, print_operand_address): Add parameters
|
||
to s390_loadrelative_operand_p invokation.
|
||
(s390_check_symref_alignment): Use s390_loadrelative_operand_p.
|
||
(s390_reload_larl_operand, s390_secondary_reload): Use
|
||
s390_loadrelative_operand_p instead of s390_symref_operand_p.
|
||
(legitimize_pic_address): Handle @GOTENT and @PLT + addend.
|
||
|
||
2013-01-09 Mike Stump <mikestump@comcast.net>
|
||
|
||
* dse.c (record_store): Remove unnecessary assert.
|
||
|
||
2013-01-09 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR tree-optimization/55569
|
||
* cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
|
||
* cfgloop.h (scale_loop_profile): Likewise.
|
||
|
||
2013-01-09 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR lto/45375
|
||
* ipa-inline.c (ipa_inline): Remove extern inlines and virtual
|
||
functions.
|
||
* cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
|
||
|
||
2013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
PR middle-end/55114
|
||
* expr.h (maybe_emit_group_store): Declare.
|
||
* expr.c (maybe_emit_group_store): New function.
|
||
* builtins.c (expand_builtin_int_roundingfn): Call it.
|
||
(expand_builtin_int_roundingfn_2): Likewise.
|
||
|
||
2013-01-09 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/55829
|
||
* lra-constraints.c (match_reload): Add code for absent output.
|
||
(curr_insn_transform): Add code for reloads of matched inputs
|
||
without output.
|
||
|
||
2013-01-09 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/sse.md (*vec_interleave_highv2df): Change mode
|
||
attribute of movddup insn to DF.
|
||
(*vec_interleave_lowv2df): Ditto.
|
||
(vec_dupv2df): Ditto.
|
||
|
||
2013-01-09 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR tree-optimiation/55875
|
||
* tree-ssa-loop-niter.c (number_of_iterations_cond): Add
|
||
EVERY_ITERATION parameter.
|
||
(number_of_iterations_exit): Check if exit is executed every iteration.
|
||
(idx_infer_loop_bounds): Similarly here.
|
||
(n_of_executions_at_most): Simplify
|
||
to only test for cases where statement is dominated by the
|
||
particular bound; handle correctly the "postdominance" test.
|
||
(scev_probably_wraps_p): Use max loop iterations info
|
||
as a global bound first.
|
||
|
||
2013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
|
||
Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/v850/v850.md (cbranchsf4): New pattern.
|
||
(cstoresf4): New pattern.
|
||
(cbranchdf4): New pattern.
|
||
(cstoredf4): New pattern.
|
||
(movsicc): Disallow floating point comparisons.
|
||
(cmpsf_le_insn): Fix order of operators.
|
||
(cmpsf_lt_insn): Likewise.
|
||
(cmpsf_eq_insn): Likewise.
|
||
(cmpdf_le_insn): Likewise.
|
||
(cmpdf_lt_insn): Likewise.
|
||
(cmpdf_eq_insn): Likewise.
|
||
(cmpsf_ge_insn): Use LE comparison.
|
||
(cmpdf_ge_insn): Likewise.
|
||
(cmpsf_gt_insn): Use LT comparison.
|
||
(cmpdf_gt_insn): Likewise.
|
||
(cmpsf_ne_insn): Delete pattern.
|
||
(cmpdf_ne_insn): Delete pattern.
|
||
* config/v850/v850.c (v850_gen_float_compare): Use
|
||
gen_cmpdf_eq_insn for NE comparison.
|
||
(v850_float_z_comparison_operator)
|
||
(v850_float_nz_comparison_operator): Move from here ...
|
||
* config/v850/predicates.md: ... to here. Move GT and GE
|
||
comparisons into v850_float_z_comparison_operator.
|
||
* config/v850/v850-protos.h (v850_float_z_comparison_operator):
|
||
Delete prototype.
|
||
(v850_float_nz_comparison_operator): Likewise.
|
||
|
||
2013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
|
||
with calls to gen_insvsi/gen_insvdi.
|
||
|
||
2013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
|
||
|
||
* config/i386/i386.c (initial_ix86_tune_features): Set up
|
||
X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
|
||
|
||
2013-01-09 Steven Bosscher <steven@gcc.gnu.org>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/48189
|
||
* predict.c (predict_loops): If max is 0, don't call compare_tree_int.
|
||
If nitercst is 0, don't predict the exit edge.
|
||
|
||
2013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
|
||
in asm_fprintf with reg_names.
|
||
(aarch64_print_operand_address): Likewise.
|
||
(aarch64_return_addr): Likewise.
|
||
* config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
|
||
|
||
2013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* config/pa/pa.h (VAL_U6_BITS_P): Define.
|
||
(INT_U6_BITS): Likewise.
|
||
* config/pa/predicates.md (uint6_operand): New predicate.
|
||
(shift5_operand, shift6_operand): Likewise.
|
||
* config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
|
||
arith32_operand.
|
||
(lshrdi3): Use shift6_operand.
|
||
(shrpsi4, shrpdi4): New insn patterns.
|
||
(extzv): Delete expander.
|
||
(extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
|
||
predicates in unamed zero extract patterns. Tighten common constraint.
|
||
(extv): Delete expander.
|
||
(extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
|
||
predicates in unamed sign extract patterns. Tighten common constraint.
|
||
(insv): Delete expander.
|
||
(insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
|
||
predicates in unamed insert patterns. Tighten common constraint.
|
||
Change uint32_operand predicate to uint6_operand predicate in unamed
|
||
DImode pattern to insert constant values of type 1...1xxxx.
|
||
|
||
2013-01-04 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR tree-optimization/55823
|
||
* ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
|
||
issue.
|
||
|
||
2013-01-08 Jakub Jelinek <jakub@redhat.com>
|
||
Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR rtl-optimization/55845
|
||
* df-problems.c (can_move_insns_across): Stop scanning at
|
||
volatile_insn_p source instruction or give up if
|
||
across_from .. across_to range contains any volatile_insn_p
|
||
instructions.
|
||
|
||
2013-01-08 Tejas Belagod <tejas.belagod@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (vec_init<mode>): New.
|
||
* config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
|
||
Declare.
|
||
* config/aarch64/aarch64.c (aarch64_simd_dup_constant,
|
||
aarch64_simd_make_constant, aarch64_expand_vector_init): New.
|
||
|
||
2013-01-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR fortran/55341
|
||
* asan.c (asan_clear_shadow): New function.
|
||
(asan_emit_stack_protection): Use it.
|
||
|
||
2013-01-08 Tejas Belagod <tejas.belagod@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
|
||
aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
|
||
with tab instead of space.
|
||
|
||
2013-01-08 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/rl78/rl78.c (rl78_expand_prologue): Always select
|
||
register bank 0 at the start of an interrupt handler.
|
||
* config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
|
||
MDBH registers.
|
||
|
||
2013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md
|
||
(aarch64_simd_bsl<mode>_internal): Add floating-point modes.
|
||
(aarch64_simd_bsl): Likewise.
|
||
(aarch64_vcond_internal<mode>): Likewise.
|
||
(vcond<mode><mode>): Likewise.
|
||
(aarch64_cm<cmp><mode>): Fix constraints, add new modes.
|
||
* config/aarch64/iterators.md (V_cmp_result): Add V2DF.
|
||
|
||
2013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c
|
||
(aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
|
||
|
||
2013-01-08 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR debug/55579
|
||
* tree-sra.c (analyze_access_subtree): Return true also after
|
||
potentially creating a debug-only replacement.
|
||
|
||
2013-01-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/55890
|
||
* tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
|
||
|
||
PR tree-optimization/54120
|
||
* tree-vrp.c (range_fits_type_p): Don't allow
|
||
src_precision < precision from signed vr to unsigned_p
|
||
if vr->min or vr->max is negative.
|
||
(simplify_float_conversion_using_ranges): Test can_float_p
|
||
against CODE_FOR_nothing.
|
||
|
||
2013-01-08 Jakub Jelinek <jakub@redhat.com>
|
||
Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/55851
|
||
* fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
|
||
types instead of just INTEGER_TYPE types.
|
||
|
||
2013-01-07 Mark Kettenis <kettenis@openbsd.org>
|
||
|
||
* config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
|
||
TF_SIZE): Define.
|
||
|
||
2013-01-07 Steve Ellcey <sellcey@mips.com>
|
||
|
||
PR target/42661
|
||
* config/mips/mips.opt: Change mad to mmad to match documentation.
|
||
|
||
2013-01-07 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR target/55897
|
||
* doc/extend.texi (AVR Named Address Spaces): __memx goes into
|
||
.progmemx.data now.
|
||
|
||
2013-01-07 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR target/55897
|
||
* config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
|
||
(avr_addrspace_t): Add .section_name field.
|
||
* config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
|
||
array size.
|
||
(avr_addrspace): Same. Initialize .section_name. Remove last
|
||
NULL entry. Put __memx into .progmemx.data.
|
||
(progmem_section_prefix): Remove.
|
||
(avr_asm_init_sections): No need to initialize progmem_section.
|
||
(avr_asm_named_section): Use avr_addrspace[].section_name to get
|
||
section name prefix.
|
||
(avr_asm_select_section): Ditto. And use get_unnamed_section to
|
||
retrieve the progmem section.
|
||
* avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
|
||
boundary to run over avr_addrspace[].
|
||
(avr_register_target_pragmas): Ditto.
|
||
|
||
2013-01-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* varasm.c (output_constant_def_contents): For asan_protect_global
|
||
protected strings, adjust DECL_ALIGN if needed, before testing for
|
||
anchored symbols.
|
||
(place_block_symbol): Adjust size for asan protected STRING_CSTs if
|
||
TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
|
||
normal decls.
|
||
(output_object_block): For asan protected decls, emit asan padding
|
||
after their contents.
|
||
* asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
|
||
(asan_finish_file): Test it here instead.
|
||
|
||
2013-01-07 Nick Clifton <nickc@redhat.com>
|
||
Matthias Klose <doko@debian.org>
|
||
Doug Kwan <dougkwan@google.com>
|
||
H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR driver/55470
|
||
* collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
|
||
|
||
* common.opt: Add fuse-ld=bfd and fuse-ld=gold.
|
||
|
||
* gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
|
||
|
||
* opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
|
||
|
||
* doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
|
||
|
||
2013-01-07 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR target/54461
|
||
* doc/install.texi (Cross-Compiler-Specific Options): Document
|
||
--with-avrlibc.
|
||
|
||
2013-01-07 Tejas Belagod <tejas.belagod@arm.com>
|
||
|
||
* config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
|
||
vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
|
||
vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
|
||
vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
|
||
vqmovun_high_s64): Fix source operand number and update copyright.
|
||
|
||
2013-01-07 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/55890
|
||
* gimple.h (gimple_call_builtin_p): New overload.
|
||
* gimple.c (validate_call): New function.
|
||
(gimple_call_builtin_p): Likewise.
|
||
* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
|
||
Use gimple_call_builtin_p.
|
||
(find_func_clobbers): Likewise.
|
||
* tree-ssa-strlen.c (adjust_last_stmt): Likewise.
|
||
(strlen_optimize_stmt): Likewise.
|
||
|
||
2013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
|
||
(vld1q_dup_*): Likewise.
|
||
(vld1_*): Likewise.
|
||
(vld1q_*): Likewise.
|
||
(vld1_lane_*): Likewise.
|
||
(vld1q_lane_*): Likewise.
|
||
|
||
2013-01-07 Richard Biener <rguenther@suse.de>
|
||
|
||
* lto-streamer.h (LTO_minor_version): Bump to 2.
|
||
|
||
2013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-protos.h
|
||
(aarch64_const_double_zero_rtx_p): Rename to...
|
||
(aarch64_float_const_zero_rtx_p): ...this.
|
||
(aarch64_float_const_representable_p): New.
|
||
(aarch64_output_simd_mov_immediate): Likewise.
|
||
* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
|
||
move immediate case.
|
||
* config/aarch64/aarch64.c
|
||
(aarch64_const_double_zero_rtx_p): Rename to...
|
||
(aarch64_float_const_zero_rtx_p): ...this.
|
||
(aarch64_print_operand): Allow printing of new constants.
|
||
(aarch64_valid_floating_const): New.
|
||
(aarch64_legitimate_constant_p): Check for valid floating-point
|
||
constants.
|
||
(aarch64_simd_valid_immediate): Likewise.
|
||
(aarch64_vect_float_const_representable_p): New.
|
||
(aarch64_float_const_representable_p): Likewise.
|
||
(aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
|
||
(aarch64_output_simd_mov_immediate): New.
|
||
* config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
|
||
(*movdf_aarch64): Likewise.
|
||
* config/aarch64/constraints.md (Ufc): New.
|
||
(Y): call aarch64_float_const_zero_rtx.
|
||
* config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
|
||
|
||
2013-01-07 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/55888
|
||
PR tree-optimization/55862
|
||
* tree-ssa-pre.c (phi_translate_1): Revert previous change.
|
||
(valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
|
||
not if it is contained therein.
|
||
|
||
2013-01-07 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
* config/avr/t-avr: Typo.
|
||
|
||
2013-01-07 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR55243
|
||
* config/avr/t-avr: Don't automatically rebuild
|
||
$(srcdir)/config/avr/t-multilib
|
||
$(srcdir)/config/avr/avr-tables.opt
|
||
$(srcdir)/doc/avr-mmcu.texi
|
||
(avr-mcus): New phony target to build them on request.
|
||
(s-avr-mlib, s-avr-mmcu-texi): Remove.
|
||
* avr/avr-mcus.def: Adjust comments.
|
||
|
||
2013-01-07 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
|
||
|
||
2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
|
||
|
||
2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/tilepro/gen-mul-tables.cc: Put copyright on one line.
|
||
|
||
2013-01-05 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
* config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
|
||
to generate profiling.
|
||
* config/rs6000/aix64.h (LIB_SPEC): Same.
|
||
|
||
2013-01-04 Andrew Pinski <apinski@cavium.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
|
||
New function.
|
||
(TARGET_FIXED_CONDITION_CODE_REGS): Define.
|
||
|
||
2013-01-04 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
|
||
unconditionally.
|
||
(ix86_expand_move): Ditto.
|
||
(ix86_zero_extend_to_Pmode): Ditto.
|
||
(ix86_expand_call): Ditto.
|
||
(ix86_expand_special_args_builtin): Ditto.
|
||
(ix86_expand_builtin): Ditto.
|
||
|
||
2013-01-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/55862
|
||
* tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
|
||
translating them through PHI nodes.
|
||
|
||
2013-01-04 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR tree-optimization/55755
|
||
* tree-sra.c (sra_modify_assign): Do not check that an access has no
|
||
children when trying to avoid producing a VIEW_CONVERT_EXPR.
|
||
|
||
2013-01-04 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR middle-end/55859
|
||
* opts.c (default_options_optimization): Clarify error message.
|
||
|
||
2013-01-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/55863
|
||
* fold-const.c (split_tree): Undo -X - 1 to ~X folding for
|
||
reassociation.
|
||
|
||
2013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR target/53789
|
||
* config/pa/pa.md (movsi): Revert previous change.
|
||
* config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
|
||
references.
|
||
|
||
2013-01-03 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/i386/i386.c (ix86_expand_move): Always assign to op1
|
||
after eliminating TLS symbols.
|
||
|
||
2013-01-03 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR bootstrap/50167
|
||
* graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
|
||
* graphite-poly.c (debug_gmp_value): Likewise.
|
||
|
||
2013-01-03 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/55712
|
||
* config/i386/i386-c.c (ix86_target_macros_internal): Depending on
|
||
selected code model, define __code_mode_small__, __code_model_medium__,
|
||
__code_model_large__, __code_model_32__ or __code_model_kernel__.
|
||
* config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
|
||
xchg temporary register with %k. Declare temporary register as
|
||
early clobbered.
|
||
[__x86_64__]: For medium and large code models, preserve %rbx register.
|
||
|
||
2013-01-03 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
|
||
(dump_subscript): Adjust.
|
||
(finalize_ddr_dependent): Do not dump redundant info.
|
||
(analyze_siv_subscript): Adjust.
|
||
(subscript_dependence_tester): Likewise.
|
||
(compute_affine_dependence): Likewise.
|
||
|
||
2013-01-03 Richard Biener <rguenther@suse.de>
|
||
|
||
Revert
|
||
2013-01-03 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/55857
|
||
* tree-vect-stmts.c (vectorizable_load): Do not setup
|
||
re-alignment for invariant loads.
|
||
|
||
2013-01-02 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-stmts.c (vectorizable_load): When vectorizing an
|
||
invariant load do not generate a vector load from the scalar location.
|
||
|
||
2013-01-03 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
|
||
for not vectorizing.
|
||
* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
|
||
not build INDIRECT_REFs, call get_name once only.
|
||
(vect_create_data_ref_ptr): Likewise. Dump base object kind
|
||
based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
|
||
|
||
2013-01-03 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/55857
|
||
* tree-vect-stmts.c (vectorizable_load): Do not setup
|
||
re-alignment for invariant loads.
|
||
|
||
2013-01-03 Richard Biener <rguenther@suse.de>
|
||
|
||
PR lto/55848
|
||
* lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
|
||
prefer a built-in decl.
|
||
|
||
2013-01-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* gcc.c (process_command): Update copyright notice dates.
|
||
* gcov.c (print_version): Likewise.
|
||
* gcov-dump.c (print_version): Likewise.
|
||
|
||
PR rtl-optimization/55838
|
||
* loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
|
||
iv0.step, iv1.step and step.
|
||
|
||
2013-01-03 Jakub Jelinek <jakub@redhat.com>
|
||
Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR tree-optimization/55832
|
||
* fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
|
||
ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
|
||
integer_{one,zero}_node.
|
||
|
||
2013-01-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/54402
|
||
* params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
|
||
* var-tracking.c (reverse_op): Don't add reverse ops to
|
||
VALUEs that have already
|
||
PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
|
||
|
||
2013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* doc/contrib.texi: Note years as release manager for Mark Mitchell.
|
||
|
||
2013-01-02 Teresa Johnson <tejohnson@google.com>
|
||
|
||
* dumpfile.c (dump_loc): Print filename with location.
|
||
* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
|
||
new location_t parameter to emit complete unroll message with
|
||
new dump framework.
|
||
(canonicalize_loop_induction_variables): Compute loops location
|
||
and pass to try_unroll_loop_completely.
|
||
* loop-unroll.c (report_unroll_peel): New function.
|
||
(peel_loops_completely): Use new dump format with location
|
||
for main dumpfile message, and invoke report_unroll_peel on success.
|
||
(decide_unrolling_and_peeling): Ditto.
|
||
(decide_peel_once_rolling): Remove old dumpfile message subsumed
|
||
by report_unroll_peel.
|
||
(decide_peel_completely): Ditto.
|
||
(decide_unroll_constant_iterations): Ditto.
|
||
(decide_unroll_runtime_iterations): Ditto.
|
||
(decide_peel_simple): Ditto.
|
||
(decide_unroll_stupid): Ditto.
|
||
* cfgloop.c (get_loop_location): New function.
|
||
* cfgloop.h (get_loop_location): Declare.
|
||
|
||
2013-01-02 Sriraman Tallam <tmsriram@google.com>
|
||
|
||
* config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
|
||
NULL.
|
||
|
||
2013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR middle-end/55198
|
||
* expr.c (expand_expr_real_1): Don't use bitfield extraction for non
|
||
BLKmode objects when EXPAND_MEMORY is specified.
|
||
|
||
2013-01-02 Sriraman Tallam <tmsriram@google.com>
|
||
|
||
* config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
|
||
in loop predicate.
|
||
(fold_builtin_cpu): Do not share cpu model decls across statements.
|
||
|
||
2013-01-02 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/55804
|
||
* tree.c (build_array_type_1): Revert earlier change.
|
||
|
||
2013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
|
||
|
||
* config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
|
||
"cortex-a57".
|
||
* config/aarch64/aarch64-tune.md: Re-generate.
|
||
|
||
2013-01-02 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-stmts.c (vectorizable_load): When vectorizing an
|
||
invariant load do not generate a vector load from the scalar location.
|
||
|
||
2013-01-02 Richard Biener <rguenther@suse.de>
|
||
|
||
PR bootstrap/55784
|
||
* configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
|
||
* configure: Regenerate.
|
||
|
||
2013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
|
||
(expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
|
||
(expand_builtin_int_roundingfn_2): Keep the original target around
|
||
for the fallback case.
|
||
|
||
2013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
|
||
to be clear for sign changes.
|
||
|
||
2013-01-01 Jan Hubicka <jh@suse.cz>
|
||
|
||
* ipa-inline-analysis.c: Fix formatting.
|
||
|
||
2013-01-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/55831
|
||
* tree-vect-loop.c (get_initial_def_for_induction): Use
|
||
gsi_after_labels instead of gsi_start_bb.
|
||
|
||
Copyright (C) 2013 Free Software Foundation, Inc.
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved.
|