This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi Richard, As per Jakub suggestion in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67326, the below patch fixes the regression in tree if conversion. Basically allowing if conversion to happen for a candidate DR, if we find similar DR with same dimensions and that DR will not trap. To find similar DRs using hash table to hashing the offset and DR pairs. Also reusing read/written information that was stored for reference tree. Also. (1) I guard these checks for -ftree-loop-if-convert-stores and -fno-common. Sometimes vectorization flags also triggers if conversion. (2) Also hashing base DRs for writes only. gcc/ChangeLog 2015-11-19 Venkataramanan <Venkataramanan.Kumar@amd.com> PR tree-optimization/67326 * tree-if-conv.c (offset_DR_map): Define. (struct ifc_dr): Add new tree base_predicate field. (hash_memrefs_baserefs_and_store_DRs_read_written_info): Hash offsets, DR pairs and hash base ref, DR pairs for write type DRs. (ifcvt_memrefs_wont_trap): Guard checks with -ftree-loop-if-convert-stores flag. Check for similar DR that are accessed unconditionally. (if_convertible_loop_p_1): Initialize and delete offset hash maps gcc/testsuite/ChangeLog 2015-11-19 Venkataramanan <Venkataramanan.Kumar@amd.com> * gcc.dg/tree-ssa/ifc-pr67326.c: Add new. Regstrapped on x86_64, Ok for trunk? Regards, Venkat.
Attachment:
relax-trap-assumptions-fix-pr67326.txt
Description: relax-trap-assumptions-fix-pr67326.txt
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |