12013-12-31 Jakub Jelinek <jakub@redhat.com> 2 3 PR tree-optimization/59622 4 * gimple-fold.c (gimple_fold_call): Don't replace OBJ_TYPE_REF 5 call fndecl with 0 possible targets with BUILT_IN_UNREACHABLE, 6 instead only for !inplace add a __builtin_unreachable () call 7 before the call. 8 92013-12-31 Alexander Ivchenko <alexander.ivchenko@intel.com> 10 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 11 Sergey Lega <sergey.s.lega@intel.com> 12 Anna Tikhonova <anna.tikhonova@intel.com> 13 Ilya Tocar <ilya.tocar@intel.com> 14 Andrey Turetskiy <andrey.turetskiy@intel.com> 15 Ilya Verbin <ilya.verbin@intel.com> 16 Kirill Yukhin <kirill.yukhin@intel.com> 17 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 18 19 * config/i386/avx512fintrin.h (_mm_add_round_sd): New. 20 (_mm_add_round_sd): Ditto. 21 (_mm_add_round_ss): Ditto. 22 (_mm_sub_round_sd): Ditto. 23 (_mm_sub_round_ss): Ditto. 24 (_mm_rcp14_sd): Ditto. 25 (_mm_rcp14_ss): Ditto. 26 (_mm_sqrt_round_sd): Ditto. 27 (_mm_sqrt_round_ss): Ditto. 28 (_mm_mul_round_sd): Ditto. 29 (_mm_mul_round_ss): Ditto. 30 (_mm_div_round_sd): Ditto. 31 (_mm_div_round_ss): Ditto. 32 (_mm_scalef_round_sd): Ditto. 33 (_mm_scalef_round_ss): Ditto. 34 (_mm_scalef_round_sd): Ditto. 35 (_mm_scalef_round_ss): Ditto. 36 (_mm_cvt_roundsd_ss): Ditto. 37 (_mm_cvt_roundsd_sd): Ditto. 38 (_mm_getexp_round_ss): Ditto. 39 (_mm_getexp_round_sd): Ditto. 40 (_mm_getmant_round_sd): Ditto. 41 (_mm_getmant_round_ss): Ditto. 42 (_mm_roundscale_round_ss): Ditto. 43 (_mm_roundscale_round_sd): Ditto. 44 (_mm_max_round_sd): Ditto. 45 (_mm_max_round_ss): Ditto. 46 (_mm_min_round_sd): Ditto. 47 (_mm_min_round_ss): Ditto. 48 (_mm_fmadd_round_sd): Ditto. 49 (_mm_fmadd_round_ss): Ditto. 50 (_mm_fmsub_round_sd): Ditto. 51 (_mm_fmsub_round_ss): Ditto. 52 (_mm_fnmadd_round_sd): Ditto. 53 (_mm_fnmadd_round_ss): Ditto. 54 (_mm_fnmsub_round_sd): Ditto. 55 (_mm_fnmsub_round_ss): Ditto. 56 (_mm_scalef_sd): Ditto. 57 (_mm_scalef_ss): Ditto. 58 (_mm_getexp_ss): Ditto. 59 (_mm_getexp_sd): Ditto. 60 (_mm_getmant_sd): Ditto. 61 (_mm_getmant_ss): Ditto. 62 (_mm_roundscale_ss): Ditto. 63 (_mm_roundscale_sd): Ditto. 64 * config/i386/i386-builtin-types.def: New types to support 65 new built-ins: <V2DF, V2DF, V2DF, INT, INT>, 66 <V4SF, V4SF, V4SF, INT, INT>, <(V4SF, V4SF, V2DF, INT>, 67 <V2DF, V2DF, V4SF, INT>, <V4SF, V4SF, V4SF, V4SF, IN>. 68 * config/i386/i386.c (enum ix86_builtins): Add 69 IX86_BUILTIN_ADDSD_ROUND, IX86_BUILTIN_ADDSS_ROUND, 70 IX86_BUILTIN_CVTSD2SS_ROUND, IX86_BUILTIN_CVTSS2SD_ROUND, 71 IX86_BUILTIN_DIVSD_ROUND, IX86_BUILTIN_GETEXPSD128, 72 IX86_BUILTIN_DIVSS_ROUND, IX86_BUILTIN_GETEXPSS128, 73 IX86_BUILTIN_GETMANTSD128, IX86_BUILTIN_GETMANTSS128, 74 IX86_BUILTIN_MAXSD_ROUND, IX86_BUILTIN_MAXSS_ROUND, 75 IX86_BUILTIN_MINSD_ROUND, IX86_BUILTIN_MINSS_ROUND, 76 IX86_BUILTIN_MULSD_ROUND, IX86_BUILTIN_MULSS_ROUND, 77 IX86_BUILTIN_RCP14SD, IX86_BUILTIN_RCP14SS, IX86_BUILTIN_RNDSCALESD, 78 IX86_BUILTIN_RNDSCALESS, IX86_BUILTIN_RSQRT14SD, 79 IX86_BUILTIN_RSQRT14SS, IX86_BUILTIN_SCALEFSD, 80 IX86_BUILTIN_SCALEFSS, IX86_BUILTIN_SQRTSD_ROUND, 81 IX86_BUILTIN_SQRTSS_ROUND, IX86_BUILTIN_SUBSD_ROUND, 82 IX86_BUILTIN_SUBSS_ROUND, IX86_BUILTIN_VFMADDSD3_ROUND, 83 IX86_BUILTIN_VFMADDSS3_ROUND, IX86_BUILTIN_VFMSUBSD3_MASK3, 84 IX86_BUILTIN_VFMSUBSS3_MASK3. 85 (builtin_description bdesc_args[]): Add 86 __builtin_ia32_rcp14sd, __builtin_ia32_rcp14ss, 87 __builtin_ia32_rsqrt14pd512_mask, __builtin_ia32_rsqrt14ps512_mask, 88 __builtin_ia32_rsqrt14sd, __builtin_ia32_rsqrt14ss, 89 __builtin_ia32_addsd_round, __builtin_ia32_addss_round, 90 __builtin_ia32_cvtsd2ss_round, __builtin_ia32_cvtss2sd_round, 91 __builtin_ia32_divsd_round, __builtin_ia32_divss_round, 92 __builtin_ia32_getexpsd128_round, __builtin_ia32_getexpss128_round, 93 __builtin_ia32_getmantsd_round, __builtin_ia32_getmantss_round, 94 __builtin_ia32_maxsd_round, __builtin_ia32_maxss_round, 95 __builtin_ia32_minsd_round, __builtin_ia32_minss_round, 96 __builtin_ia32_mulsd_round, __builtin_ia32_mulss_round, 97 __builtin_ia32_rndscalesd_round, __builtin_ia32_rndscaless_round, 98 __builtin_ia32_scalefsd_round, __builtin_ia32_scalefss_round, 99 __builtin_ia32_sqrtsd_round, __builtin_ia32_sqrtss_round, 100 __builtin_ia32_subsd_round, __builtin_ia32_subss_round, 101 __builtin_ia32_vfmaddsd3_round, __builtin_ia32_vfmaddss3_round. 102 (ix86_expand_round_builtin): Expand new FTYPEs. 103 * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3): Support 104 EVEX's embedded rouding. 105 (<sse>_vm<multdiv_mnemonic><mode>3): Ditto. 106 (<sse>_vmsqrt<mode>2): Ditto. 107 (<sse>_vm<code><mode>3): Ditto. 108 (sse2_cvtsd2ss): Ditto. 109 (sse2_cvtss2sd): Ditto. 110 (*avx512f_vmscalef<mode>): Ditto. 111 (avx512f_sgetexp<mode>): Ditto. 112 (*avx512f_rndscale<mode>): Ditto. 113 (avx512f_getmant<mode>): Ditto. 114 (*srcp14<mode>): Make visible. 115 (*rsqrt14<mode>): Ditto. 116 * config/i386/subst.md (mask_mode512bit_condition): Fix 117 mode calculation. 118 (sd_mask_mode512bit_condition): Ditto. 119 (round_mode512bit_condition): Ditto. 120 (round_modev4sf_condition): Ditto. 121 (round_mask_scalar_operand3): Remove. 122 (round_prefix): New. 123 (round_saeonly_op3): Ditto. 124 (round_saeonly_prefix): Ditto. 125 1262013-12-31 Alexander Ivchenko <alexander.ivchenko@intel.com> 127 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 128 Sergey Lega <sergey.s.lega@intel.com> 129 Anna Tikhonova <anna.tikhonova@intel.com> 130 Ilya Tocar <ilya.tocar@intel.com> 131 Andrey Turetskiy <andrey.turetskiy@intel.com> 132 Ilya Verbin <ilya.verbin@intel.com> 133 Kirill Yukhin <kirill.yukhin@intel.com> 134 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 135 136 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SHA_SET): New. 137 (OPTION_MASK_ISA_SHA_UNSET): Ditto. 138 (ix86_handle_option): Handle OPT_msha. 139 * config.gcc (extra_headers): Add shaintrin.h. 140 * config/i386/cpuid.h (bit_SHA): New. 141 * config/i386/driver-i386.c (host_detect_local_cpu): Detect SHA 142 instructions. 143 * config/i386/i386-c.c (ix86_target_macros_internal): Handle 144 OPTION_MASK_ISA_SHA. 145 * config/i386/i386.c (ix86_target_string): Add -msha. 146 (ix86_option_override_internal): Add PTA_SHA. 147 (ix86_valid_target_attribute_inner_p): Handle OPT_msha. 148 (enum ix86_builtins): Add IX86_BUILTIN_SHA1MSG1, 149 IX86_BUILTIN_SHA1MSG2, IX86_BUILTIN_SHA1NEXTE, IX86_BUILTIN_SHA1RNDS4, 150 IX86_BUILTIN_SHA256MSG1, IX86_BUILTIN_SHA256MSG2, 151 IX86_BUILTIN_SHA256RNDS2. 152 (bdesc_args): Add BUILTINS defined above. 153 (ix86_init_mmx_sse_builtins): Add __builtin_ia32_sha1msg1, 154 __builtin_ia32_sha1msg2, __builtin_ia32_sha1nexte, 155 __builtin_ia32_sha1rnds4, __builtin_ia32_sha256msg1, 156 __builtin_ia32_sha256msg2, __builtin_ia32_sha256rnds2. 157 (ix86_expand_args_builtin): Handle V4SI_FTYPE_V4SI_V4SI_V4SI, add 158 warning for CODE_FOR_sha1rnds4. 159 * config/i386/i386.h (TARGET_SHA): New. 160 (TARGET_SHA_P): Ditto. 161 * config/i386/i386.opt (-msha): Document it. 162 * config/i386/immintrin.h: Add shaintrin.h. 163 * config/i386/shaintrin.h: New. 164 * config/i386/sse.md (unspec): Add UNSPEC_SHA1MSG1, UNSPEC_SHA1MSG2, 165 UNSPEC_SHA1NEXTE, UNSPEC_SHA1RNDS4, UNSPEC_SHA256MSG1, 166 UNSPEC_SHA256MSG2, UNSPEC_SHA256RNDS2. 167 (sha1msg1): New. 168 (sha1msg2): Ditto. 169 (sha1nexte): Ditto. 170 (sha1rnds4): Ditto. 171 (sha256msg1): Ditto. 172 (sha256msg2): Ditto. 173 (sha256rnds2): Ditto. 174 * doc/invoke.texi: Add -msha. 175 1762013-12-31 Alexander Ivchenko <alexander.ivchenko@intel.com> 177 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 178 Sergey Lega <sergey.s.lega@intel.com> 179 Anna Tikhonova <anna.tikhonova@intel.com> 180 Ilya Tocar <ilya.tocar@intel.com> 181 Andrey Turetskiy <andrey.turetskiy@intel.com> 182 Ilya Verbin <ilya.verbin@intel.com> 183 Kirill Yukhin <kirill.yukhin@intel.com> 184 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 185 186 * config.gcc (extra_headers): Add avx512fintrin.h, avx512cdintrin.h, 187 avx512erintrin.h, avx512pfintrin.h. 188 * config/i386/avx512cdintrin.h: New file. 189 * config/i386/avx512erintrin.h: New file. 190 * config/i386/avx512fintrin.h: New file. 191 * config/i386/avx512pfintrin.h: New file. 192 * config/i386/i386-builtin-types.def: Add V16UHI, V32SF, V16SF, V8DF, 193 V8DI, V16SI, V64QI, PV8DF, PV8DI, PV16SI, PV16SF, PCV8DF, PCV16SF, 194 PCV8DI, PCV16SI, V16QI_FTYPE_V16SI, V8DF_FTYPE_V8SI, V8DF_FTYPE_V8DF, 195 V8HI_FTYPE_V8DI, V16SF_FTYPE_V16SF, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF, 196 V8SF_FTYPE_V8DF_V8SF_QI, V16HI_FTYPE_V16SI, V16SF_FTYPE_FLOAT, 197 V16SI_FTYPE_INT, V8DF_FTYPE_DOUBLE, V8DI_FTYPE_INT64, 198 V16SF_FTYPE_V4SF, V8DF_FTYPE_V4DF, V8DI_FTYPE_V4DI, V16QI_FTYPE_V8DI, 199 UINT_FTYPE_V4SF, UINT64_FTYPE_V4SF, UINT_FTYPE_V2DF, 200 UINT64_FTYPE_V2DF, V16SI_FTYPE_V16SI, V16SI_FTYPE_V16SI_V16SI_HI, 201 V8DI_FTYPE_V8DI, V8DI_FTYPE_V8DI_V8DI_QI, V16SI_FTYPE_PV4SI, 202 V16SF_FTYPE_PV4SF, V8DI_FTYPE_PV4DI, V8DF_FTYPE_PV4DF, 203 V8UHI_FTYPE_V8UHI, V8USI_FTYPE_V8USI, V2DF_FTYPE_V2DF_UINT, 204 V2DF_FTYPE_V2DF_UINT64, V4DF_FTYPE_V8DF_INT, 205 V4DF_FTYPE_V8DF_INT_V4DF_QI, V8DF_FTYPE_V8DF_V8DI, 206 V4SF_FTYPE_V4SF_UINT, V4SF_FTYPE_V4SF_UINT64, 207 INT_FTYPE_V4SF_V4SF_INT_INT, INT_FTYPE_V2DF_V2DF_INT_INT, 208 V16SF_FTYPE_V16SF_INT, V4SF_FTYPE_V16SF_INT, 209 V4SF_FTYPE_V16SF_INT_V4SF_QI, V16SF_FTYPE_V16SF_V16SF, 210 V16SF_FTYPE_V16SF_V16SI, V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI, 211 V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI, V8DF_FTYPE_V8DF_INT_V8DF_QI, 212 V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI_INT, V8DF_FTYPE_V8DF_V8DF, 213 V16SF_FTYPE_V16SF_V16SF_INT, V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI, 214 V16SF_FTYPE_V16SF_INT_V16SF_HI, V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI, 215 V16SF_FTYPE_V16SF_V16SF_V16SI_INT, 216 V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI, 217 V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI_INT, 218 V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI, 219 V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI_INT, 220 V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI, 221 V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI_INT, V16SF_FTYPE_V16SF_V4SF_INT, 222 V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI, V16HI_FTYPE_V16SF_INT, 223 V16HI_FTYPE_V16SF_INT_V16HI_HI, V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI, 224 V16SI_FTYPE_V16SI_V4SI, V16SI_FTYPE_V16SI_V4SI_INT, 225 V4SI_FTYPE_V16SI_INT, V4SI_FTYPE_V16SI_INT_V4SI_QI, 226 V16SI_FTYPE_V16SI_V16SI, V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI, 227 V16SI_FTYPE_V16SI_SI, V16SI_FTYPE_V16SI_INT, 228 V16SI_FTYPE_V16SI_V4SI_V16SI_HI, V16SI_FTYPE_V16SI_INT_V16SI_HI, 229 V8DI_FTYPE_V8DI_V8DI, V16SI_FTYPE_V8DF_V8DF, 230 V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI, V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI, 231 V8DI_FTYPE_V8DI_V2DI, V4DI_FTYPE_V8DI_INT, 232 V4DI_FTYPE_V8DI_INT_V4DI_QI, V8DI_FTYPE_V8DI_V2DI_V8DI_QI, 233 V8DI_FTYPE_V8DI_INT_V8DI_QI, VOID_FTYPE_PDOUBLE_V8DF, 234 VOID_FTYPE_PFLOAT_V16SF, VOID_FTYPE_PV8DI_V8DI, HI_FTYPE_HI, 235 HI_FTYPE_HI_HI, HI_FTYPE_HI_INT, QI_FTYPE_V8DI_V8DI, 236 QI_FTYPE_V8DI_V8DI_QI, HI_FTYPE_V16SI_V16SI, HI_FTYPE_V16SI_V16SI_HI, 237 QI_FTYPE_V8DI_V8DI_INT, QI_FTYPE_V8DI_V8DI_INT_QI, 238 HI_FTYPE_V16SI_V16SI_INT, HI_FTYPE_V16SI_V16SI_INT ,HI, 239 QI_FTYPE_V8DF_V8DF_INT, QI_FTYPE_V8DF_V8DF_INT_QI, 240 QI_FTYPE_V8DF_V8DF_INT_QI_INT, HI_FTYPE_V16SF_V16SF_INT, 241 HI_FTYPE_V16SF_V16SF_INT_HI, HI_FTYPE_V16SF_V16SF_INT_HI_INT, 242 QI_FTYPE_V2DF_V2DF_INT, QI_FTYPE_V2DF_V2DF_INT_QI, 243 QI_FTYPE_V2DF_V2DF_INT_QI_INT, QI_FTYPE_V4SF_V4SF_INT, 244 QI_FTYPE_V4SF_V4SF_INT_QI, QI_FTYPE_V4SF_V4SF_INT_QI_INT, 245 V16SI_FTYPE_HI, V8DI_FTYPE_QI, V8DF_FTYPE_V8DF_V8DF_V8DF, 246 V16SF_FTYPE_V16SF_V16SF_V16SF, V8DF_FTYPE_V8DF_V8DF_QI, 247 V8DF_FTYPE_V8SF_V8DF_QI, V8DF_FTYPE_V8SI_V8DF_QI, 248 V8DI_FTYPE_V8SI_V8DI_QI, V8DI_FTYPE_V8HI_V8DI_QI, 249 V8DI_FTYPE_V16QI_V8DI_QI, V8DI_FTYPE_V8DI_V8DI_V8DI_QI, 250 V8DF_FTYPE_V8DI_V8DF_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF_QI, 251 V8DF_FTYPE_V8DF_V8DI_V8DF_QI, V8DF_FTYPE_V8DF_V8DF_V8DF_QI, 252 V16SI_FTYPE_V16SI_V16SI_V16SI_HI, V2DF_FTYPE_V2DF_V2DF_V2DF_QI, 253 V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V16SF_FTYPE_V16SF_V16SF_HI, 254 V16SF_FTYPE_V16SI_V16SF_HI, V16SF_FTYPE_V16SF_V16SF_V16SF_HI, 255 V16SF_FTYPE_V16SI_V16SF_V16SF, V16SF_FTYPE_V16SI_V16SF_V16SF_HI, 256 V16SF_FTYPE_V16SF_V16SI_V16SF_HI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI, 257 V4SF_FTYPE_V4SF_V4SF_V4SF_QI, V16SF_FTYPE_V4SF_V16SF_HI, 258 V8DF_FTYPE_V4DF_V8DF_QI, V8DF_FTYPE_V2DF_V8DF_QI, 259 V16SI_FTYPE_V4SI_V16SI_HI, V16SI_FTYPE_SI_V16SI_HI, 260 V16SI_FTYPE_V16HI_V16SI_HI, V16SI_FTYPE_V16QI_V16SI_HI, 261 V8SI_FTYPE_V8DF_V8SI_QI, V8DI_FTYPE_V4DI_V8DI_QI, 262 V8DI_FTYPE_V2DI_V8DI_QI, V8DI_FTYPE_DI_V8DI_QI, 263 V16SF_FTYPE_PCV16SF_V16SF_HI, V8DF_FTYPE_PCV8DF_V8DF_QI, 264 V16SI_FTYPE_PCV16SI_V16SI_HI, V8DI_FTYPE_PCV8DI_V8DI_QI, 265 V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI, 266 V16QI_FTYPE_V16SI_V16QI_HI, V16HI_FTYPE_V16SI_V16HI_HI, 267 V8SI_FTYPE_V8DI_V8SI_QI, V8HI_FTYPE_V8DI_V8HI_QI, 268 V16QI_FTYPE_V8DI_V16QI_QI, VOID_FTYPE_PV8DF_V8DF_QI, 269 VOID_FTYPE_PV16SF_V16SF_HI, VOID_FTYPE_PV8DI_V8DI_QI, 270 VOID_FTYPE_PV16SI_V16SI_HI, VOID_FTYPE_PDOUBLE_V2DF_QI, 271 VOID_FTYPE_PFLOAT_V4SF_QI, V16SI_FTYPE_V16SF_V16SI_HI, 272 V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI, 273 V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI, V8DI_FTYPE_V8DI_V8DI_V8DI, 274 V16SI_FTYPE_V16SI_V16SI_V16SI, V8DF_FTYPE_V8DF_V8DI_V8DF, 275 V16SF_FTYPE_V16SF_V16SI_V16SF, V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI, 276 V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI, V8DI_FTYPE_V16SI_V16SI_V8DI_QI, 277 UINT64_FTYPE_V2DF_INT, UINT64_FTYPE_V4SF_INT, UINT_FTYPE_V2DF_INT, 278 UINT_FTYPE_V4SF_INT, INT64_FTYPE_V2DF_INT, INT64_FTYPE_V4SF_INT, 279 INT_FTYPE_V2DF_INT, INT_FTYPE_V4SF_INT, V2DF_FTYPE_V2DF_UINT64_INT, 280 V4SF_FTYPE_V4SF_UINT64_INT, V4SF_FTYPE_V4SF_UINT_INT, 281 V2DF_FTYPE_V2DF_INT64_INT, V4SF_FTYPE_V4SF_INT64_INT, 282 V4SF_FTYPE_V4SF_INT_INT, V16SI_FTYPE_V16SF_V16SI_HI_INT, 283 V16SF_FTYPE_V16SI_V16SF_HI_INT, V16SF_FTYPE_V16SF_V16SF_HI_INT, 284 V16SF_FTYPE_V16HI_V16SF_HI_INT, V8SI_FTYPE_V8DF_V8SI_QI_INT, 285 V8SF_FTYPE_V8DF_V8SF_QI_INT, V8DF_FTYPE_V8DF_V8DF_QI_INT, 286 V8DF_FTYPE_V8SF_V8DF_QI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF_HI_INT, 287 V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT, V4SF_FTYPE_V4SF_V4SF_V4SF_QI_INT, 288 V4SF_FTYPE_V4SF_V2DF_V4SF_QI_INT, V2DF_FTYPE_V2DF_V2DF_V2DF_QI_INT, 289 V2DF_FTYPE_V2DF_V4SF_V2DF_QI_INT, V2DF_FTYPE_V2DF_V2DF_V2DF_INT, 290 V16SF_FTYPE_V16SF_INT_V16SF_HI_INT, V8DF_FTYPE_V8DF_INT_V8DF_QI_INT, 291 V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI_INT, 292 V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI_INT, V8DI_FTYPE_V8DI_SI_V8DI_V8DI, 293 V16SF_FTYPE_V16SF_PCFLOAT_V16SI_HI_INT, 294 V16SF_FTYPE_V16SF_PCFLOAT_V8DI_HI_INT, 295 V8DF_FTYPE_V8DF_PCDOUBLE_V8SI_QI_INT, 296 V8DF_FTYPE_V8DF_PCDOUBLE_V16SI_QI_INT, 297 V8SF_FTYPE_V8SF_PCFLOAT_V8DI_QI_INT, 298 V8DF_FTYPE_V8DF_PCDOUBLE_V8DI_QI_INT, 299 V16SI_FTYPE_V16SI_PCINT_V16SI_HI_INT, 300 V16SI_FTYPE_V16SI_PCINT_V8DI_HI_INT, 301 V8DI_FTYPE_V8DI_PCINT64_V8SI_QI_INT, 302 V8DI_FTYPE_V8DI_PCINT64_V16SI_QI_INT, 303 V8SI_FTYPE_V8SI_PCINT_V8DI_QI_INT, 304 V8DI_FTYPE_V8DI_PCINT64_V8DI_QI_INT, 305 VOID_FTYPE_PFLOAT_HI_V16SI_V16SF_INT, 306 VOID_FTYPE_PDOUBLE_QI_V8SI_V8DF_INT, 307 VOID_FTYPE_PFLOAT_QI_V8DI_V8SF_INT, 308 VOID_FTYPE_PDOUBLE_QI_V8DI_V8DF_INT, 309 VOID_FTYPE_PINT_HI_V16SI_V16SI_INT, 310 VOID_FTYPE_PLONGLONG_QI_V8SI_V8DI_INT, 311 VOID_FTYPE_PINT_QI_V8DI_V8SI_INT, 312 VOID_FTYPE_PLONGLONG_QI_V8DI_V8DI_INT, 313 VOID_FTYPE_HI_V16SI_PCINT_INT_INT, VOID_FTYPE_QI_V8DI_PCINT_INT_INT. 314 (ALIAS): Add DEF_FUNCTION_TYPE_ALIAS (V16SI_FTYPE_V8DF_V8DF, ROUND). 315 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_ADDPD512, 316 IX86_BUILTIN_ADDPS512, IX86_BUILTIN_ADDSD_MASK, 317 IX86_BUILTIN_ADDSS_MASK, IX86_BUILTIN_ALIGND512, 318 IX86_BUILTIN_ALIGNQ512, IX86_BUILTIN_BLENDMD512, 319 IX86_BUILTIN_BLENDMPD512, IX86_BUILTIN_BLENDMPS512, 320 IX86_BUILTIN_BLENDMQ512, IX86_BUILTIN_BROADCASTF32X4_512, 321 IX86_BUILTIN_BROADCASTF64X4_512, IX86_BUILTIN_BROADCASTI32X4_512, 322 IX86_BUILTIN_BROADCASTI64X4_512, IX86_BUILTIN_BROADCASTSD512, 323 IX86_BUILTIN_BROADCASTSS512, IX86_BUILTIN_CMPD512, 324 IX86_BUILTIN_CMPPD512, IX86_BUILTIN_CMPPS512, IX86_BUILTIN_CMPQ512, 325 IX86_BUILTIN_CMPSD_MASK, IX86_BUILTIN_CMPSS_MASK, IX86_BUILTIN_COMIDF, 326 IX86_BUILTIN_COMISF, IX86_BUILTIN_COMPRESSPD512, 327 IX86_BUILTIN_COMPRESSPDSTORE512, IX86_BUILTIN_COMPRESSPS512, 328 IX86_BUILTIN_COMPRESSPSSTORE512, IX86_BUILTIN_CVTDQ2PD512, 329 IX86_BUILTIN_CVTDQ2PS512, IX86_BUILTIN_CVTPD2DQ512, 330 IX86_BUILTIN_CVTPD2PS512, IX86_BUILTIN_CVTPD2UDQ512, 331 IX86_BUILTIN_CVTPH2PS512, IX86_BUILTIN_CVTPS2DQ512, 332 IX86_BUILTIN_CVTPS2PD512, IX86_BUILTIN_CVTPS2PH512, 333 IX86_BUILTIN_CVTPS2UDQ512, IX86_BUILTIN_CVTSD2SS_MASK, 334 IX86_BUILTIN_CVTSI2SD64, IX86_BUILTIN_CVTSI2SS32, 335 IX86_BUILTIN_CVTSI2SS64, IX86_BUILTIN_CVTSS2SD_MASK, 336 IX86_BUILTIN_CVTTPD2DQ512, IX86_BUILTIN_CVTTPD2UDQ512, 337 IX86_BUILTIN_CVTTPS2DQ512, IX86_BUILTIN_CVTTPS2UDQ512, 338 IX86_BUILTIN_CVTUDQ2PD512, IX86_BUILTIN_CVTUDQ2PS512, 339 IX86_BUILTIN_CVTUSI2SD32, IX86_BUILTIN_CVTUSI2SD64, 340 IX86_BUILTIN_CVTUSI2SS32, IX86_BUILTIN_CVTUSI2SS64, 341 IX86_BUILTIN_DIVPD512, IX86_BUILTIN_DIVPS512, IX86_BUILTIN_DIVSD_MASK, 342 IX86_BUILTIN_DIVSS_MASK, IX86_BUILTIN_EXPANDPD512, 343 IX86_BUILTIN_EXPANDPD512Z, IX86_BUILTIN_EXPANDPDLOAD512, 344 IX86_BUILTIN_EXPANDPDLOAD512Z, IX86_BUILTIN_EXPANDPS512, 345 IX86_BUILTIN_EXPANDPS512Z, IX86_BUILTIN_EXPANDPSLOAD512, 346 IX86_BUILTIN_EXPANDPSLOAD512Z, IX86_BUILTIN_EXTRACTF32X4, 347 IX86_BUILTIN_EXTRACTF64X4, IX86_BUILTIN_EXTRACTI32X4, 348 IX86_BUILTIN_EXTRACTI64X4, IX86_BUILTIN_FIXUPIMMPD512_MASK, 349 IX86_BUILTIN_FIXUPIMMPD512_MASKZ, IX86_BUILTIN_FIXUPIMMPS512_MASK, 350 IX86_BUILTIN_FIXUPIMMPS512_MASKZ, IX86_BUILTIN_FIXUPIMMSD128_MASK, 351 IX86_BUILTIN_FIXUPIMMSD128_MASKZ, IX86_BUILTIN_FIXUPIMMSS128_MASK, 352 IX86_BUILTIN_FIXUPIMMSS128_MASKZ, IX86_BUILTIN_GETEXPPD512, 353 IX86_BUILTIN_GETEXPPS512, IX86_BUILTIN_GETEXPSD128, 354 IX86_BUILTIN_GETEXPSS128, IX86_BUILTIN_GETMANTPD512, 355 IX86_BUILTIN_GETMANTPS512, IX86_BUILTIN_GETMANTSD128, 356 IX86_BUILTIN_GETMANTSS128, IX86_BUILTIN_INSERTF32X4, 357 IX86_BUILTIN_INSERTF64X4, IX86_BUILTIN_INSERTI32X4, 358 IX86_BUILTIN_INSERTI64X4, IX86_BUILTIN_LOADAPD512, 359 IX86_BUILTIN_LOADAPS512, IX86_BUILTIN_LOADDQUDI512, 360 IX86_BUILTIN_LOADDQUSI512, IX86_BUILTIN_LOADSD, IX86_BUILTIN_LOADSS, 361 IX86_BUILTIN_LOADUPD512, IX86_BUILTIN_LOADUPS512, 362 IX86_BUILTIN_MAXPD512, IX86_BUILTIN_MAXPS512, IX86_BUILTIN_MAXSD_MASK, 363 IX86_BUILTIN_MAXSS_MASK, IX86_BUILTIN_MINPD512, IX86_BUILTIN_MINPS512, 364 IX86_BUILTIN_MINSD_MASK, IX86_BUILTIN_MINSS_MASK, 365 IX86_BUILTIN_MOVAPD512, IX86_BUILTIN_MOVAPS512, 366 IX86_BUILTIN_MOVDDUP512, IX86_BUILTIN_MOVDQA32LOAD512, 367 IX86_BUILTIN_MOVDQA32STORE512, IX86_BUILTIN_MOVDQA32_512, 368 IX86_BUILTIN_MOVDQA64LOAD512, IX86_BUILTIN_MOVDQA64STORE512, 369 IX86_BUILTIN_MOVDQA64_512, IX86_BUILTIN_MOVESD, IX86_BUILTIN_MOVESS, 370 IX86_BUILTIN_MOVNTDQ512, IX86_BUILTIN_MOVNTPD512, 371 IX86_BUILTIN_MOVNTPS512, IX86_BUILTIN_MOVSHDUP512, 372 IX86_BUILTIN_MOVSLDUP512, IX86_BUILTIN_MULPD512, 373 IX86_BUILTIN_MULPS512, IX86_BUILTIN_MULSD_MASK, 374 IX86_BUILTIN_MULSS_MASK, IX86_BUILTIN_PABSD512, IX86_BUILTIN_PABSQ512, 375 IX86_BUILTIN_PADDD512, IX86_BUILTIN_PADDQ512, IX86_BUILTIN_PANDD512, 376 IX86_BUILTIN_PANDND512, IX86_BUILTIN_PANDNQ512, IX86_BUILTIN_PANDQ512, 377 IX86_BUILTIN_PBROADCASTD512, IX86_BUILTIN_PBROADCASTD512_GPR, 378 IX86_BUILTIN_PBROADCASTMB512, IX86_BUILTIN_PBROADCASTMW512, 379 IX86_BUILTIN_PBROADCASTQ512, IX86_BUILTIN_PBROADCASTQ512_GPR, 380 IX86_BUILTIN_PBROADCASTQ512_MEM, IX86_BUILTIN_PCMPEQD512_MASK, 381 IX86_BUILTIN_PCMPEQQ512_MASK, IX86_BUILTIN_PCMPGTD512_MASK, 382 IX86_BUILTIN_PCMPGTQ512_MASK, IX86_BUILTIN_PCOMPRESSD512, 383 IX86_BUILTIN_PCOMPRESSDSTORE512, IX86_BUILTIN_PCOMPRESSQ512, 384 IX86_BUILTIN_PCOMPRESSQSTORE512, IX86_BUILTIN_PEXPANDD512, 385 IX86_BUILTIN_PEXPANDD512Z, IX86_BUILTIN_PEXPANDDLOAD512, 386 IX86_BUILTIN_PEXPANDDLOAD512Z, IX86_BUILTIN_PEXPANDQ512, 387 IX86_BUILTIN_PEXPANDQ512Z, IX86_BUILTIN_PEXPANDQLOAD512, 388 IX86_BUILTIN_PEXPANDQLOAD512Z, IX86_BUILTIN_PMAXSD512, 389 IX86_BUILTIN_PMAXSQ512, IX86_BUILTIN_PMAXUD512, 390 IX86_BUILTIN_PMAXUQ512, IX86_BUILTIN_PMINSD512, 391 IX86_BUILTIN_PMINSQ512, IX86_BUILTIN_PMINUD512, 392 IX86_BUILTIN_PMINUQ512, IX86_BUILTIN_PMOVDB512, 393 IX86_BUILTIN_PMOVDW512, IX86_BUILTIN_PMOVQB512, 394 IX86_BUILTIN_PMOVQD512, IX86_BUILTIN_PMOVQW512, 395 IX86_BUILTIN_PMOVSDB512, IX86_BUILTIN_PMOVSDW512, 396 IX86_BUILTIN_PMOVSQB512, IX86_BUILTIN_PMOVSQD512, 397 IX86_BUILTIN_PMOVSQW512, IX86_BUILTIN_PMOVSXBD512, 398 IX86_BUILTIN_PMOVSXBQ512, IX86_BUILTIN_PMOVSXDQ512, 399 IX86_BUILTIN_PMOVSXWD512, IX86_BUILTIN_PMOVSXWQ512, 400 IX86_BUILTIN_PMOVUSDB512, IX86_BUILTIN_PMOVUSDW512, 401 IX86_BUILTIN_PMOVUSQB512, IX86_BUILTIN_PMOVUSQD512, 402 IX86_BUILTIN_PMOVUSQW512, IX86_BUILTIN_PMOVZXBD512, 403 IX86_BUILTIN_PMOVZXBQ512, IX86_BUILTIN_PMOVZXDQ512, 404 IX86_BUILTIN_PMOVZXWD512, IX86_BUILTIN_PMOVZXWQ512, 405 IX86_BUILTIN_PMULDQ512, IX86_BUILTIN_PMULLD512, 406 IX86_BUILTIN_PMULUDQ512, IX86_BUILTIN_PORD512, IX86_BUILTIN_PORQ512, 407 IX86_BUILTIN_PROLD512, IX86_BUILTIN_PROLQ512, IX86_BUILTIN_PROLVD512, 408 IX86_BUILTIN_PROLVQ512, IX86_BUILTIN_PRORD512, IX86_BUILTIN_PRORQ512, 409 IX86_BUILTIN_PRORVD512, IX86_BUILTIN_PRORVQ512, 410 IX86_BUILTIN_PSHUFD512, IX86_BUILTIN_PSLLD512, IX86_BUILTIN_PSLLDI512, 411 IX86_BUILTIN_PSLLQ512, IX86_BUILTIN_PSLLQI512, 412 IX86_BUILTIN_PSLLVV16SI, IX86_BUILTIN_PSLLVV8DI, 413 IX86_BUILTIN_PSRAD512, IX86_BUILTIN_PSRADI512, IX86_BUILTIN_PSRAQ512, 414 IX86_BUILTIN_PSRAQI512, IX86_BUILTIN_PSRAVV16SI, 415 IX86_BUILTIN_PSRAVV8DI, IX86_BUILTIN_PSRLD512, IX86_BUILTIN_PSRLDI512, 416 IX86_BUILTIN_PSRLQ512, IX86_BUILTIN_PSRLQI512, 417 IX86_BUILTIN_PSRLVV16SI, IX86_BUILTIN_PSRLVV8DI, 418 IX86_BUILTIN_PSUBD512, IX86_BUILTIN_PSUBQ512, IX86_BUILTIN_PTESTMD512, 419 IX86_BUILTIN_PTESTMQ512, IX86_BUILTIN_PTESTNMD512, 420 IX86_BUILTIN_PTESTNMQ512, IX86_BUILTIN_PUNPCKHDQ512, 421 IX86_BUILTIN_PUNPCKHQDQ512, IX86_BUILTIN_PUNPCKLDQ512, 422 IX86_BUILTIN_PUNPCKLQDQ512, IX86_BUILTIN_PXORD512, 423 IX86_BUILTIN_PXORQ512, IX86_BUILTIN_RCP14PD512, 424 IX86_BUILTIN_RCP14PS512, IX86_BUILTIN_RCP14SD, IX86_BUILTIN_RCP14SS, 425 IX86_BUILTIN_RNDSCALEPD, IX86_BUILTIN_RNDSCALEPS, 426 IX86_BUILTIN_RNDSCALESD, IX86_BUILTIN_RNDSCALESS, 427 IX86_BUILTIN_RSQRT14PD512, IX86_BUILTIN_RSQRT14PS512, 428 IX86_BUILTIN_RSQRT14SD, IX86_BUILTIN_RSQRT14SS, 429 IX86_BUILTIN_SCALEFPD512, IX86_BUILTIN_SCALEFPS512, 430 IX86_BUILTIN_SCALEFSD, IX86_BUILTIN_SCALEFSS, IX86_BUILTIN_SHUFPD512, 431 IX86_BUILTIN_SHUFPS512, IX86_BUILTIN_SHUF_F32x4, 432 IX86_BUILTIN_SHUF_F64x2, IX86_BUILTIN_SHUF_I32x4, 433 IX86_BUILTIN_SHUF_I64x2, 434 IX86_BUILTIN_SQRTPD512_MASK, IX86_BUILTIN_SQRTPS512_MASK, 435 IX86_BUILTIN_SQRTSD_MASK, 436 IX86_BUILTIN_SQRTSS_MASK, IX86_BUILTIN_STOREAPD512, 437 IX86_BUILTIN_STOREAPS512, IX86_BUILTIN_STOREDQUDI512, 438 IX86_BUILTIN_STOREDQUSI512, IX86_BUILTIN_STORESD, 439 IX86_BUILTIN_STORESS, IX86_BUILTIN_STOREUPD512, 440 IX86_BUILTIN_STOREUPS512, IX86_BUILTIN_SUBPD512, 441 IX86_BUILTIN_SUBPS512, IX86_BUILTIN_SUBSD_MASK, 442 IX86_BUILTIN_SUBSS_MASK, IX86_BUILTIN_UCMPD512, IX86_BUILTIN_UCMPQ512, 443 IX86_BUILTIN_UNPCKHPD512, IX86_BUILTIN_UNPCKHPS512, 444 IX86_BUILTIN_UNPCKLPD512, IX86_BUILTIN_UNPCKLPS512, 445 IX86_BUILTIN_VCVTSD2SI32, IX86_BUILTIN_VCVTSD2SI64, 446 IX86_BUILTIN_VCVTSD2USI32, IX86_BUILTIN_VCVTSD2USI64, 447 IX86_BUILTIN_VCVTSS2SI32, IX86_BUILTIN_VCVTSS2SI64, 448 IX86_BUILTIN_VCVTSS2USI32, IX86_BUILTIN_VCVTSS2USI64, 449 IX86_BUILTIN_VCVTTSD2SI32, IX86_BUILTIN_VCVTTSD2SI64, 450 IX86_BUILTIN_VCVTTSD2USI32, IX86_BUILTIN_VCVTTSD2USI64, 451 IX86_BUILTIN_VCVTTSS2SI32, IX86_BUILTIN_VCVTTSS2SI64, 452 IX86_BUILTIN_VCVTTSS2USI32, IX86_BUILTIN_VCVTTSS2USI64, 453 IX86_BUILTIN_VFMADDPD512_MASK, IX86_BUILTIN_VFMADDPD512_MASK3, 454 IX86_BUILTIN_VFMADDPD512_MASKZ, IX86_BUILTIN_VFMADDPS512_MASK, 455 IX86_BUILTIN_VFMADDPS512_MASK3, IX86_BUILTIN_VFMADDPS512_MASKZ, 456 IX86_BUILTIN_VFMADDSD3_MASK, IX86_BUILTIN_VFMADDSD3_MASK3, 457 IX86_BUILTIN_VFMADDSD3_MASKZ, IX86_BUILTIN_VFMADDSS3_MASK, 458 IX86_BUILTIN_VFMADDSS3_MASK3, IX86_BUILTIN_VFMADDSS3_MASKZ, 459 IX86_BUILTIN_VFMADDSUBPD512_MASK, IX86_BUILTIN_VFMADDSUBPD512_MASK3, 460 IX86_BUILTIN_VFMADDSUBPD512_MASKZ, IX86_BUILTIN_VFMADDSUBPS512_MASK, 461 IX86_BUILTIN_VFMADDSUBPS512_MASK3, IX86_BUILTIN_VFMADDSUBPS512_MASKZ, 462 IX86_BUILTIN_VFMSUBADDPD512_MASK3, IX86_BUILTIN_VFMSUBADDPS512_MASK3, 463 IX86_BUILTIN_VFMSUBPD512_MASK3, IX86_BUILTIN_VFMSUBPS512_MASK3, 464 IX86_BUILTIN_VFMSUBSD3_MASK3, IX86_BUILTIN_VFMSUBSS3_MASK3, 465 IX86_BUILTIN_VFNMADDPD512_MASK, IX86_BUILTIN_VFNMADDPS512_MASK, 466 IX86_BUILTIN_VFNMSUBPD512_MASK, IX86_BUILTIN_VFNMSUBPD512_MASK3, 467 IX86_BUILTIN_VFNMSUBPS512_MASK, IX86_BUILTIN_VFNMSUBPS512_MASK3, 468 IX86_BUILTIN_VPCLZCNTD512, IX86_BUILTIN_VPCLZCNTQ512, 469 IX86_BUILTIN_VPCONFLICTD512, IX86_BUILTIN_VPCONFLICTQ512, 470 IX86_BUILTIN_VPERMDF512, IX86_BUILTIN_VPERMDI512, 471 IX86_BUILTIN_VPERMI2VARD512, IX86_BUILTIN_VPERMI2VARPD512, 472 IX86_BUILTIN_VPERMI2VARPS512, IX86_BUILTIN_VPERMI2VARQ512, 473 IX86_BUILTIN_VPERMILPD512, IX86_BUILTIN_VPERMILPS512, 474 IX86_BUILTIN_VPERMILVARPD512, IX86_BUILTIN_VPERMILVARPS512, 475 IX86_BUILTIN_VPERMT2VARD512, IX86_BUILTIN_VPERMT2VARD512_MASKZ, 476 IX86_BUILTIN_VPERMT2VARPD512, IX86_BUILTIN_VPERMT2VARPD512_MASKZ, 477 IX86_BUILTIN_VPERMT2VARPS512, IX86_BUILTIN_VPERMT2VARPS512_MASKZ, 478 IX86_BUILTIN_VPERMT2VARQ512, IX86_BUILTIN_VPERMT2VARQ512_MASKZ, 479 IX86_BUILTIN_VPERMVARDF512, IX86_BUILTIN_VPERMVARDI512, 480 IX86_BUILTIN_VPERMVARSF512, IX86_BUILTIN_VPERMVARSI512, 481 IX86_BUILTIN_VTERNLOGD512_MASK, IX86_BUILTIN_VTERNLOGD512_MASKZ, 482 IX86_BUILTIN_VTERNLOGQ512_MASK, IX86_BUILTIN_VTERNLOGQ512_MASKZ, 483 IX86_BUILTIN_KAND16, IX86_BUILTIN_KANDN16, IX86_BUILTIN_KNOT16, 484 IX86_BUILTIN_KOR16, IX86_BUILTIN_KORTESTC16, IX86_BUILTIN_KORTESTZ16, 485 IX86_BUILTIN_KUNPCKBW, IX86_BUILTIN_KXNOR16, IX86_BUILTIN_KXOR16, 486 IX86_BUILTIN_GATHER3SIV8DI, 487 IX86_BUILTIN_SCATTERDIV16SF, IX86_BUILTIN_SCATTERDIV16SI, 488 IX86_BUILTIN_SCATTERDIV8DF, IX86_BUILTIN_SCATTERDIV8DI, 489 IX86_BUILTIN_SCATTERSIV16SF, IX86_BUILTIN_SCATTERSIV16SI, 490 IX86_BUILTIN_SCATTERSIV8DF, IX86_BUILTIN_SCATTERSIV8DI, 491 IX86_BUILTIN_GATHERPFDPS, IX86_BUILTIN_GATHERPFQPS, 492 IX86_BUILTIN_SCATTERPFDPS, IX86_BUILTIN_SCATTERPFQPS, 493 IX86_BUILTIN_EXP2PD_MASK, IX86_BUILTIN_EXP2PS_MASK, 494 IX86_BUILTIN_RCP28PD, IX86_BUILTIN_RCP28PS, 495 IX86_BUILTIN_RSQRT28PD, IX86_BUILTIN_RSQRT28PS. 496 (bdesc_special_args): Add __builtin_ia32_compressstoresf512_mask, 497 __builtin_ia32_compressstoresi512_mask, 498 __builtin_ia32_compressstoredf512_mask, 499 __builtin_ia32_compressstoredi512_mask, 500 __builtin_ia32_expandloadsf512_mask, 501 __builtin_ia32_expandloadsf512_maskz, 502 __builtin_ia32_expandloadsi512_mask, 503 __builtin_ia32_expandloadsi512_maskz, 504 __builtin_ia32_expandloaddf512_mask, 505 __builtin_ia32_expandloaddf512_maskz, 506 __builtin_ia32_expandloaddi512_mask, 507 __builtin_ia32_expandloaddi512_maskz, 508 __builtin_ia32_loaddqusi512_mask, __builtin_ia32_loaddqudi512_mask, 509 __builtin_ia32_loadsd_mask, __builtin_ia32_loadss_mask, 510 __builtin_ia32_loadupd512_mask, __builtin_ia32_loadups512_mask, 511 __builtin_ia32_loadaps512_mask, __builtin_ia32_movdqa32load512_mask, 512 __builtin_ia32_loadapd512_mask, __builtin_ia32_movdqa64load512_mask, 513 __builtin_ia32_movntps512, __builtin_ia32_movntpd512, 514 __builtin_ia32_movntdq512, __builtin_ia32_storedqusi512_mask, 515 __builtin_ia32_storedqudi512_mask, __builtin_ia32_storesd_mask, 516 __builtin_ia32_storess_mask, __builtin_ia32_storeupd512_mask, 517 __builtin_ia32_storeups512_mask, __builtin_ia32_storeaps512_mask, 518 __builtin_ia32_movdqa32store512_mask, __builtin_ia32_storeapd512_mask, 519 __builtin_ia32_movdqa64store512_mask, __builtin_ia32_alignd512_mask, 520 __builtin_ia32_alignq512_mask, __builtin_ia32_blendmd_512_mask, 521 __builtin_ia32_blendmpd_512_mask, __builtin_ia32_blendmps_512_mask, 522 __builtin_ia32_blendmq_512_mask, __builtin_ia32_broadcastf32x4_512, 523 __builtin_ia32_broadcastf64x4_512, __builtin_ia32_broadcasti32x4_512, 524 __builtin_ia32_broadcasti64x4_512, __builtin_ia32_broadcastsd512, 525 __builtin_ia32_broadcastss512, __builtin_ia32_cmpd512_mask, 526 __builtin_ia32_cmpq512_mask, __builtin_ia32_compressdf512_mask, 527 __builtin_ia32_compresssf512_mask, __builtin_ia32_cvtdq2pd512_mask, 528 __builtin_ia32_vcvtps2ph512_mask, __builtin_ia32_cvtudq2pd512_mask, 529 __builtin_ia32_cvtusi2sd32, __builtin_ia32_expanddf512_mask, 530 __builtin_ia32_expanddf512_maskz, __builtin_ia32_expandsf512_mask, 531 __builtin_ia32_expandsf512_maskz, __builtin_ia32_extractf32x4_mask, 532 __builtin_ia32_extractf64x4_mask, __builtin_ia32_extracti32x4_mask, 533 __builtin_ia32_extracti64x4_mask, __builtin_ia32_insertf32x4_mask, 534 __builtin_ia32_insertf64x4_mask, __builtin_ia32_inserti32x4_mask, 535 __builtin_ia32_inserti64x4_mask, __builtin_ia32_movapd512_mask, 536 __builtin_ia32_movaps512_mask, __builtin_ia32_movddup512_mask, 537 __builtin_ia32_movdqa32_512_mask, __builtin_ia32_movdqa64_512_mask, 538 __builtin_ia32_movesd_mask, __builtin_ia32_movess_mask, 539 __builtin_ia32_movshdup512_mask, __builtin_ia32_movsldup512_mask, 540 __builtin_ia32_pabsd512_mask, __builtin_ia32_pabsq512_mask, 541 __builtin_ia32_paddd512_mask, __builtin_ia32_paddq512_mask, 542 __builtin_ia32_pandd512_mask, __builtin_ia32_pandnd512_mask, 543 __builtin_ia32_pandnq512_mask, __builtin_ia32_pandq512_mask, 544 __builtin_ia32_pbroadcastd512, __builtin_ia32_pbroadcastd512_gpr_mask, 545 __builtin_ia32_broadcastmb512, __builtin_ia32_broadcastmw512, 546 __builtin_ia32_pbroadcastq512, __builtin_ia32_pbroadcastq512_gpr_mask, 547 __builtin_ia32_pbroadcastq512_mem_mask, 548 __builtin_ia32_pcmpeqd512_mask, __builtin_ia32_pcmpeqq512_mask, 549 __builtin_ia32_pcmpgtd512_mask, __builtin_ia32_pcmpgtq512_mask, 550 __builtin_ia32_compresssi512_mask, __builtin_ia32_compressdi512_mask, 551 __builtin_ia32_expandsi512_mask, __builtin_ia32_expandsi512_maskz, 552 __builtin_ia32_expanddi512_mask, __builtin_ia32_expanddi512_maskz, 553 __builtin_ia32_pmaxsd512_mask, __builtin_ia32_pmaxsq512_mask, 554 __builtin_ia32_pmaxud512_mask, __builtin_ia32_pmaxuq512_mask, 555 __builtin_ia32_pminsd512_mask, __builtin_ia32_pminsq512_mask, 556 __builtin_ia32_pminud512_mask, __builtin_ia32_pminuq512_mask, 557 __builtin_ia32_pmovdb512_mask, __builtin_ia32_pmovdw512_mask, 558 __builtin_ia32_pmovqb512_mask, __builtin_ia32_pmovqd512_mask, 559 __builtin_ia32_pmovqw512_mask, __builtin_ia32_pmovsdb512_mask, 560 __builtin_ia32_pmovsdw512_mask, __builtin_ia32_pmovsqb512_mask, 561 __builtin_ia32_pmovsqd512_mask, __builtin_ia32_pmovsqw512_mask, 562 __builtin_ia32_pmovsxbd512_mask, __builtin_ia32_pmovsxbq512_mask, 563 __builtin_ia32_pmovsxdq512_mask, __builtin_ia32_pmovsxwd512_mask, 564 __builtin_ia32_pmovsxwq512_mask, __builtin_ia32_pmovusdb512_mask, 565 __builtin_ia32_pmovusdw512_mask, __builtin_ia32_pmovusqb512_mask, 566 __builtin_ia32_pmovusqd512_mask, __builtin_ia32_pmovusqw512_mask, 567 __builtin_ia32_pmovzxbd512_mask, __builtin_ia32_pmovzxbq512_mask, 568 __builtin_ia32_pmovzxdq512_mask, __builtin_ia32_pmovzxwd512_mask, 569 __builtin_ia32_pmovzxwq512_mask, __builtin_ia32_pmuldq512_mask, 570 __builtin_ia32_pmulld512_mask, __builtin_ia32_pmuludq512_mask, 571 __builtin_ia32_pord512_mask, __builtin_ia32_porq512_mask, 572 __builtin_ia32_prold512_mask, __builtin_ia32_prolq512_mask, 573 __builtin_ia32_prolvd512_mask, __builtin_ia32_prolvq512_mask, 574 __builtin_ia32_prord512_mask, __builtin_ia32_prorq512_mask, 575 __builtin_ia32_prorvd512_mask, __builtin_ia32_prorvq512_mask, 576 __builtin_ia32_pshufd512_mask, __builtin_ia32_pslld512_mask, 577 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask, 578 __builtin_ia32_psllqi512_mask, __builtin_ia32_psllv16si_mask, 579 __builtin_ia32_psllv8di_mask, __builtin_ia32_psrad512_mask, 580 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask, 581 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrav16si_mask, 582 __builtin_ia32_psrav8di_mask, __builtin_ia32_psrld512_mask, 583 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask, 584 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psrlv16si_mask, 585 __builtin_ia32_psrlv8di_mask, __builtin_ia32_psubd512_mask, 586 __builtin_ia32_psubq512_mask, __builtin_ia32_ptestmd512, 587 __builtin_ia32_ptestmq512, __builtin_ia32_ptestnmd512, 588 __builtin_ia32_ptestnmq512, __builtin_ia32_punpckhdq512_mask, 589 __builtin_ia32_punpckhqdq512_mask, __builtin_ia32_punpckldq512_mask, 590 __builtin_ia32_punpcklqdq512_mask, __builtin_ia32_pxord512_mask, 591 __builtin_ia32_pxorq512_mask, __builtin_ia32_rcp14pd512_mask, 592 __builtin_ia32_rcp14ps512_mask, __builtin_ia32_rcp14sd_mask, 593 __builtin_ia32_rcp14ss_mask, __builtin_ia32_rsqrt14pd512_mask, 594 __builtin_ia32_rsqrt14ps512_mask, __builtin_ia32_rsqrt14sd_mask, 595 __builtin_ia32_rsqrt14ss_mask, __builtin_ia32_shufpd512_mask, 596 __builtin_ia32_shufps512_mask, __builtin_ia32_shuf_f32x4_mask, 597 __builtin_ia32_shuf_f64x2_mask, __builtin_ia32_shuf_i32x4_mask, 598 __builtin_ia32_shuf_i64x2_mask, __builtin_ia32_ucmpd512_mask, 599 __builtin_ia32_ucmpq512_mask, __builtin_ia32_unpckhpd512_mask, 600 __builtin_ia32_unpckhps512_mask, __builtin_ia32_unpcklpd512_mask, 601 __builtin_ia32_unpcklps512_mask, __builtin_ia32_vplzcntd_512_mask, 602 __builtin_ia32_vplzcntq_512_mask, 603 __builtin_ia32_vpconflictsi_512_mask, 604 __builtin_ia32_vpconflictdi_512_mask, __builtin_ia32_permdf512_mask, 605 __builtin_ia32_permdi512_mask, __builtin_ia32_vpermi2vard512_mask, 606 __builtin_ia32_vpermi2varpd512_mask, 607 __builtin_ia32_vpermi2varps512_mask, 608 __builtin_ia32_vpermi2varq512_mask, __builtin_ia32_vpermilpd512_mask, 609 __builtin_ia32_vpermilps512_mask, __builtin_ia32_vpermilvarpd512_mask, 610 __builtin_ia32_vpermilvarps512_mask, 611 __builtin_ia32_vpermt2vard512_mask, 612 __builtin_ia32_vpermt2vard512_maskz, 613 __builtin_ia32_vpermt2varpd512_mask, 614 __builtin_ia32_vpermt2varpd512_maskz, 615 __builtin_ia32_vpermt2varps512_mask, 616 __builtin_ia32_vpermt2varps512_maskz, 617 __builtin_ia32_vpermt2varq512_mask, 618 __builtin_ia32_vpermt2varq512_maskz, __builtin_ia32_permvardf512_mask, 619 __builtin_ia32_permvardi512_mask, __builtin_ia32_permvarsf512_mask, 620 __builtin_ia32_permvarsi512_mask, __builtin_ia32_pternlogd512_mask, 621 __builtin_ia32_pternlogd512_maskz, __builtin_ia32_pternlogq512_mask, 622 __builtin_ia32_pternlogq512_maskz, __builtin_ia32_copysignps512, 623 __builtin_ia32_copysignpd512, __builtin_ia32_sqrtpd512, 624 __builtin_ia32_sqrtps512, __builtin_ia32_exp2ps, 625 __builtin_ia32_roundpd_az_vec_pack_sfix512, 626 __builtin_ia32_floorpd_vec_pack_sfix512, 627 __builtin_ia32_ceilpd_vec_pack_sfix512, __builtin_ia32_kandhi, 628 __builtin_ia32_kandnhi, __builtin_ia32_knothi, __builtin_ia32_korhi, 629 __builtin_ia32_kortestchi, __builtin_ia32_kortestzhi, 630 __builtin_ia32_kunpckhi, __builtin_ia32_kxnorhi, 631 __builtin_ia32_kxorhi, __builtin_ia32_addpd512_mask, 632 __builtin_ia32_addps512_mask, __builtin_ia32_addsd_mask, 633 __builtin_ia32_addss_mask, __builtin_ia32_cmppd512_mask, 634 __builtin_ia32_cmpps512_mask, __builtin_ia32_cmpsd_mask, 635 __builtin_ia32_cmpss_mask, __builtin_ia32_vcomisd, 636 __builtin_ia32_vcomiss, __builtin_ia32_cvtdq2ps512_mask, 637 __builtin_ia32_cvtpd2dq512_mask, __builtin_ia32_cvtpd2ps512_mask, 638 __builtin_ia32_cvtpd2udq512_mask, __builtin_ia32_vcvtph2ps512_mask, 639 __builtin_ia32_cvtps2dq512_mask, __builtin_ia32_cvtps2pd512_mask, 640 __builtin_ia32_cvtps2udq512_mask, __builtin_ia32_cvtsd2ss_mask, 641 __builtin_ia32_cvtsi2sd64, __builtin_ia32_cvtsi2ss32, 642 __builtin_ia32_cvtsi2ss64, __builtin_ia32_cvtss2sd_mask, 643 __builtin_ia32_cvttpd2dq512_mask, __builtin_ia32_cvttpd2udq512_mask, 644 __builtin_ia32_cvttps2dq512_mask, __builtin_ia32_cvttps2udq512_mask, 645 __builtin_ia32_cvtudq2ps512_mask, __builtin_ia32_cvtusi2sd64, 646 __builtin_ia32_cvtusi2ss32, __builtin_ia32_cvtusi2ss64, 647 __builtin_ia32_divpd512_mask, __builtin_ia32_divps512_mask, 648 __builtin_ia32_divsd_mask, __builtin_ia32_divss_mask, 649 __builtin_ia32_fixupimmpd512_mask, __builtin_ia32_fixupimmpd512_maskz, 650 __builtin_ia32_fixupimmps512_mask, __builtin_ia32_fixupimmps512_maskz, 651 __builtin_ia32_fixupimmsd_mask, __builtin_ia32_fixupimmsd_maskz, 652 __builtin_ia32_fixupimmss_mask, __builtin_ia32_fixupimmss_maskz, 653 __builtin_ia32_getexppd512_mask, __builtin_ia32_getexpps512_mask, 654 __builtin_ia32_getexpsd128_mask, __builtin_ia32_getexpss128_mask, 655 __builtin_ia32_getmantpd512_mask, __builtin_ia32_getmantps512_mask, 656 __builtin_ia32_getmantsd_mask, __builtin_ia32_getmantss_mask, 657 __builtin_ia32_maxpd512_mask, __builtin_ia32_maxps512_mask, 658 __builtin_ia32_maxsd_mask, __builtin_ia32_maxss_mask, 659 __builtin_ia32_minpd512_mask, __builtin_ia32_minps512_mask, 660 __builtin_ia32_minsd_mask, __builtin_ia32_minss_mask, 661 __builtin_ia32_mulpd512_mask, __builtin_ia32_mulps512_mask, 662 __builtin_ia32_mulsd_mask, __builtin_ia32_mulss_mask, 663 __builtin_ia32_rndscalepd_mask, __builtin_ia32_rndscaleps_mask, 664 __builtin_ia32_rndscalesd_mask, __builtin_ia32_rndscaless_mask, 665 __builtin_ia32_scalefpd512_mask, __builtin_ia32_scalefps512_mask, 666 __builtin_ia32_scalefsd_mask, __builtin_ia32_scalefss_mask, 667 __builtin_ia32_sqrtpd512_mask, __builtin_ia32_sqrtps512_mask, 668 __builtin_ia32_sqrtsd_mask, __builtin_ia32_sqrtss_mask, 669 __builtin_ia32_subpd512_mask, __builtin_ia32_subps512_mask, 670 __builtin_ia32_subsd_mask, __builtin_ia32_subss_mask, 671 __builtin_ia32_vcvtsd2si32, __builtin_ia32_vcvtsd2si64, 672 __builtin_ia32_vcvtsd2usi32, __builtin_ia32_vcvtsd2usi64, 673 __builtin_ia32_vcvtss2si32, __builtin_ia32_vcvtss2si64, 674 __builtin_ia32_vcvtss2usi32, __builtin_ia32_vcvtss2usi64, 675 __builtin_ia32_vcvttsd2si32, __builtin_ia32_vcvttsd2si64, 676 __builtin_ia32_vcvttsd2usi32, __builtin_ia32_vcvttsd2usi64, 677 __builtin_ia32_vcvttss2si32, __builtin_ia32_vcvttss2si64, 678 __builtin_ia32_vcvttss2usi32, __builtin_ia32_vcvttss2usi64, 679 __builtin_ia32_vfmaddpd512_mask, __builtin_ia32_vfmaddpd512_mask3, 680 __builtin_ia32_vfmaddpd512_maskz, __builtin_ia32_vfmaddps512_mask, 681 __builtin_ia32_vfmaddps512_mask3, __builtin_ia32_vfmaddps512_maskz, 682 __builtin_ia32_vfmaddsd3_mask, __builtin_ia32_vfmaddsd3_mask3, 683 __builtin_ia32_vfmaddsd3_maskz, __builtin_ia32_vfmaddss3_mask, 684 __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, 685 __builtin_ia32_vfmaddsubpd512_mask, 686 __builtin_ia32_vfmaddsubpd512_mask3, 687 __builtin_ia32_vfmaddsubpd512_maskz, 688 __builtin_ia32_vfmaddsubps512_mask, 689 __builtin_ia32_vfmaddsubps512_mask3, 690 __builtin_ia32_vfmaddsubps512_maskz, 691 __builtin_ia32_vfmsubaddpd512_mask3, 692 __builtin_ia32_vfmsubaddps512_mask3, __builtin_ia32_vfmsubpd512_mask3, 693 __builtin_ia32_vfmsubps512_mask3, __builtin_ia32_vfmsubsd3_mask3, 694 __builtin_ia32_vfmsubss3_mask3, __builtin_ia32_vfnmaddpd512_mask, 695 __builtin_ia32_vfnmaddps512_mask, __builtin_ia32_vfnmsubpd512_mask, 696 __builtin_ia32_vfnmsubpd512_mask3, __builtin_ia32_vfnmsubps512_mask, 697 __builtin_ia32_vfnmsubps512_mask3, __builtin_ia32_exp2pd_mask, 698 __builtin_ia32_exp2ps_mask, __builtin_ia32_rcp28pd_mask, 699 __builtin_ia32_rcp28ps_mask, __builtin_ia32_rsqrt28pd_mask, 700 __builtin_ia32_rsqrt28ps_mask, __builtin_ia32_gathersiv16sf, 701 __builtin_ia32_gathersiv8df, __builtin_ia32_gatherdiv16sf, 702 __builtin_ia32_gatherdiv8df, __builtin_ia32_gathersiv16si, 703 __builtin_ia32_gathersiv8di, __builtin_ia32_gatherdiv16si, 704 __builtin_ia32_gatherdiv8di, __builtin_ia32_gatheraltsiv8df , 705 __builtin_ia32_gatheraltdiv8sf , __builtin_ia32_gatheraltsiv8di , 706 __builtin_ia32_gatheraltdiv8si , __builtin_ia32_scattersiv16sf, 707 __builtin_ia32_scattersiv8df, __builtin_ia32_scatterdiv16sf, 708 __builtin_ia32_scatterdiv8df, __builtin_ia32_scattersiv16si, 709 __builtin_ia32_scattersiv8di, __builtin_ia32_scatterdiv16si, 710 __builtin_ia32_scatterdiv8di, __builtin_ia32_gatherpfdps, 711 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdps, 712 __builtin_ia32_scatterpfqps. 713 (ix86_init_mmx_sse_builtins): Handle builtins with AVX512 embeded 714 rounding, builtins for AVX512 gathers/scatters. 715 (ix86_expand_args_builtin): Handle new functions types, add warnings 716 for masked builtins. 717 (ix86_erase_embedded_rounding): Handle patterns with embedded rounding. 718 (ix86_expand_sse_comi_round): Ditto. 719 (ix86_expand_round_builtin): Ditto. 720 (ix86_expand_builtin): Handle AVX512's gathers/scatters and kortest{z}. 721 Call ix86_expand_round_builtin. 722 * config/i386/immintrin.h: Add avx512fintrin.h, avx512erintrin.h, 723 avx512pfintrin.h, avx512cdintrin.h. 724 7252013-12-31 Alexander Ivchenko <alexander.ivchenko@intel.com> 726 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 727 Sergey Lega <sergey.s.lega@intel.com> 728 Anna Tikhonova <anna.tikhonova@intel.com> 729 Ilya Tocar <ilya.tocar@intel.com> 730 Andrey Turetskiy <andrey.turetskiy@intel.com> 731 Ilya Verbin <ilya.verbin@intel.com> 732 Kirill Yukhin <kirill.yukhin@intel.com> 733 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 734 735 * config/i386/i386.c (MAX_CLASSES): Increase number of classes. 736 (classify_argument): Extend for 512 bit vectors. 737 (construct_container): Ditto. 738 (function_arg_advance_32): Ditto. 739 (function_arg_advance_64): Ditto. 740 (function_arg_32): Ditto. 741 (function_arg_64): Ditto. 742 (function_value_32): Ditto. 743 (return_in_memory_32): Ditto. 744 (ix86_gimplify_va_arg): Ditto. 745 (standard_sse_constant_p): Ditto. 746 (standard_sse_constant_opcode): Ditto. 747 (ix86_expand_vector_convert_uns_vsivsf): Ditto. 748 (ix86_build_const_vector): Ditto. 749 (ix86_build_signbit_mask): Ditto. 750 (ix86_expand_sse_cmp): Extend for AVX512. 751 (ix86_expand_sse_movcc): Ditto. 752 (ix86_expand_int_vcond): Ditto. 753 (ix86_expand_vec_perm): Ditto. 754 (ix86_expand_sse_unpack): Ditto. 755 (ix86_builtin_vectorized_function): Ditto. 756 (ix86_vectorize_builtin_gather): Ditto. 757 (avx_vpermilp_parallel): Ditto. 758 (ix86_rtx_costs): Ditto. 759 (ix86_expand_vector_init_duplicate): Ditto. 760 (ix86_expand_vector_init_concat): Ditto. 761 (ix86_expand_vector_init_general): Ditto. 762 (ix86_expand_vector_extract): Ditto. 763 (emit_reduc_half): Ditto. 764 (ix86_vector_mode_supported_p): Ditto. 765 (ix86_emit_swdivsf): Ditto. 766 (ix86_emit_swsqrtsf): Ditto. 767 (expand_vec_perm_1): Ditto. 768 (ix86_vectorize_vec_perm_const_ok): Ditto. 769 (ix86_expand_mul_widen_evenodd): Ditto. 770 (ix86_expand_sse2_mulvxdi3): Ditto. 771 (ix86_preferred_simd_mode): Ditto. 772 (ix86_autovectorize_vector_sizes): Ditto. 773 (ix86_expand_vec_perm_vpermi2): New. 774 (ix86_vector_duplicate_value): Ditto. 775 (IX86_BUILTIN_SQRTPD512, IX86_BUILTIN_EXP2PS, 776 IX86_BUILTIN_SQRTPS_NR512, IX86_BUILTIN_GATHER3ALTDIV16SF, 777 IX86_BUILTIN_GATHER3ALTDIV16SI, IX86_BUILTIN_GATHER3ALTSIV8DF, 778 IX86_BUILTIN_GATHER3ALTSIV8DI, IX86_BUILTIN_GATHER3DIV16SF, 779 IX86_BUILTIN_GATHER3DIV16SI, IX86_BUILTIN_GATHER3DIV8DF, 780 IX86_BUILTIN_GATHER3DIV8DI, IX86_BUILTIN_GATHER3SIV16SF, 781 IX86_BUILTIN_GATHER3SIV16SI, IX86_BUILTIN_GATHER3SIV8DF, 782 IX86_BUILTIN_CEILPD_VEC_PACK_SFIX512, IX86_BUILTIN_CPYSGNPS512, 783 IX86_BUILTIN_CPYSGNPD512, IX86_BUILTIN_FLOORPD_VEC_PACK_SFIX512, 784 IX86_BUILTIN_ROUNDPD_AZ_VEC_PACK_SFIX512): Ditto. 785 * config/i386/sse.md (*mov<mode>_internal): Disable SSE typeless 786 stores vectors > 128bit (AVX*). 787 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto. 788 (<sse2_avx_avx512f>_storedqu<mode>): Extend for AVX-512, disable 789 SSE typeless stores vectors > 128bit (AVX*). 790 (fixuns_trunc<mode><sseintvecmodelower>2): Extend for AVX-512. 791 (vec_pack_ufix_trunc_<mode>): Ditto. 792 (vec_unpacku_float_hi_v16si): New. 793 * tree-vect-stmts.c (vectorizable_load): Support AVX512's gathers. 794 * tree-vectorizer.h (MAX_VECTORIZATION_FACTOR): Extend for 512 bit 795 vectors. 796 7972013-12-31 Chung-Lin Tang <cltang@codesourcery.com> 798 Sandra Loosemore <sandra@codesourcery.com> 799 Based on patches from Altera Corporation 800 801 * config.gcc (nios2-*-*): Add nios2 config targets. 802 * configure.ac (TLS_SECTION_ASM_FLAG): Add nios2 case. 803 ("$cpu_type"): Add nios2 as new cpu type. 804 * configure: Regenerate. 805 * config/nios2/nios2.c: New file. 806 * config/nios2/nios2.h: New file. 807 * config/nios2/nios2-opts.h: New file. 808 * config/nios2/nios2-protos.h: New file. 809 * config/nios2/elf.h: New file. 810 * config/nios2/elf.opt: New file. 811 * config/nios2/linux.h: New file. 812 * config/nios2/nios2.opt: New file. 813 * config/nios2/nios2.md: New file. 814 * config/nios2/predicates.md: New file. 815 * config/nios2/constraints.md: New file. 816 * config/nios2/t-nios2: New file. 817 * common/config/nios2/nios2-common.c: New file. 818 * doc/invoke.texi (Nios II options): Document Nios II specific options. 819 * doc/md.texi (Nios II family): Document Nios II specific constraints. 820 * doc/extend.texi (Function Specific Option Pragmas): Document 821 Nios II supported target pragma functionality. 822 8232013-12-30 Jakub Jelinek <jakub@redhat.com> 824 825 PR tree-optimization/59591 826 * tree-vect-stmts.c (vectorizable_mask_load_store): Fix up handling 827 of modifier = NARROW masked gathers. 828 (permute_vec_elements): Use gimple_get_lhs instead of 829 gimple_assign_lhs. 830 8312013-12-30 Nick Clifton <nickc@redhat.com> 832 Peter Bigot <bigotp@acm.org> 833 834 PR target/59613 835 * stor-layout.c (get_mode_bounds): Use GET_MODE_PRECISION instead 836 of GET_MODE_BITSIZE. 837 8382013-12-30 Nick Clifton <nickc@redhat.com> 839 840 * config/msp430/msp430.c (msp430_print_operand): Rename %B to %b 841 and %A to %Q. Add %A, %B, %C and %D as selectors for 16-bit parts 842 of a 64-bit operand. 843 * config/msp430/msp430.md: Replace uses of %B with %b and uses of 844 %A with %q. 845 8462013-12-30 Felix Yang <felix.yang@huawei.com> 847 848 * ira-costs.c (cost_classes_hasher::equal): Check equality of 849 memcmp and 0 if no difference exists for HV1 and HV2. 850 8512013-12-30 Jakub Jelinek <jakub@redhat.com> 852 853 PR target/59501 854 * config/i386/i386.c (ix86_save_reg): Don't return true for drap_reg 855 if !crtl->stack_realign_needed. 856 (ix86_finalize_stack_realign_flags): If drap_reg isn't live on entry 857 and stack_realign_needed will be false, clear drap_reg and need_drap. 858 Optimize leaf functions that don't need stack frame even if 859 crtl->need_drap. 860 8612013-12-30 H.J. Lu <hongjiu.lu@intel.com> 862 863 PR target/59605 864 * config/i386/i386.c (ix86_expand_set_or_movmem): Create 865 jump_around_label only if it doesn't exist. 866 8672013-12-28 Eric Botcazou <ebotcazou@adacore.com> 868 869 * doc/invoke.texi (output file options): Document -fada-spec-parent. 870 8712013-12-27 Alexander Ivchenko <alexander.ivchenko@intel.com> 872 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 873 Sergey Lega <sergey.s.lega@intel.com> 874 Anna Tikhonova <anna.tikhonova@intel.com> 875 Ilya Tocar <ilya.tocar@intel.com> 876 Andrey Turetskiy <andrey.turetskiy@intel.com> 877 Ilya Verbin <ilya.verbin@intel.com> 878 Kirill Yukhin <kirill.yukhin@intel.com> 879 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 880 881 * config/i386/sse.md (avx512f_fixupimm<mode>_maskz): Extend to support 882 EVEX's RC. 883 (avx512f_sfixupimm<mode>_maskz): Ditto. 884 * config/i386/subst.md (round_saeonly_expand_name): New. 885 (round_saeonly_expand_nimm_predicate): Ditto. 886 (round_saeonly_expand_operand6): Ditto. 887 (round_saeonly_expand): Ditto. 888 8892013-12-27 Alexander Ivchenko <alexander.ivchenko@intel.com> 890 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 891 Sergey Lega <sergey.s.lega@intel.com> 892 Anna Tikhonova <anna.tikhonova@intel.com> 893 Ilya Tocar <ilya.tocar@intel.com> 894 Andrey Turetskiy <andrey.turetskiy@intel.com> 895 Ilya Verbin <ilya.verbin@intel.com> 896 Kirill Yukhin <kirill.yukhin@intel.com> 897 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 898 899 * config/i386/sse.md (avx512f_fmadd_<mode>_maskz): Extend to support 900 EVEX's RC. 901 (avx512f_fmaddsub_<mode>_maskz): Ditto. 902 * config/i386/subst.md (round_expand_name): New. 903 (round_expand_nimm_predicate): Ditto. 904 (round_expand_operand): Ditto. 905 (round_expand): Ditto. 906 9072013-12-27 Alexander Ivchenko <alexander.ivchenko@intel.com> 908 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 909 Sergey Lega <sergey.s.lega@intel.com> 910 Anna Tikhonova <anna.tikhonova@intel.com> 911 Ilya Tocar <ilya.tocar@intel.com> 912 Andrey Turetskiy <andrey.turetskiy@intel.com> 913 Ilya Verbin <ilya.verbin@intel.com> 914 Kirill Yukhin <kirill.yukhin@intel.com> 915 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 916 917 * config/i386/sse.md (<code><mode>3<mask_name>): Extend to support 918 EVEX's SAE mode. 919 (*<code><mode>3_finite<mask_name>): Ditto. 920 (*<code><mode>3<mask_name>): Ditto. 921 (avx512f_cmp<mode>3<mask_scalar_merge_name>): Ditto. 922 (avx512f_vmcmp<mode>3): Ditto. 923 (avx512f_vmcmp<mode>3_mask): Ditto. 924 (<sse>_comi): Ditto. 925 (<sse>_ucomi): Ditto. 926 (sse_cvttss2si): Ditto. 927 (sse_cvttss2siq): Ditto. 928 (<fixsuffix>fix_truncv16sfv16si2<mask_name>): Ditto. 929 (avx512f_vcvttss2usi): Ditto. 930 (avx512f_vcvttss2usiq): Ditto. 931 (avx512f_vcvttsd2usi): Ditto. 932 (avx512f_vcvttsd2usiq): Ditto. 933 (sse2_cvttsd2si): Ditto. 934 (sse2_cvttsd2siq): Ditto. 935 (<fixsuffix>fix_truncv8dfv8si2<mask_name>): Ditto. 936 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix><mask_name>): Ditto. 937 (avx512f_getexp<mode><mask_name>): Ditto. 938 (avx512f_fixupimm<mode><sd_maskz_name>): Ditto. 939 (avx512f_fixupimm<mode>_mask): Ditto. 940 (avx512f_sfixupimm<mode><sd_maskz_name>): Ditto. 941 (avx512f_sfixupimm<mode>_mask): Ditto. 942 (avx512f_rndscale<mode><mask_name>): Ditto. 943 (<mask_codefor>avx512f_vcvtph2ps512<mask_name>): Ditto. 944 (avx512f_getmant<mode><mask_name>): Ditto. 945 * config/i386/subst.md (round_saeonly_name): New. 946 (round_saeonly_mask_operand2): Ditto. 947 (round_saeonly_mask_operand3): Ditto. 948 (round_saeonly_mask_scalar_operand3): Ditto. 949 (round_saeonly_mask_scalar_operand4): Ditto. 950 (round_saeonly_mask_scalar_merge_operand4): Ditto. 951 (round_saeonly_sd_mask_operand5): Ditto. 952 (round_saeonly_op2): Ditto. 953 (round_saeonly_op4): Ditto. 954 (round_saeonly_op5): Ditto. 955 (round_saeonly_op6): Ditto. 956 (round_saeonly_mask_op2): Ditto. 957 (round_saeonly_mask_op3): Ditto. 958 (round_saeonly_mask_scalar_op3): Ditto. 959 (round_saeonly_mask_scalar_op4): Ditto. 960 (round_saeonly_mask_scalar_merge_op4): Ditto. 961 (round_saeonly_sd_mask_op5): Ditto. 962 (round_saeonly_constraint): Ditto. 963 (round_saeonly_constraint2): Ditto. 964 (round_saeonly_nimm_predicate): Ditto. 965 (round_saeonly_mode512bit_condition): Ditto. 966 (round_saeonly): Ditto. 967 9682013-12-27 Alexander Ivchenko <alexander.ivchenko@intel.com> 969 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 970 Sergey Lega <sergey.s.lega@intel.com> 971 Anna Tikhonova <anna.tikhonova@intel.com> 972 Ilya Tocar <ilya.tocar@intel.com> 973 Andrey Turetskiy <andrey.turetskiy@intel.com> 974 Ilya Verbin <ilya.verbin@intel.com> 975 Kirill Yukhin <kirill.yukhin@intel.com> 976 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 977 978 * config/i386/i386.c (ix86_print_operand): Print EVEX's RC modifiers. 979 * config/i386/i386.md (define_constants): Define EVEx's RC constants. 980 * gcc/config/i386/sse.md (<plusminus_insn><mode>3<mask_name>): Extend 981 to support EVEX's rounding control. 982 (*<plusminus_insn><mode>3<mask_name>): Ditto. 983 (mul<mode>3<mask_name>): Ditto. 984 (*mul<mode>3<mask_name>): Ditto. 985 (<sse>_div<mode>3<mask_name>): Ditto. 986 (<sse>_sqrt<mode>2<mask_name>): Ditto. 987 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>): Ditto. 988 (avx512f_fmadd_<mode>_mask): Ditto. 989 (avx512f_fmadd_<mode>_mask3): Ditto. 990 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>): Ditto. 991 (avx512f_fmsub_<mode>_mask): Ditto. 992 (avx512f_fmsub_<mode>_mask3): Ditto. 993 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>): Ditto. 994 (avx512f_fnmadd_<mode>_mask): Ditto. 995 (avx512f_fnmadd_<mode>_mask3): Ditto. 996 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>): Ditto. 997 (avx512f_fnmsub_<mode>_mask): Ditto. 998 (avx512f_fnmsub_<mode>_mask3): Ditto. 999 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name>): Ditto. 1000 (avx512f_fmaddsub_<mode>_mask): Ditto. 1001 (avx512f_fmaddsub_<mode>_mask3): Ditto. 1002 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name>): Ditto. 1003 (avx512f_fmsubadd_<mode>_mask): Ditto. 1004 (avx512f_fmsubadd_<mode>_mask3): Ditto. 1005 (fmai_vmfmadd_<mode>): Ditto. 1006 (*fmai_fmadd_<mode>): Ditto. 1007 (*fmai_fmsub_<mode>): Ditto. 1008 (*fmai_fnmadd_<mode>): Ditto. 1009 (*fmai_fnmsub_<mode>): Ditto. 1010 (sse_cvtsi2ss): Ditto. 1011 (sse_cvtsi2ssq): Ditto. 1012 (sse_cvtss2si): Ditto. 1013 (sse_cvtss2siq): Ditto. 1014 (cvtusi2<ssescalarmodesuffix>32): Ditto. 1015 (cvtusi2<ssescalarmodesuffix>64): Ditto. 1016 (float<sseintvecmodelower><mode>2<mask_name>): Ditto. 1017 (ufloatv16siv16sf2<mask_name>): Ditto. 1018 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name>): Ditto. 1019 (<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name>): Ditto. 1020 (sse2_cvtsi2sdq): Ditto. 1021 (avx512f_vcvtss2usi): Ditto. 1022 (avx512f_vcvtss2usiq): Ditto. 1023 (avx512f_vcvtsd2usi): Ditto. 1024 (avx512f_vcvtsd2usiq): Ditto. 1025 (sse2_cvtsd2si): Ditto. 1026 (sse2_cvtsd2siq): Ditto. 1027 (<mask_codefor>avx512f_cvtpd2dq512<mask_name>): Ditto. 1028 (avx512f_ufix_notruncv8dfv8si<mask_name>): Ditto. 1029 (<mask_codefor>avx512f_cvtpd2ps512<mask_name>): Ditto. 1030 (avx512f_scalef<mode><mask_name>): Ditto. 1031 (<code><mode>3<mask_name>): Ditto. 1032 (*avx2_<code><mode>3<mask_name>): Ditto. 1033 (avx512er_exp2<mode><mask_name): Ditto. 1034 (<mask_codefor>avx512er_rcp28<mode><mask_name>): Ditto. 1035 (<mask_codefor>avx512er_rsqrt28<mode><mask_name>): Ditto. 1036 (avx512f_fmadd_<mode>_maskz): New. 1037 * config/i386/subst.md (SUBST_A): New. 1038 (round_name): Ditto. 1039 (round_mask_operand2): Ditto. 1040 (round_mask_operand3): Ditto. 1041 (round_mask_scalar_operand3): Ditto. 1042 (round_sd_mask_operand4): Ditto. 1043 (round_op2): Ditto. 1044 (round_op3): Ditto. 1045 (round_op4): Ditto. 1046 (round_op5): Ditto. 1047 (round_op6): Ditto. 1048 (round_mask_op2): Ditto. 1049 (round_mask_op3): Ditto. 1050 (round_mask_scalar_op3): Ditto. 1051 (round_sd_mask_op4): Ditto. 1052 (round_constraint): Ditto. 1053 (round_constraint2): Ditto. 1054 (round_constraint3): Ditto. 1055 (round_nimm_predicate): Ditto. 1056 (round_mode512bit_condition): Ditto. 1057 (round_modev4sf_condition): Ditto. 1058 (round_codefor): Ditto. 1059 (round_opnum): Ditto. 1060 (round): Ditto. 1061 10622013-12-26 H.J. Lu <hongjiu.lu@intel.com> 1063 1064 PR target/59588 1065 * config/i386/i386.c (ix86_option_override_internal): Don't 1066 check generic tuning. Don't change i686 tuning. 1067 10682013-12-26 H.J. Lu <hongjiu.lu@intel.com> 1069 1070 PR target/59601 1071 * config/i386/i386.c (get_builtin_code_for_version): Map 1072 PROCESSOR_NEHALEM to "corei7". 1073 10742013-12-26 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> 1075 1076 * config/i386/i386.c (get_builtin_code_for_version): Rename AMD 1077 CPU names M_AMD_BOBCAT to M_AMD_BTVER1 and M_AMD_JAGUAR 1078 to M_AMD_BTVER2. 1079 (processor_model): Likewise. 1080 (arch_names_table): Likewise. 1081 10822013-12-26 Uros Bizjak <ubizjak@gmail.com> 1083 1084 * config/i386/driver-i386.c (decode_caches_intel): Add missing entries. 1085 10862013-12-25 H.J. Lu <hongjiu.lu@intel.com> 1087 1088 PR target/59587 1089 * config/i386/i386.c (struct ptt): Add a field for processor name. 1090 (processor_target_table): Sync with processor_type. 1091 Add processor names. 1092 (cpu_names): Removed. 1093 (ix86_option_override_internal): Default x_ix86_tune_string 1094 to processor_target_table[TARGET_CPU_DEFAULT].name. 1095 (ix86_function_specific_print): Assert arch and tune < PROCESSOR_max. 1096 Use processor_target_table to print arch and tune names. 1097 * config/i386/i386.h (TARGET_CPU_DEFAULT): Default to 1098 PROCESSOR_GENERIC. 1099 (target_cpu_default): Removed. 1100 (processor_type): Reordered. 1101 11022013-12-25 Allan Sandfeld Jensen <sandfeld@kde.org> 1103 H.J. Lu <hongjiu.lu@intel.com> 1104 1105 PR target/59422 1106 * config/i386/i386.c (get_builtin_code_for_version): Handle 1107 PROCESSOR_HASWELL, PROCESSOR_SILVERMONT, PROCESSOR_BTVER1, 1108 PROCESSOR_BTVER2, PROCESSOR_BDVER3 and PROCESSOR_BDVER4. 1109 Change priority of PROCESSOR_BDVER1 to P_PROC_XOP. 1110 (fold_builtin_cpu): Add "ivybridge", "haswell", "bonnell", 1111 "silvermont", "bobcat" and "jaguar" CPU names. Add "sse4a", 1112 "fma4", "xop" and "fma" ISA names. 1113 11142013-12-24 H.J. Lu <hongjiu.lu@intel.com> 1115 1116 * config/i386/i386.c (ix86_option_override_internal): Check 1117 opts->x_ix86_arch_string instead of ix86_arch_string. 1118 11192013-12-24 Renlin Li <Renlin.Li@arm.com> 1120 1121 * config/arm/arm-protos.h (vfp_const_double_for_bits): Declare. 1122 * config/arm/constraints.md (Dp): Define new constraint. 1123 * config/arm/predicates.md (const_double_vcvt_power_of_two): Define 1124 new predicate. 1125 * config/arm/arm.c (arm_print_operand): Add print for new fucntion. 1126 (vfp3_const_double_for_bits): New function. 1127 * config/arm/vfp.md (combine_vcvtf2i): Define new instruction. 1128 11292013-12-23 Hans-Peter Nilsson <hp@axis.com> 1130 1131 PR target/59203 1132 * config/cris/cris.c (cris_pic_symbol_type_of): Fix typo, 1133 checking t1 twice instead of t1 and t2 respectively. 1134 1135 PR middle-end/59584 1136 * config/cris/predicates.md (cris_nonsp_register_operand): 1137 New define_predicate. 1138 * config/cris/cris.md: Replace register_operand with 1139 cris_nonsp_register_operand for destinations in all 1140 define_splits where a register is set more than once. 1141 11422013-12-23 Jason Merrill <jason@redhat.com> 1143 1144 * gdbinit.in (input_line, input_filename): Define. 1145 1146 * cgraph.h (struct cgraph_node): Add calls_comdat_local. 1147 (symtab_comdat_local_p, symtab_in_same_comdat_p): New. 1148 * cif-code.def: Add USES_COMDAT_LOCAL. 1149 * symtab.c (verify_symtab_base): Make sure we don't refer to a 1150 comdat-local symbol from outside its comdat. 1151 * cgraph.c (verify_cgraph_node): Likewise. 1152 * cgraphunit.c (mark_functions_to_output): Don't mark comdat-locals. 1153 * ipa.c (symtab_remove_unreachable_nodes): Likewise. 1154 (function_and_variable_visibility): Handle comdat-local fns. 1155 * ipa-cp.c (determine_versionability): Don't clone comdat-locals. 1156 * ipa-inline-analysis.c (compute_inline_parameters): Update 1157 calls_comdat_local. 1158 * ipa-inline-transform.c (inline_call): Likewise. 1159 (save_inline_function_body): Don't clear DECL_COMDAT_GROUP. 1160 * ipa-inline.c (can_inline_edge_p): Check calls_comdat_local. 1161 * lto-cgraph.c (input_overwrite_node): Read calls_comdat_local. 1162 (lto_output_node): Write it. 1163 * symtab.c (symtab_dissolve_same_comdat_group_list): Clear 1164 DECL_COMDAT_GROUP for comdat-locals. 1165 11662013-12-23 H.J. Lu <hongjiu.lu@intel.com> 1167 1168 * config/i386/i386.c (processor_target_table): Move Bonnell and 1169 Silvermont entries before generic. 1170 11712013-12-23 Bingfeng Mei <bmei@broadcom.com> 1172 1173 PR middle-end/59569 1174 * tree-vect-stmts.c (vectorizable_store): Skip permutation for 1175 consant/external operand, and add a few missing \n. 1176 11772013-12-23 H.J. Lu <hongjiu.lu@intel.com> 1178 Tocar Ilya <ilya.tocar@intel.com> 1179 1180 * config/i386/core2.md: Replace corei7 with nehalem. 1181 1182 * config/i386/driver-i386.c (host_detect_local_cpu): Use nehalem, 1183 westmere, sandybridge, ivybridge, haswell, bonnell, silvermont 1184 for cpu names. 1185 1186 * config/i386/i386-c.c (ix86_target_macros_internal): Replace 1187 PROCESSOR_COREI7, PROCESSOR_COREI7_AVX, PROCESSOR_ATOM, 1188 PROCESSOR_SLM with PROCESSOR_NEHALEM, PROCESSOR_SANDYBRIDGE, 1189 PROCESSOR_BONNELL, PROCESSOR_SILVERMONT. Define 1190 __nehalem/__nehalem__, __sandybridge/__sandybridge__, 1191 __haswell/__haswell__, __tune_nehalem__, __tune_sandybridge__, 1192 __tune_haswell__, __bonnell/__bonnell__, 1193 __silvermont/__silvermont__, __tune_bonnell__, 1194 __tune_silvermont__. 1195 1196 * config/i386/i386.c (m_COREI7): Renamed to ... 1197 (m_NEHALEM): This. 1198 (m_COREI7_AVX): Renamed to ... 1199 (m_SANDYBRIDGE): This. 1200 (m_ATOM): Renamed to ... 1201 (m_BONNELL): This. 1202 (m_SLM): Renamed to ... 1203 (m_SILVERMONT): This. 1204 (m_CORE_ALL): Updated. 1205 (cpu_names): Add "nehalem", "westmere", "sandybridge", 1206 "ivybridge", "haswell", "broadwell", "bonnell", "silvermont". 1207 (PTA_CORE2): New. 1208 (PTA_NEHALEM): Likewise. 1209 (PTA_WESTMERE): Likewise. 1210 (PTA_SANDYBRIDGE): Likewise. 1211 (PTA_IVYBRIDGE): Likewise. 1212 (PTA_HASWELL): Likewise. 1213 (PTA_BROADWELL): Likewise. 1214 (PTA_BONNELL): Likewise. 1215 (PTA_SILVERMONT): Likewise. 1216 (ix86_option_override_internal): Use new PTA_XXX. Add nehalem, 1217 westmere, sandybridge, ivybridge, haswell, bonnell, silvermont. 1218 (ix86_lea_outperforms): Updated. 1219 (ix86_issue_rate): Likewise. 1220 (ix86_adjust_cost): Likewise. 1221 (ia32_multipass_dfa_lookahead): Likewise. 1222 (do_reorder_for_imul): Likewise. 1223 (swap_top_of_ready_list): Likewise. 1224 (ix86_sched_reorder): Likewise. 1225 (ix86_sched_init_global): Likewise. 1226 (get_builtin_code_for_version): Likewise. 1227 (processor_model): Replace M_INTEL_ATOM, M_INTEL_SLM with 1228 M_INTEL_BONNELL, M_INTEL_SILVERMONT. 1229 (arch_names_table): Updated. 1230 1231 * config/i386/i386.h (TARGET_COREI7): Removed. 1232 (TARGET_COREI7_AVX): Likewise. 1233 (TARGET_ATOM): Likewise. 1234 (TARGET_SLM): Likewise. 1235 (TARGET_NEHALEM): New. 1236 (TARGET_SANDYBRIDGE): Likewise. 1237 (TARGET_BONNELL): Likewise. 1238 (TARGET_SILVERMONT): Likewise. 1239 (target_cpu_default): Add TARGET_CPU_DEFAULT_core_avx2, 1240 TARGET_CPU_DEFAULT_nehalem, TARGET_CPU_DEFAULT_westmere, 1241 TARGET_CPU_DEFAULT_sandybridge, TARGET_CPU_DEFAULT_ivybridge, 1242 TARGET_CPU_DEFAULT_broadwell, TARGET_CPU_DEFAULT_bonnell, 1243 TARGET_CPU_DEFAULT_silvermont. Move TARGET_CPU_DEFAULT_haswell 1244 before TARGET_CPU_DEFAULT_broadwell. 1245 (processor_type): Replace PROCESSOR_COREI7, PROCESSOR_COREI7_AVX, 1246 PROCESSOR_ATOM, PROCESSOR_SLM with PROCESSOR_NEHALEM, 1247 PROCESSOR_SANDYBRIDGE, PROCESSOR_BONNELL, PROCESSOR_SILVERMONT. 1248 1249 * config/i386/i386.md (cpu): Replace corei7 with nehalem. 1250 1251 * config/i386/x86-tune.def: Updated. 1252 1253 * doc/invoke.texi: Replace corei7, corei7-avx, core-avx-i, 1254 core-avx2, atom, slm with nehalem, sandybridge, ivybridge, 1255 haswell, bonnel, silvermont. Add westmere. 1256 12572013-12-23 Andrey Belevantsev <abel@ispras.ru> 1258 1259 PR rtl-optimization/57422 1260 * sel-sched.c (fill_vec_av_set): Assert that the fence insn 1261 can always be scheduled in its current form. 1262 12632013-12-23 Andrey Belevantsev <abel@ispras.ru> 1264 1265 PR rtl-optimization/57422 1266 * sel-sched.c (mark_unavailable_hard_regs): Fix typo when calling 1267 add_to_hard_reg_set. 1268 12692013-12-20 Sharad Singhai <singhai@google.com> 1270 1271 * Makefile.in: Add optinfo.texi. 1272 * doc/invoke.texi: Fix typo. 1273 * doc/optinfo.texi: New documentation for optimization info. 1274 * doc/passes.texi: Add new node. 1275 12762013-12-20 Trevor saunders <tsaunders@mozilla.com> 1277 1278 * vec.h (stack_vec): Convert to a templaate specialization of 1279 auto_vec. 1280 * config/i386/i386.c, df-scan.c, function.c, genautomata.c, 1281 gimplify.c, graphite-clast-to-gimple.c, graphite-dependences.c, 1282 graphite-scop-detection.c, graphite-sese-to-poly.c, hw-doloop.c, 1283 trans-mem.c, tree-call-cdce.c, tree-data-ref.c, tree-dfa.c, 1284 tree-if-conv.c, tree-inline.c, tree-loop-distribution.c, 1285 tree-parloops.c, tree-predcom.c, tree-ssa-alias.c, 1286 tree-ssa-loop-ivcanon.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c, 1287 tree-ssa-uncprop.c, tree-vect-loop.c, tree-vect-patterns.c, 1288 tree-vect-slp.c, tree-vect-stmts.c, var-tracking.c: Adjust. 1289 12902013-12-20 Eric Botcazou <ebotcazou@adacore.com> 1291 1292 * config/arm/arm.c (arm_expand_prologue): In a nested APCS frame with 1293 arguments to push onto the stack and no varargs, save ip into the last 1294 stack slot if r3 isn't available on entry. 1295 12962013-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1297 1298 * config/arm/neon.ml (crypto_intrinsics): Add vceq_64 and vtst_p64. 1299 * config/arm/arm_neon.h: Regenerate. 1300 * config/arm/neon-docgen.ml: Add vceq_p64 and vtst_p64. 1301 * doc/arm-neon-intrinsics.texi: Regenerate. 1302 13032013-12-20 Vladimir Makarov <vmakarov@redhat.com> 1304 1305 * config/arm/arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Return 1306 NO_REGS for LRA. 1307 13082013-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1309 1310 * config/arm/arm_acle.h: Add underscores before variables. 1311 13122013-12-20 Bingfeng Mei <bmei@broadcom.com> 1313 1314 PR tree-optimization/59544 1315 * tree-vect-stmts.c (perm_mask_for_reverse): Move before 1316 vectorizable_store. 1317 (vectorizable_store): Handle negative step. 1318 13192013-12-20 Tocar Ilya <ilya.tocar@intel.com> 1320 1321 * config.gcc: Support march=broadwell. 1322 * config/i386/driver-i386.c (host_detect_local_cpu): Detect Broadwell. 1323 * config/i386/i386.c (ix86_option_override_internal): Add broadwell. 1324 * doc/invoke.texi: Document march=broadwell. 1325 13262013-12-20 Jakub Jelinek <jakub@redhat.com> 1327 1328 * ubsan.c: Include tree-ssanames.h, asan.h and gimplify-me.h. 1329 (ubsan_type_descriptor): Handle BOOLEAN_TYPE and ENUMERAL_TYPE 1330 like INTEGER_TYPE. 1331 (instrument_bool_enum_load): New function. 1332 (ubsan_pass): Call it. 1333 (gate_ubsan): Also enable for SANITIZE_BOOL or SANITIZE_ENUM. 1334 * asan.c (create_cond_insert_point): No longer static. 1335 * asan.h (create_cond_insert_point): Declare. 1336 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE): New 1337 built-in. 1338 * opts.c (common_handle_option): Handle -fsanitize=bool and 1339 -fsanitize=enum. 1340 * builtins.c (fold_builtin_memory_op): When sanitizing bool 1341 and enum loads, don't use enum or bool types for memcpy folding. 1342 * flag-types.h (SANITIZE_BOOL, SANITIZE_ENUM): New. 1343 (SANITIZE_UNDEFINED): Or these in. 1344 13452013-12-20 Chung-Ju Wu <jasonwucj@gmail.com> 1346 1347 * config/nds32/nds32.h (NDS32_MODE_TYPE_ALIGN): New macro. 1348 (NDS32_AVAILABLE_REGNUM_FOR_ARG): Use more accurate alignment checking 1349 to determine available register number. 1350 * config/nds32/nds32.c (nds32_needs_double_word_align): Use new 1351 macro NDS32_MODE_TYPE_ALIGN. 1352 (nds32_function_arg): Refine code layout. 1353 13542013-12-19 Jeff Law <law@redhat.com> 1355 1356 * doc/invoke.texi: (dump-rtl-ree): Fix typo and clarify ree 1357 handles both zero and sign extension. 1358 13592013-12-19 Teresa Johnson <tejohnson@google.com> 1360 1361 PR gcov-profile/59542 1362 * bb-reorder.c (duplicate_computed_gotos): Invoke fixup_partitions 1363 if we have made any changes. 1364 13652013-12-19 Jakub Jelinek <jakub@redhat.com> 1366 1367 PR other/59545 1368 * genattrtab.c (struct attr_hash): Change hashcode type to unsigned. 1369 (attr_hash_add_rtx, attr_hash_add_string): Change hashcode parameter 1370 to unsigned. 1371 (attr_rtx_1): Change hashcode variable to unsigned. 1372 (attr_string): Likewise. Perform first multiplication in 1373 unsigned type. 1374 * ifcvt.c (noce_try_store_flag_constants): Avoid signed integer 1375 overflows. 1376 * double-int.c (neg_double): Likewise. 1377 * stor-layout.c (set_min_and_max_values_for_integral_type): Likewise. 1378 * combine.c (force_to_mode): Likewise. 1379 * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn, 1380 reload_cse_move2add, move2add_note_store): Likewise. 1381 * simplify-rtx.c (simplify_const_unary_operation, 1382 simplify_const_binary_operation): Likewise. 1383 * ipa-split.c (find_split_points): Initialize first.can_split 1384 and first.non_ssa_vars. 1385 * gengtype-state.c (read_state_files_list): Fix up check. 1386 * genautomata.c (reserv_sets_hash_value): Use portable rotation idiom. 1387 13882013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1389 1390 * config/arm/neon-docgen.ml: Add crypto intrinsics documentation. 1391 * doc/arm-neon-intrinsics.texi: Regenerate. 1392 13932013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1394 1395 * config/arm/neon-testgen.ml (effective_target): Handle "CRYPTO". 1396 13972013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1398 1399 * config/arm/arm.c (enum arm_builtins): Add crypto builtins. 1400 (arm_init_neon_builtins): Handle crypto builtins. 1401 (bdesc_2arg): Likewise. 1402 (bdesc_1arg): Likewise. 1403 (bdesc_3arg): New table. 1404 (arm_expand_ternop_builtin): New function. 1405 (arm_expand_unop_builtin): Handle sha1h explicitly. 1406 (arm_expand_builtin): Handle ternary builtins. 1407 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): 1408 Define __ARM_FEATURE_CRYPTO. 1409 * config/arm/arm.md: Include crypto.md. 1410 (is_neon_type): Add crypto types. 1411 * config/arm/arm_neon_builtins.def: Add TImode reinterprets. 1412 * config/arm/crypto.def: New. 1413 * config/arm/crypto.md: Likewise. 1414 * config/arm/iterators.md (CRYPTO_UNARY): New int iterator. 1415 (CRYPTO_BINARY): Likewise. 1416 (CRYPTO_TERNARY): Likewise. 1417 (CRYPTO_SELECTING): Likewise. 1418 (crypto_pattern): New int attribute. 1419 (crypto_size_sfx): Likewise. 1420 (crypto_mode): Likewise. 1421 (crypto_type): Likewise. 1422 * config/arm/neon-gen.ml: Handle poly64_t and poly128_t types. 1423 Handle crypto intrinsics. 1424 * config/arm/neon.ml: Add support for poly64 and polt128 types 1425 and intrinsics. Define crypto intrinsics. 1426 * config/arm/neon.md (neon_vreinterpretti<mode>): New pattern. 1427 (neon_vreinterpretv16qi<mode>): Use VQXMOV mode iterator. 1428 (neon_vreinterpretv8hi<mode>): Likewise. 1429 (neon_vreinterpretv4si<mode>): Likewise. 1430 (neon_vreinterpretv4sf<mode>): Likewise. 1431 (neon_vreinterpretv2di<mode>): Likewise. 1432 * config/arm/unspecs.md (UNSPEC_AESD, UNSPEC_AESE, UNSPEC_AESIMC) 1433 (UNSPEC_AESMC, UNSPEC_SHA1C, UNSPEC_SHA1M, UNSPEC_SHA1P, UNSPEC_SHA1H) 1434 (UNSPEC_SHA1SU0, UNSPEC_SHA1SU1, UNSPEC_SHA256H, UNSPEC_SHA256H2) 1435 (UNSPEC_SHA256SU0, UNSPEC_SHA256SU1, VMULLP64): Define. 1436 * config/arm/arm_neon.h: Regenerate. 1437 14382013-12-19 H.J. Lu <hongjiu.lu@intel.com> 1439 1440 PR driver/59321 1441 * collect2.c (main): Check -fuse-ld=[bfd|gold] when 1442 DEFAULT_LINKER is defined. 1443 * common.opt (fuse-ld=bfd): Add Driver. 1444 (fuse-ld=gold): Likewise. 1445 * gcc.c (use_ld): New variable. 1446 (driver_handle_option): Set use_ld for OPT_fuse_ld_bfd and 1447 OPT_fuse_ld_gold. 1448 (main): Check -fuse-ld=[bfd|gold] for -print-prog-name=ld. 1449 14502013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1451 1452 * Makefile.in (TEXI_GCC_FILES): Add arm-acle-intrinsics.texi. 1453 * config.gcc (extra_headers): Add arm_acle.h. 1454 * config/arm/arm.c (FL_CRC32): Define. 1455 (arm_have_crc): Likewise. 1456 (arm_option_override): Set arm_have_crc. 1457 (arm_builtins): Add CRC32 builtins. 1458 (bdesc_2arg): Likewise. 1459 (arm_init_crc32_builtins): New function. 1460 (arm_init_builtins): Initialise CRC32 builtins. 1461 (arm_file_start): Handle architecture extensions. 1462 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define 1463 __ARM_FEATURE_CRC32. Define __ARM_32BIT_STATE. 1464 (TARGET_CRC32): Define. 1465 * config/arm/arm-arches.def: Add armv8-a+crc. 1466 * config/arm/arm-tables.opt: Regenerate. 1467 * config/arm/arm.md (type): Add crc. 1468 (<crc_variant>): New insn. 1469 * config/arm/arm_acle.h: New file. 1470 * config/arm/iterators.md (CRC): New int iterator. 1471 (crc_variant, crc_mode): New int attributes. 1472 * confg/arm/unspecs.md (UNSPEC_CRC32B, UNSPEC_CRC32H, UNSPEC_CRC32W, 1473 UNSPEC_CRC32CB, UNSPEC_CRC32CH, UNSPEC_CRC32CW): New unspecs. 1474 * doc/invoke.texi: Document -march=armv8-a+crc option. 1475 * doc/extend.texi: Document ACLE intrinsics. 1476 14772013-12-19 Charles Baylis <charles.baylis@linaro.org> 1478 1479 PR target/59142 1480 * config/arm/arm-ldmstm.ml: Use low_register_operand for Thumb 1481 patterns. 1482 * config/arm/ldmstm.md: Regenerate. 1483 14842013-12-19 Charles Baylis <charles.baylis@linaro.org> 1485 1486 PR target/59142 1487 * config/arm/predicates.md (arm_hard_general_register_operand): 1488 New predicate. 1489 (arm_hard_register_operand): Remove. 1490 * config/arm/arm-ldmstm.ml: Use arm_hard_general_register_operand 1491 for all patterns. 1492 * config/arm/ldmstm.md: Regenerate. 1493 14942013-12-19 Charles Baylis <charles.baylis@linaro.org> 1495 1496 PR target/59142 1497 * config/arm/predicates.md (vfp_hard_register_operand): New predicate. 1498 * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use 1499 vfp_hard_register_operand. 1500 15012013-12-19 Tejas Belagod <tejas.belagod@arm.com> 1502 1503 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins): 1504 Define builtin types for poly64_t poly128_t. 1505 (TYPES_BINOPP, aarch64_types_binopp_qualifiers): New. 1506 * aarch64/aarch64-simd-builtins.def: Update builtins table. 1507 * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi, 1508 aarch64_crypto_pmullv2di): New. 1509 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Update table for 1510 poly64x2_t mangler. 1511 * config/aarch64/arm_neon.h (poly64x2_t, poly64_t, poly128_t): Define. 1512 (vmull_p64, vmull_high_p64): New. 1513 * config/aarch64/iterators.md (UNSPEC_PMULL<2>): New. 1514 15152013-12-19 Tejas Belagod <tejas.belagod@arm.com> 1516 1517 * config/aarch64/aarch64-simd-builtins.def: Update builtins table. 1518 * config/aarch64/aarch64-simd.md 1519 (aarch64_crypto_sha256h<sha256_op>v4si, aarch64_crypto_sha256su0v4si, 1520 aarch64_crypto_sha256su1v4si): New. 1521 * config/aarch64/arm_neon.h (vsha256hq_u32, vsha256h2q_u32, 1522 vsha256su0q_u32, vsha256su1q_u32): New. 1523 * config/aarch64/iterators.md (UNSPEC_SHA256H<2>, UNSPEC_SHA256SU<01>): 1524 New. 1525 (CRYPTO_SHA256): New int iterator. 1526 (sha256_op): New int attribute. 1527 15282013-12-19 Tejas Belagod <tejas.belagod@arm.com> 1529 1530 * config/aarch64/aarch64-simd-builtins.def: Update builtins table. 1531 * config/aarch64/aarch64-builtins.c (aarch64_types_ternopu_qualifiers, 1532 TYPES_TERNOPU): New. 1533 * config/aarch64/aarch64-simd.md (aarch64_crypto_sha1hsi, 1534 aarch64_crypto_sha1su1v4si, aarch64_crypto_sha1<sha1_op>v4si, 1535 aarch64_crypto_sha1su0v4si): New. 1536 * config/aarch64/arm_neon.h (vsha1cq_u32, sha1mq_u32, vsha1pq_u32, 1537 vsha1h_u32, vsha1su0q_u32, vsha1su1q_u32): New. 1538 * config/aarch64/iterators.md (UNSPEC_SHA1<CPMH>, UNSPEC_SHA1SU<01>): 1539 New. 1540 (CRYPTO_SHA1): New int iterator. 1541 (sha1_op): New int attribute. 1542 15432013-12-19 Tejas Belagod <tejas.belagod@arm.com> 1544 1545 * config/aarch64/aarch64-simd-builtins.def: Update builtins table. 1546 * config/aarch64/aarch64-builtins.c (aarch64_types_binopu_qualifiers, 1547 TYPES_BINOPU): New. 1548 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi, 1549 aarch64_crypto_aes<aesmc_op>v16qi): New. 1550 * config/aarch64/arm_neon.h (vaeseq_u8, vaesdq_u8, vaesmcq_u8, 1551 vaesimcq_u8): New. 1552 * config/aarch64/iterators.md (UNSPEC_AESE, UNSPEC_AESD, UNSPEC_AESMC, 1553 UNSPEC_AESIMC): New. 1554 (CRYPTO_AES, CRYPTO_AESMC): New int iterators. 1555 (aes_op, aesmc_op): New int attributes. 1556 15572013-12-19 Tejas Belagod <tejas.belagod@arm.com> 1558 1559 * config/arm/types.md (neon_mul_d_long, crypto_aes, crypto_sha1_xor, 1560 crypto_sha1_fast, crypto_sha1_slow, crypto_sha256_fast, 1561 crypto_sha256_slow): New. 1562 15632013-12-19 Tejas Belagod <tejas.belagod@arm.com> 1564 1565 * config/aarch64/aarch64.h (TARGET_CRYPTO): New. 1566 (__ARM_FEATURE_CRYPTO): Define if TARGET_CRYPTO is true. 1567 15682013-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com> 1569 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 1570 1571 * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default): New 1572 constant. 1573 (s390_hotpatch_trampoline_halfwords_max): New constant. 1574 (s390_hotpatch_trampoline_halfwords): New static variable. 1575 (get_hotpatch_attribute): New function. 1576 (s390_handle_hotpatch_attribute): New function. 1577 (s390_attribute_table): New target specific attribute table to 1578 implement the hotpatch attribute. 1579 (s390_option_override): Parse hotpatch options. 1580 (s390_function_num_hotpatch_trampoline_halfwords): New function. 1581 (s390_can_inline_p): Implement target hook to 1582 suppress hotpatching for explicitly inlined functions. 1583 (s390_asm_output_function_label): Generate hotpatch prologue. 1584 (TARGET_ATTRIBUTE_TABLE): Define to implement target attribute table. 1585 (TARGET_CAN_INLINE_P): Define to implement target hook. 1586 * config/s390/s390.opt (mhotpatch): New options -mhotpatch, 1587 -mhotpatch=. 1588 * config/s390/s390-protos.h (s390_asm_output_function_label): Add 1589 prototype. 1590 * config/s390/s390.h (ASM_OUTPUT_FUNCTION_LABEL): Target specific 1591 function label generation for hotpatching. 1592 (FUNCTION_BOUNDARY): Align functions to eight bytes. 1593 * doc/extend.texi: Document hotpatch attribute. 1594 * doc/invoke.texi: Document -mhotpatch option. 1595 15962013-12-19 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> 1597 1598 * config/i386/i386.c: Include cfgloop.h. 1599 (ix86_loop_memcount): New function. 1600 (ix86_loop_unroll_adjust): New function. 1601 (TARGET_LOOP_UNROLL_ADJUST): Define. 1602 * config/i386/i386.h 1603 (TARGET_ADJUST_UNROLL): Define. 1604 * config/i386/x86-tune.def 1605 (X86_TUNE_ADJUST_UNROLL): Define. 1606 16072013-12-19 Marek Polacek <polacek@redhat.com> 1608 1609 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Remove 1610 variable alg. Use index variable i directly. 1611 16122013-12-19 Eric Botcazou <ebotcazou@adacore.com> 1613 1614 * print-tree.c (print_node) <case tcc_type>: Print no_force_blk_flag 1615 for all types. 1616 16172013-12-19 Monk Chiang <sh.chiang04@gmail.com> 1618 1619 * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS): 1620 Consider TARGET_CPU_DEFAULT settings. 1621 16222013-12-18 James Greenhalgh <james.greenhalgh@arm.com> 1623 1624 * config/aarch64/aarch64-cores.def: Add support for 1625 -mcpu=cortex-a57.cortex-a53. 1626 * config/aarch64/aarch64-tune.md: Regenerate. 1627 * doc/invoke.texi: Document -mcpu=cortex-a57.cortex-a53. 1628 16292013-12-18 James Greenhalgh <james.greenhalgh@arm.com> 1630 1631 * config/aarch64/aarch64-cores.def: Add new column for SCHEDULER_IDENT. 1632 * config/aarch64/aarch64-opts.h (AARCH64_CORE): Handle SCHEDULER_IDENT. 1633 * config/aarch64/aarch64.c (AARCH64_CORE): Handle SCHEDULER_IDENT. 1634 (aarch64_parse_cpu): mcpu implies a default value for mtune. 1635 * config/aarch64/aarch64.h (AARCH64_CORE): Handle SCHEDULER_IDENT. 1636 16372013-12-18 James Greenhalgh <james.greenhalgh@arm.com> 1638 1639 * common/config/aarch64/aarch64-common.c 1640 (aarch64_rewrite_selected_cpu): New. 1641 (aarch64_rewrite_mcpu): New. 1642 * config/aarch64/aarch64-protos.h 1643 (aarch64_rewrite_selected_cpu): New. 1644 * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): New. 1645 (BIG_LITTLE_SPEC_FUNCTIONS): Likewise. 1646 (ASM_CPU_SPEC): Likewise. 1647 (EXTRA_SPEC_FUNCTIONS): Likewise. 1648 (EXTRA_SPECS): Likewise. 1649 (ASM_SPEC): Likewise. 1650 * config/aarch64/aarch64.c (aarch64_start_file): Rewrite target 1651 CPU name. 1652 16532013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com> 1654 1655 * omp-low.c (simd_clone_clauses_extract): Replaced the string 1656 "cilk simd elemental" with "cilk simd function." 1657 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): 1658 Removed a carriage-return from a warning string. 1659 16602013-12-18 Aldy Hernandez <aldyh@redhat.com> 1661 1662 * passes.c (execute_function_dump): Set graph_dump_initialized 1663 appropriately. 1664 (pass_init_dump_file): Similarly. 1665 (execute_one_pass): Pass new argument to do_per_function. 1666 * tree-pass.h (class opt_pass): New field graph_dump_initialized. 1667 16682013-12-18 Aldy Hernandez <aldyh@redhat.com> 1669 1670 * doc/tree-ssa.texi (SSA Operands): Remove reference to 1671 SSA_OP_VMAYUSE. 1672 Synchronize SSA_OP* definitions with source. 1673 * ssa-iterators.h: Fix comment for FOR_EACH_IMM_USE_STMT. 1674 Add not to SSA_OP* macro definitions. 1675 16762013-12-18 Jakub Jelinek <jakub@redhat.com> 1677 1678 PR target/59539 1679 * config/i386/sse.md 1680 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>, 1681 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): New expanders, 1682 prefix existing define_insn names with *. 1683 16842013-12-18 Eric Botcazou <ebotcazou@adacore.com> 1685 1686 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Fix thinko. 1687 16882013-12-18 James Greenhalgh <james.greenhalgh@arm.com> 1689 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1690 1691 * config/arm/t-aprofile: Add cortex-a15.cortex-a7, cortex-a12, 1692 cortex-a57, cortex-a57.cortex-a53. 1693 16942013-12-18 Eric Botcazou <ebotcazou@adacore.com> 1695 1696 PR debug/59418 1697 * dwarf2cfi.c (dwarf2out_frame_debug_cfa_offset): Fix comment and tidy. 1698 (dwarf2out_frame_debug_cfa_restore): Handle TARGET_DWARF_REGISTER_SPAN. 1699 (dwarf2out_frame_debug_expr): Tidy. 1700 17012013-12-18 Alexander Ivchenko <alexander.ivchenko@intel.com> 1702 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 1703 Sergey Lega <sergey.s.lega@intel.com> 1704 Anna Tikhonova <anna.tikhonova@intel.com> 1705 Ilya Tocar <ilya.tocar@intel.com> 1706 Andrey Turetskiy <andrey.turetskiy@intel.com> 1707 Ilya Verbin <ilya.verbin@intel.com> 1708 Kirill Yukhin <kirill.yukhin@intel.com> 1709 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 1710 1711 * config/i386/sse.md (*fma_fmadd_<mode>): Extend to support masking. 1712 (*fma_fmsub_<mode>): Ditto. 1713 (*fma_fnmadd_<mode>): Ditto. 1714 (*fma_fnmsub_<mode>): Ditto. 1715 (*fma_fmaddsub_<mode>): Ditto. 1716 (*fma_fmsubadd_<mode>): Ditto. 1717 (avx512f_vternlog<mode>): Ditto. 1718 (avx512f_fixupimm<mode>): Ditto. 1719 (avx512f_sfixupimm<mode>): Ditto. 1720 (avx512f_vpermi2var<mode>3): Ditto. 1721 (avx512f_vpermt2var<mode>3): Ditto. 1722 (avx512f_fmaddsub_<mode>_maskz): New. 1723 (avx512f_vternlog<mode>_maskz): Ditto. 1724 (avx512f_fixupimm<mode>_maskz): Ditto. 1725 (avx512f_sfixupimm<mode>_maskz): Ditto. 1726 (avx512f_vpermi2var<mode>3_maskz): Ditto. 1727 (avx512f_vpermt2var<mode>3_maskz): Ditto. 1728 (avx512f_expand<mode>_maskz): Ditto. 1729 * config/i386/subst.md (sd_maskz_name): Ditto. 1730 (sd_mask_op4): Ditto. 1731 (sd_mask_op5): Ditto. 1732 (sd_mask_codefor): Ditto. 1733 (sd_mask_mode512bit_condition): Ditto. 1734 (sd): Ditto. 1735 17362013-12-18 Alexander Ivchenko <alexander.ivchenko@intel.com> 1737 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 1738 Sergey Lega <sergey.s.lega@intel.com> 1739 Anna Tikhonova <anna.tikhonova@intel.com> 1740 Ilya Tocar <ilya.tocar@intel.com> 1741 Andrey Turetskiy <andrey.turetskiy@intel.com> 1742 Ilya Verbin <ilya.verbin@intel.com> 1743 Kirill Yukhin <kirill.yukhin@intel.com> 1744 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 1745 1746 * config/i386/sse.md (avx512f_cmp<mode>3): Extend to support masking. 1747 (avx512f_ucmp<mode>3): Ditto. 1748 (avx512f_eq<mode>3): Ditto. 1749 (avx512f_gt<mode>3): Ditto. 1750 (avx512f_testm<mode>3): Ditto. 1751 (avx512f_testnm<mode>3): Ditto. 1752 * config/i386/subst.md (SUBST_S): New. 1753 (mask_scalar_merge_name): Ditto. 1754 (mask_scalar_merge_operand3): Ditto. 1755 (mask_scalar_merge_operand4): Ditto. 1756 (mask_scalar_merge): Ditto. 1757 17582013-12-17 Jan Hubicka <hubicka@ucw.cz> 1759 1760 PR middle-end/35545 1761 * gimple-fold.c (fold_gimple_assign): Attempt to devirtualize 1762 OBJ_TYPE_REF. 1763 (gimple_fold_stmt_to_constant_1): Bypass OBJ_TYPE_REF wrappers. 1764 17652013-12-17 Jan Hubicka <hubicka@ucw.cz> 1766 1767 PR middle-end/35545 1768 * tree-vrp.c (extract_range_from_unary_expr_1): Handle OBJ_TYPE_REF. 1769 17702013-12-17 Teresa Johnson <tejohnson@google.com> 1771 1772 PR gcov-profile/59527 1773 * cfgrtl.c (fixup_reorder_chain): Handle a region-crossing 1774 branch, which can't be eliminated. 1775 17762013-12-18 Martin Liska <marxin.liska@gmail.com> 1777 Jan Hubicka <jh@suse.cz> 1778 1779 * cgraphunit.c (node_cmp): New function. 1780 (expand_all_functions): Function ordering added. 1781 * common.opt: New profile based function reordering flag introduced. 1782 * lto-partition.c: Support for time profile added. 1783 * lto.c: Likewise. 1784 * predict.c (handle_missing_profiles): Time profile handled in 1785 missing profiles. 1786 17872013-12-17 Jakub Jelinek <jakub@redhat.com> 1788 1789 PR tree-optimization/59523 1790 * tree-vectorizer.c (fold_loop_vectorized_call): Call update_stmt 1791 on updated stmts. 1792 17932013-12-17 Aldy Hernandez <aldyh@redhat.com> 1794 1795 * ipa-inline.c (gate_ipa_inline): Remove. 1796 (const pass_data pass_data_ipa_inline): Unset has_gate. 1797 (class pass_ipa_inline): Remove gate() method. 1798 17992013-12-17 Jan Hubicka <hubicka@ucw.cz> 1800 1801 * ipa-devirt.c (get_polymorphic_call_info): Fix offset calculatoin 1802 in contains_type_p query. 1803 18042013-12-17 Thomas Schwinge <thomas@codesourcery.com> 1805 1806 * omp-low.c (tmp_ompfn_id_num): Remove leftover variable definition. 1807 1808 * tree-pass.h (make_pass_expand_omp_ssa): Remove leftover function 1809 declaration. 1810 1811 * omp-low.c: Remove leftover comment. 1812 1813 * omp-low.c (check_combined_parallel): Reflect reality in comment. 1814 1815 * doc/cfg.texi (Control Flow): Refer to passes.def instead of passes.c. 1816 * doc/passes.texi (Pass manager): Refer to passes.def. 1817 1818 * doc/gccint.texi (Top): Fix inclusion order. 1819 18202013-12-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1821 1822 * config/arm/arm-cores.def (cortex-a12): Use cortexa15 scheduling. 1823 * config/arm/arm.c (arm_issue_rate): Handle cortexa12. 1824 * config/arm/arm.md (generic_vfp): Remove cortexa12. 1825 18262013-12-17 James Greenhalgh <james.greenhalgh@arm.com> 1827 1828 * config/arm/arm-cores.def (cortex-a57.cortex-a53): New. 1829 * doc/invoke.texi: Document -mcpu=cortex-a57.cortex-a53. 1830 * config/arm/arm-tables.opt: Regenerate. 1831 * config/arm/arm-tune.md: Regenerate. 1832 * config/arm/bpabi.h 1833 (BE8_LINK_SPEC): Handle -mcpu=cortex-a57.cortex-a53. 1834 18352013-12-17 James Greenhalgh <james.greenhalgh@arm.com> 1836 1837 * config/arm/arm-cores.def (cortex-a57): New. 1838 * doc/invoke.texi: Document -mcpu=cortex-a57. 1839 * config/arm/arm-tables.opt: Regenerate. 1840 * config/arm/arm-tune.md: Regenerate. 1841 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle -mcpu=cortex-a57. 1842 18432013-12-17 James Greenhalgh <james.greenhalgh@arm.com> 1844 1845 * config/arm/arm-cores.def (cortex-a15.cortex-a7): New. 1846 * doc/invoke.texi: Document -mcpu=cortex-a15.cortex-a7. 1847 * config/arm/arm-tables.opt: Regenerate. 1848 * config/arm/arm-tune.md: Regenerate. 1849 * config/arm/bpabi.h 1850 (BE8_LINK_SPEC): Handle -mcpu=cortex-a5.cortex-a7. 1851 18522013-12-17 James Greenhalgh <james.greenhalgh@arm.com> 1853 1854 * config/arm/arm-cores.def: Add new column for TUNE_IDENT. 1855 * config/arm/genopt.sh: Improve layout. 1856 * config/arm/arm-tune.md: Regenerate. 1857 * config/arm/arm-tables.opt: Regenerate. 1858 * config/arm/arm-opts.h (ARM_CORE): Modify macro for TUNE_IDENT. 1859 * config/arm/arm.c (ARM_CORE): Modify macro for TUNE_IDENT. 1860 (arm_option_override): When a CPU is chosen, that should also 1861 form the tune target. 1862 * config/arm/arm.h (ARM_CORE): Modify macro for TUNE_IDENT. 1863 18642013-12-17 James Greenhalgh <james.greenhalgh@arm.com> 1865 1866 * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): New. 1867 (arm_rewrite_mcpu): Likewise. 1868 * config/arm/arm-protos.h (arm_rewrite_selected_cpu): New. 1869 * config/arm/arm.h (BIG_LITTLE_SPEC): New. 1870 (BIG_LITTLE_SPEC_FUNCTIONS): Likewise. 1871 (EXTRA_SPEC_FUNCTIONS): Include BIG_LITTLE_SPEC_FUNCTIONS. 1872 (ASM_CPU_SPEC): Include BIG_LITTLE_SPEC. 1873 * config/arm/arm.c (arm_file_start): Rewrite arm_selecetd_cpu values. 1874 18752013-12-17 Eric Botcazou <ebotcazou@adacore.com> 1876 1877 * expmed.c (lowpart_bit_field_p): Fix comment. 1878 (store_bit_field_using_insv): Fix formatting. 1879 (store_bit_field): Likewise. 1880 (store_fixed_bit_field): More declaration and remove return. 1881 (store_fixed_bit_field_1): Fix formatting. 1882 (extract_fixed_bit_field): Move declaration. 1883 (extract_fixed_bit_field_1): Simplify. 1884 18852013-12-17 Jan Hubicka <hubicka@ucw.cz> 1886 1887 * ipa-utils.h (possible_polymorphic_call_targets): Determine 1888 context of the call. 1889 * gimple-fold.c (gimple_fold_call): Use ipa-devirt to devirtualize. 1890 18912013-12-17 Jakub Jelinek <jakub@redhat.com> 1892 1893 * expr.c (convert_modes): For SUBREG_PROMOTED_VAR_P use SUBREG_REG (x) 1894 instead of x as last gen_lowpart argument. 1895 18962013-12-16 Jakub Jelinek <jakub@redhat.com> 1897 1898 * predict.h (PROB_LIKELY): Fix the value. 1899 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Add support 1900 for overflow checking for modes without 2xwider supported mode, 1901 if the mode has 2xnarrower mode. 1902 1903 * internal-fn.c: Include stringpool.h and tree-ssanames.h. 1904 (ubsan_expand_si_overflow_addsub_check): In the generic expansion, 1905 try to improve generated code if one of the arguments is constant 1906 or get_range_info says that one of the argument is always 1907 negative or always non-negative. 1908 * tree-vrp.c (simplify_internal_call_using_ranges): New function. 1909 (simplify_stmt_using_ranges): Call it. 1910 19112013-12-16 Vladimir Makarov <vmakarov@redhat.com> 1912 1913 PR rtl-optimization/59466 1914 * emit-rtl.c (change_address_1): Don't validate address for LRA. 1915 * recog.c (general_operand): Accept any memory for LRA. 1916 * lra.c (lra_set_insn_recog_data): Add an assert. 1917 19182013-12-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1919 1920 * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a12 entry. 1921 19222013-12-14 Jan Hubicka <jh@suse.cz> 1923 Markus Trippelsdorf <octoploid@yandex.com> 1924 1925 PR ipa/59265 1926 * ipa-profile.c (ipa_profile_generate_summary): Do not ICE when 1927 call is already devirtualized. 1928 19292013-12-16 Jakub Jelinek <jakub@redhat.com> 1930 1931 * Makefile.in (version.o): Restore dependencies on 1932 $(REVISION), $(DATESTAMP), $(BASEVER) and $(DEVPHASE). 1933 19342013-12-14 Jan Hubicka <jh@suse.cz> 1935 1936 PR ipa/59473 1937 * ipa-devirt.c (get_class_context): Do not ICE when type is found 1938 at wrong offset. 1939 19402013-12-16 Jakub Jelinek <jakub@redhat.com> 1941 1942 PR libgomp/58756 1943 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_REDUCTION>: For 1944 reductions without placeholder if is_simd, but when not using 1945 GOMP_SIMD* internal calls, also perform the reduction operation 1946 on the outer var rather than simple assignment. 1947 19482013-12-16 Jakub Jelinek <jakub@redhat.com> 1949 1950 PR middle-end/58956 1951 PR middle-end/59470 1952 * gimple-walk.h (walk_stmt_load_store_addr_fn): New typedef. 1953 (walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Use it 1954 for callback params. 1955 * gimple-walk.c (walk_stmt_load_store_ops): Likewise. 1956 (walk_stmt_load_store_addr_ops): Likewise. Adjust all callback 1957 calls to supply the gimple operand containing the base tree 1958 as an extra argument. 1959 * tree-ssa-ter.c: Include gimple-walk.h. 1960 (find_ssaname, find_ssaname_in_store): New helper functions. 1961 (find_replaceable_in_bb): For calls or GIMPLE_ASM, only set 1962 same_root_var if USE is used somewhere in the stores of the stmt. 1963 * ipa-prop.c (visit_ref_for_mod_analysis): Remove name of the stmt 1964 argument and ATTRIBUTE_UNUSED, add another unnamed tree argument. 1965 * ipa-pure-const.c (check_load, check_store, check_ipa_load, 1966 check_ipa_store): Likewise. 1967 * gimple.c (gimple_ior_addresses_taken_1, check_loadstore): Likewise. 1968 * ipa-split.c (test_nonssa_use, mark_nonssa_use): Likewise. 1969 (verify_non_ssa_vars, visit_bb): Adjust their callers. 1970 * cfgexpand.c (add_scope_conflicts_1): Use 1971 walk_stmt_load_store_addr_fn type for visit variable. 1972 (visit_op, visit_conflict): Remove name of the stmt 1973 argument and ATTRIBUTE_UNUSED, add another unnamed tree argument. 1974 * tree-sra.c (asm_visit_addr): Likewise. Remove name of the data 1975 argument and ATTRIBUTE_UNUSED. 1976 * cgraphbuild.c (mark_address, mark_load, mark_store): Add another 1977 unnamed tree argument. 1978 * gimple-ssa-isolate-paths.c (check_loadstore): Likewise. Remove 1979 ATTRIBUTE_UNUSED from stmt parameter. 1980 19812013-12-16 Chung-Lin Tang <cltang@codesourcery.com> 1982 1983 * opts-common.c (integral_argument): Add support for 1984 hexadecimal command option integer arguments. Update comments. 1985 19862013-12-14 Jan Hubicka <jh@suse.cz> 1987 1988 PR ipa/59265 1989 * ipa-prop.c (ipa_analyze_call_uses): Skip already 1990 devirtualized calls. 1991 19922013-12-14 Jan Hubicka <jh@suse.cz> 1993 1994 PR middle-end/58477 1995 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers. 1996 19972013-12-14 Jan Hubicka <jh@suse.cz> 1998 1999 PR middle-end/58477 2000 * cgraphclones.c (cgraph_clone_edge): Do not resolve speculative edges. 2001 20022013-12-14 H.J. Lu <hongjiu.lu@intel.com> 2003 2004 PR target/59492 2005 * config/i386/i386.c (ix86_function_specific_restore): Don't 2006 change -fPIC. 2007 20082013-12-14 Eric Botcazou <ebotcazou@adacore.com> 2009 2010 * var-tracking.c (add_stores): Fix oversight in latest commit. 2011 20122013-12-14 Marek Polacek <polacek@redhat.com> 2013 2014 PR sanitizer/59503 2015 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Call 2016 expand_binop with correct optab depending on code. 2017 20182013-12-14 Tom de Vries <tom@codesourcery.com> 2019 2020 * calls.c (expand_call): Fix REG_PARM_STACK_SPACE comparison. 2021 20222013-12-13 DJ Delorie <dj@redhat.com> 2023 2024 * config/rl78/rl78-expand.md (one_cmplqi2): Make constant signed. 2025 2026 * config/msp430/msp430.md (movqi): replace general_operand with 2027 msp_general_operand and nonimmediate_operand with 2028 msp_nonimmediate_operand to allow volatile operands. 2029 (movhi): Likewise. 2030 (movpsi): Likewise. 2031 (addpsi3): Likewise. 2032 (addhi3): Likewise. 2033 (addhi3_cy): Likewise. 2034 (addchi4_cy): Likewise. 2035 (xor<mode>3): Likewise. 2036 (ome_cmpl<mode>2): Likewise. 2037 (extendqihi2): Likewise. 2038 (zero_extendqihi2): Likewise. 2039 (zero_extendhipsi2): Likewise. 2040 (truncpsihi2): Likewise. 2041 (srai_1): Likewise. 2042 20432013-12-13 Vladimir Makarov <vmakarov@redhat.com> 2044 2045 * ira.h (struct ira_reg_equiv): Rename to ira_reg_equiv_s. 2046 * ira.c: Ditto. 2047 * lra-int.h (lra_init_equiv): New prototype. 2048 * lra-constraints.c (lra_init_equiv, update_equiv): New functions. 2049 (loc_equivalence_callback): Use the 3rd arg. 2050 (lra_constraints): Update equivalences. Pass curr_insn to 2051 simplify_replace_fn_rtx. 2052 * lra.c (lra): Call lra_init_equiv. 2053 20542013-12-13 Kenneth Zadeck <zadeck@naturalbridge.com> 2055 2056 * genmodes.c (emit_max_int): Fixed missing parens. 2057 20582013-12-13 Aldy Hernandez <aldyh@redhat.com> 2059 2060 PR tree-optimization/59149 2061 * calls.c (flags_from_decl_or_type): Fail on non decl or type. 2062 * trans-mem.c (diagnose_tm_1): Do not call flags_from_decl_or_type 2063 if no type or decl. 2064 20652013-12-13 Kenneth Zadeck <zadeck@naturalbridge.com> 2066 2067 * config/arc/arc.h (BITS_PER_UNIT): Removed. 2068 * config/bfin/bfin.h (BITS_PER_UNIT): Removed. 2069 * config/lm32/lm32.h (BITS_PER_UNIT): Removed. 2070 * config/m32c/m32c.h (BITS_PER_UNIT): Removed. 2071 * config/microblaze/microblaze.h (BITS_PER_UNIT): Removed. 2072 * config/picochip/picochip.h (BITS_PER_UNIT): Removed. 2073 * config/spu/spu.h (BITS_PER_UNIT): Removed. 2074 * defaults.h (BITS_PER_UNIT): Removed. 2075 * config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): New. 2076 * doc/rtl (BITS_PER_UNIT): Moved from tm.texi. 2077 (MAX_BITSIZE_MODE_ANY_INT): Updated. 2078 * doc/tm.texi (BITS_PER_UNIT): Removed. 2079 * doc/tm.texi.in (BITS_PER_UNIT): Removed. 2080 * genmodes.c (bits_per_unit, max_bitsize_mode_any_int): New. 2081 (create_modes): Added code to set bits_per_unit and 2082 max_bitsize_mode_any_int. 2083 (emit_max_int): Changed code generation. 2084 * mkconfig.sh: Added insn-modes.h. 2085 20862013-12-13 Jeff Law <law@redhat.com> 2087 2088 PR tree-optimization/45685 2089 * tree-ssa-phiopt.c (neg_replacement): New function. 2090 (tree_ssa_phiopt_worker): Call it. 2091 20922013-12-13 Yuri Rumyantsev <ysrumyan@gmail.com> 2093 2094 * config/i386/i386.c (slm_cost): Fix imul cost for HI. 2095 20962013-12-13 Bin Cheng <bin.cheng@arm.com> 2097 2098 PR tree-optimization/58296 2099 PR tree-optimization/41488 2100 * tree-scalar-evolution.c: Include necessary header files. 2101 (simplify_peeled_chrec): New function. 2102 (analyze_evolution_in_loop): New static variable. 2103 Call simplify_peeled_chrec. 2104 * tree-ssa-loop-ivopts.c (mark_bivs): Don't mark peeled IV as biv. 2105 (add_old_iv_candidates): Don't add candidate for peeled IV. 2106 * tree-affine.h (aff_combination_zero_p): New function. 2107 21082013-12-13 Nick Clifton <nickc@redhat.com> 2109 2110 * config/msp430/msp430.c (is_wakeup_func): New function. Returns 2111 true if the current function has the wakeup attribute. 2112 (msp430_start_function): Note if the function has the wakeup 2113 attribute. 2114 (msp430_attribute_table): Add wakeup attribute. 2115 (msp430_expand_epilogue): Add support for wakeup functions. 2116 * config/msp430/msp430.md (disable_interrupts): Emit a NOP after 2117 the DINT instruction. 2118 * doc/extend.texi: Document the wakeup attribute. 2119 21202013-12-13 Kai Tietz <kitetz@redhat.com> 2121 2122 PR c++/57897 2123 * config/i386/i386.c (ix86_option_override_internal): Set for 2124 x64 target flag_unwind_tables, if flag_asynchronous_unwind_tables 2125 was explicit set. 2126 21272013-12-12 Jeff Law <law@redhat.com> 2128 2129 * i386.md (simple LEA peephole2): Add missing mode to zero_extend 2130 for zero-extended MULT simple LEA pattern. 2131 21322013-12-12 Vladimir Makarov <vmakarov@redhat.com> 2133 2134 PR middle-end/59470 2135 * lra-coalesce.c (lra_coalesce): Invalidate inheritance pseudo 2136 values if necessary. 2137 21382013-12-12 Jakub Jelinek <jakub@redhat.com> 2139 2140 PR libgomp/59467 2141 * gimplify.c (omp_check_private): Add copyprivate argument, if it 2142 is true, don't check omp_privatize_by_reference. 2143 (gimplify_scan_omp_clauses): For OMP_CLAUSE_COPYPRIVATE verify 2144 decl is private in outer context. Adjust omp_check_private caller. 2145 21462013-12-11 Jeff Law <law@redhat.com> 2147 2148 PR rtl-optimization/59446 2149 * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly 2150 test for crossing a loop header. 2151 21522013-12-11 Sriraman Tallam <tmsriram@google.com> 2153 2154 PR target/59390 2155 * config/i386/i386.c (get_builtin): New function. 2156 (ix86_builtin_vectorized_function): Replace all instances of 2157 ix86_builtins[...] with get_builtin(...). 2158 (ix86_builtin_reciprocal): Ditto. 2159 21602013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com> 2161 2162 * langhooks.h (lang_hooks_for_decls): Remove lang_hooks_for_cilkplus. 2163 (lang_hooks_for_cilkplus): Remove. 2164 * langhooks.c (lhd_cilk_detect_spawn): Likewise. 2165 (lhd_install_body_with_frame_cleanup): Likewise. 2166 * langhooks-def.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise. 2167 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise. 2168 (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise. 2169 (LANG_HOOKS_CILKPLUS): Likewise. 2170 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_CILKPLUS. 2171 * gimplify.c (gimplify_expr): Removed CILK_SPAWN_STMT case. 2172 (gimplify_modify_expr): Removed handling of _Cilk_spawn in expr. 2173 (gimplify_call_expr): Likewise. 2174 21752013-12-11 Bernd Edlinger <bernd.edlinger@hotmail.de> 2176 2177 * expr.c (expand_assignment): Remove dependency on 2178 flag_strict_volatile_bitfields. Always set the memory access mode. 2179 (expand_expr_real_1): Likewise. 2180 21812013-12-11 Bernd Edlinger <bernd.edlinger@hotmail.de> 2182 2183 PR middle-end/59134 2184 * expmed.c (store_bit_field): Use narrow_bit_field_mem and 2185 store_fixed_bit_field_1 for -fstrict-volatile-bitfields. 2186 (store_fixed_bit_field): Split up. Call store_fixed_bit_field_1 2187 to do the real work. 2188 (store_fixed_bit_field_1): New function. 2189 (store_split_bit_field): Limit the unit size to the memory mode size, 2190 to prevent recursion. 2191 21922013-12-11 Bernd Edlinger <bernd.edlinger@hotmail.de> 2193 Sandra Loosemore <sandra@codesourcery.com> 2194 2195 PR middle-end/23623 2196 PR middle-end/48784 2197 PR middle-end/56341 2198 PR middle-end/56997 2199 * expmed.c (strict_volatile_bitfield_p): Add bitregion_start 2200 and bitregion_end parameters. Test for compliance with C++ 2201 memory model. 2202 (store_bit_field): Adjust call to strict_volatile_bitfield_p. 2203 Add fallback logic for cases where -fstrict-volatile-bitfields 2204 is supposed to apply, but cannot. 2205 (extract_bit_field): Likewise. Use narrow_bit_field_mem and 2206 extract_fixed_bit_field_1 to do the extraction. 2207 (extract_fixed_bit_field): Revert to previous mode selection algorithm. 2208 Call extract_fixed_bit_field_1 to do the real work. 2209 (extract_fixed_bit_field_1): New function. 2210 22112013-12-11 Sandra Loosemore <sandra@codesourcery.com> 2212 2213 PR middle-end/23623 2214 PR middle-end/48784 2215 PR middle-end/56341 2216 PR middle-end/56997 2217 * expmed.c (strict_volatile_bitfield_p): New function. 2218 (store_bit_field_1): Don't special-case strict volatile 2219 bitfields here. 2220 (store_bit_field): Handle strict volatile bitfields here instead. 2221 (store_fixed_bit_field): Don't special-case strict volatile 2222 bitfields here. 2223 (extract_bit_field_1): Don't special-case strict volatile 2224 bitfields here. 2225 (extract_bit_field): Handle strict volatile bitfields here instead. 2226 (extract_fixed_bit_field): Don't special-case strict volatile 2227 bitfields here. Simplify surrounding code to resemble that in 2228 store_fixed_bit_field. 2229 * doc/invoke.texi (Code Gen Options): Update 2230 -fstrict-volatile-bitfields description. 2231 22322013-12-11 Kugan Vivekanandarajah <kuganv@linaro.org> 2233 2234 * configure.ac: Add check for aarch64 assembler -mabi support. 2235 * configure: Regenerate. 2236 * config.in: Regenerate. 2237 * config/aarch64/aarch64-elf.h (ASM_MABI_SPEC): New define. 2238 (ASM_SPEC): Update to substitute -mabi with ASM_MABI_SPEC. 2239 * config/aarch64/aarch64.h (aarch64_override_options): Issue error 2240 if assembler does not support -mabi and option ilp32 is selected. 2241 * doc/install.texi: Added note that building gcc 4.9 and after 2242 with pre 2.24 binutils will not support -mabi=ilp32. 2243 22442013-12-11 Marek Polacek <polacek@redhat.com> 2245 2246 PR sanitizer/59399 2247 * expr.c (expand_expr_real_1): Remove assert dealing with 2248 internal calls and turn that into a condition instead. 2249 22502013-12-11 Yvan Roux <yvan.roux@linaro.org> 2251 2252 * config/arm/arm.opt (mlra): Enable LRA by default. 2253 22542013-12-11 Jakub Jelinek <jakub@redhat.com> 2255 2256 PR tree-optimization/59417 2257 * tree-ssa-copy.c (fini_copy_prop): If copy_of[i].value is defined 2258 in a different bb rhan var, only duplicate points-to info and 2259 not alignment info and don't duplicate range info. 2260 * tree-ssa-loop-niter.c (determine_value_range): Instead of 2261 assertion failure handle inconsistencies in range info by only 2262 using var's range info and not PHI result range infos. 2263 2264 PR tree-optimization/59386 2265 * tree-inline.c (remap_gimple_stmt): If not id->do_not_unshare, 2266 unshare_expr (id->retval) before passing it to gimple_build_assign. 2267 22682013-12-11 Bin Cheng <bin.cheng@arm.com> 2269 2270 Reverted: 2271 2013-12-10 Bin Cheng <bin.cheng@arm.com> 2272 PR tree-optimization/41488 2273 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): Don't add cand 2274 for PEELED_CHREC kind IV. 2275 * tree-scalar-evolution.c: Include necessary header files. 2276 (peeled_chrec_map, simplify_peeled_chrec): New. 2277 (analyze_evolution_in_loop): New static variable. 2278 Call simplify_peeled_chrec. 2279 (scev_initialize): Initialize peeled_chrec_map. 2280 (scev_reset, scev_finalize): Reset and release peeled_chrec_map. 2281 22822013-12-10 H.J. Lu <hongjiu.lu@intel.com> 2283 2284 PR target/59458 2285 * config/i386/i386.md (*movsf_internal): Set mode to SI for 2286 alternative 13. 2287 22882013-12-10 Eric Botcazou <ebotcazou@adacore.com> 2289 2290 PR rtl-optimization/58295 2291 * simplify-rtx.c (simplify_truncation): Restrict the distribution for 2292 WORD_REGISTER_OPERATIONS targets. 2293 22942013-12-10 Richard Sandiford <rdsandiford@googlemail.com> 2295 2296 * genrecog.c (validate_pattern): Treat all messages except missing 2297 modes as errors. 2298 * config/epiphany/epiphany.md: Remove constraints from 2299 define_peephole2s. 2300 * config/h8300/h8300.md: Remove constraints from define_splits. 2301 * config/msp430/msp430.md: Likewise. 2302 * config/mcore/mcore.md (movdi_i, movsf_i, movdf_k): Use 2303 nonimmediate_operand rather than general_operand for operand 0. 2304 * config/moxie/moxie.md (*movsi, *movqi, *movhi): Likewise. 2305 * config/pdp11/predicates.md (float_operand, float_nonimm_operand): 2306 Use match_operator rather than match_test to invoke general_operand. 2307 * config/v850/v850.md (*movqi_internal, *movhi_internal) 2308 (*movsi_internal_v850e, *movsi_internal, *movsf_internal): Likewise. 2309 23102013-12-10 Richard Sandiford <rdsandiford@googlemail.com> 2311 2312 * config/tilegx/tilegx.md (insn_ld_add<bitsuffix>): Use 2313 register_operand rather than pointer_operand. Add modes to the 2314 operands. 2315 (insn_ldna_add<bitsuffix>): Likewise. 2316 (insn_ld<I124MODE:n><s>_add<I48MODE:bitsuffix>): Likewise. 2317 (insn_ldnt_add<bitsuffix>): Likewise. 2318 (insn_ldnt<I124MODE:n><s>_add<I48MODE:bitsuffix>): Likewise. 2319 (insn_ld_add_L2<bitsuffix>): Likewise. 2320 (insn_ldna_add_L2<bitsuffix>): Likewise. 2321 (insn_ld<I124MODE:n><s>_add_L2<I48MODE:bitsuffix>): Likewise. 2322 (insn_ldnt_add_L2<bitsuffix>): Likewise. 2323 (insn_ldnt<I124MODE:n><s>_add_L2<I48MODE:bitsuffix>): Likewise. 2324 (insn_ld_add_miss<bitsuffix>): Likewise. 2325 (insn_ldna_add_miss<bitsuffix>): Likewise. 2326 (insn_ld<I124MODE:n><s>_add_miss<I48MODE:bitsuffix>): Likewise. 2327 (insn_ldnt_add_miss<bitsuffix>): Likewise. 2328 (insn_ldnt<I124MODE:n><s>_add_miss<I48MODE:bitsuffix>): Likewise. 2329 (insn_st_add<bitsuffix>): Likewise. 2330 (insn_st<I124MODE:n>_add<I48MODE:bitsuffix>): Likewise. 2331 (*insn_st<I124MODE:n>_add<I48MODE:bitsuffix>): Likewise. 2332 (insn_stnt_add<bitsuffix>): Likewise. 2333 (insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Likewise. 2334 (*insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Likewise. 2335 (vec_pack_<pack_optab>_v4hi): Use register_operand rather than 2336 reg_or_0_operand for operand 0. 2337 (insn_v2<pack_insn>): Likewise. 2338 (vec_pack_hipart_v4hi): Likewise. 2339 (insn_v2packh): Likewise. 2340 (vec_pack_ssat_v2si): Likewise. 2341 (insn_v4packsc): Likewise. 2342 23432013-12-10 H.J. Lu <hongjiu.lu@intel.com> 2344 2345 * basic-block.h (gcov_working_set_t): Put back typedef. 2346 * gcov-io.h (gcov_bucket_type): Likewise. 2347 (gcov_working_set_info, gcov_working_set_t): Likewise. 2348 23492013-12-10 Oleg Endo <olegendo@gcc.gnu.org> 2350 2351 * cgraph.h (cgraph_node_set_iterator, varpool_node_set_iterator): 2352 Remove typedef. 2353 (cgraph_inline_failed_enum, cgraph_inline_failed_t): Remove typedef and 2354 rename to cgraph_inline_failed_t. 2355 * tree-ssa-alias.h (ao_ref_s, ao_ref): Remove typedef and rename 2356 to ao_ref. 2357 * reload.h (reg_equivs_s, reg_equivs_t): Remove typedef and rename 2358 to reg_equivs_t. 2359 * conditions.h (CC_STATUS): Remove typedef. 2360 * bitmap.h (bitmap_obstack): Remove typedef. 2361 (bitmap_element_def, bitmap_element): Remove typedef and rename to 2362 bitmap_element. 2363 (bitmap_head_def, bitmap_head): Remove typedef and rename to 2364 bitmap_head. 2365 (bitmap_iterator): Remove typedef. 2366 * target.h (cumulative_args_t, print_switch_type, 2367 secondary_reload_info): Remove typedef. 2368 * dwarf2out.h (dw_cfi_oprnd_struct, dw_cfi_oprnd): Remove 2369 dw_cfi_oprnd_struct alias. 2370 (dw_cfi_struct, dw_cfi_node): Remove typedef and rename to dw_cfi_node. 2371 (dw_fde_struct, dw_fde_node): Remove typedef and rename to dw_fde_node. 2372 (cfa_loc, dw_cfa_location): Remove typedef and rename to 2373 dw_cfa_location. 2374 (dw_vec_struct, dw_vec_const): Remove typedef and rename to 2375 dw_vec_const. 2376 (dw_val_struct, dw_val_node): Remove typedef and rename to dw_val_node. 2377 (dw_loc_descr_struct, dw_loc_descr_node): Remove typedef and rename to 2378 dw_loc_descr_node. 2379 * params.h (param_info, compiler_param): Remove typedef. 2380 * opts.h (cl_deferred_param): Remove typedef. 2381 * sreal.h (sreal): Remove typedef. 2382 * ddg.h (dep_type, dep_data_type): Remove typedef. 2383 * graphite-clast-to-gimple.h (cloog_prog_clast, bb_pbb_def): Remove 2384 typedef. 2385 * lto-streamer.h (lto_decl_stream_e_t, lto_encoder_entry, 2386 lto_symtab_encoder_iterator, res_pair): Remove typedef. 2387 * tree-affine.h (affine_tree_combination, aff_tree): Remove typedef 2388 and rename to aff_tree. 2389 * sched-int.h (region): Remove typedef. 2390 * diagnostic.h (diagnostic_info, 2391 diagnostic_classification_change_t): Remove typedef. 2392 * tree-ssa-loop.h (affine_iv_d): Remove typedef and rename to 2393 affine_iv. 2394 * sbitmap.h (sbitmap_iterator): Remove typedef. 2395 * ssa-iterators.h (immediate_use_iterator_d, imm_use_iterator): 2396 Remove typedef and rename to imm_use_iterator. 2397 (ssa_operand_iterator_d, ssa_op_iter): Remove typedef and rename to 2398 ssa_op_iter. 2399 * ggc-internal.h (ggc_statistics): Remove typedef. 2400 * cselib.h (cselib_val_struct, cselib_val): Remove typedef and 2401 rename to cselib_val. 2402 * tree-core.h (alias_pair): Remove typedef. 2403 (constructor_elt_d, constructor_elt): Remove typedef and rename to 2404 constructor_elt. 2405 (ssa_use_operand_d, ssa_use_operand_t): Remove typedef and rename to 2406 ssa_use_operand_t. 2407 * graphite-sese-to-poly.h (base_alias_pair): Remove typedef. 2408 * tree-data-ref.h (conflict_function): Remove typedef. 2409 * tree-inline.h (copy_body_data): Remove typedef. 2410 * ipa-inline.h (condition, size_time_entry, inline_param_summary_t, 2411 edge_growth_cache_entry): Remove typedef. 2412 * regrename.h (operand_rr_info, insn_rr_info): Remove typedef. 2413 * gimple-iterator.h (gimple_stmt_iterator_d, gimple_stmt_iterator): 2414 Remove typedef and rename to gimple_stmt_iterator. 2415 * basic-block.h (ce_if_block, ce_if_block_t): Remove typedef and 2416 rename to ce_if_block. 2417 (edge_iterator): Remove typedef. 2418 * ipa-prop.h (ipa_agg_jf_item, ipa_agg_jf_item_t): Remove typedef 2419 and rename to ipa_agg_jf_item. 2420 (ipa_agg_jump_function_t, ipa_param_descriptor_t, ipa_node_params_t, 2421 ipa_parm_adjustment_t): Remove typedef. 2422 (ipa_jump_func, ipa_jump_func_t): Remove typedef and rename to 2423 ipa_jump_func. 2424 (ipa_edge_args, ipa_edge_args_t): Remove typedef and rename to 2425 ipa_edge_args. 2426 * gcov-io.h (gcov_bucket_type): Remove typedef. 2427 (gcov_working_set_info, gcov_working_set_t): Remove typedef and rename 2428 to gcov_working_set_t. 2429 * ira-int.h (minmax_set_iterator, ira_allocno_iterator, 2430 ira_object_iterator, ira_allocno_object_iterator, ira_pref_iterator, 2431 ira_copy_iterator, ira_object_conflict_iterator): Remove typedef. 2432 * tree-iterator.h (tree_stmt_iterator): Remove typedef. 2433 * rtl.h (addr_diff_vec_flags, mem_attrs, reg_attrs, 2434 replace_label_data): Remove typedef. 2435 (rtunion_def, rtunion): Remove typedef and rename to rtunion. 2436 * hard-reg-set.h (hard_reg_set_iterator): Remove typedef. 2437 * sel-sched-ir.h (_list_iterator, sel_global_bb_info_def, 2438 sel_region_bb_info_def, succ_iterator): Remove typedef. 2439 (deps_where_def, deps_where_t): Remove typedef and rename to 2440 deps_where_t. 2441 * coretypes.h: Adapt forward declarations. 2442 * tree-scalar-evolution.h: Likewise. 2443 * tree-ssa-address.h: Likewise. 2444 * tree-ssa-operands.h: Likewise. 2445 * function.h: Likewise. 2446 * config/frv/frv-protos.h: Likewise. 2447 * targhooks.h: Likewise. 2448 * basic_block.h: Likewise. 2449 * rtl.def: Adapt documentation. 2450 * doc/tm.texi: Likewise. 2451 * ipa-cp.c: Adapt uses. 2452 * bitmap.c: Likewise. 2453 * dwarf2out.c: Likewise. 2454 * target.def: Likewise. 2455 * ipa-inline-analysis.c: Likewise. 2456 * dwarf2cfi.c: Likewise. 2457 * tree-ssa-loop-ivopts.c: Likewise. 2458 * lto-cgraph.c: Likewise. 2459 * config/frv/frv.c: Likewise. 2460 * ifcvt.c: Likewise. 2461 * ipa-prop.c: Likewise. 2462 24632013-12-10 Kai Tietz <ktietz@redhat.com> 2464 2465 PR target/56807 2466 * config/i386/i386.c (ix86_expand_prologue): Address saved 2467 registers stack-relative, not via frame-pointer. 2468 24692013-12-10 Richard Biener <rguenther@suse.de> 2470 2471 PR middle-end/38474 2472 * tree-ssa-structalias.c (solution_set_expand): Expand into 2473 a different possibly cached bitmap and return the result. 2474 (set_union_with_increment): Pass in a shared expanded bitmap 2475 and adjust. 2476 (do_sd_constraint): Likewise. 2477 (do_ds_constraint): Likewise. 2478 (do_complex_constraint): Likewise. 2479 (solve_graph): Manage the shared expanded bitmap. 2480 24812013-12-10 Jakub Jelinek <jakub@redhat.com> 2482 2483 * tree-vectorizer.h (struct _loop_vec_info): Add scalar_loop field. 2484 (LOOP_VINFO_SCALAR_LOOP): Define. 2485 (slpeel_tree_duplicate_loop_to_edge_cfg): Add scalar_loop argument. 2486 * config/i386/sse.md (maskload<mode>, maskstore<mode>): New expanders. 2487 * tree-data-ref.c (get_references_in_stmt): Handle MASK_LOAD and 2488 MASK_STORE. 2489 * internal-fn.def (LOOP_VECTORIZED, MASK_LOAD, MASK_STORE): New 2490 internal fns. 2491 * tree-if-conv.c: Include expr.h, optabs.h, tree-ssa-loop-ivopts.h and 2492 tree-ssa-address.h. 2493 (release_bb_predicate): New function. 2494 (free_bb_predicate): Use it. 2495 (reset_bb_predicate): Likewise. Don't unallocate bb->aux 2496 just to immediately allocate it again. 2497 (add_to_predicate_list): Add loop argument. If basic blocks that 2498 dominate loop->latch don't insert any predicate. 2499 (add_to_dst_predicate_list): Adjust caller. 2500 (if_convertible_phi_p): Add any_mask_load_store argument, if true, 2501 handle it like flag_tree_loop_if_convert_stores. 2502 (insert_gimplified_predicates): Likewise. 2503 (ifcvt_can_use_mask_load_store): New function. 2504 (if_convertible_gimple_assign_stmt_p): Add any_mask_load_store 2505 argument, check if some conditional loads or stores can't be 2506 converted into MASK_LOAD or MASK_STORE. 2507 (if_convertible_stmt_p): Add any_mask_load_store argument, 2508 pass it down to if_convertible_gimple_assign_stmt_p. 2509 (predicate_bbs): Don't return bool, only check if the last stmt 2510 of a basic block is GIMPLE_COND and handle that. Adjust 2511 add_to_predicate_list caller. 2512 (if_convertible_loop_p_1): Only call predicate_bbs if 2513 flag_tree_loop_if_convert_stores and free_bb_predicate in that case 2514 afterwards, check gimple_code of stmts here. Replace is_predicated 2515 check with dominance check. Add any_mask_load_store argument, 2516 pass it down to if_convertible_stmt_p and if_convertible_phi_p, 2517 call if_convertible_phi_p only after all if_convertible_stmt_p calls. 2518 (if_convertible_loop_p): Add any_mask_load_store argument, 2519 pass it down to if_convertible_loop_p_1. 2520 (predicate_mem_writes): Emit MASK_LOAD and/or MASK_STORE calls. 2521 (combine_blocks): Add any_mask_load_store argument, pass 2522 it down to insert_gimplified_predicates and call predicate_mem_writes 2523 if it is set. Call predicate_bbs. 2524 (version_loop_for_if_conversion): New function. 2525 (tree_if_conversion): Adjust if_convertible_loop_p and combine_blocks 2526 calls. Return todo flags instead of bool, call 2527 version_loop_for_if_conversion if if-conversion should be just 2528 for the vectorized loops and nothing else. 2529 (main_tree_if_conversion): Adjust caller. Don't call 2530 tree_if_conversion for dont_vectorize loops if if-conversion 2531 isn't explicitly enabled. 2532 * tree-vect-data-refs.c (vect_check_gather): Handle 2533 MASK_LOAD/MASK_STORE. 2534 (vect_analyze_data_refs, vect_supportable_dr_alignment): Likewise. 2535 * gimple.h (gimple_expr_type): Handle MASK_STORE. 2536 * internal-fn.c (expand_LOOP_VECTORIZED, expand_MASK_LOAD, 2537 expand_MASK_STORE): New functions. 2538 * tree-vectorizer.c: Include tree-cfg.h and gimple-fold.h. 2539 (vect_loop_vectorized_call, fold_loop_vectorized_call): New functions. 2540 (vectorize_loops): Don't try to vectorize loops with 2541 loop->dont_vectorize set. Set LOOP_VINFO_SCALAR_LOOP for if-converted 2542 loops, fold LOOP_VECTORIZED internal call depending on if loop 2543 has been vectorized or not. 2544 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges): 2545 New function. 2546 (slpeel_tree_duplicate_loop_to_edge_cfg): Add scalar_loop argument. 2547 If non-NULL, copy basic blocks from scalar_loop instead of loop, but 2548 still to loop's entry or exit edge. 2549 (slpeel_tree_peel_loop_to_edge): Add scalar_loop argument, pass it 2550 down to slpeel_tree_duplicate_loop_to_edge_cfg. 2551 (vect_do_peeling_for_loop_bound, vect_do_peeling_for_loop_alignment): 2552 Adjust callers. 2553 (vect_loop_versioning): If LOOP_VINFO_SCALAR_LOOP, perform loop 2554 versioning from that loop instead of LOOP_VINFO_LOOP, move it to the 2555 right place in the CFG afterwards. 2556 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle 2557 MASK_STORE. 2558 * cfgloop.h (struct loop): Add dont_vectorize field. 2559 * tree-loop-distribution.c (copy_loop_before): Adjust 2560 slpeel_tree_duplicate_loop_to_edge_cfg caller. 2561 * optabs.def (maskload_optab, maskstore_optab): New optabs. 2562 * passes.def: Add a note that pass_vectorize must immediately follow 2563 pass_if_conversion. 2564 * tree-predcom.c (split_data_refs_to_components): Give up if 2565 DR_STMT is a call. 2566 * tree-vect-stmts.c (vect_mark_relevant): Don't crash if lhs is NULL. 2567 (exist_non_indexing_operands_for_use_p): Handle MASK_LOAD 2568 and MASK_STORE. 2569 (vectorizable_mask_load_store): New function. 2570 (vectorizable_call): Call it for MASK_LOAD or MASK_STORE. 2571 (vect_transform_stmt): Handle MASK_STORE. 2572 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Ignore 2573 DR_STMT where lhs is NULL. 2574 * optabs.h (can_vec_perm_p): Fix up comment typo. 2575 (can_vec_mask_load_store_p): New prototype. 2576 * optabs.c (can_vec_mask_load_store_p): New function. 2577 25782013-12-10 Eric Botcazou <ebotcazou@adacore.com> 2579 2580 * expr.c (expand_expr_real_1) <normal_inner_ref>: Always return 0 for 2581 the extraction of a bit-field of null size. 2582 25832013-12-10 Marek Polacek <polacek@redhat.com> 2584 2585 PR sanitizer/59437 2586 * vtable-verify.c (var_is_used_for_virtual_call_p): Check the 2587 return value of gimple_call_fn. Use is_gimple_call/is_gimple_assign 2588 instead of gimple_code. 2589 25902013-12-10 Maxim Kuvyrkov <maxim@kugelworks.com> 2591 2592 * config.gcc (mips*-mti-linux*, mips64*-*-linux*): 2593 Add android definitions. 2594 (s390x-*-linux*): Use linux-protos.h. 2595 25962013-12-10 Bin Cheng <bin.cheng@arm.com> 2597 2598 PR tree-optimization/41488 2599 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): Don't add cand 2600 for PEELED_CHREC kind IV. 2601 * tree-scalar-evolution.c: Include necessary header files. 2602 (peeled_chrec_map, simplify_peeled_chrec): New. 2603 (analyze_evolution_in_loop): New static variable. 2604 Call simplify_peeled_chrec. 2605 (scev_initialize): Initialize peeled_chrec_map. 2606 (scev_reset, scev_finalize): Reset and release peeled_chrec_map. 2607 26082013-12-09 Andrew Pinski <apinski@cavium.com> 2609 2610 * config/aarch64/t-aarch64 (MULTILIB_OPTIONS): Fix definition so 2611 that options are conflicting ones. 2612 26132013-12-09 Eric Botcazou <ebotcazou@adacore.com> 2614 2615 * optabs.c (gen_int_libfunc): Do not compare modes directly. 2616 26172013-12-09 David Malcolm <dmalcolm@redhat.com> 2618 2619 * basic-block.h (FOR_ALL_BB): Eliminate macro. 2620 2621 * cfg.c (alloc_aux_for_blocks, clear_aux_for_blocks): Replace 2622 uses of FOR_ALL_BB with FOR_ALL_BB_FN, making uses of cfun explicit. 2623 2624 * cfganal.c (inverted_post_order_compute): Likewise. 2625 * cfgcleanup.c (try_optimize_cfg): Likewise. 2626 * cfgexpand.c (add_scope_conflicts): Likewise. 2627 * cfghooks.c (dump_flow_info, account_profile_record): Likewise. 2628 * cfgrtl.c (relink_block_chain): Likewise. 2629 * dce.c (mark_artificial_uses): Likewise. 2630 * df-core.c (df_set_blocks, df_compute_cfg_image, df_dump): Likewise. 2631 * df-problems.c (df_lr_verify_solution_start, 2632 df_lr_verify_solution_end, df_lr_verify_transfer_functions, 2633 df_live_verify_solution_start, df_live_verify_solution_end, 2634 df_live_set_all_dirty, df_live_verify_transfer_functions, 2635 df_md_local_comput): Likewise. 2636 * df-scan.c (df_scan_free_internal, df_scan_alloc) 2637 df_reorganize_refs_by_insn, df_scan_verify): Likewise. 2638 * dominance.c (compute_dom_fast_query, calculate_dominance_info, 2639 free_dominance_info): Likewise. 2640 * dse.c (dse_step1, dse_step3, dse_step4, dse_step6): Likewise. 2641 * graph.c (draw_cfg_edges): Likewise. 2642 * graphite-scop-detection.c (print_graphite_scop_statistics, 2643 dot_all_scops_1): Likewise. 2644 * graphite.c (print_global_statistics, 2645 print_graphite_scop_statistics): Likewise. 2646 * ira.c (do_reload): Likewise. 2647 * loop-init.c (loop_optimizer_finalize): Likewise. 2648 * lto-streamer-in.c (input_function): Likewise. 2649 * lto-streamer-out.c (output_function): Likewise. 2650 * mcf.c (adjust_cfg_counts): Likewise. 2651 * predict.c (estimate_loops): Likewise. 2652 * sched-rgn.c (haifa_find_rgns): Likewise. 2653 * tree-cfg.c (split_critical_edges): Likewise. 2654 * tree-dfa.c (renumber_gimple_stmt_uids): Likewise. 2655 * tree-loop-distribution.c (tree_loop_distribution): Likewise. 2656 * tree-ssa-pre.c (compute_antic, insert, init_pre): Likewise. 2657 * tree-ssa-propagate.c (ssa_prop_init): Likewise. 2658 * var-tracking.c (vt_initialize, vt_finalize): Likewise. 2659 * vtable-verify.c (vtable_verify_main): Likewise. 2660 * web.c (web_main): Likewise. 2661 26622013-12-09 David Malcolm <dmalcolm@redhat.com> 2663 2664 * basic-block.h (FOR_EACH_BB_REVERSE): Eliminate macro. 2665 2666 * cfghooks.c (verify_flow_info): Replace uses of FOR_EACH_BB_REVERSE 2667 with FOR_EACH_BB_REVERSE_FN, making uses of cfun explicit. 2668 * cfgrtl.c (print_rtl_with_bb, rtl_verify_edges, 2669 rtl_verify_bb_insns, rtl_verify_bb_pointers, 2670 rtl_verify_bb_insn_chain, rtl_verify_fallthru): Likewise. 2671 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise. 2672 * config/sh/sh.c (sh_md_init_global): Likewise. 2673 * config/sh/sh_optimize_sett_clrt.cc 2674 (sh_optimize_sett_clrt::execute): Likewise. 2675 * dce.c (reset_unmarked_insns_debug_uses, delete_unmarked_insns): 2676 Likewise. 2677 * dominance.c (calc_dfs_tree): Likewise. 2678 * final.c (final): Likewise. 2679 * function.c (thread_prologue_and_epilogue_insns): Likewise. 2680 * gcse.c (compute_code_hoist_vbeinout): Likewise. 2681 * ira.c (update_equiv_regs, build_insn_chain): Likewise. 2682 * lcm.c (compute_antinout_edge): Likewise. 2683 * mode-switching.c (optimize_mode_switching): Likewise. 2684 * postreload.c (reload_combine): Likewise. 2685 * recog.c (split_all_insns, peephole2_optimize): Likewise. 2686 * tree-ssa-live.c (live_worklist): Likewise. 2687 26882013-12-09 David Malcolm <dmalcolm@redhat.com> 2689 2690 * basic-block.h (FOR_EACH_BB): Eliminate macro. 2691 2692 * asan.c (transform_statements, execute_sanopt): Eliminate 2693 use of FOR_EACH_BB in favor of FOR_EACH_BB_FN, to make use of cfun 2694 explicit. 2695 * auto-inc-dec.c (rest_of_handle_auto_inc_dec): Likewise. 2696 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges, 2697 set_edge_can_fallthru_flag, fix_up_fall_thru_edges, 2698 fix_crossing_unconditional_branches, add_reg_crossing_jump_notes, 2699 insert_section_boundary_note, rest_of_handle_reorder_blocks, 2700 duplicate_computed_gotos): Likewise. 2701 * cfg.c (clear_edges, compact_blocks, brief_dump_cfg): Likewise. 2702 * cfganal.c (find_unreachable_blocks, add_noreturn_fake_exit_edges, 2703 compute_dominance_frontiers_1, single_pred_before_succ_order): Likewise. 2704 * cfgbuild.c (find_many_sub_basic_blocks): Likewise. 2705 * cfgcleanup.c (try_optimize_cfg, delete_dead_jumptables): Likewise. 2706 * cfgexpand.c (add_scope_conflicts, discover_nonconstant_array_refs): 2707 Likewise. 2708 * cfgloop.c (flow_loops_cfg_dump, get_loop_body, record_loop_exits, 2709 verify_loop_structure): Likewise. 2710 * cfgloopanal.c (mark_loop_exit_edges): Likewise. 2711 * cfgrtl.c (compute_bb_for_insn, find_partition_fixes, 2712 verify_hot_cold_block_grouping, purge_all_dead_edges, 2713 fixup_abnormal_edges, record_effective_endpoints, 2714 outof_cfg_layout_mode, fixup_reorder_chain, force_one_exit_fallthru, 2715 break_superblocks): Likewise. 2716 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges, 2717 cgraph_rebuild_references): Likewise. 2718 * combine-stack-adj.c (combine_stack_adjustments): Likewise. 2719 * combine.c (delete_noop_moves, create_log_links, 2720 combine_instructions): Likewise. 2721 * config/arm/arm.c (thumb1_reorg, thumb2_reorg): Likewise. 2722 * config/bfin/bfin.c (bfin_gen_bundles, reorder_var_tracking_notes): 2723 Likewise. 2724 * config/c6x/c6x.c (c6x_gen_bundles, conditionalize_after_sched, 2725 c6x_reorg): Likewise. 2726 * config/epiphany/resolve-sw-modes.c (resolve_sw_modes): Likewise. 2727 * config/frv/frv.c (frv_optimize_membar): Likewise. 2728 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise. 2729 * config/ia64/ia64.c (ia64_reorg): Likewise. 2730 * config/mips/mips.c (mips_annotate_pic_calls): Likewise. 2731 * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise. 2732 * config/rs6000/rs6000.c (rs6000_alloc_sdmode_stack_slot): Likewise. 2733 * config/s390/s390.c (s390_regs_ever_clobbered): Likewise. 2734 * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Likewise. 2735 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise. 2736 * config/tilegx/tilegx.c (tilegx_gen_bundles, 2737 reorder_var_tracking_notes): Likewise. 2738 * config/tilepro/tilepro.c (tilepro_gen_bundles, 2739 reorder_var_tracking_notes): Likewise. 2740 * coverage.c (coverage_compute_cfg_checksum): Likewise. 2741 * cprop.c (compute_hash_table_work, compute_cprop_data, 2742 local_cprop_pass, find_implicit_sets): Likewise. 2743 * cse.c (cse_condition_code_reg): Likewise. 2744 * dce.c (prescan_insns_for_dce): Likewise. 2745 * df-core.c (df_compact_blocks): Likewise. 2746 * df-problems.c (df_word_lr_alloc): Likewise. 2747 * df-scan.c (df_scan_start_dump, df_scan_blocks, df_insn_rescan_all, 2748 df_update_entry_exit_and_calls): Likewise. 2749 * dominance.c (calculate_dominance_info, verify_dominators, 2750 debug_dominance_info): Likewise. 2751 * dse.c (dse_step5_nospill): Likewise. 2752 * except.c (finish_eh_generation): Likewise. 2753 * final.c (compute_alignments): Likewise. 2754 * function.c (thread_prologue_and_epilogue_insns, 2755 rest_of_match_asm_constraints): Likewise. 2756 * gcse.c (compute_hash_table_work, prune_expressions, 2757 compute_pre_data, compute_code_hoist_vbeinout, hoist_code, 2758 calculate_bb_reg_pressure, compute_ld_motion_mems): Likewise. 2759 * gimple-iterator.c (gsi_commit_edge_inserts): Likewise. 2760 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour, 2761 find_explicit_erroneous_behaviour): Likewise. 2762 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa, 2763 rewrite_cross_bb_scalar_deps_out_of_ssa): Likewise. 2764 * haifa-sched.c (haifa_sched_init): Likewise. 2765 * hw-doloop.c (discover_loops, set_bb_indices, reorder_loops): 2766 Likewise. 2767 * ifcvt.c (if_convert): Likewise. 2768 * init-regs.c (initialize_uninitialized_regs): Likewise. 2769 * ipa-prop.c (ipcp_transform_function): Likewise. 2770 * ipa-pure-const.c (analyze_function): Likewise. 2771 * ipa-split.c (find_split_points, execute_split_functions): Likewise. 2772 * ira-build.c (form_loop_tree): Likewise. 2773 * ira-costs.c (find_costs_and_classes): Likewise. 2774 * ira-emit.c (emit_moves, add_ranges_and_copies, ira_emit): Likewise. 2775 * ira.c (decrease_live_ranges_number, compute_regs_asm_clobbered, 2776 mark_elimination, update_equiv_regs, find_moveable_pseudos, 2777 split_live_ranges_for_shrink_wrap, allocate_initial_values): Likewise. 2778 * jump.c (mark_all_labels): Likewise. 2779 * lcm.c (compute_laterin, compute_insert_delete, compute_available, 2780 compute_nearerout, compute_rev_insert_delete): Likewise. 2781 * loop-init.c (fix_loop_structure): Likewise. 2782 * loop-invariant.c (calculate_loop_reg_pressure): Likewise. 2783 * lower-subreg.c (decompose_multiword_subregs, 2784 decompose_multiword_subregs): Likewise. 2785 * lra-assigns.c (assign_by_spills): Likewise. 2786 * lra-coalesce.c (lra_coalesce): Likewise. 2787 * lra-constraints.c (lra_inheritance, remove_inheritance_pseudos): 2788 Likewise. 2789 * lra-eliminations.c (lra_init_elimination): Likewise. 2790 * lra-spills.c (assign_spill_hard_regs, spill_pseudos, 2791 lra_final_code_change): Likewise. 2792 * lra.c (remove_scratches, check_rtl, has_nonexceptional_receiver, 2793 update_inc_notes): Likewise. 2794 * mcf.c (adjust_cfg_counts): Likewise. 2795 * mode-switching.c (optimize_mode_switching): Likewise. 2796 * modulo-sched.c (rest_of_handle_sms): Likewise. 2797 * omp-low.c (optimize_omp_library_calls, expand_omp_taskreg, 2798 expand_omp_target): Likewise. 2799 * postreload-gcse.c (alloc_mem, compute_hash_table): Likewise. 2800 * postreload.c (reload_cse_regs_1): Likewise. 2801 * predict.c (strip_predict_hints, tree_bb_level_predictions, 2802 tree_estimate_probability, expensive_function_p, 2803 estimate_bb_frequencies, compute_function_frequency): Likewise. 2804 * profile.c (is_inconsistent, compute_branch_probabilities, 2805 branch_prob): Likewise. 2806 * ree.c (find_removable_extensions): Likewise. 2807 * reg-stack.c (compensate_edges, convert_regs, reg_to_stack): Likewise. 2808 * regcprop.c (copyprop_hardreg_forward): Likewise. 2809 * reginfo.c (init_subregs_of_mode): Likewise. 2810 * regrename.c (regrename_analyze): Likewise. 2811 * regstat.c (regstat_compute_ri, regstat_compute_calls_crossed): 2812 Likewise. 2813 * reload1.c (has_nonexceptional_receiver, reload, 2814 calculate_elim_costs_all_insns): Likewise. 2815 * resource.c (init_resource_info, free_resource_info): Likewise. 2816 * sched-ebb.c (schedule_ebbs): Likewise. 2817 * sched-rgn.c (is_cfg_nonregular, find_single_block_region, 2818 haifa_find_rgns, sched_rgn_local_init): Likewise. 2819 * sel-sched-dump.c (sel_dump_cfg_2): Likewise. 2820 * sel-sched-ir.c (init_lv_sets, free_lv_sets, 2821 make_regions_from_the_rest): Likewise. 2822 * sese.c (build_sese_loop_nests, sese_build_liveouts): Likewise. 2823 * stack-ptr-mod.c (notice_stack_pointer_modification): Likewise. 2824 * store-motion.c (compute_store_table, build_store_vectors, 2825 one_store_motion_pass): Likewise. 2826 * tracer.c (tail_duplicate): Likewise. 2827 * trans-mem.c (compute_transaction_bits): Likewise. 2828 * tree-call-cdce.c (tree_call_cdce): Likewise. 2829 * tree-cfg.c (replace_loop_annotate, factor_computed_gotos, 2830 fold_cond_expr_cond, make_edges, assign_discriminators, 2831 make_abnormal_goto_edges, cleanup_dead_labels, group_case_labels, 2832 dump_cfg_stats, gimple_verify_flow_info, print_loop, 2833 execute_fixup_cfg): Likewise. 2834 * tree-cfgcleanup.c (cleanup_tree_cfg_1, merge_phi_nodes): Likewise. 2835 * tree-complex.c (init_dont_simulate_again, tree_lower_complex): 2836 Likewise. 2837 * tree-dfa.c (collect_dfa_stats, dump_enumerated_decls): Likewise. 2838 * tree-eh.c (execute_lower_resx, execute_lower_eh_dispatch, 2839 mark_reachable_handlers): Likewise. 2840 * tree-emutls.c (lower_emutls_function_body): Likewise. 2841 * tree-if-conv.c (main_tree_if_conversion): Likewise. 2842 * tree-inline.c (optimize_inline_calls): Likewise. 2843 * tree-into-ssa.c (rewrite_into_ssa, update_ssa): Likewise. 2844 * tree-nrv.c (tree_nrv, execute_return_slot_opt): Likewise. 2845 * tree-object-size.c (compute_object_sizes): Likewise. 2846 * tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees, 2847 insert_backedge_copies, tree_profiling): Likewise. 2848 * tree-scalar-evolution.c (scev_const_prop): Likewise. 2849 * tree-sra.c (scan_function, sra_modify_function_body, 2850 propagate_dereference_distances, ipa_sra_modify_function_body, 2851 convert_callers): Likewise. 2852 * tree-ssa-ccp.c (ccp_initialize, execute_fold_all_builtins): Likewise. 2853 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise. 2854 create_outofssa_var_map, coalesce_partitions): Likewise. 2855 * tree-ssa-copy.c (init_copy_prop): Likewise. 2856 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise. 2857 * tree-ssa-dce.c (find_obviously_necessary_stmts, 2858 eliminate_unnecessary_stmts): Likewise. 2859 * tree-ssa-dom.c (free_all_edge_infos, tree_ssa_dominator_optimize): 2860 Likewise. 2861 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise. 2862 * tree-ssa-live.c (clear_unused_block_pointer, remove_unused_locals, 2863 new_tree_live_info, calculate_live_on_exit, dump_live_info, 2864 analyze_memory_references, fill_always_executed_in, 2865 tree_ssa_lim_finalize): Likewise. 2866 * tree-ssa-loop-manip.c (find_uses_to_rename, verify_loop_closed_ssa): 2867 Likewise. 2868 * tree-ssa-math-opts.c (execute_cse_reciprocals, execute_cse_sincos, 2869 execute_optimize_bswap, execute_optimize_widening_mul): Likewise. 2870 * tree-ssa-propagate.c (substitute_and_fold): Likewise. 2871 * tree-ssa-structalias.c (compute_points_to_sets): Likewise. 2872 * tree-ssa-tail-merge.c (find_same_succ, reset_cluster_vectors): 2873 Likewise. 2874 * tree-ssa-ter.c (find_replaceable_exprs): Likewise. 2875 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise. 2876 * tree-ssa-uncprop.c (associate_equivalences_with_edges, 2877 tree_ssa_uncprop): Likewise. 2878 * tree-ssa-uninit.c (warn_uninitialized_vars, 2879 execute_late_warn_uninitialized): Likewise. 2880 * tree-ssa.c (verify_ssa, execute_update_addresses_taken): Likewise. 2881 * tree-stdarg.c (check_all_va_list_escapes, execute_optimize_stdarg): 2882 Likewise. 2883 * tree-switch-conversion.c (do_switchconv): Likewise. 2884 * tree-vect-generic.c (expand_vector_operations): Likewise. 2885 * tree-vectorizer.c (adjust_simduid_builtins, note_simd_array_uses, 2886 execute_vect_slp): Likewise. 2887 * tree-vrp.c (check_all_array_refs, remove_range_assertions, 2888 vrp_initialize, identify_jump_threads, instrument_memory_accesses): 2889 Likewise. 2890 * ubsan.c (ubsan_pass): Likewise. 2891 * value-prof.c (verify_histograms, 2892 gimple_value_profile_transformations, gimple_find_values_to_profile): 2893 Likewise. 2894 * var-tracking.c (vt_find_locations, dump_dataflow_sets, vt_emit_notes, 2895 vt_initialize, delete_debug_insns, vt_finalize): Likewise. 2896 28972013-12-09 David Malcolm <dmalcolm@redhat.com> 2898 2899 * basic-block.h (last_basic_block): Eliminate macro. 2900 2901 * asan.c (transform_statements): Eliminate use of last_basic_block 2902 in favor of last_basic_block_for_fn, in order to make use of cfun 2903 explicit. 2904 * bb-reorder.c (copy_bb, reorder_basic_blocks): Likewise. 2905 * bt-load.c (compute_defs_uses_and_gen, compute_kill, compute_out, 2906 link_btr_uses, build_btr_def_use_webs, migrate_btr_defs): Likewise. 2907 * cfg.c (compact_blocks): Likewise. 2908 * cfganal.c (mark_dfs_back_edges, 2909 control_dependences::control_dependences, post_order_compute, 2910 pre_and_rev_post_order_compute_fn, dfs_enumerate_from, compute_idf, 2911 single_pred_before_succ_order): Likewise. 2912 * cfgbuild.c (make_edges): Likewise. 2913 * cfgexpand.c (add_scope_conflicts, gimple_expand_cfg): Likewise. 2914 * cfghooks.c (verify_flow_info): Likewise. 2915 * cfgloop.c (verify_loop_structure): Likewise. 2916 * cfgloopanal.c (just_once_each_iteration_p, 2917 mark_irreducible_loops): Likewise. 2918 * cfgloopmanip.c (fix_bb_placements, remove_path, 2919 update_dominators_in_loop): Likewise. 2920 * cfgrtl.c (create_basic_block_structure, rtl_create_basic_block, 2921 break_superblocks, rtl_flow_call_edges_add): Likewise. 2922 * config/epiphany/resolve-sw-modes.c (resolve_sw_modes): Likewise. 2923 * config/frv/frv.c (frv_optimize_membar): Likewise. 2924 * config/mips/mips.c (r10k_insert_cache_barriers): Likewise. 2925 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise. 2926 * cprop.c (compute_local_properties, find_implicit_sets, 2927 bypass_conditional_jumps, one_cprop_pass): Likewise. 2928 * cse.c (cse_main): Likewise. 2929 * df-core.c (rest_of_handle_df_initialize, df_worklist_dataflow, 2930 df_analyze, df_grow_bb_info, df_compact_blocks): Likewise. 2931 * df-problems.c (df_lr_verify_solution_start, 2932 df_live_verify_solution_start, df_md_local_compute): Likewise. 2933 * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree, 2934 calc_idoms): Likewise. 2935 * domwalk.c (dom_walker::walk): Likewise. 2936 * dse.c (dse_step0, dse_step3): Likewise. 2937 * function.c (epilogue_done): Likewise. 2938 * gcse.c (alloc_gcse_mem, compute_local_properties, 2939 prune_insertions_deletions, compute_pre_data, 2940 pre_expr_reaches_here_p, one_pre_gcse_pass, 2941 compute_code_hoist_vbeinout, should_hoist_expr_to_dom, hoist_code, 2942 one_code_hoisting_pass): Likewise. 2943 * graph.c (draw_cfg_nodes_no_loops): Likewise. 2944 * graphite-sese-to-poly.c (build_scop_bbs): Likewise. 2945 * haifa-sched.c (unlink_bb_notes): Likewise. 2946 * ipa-split.c (execute_split_functions): Likewise. 2947 * ira-build.c (create_loop_tree_nodes, remove_unnecessary_regions): 2948 Likewise. 2949 * ira-emit.c (ira_emit): Likewise. 2950 * ira.c (find_moveable_pseudos, ira): Likewise. 2951 * lcm.c (compute_antinout_edge, compute_laterin, 2952 compute_insert_delete, pre_edge_lcm, compute_available, 2953 compute_nearerout, compute_rev_insert_delete, 2954 pre_edge_rev_lcm): Likewise. 2955 * loop-unroll.c (opt_info_start_duplication, apply_opt_in_copies): 2956 Likewise. 2957 * lower-subreg.c (decompose_multiword_subregs): Likewise. 2958 * lra-lives.c (lra_create_live_ranges): Likewise. 2959 * lra.c (lra): Likewise. 2960 * mode-switching.c (optimize_mode_switching): Likewise. 2961 * recog.c (split_all_insns): Likewise. 2962 * regcprop.c (copyprop_hardreg_forward): Likewise. 2963 * regrename.c (regrename_analyze): Likewise. 2964 * reload1.c (reload): Likewise. 2965 * resource.c (init_resource_info): Likewise. 2966 * sched-rgn.c (haifa_find_rgns, extend_rgns, compute_trg_info, 2967 realloc_bb_state_array, schedule_region, extend_regions): Likewise. 2968 * sel-sched-ir.c (sel_extend_global_bb_info, extend_region_bb_info, 2969 recompute_rev_top_order, sel_init_pipelining, 2970 make_regions_from_the_rest): Likewise. 2971 * store-motion.c (remove_reachable_equiv_notes,build_store_vectors) 2972 Likewise. 2973 * tracer.c (tail_duplicate): Likewise. 2974 * trans-mem.c (tm_region_init, get_bb_regions_instrumented): Likewise. 2975 * tree-cfg.c (create_bb, cleanup_dead_labels, gimple_dump_cfg, 2976 gimple_flow_call_edges_add): Likewise. 2977 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls, 2978 cleanup_tree_cfg_1): Likewise. 2979 * tree-complex.c (tree_lower_complex): Likewise. 2980 * tree-inline.c (copy_cfg_body): Likewise. 2981 * tree-into-ssa.c (mark_phi_for_rewrite, rewrite_into_ssa, 2982 prepare_def_site_for, update_ssa): Likewise. 2983 * tree-ssa-dce.c (tree_dce_init, perform_tree_ssa_dce): Likewise. 2984 * tree-ssa-dom.c (record_edge_info): Likewise. 2985 * tree-ssa-live.c (new_tree_live_info, live_worklist): Likewise. 2986 * tree-ssa-loop-im.c (fill_always_executed_in_1): Likewise. 2987 * tree-ssa-loop-manip.c (copy_phi_node_args 2988 gimple_duplicate_loop_to_header_edge): Likewise. 2989 * tree-ssa-pre.c (compute_antic): Likewise. 2990 * tree-ssa-propagate.c (ssa_prop_init): Likewise. 2991 * tree-ssa-reassoc.c (init_reassoc): Likewise. 2992 * tree-ssa-sccvn.c (init_scc_vn): Likewise. 2993 * tree-ssa-tail-merge.c (init_worklist): Likewise. 2994 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise. 2995 * tree-stdarg.c (reachable_at_most_once): Likewise. 2996 * tree-vrp.c (find_assert_locations): Likewise. 2997 * var-tracking.c (vt_find_locations): Likewise. 2998 29992013-12-09 David Malcolm <dmalcolm@redhat.com> 3000 3001 * basic-block.h (profile_status): Eliminate macro. 3002 3003 * cfgbuild.c (find_many_sub_basic_blocks): Eliminate use of 3004 profile_status macro in favor of profile_status_for_fn, making 3005 use of cfun explicit. 3006 * cfghooks.c (account_profile_record): Likewise. 3007 * cfgloopanal.c (single_likely_exit): 3008 * cfgrtl.c (rtl_verify_edges, rtl_account_profile_record): Likewise. 3009 * graphite.c (graphite_finalize): 3010 * internal-fn.c (ubsan_expand_si_overflow_addsub_check, 3011 ubsan_expand_si_overflow_neg_check, 3012 ubsan_expand_si_overflow_mul_check): Likewise. 3013 * ipa-split.c (consider_split, execute_split_functions): 3014 * loop-unroll.c (decide_peel_simple): 3015 * optabs.c (emit_cmp_and_jump_insn_1): 3016 * predict.c (maybe_hot_edge_p, probably_never_executed, 3017 predictable_edge_p, probability_reliable_p, gimple_predict_edge, 3018 tree_estimate_probability_driver, estimate_bb_frequencies, 3019 compute_function_frequency, rebuild_frequencies): Likewise. 3020 * profile.c (compute_branch_probabilities): Likewise. 3021 * tree-cfg.c (gimple_account_profile_record): Likewise. 3022 * tree-inline.c (optimize_inline_calls): Likewise. 3023 30242013-12-09 David Malcolm <dmalcolm@redhat.com> 3025 3026 * basic-block.h (label_to_block_map): Eliminate macro. 3027 3028 * gimple.c (gimple_set_bb): Replace uses of label_to_block_map with 3029 uses of label_to_block_map_for_fn, making uses of cfun be explicit. 3030 * tree-cfg.c (delete_tree_cfg_annotations): Likewise. 3031 (verify_gimple_label): Likewise. 3032 30332013-12-09 David Malcolm <dmalcolm@redhat.com> 3034 3035 * basic-block.h (basic_block_info): Eliminate macro. 3036 3037 * cfgrtl.c (rtl_create_basic_block): Replace uses of basic_block_info 3038 with basic_block_info_for_fn, making uses of cfun be explicit. 3039 * tree-cfg.c (build_gimple_cfg, create_bb): Likewise. 3040 30412013-12-09 David Malcolm <dmalcolm@redhat.com> 3042 3043 * basic-block.h (BASIC_BLOCK): Eliminate macro. 3044 3045 * alias.c (init_alias_analysis): Eliminate BASIC_BLOCK macro in 3046 favor of uses of BASIC_BLOCK_FOR_FN, making uses of cfun explicit. 3047 * bt-load.c (compute_defs_uses_and_gen, compute_out, link_btr_uses, 3048 block_at_edge_of_live_range_p, migrate_btr_defs): Likewise. 3049 * caller-save.c (insert_one_insn): Likewise. 3050 * cfg.c (debug_bb, get_bb_original, get_bb_copy): Likewise. 3051 * cfgexpand.c (add_scope_conflicts): Likewise. 3052 * cfghooks.c (verify_flow_info): Likewise. 3053 * cfgloop.c (flow_loops_find): Likewise. 3054 * cfgrtl.c (rtl_flow_call_edges_add): Likewise. 3055 * config/mips/mips.c (r10k_insert_cache_barriers): Likewise. 3056 * config/s390/s390.c (s390_optimize_nonescaping_tx): Likewise. 3057 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise. 3058 * cse.c (cse_main): Likewise. 3059 * dce.c (fast_dce): Likewise. 3060 * df-core.c (df_set_blocks, df_worklist_propagate_forward, 3061 df_worklist_propagate_backward, df_worklist_dataflow_doublequeue, 3062 df_bb_replace, df_dump_region): Likewise. 3063 * df-problems.c (df_rd_bb_local_compute, df_lr_bb_local_compute, 3064 df_live_bb_local_compute, df_chain_remove_problem) 3065 df_chain_create_bb, df_word_lr_bb_local_compute, df_note_bb_compute, 3066 df_md_bb_local_compute, df_md_local_compute, 3067 df_md_transfer_function): Likewise. 3068 * df-scan.c (df_scan_blocks, df_reorganize_refs_by_reg_by_insn, 3069 df_reorganize_refs_by_insn, df_bb_refs_collect, 3070 df_record_entry_block_defs, df_update_entry_block_defs, 3071 df_record_exit_block_uses): Likewise. 3072 * dominance.c (nearest_common_dominator_for_set): Likewise. 3073 * gcse.c (hoist_code): Likewise. 3074 * graph.c (draw_cfg_nodes_no_loops): Likewise. 3075 * ipa-inline-analysis.c (param_change_prob, 3076 estimate_function_body_sizes): Likewise. 3077 * ipa-split.c (dominated_by_forbidden): Likewise. 3078 * loop-unroll.c (apply_opt_in_copies): Likewise. 3079 * lower-subreg.c (decompose_multiword_subregs): Likewise. 3080 * lra-lives.c (lra_create_live_ranges): Likewise. 3081 * predict.c (propagate_freq): Likewise. 3082 * regrename.c (regrename_analyze): Likewise. 3083 * regstat.c (regstat_bb_compute_ri, regstat_bb_compute_calls_crossed): 3084 Likewise. 3085 * resource.c (mark_target_live_regs): Likewise. 3086 * sched-ebb.c (ebb_fix_recovery_cfg): Likewise. 3087 * sched-int.h (EBB_FIRST_BB, EBB_LAST_BB): Likewise. 3088 * sched-rgn.c (debug_region, dump_region_dot, too_large, 3089 haifa_find_rgns, extend_rgns, compute_dom_prob_ps, update_live, 3090 propagate_deps, sched_is_disabled_for_current_region_p): Likewise. 3091 * sched-vis.c (debug_bb_n_slim): Likewise. 3092 * sel-sched-ir.c (sel_finish_global_and_expr, verify_backedges, 3093 purge_empty_blocks, sel_remove_loop_preheader): Likewise. 3094 * sel-sched.c (remove_insns_that_need_bookkeeping) 3095 (current_region_empty_p, sel_region_init, simplify_changed_insns): 3096 Likewise. 3097 * trans-mem.c (execute_tm_mark, execute_tm_edges, 3098 tm_memopt_compute_antic, ipa_tm_scan_irr_function): Likewise. 3099 * tree-cfg.c (make_edges, end_recording_case_labels, 3100 label_to_block_fn, gimple_debug_bb, gimple_flow_call_edges_add, 3101 remove_edge_and_dominated_blocks, remove_edge_and_dominated_blocks, 3102 gimple_purge_all_dead_eh_edges, 3103 gimple_purge_all_dead_abnormal_call_edges): Likewise. 3104 * tree-cfgcleanup.c (fixup_noreturn_call, 3105 split_bbs_on_noreturn_calls, cleanup_tree_cfg_1): Likewise. 3106 * tree-inline.c (copy_cfg_body, fold_marked_statements): Likewise. 3107 * tree-into-ssa.c (set_livein_block, prune_unused_phi_nodes, 3108 insert_phi_nodes_for, insert_updated_phi_nodes_for): Likewise. 3109 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise. 3110 * tree-ssa-live.c (live_worklist): Likewise. 3111 * tree-ssa-loop-manip.c (compute_live_loop_exits, add_exit_phis_var, 3112 find_uses_to_rename, copy_phi_node_args): Likewise. 3113 * tree-ssa-pre.c (compute_antic): Likewise. 3114 * tree-ssa-reassoc.c (update_range_test, optimize_range_tests): 3115 Likewise. 3116 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise. 3117 * tree-ssa-tail-merge.c (same_succ_hash, same_succ_def::equal, 3118 same_succ_flush_bbs, update_worklist, set_cluster, 3119 same_phi_alternatives, find_clusters_1, apply_clusters, 3120 update_debug_stmts): Likewise. 3121 * tree-ssa-threadupdate.c (mark_threaded_blocks, 3122 thread_through_all_blocks): Likewise. 3123 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise. 3124 * tree-vrp.c (find_assert_locations): Likewise. 3125 31262013-12-09 David Malcolm <dmalcolm@redhat.com> 3127 3128 * basic-block.h (SET_BASIC_BLOCK): Eliminate macro. 3129 3130 * cfg.c (compact_blocks): Replace uses of SET_BASIC_BLOCK 3131 with SET_BASIC_BLOCK_FOR_FN, making use of cfun explicit. 3132 (expunge_block): Likewise. 3133 * cfgrtl.c (create_basic_block_structure): Likewise. 3134 * df-core.c (df_compact_blocks, df_bb_replace): Likewise. 3135 * sel-sched.c (create_block_for_bookkeeping): Likewise. 3136 * tree-cfg.c (create_bb): Likewise. 3137 31382013-12-09 David Malcolm <dmalcolm@redhat.com> 3139 3140 * basic-block.h (profile_status_for_function): Rename to... 3141 (profile_status_for_fn): ...this. 3142 3143 * cfg.c (check_bb_profile): Update for renaming. 3144 * cgraphbuild.c (compute_call_stmt_bb_frequency): Likewise. 3145 * lto-streamer-in.c (input_cfg): Likewise. 3146 * lto-streamer-out.c (output_cfg): Likewise. 3147 * predict.c (maybe_hot_frequency_p, maybe_hot_count_p, 3148 maybe_hot_bb_p, probably_never_executed) 3149 (handle_missing_profiles): Likewise. 3150 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise. 3151 * tree-inline.c (copy_bb, initialize_cfun): Likewise. 3152 31532013-12-09 David Malcolm <dmalcolm@redhat.com> 3154 3155 * basic-block.h (label_to_block_map_for_function): Rename to... 3156 (label_to_block_map_for_fn): ...this. 3157 3158 * lto-streamer-in.c (input_cfg): Update for renaming. 3159 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise. 3160 31612013-12-09 David Malcolm <dmalcolm@redhat.com> 3162 3163 * basic-block.h (last_basic_block_for_function): Rename to... 3164 (last_basic_block_for_fn): ...this. 3165 3166 * ipa-utils.c (ipa_merge_profiles): Update for renaming of 3167 last_basic_block_for_function to last_basic_block_for_fn. 3168 * lto-streamer-in.c (input_cfg): Likewise. 3169 * lto-streamer-out.c (output_cfg): Likewise. 3170 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise. 3171 * tree-sra.c (propagate_dereference_distances, ipa_early_sra): 3172 Likewise. 3173 31742013-12-09 David Malcolm <dmalcolm@redhat.com> 3175 3176 * basic-block.h (basic_block_info_for_function): Rename to... 3177 (basic_block_info_for_fn): ...this. 3178 (BASIC_BLOCK_FOR_FUNCTION): Rename to... 3179 (BASIC_BLOCK_FOR_FN): ...this. 3180 (SET_BASIC_BLOCK_FOR_FUNCTION): Rename to... 3181 (SET_BASIC_BLOCK_FOR_FN): ...this. 3182 3183 * gimple-streamer-in.c (input_phi, input_bb): Update for renaming 3184 of BASIC_BLOCK_FOR_FUNCTION to BASIC_BLOCK_FOR_FN. 3185 * ipa-utils.c (ipa_merge_profiles): Likewise. 3186 * lto-streamer-in.c (make_new_block): Update for renaming of 3187 SET_BASIC_BLOCK_FOR_FUNCTION to SET_BASIC_BLOCK_FOR_FN. 3188 (input_cfg): Update for renamings. 3189 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise. 3190 (dump_function_to_file): Update for renaming of 3191 basic_block_info_for_function to basic_block_info_for_fn. 3192 31932013-12-09 Richard Biener <rguenther@suse.de> 3194 3195 PR middle-end/38474 3196 * tree-ssa-structalias.c (set_union_with_increment): Remove 3197 unreachable code. 3198 (do_complex_constraint): Call set_union_with_increment with 3199 the solution delta, not the full solution. 3200 (make_transitive_closure_constraints): Merge the two constraints. 3201 32022013-12-09 Richard Earnshaw <rearnsha@arm.com> 3203 3204 * arm.c (mem_ok_for_ldrd_strd): Rename first argument as MEM. Do 3205 more address validation checks. 3206 32072013-12-09 Marek Polacek <polacek@redhat.com> 3208 3209 PR sanitizer/59415 3210 * vtable-verify.c (verify_bb_vtables): Check the return value 3211 of gimple_call_fn. Use is_gimple_call instead of gimple_code. 3212 32132013-12-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 3214 3215 * config/arm/arm.md (generic_sched): Add cortexa12. 3216 (generic_vfp): Likewise. 3217 * config/arm/arm.c (cortexa12_extra_costs): New cost table. 3218 (arm_cortex_a12_tune): New tuning struct. 3219 * config/arm/arm-cores.def: Add cortex-a12. 3220 * config/arm/arm-tables.opt: Regenerate. 3221 * config/arm/arm-tune.md: Likewise. 3222 * config/arm/bpabi.h: Add cortex-a12. 3223 * doc/invoke.texi: Document -mcpu=cortex-a12. 3224 32252013-12-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 3226 3227 * doc/install.texi (Prerequisites): Explicitly mention C library 3228 and its headers for multilib builds. 3229 32302013-12-08 Oleg Endo <olegendo@gcc.gnu.org> 3231 3232 PR target/52898 3233 PR target/51697 3234 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove 3235 OPT_mcbranchdi entry. 3236 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Mark as undocumented and 3237 emit a warning. 3238 * config/sh/sh.c (sh_option_override): Initialize TARGET_CBRANCHDI4 3239 and TARGET_CMPEQDI_T variables. 3240 * doc/invoke.texi (SH options): Undocument -mcbranchdi and -mcmpeqdi. 3241 32422013-12-07 Maxim Kuvyrkov <maxim@kugelworks.com> 3243 3244 * config/linux.h: Fix typo in a comment. 3245 32462013-12-07 Maxim Kuvyrkov <maxim@kugelworks.com> 3247 3248 * config.gcc (*linux*): Split libc selection from Android support. 3249 Add libc selection to all *linux* targets. Add Android support to 3250 architectures that support it. 3251 (arm*-*-linux-*, i[34567]86-*-linux*, x86_64-*-linux*,) 3252 (mips*-*-linux*): Add Android support. 3253 32542013-12-07 Alexander Ivchenko <alexander.ivchenko@intel.com> 3255 Maxim Kuvyrkov <maxim@kugelworks.com> 3256 3257 * config/bfin/uclinux.h, config/c6x/uclinux-elf.h, 3258 * config/lm32/uclinux-elf.h, config/m68k/uclinux.h, 3259 * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Move definitions 3260 to linux.h. 3261 * config/linux-android.h (TARGET_HAS_IFUNC_P): Move definition 3262 to linux.h. 3263 * config/linux.h (TARGET_LIBC_HAS_FUNCTION, TARGET_HAS_IFUNC_P): 3264 Define appropriately for Linux and uClinux targets. 3265 32662013-12-07 Maxim Kuvyrkov <maxim@kugelworks.com> 3267 3268 * config/linux.c (linux_has_ifunc_p): Use correct test. 3269 32702013-12-07 Maxim Kuvyrkov <maxim@kugelworks.com> 3271 3272 * config/linux.c (linux_android_has_ifunc_p): Rename to 3273 linux_has_ifunc_p. 3274 (linux_android_libc_has_function): Rename to linux_libc_has_function. 3275 * config/linux-protos.h (linux_android_has_ifunc_p,) 3276 (linux_android_libc_has_function): Update declarations. 3277 * config/linux.h, config/linux-android.h, config/alpha/linux.h, 3278 * config/rs6000/linux.h, config/rs6000/linux64.h: Update. 3279 32802013-12-07 Maxim Kuvyrkov <maxim@kugelworks.com> 3281 3282 * linux-android.c: Rename to linux.c. 3283 * t-linux-android: Rename to t-linux. Update references 3284 to linux-android.c 3285 * config.gcc: Update references to t-linux-android and linux-android.o. 3286 32872013-12-07 Alan Modra <amodra@gmail.com> 3288 3289 * config/rs6000/rs6000.md (bswapdi2_32bit): Remove ?? from r->r 3290 alternative. 3291 32922013-12-07 Ralf Corsépius <ralf.corsepius@rtems.org> 3293 3294 * config.gcc (microblaze*-*-rtems*): Add TARGET_BIG_ENDIAN_DEFAULT. 3295 32962013-12-06 Vladimir Makarov <vmakarov@redhat.com> 3297 3298 * config/rs6000/rs600.md (*bswapdi2_64bit): Remove ?? from the 3299 constraint. 3300 33012013-12-06 Caroline Tice <cmtice@google.com> 3302 3303 Submitting patch from Stephen Checkoway, s@cs.jhu.edu 3304 * vtable-verify.c (verify_bb_vtables): Replace all uses of verified 3305 vtable pointer with the results of the verification call, rather than 3306 only the uses in the next statement. 3307 33082013-12-06 Andrew Pinski <apinski@cavium.com> 3309 3310 PR target/59092 3311 * config/aarch64/aarch64.md (trap): New pattern. 3312 33132013-12-06 Jakub Jelinek <jakub@redhat.com> 3314 3315 PR tree-optimization/59388 3316 * tree-ssa-reassoc.c (update_range_test): If op == range->exp, 3317 gimplify tem after stmt rather than before it. 3318 3319 * tree-data-ref.c (struct data_ref_loc_d): Replace pos field with ref. 3320 (get_references_in_stmt): Don't record operand addresses, but 3321 operands themselves. 3322 (find_data_references_in_stmt, graphite_find_data_references_in_stmt): 3323 Adjust for the pos -> ref change. 3324 33252013-12-06 H.J. Lu <hongjiu.lu@intel.com> 3326 3327 * config.gcc: Change --with-cpu=ia to --with-cpu=intel. 3328 3329 * config/i386/i386.c (cpu_names): Replace "ia" with "intel". 3330 (processor_alias_table): Likewise. 3331 (ix86_option_override_internal): Likewise. 3332 * config/i386/i386.h (target_cpu_default): Replace 3333 TARGET_CPU_DEFAULT_ia with TARGET_CPU_DEFAULT_intel. 3334 3335 * doc/invoke.texi: Replace -mtune=ia with -mtune=intel. 3336 33372013-12-06 Uros Bizjak <ubizjak@gmail.com> 3338 3339 PR target/59405 3340 * config/i386/i386.c (type_natural_mode): Properly handle 3341 size 8 for !TARGET_64BIT. 3342 33432013-12-06 Trevor Saunders <tsaunders@mozilla.com> 3344 3345 * tree-ssa-pre.c (compute_antic_aux): Remove redundant call to 3346 vec::release. 3347 33482013-12-06 Ian Bolton <ian.bolton@arm.com> 3349 Mark Mitchell <mark@codesourcery.com> 3350 3351 PR target/59091 3352 * config/arm/arm.md (trap): New pattern. 3353 * config/arm/types.md: Added a type for trap. 3354 33552013-12-06 Bernd Edlinger <bernd.edlinger@hotmail.de> 3356 3357 * expr.c (expand_assignment): Update bitregion_start and bitregion_end. 3358 33592013-12-06 Eric Botcazou <ebotcazou@adacore.com> 3360 3361 PR target/59316 3362 * config/sparc/sparc.h (SPARC_LOW_FE_EXCEPT_VALUES): Define. 3363 * config/sparc/sol2.h (SPARC_LOW_FE_EXCEPT_VALUES): Redefine. 3364 * config/sparc/sparc.c (TARGET_INIT_BUILTINS): Move around. 3365 (TARGET_BUILTIN_DECL): Define. 3366 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Likewise. 3367 (sparc32_initialize_trampoline): Adjust call to gen_flush. 3368 (enum sparc_builtins): New enumeral type. 3369 (sparc_builtins): New static array. 3370 (sparc_builtins_icode): Likewise. 3371 (def_builtin): Accept a separate icode and save the result. 3372 (def_builtin_const): Likewise. 3373 (sparc_fpu_init_builtins): New function. 3374 (sparc_vis_init_builtins): Pass the builtin code. 3375 (sparc_init_builtins): Call it if TARGET_FPU. 3376 (sparc_builtin_decl): New function. 3377 (sparc_expand_builtin): Deal with SPARC_BUILTIN_{LD,ST}FSR. 3378 (sparc_handle_vis_mul8x16): Use the builtin code. 3379 (sparc_fold_builtin): Likewise. Deal with SPARC_BUILTIN_{LD,ST}FSR 3380 and SPARC_BUILTIN_PDISTN. 3381 (compound_expr): New helper function. 3382 (sparc_atomic_assign_expand_fenv): New function. 3383 * config/sparc/sparc.md (unspecv): Reorder values, add UNSPECV_LDFSR 3384 and UNSPECV_STFSR. 3385 (flush, flushdi): Merge into single pattern. 3386 (ldfsr): New instruction. 3387 (stfsr): Likewise. 3388 33892013-12-06 Oleg Endo <olegendo@gcc.gnu.org> 3390 3391 * asan.c: Remove struct tags when referring to class varpool_node. 3392 * cgraph.h: Likewise. 3393 * cgraphbuild.c: Likewise. 3394 * cgraphunit.c: Likewise. 3395 * dbxout.c: Likewise. 3396 * dwarf2out.c: Likewise. 3397 * gimple-fold.c: Likewise. 3398 * ipa-devirt.c: Likewise. 3399 * ipa-ref-inline.h: Likewise. 3400 * ipa-ref.h: Likewise. 3401 * ipa-reference.c: Likewise. 3402 * ipa-utils.c: Likewise. 3403 * ipa.c: Likewise. 3404 * lto-cgraph.c: Likewise. 3405 * lto-streamer-out.c: Likewise. 3406 * lto-streamer.h: Likewise. 3407 * passes.c: Likewise. 3408 * toplev.c: Likewise. 3409 * tree-eh.c: Likewise. 3410 * tree-emutls.c: Likewise. 3411 * tree-pass.h: Likewise. 3412 * tree-ssa-structalias.c: Likewise. 3413 * tree-vectorizer.c: Likewise. 3414 * tree.c: Likewise. 3415 * varasm.c: Likewise. 3416 * varpool.c: Likewise. 3417 34182013-12-06 Oleg Endo <olegendo@gcc.gnu.org> 3419 3420 * cgraphunit.c: Remove struct tags when referring to class 3421 ipa_opt_pass_d or class opt_pass. 3422 * function.h: Likewise. 3423 * lto-cgraph.c: Likewise. 3424 * pass_manager.h: Likewise. 3425 * passes.c: Likewise. 3426 * tree-pass.h: Likewise. 3427 34282013-12-06 Richard Biener <rguenther@suse.de> 3429 3430 PR tree-optimization/59058 3431 * tree-vectorizer.h (struct _loop_vec_info): Add num_itersm1 member. 3432 (LOOP_VINFO_NITERSM1): New macro. 3433 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Express 3434 the vector loop entry test in terms of scalar latch executions. 3435 (vect_do_peeling_for_alignment): Update LOOP_VINFO_NITERSM1. 3436 * tree-vect-loop.c (vect_get_loop_niters): Also return the 3437 number of latch executions. 3438 (new_loop_vec_info): Initialize LOOP_VINFO_NITERSM1. 3439 (vect_analyze_loop_form): Likewise. 3440 (vect_generate_tmps_on_preheader): Compute the number of 3441 vectorized iterations differently. 3442 34432013-12-05 Jan-Benedict Glaw <jbglaw@lug-owl.de> 3444 3445 * config/score/score.c (score_force_temporary): Delete function. 3446 (score_split_symbol): Ditto. 3447 * config/score/score.h (ASM_OUTPUT_ADDR_DIFF_ELT): Add extra 3448 parentheses to silence ambiguity warning and reindent. 3449 34502013-12-05 Marek Polacek <polacek@redhat.com> 3451 3452 * doc/invoke.texi: Document -fsanitize=signed-integer-overflow. 3453 34542013-12-05 H.J. Lu <hongjiu.lu@intel.com> 3455 3456 * config.gcc: Support --with-cpu=ia. 3457 3458 * config/i386/i386.c (cpu_names): Add "ia". 3459 (processor_alias_table): Likewise. 3460 (ix86_option_override_internal): Disallow -march=ia. 3461 * config/i386/i386.h (target_cpu_default): Add TARGET_CPU_DEFAULT_ia. 3462 3463 * doc/invoke.texi: Document -mtune=ia. 3464 34652013-12-05 Vladimir Makarov <vmakarov@redhat.com> 3466 3467 PR rtl-optimization/59317 3468 * lra-constraints.c (in_class_p): Don't ignore insn with constant 3469 as a source. 3470 34712013-12-05 Martin Jambor <mjambor@suse.cz> 3472 3473 PR ipa/58253 3474 * ipa-prop.c (ipa_modify_formal_parameters): Create decls of 3475 non-BLKmode in their naturally aligned type. 3476 34772013-12-05 Marek Polacek <polacek@redhat.com> 3478 3479 PR sanitizer/59333 3480 PR sanitizer/59397 3481 * ubsan.c: Include rtl.h and expr.h. 3482 (ubsan_encode_value): Add new parameter. If expanding, assign 3483 a stack slot for DECL_RTL of the temporary and call expand_assignment. 3484 Handle BOOLEAN_TYPE and ENUMERAL_TYPE. 3485 (ubsan_build_overflow_builtin): Adjust ubsan_encode_value call. 3486 * ubsan.h (ubsan_encode_value): Adjust declaration. 3487 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Move 3488 ubsan_build_overflow_builtin above expand_normal call. Surround 3489 this call with push_temp_slots and pop_temp_slots. 3490 (ubsan_expand_si_overflow_neg_check): Likewise. 3491 (ubsan_expand_si_overflow_mul_check): Likewise. 3492 34932013-12-05 Yufeng Zhang <yufeng.zhang@arm.com> 3494 3495 * gimple-ssa-strength-reduction.c (find_basis_for_candidate): Guard 3496 the get_alternative_base call with flag_expensive_optimizations. 3497 (alloc_cand_and_find_basis): Likewise. 3498 34992013-12-05 Tejas Belagod <tejas.belagod@arm.com> 3500 3501 * rtlanal.c (set_noop_p): Return nonzero in case of redundant 3502 vec_select for overlapping register lanes. 3503 35042013-12-05 Kirill Yukhin <kirill.yukhin@intel.com> 3505 3506 * config/i386/i386.c (ix86_expand_builtin): Generate 3507 reg for readflags built-in when optimizing. 3508 * config/i386/i386.md (*pushfl<mode>): Rename to ... 3509 (pushfl<mode>2): This. Fix iterator. 3510 (*popfl<mode>): Rename to ... 3511 (*popfl<mode>1): This. Fix iterator. 3512 35132013-12-05 Kirill Yukhin <kirill.yukhin@intel.com> 3514 3515 * config/i386/i386.c (IX86_BUILTIN_READ_FLAGS): New. 3516 (IX86_BUILTIN_WRITE_FLAGS): Ditto. 3517 (ix86_init_mmx_sse_builtins): Define 3518 __builtin_ia32_writeeflags_u32, __builtin_ia32_writeeflags_u64, 3519 __builtin_ia32_readeflags_u32, __builtin_ia32_readeflags_u64. 3520 (ix86_expand_builtin): Expand them. 3521 * config/i386/ia32intrin.h (__readeflags): New. 3522 (__writeeflags): Ditto. 3523 * config/i386/i386.md (*pushfl<mode>): Ditto. 3524 (*popfl<mode>1): Ditto. 3525 35262013-12-05 Richard Biener <rguenther@suse.de> 3527 3528 PR tree-optimization/59374 3529 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence): 3530 Commonize known and unknown dependence case fixing the allowed 3531 read-write dependence case and dropping code that should not matter. 3532 35332013-12-05 Kirill Yukhin <kirill.yukhin@intel.com> 3534 3535 * config/ia64/ia64.md (prologue_allocate_stack): Block auto- 3536 generation of predicated version. 3537 (epilogue_deallocate_stack): Ditto. 3538 (prologue_allocate_stack_pr): Add explicit predicated version. 3539 (epilogue_deallocate_stack_pr): Ditto. 3540 * config/ia64/ia64.c (ia64_single_set): Use explicit version. 3541 35422013-12-05 Alan Modra <amodra@gmail.com> 3543 3544 * configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for 3545 build != host. 3546 <recursive call for build != host>: Clear GMPINC. Don't bother 3547 saving CFLAGS. 3548 35492013-12-04 Jakub Jelinek <jakub@redhat.com> 3550 Marek Polacek <polacek@redhat.com> 3551 3552 * opts.c (common_handle_option): Handle 3553 -fsanitize=signed-integer-overflow. 3554 * config/i386/i386.md (addv<mode>4, subv<mode>4, mulv<mode>4, 3555 negv<mode>3, negv<mode>3_1): Define expands. 3556 (*addv<mode>4, *subv<mode>4, *mulv<mode>4, *negv<mode>3): Define insns. 3557 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW, 3558 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW, 3559 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW, 3560 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW): Define. 3561 * ubsan.h (PROB_VERY_UNLIKELY, PROB_EVEN, PROB_VERY_LIKELY, 3562 PROB_ALWAYS): Define. 3563 (ubsan_build_overflow_builtin): Declare. 3564 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Add folding of 3565 internal functions. 3566 * ubsan.c (PROB_VERY_UNLIKELY): Don't define here. 3567 (ubsan_build_overflow_builtin): New function. 3568 (instrument_si_overflow): Likewise. 3569 (ubsan_pass): Add signed integer overflow checking. 3570 (gate_ubsan): Enable the pass also when SANITIZE_SI_OVERFLOW. 3571 * flag-types.h (enum sanitize_code): Add SANITIZE_SI_OVERFLOW. 3572 * internal-fn.c: Include ubsan.h and target.h. 3573 (ubsan_expand_si_overflow_addsub_check): New function. 3574 (ubsan_expand_si_overflow_neg_check): Likewise. 3575 (ubsan_expand_si_overflow_mul_check): Likewise. 3576 (expand_UBSAN_CHECK_ADD): Likewise. 3577 (expand_UBSAN_CHECK_SUB): Likewise. 3578 (expand_UBSAN_CHECK_MUL): Likewise. 3579 * fold-const.c (fold_binary_loc): Don't fold A + (-B) -> A - B and 3580 (-A) + B -> B - A when doing the signed integer overflow checking. 3581 * internal-fn.def (UBSAN_CHECK_ADD, UBSAN_CHECK_SUB, UBSAN_CHECK_MUL): 3582 Define. 3583 * tree-vrp.c (extract_range_basic): Handle internal calls. 3584 * optabs.def (addv4_optab, subv4_optab, mulv4_optab, negv4_optab): New 3585 optabs. 3586 * asan.c: Include predict.h. 3587 (PROB_VERY_UNLIKELY, PROB_ALWAYS): Don't define here. 3588 * predict.c: Move the PROB_* macros... 3589 * predict.h (enum br_predictor): ...here. 3590 (PROB_LIKELY, PROB_UNLIKELY): Define. 3591 * trans-mem.c: Include predict.h. 3592 (PROB_VERY_UNLIKELY, PROB_ALWAYS, PROB_VERY_LIKELY, 3593 PROB_LIKELY, PROB_UNLIKELY): Don't define here. 3594 35952013-12-04 Jeff Law <law@redhat.com> 3596 3597 * common.opt: Split up -fisolate-erroneous-paths into 3598 -fisolate-erroneous-paths-dereference and 3599 -fisolate-erroneous-paths-attribute. 3600 * invoke.texi: Corresponding changes. 3601 * gimple.c (infer_nonnull_range): Add and use new arguments to control 3602 what kind of statements can be used to infer a non-null range. 3603 * gimple.h (infer_nonnull_range): Update prototype. 3604 * tree-vrp.c (infer_value_range): Corresponding changes. 3605 * opts.c (default_options_table): Update due to option split. 3606 * gimple-ssa-isolate-paths.c: Fix trailing whitespace. 3607 (find_implicit_erroneous_behaviour): Pass additional arguments 3608 to infer_nonnull_range. 3609 (find_explicit_erroneous_behaviour): Similarly. 3610 (gate_isolate_erroneous_paths): Check both of the new options. 3611 36122013-12-04 Jeff Law <law@redhat.com> 3613 3614 * expr.c (expand_assignment): Update comments. 3615 36162013-12-04 Tobias Burnus <burnus@net-b.de> 3617 3618 PR debug/37132 3619 * lto-streamer.h (LTO_tags): Add LTO_namelist_decl_ref. 3620 * tree.def (NAMELIST_DECL): Add. 3621 * tree.h (NAMELIST_DECL_ASSOCIATED_DECL): New macro. 3622 * tree.c (initialize_tree_contains_struct): Add asserts for it. 3623 * dwarf2out.c (gen_namelist_decl): New function. 3624 (gen_decl_die, dwarf2out_decl): Call it. 3625 (dwarf2out_imported_module_or_decl_1): Handle NAMELIST_DECL. 3626 * lto-streamer-in.c (lto_input_tree_ref): Handle NAMELIST_DECL. 3627 (lto_input_tree_ref, lto_input_tree_1): Update lto_tag_check_range 3628 call. 3629 * lto-streamer-out.c (lto_output_tree_ref): Handle NAMELIST_DECL. 3630 36312013-12-03 Xinliang David Li <davidxl@google.com> 3632 3633 * tree-ssa-structalias.c (constraint_set_union): Change return type 3634 from void to bool. 3635 (merge_node_constraints): Ditto. 3636 (unify_nodes): Update changed set when constraints set changes. 3637 36382013-12-04 H.J. Lu <hongjiu.lu@intel.com> 3639 3640 * configure.ac: Append gdbasan.in to .gdbinit if CFLAGS contains 3641 -fsanitize=address. 3642 * configure: Regenerated. 3643 3644 * gdbasan.in: New file. 3645 36462013-12-04 Jakub Jelinek <jakub@redhat.com> 3647 3648 PR rtl-optimization/58726 3649 * combine.c (force_to_mode): Fix comment typo. Don't destructively 3650 modify x for ROTATE, ROTATERT and IF_THEN_ELSE. 3651 36522013-12-04 Jakub Jelinek <jakub@redhat.com> 3653 Uros Bizjak <ubizjak@gmail.com> 3654 3655 PR target/59163 3656 * config/i386/i386.c (ix86_legitimate_combined_insn): If for 3657 !TARGET_AVX there is misaligned MEM operand with vector mode 3658 and get_attr_ssememalign is 0, return false. 3659 (ix86_expand_special_args_builtin): Add get_pointer_alignment 3660 computed alignment and for non-temporal loads/stores also 3661 at least GET_MODE_ALIGNMENT as MEM_ALIGN. 3662 * config/i386/sse.md 3663 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>, 3664 <sse>_storeu<ssemodesuffix><avxsizesuffix>, 3665 <sse2_avx_avx512f>_loaddqu<mode><mask_name>, 3666 <sse2_avx_avx512f>_storedqu<mode>, <sse3>_lddqu<avxsizesuffix>, 3667 sse_vmrcpv4sf2, sse_vmrsqrtv4sf2, sse2_cvtdq2pd, sse_movhlps, 3668 sse_movlhps, sse_storehps, sse_loadhps, sse_loadlps, 3669 *vec_interleave_highv2df, *vec_interleave_lowv2df, 3670 *vec_extractv2df_1_sse, sse2_movsd, sse4_1_<code>v8qiv8hi2, 3671 sse4_1_<code>v4qiv4si2, sse4_1_<code>v4hiv4si2, 3672 sse4_1_<code>v2qiv2di2, sse4_1_<code>v2hiv2di2, 3673 sse4_1_<code>v2siv2di2, sse4_2_pcmpestr, *sse4_2_pcmpestr_unaligned, 3674 sse4_2_pcmpestri, sse4_2_pcmpestrm, sse4_2_pcmpestr_cconly, 3675 sse4_2_pcmpistr, *sse4_2_pcmpistr_unaligned, sse4_2_pcmpistri, 3676 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Add ssememalign attribute. 3677 * config/i386/i386.md (ssememalign): New define_attr. 3678 36792013-12-04 Jakub Jelinek <jakub@redhat.com> 3680 3681 PR tree-optimization/59355 3682 * ipa-devirt.c (gate_ipa_devirt): Return false if !flag_devirtualize. 3683 * opts.c (common_handle_option): Fix comment spelling. 3684 36852013-12-04 Yufeng Zhang <yufeng.zhang@arm.com> 3686 3687 * gimple-ssa-strength-reduction.c: Include tree-affine.h. 3688 (name_expansions): New static variable. 3689 (alt_base_map): Ditto. 3690 (get_alternative_base): New function. 3691 (find_basis_for_candidate): For CAND_REF, optionally call 3692 find_basis_for_base_expr with the returned value from 3693 get_alternative_base. 3694 (record_potential_basis): Add new parameter 'base' of type 'tree'; 3695 add an assertion of non-NULL base; use base to set node->base_expr. 3696 (alloc_cand_and_find_basis): Update; call record_potential_basis 3697 for CAND_REF with the returned value from get_alternative_base. 3698 (replace_refs): Dump details on the replacing. 3699 (execute_strength_reduction): Call pointer_map_create for 3700 alt_base_map; call free_affine_expand_cache with &name_expansions. 3701 37022013-12-03 Wei Mi <wmi@google.com> 3703 3704 PR rtl-optimization/59020 3705 * sched-deps.c (try_group_insn): Move it from haifa-sched.c to here. 3706 (sched_analyze_insn): Call try_group_insn. 3707 (sched_analyze): Cleanup SCHED_GROUP_P before start the analysis. 3708 * haifa-sched.c (try_group_insn): Moved to sched-deps.c. 3709 (group_insns_for_macro_fusion): Removed. 3710 (sched_init): Remove calling group_insns_for_macro_fusion. 3711 37122013-12-03 Peter Bergner <bergner@vnet.ibm.com> 3713 3714 * config/rs6000/htmintrin.h (_TEXASR_INSTRUCTION_FETCH_CONFLICT): Fix 3715 typo in macro name. 3716 (_TEXASRU_INSTRUCTION_FETCH_CONFLICT): Likewise. 3717 37182013-12-03 Vladimir Makarov <vmakarov@redhat.com> 3719 3720 * config/aarch64/aarch64.c (aarch64_frame_pointer_required): Check 3721 LR_REGNUM. 3722 (aarch64_can_eliminate): Don't check elimination source when 3723 frame_pointer_required is false. 3724 37252013-12-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> 3726 3727 * config/avr/avr.c (avr_option_override): Warn if asked to generate 3728 position independent code. 3729 * config/avr/avr.h: Modify LINK_SPEC to reject -shared. 3730 37312013-12-03 H.J. Lu <hongjiu.lu@intel.com> 3732 3733 PR target/59363 3734 * config/i386/i386.c (emit_memset): Adjust destination address 3735 after gen_strset. 3736 (expand_setmem_epilogue): Likewise. 3737 37382013-12-03 Marek Polacek <polacek@redhat.com> 3739 3740 PR middle-end/56344 3741 * calls.c (expand_call): Disallow passing huge arguments by value. 3742 37432013-12-03 Jakub Jelinek <jakub@redhat.com> 3744 3745 PR tree-optimization/59362 3746 * tree-object-size.c (object_sizes): Change into array of 3747 vec<unsigned HOST_WIDE_INT>. 3748 (compute_builtin_object_size): Check computed bitmap for 3749 non-NULL instead of object_sizes. Call safe_grow on object_sizes 3750 vector if new SSA_NAMEs appeared. 3751 (init_object_sizes): Check computed bitmap for non-NULL. 3752 Call safe_grow on object_sizes elements instead of initializing 3753 it with XNEWVEC. 3754 (fini_object_sizes): Call release on object_sizes elements, don't 3755 set it to NULL. 3756 3757 PR middle-end/59011 3758 * gimplify.c (nonlocal_vla_vars): New variable. 3759 (gimplify_var_or_parm_decl): Put VAR_DECLs for VLAs into 3760 nonlocal_vla_vars chain. 3761 (gimplify_body): Call declare_vars on nonlocal_vla_vars chain 3762 if outer_bind has DECL_INITIAL (current_function_decl) block. 3763 3764 PR target/58864 3765 * dojump.c (save_pending_stack_adjust, restore_pending_stack_adjust): 3766 New functions. 3767 * expr.h (struct saved_pending_stack_adjust): New type. 3768 (save_pending_stack_adjust, restore_pending_stack_adjust): New 3769 prototypes. 3770 * optabs.c (emit_conditional_move): Call save_pending_stack_adjust 3771 and get_last_insn before do_pending_stack_adjust, call 3772 restore_pending_stack_adjust after delete_insns_since. 3773 * expr.c (expand_expr_real_2): Don't call do_pending_stack_adjust 3774 before calling emit_conditional_move. 3775 * expmed.c (expand_sdiv_pow2): Likewise. 3776 * calls.c (expand_call): Use {save,restore}_pending_stack_adjust. 3777 37782013-12-02 Jeff Law <law@redhat.com> 3779 3780 PR tree-optimization/59322 3781 * tree-ssa-threadedge.c (create_edge_and_update_destination_phis): 3782 Remove code which copied jump threading paths. 3783 37842013-12-02 Sriraman Tallam <tmsriram@google.com> 3785 3786 PR target/58944 3787 * config/i386/i386.opt (ix86_arch_string): Mark this variable 3788 for saving in cl_target_option. 3789 (ix86_tune_string): Ditto. 3790 (ix86_cmodel): Ditto. 3791 (ix86_abi): Ditto. 3792 (ix86_asm_dialect): Ditto. 3793 (ix86_branch_cost): Ditto. 3794 (ix86_dump_tunes): Ditto. 3795 (ix86_force_align_arg_pointer): Ditto. 3796 (ix86_force_drap): Ditto. 3797 (ix86_incoming_stack_boundary_arg): Ditto. 3798 (ix86_pmode): Ditto. 3799 (ix86_preferred_stack_boundary_arg): Ditto. 3800 (ix86_recip_name): Ditto. 3801 (ix86_regparm): Ditto. 3802 (ix86_section_threshold): Ditto. 3803 (ix86_sse2avx): Ditto. 3804 (ix86_stack_protector_guard): Ditto. 3805 (ix86_stringop_alg): Ditto. 3806 (ix86_tls_dialect): Ditto. 3807 (ix86_tune_ctrl_string): Ditto. 3808 (ix86_tune_memcpy_strategy): Ditto. 3809 (ix86_tune_memset_strategy): Ditto. 3810 (ix86_tune_no_default): Ditto. 3811 (ix86_veclibabi_type): Ditto. 3812 * config/i386/i386.c (function_specific_save): Save the above 3813 variables in gcc_options to cl_target_option. 3814 (function_specific_restore): Do the reverse done in 3815 function_specific_save. 3816 (ix86_valid_target_attribute_tree): Change ix86_arch_string 3817 and ix86_tune_string to use the opts structure. 3818 (ix86_option_override_internal):Change 3819 ix86_incoming_stack_boundary_arg to 3820 opts->x_ix86_incoming_stack_boundary_arg 3821 38222013-12-02 Joern Rennecke <joern.rennecke@embecosm.com> 3823 3824 * config/epiphany/epiphany.h: Wrap rtl_opt_pass declarations 3825 in #ifndef IN_LIBGCC2 / #endif. 3826 38272013-12-02 Jakub Jelinek <jakub@redhat.com> 3828 3829 PR tree-optimization/59358 3830 * tree-vrp.c (union_ranges): To check for the partially overlapping 3831 ranges or adjacent ranges, also compare *vr0max with vr1max. 3832 38332013-12-02 Sterling Augustine <saugustine@google.com> 3834 3835 * dwarf2out.c (output_pubnames): Use comp_unit_die ()->die_offset 3836 when there isn't a skeleton die. 3837 38382013-12-02 Marek Polacek <polacek@redhat.com> 3839 3840 PR sanitizer/59353 3841 * doc/invoke.texi: Document -fsanitize=return. 3842 38432013-12-02 Tobias Burnus <burnus@net-b.de> 3844 Manuel López-Ibáñez <manu@gcc.gnu.org> 3845 3846 PR middle-end/59257 3847 * doc/invoke.texi: Add missing @opindex. 3848 (-fsanitize=): Use @gcctabopt instead of @itemize. 3849 38502013-12-02 Bernd Edlinger <bernd.edlinger@hotmail.de> 3851 3852 Fix C++0x memory model for unaligned fields in packed, aligned(4) 3853 structures with -fno-strict-volatile-bitfields on STRICT_ALIGNMENT 3854 targets like arm-none-eabi. 3855 * expr.c (expand_assignment): Handle normal fields like bit regions. 3856 38572013-12-02 Richard Biener <rguenther@suse.de> 3858 3859 PR tree-optimization/59139 3860 * tree-ssa-loop-niter.c (chain_of_csts_start): Properly match 3861 code in get_val_for. 3862 (get_val_for): Use gcc_checking_asserts. 3863 38642013-12-02 Richard Biener <rguenther@suse.de> 3865 3866 PR middle-end/59199 3867 * tree-ssa-operands.c (opf_implicit): Remove. 3868 (opf_address_taken): New flag. 3869 (get_expr_operands): Remove early out, pass down opf_address_taken for 3870 ADDR_EXPRs, add a use operand only for non-opf_address_taken bases. 3871 (get_indirect_ref_operands): Rename to ... 3872 (get_mem_ref_operands): ... this. 3873 (get_asm_expr_operands): Rename to ... 3874 (get_asm_stmt_operands): ... this. 3875 38762013-12-02 Yuri Rumyantsev <ysrumyan@gmail.com> 3877 3878 * ipa-inline.c (check_callers): Add missed pointer de-reference. 3879 38802013-12-02 Eric Botcazou <ebotcazou@adacore.com> 3881 3882 PR tree-optimization/59356 3883 * tree-dfa.h (get_addr_base_and_unit_offset_1) <case ARRAY_REF>: Do the 3884 offset computation using the precision of the index type. 3885 38862013-12-02 Yvan Roux <yvan.roux@linaro.org> 3887 3888 PR target/58785 3889 * config/arm/arm.c (arm_preferred_reload_class): Only return LO_REGS 3890 when rclass is GENERAL_REGS. 3891 38922013-12-02 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> 3893 3894 * loop-unroll.c (decide_unroll_constant_iterations): Check macro 3895 TARGET_LOOP_UNROLL_ADJUST while deciding unroll factor. 3896 38972013-12-01 Eric Botcazou <ebotcazou@adacore.com> 3898 3899 * config/i386/winnt.c (i386_pe_asm_named_section): Be prepared for an 3900 identifier node. 3901 39022013-12-01 Bernd Edlinger <bernd.edlinger@hotmail.de> 3903 3904 * expr.c (emit_group_store): Fix off-by-one BITFIELD_END argument. 3905 39062013-11-30 Paulo Matos <pmatos@broadcom.com> 3907 Eric Botcazou <ebotcazou@adacore.com> 3908 3909 * combine.c (reg_nonzero_bits_for_combine): Apply mask transformation 3910 as applied to nonzero_sign_valid when last_set_mode has less precision 3911 than mode. 3912 39132013-11-30 Tobias Burnus <burnus@net-b.de> 3914 3915 PR sanitizer/59275 3916 * doc/invoke.texi (-fsanitize=address,leak): Mention the associated 3917 environment variable and link to a list with flags. 3918 (-fsanitize=thread): Ditto and update link. 3919 39202013-11-29 Vladimir Makarov <vmakarov@redhat.com> 3921 3922 PR rtl-optimization/59340 3923 * lra.c (check_rtl): Use recog_memoized instead of insn_invalid_p. 3924 3925 Revert 3926 2013-11-20 Robert Suchanek <Robert.Suchanek@imgtec.com> 3927 3928 * lra.c (lra): Set lra_in_progress before check_rtl call. 3929 * recog.c (insn_invalid_p): Add !lra_in_progress to prevent 3930 adding clobber regs when LRA is running. 3931 39322013-11-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 3933 3934 PR target/59289 3935 * config/arm/arm.c (cortexa15_extra_costs): Adjust costs. 3936 39372013-11-29 Richard Biener <rguenther@suse.de> 3938 3939 PR middle-end/59208 3940 * tree-ssa-operands.h (fini_ssa_operands, verify_ssa_operands, 3941 free_stmt_operands, update_stmt_operands): Add struct function 3942 argument. 3943 * tree-ssa-operands.c: Remove uses of cfun, propagate struct 3944 function argument from fini_ssa_operands, verify_ssa_operands, 3945 free_stmt_operands and update_stmt_operands everywhere. 3946 * tree-ssanames.h (release_ssa_name_fn): New. 3947 (release_ssa_name): Inline wrapper around release_ssa_name_fn. 3948 * tree-ssanames.c (release_ssa_name): Rename to ... 3949 (release_ssa_name_fn): ... this and add struct function argument. 3950 * gimple-ssa.h (update_stmt, update_stmt_if_modified): Adjust. 3951 (update_stmt_fn): New function. 3952 * tree-cfg.c (move_block_to_fn): Adjust. 3953 * tree-if-conv.c (free_bb_predicate): Likewise. 3954 * tree-ssa.c (verify_ssa): Likewise. 3955 (delete_tree_ssa): Likewise. 3956 * gimple-pretty-print.c (dump_gimple_mem_ops): Remove guard. 3957 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Call 3958 update_stmt_fn instead of update_stmt. 3959 39602013-11-29 Yvan Roux <yvan.roux@linaro.org> 3961 3962 * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS 3963 for LRA. 3964 39652013-11-29 Yvan Roux <yvan.roux@linaro.org> 3966 3967 * config/arm/arm.md (store_minmaxsi): Use only when 3968 optimize_function_for_size_p. 3969 39702013-11-29 Jakub Jelinek <jakub@redhat.com> 3971 Yury Gribov <y.gribov@samsung.com> 3972 3973 PR sanitizer/59063 3974 * config/gnu-user.h: Removed old code for setting up sanitizer libs. 3975 * gcc.c: Using libsanitizer spec instead of explicit libs. 3976 39772013-11-29 Ilya Enkovich <ilya.enkovich@intel.com> 3978 3979 Reverted: 3980 2013-11-20 Ilya Enkovich <ilya.enkovich@intel.com> 3981 * cgraph.h (varpool_node): Add need_bounds_init field. 3982 * lto-cgraph.c (lto_output_varpool_node): Output 3983 need_bounds_init value. 3984 (input_varpool_node): Read need_bounds_init value. 3985 * varpool.c (dump_varpool_node): Dump need_bounds_init field. 3986 3987 Reverted: 3988 2013-11-20 Ilya Enkovich <ilya.enkovich@intel.com> 3989 * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE. 3990 * dwarf2out.c (gen_subprogram_die): Ignore bound args. 3991 (gen_type_die_with_usage): Skip pointer bounds. 3992 (dwarf2out_global_decl): Likewise. 3993 3994 Reverted: 3995 2013-11-18 Ilya Enkovich <ilya.enkovich@intel.com> 3996 * builtin-types.def (BT_FN_PTR_CONST_PTR_VAR): New. 3997 * chkp-builtins.def (BUILT_IN_CHKP_BIND_BOUNDS): New. 3998 * cfgexpand.c (expand_call_stmt): Expand BUILT_IN_CHKP_BIND_BOUNDS. 3999 * gimple.c (gimple_call_get_nobnd_arg_index): Remove. 4000 * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS. 4001 (gimple_call_with_bounds_p): New. 4002 (gimple_call_set_with_bounds): New. 4003 (gimple_call_num_nobnd_args): Remove. 4004 (gimple_call_nobnd_arg): Remove. 4005 * tree.h (CALL_WITH_BOUNDS_P): New. 4006 * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New. 4007 4008 Reverted: 4009 2013-11-08 Ilya Enkovich <ilya.enkovich@intel.com> 4010 * common.opt (fcheck-pointer-bounds): Move to ... 4011 * c-family/c.opt: ... here. 4012 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): Remove. 4013 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CHKP_SUPPORTED. 4014 * langhooks.h (lang_hooks): Remove chkp_supported field. 4015 * toplev.c (process_options): Remove chkp_supported check. 4016 4017 Reverted: 4018 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com> 4019 * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE. 4020 * tree.h (POINTER_BOUNDS_P): New. 4021 (BOUNDED_TYPE_P): New. 4022 (BOUNDED_P): New. 4023 (pointer_bounds_type_node): New. 4024 * tree.c (build_common_tree_nodes): Initialize 4025 pointer_bounds_type_node. 4026 * gimple.h (gimple_call_get_nobnd_arg_index): New. 4027 (gimple_call_num_nobnd_args): New. 4028 (gimple_call_nobnd_arg): New. 4029 (gimple_return_retbnd): New. 4030 (gimple_return_set_retbnd): New 4031 * gimple.c (gimple_build_return): Increase number of ops 4032 for return statement. 4033 (gimple_call_get_nobnd_arg_index): New. 4034 * gimple-pretty-print.c (dump_gimple_return): Print second op. 4035 4036 Reverted: 4037 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com> 4038 * ipa.c (cgraph_build_static_cdtor_1): Support contructors 4039 with "chkp ctor" and "bnd_legacy" attributes. 4040 * gimplify.c (gimplify_init_constructor): Avoid infinite 4041 loop during gimplification of bounds initializer. 4042 4043 Reverted: 4044 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com> 4045 * c-family/c-common.c (handle_bnd_variable_size_attribute): New. 4046 (handle_bnd_legacy): New. 4047 (c_common_attribute_table): Add bnd_variable_size and bnd_legacy. 4048 * doc/extend.texi: Document bnd_variable_size and bnd_legacy 4049 attributes. 4050 4051 Reverted: 4052 2013-10-29 Ilya Enkovich <ilya.enkovich@intel.com> 4053 * builtin-types.def (BT_FN_VOID_CONST_PTR): New. 4054 (BT_FN_PTR_CONST_PTR): New. 4055 (BT_FN_CONST_PTR_CONST_PTR): New. 4056 (BT_FN_PTR_CONST_PTR_SIZE): New. 4057 (BT_FN_PTR_CONST_PTR_CONST_PTR): New. 4058 (BT_FN_VOID_PTRPTR_CONST_PTR): New. 4059 (BT_FN_VOID_CONST_PTR_SIZE): New. 4060 (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New. 4061 * chkp-builtins.def: New. 4062 * builtins.def: include chkp-builtins.def. 4063 (DEF_CHKP_BUILTIN): New. 4064 * builtins.c (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS, 4065 BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS, 4066 BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS, 4067 BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS, 4068 BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS, 4069 BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND, 4070 BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL, 4071 BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET, 4072 BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_ARG_BND, BUILT_IN_CHKP_NARROW, 4073 BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER. 4074 * common.opt (fcheck-pointer-bounds): New. 4075 * toplev.c (process_options): Check Pointer Bounds Checker is 4076 supported. 4077 * doc/extend.texi: Document Pointer Bounds Checker built-in functions. 4078 4079 Reverted: 4080 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com> 4081 * target.def (builtin_chkp_function): New. 4082 (chkp_bound_type): New. 4083 (chkp_bound_mode): New. 4084 (fn_abi_va_list_bounds_size): New. 4085 (load_bounds_for_arg): New. 4086 (store_bounds_for_arg): New. 4087 * targhooks.h (default_load_bounds_for_arg): New. 4088 (default_store_bounds_for_arg): New. 4089 (default_fn_abi_va_list_bounds_size): New. 4090 (default_chkp_bound_type): New. 4091 (default_chkp_bound_mode): New. 4092 (default_builtin_chkp_function): New. 4093 * targhooks.c (default_load_bounds_for_arg): New. 4094 (default_store_bounds_for_arg): New. 4095 (default_fn_abi_va_list_bounds_size): New. 4096 (default_chkp_bound_type): New. 4097 (default_chkp_bound_mode); New. 4098 (default_builtin_chkp_function): New. 4099 * doc/tm.texi.in (TARGET_FN_ABI_VA_LIST_BOUNDS_SIZE): New. 4100 (TARGET_LOAD_BOUNDS_FOR_ARG): New. 4101 (TARGET_STORE_BOUNDS_FOR_ARG): New. 4102 (TARGET_BUILTIN_CHKP_FUNCTION): New. 4103 (TARGET_CHKP_BOUND_TYPE): New. 4104 (TARGET_CHKP_BOUND_MODE): New. 4105 * doc/tm.texi: Regenerated. 4106 * langhooks.h (lang_hooks): Add chkp_supported field. 4107 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): New. 4108 (LANG_HOOKS_INITIALIZER); Add LANG_HOOKS_CHKP_SUPPORTED. 4109 4110 Reverted: 4111 2013-10-24 Ilya Enkovich <ilya.enkovich@intel.com> 4112 * config/i386/constraints.md (B): New. 4113 (Ti): New. 4114 (Tb): New. 4115 * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__. 4116 * config/i386/i386-modes.def (BND32): New. 4117 (BND64): New. 4118 * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New. 4119 * config/i386/i386.c (isa_opts): Add mmpx. 4120 (regclass_map): Add bound registers. 4121 (dbx_register_map): Likewise. 4122 (dbx64_register_map): Likewise. 4123 (svr4_dbx_register_map): Likewise. 4124 (PTA_MPX): New. 4125 (ix86_option_override_internal): Support MPX ISA. 4126 (ix86_conditional_register_usage): Support bound registers. 4127 (print_reg): Likewise. 4128 (ix86_code_end): Add MPX bnd prefix. 4129 (output_set_got): Likewise. 4130 (ix86_output_call_insn): Likewise. 4131 (ix86_print_operand): Add '!' (MPX bnd) print prefix support. 4132 (ix86_print_operand_punct_valid_p): Likewise. 4133 (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and 4134 UNSPEC_BNDMK_ADDR. 4135 (ix86_class_likely_spilled_p): Add bound regs support. 4136 (ix86_hard_regno_mode_ok): Likewise. 4137 (x86_order_regs_for_local_alloc): Likewise. 4138 (ix86_bnd_prefixed_insn_p): New. 4139 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Fix to new value. 4140 (FIXED_REGISTERS): Add bound registers. 4141 (CALL_USED_REGISTERS): Likewise. 4142 (REG_ALLOC_ORDER): Likewise. 4143 (HARD_REGNO_NREGS): Likewise. 4144 (TARGET_MPX): New. 4145 (VALID_BND_REG_MODE): New. 4146 (FIRST_BND_REG): New. 4147 (LAST_BND_REG): New. 4148 (reg_class): Add BND_REGS. 4149 (REG_CLASS_NAMES): Likewise. 4150 (REG_CLASS_CONTENTS): Likewise. 4151 (BND_REGNO_P): New. 4152 (ANY_BND_REG_P): New. 4153 (BNDmode): New. 4154 (HI_REGISTER_NAMES): Add bound registers. 4155 * config/i386/i386.md (UNSPEC_BNDMK): New. 4156 (UNSPEC_BNDMK_ADDR): New. 4157 (UNSPEC_BNDSTX): New. 4158 (UNSPEC_BNDLDX): New. 4159 (UNSPEC_BNDLDX_ADDR): New. 4160 (UNSPEC_BNDCL): New. 4161 (UNSPEC_BNDCU): New. 4162 (UNSPEC_BNDCN): New. 4163 (UNSPEC_MPX_FENCE): New. 4164 (BND0_REG): New. 4165 (BND1_REG): New. 4166 (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst. 4167 (length_immediate): Likewise. 4168 (prefix_0f): Likewise. 4169 (memory): Likewise. 4170 (prefix_rep): Check for bnd prefix. 4171 (length_nobnd): New. 4172 (length): Use length_nobnd if specified. 4173 (BND): New. 4174 (bnd_ptr): New. 4175 (BNDCHECK): New. 4176 (bndcheck): New. 4177 (*jcc_1): Add bnd prefix and rename length attr to length_nobnd. 4178 (*jcc_2): Likewise. 4179 (jump): Likewise. 4180 (simple_return_internal): Likewise. 4181 (simple_return_pop_internal): Likewise. 4182 (*indirect_jump): Add MPX bnd prefix. 4183 (*tablejump_1): Likewise. 4184 (simple_return_internal_long): Likewise. 4185 (simple_return_indirect_internal): Likewise. 4186 (<mode>_mk): New. 4187 (*<mode>_mk): New. 4188 (mov<mode>): New. 4189 (*mov<mode>_internal_mpx): New. 4190 (<mode>_<bndcheck>): New. 4191 (*<mode>_<bndcheck>): New. 4192 (<mode>_ldx): New. 4193 (*<mode>_ldx): New. 4194 (<mode>_stx): New. 4195 (*<mode>_stx): New. 4196 * config/i386/predicates.md (lea_address_operand): Rename to... 4197 (address_no_seg_operand): ... this. 4198 (address_mpx_no_base_operand): New. 4199 (address_mpx_no_index_operand): New. 4200 (bnd_mem_operator): New. 4201 * config/i386/i386.opt (mmpx): New. 4202 * doc/invoke.texi: Add documentation for the flags -mmpx, -mno-mpx. 4203 * doc/rtl.texi Add documentation for BND32mode and BND64mode. 4204 4205 Reverted: 4206 2013-10-24 Ilya Enkovich <ilya.enkovich@intel.com> 4207 * mode-classes.def (MODE_POINTER_BOUNDS): New. 4208 * tree.def (POINTER_BOUNDS_TYPE): New. 4209 * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS. 4210 (POINTER_BOUNDS_MODE): New. 4211 (make_pointer_bounds_mode): New. 4212 * machmode.h (POINTER_BOUNDS_MODE_P): New. 4213 * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS. 4214 (layout_type): Support POINTER_BOUNDS_TYPE. 4215 * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE. 4216 * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE. 4217 (type_contains_placeholder_1): Likewise. 4218 * tree.h (POINTER_BOUNDS_TYPE_P): New. 4219 * varasm.c (output_constant): Support POINTER_BOUNDS_TYPE. 4220 * doc/rtl.texi (MODE_POINTER_BOUNDS): New. 4221 42222013-11-29 Richard Biener <rguenther@suse.de> 4223 4224 PR middle-end/59338 4225 * tree-cfg.c (verify_expr): Restrict bounds verification of 4226 BIT_FIELD_REF arguments to non-aggregate typed base objects. 4227 42282013-11-29 Richard Biener <rguenther@suse.de> 4229 4230 PR tree-optimization/59334 4231 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Fix bug 4232 in previous commit. 4233 42342013-11-29 Jakub Jelinek <jakub@redhat.com> 4235 Richard Biener <rguenther@suse.de> 4236 4237 PR lto/59326 4238 * omp-low.c (simd_clone_create): Return NULL if for definition 4239 !cgraph_function_with_gimple_body_p (old_node). Call cgraph_get_body 4240 before calling cgraph_function_versioning. 4241 (expand_simd_clones): Look for "omp declare simd" attribute first. 4242 Don't check targetm.simd_clone.compute_vecsize_and_simdlen here. 4243 Punt if node->global.inlined_to. 4244 (pass_omp_simd_clone::gate): Also enable if in_lto_p && !flag_wpa. 4245 Disable pass if targetm.simd_clone.compute_vecsize_and_simdlen is NULL. 4246 * lto-streamer-out.c (hash_tree): Handle OMP_CLAUSE. 4247 42482013-11-29 Jakub Jelinek <jakub@redhat.com> 4249 4250 PR lto/59326 4251 * tree-core.h (enum omp_clause_schedule_kind): Add 4252 OMP_CLAUSE_SCHEDULE_LAST. 4253 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_LAST. 4254 (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_LAST. 4255 (enum omp_clause_map_kind): Add OMP_CLAUSE_MAP_LAST. 4256 (enum omp_clause_proc_bind_kind): Add OMP_CLAUSE_PROC_BIND_LAST. 4257 * lto-streamer-out.c (lto_is_streamable): Allow streaming OMP_CLAUSE. 4258 (DFS_write_tree_body): Handle OMP_CLAUSE. 4259 * tree-streamer-out.c (pack_ts_omp_clause_value_fields): New function. 4260 (streamer_pack_tree_bitfields): Call it for OMP_CLAUSE. 4261 (write_ts_omp_clause_tree_pointers): New function. 4262 (streamer_write_tree_body): Call it for OMP_CLAUSE. 4263 (streamer_write_tree_header): For OMP_CLAUSE stream OMP_CLAUSE_CODE. 4264 * tree-streamer-in.c (unpack_ts_omp_clause_value_fields): New function. 4265 (unpack_value_fields): Call it for OMP_CLAUSE. 4266 (streamer_alloc_tree): Handle OMP_CLAUSE. 4267 (lto_input_ts_omp_clause_tree_pointers): New function. 4268 (streamer_read_tree_body): Call it for OMP_CLAUSE. 4269 42702013-11-29 Joseph Myers <joseph@codesourcery.com> 4271 4272 * doc/implement-c.texi: Document C11 implementation-defined 4273 behavior. Refer to -ffp-contract=fast for contraction behavior. 4274 * doc/invoke.texi (-std=c99, std=c11): Update description of 4275 completeness. 4276 (-std=gnu99): Don't mention as future default. 4277 (-std=gnu11): Mention as intended future default. 4278 * doc/standards.texi: Update descriptions of C99 and C11 support. 4279 Limit statement about C99 facilities for freestanding 4280 implementations to some platforms only. 4281 42822013-11-28 Jakub Jelinek <jakub@redhat.com> 4283 4284 PR middle-end/59327 4285 * cfgexpand.c (expand_used_vars): Avoid warning on 32-bit HWI hosts. 4286 42872013-11-28 Vladimir Makarov <vmakarov@redhat.com> 4288 4289 PR target/57293 4290 * ira.h (ira_setup_eliminable_regset): Remove parameter. 4291 * ira.c (ira_setup_eliminable_regset): Ditto. Add 4292 SUPPORTS_STACK_ALIGNMENT for crtl->stack_realign_needed. 4293 Don't call lra_init_elimination. 4294 (ira): Call ira_setup_eliminable_regset without arguments. 4295 * loop-invariant.c (calculate_loop_reg_pressure): Remove argument 4296 from ira_setup_eliminable_regset call. 4297 * gcse.c (calculate_bb_reg_pressure): Ditto. 4298 * haifa-sched.c (sched_init): Ditto. 4299 * lra.h (lra_init_elimination): Remove the prototype. 4300 * lra-int.h (lra_insn_recog_data): New member sp_offset. Move 4301 used_insn_alternative upper. 4302 (lra_eliminate_regs_1): Add one more parameter. 4303 (lra-eliminate): Ditto. 4304 * lra.c (lra_invalidate_insn_data): Set sp_offset. 4305 (setup_sp_offset): New. 4306 (lra_process_new_insns): Call setup_sp_offset. 4307 (lra): Add argument to lra_eliminate calls. 4308 * lra-constraints.c (get_equiv_substitution): Rename to get_equiv. 4309 (get_equiv_with_elimination): New. 4310 (process_addr_reg): Call get_equiv_with_elimination instead of 4311 get_equiv_substitution. 4312 (equiv_address_substitution): Ditto. 4313 (loc_equivalence_change_p): Ditto. 4314 (loc_equivalence_callback, lra_constraints): Ditto. 4315 (curr_insn_transform): Ditto. Print the sp offset 4316 (process_alt_operands): Prevent stack pointer reloads. 4317 (lra_constraints): Remove one argument from lra_eliminate call. 4318 Move it up. Mark used hard regs bfore it. Use 4319 get_equiv_with_elimination instead of get_equiv_substitution. 4320 * lra-eliminations.c (lra_eliminate_regs_1): Add parameter and 4321 assert for param values combination. Use sp offset. Add argument 4322 to lra_eliminate_regs_1 calls. 4323 (lra_eliminate_regs): Add argument to lra_eliminate_regs_1 call. 4324 (curr_sp_change): New static var. 4325 (mark_not_eliminable): Add parameter. Update curr_sp_change. 4326 Don't prevent elimination to sp if we can calculate its change. 4327 Pass the argument to mark_not_eliminable calls. 4328 (eliminate_regs_in_insn): Add a parameter. Use sp offset. Add 4329 argument to lra_eliminate_regs_1 call. 4330 (update_reg_eliminate): Move calculation of hard regs for spill 4331 lower. Switch off lra_in_progress temporarily to generate regs 4332 involved into elimination. 4333 (lra_init_elimination): Rename to init_elimination. Make it 4334 static. Set up insn sp offset, check the offsets at the end of BBs. 4335 (process_insn_for_elimination): Add parameter. Pass its value to 4336 eliminate_regs_in_insn. 4337 (lra_eliminate): : Add parameter. Pass its value to 4338 process_insn_for_elimination. Add assert for param values 4339 combination. Call init_elimination. Don't update offsets in 4340 equivalence substitutions. 4341 * lra-spills.c (assign_mem_slot): Don't call lra_eliminate_regs_1 4342 for created stack slot. 4343 (remove_pseudos): Call lra_eliminate_regs_1 before changing memory 4344 onto stack slot. 4345 43462013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 4347 4348 * config/arm/iterators.md (vrint_conds): New int attribute. 4349 * config/arm/vfp.md (<vrint_pattern><SDF:mode>2): Set conds attribute. 4350 (smax<mode>3): Likewise. 4351 (smin<mode>3): Likewise. 4352 43532013-11-28 Richard Sandiford <rdsandiford@googlemail.com> 4354 4355 * tree-core.h (tree_base): Document use of static_flag for SSA_NAME. 4356 * tree.h (SSA_NAME_ANTI_RANGE_P, SSA_NAME_RANGE_TYPE): New macros. 4357 * tree-ssanames.h (set_range_info): Add range_type argument. 4358 (duplicate_ssa_name_range_info): Likewise. 4359 * tree-ssanames.c (set_range_info): Take the range type as argument 4360 and store it in SSA_NAME_ANTI_RANGE_P. 4361 (duplicate_ssa_name_range_info): Likewise. 4362 (get_range_info): Use SSA_NAME_ANTI_RANGE_P. 4363 (set_nonzero_bits): Update call to set_range_info. 4364 (duplicate_ssa_name_fn): Update call to duplicate_ssa_name_range_info. 4365 * tree-ssa-copy.c (fini_copy_prop): Likewise. 4366 * tree-vrp.c (remove_range_assertions): Update call to set_range_info. 4367 (vrp_finalize): Likewise, passing anti-ranges directly. 4368 43692013-11-28 Richard Biener <rguenther@suse.de> 4370 4371 PR tree-optimization/59330 4372 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Simplify 4373 and fix delayed marking of free calls not necessary. 4374 43752013-11-28 Andrew MacLeod <amacleod@redhat.com> 4376 4377 * tree-ssa-propagate.c (valid_gimple_call_p): Pass TREE_TYPE to 4378 is_gimple_reg_type. 4379 * ipa-prop.c (determine_known_aggregate_parts): Likewise. 4380 43812013-11-28 Terry Guo <terry.guo@arm.com> 4382 4383 * config/arm/arm.c (v7m_extra_costs): New table. 4384 (arm_v7m_tune): Use it. 4385 43862013-11-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 4387 4388 * config/sol2.h (TIME_LIBRARY): Define. 4389 43902013-11-28 Richard Biener <rguenther@suse.de> 4391 4392 PR lto/59323 4393 * lto-streamer-out.c (tree_is_indexable): TYPE_DECLs and 4394 CONST_DECLs in function context are not indexable. 4395 43962013-11-28 Chung-Ju Wu <jasonwucj@gmail.com> 4397 4398 * config/nds32/nds32.c (nds32_rtx_costs): Adjust MULT cost if it is 4399 not optimized for size. 4400 44012013-11-28 Jakub Jelinek <jakub@redhat.com> 4402 4403 * cfgexpand.c (struct stack_vars_data): Add asan_base and asan_alignb 4404 fields. 4405 (expand_stack_vars): For -fsanitize=address, use (and set initially) 4406 data->asan_base as base for vars and update asan_alignb. 4407 (expand_used_vars): Initialize data.asan_base and data.asan_alignb. 4408 Pass them to asan_emit_stack_protection. 4409 * asan.c (asan_detect_stack_use_after_return): New variable. 4410 (asan_emit_stack_protection): Add pbase and alignb arguments. 4411 Implement use after return sanitization. 4412 * asan.h (asan_emit_stack_protection): Adjust prototype. 4413 (ASAN_STACK_MAGIC_USE_AFTER_RET, ASAN_STACK_RETIRED_MAGIC): Define. 4414 44152013-11-28 Sergey Ostanevich <sergos.gnu@gmail.com> 4416 4417 * common.opt: Introduced a new option -fsimd-cost-model. 4418 * doc/invoke.texi: Introduced a new openmp-simd warning and 4419 a new -fsimd-cost-model option. 4420 * tree-vectorizer.h (unlimited_cost_model): Interface updated 4421 to rely on the particular loop info. 4422 * tree-vect-data-refs.c (vect_peeling_hash_insert): Ditto. 4423 (vect_peeling_hash_choose_best_peeling): Ditto. 4424 (vect_enhance_data_refs_alignment): Ditto. 4425 * tree-vect-slp.c (vect_slp_analyze_bb_1): Ditto. 4426 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Ditto 4427 plus added openmp-simd warining. 4428 44292013-11-27 H.J. Lu <hongjiu.lu@intel.com> 4430 4431 PR rtl-optimization/59311 4432 * dwarf2cfi.c (dwf_regno): Assert reg isn't pseudo register. 4433 * lra-spills.c (spill_pseudos): Handle REG_XXX notes. 4434 44352013-11-27 Eric Botcazou <ebotcazou@adacore.com> 4436 4437 * var-tracking.c (track_expr_p): Do not track declarations for parts 4438 of tracked parameters. 4439 (add_stores): Do not track values for tracked parameters passed in 4440 multiple locations. 4441 (vt_get_decl_and_offset): Handle PARALLEL. 4442 (vt_add_function_parameter): Handle parameters with incoming PARALLEL. 4443 44442013-11-27 Jeff Law <law@redhat.com> 4445 4446 * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not 4447 clobber the loop structure thread_block was unsuccessful. If 4448 thread_block was unsuccessful, cleanup appropriately. 4449 44502013-11-27 Chen Liqin <liqin.gcc@gmail.com> 4451 4452 * config/score/score.h (REG_CLASS_FROM_LETTER): Delete. 4453 (score_char_to_class): Likewise. 4454 44552013-11-27 Kenneth Zadeck <zadeck@naturalbridge.com> 4456 4457 * fold-const.c (int_const_binop_1): Make INT_MIN % -1 return 0 with 4458 the overflow bit set. 4459 44602013-11-27 Richard Biener <rguenther@suse.de> 4461 4462 PR middle-end/58723 4463 * cgraphbuild.c (build_cgraph_edges): Do not build edges 4464 for internal calls. 4465 (rebuild_cgraph_edges): Likewise. 4466 * ipa-inline-analysis.c (estimate_function_body_sizes): 4467 Skip internal calls. 4468 * tree-inline.c (estimate_num_insns): Estimate size of internal 4469 calls as 0. 4470 (gimple_expand_calls_inline): Do not try inline-expanding 4471 internal calls. 4472 * lto-streamer-in.c (input_cfg): Stream loop safelen, 4473 force_vect and simduid. 4474 (input_struct_function_base): Stream has_force_vect_loops 4475 and has_simduid_loops. 4476 (input_function): Adjust. 4477 * lto-streamer-out.c (output_cfg): Stream loop safelen, 4478 force_vect and simduid. 4479 (output_struct_function_base): Stream has_force_vect_loops 4480 and has_simduid_loops. 4481 44822013-11-27 Kai Tietz <ktietz@redhat.com> 4483 4484 * config/i386/winnt.c (i386_pe_section_type_flags): Use const 4485 pointer cast. 4486 44872013-11-27 Kugan Vivekanandarajah <kuganv@linaro.org> 4488 4489 * doc/tm.texi.in (TARGET_HAS_NO_HW_DIVIDE): Define. 4490 * doc/tm.texi (TARGET_HAS_NO_HW_DIVIDE): Regenerate. 4491 44922013-11-27 Marek Polacek <polacek@redhat.com> 4493 4494 PR sanitizer/59306 4495 * ubsan.c (instrument_null): Use gimple_store_p/gimple_assign_load_p 4496 instead of walk_gimple_op. 4497 (ubsan_pass): Adjust. Call instrument_null only if SANITIZE_NULL. 4498 44992013-11-27 Aldy Hernandez <aldyh@redhat.com> 4500 Jakub Jelinek <jakub@redhat.com> 4501 4502 * cgraph.h (enum cgraph_simd_clone_arg_type): New. 4503 (struct cgraph_simd_clone_arg, struct cgraph_simd_clone): New. 4504 (struct cgraph_node): Add simdclone and simd_clones fields. 4505 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen, 4506 ix86_simd_clone_adjust, ix86_simd_clone_usable): New functions. 4507 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN, 4508 TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): Define. 4509 * doc/tm.texi.in (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN, 4510 TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): Add. 4511 * doc/tm.texi: Regenerated. 4512 * ggc.h (ggc_alloc_cleared_simd_clone_stat): New function. 4513 * ipa-cp.c (determine_versionability): Fail if "omp declare simd" 4514 attribute is present. 4515 * omp-low.c: Include pretty-print.h, ipa-prop.h and tree-eh.h. 4516 (simd_clone_vector_of_formal_parm_types): New function. 4517 (simd_clone_struct_alloc, simd_clone_struct_copy, 4518 simd_clone_vector_of_formal_parm_types, simd_clone_clauses_extract, 4519 simd_clone_compute_base_data_type, simd_clone_mangle, 4520 simd_clone_create, simd_clone_adjust_return_type, 4521 create_tmp_simd_array, simd_clone_adjust_argument_types, 4522 simd_clone_init_simd_arrays): New functions. 4523 (struct modify_stmt_info): New type. 4524 (ipa_simd_modify_stmt_ops, ipa_simd_modify_function_body, 4525 simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone): New 4526 functions. 4527 (pass_data_omp_simd_clone): New variable. 4528 (pass_omp_simd_clone): New class. 4529 (make_pass_omp_simd_clone): New function. 4530 * passes.def (pass_omp_simd_clone): New. 4531 * target.def (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN, 4532 TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): New target hooks. 4533 * target.h (struct cgraph_node, struct cgraph_simd_node): Declare. 4534 * tree-core.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Document. 4535 * tree.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Define. 4536 * tree-pass.h (make_pass_omp_simd_clone): New prototype. 4537 * tree-vect-data-refs.c: Include cgraph.h. 4538 (vect_analyze_data_refs): Inline by hand find_data_references_in_loop 4539 and find_data_references_in_bb, if find_data_references_in_stmt 4540 fails, still allow calls to #pragma omp declare simd functions 4541 in #pragma omp simd loops unless they contain data references among 4542 the call arguments or in lhs. 4543 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle 4544 calls with no lhs. 4545 (vect_transform_loop): Allow NULL STMT_VINFO_VECTYPE for calls 4546 without lhs. 4547 * tree-vectorizer.h (enum stmt_vec_info_type): Add 4548 call_simd_clone_vec_info_type. 4549 (struct _stmt_vec_info): Add simd_clone_fndecl field. 4550 (STMT_VINFO_SIMD_CLONE_FNDECL): Define. 4551 * tree-vect-stmts.c: Include tree-ssa-loop.h, 4552 tree-scalar-evolution.h and cgraph.h. 4553 (vectorizable_call): Handle calls without lhs. Assert 4554 !stmt_can_throw_internal instead of failing for it. Don't update 4555 EH stuff. 4556 (struct simd_call_arg_info): New. 4557 (vectorizable_simd_clone_call): New function. 4558 (vect_transform_stmt): Call it. 4559 (vect_analyze_stmt): Likewise. Allow NULL STMT_VINFO_VECTYPE for 4560 calls without lhs. 4561 * ipa-prop.c (ipa_add_new_function): Only call ipa_analyze_node 4562 if cgraph_function_with_gimple_body_p is true. 4563 45642013-11-27 Tom de Vries <tom@codesourcery.com> 4565 Marc Glisse <marc.glisse@inria.fr> 4566 4567 PR middle-end/59037 4568 * fold-const.c (fold_indirect_ref_1): Don't create out-of-bounds 4569 BIT_FIELD_REF. 4570 * gimple-fold.c (gimple_fold_indirect_ref): Same. 4571 * tree-cfg.c (verify_expr): Give error if BIT_FIELD_REF is 4572 out-of-bounds. 4573 45742013-11-27 Eric Botcazou <ebotcazou@adacore.com> 4575 4576 PR middle-end/59138 4577 * expr.c (emit_group_store): Don't write past the end of the structure. 4578 (store_bit_field): Fix formatting. 4579 45802013-11-27 Richard Biener <rguenther@suse.de> 4581 4582 PR tree-optimization/59288 4583 * tree-vect-loop.c (get_initial_def_for_induction): Do not 4584 re-analyze the PHI but use STMT_VINFO_LOOP_PHI_EVOLUTION_PART. 4585 45862013-11-27 Marek Polacek <polacek@redhat.com> 4587 4588 * ubsan.c (ubsan_type_descriptor): If varpool_get_node returns NULL 4589 for a decl, recreate that decl. Save into the hash table VAR_DECLs 4590 rather than ADDR_EXPRs. 4591 45922013-11-27 Alexander Ivchenko <alexander.ivchenko@intel.com> 4593 4594 * config/ia64/hpux.h (TARGET_LIBC_HAS_FUNCTION): Fix typo. 4595 45962013-11-26 David Malcolm <dmalcolm@redhat.com> 4597 4598 * gengtype.c (struct seen_tag): New. 4599 (already_seen_tag): New. 4600 (mark_tag_as_seen): New. 4601 (walk_subclasses): Support having multiple subclasses using the 4602 same tag by tracking which tags have already been seen, and using 4603 this to avoid adding duplicate cases to the "switch" statement. 4604 The call to already_seen_tag introduces an O(N^2) when running 4605 gengtype on N, the number of tags, due to the repeated linear 4606 search, but currently max(N) is relatively small (the number of 4607 GSS codes, which is 26). 4608 (walk_type): Pass in a seen_tag for use by the walk_subclasses 4609 recursion. 4610 4611 * gimple.def (GIMPLE_OMP_ATOMIC_STORE, GIMPLE_OMP_RETURN): Rename 4612 underlying GSS values for these codes (from GSS_OMP_ATOMIC_STORE to 4613 GSS_OMP_ATOMIC_STORE_LAYOUT) to make clear that although 4614 GIMPLE_OMP_RETURN happens to share the data layout of 4615 GIMPLE_OMP_ATOMIC_STORE, they are not otherwise related. 4616 (GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TARGET): Likewise, rename 4617 underlying GSS value from GSS_OMP_PARALLEL to 4618 GSS_OMP_PARALLEL_LAYOUT to make clear that these gimple codes are 4619 not directly related; they merely share in-memory layout. 4620 (GIMPLE_OMP_SINGLE, GIMPLE_OMP_TEAMS): Likewise, rename GSS values 4621 for these two codes from GSS_OMP_SINGLE to GSS_OMP_SINGLE_LAYOUT. 4622 4623 * gsstruct.def (GSS_OMP_PARALLEL, gimple_statement_omp_parallel): 4624 Rename to... 4625 (GSS_OMP_PARALLEL_LAYOUT, gimple_statement_omp_parallel_layout): 4626 ...these. 4627 (GSS_OMP_SINGLE, gimple_statement_omp_single): Rename to... 4628 (GSS_OMP_SINGLE_LAYOUT, gimple_statement_omp_single_layout): ...these. 4629 (GSS_OMP_ATOMIC_STORE, gimple_statement_omp_atomic_store): Rename to... 4630 (GSS_OMP_ATOMIC_STORE_LAYOUT, gimple_statement_omp_atomic_store): 4631 ...these. 4632 4633 * gimple.h (gimple_statement_resx): New subclass of 4634 gimple_statement_eh_ctrl, with the invariant that 4635 stmt->code == GIMPLE_RESX. 4636 (gimple_statement_eh_dispatch): New subclass of 4637 gimple_statement_eh_ctrl, with the invariant that 4638 stmt->code == GIMPLE_EH_DISPATH. 4639 4640 (gimple_statement_omp_parallel): The existing class expressed 4641 a layout (GSS_OMP_PARALLEL), but the codes with that layout 4642 are not all related, so it makes more sense for this class to 4643 express a *code* (GIMPLE_OMP_PARALLEL). GSS_OMP_PARALLEL has 4644 been renamed to GSS_OMP_PARALLEL_LAYOUT to express this, so 4645 rename the existing gimple_statement_omp_parallel class to... 4646 (gimple_statement_omp_parallel_layout): ...this, expressing 4647 a statement of structure layout GSS_OMP_PARALLEL_LAYOUT. 4648 (gimple_statement_omp_taskreg): New subclass of 4649 gimple_statement_omp_parallel_layout, expressing the invariant 4650 that the code is one of GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK, 4651 as used by the various gimple_omp_taskreg_ accessors. 4652 (gimple_statement_omp_parallel): Reintroduce this class, this time 4653 as a subclass of gimple_statement_omp_taskreg to express the 4654 invariant stmt->code == GIMPLE_OMP_PARALLEL. 4655 (gimple_statement_omp_target) New class, subclassing 4656 gimple_statement_omp_parallel_layout, to express the invariant 4657 stmt->code == GIMPLE_OMP_TARGET. 4658 (gimple_statement_omp_task): Update to inherit from 4659 gimple_statement_omp_taskreg rather than 4660 gimple_statement_omp_parallel. 4661 4662 (gimple_statement_omp_single): Rename to... 4663 (gimple_statement_omp_single_layout): ...this, expressing the 4664 invariant that the layout is GSS_OMP_SINGLE_LAYOUT. 4665 (gimple_statement_omp_single): ...and reintroduce this name as 4666 a subclass of gimple_statement_omp_single_layout, expressing 4667 the invariant that code == GIMPLE_OMP_SINGLE. 4668 (gimple_statement_omp_teams): New class, subclassing 4669 gimple_statement_omp_single_layout, for the code GIMPLE_OMP_TEAMS. 4670 4671 (gimple_statement_omp_atomic_store): Rename to... 4672 (gimple_statement_omp_atomic_store_layout): ...this, expressing 4673 the invariant that the layout is GSS_OMP_ATOMIC_STORE_LAYOUT. 4674 (gimple_statement_omp_atomic_store): ...and reintroduce this 4675 name as a subclass of gimple_statement_omp_atomic_store_layout 4676 with code == GIMPLE_OMP_ATOMIC_STORE. 4677 (gimple_statement_omp_return): New class, subclassing 4678 gimple_statement_omp_atomic_store_layout for the code 4679 GIMPLE_OMP_RETURN. 4680 4681 (is_a_helper <gimple_statement_eh_ctrl>::test): Delete. 4682 (is_a_helper <gimple_statement_resx>::test): New. 4683 (is_a_helper <gimple_statement_eh_dispatch>::test): New. 4684 (is_a_helper <gimple_statement_omp_atomic_store>::test): Only 4685 check for GIMPLE_OMP_ATOMIC_STORE, not for GIMPLE_OMP_RETURN. 4686 (is_a_helper <gimple_statement_omp_return>::test): New. 4687 (is_a_helper <gimple_statement_omp_taskreg>::test): New. 4688 (is_a_helper <gimple_statement_omp_parallel>::test): Only check 4689 for GIMPLE_OMP_PARALLEL, not for GIMPLE_OMP_TASK or 4690 GIMPLE_OMP_TARGET. 4691 (is_a_helper <gimple_statement_omp_target>::test): New. 4692 (is_a_helper <gimple_statement_omp_single>::test): Only check 4693 for GIMPLE_OMP_SINGLE, not for GIMPLE_OMP_TEAMS. 4694 (is_a_helper <gimple_statement_omp_teams>::test): New. 4695 4696 (is_a_helper <const gimple_statement_eh_ctrl>::test): Delete. 4697 (is_a_helper <const gimple_statement_resx>::test): New. 4698 (is_a_helper <const gimple_statement_eh_dispatch>::test): New. 4699 (is_a_helper <const gimple_statement_omp_atomic_store>::test): Only 4700 check for GIMPLE_OMP_ATOMIC_STORE, not for GIMPLE_OMP_RETURN. 4701 (is_a_helper <const gimple_statement_omp_return>::test): New. 4702 (is_a_helper <const gimple_statement_omp_taskreg>::test): New. 4703 (is_a_helper <const gimple_statement_omp_parallel>::test): Only 4704 check for GIMPLE_OMP_PARALLEL, not for GIMPLE_OMP_TASK or 4705 GIMPLE_OMP_TARGET. 4706 (is_a_helper <const gimple_statement_omp_target>::test): New. 4707 (is_a_helper <const gimple_statement_omp_single>::test): Only 4708 check for GIMPLE_OMP_SINGLE, not for GIMPLE_OMP_TEAMS. 4709 (is_a_helper <const gimple_statement_omp_teams>::test): New. 4710 4711 (gimple_omp_return_set_lhs, gimple_omp_return_lhs, 4712 gimple_omp_return_lhs_ptr): Replace bogus downcasts to 4713 gimple_statement_omp_atomic_store with downcasts to 4714 gimple_statement_omp_return, thus requiring that the code be 4715 GIMPLE_OMP_RETURN. 4716 (gimple_resx_region, gimple_resx_set_region): Replace bogus 4717 downcasts to gimple_statement_eh_ctrl with downcasts to 4718 gimple_statement_resx, thus requiring that the code be GIMPLE_RESX. 4719 (gimple_eh_dispatch_region, gimple_eh_dispatch_set_region): 4720 Replace bogus downcasts to const gimple_statement_eh_ctrl with 4721 downcasts to gimple_statement_eh_dispatch, thus requiring that 4722 the code be GIMPLE_EH_DISPATCH. 4723 (gimple_omp_taskreg_clauses, gimple_omp_taskreg_clauses_ptr) 4724 gimple_omp_taskreg_set_clauses, gimple_omp_taskreg_child_fn, 4725 gimple_omp_taskreg_child_fn_ptr, gimple_omp_taskreg_set_child_fn, 4726 gimple_omp_taskreg_data_arg, gimple_omp_taskreg_data_arg_ptr, 4727 gimple_omp_taskreg_set_data_arg): Replace bogus downcasts to 4728 gimple_statement_omp_parallel with downcasts to 4729 gimple_statement_omp_taskreg, thus requiring that the code be 4730 either GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK. 4731 (gimple_omp_target_clauses, gimple_omp_target_clauses_ptr 4732 gimple_omp_target_set_clauses, gimple_omp_target_child_fn 4733 gimple_omp_target_child_fn_ptr, gimple_omp_target_set_child_fn 4734 gimple_omp_target_data_arg, gimple_omp_target_data_arg_ptr 4735 gimple_omp_target_set_data_arg): Replace bogus downcasts to 4736 gimple_statement_omp_parallel with downcasts to 4737 gimple_statement_omp_target, thus requiring that the code be 4738 GIMPLE_OMP_TARGET. 4739 (gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr 4740 gimple_omp_teams_set_clauses): Replace bogus downcasts to 4741 gimple_statement_omp_single with downcasts to 4742 gimple_statement_omp_teams, thus requiring that the code be 4743 GIMPLE_OMP_TEAMS. 4744 4745 * gimple.c (gimple_build_resx): Fix bogus as_a<> to use 4746 gimple_statement_resx. 4747 (gimple_build_eh_dispatch): Fix bogus as_a<> to use 4748 gimple_statement_eh_dispatch. 4749 47502013-11-26 Jakub Jelinek <jakub@redhat.com> 4751 4752 PR tree-optimization/59014 4753 * tree-vrp.c (register_edge_assert_for_1): Don't look 4754 through conversions from non-integral types or through 4755 narrowing conversions. 4756 4757 PR target/59229 4758 * config/i386/i386.c (device_alg): Fix up formatting. 4759 (ix86_expand_set_or_movmem): Handle max_size < epilogue_size_needed 4760 similarly to count && count < epilogue_size_needed. Fix up 4761 comment typo. 4762 * builtins.c (determine_block_size): Fix comment typo. 4763 4764 PR sanitizer/59258 4765 * ubsan.c (ubsan_source_location): Don't add any location 4766 to ADDR_EXPR in the ctor. Revert 2013-11-22 change. 4767 (ubsan_create_data): Strip block info from LOC. 4768 4769 PR middle-end/59273 4770 * tree-vect-generic.c (optimize_vector_constructor): Don't optimize 4771 if there isn't optab handler for the corresponding vector PLUS_EXPR. 4772 4773 PR rtl-optimization/59166 4774 * ira.c (find_moveable_pseudos): Use DF_REF_REAL_LOC instead of 4775 DF_REF_LOC in validate_change call. 4776 (split_live_ranges_for_shrink_wrap): Likewise. 4777 4778 PR middle-end/59150 4779 * omp-low.c (lower_rec_input_clause): For reduction with placeholder 4780 of references to constant size types in simd loops, defer emitting 4781 initializer for the new_var, emit it later on only if not using 4782 SIMD arrays for it. 4783 4784 PR middle-end/59152 4785 * omp-low.c (expand_omp_for_static_chunk): Don't set loop->latch 4786 for the inner loop if collapse_bb is non-NULL. 4787 (expand_omp_simd): Use cont_bb rather than e->dest as latch. 4788 47892013-11-26 Yufeng Zhang <yufeng.zhang@arm.com> 4790 4791 * config/arm/arm.c (arm_legitimize_address): Check xop1 is not 4792 a constant immediate before force_reg. 4793 47942013-11-26 Richard Biener <rguenther@suse.de> 4795 4796 PR tree-optimization/59245 4797 * tree-vrp.c (set_value_range): Assert that we don't have 4798 overflowed constants (but our infinities). 4799 (set_value_range_to_value): Drop all overflow flags. 4800 (vrp_visit_phi_node): Likewise. 4801 (vrp_visit_assignment_or_call): Use set_value_range_to_value 4802 to set a constant range. 4803 48042013-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 4805 4806 PR target/59290 4807 * config/arm/arm.md (*zextendsidi_negsi): New pattern. 4808 * config/arm/arm.c (arm_new_rtx_costs): Initialise cost correctly 4809 for zero_extend case. 4810 48112013-11-26 H.J. Lu <hongjiu.lu@intel.com> 4812 4813 PR bootstrap/55552 4814 * configure.ac (install_gold_as_default): New. Set to yes for 4815 --disable-ld or --enable-gold=default. 4816 (gcc_cv_ld_gold_srcdir): New. 4817 (gcc_cv_ld): Also check in-tree gold if install_gold_as_default is yes. 4818 (ORIGINAL_LD_BFD_FOR_TARGET): New AC_SUBST. 4819 (ORIGINAL_LD_GOLD_FOR_TARGET): Likewise. 4820 * configure: Regenerated. 4821 4822 * exec-tool.in (ORIGINAL_LD_BFD_FOR_TARGET): New variable. 4823 (ORIGINAL_LD_GOLD_FOR_TARGET): Likewise. 4824 (original) [collect-ld && -fuse-ld=bfd]: Set to 4825 $ORIGINAL_LD_BFD_FOR_TARGET. 4826 (original) [collect-ld && -fuse-ld=gold]: Set to 4827 $ORIGINAL_LD_GOLD_FOR_TARGET. 4828 (dir) [collect-ld && ../gold/ld-new]: Set to gold. 4829 (fast_install) [collect-ld && ../gold/ld-new]: Set to yes. 4830 48312013-11-26 Terry Guo <terry.guo@arm.com> 4832 4833 * config/arm/arm.c (require_pic_register): Handle high pic base 4834 register for thumb-1. 4835 (arm_load_pic_register): Also initialize high pic base register. 4836 * doc/invoke.texi: Update documentation for option -mpic-register. 4837 48382013-11-26 Oleg Endo <olegendo@gcc.gnu.org> 4839 4840 PR target/58314 4841 PR target/50751 4842 * config/sh/sh.c (max_mov_insn_displacement, disp_addr_displacement): 4843 Prefix function names with 'sh_'. Make them non-static. 4844 * config/sh/sh-protos.h (sh_disp_addr_displacement, 4845 sh_max_mov_insn_displacement): Add declarations. 4846 * config/sh/constraints.md (Q): Reject QImode. 4847 (Sdd): Use match_code "mem". 4848 (Snd): Fix erroneous matching of non-memory operands. 4849 * config/sh/predicates.md (short_displacement_mem_operand): New 4850 predicate. 4851 (general_movsrc_operand): Disallow PC relative QImode loads. 4852 * config/sh/sh.md (*mov<mode>_reg_reg): Remove it. 4853 (*movqi, *movhi): Merge both insns into... 4854 (*mov<mode>): ... this new insn. Replace generic 'm' constraints with 4855 'Snd' and 'Sdd' constraints. Calculate insn length dynamically based 4856 on the operand types. 4857 48582013-11-26 Joern Rennecke <joern.rennecke@embecosm.com> 4859 4860 * config/epiphany/epiphany.c (epiphany_expand_prologue): 4861 Remove unused variable save_config. 4862 (epiphany_compute_frame_size): Avoid signed/unsigned comparison in 4863 assert. 4864 48652013-11-26 James Greenhalgh <james.greenhalgh@arm.com> 4866 4867 * config/aarch64/arm_neon.h (vtbx1_<psu>8): Emulate behaviour 4868 using other intrinsics. 4869 (vtbx3_<psu>8): Likewise. 4870 48712013-11-26 James Greenhalgh <james.greenhalgh@arm.com> 4872 4873 * config/aarch64/aarch64-builtins.c 4874 (aarch64_types_bsl_p_qualifiers): New. 4875 (aarch64_types_bsl_s_qualifiers): Likewise. 4876 (aarch64_types_bsl_u_qualifiers): Likewise. 4877 (TYPES_BSL_P): Likewise. 4878 (TYPES_BSL_S): Likewise. 4879 (TYPES_BSL_U): Likewise. 4880 (BUILTIN_VALLDIF): Likewise. 4881 (BUILTIN_VDQQH): Likewise. 4882 * config/aarch64/aarch64-simd-builtins.def (simd_bsl): New. 4883 * config/aarch64/aarch64-simd.md 4884 (aarch64_simd_bsl<mode>_internal): Handle more modes. 4885 (aarch64_simd_bsl<mode>): Likewise. 4886 * config/aarch64/arm_neon.h 4887 (vbsl<q>_<fpsu><8,16,32,64): Implement using builtins. 4888 * config/aarch64/iterators.md (VALLDIF): New. 4889 (Vbtype): Handle more modes. 4890 48912013-11-26 James Greenhalgh <james.greenhalgh@arm.com> 4892 4893 * config/aarch64/aarch64-builtins.c 4894 (aarch64_type_qualifiers): Add qualifier_poly. 4895 (aarch64_build_scalar_type): Also build Poly types. 4896 (aarch64_build_vector_type): Likewise. 4897 (aarch64_build_type): Likewise. 4898 (aarch64_build_signed_type): New. 4899 (aarch64_build_unsigned_type): Likewise. 4900 (aarch64_build_poly_type): Likewise. 4901 (aarch64_init_simd_builtins): Also handle Poly types. 4902 49032013-11-26 James Greenhalgh <james.greenhalgh@arm.com> 4904 4905 * config/aarch64/aarch64-builtins.c 4906 (VAR1): Use new naming scheme for aarch64_builtins. 4907 (aarch64_builtin_vectorized_function): Use new aarch64_builtins names. 4908 49092013-11-26 Richard Biener <rguenther@suse.de> 4910 4911 PR tree-optimization/59287 4912 * tree-ssa-structalias.c (get_constraint_for_component_ref): 4913 Remove no longer necessary special-casing of union accesses. 4914 49152013-11-26 Richard Biener <rguenther@suse.de> 4916 4917 * pretty-print.c (output_buffer::~output_buffer): Really 4918 free the obstacks. 4919 49202013-11-25 Jeff Law <law@redhat.com> 4921 4922 * tree-ssa-threadupdate.c (thread_through_all_blocks): Selectively 4923 invalidate loop information. 4924 49252013-11-25 Oleg Endo <olegendo@gcc.gnu.org> 4926 4927 * config/sh/sh.md (doloop_end_split): Add missing SI mode. 4928 49292013-11-25 Oleg Endo <olegendo@gcc.gnu.org> 4930 4931 PR target/53976 4932 PR target/59243 4933 * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value): Update 4934 comments. 4935 (sh_optimize_sett_clrt::find_last_ccreg_values): Check stack of 4936 previously visited basic blocks before recursing instead of only one 4937 basic block. 4938 49392013-11-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 4940 4941 * config/aarch64/aarch64.c (cortexa53_tuning): New struct. 4942 * config/aarch64/aarch64-cores.def (cortex-a53): 4943 Use cortexa53 tuning struct. 4944 49452013-11-25 Andrew Macleod <amacleod@redhat.com> 4946 4947 PR bootstrap/59260 4948 * fold-const.c: Include hash-table.h. 4949 49502013-11-25 Marek Polacek <polacek@redhat.com> 4951 4952 PR sanitizer/59258 4953 * ubsan.c (ubsan_create_data): Increase the size of the fields array. 4954 49552013-11-25 Richard Biener <rguenther@suse.de> 4956 4957 * tree-dfa.c: Remove unused convert.h include. 4958 49592013-11-25 Terry Guo <terry.guo@arm.com> 4960 4961 * doc/invoke.texi (-mslow-flash-data): Document new option. 4962 * config/arm/arm.opt (mslow-flash-data): New option. 4963 * config/arm/arm-protos.h (arm_max_const_double_inline_cost): 4964 Declare it. 4965 * config/arm/arm.h (TARGET_USE_MOVT): Always true when literal pools 4966 are disabled. 4967 (arm_disable_literal_pool): Declare it. 4968 * config/arm/arm.c (arm_disable_literal_pool): New variable. 4969 (arm_option_override): Handle new option. 4970 (thumb2_legitimate_address_p): Don't allow symbol references when 4971 literal pools are disabled. 4972 (arm_max_const_double_inline_cost): New function. 4973 * config/arm/arm.md (types.md): Include it before ... 4974 (use_literal_pool): New attribute. 4975 (enabled): Use new attribute. 4976 (split pattern): Replace symbol+offset with MOVW/MOVT. 4977 49782013-11-24 Steven Bosscher <steven@gcc.gnu.org> 4979 4980 PR bootstrap/59279 4981 Revert previous commit. 4982 49832013-11-24 Steven Bosscher <steven@gcc.gnu.org> 4984 4985 * jump.c (reset_insn_reg_label_operand_notes): New function, 4986 split out from ... 4987 (init_label_info): ... here. Reset LABEL_NUSES in cfglayout mode. 4988 * cfgcleanup.c (delete_dead_jump_tables_between): New function, 4989 split out from ... 4990 (delete_dead_jumptables): ... here. Handle cfglayout mode. 4991 (cleanup_cfg): Delete dead jump tables in cfglayout mode if an 4992 expensive CFG cleanup is called for. 4993 * cfgrtl.c (fixup_reorder_chain): Remove BARRIERs from fallthru paths. 4994 (cfg_layout_finalize): Delete dead jump tables before re-building 4995 the insns chain. 4996 * ira.c (ira): Rebuild jump labels *after* deleting unreachable 4997 basic blocks, not before. 4998 * loop-init.c (rtl_loop_done): Call for an expensive CFG cleanup. 4999 5000 * modulo-sched.c (sms_schedule): Do not look for BARRIERs in the 5001 insns chain of a scheduling extended basic block, they cannot appear 5002 there in cfglayout mode. 5003 50042013-11-24 Tobias Burnus <burnus@net-b.de> 5005 5006 * doc/invoke.texi (-fsanitize=leak): Add link to the wiki page. 5007 50082013-11-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 5009 5010 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Correct 5011 for little endian. 5012 50132013-11-24 H.J. Lu <hongjiu.lu@intel.com> 5014 5015 * graphite-sese-to-poly.c: Don't include extra "expr.h". 5016 50172013-11-23 Eric Botcazou <ebotcazou@adacore.com> 5018 5019 * cilk-common.c (expand_builtin_cilk_detach): Dereference worker. 5020 50212013-11-23 David Edelson <dje.gcc@gmail.com> 5022 Andrew Dixie <andrewd@gentrack.com> 5023 5024 PR target/33704 5025 * config/rs6000/aix.h (COLLECT_SHARED_INIT_FUNC): Define. 5026 (COLLECT_SHARED_FINI_FUNC): Define. 5027 5028 * collect2.c (aix_shared_initname): Declare. 5029 (aix_shared_fininame): Declare. 5030 (symkind): Add SYM_AIXI and SYM_AIXD. 5031 (scanfilter_masks): Add SCAN_AIXI and SCAN_AIXD. 5032 (struct names special): Add GLOBAL__AIXI_ and GLOBAL__AIXD_. 5033 (aixlazy_flag): Parse. 5034 (extract_init_priority): SYM_AIXI and SYM_AIXD have highest priority. 5035 (scan_prog_file, COFF): Handle SYM_AIXI and SYM_AIXD. 5036 50372013-11-23 David Edelsohn <dje.gcc@gmail.com> 5038 5039 * config/rs6000/rs6000.c (IN_NAMED_SECTION): New macro. 5040 (rs6000_xcoff_select_section): Place decls with stricter alignment 5041 into named sections. 5042 (rs6000_xcoff_unique_section): Allow unique sections for 5043 uninitialized data with strict alignment. 5044 50452013-11-23 Jakub Jelinek <jakub@redhat.com> 5046 5047 PR tree-optimization/59154 5048 * tree-ssa-reassoc.c (maybe_optimize_range_tests): When changing 5049 rhs1 of a cast and new_op is invariant, fold_convert it. 5050 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Only call 5051 simplify_conversion_from_bitmask if rhs1 is a SSA_NAME. 5052 50532013-11-23 Uros Bizjak <ubizjak@gmail.com> 5054 5055 PR target/56788 5056 * config/i386/i386.c (bdesc_multi_arg) <IX86_BUILTIN_VFRCZSS>: 5057 Declare as MULTI_ARG_1_SF instruction. 5058 <IX86_BUILTIN_VFRCZSD>: Decleare as MULTI_ARG_1_DF instruction. 5059 * config/i386/sse.md (*xop_vmfrcz<mode>2): Rename 5060 from *xop_vmfrcz_<mode>. 5061 * config/i386/xopintrin.h (_mm_frcz_ss): Use __builtin_ia32_movss 5062 to merge scalar result with __A. 5063 (_mm_frcz_sd): Use __builtin_ia32_movsd to merge scalar 5064 result with __A. 5065 50662013-11-23 Eric Botcazou <ebotcazou@adacore.com> 5067 5068 * gimplify.h (recalculate_side_effects): Delete. 5069 * gimplify.c (recalculate_side_effects): Make static and add comment. 5070 50712013-11-23 Richard Sandiford <rdsandiford@googlemail.com> 5072 5073 * config/sh/sh.md: Use nonimmediate_operand rather than general_operand 5074 for the destination of a define_peephole2. Likewise register_operand 5075 rather than arith_reg_operand. Remove constraints from 5076 define_peephole2s. 5077 50782013-11-23 Richard Sandiford <rdsandiford@googlemail.com> 5079 5080 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation): 5081 Delete. 5082 (mn10300_store_multiple_operation_p): Declare. 5083 * config/mn10300/mn10300.c (mn10300_store_multiple_operation): 5084 Rename to... 5085 (mn10300_store_multiple_operation_p): ...this and remove mode 5086 argument. 5087 * config/mn10300/predicates.md (mn10300_store_multiple_operation): 5088 Define. 5089 50902013-11-23 Richard Sandiford <rdsandiford@googlemail.com> 5091 5092 * config/bfin/bfin-protos.h (push_multiple_operation): Delete. 5093 (pop_multiple_operation): Delete. 5094 (analyze_push_multiple_operation): Declare. 5095 (analyze_pop_multiple_operation): Declare. 5096 * config/bfin/bfin.c (push_multiple_operation): Rename to... 5097 (analyze_push_multiple_operation): ...this and remove mode argument. 5098 (pop_multiple_operation): Rename to... 5099 (analyze_pop_multiple_operation): ...this and remove mode argument. 5100 * config/bfin/predicates.md (push_multiple_operation): Define. 5101 (pop_multiple_operation): Likewise. 5102 51032013-11-23 Alan Modra <amodra@gmail.com> 5104 5105 * config/rs6000/vsx.md (fusion peepholes): Disable when !TARGET_VSX. 5106 51072013-11-22 Jakub Jelinek <jakub@redhat.com> 5108 5109 PR sanitizer/59061 5110 * common.opt (static-liblsan): Add. 5111 * config/gnu-user.h (STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS): 5112 Define. 5113 * flag-types.h (enum sanitize_code): Add SANITIZE_LEAK. Renumber 5114 SANITIZE_SHIFT, SANITIZE_DIVIDE, SANITIZE_UNREACHABLE, SANITIZE_VLA, 5115 SANITIZE_RETURN. 5116 * opts.c (common_handle_option): Handle -fsanitize=leak. 5117 * gcc.c (ADD_STATIC_LIBLSAN_LIBS, LIBLSAN_SPEC): Define. 5118 (LIBUBSAN_SPEC): Don't test LIBUBSAN_EARLY_SPEC. 5119 (LIBUBSAN_EARLY_SPEC): Remove. 5120 (SANITIZER_EARLY_SPEC): Don't do anything for libubsan. 5121 (SANITIZER_SPEC): Add -fsanitize=leak handling. 5122 (sanitize_spec_function): Handle %sanitize(leak). 5123 * doc/invoke.texi (-static-liblsan, -fsanitize=leak): Document. 5124 51252013-11-22 Aldy Hernandez <aldyh@redhat.com> 5126 Jakub Jelinek <jakub@redhat.com> 5127 5128 * ipa.c (symtab_remove_unreachable_nodes): Fix up comment typos. 5129 * ipa-prop.c (get_vector_of_formal_parm_types): Renamed to ... 5130 (ipa_get_vector_of_formal_parm_types): ... this. No longer static. 5131 (ipa_modify_formal_parameters): Adjust caller. Remove 5132 synth_parm_prefix argument. Use operator enum instead of bit fields. 5133 Add assert for properly handling vector of references. Handle 5134 creating brand new parameters. 5135 (ipa_modify_call_arguments): Use operator enum instead of bit 5136 fields. 5137 (ipa_combine_adjustments): Same. Assert that IPA_PARM_OP_NEW is not 5138 used. 5139 (ipa_modify_expr, get_ssa_base_param, ipa_get_adjustment_candidate): 5140 New functions. 5141 (ipa_dump_param_adjustments): Rename reduction to new_decl. 5142 Use operator enum instead of bit fields. 5143 * ipa-prop.h (enum ipa_parm_op): New. 5144 (struct ipa_parm_adjustment): New field op. Rename reduction 5145 to new_decl, new_arg_prefix to arg_prefix and remove remove_param 5146 and copy_param. 5147 (ipa_modify_formal_parameters): Remove last argument. 5148 (ipa_get_vector_of_formal_parm_types, ipa_modify_expr, 5149 ipa_get_adjustment_candidate): New prototypes. 5150 * tree-sra.c (turn_representatives_into_adjustments): Use operator 5151 enum. Set arg_prefix. 5152 (get_adjustment_for_base): Use operator enum. 5153 (sra_ipa_modify_expr): Rename to ipa_modify_expr and move to 5154 ipa-prop.c. 5155 (sra_ipa_modify_assign): Rename sra_ipa_modify_expr to ipa_modify_expr. 5156 (ipa_sra_modify_function_body): Same. No longer static. 5157 (sra_ipa_reset_debug_stmts): Use operator enum. 5158 (modify_function): Do not pass prefix argument. 5159 51602013-11-22 Jakub Jelinek <jakub@redhat.com> 5161 5162 * ubsan.c (ubsan_source_location): Don't crash on unknown locations. 5163 (ubsan_pass): Ignore clobber stmts. 5164 5165 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_MISSING_RETURN): New built-in. 5166 * opts.c (common_handle_option): Add -fsanitize=return. 5167 * flag-types.h (enum sanitize_code): Add SANITIZE_RETURN and 5168 or it into SANITIZE_UNDEFINED. 5169 5170 * sanitizer.def (BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT, 5171 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT): New. 5172 * asan.c (instrument_derefs): Handle also VAR_DECL loads/stores. 5173 Don't instrument accesses to VAR_DECLs which are known to fit 5174 into their bounds and the vars are known to have shadow bytes 5175 indicating allowed access. 5176 (asan_dynamic_init_call): New function. 5177 (asan_add_global): If vnode->dynamically_initialized, 5178 set __has_dynamic_init to 1 instead of 0. 5179 (initialize_sanitizer_builtins): Add BT_FN_VOID_CONST_PTR var. 5180 * asan.h (asan_dynamic_init_call): New prototype. 5181 * cgraph.h (varpool_node): Add dynamically_initialized bitfield. 5182 51832013-11-22 Martin Jambor <mjambor@suse.cz> 5184 5185 PR rtl-optimization/10474 5186 * ira.c (interesting_dest_for_shprep_1): New function. 5187 (interesting_dest_for_shprep): Use interesting_dest_for_shprep_1, 5188 also check parallels. 5189 51902013-11-22 Jeff Law <law@redhat.com> 5191 5192 * tree-ssa-threadedge.c (record_temporary_equivalence): Handle 5193 NULL for RHS, which we used to invalidate equivalences. 5194 (record_temporary_equivalences_from_phis): New bitmap arguments 5195 and a boolean indicating if we have passed a backedge. If we 5196 have passed a backedge, then set the appropriate bit in the 5197 bitmaps for the SRC & DEST of PHIs creating equivalences. 5198 (invalidate_equivalences, dummy_simplify): New functions. 5199 (cond_arg_set_in_b): Remove. 5200 (record_temporary_equivalences_from_stmts_at_dest): New bitmap 5201 arguments and a boolean indicating if we have passed a backedge. 5202 If we have passed a backedge, then perform invalidations as needed. 5203 (thread_around_empty_blocks): If we have seen a backedge, then 5204 use the dummy simplify routine. 5205 (thread_through_normal_block): Likewise. Pass bitmaps and 5206 backedge status to children. Do not pessimize so much when 5207 traversing backedges in the CFG. 5208 (thread_across_edge): Manage the SRC_MAP/DST_MAP bitmaps. 5209 If we have seen a backedge, then use the dummy simplify routine. 5210 Do not pessimize so much when traversing backedges. 5211 52122013-11-22 Hans-Peter Nilsson <hp@axis.com> 5213 5214 * config/cris/cris.c (cris_atomic_align_for_mode): New function. 5215 (TARGET_ATOMIC_ALIGN_FOR_MODE): Define. 5216 52172013-11-22 Yuri Rumyantsev <ysrumyan@gmail.com> 5218 5219 * config/i386/i386.c (processor_alias_table): Enable PTA_AES, 5220 PTA_PCLMUL and PTA_RDRND for Silvermont. 5221 * config/i386/driver-i386.c (host_detect_local_cpu): Set up cpu 5222 for Silvermont. 5223 5224 * doc/invoke.texi: Mention AES, PCLMUL and RDRND for Silvermont. 5225 52262013-11-22 Andrew MacLeod <amacleod@redhat.com> 5227 5228 * hooks.h (hook_uint_mode_0): Add Prototype. 5229 * hooks.c (hook_uint_mode_0): New default function. 5230 * target.def (atomic_align_for_mode): New target hook. 5231 * tree.c (build_atomic_base): Add alignment override parameter. 5232 (build_common_tree_nodes): Use atomic alignment override. 5233 * doc/tm.texi.in (TARGET_ATOMIC_ALIGN_FOR_MODE): Define. 5234 * doc/tm.texi (TARGET_ATOMIC_ALIGN_FOR_MODE): Add description. 5235 52362013-11-22 Andrew MacLeod <amacleod@redhat.com> 5237 5238 * gimple.h: Remove all includes. 5239 (recalculate_side_effects): Move prototype to gimplify.h. 5240 * Makefile.in (PLUGIN_HEADERS): Add flattened gimple.h includes. 5241 * gengtype.c (open_base_files): Add gimple.h include list. 5242 * gimplify.h (recalculate_side_effects): Relocate prototype here. 5243 * gimple.c: Adjust include list. 5244 (recalculate_side_effects): Move to gimplify.c. 5245 * gimplify.c: Adjust include list. 5246 (recalculate_side_effects): Relocate from gimple.c. 5247 * alias.c: Add required include files removed from gimple.h. 5248 * asan.c: Likewise. 5249 * builtins.c: Likewise. 5250 * calls.c: Likewise. 5251 * cfgexpand.c: Likewise. 5252 * cfgloop.c: Likewise. 5253 * cfgloopmanip.c: Likewise. 5254 * cgraphbuild.c: Likewise. 5255 * cgraph.c: Likewise. 5256 * cgraphclones.c: Likewise. 5257 * cgraphunit.c: Likewise. 5258 * cilk-common.c: Likewise. 5259 * data-streamer.c: Likewise. 5260 * data-streamer-in.c: Likewise. 5261 * data-streamer-out.c: Likewise. 5262 * dse.c: Likewise. 5263 * dwarf2out.c: Likewise. 5264 * emit-rtl.c: Likewise. 5265 * except.c: Likewise. 5266 * expr.c: Likewise. 5267 * fold-const.c: Likewise. 5268 * function.c: Likewise. 5269 * gimple-builder.c: Likewise. 5270 * gimple-expr.c: Likewise. 5271 * gimple-fold.c: Likewise. 5272 * gimple-iterator.c: Likewise. 5273 * gimple-low.c: Likewise. 5274 * gimple-pretty-print.c: Likewise. 5275 * gimple-ssa-isolate-paths.c: Likewise. 5276 * gimple-ssa-strength-reduction.c: Likewise. 5277 * gimple-streamer-in.c: Likewise. 5278 * gimple-streamer-out.c: Likewise. 5279 * gimple-walk.c: Likewise. 5280 * gimplify-me.c: Likewise. 5281 * graphite-blocking.c: Likewise. 5282 * graphite.c: Likewise. 5283 * graphite-clast-to-gimple.c: Likewise. 5284 * graphite-dependences.c: Likewise. 5285 * graphite-interchange.c: Likewise. 5286 * graphite-optimize-isl.c: Likewise. 5287 * graphite-poly.c: Likewise. 5288 * graphite-scop-detection.c: Likewise. 5289 * graphite-sese-to-poly.c: Likewise. 5290 * internal-fn.c: Likewise. 5291 * ipa.c: Likewise. 5292 * ipa-cp.c: Likewise. 5293 * ipa-devirt.c: Likewise. 5294 * ipa-inline-analysis.c: Likewise. 5295 * ipa-inline.c: Likewise. 5296 * ipa-profile.c: Likewise. 5297 * ipa-prop.c: Likewise. 5298 * ipa-pure-const.c: Likewise. 5299 * ipa-reference.c: Likewise. 5300 * ipa-split.c: Likewise. 5301 * ipa-utils.c: Likewise. 5302 * langhooks.c: Likewise. 5303 * lto-cgraph.c: Likewise. 5304 * lto-compress.c: Likewise. 5305 * lto-opts.c: Likewise. 5306 * lto-section-in.c: Likewise. 5307 * lto-section-out.c: Likewise. 5308 * lto-streamer.c: Likewise. 5309 * lto-streamer-in.c: Likewise. 5310 * lto-streamer-out.c: Likewise. 5311 * omp-low.c: Likewise. 5312 * opts-global.c: Likewise. 5313 * passes.c: Likewise. 5314 * predict.c: Likewise. 5315 * profile.c: Likewise. 5316 * sese.c: Likewise. 5317 * stmt.c: Likewise. 5318 * stor-layout.c: Likewise. 5319 * symtab.c: Likewise. 5320 * targhooks.c: Likewise. 5321 * toplev.c: Likewise. 5322 * tracer.c: Likewise. 5323 * trans-mem.c: Likewise. 5324 * tree-affine.c: Likewise. 5325 * tree.c: Likewise. 5326 * tree-call-cdce.c: Likewise. 5327 * tree-cfg.c: Likewise. 5328 * tree-cfgcleanup.c: Likewise. 5329 * tree-chrec.c: Likewise. 5330 * tree-complex.c: Likewise. 5331 * tree-data-ref.c: Likewise. 5332 * tree-dfa.c: Likewise. 5333 * tree-eh.c: Likewise. 5334 * tree-emutls.c: Likewise. 5335 * tree-if-conv.c: Likewise. 5336 * tree-inline.c: Likewise. 5337 * tree-into-ssa.c: Likewise. 5338 * tree-loop-distribution.c: Likewise. 5339 * tree-nested.c: Likewise. 5340 * tree-nrv.c: Likewise. 5341 * tree-object-size.c: Likewise. 5342 * tree-outof-ssa.c: Likewise. 5343 * tree-parloops.c: Likewise. 5344 * tree-phinodes.c: Likewise. 5345 * tree-predcom.c: Likewise. 5346 * tree-pretty-print.c: Likewise. 5347 * tree-profile.c: Likewise. 5348 * tree-scalar-evolution.c: Likewise. 5349 * tree-sra.c: Likewise. 5350 * tree-ssa-address.c: Likewise. 5351 * tree-ssa-alias.c: Likewise. 5352 * tree-ssa.c: Likewise. 5353 * tree-ssa-ccp.c: Likewise. 5354 * tree-ssa-coalesce.c: Likewise. 5355 * tree-ssa-copy.c: Likewise. 5356 * tree-ssa-copyrename.c: Likewise. 5357 * tree-ssa-dce.c: Likewise. 5358 * tree-ssa-dom.c: Likewise. 5359 * tree-ssa-dse.c: Likewise. 5360 * tree-ssa-forwprop.c: Likewise. 5361 * tree-ssa-ifcombine.c: Likewise. 5362 * tree-ssa-live.c: Likewise. 5363 * tree-ssa-loop.c: Likewise. 5364 * tree-ssa-loop-ch.c: Likewise. 5365 * tree-ssa-loop-im.c: Likewise. 5366 * tree-ssa-loop-ivcanon.c: Likewise. 5367 * tree-ssa-loop-ivopts.c: Likewise. 5368 * tree-ssa-loop-manip.c: Likewise. 5369 * tree-ssa-loop-niter.c: Likewise. 5370 * tree-ssa-loop-prefetch.c: Likewise. 5371 * tree-ssa-loop-unswitch.c: Likewise. 5372 * tree-ssa-math-opts.c: Likewise. 5373 * tree-ssanames.c: Likewise. 5374 * tree-ssa-operands.c: Likewise. 5375 * tree-ssa-phiopt.c: Likewise. 5376 * tree-ssa-phiprop.c: Likewise. 5377 * tree-ssa-pre.c: Likewise. 5378 * tree-ssa-propagate.c: Likewise. 5379 * tree-ssa-reassoc.c: Likewise. 5380 * tree-ssa-sccvn.c: Likewise. 5381 * tree-ssa-sink.c: Likewise. 5382 * tree-ssa-strlen.c: Likewise. 5383 * tree-ssa-structalias.c: Likewise. 5384 * tree-ssa-tail-merge.c: Likewise. 5385 * tree-ssa-ter.c: Likewise. 5386 * tree-ssa-threadedge.c: Likewise. 5387 * tree-ssa-threadupdate.c: Likewise. 5388 * tree-ssa-uncprop.c: Likewise. 5389 * tree-ssa-uninit.c: Likewise. 5390 * tree-stdarg.c: Likewise. 5391 * tree-streamer.c: Likewise. 5392 * tree-streamer-in.c: Likewise. 5393 * tree-streamer-out.c: Likewise. 5394 * tree-switch-conversion.c: Likewise. 5395 * tree-tailcall.c: Likewise. 5396 * tree-vect-data-refs.c: Likewise. 5397 * tree-vect-generic.c: Likewise. 5398 * tree-vect-loop.c: Likewise. 5399 * tree-vect-loop-manip.c: Likewise. 5400 * tree-vectorizer.c: Likewise. 5401 * tree-vect-patterns.c: Likewise. 5402 * tree-vect-slp.c: Likewise. 5403 * tree-vect-stmts.c: Likewise. 5404 * tree-vrp.c: Likewise. 5405 * tsan.c: Likewise. 5406 * ubsan.c: Likewise. 5407 * value-prof.c: Likewise. 5408 * varpool.c: Likewise. 5409 * var-tracking.c: Likewise. 5410 * vtable-verify.c: Likewise. 5411 * config/darwin.c: Likewise. 5412 * config/aarch64/aarch64-builtins.c: Likewise. 5413 * config/aarch64/aarch64.c: Likewise. 5414 * config/alpha/alpha.c: Likewise. 5415 * config/i386/i386.c: Likewise. 5416 * config/i386/winnt.c: Likewise. 5417 * config/ia64/ia64.c: Likewise. 5418 * config/m32c/m32c.c: Likewise. 5419 * config/mep/mep.c: Likewise. 5420 * config/mips/mips.c: Likewise. 5421 * config/rs6000/rs6000.c: Likewise. 5422 * config/s390/s390.c: Likewise. 5423 * config/sh/sh.c: Likewise. 5424 * config/sparc/sparc.c: Likewise. 5425 * config/spu/spu.c: Likewise. 5426 * config/stormy16/stormy16.c: Likewise. 5427 * config/tilegx/tilegx.c: Likewise. 5428 * config/tilepro/tilepro.c: Likewise. 5429 * config/xtensa/xtensa.c: Likewise. 5430 54312013-11-22 Richard Earnshaw <rearnsha@arm.com> 5432 5433 PR target/59216 5434 * arm.md (negdi_extendsidi): Fix invalid split. 5435 54362013-11-22 Alex Velenko <Alex.Velenko@arm.com> 5437 5438 * config/aarch64/arm_neon.h (vmov_n_f32): Implemented in C. 5439 (vmov_n_f64): Likewise. 5440 (vmov_n_p8): Likewise. 5441 (vmov_n_p16): Likewise. 5442 (vmov_n_s8): Likewise. 5443 (vmov_n_s16): Likewise. 5444 (vmov_n_s32): Likewise. 5445 (vmov_n_s64): Likewise. 5446 (vmov_n_u8): Likewise. 5447 (vmov_n_u16): Likewise. 5448 (vmov_n_u32): Likewise. 5449 (vmov_n_u64): Likewise. 5450 (vmovq_n_f32): Likewise. 5451 (vmovq_n_f64): Likewise. 5452 (vmovq_n_p8): Likewise. 5453 (vmovq_n_p16): Likewise. 5454 (vmovq_n_s8): Likewise. 5455 (vmovq_n_s16): Likewise. 5456 (vmovq_n_s32): Likewise. 5457 (vmovq_n_s64): Likewise. 5458 (vmovq_n_u8): Likewise. 5459 (vmovq_n_u16): Likewise. 5460 (vmovq_n_u32): Likewise. 5461 (vmovq_n_u64): Likewise. 5462 54632013-11-22 Tejas Belagod <tejas.belagod@arm.com> 5464 5465 * config/aarch64/aarch64-simd.md (vec_pack_trunc_<mode>, 5466 vec_pack_trunc_v2df, vec_pack_trunc_df): Swap for big-endian. 5467 (reduc_<sur>plus_<mode>): Factorize V2DI into this. 5468 (reduc_<sur>plus_<mode>): Change this to reduc_splus_<mode> for floats 5469 and also change to float UNSPEC. 5470 (reduc_maxmin_uns>_<mode>): Remove V2DI. 5471 * config/aarch64/arm_neon.h (vaddv<q>_<suf><8,16,32,64>, 5472 vmaxv<q>_<suf><8,16,32,64>, vminv<q>_<suf><8,16,32,64>): Fix up scalar 5473 result access for big-endian. 5474 (__LANE0): New macro used to fix up lane access of 'across-lanes' 5475 intrinsics for big-endian. 5476 * config/aarch64/iterators.md (VDQV): Add V2DI. 5477 (VDQV_S): New. 5478 (vp): New mode attribute. 5479 54802013-11-22 Tejas Belagod <tejas.belagod@arm.com> 5481 5482 * config/aarch64/aarch64-simd.md (vec_pack_trunc_<mode>, 5483 vec_pack_trunc_v2df, vec_pack_trunc_df): Swap source ops for 5484 big-endian. 5485 54862013-11-22 Tejas Belagod <tejas.belagod@arm.com> 5487 5488 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Adjust 5489 for big-endian element order. 5490 (aarch64_simd_vec_setv2di): Likewise. 5491 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>, 5492 *aarch64_get_lane_zero_extendsi<mode>, aarch64_get_lane): Likewise. 5493 (vec_extract): Expand using aarch64_get_lane. 5494 * config/aarch64/aarch64.h (ENDIAN_LANE_N): New. 5495 54962013-11-22 Tejas Belagod <tejas.belagod@arm.com> 5497 5498 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Fix loads 5499 and stores to be ABI compliant. 5500 55012013-11-22 David Malcolm <dmalcolm@redhat.com> 5502 5503 * input.h (input_line): Remove. 5504 (input_filename): Likewise. 5505 (in_system_header): Likewise. 5506 * tree.h (EXPR_LOC_OR_HERE): Remove. 5507 * config/bfin/bfin.c (output_file_start): Remove use of 5508 input_filename macro. 5509 * builtins.c (c_strlen): Remove use of EXPR_LOC_OR_HERE macro. 5510 * gimplify.c (internal_get_tmp_var): Likewise. 5511 EXPR_LOC_OR_HERE macro. 5512 (shortcut_cond_expr): Likewise. 5513 * tree-diagnostic.c (diagnostic_report_current_function): Remove 5514 use of input_filename macro. 5515 * tree.c (get_file_function_name): Likewise. 5516 55172013-11-22 Kenneth Zadeck <zadeck@naturalbridge.com> 5518 5519 * store-layout.c (place-field): Fix hwi test and accessor mismatch. 5520 55212013-11-22 Jakub Jelinek <jakub@redhat.com> 5522 5523 * expr.c (store_constructor): Allow CONSTRUCTOR with VECTOR_TYPE 5524 (same sized) elements even if the type of the CONSTRUCTOR has 5525 vector mode and target is a REG. 5526 55272013-11-22 Richard Biener <rguenther@suse.de> 5528 5529 Revert 5530 2013-11-21 Richard Biener <rguenther@suse.de> 5531 5532 * tree-ssa-loop-ch.c (copy_loop_headers): Decrement 5533 nb_iterations_upper_bound by one. 5534 55352013-11-22 H.J. Lu <hongjiu.lu@intel.com> 5536 5537 * config/i386/i386.c (processor_alias_table): Enable PTA_POPCNT 5538 for Silvermont. 5539 5540 * doc/invoke.texi: Mention POPCNT for corei7, corei7-avx, 5541 core-avx-i, core-avx2 and slm. 5542 55432013-11-22 Eric Botcazou <ebotcazou@adacore.com> 5544 5545 * print-rtl.c (print_rtx) <case MEM>: Output a space if no MEM_EXPR. 5546 55472013-11-22 Richard Sandiford <rdsandiford@googlemail.com> 5548 5549 * config/m32c/cond.md (stzx_16): Use register_operand for operand 0. 5550 (stzx_24_<mode>): Likewise mra_operand. 5551 55522013-11-22 Jeff Law <law@redhat.com> 5553 5554 * tree-ssa-threadupdate.c: Include tree-cfg.h and tree-pass.h 5555 (thread_block_1): Do not cancel jump threads which go from 5556 inside a loop, through the header, then back inside the loop. 5557 (bb_ends_with_multiway_branch): New function. 5558 (thread_through_all_blocks): Handle threading cases which start 5559 in a loop through the loop header to a point in the loop. 5560 5561 * tree-ssa-threadedge.c (thread_across_edge): Mark the start of the 5562 jump thread path properly. 5563 55642013-11-22 Trevor Saunders <tsaunders@mozilla.com> 5565 5566 * vec.h (auto_vec): New class. 5567 * cfganal.c, cfgloop.c, cgraphunit.c, config/i386/i386.c, dwarf2out.c, 5568 function.c, genautomata.c, gimple.c, haifa-sched.c, ipa-inline.c, 5569 ira-build.c, loop-unroll.c, omp-low.c, ree.c, trans-mem.c, 5570 tree-call-cdce.c, tree-eh.c, tree-if-conv.c, tree-into-ssa.c, 5571 tree-loop-distribution.c, tree-predcom.c, tree-sra.c, 5572 tree-sssa-forwprop.c, tree-ssa-loop-manip.c, tree-ssa-pre.c, 5573 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-structalias.c, 5574 tree-vect-loop.c, tree-vect-stmts.c: Use auto_vec and stack_vec as 5575 appropriate instead of vec for local variables. 5576 55772013-11-21 Teresa Johnson <tejohnson@google.com> 5578 5579 PR target/59233 5580 * cfgcleanup.c (outgoing_edges_match): Walk up past note instructions 5581 not understood by old_insns_match_p. 5582 55832013-11-21 Bill Schmidt <wschmidt@vnet.ibm.com> 5584 5585 * config/rs6000/vector.md (vec_pack_trunc_v2df): Revert previous 5586 little endian change. 5587 (vec_pack_sfix_trunc_v2df): Likewise. 5588 (vec_pack_ufix_trunc_v2df): Likewise. 5589 * config/rs6000/rs6000.c (rs6000_expand_interleave): Correct 5590 double checking of endianness. 5591 55922013-11-22 Jakub Jelinek <jakub@redhat.com> 5593 5594 * tree-vect-generic.c (optimize_vector_constructor): New function. 5595 (expand_vector_operations_1): Call it. 5596 55972013-11-21 Uros Bizjak <ubizjak@gmail.com> 5598 5599 * config/i386/i386.c (ix86_expand_special_args_builtin): Use 5600 ix86_zero_extend_to_Pmode where appropriate. 5601 (ix86_expand_builtin): Ditto. 5602 56032013-11-21 Cary Coutant <ccoutant@google.com> 5604 5605 * dwarf2out.c (want_pubnames): Don't do pubnames for -g1. 5606 (add_linkage_name): Don't add linkage name for -g1. 5607 (decls_for_scope): Process subblocks for -g1. 5608 (dwarf2out_source_line): Output line tables for -g1. 5609 (dwarf2out_finish): Likewise. 5610 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune 5611 unused scopes for -g1. 5612 * opts.c (common_handle_option): Handle -g same as -g2. 5613 * doc/invoke.texi: Update description for -g1. 5614 56152013-11-21 Peter Bergner <bergner@vnet.ibm.com> 5616 5617 * doc/extend.texi: Document htm builtins. 5618 56192013-11-21 Jeff Law <law@redhat.com> 5620 5621 PR tree-optimization/59221 5622 * tree-ssa-threadedge.c (thread_across_edge): Properly manage 5623 temporary equivalences when threading through joiner blocks. 5624 56252013-11-21 Joseph Myers <joseph@codesourcery.com> 5626 5627 PR rtl-optimization/55950 5628 * real.c (real_sqrt): Remove function. 5629 * real.h (real_sqrt): Remove prototype. 5630 * simplify-rtx.c (simplify_const_unary_operation): Do not fold 5631 SQRT using real_sqrt. 5632 56332013-11-21 Richard Biener <rguenther@suse.de> 5634 5635 PR tree-optimization/59058 5636 * tree-scalar-evolution.h (number_of_exit_cond_executions): Remove. 5637 * tree-scalar-evolution.c (number_of_exit_cond_executions): Likewise. 5638 * tree-vectorizer.h (LOOP_PEELING_FOR_ALIGNMENT): Rename to ... 5639 (LOOP_VINFO_PEELING_FOR_ALIGNMENT): ... this. 5640 (NITERS_KNOWN_P): Fold into ... 5641 (LOOP_VINFO_NITERS_KNOWN_P): ... this. 5642 (LOOP_VINFO_PEELING_FOR_NITER): Add. 5643 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): 5644 Use LOOP_VINFO_PEELING_FOR_ALIGNMENT. 5645 (vect_do_peeling_for_alignment): Re-use precomputed niter 5646 instead of re-emitting it. 5647 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): 5648 Use LOOP_VINFO_PEELING_FOR_ALIGNMENT. 5649 * tree-vect-loop.c (vect_get_loop_niters): Use 5650 number_of_latch_executions. 5651 (new_loop_vec_info): Initialize LOOP_VINFO_PEELING_FOR_NITER. 5652 (vect_analyze_loop_form): Simplify. 5653 (vect_analyze_loop_operations): Move epilogue peeling code ... 5654 (vect_analyze_loop_2): ... here and adjust it to compute 5655 LOOP_VINFO_PEELING_FOR_NITER. 5656 (vect_estimate_min_profitable_iters): Use 5657 LOOP_VINFO_PEELING_FOR_ALIGNMENT. 5658 (vect_build_loop_niters): Emit on the preheader. 5659 (vect_generate_tmps_on_preheader): Likewise. 5660 (vect_transform_loop): Use LOOP_VINFO_PEELING_FOR_NITER instead 5661 of recomputing it. Adjust. 5662 56632013-11-21 Richard Biener <rguenther@suse.de> 5664 5665 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE, 5666 LOC_LINE): Remove wrappers and fix all users. 5667 (struct _loop_vec_info): Remove loop_line_number member. 5668 (LOOP_VINFO_LOC): Remove. 5669 * tree-parloops.c, tree-vect-loop-manip.c, tree-vect-slp.c, 5670 tree-vectorizer.c: Fix users of LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE 5671 and LOC_LINE. 5672 56732013-11-21 Richard Biener <rguenther@suse.de> 5674 5675 * tree-ssa-forwprop.c (simplify_vce): New function. 5676 (ssa_forward_propagate_and_combine): Call it. 5677 56782013-11-21 Richard Biener <rguenther@suse.de> 5679 5680 * tree-vect-loop-manip.c (vect_build_loop_niters, 5681 vect_generate_tmps_on_preheader): Move ... 5682 * tree-vect-loop.c (vect_build_loop_niters, 5683 vect_generate_tmps_on_preheader): ... here and simplify. 5684 (vect_transform_loop): Call them here and pass down results 5685 to consumers. 5686 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): 5687 Get niter variables from caller. 5688 (vect_do_peeling_for_alignment): Likewise. 5689 * tree-vectorizer.h (vect_generate_tmps_on_preheader): Remove. 5690 (vect_do_peeling_for_loop_bound, vect_do_peeling_for_alignment): 5691 Adjust prototypes. 5692 56932013-11-21 Richard Biener <rguenther@suse.de> 5694 5695 * tree-ssa-loop-ch.c (copy_loop_headers): Decrement 5696 nb_iterations_upper_bound by one. 5697 56982013-11-21 Richard Biener <rguenther@suse.de> 5699 5700 PR tree-optimization/59058 5701 * tree-loop-distribution.c (struct partition_s): Add plus_one member. 5702 (build_size_arg_loc): Apply niter adjustment here. 5703 (generate_memset_builtin): Adjust. 5704 (generate_memcpy_builtin): Likewise. 5705 (classify_partition): Do not use number_of_exit_cond_executions 5706 but record whether niter needs to be adjusted. 5707 57082013-11-21 Eric Botcazou <ebotcazou@adacore.com> 5709 5710 * tree-ssa-tail-merge.c (stmt_local_def): Return false if the statement 5711 could throw. 5712 57132013-11-21 Oleg Endo <olegendo@gcc.gnu.org> 5714 5715 PR target/53976 5716 * config/sh/sh_optimize_sett_clrt.cc: New SH specific RTL pass. 5717 * config/sh/sh.c (register_sh_passes): Add sh_optimize_sett_clrt pass. 5718 * config/sh/sh/t-sh (sh_optimize_sett_clrt pass.o): New entry. 5719 * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add 5720 sh_optimize_sett_clrt pass.o to extra_objs. 5721 57222013-11-20 David Malcolm <dmalcolm@redhat.com> 5723 5724 * cfg.c (dump_edge_info): Remove redundant comment. 5725 * cfgcleanup.c (outgoing_edges_match): Reword reference to 5726 EXIT_BLOCK_PTR in comment. 5727 (try_optimize_cfg): Likewise. 5728 * cfgrtl.c (last_bb_in_partition): Likewise. 5729 * cgraph.c (cgraph_node_cannot_return): Likewise. 5730 * function.c (thread_prologue_and_epilogue_insns): Likewise. 5731 * graphite-scop-detection.c (scopdet_basic_block_info): Likewise. 5732 * ipa-split.c (consider_split): Likewise. 5733 * profile.c (find_spanning_tree): Likewise. 5734 * sched-int.h (common_sched_info_def.add_block): Likewise. 5735 * dominance.c (calc_dfs_tree_nonrec): Reword references in 5736 comments to now removed ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR macros. 5737 * tree-cfgcleanup.c (cleanup_control_flow_bb): Reword references 5738 in comments to now removed ENTRY_BLOCK_PTR macro. 5739 (tree_forwarder_block_p): Reword reference in comment to 5740 EXIT_BLOCK_PTR. 5741 * tree-inline.c (copy_cfg_body): Reword references in comments to 5742 now removed ENTRY_BLOCK_PTR macro. 5743 * tree-ssa-propagate.c (ssa_prop_init): Likewise. 5744 * tree-scalar-evolution.h ( block_before_loop): Likewise. Add 5745 a comma to the comment to clarify the meaning. 5746 57472013-11-20 Andrew MacLeod <amacleod@redhat.com> 5748 5749 * gimplify.h (gimplify_hasher:typed_free_remove, struct gimplify_ctx): 5750 Move to gimplify.c. 5751 (free_gimplify_stack): Add prototype. 5752 * gimplify.c (gimplify_hasher:typed_free_remove): Relocate here. 5753 (struct gimplify_ctx): Relocate here. 5754 (gimplify_ctxp): Make static. 5755 (ctx_pool, ctx_alloc, ctx_free, free_gimplify_stack): New. Manage a 5756 list of struct gimplify_ctx. 5757 (push_gimplify_context): Add default parameters and allocate a struct 5758 from the pool. 5759 (pop_gimplify_context): Free a struct back to the pool. 5760 (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task, 5761 gimplify_omp_workshare, gimplify_transaction, gimplify_body): Don't 5762 use a local 'struct gimplify_ctx'. 5763 * cgraphunit.c (expand_all_functions): call free_gimplify_stack. 5764 * gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands): 5765 Likewise. 5766 * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master, 5767 lower_omp_ordered, lower_omp_critical, lower_omp_for, 5768 create_task_copyfn, lower_omp_taskreg, lower_omp_target, 5769 lower_omp_teams, execute_lower_omp): Likewise. 5770 * gimple-fold.c (gimplify_and_update_call_from_tree): Likewise. 5771 * tree-inline.c (optimize_inline_calls): Likewise. 5772 57732013-11-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 5774 5775 * config/rs6000/vsx.md (vsx_set_<mode>): Adjust for little endian. 5776 (vsx_extract_<mode>): Likewise. 5777 (*vsx_extract_<mode>_one_le): New LE variant on 5778 *vsx_extract_<mode>_zero. 5779 (vsx_extract_v4sf): Adjust for little endian. 5780 57812013-11-20 Vladimir Makarov <vmakarov@redhat.com> 5782 5783 PR rtl-optimization/59133 5784 * lra.c (expand_reg_data): Add new argument. Set up ALL_REGS for 5785 new pseudos. 5786 (lra_create_new_reg_with_unique_value): Pass new argument value. 5787 (lra_emit_add, lra_emit_move): Ditto. 5788 * lra-constraints.c (in_class_p): Add check for move for a new insn. 5789 (change_class): Rename to lra_change_class. Move to lra-int.h. 5790 (get_reload_reg, narrow_reload_pseudo_class): Adjust calls of 5791 change_class. 5792 (process_addr_reg, process_addr): Ditto. 5793 (curr_insn_transform): Ditto. Add check on old pseudo for 5794 optional reload. 5795 * lra-int.h (lra_get_regno_hard_regno): Move below. 5796 (lra_change_class): Renamed change_class from lra.c. 5797 57982013-11-20 David Malcolm <dmalcolm@redhat.com> 5799 5800 * gdbhooks.py (VecPrinter.children): Don't attempt to iterate 5801 the children of a NULL pointer. 5802 58032013-11-20 Robert Suchanek <Robert.Suchanek@imgtec.com> 5804 5805 * lra.c (lra): Set lra_in_progress before check_rtl call. 5806 * recog.c (insn_invalid_p): Add !lra_in_progress to prevent 5807 adding clobber regs when LRA is running. 5808 58092013-11-20 Maciej W. Rozycki <macro@codesourcery.com> 5810 5811 * config/mips/mips.h (ISA_HAS_FP4): Remove TARGET_FLOAT64 5812 restriction for ISA_MIPS32R2. 5813 (ISA_HAS_LXC1_SXC1): New macro. 5814 (ISA_HAS_FP_MADD4_MSUB4): Remove ISA_MIPS32R2 special-casing. 5815 (ISA_HAS_NMADD4_NMSUB4): Likewise. 5816 (ISA_HAS_FP_RECIP_RSQRT): Likewise. 5817 (ISA_HAS_PREFETCHX): Redefine in terms of ISA_HAS_FP4. 5818 * config/mips/mips.md (*<ANYF:loadx>_<P:mode>): Use 5819 ISA_HAS_LXC1_SXC1 rather than ISA_HAS_FP4. 5820 (*<ANYF:storex>_<P:mode>): Likewise. 5821 58222013-11-20 Maciej W. Rozycki <macro@codesourcery.com> 5823 5824 * config/mips/mips.h (ISA_HAS_FP_RECIP_RSQRT): New macro. 5825 * config/mips/mips.c (mips_rtx_costs) <DIV>: Check for 5826 ISA_HAS_FP_RECIP_RSQRT rather than ISA_HAS_FP4. 5827 * config/mips/mips.md (recip_condition): Remove mode attribute. 5828 (div<mode>3): Use ISA_HAS_FP_RECIP_RSQRT rather than 5829 <recip_condition>. 5830 (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Likewise. 5831 58322013-11-20 Eric Botcazou <ebotcazou@adacore.com> 5833 5834 PR target/59207 5835 * config/sparc/sparc.c (sparc_fold_builtin) <case CODE_FOR_pdist_vis>: 5836 Make sure neg2_ovf is set before being used. 5837 58382013-11-20 Basile Starynkevitch <basile@starynkevitch.net> 5839 5840 * plugin.def: Add comment about register_callback and 5841 invoke_plugin_callbacks_full. 5842 5843 * plugin.c (register_callback, invoke_plugin_callbacks_full): 5844 Handle PLUGIN_INCLUDE_FILE event. 5845 58462013-11-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 5847 5848 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Do not 5849 allow subregs of TDmode in FPRs of smaller size in little-endian. 5850 (rs6000_split_multireg_move): When splitting an access to TDmode 5851 in FPRs, do not use simplify_gen_subreg. 5852 58532013-11-20 Joseph Myers <joseph@codesourcery.com> 5854 5855 PR middle-end/21718 5856 * real.c: Remove comment about decimal string conversion and 5857 rounding errors. 5858 (real_from_string): Use MPFR to convert nonzero decimal constant 5859 to REAL_VALUE_TYPE. 5860 58612013-11-20 Eric Botcazou <ebotcazou@adacore.com> 5862 5863 * config/arm/arm.c (arm_dwarf_register_span): Take into account the 5864 endianness of the D registers for the legacy encodings. 5865 58662013-11-20 Richard Earnshaw <rearnsha@arm.com> 5867 5868 PR rtl-optimization/54300 5869 * regcprop.c (copyprop_hardreg_forward_1): Ensure any unused 5870 outputs in a single-set are killed from the value chains. 5871 58722013-11-20 Ilya Enkovich <ilya.enkovich@intel.com> 5873 5874 * cgraph.h (varpool_node): Add need_bounds_init field. 5875 * lto-cgraph.c (lto_output_varpool_node): Output 5876 need_bounds_init value. 5877 (input_varpool_node): Read need_bounds_init value. 5878 * varpool.c (dump_varpool_node): Dump need_bounds_init field. 5879 58802013-11-20 Jan Hubicka <jh@suse.cz> 5881 5882 * opts.c (finish_options): Imply -ffat-lto-objects with 5883 -fno-use-linker-plugin. 5884 * common.opt (fuse-linker-plugin): Add var. 5885 58862013-11-20 Ilya Enkovich <ilya.enkovich@intel.com> 5887 5888 * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE. 5889 * dwarf2out.c (gen_subprogram_die): Ignore bound args. 5890 (gen_type_die_with_usage): Skip pointer bounds. 5891 (dwarf2out_global_decl): Likewise. 5892 58932013-11-20 James Greenhalgh <james.greenhalgh@arm.com> 5894 5895 * config/aarch64/aarch64.md: Remove "mode" and "mode2" attributes 5896 from all insns. 5897 58982013-11-20 Yuri Rumyantsev <ysrumyan@gmail.com> 5899 5900 PR target/57756 5901 * config/i386/i386.c (ix86_option_override_internal): Add missed 5902 argument prefix for 'ix86_fpmath'. 5903 * config/i386/ssemath.h: Add missed definition of 5904 TARGET_FPMATH_DEFAULT_P macros. 5905 59062013-11-20 Kenneth Zadeck <zadeck@naturalbridge.com> 5907 Mike Stump <mikestump@comcast.net> 5908 Richard Sandiford <rdsandiford@googlemail.com> 5909 5910 * alias.c (ao_ref_from_mem): Use tree_to_shwi and tree_to_uhwi 5911 instead of TREE_INT_CST_LOW, in cases where there is a protecting 5912 tree_fits_shwi_p or tree_fits_uhwi_p. 5913 * builtins.c (fold_builtin_powi): Likewise. 5914 * config/epiphany/epiphany.c (epiphany_special_round_type_align): 5915 Likewise. 5916 * dbxout.c (dbxout_symbol): Likewise. 5917 * expr.c (expand_expr_real_1): Likewise. 5918 * fold-const.c (fold_single_bit_test, fold_plusminus_mult_expr) 5919 (fold_binary_loc): Likewise. 5920 * gimple-fold.c (fold_const_aggregate_ref_1): Likewise. 5921 * gimple-ssa-strength-reduction.c (stmt_cost): Likewise. 5922 * omp-low.c (lower_omp_for_lastprivate): Likewise. 5923 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise. 5924 * stor-layout.c (compute_record_mode): Likewise. 5925 * tree-cfg.c (verify_expr): Likewise. 5926 * tree-dfa.c (get_ref_base_and_extent): Likewise. 5927 * tree-pretty-print.c (dump_array_domain): Likewise. 5928 * tree-sra.c (build_user_friendly_ref_for_offset): Likewise. 5929 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise. 5930 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr_id): Likewise. 5931 * tree-ssa-math-opts.c (execute_cse_sincos): Likewise. 5932 * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise. 5933 * tree-ssa-reassoc.c (acceptable_pow_call): Likewise. 5934 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise. 5935 (ao_ref_init_from_vn_reference, vn_reference_fold_indirect): Likewise. 5936 (vn_reference_lookup_3, simplify_binary_expression): Likewise. 5937 * tree-ssa-structalias.c (bitpos_of_field): Likewise. 5938 (get_constraint_for_1, push_fields_onto_fieldstack): Likewise. 5939 (create_variable_info_for_1): Likewise. 5940 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise. 5941 (vect_verify_datarefs_alignment): Likewise. 5942 (vect_analyze_data_ref_accesses): Likewise. 5943 (vect_prune_runtime_alias_test_list): Likewise. 5944 * tree-vectorizer.h (NITERS_KNOWN_P): Likewise. 5945 59462013-11-20 Richard Sandiford <rdsandiford@googlemail.com> 5947 5948 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Avoid signed 5949 overflow. Use tree_to_shwi. 5950 59512013-11-20 Richard Sandiford <rdsandiford@googlemail.com> 5952 5953 * fold-const.c (fold_binary_loc): Use unsigned rather than signed 5954 HOST_WIDE_INTs when folding (x >> c) << c. 5955 59562013-11-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 5957 Dominik Vogt <vogt@linux.vnet.ibm.com> 5958 5959 * config/s390/s390.c (s390_canonicalize_comparison): Don't fold 5960 int comparisons with an out of range condition code. 5961 (s390_optimize_nonescaping_tx): Skip empty BBs. 5962 Generate the new tbegin RTX when removing the FPR clobbers (with 5963 two SETs). 5964 (s390_expand_tbegin): Fix the retry loop counter. Copy CC to the 5965 result before doing the retry calculations. 5966 (s390_init_builtins): Make tbegin "returns_twice" and tabort 5967 "noreturn". 5968 * config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for 5969 the TDB setting part of an tbegin. 5970 ("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB. 5971 ("tx_assist"): Set unused argument to an immediate zero instead of 5972 loading zero into a GPR and pass it as argument. 5973 * config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin): 5974 Remove inline and related attributes. 5975 (__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort) 5976 (__TM_is_illegal, __TM_is_footprint_exceeded) 5977 (__TM_is_nested_too_deep, __TM_is_conflict): Fix format value check. 5978 59792013-11-20 Richard Biener <rguenther@suse.de> 5980 5981 PR lto/59035 5982 * lto-opts.c (lto_write_options): Write defaults only if 5983 they were not explicitely specified. Also write 5984 -ffp-contract default. 5985 * lto-wrapper.c (merge_and_complain): Merge -ffp-contract 5986 conservatively. 5987 (run_gcc): Pass through -ffp-contract. 5988 59892013-11-20 Jan-Benedict Glaw <jbglaw@lug-owl.de> 5990 5991 * config/mips/mips.c (r10k_simplify_address): Eliminate macro usage. 5992 59932013-11-20 James Greenhalgh <james.greenhalgh@arm.com> 5994 5995 * config/aarch64/aarch64-builtins.c 5996 (aarch64_simd_itype): Remove. 5997 (aarch64_simd_builtin_datum): Remove itype, add qualifiers pointer. 5998 (VAR1): Use qualifiers. 5999 (aarch64_build_scalar_type): New. 6000 (aarch64_build_vector_type): Likewise. 6001 (aarch64_build_type): Likewise. 6002 (aarch64_init_simd_builtins): Refactor, remove special cases, 6003 consolidate main loop. 6004 (aarch64_simd_expand_args): Likewise. 6005 60062013-11-19 Joshua J Cogliati <jrincayc@yahoo.com> 6007 6008 PR c/53001 6009 * doc/invoke.texi: Adding documentation about -Wfloat-conversion. 6010 60112013-11-19 Miro Kropacek <miro.kropacek@gmail.com> 6012 6013 * config/m68k/m68k.c (m68k_option_overrides): Fix typo. 6014 60152013-11-19 David Malcolm <dmalcolm@redhat.com> 6016 6017 * gdbhooks.py (VecPrinter): New class, for prettyprinting pointers 6018 to "vec<>" instances. 6019 (build_pretty_printer): Register the vec<>* prettyprinter. 6020 60212013-11-19 David Malcolm <dmalcolm@redhat.com> 6022 6023 * gdbhooks.py (GdbSubprinter.__init__): Drop str_type_ field. 6024 (GdbSubprinter.handles_type): New. 6025 (GdbSubprinterTypeList): New subclass of GdbSubprinter. 6026 (GdbSubprinterRegex): New subclass of GdbSubprinter. 6027 (GdbPrettyPrinters.add_printer): Remove in favor of... 6028 (GdbPrettyPrinters.add_printer_for_types): ...this new method and... 6029 (GdbPrettyPrinters.add_printer_for_regex): ...this other new method. 6030 (GdbPrettyPrinters.__call__): Update search for subprinter 6031 to use handles_type method. 6032 (build_pretty_printer): Update registration of subprinters to 6033 use the new API above, supporting multiple spelling of each type, 6034 and allowing for future regex-based subprinters. 6035 60362013-11-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 6037 6038 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Adjust 6039 V16QI vector splat case for little endian. 6040 60412013-11-19 Jeff Law <law@redhat.com> 6042 6043 * tree-ssa-threadedge.c (thread_across_edge): After threading 6044 through a joiner, allow threading a normal block requiring duplication. 6045 6046 * tree-ssa-threadupdate.c (thread_block_1): Improve code to detect 6047 jump threading requests that would muck up the loop structures. 6048 6049 * tree-ssa-threadupdate.c: Fix trailing whitespace. 6050 * tree-ssa-threadupdate.h: Likewise. 6051 60522013-11-19 Mike Stump <mikestump@comcast.net> 6053 6054 * gdbinit.in: Add pmz to print out mpz values. 6055 60562013-11-20 Jan Hubicka <jh@suse.cz> 6057 6058 * common.opt (ffat-lto-objects): Disable by default. 6059 * doc/invoke.texi (fat-lto-objects): Update documentation. 6060 * opts.c: Enable fat-lto-objects on lto plugin disable setups. 6061 60622013-11-19 Martin Jambor <mjambor@suse.cz> 6063 6064 PR rtl-optimization/59099 6065 * ira.c (find_moveable_pseudos): Put back various analyses from ira() 6066 here. 6067 (ira): Move init_reg_equiv and call to 6068 split_live_ranges_for_shrink_wrap up, remove analyses around call 6069 to find_moveable_pseudos. 6070 60712013-11-20 Alan Modra <amodra@gmail.com> 6072 6073 * config/rs6000/sysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty. 6074 * config/rs6000/rs6000.c (rs6000_option_override_internal): Default 6075 to strict alignment on older processors when little-endian. 6076 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to power8 6077 for ELFv2. 6078 60792013-11-19 Teresa Johnson <tejohnson@google.com> 6080 6081 * common/config/i386/i386-common.c (ix86_option_optimization_table): 6082 Enable -freorder-blocks-and-partition at -O2 and up for x86. 6083 * doc/invoke.texi: Update -freorder-blocks-and-partition default. 6084 * opts.c (finish_options): Only warn if 6085 -freorder-blocks-and-partition was set on command line. 6086 60872013-11-19 Sriraman Tallam <tmsriram@google.com> 6088 6089 * final.c (final_scan_insn): Emit a label for the split 6090 cold function part. Label name is formed by suffixing 6091 the original function name with "cold". 6092 60932013-11-19 David Malcolm <dmalcolm@redhat.com> 6094 6095 * basic-block.h (ENTRY_BLOCK_PTR_FOR_FUNCTION): Rename macro to... 6096 (EXIT_BLOCK_PTR_FOR_FUNCTION): ...this. 6097 (ENTRY_BLOCK_PTR_FOR_FN): Renamed macro to... 6098 (EXIT_BLOCK_PTR_FOR_FN): ...this. 6099 (ENTRY_BLOCK_PTR): Eliminate macro as work towards making uses of 6100 cfun be explicit. 6101 (EXIT_BLOCK_PTR): Likewise. 6102 (FOR_ALL_BB): Rework for now to eliminate use of "ENTRY_BLOCK_PTR". 6103 (FOR_ALL_BB_FN): Update for renaming of 6104 "ENTRY_BLOCK_PTR_FOR_FUNCTION" to "ENTRY_BLOCK_PTR_FOR_FN". 6105 6106 * cfg.c (init_flow): Likewise. 6107 (check_bb_profile): Likewise. 6108 * cfganal.c (pre_and_rev_post_order_compute_fn): Likewise. 6109 * cfgcleanup.c (walk_to_nondebug_insn): Likewise. 6110 * cfghooks.c (account_profile_record): Likewise. 6111 * cfgloop.c (init_loops_structure): Likewise. 6112 * cgraphbuild.c (record_eh_tables): Likewise. 6113 (compute_call_stmt_bb_frequency): Likewise. 6114 * ipa-inline-analysis.c (compute_bb_predicates): Likewise. 6115 * lto-streamer-in.c (input_cfg): Likewise. 6116 * predict.c (maybe_hot_frequency_p): Likewise. 6117 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise. 6118 * tree-inline.c (initialize_cfun): Likewise. 6119 (copy_cfg_body): Likewise. 6120 (copy_body): Likewise. 6121 (tree_function_versioning): Likewise. 6122 6123 * bb-reorder.c (add_labels_and_missing_jumps): Remove uses of macros: 6124 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6125 (duplicate_computed_gotos): Remove usage of EXIT_BLOCK_PTR macro. 6126 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove uses of 6127 macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6128 (connect_traces): Likewise. 6129 (rest_of_handle_reorder_blocks): Remove usage of EXIT_BLOCK_PTR macro. 6130 (bb_to_key): Remove usage of ENTRY_BLOCK_PTR macro. 6131 (fix_crossing_conditional_branches): Remove usage of EXIT_BLOCK_PTR 6132 macro. 6133 (find_traces_1_round): Remove uses of macros: ENTRY_BLOCK_PTR, 6134 EXIT_BLOCK_PTR. 6135 (fix_up_fall_thru_edges): Remove usage of EXIT_BLOCK_PTR macro. 6136 (find_traces): Remove usage of ENTRY_BLOCK_PTR macro. 6137 (fix_up_crossing_landing_pad): Remove usage of EXIT_BLOCK_PTR macro. 6138 (rotate_loop): Likewise. 6139 * bt-load.c (migrate_btr_def): Remove usage of ENTRY_BLOCK_PTR macro. 6140 * cfg.c (clear_aux_for_edges): Remove uses of macros: ENTRY_BLOCK_PTR, 6141 EXIT_BLOCK_PTR. 6142 (alloc_aux_for_edges): Likewise. 6143 (clear_bb_flags): Remove usage of ENTRY_BLOCK_PTR macro. 6144 (cached_make_edge): Remove uses of macros: ENTRY_BLOCK_PTR, 6145 EXIT_BLOCK_PTR. 6146 (compact_blocks): Likewise. 6147 (clear_edges): Likewise. 6148 * cfganal.c (single_pred_before_succ_order): Remove usage of 6149 ENTRY_BLOCK_PTR macro. 6150 (bitmap_union_of_succs): Remove usage of EXIT_BLOCK_PTR macro. 6151 (bitmap_union_of_preds): Remove usage of ENTRY_BLOCK_PTR macro. 6152 (bitmap_intersection_of_succs): Remove usage of EXIT_BLOCK_PTR macro. 6153 (bitmap_intersection_of_preds): Remove usage of ENTRY_BLOCK_PTR macro. 6154 (inverted_post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR, 6155 EXIT_BLOCK_PTR. 6156 (compute_dominance_frontiers_1): Remove usage of ENTRY_BLOCK_PTR macro. 6157 (post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR, 6158 EXIT_BLOCK_PTR. 6159 (connect_infinite_loops_to_exit): Remove usage of EXIT_BLOCK_PTR macro. 6160 (remove_fake_edges): Remove usage of ENTRY_BLOCK_PTR macro. 6161 (add_noreturn_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro. 6162 (find_pdom): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6163 (remove_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro. 6164 (verify_edge_list): Remove uses of macros: ENTRY_BLOCK_PTR, 6165 EXIT_BLOCK_PTR. 6166 (print_edge_list): Likewise. 6167 (create_edge_list): Likewise. 6168 (find_unreachable_blocks): Remove usage of ENTRY_BLOCK_PTR macro. 6169 (mark_dfs_back_edges): Remove uses of macros: ENTRY_BLOCK_PTR, 6170 EXIT_BLOCK_PTR. 6171 * cfgbuild.c (find_bb_boundaries): Remove usage of ENTRY_BLOCK_PTR 6172 macro. 6173 (find_many_sub_basic_blocks): Remove usage of EXIT_BLOCK_PTR macro. 6174 (make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6175 * cfgcleanup.c (delete_unreachable_blocks): Likewise. 6176 (try_optimize_cfg): Likewise. 6177 (try_head_merge_bb): Remove usage of EXIT_BLOCK_PTR macro. 6178 (try_crossjump_to_edge): Remove usage of ENTRY_BLOCK_PTR macro. 6179 (try_crossjump_bb): Remove usage of EXIT_BLOCK_PTR macro. 6180 (merge_blocks_move): Remove usage of ENTRY_BLOCK_PTR macro. 6181 (outgoing_edges_match): Remove usage of EXIT_BLOCK_PTR macro. 6182 (try_forward_edges): Likewise. 6183 (try_simplify_condjump): Likewise. 6184 * cfgexpand.c (gimple_expand_cfg): Remove uses of macros: 6185 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6186 (construct_exit_block): Remove usage of EXIT_BLOCK_PTR macro. 6187 (construct_init_block): Remove uses of macros: ENTRY_BLOCK_PTR, 6188 EXIT_BLOCK_PTR. 6189 (expand_gimple_basic_block): Remove usage of EXIT_BLOCK_PTR macro. 6190 (expand_gimple_tailcall): Likewise. 6191 * cfghooks.c (can_duplicate_block_p): Remove uses of macros: 6192 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6193 (tidy_fallthru_edges): Likewise. 6194 (verify_flow_info): Likewise. 6195 * cfgloop.c (flow_bb_inside_loop_p): Likewise. 6196 (num_loop_branches): Remove usage of EXIT_BLOCK_PTR macro. 6197 (disambiguate_multiple_latches): Remove usage of ENTRY_BLOCK_PTR macro. 6198 (get_loop_exit_edges): Remove usage of EXIT_BLOCK_PTR macro. 6199 (bb_loop_header_p): Remove usage of ENTRY_BLOCK_PTR macro. 6200 (get_loop_body_in_bfs_order): Remove usage of EXIT_BLOCK_PTR macro. 6201 (get_loop_body_in_dom_order): Likewise. 6202 (get_loop_body): Likewise. 6203 * cfgloopanal.c (mark_irreducible_loops): Remove uses of macros: 6204 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6205 * cfgloopmanip.c (create_preheader): Remove usage of ENTRY_BLOCK_PTR 6206 macro. 6207 (remove_path): Remove usage of EXIT_BLOCK_PTR macro. 6208 (fix_bb_placement): Likewise. 6209 * cfgrtl.c (rtl_block_empty_p): Remove uses of macros: 6210 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6211 (rtl_can_remove_branch_p): Remove usage of EXIT_BLOCK_PTR macro. 6212 (cfg_layout_split_edge): Remove uses of macros: ENTRY_BLOCK_PTR, 6213 EXIT_BLOCK_PTR. 6214 (rtl_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro. 6215 (cfg_layout_can_merge_blocks_p): Remove uses of macros: 6216 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6217 (cfg_layout_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR 6218 macro. 6219 (fixup_fallthru_exit_predecessor): Remove uses of macros: 6220 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6221 (fixup_reorder_chain): Likewise. 6222 (relink_block_chain): Likewise. 6223 (cfg_layout_delete_block): Remove usage of EXIT_BLOCK_PTR macro. 6224 (rtl_verify_bb_layout): Remove usage of ENTRY_BLOCK_PTR macro. 6225 (cfg_layout_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro. 6226 (force_one_exit_fallthru): Likewise. 6227 (rtl_verify_fallthru): Remove uses of macros: ENTRY_BLOCK_PTR, 6228 EXIT_BLOCK_PTR. 6229 (rtl_verify_edges): Likewise. 6230 (commit_edge_insertions): Likewise. 6231 (commit_one_edge_insertion): Likewise. 6232 (rtl_split_edge): Likewise. 6233 (force_nonfallthru_and_redirect): Likewise. 6234 (outof_cfg_layout_mode): Remove usage of EXIT_BLOCK_PTR macro. 6235 (skip_insns_after_block): Likewise. 6236 (fixup_partition_crossing): Remove uses of macros: ENTRY_BLOCK_PTR, 6237 EXIT_BLOCK_PTR. 6238 (purge_dead_edges): Remove usage of EXIT_BLOCK_PTR macro. 6239 (rtl_can_merge_blocks): Remove uses of macros: ENTRY_BLOCK_PTR, 6240 EXIT_BLOCK_PTR. 6241 (contains_no_active_insn_p): Likewise. 6242 (emit_insn_at_entry): Remove usage of ENTRY_BLOCK_PTR macro. 6243 (entry_of_function): Likewise. 6244 (last_bb_in_partition): Remove usage of EXIT_BLOCK_PTR macro. 6245 (fixup_new_cold_bb): Likewise. 6246 (patch_jump_insn): Likewise. 6247 (try_redirect_by_replacing_jump): Likewise. 6248 (block_label): Likewise. 6249 (could_fall_through): Likewise. 6250 (can_fallthru): Likewise. 6251 * cgraphbuild.c (cgraph_rebuild_references): Remove usage of 6252 ENTRY_BLOCK_PTR macro. 6253 (rebuild_cgraph_edges): Likewise. 6254 * cgraphunit.c (init_lowered_empty_function): Remove uses of macros: 6255 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6256 (expand_thunk): Remove usage of EXIT_BLOCK_PTR macro. 6257 * combine.c (get_last_value): Remove usage of ENTRY_BLOCK_PTR macro. 6258 (distribute_links): Remove usage of EXIT_BLOCK_PTR macro. 6259 (get_last_value_validate): Remove usage of ENTRY_BLOCK_PTR macro. 6260 (try_combine): Remove usage of EXIT_BLOCK_PTR macro. 6261 (reg_num_sign_bit_copies_for_combine): Remove usage of ENTRY_BLOCK_PTR 6262 macro. 6263 (reg_nonzero_bits_for_combine): Likewise. 6264 (set_nonzero_bits_and_sign_copies): Likewise. 6265 (combine_instructions): Likewise. 6266 * cprop.c (one_cprop_pass): Remove uses of macros: ENTRY_BLOCK_PTR, 6267 EXIT_BLOCK_PTR. 6268 (bypass_conditional_jumps): Likewise. 6269 (bypass_block): Remove usage of EXIT_BLOCK_PTR macro. 6270 (find_implicit_sets): Likewise. 6271 (cprop_jump): Likewise. 6272 * cse.c (cse_cc_succs): Likewise. 6273 (cse_find_path): Likewise. 6274 * df-problems.c (df_lr_confluence_0): Likewise. 6275 * df-scan.c (df_entry_block_defs_collect): Remove usage of 6276 ENTRY_BLOCK_PTR macro. 6277 (df_exit_block_uses_collect): Remove usage of EXIT_BLOCK_PTR macro. 6278 * dominance.c (iterate_fix_dominators): Remove usage of 6279 ENTRY_BLOCK_PTR macro. 6280 (calc_idoms): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6281 (determine_dominators_for_sons): Remove usage of ENTRY_BLOCK_PTR macro. 6282 (calc_dfs_tree): Remove uses of macros: ENTRY_BLOCK_PTR, 6283 EXIT_BLOCK_PTR. 6284 (prune_bbs_to_update_dominators): Remove usage of ENTRY_BLOCK_PTR 6285 macro. 6286 (calc_dfs_tree_nonrec): Remove uses of macros: ENTRY_BLOCK_PTR, 6287 EXIT_BLOCK_PTR. 6288 * domwalk.c (cmp_bb_postorder): Likewise. 6289 * dse.c (dse_step1): Remove usage of EXIT_BLOCK_PTR macro. 6290 * except.c (finish_eh_generation): Remove usage of ENTRY_BLOCK_PTR 6291 macro. 6292 (sjlj_emit_function_enter): Likewise. 6293 * final.c (compute_alignments): Likewise. 6294 * function.c (thread_prologue_and_epilogue_insns): Remove uses of 6295 macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6296 (reposition_prologue_and_epilogue_notes): Remove usage of 6297 EXIT_BLOCK_PTR macro. 6298 (convert_jumps_to_returns): Remove uses of macros: ENTRY_BLOCK_PTR, 6299 EXIT_BLOCK_PTR. 6300 (regno_clobbered_at_setjmp): Remove usage of ENTRY_BLOCK_PTR macro. 6301 (next_block_for_reg): Remove usage of EXIT_BLOCK_PTR macro. 6302 * gcse.c (hoist_code): Remove usage of ENTRY_BLOCK_PTR macro. 6303 (update_bb_reg_pressure): Remove usage of EXIT_BLOCK_PTR macro. 6304 (compute_code_hoist_vbeinout): Likewise. 6305 (should_hoist_expr_to_dom): Remove usage of ENTRY_BLOCK_PTR macro. 6306 (pre_expr_reaches_here_p_work): Likewise. 6307 * gimple-iterator.c (gsi_commit_edge_inserts): Likewise. 6308 (gimple_find_edge_insert_loc): Remove uses of macros: ENTRY_BLOCK_PTR, 6309 EXIT_BLOCK_PTR. 6310 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove usage of 6311 ENTRY_BLOCK_PTR macro. 6312 * graph.c (draw_cfg_nodes_for_loop): Remove usage of EXIT_BLOCK_PTR 6313 macro. 6314 * graphite-clast-to-gimple.c (translate_clast_user): Remove usage of 6315 ENTRY_BLOCK_PTR macro. 6316 * graphite-scop-detection.c (build_scops): Likewise. 6317 (create_sese_edges): Remove usage of EXIT_BLOCK_PTR macro. 6318 (scopdet_basic_block_info): Remove usage of ENTRY_BLOCK_PTR macro. 6319 * haifa-sched.c (restore_bb_notes): Remove usage of EXIT_BLOCK_PTR 6320 macro. 6321 (unlink_bb_notes): Likewise. 6322 (create_check_block_twin): Likewise. 6323 (init_before_recovery): Likewise. 6324 (sched_extend_bb): Likewise. 6325 (priority): Likewise. 6326 * hw-doloop.c (reorder_loops): Likewise. 6327 (discover_loop): Likewise. 6328 * ifcvt.c (dead_or_predicable): Remove uses of macros: 6329 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6330 (find_if_case_1): Remove usage of EXIT_BLOCK_PTR macro. 6331 (block_has_only_trap): Likewise. 6332 (cond_exec_find_if_block): Likewise. 6333 (merge_if_block): Likewise. 6334 * ipa-inline-analysis.c (param_change_prob): Remove usage of 6335 ENTRY_BLOCK_PTR macro. 6336 (record_modified): Likewise. 6337 * ipa-pure-const.c (execute_warn_function_noreturn): Remove usage of 6338 EXIT_BLOCK_PTR macro. 6339 (local_pure_const): Likewise. 6340 * ipa-split.c (split_function): Remove uses of macros: 6341 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6342 (find_split_points): Likewise. 6343 (consider_split): Likewise. 6344 (find_return_bb): Remove usage of EXIT_BLOCK_PTR macro. 6345 (verify_non_ssa_vars): Remove usage of ENTRY_BLOCK_PTR macro. 6346 * ira-build.c (ira_loop_tree_body_rev_postorder): Likewise. 6347 * ira-color.c (print_loop_title): Remove usage of EXIT_BLOCK_PTR macro. 6348 * ira-emit.c (entered_from_non_parent_p): Remove usage of 6349 ENTRY_BLOCK_PTR macro. 6350 (ira_emit): Remove usage of EXIT_BLOCK_PTR macro. 6351 * ira-int.h (ira_assert): Remove usage of ENTRY_BLOCK_PTR macro. 6352 * ira.c (split_live_ranges_for_shrink_wrap): Remove uses of macros: 6353 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6354 * lcm.c (compute_rev_insert_delete): Remove usage of ENTRY_BLOCK_PTR 6355 macro. 6356 (compute_nearerout): Remove uses of macros: ENTRY_BLOCK_PTR, 6357 EXIT_BLOCK_PTR. 6358 (compute_farthest): Likewise. 6359 (compute_available): Likewise. 6360 (compute_insert_delete): Remove usage of EXIT_BLOCK_PTR macro. 6361 (compute_laterin): Remove uses of macros: ENTRY_BLOCK_PTR, 6362 EXIT_BLOCK_PTR. 6363 (compute_earliest): Likewise. 6364 (compute_antinout_edge): Likewise. 6365 * loop-iv.c (simplify_using_initial_values): Remove usage of 6366 ENTRY_BLOCK_PTR macro. 6367 * loop-unswitch.c (unswitch_loop): Remove usage of EXIT_BLOCK_PTR 6368 macro. 6369 * lra-assigns.c (find_hard_regno_for): Remove usage of ENTRY_BLOCK_PTR 6370 macro. 6371 * lra-constraints.c (lra_inheritance): Remove usage of EXIT_BLOCK_PTR 6372 macro. 6373 * lra-lives.c (lra_create_live_ranges): Remove uses of macros: 6374 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6375 * lra.c (has_nonexceptional_receiver): Remove usage of EXIT_BLOCK_PTR 6376 macro. 6377 * lto-streamer-in.c (input_function): Remove usage of ENTRY_BLOCK_PTR 6378 macro. 6379 * lto-streamer-out.c (output_cfg): Likewise. 6380 * mcf.c (adjust_cfg_counts): Remove uses of macros: ENTRY_BLOCK_PTR, 6381 EXIT_BLOCK_PTR. 6382 (create_fixup_graph): Remove usage of ENTRY_BLOCK_PTR macro. 6383 * mode-switching.c (optimize_mode_switching): Likewise. 6384 (create_pre_exit): Remove usage of EXIT_BLOCK_PTR macro. 6385 * modulo-sched.c (rest_of_handle_sms): Likewise. 6386 (canon_loop): Likewise. 6387 * omp-low.c (build_omp_regions): Remove usage of ENTRY_BLOCK_PTR macro. 6388 * postreload-gcse.c (eliminate_partially_redundant_loads): Remove uses 6389 of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6390 * predict.c (rebuild_frequencies): Remove usage of ENTRY_BLOCK_PTR 6391 macro. 6392 (propagate_freq): Remove usage of EXIT_BLOCK_PTR macro. 6393 (estimate_bb_frequencies): Remove usage of ENTRY_BLOCK_PTR macro. 6394 (tree_estimate_probability_bb): Remove usage of EXIT_BLOCK_PTR macro. 6395 (expensive_function_p): Remove usage of ENTRY_BLOCK_PTR macro. 6396 (tree_bb_level_predictions): Remove usage of EXIT_BLOCK_PTR macro. 6397 (counts_to_freqs): Remove usage of ENTRY_BLOCK_PTR macro. 6398 (apply_return_prediction): Remove usage of EXIT_BLOCK_PTR macro. 6399 (estimate_loops): Remove usage of ENTRY_BLOCK_PTR macro. 6400 (gimple_predict_edge): Likewise. 6401 (probably_never_executed): Likewise. 6402 * profile.c (find_spanning_tree): Remove uses of macros: 6403 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6404 (branch_prob): Likewise. 6405 (compute_branch_probabilities): Likewise. 6406 (compute_frequency_overlap): Remove usage of ENTRY_BLOCK_PTR macro. 6407 (is_inconsistent): Remove usage of EXIT_BLOCK_PTR macro. 6408 (read_profile_edge_counts): Remove usage of ENTRY_BLOCK_PTR macro. 6409 (set_bb_counts): Likewise. 6410 (correct_negative_edge_counts): Likewise. 6411 (get_exec_counts): Likewise. 6412 (instrument_values): Likewise. 6413 (instrument_edges): Likewise. 6414 * reg-stack.c (convert_regs): Remove uses of macros: ENTRY_BLOCK_PTR, 6415 EXIT_BLOCK_PTR. 6416 (compensate_edges): Remove usage of ENTRY_BLOCK_PTR macro. 6417 (convert_regs_exit): Remove usage of EXIT_BLOCK_PTR macro. 6418 (convert_regs_entry): Remove usage of ENTRY_BLOCK_PTR macro. 6419 (reg_to_stack): Likewise. 6420 * regs.h (REG_N_SETS): Likewise. 6421 * reload.c (find_dummy_reload): Likewise. 6422 (combine_reloads): Likewise. 6423 (push_reload): Likewise. 6424 * reload1.c (has_nonexceptional_receiver): Remove usage of 6425 EXIT_BLOCK_PTR macro. 6426 * resource.c (mark_target_live_regs): Remove usage of ENTRY_BLOCK_PTR 6427 macro. 6428 (find_basic_block): Likewise. 6429 * sched-ebb.c (ebb_add_block): Remove usage of EXIT_BLOCK_PTR macro. 6430 (schedule_ebbs): Likewise. 6431 * sched-int.h (sel_sched_p): Likewise. 6432 * sched-rgn.c (compute_dom_prob_ps): Remove usage of ENTRY_BLOCK_PTR 6433 macro. 6434 (rgn_add_block): Remove usage of EXIT_BLOCK_PTR macro. 6435 (haifa_find_rgns): Remove uses of macros: ENTRY_BLOCK_PTR, 6436 EXIT_BLOCK_PTR. 6437 (propagate_deps): Remove usage of EXIT_BLOCK_PTR macro. 6438 (extend_rgns): Likewise. 6439 (find_single_block_region): Likewise. 6440 * sel-sched-ir.c (sel_remove_loop_preheader): Remove usage of 6441 ENTRY_BLOCK_PTR macro. 6442 (setup_nop_and_exit_insns): Remove usage of EXIT_BLOCK_PTR macro. 6443 (sel_create_recovery_block): Likewise. 6444 (bb_ends_ebb_p): Likewise. 6445 (sel_bb_end): Likewise. 6446 (sel_bb_head): Likewise. 6447 (free_lv_sets): Likewise. 6448 (init_lv_sets): Likewise. 6449 (tidy_control_flow): Likewise. 6450 (maybe_tidy_empty_bb): Likewise. 6451 * sel-sched-ir.h (_succ_iter_cond): Likewise. 6452 (_succ_iter_start): Likewise. 6453 (sel_bb_empty_or_nop_p): Likewise. 6454 (get_loop_exit_edges_unique_dests): Likewise. 6455 (inner_loop_header_p): Likewise. 6456 * sel-sched.c (create_block_for_bookkeeping): Likewise. 6457 (find_block_for_bookkeeping): Likewise. 6458 * store-motion.c (remove_reachable_equiv_notes): Likewise. 6459 (insert_store): Likewise. 6460 * trans-mem.c (ipa_tm_transform_clone): Remove usage of 6461 ENTRY_BLOCK_PTR macro. 6462 (tm_memopt_compute_available): Remove usage of EXIT_BLOCK_PTR macro. 6463 (ipa_tm_scan_irr_function): Remove usage of ENTRY_BLOCK_PTR macro. 6464 (gate_tm_init): Likewise. 6465 (tm_region_init): Likewise. 6466 * tree-cfg.c (execute_fixup_cfg): Remove uses of macros: 6467 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6468 (execute_warn_function_return): Remove usage of EXIT_BLOCK_PTR macro. 6469 (split_critical_edges): Remove uses of macros: ENTRY_BLOCK_PTR, 6470 EXIT_BLOCK_PTR. 6471 (print_loops): Remove usage of ENTRY_BLOCK_PTR macro. 6472 (move_sese_region_to_fn): Remove uses of macros: ENTRY_BLOCK_PTR, 6473 EXIT_BLOCK_PTR. 6474 (gimple_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR 6475 macro. 6476 (gimple_verify_flow_info): Remove uses of macros: ENTRY_BLOCK_PTR, 6477 EXIT_BLOCK_PTR. 6478 (remove_edge_and_dominated_blocks): Remove usage of EXIT_BLOCK_PTR 6479 macro. 6480 (make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6481 (gimple_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro. 6482 (make_blocks): Remove usage of ENTRY_BLOCK_PTR macro. 6483 (build_gimple_cfg): Likewise. 6484 (gimple_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro. 6485 (gimple_can_merge_blocks_p): Likewise. 6486 * tree-cfgcleanup.c (tree_forwarder_block_p): Remove uses of macros: 6487 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6488 * tree-complex.c (update_parameter_components): Remove usage of 6489 ENTRY_BLOCK_PTR macro. 6490 * tree-if-conv.c (get_loop_body_in_if_conv_order): Remove usage of 6491 EXIT_BLOCK_PTR macro. 6492 * tree-inline.c (tree_function_versioning): Remove uses of macros: 6493 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6494 (delete_unreachable_blocks_update_callgraph): Likewise. 6495 (initialize_cfun): Likewise. 6496 (copy_cfg_body): Remove usage of ENTRY_BLOCK_PTR macro. 6497 (copy_edges_for_bb): Remove usage of EXIT_BLOCK_PTR macro. 6498 (remap_ssa_name): Remove usage of ENTRY_BLOCK_PTR macro. 6499 * tree-into-ssa.c (update_ssa): Likewise. 6500 (maybe_register_def): Remove usage of EXIT_BLOCK_PTR macro. 6501 (insert_updated_phi_nodes_for): Remove usage of ENTRY_BLOCK_PTR macro. 6502 (rewrite_into_ssa): Likewise. 6503 (rewrite_debug_stmt_uses): Likewise. 6504 * tree-outof-ssa.c (expand_phi_nodes): Remove uses of macros: 6505 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6506 * tree-profile.c (gimple_gen_ic_func_profiler): Remove usage of 6507 ENTRY_BLOCK_PTR macro. 6508 * tree-scalar-evolution.h (block_before_loop): Likewise. 6509 * tree-sra.c (sra_ipa_reset_debug_stmts): Likewise. 6510 (dump_dereferences_table): Remove uses of macros: ENTRY_BLOCK_PTR, 6511 EXIT_BLOCK_PTR. 6512 (analyze_caller_dereference_legality): Remove usage of ENTRY_BLOCK_PTR 6513 macro. 6514 (propagate_dereference_distances): Remove uses of macros: 6515 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6516 (initialize_parameter_reductions): Remove usage of ENTRY_BLOCK_PTR 6517 macro. 6518 * tree-ssa-ccp.c (gsi_prev_dom_bb_nondebug): Likewise. 6519 (optimize_stack_restore): Remove usage of EXIT_BLOCK_PTR macro. 6520 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise. 6521 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove uses of macros: 6522 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6523 (remove_dead_stmt): Remove usage of EXIT_BLOCK_PTR macro. 6524 (propagate_necessity): Remove usage of ENTRY_BLOCK_PTR macro. 6525 (mark_control_dependent_edges_necessary): Remove uses of macros: 6526 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6527 * tree-ssa-dom.c (eliminate_degenerate_phis): Remove usage of 6528 ENTRY_BLOCK_PTR macro. 6529 (tree_ssa_dominator_optimize): Remove usage of EXIT_BLOCK_PTR macro. 6530 * tree-ssa-live.c (verify_live_on_entry): Remove uses of macros: 6531 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6532 (calculate_live_on_exit): Likewise. 6533 (set_var_live_on_entry): Remove usage of ENTRY_BLOCK_PTR macro. 6534 (loe_visit_block): Likewise. 6535 * tree-ssa-live.h (live_on_exit): Remove uses of macros: 6536 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6537 (live_on_entry): Likewise. 6538 * tree-ssa-loop-ivopts.c (find_interesting_uses): Remove usage of 6539 EXIT_BLOCK_PTR macro. 6540 * tree-ssa-loop-manip.c (compute_live_loop_exits): Remove usage of 6541 ENTRY_BLOCK_PTR macro. 6542 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Likewise. 6543 (bound_difference): Likewise. 6544 * tree-ssa-loop-prefetch.c (may_use_storent_in_loop_p): Remove usage 6545 of EXIT_BLOCK_PTR macro. 6546 * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Remove usage 6547 of ENTRY_BLOCK_PTR macro. 6548 * tree-ssa-math-opts.c (register_division_in): Likewise. 6549 * tree-ssa-phiprop.c (tree_ssa_phiprop): Likewise. 6550 * tree-ssa-pre.c (compute_avail): Likewise. 6551 (compute_antic): Remove usage of EXIT_BLOCK_PTR macro. 6552 (insert): Remove usage of ENTRY_BLOCK_PTR macro. 6553 * tree-ssa-propagate.c (ssa_prop_init): Likewise. 6554 (simulate_block): Remove usage of EXIT_BLOCK_PTR macro. 6555 (cfg_blocks_add): Remove uses of macros: ENTRY_BLOCK_PTR, 6556 EXIT_BLOCK_PTR. 6557 (add_control_edge): Remove usage of EXIT_BLOCK_PTR macro. 6558 * tree-ssa-reassoc.c (do_reassoc): Remove uses of macros: 6559 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6560 (build_and_add_sum): Remove usage of ENTRY_BLOCK_PTR macro. 6561 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise. 6562 (execute_sink_code): Remove usage of EXIT_BLOCK_PTR macro. 6563 * tree-ssa-uninit.c (find_dom): Remove usage of ENTRY_BLOCK_PTR macro. 6564 (compute_control_dep_chain): Remove usage of EXIT_BLOCK_PTR macro. 6565 (find_pdom): Likewise. 6566 (warn_uninitialized_vars): Remove usage of ENTRY_BLOCK_PTR macro. 6567 * tree-stdarg.c (reachable_at_most_once): Likewise. 6568 * tree-tailcall.c (tree_optimize_tail_calls_1): Remove uses of macros: 6569 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6570 (eliminate_tail_call): Likewise. 6571 * tsan.c (instrument_func_entry): Remove usage of ENTRY_BLOCK_PTR 6572 macro. 6573 (instrument_func_exit): Remove usage of EXIT_BLOCK_PTR macro. 6574 * var-tracking.c (vt_initialize): Remove uses of macros: 6575 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR. 6576 (vt_add_function_parameter): Remove usage of ENTRY_BLOCK_PTR macro. 6577 (vt_find_locations): Remove usage of EXIT_BLOCK_PTR macro. 6578 (vt_stack_adjustments): Remove uses of macros: ENTRY_BLOCK_PTR, 6579 EXIT_BLOCK_PTR. 6580 * varasm.c (assemble_start_function): Remove usage of ENTRY_BLOCK_PTR 6581 macro. 6582 * config/bfin/bfin.c (hwloop_optimize): Likewise. 6583 * config/nds32/nds32.c (nds32_fp_as_gp_check_available): Remove usage 6584 of EXIT_BLOCK_PTR macro. 6585 * config/arm/arm.c (require_pic_register): Remove usage of 6586 ENTRY_BLOCK_PTR macro. 6587 (arm_r3_live_at_start_p): Likewise. 6588 (any_sibcall_could_use_r3): Remove usage of EXIT_BLOCK_PTR macro. 6589 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise. 6590 * config/frv/frv.c (frv_optimize_membar_global): Likewise. 6591 * config/alpha/alpha.c (alpha_gp_save_rtx): Remove usage of 6592 ENTRY_BLOCK_PTR macro. 6593 * config/i386/i386.c (ix86_count_insn): Likewise. 6594 (ix86_seh_fixup_eh_fallthru): Remove usage of EXIT_BLOCK_PTR macro. 6595 (ix86_pad_short_function): Likewise. 6596 (ix86_compute_frame_layout): Remove usage of ENTRY_BLOCK_PTR macro. 6597 (ix86_pad_returns): Remove usage of EXIT_BLOCK_PTR macro. 6598 (ix86_eax_live_at_start_p): Remove usage of ENTRY_BLOCK_PTR macro. 6599 (add_condition_to_bb): Remove usage of EXIT_BLOCK_PTR macro. 6600 (ix86_expand_epilogue): Likewise. 6601 * config/ia64/ia64.c (ia64_asm_unwind_emit): Likewise. 6602 (ia64_expand_prologue): Likewise. 6603 66042013-11-19 Catherine Moore <clm@codesourcery.com> 6605 6606 * doc/invoke.texi (mfix-rm7000, mno-fix-rm7000): Document. 6607 * config/mips/mips.opt (mfix-rm7000): New option. 6608 * config/mips/mips.h (ASM_SPEC): Handle mfix-rm7000. 6609 * config/mips/mips.c (mips_reorg_process_insns): Disable 6610 noreorder for TARGET_FIX_RM7000. 6611 66122013-11-19 Oleg Endo <olegendo@gcc.gnu.org> 6613 6614 * config/sh/sh-c.c: Fix typo in include of file attribs.h. 6615 66162013-11-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 6617 6618 * config/arm/arm.c (arm_new_rtx_costs): 6619 Handle narrow mode add-shifts properly. 6620 * config/arm/arm-common.c (arm_rtx_shift_left_p): Remove static. 6621 * config/arm/arm-common-protos.h (arm_rtx_shift_left_p): 6622 Declare extern. 6623 66242013-11-19 James Greenhalgh <james.greenhalgh@arm.com> 6625 6626 * config/arm/arm.md (zero_extend<mode>di2): Add type attribute. 6627 66282013-11-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 6629 6630 * config/rs6000/vector.md ("mov<mode>"): Do not call 6631 rs6000_emit_le_vsx_move to move into or out of GPRs. 6632 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Assert 6633 source and destination are not GPR hard regs. 6634 66352013-11-19 David Malcolm <dmalcolm@redhat.com> 6636 6637 * basic-block.h (n_edges_for_function): Rename macro to... 6638 (n_edges_for_fn): ...this. 6639 (n_edges): Eliminate macro as work towards making uses of 6640 cfun be explicit. 6641 6642 * cfg.c (init_flow): Update for renaming of "n_edges_for_function" 6643 to "n_edges_for_fn". 6644 6645 * cfg.c (unchecked_make_edge): Remove usage of n_edges macro. 6646 (clear_edges): Likewise. 6647 (free_edge): Likewise. 6648 * cfghooks.c (dump_flow_info): Likewise. 6649 * cprop.c (is_too_expensive): Likewise. 6650 * df-core.c (df_worklist_dataflow_doublequeue): Likewise. 6651 * gcse.c (is_too_expensive): Likewise. 6652 (prune_insertions_deletions): Likewise. 6653 * mcf.c (create_fixup_graph): Likewise. 6654 * sched-rgn.c (haifa_find_rgns): Likewise. 6655 * tree-cfg.c (gimple_dump_cfg): Likewise. 6656 * var-tracking.c (variable_tracking_main_1): Likewise. 6657 66582013-11-19 Marcus Shawcroft <marcus.shawcroft@arm.com> 6659 6660 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix over 6661 length lines. 6662 66632013-11-19 Marcus Shawcroft <marcus.shawcroft@arm.com> 6664 6665 * config/aarch64/aarch64.md 6666 (aarch64_movdi_<mode>low, *add_<shift>_si_uxtw): Adjust whitespace. 6667 66682013-11-19 Marcus Shawcroft <marcus.shawcroft@arm.com> 6669 6670 * config/aarch64/aarch64.h (PROFILE_HOOK): Fix whitespace. 6671 66722013-11-19 Joseph Myers <joseph@codesourcery.com> 6673 6674 * varasm.c (align_variable): Give error instead of warning for 6675 unsupported alignment. 6676 (assemble_noswitch_variable): Likewise. 6677 66782013-11-19 Basile Starynkevitch <basile@starynkevitch.net> 6679 6680 * plugin.def (PLUGIN_INCLUDE_FILE): New event, invoked in 6681 cb_file_change. 6682 66832013-11-19 Peter Bergner <bergner@vnet.ibm.com> 6684 6685 * loop-doloop.c (doloop_optimize_loops): Remove unused 6686 loop iterator argument from FOR_EACH_LOOP. 6687 66882013-11-19 David Malcolm <dmalcolm@redhat.com> 6689 6690 Convert gimple types from a union to C++ inheritance. 6691 * Makefile.in (GIMPLE_H): Add dep on is-a.h. 6692 * coretypes.h (union gimple_statement_d): Remove declaration. 6693 (gimple): Convert from being a "union gimple_statement_d *" 6694 to a "struct gimple_statement_base *". 6695 (const_gimple): Likewise (with "const"). 6696 * ggc.h (ggc_alloc_cleared_gimple_statement_d_stat): Replace with... 6697 (ggc_alloc_cleared_gimple_statement_stat): ...this. 6698 * gimple-pretty-print.c (debug): Change parameter from a 6699 "gimple_statement_d &" to a "gimple_statement_base &". 6700 (debug): Change parameter from a "gimple_statement_d *" to 6701 a "gimple_statement_base *". 6702 * gimple-pretty-print.h (debug): Update declarations as above. 6703 * gimple.c (gimple_alloc_stat): Update for renaming of 6704 ggc_alloc_cleared_gimple_statement_d_stat to 6705 ggc_alloc_cleared_gimple_statement_stat. 6706 * gimple.h: Include "is-a.h" for use by is_a_helper 6707 specializations in followup autogenerated patch. 6708 (struct gimple statement_base): Make this type usable as a base 6709 class by adding "desc", "tag" and "variable_size" to GTY, thus 6710 using opting-in to gengtype's support for simple inheritance. 6711 (gimple_statement_with_ops_base): Convert to a subclass of 6712 gimple_statement_base, dropping initial "gsbase" field. Note that 6713 this type is abstract, with no GSS_ value, and thus no GTY tag value. 6714 (gimple_statement_with_ops): Convert to a subclass of 6715 gimple_statement_with_ops_base, dropping initial "opbase" field. 6716 Add tag value to GTY marking. Update marking of op field to 6717 reflect how num_ops field is accessed via inheritance. 6718 (gimple_statement_with_memory_ops_base): Convert to a subclass of 6719 gimple_statement_with_ops_base, dropping initial "opbase" field. 6720 Add tag value to GTY marking. 6721 (gimple_statement_with_memory_ops): Convert to a subclass of 6722 public gimple_statement_with_memory_ops_base, dropping initial 6723 "membase" field. Add tag value to GTY marking. Update marking 6724 of op field to reflect how num_ops field is accessed via inheritance. 6725 (gimple_statement_call): Analogous changes that also update the 6726 marking of the "u" union. 6727 (gimple_statement_omp): Convert to a subclass of 6728 gimple_statement_base, dropping initial "gsbase" field, adding 6729 tag value to GTY marking. 6730 (gimple_statement_bind): Likewise. 6731 (gimple_statement_catch): Likewise. 6732 (gimple_statement_eh_filter): Likewise. 6733 (gimple_statement_eh_else): Likewise. 6734 (gimple_statement_eh_mnt): Likewise. 6735 (gimple_statement_phi): Likewise. 6736 (gimple_statement_eh_ctrl): Likewise. 6737 (gimple_statement_try): Likewise. 6738 (gimple_statement_wce): Likewise. 6739 (gimple_statement_asm): Convert to a subclass of 6740 gimple_statement_with_memory_ops_base, dropping initial 6741 "membase" field, adding tag value to GTY marking, and updating 6742 marking of op field. 6743 (gimple_statement_omp_critical): Convert to a subclass of 6744 gimple_statement_omp, dropping initial "omp" field, adding tag 6745 value to GTY marking. 6746 (gimple_statement_omp_for): Likewise. 6747 (gimple_statement_omp_parallel): Likewise. 6748 (gimple_statement_omp_task): Convert to a subclass of 6749 gimple_statement_omp_parallel, dropping initial "par" field, 6750 adding tag value to GTY marking. 6751 (gimple_statement_omp_sections): Convert to a subclass of 6752 gimple_statement_omp, dropping initial "omp" field, adding 6753 tag value to GTY marking. 6754 (gimple_statement_omp_continue): Convert to a subclass of 6755 gimple_statement_base, dropping initial "gsbase" field, adding 6756 tag value to GTY marking. 6757 (gimple_statement_omp_single): Convert to a subclass of 6758 gimple_statement_omp, dropping initial "omp" field, adding 6759 tag value to GTY marking. 6760 (gimple_statement_omp_atomic_load): Convert to a subclass of 6761 gimple_statement_base, dropping initial "gsbase" field, adding 6762 tag value to GTY marking. 6763 (gimple_statement_omp_atomic_store): Convert to a subclass of 6764 gimple_statement_base, dropping initial "gsbase" field, adding 6765 tag value to GTY marking. 6766 (gimple_statement_transaction): Convert to a subclass of 6767 gimple_statement_with_memory_ops_base, dropping initial "gsbase" 6768 field, adding tag value to GTY marking. 6769 (union gimple_statement_d): Remove. 6770 * system.h (CONST_CAST_GIMPLE): Update to use 6771 "struct gimple_statement_base *" rather than 6772 "union gimple_statement_d *". 6773 * tree-ssa-ccp.c (gimple_htab): Convert underlying type from 6774 gimple_statement_d to gimple_statement_base. 6775 6776 * gimple.h (gimple_use_ops): Port from union to usage of dyn_cast. 6777 (gimple_set_use_ops): Port from union to usage of as_a. 6778 (gimple_set_vuse): Likewise. 6779 (gimple_set_vdef): Likewise. 6780 (gimple_call_internal_fn): Port from union to a static_cast, 6781 given that the type has already been asserted. 6782 (gimple_omp_body_ptr): Port from unchecked union usage to 6783 a static_cast. 6784 (gimple_omp_set_body): Likewise. 6785 6786 * gimple-iterator.c (update_bb_for_stmts): Update for conversion of 6787 gimple types to a true class hierarchy. 6788 (update_call_edge_frequencies): Likewise. 6789 (gsi_insert_seq_nodes_before): Likewise. 6790 (gsi_insert_seq_nodes_after): Likewise. 6791 (gsi_split_seq_after): Likewise. 6792 (gsi_set_stmt): Likewise. 6793 (gsi_split_seq_before): Likewise. 6794 (gsi_remove): Likewise. 6795 * gimple-iterator.h (gsi_one_before_end_p): Likewise. 6796 (gsi_next): Likewise. 6797 (gsi_prev): Likewise. 6798 * gimple-pretty-print.c (dump_gimple_debug): Likewise. 6799 * gimple-ssa.h (gimple_vuse_op): Likewise. 6800 (gimple_vdef_op): Likewise. 6801 * gimple-streamer-in.c (input_gimple_stmt): Likewise. 6802 * gimple-streamer-out.c (output_gimple_stmt): Likewise. 6803 * gimple.c (gimple_set_code): Likewise. 6804 (gimple_alloc_stat): Likewise. 6805 (gimple_set_subcode): Likewise. 6806 (gimple_build_call_internal_1): Likewise. 6807 (gimple_check_failed): Likewise. 6808 (gimple_call_flags): Likewise. 6809 (gimple_set_bb): Likewise. 6810 * gimple.h (is_a_helper <gimple_statement_asm> (gimple)): New. 6811 (is_a_helper <gimple_statement_bind> (gimple)): Likewise. 6812 (is_a_helper <gimple_statement_call> (gimple)): Likewise. 6813 (is_a_helper <gimple_statement_catch> (gimple)): Likewise. 6814 (is_a_helper <gimple_statement_eh_ctrl> (gimple)): Likewise. 6815 (is_a_helper <gimple_statement_eh_else> (gimple)): Likewise. 6816 (is_a_helper <gimple_statement_eh_filter> (gimple)): Likewise. 6817 (is_a_helper <gimple_statement_eh_mnt> (gimple)): Likewise. 6818 (is_a_helper <gimple_statement_omp_atomic_load> (gimple)): Likewise. 6819 (is_a_helper <gimple_statement_omp_atomic_store> (gimple)): Likewise. 6820 (is_a_helper <gimple_statement_omp_continue> (gimple)): Likewise. 6821 (is_a_helper <gimple_statement_omp_critical> (gimple)): Likewise. 6822 (is_a_helper <gimple_statement_omp_for> (gimple)): Likewise. 6823 (is_a_helper <gimple_statement_omp_parallel> (gimple)): Likewise. 6824 (is_a_helper <gimple_statement_omp_sections> (gimple)): Likewise. 6825 (is_a_helper <gimple_statement_omp_single> (gimple)): Likewise. 6826 (is_a_helper <gimple_statement_omp_task> (gimple)): Likewise. 6827 (is_a_helper <gimple_statement_phi> (gimple)): Likewise. 6828 (is_a_helper <gimple_statement_transaction> (gimple)): Likewise. 6829 (is_a_helper <gimple_statement_try> (gimple)): Likewise. 6830 (is_a_helper <gimple_statement_wce> (gimple)): Likewise. 6831 (is_a_helper <const gimple_statement_asm> (const_gimple)): Likewise. 6832 (is_a_helper <const gimple_statement_bind> (const_gimple)): Likewise. 6833 (is_a_helper <const gimple_statement_call> (const_gimple)): Likewise. 6834 (is_a_helper <const gimple_statement_catch> (const_gimple)): Likewise. 6835 (is_a_helper <const gimple_statement_eh_ctrl> (const_gimple)): 6836 Likewise. 6837 (is_a_helper <const gimple_statement_eh_filter> (const_gimple)): 6838 Likewise. 6839 (is_a_helper <const gimple_statement_omp_atomic_load> (const_gimple)): 6840 Likewise. 6841 (is_a_helper <const gimple_statement_omp_atomic_store> 6842 (const_gimple)): Likewise. 6843 (is_a_helper <const gimple_statement_omp_continue> (const_gimple)): 6844 Likewise. 6845 (is_a_helper <const gimple_statement_omp_critical> (const_gimple)): 6846 Likewise. 6847 (is_a_helper <const gimple_statement_omp_for> (const_gimple)): 6848 Likewise. 6849 (is_a_helper <const gimple_statement_omp_parallel> (const_gimple)): 6850 Likewise. 6851 (is_a_helper <const gimple_statement_omp_sections> (const_gimple)): 6852 Likewise. 6853 (is_a_helper <const gimple_statement_omp_single> (const_gimple)): 6854 Likewise. 6855 (is_a_helper <const gimple_statement_omp_task> (const_gimple)): 6856 Likewise. 6857 (is_a_helper <const gimple_statement_phi> (const_gimple)): Likewise. 6858 (is_a_helper <const gimple_statement_transaction> (const_gimple)): 6859 Likewise. 6860 (gimple_seq_last): Update for conversion of gimple types to a true 6861 class hierarchy. 6862 (gimple_seq_set_last): Likewise. 6863 (gimple_code): Likewise. 6864 (gimple_bb): Likewise. 6865 (gimple_block): Likewise. 6866 (gimple_set_block): Likewise. 6867 (gimple_location): Likewise. 6868 (gimple_location_ptr): Likewise. 6869 (gimple_set_location): Likewise. 6870 (gimple_no_warning_p): Likewise. 6871 (gimple_set_no_warning): Likewise. 6872 (gimple_set_visited): Likewise. 6873 (gimple_visited_p): Likewise. 6874 (gimple_set_plf): Likewise. 6875 (gimple_plf): Likewise. 6876 (gimple_set_uid): Likewise. 6877 (gimple_uid): Likewise. 6878 (gimple_init_singleton): Likewise. 6879 (gimple_modified_p): Likewise. 6880 (gimple_set_modified): Likewise. 6881 (gimple_expr_code): Likewise. 6882 (gimple_has_volatile_ops): Likewise. 6883 (gimple_set_has_volatile_ops): Likewise. 6884 (gimple_omp_subcode): Likewise. 6885 (gimple_omp_set_subcode): Likewise. 6886 (gimple_omp_return_set_nowait): Likewise. 6887 (gimple_omp_section_set_last): Likewise. 6888 (gimple_omp_parallel_set_combined_p): Likewise. 6889 (gimple_omp_atomic_set_need_value): Likewise. 6890 (gimple_omp_atomic_set_seq_cst): Likewise. 6891 (gimple_num_ops): Likewise. 6892 (gimple_set_num_ops): Likewise. 6893 (gimple_assign_nontemporal_move_p): Likewise. 6894 (gimple_assign_set_nontemporal_move): Likewise. 6895 (gimple_assign_rhs_code): Likewise. 6896 (gimple_assign_set_rhs_code): Likewise. 6897 (gimple_call_internal_p): Likewise. 6898 (gimple_call_with_bounds_p): Likewise. 6899 (gimple_call_set_with_bounds): Likewise. 6900 (gimple_call_set_tail): Likewise. 6901 (gimple_call_tail_p): Likewise. 6902 (gimple_call_set_return_slot_opt): Likewise. 6903 (gimple_call_return_slot_opt_p): Likewise. 6904 (gimple_call_set_from_thunk): Likewise. 6905 (gimple_call_from_thunk_p): Likewise. 6906 (gimple_call_set_va_arg_pack): Likewise. 6907 (gimple_call_va_arg_pack_p): Likewise. 6908 (gimple_call_set_nothrow): Likewise. 6909 (gimple_call_set_alloca_for_var): Likewise. 6910 (gimple_call_alloca_for_var_p): Likewise. 6911 (gimple_call_copy_flags): Likewise. 6912 (gimple_cond_code): Likewise. 6913 (gimple_cond_set_code): Likewise. 6914 (gimple_cond_make_false): Likewise. 6915 (gimple_cond_make_true): Likewise. 6916 (gimple_asm_volatile_p): Likewise. 6917 (gimple_asm_set_volatile): Likewise. 6918 (gimple_asm_set_input): Likewise. 6919 (gimple_asm_input_p): Likewise. 6920 (gimple_try_kind): Likewise. 6921 (gimple_try_set_kind): Likewise. 6922 (gimple_try_catch_is_cleanup): Likewise. 6923 (gimple_try_set_catch_is_cleanup): Likewise. 6924 (gimple_wce_cleanup_eh_only): Likewise. 6925 (gimple_wce_set_cleanup_eh_only): Likewise. 6926 (gimple_debug_bind_p): Likewise. 6927 (gimple_debug_source_bind_p): Likewise. 6928 (gimple_omp_for_set_kind): Likewise. 6929 (gimple_omp_for_set_combined_p): Likewise. 6930 (gimple_omp_for_set_combined_into_p): Likewise. 6931 (gimple_omp_target_set_kind): Likewise. 6932 (gimple_transaction_subcode): Likewise. 6933 (gimple_transaction_set_subcode): Likewise. 6934 (gimple_predict_predictor): Likewise. 6935 (gimple_predict_set_predictor): Likewise. 6936 (gimple_predict_outcome): Likewise. 6937 (gimple_predict_set_outcome): Likewise. 6938 (gimple_transaction_set_label): Likewise. 6939 (gimple_transaction_set_body): Likewise. 6940 (gimple_transaction_label_ptr): Likewise. 6941 (gimple_transaction_label): Likewise. 6942 (gimple_transaction_body_ptr): Likewise. 6943 (gimple_omp_continue_set_control_use): Likewise. 6944 (gimple_omp_continue_control_use_ptr): Likewise. 6945 (gimple_omp_continue_control_use): Likewise. 6946 (gimple_omp_continue_set_control_def): Likewise. 6947 (gimple_omp_continue_control_def_ptr): Likewise. 6948 (gimple_omp_continue_control_def): Likewise. 6949 (gimple_omp_atomic_load_rhs_ptr): Likewise. 6950 (gimple_omp_atomic_load_rhs): Likewise. 6951 (gimple_omp_atomic_load_set_rhs): Likewise. 6952 (gimple_omp_atomic_load_lhs_ptr): Likewise. 6953 (gimple_omp_atomic_load_lhs): Likewise. 6954 (gimple_omp_atomic_load_set_lhs): Likewise. 6955 (gimple_omp_atomic_store_val_ptr): Likewise. 6956 (gimple_omp_atomic_store_val): Likewise. 6957 (gimple_omp_atomic_store_set_val): Likewise. 6958 (gimple_omp_for_cond): Likewise. 6959 (gimple_omp_for_set_cond): Likewise. 6960 (gimple_omp_sections_set_control): Likewise. 6961 (gimple_omp_sections_control_ptr): Likewise. 6962 (gimple_omp_sections_control): Likewise. 6963 (gimple_omp_sections_set_clauses): Likewise. 6964 (gimple_omp_sections_clauses_ptr): Likewise. 6965 (gimple_omp_sections_clauses): Likewise. 6966 (gimple_omp_teams_set_clauses): Likewise. 6967 (gimple_omp_teams_clauses_ptr): Likewise. 6968 (gimple_omp_teams_clauses): Likewise. 6969 (gimple_omp_target_set_data_arg): Likewise. 6970 (gimple_omp_target_data_arg_ptr): Likewise. 6971 (gimple_omp_target_data_arg): Likewise. 6972 (gimple_omp_target_set_child_fn): Likewise. 6973 (gimple_omp_target_child_fn_ptr): Likewise. 6974 (gimple_omp_target_child_fn): Likewise. 6975 (gimple_omp_target_set_clauses): Likewise. 6976 (gimple_omp_target_clauses_ptr): Likewise. 6977 (gimple_omp_target_clauses): Likewise. 6978 (gimple_omp_single_set_clauses): Likewise. 6979 (gimple_omp_single_clauses_ptr): Likewise. 6980 (gimple_omp_single_clauses): Likewise. 6981 (gimple_omp_task_set_arg_align): Likewise. 6982 (gimple_omp_task_arg_align_ptr): Likewise. 6983 (gimple_omp_task_arg_align): Likewise. 6984 (gimple_omp_task_set_arg_size): Likewise. 6985 (gimple_omp_task_arg_size_ptr): Likewise. 6986 (gimple_omp_task_arg_size): Likewise. 6987 (gimple_omp_task_set_copy_fn): Likewise. 6988 (gimple_omp_task_copy_fn_ptr): Likewise. 6989 (gimple_omp_task_copy_fn): Likewise. 6990 (gimple_omp_task_set_data_arg): Likewise. 6991 (gimple_omp_task_data_arg_ptr): Likewise. 6992 (gimple_omp_task_data_arg): Likewise. 6993 (gimple_omp_task_set_child_fn): Likewise. 6994 (gimple_omp_task_child_fn_ptr): Likewise. 6995 (gimple_omp_task_child_fn): Likewise. 6996 (gimple_omp_task_set_clauses): Likewise. 6997 (gimple_omp_task_clauses_ptr): Likewise. 6998 (gimple_omp_task_clauses): Likewise. 6999 (gimple_omp_parallel_set_data_arg): Likewise. 7000 (gimple_omp_parallel_data_arg_ptr): Likewise. 7001 (gimple_omp_parallel_data_arg): Likewise. 7002 (gimple_omp_parallel_set_child_fn): Likewise. 7003 (gimple_omp_parallel_child_fn_ptr): Likewise. 7004 (gimple_omp_parallel_child_fn): Likewise. 7005 (gimple_omp_parallel_set_clauses): Likewise. 7006 (gimple_omp_parallel_clauses_ptr): Likewise. 7007 (gimple_omp_parallel_clauses): Likewise. 7008 (gimple_omp_for_set_pre_body): Likewise. 7009 (gimple_omp_for_pre_body_ptr): Likewise. 7010 (gimple_omp_for_set_incr): Likewise. 7011 (gimple_omp_for_incr_ptr): Likewise. 7012 (gimple_omp_for_incr): Likewise. 7013 (gimple_omp_for_set_final): Likewise. 7014 (gimple_omp_for_final_ptr): Likewise. 7015 (gimple_omp_for_final): Likewise. 7016 (gimple_omp_for_set_initial): Likewise. 7017 (gimple_omp_for_initial_ptr): Likewise. 7018 (gimple_omp_for_initial): Likewise. 7019 (gimple_omp_for_set_index): Likewise. 7020 (gimple_omp_for_index_ptr): Likewise. 7021 (gimple_omp_for_index): Likewise. 7022 (gimple_omp_for_collapse): Likewise. 7023 (gimple_omp_for_set_clauses): Likewise. 7024 (gimple_omp_for_clauses_ptr): Likewise. 7025 (gimple_omp_for_clauses): Likewise. 7026 (gimple_omp_critical_set_name): Likewise. 7027 (gimple_omp_critical_name_ptr): Likewise. 7028 (gimple_omp_critical_name): Likewise. 7029 (gimple_eh_dispatch_set_region): Likewise. 7030 (gimple_eh_dispatch_region): Likewise. 7031 (gimple_resx_set_region): Likewise. 7032 (gimple_resx_region): Likewise. 7033 (gimple_phi_set_arg): Likewise. 7034 (gimple_phi_arg): Likewise. 7035 (gimple_phi_set_result): Likewise. 7036 (gimple_phi_result_ptr): Likewise. 7037 (gimple_phi_result): Likewise. 7038 (gimple_phi_num_args): Likewise. 7039 (gimple_phi_capacity): Likewise. 7040 (gimple_wce_set_cleanup): Likewise. 7041 (gimple_wce_cleanup_ptr): Likewise. 7042 (gimple_try_set_cleanup): Likewise. 7043 (gimple_try_set_eval): Likewise. 7044 (gimple_try_cleanup_ptr): Likewise. 7045 (gimple_try_eval_ptr): Likewise. 7046 (gimple_eh_else_set_e_body): Likewise. 7047 (gimple_eh_else_set_n_body): Likewise. 7048 (gimple_eh_else_e_body_ptr): Likewise. 7049 (gimple_eh_else_n_body_ptr): Likewise. 7050 (gimple_eh_must_not_throw_set_fndecl): Likewise. 7051 (gimple_eh_must_not_throw_fndecl): Likewise. 7052 (gimple_eh_filter_set_failure): Likewise. 7053 (gimple_eh_filter_set_types): Likewise. 7054 (gimple_eh_filter_failure_ptr): Likewise. 7055 (gimple_eh_filter_types_ptr): Likewise. 7056 (gimple_eh_filter_types): Likewise. 7057 (gimple_catch_set_handler): Likewise. 7058 (gimple_catch_set_types): Likewise. 7059 (gimple_catch_handler_ptr): Likewise. 7060 (gimple_catch_types_ptr): Likewise. 7061 (gimple_catch_types): Likewise. 7062 (gimple_asm_string): Likewise. 7063 (gimple_asm_set_label_op): Likewise. 7064 (gimple_asm_label_op): Likewise. 7065 (gimple_asm_set_clobber_op): Likewise. 7066 (gimple_asm_clobber_op): Likewise. 7067 (gimple_asm_set_output_op): Likewise. 7068 (gimple_asm_output_op_ptr): Likewise. 7069 (gimple_asm_output_op): Likewise. 7070 (gimple_asm_set_input_op): Likewise. 7071 (gimple_asm_input_op_ptr): Likewise. 7072 (gimple_asm_input_op): Likewise. 7073 (gimple_asm_nlabels): Likewise. 7074 (gimple_asm_nclobbers): Likewise. 7075 (gimple_asm_noutputs): Likewise. 7076 (gimple_asm_ninputs): Likewise. 7077 (gimple_bind_set_block): Likewise. 7078 (gimple_bind_block): Likewise. 7079 (gimple_bind_add_seq): Likewise. 7080 (gimple_bind_add_stmt): Likewise. 7081 (gimple_bind_set_body): Likewise. 7082 (gimple_bind_body_ptr): Likewise. 7083 (gimple_bind_append_vars): Likewise. 7084 (gimple_bind_set_vars): Likewise. 7085 (gimple_bind_vars): Likewise. 7086 (gimple_call_clobber_set): Likewise. 7087 (gimple_call_use_set): Likewise. 7088 (gimple_call_set_internal_fn): Likewise. 7089 (gimple_call_set_fntype): Likewise. 7090 (gimple_call_fntype): Likewise. 7091 (gimple_omp_return_lhs_ptr): Likewise. 7092 (gimple_omp_return_lhs): Likewise. 7093 (gimple_omp_return_set_lhs): Likewise. 7094 (gimple_omp_taskreg_set_data_arg): Likewise. 7095 (gimple_omp_taskreg_data_arg_ptr): Likewise. 7096 (gimple_omp_taskreg_data_arg): Likewise. 7097 (gimple_omp_taskreg_set_child_fn): Likewise. 7098 (gimple_omp_taskreg_child_fn_ptr): Likewise. 7099 (gimple_omp_taskreg_child_fn): Likewise. 7100 (gimple_omp_taskreg_set_clauses): Likewise. 7101 (gimple_omp_taskreg_clauses_ptr): Likewise. 7102 (gimple_omp_taskreg_clauses): Likewise. 7103 (gimple_vuse): Likewise. 7104 (gimple_vdef): Likewise. 7105 (gimple_vuse_ptr): Likewise. 7106 (gimple_vdef_ptr): Likewise. 7107 * tree-inline.c (copy_debug_stmt): Likewise. 7108 * tree-phinodes.c (make_phi_node): Likewise. 7109 7110 * gimple.h (is_a_helper <const gimple_statement_with_ops>::test): New. 7111 (is_a_helper <gimple_statement_with_ops>::test): New. 7112 (is_a_helper <const gimple_statement_with_memory_ops>::test): New. 7113 (is_a_helper <gimple_statement_with_memory_ops>::test): New. 7114 7115 * gimple-streamer-in.c (input_gimple_stmt): Port from union 7116 access to use of as_a. 7117 * gimple.c (gimple_build_asm_1): Likewise. 7118 (gimple_build_try): Likewise. Also, return a specific subclass 7119 rather than just gimple. 7120 (gimple_build_resx): Port from union access to use of as_a. 7121 (gimple_build_eh_dispatch): Likewise. 7122 (gimple_build_omp_for): Likewise. Also, convert allocation of iter 7123 now that gengtype no longer provides a typed allocator function. 7124 (gimple_copy): Likewise. 7125 * gimple.h (gimple_build_try): Return a specific subclass rather 7126 than just gimple. 7127 * gimplify.c (gimplify_cleanup_point_expr): Replace union access 7128 with subclass access by making use of new return type of 7129 gimple_build_try. 7130 * tree-phinodes.c: (allocate_phi_node): Return a 7131 "gimple_statement_phi *" rather than just a gimple. 7132 (resize_phi_node): Likewise. 7133 (make_phi_node): Replace union access with subclass access by 7134 making use of new return type of allocate_phi_node. 7135 (reserve_phi_args_for_new_edge): Replace union access with as_a. 7136 (remove_phi_arg_num): Accept a "gimple_statement_phi *" rather 7137 than just a gimple. 7138 (remove_phi_args): Update for change to remove_phi_arg_num. 7139 7140 * gdbhooks.py (GimplePrinter.to_string): Update lookup of 7141 code field to reflect inheritance, rather than embedding of 7142 the base gimple type. 7143 71442013-11-19 Richard Biener <rguenther@suse.de> 7145 7146 * cfgloop.h (struct loop_iterator): C++-ify, add constructor 7147 and destructor and make fel_next a member function. 7148 (fel_next): Transform into ... 7149 (loop_iterator::next): ... this. 7150 (fel_init): Transform into ... 7151 (loop_iterator::loop_iterator): ... this. 7152 (loop_iterator::~loop_iterator): New. 7153 (FOR_EACH_LOOP): Remove loop-iterator argument. 7154 (FOR_EACH_LOOP_BREAK): Remove no longer necessary macro. 7155 * cfgloop.c, cfgloopmanip.c, config/mn10300/mn10300.c, 7156 graphite-clast-to-gimple.c, graphite-scop-detection.c, 7157 graphite-sese-to-poly.c, ipa-inline-analysis.c, ipa-pure-const.c, 7158 loop-init.c, loop-invariant.c, loop-unroll.c, loop-unswitch.c, 7159 modulo-sched.c, predict.c, sel-sched-ir.c, tree-cfg.c, tree-data-ref.c, 7160 tree-if-conv.c, tree-loop-distribution.c, tree-parloops.c, 7161 tree-predcom.c, tree-scalar-evolution.c, tree-ssa-dce.c, 7162 tree-ssa-loop-ch.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c, 7163 tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c, 7164 tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c, 7165 tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vrp.c: Adjust 7166 uses of FOR_EACH_LOOP and remove loop_iterator variables. Replace 7167 FOR_EACH_LOOP_BREAK with break. 7168 71692013-11-19 Richard Biener <rguenther@suse.de> 7170 7171 PR tree-optimization/59164 7172 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): 7173 Uncomment assert. 7174 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust check 7175 whether we can create an epilogue loop to reflect thecases where 7176 we create one. 7177 71782013-11-19 Andrew MacLeod <amacleod@redhat.com> 7179 7180 * graphite-sese-to-poly.c: Include expr.h. 7181 71822013-11-19 Richard Biener <rguenther@suse.de> 7183 7184 PR middle-end/58956 7185 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid forwarding 7186 loads into stmts that may clobber it. 7187 71882013-11-19 Bernd Schmidt <bernds@codesourcery.com> 7189 7190 * cgraphunit.c (symtab_terminator): New variable. 7191 (queued_nodes): Renamed from first. Use symtab_terminator as 7192 initializer. 7193 (analyze_functions): Adjust accordingly. 7194 (cgraph_process_new_functions): Return void. 7195 * cgraph.h (cgraph_process_new_functions): Adjust declaration. 7196 71972013-11-19 Marek Polacek <polacek@redhat.com> 7198 7199 * opts.c (common_handle_option): Add -fsanitize=null option. 7200 Turn off -fdelete-null-pointer-checks option when doing the 7201 NULL pointer checking. 7202 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH): Add. 7203 * tree-pass.h (make_pass_ubsan): Declare. 7204 (make_pass_sanopt): Declare. 7205 * timevar.def (TV_TREE_UBSAN): New timevar. 7206 * passes.def: Add pass_sanopt and pass_ubsan. 7207 * ubsan.h (ubsan_null_ckind): New enum. 7208 (ubsan_mismatch_data): New struct. 7209 (ubsan_expand_null_ifn): Declare. 7210 (ubsan_create_data): Adjust declaration. 7211 (ubsan_type_descriptor): Likewise. 7212 * asan.c: Include "ubsan.h". 7213 (pass_data_sanopt): New pass. 7214 (execute_sanopt): New function. 7215 (gate_sanopt): Likewise. 7216 (make_pass_sanopt): Likewise. 7217 (class pass_sanopt): New class. 7218 * ubsan.c: Include tree-pass.h, gimple-ssa.h, gimple-walk.h, 7219 gimple-iterator.h and cfgloop.h. 7220 (PROB_VERY_UNLIKELY): Define. 7221 (tree_type_map_hash): New function. 7222 (ubsan_type_descriptor): Add new parameter. 7223 Improve type name generation. 7224 (ubsan_create_data): Add new parameter. Add pointer data into 7225 ubsan structure. 7226 (ubsan_expand_null_ifn): New function. 7227 (instrument_member_call): Likewise. 7228 (instrument_mem_ref): Likewise. 7229 (instrument_null): Likewise. 7230 (ubsan_pass): Likewise. 7231 (gate_ubsan): Likewise. 7232 (make_pass_ubsan): Likewise. 7233 (ubsan_instrument_unreachable): Adjust ubsan_create_data call. 7234 (class pass_ubsan): New class. 7235 (pass_data_ubsan): New pass. 7236 * flag-types.h (enum sanitize_code): Add SANITIZE_NULL. 7237 * internal-fn.c (expand_UBSAN_NULL): New function. 7238 * cgraphunit.c (varpool_finalize_decl): Call varpool_assemble_decl 7239 even when !flag_toplevel_reorder. 7240 * internal-fn.def (UBSAN_NULL): New. 7241 72422013-11-19 Jan Hubicka <jh@suse.cz> 7243 7244 * cgraph.c (cgraph_create_indirect_edge): Use 7245 get_polymorphic_call_info. 7246 * cgraph.h (cgraph_indirect_call_info): Add outer_type, 7247 maybe_in_construction and maybe_derived_type. 7248 * ipa-utils.h (ipa_polymorphic_call_context): New structure. 7249 (ipa_dummy_polymorphic_call_context): New global var. 7250 (possible_polymorphic_call_targets): Add context paramter. 7251 (dump_possible_polymorphic_call_targets): Likewise; update wrappers. 7252 (possible_polymorphic_call_target_p): Likewise. 7253 (get_polymorphic_call_info): New function. 7254 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): New function. 7255 (add_type_duplicate): Remove forgotten debug output. 7256 (method_class_type): Add sanity check. 7257 (maybe_record_node): Add FINALP parameter. 7258 (record_binfo): Add OUTER_TYPE and OFFSET; walk the inner 7259 by info by get_binfo_at_offset. 7260 (possible_polymorphic_call_targets_1): Add OUTER_TYPE/OFFSET 7261 parameters; pass them to record-binfo. 7262 (polymorphic_call_target_d): Add context and FINAL. 7263 (polymorphic_call_target_hasher::hash): Hash context. 7264 (polymorphic_call_target_hasher::equal): Compare context. 7265 (free_polymorphic_call_targets_hash): 7266 (get_class_context): New function. 7267 (contains_type_p): New function. 7268 (get_polymorphic_call_info): New function. 7269 (walk_bases): New function. 7270 (possible_polymorphic_call_targets): Add context parameter; honnor it. 7271 (dump_possible_polymorphic_call_targets): Dump context. 7272 (possible_polymorphic_call_target_p): Add context. 7273 (update_type_inheritance_graph): Update comment.s 7274 (ipa_set_jf_known_type): Assert that compoentn type is known. 7275 (ipa_note_param_call): Do not tamper with offsets. 7276 (ipa_analyze_indirect_call_uses): When offset is being changed; clear 7277 outer type. 7278 (update_indirect_edges_after_inlining): Likewise. 7279 (ipa_write_indirect_edge_info): Stream new fields. 7280 (ipa_read_indirect_edge_info): Stream in new fields. 7281 72822013-11-19 Jan Hubicka <jh@suse.cz> 7283 7284 * tree-pretty-print.c (dump_generic_node): Print class type of 7285 OBJ_TYPE_REF. 7286 72872013-11-19 Joey Ye <joey.ye@arm.com> 7288 7289 * config/arm/arm.opt (-marm-pic-data-is-text-relative): New option. 7290 * doc/invoke.texi (-marm-pic-data-is-text-relative): Documentation 7291 for new option. 7292 * config/arm/arm.c (arm_option_override): By default disable 7293 -marm-pic-data-is-text-relative. 7294 (legitimize_pic_address): Use arm_pic_data_is_text_relative. 7295 (arm_assemble_integer): Likewise. 7296 * config/arm/arm.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE): 7297 New macro to initialize -marm-pic-data-is-text-relative. 7298 72992013-11-19 Bin Cheng <bin.cheng@arm.com> 7300 7301 * tree-ssa-loop-ivopts.c (enum ainc_type): New. 7302 (address_cost_data): New field. 7303 (get_address_cost): Compute auto-increment rtx cost in ainc_costs. 7304 Use ainc_costs for auto-increment rtx patterns. Cleanup TWS. 7305 73062013-11-19 James Greenhalgh <james.greenhalgh@arm.com> 7307 7308 * config/aarch64/aarch64.md: Remove v8type from all insns. 7309 73102013-11-19 Richard Biener <rguenther@suse.de> 7311 7312 PR tree-optimization/57517 7313 * tree-predcom.c (combinable_refs_p): Verify the combination 7314 is always executed when the refs are. 7315 73162013-11-19 Jeff Law <law@redhat.com> 7317 7318 * tree-ssa-threadupdate.c: Include ssa-iterators.h 7319 (copy_phi_arg_into_existing_phi): New function. 7320 (any_remaining_duplicated_blocks): Likewise. 7321 (ssa_fix_duplicate_block_edges): Handle multiple duplicated 7322 blocks on a jump threading path. 7323 7324 * tree-ssa-threadupdate.c (thread_through_loop_header): Do not 7325 thread through a joiner which has the latch edge. 7326 73272013-11-19 Jan Hubicka <jh@suse.cz> 7328 7329 * md.texi (setmem): Document new parameter. 7330 * optabs.c (maybe_gen_insn): Support 9 operands. 7331 * builtins.c (determine_block_size): Add probable_max_size; 7332 support anti-ranges. 7333 (expand_builtin_memcpy. expand_builtin_memset_args): Pass around 7334 probable_max_size. 7335 * expr.c (emit_block_move_via_movmem, emit_block_move_hints, 7336 emit_block_move, clear_storage_hints, set_storage_via_setmem): 7337 Likewise. 7338 * expr.h (emit_block_move_hints, clear_storage_hints, 7339 set_storage_via_setmem): Update prototype. 7340 * i386.md (setmem, movmem patterns): Add 9th operand. 7341 * i386-protos.h (ix86_expand_set_or_movmem): Update prototype. 7342 * i386.c (ix86_expand_set_or_movmem): Take probable_max_size_exp 7343 argument; pass it to decide_alg. 7344 73452013-11-19 David Malcolm <dmalcolm@redhat.com> 7346 7347 * basic-block.h (n_basic_blocks_for_function): Rename macro to... 7348 (n_basic_blocks_for_fn): ...this. 7349 7350 (n_basic_blocks): Eliminate macro as work towards making uses of 7351 cfun be explicit. 7352 7353 * cfgloop.c (init_loops_structure): Update for renaming of 7354 "n_basic_blocks_for_function" to "n_basic_blocks_for_fn". 7355 * graph.c (draw_cfg_nodes_no_loops): Likewise. 7356 * ipa-utils.c (ipa_merge_profiles): Likewise. 7357 * lto-streamer-in.c (make_new_block): Likewise. 7358 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise. 7359 (dump_function_to_file): Likewise. 7360 7361 * alias.c (init_alias_analysis): Replace usage of "n_basic_blocks" 7362 macro with "n_basic_blocks_for_fn (cfun)". 7363 * bb-reorder.c (partition_hot_cold_basic_blocks): Likewise. 7364 (duplicate_computed_gotos): Likewise. 7365 (reorder_basic_blocks): Likewise. 7366 * bt-load.c (augment_live_range): Likewise. 7367 * cfg.c (expunge_block): Likewise. 7368 (compact_blocks): Likewise. 7369 * cfganal.c (single_pred_before_succ_order): Likewise. 7370 (compute_idf): Likewise. 7371 (flow_dfs_compute_reverse_init): Likewise. 7372 (pre_and_rev_post_order_compute): Likewise. 7373 (pre_and_rev_post_order_compute_fn): Likewise. 7374 (inverted_post_order_compute): Likewise. 7375 (post_order_compute): Likewise. 7376 (print_edge_list): Likewise. 7377 (find_unreachable_blocks): Likewise. 7378 (mark_dfs_back_edges): Likewise. 7379 * cfgcleanup.c (try_optimize_cfg): Likewise. 7380 (try_forward_edges): Likewise. 7381 * cfghooks.c (dump_flow_info): Likewise. 7382 * cfgloop.c (verify_loop_structure): Likewise. 7383 (get_loop_body): Likewise. 7384 (flow_loops_find): Likewise. 7385 * cfgloopmanip.c (add_loop): Likewise. 7386 (remove_path): Likewise. 7387 (find_path): Likewise. 7388 * cfgrtl.c (rtl_flow_call_edges_add): Likewise. 7389 (rtl_verify_bb_layout): Likewise. 7390 (entry_of_function): Likewise. 7391 (rtl_create_basic_block): Likewise. 7392 * coverage.c (coverage_compute_cfg_checksum): Likewise. 7393 * cprop.c (one_cprop_pass): Likewise. 7394 (is_too_expensive): Likewise. 7395 * df-core.c (df_compute_cfg_image): Likewise. 7396 (df_compact_blocks): Likewise. 7397 (df_worklist_dataflow_doublequeue): Likewise. 7398 * dominance.c (calculate_dominance_info): Likewise. 7399 (calc_dfs_tree): Likewise. 7400 (calc_dfs_tree_nonrec): Likewise. 7401 (init_dom_info): Likewise. 7402 * domwalk.c (cmp_bb_postorder): Likewise. 7403 * function.c (thread_prologue_and_epilogue_insns): Likewise. 7404 (generate_setjmp_warnings): Likewise. 7405 * fwprop.c (build_single_def_use_links): Likewise. 7406 * gcse.c (is_too_expensive): Likewise. 7407 (one_code_hoisting_pass): Likewise. 7408 (one_pre_gcse_pass): Likewise. 7409 * graphite.c (graphite_initialize): Likewise. 7410 * haifa-sched.c (haifa_sched_init): Likewise. 7411 * ipa-inline-analysis.c (estimate_function_body_sizes): Likewise. 7412 * ira.c (split_live_ranges_for_shrink_wrap): Likewise. 7413 * ira-build.c (ira_build): Likewise. 7414 * lcm.c (compute_nearerout): Likewise. 7415 (compute_available): Likewise. 7416 (compute_laterin): Likewise. 7417 (compute_antinout_edge): Likewise. 7418 * lra-lives.c (lra_create_live_ranges): Likewise. 7419 * lra.c (has_nonexceptional_receiver): Likewise. 7420 * mcf.c (create_fixup_graph): Likewise. 7421 * profile.c (branch_prob): Likewise. 7422 * reg-stack.c (convert_regs_2): Likewise. 7423 * regrename.c (regrename_analyze): Likewise. 7424 * reload1.c (has_nonexceptional_receiver): Likewise. 7425 * reorg.c (dbr_schedule): Likewise. 7426 * sched-deps.c (sched_deps_init): Likewise. 7427 * sched-ebb.c (schedule_ebbs): Likewise. 7428 * sched-rgn.c (extend_regions): Likewise. 7429 (schedule_insns): Likewise. 7430 (sched_rgn_init): Likewise. 7431 (extend_rgns): Likewise. 7432 (haifa_find_rgns): Likewise. 7433 * sel-sched-ir.c (recompute_rev_top_order): Likewise. 7434 (sel_recompute_toporder): Likewise. 7435 * sel-sched.c (run_selective_scheduling): Likewise. 7436 * store-motion.c (one_store_motion_pass): Likewise. 7437 (remove_reachable_equiv_notes): Likewise. 7438 * tracer.c (tracer): Likewise. 7439 (tail_duplicate): Likewise. 7440 * tree-cfg.c (gimple_flow_call_edges_add): Likewise. 7441 (dump_cfg_stats): Likewise. 7442 (gimple_dump_cfg): Likewise. 7443 (create_bb): Likewise. 7444 (build_gimple_cfg): Likewise. 7445 * tree-cfgcleanup.c (merge_phi_nodes): Likewise. 7446 * tree-inline.c (optimize_inline_calls): Likewise. 7447 (fold_marked_statements): Likewise. 7448 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Likewise. 7449 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise. 7450 * tree-ssa-loop-im.c (analyze_memory_references): Likewise. 7451 * tree-ssa-loop-manip.c (compute_live_loop_exits): Likewise. 7452 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise. 7453 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise. 7454 * tree-ssa-pre.c (do_pre): Likewise. 7455 (init_pre): Likewise. 7456 (compute_avail): Likewise. 7457 * tree-ssa-reassoc.c (init_reassoc): Likewise. 7458 * tree-ssa-sccvn.c (init_scc_vn): Likewise. 7459 * tree-ssa-tail-merge.c (alloc_cluster_vectors): Likewise. 7460 (init_worklist): Likewise. 7461 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise. 7462 * var-tracking.c (variable_tracking_main_1): Likewise. 7463 (vt_find_locations): Likewise. 7464 (vt_stack_adjustments): Likewise. 7465 * config/s390/s390.c (s390_optimize_nonescaping_tx): Likewise. 7466 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise. 7467 74682013-11-18 Jan Hubicka <jh@suse.cz> 7469 7470 * profile.c (compute_branch_probabilities): Do not sanity check 7471 run_max. 7472 74732013-11-18 Kenneth Zadeck <zadeck@naturalbridge.com> 7474 7475 * tree.c (int_fits_type_p): Change GET_MODE_BITSIZE to 7476 GET_MODE_PRECISION. 7477 * fold-const.c (fold_single_bit_test_into_sign_test) 7478 (fold_binary_loc): Change GET_MODE_BITSIZE to GET_MODE_PRECISION. 7479 74802013-11-18 Teresa Johnson <tejohnson@google.com> 7481 7482 * cfgrtl.c (cfg_layout_initialize): Assert if we try to go into 7483 cfglayout after bb reordering. 7484 * passes.def: Move compgotos before bb reordering since it goes into 7485 cfglayout. 7486 74872013-11-18 Bernd Schmidt <bernds@codesourcery.com> 7488 7489 * cgraphunit.c (ipa_passes): Don't execute all_lto_gen_passes. 7490 * lto-streamer-out.c (lto_output, produce_asm_for_decls): No longer 7491 static. 7492 (pass_data_ipa_lto_gimple_out, pass_ipa_lto_gimple_out, 7493 make_pass_ipa_lto_gimple_out, pass_data_ipa_lto_finish_out, 7494 pass_ipa_lto_finish_out, make_pass_ipa_lto_finish_out): Remove. 7495 * lto-streamer.h (lto_output, produce_asm_for_decls): Declare. 7496 * pass-manager.h (GCC_PASS_LISTS, class pass_manager): 7497 Remove all_lto_gen_passes. 7498 * passes.c (pass_manager::dump_passes): Remove its use. 7499 (pass_manager::register_pass): Likewise. 7500 (ipa_read_summaries, ipa_read_optimization_summaries): Likewise. 7501 (pass_manager::pass_manager): Don't initialize or use it. 7502 (write_lto): New static function. 7503 (ipa_write_summaries_1, ipa_write_optimization_summaries): Use it 7504 instead of using all_lto_gen_passes. 7505 * passes.def (all_lto_gen_passes, pass_ipa_lto_gimple_out, 7506 pass_ipa_lto_finish_out): Delete. 7507 * tree-pass.h (make_pass_ipa_lto_gimple_out, 7508 make_pass_ipa_lto_finish_out): Don't declare. 7509 75102013-11-18 Jeff Law <law@redhat.com> 7511 7512 * tree-ssa-threadupdate.c (redirection_data): Record two 7513 duplicated blocks instead of just one. 7514 (local_info): Explain why we don't create a template for the 7515 second duplicated block in a thread path. 7516 (create_block_for_threading): Accept argument indicating array 7517 index into redirection_data to store its result. 7518 (lookup_redirection_data): Initialize both duplicate blocks. 7519 (ssa_create_duplicates): If a jump threading path needs multiple 7520 blocks duplicated, then duplicate them. 7521 (ssa_fix_duplicate_block_edges): Corresponding changes. 7522 (ssa_fixup_template_block, thread_single_edge): Likewise. 7523 75242013-11-18 Marek Polacek <polacek@redhat.com> 7525 7526 * doc/invoke.texi: Extend -fsanitize=undefined documentation. 7527 75282013-11-18 Andrew Pinski <apinski@cavium.com> 7529 Steve Ellcey <sellcey@mips.com> 7530 7531 PR target/56552 7532 * config/mips/mips.md (*mov<GPR:mode>_on_<MOVECC:mode>): Remove 7533 type restriction from equality_operator on conditonal move. 7534 (*mov<SCALARF:mode>_on_<MOVECC:mode>): Ditto. 7535 (*mov<GPR:mode>_on_<GPR2:mode>_ne): New. 7536 75372013-11-18 Jeff Law <law@redhat.com> 7538 7539 * tree-ssa-threadupdate.c: Fix file block comment. 7540 Fix minor indention issue. 7541 75422013-11-18 Uros Bizjak <ubizjak@gmail.com> 7543 7544 * config/i386/i386.c (ix86_decompose_address): Use REG_P instead of 7545 ix86_address_subreg_operand. Move subreg checks to 7546 ix86_validate_address_register. Move address override check to 7547 ix86_legitimate_address_p. 7548 (ix86_validate_address_register): New function. 7549 (ix86_legitimate_address_p): Call ix86_validate_address_register 7550 to validate base and index registers. Add address override check 7551 from ix86_decompose_address. 7552 (ix86_decompose_address): Remove. 7553 75542013-11-18 Richard Biener <rguenther@suse.de> 7555 7556 PR tree-optimization/59125 7557 PR tree-optimization/54570 7558 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): When inlining 7559 is not complete do not treat component-references with offset zero 7560 but different fields as equal. 7561 * tree-object-size.c: Include tree-phinodes.h and ssa-iterators.h. 7562 (compute_object_sizes): Apply TLC. Propagate the constant 7563 results into all uses and fold their stmts. 7564 * passes.def (pass_all_optimizations): Move pass_object_sizes 7565 after the first pass_forwprop and before pass_fre. 7566 75672013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 7568 7569 * tree.h (tree_to_uhwi): Return an unsigned HOST_WIDE_INT. 7570 * tree.c (tree_to_uhwi): Return an unsigned HOST_WIDE_INT. 7571 (tree_ctz): Remove cast to unsigned type. 7572 * builtins.c (fold_builtin_memory_op): Likewise. 7573 * dwarf2out.c (descr_info_loc): Likewise. 7574 * godump.c (go_output_typedef): Likewise. 7575 * omp-low.c (expand_omp_simd): Likewise. 7576 * stor-layout.c (excess_unit_span): Likewise. 7577 * tree-object-size.c (addr_object_size): Likewise. 7578 * tree-sra.c (analyze_all_variable_accesses): Likewise. 7579 * tree-ssa-forwprop.c (simplify_builtin_call): Likewise. 7580 (simplify_rotate): Likewise. 7581 * tree-ssa-strlen.c (adjust_last_stmt, handle_builtin_memcpy) 7582 (handle_pointer_plus): Likewise. 7583 * tree-switch-conversion.c (check_range): Likewise. 7584 * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise. 7585 * tsan.c (instrument_builtin_call): Likewise. 7586 * cfgexpand.c (defer_stack_allocation): Add cast to HOST_WIDE_INT. 7587 * trans-mem.c (tm_log_add): Likewise. 7588 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise. 7589 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise. 7590 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise. 7591 * config/mips/mips.c (r10k_safe_mem_expr_p): Make offset unsigned. 7592 75932013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 7594 7595 * tree.h (host_integerp, tree_low_cst): Delete. 7596 * tree.c (host_integerp, tree_low_cst): Delete. 7597 75982013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 7599 7600 * expr.h: Update comments to refer to tree_to_[su]hwi rather 7601 than tree_low_cst. 7602 * fold-const.c (fold_binary_loc): Likewise. 7603 * expr.c (store_constructor): Use tree_to_uhwi rather than 7604 tree_low_cst. 7605 * ipa-utils.h (possible_polymorphic_call_target_p): Likewise. 7606 * stmt.c (emit_case_dispatch_table): Likewise. 7607 * tree-switch-conversion.c (emit_case_bit_tests): Likewise. 7608 76092013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 7610 7611 * alias.c, asan.c, builtins.c, cfgexpand.c, cgraph.c, 7612 config/aarch64/aarch64.c, config/alpha/predicates.md, 7613 config/arm/arm.c, config/darwin.c, config/epiphany/epiphany.c, 7614 config/i386/i386.c, config/iq2000/iq2000.c, config/m32c/m32c-pragma.c, 7615 config/mep/mep-pragma.c, config/mips/mips.c, 7616 config/picochip/picochip.c, config/rs6000/rs6000.c, cppbuiltin.c, 7617 dbxout.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, fold-const.c, 7618 function.c, gimple-fold.c, godump.c, ipa-cp.c, ipa-prop.c, omp-low.c, 7619 predict.c, sdbout.c, stor-layout.c, trans-mem.c, tree-object-size.c, 7620 tree-sra.c, tree-ssa-ccp.c, tree-ssa-forwprop.c, 7621 tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-niter.c, 7622 tree-ssa-loop-prefetch.c, tree-ssa-strlen.c, tree-stdarg.c, 7623 tree-switch-conversion.c, tree-vect-generic.c, tree-vect-loop.c, 7624 tree-vect-patterns.c, tree-vrp.c, tree.c, tsan.c, ubsan.c, varasm.c: 7625 Replace tree_low_cst (..., 1) with tree_to_uhwi throughout. 7626 76272013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 7628 7629 * builtins.c, cilk-common.c, config/aarch64/aarch64.c, 7630 config/alpha/alpha.c, config/arm/arm.c, config/c6x/predicates.md, 7631 config/i386/i386.c, config/ia64/predicates.md, config/s390/s390.c, 7632 coverage.c, dbxout.c, dwarf2out.c, except.c, explow.c, expr.c, expr.h, 7633 fold-const.c, gimple-fold.c, godump.c, ipa-prop.c, omp-low.c, 7634 predict.c, rtlanal.c, sdbout.c, stmt.c, stor-layout.c, targhooks.c, 7635 tree-cfg.c, tree-data-ref.c, tree-inline.c, tree-ssa-forwprop.c, 7636 tree-ssa-loop-prefetch.c, tree-ssa-phiopt.c, tree-ssa-sccvn.c, 7637 tree-ssa-strlen.c, tree-stdarg.c, tree-vect-data-refs.c, 7638 tree-vect-patterns.c, tree.c, tree.h, var-tracking.c, varasm.c: 7639 Replace tree_low_cst (..., 0) with tree_to_shwi throughout. 7640 76412013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 7642 7643 * tree.h (tree_to_shwi, tree_to_uhwi): Declare, with inline expansions. 7644 * tree.c (tree_to_shwi, tree_to_uhwi): New functions. 7645 76462013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 7647 7648 * expr.h: Update comments to refer to tree_fits_[su]hwi_p rather 7649 than host_integerp. 7650 76512013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 7652 7653 * builtins.c, config/alpha/alpha.c, config/iq2000/iq2000.c, 7654 config/mips/mips.c, dbxout.c, dwarf2out.c, expr.c, fold-const.c, 7655 gimple-fold.c, godump.c, omp-low.c, predict.c, sdbout.c, stor-layout.c, 7656 tree-dfa.c, tree-sra.c, tree-ssa-forwprop.c, tree-ssa-loop-prefetch.c, 7657 tree-ssa-phiopt.c, tree-ssa-sccvn.c, tree-ssa-strlen.c, 7658 tree-ssa-structalias.c, tree-vect-data-refs.c, tree-vect-patterns.c, 7659 tree.c, varasm.c, alias.c, cfgexpand.c, config/aarch64/aarch64.c, 7660 config/arm/arm.c, config/epiphany/epiphany.c, config/i386/i386.c, 7661 config/m32c/m32c-pragma.c, config/mep/mep-pragma.c, 7662 config/rs6000/rs6000.c, config/sparc/sparc.c, emit-rtl.c, function.c, 7663 gimplify.c, ipa-prop.c, stmt.c, trans-mem.c, tree-cfg.c, 7664 tree-object-size.c, tree-ssa-ccp.c, tree-ssa-loop-ivcanon.c, 7665 tree-stdarg.c, tree-switch-conversion.c, tree-vect-generic.c, 7666 tree-vrp.c, tsan.c, ubsan.c: Replace host_integerp (..., 1) with 7667 tree_fits_uhwi_p throughout. 7668 76692013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 7670 7671 * builtins.c, config/alpha/alpha.c, config/c6x/predicates.md, 7672 config/ia64/predicates.md, config/iq2000/iq2000.c, config/mips/mips.c, 7673 config/s390/s390.c, dbxout.c, dwarf2out.c, except.c, explow.c, expr.c, 7674 expr.h, fold-const.c, gimple-fold.c, gimple-ssa-strength-reduction.c, 7675 gimple.c, godump.c, graphite-scop-detection.c, graphite-sese-to-poly.c, 7676 omp-low.c, predict.c, rtlanal.c, sdbout.c, simplify-rtx.c, 7677 stor-layout.c, tree-data-ref.c, tree-dfa.c, tree-pretty-print.c, 7678 tree-sra.c, tree-ssa-alias.c, tree-ssa-forwprop.c, 7679 tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, 7680 tree-ssa-phiopt.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c, 7681 tree-ssa-strlen.c, tree-ssa-structalias.c, tree-vect-data-refs.c, 7682 tree-vect-patterns.c, tree-vectorizer.h, tree.c, var-tracking.c, 7683 varasm.c: Replace host_integerp (..., 0) with tree_fits_shwi_p 7684 throughout. 7685 76862013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 7687 7688 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Declare. 7689 * tree.c (tree_fits_shwi_p, tree_fits_uhwi_p): Define. 7690 76912013-11-18 Kirill Yukhin <kirill.yukhin@intel.com> 7692 7693 * config/ia64/ia64.c (ia64_split_tmode_move): Mark load with `dead' 7694 flag if it kills its address, not its post-increment. 7695 76962013-11-18 Ilya Enkovich <ilya.enkovich@intel.com> 7697 7698 * builtin-types.def (BT_FN_PTR_CONST_PTR_VAR): New. 7699 * chkp-builtins.def (BUILT_IN_CHKP_BIND_BOUNDS): New. 7700 * cfgexpand.c (expand_call_stmt): Expand BUILT_IN_CHKP_BIND_BOUNDS. 7701 * gimple.c (gimple_call_get_nobnd_arg_index): Remove. 7702 * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS. 7703 (gimple_call_with_bounds_p): New. 7704 (gimple_call_set_with_bounds): New. 7705 (gimple_call_num_nobnd_args): Remove. 7706 (gimple_call_nobnd_arg): Remove. 7707 * tree.h (CALL_WITH_BOUNDS_P): New. 7708 * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New. 7709 77102013-11-18 Trevor Saunders <tsaunders@mozilla.com> 7711 7712 * cgraph.h (symtab_node_asm_name): Rename to symtab_node::asm_name. 7713 (symtab_node_name): Rename to symtab_node::name. 7714 (cgraph_node_asm_name): Remove. 7715 (varpool_node_asm_name): Remove. 7716 * cgraph.c cgraphclones.c cgraphunit.c ipa-cp.c ipa-devirt.c 7717 ipa-inline-analysis.c ipa-inline-transform.c ipa-inline.c 7718 ipa-profile.c ipa-prop.c ipa-pure-const.c ipa-ref.c ipa-reference.c 7719 ipa-utils.c ipa.c symtab.c tree-inline.c tree-sra.c 7720 tree-ssa-structalias.c value-prof.c varpool.c Adjust. 7721 77222013-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 7723 7724 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): New table. 7725 * config/arm/arm.c (arm_cortex_a53_tune): New. 7726 * config/arm/arm-cores.def (cortex-a53): Use cortex_a53 tuning struct. 7727 77282013-11-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> 7729 7730 * config.gcc (i[34567]86-*-linux* | ...): Add bdver4. 7731 (case ${target}): Add bdver4. 7732 * config/i386/bdver3.md: Add bdver4. 7733 * config/i386/driver-i386.c: (host_detect_local_cpu): Let 7734 -march=native recognize bdver4 processors. 7735 * config/i386/i386-c.c (ix86_target_macros_internal): Add 7736 bdver4 def_and_undef 7737 * config/i386/i386.c (struct processor_costs bdver4_cost): New. 7738 (m_BDVER4): New definition. 7739 (m_AMD_MULTIPLE): Includes m_BDVER4. 7740 (processor_target_table): Add bdver4 entry. 7741 (static const char *const cpu_names): Add bdver4 entry. 7742 (software_prefetching_beneficial_p): Add bdver3. 7743 (ix86_option_override_internal): Add bdver4 instruction sets. 7744 (ix86_issue_rate): Add bdver4. 7745 (ix86_adjust_cost): Add bdver4. 7746 (ia32_multipass_dfa_lookahead): Add bdver4. 7747 (enum processor_model): Add M_AMDFAM15H_BDVER4. 7748 (struct _arch_names_table): Add M_AMDFAM15H_BDVER4. 7749 (has_dispatch): Add bdver4. 7750 * config/i386/i386.h (TARGET_BDVER4): New definition. 7751 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver4. 7752 (enum processor_type): Add PROCESSOR_BDVER4. 7753 * config/i386/i386.md (define_attr "cpu"): Add bdver4. 7754 * config/i386/i386.opt (flag_dispatch_scheduler): Add bdver4. 7755 * doc/extend.texi: Add details about bdver4. 7756 * doc/invoke.texi: Add details about bdver4. Add 7757 fma4 and fsgsbase for bdver3. Add fma4 for bdver2. 7758 77592013-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 7760 7761 * config/rs6000/rs6000.c (rs6000_emit_move): Use low word of 7762 sdmode_stack_slot also in little-endian mode. 7763 77642013-11-17 Jan Hubicka <jh@suse.cz> 7765 7766 * doc/md.texi (setmem, movstr): Update documentation. 7767 * builtins.c (determine_block_size): New function. 7768 (expand_builtin_memcpy): Use it and pass it to emit_block_move_hints. 7769 (expand_builtin_memset_args): Use it and pass it to 7770 set_storage_via_setmem. 7771 * expr.c (emit_block_move_via_movmem): Add min_size/max_size 7772 parameters; update call to expander. 7773 (emit_block_move_hints): Add min_size/max_size parameters. 7774 (clear_storage_hints): Likewise. 7775 (set_storage_via_setmem): Likewise. 7776 (clear_storage): Update. 7777 * expr.h (emit_block_move_hints, clear_storage_hints, 7778 set_storage_via_setmem): Update prototypes. 7779 * i386.c (ix86_expand_set_or_movmem): Add bounds; export. 7780 (ix86_expand_movmem, ix86_expand_setmem): Remove. 7781 (ix86_expand_movmem, ix86_expand_setmem): Remove. 7782 * i386.md (movmem, setmem): Pass parameters. 7783 77842013-11-17 Uros Bizjak <ubizjak@gmail.com> 7785 7786 PR target/59153 7787 * config/i386/i386.c (ix86_address_subreg_operand): Do not 7788 reject non-integer subregs. 7789 (ix86_decompose_address): Do not reject invalid CONST_INT RTXes. 7790 Move check for invalid x32 constant addresses ... 7791 (ix86_legitimate_address_p): ... here. 7792 77932011-11-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 7794 7795 * config/rs6000/rs6000.c (rs6000_frame_related): Add split_reg 7796 parameter and use it in REG_FRAME_RELATED_EXPR note. 7797 (emit_frame_save): Call rs6000_frame_related with extra NULL_RTX 7798 parameter. 7799 (rs6000_emit_prologue): Likewise, but for little endian VSX 7800 stores, pass the source register of the store instead. 7801 78022013-11-17 Andrew MacLeod <amacleod@redhat.com> 7803 7804 * gimple.h: Reorder prototypes to match .c declaration order, and 7805 remove protyotypes for functions not in gimple.c. 7806 (LABEL): Move to tree-into-ssa.c. 7807 * gimple.c: Remove unused prototypes. 7808 (get_base_address): Move to tree.c. 7809 * tree.c (get_base_address): Relocate from gimple.c. 7810 * builtins.h (validate_gimple_arglist): Add prototype. 7811 * trans-mem.h (compute_transaction_bits, is_tm_ending): Add prototype. 7812 * cfgexpand.h: New File. 7813 (gimple_assign_rhs_to_tree, estimated_stack_frame_size): Add protoype. 7814 * tree.h (build_addr): Move to tree-nested.h. 7815 * tree-nested.h: New File. 7816 (build_addr, lower_nested_functions, insert_field_into_struct): Add 7817 prototypes. 7818 * tree-inline.h (estimated_stack_frame_size): Remove prototype. 7819 * ipa-inline-analysis.c: Include cfgexpand.h. 7820 * cgraphunit.c: Include tree-nested.h. 7821 * omp-low.c: Likewise. 7822 * tree-parloops.c: Likewise. 7823 * gimple-low.h: Likewise. 7824 * tree-profile.h: Likewise. 7825 * expr.c: Include cfgexpand.h. 7826 * tree-affine.c: Likewise. 7827 * tree-ssa.c: Likewise. 7828 * tree-ssa-loop-im.c: Include trans-mem.h. 7829 * tree-ssa-tail-merge.c: Likewise. 7830 * value-prof.c: Include builtins.h and tree-nested.h. 7831 * tree-into-ssa.c (LABEL): Define here. 7832 78332013-11-16 Joern Rennecke <joern.rennecke@embecosm.com> 7834 7835 * config/arc/arc.c (arc_predicate_delay_insns): New function. 7836 (pass_data_arc_predicate_delay_insns): New pass_data instance. 7837 (pass_arc_predicate_delay_insns): New subclass of rtl_opt_class. 7838 (make_pass_arc_predicate_delay_insns): New function. 7839 (arc_init): Register pass_arc_predicate_delay_insns if 7840 flag_delayed_branch is active. 7841 78422013-11-16 Joern Rennecke <joern.rennecke@embecosm.com> 7843 7844 * config/arc/constraints.md (Rcq): Simplify register number test. 7845 78462013-11-15 Aldy Hernandez <aldyh@redhat.com> 7847 7848 * gimple.h (enum gf_mask): Change the ordering of GF_OMP_* bits. 7849 78502013-11-15 Kaz Kojima <kkojima@gcc.gnu.org> 7851 7852 * config/sh/sh.c (barrier_align): Return 0 when barrier_or_label 7853 is null. 7854 78552013-11-15 Aldy Hernandez <aldyh@redhat.com> 7856 7857 * Makefile.in (C_COMMON_OBJS): Depend on c-cilkplus.o. 7858 * gimple-pretty-print.c (dump_omp_for): Add case for 7859 GF_OMP_FOR_KIND_CILKSIMD. 7860 * gimple.h (enum gf_mask): Restructure entries to add 7861 GF_OMP_FOR_KIND_CILKSIMD. 7862 * gimplify.c (is_gimple_stmt): Add case for CILK_SIMD. 7863 (gimplify_omp_for): Handle CILK_SIMD. 7864 (gimplify_expr): Add ccase for CILK_SIMD. 7865 * omp-low.c (extract_omp_for_data): Handle CILK_SIMD. 7866 (build_outer_var_ref): Same. 7867 (check_omp_nesting_restrictions): Same. 7868 (lower_rec_input_clauses): Same. 7869 (lower_lastprivate_clauses): Same. 7870 (expand_omp_for): Same. 7871 (execute_expand_omp): Check flag_enable_cilkplus. 7872 (execute_lower_omp): Same. 7873 (diagnose_sb_0): Handle CILK_SIMD. 7874 (diagnose_omp_structured_block_errors): Check flag_enable_cilkplus. 7875 (setjmp_or_longjmp_p): New. 7876 (scan_omp_1_stmt): Error on setjmp/longjmp in a simd construct. 7877 * tree-pretty-print.c (dump_generic_node): Add case for CILK_SIMD. 7878 * tree.def: Add tree code for CILK_SIMD. 7879 78802013-11-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 7881 7882 * config/rs6000/altivec.md (UNSPEC_VPERM_X, UNSPEC_VPERM_UNS_X): 7883 Remove. 7884 (altivec_vperm_<mode>): Revert earlier little endian change. 7885 (*altivec_vperm_<mode>_internal): Remove. 7886 (altivec_vperm_<mode>_uns): Revert earlier little endian change. 7887 (*altivec_vperm_<mode>_uns_internal): Remove. 7888 * config/rs6000/vector.md (vec_realign_load_<mode>): Revise commentary. 7889 78902013-11-15 Jeff Law <law@redhat.com> 7891 7892 * basic-block.h (has_abnormal_or_eh_outgoing_edge): Renamed from 7893 has_abnormal_or_outgoing_edge. Check for EH edges as well. 7894 * gimple-ssa-isolate-paths.c 7895 (find_implicit_erroneous_behaviour): Corresponding changes. 7896 Do not check stmt_ends_bb_p or GIMPLE_RETURN anymore. 7897 (find_explicit_erroneous_behaviour): Likewise. 7898 78992013-11-15 Jeff Law <law@redhat.com> 7900 7901 * ifcvt.c (find_cond_trap): Properly handle case where 7902 trap_bb == else_bb. 7903 79042013-11-15 Andreas Schwab <schwab@linux-m68k.org> 7905 7906 * configure: Regenerate. 7907 79082013-11-15 James Greenhalgh <james.greenhalgh@arm.com> 7909 7910 * config/aarch64/aarch64-simd.md: Remove simd_type from all patterns. 7911 * config/aarch64/aarch64.md: Likewise, correct "type" attribute 7912 where it is incorrect or missing. 7913 79142013-11-15 Richard Sandiford <rdsandiford@googlemail.com> 7915 7916 * dwarf2out.c (gen_enumeration_type_die): Remove unnecessary 7917 host_integerp test. 7918 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise. 7919 Use TREE_INT_CST_LOW rather than tree_low_cst when reading the 7920 constant. 7921 * fold-const.c (fold_binary_loc): Replace a host_integerp/tree_low_cst 7922 pair with a TREE_CODE test and TREE_INT_CST_LOW. 7923 * tree-vect-generic.c (expand_vector_divmod): Likewise. 7924 79252013-11-15 Richard Biener <rguenther@suse.de> 7926 7927 PR tree-optimization/50262 7928 * tree-ssa-alias.h (struct pt_solution): Split 7929 vars_contains_global into vars_contains_nonlocal, 7930 vars_contains_escaped and vars_contains_escaped_heap. 7931 * tree-ssa-structalias.c (label_visit): Expand comment. 7932 (handle_lhs_call): Adjust comment. 7933 (set_uids_in_ptset): Set the new flags appropriately. 7934 (pt_solution_set): Adjust. 7935 (pt_solution_set_var): Likewise. 7936 (pt_solution_ior_into): Likewise. 7937 (pt_solution_includes_global): Likewise. 7938 (pt_solutions_intersect_1): Optimize escaped handling. 7939 (compute_points_to_sets): Remove heap variable globalization. 7940 (ipa_escaped_pt): Adjust initializer. 7941 (pass_data_ipa_pta): Do not run TODO_update_ssa. 7942 * gimple-pretty-print.c (pp_points_to_solution): Print split flags. 7943 * tree-ssa-alias.c (dump_points_to_solution): Likewise. 7944 79452013-11-15 Richard Biener <rguenther@suse.de> 7946 7947 * tree-loop-distribution.c (tree_loop_distribution): Make sure 7948 to distribute all stores. 7949 79502013-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 7951 7952 * doc/invoke.texi (-mabi=elfv1, -mabi=elfv2): Document. 7953 79542013-11-15 Joseph Myers <joseph@codesourcery.com> 7955 7956 * acinclude.m4 (GCC_GLIBC_VERSION_GTE_IFELSE): New configure macro. 7957 * configure.ac: Determine target_header_dir earlier. 7958 (--with-glibc-version): New configure option. 7959 Use GCC_GLIBC_VERSION_GTE_IFELSE in enable_gnu_unique_object, 7960 gcc_cv_libc_provides_ssp and gcc_cv_target_ldbl128 tests. 7961 * configure: Regenerate. 7962 * doc/install.texi (--enable-gnu-unique-object): Don't refer to 7963 native toolchains for default. 7964 (--with-glibc-version): Document. 7965 79662013-11-15 Eric Botcazou <ebotcazou@adacore.com> 7967 7968 * fold-const.c (fold_binary_loc) <comparisons>: Reuse local variable. 7969 79702013-11-15 Uros Bizjak <ubizjak@gmail.com> 7971 7972 * lto-streamer-in.c (input function): Call cgraph_create_node if 7973 cgraph_get_node failed. 7974 79752013-11-14 Olivier Hainque <hainque@adacore.com> 7976 7977 * cfgexpand.c (defer_stack_allocation): When optimization is enabled, 7978 defer allocation of DECL_IGNORED_P variables at toplevel unless really 7979 small. Factorize size threshold computation from the existing one. 7980 (expand_used_vars): Refine comment. 7981 79822013-11-14 Cong Hou <congh@google.com> 7983 7984 * tree-vectorizer.h (struct dr_with_seg_len): Remove the base 7985 address field as it can be obtained from dr. Rename the struct. 7986 * tree-vect-data-refs.c (comp_dr_with_seg_len_pair): Consider 7987 steps of data references during sort. 7988 (vect_prune_runtime_alias_test_list): Adjust with the change to 7989 struct dr_with_seg_len. 7990 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): 7991 Adjust with the change to struct dr_with_seg_len. 7992 79932013-11-14 Jeff Law <law@redhat.com> 7994 7995 PR middle-end/59127 7996 * basic-block.h (has_abnormal_outgoing_edge_p): Moved here from... 7997 * tree-inline.c (has_abnormal_outgoing_edge_p): Remove. 7998 * gimple-ssa-isolate-paths.c: Include tree-cfg.h. 7999 (find_implicit_erroneous_behaviour): If a block has abnormal outgoing 8000 edges, then ignore it. If the statement exhibiting erroneous 8001 behaviour ends basic blocks, with the exception of GIMPLE_RETURNs, 8002 then we can not optimize. 8003 (find_explicit_erroneous_behaviour): Likewise. 8004 80052013-11-14 Andrew MacLeod <amacleod@redhat.com> 8006 8007 * gimplify-me.h: New file. Add prototypes. 8008 * gimplify.h: Don't include gimple.h. 8009 (struct gimplify_hasher, struct gimplify_ctx, is_gimple_sizepos): 8010 Relocate from gimple.h. 8011 * gimple.h (struct gimplify_hasher, struct gimplify_ctx, 8012 is_gimple_sizepos): Move to gimplify.h. 8013 (gimplify_hasher::hash, gimplify_hasher::equal): Move to gimplify.c. 8014 (enum gsi_iterator_update): Move to gimple-iterator.h. 8015 * gimple-iterator.h (enum gsi_iterator_update): Relocate from gimple.h. 8016 * gimplify-me.c: New File. 8017 (force_gimple_operand_1, force_gimple_operand, 8018 force_gimple_operand_gsi_1, force_gimple_operand_gsi, 8019 gimple_regimplify_operands): Relocate from gimplify.c. 8020 * gimplify.c (force_gimple_operand_1, force_gimple_operand, 8021 force_gimple_operand_gsi_1, force_gimple_operand_gsi, 8022 gimple_regimplify_operands): Move to gimplify-me.c. 8023 (gimplify_hasher::hash, gimplify_hasher::equal): Relocate 8024 from gimple.h. 8025 * Makefile.in (OBJS): Add gimplify-me.o 8026 * asan.c: Include only gimplify.h, gimplify-me.h, and/or gimple.h as 8027 required. 8028 * cfgloopmanip.c: Likewise. 8029 * cgraphunit.c: Likewise. 8030 * cilk-common.c: Likewise. 8031 * fold-const.c: Likewise. 8032 * function.c: Likewise. 8033 * gimple-expr.c: Likewise. 8034 * gimple-fold.c: Likewise. 8035 * gimple-ssa-strength-reduction.c: Likewise. 8036 * gimple.c: Likewise. 8037 * graphite-clast-to-gimple.c: Likewise. 8038 * graphite-sese-to-poly.c: Likewise. 8039 * ipa-prop.c: Likewise. 8040 * ipa-split.c: Likewise. 8041 * ipa.c: Likewise. 8042 * langhooks.c: Likewise. 8043 * omp-low.c: Likewise. 8044 * sese.c: Likewise. 8045 * stor-layout.c: Likewise. 8046 * targhooks.c: Likewise. 8047 * trans-mem.c: Likewise. 8048 * tree-affine.c: Likewise. 8049 * tree-cfg.c: Likewise. 8050 * tree-cfgcleanup.c: Likewise. 8051 * tree-complex.c: Likewise. 8052 * tree-if-conv.c: Likewise. 8053 * tree-inline.c: Likewise. 8054 * tree-loop-distribution.c: Likewise. 8055 * tree-nested.c: Likewise. 8056 * tree-parloops.c: Likewise. 8057 * tree-predcom.c: Likewise. 8058 * tree-profile.c: Likewise. 8059 * tree-scalar-evolution.c: Likewise. 8060 * tree-sra.c: Likewise. 8061 * tree-ssa-address.c: Likewise. 8062 * tree-ssa-ccp.c: Likewise. 8063 * tree-ssa-dce.c: Likewise. 8064 * tree-ssa-forwprop.c: Likewise. 8065 * tree-ssa-ifcombine.c: Likewise. 8066 * tree-ssa-loop-im.c: Likewise. 8067 * tree-ssa-loop-ivopts.c: Likewise. 8068 * tree-ssa-loop-manip.c: Likewise. 8069 * tree-ssa-loop-niter.c: Likewise. 8070 * tree-ssa-loop-prefetch.c: Likewise. 8071 * tree-ssa-loop-unswitch.c: Likewise. 8072 * tree-ssa-math-opts.c: Likewise. 8073 * tree-ssa-phiopt.c: Likewise. 8074 * tree-ssa-phiprop.c: Likewise. 8075 * tree-ssa-pre.c: Likewise. 8076 * tree-ssa-propagate.c: Likewise. 8077 * tree-ssa-reassoc.c: Likewise. 8078 * tree-ssa-sccvn.c: Likewise. 8079 * tree-ssa-strlen.c: Likewise. 8080 * tree-ssa.c: Likewise. 8081 * tree-switch-conversion.c: Likewise. 8082 * tree-tailcall.c: Likewise. 8083 * tree-vect-data-refs.c: Likewise. 8084 * tree-vect-generic.c: Likewise. 8085 * tree-vect-loop-manip.c: Likewise. 8086 * tree-vect-loop.c: Likewise. 8087 * tree-vect-patterns.c: Likewise. 8088 * tree-vect-stmts.c: Likewise. 8089 * tree.c: Likewise. 8090 * tsan.c: Likewise. 8091 * value-prof.c: Likewise. 8092 * config/aarch64/aarch64.c: Likewise. 8093 * config/alpha/alpha.c: Likewise. 8094 * config/darwin.c: Likewise. 8095 * config/i386/i386.c: Likewise. 8096 * config/ia64/ia64.c: Likewise. 8097 * config/mep/mep.c: Likewise. 8098 * config/mips/mips.c: Likewise. 8099 * config/rs6000/rs6000.c: Likewise. 8100 * config/s390/s390.c: Likewise. 8101 * config/sh/sh.c: Likewise. 8102 * config/sparc/sparc.c: Likewise. 8103 * config/spu/spu.c: Likewise. 8104 * config/stormy16/stormy16.c: Likewise. 8105 * config/tilegx/tilegx.c: Likewise. 8106 * config/tilepro/tilepro.c: Likewise. 8107 * config/xtensa/xtensa.c: Likewise. 8108 81092013-11-14 Diego Novillo <dnovillo@google.com> 8110 8111 * Makefile.in (PLUGIN_HEADERS): Add stringpool.h. 8112 81132013-11-14 Diego Novillo <dnovillo@google.com> 8114 8115 * tree.h: Include fold-const.h. 8116 (aggregate_value_p): Moved to function.h. 8117 (alloca_call_p): Moved to calls.h. 8118 (allocate_struct_function): Moved to function.h. 8119 (apply_tm_attr): Moved to attribs.h. 8120 (array_at_struct_end_p): Moved to expr.h. 8121 (array_ref_element_size): Moved to tree-dfa.h. 8122 (array_ref_low_bound): Moved to tree-dfa.h. 8123 (array_ref_up_bound): Moved to tree.h. 8124 (assemble_alias): Moved to cgraph.h. 8125 (bit_from_pos): Moved to stor-layout.h. 8126 (build_addr): Moved to tree-nested.h. 8127 (build_duplicate_type): Moved to tree-inline.h. 8128 (build_fold_addr_expr): Moved to fold-const.h. 8129 (build_fold_addr_expr_with_type): Moved to fold-const.h. 8130 (build_fold_addr_expr_with_type_loc): Moved to fold-const.h. 8131 (build_fold_indirect_ref): Moved to fold-const.h. 8132 (build_fold_indirect_ref_loc): Moved to fold-const.h. 8133 (build_personality_function): Moved to tree.h. 8134 (build_range_check): Moved to fold-const.h. 8135 (build_simple_mem_ref): Moved to fold-const.h. 8136 (build_simple_mem_ref_loc): Moved to fold-const.h. 8137 (build_tm_abort_call): Moved to trans-mem.h. 8138 (byte_from_pos): Moved to stor-layout.h. 8139 (call_expr_flags): Moved to calls.h. 8140 (can_move_by_pieces): Moved to expr.h. 8141 (categorize_ctor_elements): Moved to expr.h. 8142 (change_decl_assembler_name): Moved to gcc-symtab.h. 8143 (combine_comparisons): Moved to fold-const.h. 8144 (complete_ctor_at_level_p): Moved to tree.h. 8145 (component_ref_field_offset): Moved to tree-dfa.h. 8146 (compute_builtin_object_size): Moved to tree-object-size.h. 8147 (compute_record_mode): Moved to stor-layout.h. 8148 (constant_boolean_node): Moved to fold-const.h. 8149 (constructor_static_from_elts_p): Moved to varasm.h. 8150 (cxx11_attribute_p): Moved to attribs.h. 8151 (debug_body): Moved to print-tree.h. 8152 (debug_find_tree): Moved to tree-inline.h. 8153 (debug_fold_checksum): Moved to fold-const.h. 8154 (debug_head): Moved to print-tree.h. 8155 (debug_head): Moved to print-tree.h. 8156 (debug_raw): Moved to print-tree.h. 8157 (debug_tree): Moved to print-tree.h. 8158 (debug_vec_tree): Moved to print-tree.h. 8159 (debug_verbose): Moved to print-tree.h. 8160 (debug_verbose): Moved to print-tree.h. 8161 (decl_attributes): Moved to attribs.h. 8162 (decl_binds_to_current_def_p): Moved to varasm.h. 8163 (decl_default_tls_model): Moved to varasm.h. 8164 (decl_replaceable_p): Moved to varasm.h. 8165 (div_if_zero_remainder): Moved to fold-const.h. 8166 (double_int mem_ref_offset): Moved to fold-const.h. 8167 (dump_addr): Moved to print-tree.h. 8168 (element_precision): Moved to machmode.h. 8169 (expand_dummy_function_end): Moved to function.h. 8170 (expand_function_end): Moved to function.h. 8171 (expand_function_start): Moved to function.h. 8172 (expand_label): Moved to stmt.h. 8173 (expr_first): Moved to tree-iterator.h. 8174 (expr_last): Moved to tree-iterator.h. 8175 (finalize_size_functions): Moved to stor-layout.h. 8176 (finish_builtin_struct): Moved to stor-layout.h. 8177 (finish_record_layout): Moved to stor-layout.h. 8178 (fixup_signed_type): Moved to stor-layout.h. 8179 (fixup_unsigned_type): Moved to stor-layout.h. 8180 (flags_from_decl_or_type): Moved to calls.h. 8181 (fold): Moved to fold-const.h. 8182 (fold_abs_const): Moved to fold-const.h. 8183 (fold_binary): Moved to fold-const.h. 8184 (fold_binary_loc): Moved to fold-const.h. 8185 (fold_binary_to_constant): Moved to fold-const.h. 8186 (fold_build1): Moved to fold-const.h. 8187 (fold_build1_initializer_loc): Moved to fold-const.h. 8188 (fold_build1_loc): Moved to fold-const.h. 8189 (fold_build1_stat_loc): Moved to fold-const.h. 8190 (fold_build2): Moved to fold-const.h. 8191 (fold_build2_initializer_loc): Moved to fold-const.h. 8192 (fold_build2_loc): Moved to fold-const.h. 8193 (fold_build2_stat_loc): Moved to fold-const.h. 8194 (fold_build3): Moved to fold-const.h. 8195 (fold_build3_loc): Moved to fold-const.h. 8196 (fold_build3_stat_loc): Moved to fold-const.h. 8197 (fold_build_call_array): Moved to fold-const.h. 8198 (fold_build_call_array_initializer): Moved to fold-const.h. 8199 (fold_build_call_array_initializer_loc): Moved to fold-const.h. 8200 (fold_build_call_array_loc): Moved to fold-const.h. 8201 (fold_build_cleanup_point_expr): Moved to fold-const.h. 8202 (fold_convert): Moved to fold-const.h. 8203 (fold_convert_loc): Moved to fold-const.h. 8204 (fold_convertible_p): Moved to fold-const.h. 8205 (fold_defer_overflow_warnings): Moved to fold-const.h. 8206 (fold_deferring_overflow_warnings_p): Moved to fold-const.h. 8207 (fold_fma): Moved to fold-const.h. 8208 (fold_ignored_result): Moved to fold-const.h. 8209 (fold_indirect_ref): Moved to fold-const.h. 8210 (fold_indirect_ref_1): Moved to fold-const.h. 8211 (fold_indirect_ref_loc): Moved to fold-const.h. 8212 (fold_read_from_constant_string): Moved to fold-const.h. 8213 (fold_real_zero_addition_p): Moved to fold-const.h. 8214 (fold_single_bit_test): Moved to fold-const.h. 8215 (fold_strip_sign_ops): Moved to fold-const.h. 8216 (fold_ternary): Moved to fold-const.h. 8217 (fold_ternary_loc): Moved to fold-const.h. 8218 (fold_unary): Moved to tree-data-ref.h. 8219 (fold_unary_ignore_overflow): Moved to fold-const.h. 8220 (fold_unary_ignore_overflow_loc): Moved to fold-const.h. 8221 (fold_unary_loc): Moved to fold-const.h. 8222 (fold_unary_to_constant): Moved to fold-const.h. 8223 (fold_undefer_and_ignore_overflow_warnings): Moved to fold-const.h. 8224 (fold_undefer_overflow_warnings): Moved to fold-const.h. 8225 (folding_initializer): Moved to fold-const.h. 8226 (free_temp_slots): Moved to function.h. 8227 (generate_setjmp_warnings): Moved to function.h. 8228 (get_attribute_name): Moved to attribs.h. 8229 (get_identifier): Moved to stringpool.h. 8230 (get_identifier_with_length): Moved to stringpool.h. 8231 (get_inner_reference): Moved to tree.h. 8232 (gimple_alloca_call_p): Moved to calls.h. 8233 (gimplify_parameters): Moved to function.h. 8234 (highest_pow2_factor): Moved to expr.h. 8235 (indent_to): Moved to print-tree.h. 8236 (init_attributes): Moved to attribs.h. 8237 (init_dummy_function_start): Moved to function.h. 8238 (init_function_start): Moved to function.h. 8239 (init_inline_once): Moved to tree-inline.h. 8240 (init_object_sizes): Moved to tree-object-size.h. 8241 (init_temp_slots): Moved to function.h. 8242 (init_tree_optimization_optabs): Moved to optabs.h. 8243 (initialize_sizetypes): Moved to stor-layout.h. 8244 (initializer_constant_valid_for_bitfield_p): Moved to varasm.h. 8245 (initializer_constant_valid_p): Moved to varasm.h. 8246 (int_const_binop): Moved to fold-const.h. 8247 (internal_reference_types): Moved to stor-layout.h. 8248 (invert_tree_comparison): Moved to fold-const.h. 8249 (invert_truthvalue): Moved to fold-const.h. 8250 (invert_truthvalue_loc): Moved to fold-const.h. 8251 (is_tm_ending_fndecl): Moved to trans-mem.h. 8252 (is_tm_may_cancel_outer): Moved to trans-mem.h. 8253 (is_tm_pure): Moved to trans-mem.h. 8254 (is_tm_safe): Moved to trans-mem.h. 8255 (layout_decl): Moved to stor-layout.h. 8256 (layout_type): Moved to stor-layout.h. 8257 (lookup_attribute_spec): Moved to attribs.h. 8258 (make_accum_type): Moved to stor-layout.h. 8259 (make_decl_one_only): Moved to varasm.h. 8260 (make_decl_rtl): Moved to tree.h. 8261 (make_decl_rtl_for_debug): Moved to varasm.h. 8262 (make_fract_type): Moved to stor-layout.h. 8263 (make_or_reuse_sat_signed_accum_type): Moved to stor-layout.h. 8264 (make_or_reuse_sat_signed_fract_type): Moved to stor-layout.h. 8265 (make_or_reuse_sat_unsigned_accum_type): Moved to stor-layout.h. 8266 (make_or_reuse_sat_unsigned_fract_type): Moved to stor-layout.h. 8267 (make_or_reuse_signed_accum_type): Moved to stor-layout.h. 8268 (make_or_reuse_signed_fract_type): Moved to stor-layout.h. 8269 (make_or_reuse_unsigned_accum_type): Moved to stor-layout.h. 8270 (make_or_reuse_unsigned_fract_type): Moved to stor-layout.h. 8271 (make_range): Moved to fold-const.h. 8272 (make_range_step): Moved to fold-const.h. 8273 (make_sat_signed_accum_type): Moved to stor-layout.h. 8274 (make_sat_signed_fract_type): Moved to stor-layout.h. 8275 (make_sat_unsigned_accum_type): Moved to stor-layout.h. 8276 (make_sat_unsigned_fract_type): Moved to stor-layout.h. 8277 (make_signed_accum_type): Moved to stor-layout.h. 8278 (make_signed_fract_type): Moved to stor-layout.h. 8279 (make_signed_type): Moved to stor-layout.h. 8280 (make_unsigned_accum_type): Moved to stor-layout.h. 8281 (make_unsigned_fract_type): Moved to stor-layout.h. 8282 (make_unsigned_type): Moved to stor-layout.h. 8283 (mark_decl_referenced): Moved to varasm.h. 8284 (mark_referenced): Moved to varasm.h. 8285 (may_negate_without_overflow_p): Moved to fold-const.h. 8286 (maybe_get_identifier): Moved to stringpool.h. 8287 (merge_ranges): Moved to fold-const.h. 8288 (merge_weak): Moved to varasm.h. 8289 (mode_for_size_tree): Moved to stor-layout.h. 8290 (multiple_of_p): Moved to fold-const.h. 8291 (must_pass_in_stack_var_size): Moved to calls.h. 8292 (must_pass_in_stack_var_size_or_pad): Moved to calls.h. 8293 (native_encode_expr): Moved to fold-const.h. 8294 (native_interpret_expr): Moved to fold-const.h. 8295 (non_lvalue): Moved to fold-const.h. 8296 (non_lvalue_loc): Moved to fold-const.h. 8297 (normalize_offset): Moved to stor-layout.h. 8298 (normalize_rli): Moved to stor-layout.h. 8299 (notice_global_symbol): Moved to varasm.h. 8300 (omit_one_operand): Moved to fold-const.h. 8301 (omit_one_operand_loc): Moved to fold-const.h. 8302 (omit_two_operands): Moved to fold-const.h. 8303 (omit_two_operands_loc): Moved to fold-const.h. 8304 (operand_equal_p): Moved to tree-data-ref.h. 8305 (parse_input_constraint): Moved to stmt.h. 8306 (parse_output_constraint): Moved to stmt.h. 8307 (place_field): Moved to stor-layout.h. 8308 (pop_function_context): Moved to function.h. 8309 (pop_temp_slots): Moved to function.h. 8310 (pos_from_bit): Moved to stor-layout.h. 8311 (preserve_temp_slots): Moved to function.h. 8312 (print_node): Moved to print-tree.h. 8313 (print_node_brief): Moved to print-tree.h. 8314 (print_rtl): Moved to rtl.h. 8315 (process_pending_assemble_externals): Moved to varasm.h. 8316 (ptr_difference_const): Moved to fold-const.h. 8317 (push_function_context): Moved to function.h. 8318 (push_struct_function): Moved to function.h. 8319 (push_temp_slots): Moved to function.h. 8320 (record_tm_replacement): Moved to trans-mem.h. 8321 (relayout_decl): Moved to stor-layout.h. 8322 (resolve_asm_operand_names): Moved to stmt.h. 8323 (resolve_unique_section): Moved to varasm.h. 8324 (rli_size_so_far): Moved to stor-layout.h. 8325 (rli_size_unit_so_far): Moved to stor-layout.h. 8326 (round_down): Moved to fold-const.h. 8327 (round_down_loc): Moved to fold-const.h. 8328 (round_up): Moved to fold-const.h. 8329 (round_up_loc): Moved to fold-const.h. 8330 (set_decl_incoming_rtl): Moved to emit-rtl.h. 8331 (set_decl_rtl): Moved to tree.h. 8332 (set_min_and_max_values_for_integral_type): Moved to stor-layout.h. 8333 (set_user_assembler_name): Moved to varasm.h. 8334 (setjmp_call_p): Moved to calls.h. 8335 (size_binop): Moved to fold-const.h. 8336 (size_binop_loc): Moved to fold-const.h. 8337 (size_diffop): Moved to fold-const.h. 8338 (size_diffop_loc): Moved to fold-const.h. 8339 (size_int_kind): Moved to fold-const.h. 8340 (stack_protect_epilogue): Moved to function.h. 8341 (start_record_layout): Moved to stor-layout.h. 8342 (supports_one_only): Moved to varasm.h. 8343 (swap_tree_comparison): Moved to fold-const.h. 8344 (tm_malloc_replacement): Moved to trans-mem.h. 8345 (tree build_fold_addr_expr_loc): Moved to fold-const.h. 8346 (tree build_invariant_address): Moved to fold-const.h. 8347 (tree_binary_nonnegative_warnv_p): Moved to fold-const.h. 8348 (tree_binary_nonzero_warnv_p): Moved to fold-const.h. 8349 (tree_call_nonnegative_warnv_p): Moved to fold-const.h. 8350 (tree_expr_nonnegative_p): Moved to fold-const.h. 8351 (tree_expr_nonnegative_warnv_p): Moved to fold-const.h. 8352 (tree_output_constant_def): Moved to varasm.h. 8353 (tree_overlaps_hard_reg_set): Moved to stmt.h. 8354 (tree_single_nonnegative_warnv_p): Moved to fold-const.h. 8355 (tree_single_nonzero_warnv_p): Moved to fold-const.h. 8356 (tree_swap_operands_p): Moved to fold-const.h. 8357 (tree_unary_nonnegative_warnv_p): Moved to fold-const.h. 8358 (tree_unary_nonzero_warnv_p): Moved to fold-const.h. 8359 (update_alignment_for_field): Moved to stor-layout.h. 8360 (use_register_for_decl): Moved to function.h. 8361 (variable_size): Moved to rtl.h. 8362 (vector_type_mode): Moved to stor-layout.h. 8363 * cgraph.h: Corresponding changes. 8364 * emit-rtl.h: Corresponding changes. 8365 * expr.h: Corresponding changes. 8366 * function.h: Corresponding changes. 8367 * optabs.h: Corresponding changes. 8368 * trans-mem.h: Corresponding changes. 8369 Protect against multiple inclusion. 8370 * tree-inline.h: Corresponding changes. 8371 * tree-iterator.h: Corresponding changes. 8372 * tree-dfa.h: Include expr.h. 8373 * tree-ssanames.h: Include stringpool.h. 8374 * attribs.h: New file. 8375 * calls.h: New file. 8376 * fold-const.h: New file. 8377 * gcc-symtab.h: New file. 8378 * print-rtl.h: New file. 8379 * print-tree.h: New file. 8380 * stmt.h: New file. 8381 * stor-layout.h: New file. 8382 * strinpool.h: New file. 8383 * tree-nested.h: New file 8384 * tree-object-size.h: New file. 8385 * varasm.h: New file. 8386 83872013-11-14 Diego Novillo <dnovillo@google.com> 8388 8389 * alias.c: Include varasm.h. 8390 Include expr.h. 8391 * asan.c: Include calls.h. 8392 Include stor-layout.h. 8393 Include varasm.h. 8394 * attribs.c: Include stringpool.h. 8395 Include attribs.h. 8396 Include stor-layout.h. 8397 * builtins.c: Include stringpool.h. 8398 Include stor-layout.h. 8399 Include calls.h. 8400 Include varasm.h. 8401 Include tree-object-size.h. 8402 * calls.c: Include stor-layout.h. 8403 Include varasm.h. 8404 Include stringpool.h. 8405 Include attribs.h. 8406 * cfgexpand.c: Include stringpool.h. 8407 Include varasm.h. 8408 Include stor-layout.h. 8409 Include stmt.h. 8410 Include print-tree.h. 8411 * cgraph.c: Include varasm.h. 8412 Include calls.h. 8413 Include print-tree.h. 8414 * cgraphclones.c: Include stringpool.h. 8415 Include function.h. 8416 Include emit-rtl.h. 8417 Move inclusion of rtl.h earlier in the file. 8418 * cgraphunit.c: Include varasm.h. 8419 Include stor-layout.h. 8420 Include stringpool.h. 8421 * cilk-common.c: Include stringpool.h. 8422 Include stor-layout.h. 8423 * combine.c: Include stor-layout.h. 8424 * config/aarch64/aarch64-builtins.c: Include stor-layout.h. 8425 Include stringpool.h. 8426 Include calls.h. 8427 * config/aarch64/aarch64.c: Include stringpool.h. 8428 Include stor-layout.h. 8429 Include calls.h. 8430 Include varasm.h. 8431 * config/alpha/alpha.c: Include stor-layout.h. 8432 Include calls.h. 8433 Include varasm.h. 8434 * config/arc/arc.c: Include varasm.h. 8435 Include stor-layout.h. 8436 Include stringpool.h. 8437 Include calls.h. 8438 * config/arm/arm.c: Include stringpool.h. 8439 Include stor-layout.h. 8440 Include calls.h. 8441 Include varasm.h. 8442 * config/avr/avr-c.c: Include stor-layout.h. 8443 * config/avr/avr-log.c: Include print-tree.h. 8444 * config/avr/avr.c: Include print-tree.h. 8445 Include calls.h. 8446 Include stor-layout.h. 8447 Include stringpool.h. 8448 * config/bfin/bfin.c: Include varasm.h. 8449 Include calls.h. 8450 * config/c6x/c6x.c: Include stor-layout.h. 8451 Include varasm.h. 8452 Include calls.h. 8453 Include stringpool.h. 8454 * config/cr16/cr16.c: Include stor-layout.h. 8455 Include calls.h. 8456 * config/cris/cris.c: Include varasm.h. 8457 Include stor-layout.h. 8458 Include calls.h. 8459 Include stmt.h. 8460 * config/darwin.c: Include stringpool.h. 8461 Include varasm.h. 8462 Include stor-layout.h. 8463 * config/epiphany/epiphany.c: Include stor-layout.h. 8464 Include varasm.h. 8465 Include calls.h. 8466 Include stringpool.h. 8467 * config/fr30/fr30.c: Include stor-layout.h. 8468 Include varasm.h. 8469 * config/frv/frv.c: Include varasm.h. 8470 Include stor-layout.h. 8471 Include stringpool.h. 8472 * config/h8300/h8300.c: Include stor-layout.h. 8473 Include varasm.h. 8474 Include calls.h. 8475 Include stringpool.h. 8476 * config/i386/i386.c: Include stringpool.h. 8477 Include attribs.h. 8478 Include calls.h. 8479 Include stor-layout.h. 8480 Include varasm.h. 8481 * config/i386/winnt-cxx.c: Include stringpool.h. 8482 Include attribs.h. 8483 * config/i386/winnt.c: Include stringpool.h. 8484 Include varasm.h. 8485 * config/ia64/ia64-c.c: Include stringpool.h. 8486 * config/ia64/ia64.c: Include stringpool.h. 8487 Include stor-layout.h. 8488 Include calls.h. 8489 Include varasm.h. 8490 * config/iq2000/iq2000.c: Include stor-layout.h. 8491 Include calls.h. 8492 Include varasm.h. 8493 * config/lm32/lm32.c: Include calls.h. 8494 * config/m32c/m32c.c: Include stor-layout.h. 8495 Include varasm.h. 8496 Include calls.h. 8497 * config/m32r/m32r.c: Include stor-layout.h. 8498 Include varasm.h. 8499 Include stringpool.h. 8500 Include calls.h. 8501 * config/m68k/m68k.c: Include calls.h. 8502 Include stor-layout.h. 8503 Include varasm.h. 8504 * config/mcore/mcore.c: Include stor-layout.h. 8505 Include varasm.h. 8506 Include stringpool.h. 8507 Include calls.h. 8508 * config/mep/mep.c: Include varasm.h. 8509 Include calls.h. 8510 Include stringpool.h. 8511 Include stor-layout.h. 8512 * config/microblaze/microblaze.c: Include varasm.h. 8513 Include stor-layout.h. 8514 Include calls.h. 8515 * config/mips/mips.c: Include varasm.h. 8516 Include stringpool.h. 8517 Include stor-layout.h. 8518 Include calls.h. 8519 * config/mmix/mmix.c: Include varasm.h. 8520 Include stor-layout.h. 8521 Include calls.h. 8522 * config/mn10300/mn10300.c: Include stor-layout.h. 8523 Include varasm.h. 8524 Include calls.h. 8525 * config/moxie/moxie.c: Include stor-layout.h. 8526 Include varasm.h. 8527 Include calls.h. 8528 * config/msp430/msp430.c: Include stor-layout.h. 8529 Include calls.h. 8530 * config/nds32/nds32.c: Include stor-layout.h. 8531 Include varasm.h. 8532 Include calls.h. 8533 * config/pa/pa.c: Include stor-layout.h. 8534 Include stringpool.h. 8535 Include varasm.h. 8536 Include calls.h. 8537 * config/pdp11/pdp11.c: Include stor-layout.h. 8538 Include varasm.h. 8539 Include calls.h. 8540 * config/picochip/picochip.c: Include calls.h. 8541 Include stor-layout.h. 8542 Include stringpool.h. 8543 Include varasm.h. 8544 * config/rl78/rl78.c: Include varasm.h. 8545 Include stor-layout.h. 8546 Include calls.h. 8547 * config/rs6000/rs6000-c.c: Include stor-layout.h. 8548 Include stringpool.h. 8549 * config/rs6000/rs6000.c: Include stringpool.h. 8550 Include stor-layout.h. 8551 Include calls.h. 8552 Include print-tree.h. 8553 Include varasm.h. 8554 * config/rx/rx.c: Include varasm.h. 8555 Include stor-layout.h. 8556 Include calls.h. 8557 * config/s390/s390.c: Include print-tree.h. 8558 Include stringpool.h. 8559 Include stor-layout.h. 8560 Include varasm.h. 8561 Include calls.h. 8562 * config/score/score.c: Include stringpool.h. 8563 Include calls.h. 8564 Include varasm.h. 8565 Include stor-layout.h. 8566 * config/sh/sh-c.c: Include stringpool.h. 8567 Include attribs.h.h. 8568 * config/sh/sh.c: Include stringpool.h. 8569 Include stor-layout.h. 8570 Include calls.h. 8571 Include varasm.h. 8572 * config/sol2-c.c: Include stringpool.h. 8573 Include attribs.h. 8574 * config/sol2-cxx.c: Include stringpool.h. 8575 * config/sol2.c: Include stringpool.h. 8576 Include varasm.h. 8577 * config/sparc/sparc.c: Include stringpool.h. 8578 Include stor-layout.h. 8579 Include calls.h. 8580 Include varasm.h. 8581 * config/spu/spu-c.c: Include stringpool.h. 8582 * config/spu/spu.c: Include stringpool.h. 8583 Include stor-layout.h. 8584 Include calls.h. 8585 Include varasm.h. 8586 * config/stormy16/stormy16.c: Include stringpool.h. 8587 Include stor-layout.h. 8588 Include varasm.h. 8589 Include calls.h. 8590 * config/tilegx/tilegx.c: Include stringpool.h. 8591 Include stor-layout.h. 8592 Include varasm.h. 8593 Include calls.h. 8594 * config/tilepro/tilepro.c: Include stringpool.h. 8595 Include stor-layout.h. 8596 Include varasm.h. 8597 Include calls.h. 8598 * config/v850/v850-c.c: Include stringpool.h. 8599 Include attribs.h. 8600 * config/v850/v850.c: Include stringpool.h. 8601 Include stor-layout.h. 8602 Include varasm.h. 8603 Include calls.h. 8604 * config/vax/vax.c: Include calls.h. 8605 Include varasm.h. 8606 * config/vms/vms.c: Include stringpool.h. 8607 * config/vxworks.c: Include stringpool.h. 8608 * config/xtensa/xtensa.c: Include stringpool.h. 8609 Include stor-layout.h. 8610 Include calls.h. 8611 Include varasm.h. 8612 * convert.c: Include stor-layout.h. 8613 * coverage.c: Include stringpool.h. 8614 Include stor-layout.h. 8615 * dbxout.c: Include varasm.h. 8616 Include stor-layout.h. 8617 * dojump.c: Include stor-layout.h. 8618 * dse.c: Include stor-layout.h. 8619 * dwarf2asm.c: Include stringpool.h. 8620 Include varasm.h. 8621 * dwarf2cfi.c: Include stor-layout.h. 8622 * dwarf2out.c: Include rtl.h. 8623 Include stringpool.h. 8624 Include stor-layout.h. 8625 Include varasm.h. 8626 Include function.h. 8627 Include emit-rtl.h. 8628 Move inclusion of rtl.h earlier in the file. 8629 * emit-rtl.c: Include varasm.h. 8630 * except.c: Include stringpool.h. 8631 Include stor-layout.h. 8632 * explow.c: Include stor-layout.h. 8633 * expmed.c: Include stor-layout.h. 8634 * expr.c: Include stringpool.h. 8635 Include stor-layout.h. 8636 Include attribs.h. 8637 Include varasm.h. 8638 * final.c: Include varasm.h. 8639 * fold-const.c: Include stor-layout.h. 8640 Include calls.h. 8641 Include tree-iterator.h. 8642 * function.c: Include stor-layout.h. 8643 Include varasm.h. 8644 Include stringpool.h. 8645 * genattrtab.c (write_header): Emit includes for varasm.h, 8646 stor-layout.h and calls.h. 8647 * genautomata.c (main): Likewise. 8648 * genemit.c: Likewise. 8649 * genopinit.c: Likewise. 8650 * genoutput.c (output_prologue): Likewise. 8651 * genpeep.c: Likewise. 8652 * genpreds.c (write_insn_preds_c): Likewise. 8653 * gengtype.c (open_base_files): Add stringpool.h. 8654 * gimple-expr.c: Include stringpool.h. 8655 Include stor-layout.h. 8656 * gimple-fold.c: Include stringpool.h. 8657 Include expr.h. 8658 Include stmt.h. 8659 Include stor-layout.h. 8660 * gimple-low.c: Include tree-nested.h. 8661 Include calls.h. 8662 * gimple-pretty-print.c: Include stringpool.h. 8663 * gimple-ssa-strength-reduction.c: Include stor-layout.h. 8664 Include expr.h. 8665 * gimple-walk.c: Include stmt.h. 8666 * gimple.c: Include calls.h. 8667 Include stmt.h. 8668 Include stor-layout.h. 8669 * gimplify.c: Include stringpool.h. 8670 Include calls.h. 8671 Include varasm.h. 8672 Include stor-layout.h. 8673 Include stmt.h. 8674 Include print-tree.h. 8675 Include expr.h. 8676 * gimplify-me.c: Include stmt.h 8677 Include stor-layout.h 8678 * internal-fn.c: Include stor-layout.h. 8679 * ipa-devirt.c: Include print-tree.h. 8680 Include calls.h. 8681 * ipa-inline-analysis.c: Include stor-layout.h. 8682 Include stringpool.h. 8683 Include print-tree.h. 8684 * ipa-inline.c: Include trans-mem.h. 8685 Include calls.h. 8686 * ipa-prop.c: Include expr.h. 8687 Include stor-layout.h. 8688 Include print-tree.h. 8689 * ipa-pure-const.c: Include print-tree.h. 8690 Include calls.h. 8691 * ipa-reference.c: Include calls.h. 8692 * ipa-split.c: Include stringpool.h. 8693 Include expr.h. 8694 Include calls.h. 8695 * ipa.c: Include calls.h. 8696 Include stringpool.h. 8697 * langhooks.c: Include stringpool.h. 8698 Include attribs.h. 8699 * lto-cgraph.c: Include stringpool.h. 8700 * lto-streamer-in.c: Include stringpool.h. 8701 * lto-streamer-out.c: Include stor-layout.h. 8702 Include stringpool.h. 8703 * omp-low.c: Include stringpool.h. 8704 Include stor-layout.h. 8705 Include expr.h. 8706 * optabs.c: Include stor-layout.h. 8707 Include stringpool.h. 8708 Include varasm.h. 8709 * passes.c: Include varasm.h. 8710 * predict.c: Include calls.h. 8711 * print-rtl.c: Include print-tree.h. 8712 * print-tree.c: Include varasm.h. 8713 Include print-rtl.h. 8714 Include stor-layout.h. 8715 * realmpfr.c: Include stor-layout.h. 8716 * reg-stack.c: Include varasm.h. 8717 * sdbout.c: Include varasm.h. 8718 Include stor-layout.h. 8719 * simplify-rtx.c: Include varasm.h. 8720 * stmt.c: Include varasm.h. 8721 Include stor-layout.h. 8722 * stor-layout.c: Include stor-layout.h. 8723 Include stringpool.h. 8724 Include varasm.h. 8725 Include print-tree.h. 8726 * symtab.c: Include rtl.h. 8727 Include print-tree.h. 8728 Include varasm.h. 8729 Include function.h. 8730 Include emit-rtl.h. 8731 * targhooks.c: Include stor-layout.h. 8732 Include varasm.h. 8733 * toplev.c: Include varasm.h. 8734 Include tree-inline.h. 8735 * trans-mem.c: Include calls.h. 8736 Include function.h. 8737 Include rtl.h. 8738 Include emit-rtl.h. 8739 * tree-affine.c: Include expr.h. 8740 * tree-browser.c: Include print-tree.h. 8741 * tree-call-cdce.c: Include stor-layout.h. 8742 * tree-cfg.c: Include trans-mem.h. 8743 Include stor-layout.h. 8744 Include print-tree.h. 8745 * tree-complex.c: Include stor-layout.h. 8746 * tree-data-ref.c: Include expr.h. 8747 * tree-dfa.c: Include stor-layout.h. 8748 * tree-eh.c: Include expr.h. 8749 Include calls.h. 8750 * tree-emutls.c: Include stor-layout.h. 8751 Include varasm.h. 8752 * tree-if-conv.c: Include stor-layout.h. 8753 * tree-inline.c: Include stor-layout.h. 8754 Include calls.h. 8755 * tree-loop-distribution.c: Include stor-layout.h. 8756 * tree-nested.c: Include stringpool.h. 8757 Include stor-layout.h. 8758 * tree-object-size.c: Include tree-object-size.h. 8759 * tree-outof-ssa.c: Include stor-layout.h. 8760 * tree-parloops.c: Include stor-layout.h. 8761 Include tree-nested.h. 8762 * tree-pretty-print.c: Include stor-layout.h. 8763 Include expr.h. 8764 * tree-profile.c: Include varasm.h. 8765 Include tree-nested.h. 8766 * tree-scalar-evolution.c: Include expr.h. 8767 * tree-sra.c: Include stor-layout.h. 8768 * tree-ssa-address.c: Include stor-layout.h. 8769 * tree-ssa-ccp.c: Include stor-layout.h. 8770 * tree-ssa-dce.c: Include calls.h. 8771 * tree-ssa-dom.c: Include stor-layout.h. 8772 * tree-ssa-forwprop.c: Include stor-layout.h. 8773 * tree-ssa-ifcombine.c: Include stor-layout.h. 8774 * tree-ssa-loop-ivopts.c: Include stor-layout.h. 8775 * tree-ssa-loop-niter.c: Include calls.h. 8776 Include expr.h. 8777 * tree-ssa-loop-prefetch.c: Include stor-layout.h. 8778 * tree-ssa-math-opts.c: Include stor-layout.h. 8779 * tree-ssa-operands.c: Include stmt.h. 8780 Include print-tree.h. 8781 * tree-ssa-phiopt.c: Include stor-layout.h. 8782 * tree-ssa-reassoc.c: Include stor-layout.h. 8783 * tree-ssa-sccvn.c: Include stor-layout.h. 8784 * tree-ssa-sink.c: Include stor-layout.h. 8785 * tree-ssa-strlen.c: Include stor-layout.h. 8786 * tree-ssa-structalias.c: Include stor-layout.h. 8787 Include stmt.h. 8788 * tree-ssa-tail-merge.c: Include stor-layout.h. 8789 Include trans-mem.h. 8790 * tree-ssa-uncprop.c: Include stor-layout.h. 8791 * tree-ssa.c: Include stor-layout.h. 8792 * tree-ssanames.c: Include stor-layout.h. 8793 * tree-streamer-in.c: Include stringpool.h. 8794 * tree-streamer-out.c: Include stor-layout.h. 8795 * tree-switch-conversion.c: Include varasm.h. 8796 Include stor-layout.h. 8797 * tree-tailcall.c: Include stor-layout.h. 8798 * tree-vect-data-refs.c: Include stor-layout.h. 8799 * tree-vect-generic.c: Include stor-layout.h. 8800 * tree-vect-loop.c: Include stor-layout.h. 8801 * tree-vect-patterns.c: Include stor-layout.h. 8802 * tree-vect-slp.c: Include stor-layout.h. 8803 * tree-vect-stmts.c: Include stor-layout.h. 8804 * tree-vectorizer.c: Include stor-layout.h. 8805 * tree-vrp.c: Include stor-layout.h. 8806 Include calls.h. 8807 * tree.c: Include stor-layout.h. 8808 Include calls.h. 8809 Include attribs.h. 8810 Include varasm.h. 8811 * tsan.c: Include expr.h. 8812 * ubsan.c: Include stor-layout.h. 8813 Include stringpool.h. 8814 * value-prof.c: Include tree-nested.h. 8815 Include calls.h. 8816 * var-tracking.c: Include varasm.h. 8817 Include stor-layout.h. 8818 * varasm.c: Include stor-layout.h. 8819 Include stringpool.h. 8820 Include gcc-symtab.h. 8821 Include varasm.h. 8822 * varpool.c: Include varasm.h. 8823 * vmsdbgout.c: Include varasm.h. 8824 * xcoffout.c: Include varasm.h. 8825 88262013-11-14 Joern Rennecke <joern.rennecke@embecosm.com> 8827 8828 * config/arc/arc.md (doloop_begin_i): Remove extra alignment; 8829 use (.&-4) idiom. 8830 88312013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 8832 8833 * config/rs6000/sysv4le.h (LINUX64_DEFAULT_ABI_ELFv2): Define. 8834 88352013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 8836 Alan Modra <amodra@gmail.com> 8837 8838 * config/rs6000/rs6000.h (RS6000_SAVE_AREA): Handle ABI_ELFv2. 8839 (RS6000_SAVE_TOC): Remove. 8840 (RS6000_TOC_SAVE_SLOT): New macro. 8841 * config/rs6000/rs6000.c (rs6000_parm_offset): New function. 8842 (rs6000_parm_start): Use it. 8843 (rs6000_function_arg_advance_1): Likewise. 8844 (rs6000_emit_prologue): Use RS6000_TOC_SAVE_SLOT. 8845 (rs6000_emit_epilogue): Likewise. 8846 (rs6000_call_aix): Likewise. 8847 (rs6000_output_function_prologue): Do not save/restore r11 8848 around calling _mcount for ABI_ELFv2. 8849 88502013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 8851 Alan Modra <amodra@gmail.com> 8852 8853 * config/rs6000/rs6000-protos.h (rs6000_reg_parm_stack_space): 8854 Add prototype. 8855 * config/rs6000/rs6000.h (RS6000_REG_SAVE): Remove. 8856 (REG_PARM_STACK_SPACE): Call rs6000_reg_parm_stack_space. 8857 * config/rs6000/rs6000.c (rs6000_parm_needs_stack): New function. 8858 (rs6000_function_parms_need_stack): Likewise. 8859 (rs6000_reg_parm_stack_space): Likewise. 8860 (rs6000_function_arg): Do not replace BLKmode by Pmode when 8861 returning a register argument. 8862 88632013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 8864 Michael Gschwind <mkg@us.ibm.com> 8865 8866 * config/rs6000/rs6000.h (FP_ARG_MAX_RETURN): New macro. 8867 (ALTIVEC_ARG_MAX_RETURN): Likewise. 8868 (FUNCTION_VALUE_REGNO_P): Use them. 8869 * config/rs6000/rs6000.c (TARGET_RETURN_IN_MSB): Define. 8870 (rs6000_return_in_msb): New function. 8871 (rs6000_return_in_memory): Handle ELFv2 homogeneous aggregates. 8872 Handle aggregates of up to 16 bytes for ELFv2. 8873 (rs6000_function_value): Handle ELFv2 homogeneous aggregates. 8874 88752013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 8876 Michael Gschwind <mkg@us.ibm.com> 8877 8878 * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define. 8879 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function. 8880 (rs6000_discover_homogeneous_aggregate): Likewise. 8881 (rs6000_function_arg_boundary): Handle homogeneous aggregates. 8882 (rs6000_function_arg_advance_1): Likewise. 8883 (rs6000_function_arg): Likewise. 8884 (rs6000_arg_partial_bytes): Likewise. 8885 (rs6000_psave_function_arg): Handle BLKmode arguments. 8886 88872013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 8888 Michael Gschwind <mkg@us.ibm.com> 8889 8890 * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define. 8891 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function. 8892 (rs6000_discover_homogeneous_aggregate): Likewise. 8893 (rs6000_function_arg_boundary): Handle homogeneous aggregates. 8894 (rs6000_function_arg_advance_1): Likewise. 8895 (rs6000_function_arg): Likewise. 8896 (rs6000_arg_partial_bytes): Likewise. 8897 (rs6000_psave_function_arg): Handle BLKmode arguments. 8898 88992013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 8900 8901 * config/rs6000/rs6000.c (machine_function): New member 8902 r2_setup_needed. 8903 (rs6000_emit_prologue): Set r2_setup_needed if necessary. 8904 (rs6000_output_mi_thunk): Set r2_setup_needed. 8905 (rs6000_output_function_prologue): Output global entry point 8906 prologue and local entry point marker if needed for ABI_ELFv2. 8907 Output -mprofile-kernel code here. 8908 (output_function_profiler): Do not output -mprofile-kernel 8909 code here; moved to rs6000_output_function_prologue. 8910 (rs6000_file_start): Output ".abiversion 2" for ABI_ELFv2. 8911 8912 (rs6000_emit_move): Do not handle dot symbols for ABI_ELFv2. 8913 (rs6000_output_function_entry): Likewise. 8914 (rs6000_assemble_integer): Likewise. 8915 (rs6000_elf_encode_section_info): Likewise. 8916 (rs6000_elf_declare_function_name): Do not create dot symbols 8917 or .opd section for ABI_ELFv2. 8918 8919 (rs6000_trampoline_size): Update for ABI_ELFv2 trampolines. 8920 (rs6000_trampoline_init): Likewise. 8921 (rs6000_elf_file_end): Call file_end_indicate_exec_stack for ABI_ELFv2. 8922 8923 (rs6000_call_aix): Handle ELFv2 indirect calls. Do not check 8924 for function descriptors in ABI_ELFv2. 8925 8926 * config/rs6000/rs6000.md ("*call_indirect_aix<mode>"): Support 8927 on ABI_AIX only, not ABI_ELFv2. 8928 ("*call_value_indirect_aix<mode>"): Likewise. 8929 ("*call_indirect_elfv2<mode>"): New pattern. 8930 ("*call_value_indirect_elfv2<mode>"): Likewise. 8931 8932 * config/rs6000/predicates.md ("symbol_ref_operand"): Do not 8933 check for function descriptors in ABI_ELFv2. 8934 ("current_file_function_operand"): Likewise. 8935 8936 * config/rs6000/ppc-asm.h [__powerpc64__ && _CALL_ELF == 2]: 8937 (toc): Undefine. 8938 (FUNC_NAME): Define ELFv2 variant. 8939 (JUMP_TARGET): Likewise. 8940 (FUNC_START): Likewise. 8941 (HIDDEN_FUNC): Likewise. 8942 (FUNC_END): Likeiwse. 8943 89442013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 8945 8946 * config.gcc [powerpc*-*-* | rs6000-*-*]: Support --with-abi=elfv1 8947 and --with-abi=elfv2. 8948 * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Add "abi". 8949 * config/rs6000/rs6000.opt (mabi=elfv1): New option. 8950 (mabi=elfv2): Likewise. 8951 * config/rs6000/rs6000-opts.h (enum rs6000_abi): Add ABI_ELFv2. 8952 * config/rs6000/linux64.h (DEFAULT_ABI): Do not hard-code to AIX_ABI 8953 if !RS6000_BI_ARCH. 8954 (ELFv2_ABI_CHECK): New macro. 8955 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set 8956 rs6000_current_abi to ABI_AIX or ABI_ELFv2. 8957 (GLIBC_DYNAMIC_LINKER64): Support ELFv2 ld.so version. 8958 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine 8959 _CALL_ELF and __STRUCT_PARM_ALIGN__ if appropriate. 8960 8961 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Handle ABI_ELFv2. 8962 (debug_stack_info): Likewise. 8963 (rs6000_file_start): Treat ABI_ELFv2 the same as ABI_AIX. 8964 (rs6000_legitimize_tls_address): Likewise. 8965 (rs6000_conditional_register_usage): Likewise. 8966 (rs6000_emit_move): Likewise. 8967 (init_cumulative_args): Likewise. 8968 (rs6000_function_arg_advance_1): Likewise. 8969 (rs6000_function_arg): Likewise. 8970 (rs6000_arg_partial_bytes): Likewise. 8971 (rs6000_output_function_entry): Likewise. 8972 (rs6000_assemble_integer): Likewise. 8973 (rs6000_savres_strategy): Likewise. 8974 (rs6000_stack_info): Likewise. 8975 (rs6000_function_ok_for_sibcall): Likewise. 8976 (rs6000_emit_load_toc_table): Likewise. 8977 (rs6000_savres_routine_name): Likewise. 8978 (ptr_regno_for_savres): Likewise. 8979 (rs6000_emit_prologue): Likewise. 8980 (rs6000_emit_epilogue): Likewise. 8981 (rs6000_output_function_epilogue): Likewise. 8982 (output_profile_hook): Likewise. 8983 (output_function_profiler): Likewise. 8984 (rs6000_trampoline_size): Likewise. 8985 (rs6000_trampoline_init): Likewise. 8986 (rs6000_elf_output_toc_section_asm_op): Likewise. 8987 (rs6000_elf_encode_section_info): Likewise. 8988 (rs6000_elf_reloc_rw_mask): Likewise. 8989 (rs6000_elf_declare_function_name): Likewise. 8990 (rs6000_function_arg_boundary): Treat ABI_ELFv2 the same as ABI_AIX, 8991 except that rs6000_compat_align_parm is always assumed false. 8992 (rs6000_gimplify_va_arg): Likewise. 8993 (rs6000_call_aix): Update comment. 8994 (rs6000_sibcall_aix): Likewise. 8995 * config/rs6000/rs6000.md ("tls_gd_aix<TLSmode:tls_abi_suffix>"): 8996 Treat ABI_ELFv2 the same as ABI_AIX. 8997 ("*tls_gd_call_aix<TLSmode:tls_abi_suffix>"): Likewise. 8998 ("tls_ld_aix<TLSmode:tls_abi_suffix>"): Likewise. 8999 ("*tls_ld_call_aix<TLSmode:tls_abi_suffix>"): Likewise. 9000 ("load_toc_aix_si"): Likewise. 9001 ("load_toc_aix_di"): Likewise. 9002 ("call"): Likewise. 9003 ("call_value"): Likewise. 9004 ("*call_local_aix<mode>"): Likewise. 9005 ("*call_value_local_aix<mode>"): Likewise. 9006 ("*call_nonlocal_aix<mode>"): Likewise. 9007 ("*call_value_nonlocal_aix<mode>"): Likewise. 9008 ("*call_indirect_aix<mode>"): Likewise. 9009 ("*call_value_indirect_aix<mode>"): Likewise. 9010 ("sibcall"): Likewise. 9011 ("sibcall_value"): Likewise. 9012 ("*sibcall_aix<mode>"): Likewise. 9013 ("*sibcall_value_aix<mode>"): Likewise. 9014 * config/rs6000/predicates.md ("symbol_ref_operand"): Likewise. 9015 ("current_file_function_operand"): Likewise. 9016 90172013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 9018 9019 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Simplify logic 9020 by making use of the fact that for vector / floating point arguments 9021 passed both in VRs/FPRs and in the fixed parameter area, the partial 9022 bytes mechanism is in fact not used. 9023 90242013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 9025 9026 * config/rs6000/rs6000.c (rs6000_psave_function_arg): New function. 9027 (rs6000_finish_function_arg): Likewise. 9028 (rs6000_function_arg): Use rs6000_psave_function_arg and 9029 rs6000_finish_function_arg to handle both vector and floating 9030 point arguments that are also passed in GPRs / the stack. 9031 90322013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 9033 9034 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Remove TYPE argument. 9035 (USE_ALTIVEC_FOR_ARG_P): Likewise. 9036 (rs6000_darwin64_record_arg_advance_recurse): Update uses. 9037 (rs6000_function_arg_advance_1):Likewise. 9038 (rs6000_darwin64_record_arg_recurse): Likewise. 9039 (rs6000_function_arg): Likewise. 9040 (rs6000_arg_partial_bytes): Likewise. 9041 90422013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 9043 9044 * config/rs6000/rs6000.c (rs6000_option_override_internal): Replace 9045 "DEFAULT_ABI != ABI_AIX" test by testing for ABI_V4 or ABI_DARWIN. 9046 (rs6000_savres_strategy): Likewise. 9047 (rs6000_return_addr): Likewise. 9048 (rs6000_emit_load_toc_table): Replace "DEFAULT_ABI != ABI_AIX" by 9049 testing for ABI_V4 (since ABI_DARWIN is impossible here). 9050 (rs6000_emit_prologue): Likewise. 9051 (legitimate_lo_sum_address_p): Simplify DEFAULT_ABI test. 9052 (rs6000_elf_declare_function_name): Remove duplicated test. 9053 * config/rs6000/rs6000.md ("load_toc_v4_PIC_1"): Explicitly test 9054 for ABI_V4 (instead of "DEFAULT_ABI != ABI_AIX" test). 9055 ("load_toc_v4_PIC_1_normal"): Likewise. 9056 ("load_toc_v4_PIC_1_476"): Likewise. 9057 ("load_toc_v4_PIC_1b"): Likewise. 9058 ("load_toc_v4_PIC_1b_normal"): Likewise. 9059 ("load_toc_v4_PIC_1b_476"): Likewise. 9060 ("load_toc_v4_PIC_2"): Likewise. 9061 ("load_toc_v4_PIC_3b"): Likewise. 9062 ("load_toc_v4_PIC_3c"): Likewise. 9063 * config/rs6000/rs6000.h (RS6000_REG_SAVE): Simplify DEFAULT_ABI test. 9064 (RS6000_SAVE_AREA): Likewise. 9065 (FP_ARG_MAX_REG): Likewise. 9066 (RETURN_ADDRESS_OFFSET): Likewise. 9067 * config/rs6000/sysv.h (TARGET_TOC): Test for ABI_V4 instead 9068 of ABI_AIX. 9069 (SUBTARGET_OVERRIDE_OPTIONS): Likewise. 9070 (MINIMAL_TOC_SECTION_ASM_OP): Likewise. 9071 90722013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 9073 9074 * config/rs6000/rs6000.c (rs6000_call_indirect_aix): Rename to ... 9075 (rs6000_call_aix): ... this. Handle both direct and indirect calls. 9076 Create call insn directly instead of via various gen_... routines. 9077 Mention special registers used by the call in CALL_INSN_FUNCTION_USAGE. 9078 (rs6000_sibcall_aix): New function. 9079 * config/rs6000/rs6000.md (TOC_SAVE_OFFSET_32BIT): Remove. 9080 (TOC_SAVE_OFFSET_64BIT): Likewise. 9081 (AIX_FUNC_DESC_TOC_32BIT): Likewise. 9082 (AIX_FUNC_DESC_TOC_64BIT): Likewise. 9083 (AIX_FUNC_DESC_SC_32BIT): Likewise. 9084 (AIX_FUNC_DESC_SC_64BIT): Likewise. 9085 ("call" expander): Call rs6000_call_aix. 9086 ("call_value" expander): Likewise. 9087 ("call_indirect_aix<ptrsize>"): Replace this pattern ... 9088 ("call_indirect_aix<ptrsize>_nor11"): ... and this pattern ... 9089 ("*call_indirect_aix<mode>"): ... by this insn pattern. 9090 ("call_value_indirect_aix<ptrsize>"): Replace this pattern ... 9091 ("call_value_indirect_aix<ptrsize>_nor11"): ... and this pattern ... 9092 ("*call_value_indirect_aix<mode>"): ... by this insn pattern. 9093 ("*call_nonlocal_aix32", "*call_nonlocal_aix64"): Replace by ... 9094 ("*call_nonlocal_aix<mode>"): ... this pattern. 9095 ("*call_value_nonlocal_aix32", "*call_value_nonlocal_aix64"): Replace 9096 ("*call_value_nonlocal_aix<mode>"): ... by this pattern. 9097 ("*call_local_aix<mode>"): New insn pattern. 9098 ("*call_value_local_aix<mode>"): Likewise. 9099 ("sibcall" expander): Call rs6000_sibcall_aix. 9100 ("sibcall_value" expander): Likewise. Move earlier in file. 9101 ("*sibcall_nonlocal_aix<mode>"): Replace by ... 9102 ("*sibcall_aix<mode>"): ... this pattern. 9103 ("*sibcall_value_nonlocal_aix<mode>"): Replace by ... 9104 ("*sibcall_value_aix<mode>"): ... this pattern. 9105 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): Remove. 9106 (rs6000_call_aix): Add prototype. 9107 (rs6000_sibcall_aix): Likewise. 9108 91092013-11-14 Jakub Jelinek <jakub@redhat.com> 9110 9111 PR sanitizer/59122 9112 * asan.c (asan_emit_stack_protection): Ensure -fsection-anchors 9113 isn't confused by the artificial decl. 9114 91152013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 9116 9117 * config/rs6000/rs6000.c (rs6000_emit_prologue): Do not place a 9118 RTX_FRAME_RELATED_P marker on the UNSPEC_MOVESI_FROM_CR insn. 9119 Instead, add USEs of all modified call-saved CR fields to the 9120 insn storing the result to the stack slot, and provide an 9121 appropriate REG_FRAME_RELATED_EXPR for that insn. 9122 * config/rs6000/rs6000.md ("*crsave"): New insn pattern. 9123 * config/rs6000/predicates.md ("crsave_operation"): New predicate. 9124 91252013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 9126 Alan Modra <amodra@gmail.com> 9127 9128 * function.c (assign_parms): Use all.reg_parm_stack_space instead 9129 of re-evaluating REG_PARM_STACK_SPACE target macro. 9130 (locate_and_pad_parm): New parameter REG_PARM_STACK_SPACE. Use it 9131 instead of evaluating target macro REG_PARM_STACK_SPACE every time. 9132 (assign_parm_find_entry_rtl): Update call. 9133 * calls.c (initialize_argument_information): Update call. 9134 (emit_library_call_value_1): Likewise. 9135 * expr.h (locate_and_pad_parm): Update prototype. 9136 91372013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 9138 9139 * calls.c (store_unaligned_arguments_into_pseudos): Skip PARALLEL 9140 arguments. 9141 91422013-11-14 DJ Delorie <dj@redhat.com> 9143 9144 * config/rx/rx.c (rx_mode_dependent_address_p): Allow offsets up 9145 to 16 bits. 9146 91472013-11-14 Jeff Law <law@redhat.com> 9148 9149 * tree-ssa-threadedge.c (thread_through_normal_block): Only push the 9150 EDGE_START_JUMP_THREAD marker if the jump threading path is empty. 9151 91522013-11-14 James Greenhalgh <james.greenhalgh@arm.com> 9153 9154 * doc/invoke.texi: Update documentation for AArch64's -mcpu 9155 and -mtune options. 9156 91572013-11-14 James Greenhalgh <james.greenhalgh@arm.com> 9158 9159 * config/aarch64/aarch64-cores.def (example-1): Remove. 9160 (example-2): Likewise. 9161 * config/aarch64/aarch64-tune.md: Regenerate. 9162 * config/aarch64/aarch64.md: Do not include "large.md" or "small.md". 9163 (generic_sched): Remove "large", "small". 9164 * config/aarch64/large.md: Delete. 9165 * config/aarch64/small.md: Delete. 9166 91672013-11-14 James Greenhalgh <james.greenhalgh@arm.com> 9168 9169 * config/aarch64/aarch64-cores.def (cortex-a57): Tune for cortexa15. 9170 * config/aarch64/aarch64-tune.md: Regenerate. 9171 * config/aarch64/aarch64.md: Include cortex-a15 pipeline model. 9172 (generic_sched): "no" if we are tuning for cortexa15. 9173 * config/arm/cortex-a15.md: Include cortex-a15-neon.md by 9174 relative path. 9175 91762013-11-14 James Greenhalgh <james.greenhalgh@arm.com> 9177 9178 * config/aarch64/aarch64-arches.def (armv8-a): Tune for cortex-a53. 9179 * config/aarch64/aarch64.md: Do not include aarch64-generic.md. 9180 * config/aarch64/aarch64.c (aarch64_tune): Initialize to cortexa53. 9181 (all_cores): Use cortexa53 when tuning for "generic". 9182 (aarch64_override_options): Fix comment. 9183 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Set to cortexa53. 9184 * config/aarch64/aarch64-generic.md: Delete. 9185 91862013-11-14 James Greenhalgh <james.greenhalgh@arm.com> 9187 9188 * config/aarch64/aarch64.c (all_architectures): Remove "generic". 9189 91902013-11-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 9191 9192 * config/aarch64/aarch64.c: Include aarch-cost-tables.h. 9193 (generic_rtx_cost_table): Remove. 9194 (aarch64_rtx_costs): Use fields from cpu_cost_table. 9195 * config/aarch64/aarch64-protos.h (tune_params): Use cpu_cost_table for 9196 insn_extra_cost. 9197 (cpu_rtx_cost_table): Remove. 9198 91992013-11-14 Julian Brown <julian@codesourcery.com> 9200 Joey Ye <joey.ye@arm.com> 9201 9202 * config/arm/arm.c (arm_cortex_m_branch_cost): New. 9203 (arm_v7m_tune): New. 9204 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune, arm_9e_tune, 9205 arm_v6t2_tune, arm_cortex_tune, arm_cortex_a15_tune, 9206 arm_cortex_a5_tune, arm_v6m_tune): Add comments for Sched adj cost. 9207 * config/arm/arm-cores.def (cortex-m4, cortex-m3): Use arm_v7m_tune. 9208 92092013-11-14 Kirill Yukhin <kirill.yukhin@intel.com> 9210 9211 PR target/57491 9212 * config/ia64/ia64.c (ia64_split_tmode_move): Relax `dead' 9213 flag setting. 9214 92152013-11-14 Jakub Jelinek <jakub@redhat.com> 9216 Uros Bizjak <ubizjak@gmail.com> 9217 9218 PR target/59101 9219 * config/i386/i386.md (*anddi_2): Only allow CCZmode if 9220 operands[2] satisfies_constraint_Z that might have bit 31 set. 9221 92222013-11-13 Jeff Law <law@redhat.com> 9223 9224 PR tree-optimization/59102 9225 * gimple-ssa-isolate-paths.c 9226 (insert_trap_and_remove_trailing_statments): Ensure STMT is a 9227 gimple assignment before looking at gimple_assign_lhs. 9228 92292013-11-13 Vladimir Makarov <vmakarov@redhat.com> 9230 9231 * ira.c: Add comment about threads at the top of file. 9232 92332013-11-13 Vladimir Makarov <vmakarov@redhat.com> 9234 9235 * ira-color.c (coalesce_allocnos): Don't allocate and free 9236 sorted_copies. 9237 92382013-11-14 Tom de Vries <tom@codesourcery.com> 9239 9240 * tree-ssa-tail-merge.c (gimple_equal_p): Add test for structural 9241 equality for GIMPLE_ASSIGN. 9242 92432013-11-14 Tom de Vries <tom@codesourcery.com> 9244 9245 * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Factor new 9246 function out of ... 9247 (gimple_equal_p): ... here. 9248 92492013-11-14 Tom de Vries <tom@codesourcery.com> 9250 9251 * trans-mem.c (is_tm_ending): New function. 9252 * gimple.h (is_tm_ending): Declare. 9253 * tree-ssa-tail-merge.c (gimple_equal_p): Remove test on 9254 BUILT_IN_TM_COMMIT. 9255 (find_duplicate): Use is_tm_ending instead of is_tm_ending_fndecl. 9256 92572013-11-14 Tom de Vries <tom@codesourcery.com> 9258 9259 * tree-ssa-tail-merge.c (gimple_equal_p): Remove equal variable. 9260 92612013-11-13 Andrew MacLeod <amacleod@redhat.com> 9262 9263 * gimple-walk.h: New File. Relocate prototypes from gimple.h. 9264 (struct walk_stmt_info): Relocate here from gimple.h. 9265 * gimple-iterator.h: New File. Relocate prototypes from gimple.h. 9266 (struct gimple_stmt_iterator_d): Relocate here from gimple.h. 9267 (gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb, 9268 gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt, 9269 gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug, 9270 gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb, 9271 gsi_last_nondebug_bb, gsi_bb, gsi_seq): Relocate here from gimple.h. 9272 * gimple.h (struct gimple_stmt_iterator_d): Move to gimple-iterator.h. 9273 (gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb, 9274 gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt, 9275 gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug, 9276 gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb, 9277 gsi_last_nondebug_bb, gsi_bb, gsi_seq): Move to gimple-iterator.h. 9278 (struct walk_stmt_info): Move to gimple-walk.h. 9279 (gimple_seq_set_location): Move to gimple.c 9280 * gimple-walk.c: New File. 9281 (walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm, walk_gimple_op, 9282 walk_gimple_stmt, get_base_loadstore, walk_stmt_load_store_addr_ops, 9283 walk_stmt_load_store_ops): Relocate here from gimple.c. 9284 * gimple-iterator.c: Include gimple-iterator.h. 9285 * gimple.c (walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm, 9286 walk_gimple_op, walk_gimple_stmt, get_base_loadstore, 9287 walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Move to 9288 gimple-walk.c. 9289 (gimple_seq_set_location): Relocate from gimple.h. 9290 * tree-phinodes.h (set_phi_nodes): Move to tree-phinodes.c. 9291 * tree-phinodes.c (set_phi_nodes): Relocate from tree-phinodes.h. 9292 * gengtype.c (open_base_files): Add gimple-iterator.h to include list. 9293 * Makefile.in (OBJS): Add gimple-walk.o 9294 * asan.c: Update Include list as required for gimple-iterator.h and 9295 gimple-walk.h. 9296 * cfgexpand.c: Likewise. 9297 * cfgloop.c: Likewise. 9298 * cfgloopmanip.c: Likewise. 9299 * cgraph.c: Likewise. 9300 * cgraphbuild.c: Likewise. 9301 * cgraphunit.c: Likewise. 9302 * gimple-fold.c: Likewise. 9303 * gimple-low.c: Likewise. 9304 * gimple-pretty-print.c: Likewise. 9305 * gimple-ssa-isolate-paths.c: Likewise. 9306 * gimple-ssa-strength-reduction.c: Likewise. 9307 * gimple-streamer-in.c: Likewise. 9308 * gimple-streamer-out.c: Likewise. 9309 * gimplify.c: Likewise. 9310 * graphite-blocking.c: Likewise. 9311 * graphite-clast-to-gimple.c: Likewise. 9312 * graphite-dependences.c: Likewise. 9313 * graphite-interchange.c: Likewise. 9314 * graphite-optimize-isl.c: Likewise. 9315 * graphite-poly.c: Likewise. 9316 * graphite-scop-detection.c: Likewise. 9317 * graphite-sese-to-poly.c: Likewise. 9318 * graphite.c: Likewise. 9319 * ipa-inline-analysis.c: Likewise. 9320 * ipa-profile.c: Likewise. 9321 * ipa-prop.c: Likewise. 9322 * ipa-pure-const.c: Likewise. 9323 * ipa-split.c: Likewise. 9324 * lto-streamer-in.c: Likewise. 9325 * lto-streamer-out.c: Likewise. 9326 * omp-low.c: Likewise. 9327 * predict.c: Likewise. 9328 * profile.c: Likewise. 9329 * sese.c: Likewise. 9330 * tracer.c: Likewise. 9331 * trans-mem.c: Likewise. 9332 * tree-call-cdce.c: Likewise. 9333 * tree-cfg.c: Likewise. 9334 * tree-cfgcleanup.c: Likewise. 9335 * tree-complex.c: Likewise. 9336 * tree-data-ref.c: Likewise. 9337 * tree-dfa.c: Likewise. 9338 * tree-eh.c: Likewise. 9339 * tree-emutls.c: Likewise. 9340 * tree-if-conv.c: Likewise. 9341 * tree-inline.c: Likewise. 9342 * tree-into-ssa.c: Likewise. 9343 * tree-loop-distribution.c: Likewise. 9344 * tree-nested.c: Likewise. 9345 * tree-nrv.c: Likewise. 9346 * tree-object-size.c: Likewise. 9347 * tree-outof-ssa.c: Likewise. 9348 * tree-parloops.c: Likewise. 9349 * tree-predcom.c: Likewise. 9350 * tree-profile.c: Likewise. 9351 * tree-scalar-evolution.c: Likewise. 9352 * tree-sra.c: Likewise. 9353 * tree-ssa-ccp.c: Likewise. 9354 * tree-ssa-coalesce.c: Likewise. 9355 * tree-ssa-copy.c: Likewise. 9356 * tree-ssa-copyrename.c: Likewise. 9357 * tree-ssa-dce.c: Likewise. 9358 * tree-ssa-dom.c: Likewise. 9359 * tree-ssa-dse.c: Likewise. 9360 * tree-ssa-forwprop.c: Likewise. 9361 * tree-ssa-ifcombine.c: Likewise. 9362 * tree-ssa-live.c: Likewise. 9363 * tree-ssa-loop-ch.c: Likewise. 9364 * tree-ssa-loop-im.c: Likewise. 9365 * tree-ssa-loop-ivcanon.c: Likewise. 9366 * tree-ssa-loop-ivopts.c: Likewise. 9367 * tree-ssa-loop-manip.c: Likewise. 9368 * tree-ssa-loop-niter.c: Likewise. 9369 * tree-ssa-loop-prefetch.c: Likewise. 9370 * tree-ssa-loop.c: Likewise. 9371 * tree-ssa-math-opts.c: Likewise. 9372 * tree-ssa-phiopt.c: Likewise. 9373 * tree-ssa-phiprop.c: Likewise. 9374 * tree-ssa-pre.c: Likewise. 9375 * tree-ssa-propagate.c: Likewise. 9376 * tree-ssa-reassoc.c: Likewise. 9377 * tree-ssa-sink.c: Likewise. 9378 * tree-ssa-strlen.c: Likewise. 9379 * tree-ssa-structalias.c: Likewise. 9380 * tree-ssa-tail-merge.c: Likewise. 9381 * tree-ssa-ter.c: Likewise. 9382 * tree-ssa-threadedge.c: Likewise. 9383 * tree-ssa-threadupdate.c: Likewise. 9384 * tree-ssa-uncprop.c: Likewise. 9385 * tree-ssa-uninit.c: Likewise. 9386 * tree-ssa.c: Likewise. 9387 * tree-stdarg.c: Likewise. 9388 * tree-switch-conversion.c: Likewise. 9389 * tree-tailcall.c: Likewise. 9390 * tree-vect-data-refs.c: Likewise. 9391 * tree-vect-generic.c: Likewise. 9392 * tree-vect-loop-manip.c: Likewise. 9393 * tree-vect-loop.c: Likewise. 9394 * tree-vect-patterns.c: Likewise. 9395 * tree-vect-slp.c: Likewise. 9396 * tree-vect-stmts.c: Likewise. 9397 * tree-vectorizer.c: Likewise. 9398 * tree-vrp.c: Likewise. 9399 * tree.c: Likewise. 9400 * tsan.c: Likewise. 9401 * value-prof.c: Likewise. 9402 * vtable-verify.c: Likewise. 9403 94042013-11-13 Steven Bosscher <steven@gcc.gnu.org> 9405 9406 * gimple-ssa-isolate-paths.c (pass_isolate_erroneous_paths): Comment 9407 fix. 9408 94092013-11-13 Jeff Law <law@redhat.com> 9410 9411 * PR middle-end/59119 9412 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour): New 9413 function, extracted from gimple_ssa_isolate_erroneous_paths. 9414 (find_explicit_erroneous_behaviour): Similarly. 9415 (insert_trap_and_remove_trailing_statements): Remove statements 9416 in reverse order. 9417 94182013-11-13 Steven Bosscher <steven@gcc.gnu.org> 9419 9420 * cfgrtl.c (can_fallthru): Reorder code to move tablejump check up. 9421 Make that check explicit. BB_HEAD cannot be NULL, remove check for it. 9422 * haifa-sched.c (ready_remove_first_dispatch): Check INSN_P before 9423 looking at INSN_CODE. 9424 * reload1.c (delete_dead_insn) Do not expect JUMP_TABLE_DATA to be an 9425 active_insn_p object, respect basic block boundaries. 9426 * reorg.c (follow_jumps): Use invariant that JUMP_TABLE_DATA always 9427 follows immediately after the jump table data label. 9428 * config/nds32/nds32.c (nds32_output_casesi_pc_relative): Likewise. 9429 * config/sh/sh.c (barrier_align): Likewise. Rearrange code such 9430 that JUMP_TABLE_DATA is not expected to be an active_insn_p object. 9431 94322013-11-13 Teresa Johnson <tejohnson@google.com> 9433 9434 PR ipa/58862 9435 * predict.c (drop_profile): Error is currently too strict. 9436 (handle_missing_profiles): Pass call_count to drop_profile. 9437 94382013-11-13 Teresa Johnson <tejohnson@google.com> 9439 9440 PR ipa/58862 9441 * ipa-inline.c (edge_badness): Fix overflow. 9442 94432013-11-13 Vladimir Makarov <vmakarov@redhat.com> 9444 9445 PR rtl-optimization/59036 9446 * ira-color.c (struct allocno_color_data): Add new members 9447 first_thread_allocno, next_thread_allocno, thread_freq. 9448 (sorted_copies): New static var. 9449 (allocnos_conflict_by_live_ranges_p, copy_freq_compare_func): Move up. 9450 (allocno_thread_conflict_p, merge_threads) 9451 (form_threads_from_copies, form_threads_from_bucket) 9452 (form_threads_from_colorable_allocno, init_allocno_threads): New 9453 functions. 9454 (bucket_allocno_compare_func): Add comparison by thread frequency 9455 and threads. 9456 (add_allocno_to_ordered_bucket): Rename to 9457 add_allocno_to_ordered_colorable_bucket. Remove parameter. 9458 (push_only_colorable): Call form_threads_from_bucket. 9459 (color_pass): Call init_allocno_threads. Use 9460 consideration_allocno_bitmap instead of coloring_allocno_bitmap 9461 for nuillify allocno color data. 9462 (ira_initiate_assign, ira_finish_assign): Allocate/free sorted_copies. 9463 (coalesce_allocnos): Use static sorted copies. 9464 94652013-11-13 Jakub Jelinek <jakub@redhat.com> 9466 9467 * passes.c (execute_todo): Don't call do_per_function if 9468 flags are zero. 9469 (execute_one_ipa_transform_pass, execute_one_pass): Don't call 9470 execute_function_dump if dump_file is NULL. 9471 94722013-11-13 Martin Jambor <mjambor@suse.cz> 9473 9474 * cgraph.c (cgraph_get_create_node): Do what 9475 cgraph_get_create_real_symbol_node used to do. 9476 (cgraph_get_create_real_symbol_node): Removed. Changed all users to 9477 call cgraph_get_create_node. 9478 * cgraph.h (cgraph_get_create_real_symbol_node): Removed. 9479 * lto-streamer-in.c (input_function): Call cgraph_get_node instead of 9480 cgraph_get_create_node. Assert we get a node. 9481 94822013-11-13 Tejas Belagod <tejas.belagod@arm.com> 9483 9484 * config/aarch64/aarch64-simd.md (vec_extract): New. 9485 94862013-11-13 Tejas Belagod <tejas.belagod@arm.com> 9487 9488 * config/aarch64/aarch64-simd.md (vec_set<mode>): Add w -> w option to 9489 the constraint. 9490 94912013-11-13 Eric Botcazou <ebotcazou@adacore.com> 9492 9493 * cfgexpand.c (expand_used_vars): Allocate space for partitions based 9494 on PARM_DECLs or RESULT_DECLs only if they are ignored for debug info 9495 or if optimization is enabled. 9496 * tree-ssa-coalesce.c (coalesce_ssa_name): If optimization is disabled, 9497 require that all the names based on a PARM_DECL or a RESULT_DECL that 9498 isn't ignored for debug info be coalesced. 9499 95002013-11-13 Jan-Benedict Glaw <jbglaw@lug-owl.de> 9501 9502 * config/c6x/c6x.c: Include "gimple-expr.h". 9503 95042013-11-13 Richard Biener <rguenther@suse.de> 9505 9506 * gimple-streamer-out.c (output_gimple_stmt): Also wrap 9507 decls in ADDR_EXPR operands inside a MEM_REF and optimize that. 9508 * gimple-streamer-in.c (input_gimple_stmt): Remove now dead code 9509 dealing with type mismatches inside component reference chains. 9510 95112013-11-13 Marc Glisse <marc.glisse@inria.fr> 9512 9513 PR tree-optimization/59077 9514 * ipa-pure-const.c (better_state): Update *state. 9515 95162013-11-13 Christophe Lyon <christophe.lyon@linaro.org> 9517 9518 * config/aarch64/aarch64.h (FRAME_GROWS_DOWNWARD): Define to 1. 9519 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset): 9520 Update offset calculations. 9521 95222013-11-13 Eric Botcazou <ebotcazou@adacore.com> 9523 9524 PR ada/35998 9525 * dwarf2out.c (add_byte_size_attribute): Also use int_size_in_bytes 9526 for fields. Do not add the attribute if the size is negative. 9527 95282013-11-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 9529 9530 * config/arm/arm.c: Include aarch-cost-tables.h. 9531 (generic_extra_costs): Move from here... 9532 * config/arm/aarch-cost-tables.h: ... To here. New file. 9533 95342013-11-13 Alexander Ivchenko <alexander.ivchenko@intel.com> 9535 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 9536 Sergey Lega <sergey.s.lega@intel.com> 9537 Anna Tikhonova <anna.tikhonova@intel.com> 9538 Ilya Tocar <ilya.tocar@intel.com> 9539 Andrey Turetskiy <andrey.turetskiy@intel.com> 9540 Ilya Verbin <ilya.verbin@intel.com> 9541 Kirill Yukhin <kirill.yukhin@intel.com> 9542 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 9543 9544 * config/i386/i386.c (ix86_print_operand): Support z-masking. 9545 * config/i386/predicate.md (const_0_to_4_operand): New. 9546 (const_0_to_5_operand): Ditto. 9547 * config/i386/sse.md (UNSPEC_COMPRESS): New. 9548 (UNSPEC_COMPRESS_STORE): Ditto. 9549 (UNSPEC_EXPAND): Ditto. 9550 (UNSPEC_EMBEDDED_ROUNDING): Ditto. 9551 (define_mode_attr ssescalarsize): Ditto. 9552 (avx512f_load<mode>_mask): Ditto. 9553 (avx512f_store<mode>_mask): Ditto. 9554 (avx512f_storedqu<mode>_mask): Ditto. 9555 (avx512f_vmcmp<mode>3_mask): Ditto. 9556 (avx512f_fmadd_<mode>_mask): Ditto. 9557 (avx512f_fmadd_<mode>_mask3): Ditto. 9558 (avx512f_fmsub_<mode>_mask): Ditto. 9559 (avx512f_fmsub_<mode>_mask3): Ditto. 9560 (avx512f_fnmadd_<mode>_mask): Ditto. 9561 (avx512f_fnmadd_<mode>_mask3): Ditto. 9562 (avx512f_fnmsub_<mode>_mask): Ditto. 9563 (avx512f_fnmsub_<mode>_mask3): Ditto. 9564 (avx512f_fmaddsub_<mode>_mask): Ditto. 9565 (avx512f_fmaddsub_<mode>_mask3): Ditto. 9566 (avx512f_fmsubadd_<mode>_mask): Ditto. 9567 (avx512f_fmsubadd_<mode>_mask3): Ditto. 9568 (vec_unpacku_float_lo_v16si): Ditto. 9569 (avx512f_vextract<shuffletype>32x4_mask): Ditto. 9570 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto. 9571 (avx512f_vextract<shuffletype>64x4_mask): Ditto. 9572 (vec_extract_lo_<mode>_maskm): Ditto. 9573 (vec_extract_hi_<mode>_maskm): Ditto. 9574 (avx512f_vternlog<mode>_mask): Ditto. 9575 (avx512f_shufps512_mask): Ditto. 9576 (avx512f_fixupimm<mode>_mask): Ditto. 9577 (avx512f_shufpd512_mask): Ditto. 9578 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto. 9579 (avx512f_<code>v8div16qi2_mask/trunc): Ditto. 9580 (*avx512f_<code>v8div16qi2_store_mask): Ditto. 9581 (ashr<mode>3<mask_name>): Ditto. 9582 (avx512f_vinsert<shuffletype>32x4_mask): Ditto. 9583 (avx512f_vinsert<shuffletype>64x4_mask): Ditto. 9584 (avx512f_shuf_<shuffletype>64x2_mask): Ditto. 9585 (avx512f_shuf_<shuffletype>32x4_mask): Ditto. 9586 (avx512f_pshufdv3_mask): Ditto. 9587 (avx512f_perm<mode>_mask): Ditto. 9588 (avx512f_vpermi2var<mode>3_mask): Ditto. 9589 (avx512f_vpermt2var<mode>3_mask): Ditto. 9590 (avx512f_compress<mode>_mask): Ditto. 9591 (avx512f_compressstore<mode>_mask): Ditto. 9592 (avx512f_expand<mode>_mask): Ditto. 9593 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Extend 9594 to support masking. 9595 (avx512f_storeu<ssemodesuffix>512_mask): Ditto. 9596 (<plusminus_insn><mode>3<mask_name>): Ditto. 9597 (*<plusminus_insn><mode>3<mask_name>): Ditto. 9598 (mul<mode>3<mask_name>): Ditto. 9599 (*mul<mode>3<mask_name>): Ditto. 9600 (<sse>_div<mode>3<mask_name>): Ditto. 9601 (<mask_codefor>rcp14<mode><mask_name>): Ditto. 9602 (<sse>_sqrt<mode>2<mask_name>): Ditto. 9603 (<mask_codefor>rsqrt14<mode><mask_name>): Ditto. 9604 (<code><mode>3<mask_name>/smaxmin): Ditto. 9605 (*<code><mode>3_finite<mask_name>/smaxmin): Ditto. 9606 (*<code><mode>3<mask_name>/smaxmin): Ditto. 9607 (float<sseintvecmodelower><mode>2<mask_name>): Ditto. 9608 (ufloatv16siv16sf2<mask_name>): Ditto. 9609 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name>): Ditto. 9610 (<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name>): Ditto. 9611 (<fixsuffix>fix_truncv16sfv16si2<mask_name>): Ditto. 9612 (float<si2dfmodelower><mode>2<mask_name>): Ditto. 9613 (ufloatv8siv8df<mask_name>): Ditto. 9614 (<mask_codefor>avx512f_cvtpd2dq512<mask_name>): Ditto. 9615 (avx512f_ufix_notruncv8dfv8si<mask_name>): Ditto. 9616 (<fixsuffix>fix_truncv8dfv8si2<mask_name>): Ditto. 9617 (<mask_codefor>avx512f_cvtpd2ps512<mask_name>): Ditto. 9618 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix><mask_name>): Ditto. 9619 (<mask_codefor>avx512f_unpckhps512<mask_name>): Ditto. 9620 (<mask_codefor>avx512f_unpcklps512<mask_name>): Ditto. 9621 (<mask_codefor>avx512f_movshdup512<mask_name>): Ditto. 9622 (<mask_codefor>avx512f_movsldup512<mask_name>): Ditto. 9623 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto. 9624 (vec_extract_lo_<mode><mask_name>): Ditto. 9625 (vec_extract_hi_<mode><mask_name>): Ditto. 9626 (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto. 9627 (avx512f_movddup512<mask_name>): Ditto. 9628 (avx512f_unpcklpd512<mask_name>): Ditto. 9629 (*avx512f_unpcklpd512<mask_name>): Ditto. 9630 (*avx512f_vmscalef<mode>): Ditto. 9631 (avx512f_scalef<mode><mask_name>): Ditto. 9632 (avx512f_getexp<mode><mask_name>): Ditto. 9633 (<mask_codefor>avx512f_align<mode><mask_name>): Ditto. 9634 (avx512f_rndscale<mode><mask_name>): Ditto. 9635 (avx512f_shufps512_1<mask_name>): Ditto. 9636 (avx512f_shufpd512_1<mask_name>): Ditto. 9637 (<plusminus_insn><mode>3<mask_name>): Ditto. 9638 (*<plusminus_insn><mode>3<mask_name>): Ditto. 9639 (vec_widen_umult_even_v16si<mask_name>): Ditto. 9640 (*vec_widen_umult_even_v16si<mask_name>): Ditto. 9641 (vec_widen_smult_even_v16si<mask_name>): Ditto. 9642 (*vec_widen_smult_even_v16si<mask_name>): Ditto. 9643 (mul<mode>3<mask_name>): Ditto. 9644 (*<sse4_1_avx2>_mul<mode>3<mask_name>): Ditto. 9645 (<shift_insn><mode>3<mask_name>): Ditto. 9646 (avx512f_<rotate>v<mode><mask_name>/rotate): Ditto. 9647 (avx512f_<rotate><mode><mask_name>): Ditto. 9648 (<code><mode>3<mask_name>/maxmin): Ditto. 9649 (*avx2_<code><mode>3<mask_name>/maxmin): Ditto. 9650 (<sse2_avx2>_andnot<mode>3<mask_name>): Ditto. 9651 (*andnot<mode>3<mask_name>): Ditto. 9652 (<mask_codefor><code><mode>3<mask_name>/any_logic): Ditto. 9653 (<mask_codefor>avx512f_interleave_highv16si<mask_name>): Ditto. 9654 (<mask_codefor>avx512f_interleave_lowv16si<mask_name>): Ditto. 9655 (<mask_codefor>avx512f_vinsert<shuffletype>32x4_1<mask_name>): Ditto. 9656 (vec_set_lo_<mode><mask_name>): Ditto. 9657 (vec_set_hi_<mode><mask_name>): Ditto. 9658 (avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ditto. 9659 (avx512f_shuf_<shuffletype>32x4_1<mask_name>): Ditto. 9660 (avx512f_pshufd_1<mask_name>): Ditto. 9661 (<mask_codefor>abs<mode>2<mask_name>): Ditto. 9662 (<mask_codefor>avx512f_<code>v16qiv16si2<mask_name>): Ditto. 9663 (avx512f_<code>v16hiv16si2<mask_name>/any_extend): Ditto. 9664 (avx512f_<code>v8qiv8di2<mask_name>/any_extend): Ditto. 9665 (avx512f_<code>v8hiv8di2<mask_name>/any_extend): Ditto. 9666 (avx512f_<code>v8siv8di2<mask_name>/any_extend): Ditto. 9667 (avx512er_exp2<mode><mask_name>): Ditto. 9668 (<mask_codefor>avx512er_rcp28<mode><mask_name>): Ditto. 9669 (<mask_codefor>avx512er_rsqrt28<mode><mask_name>): Ditto. 9670 (<avx2_avx512f>_permvar<mode><mask_name>): Ditto. 9671 (<avx2_avx512f>_perm<mode>_1<mask_name>): Ditto. 9672 (<mask_codefor>avx512f_vec_dup<mode><mask_name>): Ditto. 9673 (<mask_codefor>avx512f_broadcast<mode><mask_name>/V16FI): Ditto. 9674 (<mask_codefor>avx512f_broadcast<mode><mask_name>/V8FI): Ditto. 9675 (<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>): Ditto. 9676 (<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>): Ditto. 9677 (<sse2_avx_avx512f>_vpermil<mode><mask_name>/VF2): Ditto. 9678 (<sse2_avx_avx512f>_vpermil<mode><mask_name>/VF1): Ditto. 9679 (*<sse2_avx_avx512f>_vpermilp<mode><mask_name>): Ditto. 9680 (<sse2_avx_avx512f>_vpermilvar<mode>3<mask_name>): Ditto. 9681 (<avx2_avx512f>_ashrv<mode><mask_name>): Ditto. 9682 (<avx2_avx512f>_<shift_insn>v<mode><mask_name>): Ditto. 9683 (<mask_codefor>avx512f_vcvtph2ps512<mask_name>): Ditto. 9684 (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Ditto. 9685 (avx512f_getmant<mode><mask_name>): Ditto. 9686 (clz<mode>2<mask_name>): Ditto. 9687 (<mask_codefor>conflict<mode><mask_name>): Ditto. 9688 (*srcp14<mode>): Remove visibility. 9689 (*rsqrt14<mode>): Ditto. 9690 (*fma_fmsub_<mode>): Ditto. 9691 (*fma_fnmadd_<mode>): Ditto. 9692 (*avx512f_rndscale<mode>): Ditto. 9693 * config/i386/subst.md: New file. 9694 96952013-11-13 Joseph Myers <joseph@codesourcery.com> 9696 9697 * doc/extend.texi (Statement Exprs, Typeof): Discuss __auto_type. 9698 * ginclude/stdatomic.h (kill_dependency, atomic_store_explicit) 9699 (atomic_load_explicit, atomic_exchange_explicit) 9700 (atomic_compare_exchange_strong_explicit) 9701 (atomic_compare_exchange_weak_explicit): Use __auto_type to 9702 declare variable initialized with PTR argument. 9703 97042013-11-12 Jeff Law <law@redhat.com> 9705 9706 * tree-ssa-threadedge.c (thread_around_empty_blocks): New argument 9707 backedge_seen_p. Set, use and pass it to children appropriately. 9708 (thread_through_normal_block): Similarly. 9709 (thread_across_edge): Similarly. 9710 9711 * gimple-ssa-isolate-paths.c (check_loadstore): Mark discovered 9712 memory references as volatile. 9713 (insert_trap_and_remove_trailing_statements): Fix comment. 9714 97152013-11-12 Vladimir Makarov <vmakarov@redhat.com> 9716 9717 PR other/58712 9718 * ira-costs.c (record_operand_costs): Check operands number for 9719 the single set. 9720 97212013-11-12 Michael Meissner <meissner@linux.vnet.ibm.com> 9722 9723 PR target/59054 9724 * config/rs6000/rs6000.md (movdi_internal32): Eliminate 9725 constraints that would allow DImode into the traditional Altivec 9726 registers, but cause undesirable code generation when loading 0 as 9727 a constant. 9728 (movdi_internal64): Likewise. 9729 (cmp<mode>_fpr): Do not use %x for CR register output. 9730 (extendsfdf2_fpr): Fix constraints when -mallow-upper-df and 9731 -mallow-upper-sf debug switches are used. 9732 97332013-11-12 Andrew MacLeod <amacleod@redhat.com> 9734 9735 * gimple-expr.h (create_tmp_var_name, create_tmp_var_raw, 9736 create_tmp_var, create_tmp_reg, mark_addressable, is_gimple_reg_rhs): 9737 Relocate prototypes from gimple.h. 9738 * gimplify.h: New File. Relocate some prototypes from gimple.h here. 9739 (gimple_predicate, enum fallback, enum gimplify_status): Relocate 9740 from gimple.h. 9741 * gimple.h: Move some prototypes to gimplify.h. 9742 (gimple_predicate, enum fallback, enum gimplify_status): Move to 9743 gimplify.h. 9744 (gimple_do_not_emit_location_p, gimple_set_do_not_emit_location): 9745 Relocate from gimpify.c. 9746 * gimple-expr.c (remove_suffix, tmp_var_id_num, create_tmp_var_name, 9747 create_tmp_var_raw, create_tmp_var, create_tmp_reg, mark_addressable, 9748 is_gimple_reg_rhs) Relocate from gimplify.c. 9749 * gimplify.c (mark_addressable): Move to gimple-expr.c. 9750 (gimple_seq_add_stmt_without_update): Move to gimple.c. 9751 (remove_suffix, tmp_var_id_num, create_tmp_var_name, 9752 create_tmp_var_raw, create_tmp_var, create_tmp_reg, 9753 is_gimple_reg_rhs): Move to gimple-expr.c. 9754 (should_carry_location_p): Move to gimple.c. 9755 (gimple_do_not_emit_location_p, gimple_set_do_not_emit_location): Move 9756 to gimple.h. 9757 (annotate_one_with_location, annotate_all_with_location_after, 9758 annotate_all_with_location): Move to gimple.c. 9759 (compare_case_labels, sort_case_labels, 9760 preprocess_case_label_vec_for_gimple): Move to gimple.c. 9761 (rhs_predicate_for): Make static. 9762 (gimplify_assign): Relocate from gimple.c. 9763 * gimple.c (gimplify_assign): Move to gimplify.c. 9764 (gimple_seq_add_stmt_without_update, should_carry_location_p, 9765 annotate_one_with_location, annotate_all_with_location_after, 9766 annotate_all_with_location, compare_case_labels, sort_case_labels, 9767 preprocess_case_label_vec_for_gimple): Relocate from gimplify.c. 9768 * tree.h (unshare_expr, unshare_expr_without_location, 9769 mark_addressable): Move prototypes to gimplify.h. 9770 * Makefile.in (GTFILES): gimple-expr.c now has the GTY tag for 9771 tmp_var_id_num 9772 * asan.c: Include gimplify.h rather than gimple.h. 9773 * cfgloopmanip.c: Likewise. 9774 * cgraphunit.c: Likewise. 9775 * cilk-common.c: Likewise. 9776 * dwarf2out.c: Dont include gimple.h. 9777 * fold-const.c: Include gimplify.h rather than gimple.h. 9778 * function.c: Likewise. 9779 * gimple-fold.c: Likewise. 9780 * gimple-ssa-strength-reduction.c: Likewise. 9781 * graphite-clast-to-gimple.c: Likewise. 9782 * graphite-sese-to-poly.c: Likewise. 9783 * ipa-prop.c: Likewise. 9784 * ipa-split.c: Likewise. 9785 * ipa.c: Likewise. 9786 * langhooks.c: Dont include gimple.h. 9787 * loop-init.c: Include gimplify.h rather than gimple.h. 9788 * omp-low.c: Likewise. 9789 * sese.c: Likewise. 9790 * stor-layout.c: Likewise. 9791 * targhooks.c: Likewise. 9792 * trans-mem.c: Likewise. 9793 * tree-affine.c: Likewise. 9794 * tree-cfg.c: Likewise. 9795 * tree-cfgcleanup.c: Likewise. 9796 * tree-complex.c: Likewise. 9797 * tree-if-conv.c: Likewise. 9798 * tree-inline.c: Likewise. 9799 * tree-iterator.c: Likewise. 9800 * tree-loop-distribution.c: Likewise. 9801 * tree-nested.c: Likewise. 9802 * tree-parloops.c: Likewise. 9803 * tree-predcom.c: Likewise. 9804 * tree-profile.c: Likewise. 9805 * tree-scalar-evolution.c: Likewise. 9806 * tree-sra.c: Likewise. 9807 * tree-ssa-address.c: Likewise. 9808 * tree-ssa-ccp.c: Likewise. 9809 * tree-ssa-dce.c: Likewise. 9810 * tree-ssa-forwprop.c: Likewise. 9811 * tree-ssa-ifcombine.c: Likewise. 9812 * tree-ssa-loop-im.c: Likewise. 9813 * tree-ssa-loop-ivopts.c: Likewise. 9814 * tree-ssa-loop-manip.c: Likewise. 9815 * tree-ssa-loop-niter.c: Likewise. 9816 * tree-ssa-loop-prefetch.c: Likewise. 9817 * tree-ssa-loop-unswitch.c: Likewise. 9818 * tree-ssa-math-opts.c: Likewise. 9819 * tree-ssa-phiopt.c: Likewise. 9820 * tree-ssa-phiprop.c: Likewise. 9821 * tree-ssa-pre.c: Likewise. 9822 * tree-ssa-propagate.c: Likewise. 9823 * tree-ssa-reassoc.c: Likewise. 9824 * tree-ssa-sccvn.c: Likewise. 9825 * tree-ssa-strlen.c: Likewise. 9826 * tree-ssa.c: Likewise. 9827 * tree-switch-conversio: Likewise.n.c 9828 * tree-tailcall.c: Likewise. 9829 * tree-vect-data-refs.c: Likewise. 9830 * tree-vect-generic.c: Likewise. 9831 * tree-vect-loop-manip.c: Likewise. 9832 * tree-vect-loop.c: Likewise. 9833 * tree-vect-patterns.c: Likewise. 9834 * tree-vect-stmts.c: Likewise. 9835 * tsan.c: Likewise. 9836 * value-prof.c: Likewise. 9837 * config/aarch64/aarch64.c: Include gimplify.h instead of gimple.h. 9838 * config/alpha/alpha.c: Likewise. 9839 * config/darwin.c: Likewise. 9840 * config/i386/i386.c: Likewise. 9841 * config/ia64/ia64.c: Likewise. 9842 * config/mep/mep.c: Likewise. 9843 * config/mips/mips.c: Likewise. 9844 * config/rs6000/rs6000.c: Likewise. 9845 * config/s390/s390.c: Likewise. 9846 * config/sh/sh.c: Likewise. 9847 * config/sparc/sparc.c: Likewise. 9848 * config/spu/spu.c: Likewise. 9849 * config/stormy16/stormy16.c: Likewise. 9850 * config/tilegx/tilegx.c: Likewise. 9851 * config/tilepro/tilepro.c: Likewise. 9852 * config/xtensa/xtensa.c: Likewise. 9853 98542013-11-12 Adam Butcher <adam@jessamine.co.uk> 9855 9856 * tree.c (grow_tree_vec_stat): New function ... 9857 * tree.h (grow_tree_vec_stat) (grow_tree_vec): ... and its declaration 9858 and macro front-end. 9859 98602013-11-12 Marek Polacek <polacek@redhat.com> 9861 9862 * final.c (update_alignments): Initialize label to NULL_RTX. 9863 98642013-11-12 Jeff Law <law@redhat.com> 9865 9866 * gimple-ssa-isolate-paths.c (check_loadstore): New function. 9867 (insert_trap_and_remove_trailing_statements): New argument OP which 9868 is the NULL pointer. Emit the trap after the load/store through 9869 the NULL pointer. Simplify the RHS of a store through a NULL pointer 9870 when trivial to do so. 9871 (isolate_path): Corresponding changes. 9872 (gimple_ssa_isolate_erroneous_path): Likewise. 9873 98742013-11-12 Teresa Johnson <tejohnson@google.com> 9875 Jan Hubicka <jh@suse.cz> 9876 9877 * predict.c (drop_profile): New function. 9878 (handle_missing_profiles): Ditto. 9879 (counts_to_freqs): Don't overwrite estimated frequencies 9880 when function has no profile counts. 9881 * predict.h (handle_missing_profiles): Declare. 9882 * tree-inline.c (freqs_to_counts): New function. 9883 (copy_cfg_body): Invoke freqs_to_counts as needed. 9884 * tree-profile.c (tree_profiling): Invoke handle_missing_profiles. 9885 98862013-11-12 H.J. Lu <hongjiu.lu@intel.com> 9887 9888 PR target/59088 9889 * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): 9890 Set for m_HASWELL. 9891 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Set for m_HASWELL. 9892 98932013-11-12 H.J. Lu <hongjiu.lu@intel.com> 9894 9895 PR target/59084 9896 * config/i386/i386.c (ix86_option_override_internal): Check 9897 X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL and 9898 X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL for 9899 MASK_AVX256_SPLIT_UNALIGNED_LOAD and 9900 MASK_AVX256_SPLIT_UNALIGNED_STORE. 9901 9902 * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL): 9903 Clear m_COREI7_AVX and update comments. 9904 (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Likewise. 9905 99062013-11-12 Martin Jambor <mjambor@suse.cz> 9907 9908 PR rtl-optimization/10474 9909 * ira.c (interesting_dest_for_shprep): New function. 9910 (split_live_ranges_for_shrink_wrap): Likewise. 9911 (find_moveable_pseudos): Move calculation of dominance info, 9912 df_analysios and the final anlyses to... 9913 (ira): ...here, call split_live_ranges_for_shrink_wrap. 9914 99152013-11-12 Bin Cheng <bin.cheng@arm.com> 9916 9917 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Refactor the code. 9918 Handle type conversion. 9919 99202013-11-11 Martin Liska <marxin.liska@gmail.com> 9921 Jan Hubicka <jh@suse.cz> 9922 9923 * cgraph.c (dump_cgraph_node): Profile dump added. 9924 * cgraph.h (struct cgraph_node): New time profile variable added. 9925 * cgraphclones.c (cgraph_clone_node): Time profile is cloned. 9926 * gcov-io.h (gcov_type): New profiler type introduced. 9927 * ipa-profile.c (lto_output_node): Streaming for time profile added. 9928 (input_node): Time profiler is read from LTO stream. 9929 * predict.c (maybe_hot_count_p): Hot prediction changed. 9930 * profile.c (instrument_values): New case for time profiler added. 9931 (compute_value_histograms): Read of time profile. 9932 * tree-pretty-print.c (dump_function_header): Time profiler is dumped. 9933 * tree-profile.c (init_ic_make_global_vars): Time profiler 9934 function added. 9935 (gimple_init_edge_profiler): TP function instrumentation. 9936 (gimple_gen_time_profiler): New. 9937 * value-prof.c (gimple_add_histogram_value): Support for time profiler 9938 added. 9939 (dump_histogram_value): TP type added to dumps. 9940 (visit_hist): More sensitive check that takes TP into account. 9941 (gimple_find_values_to_profile): TP instrumentation. 9942 * value-prof.h (hist_type): New histogram type added. 9943 (struct histogram_value_t): Pointer to struct function added. 9944 * libgcc/Makefile.in: New GCOV merge function for TP added. 9945 * libgcov.c: function_counter variable introduced. 9946 (_gcov_merge_time_profile): New. 9947 (_gcov_time_profiler): New. 9948 99492013-11-11 Marc Glisse <marc.glisse@inria.fr> 9950 Jeff Law <law@redhat.com> 9951 9952 * tree-ssa-alias.c (stmt_kills_ref_p_1): Use 9953 ao_ref_init_from_ptr_and_size for builtins. 9954 99552013-11-11 Uros Bizjak <ubizjak@gmail.com> 9956 H.J. Lu <hongjiu.lu@intel.com> 9957 9958 PR target/58853 9959 * config/i386/x86-tune.def 9960 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Rename from 9961 TARGET_MISALIGNED_MOVE_STRING_PROLOGUES. 9962 * config/i386/i386.h 9963 (TARGET_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Rename from 9964 TARGET_MISALIGNED_MOVE_STRING_PROLOGUES_EPILOGUES. Update for renamed 9965 X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES. 9966 * config/i386/i386.c (ix86_expand_set_or_movmem): Use 9967 TARGET_MISALIGNED_MOVE_STRING_PRO_EPILOGUES to calculate 9968 misaligned_prologue_used. Check that 9969 desired_aling <= epilogue_size_needed. 9970 99712013-11-11 Cong Hou <congh@google.com> 9972 9973 PR tree-optimization/59050 9974 * tree-vect-data-refs.c (comp_dr_addr_with_seg_len_pair): Bug fix. 9975 99762013-11-11 Joern Rennecke <joern.rennecke@embecosm.com> 9977 9978 PR middle-end/59049 9979 * expmed.c (emit_store_flag): Fail for const-const comparison. 9980 99812013-11-11 Tristan Gingold <gingold@adacore.com> 9982 Eric Botcazou <ebotcazou@adacore.com> 9983 9984 * tree.h (CONSTRUCTOR_NO_CLEARING): Define. 9985 * tree-core.h (CONSTRUCTOR_NO_CLEARING): Document it. 9986 * tree.def (CONSTRUCTOR): Likewise. 9987 * doc/generic.texi (CONSTRUCTOR): Likewise. Update description. 9988 * gimplify.c (gimplify_init_constructor): Do not clear the object when 9989 the constructor is incomplete and CONSTRUCTOR_NO_CLEARING is set. 9990 99912013-11-11 Basile Starynkevitch <basile@starynkevitch.net> 9992 9993 * toplev.c (toplev_main): Move PLUGIN_FINISH invocation before 9994 diagnostic_finish. 9995 99962013-11-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 9997 9998 * config/arm/arm.c (arm_new_rtx_costs): Return after handling 9999 comparisons. 10000 100012013-11-11 Joern Rennecke <joern.rennecke@embecosm.com> 10002 10003 * config/arc/arc.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define. 10004 100052013-11-08 Jeff Law <law@redhat.com> 10006 10007 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump 10008 threading paths first, then perform PHI node checks if applicable. 10009 100102013-11-10 Karlson2k <k2k@narod.ru> 10011 Kai Tietz <ktietz@redhat.com> 10012 10013 PR plugin/52872 10014 * configure.ac: Adding for exported symbols check 10015 and for rdynamic-check executable-extension. 10016 * configure: Regenerated. 10017 100182013-11-10 Uros Bizjak <ubizjak@gmail.com> 10019 10020 * mode-switching.c (optimize_mode_switching): Mark block as 10021 nontransparent, if last_mode at block exit is different from no_mode. 10022 100232013-11-09 Jan-Benedict Glaw <jbglaw@lug-owl.de> 10024 10025 * function.c (NAME__MAIN): Move to... 10026 * cfgexpand.c (NAME__MAIN): ...here. 10027 100282013-11-09 Richard Sandiford <rdsandiford@googlemail.com> 10029 10030 * target.def (can_use_doloop_p): New hook. 10031 * doc/tm.texi.in (TARGET_CAN_USE_DOLOOP_P): Add. 10032 * doc/tm.texi: Regenerate. 10033 * doc/md.texi (doloop_begin, doloop_end): Update documentation. 10034 * hooks.h (hook_bool_dint_dint_uint_true): Declare. 10035 * hooks.c (hook_bool_dint_dint_uint_true): New function. 10036 * targhooks.h (can_use_doloop_if_innermost): Declare. 10037 * targhooks.c (can_use_doloop_if_innermost): New function. 10038 * target.h: Include double-int.h. 10039 * loop-doloop.c (doloop_optimize): Call targetm.can_use_doloop_p. 10040 Remove iteration count, maximum iteration count, loop depth and 10041 enter-at-top inputs from doloop_begin and doloop_end. 10042 * config/arc/arc.md (doloop_begin, doloop_end): Update for new 10043 interface. 10044 * config/arc/arc.c (arc_can_use_doloop_p): New function. 10045 (TARGET_CAN_USE_DOLOOP_P): Define. 10046 * config/arm/thumb2.md (doloop_end): Update for new interface. 10047 * config/arm/arm.c (TARGET_CAN_USE_DOLOOP_P): Define. 10048 * config/bfin/bfin.md (doloop_end): Update for new interface. 10049 * config/bfin/bfin.c (bfin_can_use_doloop_p): New function. 10050 (TARGET_CAN_USE_DOLOOP_P): Define. 10051 * config/c6x/c6x.md (doloop_end): Update for new interface. 10052 * config/ia64/ia64.md (doloop_end): Update for new interface. 10053 * config/ia64/ia64.c (TARGET_CAN_USE_DOLOOP_P): Define. 10054 * config/mep/mep.md (doloop_begin, doloop_end): Update for new 10055 interface. 10056 * config/mep/mep.c (mep_emit_doloop): Likewise. 10057 (TARGET_CAN_USE_DOLOOP_P): Define. 10058 * config/rs6000/rs6000.md (doloop_end): Update for new interface. 10059 * config/rs6000/rs6000.c (TARGET_CAN_USE_DOLOOP_P): Define. 10060 * config/s390/s390.md (doloop_end): Update for new interface. 10061 * config/sh/sh.md (doloop_end): Likewise. 10062 * config/spu/spu.md (doloop_end): Likewise. 10063 * config/spu/spu.c (TARGET_CAN_USE_DOLOOP_P): Define. 10064 * config/tilegx/tilegx.md (doloop_end): Update for new interface. 10065 * config/tilegx/tilegx.c (TARGET_CAN_USE_DOLOOP_P): Define. 10066 * config/tilepro/tilepro.md (doloop_end): Update for new interface. 10067 * config/tilepro/tilepro.c (TARGET_CAN_USE_DOLOOP_P): Define. 10068 * config/v850/v850.md (doloop_begin, doloop_end): Update for new 10069 interface. 10070 * config/v850/v850.c (TARGET_CAN_USE_DOLOOP_P): Define. 10071 100722013-11-08 H.J. Lu <hongjiu.lu@intel.com> 10073 10074 PR other/59055 10075 * doc/extend.texi: Move Cilk Plus Builtins node before Other 10076 Builtins node. 10077 100782013-11-08 Andrew MacLeod <amacleod@redhat.com> 10079 Joseph Myers <joseph@codesourcery.com> 10080 10081 * ginclude/stdatomic.h: New file. 10082 * Makefile.in (USER_H): Add stdatomic.h. 10083 100842013-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 10085 10086 * config/arm/arm.c (arm_new_rtx_costs): Break after handling 10087 comparisons. 10088 100892013-11-08 Jeff Law <law@redhat.com> 10090 10091 * tree-ssa-threadupdate.h (delete_thread_path): Declare. 10092 * tree-ssa-threadupdate.c (delete_thread_path): New function. 10093 (ssa_redirect_edges, thread_block_1): Use it. 10094 (thread_through_loop_header, mark_threaded_blocks): Likewise. 10095 (thread_through_all_blocks, register_jump_thread): Likewise. 10096 * tree-ssa-threadedge.c (thread_across_edge): Likewise. 10097 100982013-11-08 James Greenhalgh <james.greenhalgh@arm.com> 10099 10100 * config/arm/aarch-common.c 10101 (search_term): New typedef. 10102 (shift_rtx_costs): New array. 10103 (arm_rtx_shift_left_p): New. 10104 (arm_find_sub_rtx_with_search_term): Likewise. 10105 (arm_find_sub_rtx_with_code): Likewise. 10106 (arm_early_load_addr_dep): Add sanity checking. 10107 (arm_no_early_alu_shift_dep): Likewise. 10108 (arm_no_early_alu_shift_value_dep): Likewise. 10109 (arm_no_early_mul_dep): Likewise. 10110 (arm_no_early_store_addr_dep): Likewise. 10111 101122013-11-08 Richard Biener <rguenther@suse.de> 10113 10114 PR tree-optimization/59047 10115 * tree-predcom.c (ref_at_iteration): Handle bitfield accesses properly. 10116 101172013-11-08 Ilya Enkovich <ilya.enkovich@intel.com> 10118 10119 * common.opt (fcheck-pointer-bounds): Move to ... 10120 * c-family/c.opt: ... here. 10121 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): Remove. 10122 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CHKP_SUPPORTED. 10123 * langhooks.h (lang_hooks): Remove chkp_supported field. 10124 * toplev.c (process_options): Remove chkp_supported check. 10125 101262013-11-08 Richard Biener <rguenther@suse.de> 10127 10128 PR tree-optimization/59038 10129 PR tree-optimization/58955 10130 * tree-loop-distribution.c (pg_add_dependence_edges): Revert 10131 previous change. Handle known dependences correctly. 10132 101332013-11-08 Tom de Vries <tom@codesourcery.com> 10134 10135 * config/rs6000/t-xilinx: Remove duplicate contents. 10136 101372013-11-07 Andrew MacLeod <amacleod@redhat.com> 10138 Joseph Myers <joseph@codesourcery.com> 10139 10140 * tree-core.h (enum cv_qualifier): Add TYPE_QUAL_ATOMIC. 10141 (enum tree_index): Add TI_ATOMICQI_TYPE, TI_ATOMICHI_TYPE, 10142 TI_ATOMICSI_TYPE, TI_ATOMICDI_TYPE and TI_ATOMICTI_TYPE. 10143 (struct tree_base): Add atomic_flag field. 10144 * tree.h (TYPE_ATOMIC): New accessor macro. 10145 (TYPE_QUALS, TYPE_QUALS_NO_ADDR_SPACE): Add TYPE_QUAL_ATOMIC. 10146 (TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC): New macro. 10147 (atomicQI_type_node, atomicHI_type_node, atomicSI_type_node) 10148 (atomicDI_type_node, atomicTI_type_node): New macros for type nodes. 10149 * tree.c (set_type_quals): Set TYPE_ATOMIC. 10150 (find_atomic_core_type): New function. 10151 (build_qualified_type): Adjust alignment for qualified types. 10152 (build_atomic_base): New function 10153 (build_common_tree_nodes): Build atomicQI_type_node, 10154 atomicHI_type_node, atomicSI_type_node, atomicDI_type_node and 10155 atomicTI_type_node. 10156 * print-tree.c (print_node): Print atomic qualifier. 10157 * tree-pretty-print.c (dump_generic_node): Print atomic type attribute. 10158 * target.def (atomic_assign_expand_fenv): New hook. 10159 * doc/tm.texi.in (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New @hook. 10160 * doc/tm.texi: Regenerate. 10161 * targhooks.c (default_atomic_assign_expand_fenv): New function. 10162 * targhooks.h (default_atomic_assign_expand_fenv): Declare. 10163 * sync-builtins.def (__atomic_feraiseexcept): New built-in function. 10164 * config/i386/i386-builtin-types.def (VOID_FTYPE_PUSHORT): New 10165 function type. 10166 * config/i386/i386.c (enum ix86_builtins): Add 10167 IX86_BUILTIN_FNSTENV, IX86_BUILTIN_FLDENV, IX86_BUILTIN_FNSTSW and 10168 IX86_BUILTIN_FNCLEX. 10169 (bdesc_special_args): Add __builtin_ia32_fnstenv, 10170 __builtin_ia32_fldenv, __builtin_ia32_fnstsw and __builtin_ia32_fnclex. 10171 (ix86_expand_builtin): Handle the new built-in functions. 10172 (ix86_atomic_assign_expand_fenv): New function. 10173 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New macro. 10174 * config/i386/i386.md (UNSPECV_FNSTENV, UNSPECV_FLDENV) 10175 (UNSPECV_FNSTSW, UNSPECV_FNCLEX): New unspecs. 10176 (fnstenv, fldenv, fnstsw, fnclex): New insns. 10177 101782013-11-07 Steve Ellcey <sellcey@mips.com> 10179 10180 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add fp64 directory. 10181 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add -mfp64 flag. 10182 (MULTILIB_DIRNAMES): Add fp64 directory. 10183 (MULTILIB_EXCEPTIONS): Add new exclusions. 10184 101852013-11-07 Aldy Hernandez <aldyh@redhat.com> 10186 10187 * gimplify.c (gimple_regimplify_operands): Do not set 10188 SSA_NAME_DEF_STMT. 10189 * graphite-sese-to-poly.c (remove_simple_copy_phi): Same. 10190 (rewrite_close_phi_out_of_ssa): Same. 10191 (rewrite_phi_out_of_ssa): Same. 10192 (rewrite_degenerate_phi): Same. 10193 (handle_scalar_deps_crossing_scop_limits): Same. 10194 * tree-if-conv.c (predicate_scalar_phi): Same. 10195 * tree-parloops.c (create_loads_for_reductions): Same. 10196 (create_final_loads_for_reduction): Same. 10197 (create_loads_and_stores_for_name): Same. 10198 (transform_to_exit_first_loop): Same. 10199 (create_parallel_loop): Same. 10200 * tree-ssa-loop-im.c 10201 (move_computations_dom_walker::before_dom_children): Same. 10202 * tree-ssa-loop-manip.c (rewrite_phi_with_iv): Same. 10203 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Same. 10204 * tree-ssa-propagate.c (substitute_and_fold): Same. 10205 * tree-vect-loop.c (vect_finalize_reduction): Same. 10206 * tree-vect-stmts.c (vectorizable_call): Same. 10207 102082013-11-07 Mike Stump <mikestump@comcast.net> 10209 10210 * config/pdp11/pdp11.c: Include dbxout.h. 10211 * config/picochip/picochip.c: Likewise. 10212 102132013-11-07 Cong Hou <congh@google.com> 10214 10215 PR tree-optimization/56764 10216 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): 10217 Combine alias checks if it is possible to amortize the runtime 10218 overhead. Return the number of alias checks after merging. 10219 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): 10220 Use the function vect_create_cond_for_alias_checks () to check 10221 the number of alias checks. 10222 102232013-11-07 Jeff Law <law@redhat.com> 10224 10225 * varpool.c (ctor_for_folding): Fix typo in comment. 10226 102272013-11-07 Joern Rennecke <joern.rennecke@embecosm.com> 10228 10229 * config/arc/arc.c (arc_ifcvt): Use commutativity, e.g.: 10230 reg_a := reg_b + reg_a ==> reg_a := reg_a + reg_b 10231 102322013-11-07 Jeff Law <law@redhat.com> 10233 10234 * doc/invoke.texi (-fisolate-erroneous-paths): Document. 10235 10236 * gimple-ssa-isolate-paths.c (gate_isolate_erroneous_paths): 10237 No longer check if we have __builtin_trap, assume it's available. 10238 102392013-11-07 Diego Novillo <dnovillo@google.com> 10240 10241 * attribs.c (lookup_scoped_attribute_spec): Make static. 10242 (get_attribute_namespace): Likewise. 10243 * builtins.c (more_const_call_expr_args_p): Move from tree.h. 10244 (validate_arglist): Move earlier in the file. Make static. 10245 (expand_stack_restore): Move from stmt.c 10246 (expand_stack_save): Move from stmt.c 10247 (rewrite_call_expr_array): Move earlier in the file. 10248 (rewrite_call_expr_valist): Likewise. 10249 * cfgexpand.c: Include hard-reg-set.h before tree.h 10250 Include recog.h. 10251 Include output.h. 10252 (expand_asm_loc): Move from stmt.c. 10253 (n_occurrences): Move from stmt.c. 10254 (check_operand_nalternatives): Move from stmt.c. 10255 (tree_conflicts_with_clobbers_p): Move from stmt.c. 10256 (expand_asm_operands): Move from stmt.c 10257 (expand_asm_stmt): Move from stmt.c 10258 (expand_computed_goto): Move from stmt.c 10259 (expand_goto): Move from stmt.c 10260 (expand_null_return_1): Move from stmt.c 10261 (expand_null_return): Move from stmt.c 10262 (expand_value_return): Move from stmt.c 10263 (expand_return): Move from stmt.c 10264 (expand_main_function): Move from function.c 10265 (stack_protect_prologue): Move from function.c 10266 * cgraphclones.c (build_function_type_skip_args): Move from tree.c. 10267 (build_function_decl_skip_args): Move from tree.c. 10268 * explow.c (tree_expr_size): Move from tree.c. 10269 * expr.c (addr_expr_of_non_mem_decl_p): Remove. 10270 (fields_length): Move from tree.c. 10271 * fold-const.c (size_low_cst): Move from tree.c. 10272 (tree_expr_nonzero_warnv_p): Make static. Move earlier in the file. 10273 (tree_expr_nonzero_p): Make static. Move earlier in the file. 10274 (fold_build3_initializer_loc): Remove. 10275 (tree_invalid_nonnegative_warnv_p): Make static. 10276 * function.c (expand_main_function): Move to cfgexpand.c. 10277 (stack_protect_prologue): Move to cfgexpand.c. 10278 (set_insn_locations): Move earlier in the file. 10279 * gimple-fold.c: Include langhooks.h. 10280 (truth_type_for): Move from tree.c. 10281 * print-tree.c (print_vec_tree): Remove. 10282 * stmt.c (expand_computed_goto): Move to cfgexpand.c. 10283 (expand_goto): Move to cfgexpand.c. 10284 (n_occurrences): Move to cfgexpand.c. 10285 (expand_asm_loc): Move to cfgexpand.c 10286 (tree_conflicts_with_clobbers_p): Move to cfgexpand.c. 10287 (expand_asm_operands): Move to cfgexpand.c. 10288 (expand_asm_stmt): Move to cfgexpand.c. 10289 (check_operand_nalternatives): Move to cfgexpand.c 10290 (expand_null_return): Move to cfgexpand.c. 10291 (expand_value_return): Move to cfgexpand.c. 10292 (expand_null_return_1): Move to cfgexpand.c. 10293 (expand_return): Move to cfgexpand.c. 10294 (expand_stack_save): Move to builtins.c. 10295 (expand_stack_restore): Move to builtins.c 10296 * symtab.c: Include output.h. 10297 (decl_assembler_name_hash): Move from tree.c. 10298 (decl_assembler_name_equal): Move from tree.c. 10299 * trans-mem.c (is_tm_safe_or_pure): Move from tree.h. 10300 * tree-eh.c (in_array_bounds_p): Move from tree.c. 10301 (range_in_array_bounds_p): Move from tree.c. 10302 * tree-object-size.c (fini_object_sizes): Make static. 10303 * tree-ssa-dom.c (iterative_hash_exprs_commutative): Move from tree.h. 10304 * tree-vrp.c (ssa_name_nonnegative_p): Remove. 10305 * tree.c (decl_assembler_name_equal): Move to symtab.c. 10306 (tree_expr_size): Move to explow.c. 10307 (decl_assembler_name_hash): Move to symtab.c. 10308 (real_twop): Remove. 10309 (tree_expr_size): Move to explow.c. 10310 (stabilize_reference_1): Move earlier in the file. Make static. 10311 (omp_remove_redundant_declare_simd_attrs): Remove. 10312 (simple_cst_list_equal): Move earlier in the file. Make static. 10313 (size_low_cst): Move to fold-const.c. 10314 (build_type_no_quals): Remove. 10315 (build_function_type_skip_args): Move to cgraphclones.c. 10316 (build_function_decl_skip_args): Move to cgraphclones.c. 10317 (in_array_bounds_p): Move to tree-eh.c. 10318 (range_in_array_bounds_p): Move to tree-eh.c. 10319 (truth_type_for): Move to gimple-fold.c. 10320 (list_equal_p): Remove. 10321 * tree.h (decl_assembler_name_equal): Remove. 10322 (decl_assembler_name_hash): Remove. 10323 (truth_type_for): Remove. 10324 (build_type_no_quals): Remove. 10325 (build_function_decl_skip_args): Remove. 10326 (in_array_bounds_p): Remove. 10327 (range_in_array_bounds_p): Remove. 10328 (size_low_cst): Remove. 10329 (omp_remove_redundant_declare_simd_attrs): Remove. 10330 (tree_expr_size): Remove. 10331 (fields_length): Remove. 10332 (stabilize_reference_1): Remove. 10333 (expand_goto): Remove. 10334 (expand_stack_save): Remove. 10335 (expand_stack_restore): Remove. 10336 (expand_return): Remove. 10337 (fold_build3_initializer_loc): Remove. 10338 (tree_expr_nonzero_p): Remove. 10339 (tree_invalid_nonnegative_warnv_p): Remove. 10340 (tree_expr_nonzero_warnv_p): Remove. 10341 (fold_builtin_snprintf_chk): Remove. 10342 (validate_arglist): Remove. 10343 (iterative_hash_exprs_commutative): Move to tree-ssa-dom.c. 10344 (simple_cst_list_equal): Remove. 10345 (real_twop): Remove. 10346 (expand_main_function): Remove. 10347 (stack_protect_prologue): Remove. 10348 (print_vec_tree): Remove. 10349 (lookup_scoped_attribute_spec): Remove. 10350 (get_attribute_namespace): Remove. 10351 (expand_computed_goto): Remove. 10352 (expand_asm_stmt): Remove. 10353 (list_equal_p): Remove. 10354 (ssa_name_nonnegative_p): Remove. 10355 (fini_object_sizes): Remove. 10356 (addr_expr_of_non_mem_decl_p): Remove. 10357 (is_tm_safe_or_pure): Move to trans-mem.c. 10358 (more_const_call_expr_args_p): Remove. 10359 (save_vtable_map_decl): Remove. 10360 103612013-11-07 Thomas Schwinge <thomas@codesourcery.com> 10362 10363 * doc/sourcebuild.texi (Top Level) <lto-plugin>: GNU ld can use 10364 linker plugins, too. 10365 10366 * config/arc/arc.h (LINK_COMMAND_SPEC): For -ftree-parallelize-loops=*, 10367 link to libgomp and its dependencies. 10368 * config/ia64/hpux.h (LIB_SPEC): Likewise. 10369 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise. 10370 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise. 10371 * gcc.c (GOMP_SELF_SPECS): Update comment about libgomp's dependencies. 10372 103732013-11-07 Jakub Jelinek <jakub@redhat.com> 10374 10375 * tree-ssa-loop-niter.c: Include tree-ssanames.h. 10376 (determine_value_range): Add loop argument. Use get_range_info to 10377 improve range. 10378 (bound_difference): Adjust caller. 10379 103802013-11-07 Richard Biener <rguenther@suse.de> 10381 Jakub Jelinek <jakub@redhat.com> 10382 10383 * tree-vrp.c (find_assert_locations): Pre-seed live bitmaps for loop 10384 latches from header PHI arguments from the latch edge. 10385 103862013-11-07 Paolo Carlini <paolo.carlini@oracle.com> 10387 10388 PR c++/58176 10389 * varasm.c (output_constant): Handle NULLPTR_TYPE. 10390 103912013-11-07 H.J. Lu <hongjiu.lu@intel.com> 10392 10393 * config/i386/i386.c (ix86_expand_set_or_movmem): Don't set 10394 misaligned_prologue_used when it has been set. 10395 103962013-11-07 Yury Gribov <y.gribov@samsung.com> 10397 Jakub Jelinek <jakub@redhat.com> 10398 10399 PR sanitizer/59029 10400 * asan.c (get_mem_refs_of_builtin_call): Allow 10401 integer literals as addresses in instrumented builtins. 10402 104032013-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 10404 10405 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address): 10406 Explain why plus_constant is not used. 10407 104082013-11-07 Richard Biener <rguenther@suse.de> 10409 10410 * tree-ssa-ccp.c (canonicalize_float_value): Rename to ... 10411 (canonicalize_value): ... this. Also handle stripping of 10412 TREE_OVERFLOW. 10413 (get_value, set_lattice_value, get_value_for_expr): Adjust. 10414 * gimple-fold.c (canonicalize_constructor_val): Strip TREE_OVERFLOW. 10415 * tree-ssa-threadedge.c (set_ssa_name_value): Likewise. 10416 104172013-11-07 Richard Biener <rguenther@suse.de> 10418 10419 * tree-dfa.c (get_ref_base_and_extent): Fix casting. 10420 104212013-11-07 H.J. Lu <hongjiu.lu@intel.com> 10422 10423 PR target/59034 10424 * config/i386/i386.md (push peepholer/splitter): Use Pmode 10425 with stack_pointer_rtx. 10426 104272013-11-07 Bin Cheng <bin.cheng@arm.com> 10428 10429 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Check equality 10430 using operand_equal_p. 10431 104322013-11-07 Bin Cheng <bin.cheng@arm.com> 10433 10434 * tree-ssa-loop-ivopts.c (alloc_iv): Lower address expressions. 10435 * tree-affine.c (get_inner_reference_aff): Return base. 10436 * tree-affine.h (get_inner_reference_aff): Change prototype. 10437 104382013-11-06 Tobias Burnus <burnus@net-b.de> 10439 10440 * doc/invoke.texi (Wdate-time): Fix typo. 10441 104422013-11-06 Oleg Endo <olegendo@gcc.gnu.org> 10443 10444 * config/sh/sh.md (addsf3, divsf3, divsf3_i, rsqrtsf2, cmpgtdf_t, 10445 cmpeqdf_t, *ieee_ccmpeqdf_t, negdf2, sqrtdf2, absdf2): Use 10446 fp_arith_reg_operand instead of arith_reg_operand. 10447 104482013-11-06 Oleg Endo <olegendo@gcc.gnu.org> 10449 10450 * config/sh/sh.md (adddi3): Remove empty constraints. 10451 Remove can_create_pseudo_p and arith_reg_operand check. 10452 (adddi3_compact, subdi3_compact, *negdi2): Remove constraints. 10453 Split before reload. 10454 104552013-11-06 Jeff Law <law@redhat.com> 10456 Tom Tromey <tromey@redhat.com> 10457 10458 * gdbinit.in: Disable strict type checking. 10459 104602013-11-06 Vladimir Makarov <vmakarov@redhat.com> 10461 10462 * tree-pass.h (make_pass_live_range_shrinkage): New external. 10463 * timevar.def (TV_LIVE_RANGE_SHRINKAGE): New. 10464 * sched-rgn.c (gate_handle_live_range_shrinkage): New. 10465 (rest_of_handle_live_range_shrinkage): Ditto 10466 (class pass_live_range_shrinkage): Ditto. 10467 (pass_data_live_range_shrinkage): Ditto. 10468 (make_pass_live_range_shrinkage): Ditto. 10469 * sched-int.h (initialize_live_range_shrinkage): New prototype. 10470 (finish_live_range_shrinkage): Ditto. 10471 * sched-deps.c (create_insn_reg_set): Make void return value. 10472 * passes.def: Add pass_live_range_shrinkage. 10473 * ira.c (update_equiv_regs): Don't move if flag_live_range_shrinkage. 10474 * haifa-sched.c (live_range_shrinkage_p): New. 10475 (initialize_live_range_shrinkage, finish_live_range_shrinkage): 10476 New functions. 10477 (rank_for_schedule): Add code for pressure relief through live 10478 range shrinkage. 10479 (schedule_insn): Print more debug info. 10480 (sched_init): Setup SCHED_PRESSURE_WEIGHTED for pressure relief 10481 through live range shrinkage. 10482 * doc/invoke.texi (-flive-range-shrinkage): New. 10483 * common.opt (flive-range-shrinkage): New. 10484 104852013-11-06 Uros Bizjak <ubizjak@gmail.com> 10486 10487 PR target/59021 10488 * config/i386/i386.c (ix86_avx_u128_mode_needed): Require 10489 AVX_U128_DIRTY mode for call_insn RTXes that use AVX256 registers. 10490 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY mode for call_insn 10491 RTXes that return in AVX256 register. 10492 104932013-11-06 Richard Biener <rguenther@suse.de> 10494 10495 PR tree-optimization/58653 10496 * tree-predcom.c (ref_at_iteration): Rewrite to generate a MEM_REF. 10497 (prepare_initializers_chain): Adjust. 10498 104992013-11-06 Andrew MacLeod <amacleod@redhat.com> 10500 10501 * gimple.h (block_in_transaction): Move to basic-block.h and rename. 10502 (gimple_in_transaction): Use bb_in_transaction. 10503 * basic-block.h (bb_in_transaction): Relocate here and rename. 10504 * tree-ssa-loop-im.c (execute_sm): Use bb_in_transaction. 10505 105062013-11-06 Richard Biener <rguenther@suse.de> 10507 10508 * tree.c (drop_tree_overflow): New function. 10509 * tree.h (drop_tree_overflow): Declare. 10510 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW. 10511 * tree-vrp.c (range_int_cst_singleton_p): Use 10512 is_overflow_infinity instead of testing TREE_OVERFLOW. 10513 (extract_range_from_assert): Likewise. 10514 (zero_nonzero_bits_from_vr): Likewise. 10515 (extract_range_basic): Likewise. 10516 (register_new_assert_for): Use drop_tree_overflow. 10517 (vrp_visit_phi_node): Likewise. 10518 105192013-11-06 Eric Botcazou <ebotcazou@adacore.com> 10520 10521 * config/i386/i386.c (ix86_expand_prologue): Optimize stack 10522 checking for leaf functions without dynamic stack allocation. 10523 * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust. 10524 (ia64_expand_prologue): Likewise. 10525 * config/mips/mips.c (mips_expand_prologue): Likewise. 10526 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise. 10527 * config/sparc/sparc.c (sparc_expand_prologue): Likewise. 10528 (sparc_flat_expand_prologue): Likewise. 10529 105302013-11-06 James Greenhalgh <james.greenhalgh@arm.com> 10531 10532 * config/aarch64/arm_neon.h (__ST2_LANE_FUNC): Better model data size. 10533 (__ST3_LANE_FUNC): Likewise. 10534 (__ST4_LANE_FUNC): Likewise. 10535 105362013-11-06 Nick Clifton <nickc@redhat.com> 10537 10538 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define the 10539 name returned by msp430_mcu_name. 10540 (LIB_SPEC): If a -T option has not been specified then set a 10541 default, mcu-specific, linker script. 10542 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more mcu names. 10543 * config/msp430/msp430.c (msp430x_names): Likewise. 10544 Alpha sort the names for ease of comparison. 10545 (msp430_mcu_name): New function: Returns a string suitable for 10546 use as a C preprocessor symbol based upon the name of the MCU 10547 being targeted. 10548 (msp430_option_override): Accept msp430x and msp430xv2 as generic 10549 mcu names. 10550 * config/msp430/msp430-protos.h (msp430_mcu_name): Prototype. 10551 10552 * gcc.c (do_spec_1): Do not insert a space after a %* substitution 10553 unless it is the last part of a spec substring. 10554 * doc/invoke.texi (Spec Files): Document space insertion 10555 behaviour of %*. 10556 105572013-11-06 Christian Bruel <christian.bruel@st.com> 10558 10559 * config/sh/sh-mem.cc (sh_expand_cmpnstr, sh_expand_cmpstr): 10560 Factorize probabilities, Use adjust_address instead of 10561 adjust_automodify_address when possible. Enable for optimize. 10562 (sh_expand_strlen): New function. 10563 * config/sh/sh-protos.h (sh_expand_strlen): Declare. 10564 * config/sh/sh.md (strlensi): New pattern. 10565 (UNSPEC_BUILTIN_STRLEN): Define. 10566 105672013-11-06 Jakub Jelinek <jakub@redhat.com> 10568 10569 PR middle-end/58970 10570 * expr.c (get_bit_range): Handle *offset == NULL_TREE. 10571 (expand_assignment): If *bitpos is negative, set *offset 10572 and adjust *bitpos, so that it is not negative. 10573 105742013-11-06 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> 10575 10576 * config/i386/bdver3.md : Added two additional decoder units 10577 to support issue rate of 4 and remodeled vector unit. 10578 * config/i386/i386.c (ix86_issue_rate): Issue rate for BD 10579 architectures is set to 4. 10580 * config/i386/i386.c (ia32_multipass_dfa_lookahead): DFA 10581 lookahead is set to 4 for BD architectures. 10582 105832013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 10584 10585 * config/rs6000/rs6000.c (rs6000_option_override_internal): 10586 Remove restriction against use of VSX instructions when generating 10587 code for little endian mode. 10588 105892013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 10590 10591 * config/rs6000/altivec.md (mulv4si3): Ensure we generate vmulouh 10592 for both big and little endian. 10593 (mulv8hi3): Swap input operands for merge high and merge low 10594 instructions for little endian. 10595 105962013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 10597 10598 * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Change 10599 define_insn to define_expand that uses even patterns for big 10600 endian and odd patterns for little endian. 10601 (vec_widen_smult_even_v16qi): Likewise. 10602 (vec_widen_umult_even_v8hi): Likewise. 10603 (vec_widen_smult_even_v8hi): Likewise. 10604 (vec_widen_umult_odd_v16qi): Likewise. 10605 (vec_widen_smult_odd_v16qi): Likewise. 10606 (vec_widen_umult_odd_v8hi): Likewise. 10607 (vec_widen_smult_odd_v8hi): Likewise. 10608 (altivec_vmuleub): New define_insn. 10609 (altivec_vmuloub): Likewise. 10610 (altivec_vmulesb): Likewise. 10611 (altivec_vmulosb): Likewise. 10612 (altivec_vmuleuh): Likewise. 10613 (altivec_vmulouh): Likewise. 10614 (altivec_vmulesh): Likewise. 10615 (altivec_vmulosh): Likewise. 10616 106172013-11-05 Mike Stump <mikestump@comcast.net> 10618 10619 * Makefile.in (mostlyclean): Remove c-family objects. 10620 106212013-11-05 Ian Lance Taylor <iant@google.com> 10622 10623 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword): 10624 If possible, add .cfi directives to record change to bx. 10625 * config/i386/i386.c (ix86_emit_cfi): New function. 10626 * config/i386/i386-protos.h (ix86_emit_cfi): Declare. 10627 106282013-11-05 Steven Bosscher <steven@gcc.gnu.org> 10629 10630 * rtlanal.c (tablejump_p): Expect a JUMP_TABLE_DATA to always follow 10631 immediately after a label for a tablejump pattern. 10632 10633 * config/arm/arm.c (is_jump_table): Remove. 10634 (create_fix_barrier): Use tablejump_p instead. 10635 (arm_reorg): Likewise. 10636 (thumb1_output_casesi): Expect JUMP_TABLE_DATA to always be NEXT_INSN. 10637 (thumb2_output_casesi): Likewise. 10638 * config/aarch64/aarch64.c (aarch64_output_casesi): Likewise. 10639 * config/sh/sh.md (casesi_worker_1, casesi_worker_2, 10640 casesi_shift_media, casesi_load_media): Likewise. 10641 * config/iq2000/iq2000.md: Likewise (in anonymous define_insn). 10642 * config/microblaze/microblaze.md: Likewise. 10643 106442013-11-05 Tobias Burnus <burnus@net-b.de> 10645 10646 * doc/invoke.texi (-Wdate-time): Document. 10647 106482013-11-05 Richard Sandiford <rdsandiford@googlemail.com> 10649 10650 * double-int.c (lshift_double, rshift_double): Remove 10651 SHIFT_COUNT_TRUNCATED handling. 10652 106532013-11-05 Jeff Law <law@redhat.com> 10654 10655 * Makefile.in (OBJS): Add gimple-ssa-isolate-paths.o 10656 * common.opt (-fisolate-erroneous-paths): Add option and documentation. 10657 * gimple-ssa-isolate-paths.c: New file. 10658 * gimple.c (check_loadstore): New function. 10659 (infer_nonnull_range): Moved into gimple.c from tree-vrp.c 10660 Verify OP is in the argument list and the argument corresponding 10661 to OP is a pointer type. Use operand_equal_p rather than 10662 pointer equality when testing if OP is on the nonnull list. 10663 Use check_loadstore rather than count_ptr_derefs. Handle 10664 GIMPLE_RETURN statements. 10665 * tree-vrp.c (infer_nonnull_range): Remove. 10666 * gimple.h (infer_nonnull_range): Declare. 10667 * opts.c (default_options_table): Add OPT_fisolate_erroneous_paths. 10668 * passes.def: Add pass_isolate_erroneous_paths. 10669 * timevar.def (TV_ISOLATE_ERRONEOUS_PATHS): New timevar. 10670 * tree-pass.h (make_pass_isolate_erroneous_paths): Declare. 10671 * tree-ssa.c (struct count_ptr_d): Remove. 10672 (count_ptr_derefs, count_uses_and_derefs): Remove. 10673 * tree-ssa.h (count_uses_and_derefs): Remove. 10674 106752013-11-05 Jakub Jelinek <jakub@redhat.com> 10676 10677 PR rtl-optimization/58997 10678 * loop-iv.c (iv_subreg): For IV_UNKNOWN_EXTEND, expect 10679 get_iv_value to be in iv->mode rather than iv->extend_mode. 10680 (iv_extend): Likewise. Otherwise, if iv->extend != extend, 10681 use lowpart_subreg on get_iv_value before calling simplify_gen_unary. 10682 * loop-unswitch.c (may_unswitch_on): Make sure op[i] is in the right 10683 mode. 10684 106852013-11-05 Andrew MacLeod <amacleod@redhat.com> 10686 10687 * gimple.h: Move some prototypes to gimple-expr.h and add to include 10688 list. 10689 (extract_ops_from_tree, gimple_call_addr_fndecl, is_gimple_reg_type): 10690 Move to gimple-expr.h. 10691 * gimple-expr.h: New file. Relocate some prototypes from gimple.h. 10692 (types_compatible_p, is_gimple_reg_type, is_gimple_variable, 10693 is_gimple_id, virtual_operand_p, is_gimple_addressable, 10694 is_gimple_constant, extract_ops_from_tree, gimple_call_addr_fndecl): 10695 Relocate here. 10696 * gimple.c (extract_ops_from_tree_1, gimple_cond_get_ops_from_tree, 10697 gimple_set_body, gimple_body, gimple_has_body_p, is_gimple_lvalue, 10698 is_gimple_condexpr, is_gimple_addressable, is_gimple_constant, 10699 is_gimple_address, is_gimple_invariant_address, 10700 is_gimple_ip_invariant_address, is_gimple_min_invariant, 10701 is_gimple_ip_invariant, is_gimple_variable, is_gimple_id, 10702 virtual_operand_p, is_gimple_reg, is_gimple_val, is_gimple_asm_val, 10703 is_gimple_min_lval, is_gimple_call_addr, is_gimple_mem_ref_addr, 10704 gimple_decl_printable_name, useless_type_conversion_p, 10705 types_compatible_p, gimple_can_coalesce_p, copy_var_decl): Move to 10706 gimple-expr.[ch]. 10707 * gimple-expr.c: New File. 10708 (useless_type_conversion_p, gimple_set_body, gimple_body, 10709 gimple_has_body_p, gimple_decl_printable_name, copy_var_decl, 10710 gimple_can_coalesce_p, extract_ops_from_tree_1, 10711 gimple_cond_get_ops_from_tree, is_gimple_lvalue, is_gimple_condexpr, 10712 is_gimple_address, is_gimple_invariant_address, 10713 is_gimple_ip_invariant_address, is_gimple_min_invariant, 10714 is_gimple_ip_invariant, is_gimple_reg, is_gimple_val, 10715 is_gimple_asm_val, is_gimple_min_lval, is_gimple_call_addr, 10716 is_gimple_mem_ref_addr): Relocate here. 10717 * Makefile.in (OBJS): Add gimple-expr.o. 10718 107192013-11-05 David Malcolm <dmalcolm@redhat.com> 10720 10721 * gengtype-parse.c (struct_field_seq): Support empty structs. 10722 107232013-11-05 Uros Bizjak <ubizjak@gmail.com> 10724 10725 * config/i386/t-rtems (MULTILIB_MATCHES): Fix option typos. 10726 107272013-11-05 Uros Bizjak <ubizjak@gmail.com> 10728 10729 * config/i386/i386-c.c (ix86_target_macros): Define _SOFT_FLOAT 10730 for !TARGET_80387. 10731 * config/i386/rtemself.h (TARGET_OS_CPP_BUILTINS): Do not define 10732 _SOFT_FLOAT here. 10733 (LONG_DOUBLE_TYPE_SIZE): New define. 10734 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Ditto. 10735 107362013-11-05 Paolo Carlini <paolo.carlini@oracle.com> 10737 10738 PR c++/58724 10739 * doc/extend.texi [visibility ("visibility_type")]: Add example 10740 about visibility attribute on namespace declaration. 10741 107422013-11-05 Richard Biener <rguenther@suse.de> 10743 10744 PR ipa/58492 10745 * passes.def (all_passes): Start with pass_fixup_cfg again. 10746 107472013-11-05 Richard Biener <rguenther@suse.de> 10748 10749 PR tree-optimization/58955 10750 * tree-loop-distribution.c (pg_add_dependence_edges): Fix 10751 edge direction. 10752 107532013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 10754 10755 * config/rs6000/vector.md (vec_pack_sfix_trunc_v2df): Adjust for 10756 little endian. 10757 (vec_pack_ufix_trunc_v2df): Likewise. 10758 107592013-11-05 H.J. Lu <hongjiu.lu@intel.com> 10760 10761 PR middle-end/58981 10762 * doc/md.texi (@code{movmem@var{m}}): Specify Pmode as mode of 10763 pattern, instead of word_mode. 10764 10765 * expr.c (emit_block_move_via_movmem): Don't use mode wider than 10766 Pmode for size. 10767 (set_storage_via_setmem): Likewise. 10768 107692013-11-05 Andrew MacLeod <amacleod@redhat.com> 10770 10771 * tree-outof-ssa.c (queue_phi_copy_p): Combine phi_ssa_name_p from 10772 gimple.h and the rest of the condition in eliminate_build. 10773 (eliminate_build): Call new routine. 10774 * gimple.h (phi_ssa_name_p): Delete. 10775 107762013-11-05 Trevor Saunders <tsaunders@mozilla.com> 10777 10778 * vec.c (vec_prefix::calculate_allocation): Don't try to handle the 10779 case of no prefix and reserving zero slots, because when that's the 10780 case we'll never get here. 10781 * vec.h (va_heap::reserve): Don't try and handle 10782 vec_prefix::calculate_allocation returning zero because that should 10783 never happen. 10784 107852013-11-05 Richard Biener <rguenther@suse.de> 10786 10787 PR middle-end/58941 10788 * tree-dfa.c (get_ref_base_and_extent): Merge common code 10789 in MEM_REF and TARGET_MEM_REF handling. Make sure to 10790 process trailing array detection before diving into the 10791 view-converted object (and possibly apply some extra offset). 10792 107932013-11-05 Joseph Myers <joseph@codesourcery.com> 10794 10795 * config/i386/i386.c (ix86_float_exceptions_rounding_supported_p): 10796 New function. 10797 (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): Define. 10798 107992013-11-05 Marc Glisse <marc.glisse@inria.fr> 10800 10801 PR tree-optimization/58958 10802 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Use 10803 get_addr_base_and_unit_offset instead of get_ref_base_and_extent. 10804 108052013-11-05 Marc Glisse <marc.glisse@inria.fr> 10806 10807 * tree-ssa-alias.h (ranges_overlap_p): Handle negative offsets. 10808 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Likewise. 10809 108102013-11-05 Jakub Jelinek <jakub@redhat.com> 10811 10812 PR tree-optimization/58984 10813 * ipa-prop.c (ipa_load_from_parm_agg_1): Add SIZE_P argument, 10814 set *SIZE_P if non-NULL on success. 10815 (ipa_load_from_parm_agg, ipa_analyze_indirect_call_uses): Adjust 10816 callers. 10817 (ipcp_transform_function): Likewise. Punt if size of access 10818 is different from TYPE_SIZE on v->value's type. 10819 108202013-11-05 Tobias Burnus <burnus@net-b.de> 10821 10822 * doc/invoke.texi (-fopenmp-simd): Document new option. 10823 * gimplify.c (gimplify_body): Accept -fopenmp-simd. 10824 * omp-low.c (execute_expand_omp, execute_lower_omp): Ditto. 10825 * tree.c (attribute_value_equal): Ditto. 10826 108272013-11-04 Wei Mi <wmi@google.com> 10828 10829 * sched-rgn.c (add_branch_dependences): Keep insns in 10830 a SCHED_GROUP at the end of BB to remain their location. 10831 108322013-11-04 Wei Mi <wmi@google.com> 10833 10834 * config/i386/i386.c (memory_address_length): Extract a part 10835 of code to rip_relative_addr_p. 10836 (rip_relative_addr_p): New Function. 10837 (ix86_macro_fusion_p): Ditto. 10838 (ix86_macro_fusion_pair_p): Ditto. 10839 * config/i386/i386.h: Add new tune features about macro-fusion. 10840 * config/i386/x86-tune.def (DEF_TUNE): Ditto. 10841 * doc/tm.texi: Generated. 10842 * doc/tm.texi.in: Ditto. 10843 * haifa-sched.c (try_group_insn): New Function. 10844 (group_insns_for_macro_fusion): Ditto. 10845 (sched_init): Call group_insns_for_macro_fusion. 10846 * target.def: Add two hooks: macro_fusion_p and 10847 macro_fusion_pair_p. 10848 108492013-11-04 Kostya Serebryany <kcc@google.com> 10850 10851 Update to match the changed asan API. 10852 * asan.c (asan_function_start): New function. 10853 (asan_emit_stack_protection): Update the string stored in the 10854 stack red zone to match new API. Store the PC of the current 10855 function in the red zone. 10856 (asan_global_struct): Update the __asan_global definition to match 10857 the new API. 10858 (asan_add_global): Ditto. 10859 * asan.h (asan_function_start): New prototype. 10860 * final.c (final_start_function): Call asan_function_start. 10861 * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v1 10862 to __asan_init_v3. 10863 108642013-11-04 Wei Mi <wmi@google.com> 10865 10866 * config/i386/i386-c.c (ix86_target_macros_internal): Separate 10867 PROCESSOR_COREI7_AVX out from PROCESSOR_COREI7. 10868 * config/i386/i386.c (ix86_option_override_internal): Ditto. 10869 (ix86_issue_rate): Ditto. 10870 (ix86_adjust_cost): Ditto. 10871 (ia32_multipass_dfa_lookahead): Ditto. 10872 (ix86_sched_init_global): Ditto. 10873 (get_builtin_code_for_version): Ditto. 10874 * config/i386/i386.h (enum target_cpu_default): Ditto. 10875 (enum processor_type): Ditto. 10876 * config/i386/x86-tune.def (DEF_TUNE): Ditto. 10877 108782013-11-04 Vladimir Makarov <vmakarov@redhat.com> 10879 10880 PR rtl-optimization/58967 10881 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Remove 10882 !lra_in_progress for mode sizes bigger word. 10883 108842013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 10885 10886 * config/rs6000/altivec.md (vec_widen_umult_hi_v16qi): Swap 10887 arguments to merge instruction for little endian. 10888 (vec_widen_umult_lo_v16qi): Likewise. 10889 (vec_widen_smult_hi_v16qi): Likewise. 10890 (vec_widen_smult_lo_v16qi): Likewise. 10891 (vec_widen_umult_hi_v8hi): Likewise. 10892 (vec_widen_umult_lo_v8hi): Likewise. 10893 (vec_widen_smult_hi_v8hi): Likewise. 10894 (vec_widen_smult_lo_v8hi): Likewise. 10895 108962013-11-04 Ian Lance Taylor <iant@google.com> 10897 10898 * builtins.def (ATTR_NOTHROWCALL_LEAF_LIST): Define. 10899 * sync-builtins.def: Use ATTR_NOTHROWCALL_LEAF_LIST for all sync 10900 builtins that take pointers. 10901 * lto-opts.c (lto_write_options): Write -fnon-call-exceptions if set. 10902 * lto-wrapper.c (merge_and_complain): Collect OPT_fnon_call_exceptions. 10903 (run_gcc): Pass -fnon-call-exceptions. 10904 109052013-11-04 Jakub Jelinek <jakub@redhat.com> 10906 10907 * optabs.c (expand_vec_perm): Revert one incorrect line from 10908 2013-10-31 change. 10909 10910 PR tree-optimization/58978 10911 * tree-vrp.c (all_imm_uses_in_stmt_or_feed_cond): Don't modify 10912 use_stmt by single_imm_use directly. Only call single_imm_use 10913 on SSA_NAMEs. 10914 109152013-11-04 Vladimir Makarov <vmakarov@redhat.com> 10916 10917 PR rtl-optimization/58968 10918 * lra-spills.c (return_regno_p): New function. 10919 (lra_final_code_change): Use it. 10920 109212013-11-04 Joseph Myers <joseph@codesourcery.com> 10922 10923 * doc/cpp.texi (__GCC_IEC_559, __GCC_IEC_559_COMPLEX): Document macros. 10924 * target.def (float_exceptions_rounding_supported_p): New hook. 10925 * targhooks.c (default_float_exceptions_rounding_supported_p): New 10926 function. 10927 * targhooks.h (default_float_exceptions_rounding_supported_p): Declare. 10928 * doc/tm.texi.in (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): 10929 New @hook. 10930 * doc/tm.texi: Regenerate. 10931 * config.gcc (powerpc*-*-linux*): Set extra_objs. 10932 * config/rs6000/rs6000-linux.c: New file. 10933 * config/rs6000/rs6000-protos.h 10934 (rs6000_linux_float_exceptions_rounding_supported_p): Declare. 10935 * config/rs6000/linux.h 10936 (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): New macro. 10937 * config/rs6000/linux64.h 10938 (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): Likewise. 10939 * config/rs6000/t-linux (rs6000-linux.o): New rule. 10940 * config/rs6000/t-linux64 (rs6000-linux.o): Likewise. 10941 109422013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 10943 10944 * config/rs6000/vsx.md (*vsx_le_perm_store_<mode> for VSX_D): 10945 Replace the define_insn_and_split with a define_insn and two 10946 define_splits, with the split after reload re-permuting the source 10947 register to its original value. 10948 (*vsx_le_perm_store_<mode> for VSX_W): Likewise. 10949 (*vsx_le_perm_store_v8hi): Likewise. 10950 (*vsx_le_perm_store_v16qi): Likewise. 10951 109522013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 10953 10954 * config/rs6000/vector.md (vec_pack_trunc_v2df): Adjust for 10955 little endian. 10956 109572013-11-04 Jakub Jelinek <jakub@redhat.com> 10958 10959 PR tree-optimization/58946 10960 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Update all 10961 bbs with bbinfo[idx].op != NULL before all blocks with 10962 bbinfo[idx].op == NULL. 10963 109642013-11-04 Richard Sandiford <rdsandiford@googlemail.com> 10965 10966 * config/avr/avr-log.c (avr_double_int_pop_digit): Delete. 10967 (avr_dump_double_int_hex): Likewise. 10968 (avr_log_vadump): Remove %D and %X handling. 10969 * config/avr/avr.c (avr_double_int_push_digit): Delete. 10970 (avr_map_op_t): Change map from double_int to unsigned int. 10971 (avr_map_op): Update accordingly. 10972 (avr_map, avr_map_metric, avr_has_nibble_0xf, avr_map_decompose) 10973 (avr_move_bits, avr_out_insert_bits, avr_fold_builtin): Operate on 10974 unsigned ints rather than double_ints. 10975 109762013-11-03 Marek Polacek <polacek@redhat.com> 10977 10978 Implement -fsanitize=vla-bound. 10979 * opts.c (common_handle_option): Handle vla-bound. 10980 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE): Define. 10981 * flag-types.h (enum sanitize_code): Add SANITIZE_VLA. 10982 * asan.c (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR. 10983 109842013-11-02 Bill Schmidt <wschmidt@vnet.linux.ibm.com> 10985 10986 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Adjust for 10987 little endian. 10988 109892013-11-02 Uros Bizjak <ubizjak@gmail.com> 10990 10991 * config/i386/constraints.md (Ts, Tv): New address constrains. 10992 * config/i386/i386.md (*lea<mode>, *<mode>_<bndcheck>): Use Ts 10993 constraint for address_no_seg_operand. 10994 * config/i386/sse.md (*avx512pf_gatherpf<mode>_mask) 10995 (*avx512pf_gatherpf<mode>, *avx512pf_scatterpf<mode>_mask) 10996 (*avx512pf_scatterpf<mode>, *avx2_gathersi<mode>) 10997 (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>_2) 10998 (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4) 10999 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2) 11000 (*avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2) 11001 (*avx512f_scattersi<mode> *avx512f_scatterdi<mode>): Use Tv 11002 constraint for vsib_address_operand. 11003 110042013-11-02 Steven Bosscher <steven@gcc.gnu.org> 11005 11006 * gcse.c (pre_delete): Remove references to regmove from comments. 11007 * recog.c: (validate_replace_rtx_1): Likewise. 11008 * config/rl78/rl78.c: Likewise. 11009 * config/v850/v850.h: Likewise, and remove unused ENABLE_REGMOVE_PASS. 11010 * common/config/m32r/m32r-common.c: Don't manipulate OPT_fregmove. 11011 * common/config/mmix/mmix-common.c: Likewise. 11012 110132013-11-01 Trevor Saunders <tsaunders@mozilla.com> 11014 11015 * function.c (reorder_blocks): Convert block_stack to a stack_vec. 11016 * gimplify.c (gimplify_compound_lval): Likewise. 11017 * graphite-clast-to-gimple.c (gloog): Likewise. 11018 * graphite-dependences.c (loop_is_parallel_p): Likewise. 11019 * graphite-scop-detection.c (scopdet_basic_block_info): Likewise. 11020 (limit_scop); Likewise. 11021 (build_scops): Likewise. 11022 (dot_scop): Likewise. 11023 * graphite-sese-to-poly.c (sese_dom_walker): Likewise. 11024 (build_scop_drs): Likewise. 11025 (insert_stmts): Likewise. 11026 (insert_out_of_ssa_copy): Likewise. 11027 (remove_phi): Likewise. 11028 (rewrite_commutative_reductions_out_of_ssa_close_phi): Likewise. 11029 * hw-doloop.c (discover_loop): Likewise. 11030 * tree-call-cdce.c (shrink_wrap_one_built_in_call): Likewise. 11031 * tree-dfa.c (dump_enumerated_decls): Likewise. 11032 * tree-if-conv.c (if_convertable_loop_p): Likewise. 11033 * tree-inline.c (tree_function_versioning): Likewise. 11034 * tree-loop-distribution.c (build_rdg): Likewise. 11035 (rdg_flag_vertex_and_dependent): Likewise. 11036 (distribute_loop): Likewise. 11037 * tree-parloops.c (loop_parallel_p): Likewise. 11038 (eliminate_local_variables): Likewise. 11039 (separate_decls_in_region): Likewise. 11040 * tree-predcom.c (tree_predictive_commoning_loop): Likewise. 11041 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Likewise. 11042 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise. 11043 * tree-vect-loop.c (vect_analyze_scaler_cycles_1): Likewise. 11044 * tree-vect-patterns.c (vect_pattern_recog): Likewise. 11045 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise. 11046 (vectorizable_condition): Likewise. 11047 110482013-11-01 Uros Bizjak <ubizjak@gmail.com> 11049 11050 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): Always define as 0/1. 11051 * configure: Regenerate. 11052 * config/i386/i386.md (*movdi_internal): Change 11053 HAVE_AS_IX86_INTERUNIT_MOVQ to runtime check. 11054 (*movdf_internal): Ditto. 11055 * config/i386/mmx.md (*mov<mode>_internal): Ditto. 11056 * config/i386/sse.md (vec_concatv2di): Output interunit movq 11057 for HAVE_AS_IX86_INTERUNIT_MOVQ targets. 11058 110592013-10-31 Robert Suchanek <Robert.Suchanek@imgtec.com> 11060 11061 * lra-spills.c (assign_spill_hard_regs): Remove statement terminator 11062 after comment. 11063 110642013-10-31 David Malcolm <dmalcolm@redhat.com> 11065 11066 Automated part of renaming of symtab_node_base to symtab_node. 11067 11068 Patch autogenerated by rename_symtab.py from 11069 https://github.com/davidmalcolm/gcc-refactoring-scripts 11070 revision 58bb219cc090b2f4516a9297d868c245495ee622 11071 with ChangeLog entry fixed up by hand. 11072 11073 * cgraph.c (x_cgraph_nodes_queue): Rename symtab_node_base to 11074 symtab_node. 11075 (cgraph_node_for_asm): Likewise. 11076 * cgraph.h (symtab_node_base): Likewise. 11077 (cgraph_node): Likewise. 11078 (varpool_node): Likewise. 11079 (is_a_helper <cgraph_node>::test): Likewise. 11080 (is_a_helper <varpool_node>::test): Likewise. 11081 (symtab_nodes): Likewise. 11082 (symtab_register_node): Likewise. 11083 (symtab_unregister_node): Likewise. 11084 (symtab_remove_node): Likewise. 11085 (symtab_get_node): Likewise. 11086 (symtab_node_for_asm): Likewise. 11087 (symtab_node_asm_name): Likewise. 11088 (symtab_node_name): Likewise. 11089 (symtab_insert_node_to_hashtable): Likewise. 11090 (symtab_add_to_same_comdat_group): Likewise. 11091 (symtab_dissolve_same_comdat_group_list): Likewise. 11092 (dump_symtab_node): Likewise. 11093 (debug_symtab_node): Likewise. 11094 (dump_symtab_base): Likewise. 11095 (verify_symtab_node): Likewise. 11096 (verify_symtab_base): Likewise. 11097 (symtab_used_from_object_file_p): Likewise. 11098 (symtab_alias_ultimate_target): Likewise. 11099 (symtab_resolve_alias): Likewise. 11100 (fixup_same_cpp_alias_visibility): Likewise. 11101 (symtab_for_node_and_aliases): Likewise. 11102 (symtab_nonoverwritable_alias): Likewise. 11103 (availability symtab_node_availability): Likewise. 11104 (symtab_semantically_equivalent_p): Likewise. 11105 (fixup_same_cpp_alias_visibility): Likewise. 11106 (symtab_prevail_in_asm_name_hash): Likewise. 11107 (cgraph): Likewise. 11108 (varpool): Likewise. 11109 (varpool_first_variable): Likewise. 11110 (varpool_next_variable): Likewise. 11111 (varpool_first_static_initializer): Likewise. 11112 (varpool_next_static_initializer): Likewise. 11113 (varpool_first_defined_variable): Likewise. 11114 (varpool_next_defined_variable): Likewise. 11115 (cgraph_first_defined_function): Likewise. 11116 (cgraph_next_defined_function): Likewise. 11117 (cgraph_first_function): Likewise. 11118 (cgraph_next_function): Likewise. 11119 (cgraph_first_function_with_gimple_body): Likewise. 11120 (cgraph_next_function_with_gimple_body): Likewise. 11121 (symtab_alias_target): Likewise. 11122 (symtab_real_symbol_p): Likewise. 11123 (symtab_can_be_discarded): Likewise. 11124 * cgraphbuild.c (mark_address): Likewise. 11125 (mark_load): Likewise. 11126 (mark_store): Likewise. 11127 * cgraphunit.c (decide_is_symbol_needed): Likewise. 11128 (first): Likewise. 11129 (enqueue_node): Likewise. 11130 (referred_to_p): Likewise. 11131 (cgraph_process_same_body_aliases): Likewise. 11132 (analyze_functions): Likewise. 11133 (handle_alias_pairs): Likewise. 11134 (output_weakrefs): Likewise. 11135 (compile): Likewise. 11136 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise. 11137 * ipa-inline-analysis.c (inline_write_summary): Likewise. 11138 * ipa-prop.c (remove_described_reference): Likewise. 11139 (try_decrement_rdesc_refcount): Likewise. 11140 (ipa_edge_duplication_hook): Likewise. 11141 * ipa-ref.c (ipa_record_reference): Likewise. 11142 (ipa_maybe_record_reference): Likewise. 11143 (ipa_clone_ref): Likewise. 11144 (ipa_clone_references): Likewise. 11145 (ipa_clone_referring): Likewise. 11146 (ipa_find_reference): Likewise. 11147 (ipa_remove_stmt_references): Likewise. 11148 (ipa_clear_stmts_in_references): Likewise. 11149 * ipa-ref.h (symtab_node_base): Likewise. 11150 (ipa_ref): Likewise. 11151 (ipa_record_reference): Likewise. 11152 (ipa_maybe_record_reference): Likewise. 11153 (ipa_clone_references): Likewise. 11154 (ipa_clone_referring): Likewise. 11155 (ipa_clone_ref): Likewise. 11156 (ipa_find_reference): Likewise. 11157 (ipa_remove_stmt_references): Likewise. 11158 (ipa_clear_stmts_in_references): Likewise. 11159 * ipa-reference.c (ipa_reference_write_optimization_summary): 11160 Likewise. 11161 * ipa.c (enqueue_node): Likewise. 11162 (process_references): Likewise. 11163 (walk_polymorphic_call_targets): Likewise. 11164 (symtab_remove_unreachable_nodes): Likewise. 11165 (address_taken_from_non_vtable_p): Likewise. 11166 (comdat_can_be_unshared_p_1): Likewise. 11167 (comdat_can_be_unshared_p): Likewise. 11168 (can_replace_by_local_alias): Likewise. 11169 (function_and_variable_visibility): Likewise. 11170 * is-a.h: Likewise (within example in comment). 11171 * lto-cgraph.c (input_cgraph_opt_summary): Likewise. 11172 (lto_symtab_encoder_encode): Likewise. 11173 (lto_symtab_encoder_delete_node): Likewise. 11174 (lto_symtab_encoder_in_partition_p): Likewise. 11175 (lto_set_symtab_encoder_in_partition): Likewise. 11176 (output_refs): Likewise. 11177 (compute_ltrans_boundary): Likewise. 11178 (output_symtab): Likewise. 11179 (input_node): Likewise. 11180 (input_ref): Likewise. 11181 (input_edge): Likewise. 11182 (input_cgraph_1): Likewise. 11183 (input_refs): Likewise. 11184 (output_cgraph_opt_summary): Likewise. 11185 (input_node_opt_summary): Likewise. 11186 (input_cgraph_opt_section): Likewise. 11187 * lto-section-in.c (lto_free_function_in_decl_state_for_node): 11188 Likewise. 11189 * lto-streamer-out.c (lto_output): Likewise. 11190 (output_symbol_p): Likewise. 11191 (produce_symtab): Likewise. 11192 * lto-streamer.h (lto_encoder_entry): Likewise. 11193 (lto_free_function_in_decl_state_for_node): Likewise. 11194 (lto_symtab_encoder_encode): Likewise. 11195 (lto_symtab_encoder_delete_node): Likewise. 11196 (lto_symtab_encoder_in_partition_p): Likewise. 11197 (lto_set_symtab_encoder_in_partition): Likewise. 11198 (lto_symtab_encoder_lookup): Likewise. 11199 (lsei_node): Likewise. 11200 (lto_symtab_encoder_deref): Likewise. 11201 * symtab.c (symtab_hash): Likewise. 11202 (assembler_name_hash): Likewise. 11203 (symtab_nodes): Likewise. 11204 (hash_node): Likewise. 11205 (eq_node): Likewise. 11206 (hash_node_by_assembler_name): Likewise. 11207 (eq_assembler_name): Likewise. 11208 (insert_to_assembler_name_hash): Likewise. 11209 (unlink_from_assembler_name_hash): Likewise. 11210 (symtab_prevail_in_asm_name_hash): Likewise. 11211 (symtab_register_node): Likewise. 11212 (symtab_insert_node_to_hashtable): Likewise. 11213 (symtab_unregister_node): Likewise. 11214 (symtab_get_node): Likewise. 11215 (symtab_remove_node): Likewise. 11216 (symtab_initialize_asm_name_hash): Likewise. 11217 (symtab_node_for_asm): Likewise. 11218 (symtab_add_to_same_comdat_group): Likewise. 11219 (symtab_dissolve_same_comdat_group_list): Likewise. 11220 (symtab_node_asm_name): Likewise. 11221 (symtab_node_name): Likewise. 11222 (dump_symtab_base): Likewise. 11223 (dump_symtab_node): Likewise. 11224 (dump_symtab): Likewise. 11225 (debug_symtab_node): Likewise. 11226 (verify_symtab_base): Likewise. 11227 (verify_symtab_node): Likewise. 11228 (verify_symtab): Likewise. 11229 (symtab_used_from_object_file_p): Likewise. 11230 (symtab_node_availability): Likewise. 11231 (symtab_alias_ultimate_target): Likewise. 11232 (fixup_same_cpp_alias_visibility): Likewise. 11233 (symtab_resolve_alias): Likewise. 11234 (symtab_for_node_and_aliases): Likewise. 11235 (symtab_for_node_and_aliases): Likewise. 11236 (symtab_nonoverwritable_alias_1): Likewise. 11237 (symtab_nonoverwritable_alias): Likewise. 11238 (symtab_semantically_equivalent_p): Likewise. 11239 * value-prof.c (init_node_map): Likewise. 11240 * varasm.c (find_decl): Likewise. 11241 * varpool.c (varpool_node_for_asm): Likewise. 11242 (varpool_remove_unreferenced_decls): Likewise. 11243 112442013-10-31 David Malcolm <dmalcolm@redhat.com> 11245 11246 Manual part of renaming of symtab_node_base to symtab_node. 11247 11248 * ipa-ref.h (symtab_node): Remove typedef to pointer type, as it 11249 clashes with the preferred name for the base class. 11250 (const_symtab_node): Remove redundant typedef. 11251 112522013-10-31 Jakub Jelinek <jakub@redhat.com> 11253 11254 * optabs.c (expand_vec_perm): Avoid vector mode punning 11255 SUBREGs in SET_DEST. 11256 * expmed.c (store_bit_field_1): Likewise. 11257 * config/i386/sse.md (movdi_to_sse, vec_pack_sfix_trunc_v2df, 11258 vec_pack_sfix_v2df, vec_shl_<mode>, vec_shr_<mode>, 11259 vec_interleave_high<mode>, vec_interleave_low<mode>): Likewise. 11260 * config/i386/i386.c (ix86_expand_vector_move_misalign, 11261 ix86_expand_sse_movcc, ix86_expand_int_vcond, ix86_expand_vec_perm, 11262 ix86_expand_sse_unpack, ix86_expand_args_builtin, 11263 ix86_expand_vector_init_duplicate, ix86_expand_vector_set, 11264 emit_reduc_half, expand_vec_perm_blend, expand_vec_perm_pshufb, 11265 expand_vec_perm_interleave2, expand_vec_perm_pshufb2, 11266 expand_vec_perm_vpshufb2_vpermq, 11267 expand_vec_perm_vpshufb2_vpermq_even_odd, expand_vec_perm_even_odd_1, 11268 expand_vec_perm_broadcast_1, expand_vec_perm_vpshufb4_vpermq2, 11269 ix86_expand_sse2_mulv4si3, ix86_expand_pinsr): Likewise. 11270 (expand_vec_perm_palignr): Likewise. Modify a copy of *d rather 11271 than *d itself. 11272 112732013-10-31 Uros Bizjak <ubizjak@gmail.com> 11274 11275 * config/i386/i386.c (ix86_expand_sse2_abs): Rename function arguments. 11276 Use gcc_unreachable for unhandled modes. Do not check results of 11277 expand_simple_binop. If not expanded to target, move the result. 11278 112792013-10-31 Chung-Ju Wu <jasonwucj@gmail.com> 11280 Shiva Chen <shiva0217@gmail.com> 11281 11282 * config.gcc (nds32*-*-*): Add nds32 target. 11283 * config/nds32/nds32.c: New file. 11284 * config/nds32/nds32.h: New file. 11285 * config/nds32/nds32.md: New file. 11286 * config/nds32/constants.md: New file. 11287 * config/nds32/constraints.md: New file. 11288 * config/nds32/iterators.md: New file. 11289 * config/nds32/nds32-doubleword.md: New file. 11290 * config/nds32/nds32-intrinsic.md: New file. 11291 * config/nds32/nds32_intrinsic.h: New file. 11292 * config/nds32/nds32-modes.def: New file. 11293 * config/nds32/nds32-multiple.md: New file. 11294 * config/nds32/nds32.opt: New file. 11295 * config/nds32/nds32-opts.h: New file. 11296 * config/nds32/nds32-protos.h: New file. 11297 * config/nds32/nds32-peephole2.md: New file. 11298 * config/nds32/pipelines.md: New file. 11299 * config/nds32/predicates.md: New file. 11300 * config/nds32/t-mlibs: New file. 11301 * common/config/nds32: New directory and files. 11302 11303 * doc/invoke.texi (NDS32 options): Document nds32 specific options. 11304 * doc/md.texi (NDS32 family): Document nds32 specific constraints. 11305 * doc/install.texi (Cross-Compiler-Specific Options): Document 11306 --with-nds32-lib for nds32 target. 11307 * doc/extend.texi (Function Attributes, Target Builtins): Document 11308 nds32 specific attributes. 11309 113102013-10-31 Vladimir Makarov <vmakarov@redhat.com> 11311 11312 * lra-constraints (process_alt_operands): Use the result 11313 elimination register for operand when matching constraints. 11314 113152013-10-31 Jakub Jelinek <jakub@redhat.com> 11316 11317 * tree-vrp.c (maybe_set_nonzero_bits): New function. 11318 (remove_range_assertions): Call it. 11319 11320 * tree.c (tree_ctz): New function. 11321 * tree.h (tree_ctz): New prototype. 11322 * tree-ssanames.h (get_range_info, get_nonzero_bits): Change 11323 first argument from tree to const_tree. 11324 * tree-ssanames.c (get_range_info, get_nonzero_bits): Likewise. 11325 * tree-vectorizer.h (vect_generate_tmps_on_preheader): New prototype. 11326 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader): No longer 11327 static. 11328 * expr.c (highest_pow2_factor): Reimplemented using tree_ctz. 11329 * tree-vect-loop.c (vect_analyze_loop_operations, 11330 vect_transform_loop): Don't force scalar loop for bound just because 11331 number of iterations is unknown, only do it if it is not known to be 11332 a multiple of vectorization_factor. 11333 * builtins.c (get_object_alignment_2): Use tree_ctz on offset. 11334 11335 * gimple-pretty-print.c (dump_ssaname_info): Print newline also 11336 in case of VR_VARYING. Print get_nonzero_bits if not all ones. 11337 * tree-ssanames.h (struct range_info_def): Add nonzero_bits field. 11338 (set_nonzero_bits, get_nonzero_bits): New prototypes. 11339 * tree-ssa-ccp.c (get_default_value): Use get_range_info to see if 11340 a default def isn't partially constant. 11341 (ccp_finalize): If after IPA, set_range_info if integral SSA_NAME 11342 is known to be partially zero. 11343 (evaluate_stmt): If we'd return otherwise VARYING, use get_range_info 11344 to see if a default def isn't partially constant. 11345 * tree-ssanames.c (set_range_info): Initialize nonzero_bits upon 11346 creation of a range, if VR_RANGE, try to improve nonzero_bits from 11347 the range. 11348 (set_nonzero_bits, get_nonzero_bits): New functions. 11349 11350 * tree-cfg.c (assert_unreachable_fallthru_edge_p): New function. 11351 * tree-cfg.h (assert_unreachable_fallthru_edge_p): New prototype. 11352 * tree-vrp.c (all_imm_uses_in_stmt_or_feed_cond): New function. 11353 (remove_range_assertions): If ASSERT_EXPR_VAR has no other immediate 11354 uses but in the condition and ASSERT_EXPR and the other successor of 11355 the predecessor bb is __builtin_unreachable (), set_range_info of the 11356 ASSERT_EXPR_VAR to the range info of the ASSERT_EXPR's lhs. 11357 113582013-10-31 Martin Jambor <mjambor@suse.cz> 11359 11360 PR rtl-optimization/58934 11361 Revert: 11362 2013-10-30 Martin Jambor <mjambor@suse.cz> 11363 PR rtl-optimization/10474 11364 * ira.c (find_moveable_pseudos): Do not calculate dominance info 11365 nor df analysis. 11366 (interesting_dest_for_shprep): New function. 11367 (split_live_ranges_for_shrink_wrap): Likewise. 11368 (ira): Calculate dominance info and df analysis. Call 11369 split_live_ranges_for_shrink_wrap. 11370 113712013-10-31 Richard Sandiford <rsandifo@linux.vnet.ibm.com> 11372 Yury Gribov <y.gribov@samsung.com> 11373 11374 PR sanitizer/58543 11375 * asan.c (asan_clear_shadow): Allocate a new vreg for temporary 11376 shadow pointer to avoid clobbering the main one. 11377 113782013-10-31 Zhenqiang Chen <zhenqiang.chen@linaro.org> 11379 11380 * lower-subreg.c (resolve_simple_move): Copy REG_INC note. 11381 113822013-10-30 Vladimir Makarov <vmakarov@redhat.com> 11383 11384 PR bootstrap/58933 11385 * ira-color.c (update_costs_from_copies): Add new parameter. Use 11386 it for calling update_costs_from_allocno. 11387 (assign_hard_reg): Call restore_costs_from_copies only for 11388 !retry_p. Pass new argument to update_costs_from_copies. 11389 (color_pass): Pass new argument to update_costs_from_copies. 11390 (ira_mark_allocation_change): Ditto. 11391 113922013-10-30 Sharad Singhai <singhai@google.com> 11393 11394 PR middle-end/58134 11395 * opts.c (common_handle_option): Remove deprecated option 11396 -ftree-vectorizer-verbose. 11397 * doc/invoke.texi (Debugging Options): Ditto. 11398 * opts-global.c (handle_common_deferred_options): Ditto. 11399 (dump_remap_tree_vectorizer_verbose): Delete. 11400 * common.opt: Set -ftree-vectorizer-verbose as an ignored option. 11401 114022013-10-30 DJ Delorie <dj@redhat.com> 11403 11404 * config/rx/rx.c (ADD_RX_BUILTIN0): New macro, used for builtins 11405 that take no arguments. 11406 114072013-10-30 Joern Rennecke <joern.rennecke@embecosm.com> 11408 11409 PR other/58545 11410 * reload1.c (update_eliminables_and_spill): New function, broken 11411 out of reload. 11412 (reload): Use it. Check for frame size change after frame size 11413 alignment, and call update_eliminables_and_spill first if continue-ing. 11414 114152013-10-30 Cong Hou <congh@google.com> 11416 11417 PR target/58762 11418 * config/i386/i386-protos.h (ix86_expand_sse2_abs): New function. 11419 * config/i386/i386.c (ix86_expand_sse2_abs): New function. 11420 * config/i386/sse.md: Add SSE2 support to abs (8/16/32-bit-int). 11421 114222013-10-18 Mikael Pettersson <mikpelinux@gmail.com> 11423 11424 PR rtl-optimization/58369 11425 * reload1.c (compute_reload_subreg_offset): New function. 11426 (choose_reload_regs): Use it to pass endian-correct 11427 offset to subreg_regno_offset. 11428 114292013-10-30 Tobias Burnus <burnus@net-b.de> 11430 11431 PR other/33426 11432 * tree-cfg.c (replace_loop_annotate): Replace warning by 11433 warning_at. 11434 114352013-10-30 Jason Merrill <jason@redhat.com> 11436 11437 * configure.ac (loose_warn): Add -Wno-format if 11438 --disable-build-format-warnings. 11439 114402013-10-30 David Malcolm <dmalcolm@redhat.com> 11441 11442 * cgraphunit.c (analyze_functions): Split symtab_node declarations 11443 onto multiple lines to make things easier for rename_symtab.py. 11444 11445 * symtab.c (symtab_dissolve_same_comdat_group_list): Likewise. 11446 (symtab_semantically_equivalent_p): Likewise. 11447 114482013-10-30 Vladimir Makarov <vmakarov@redhat.com> 11449 11450 PR target/58784 11451 * lra.c (check_rtl): Remove address check before LRA work. 11452 114532013-10-30 Marc Glisse <marc.glisse@inria.fr> 11454 11455 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Look for a 11456 POINTER_PLUS_EXPR in the defining statement. 11457 114582013-10-30 Vladimir Makarov <vmakarov@redhat.com> 11459 11460 * regmove.c: Remove. 11461 * tree-pass.h (make_pass_regmove): Remove. 11462 * timevar.def (TV_REGMOVE): Remove. 11463 * passes.def (pass_regmove): Remove. 11464 * opts.c (default_options_table): Remove entry for regmove. 11465 * doc/passes.texi: Remove regmove pass description. 11466 * doc/invoke.texi (-foptimize-register-move, -fregmove): Remove 11467 options. 11468 (-fdump-rtl-regmove): Ditto. 11469 * common.opt (foptimize-register-move, fregmove): Ignore. 11470 * Makefile.in (OBJS): Remove regmove.o. 11471 * regmove.c: Remove. 11472 * ira-int.h (struct ira_allocno_pref, ira_pref_t): New structure 11473 and type. 11474 (struct ira_allocno) New member allocno_prefs. 11475 (ALLOCNO_PREFS): New macro. 11476 (ira_prefs, ira_prefs_num): New external vars. 11477 (ira_setup_alts, ira_get_dup_out_num, ira_debug_pref): New prototypes. 11478 (ira_debug_prefs, ira_debug_allocno_prefs, ira_create_pref): Ditto. 11479 (ira_add_allocno_pref, ira_remove_pref, ira_remove_allocno_prefs): 11480 Ditto. 11481 (ira_add_allocno_copy_to_list): Remove prototype. 11482 (ira_swap_allocno_copy_ends_if_necessary): Ditto. 11483 (ira_pref_iterator): New type. 11484 (ira_pref_iter_init, ira_pref_iter_cond): New functions. 11485 (FOR_EACH_PREF): New macro. 11486 * ira.c (commutative_constraint_p): Move from ira-conflicts.c. 11487 (ira_get_dup_out_num): Ditto. Rename from get_dup_num. Modify the 11488 code. 11489 (ira_setup_alts): New function. 11490 (decrease_live_ranges_number): New function. 11491 (ira): Call the above function. 11492 * ira-build.c (ira_prefs, ira_prefs_num): New global vars. 11493 (ira_create_allocno): Initialize allocno prefs. 11494 (pref_pool, pref_vec): New static vars. 11495 (initiate_prefs, find_allocno_pref, ira_create_pref): New 11496 functions. 11497 (add_allocno_pref_to_list, ira_add_allocno_pref, print_pref): Ditto. 11498 (ira_debug_pref, print_prefs, ira_debug_prefs): Ditto. 11499 (print_allocno_prefs, ira_debug_allocno_prefs, finish_pref): Ditto. 11500 (ira_remove_pref, ira_remove_allocno_prefs, finish_prefs): Ditto. 11501 (ira_add_allocno_copy_to_list): Make static. Rename to 11502 add_allocno_copy_to_list. 11503 (ira_swap_allocno_copy_ends_if_necessary): Make static. Rename to 11504 swap_allocno_copy_ends_if_necessary. 11505 (remove_unnecessary_allocnos, remove_low_level_allocnos): Call 11506 ira_remove_allocno_prefs. 11507 (ira_flattening): Ditto. 11508 (ira_build): Call initiate_prefs, print_prefs. 11509 (ira_destroy): Call finish_prefs. 11510 * ira-color.c (struct update_cost_record): New. 11511 (struct allocno_color_data): Add new member update_cost_records. 11512 (update_cost_record_pool): New static var. 11513 (init_update_cost_records, get_update_cost_record): New functions. 11514 (free_update_cost_record_list, finish_update_cost_records): Ditto. 11515 (struct update_cost_queue_elem): Add member from. 11516 (initiate_cost_update): Call init_update_cost_records. 11517 (finish_cost_update): Call finish_update_cost_records. 11518 (queue_update_cost, get_next_update_cost): Add new param from. 11519 (Update_allocno_cost, update_costs_from_allocno): New functions. 11520 (update_costs_from_prefs): Ditto. 11521 (update_copy_costs): Rename to update_costs_from_copies. 11522 (restore_costs_from_copies): New function. 11523 (update_conflict_hard_regno_costs): Don't go back. 11524 (assign_hard_reg): Call restore_costs_from_copies. Add printing 11525 more debug info. 11526 (pop_allocnos): Add priniting more debug info. 11527 (color_allocnos): Remove prefs for conflicting hard regs. 11528 Call update_costs_from_prefs. 11529 * ira-conflicts.c (commutative_constraint_p): Move to ira.c 11530 (get_dup_num): Rename, modify, and move to ira.c 11531 (process_regs_for_copy): Add prefs. 11532 (add_insn_allocno_copies): Put src as first arg of 11533 process_regs_for_copy. Remove dead code. Call ira_setup_alts. 11534 * ira-costs.c (record_reg_classes): Modify and move code into 11535 record_operands_costs. 11536 (find_costs_and_classes): Create prefs for the hard reg of small 11537 reg class. 11538 (process_bb_node_for_hard_reg_moves): Add prefs. 11539 115402013-10-30 Richard Biener <rguenther@suse.de> 11541 11542 PR middle-end/57100 11543 * basic-block.h (pre_and_rev_post_order_compute_fn): New function. 11544 * cfganal.c (pre_and_rev_post_order_compute_fn): New function 11545 as worker for ... 11546 (pre_and_rev_post_order_compute): ... which now wraps it. 11547 * graph.c (draw_cfg_nodes_no_loops): Use 11548 pre_and_rev_post_order_compute_fn to avoid ICEing and dependence 11549 on cfun. 11550 115512013-10-30 Christian Bruel <christian.bruel@st.com> 11552 11553 * config/sh/sh-mem.cc (sh_expand_cmpnstr): New function. 11554 (sh_expand_cmpstr): Handle known align and schedule improvements. 11555 * config/sh/sh-protos.h (sh_expand_cmpstrn): Declare. 11556 * config/sh/sh.md (cmpstrnsi): New pattern. 11557 115582013-10-30 Martin Jambor <mjambor@suse.cz> 11559 11560 PR rtl-optimization/10474 11561 * ira.c (find_moveable_pseudos): Do not calculate dominance info 11562 nor df analysis. 11563 (interesting_dest_for_shprep): New function. 11564 (split_live_ranges_for_shrink_wrap): Likewise. 11565 (ira): Calculate dominance info and df analysis. Call 11566 split_live_ranges_for_shrink_wrap. 11567 115682013-10-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 11569 11570 PR target/58854 11571 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage. 11572 115732013-10-30 Ilya Enkovich <ilya.enkovich@intel.com> 11574 11575 * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE. 11576 * tree.h (POINTER_BOUNDS_P): New. 11577 (BOUNDED_TYPE_P): New. 11578 (BOUNDED_P): New. 11579 (pointer_bounds_type_node): New. 11580 * tree.c (build_common_tree_nodes): Initialize 11581 pointer_bounds_type_node. 11582 * gimple.h (gimple_call_get_nobnd_arg_index): New. 11583 (gimple_call_num_nobnd_args): New. 11584 (gimple_call_nobnd_arg): New. 11585 (gimple_return_retbnd): New. 11586 (gimple_return_set_retbnd): New 11587 * gimple.c (gimple_build_return): Increase number of ops 11588 for return statement. 11589 (gimple_call_get_nobnd_arg_index): New. 11590 * gimple-pretty-print.c (dump_gimple_return): Print second op. 11591 115922013-10-30 Ilya Enkovich <ilya.enkovich@intel.com> 11593 11594 * ipa.c (cgraph_build_static_cdtor_1): Support contructors 11595 with "chkp ctor" and "bnd_legacy" attributes. 11596 * gimplify.c (gimplify_init_constructor): Avoid infinite 11597 loop during gimplification of bounds initializer. 11598 115992013-10-30 Ilya Enkovich <ilya.enkovich@intel.com> 11600 11601 * c-family/c-common.c (handle_bnd_variable_size_attribute): New. 11602 (handle_bnd_legacy): New. 11603 (c_common_attribute_table): Add bnd_variable_size and bnd_legacy. 11604 * doc/extend.texi: Document bnd_variable_size and bnd_legacy 11605 attributes. 11606 116072013-10-29 Ilya Enkovich <ilya.enkovich@intel.com> 11608 11609 * builtin-types.def (BT_FN_VOID_CONST_PTR): New. 11610 (BT_FN_PTR_CONST_PTR): New. 11611 (BT_FN_CONST_PTR_CONST_PTR): New. 11612 (BT_FN_PTR_CONST_PTR_SIZE): New. 11613 (BT_FN_PTR_CONST_PTR_CONST_PTR): New. 11614 (BT_FN_VOID_PTRPTR_CONST_PTR): New. 11615 (BT_FN_VOID_CONST_PTR_SIZE): New. 11616 (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New. 11617 * chkp-builtins.def: New. 11618 * builtins.def: include chkp-builtins.def. 11619 (DEF_CHKP_BUILTIN): New. 11620 * builtins.c (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS, 11621 BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS, 11622 BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS, 11623 BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS, 11624 BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS, 11625 BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND, 11626 BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL, 11627 BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET, 11628 BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_ARG_BND, BUILT_IN_CHKP_NARROW, 11629 BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER. 11630 * common.opt (fcheck-pointer-bounds): New. 11631 * toplev.c (process_options): Check Pointer Bounds Checker is 11632 supported. 11633 * doc/extend.texi: Document Pointer Bounds Checker built-in functions. 11634 116352013-10-30 Ilya Enkovich <ilya.enkovich@intel.com> 11636 11637 * target.def (builtin_chkp_function): New. 11638 (chkp_bound_type): New. 11639 (chkp_bound_mode): New. 11640 (fn_abi_va_list_bounds_size): New. 11641 (load_bounds_for_arg): New. 11642 (store_bounds_for_arg): New. 11643 * targhooks.h (default_load_bounds_for_arg): New. 11644 (default_store_bounds_for_arg): New. 11645 (default_fn_abi_va_list_bounds_size): New. 11646 (default_chkp_bound_type): New. 11647 (default_chkp_bound_mode): New. 11648 (default_builtin_chkp_function): New. 11649 * targhooks.c (default_load_bounds_for_arg): New. 11650 (default_store_bounds_for_arg): New. 11651 (default_fn_abi_va_list_bounds_size): New. 11652 (default_chkp_bound_type): New. 11653 (default_chkp_bound_mode); New. 11654 (default_builtin_chkp_function): New. 11655 * doc/tm.texi.in (TARGET_FN_ABI_VA_LIST_BOUNDS_SIZE): New. 11656 (TARGET_LOAD_BOUNDS_FOR_ARG): New. 11657 (TARGET_STORE_BOUNDS_FOR_ARG): New. 11658 (TARGET_BUILTIN_CHKP_FUNCTION): New. 11659 (TARGET_CHKP_BOUND_TYPE): New. 11660 (TARGET_CHKP_BOUND_MODE): New. 11661 * doc/tm.texi: Regenerated. 11662 * langhooks.h (lang_hooks): Add chkp_supported field. 11663 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): New. 11664 (LANG_HOOKS_INITIALIZER); Add LANG_HOOKS_CHKP_SUPPORTED. 11665 116662013-10-29 Andrew Pinski <apinski@cavium.com> 11667 11668 * tree-ssa-ifcombine.c: Include rtl.h and tm_p.h. 11669 (ifcombine_ifandif): Handle cases where maybe_fold_and_comparisons 11670 fails, combining the branches anyways. 11671 (tree_ssa_ifcombine): Inverse the order of the basic block walk, 11672 increases the number of combinings. 11673 * gimple.h (gsi_start_nondebug_after_labels_bb): New function. 11674 116752013-10-29 Mike Stump <mikestump@comcast.net> 11676 11677 * machmode.def (PARTIAL_INT_MODE): Add precision and name. 11678 * genmodes.c (PARTIAL_INT_MODE): Add precision and name. 11679 (make_vector_mode): Increase namebuf to 16. 11680 (emit_insn_modes_h): When processing BImode, don't 11681 also match partial int modes. 11682 (emit_class_narrowest_mode): Likewise. 11683 11684 * config/bfin/bfin-modes.def: Add precision to PDI. 11685 * config/m32c/m32c-modes.def: Add precision to PSI. 11686 * config/msp430/msp430-modes.def: Add precision to PSI. 11687 * config/rs6000/rs6000-modes.def: Add precision to PTI. 11688 * config/sh/sh-modes.def: Add precision to PSI and PDI. 11689 116902013-10-29 Oleg Endo <olegendo@gcc.gnu.org> 11691 11692 PR target/54236 11693 * config/sh/sh.md (*addc): Rename existing variations to ... 11694 (*addc_r_r_1, *addc_2r_1, *addc_r_1): ... these. 11695 (*addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_2r_lsb, *addc_r_msb, 11696 *addc_r_r_msb, *addc_2r_msb): New insn_and_split patterns. 11697 * config/sh/sh.c (addsubcosts): Handle some addc special cases. 11698 116992013-10-29 Teresa Johnson <tejohnson@google.com> 11700 11701 PR ipa/58862 11702 * tree-ssa-tail-merge.c (replace_block_by): Tolerate profile 11703 insanities when updating probabilities. 11704 117052013-10-29 David Malcolm <dmalcolm@redhat.com> 11706 11707 * gdbhooks.py (CGraphNodePrinter.to_string): Update gdb 11708 prettyprinter for cgraph_node to reflect the conversion of the 11709 symtable types to a C++ class hierarchy: it now *is* a 11710 symtab_node_base, rather than having one (named "symbol"). 11711 117122013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com> 11713 11714 * builtins.c (is_builtin_name): Added a check for __cilkrts_detach and 11715 __cilkrts_pop_frame. If matched, then return true for built-in 11716 function name. 11717 (expand_builtin): Added BUILT_IN_CILK_DETACH and 11718 BUILT_IN_CILK_POP_FRAME case. 11719 * langhooks-def.h (lhd_install_body_with_frame_cleanup): New prototype. 11720 (lhs_cilk_detect_spawn): Likewise. 11721 (LANG_HOOKS_DECLS): Added LANG_HOOKS_CILKPLUS. 11722 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): New #define. 11723 (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise. 11724 (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): Likewise. 11725 (LANG_HOOKS_CILKPLUS): Likewise. 11726 * tree.h (CILK_SPAWN_FN): Likewise. 11727 * builtin.def (DEF_CILK_BUILTIN_STUB): Likewise. 11728 * Makefile.in (C_COMMON_OBJS): Added c-family/cilk.o. 11729 (OBJS): Added cilk-common.o. 11730 (BUILTINS_DEF): Added cilk-builtins.def. 11731 * langhooks.c (lhd_install_body_with_frame_cleanup): New function. 11732 (lhd_cilk_detect_spawn): Likewise. 11733 * langhooks.h (lang_hooks_for_cilkplus): New struct. 11734 (struct lang_hooks): Added new field called "cilkplus." 11735 * cilk-common.c: New file. 11736 * cilk.h: Likewise. 11737 * cilk-builtins.def: Likewise. 11738 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Added 11739 "__cilk" macro and set it to 200. 11740 * function.h (struct function::cilk_frame_decl): New field. 11741 (struct function::is_cilk_function): Likewise. 11742 (struct function::calls_cilk_spawn): Likewise. 11743 * gimplify.c (gimplify_call_expr): Added a check if the function call 11744 being gimplified is a spawn detach point. If so, then add pop_frame 11745 and detach function calls. 11746 (gimplify_expr): Added a CILK_SPAWN_STMT and CILK_SYNC_STMT case 11747 for gimplifying _Cilk_spawn and _Cilk_sync statements. 11748 (gimplify_return_expr): Added a check for _Cilk_spawn usage in 11749 function. If so, added a _Cilk_sync and gimplified it. 11750 (gimplify_modify_expr): Added a check for _Cilk_spawn in MODIFY and 11751 INIT_EXPRs. If so, then call gimplify_cilk_spawn. 11752 * ipa-inline-analysis (initialize_inline_failed): Prevent inlining of 11753 spawner function. 11754 (can_inline_edge_p): Prevent inling of spawnee function. 11755 * ira.c (ira_setup_eliminable_regset): Force usage of frame pointer 11756 for functions that use Cilk keywords. 11757 * tree-inline.h (struct copy_body_data::remap_var_for_cilk): New field. 11758 * tree-pretty-print.c (dump_generic_node): Added CILK_SPAWN_STMT and 11759 CILK_SYNC_STMT cases. 11760 * tree.def (DEFTREECODE): Added CILK_SPAWN_STMT and CILK_SYNC_STMT 11761 trees. 11762 * generic.texi (CILK_SPAWN_STMT): Added documentation for _Cilk_spawn. 11763 (CILK_SYNC_STMT): Added documentation for _Cilk_sync. 11764 * passes.texi (Cilk Keywords): New section that describes the compiler 11765 code changes for handling Cilk Keywords. 11766 117672013-10-29 David Malcolm <dmalcolm@redhat.com> 11768 11769 Patch autogenerated by refactor_symtab.py from 11770 https://github.com/davidmalcolm/gcc-refactoring-scripts 11771 revision 58bb219cc090b2f4516a9297d868c245495ee622 11772 11773 * asan.c (asan_finish_file): Update for conversion of symtab types to 11774 a true class hierarchy. 11775 * cfgexpand.c (estimated_stack_frame_size): Likewise. 11776 * cgraph.c (cgraph_get_body): Likewise. 11777 (cgraph_get_create_real_symbol_node): Likewise. 11778 (verify_cgraph_node): Likewise. 11779 (verify_edge_corresponds_to_fndecl): Likewise. 11780 (verify_edge_count_and_frequency): Likewise. 11781 (cgraph_will_be_removed_from_program_if_no_direct_calls): Likewise. 11782 (cgraph_can_remove_if_no_direct_calls_p): Likewise. 11783 (cgraph_can_remove_if_no_direct_calls_and_refs_p): Likewise. 11784 (cgraph_node_cannot_return): Likewise. 11785 (cgraph_set_pure_flag_1): Likewise. 11786 (cgraph_set_const_flag_1): Likewise. 11787 (cgraph_set_nothrow_flag_1): Likewise. 11788 (cgraph_make_node_local_1): Likewise. 11789 (cgraph_for_node_and_aliases): Likewise. 11790 (cgraph_for_node_thunks_and_aliases): Likewise. 11791 (cgraph_node_can_be_local_p): Likewise. 11792 (cgraph_node_cannot_be_local_p_1): Likewise. 11793 (cgraph_function_body_availability): Likewise. 11794 (dump_cgraph_node): Likewise. 11795 (cgraph_rtl_info): Likewise. 11796 (cgraph_mark_address_taken_node): Likewise. 11797 (cgraph_remove_node): Likewise. 11798 (cgraph_release_function_body): Likewise. 11799 (cgraph_update_edges_for_call_stmt_node): Likewise. 11800 (cgraph_redirect_edge_call_stmt_to_callee): Likewise. 11801 (cgraph_make_edge_direct): Likewise. 11802 (cgraph_resolve_speculation): Likewise. 11803 (cgraph_speculative_call_info): Likewise. 11804 (cgraph_turn_edge_to_speculative): Likewise. 11805 (cgraph_create_edge_1): Likewise. 11806 (cgraph_set_call_stmt): Likewise. 11807 (cgraph_node_for_asm): Likewise. 11808 (cgraph_add_thunk): Likewise. 11809 (cgraph_same_body_alias): Likewise. 11810 (cgraph_create_function_alias): Likewise. 11811 (cgraph_create_node): Likewise. 11812 (cgraph_create_empty_node): Likewise. 11813 (record_function_versions): Likewise. 11814 (used_from_object_file_p): Likewise. 11815 * cgraph.h (symtab_can_be_discarded): Likewise. 11816 (symtab_real_symbol_p): Likewise. 11817 (cgraph_mark_force_output_node): Likewise. 11818 (cgraph_edge_recursive_p): Likewise. 11819 (symtab_alias_target): Likewise. 11820 (varpool_all_refs_explicit_p): Likewise. 11821 (varpool_can_remove_if_no_refs): Likewise. 11822 (cgraph_only_called_directly_or_aliased_p): Likewise. 11823 (cgraph_next_function_with_gimple_body): Likewise. 11824 (cgraph_first_function_with_gimple_body): Likewise. 11825 (cgraph_function_with_gimple_body_p): Likewise. 11826 (cgraph_next_function): Likewise. 11827 (cgraph_first_function): Likewise. 11828 (cgraph_next_defined_function): Likewise. 11829 (cgraph_first_defined_function): Likewise. 11830 (varpool_next_defined_variable): Likewise. 11831 (varpool_first_defined_variable): Likewise. 11832 (varpool_next_static_initializer): Likewise. 11833 (varpool_first_static_initializer): Likewise. 11834 (varpool_next_variable): Likewise. 11835 (varpool_first_variable): Likewise. 11836 (varpool_node_name): Likewise. 11837 (varpool): Likewise. 11838 (cgraph): Likewise. 11839 (is_a_helper <varpool_node>::test): Likewise. 11840 (is_a_helper <cgraph_node>::test): Likewise. 11841 (varpool_variable_node): Likewise. 11842 (cgraph_function_or_thunk_node): Likewise. 11843 (varpool_alias_target): Likewise. 11844 (cgraph_alias_target): Likewise. 11845 (cgraph_node_name): Likewise. 11846 (varpool_node_asm_name): Likewise. 11847 (cgraph_node_asm_name): Likewise. 11848 * cgraphbuild.c (remove_cgraph_callee_edges): Likewise. 11849 (cgraph_rebuild_references): Likewise. 11850 (rebuild_cgraph_edges): Likewise. 11851 (record_eh_tables): Likewise. 11852 (build_cgraph_edges): Likewise. 11853 (mark_store): Likewise. 11854 (mark_load): Likewise. 11855 (mark_address): Likewise. 11856 (record_type_list): Likewise. 11857 (record_reference): Likewise. 11858 * cgraphclones.c (cgraph_materialize_all_clones): Likewise. 11859 (cgraph_materialize_clone): Likewise. 11860 (cgraph_function_versioning): Likewise. 11861 (cgraph_copy_node_for_versioning): Likewise. 11862 (update_call_expr): Likewise. 11863 (cgraph_find_replacement_node): Likewise. 11864 (cgraph_create_virtual_clone): Likewise. 11865 (cgraph_clone_node): Likewise. 11866 * cgraphunit.c (compile): Likewise. 11867 (output_weakrefs): Likewise. 11868 (output_in_order): Likewise. 11869 (expand_function): Likewise. 11870 (assemble_thunks_and_aliases): Likewise. 11871 (expand_thunk): Likewise. 11872 (mark_functions_to_output): Likewise. 11873 (handle_alias_pairs): Likewise. 11874 (analyze_functions): Likewise. 11875 (walk_polymorphic_call_targets): Likewise. 11876 (varpool_finalize_decl): Likewise. 11877 (process_function_and_variable_attributes): Likewise. 11878 (cgraph_process_same_body_aliases): Likewise. 11879 (analyze_function): Likewise. 11880 (cgraph_add_new_function): Likewise. 11881 (cgraph_finalize_function): Likewise. 11882 (referred_to_p): Likewise. 11883 (cgraph_reset_node): Likewise. 11884 (cgraph_process_new_functions): Likewise. 11885 (enqueue_node): Likewise. 11886 (decide_is_symbol_needed): Likewise. 11887 * coverage.c (coverage_compute_profile_id): Likewise. 11888 * dbxout.c (dbxout_expand_expr): Likewise. 11889 * dwarf2out.c (premark_types_used_by_global_vars_helper): Likewise. 11890 (reference_to_unused): Likewise. 11891 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise. 11892 * gimplify.c (unvisit_body): Likewise. 11893 (unshare_body): Likewise. 11894 * ipa-cp.c (ipcp_generate_summary): Likewise. 11895 (ipcp_decision_stage): Likewise. 11896 (identify_dead_nodes): Likewise. 11897 (decide_whether_version_node): Likewise. 11898 (decide_about_value): Likewise. 11899 (perhaps_add_new_callers): Likewise. 11900 (create_specialized_node): Likewise. 11901 (update_profiling_info): Likewise. 11902 (ipcp_propagate_stage): Likewise. 11903 (estimate_local_effects): Likewise. 11904 (good_cloning_opportunity_p): Likewise. 11905 (devirtualization_time_bonus): Likewise. 11906 (propagate_constants_accross_call): Likewise. 11907 (initialize_node_lattices): Likewise. 11908 (ipcp_cloning_candidate_p): Likewise. 11909 (determine_versionability): Likewise. 11910 (print_all_lattices): Likewise. 11911 (print_lattice): Likewise. 11912 (ipcp_discover_new_direct_edges): Likewise. 11913 * ipa-devirt.c (ipa_devirt): Likewise. 11914 (likely_target_p): Likewise. 11915 (update_type_inheritance_graph): Likewise. 11916 (possible_polymorphic_call_target_p): Likewise. 11917 (dump_possible_polymorphic_call_targets): Likewise. 11918 (devirt_variable_node_removal_hook): Likewise. 11919 (record_binfo): Likewise. 11920 (maybe_record_node): Likewise. 11921 (build_type_inheritance_graph): Likewise. 11922 * ipa-inline-analysis.c (inline_write_summary): Likewise. 11923 (inline_generate_summary): Likewise. 11924 (inline_analyze_function): Likewise. 11925 (do_estimate_growth): Likewise. 11926 (simple_edge_hints): Likewise. 11927 (estimate_node_size_and_time): Likewise. 11928 (estimate_edge_devirt_benefit): Likewise. 11929 (compute_inline_parameters): Likewise. 11930 (estimate_function_body_sizes): Likewise. 11931 (compute_bb_predicates): Likewise. 11932 (initialize_inline_failed): Likewise. 11933 (dump_inline_summary): Likewise. 11934 (dump_inline_edge_summary): Likewise. 11935 * ipa-inline-transform.c (inline_transform): Likewise. 11936 (preserve_function_body_p): Likewise. 11937 (save_inline_function_body): Likewise. 11938 (inline_call): Likewise. 11939 (clone_inlined_nodes): Likewise. 11940 (can_remove_node_now_p): Likewise. 11941 (can_remove_node_now_p_1): Likewise. 11942 * ipa-inline.c (early_inliner): Likewise. 11943 (early_inline_small_functions): Likewise. 11944 (inline_always_inline_functions): Likewise. 11945 (ipa_inline): Likewise. 11946 (flatten_function): Likewise. 11947 (inline_small_functions): Likewise. 11948 (speculation_useful_p): Likewise. 11949 (recursive_inlining): Likewise. 11950 (update_caller_keys): Likewise. 11951 (reset_edge_caches): Likewise. 11952 (update_edge_key): Likewise. 11953 (edge_badness): Likewise. 11954 (relative_time_benefit): Likewise. 11955 (want_inline_self_recursive_call_p): Likewise. 11956 (want_inline_small_function_p): Likewise. 11957 (want_early_inline_function_p): Likewise. 11958 (num_calls): Likewise. 11959 (can_early_inline_edge_p): Likewise. 11960 (can_inline_edge_p): Likewise. 11961 (report_inline_failed_reason): Likewise. 11962 * ipa-profile.c (ipa_profile): Likewise. 11963 (ipa_propagate_frequency): Likewise. 11964 (ipa_propagate_frequency_1): Likewise. 11965 (ipa_profile_generate_summary): Likewise. 11966 * ipa-prop.c (ipcp_transform_function): Likewise. 11967 (read_replacements_section): Likewise. 11968 (ipa_prop_read_section): Likewise. 11969 (ipa_modify_call_arguments): Likewise. 11970 (ipa_print_node_params): Likewise. 11971 (propagate_controlled_uses): Likewise. 11972 (update_indirect_edges_after_inlining): Likewise. 11973 (remove_described_reference): Likewise. 11974 (ipa_make_edge_direct_to_target): Likewise. 11975 (ipa_analyze_node): Likewise. 11976 (ipa_analyze_params_uses): Likewise. 11977 (ipa_compute_jump_functions): Likewise. 11978 (ipa_get_callee_param_type): Likewise. 11979 (ipa_print_node_jump_functions): Likewise. 11980 (ipa_initialize_node_params): Likewise. 11981 (ipa_populate_param_decls): Likewise. 11982 (ipa_func_spec_opts_forbid_analysis_p): Likewise. 11983 (write_agg_replacement_chain): Likewise. 11984 (ipa_write_node_info): Likewise. 11985 (ipa_edge_duplication_hook): Likewise. 11986 (try_decrement_rdesc_refcount): Likewise. 11987 * ipa-pure-const.c (propagate_nothrow): Likewise. 11988 (propagate_pure_const): Likewise. 11989 (pure_const_read_summary): Likewise. 11990 (pure_const_write_summary): Likewise. 11991 (analyze_function): Likewise. 11992 * ipa-ref-inline.h (ipa_ref_referred_ref_list): Likewise. 11993 (ipa_ref_referring_ref_list): Likewise. 11994 * ipa-ref.c (ipa_clear_stmts_in_references): Likewise. 11995 (ipa_remove_stmt_references): Likewise. 11996 (ipa_find_reference): Likewise. 11997 (ipa_dump_referring): Likewise. 11998 (ipa_dump_references): Likewise. 11999 (ipa_record_reference): Likewise. 12000 * ipa-reference.c (ipa_reference_read_optimization_summary): Likewise. 12001 (ipa_reference_write_optimization_summary): Likewise. 12002 (write_node_summary_p): Likewise. 12003 (propagate): Likewise. 12004 (read_write_all_from_decl): Likewise. 12005 (generate_summary): Likewise. 12006 (analyze_function): Likewise. 12007 (propagate_bits): Likewise. 12008 (ipa_reference_get_not_written_global): Likewise. 12009 (ipa_reference_get_not_read_global): Likewise. 12010 * ipa-split.c (execute_split_functions): Likewise. 12011 (split_function): Likewise. 12012 * ipa-utils.c (ipa_merge_profiles): Likewise. 12013 (dump_cgraph_node_set): Likewise. 12014 (ipa_reverse_postorder): Likewise. 12015 (ipa_edge_within_scc): Likewise. 12016 (ipa_get_nodes_in_cycle): Likewise. 12017 (ipa_free_postorder_info): Likewise. 12018 (ipa_reduced_postorder): Likewise. 12019 (searchc): Likewise. 12020 (recursive_call_p): Likewise. 12021 * ipa.c (ipa_cdtor_merge): Likewise. 12022 (record_cdtor_fn): Likewise. 12023 (function_and_variable_visibility): Likewise. 12024 (varpool_externally_visible_p): Likewise. 12025 (cgraph_externally_visible_p): Likewise. 12026 (comdat_can_be_unshared_p): Likewise. 12027 (comdat_can_be_unshared_p_1): Likewise. 12028 (address_taken_from_non_vtable_p): Likewise. 12029 (ipa_discover_readonly_nonaddressable_vars): Likewise. 12030 (symtab_remove_unreachable_nodes): Likewise. 12031 (walk_polymorphic_call_targets): Likewise. 12032 (process_references): Likewise. 12033 (enqueue_node): Likewise. 12034 (has_addr_references_p): Likewise. 12035 (cgraph_non_local_node_p_1): Likewise. 12036 * is-a.h (varpool_analyze_node): Likewise. 12037 * lto-cgraph.c (input_symtab): Likewise. 12038 (merge_profile_summaries): Likewise. 12039 (input_cgraph_1): Likewise. 12040 (input_edge): Likewise. 12041 (input_varpool_node): Likewise. 12042 (input_node): Likewise. 12043 (input_overwrite_node): Likewise. 12044 (compute_ltrans_boundary): Likewise. 12045 (output_refs): Likewise. 12046 (lto_output_varpool_node): Likewise. 12047 (lto_output_node): Likewise. 12048 (reachable_from_other_partition_p): Likewise. 12049 (referenced_from_other_partition_p): Likewise. 12050 (lto_output_edge): Likewise. 12051 (output_node_opt_summary): Likewise. 12052 (add_node_to): Likewise. 12053 (reachable_from_this_partition_p): Likewise. 12054 (lto_set_symtab_encoder_in_partition): Likewise. 12055 (lto_symtab_encoder_in_partition_p): Likewise. 12056 (lto_set_symtab_encoder_encode_initializer): Likewise. 12057 (lto_symtab_encoder_encode_initializer_p): Likewise. 12058 (lto_set_symtab_encoder_encode_body): Likewise. 12059 (lto_symtab_encoder_encode_body_p): Likewise. 12060 * lto-section-in.c (lto_free_function_in_decl_state_for_node): 12061 Likewise. 12062 * lto-streamer-in.c (lto_read_body): Likewise. 12063 (fixup_call_stmt_edges): Likewise. 12064 (fixup_call_stmt_edges_1): Likewise. 12065 * lto-streamer-out.c (produce_symtab): Likewise. 12066 (output_symbol_p): Likewise. 12067 (write_symbol): Likewise. 12068 (lto_output): Likewise. 12069 (copy_function): Likewise. 12070 (output_function): Likewise. 12071 * passes.c (function_called_by_processed_nodes_p): Likewise. 12072 (ipa_write_optimization_summaries): Likewise. 12073 (ipa_write_summaries): Likewise. 12074 (do_per_function_toporder): Likewise. 12075 (do_per_function): Likewise. 12076 (dump_passes): Likewise. 12077 * symtab.c (symtab_semantically_equivalent_p): Likewise. 12078 (symtab_nonoverwritable_alias): Likewise. 12079 (symtab_nonoverwritable_alias_1): Likewise. 12080 (symtab_for_node_and_aliases): Likewise. 12081 (symtab_resolve_alias): Likewise. 12082 (fixup_same_cpp_alias_visibility): Likewise. 12083 (symtab_alias_ultimate_target): Likewise. 12084 (symtab_used_from_object_file_p): Likewise. 12085 (verify_symtab_base): Likewise. 12086 (dump_symtab_base): Likewise. 12087 (symtab_node_name): Likewise. 12088 (symtab_node_asm_name): Likewise. 12089 (symtab_dissolve_same_comdat_group_list): Likewise. 12090 (symtab_add_to_same_comdat_group): Likewise. 12091 (symtab_unregister_node): Likewise. 12092 (symtab_insert_node_to_hashtable): Likewise. 12093 (symtab_register_node): Likewise. 12094 (unlink_from_assembler_name_hash): Likewise. 12095 (insert_to_assembler_name_hash): Likewise. 12096 (eq_assembler_name): Likewise. 12097 (hash_node_by_assembler_name): Likewise. 12098 (eq_node): Likewise. 12099 (hash_node): Likewise. 12100 * toplev.c (wrapup_global_declaration_2): Likewise. 12101 * trans-mem.c (ipa_tm_execute): Likewise. 12102 (ipa_tm_transform_clone): Likewise. 12103 (ipa_tm_transform_transaction): Likewise. 12104 (ipa_tm_transform_calls_redirect): Likewise. 12105 (ipa_tm_insert_gettmclone_call): Likewise. 12106 (ipa_tm_insert_irr_call): Likewise. 12107 (ipa_tm_create_version): Likewise. 12108 (ipa_tm_create_version_alias): Likewise. 12109 (ipa_tm_mark_forced_by_abi_node): Likewise. 12110 (ipa_tm_mark_force_output_node): Likewise. 12111 (ipa_tm_diagnose_tm_safe): Likewise. 12112 (ipa_tm_mayenterirr_function): Likewise. 12113 (ipa_tm_scan_irr_function): Likewise. 12114 (ipa_tm_note_irrevocable): Likewise. 12115 (ipa_tm_scan_calls_clone): Likewise. 12116 (get_cg_data): Likewise. 12117 * tree-eh.c (tree_could_trap_p): Likewise. 12118 * tree-emutls.c (ipa_lower_emutls): Likewise. 12119 (create_emultls_var): Likewise. 12120 (lower_emutls_function_body): Likewise. 12121 (gen_emutls_addr): Likewise. 12122 (emutls_decl): Likewise. 12123 (new_emutls_decl): Likewise. 12124 * tree-inline.c (tree_function_versioning): Likewise. 12125 (optimize_inline_calls): Likewise. 12126 (expand_call_inline): Likewise. 12127 (estimate_num_insns): Likewise. 12128 (copy_bb): Likewise. 12129 (delete_unreachable_blocks_update_callgraph): Likewise. 12130 * tree-nested.c (gimplify_all_functions): Likewise. 12131 (create_nesting_tree): Likewise. 12132 (check_for_nested_with_variably_modified): Likewise. 12133 * tree-pretty-print.c (dump_function_header): Likewise. 12134 * tree-profile.c (tree_profiling): Likewise. 12135 * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise. 12136 (modify_function): Likewise. 12137 (convert_callers): Likewise. 12138 (convert_callers_for_node): Likewise. 12139 * tree-ssa-structalias.c (ipa_pta_execute): Likewise. 12140 (associate_varinfo_to_alias): Likewise. 12141 (create_variable_info_for): Likewise. 12142 (get_constraint_for_ssa_var): Likewise. 12143 * tree-vectorizer.c (increase_alignment): Likewise. 12144 * tree.c (find_decls_types_in_var): Likewise. 12145 (find_decls_types_in_node): Likewise. 12146 (free_lang_data_in_decl): Likewise. 12147 * value-prof.c (gimple_ic_transform): Likewise. 12148 (gimple_ic): Likewise. 12149 (check_ic_target): Likewise. 12150 (init_node_map): Likewise. 12151 * varasm.c (decl_binds_to_current_def_p): Likewise. 12152 (default_binds_local_p_1): Likewise. 12153 (dump_tm_clone_pairs): Likewise. 12154 (assemble_alias): Likewise. 12155 (find_decl): Likewise. 12156 (mark_decl_referenced): Likewise. 12157 * varpool.c (varpool_for_node_and_aliases): Likewise. 12158 (varpool_extra_name_alias): Likewise. 12159 (varpool_create_variable_alias): Likewise. 12160 (add_new_static_var): Likewise. 12161 (varpool_finalize_named_section_flags): Likewise. 12162 (varpool_remove_unreferenced_decls): Likewise. 12163 (enqueue_node): Likewise. 12164 (varpool_assemble_decl): Likewise. 12165 (assemble_aliases): Likewise. 12166 (varpool_analyze_node): Likewise. 12167 (cgraph_variable_initializer_availability): Likewise. 12168 (varpool_add_new_variable): Likewise. 12169 (ctor_for_folding): Likewise. 12170 (dump_varpool_node): Likewise. 12171 (varpool_remove_initializer): Likewise. 12172 (varpool_remove_node): Likewise. 12173 (varpool_node_for_decl): Likewise. 12174 (varpool_create_empty_node): Likewise. 12175 * config/i386/i386.c (ix86_generate_version_dispatcher_body): Likewise. 12176 (ix86_get_function_versions_dispatcher): Likewise. 12177 121782013-10-29 David Malcolm <dmalcolm@redhat.com> 12179 12180 * cgraph.h (symtab_node_base): Convert to a class; 12181 add GTY((desc ("%h.type"), tag ("SYMTAB_SYMBOL"))), and take 12182 chain_next/prev from symtab_node_def. 12183 (cgraph_node): Inherit from symtab_node; add GTY option 12184 tag ("SYMTAB_FUNCTION"). 12185 (varpool_node): Inherit from symtab_node; add GTY option 12186 tag ("SYMTAB_VARIABLE"). 12187 (symtab_node_def): Remove. 12188 (is_a_helper <cgraph_node>::test (symtab_node_def *)): Convert to... 12189 (is_a_helper <cgraph_node>::test (symtab_node_base *)): ...this. 12190 (is_a_helper <varpool_node>::test (symtab_node_def *)): Convert to... 12191 (is_a_helper <varpool_node>::test (symtab_node_base *)): ...this. 12192 12193 * ipa-ref.h (symtab_node_def): Drop. 12194 (symtab_node): Change underlying type from symtab_node_def to 12195 symtab_node_base. 12196 (const_symtab_node): Likwise. 12197 12198 * is-a.h: Update examples in comment. 12199 12200 * symtab.c (symtab_hash): Change symtab_node_def to symtab_node_base. 12201 (assembler_name_hash): Likewise. 12202 122032013-10-29 Martin Liska <marxin.liska@gmail.com> 12204 12205 * doc/tree-ssa.texi (gimple_phi_result): Document. 12206 (gimple_phi_num_args, gimple_phi_arg): Likewise. 12207 (gimple_phi_arg_edge, gimple_phi_arg_def): Likewise. 12208 (PHI_RESULT, PHI_NUM_ARGS): Remove. 12209 (PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF): Likewise. 12210 122112013-10-29 Andrew MacLeod <amacleod@redhat.com> 12212 12213 * expr.h: Revert change and include tree-core.h. 12214 * rtl.h: Revert change and don't include tree-core.h. 12215 122162013-10-29 Andrew MacLeod <amacleod@redhat.com> 12217 12218 * config/darwin.c: Include gimple.h. 12219 * config/i386/winnt.c: Likewise. 12220 122212013-10-29 Marc Glisse <marc.glisse@inria.fr> 12222 12223 PR tree-optimization/19831 12224 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle BUILT_IN_FREE. 12225 122262013-10-29 Andrew MacLeod <amacleod@redhat.com> 12227 12228 * tree-outof-ssa.h: Remove include files. 12229 * tree-outof-ssa.c: Add required include files from tree-outof-ssa.h. 12230 * expr.c: Likewise. 12231 * tree-ssa-coalesce.c: Likewise. 12232 * cfgexpand.c: Likewise. 12233 * tree-ssa-ter.c: Likewise. 12234 * ipa-prop.h: Remove gimple.h and tree-core.h from include list. 12235 * lto-streamer.h: Likewise. 12236 * cgraphbuild.c: Add gimple.h to include list. 12237 * data-streamer-in.c: Likewise. 12238 * ipa-cp.c: Likewise. 12239 * tree-streamer.c: Likewise. 12240 * lto-compress.c: Likewise. 12241 * ipa-reference.c: Likewise. 12242 * data-streamer-out.c: Likewise. 12243 * lto-cgraph.c: Likewise. 12244 * cgraphclones.c: Likewise. 12245 * ipa-utils.c: Likewise. 12246 * data-streamer.c: Likewise. 12247 * ipa-split.c: Likewise. 12248 * lto-section-in.c: Likewise. 12249 * tree-streamer-out.c: Likewise. 12250 * ipa-prop.c: Likewise. 12251 * tree-streamer-in.c: Likewise. 12252 * symtab.c: Likewise. 12253 * opts-global.c: Likewise. 12254 * lto-opts.c: Likewise. 12255 * lto-section-out.c: Likewise. 12256 * lto-streamer.c: Likewise. 12257 * rtl.h: Add tree-core.h to include list. 12258 * expr.h: Remove tree-core.h from include list. 12259 * gimple.h: Likewise. 12260 * ipa-utils.h: Likewise. 12261 * streamer-hooks.h: Likewise. 12262 * streamer-hooks.c: Include input.h. 12263 122642013-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 12265 12266 * config/arm/arm.c (cortexa7_extra_costs): New table. 12267 (arm_cortex_a7_tune): New. 12268 * config/arm/arm-cores.def: Use cortex_a7 tuning for cortex-a7. 12269 122702013-10-29 Eric Botcazou <ebotcazou@adacore.com> 12271 12272 * expr.c (expand_expr_real_1) <MEM_EXPR>: Eliminate small redundancy. 12273 122742013-10-29 David Malcolm <dmalcolm@redhat.com> 12275 12276 * doc/gty.texi ("Inheritance and GTY"): Make it clear that 12277 to use autogenerated markers for a class-hierarchy, every class 12278 must have a GTY marker. 12279 * gengtype.h (struct type): Add linked list of subclasses to 12280 the "s" member of the union. 12281 (add_subclass): New decl. 12282 * gengtype-state.c (read_state_struct_type): Set up subclass 12283 linked list. 12284 * gengtype.c (get_ultimate_base_class): New. 12285 (add_subclass): New. 12286 (new_structure): Set up subclass linked list. 12287 (set_gc_used_type): Propagate usage information to subclasses. 12288 (output_mangled_typename): Use get_ultimate_base_class. 12289 (walk_subclasses): Use the subclass linked list, avoiding an 12290 O(N^2) when writing out all types. 12291 (walk_type): Issue an error if the base class is missing a tag, 12292 rather than generating bogus C code. Add a gcc_unreachable 12293 default case, in case people omit tags from concrete subclasses, 12294 or get the values wrong. 12295 (write_func_for_structure): Issue an error for subclasses for 12296 which the base doesn't have a "desc", since otherwise the 12297 autogenerated routines for the base would silently fail to visit 12298 any subclass fields. 12299 (write_root): Use get_ultimate_base_class, tweaking constness of 12300 tp to match that function's signature. 12301 123022013-10-29 David Malcolm <dmalcolm@redhat.com> 12303 12304 * doc/gty.texi (GTY Options): Add note about inheritance to 12305 description of desc and tag. 12306 (Inheritance and GTY): New. 12307 123082013-10-29 David Malcolm <dmalcolm@redhat.com> 12309 12310 * gengtype-parse.c (opts_have): Drop "static" so that 12311 we can use this from gengtype.c. 12312 * gengtype.c (set_gc_used_type): Mark any base class as used; 12313 update field traversal to visit inherited fields. 12314 (output_mangled_typename): Convert references to classes within 12315 an inheritance hierarchy to reference the ultimate base class, 12316 since only it will have gt_ functions. 12317 (get_string_option): New. 12318 (walk_subclasses): New. 12319 (walk_type): Treat GTY structs that have a "desc" as being the 12320 root of an inheritance hierarchy. Generate a switch on it 12321 within the marking function which walks all subclasses, adding 12322 cases for them via walk_subclasses. For subclasses, visit all 12323 fields of the type (including inherited ones). 12324 (write_func_for_structure): Don't write fns for subclasses, only 12325 for the ultimate base class within an inheritance hierarchy. 12326 Subclasses-marking will be handled by the base class marking functions. 12327 (write_types): Likewise. 12328 (write_local_func_for_structure): Likewise. 12329 (USED_BY_TYPED_GC_P): Emit allocators for subclasses that have 12330 a "tag" option (and are thus concrete subclasses). 12331 (write_root): Use the marker function for the ultimate base class. 12332 * gengtype.h (FOR_ALL_INHERITED_FIELDS): New. 12333 (opts_have): Add declaration. 12334 123352013-10-28 Vladimir Makarov <vmakarov@redhat.com> 12336 12337 * lra-spills.c (lra_final_code_change): Remove useless move insns 12338 originated from moves of pseudos. 12339 123402013-10-28 Jeff Law <law@redhat.com> 12341 12342 * lower-subreg.c (resolve_simple_move): Fix comment typo. 12343 123442013-10-28 Trevor Saunders <tsaunders@mozilla.com> 12345 12346 * df-scan.c (df_collection_rec): Adjust. 12347 (copy_defs): New constant. 12348 (copy_uses): Likewise. 12349 (copy_eq_uses): Likewise. 12350 (copy_mw): Likewise. 12351 (copy_all): Likewise. 12352 (df_insn_rescan): Adjust. 12353 (df_notes_rescan): Likewise. 12354 (df_swap_refs): Likewise. 12355 (df_sort_and_compress_refs): Likewise. 12356 (df_sort_and_compress_mws): Likewise. 12357 (df_install_refs): Likewise. 12358 (df_install_mws): Likewise. 12359 (df_refs_add_to_chains): Add flags parameter controlling which vectors 12360 are coppied. 12361 (df_bb_refs_record): Adjust. 12362 (df_record_entry_block_defs): Likewise. 12363 (df_record_exit_block_defs): Likewise. 12364 (df_refs_verify): Likewise. 12365 (df_mws_verify): Likewise. 12366 (df_insn_refs_verify): Likewise. 12367 (df_bb_verify): Likewise. 12368 * ipa-pure-const.c (finish_state): Remove. 12369 (propagate): Adjust. 12370 * tree-data-ref.c tree-ssa-alias.c tree-ssa-loop-ivcanon.c 12371 tree-ssa-threadedge.c tree-vect-loop-manip.c tree-vect-slp.c 12372 var-tracking.c: Adjust. 12373 * vec.c (stack_vecs): Remove. 12374 (register_stack_vec): Likewise. 12375 (stack_vec_register_index): Likewise. 12376 (unregister_stack_vec): Likewise. 12377 * vec.h (struct va_stack): Remove. 12378 (struct vec<T, A, vl_ptr>): Specialize as 12379 struct vec<T, va_heap, vl_ptr> instead since va_heap is the only 12380 allocation strategy compatable with the vl_ptr layout. 12381 (struct vec<T, va_gc, vl_ptr>): Remove because it now gets an empty 12382 specialization anyway. 12383 (class stack_vec): New class. 12384 (vec_stack_alloc): Remove. 12385 (vec<T, va_heap, vl_ptr>::using_auto_storage): New method. 12386 123872013-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com> 12388 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 12389 Sergey Lega <sergey.s.lega@intel.com> 12390 Anna Tikhonova <anna.tikhonova@intel.com> 12391 Ilya Tocar <ilya.tocar@intel.com> 12392 Andrey Turetskiy <andrey.turetskiy@intel.com> 12393 Ilya Verbin <ilya.verbin@intel.com> 12394 Kirill Yukhin <kirill.yukhin@intel.com> 12395 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 12396 12397 * config/i386/i386.md (prefetch): Allow TARGET_AVX512PF. 12398 (*prefetch_avx512pf_<mode>): New. 12399 * config/i386/sse.md (avx512f_vmcmp<mode>3): Ditto. 12400 (avx512f_maskcmp<mode>3): Ditto. 12401 (vashrv16si3): Ditto. 12402 124032013-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com> 12404 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 12405 Sergey Lega <sergey.s.lega@intel.com> 12406 Anna Tikhonova <anna.tikhonova@intel.com> 12407 Ilya Tocar <ilya.tocar@intel.com> 12408 Andrey Turetskiy <andrey.turetskiy@intel.com> 12409 Ilya Verbin <ilya.verbin@intel.com> 12410 Kirill Yukhin <kirill.yukhin@intel.com> 12411 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 12412 12413 * config/i386/i386.md (any_truncate): New. 12414 (trunsuffix): Ditto. 12415 * config/i386/predicates.md (const_8_to_9_operand): New. 12416 (const_10_to_11_operand): Ditto. 12417 (const_12_to_13_operand): Ditto. 12418 (const_14_to_15_operand): Ditto. 12419 (const_16_to_19_operand): Ditto. 12420 (const_20_to_23_operand): Ditto. 12421 (const_24_to_27_operand): Ditto. 12422 (const_28_to_31_operand): Ditto. 12423 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_FIX_NOTRUNC. 12424 (cvtusi2<ssescalarmodesuffix>32): New. 12425 (cvtusi2<ssescalarmodesuffix>64): Ditto. 12426 (ufloatv16siv16sf2): Ditto. 12427 (avx512f_fix_notruncv16sfv16si): Ditto. 12428 (avx512f_ufix_notruncv16sfv16si): Ditto. 12429 (avx512f_vcvtss2usi): Ditto. 12430 (avx512f_vcvtss2usiq): Ditto. 12431 (avx512f_vcvttss2usi): Ditto. 12432 (avx512f_vcvttss2usiq): Ditto. 12433 (avx512f_vcvtsd2usi): Ditto. 12434 (avx512f_vcvtsd2usiq): Ditto. 12435 (avx512f_vcvttsd2usi): Ditto. 12436 (avx512f_vcvttsd2usiq): Ditto. 12437 (ufloatv8siv8df): Ditto. 12438 (avx512f_cvtdq2pd512_2): Ditto. 12439 (avx512f_cvtpd2dq512): Ditto. 12440 (avx512f_ufix_notruncv8dfv8si): Ditto. 12441 (avx512f_cvtpd2ps512): Ditto. 12442 (vec_unpacks_lo_v16sf): Ditto. 12443 (vec_unpacks_hi_v16sf): Ditto. 12444 (vec_unpacks_float_hi_v16si): Ditto. 12445 (vec_unpacks_float_lo_v16si): Ditto. 12446 (avx512f_unpckhps512): Ditto. 12447 (avx512f_unpcklps512): Ditto. 12448 (avx512f_movshdup512): Ditto. 12449 (avx512f_movsldup512): Ditto. 12450 (vec_extract_lo_v32hi): Ditto. 12451 (vec_extract_hi_v32hi): Ditto. 12452 (vec_extract_lo_v64qi): Ditto. 12453 (vec_extract_hi_v64qi): Ditto. 12454 (avx512f_unpckhpd512): Ditto. 12455 (avx512f_movddup512): Ditto. 12456 (avx512f_unpcklpd512): Ditto. 12457 (*avx512f_unpcklpd512): Ditto. 12458 (avx512f_shufps512_1): Ditto. 12459 (avx512f_shufpd512_1): Ditto. 12460 (avx512f_interleave_highv8di): Ditto. 12461 (avx512f_interleave_lowv8di): Ditto. 12462 (PMOV_DST_MODE): Ditto. 12463 (pmov_src_mode): Ditto. 12464 (pmov_src_lower): Ditto. 12465 (pmov_suff): Ditto. 12466 (*avx512f_<code><pmov_src_lower><mode>2): Ditto. 12467 (*avx512f_<code>v8div16qi2): Ditto. 12468 (*avx512f_<code>v8div16qi2_store): Ditto. 12469 (vec_widen_umult_even_v16si): Ditto. 12470 (*vec_widen_umult_even_v16si): Ditto. 12471 (vec_widen_smult_even_v16si): Ditto. 12472 (*vec_widen_smult_even_v16si): Ditto. 12473 (avx512f_interleave_highv16si): Ditto. 12474 (avx512f_interleave_lowv16si): Ditto. 12475 (avx512f_<code>v16qiv16si2): Ditto. 12476 (avx512f_<code>v16hiv16si2): Ditto. 12477 (avx512f_<code>v8qiv8di2): Ditto. 12478 (avx512f_<code>v8hiv8di2): Ditto. 12479 (avx512f_<code>v8siv8di2): Ditto. 12480 (avx512cd_maskb_vec_dupv8di): Ditto. 12481 (avx512cd_maskw_vec_dupv16si): Ditto. 12482 (avx512f_vcvtph2ps512): Ditto. 12483 (avx512f_vcvtps2ph512): Ditto. 12484 (VEC_EXTRACT_MODE): Extened with wider modes. 12485 (VEC_PERM_AVX2): Ditto. 12486 (VEC_PERM_CONST): Ditto. 12487 124882013-10-28 Joern Rennecke <joern.rennecke@embecosm.com> 12489 12490 * config/arc/arc.c (arc_ccfsm_post_advance): 12491 Add comment about TYPE_RETURN. 12492 124932013-10-28 Bin Cheng <bin.cheng@arm.com> 12494 12495 * tree-ssa-loop-ivopts.c (strip_offset_1): Change parameter type. 12496 Count DECL_FIELD_BIT_OFFSET for COMPONENT_REF. 12497 (strip_offset): Convert offset to unsigned number. 12498 124992013-10-27 Tom de Vries <tom@codesourcery.com> 12500 12501 * cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn. 12502 Don't commit insertions after NOTE_INSN_FUNCTION_BEG. 12503 125042013-10-27 Oleg Endo <olegendo@gcc.gnu.org> 12505 12506 * config/sh/sh.c (MSW, LSW): Move and rename macros to... 12507 * config/sh/sh.h (SH_REG_MSW_OFFSET, SH_REG_LSW_OFFSET): ... here. 12508 (TARGET_BIG_ENDIAN): New macro. 12509 * config/sh/sh.md: Use it instead of !TARGET_LITTLE_ENDIAN. 12510 Use SH_REG_MSW_OFFSET and SH_REG_LSW_OFFSET. 12511 * config/sh/sh.c: Likewise. 12512 * config/sh/sh.h: Likewise. 12513 125142013-10-27 Hans-Peter Nilsson <hp@axis.com> 12515 12516 * config/cris/cris.c (cris_emit_trap_for_misalignment): Replace the 12517 removed PRED_MUDFLAP with PRED_NORETURN. Correct file-path in comment. 12518 125192013-10-26 Oleg Endo <olegendo@gcc.gnu.org> 12520 12521 * config/sh/sh.md (movmemsi): Remove empty constraints and predicates. 12522 Fix formatting. 12523 (cmpstr_t, cmpstrsi): Fix formatting. 12524 125252013-10-26 Oleg Endo <olegendo@gcc.gnu.org> 12526 12527 PR target/52483 12528 * config/sh/predicates.md (general_movdst_operand): Allow reg+reg 12529 addressing, do not use general_operand for memory operands. 12530 125312013-10-26 Vladimir Makarov <vmakarov@redhat.com> 12532 12533 Revert: 12534 2013-10-25 Vladimir Makarov <vmakarov@redhat.com> 12535 * lra-spills.c (lra_final_code_change): Remove useless move insns. 12536 125372013-10-26 Jeff Law <law@redhat.com> 12538 12539 * predict.c (PRED_MUDFLAP): Remove. 12540 * targhooks.c (build_va_arg_indirect_ref): Remove mudflap support. 12541 12542 * Makefile.in (C_COMMON_OBJS): Remove tree-mudflap. 12543 (OBJS): Remove tree-nomudflap.o 12544 (GTFILES): Remove tree-mudflap.c 12545 * builtins.c (expand_builtin_alloc): Remove mudflap support. 12546 * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Likewise. 12547 (mfwrap_spec, mflib_spec): Likewise. 12548 (cpp_unique_options, cc1_options, static_specs): Likewise. 12549 * gimplify (gimplify_vla_decl, build_va_arg_indirect_ref): Likewise. 12550 * passes.def: Likewise. 12551 * toplev.c (compile_file, process_options): Likewise. 12552 * tree-inline.c (copy_tree_r): Likewise. 12553 * tree-pass.,h (make_pass_mudflap_1, make_pass_mudflap_2): Likewise. 12554 * varasm.c (make_decl_rtl, make_decl_rtl_for_debug): Likewise. 12555 (build_constant_desc, output_constant_def_contents): Likewise. 12556 (categorize_decl_for_section): Likewise. 12557 * tree-mudflap.c: Removed. 12558 * tree-mudflap.h: Removed. 12559 * tree-nomudflap.c: Removed. 12560 * bfin/uclinux.h (MFWRAP_SPEC): Remove. 12561 * moxie/uclinux.h (MFWRAP_SPEC): Likewise. 12562 * rs6000/aix.h (MFWRAP_SPEC, MFLIB_SPEC): Likewise. 12563 * config/sol2.h (MFLIB_SPEC): Likewise. 12564 * doc/install.texi: Remove mudflap references. 12565 * doc/passes.texi: Similarly. 12566 * doc/sourcebuild.texi: Similarly. 12567 * doc/invoke.texi: Remove mudlfap related options. 12568 125692013-10-25 Vladimir Makarov <vmakarov@redhat.com> 12570 12571 PR rtl-optimization/58759 12572 * lra-constraints.c (lra_constraints): Remove wrong condition to 12573 remove insn setting up an equivalent pseudo. 12574 125752013-10-25 Vladimir Makarov <vmakarov@redhat.com> 12576 12577 * config/rs6000/rs6000-protos.h 12578 (rs6000_secondary_memory_needed_mode): New prototype. 12579 * config/rs6000/rs6000.c: Include ira.h. 12580 (TARGET_LRA_P): Redefine. 12581 (rs6000_legitimate_offset_address_p): Call 12582 legitimate_constant_pool_address_p in strict mode for LRA. 12583 (rs6000_legitimate_address_p): Ditto. 12584 (legitimate_lo_sum_address_p): Add code for LRA. Use lra_in_progress. 12585 (rs6000_emit_move): Add LRA version of code to generate load/store 12586 of SDmode values. 12587 (rs6000_secondary_memory_needed_mode): New. 12588 (rs6000_alloc_sdmode_stack_slot): Do nothing for LRA. 12589 (rs6000_secondary_reload_class): Return NO_REGS for LRA for 12590 constants, memory, and FP registers. 12591 (rs6000_lra_p): New. 12592 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): New macro. 12593 * config/rs6000/rs6000.opt (mlra): New option. 12594 * lra-spills.c (lra_final_code_change): Remove useless move insns. 12595 125962013-10-25 Yufeng Zhang <yufeng.zhang@arm.com> 12597 12598 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Call 12599 has_single_use () and not do the conversion if has_single_use () 12600 returns false for the multiplication result. 12601 126022013-10-25 David Malcolm <dmalcolm@redhat.com> 12603 12604 * tree.h (EXCEPTIONAL_CLASS_P): Rename parameter from "CODE" 12605 to "NODE", since this works on a "tree", not an 12606 "enum tree_code". 12607 (CONSTANT_CLASS_P): Likewise. 12608 (TYPE_P): Likewise. 12609 (DECL_P): Likewise. 12610 (INDIRECT_REF_P): Likewise. 12611 (REFERENCE_CLASS_P): Likewise. 12612 (COMPARISON_CLASS_P): Likewise. 12613 (UNARY_CLASS_P): Likewise. 12614 (BINARY_CLASS_P): Likewise. 12615 (STATEMENT_CLASS_P): Likewise. 12616 (VL_EXP_CLASS_P): Likewise. 12617 (EXPRESSION_CLASS_P): Likewise. 12618 (IS_TYPE_OR_DECL_P): Likewise. 12619 126202013-10-25 Marc Glisse <marc.glisse@inria.fr> 12621 12622 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Look for an 12623 ADDR_EXPR in the defining statement. 12624 126252013-10-25 Richard Biener <rguenther@suse.de> 12626 12627 PR tree-optimization/58626 12628 * tree-loop-distribution.c (enum rdg_dep_type): Remove 12629 anti_dd, output_dd and input_dd. 12630 (struct rdg_edge): Remove level and relation members. 12631 (RDGE_LEVEL, RDGE_RELATION): Remove. 12632 (dot_rdg_1): Adjust. 12633 (create_rdg_edge_for_ddr): Remove. 12634 (create_rdg_edges_for_scalar): Adjust. 12635 (create_edge_for_control_dependence): Likewise. 12636 (create_rdg_edges): Split into ... 12637 (create_rdg_flow_edges): ... this 12638 (create_rdg_cd_edges): ... and this. 12639 (free_rdg): Adjust. 12640 (build_rdg): Likewise, do not compute data dependences or 12641 add edges for them. 12642 (pg_add_dependence_edges): New function. 12643 (pgcmp): Likewise. 12644 (distribute_loop): First apply all non-dependence based 12645 partition mergings. Then compute dependences between partitions 12646 and merge and order partitions according to them. 12647 126482013-10-25 Eric Botcazou <ebotcazou@adacore.com> 12649 12650 PR rtl-optimization/58831 12651 * alias.c (init_alias_analysis): At the beginning of each iteration, 12652 set the reg_seen[N] bit if static_reg_base_value[N] is non-null. 12653 126542013-10-25 Eric Botcazou <ebotcazou@adacore.com> 12655 12656 * recog.c (search_ofs): New static variable moved from... 12657 (peep2_find_free_register): ...here. 12658 (peephole2_optimize): Initialize it. 12659 126602013-10-25 Tobias Burnus <burnus@net-b.de> 12661 12662 * doc/invoke.texi (fopenmp): Change supported OpenMP version to 4.0. 12663 126642013-10-25 Uros Bizjak <ubizjak@gmail.com> 12665 12666 * config/i386/i386.h (TARGET_MPX): New define. 12667 (TARGET_MPX_P): Ditto. 12668 126692013-10-24 Ilya Enkovich <ilya.enkovich@intel.com> 12670 12671 * config/i386/constraints.md (B): New. 12672 (Ti): New. 12673 (Tb): New. 12674 * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__. 12675 * config/i386/i386-modes.def (BND32): New. 12676 (BND64): New. 12677 * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New. 12678 * config/i386/i386.c (isa_opts): Add mmpx. 12679 (regclass_map): Add bound registers. 12680 (dbx_register_map): Likewise. 12681 (dbx64_register_map): Likewise. 12682 (svr4_dbx_register_map): Likewise. 12683 (PTA_MPX): New. 12684 (ix86_option_override_internal): Support MPX ISA. 12685 (ix86_conditional_register_usage): Support bound registers. 12686 (print_reg): Likewise. 12687 (ix86_code_end): Add MPX bnd prefix. 12688 (output_set_got): Likewise. 12689 (ix86_output_call_insn): Likewise. 12690 (ix86_print_operand): Add '!' (MPX bnd) print prefix support. 12691 (ix86_print_operand_punct_valid_p): Likewise. 12692 (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and 12693 UNSPEC_BNDMK_ADDR. 12694 (ix86_class_likely_spilled_p): Add bound regs support. 12695 (ix86_hard_regno_mode_ok): Likewise. 12696 (x86_order_regs_for_local_alloc): Likewise. 12697 (ix86_bnd_prefixed_insn_p): New. 12698 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Fix to new value. 12699 (FIXED_REGISTERS): Add bound registers. 12700 (CALL_USED_REGISTERS): Likewise. 12701 (REG_ALLOC_ORDER): Likewise. 12702 (HARD_REGNO_NREGS): Likewise. 12703 (TARGET_MPX): New. 12704 (VALID_BND_REG_MODE): New. 12705 (FIRST_BND_REG): New. 12706 (LAST_BND_REG): New. 12707 (reg_class): Add BND_REGS. 12708 (REG_CLASS_NAMES): Likewise. 12709 (REG_CLASS_CONTENTS): Likewise. 12710 (BND_REGNO_P): New. 12711 (ANY_BND_REG_P): New. 12712 (BNDmode): New. 12713 (HI_REGISTER_NAMES): Add bound registers. 12714 * config/i386/i386.md (UNSPEC_BNDMK): New. 12715 (UNSPEC_BNDMK_ADDR): New. 12716 (UNSPEC_BNDSTX): New. 12717 (UNSPEC_BNDLDX): New. 12718 (UNSPEC_BNDLDX_ADDR): New. 12719 (UNSPEC_BNDCL): New. 12720 (UNSPEC_BNDCU): New. 12721 (UNSPEC_BNDCN): New. 12722 (UNSPEC_MPX_FENCE): New. 12723 (BND0_REG): New. 12724 (BND1_REG): New. 12725 (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst. 12726 (length_immediate): Likewise. 12727 (prefix_0f): Likewise. 12728 (memory): Likewise. 12729 (prefix_rep): Check for bnd prefix. 12730 (length_nobnd): New. 12731 (length): Use length_nobnd if specified. 12732 (BND): New. 12733 (bnd_ptr): New. 12734 (BNDCHECK): New. 12735 (bndcheck): New. 12736 (*jcc_1): Add bnd prefix and rename length attr to length_nobnd. 12737 (*jcc_2): Likewise. 12738 (jump): Likewise. 12739 (simple_return_internal): Likewise. 12740 (simple_return_pop_internal): Likewise. 12741 (*indirect_jump): Add MPX bnd prefix. 12742 (*tablejump_1): Likewise. 12743 (simple_return_internal_long): Likewise. 12744 (simple_return_indirect_internal): Likewise. 12745 (<mode>_mk): New. 12746 (*<mode>_mk): New. 12747 (mov<mode>): New. 12748 (*mov<mode>_internal_mpx): New. 12749 (<mode>_<bndcheck>): New. 12750 (*<mode>_<bndcheck>): New. 12751 (<mode>_ldx): New. 12752 (*<mode>_ldx): New. 12753 (<mode>_stx): New. 12754 (*<mode>_stx): New. 12755 * config/i386/predicates.md (lea_address_operand): Rename to... 12756 (address_no_seg_operand): ... this. 12757 (address_mpx_no_base_operand): New. 12758 (address_mpx_no_index_operand): New. 12759 (bnd_mem_operator): New. 12760 * config/i386/i386.opt (mmpx): New. 12761 * doc/invoke.texi: Add documentation for the flags -mmpx, -mno-mpx. 12762 * doc/rtl.texi Add documentation for BND32mode and BND64mode. 12763 127642013-10-24 Ilya Enkovich <ilya.enkovich@intel.com> 12765 12766 * mode-classes.def (MODE_POINTER_BOUNDS): New. 12767 * tree.def (POINTER_BOUNDS_TYPE): New. 12768 * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS. 12769 (POINTER_BOUNDS_MODE): New. 12770 (make_pointer_bounds_mode): New. 12771 * machmode.h (POINTER_BOUNDS_MODE_P): New. 12772 * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS. 12773 (layout_type): Support POINTER_BOUNDS_TYPE. 12774 * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE. 12775 * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE. 12776 (type_contains_placeholder_1): Likewise. 12777 * tree.h (POINTER_BOUNDS_TYPE_P): New. 12778 * varasm.c (output_constant): Support POINTER_BOUNDS_TYPE. 12779 * doc/rtl.texi (MODE_POINTER_BOUNDS): New. 12780 127812013-10-24 Igor Shevlyakov <igor.shevlyakov@gmail.com> 12782 12783 * expr.c (expand_expr_real_1): Use mode of memory reference rather than 12784 mode of address computation when calling memory_address_addr_space. 12785 127862013-08-24 Richard Henderson <rth@twiddle.net> 12787 12788 PR rtl/58542 12789 * optabs.c (maybe_emit_atomic_exchange): Use create_input_operand 12790 instead of create_convert_operand_to. 12791 (maybe_emit_sync_lock_test_and_set): Likewise. 12792 (expand_atomic_compare_and_swap): Likewise. 12793 (maybe_emit_compare_and_swap_exchange_loop): Don't convert_modes. 12794 127952013-08-24 Sriraman Tallam <tmsriram@google.com> 12796 12797 * cgraph.c (cgraph_fnver_htab): Move GTY((...)) to be before htab_t. 12798 Change param_is to use the struct and not the pointer to the struct. 12799 128002013-10-24 Andrew MacLeod <amacleod@redhat.com> 12801 12802 * builtins.c (dummy_object, gimplify_va_arg_expr): Move to gimplify.c. 12803 * gimplify.c (build_va_arg_indirect_ref, std_gimplify_va_arg_expr): 12804 Move to targhooks.c. 12805 (dummy_object, gimplify_va_arg_expr): Relocate from builtins.c. 12806 * targhooks.c (build_va_arg_indirect_ref, std_gimplify_va_arg_expr): 12807 Relocate from gimplify.c. 12808 * targhooks.h: Add 2 prototypes. 12809 * tree.h: Delete 2 prototypes. 12810 128112013-10-24 Igor Shevlyakov <igor.shevlyakov@gmail.com> 12812 12813 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p ): Check both 12814 [reg+mult*reg] and [mult*reg] to determine if multiplier is allowed. 12815 128162013-10-24 Cong Hou <congh@google.com> 12817 12818 * convert.c (convert_to_real): Guard those unsafe math function 12819 convertions with flag_unsafe_math_optimizations. Handle sqrt() 12820 specially. 12821 128222013-10-24 Markus Trippelsdorf <markus@trippelsdorf.de> 12823 12824 PR ipa/58712 12825 * cgraph.c (cgraph_create_edge_1): Add indirect_unknown_callee 12826 as argument. 12827 (cgraph_create_edge): Use the new argument. 12828 (cgraph_create_indirect_edge): Likewise. 12829 128302013-10-24 Joern Rennecke <joern.rennecke@embecosm.com> 12831 12832 * config/arc/arc.c (arc_ccfsm_post_advance): Also handle 12833 TYPE_UNCOND_BRANCH. 12834 (arc_ifcvt) <case 1 and 2>: Check that arc_ccfsm_post_advance 12835 changes statep->state. 12836 128372013-10-24 Tobias Burnus <burnus@net-b.de> 12838 12839 PR other/33426 12840 * tree-cfg.c (replace_loop_annotate): New function. 12841 (execute_build_cfg): Call it. 12842 * gimplify.c (gimple_boolify, gimplify_expr): Handle ANNOTATE_EXPR. 12843 * internal-fn.c (expand_ANNOTATE): New function. 12844 * internal-fn.def (ANNOTATE): Define as new internal function. 12845 * tree-core.h (tree_node_kind): Add annot_expr_ivdep_kind. 12846 * tree-pretty-print.c (dump_generic_node): Handle ANNOTATE_EXPR. 12847 * tree.def (ANNOTATE_EXPR): New DEFTREECODE. 12848 * doc/extend.texi (Pragmas): Document #pragma ivdep. 12849 * doc/generic.texi (Expressions): Document ANNOTATE_EXPR. 12850 128512013-10-17 Ian Bolton <ian.bolton@arm.com> 12852 Marcus Shawcroft <marcus.shawcroft@arm.com> 12853 12854 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): 12855 Special case reload SP+C into none GENERAL_REGS. 12856 128572013-10-24 Michael Matz <matz@suse.de> 12858 12859 * gengtype.c (is_file_equal): Check that files will be same length. 12860 128612013-10-25 Christian Bruel <christian.bruel@st.com> 12862 12863 * config.gcc (sh-*): Add sh-mem.o to extra_obj. 12864 * config/sh/t-sh (sh-mem.o): New rule. 12865 * config/sh/sh-mem.cc (expand_block_move): Moved here. 12866 (sh_expand_cmpstr): New function. 12867 * config/sh/sh.c (force_into, expand_block_move): Move to sh-mem.c. 12868 * config/sh/sh-protos.h (sh_expand_cmpstr): Declare. 12869 * config/sh/sh.md (cmpstrsi, cmpstr_t): New patterns. 12870 (rotlhi3_8): Rename. 12871 128722013-10-24 Jan-Benedict Glaw <jbglaw@lug-owl.de> 12873 12874 * configure.ac (ZW_PROG_COMPILER_DEPENDENCIES): Use CXX instead of CC. 12875 * Makefile.in (CXXDEPMODE): Assign and change users. 12876 (CCDEPMODE): Delete. 12877 * configure: Regenerate. 12878 128792013-10-23 David Malcolm <dmalcolm@redhat.com> 12880 12881 * gengtype-parse.c (require_without_advance): New. 12882 (type): For GTY-marked types that are not GTY((user)), parse any 12883 base classes, requiring them to be single-inheritance, and not 12884 be templates. For non-GTY-marked types and GTY((user)), 12885 continue to skip over any C++ inheritance specification. 12886 * gengtype-state.c (state_writer::write_state_struct_type): 12887 Write base class of type (if any). 12888 (read_state_struct_type): Read base class of type (if any). 12889 * gengtype.c (new_structure): Add a "base_class" parameter. 12890 (create_optional_field_): Update for new parameter to new_structure. 12891 (adjust_field_rtx_def): Likewise. 12892 (adjust_field_tree_exp): Likewise. 12893 * gengtype.h (struct type): Add "base_class" field to the s 12894 union field. 12895 (new_structure): Add "base" parameter. 12896 128972013-10-23 Sriraman Tallam <tmsriram@google.com> 12898 12899 PR target/57756 12900 * config/i386/i386.c (ix86_option_override_internal): 12901 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...) 12902 (ix86_valid_target_attribute_tree): 12903 Change TARGET_64BIT to TARGET_64BIT_P (opts->...) 12904 Change TARGET_SSE to TARGET_SSE_P (opts->...) 12905 129062013-10-23 Andrew MacLeod <amacleod@redhat.com> 12907 12908 * tree-ssa-loop.h: Remove include files. 12909 * gengtype.c (open_base_files): Adjust include list for gtype-desc.c. 12910 * cfgloopmanip.c: Move required includes from tree-ssa-loop.h. 12911 * graphite-clast-to-gimple.c: Likewise. 12912 * graphite-scop-detection.c: Likewise. 12913 * graphite-sese-to-poly.c: Likewise. 12914 * ipa-inline-analysis.c: Likewise. 12915 * ipa-pure-const.c: Likewise. 12916 * loop-init.c: Likewise. 12917 * passes.c: Likewise. 12918 * predict.c: Likewise. 12919 * tree-cfg.c: Likewise. 12920 * tree-cfgcleanup.c: Likewise. 12921 * tree-chrec.c: Likewise. 12922 * tree-data-ref.c: Likewise. 12923 * tree-loop-distribution.c: Likewise. 12924 * tree-parloops.c: Likewise. 12925 * tree-predcom.c: Likewise. 12926 * tree-scalar-evolution.c: Likewise. 12927 * tree-ssa-address.c: Likewise. 12928 * tree-ssa.c: Likewise. 12929 * tree-ssa-dce.c: Likewise. 12930 * tree-ssa-loop.c: Likewise. 12931 * tree-ssa-loop-im.c: Likewise. 12932 * tree-ssa-loop-ivcanon.c: Likewise. 12933 * tree-ssa-loop-ivopts.c: Likewise. 12934 * tree-ssa-loop-manip.c: Likewise. 12935 * tree-ssa-loop-niter.c: Likewise. 12936 * tree-ssa-loop-prefetch.c: Likewise. 12937 * tree-ssa-loop-unswitch.c: Likewise. 12938 * tree-ssa-reassoc.c: Likewise. 12939 * tree-vect-data-refs.c: Likewise. 12940 * tree-vect-loop.c: Likewise. 12941 * tree-vect-loop-manip.c: Likewise. 12942 * tree-vectorizer.c: Likewise. 12943 * tree-vect-stmts.c: Likewise. 12944 * tree-vrp.c: Likewise. 12945 129462013-10-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 12947 12948 * config/rs6000/altivec.md (mulv8hi3): Adjust for little endian. 12949 129502013-10-23 Jakub Jelinek <jakub@redhat.com> 12951 12952 PR tree-optimization/58775 12953 PR tree-optimization/58791 12954 * tree-ssa-reassoc.c (reassoc_stmt_dominates_stmt_p): New function. 12955 (insert_stmt_after): Rewritten, don't move the stmt, but really 12956 insert it. 12957 (get_stmt_uid_with_default): Remove. 12958 (build_and_add_sum): Use insert_stmt_after and 12959 reassoc_stmt_dominates_stmt_p. Fix up uid if bb contains only labels. 12960 (update_range_test): Set uid on stmts added by 12961 force_gimple_operand_gsi. Don't immediately modify statements 12962 in inter-bb optimization, just update oe->op values. 12963 (optimize_range_tests): Return bool whether any changed have been made. 12964 (update_ops): New function. 12965 (struct inter_bb_range_test_entry): New type. 12966 (maybe_optimize_range_tests): Perform statement changes here. 12967 (not_dominated_by, appears_later_in_bb, get_def_stmt, 12968 ensure_ops_are_available): Remove. 12969 (find_insert_point): Rewritten. 12970 (rewrite_expr_tree): Remove MOVED argument, add CHANGED argument, 12971 return LHS of the (new resp. old) stmt. Don't call 12972 ensure_ops_are_available, don't reuse SSA_NAMEs, recurse first 12973 instead of last, move new stmt at the right place. 12974 (linearize_expr, repropagate_negates): Don't reuse SSA_NAMEs. 12975 (negate_value): Likewise. Set uids. 12976 (break_up_subtract_bb): Initialize uids. 12977 (reassociate_bb): Adjust rewrite_expr_tree caller. 12978 (do_reassoc): Don't call renumber_gimple_stmt_uids. 12979 129802013-10-23 David Edelsohn <dje.gcc@gmail.com> 12981 12982 PR target/58838 12983 * config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add 12984 TARGET_32BIT final condition. 12985 (mulsi3_internal2 and splitter): Same. 12986 129872013-10-23 Jeff Law <law@redhat.com> 12988 12989 * tree-ssa-threadedge.c (thread_across_edge): Do not allow threading 12990 through joiner blocks with abnormal outgoing edges. 12991 12992 * tree-ssa-threadupdate.c (thread_block_1): Renamed from thread_block. 12993 Add parameter JOINERS, to allow/disallow threading through joiner 12994 blocks. 12995 (thread_block): New. Call thread_block_1. 12996 (mark_threaded_blocks): Remove code to filter out certain cases 12997 of threading through joiner blocks. 12998 (thread_through_all_blocks): Document how we can have a dangling 12999 edge AUX field and clear it. 13000 130012013-10-23 Ian Lance Taylor <iant@google.com> 13002 13003 * doc/invoke.texi (Option Summary): Remove -fno-default-inline. 13004 (C++ Dialect Options): Likewise. 13005 (Optimize Options): Likewise. 13006 130072013-10-23 Tom de Vries <tom@codesourcery.com> 13008 13009 PR tree-optimization/58805 13010 * tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check. 13011 130122013-10-23 Jakub Jelinek <jakub@redhat.com> 13013 13014 * tree-vect-patterns.c (vect_recog_divmod_pattern): Optimize 13015 sequence based on get_range_info returned range. 13016 130172013-10-23 Andrew MacLeod <amacleod@redhat.com> 13018 13019 * tree-ssa.h: Remove all #include's 13020 * gengtype.c (open_base_files): Adjust include list for gtype-desc.c. 13021 * alias.c: Move required includes from tree-ssa.h. 13022 * asan.c: Likewise. 13023 * builtins.c: Likewise. 13024 * calls.c: Likewise. 13025 * cfgexpand.c: Likewise. 13026 * cfghooks.c: Likewise. 13027 * cfgloop.c: Likewise. 13028 * cfgloopmanip.c: Likewise. 13029 * cgraph.c: Likewise. 13030 * cgraphbuild.c: Likewise. 13031 * cgraphclones.c: Likewise. 13032 * cgraphunit.c: Likewise. 13033 * dse.c: Likewise. 13034 * except.c: Likewise. 13035 * expr.c: Likewise. 13036 * final.c: Likewise. 13037 * fold-const.c: Likewise. 13038 * ggc-page.c: Likewise. 13039 * gimple-builder.c: Likewise. 13040 * gimple-fold.c: Likewise. 13041 * gimple-iterator.c: Likewise. 13042 * gimple-low.c: Likewise. 13043 * gimple-pretty-print.c: Likewise. 13044 * gimple-ssa-strength-reduction.c: Likewise. 13045 * gimple-streamer-in.c: Likewise. 13046 * gimple-streamer-out.c: Likewise. 13047 * gimplify.c: Likewise. 13048 * graphite-blocking.c: Likewise. 13049 * graphite-clast-to-gimple.c: Likewise. 13050 * graphite-dependences.c: Likewise. 13051 * graphite-interchange.c: Likewise. 13052 * graphite-optimize-isl.c: Likewise. 13053 * graphite-poly.c: Likewise. 13054 * graphite-scop-detection.c: Likewise. 13055 * graphite-sese-to-poly.c: Likewise. 13056 * graphite.c: Likewise. 13057 * ipa-cp.c: Likewise. 13058 * ipa-inline-analysis.c: Likewise. 13059 * ipa-inline-transform.c: Likewise. 13060 * ipa-inline.c: Likewise. 13061 * ipa-prop.c: Likewise. 13062 * ipa-pure-const.c: Likewise. 13063 * ipa-reference.c: Likewise. 13064 * ipa-split.c: Likewise. 13065 * ipa-utils.c: Likewise. 13066 * loop-init.c: Likewise. 13067 * lto-cgraph.c: Likewise. 13068 * lto-section-in.c: Likewise. 13069 * lto-section-out.c: Likewise. 13070 * lto-streamer-in.c: Likewise. 13071 * lto-streamer-out.c: Likewise. 13072 * lto-streamer.c: Likewise. 13073 * omp-low.c: Likewise. 13074 * passes.c: Likewise. 13075 * predict.c: Likewise. 13076 * print-tree.c: Likewise. 13077 * profile.c: Likewise. 13078 * sese.c: Likewise. 13079 * targhooks.c: Likewise. 13080 * tracer.c: Likewise. 13081 * trans-mem.c: Likewise. 13082 * tree-call-cdce.c: Likewise. 13083 * tree-cfg.c: Likewise. 13084 * tree-cfgcleanup.c: Likewise. 13085 * tree-chrec.c: Likewise. 13086 * tree-complex.c: Likewise. 13087 * tree-data-ref.c: Likewise. 13088 * tree-dfa.c: Likewise. 13089 * tree-eh.c: Likewise. 13090 * tree-emutls.c: Likewise. 13091 * tree-if-conv.c: Likewise. 13092 * tree-inline.c: Likewise. 13093 * tree-into-ssa.c: Likewise. 13094 * tree-loop-distribution.c: Likewise. 13095 * tree-mudflap.c: Likewise. 13096 * tree-nested.c: Likewise. 13097 * tree-nrv.c: Likewise. 13098 * tree-object-size.c: Likewise. 13099 * tree-outof-ssa.c: Likewise. 13100 * tree-parloops.c: Likewise. 13101 * tree-phinodes.c: Likewise. 13102 * tree-predcom.c: Likewise. 13103 * tree-pretty-print.c: Likewise. 13104 * tree-profile.c: Likewise. 13105 * tree-scalar-evolution.c: Likewise. 13106 * tree-sra.c: Likewise. 13107 * tree-ssa-address.c: Likewise. 13108 * tree-ssa-alias.c: Likewise. 13109 * tree-ssa-ccp.c: Likewise. 13110 * tree-ssa-coalesce.c: Likewise. 13111 * tree-ssa-copy.c: Likewise. 13112 * tree-ssa-copyrename.c: Likewise. 13113 * tree-ssa-dce.c: Likewise. 13114 * tree-ssa-dom.c: Likewise. 13115 * tree-ssa-dse.c: Likewise. 13116 * tree-ssa-forwprop.c: Likewise. 13117 * tree-ssa-ifcombine.c: Likewise. 13118 * tree-ssa-live.c: Likewise. 13119 * tree-ssa-loop-ch.c: Likewise. 13120 * tree-ssa-loop-im.c: Likewise. 13121 * tree-ssa-loop-ivcanon.c: Likewise. 13122 * tree-ssa-loop-ivopts.c: Likewise. 13123 * tree-ssa-loop-manip.c: Likewise. 13124 * tree-ssa-loop-niter.c: Likewise. 13125 * tree-ssa-loop-prefetch.c: Likewise. 13126 * tree-ssa-loop-unswitch.c: Likewise. 13127 * tree-ssa-loop.c: Likewise. 13128 * tree-ssa-math-opts.c: Likewise. 13129 * tree-ssa-operands.c: Likewise. 13130 * tree-ssa-phiopt.c: Likewise. 13131 * tree-ssa-phiprop.c: Likewise. 13132 * tree-ssa-pre.c: Likewise. 13133 * tree-ssa-propagate.c: Likewise. 13134 * tree-ssa-reassoc.c: Likewise. 13135 * tree-ssa-sccvn.c: Likewise. 13136 * tree-ssa-sink.c: Likewise. 13137 * tree-ssa-strlen.c: Likewise. 13138 * tree-ssa-structalias.c: Likewise. 13139 * tree-ssa-tail-merge.c: Likewise. 13140 * tree-ssa-ter.c: Likewise. 13141 * tree-ssa-threadedge.c: Likewise. 13142 * tree-ssa-threadupdate.c: Likewise. 13143 * tree-ssa-uncprop.c: Likewise. 13144 * tree-ssa-uninit.c: Likewise. 13145 * tree-ssa.c: Likewise. 13146 * tree-ssanames.c: Likewise. 13147 * tree-stdarg.c: Likewise. 13148 * tree-streamer-in.c: Likewise. 13149 * tree-switch-conversion.c: Likewise. 13150 * tree-tailcall.c: Likewise. 13151 * tree-vect-data-refs.c: Likewise. 13152 * tree-vect-generic.c: Likewise. 13153 * tree-vect-loop-manip.c: Likewise. 13154 * tree-vect-loop.c: Likewise. 13155 * tree-vect-patterns.c: Likewise. 13156 * tree-vect-slp.c: Likewise. 13157 * tree-vect-stmts.c: Likewise. 13158 * tree-vectorizer.c: Likewise. 13159 * tree-vrp.c: Likewise. 13160 * tree.c: Likewise. 13161 * tsan.c: Likewise. 13162 * value-prof.c: Likewise. 13163 * var-tracking.c: Likewise. 13164 * varpool.c: Likewise. 13165 * vtable-verify.c: Likewise. 13166 131672013-10-23 Jan-Benedict Glaw <jbglaw@lug-owl.de> 13168 13169 * config/tilegx/tilegx.c: Include "tree.h". 13170 131712013-10-23 Jakub Jelinek <jakub@redhat.com> 13172 13173 * gimple-pretty-print.c (dump_ssaname_info): Always print "# " before 13174 the info, not after it. 13175 (gump_gimple_phi): Add COMMENT argument, if true, print "# " after 13176 dump_ssaname_info call. 13177 (pp_gimple_stmt_1): Adjust caller. 13178 (dump_phi_nodes): Likewise. Don't print "# " here. 13179 131802013-10-22 Jan Hubicka <jh@suse.cz> 13181 13182 * i386.h (TARGET_MISALIGNED_MOVE_STRING_PROLOGUES_EPILOGUES): New 13183 tuning flag. 13184 * x86-tune.def (TARGET_MISALIGNED_MOVE_STRING_PROLOGUES): Define it. 13185 * i386.c (expand_small_movmem_or_setmem): New function. 13186 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): New 13187 function. 13188 (alg_usable_p): Add support for value ranges; cleanup. 13189 (ix86_expand_set_or_movmem): Add support for misaligned moves. 13190 131912013-10-22 Sterling Augustine <saugustine@google.com> 13192 13193 * doc/invoke.texi: Document -ggnu-pubnames. 13194 * common.opt: Add new option -ggnu-pubnames and modify -gpubnames 13195 logic. 13196 * dwarf2out.c: Include gdb/gdb-index.h. 13197 (DEBUG_PUBNAMES_SECTION, DEBUG_PUBTYPES_SECTION): Handle 13198 debug_generate_pub_sections. 13199 (is_java, output_pubtables, output_pubname): New functions. 13200 (include_pubname_in_output): Handle debug_generate_pub_sections at 13201 level 2. 13202 (size_of_pubnames): Use new local space_for_flags based on 13203 debug_generate_pub_sections. 13204 (output_pubnames): Unify pubnames and pubtypes output logic. 13205 Genericize comments. Call output_pubname. 13206 (dwarf2out_finish): Move logic to output_pubnames and call it. 13207 132082013-10-22 Uros Bizjak <ubizjak@gmail.com> 13209 13210 PR target/58779 13211 * config/i386/i386.c (put_condition_code) <case GTU, case LEU>: 13212 Remove CCCmode handling. 13213 <case LTU>: Return 'c' suffix for CCCmode. 13214 <case GEU>: Return 'nc' suffix for CCCmode. 13215 (ix86_cc_mode) <case GTU, case LEU>: Do not generate overflow checks. 13216 * config/i386/i386.md (*sub<mode>3_cconly_overflow): Remove. 13217 (*sub<mode>3_cc_overflow): Ditto. 13218 (*subsi3_zext_cc_overflow): Ditto. 13219 132202013-10-22 Steve Ellcey <sellcey@mips.com> 13221 13222 * config/mips/mips.c (mips_rtx_costs): Fix cost estimate for nor 13223 (AND (NOT OP1) (NOT OP2)). 13224 132252013-10-22 Bill Schmidt <wschmidt@vnet.ibm.com> 13226 13227 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse 13228 meaning of merge-high and merge-low masks for little endian; avoid 13229 use of vector-pack masks for little endian for mismatched modes. 13230 132312013-10-22 Jan-Benedict Glaw <jbglaw@lug-owl.de> 13232 13233 * config/tilepro/tilepro.c: Include "tree.h". 13234 132352013-10-22 Andreas Schwab <schwab@suse.de> 13236 13237 * config/m68k/m68k.c (notice_update_cc): Handle register conflict 13238 with PRE_DEC. 13239 132402013-10-22 Paolo Carlini <paolo.carlini@oracle.com> 13241 13242 * doc/contrib.texi ([Fran@,{c}ois Dumont], [Tim Shen], 13243 [Ed Smith-Rowland]): New entries. 13244 ([Stephen M. Webb]): Update. 13245 132462013-10-22 Andrew MacLeod <amacleod@redhat.com> 13247 13248 * tree-ssa-ter.h: Remove duplicate copy of file contents. 13249 132502013-10-21 Marek Polacek <polacek@redhat.com> 13251 13252 PR middle-end/58809 13253 * fold-const.c (fold_range_test): Return 0 if the type is not 13254 an integral type. 13255 132562013-10-21 Richard Sandiford <rdsandiford@googlemail.com> 13257 13258 * system.h: Move hwint.h include further down. 13259 * hwint.h (sext_hwi, zext_hwi): Define unconditionally. Add 13260 gcc_checking_asserts. 13261 * hwint.c (sext_hwi, zext_hwi): Delete ENABLE_CHECKING versions. 13262 132632013-10-21 Bernd Edlinger <bernd.edlinger@hotmail.de> 13264 13265 Fix volatile issues in optimize_bit_field_compare. 13266 * fold-const.c (optimize_bit_field_compare): Bail out if 13267 lvolatilep or rvolatilep. 13268 132692013-10-21 Bernd Edlinger <bernd.edlinger@hotmail.de> 13270 13271 Fix DECL_BIT_FIELD depencency on flag_strict_volatile_bitfields 13272 and get_inner_reference returning different pmode for non-volatile 13273 bit-field members dependent on flag_strict_volatile_bitfields. 13274 * stor-layout.c (layout_decl): Remove special handling of 13275 flag_strict_volatile_bitfields. 13276 * expr.c (get_inner_reference): Don't use DECL_BIT_FIELD 13277 if flag_strict_volatile_bitfields > 0 and TREE_THIS_VOLATILE. 13278 132792013-10-21 Paulo Matos <pmatos@broadcom.com> 13280 13281 * ipa-inline.c (edge_badness): Cap edge->count at max_count for badness 13282 calculations. 13283 132842013-10-21 Jeff Law <law@redhat.com> 13285 13286 * tree-ssa-threadedge.c (thread_through_normal_block): New 13287 argument VISITED. Remove VISISTED as a local variable. When we 13288 have a threadable jump, verify the destination of the jump has not 13289 been visised. 13290 (thread_across_edge): Allocate VISITED bitmap once at function 13291 scope and use it throughout. Make sure to set appropriate bits in 13292 VISITED for E (start of jump thread path). 13293 * tree-ssa-threadupdate.c (mark_threaded_blocks): Reject threading 13294 through a joiner if any edge on the path has a recorded jump thread. 13295 132962013-10-21 Ian Lance Taylor <iant@google.com> 13297 13298 * doc/invoke.texi (Optimize Options): For -fno-toplevel-reorder, 13299 don't imply that attributes can solve all problems. 13300 (Directory Options): Fix typo. 13301 133022013-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 13303 13304 * config/arm/arm.c (cortexa9_extra_costs): Update mult costs for 13305 extend and extend_add. 13306 133072013-10-21 Richard Biener <rguenther@suse.de> 13308 13309 PR tree-optimization/58794 13310 * fold-const.c (operand_equal_p): Compare FIELD_DECL operand 13311 of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place. 13312 133132013-10-21 Richard Biener <rguenther@suse.de> 13314 13315 PR middle-end/58742 13316 * fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C 13317 to (T) X for sign-changing conversions (or no conversion). 13318 133192013-10-20 Uros Bizjak <ubizjak@gmail.com> 13320 13321 * config/i386/i386.md (kxnor<mode>): Add FLAGS_REG clobber. 13322 133232013-10-20 Jan Hubicka <jh@suse.cz> 13324 13325 * config/i386/i386-tune.def: Add comment; organize into categories 13326 133272013-10-21 Michael Zolotukhin <michael.v.zolotukhin@gmail.com> 13328 13329 * config/i386/i386.c (expand_set_or_movmem_via_loop): Add issetmem 13330 argument. Update function comment. 13331 (expand_set_or_movmem_via_rep): New function combining 13332 expand_movmem_via_rep_mov and expand_setmem_via_rep_stos. 13333 (expand_movmem_via_rep_mov): Remove. 13334 expand_setmem_via_rep_stos): Remove. 13335 (expand_movmem_epilogue): Update calls correspondingly. 13336 (expand_setmem_epilogue_via_loop): Likewise. 13337 (emit_memset): New. 13338 (expand_setmem_epilogue): Add VEC_VALUE argument, refactor. 13339 (expand_set_or_movmem_prologue): New function combining 13340 expand_movmem_prologue and expand_setmem_prologue. 13341 (expand_movmem_prologue): Remove. 13342 (expand_setmem_prologue): Remove. 13343 (expand_set_or_movmem_constant_prologue): New function combining 13344 expand_constant_movmem_prologue and expand_constant_setmem_prologue. 13345 (expand_constant_movmem_prologue): Remove. 13346 (expand_constant_setmem_prologue): Remove. 13347 (promote_duplicated_reg): Allow vector-const0 value. 13348 (ix86_expand_set_or_movmem): New function combining ix86_expand_movmem 13349 and ix86_expand_setmem. 13350 (ix86_expand_movmem): Call ix86_expand_set_or_movmem. 13351 (ix86_expand_setmem): Call ix86_expand_set_or_movmem. 13352 133532013-10-21 Diego Novillo <dnovillo@google.com> 13354 13355 * asan.c: Include tree.h 13356 * bb-reorder.c: Likewise. 13357 * cfgcleanup.c: Likewise. 13358 * cfgloopmanip.c: Likewise. 13359 * data-streamer-in.c: Likewise. 13360 * data-streamer-out.c: Likewise. 13361 * data-streamer.c: Likewise. 13362 * dwarf2cfi.c: Likewise. 13363 * graphite-blocking.c: Likewise. 13364 * graphite-clast-to-gimple.c: Likewise. 13365 * graphite-dependences.c: Likewise. 13366 * graphite-interchange.c: Likewise. 13367 * graphite-optimize-isl.c: Likewise. 13368 * graphite-poly.c: Likewise. 13369 * graphite-scop-detection.c: Likewise. 13370 * graphite-sese-to-poly.c: Likewise. 13371 * graphite.c: Likewise. 13372 * ipa-devirt.c: Likewise. 13373 * ipa-profile.c: Likewise. 13374 * ipa.c: Likewise. 13375 * ira.c: Likewise. 13376 * loop-init.c: Likewise. 13377 * loop-unroll.c: Likewise. 13378 * lower-subreg.c: Likewise. 13379 * lto/lto-object.c: Likewise. 13380 * recog.c: Likewise. 13381 * reginfo.c: Likewise. 13382 * tree-loop-distribution.c: Likewise. 13383 * tree-parloops.c: Likewise. 13384 * tree-ssa-strlen.c: Likewise. 13385 * tree-streamer.c: Likewise. 13386 * value-prof.c: Likewise. 13387 * target-globals.c: Likewise. 13388 * expr.h: Include tree-core.h instead of tree.h. 13389 * gimple.h: Likewise. 13390 * ipa-prop.h: Likewise. 13391 * ipa-utils.h: Likewise. 13392 * lto-streamer.h: Likewise. 13393 * streamer-hooks.h: Likewise. 13394 * ipa-reference.h: Include cgraph.h instead of tree.h. 13395 * cgraph.h: Include basic-block.h instead of tree.h. 13396 * tree-streamer.h: Do not include tree.h. 13397 * genattrtab.c (write_header): Generate inclusion of tree.h. 13398 * genautomata.c (main): Likewise. 13399 * genemit.c: Likewise. 13400 * genopinit.c: Likewise. 13401 * genoutput.c (output_prologue): Likewise. 13402 * genpeep.c: Likewise. 13403 134042013-10-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 13405 13406 * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Adjust for 13407 little endian. 13408 (vec_unpacku_hi_v8hi): Likewise. 13409 (vec_unpacku_lo_v16qi): Likewise. 13410 (vec_unpacku_lo_v8hi): Likewise. 13411 134122013-10-20 Jan Hubicka <jh@suse.cz> 13413 13414 * config/i386/x86-tune.def (X86_TUNE_SLOW_IMUL_IMM32_MEM, 13415 X86_TUNE_SLOW_IMUL_IMM8): Keep enabled only for K8 and AMDFAM10. 13416 (X86_TUNE_USE_VECTOR_FP_CONVERTS): Disable for generic. 13417 134182013-10-20 Richard Sandiford <rdsandiford@googlemail.com> 13419 13420 * config/mips/mips.h (ISA_HAS_WSBH): Define. 13421 * config/mips/mips.md (UNSPEC_WSBH, UNSPEC_DSBH, UNSPEC_DSHD): New 13422 constants. 13423 (bswaphi2, bswapsi2, bswapdi2, wsbh, dsbh, dshd): New patterns. 13424 134252013-10-19 John David Anglin <danglin@gcc.gnu.org> 13426 13427 PR target/58603 13428 * system.h: Undef m_slot. 13429 134302013-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 13431 13432 * config/rs6000/rs6000.c (vspltis_constant): Make sure we check 13433 all elements for both endian flavors. 13434 134352013-10-19 Uros Bizjak <ubizjak@gmail.com> 13436 13437 PR target/58792 13438 * config/i386/i386.c (ix86_function_value_regno): Add DX_REG, 13439 ST1_REG and XMM1_REG for 32bit and 64bit targets. Also add DI_REG 13440 and SI_REG for 64bit SYSV ABI targets. 13441 134422013-10-19 Uros Bizjak <ubizjak@gmail.com> 13443 13444 * mode-switching.c (create_pre_exit): Rename maybe_builtin_apply 13445 to multi_reg_return. Clarify that we are skipping USEs of multiple 13446 return registers. Use bool type where appropriate. 13447 134482013-10-18 Jan Hubicka <jh@suse.cz> 13449 13450 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Disable accumulation 13451 for cold functions. 13452 * x86-tune.def (X86_TUNE_USE_LEAVE): Update comment. 13453 (X86_TUNE_PUSH_MEMORY): Likewise. 13454 (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL, 13455 X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): New. 13456 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS, X86_TUNE_ALWAYS_FANCY_MATH_387): 13457 New. 13458 * i386.c (x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387, 13459 x86_avx256_split_unaligned_load, x86_avx256_split_unaligned_store): 13460 Remove. 13461 (ix86_option_override_internal): Update to use tune features instead 13462 of variables. 13463 134642013-10-18 Cong Hou <congh@google.com> 13465 13466 PR tree-optimization/58508 13467 * tree-vect-loop-manip.c (vect_loop_versioning): Hoist loop invariant 13468 statement that contains data refs with zero-step. 13469 134702013-10-18 Andrew MacLeod <amacleod@redhat.com> 13471 13472 * tree-ssa.h: Don't include gimple-low.h, tree-ssa-address.h, 13473 sbitmap.h, tree-ssa-threadedge.h, tree-ssa-dom.h and tree-cfgcleanup.h. 13474 * gimple-low.c (gimple_check_call_arg, 13475 gimple_check_call_matching_types): Move to cgraph.c. 13476 * gimple-low.h: Remove prototype. 13477 * cgraph.c: (gimple_check_call_arg, gimple_check_call_matching_types): 13478 Relocate from gimple-low.c. 13479 * cgraph.h: Add prototype. Don't include basic-block.h. 13480 * gimplify.c: Add gimple-low to include list. 13481 * omp-low.c: Add gimple-low and tree-cfgcleanup.h to include list. 13482 * tree-eh.c: Add gimple-low to include list. 13483 * tree-nested.c: Likewise. 13484 * cfgexpand.c: Add tree-ssa-address.h to include list. 13485 * expr.c: Likewise. 13486 * gimple-fold.c: Likewise. 13487 * gimple-ssa-strength-reduction.c: Likewise. 13488 * trans-mem.c: Likewise. 13489 * tree-mudflap.c: Likewise. 13490 * tree-ssa-loop-ivopts.c: Likewise. 13491 * tree-ssa-dom.c: Include tree-ssa-threadedge.h and tree-ssa-dom.h. 13492 (degenerate_phi_result): Move to tree-phinodes.c. 13493 * tree-ssa-loop-ch.c: Include tree-ssa-threadedge.h. 13494 * tree-ssa-threadedge.c: Likewise. 13495 * tree-vrp.c: Likewise. 13496 * tree-phinodes.c (degenerate_phi_result): Relocate here. 13497 * tree-ssa-dom.h (degenerate_phi_result): Remove Prototype. 13498 * tree-phinodes.h (degenerate_phi_result): Add prototype. 13499 * tree-ssa-copy.c: Include tree-ssa-dom.h. 13500 * tree-ssa-forwprop.c: Likewise. 13501 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing, 13502 pass_data_cleanup_cfg_post_optimizing, 13503 make_pass_cleanup_cfg_post_optimizing): Relocate from tree-optimize.c. 13504 * tree-optimize.c: Delete File. 13505 * graphite.c: Include tree-cfgcleanup.h. 13506 * passes.c: Likewise. 13507 * tree-cfg.c: Likewise. 13508 * tree-profile.c: Likewise. 13509 * tree-ssa-dse.c: Likewise. 13510 * tree-ssa-loop-ivcanon.c: Likewise. 13511 * tree-switch-conversion.c: Don't include tree-ssa-operands.h. 13512 * tree-outof-ssa.c: Include sbitmap.h. 13513 * tree-ssa-live.c: Likewise. 13514 * tree-ssa-propagate.c: Likewise. 13515 * tree-ssa-structalias.c: Likewise. 13516 * tree-stdarg.c: Likewise. 13517 * Makefile.in (OBJS): Delete tree-optimize.o. 13518 * basic-block.h (gcov_type, gcov_type_unsigned): Move to coretypes.h. 13519 * coretypes.h (gcov_type, gcov_type_unsigned): Relocate here. 13520 * varasm.c: Include basic-block.h. 13521 * cfgloop.h: Include function.h instead of basic-block.h 13522 (bb_loop_depth): Move to cfgloop.c. 13523 * cfgloop.c (bb_loop_depth): Relocate from cfgloop.h. 13524 135252013-10-18 Teresa Johnson <tejohnson@google.com> 13526 13527 * predict.c (probably_never_executed): Compare frequency-based 13528 count to number of training runs. 13529 * params.def (UNLIKELY_BB_COUNT_FRACTION): New parameter. 13530 135312013-10-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 13532 13533 * config/arm/arm.c (cortexa9_extra_costs): New table. 13534 (arm_cortex_a9_tune): Use cortexa9_extra_costs. 13535 135362013-10-18 Jeff Law <law@redhat.com> 13537 13538 * tree-ssa-threadupdate.c: Do not include "tm.h" or "tm_p.h". 13539 13540 * tree-ssa-threadupdate.c: Include "dbgcnt.h". 13541 (register_jump_thread): Add "registered_jump_thread" debug 13542 counter support. 13543 * dbgcnt.def (registered_jump_thread): New debug counter. 13544 135452013-10-18 Andrew MacLeod <amacleod@redhat.com> 13546 13547 * config/rs6000/rs6000.c: Include cgraph.h. 13548 135492013-10-18 Teresa Johnson <tejohnson@google.com> 13550 13551 * tree-ssa-tail-merge.c (replace_block_by): Update edge 13552 weights during merging. 13553 135542013-10-18 Andrew MacLeod <amacleod@redhat.com> 13555 13556 * tree-cfg.h: Rename from tree-flow.h. Remove #includes. 13557 * tree-ssa.h: Relocate required #includes from tree-cfg.h. 13558 * tree-ssa-operands.h: Remove prototype. 13559 * tree-ssa-operands.c (virtual_operand_p): Move to gimple.c. 13560 * gimple.c (virtual_operand_p): Relocate from gimple.c. 13561 * gimple.h: Add prototype. 13562 * gimple-ssa.h: Include tree-ssa-operands.h. 13563 * tree-dump.c: Add tree-cfg.h to include list. 13564 * tree-ssa-alias.c: Add ipa-reference.h to include list. 13565 * config/alpha/alpha.c: Include gimple-ssa.h instead of tree-flow.h. 13566 * config/i386/i386.c: Don't include tree-flow.h. 13567 * config/rs6000/rs6000.c: Likewise. 13568 135692013-10-18 Jan-Benedict Glaw <jbglaw@lug-owl.de> 13570 13571 * config/frv/frv.c (frv_init_cumulative_args): Fix wrong cast. 13572 135732013-10-18 Richard Biener <rguenther@suse.de> 13574 13575 * stor-layout.c (layout_type): Do not change TYPE_PRECISION 13576 or TYPE_UNSIGNED of integral types. 13577 (set_min_and_max_values_for_integral_type): Leave TYPE_MIN/MAX_VALUE 13578 NULL_TREE for zero-precision integral types. 13579 135802013-10-18 James Greenhalgh <james.greenhalgh@arm.com> 13581 13582 * config/aarch64/arm_neon.h 13583 (vcvt<ds>_n_<fsu><32,64>_<fsu><32,64>): Correct argument types. 13584 135852013-10-17 Sriraman Tallam <tmsriram@google.com> 13586 13587 PR target/57756 13588 * opth-gen.awk: Define target_flags_explicit. 13589 135902013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com> 13591 13592 * config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new 13593 fields to the reg_addr array that describes the valid addressing 13594 mode for any register, general purpose registers, floating point 13595 registers, and Altivec registers. 13596 (FIRST_RELOAD_REG_CLASS): Likewise. 13597 (LAST_RELOAD_REG_CLASS): Likewise. 13598 (struct reload_reg_map_type): Likewise. 13599 (reload_reg_map_type): Likewise. 13600 (RELOAD_REG_VALID): Likewise. 13601 (RELOAD_REG_MULTIPLE): Likewise. 13602 (RELOAD_REG_INDEXED): Likewise. 13603 (RELOAD_REG_OFFSET): Likewise. 13604 (RELOAD_REG_PRE_INCDEC): Likewise. 13605 (RELOAD_REG_PRE_MODIFY): Likewise. 13606 (reg_addr): Likewise. 13607 (mode_supports_pre_incdec_p): New helper functions to say whether 13608 a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY. 13609 (mode_supports_pre_modify_p): Likewise. 13610 (rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to 13611 print the valid address mode bits for each mode. 13612 (rs6000_debug_print_mode): Likewise. 13613 (rs6000_debug_reg_global): Likewise. 13614 (rs6000_setup_reg_addr_masks): New function to set up the address 13615 mask bits for each type. 13616 (rs6000_init_hard_regno_mode_ok): Use memset to clear arrays. 13617 Call rs6000_setup_reg_addr_masks to set up the address mask bits. 13618 (rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and 13619 mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and 13620 PRE_MODIFY are supported. 13621 (rs6000_output_move_128bit): Change to use {src,dest}_vmx_p for altivec 13622 registers, instead of {src,dest}_av_p. 13623 (rs6000_print_options_internal): Tweak the debug output slightly. 13624 136252013-10-17 Uros Bizjak <ubizjak@gmail.com> 13626 13627 * config/i386/sse.md (*vec_widen_smult_even_v8si): Remove 13628 isa attribute. 13629 136302013-10-17 Andrew MacLeod <amacleod@redhat.com> 13631 13632 * tree-flow.h (struct omp_region): Move to omp-low.c. 13633 Remove omp_ prototypes and variables. 13634 * gimple.h (omp_reduction_init): Move prototype to omp-low.h. 13635 (copy_var_decl): Relocate prototype from tree-flow.h. 13636 * gimple.c (copy_var_decl): Relocate from omp-low.c. 13637 * tree.h: Move prototype to omp-low.h. 13638 * omp-low.h: New File. Relocate prototypes here. 13639 * omp-low.c (struct omp_region): Make local here. 13640 (root_omp_region): Make static. 13641 (copy_var_decl) Move to gimple.c. 13642 (new_omp_region): Make static. 13643 (make_gimple_omp_edges): New. Refactored from tree-cfg.c make_edges. 13644 * tree-cfg.c: Include omp-low.h. 13645 (make_edges): Factor out OMP specific bits to make_gimple_omp_edges. 13646 * gimplify.c: Include omp-low.h. 13647 * tree-parloops.c: Likewise. 13648 136492013-10-17 Uros Bizjak <ubizjak@gmail.com> 13650 13651 * config/i386/i386.c (ix86_fixup_binary_operands): When both source 13652 operands are in memory, prefer to force non-matched operand 1 to 13653 the register. 13654 136552013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com> 13656 13657 PR target/58673 13658 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only 13659 restrict TImode addresses to single indirect registers if both 13660 -mquad-memory and -mvsx-timode are used. 13661 (rs6000_output_move_128bit): Use quad_load_store_p to determine if 13662 we should emit load/store quad. Remove using %y for quad memory 13663 addresses. 13664 13665 * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add 13666 constraints to allow load/store quad on machines where TImode is 13667 not allowed in VSX registers. Use 'n' instead of 'F' constraint 13668 for TImode to load integer constants. 13669 136702013-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 13671 13672 * config/aarch64/aarch64.c (aarch64_print_operand): Handle 'c'. 13673 136742013-10-17 Marcus Shawcroft <marcus.shawcroft@arm.com> 13675 13676 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Adjust 13677 handling of STACK_REG. 13678 136792013-10-17 Richard Biener <rguenther@suse.de> 13680 13681 PR tree-optimization/58143 13682 * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow): 13683 New function. 13684 (rewrite_to_defined_overflow): Likewise. 13685 (move_computations_dom_walker::before_dom): Rewrite stmts 13686 with undefined signed overflow that are not always executed 13687 into unsigned arithmetic. 13688 136892013-10-16 Michael Meissner <meissner@linux.vnet.ibm.com> 13690 13691 PR target/57756 13692 * config/rs6000/rs6000.opt (rs6000_isa_flags_explicit): Move the 13693 explicit isa flag to be an options variable, instead of using 13694 global_options_set. Remove define from rs6000.h. 13695 * config/rs6000/rs6000.h (rs6000_isa_flags_explicit): Likewise. 13696 13697 * config/rs6000/rs6000.c (rs6000_option_override_internal): 13698 Initialize rs6000_isa_flags_explicit. 13699 (rs6000_function_specific_save): Add gcc_options* parameter, so 13700 that the powerpc builds after the 2013-10-15 changes. 13701 (rs6000_function_specific_restore): Likewise. 13702 137032013-10-16 DJ Delorie <dj@redhat.com> 13704 13705 * config/rl78/rl78.c (rl78_alloc_address_registers_macax): Verify 13706 op is a REG before checking REGNO. 13707 (rl78_alloc_physical_registers): Verify pattern is a SET before 13708 checking SET_SRC. 13709 137102013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 13711 13712 * config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for 13713 endianness. 13714 (vec_unpacks_lo_v4sf): Likewise. 13715 (vec_unpacks_float_hi_v4si): Likewise. 13716 (vec_unpacks_float_lo_v4si): Likewise. 13717 (vec_unpacku_float_hi_v4si): Likewise. 13718 (vec_unpacku_float_lo_v4si): Likewise. 13719 137202013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 13721 13722 * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE. 13723 (vsx_concat_v2sf): Likewise. 13724 137252013-10-16 James Greenhalgh <james.greenhalgh@arm.com> 13726 13727 * config/aarch64/aarch64.md 13728 (*mov<mode>_aarch64): Fix output template for DUP (element) Scalar. 13729 137302013-10-16 Andrew MacLeod <amacleod@redhat.com> 13731 13732 PR tree-optimization/58697 13733 * cfgloop.c (get_estimated_loop_iterations_int): Rename from 13734 estimated_loop_iterations_int. 13735 (max_stmt_executions_int): Call get_max_loop_iterations_int. 13736 (get_max_loop_iterations_int): New. HWINT version of 13737 get_max_loop_iterations. 13738 * cfgloop.h: Add prototypes. 13739 * loop-iv.c (find_simple_exit): call get_estimated_loop_iterations_int. 13740 * loop-unroll.c (decide_peel_once_rolling): Call 13741 get_estimated_loop_iterations_int. 13742 * tree-ssa-loop-niter.c (estimated_loop_iterations_int): Add back. 13743 * tree-ssa-loop-niter.h: Tweak prototypes. 13744 137452013-10-16 David Malcolm <dmalcolm@redhat.com> 13746 13747 * gengtype-parse.c (struct_field_seq): Ignore access-control 13748 keywords ("public:" etc). 13749 137502013-10-16 Marcus Shawcroft <marcus.shawcroft@arm.com> 13751 13752 * config/aarch64/aarch64.c (aarch64_regno_regclass): Classify 13753 FRAME_POINTER_REGNUM and ARG_POINTER_REGNUM as POINTER_REGS. 13754 137552013-10-16 Yvan Roux <yvan.roux@linaro.org> 13756 13757 * config/arm/arm.opt (mlra): New option. 13758 * config/arm/arm.c (arm_lra_p): New function. 13759 (TARGET_LRA_P): Define. 13760 137612013-10-16 Paulo Matos <pmatos@broadcom.com> 13762 13763 * tree-core.h (tree_code_name): Remove. 13764 * tree.h (get_tree_code_name): New prototype. 13765 * tree.c (tree_code_name): Make static. 13766 (get_tree_code_name): New function. 13767 (dump_tree_statistics, tree_check_failed, tree_not_check_failed, 13768 tree_class_check_failed, tree_range_check_failed, 13769 tree_not_class_check_failed, omp_clause_check_failed, 13770 tree_contains_struct_check_failed, tree_operand_check_failed): Use new 13771 wrapper get_tree_code_name instead of calling tree_code_name directly. 13772 * tree-vrp.c (dump_asserts_for): Likewise. 13773 * tree-dump.c (dequeue_and_dump): Likewise. 13774 * tree-pretty-print.c (do_niy, dump_generic_node): Likewise. 13775 * tree-pretty-print.h (pp_unsupported_tree): Likewise. 13776 * lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise. 13777 * tree-ssa-dom.c (print_expr_hash_elt): Likewise. 13778 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs, 13779 dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond, 13780 dump_gimple_omp_for): Likewise. 13781 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise. 13782 * tree-ssa-pre.c (print_pre_expr): Likewise. 13783 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise. 13784 * print-tree.c (print_node_brief, print_node): Likewise. 13785 * gimple.c (gimple_check_failed): Likewise. 13786 * lto-streamer.c (lto_tag_name, print_lto_report): Likewise. 13787 * config/frv/frv.c (frv_init_cumulative_args): Likewise. 13788 * config/mep/mep.c (mep_validate_vliw): Likewise. 13789 * config/iq2000/iq2000.c (init_cumulative_args): Likewise. 13790 * config/rs6000/rs6000.c (init_cumulative_args): Likewise. 13791 137922013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> 13793 13794 * config/i386/i386.c (ix86_option_override_internal): Enable FMA4 13795 for AMD bdver3. 13796 137972013-10-16 Hans-Peter Nilsson <hp@axis.com> 13798 13799 * config/cris/t-elfmulti (MULTILIB_OPTIONS, MULTILIB_DIRNAMES) 13800 (MULTILIB_MATCHES): Add multilib for -march=v8. 13801 138022013-10-15 Sriraman Tallam <tmsriram@google.com> 13803 13804 PR target/57756 13805 * optc-save-gen.awk: Add extra parameter to the save and restore 13806 target calls. 13807 * opth-gen.awk: Generate new TARGET_* macros to accept a parameter. 13808 * tree.c (build_optimization_node): New parameter. Add extra parameter 13809 to call to cl_optimization_save. 13810 (build_target_option_node): New parameter. Add extra parameter 13811 to call to cl_target_option_save. 13812 * tree.h (build_optimization_node): New parameter. 13813 (build_target_option_node): New parameter. 13814 * c-family/c-common.c (handle_optimize_attribute): Fix calls to 13815 build_optimization_node and build_target_option_node. 13816 * c-family/c-pragma.c (handle_pragma_optimize): Ditto. 13817 (handle_pragma_push_options): Ditto. 13818 * toplev.c (process_options): Ditto. 13819 * opts.c (init_options_struct): Check for opts_set non-null. 13820 * target.def (target_option.save): New parameter. 13821 (target_option.restore): New parameter. 13822 * tm.texi: Generate. 13823 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto. 13824 (ix86_pragma_target_parse): Ditto. 13825 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): New 13826 parameters. 13827 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix calls 13828 to build_optimization_node and build_target_option_node. 13829 (rs6000_valid_attribute_p): Ditto. 13830 (rs6000_pragma_target_parse): Ditto. 13831 * config/i386/i386.opt (x_ix86_target_flags_explicit): New TargetSave 13832 data. 13833 * config/i386/i386.h: 13834 TARGET_64BIT_P: New Macro 13835 TARGET_MMX_P: New Macro. 13836 TARGET_3DNOW_P: New Macro. 13837 TARGET_3DNOW_A_P: New Macro. 13838 TARGET_SSE_P: New Macro. 13839 TARGET_SSE2_P: New Macro. 13840 TARGET_SSE3_P: New Macro. 13841 TARGET_SSSE3_P: New Macro. 13842 TARGET_SSE4_1_P: New Macro. 13843 TARGET_SSE4_2_P: New Macro. 13844 TARGET_AVX_P: New Macro. 13845 TARGET_AVX2_P: New Macro. 13846 TARGET_AVX512F_P: New Macro. 13847 TARGET_AVX512PF_P: New Macro. 13848 TARGET_AVX512ER_P: New Macro. 13849 TARGET_AVX512CD_P: New Macro. 13850 TARGET_FMA_P: New Macro. 13851 TARGET_SSE4A_P: New Macro. 13852 TARGET_FMA4_P: New Macro. 13853 TARGET_XOP_P: New Macro. 13854 TARGET_LWP_P: New Macro. 13855 TARGET_ABM_P: New Macro. 13856 TARGET_BMI_P: New Macro. 13857 TARGET_BMI2_P: New Macro. 13858 TARGET_LZCNT_P: New Macro. 13859 TARGET_TBM_P: New Macro. 13860 TARGET_POPCNT_P: New Macro. 13861 TARGET_SAHF_P: New Macro. 13862 TARGET_MOVBE_P: New Macro. 13863 TARGET_CRC32_P: New Macro. 13864 TARGET_AES_P: New Macro. 13865 TARGET_PCLMUL_P: New Macro. 13866 TARGET_CMPXCHG16B_P: New Macro. 13867 TARGET_FSGSBASE_P: New Macro. 13868 TARGET_RDRND_P: New Macro. 13869 TARGET_F16C_P: New Macro. 13870 TARGET_RTM_P: New Macro. 13871 TARGET_HLE_P: New Macro. 13872 TARGET_RDSEED_P: New Macro. 13873 TARGET_PRFCHW_P: New Macro. 13874 TARGET_ADX_P: New Macro. 13875 TARGET_FXSR_P: New Macro. 13876 TARGET_XSAVE_P: New Macro. 13877 TARGET_XSAVEOPT_P: New Macro. 13878 TARGET_LP64_P: New Macro. 13879 TARGET_X32_P: New Macro. 13880 TARGET_FPMATH_DEFAULT_P: New Macro. 13881 TARGET_FLOAT_RETURNS_IN_80387_P: New Macro. 13882 * config/i386/i386.c (ix86_option_override_internal): New parameters. 13883 opts and opts_set. 13884 Change ix86_tune_string to access opts->x_ix86_tune_string. 13885 Change ix86_isa_flags to access opts->x_ix86_isa_flags. 13886 Change ix86_arch_string to access opts->x_ix86_arch_string. 13887 Change ix86_stringop_alg to access opts->x_ix86_stringop_alg. 13888 Change ix86_pmode to access opts->x_ix86_pmode. 13889 Change ix86_abi to access opts->x_ix86_abi. 13890 Change ix86_cmodel to access opts->x_ix86_cmodel. 13891 Change ix86_asm_dialect to access opts->x_ix86_asm_dialect. 13892 Change ix86_isa_flags_explicit to access 13893 opts->x_ix86_isa_flags_explicit. 13894 Change ix86_dump_tunes to access opts->x_ix86_dump_tunes. 13895 Change ix86_regparm to access opts->x_ix86_regparm. 13896 Change ix86_branch_cost to access opts->x_ix86_branch_cost. 13897 Change ix86_preferred_stack_boundary_arg to access 13898 opts->x_ix86_preferred_stack_boundary_arg. 13899 Change ix86_force_align_arg_pointer to access 13900 opts->x_ix86_force_align_arg_pointer. 13901 Change ix86_incoming_stack_boundar_arg to access 13902 opts->x_ix86_incoming_stack_boundar_arg. 13903 Change ix86_fpmath to access opts->x_ix86_fpmath. 13904 Change ix86_veclibabi_type to access opts->x_ix86_veclibabi_type. 13905 Change ix86_recip_name to access opts->x_ix86_recip_name. 13906 Change ix86_stack_protector_guard to access 13907 opts->x_ix86_stack_protector_guard. 13908 Change ix86_tune_memcpy_strategy to access 13909 opts->x_ix86_tune_memcpy_strategy. 13910 Change ix86_tune_memset_strategy to access 13911 opts->x_ix86_tune_memset_strategy. 13912 Change global_options to access opts. 13913 Change global_options_set to access opts_set. 13914 Change TARGET_64BIT to TARGET_64BIT_P (opts->...). 13915 Change TARGET_MMX to TARGET_MMX_P (opts->...). 13916 Change TARGET_3DNOW to TARGET_3DNOW_P (opts->...). 13917 Change TARGET_3DNOW_A to TARGET_3DNOW_A_P (opts->...). 13918 Change TARGET_SSE to TARGET_SSE_P (opts->...). 13919 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...). 13920 Change TARGET_SSE3 to TARGET_SSE3_P (opts->...). 13921 Change TARGET_SSSE3 to TARGET_SSSE3_P (opts->...). 13922 Change TARGET_SSE4_1 to TARGET_SSE4_1_P (opts->...). 13923 Change TARGET_SSE4_2 to TARGET_SSE4_2_P (opts->...). 13924 Change TARGET_AVX to TARGET_AVX_P (opts->...). 13925 Change TARGET_AVX2 to TARGET_AVX2_P (opts->...). 13926 Change TARGET_AVX512F to TARGET_AVX512F_P (opts->...). 13927 Change TARGET_AVX512PF to TARGET_AVX512PF_P (opts->...). 13928 Change TARGET_AVX512ER to TARGET_AVX512ER_P (opts->...). 13929 Change TARGET_AVX512CD to TARGET_AVX512CD_P (opts->...). 13930 Change TARGET_FMA to TARGET_FMA_P (opts->...). 13931 Change TARGET_SSE4A to TARGET_SSE4A_P (opts->...). 13932 Change TARGET_FMA4 to TARGET_FMA4_P (opts->...). 13933 Change TARGET_XOP to TARGET_XOP_P (opts->...). 13934 Change TARGET_LWP to TARGET_LWP_P (opts->...). 13935 Change TARGET_ABM to TARGET_ABM_P (opts->...). 13936 Change TARGET_BMI to TARGET_BMI_P (opts->...). 13937 Change TARGET_BMI2 to TARGET_BMI2_P (opts->...). 13938 Change TARGET_LZCNT to TARGET_LZCNT_P (opts->...). 13939 Change TARGET_TBM to TARGET_TBM_P (opts->...). 13940 Change TARGET_POPCNT to TARGET_POPCNT_P (opts->...). 13941 Change TARGET_SAHF to TARGET_SAHF_P (opts->...). 13942 Change TARGET_MOVBE to TARGET_MOVBE_P (opts->...). 13943 Change TARGET_CRC32 to TARGET_CRC32_P (opts->...). 13944 Change TARGET_AES to TARGET_AES_P (opts->...). 13945 Change TARGET_PCLMUL to TARGET_PCLMUL_P (opts->...). 13946 Change TARGET_CMPXCHG16B to TARGET_CMPXCHG16B_P (opts->...). 13947 Change TARGET_FSGSBASE to TARGET_FSGSBASE_P (opts->...). 13948 Change TARGET_RDRND to TARGET_RDRND_P (opts->...). 13949 Change TARGET_F16C to TARGET_F16C_P (opts->...). 13950 Change TARGET_RTM to TARGET_RTM_P (opts->...). 13951 Change TARGET_HLE to TARGET_HLE_P (opts->...). 13952 Change TARGET_RDSEED to TARGET_RDSEED_P (opts->...). 13953 Change TARGET_PRFCHW to TARGET_PRFCHW_P (opts->...). 13954 Change TARGET_ADX to TARGET_ADX_P (opts->...). 13955 Change TARGET_FXSR to TARGET_FXSR_P (opts->...). 13956 Change TARGET_XSAVE to TARGET_XSAVE_P (opts->...). 13957 Change TARGET_XSAVEOPT to TARGET_XSAVEOPT_P (opts->...). 13958 Change TARGET_LP64 to TARGET_LP64_P (opts->...). 13959 Change TARGET_X32 to TARGET_X32_P (opts->...). 13960 Change TARGET_FPMATH_DEFAULT to TARGET_FPMATH_DEFAULT_P (opts->...). 13961 Change TARGET_FLOAT_RETURNS_IN_80387 to 13962 TARGET_FLOAT_RETURNS_IN_80387_P (opts->...). 13963 (ix86_function_specific_save): New parameter. Use opts-> fields 13964 to replace global fields. 13965 (ix86_function_specific_restore): Ditto. 13966 (ix86_valid_target_attribute_inner_p): New parameters. 13967 Fix recursive call. 13968 Fix call to ix86_handle_option and set_option. 13969 (ix86_valid_target_attribute_tree): New parameters. 13970 Change global_options to access opts. 13971 Change global_options_set to access opts_set. 13972 Fix call to ix86_valid_target_attribute_inner_p. 13973 Change ix86_tune_string to access opts->x_ix86_tune_string. 13974 Change ix86_arch_string to access opts->x_ix86_arch_string. 13975 Change ix86_fpmath to access opts->x_ix86_fpmath 13976 Fix call to ix86_option_override_internal. 13977 Fix call to ix86_add_new_builtins. 13978 Fix calls to build_optimization_node and build_target_option_node. 13979 (ix86_valid_target_attribute_p): Remove access to global_options. 13980 Use new gcc_options structure func_options. 13981 Fix call to ix86_valid_target_attribute_tree. 13982 Fix call to build_optimization_node. 13983 (get_builtin_code_for_version): Fix call to 13984 ix86_valid_target_attribute_tree. 13985 139862013-10-15 David Malcolm <dmalcolm@redhat.com> 13987 13988 * Makefile.in (PICFLAG): New. 13989 (enable_host_shared): New. 13990 (INTERNAL_CFLAGS): Use PICFLAG. 13991 (LIBIBERTY): Use pic build of libiberty.a if configured with 13992 --enable-host-shared. 13993 * configure.ac: Add --enable-host-shared, setting up new 13994 PICFLAG variable. 13995 * configure: Regenerate. 13996 * doc/install.texi (--enable-shared): Add note contrasting it with ... 13997 (--enable-host-shared): New option. 13998 139992013-10-15 Richard Biener <rguenther@suse.de> 14000 14001 * tree-tailcall.c (find_tail_calls): Don't use tail-call recursion 14002 for built-in functions. 14003 140042013-10-15 Zhenqiang Chen <zhenqiang.chen@arm.com> 14005 14006 * tree-ssa-reassoc.c: Include rtl.h and tm_p.h. 14007 (optimize_range_tests_1): New function, 14008 extracted from optimize_range_tests. 14009 (optimize_range_tests_xor): Similarly. 14010 (optimize_range_tests_diff): New function. 14011 (optimize_range_tests): Use optimize_range_tests_1. 14012 140132013-10-15 Cong Hou <congh@google.com> 14014 14015 * tree-vect-loop.c (vect_is_simple_reduction_1): Relax the 14016 requirement of the reduction pattern so that one operand of the 14017 reduction operation can come from outside of the loop. 14018 140192013-10-15 James Greenhalgh <james.greenhalgh@arm.com> 14020 14021 * config/arm/neon-schedgen.ml: Remove. 14022 * config/arm/cortex-a9-neon.md: Remove comment regarding 14023 neon-schedgen.ml. 14024 140252013-10-15 James Greenhalgh <james.greenhalgh@arm.com> 14026 14027 * config/arm/types: Remove old neon types. 14028 140292013-10-15 James Greenhalgh <james.greenhalgh@arm.com> 14030 14031 * config/arm/cortex-a7.md 14032 (cortex_a7_neon_type): New. 14033 (cortex_a7_neon_mul): Update for new types. 14034 (cortex_a7_neon_mla): Likewise. 14035 (cortex_a7_neon): Likewise. 14036 140372013-10-15 James Greenhalgh <james.greenhalgh@arm.com> 14038 14039 * config/arm/cortex-a15-neon.md 14040 (cortex_a15_neon_type): New, 14041 14042 (cortex_a15_neon_int_1): Remove. 14043 (cortex_a15_neon_int_2): Likewise. 14044 (cortex_a15_neon_int_3): Likewise. 14045 (cortex_a15_neon_int_4): Likewise. 14046 (cortex_a15_neon_int_5): Likewise. 14047 (cortex_a15_neon_vqneg_vqabs): Likewise. 14048 (cortex_a15_neon_vmov): Likewise. 14049 (cortex_a15_neon_vaba): Likewise. 14050 (cortex_a15_neon_vaba_qqq): Likewise. 14051 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise. 14052 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise. 14053 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar): 14054 Likewise. 14055 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise. 14056 (cortex_a15_neon_mla_qqq_8_16): Likewise. 14057 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar): Likewise. 14058 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise. 14059 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise. 14060 (cortex_a15_neon_mul_qqd_32_scalar): Likewise. 14061 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise. 14062 (cortex_a15_neon_shift_1): Likewise. 14063 (cortex_a15_neon_shift_2): Likewise. 14064 (cortex_a15_neon_shift_3): Likewise. 14065 (cortex_a15_neon_vshl_ddd): Likewise. 14066 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise. 14067 (cortex_a15_neon_vsra_vrsra): Likewise. 14068 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise. 14069 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise. 14070 (cortex_a15_neon_bp_3cycle): Likewise. 14071 (cortex_a15_neon_ldm_2): Likewise. 14072 (cortex_a15_neon_stm_2): Likewise. 14073 (cortex_a15_neon_mcr): Likewise. 14074 (cortex_a15_neon_mrc): Likewise. 14075 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise. 14076 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise. 14077 (cortex_a15_neon_fp_vmul_ddd): Likewise. 14078 (cortex_a15_neon_fp_vmul_qqd): Likewise. 14079 (cortex_a15_neon_fp_vmla_ddd): Likewise. 14080 (cortex_a15_neon_fp_vmla_qqq): Likewise. 14081 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise. 14082 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise. 14083 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise. 14084 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise. 14085 (cortex_a15_neon_bp_simple): Likewise. 14086 (cortex_a15_neon_bp_2cycle): Likewise. 14087 (cortex_a15_neon_bp_3cycle): Likewise. 14088 (cortex_a15_neon_vld1_1_2_regs): Likewise. 14089 (cortex_a15_neon_vld1_3_4_regs): Likewise. 14090 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise. 14091 (cortex_a15_neon_vld2_4_regs): Likewise. 14092 (cortex_a15_neon_vld3_vld4): Likewise. 14093 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise. 14094 (cortex_a15_neon_vst1_3_4_regs): Likewise. 14095 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Rename to... 14096 (cortex_a15_neon_vst2_4_regs_vst3): ...This, update for new attributes. 14097 (cortex_a15_neon_vst3_vst4): Rename to... 14098 (cortex_a15_neon_vst4): This, update for new attributes. 14099 (cortex_a15_neon_vld1_vld2_lane): Update for new attributes. 14100 (cortex_a15_neon_vld3_vld4_lane): Likewise. 14101 (cortex_a15_neon_vst1_vst2_lane): Likewise. 14102 (cortex_a15_neon_vst3_vst4_lane): Likewise. 14103 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise. 14104 (cortex_a15_neon_ldm_2): Likewise. 14105 (cortex_a15_neon_stm_2): Likewise. 14106 (cortex_a15_neon_mcr): Likewise. 14107 (cortex_a15_neon_mcr_2_mcrr): Likewise. 14108 (cortex_a15_neon_mrc): Likewise. 14109 (cortex_a15_neon_mrrc): Likewise. 14110 14111 (cortex_a15_neon_abd): New. 14112 (cortex_a15_neon_abd_q): Likewise. 14113 (cortex_a15_neon_aba): Likewise. 14114 (cortex_a15_neon_aba_q): Likewise. 14115 (cortex_a15_neon_acc): Likewise. 14116 (cortex_a15_neon_acc_q): Likewise. 14117 (cortex_a15_neon_arith_basic): Likewise. 14118 (cortex_a15_neon_arith_complex): Likewise. 14119 (cortex_a15_neon_multiply): Likewise. 14120 (cortex_a15_neon_multiply_q): Likewise. 14121 (cortex_a15_neon_mla): Likewise. 14122 (cortex_a15_neon_mla_q): Likewise. 14123 (cortex_a15_neon_sat_mla_long): Likewise. 14124 (cortex_a15_neon_shift_acc): Likewise. 14125 (cortex_a15_neon_shift_imm_basic): Likewise. 14126 (cortex_a15_neon_shift_imm_complex): Likewise. 14127 (cortex_a15_neon_shift_reg_basic): Likewise. 14128 (cortex_a15_neon_shift_reg_basic_q): Likewise. 14129 (cortex_a15_neon_shift_reg_complex): Likewise. 14130 (cortex_a15_neon_shift_reg_complex_q): Likewise. 14131 (cortex_a15_neon_fp_negabs): Likewise 14132 (cortex_a15_neon_fp_arith): Likewise 14133 (cortex_a15_neon_fp_arith_q): Likewise 14134 (cortex_a15_neon_fp_cvt_int): Likewise 14135 (cortex_a15_neon_fp_cvt_int_q): Likewise 14136 (cortex_a15_neon_fp_cvt_16): Likewise 14137 (cortex_a15_neon_fp_mul): Likewise 14138 (cortex_a15_neon_fp_mul_q): Likewise 14139 (cortex_a15_neon_fp_mla): Likewise 14140 (cortex_a15_neon_fp_mla_q): Likewise 14141 (cortex_a15_neon_fp_recps_rsqrte): Likewise. 14142 (cortex_a15_neon_fp_recps_rsqrte_q): Likewise. 14143 (cortex_a15_neon_bitops): Likewise. 14144 (cortex_a15_neon_bitops_q): Likewise. 14145 (cortex_a15_neon_from_gp): Likewise. 14146 (cortex_a15_neon_from_gp_q): Likewise. 14147 (cortex_a15_neon_tbl3_tbl4): Likewise. 14148 (cortex_a15_neon_zip_q): Likewise. 14149 (cortex_a15_neon_to_gp): Likewise. 14150 (cortex_a15_neon_load_a): Likewise. 14151 (cortex_a15_neon_load_b): Likewise. 14152 (cortex_a15_neon_load_c): Likewise. 14153 (cortex_a15_neon_load_d): Likewise. 14154 (cortex_a15_neon_load_e): Likewise. 14155 (cortex_a15_neon_load_f): Likewise. 14156 (cortex_a15_neon_store_a): Likewise. 14157 (cortex_a15_neon_store_b): Likewise. 14158 (cortex_a15_neon_store_c): Likewise. 14159 (cortex_a15_neon_store_d): Likewise. 14160 (cortex_a15_neon_store_e): Likewise. 14161 (cortex_a15_neon_store_f): Likewise. 14162 (cortex_a15_neon_store_g): Likewise. 14163 (cortex_a15_neon_store_h): Likewise. 14164 (cortex_a15_vfp_to_from_gp): Likewise. 14165 141662013-10-15 James Greenhalgh <james.greenhalgh@arm.com> 14167 14168 * config/arm/cortex-a9-neon.md (cortex_a9_neon_type): New. 14169 14170 (cortex_a9_neon_vshl_ddd): Remove. 14171 (cortex_a9_neon_vst3_vst4): Likewise. 14172 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise. 14173 14174 (cortex_a9_neon_bit_ops_q): New. 14175 14176 (cortex_a9_neon_int_1): Use cortex_a8_neon_type. 14177 (cortex_a9_neon_int_2): Likewise. 14178 (cortex_a9_neon_int_3): Likewise. 14179 (cortex_a9_neon_int_4): Likewise. 14180 (cortex_a9_neon_int_5): Likewise. 14181 (cortex_a9_neon_vqneg_vqabs): Likewise. 14182 (cortex_a9_neon_vmov): Likewise. 14183 (cortex_a9_neon_vaba): Likewise. 14184 (cortex_a9_neon_vaba_qqq): Likewise. 14185 (cortex_a9_neon_shift_1): Likewise. 14186 (cortex_a9_neon_shift_2): Likewise. 14187 (cortex_a9_neon_shift_3): Likewise. 14188 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise. 14189 (cortex_a9_neon_vsra_vrsra): Likewise. 14190 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise. 14191 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise. 14192 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar): 14193 Likewise. 14194 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise. 14195 (cortex_a9_neon_mla_qqq_8_16): Likewise. 14196 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long): 14197 Likewise. 14198 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise. 14199 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise. 14200 (cortex_a9_neon_mul_qqd_32_scalar): Likewise. 14201 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise. 14202 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise. 14203 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise. 14204 (cortex_a9_neon_fp_vsum): Likewise. 14205 (cortex_a9_neon_fp_vmul_ddd): Likewise. 14206 (cortex_a9_neon_fp_vmul_qqd): Likewise. 14207 (cortex_a9_neon_fp_vmla_ddd): Likewise. 14208 (cortex_a9_neon_fp_vmla_qqq): Likewise. 14209 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise. 14210 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise. 14211 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise. 14212 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise. 14213 (cortex_a9_neon_bp_simple): Likewise. 14214 (cortex_a9_neon_bp_2cycle): Likewise. 14215 (cortex_a9_neon_bp_3cycle): Likewise. 14216 (cortex_a9_neon_ldr): Likewise. 14217 (cortex_a9_neon_str): Likewise. 14218 (cortex_a9_neon_vld1_1_2_regs): Likewise. 14219 (cortex_a9_neon_vld1_3_4_regs): Likewise. 14220 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise. 14221 (cortex_a9_neon_vld2_4_regs): Likewise. 14222 (cortex_a9_neon_vld3_vld4): Likewise. 14223 (cortex_a9_neon_vld1_vld2_lane): Likewise. 14224 (cortex_a9_neon_vld3_vld4_lane): Likewise. 14225 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise. 14226 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise. 14227 (cortex_a9_neon_vst1_3_4_regs): Likewise. 14228 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise. 14229 (cortex_a9_neon_vst1_vst2_lane): Likewise. 14230 (cortex_a9_neon_vst3_vst4_lane): Likewise. 14231 (cortex_a9_neon_mcr): Likewise. 14232 (cortex_a9_neon_mcr_2_mcrr): Likewise. 14233 (cortex_a9_neon_mrc): Likewise. 14234 (cortex_a9_neon_mrrc): Likewise. 14235 142362013-10-15 James Greenhalgh <james.greenhalgh@arm.com> 14237 14238 * config/arm/cortex-a8-neon.md (cortex_a8_neon_type): New. 14239 14240 (cortex_a8_neon_vshl_ddd): Remove. 14241 (cortex_a8_neon_vst3_vst4): Likewise. 14242 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise. 14243 14244 (cortex_a8_neon_bit_ops_q): New. 14245 14246 (cortex_a8_neon_int_1): Use cortex_a8_neon_type. 14247 (cortex_a8_neon_int_2): Likewise.. 14248 (cortex_a8_neon_int_3): Likewise. 14249 (cortex_a8_neon_int_5): Likewise. 14250 (cortex_a8_neon_vqneg_vqabs): Likewise. 14251 (cortex_a8_neon_int_4): Likewise. 14252 (cortex_a8_neon_vaba): Likewise. 14253 (cortex_a8_neon_vaba_qqq): Likewise. 14254 (cortex_a8_neon_shift_1): Likewise. 14255 (cortex_a8_neon_shift_2): Likewise. 14256 (cortex_a8_neon_shift_3): Likewise. 14257 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise. 14258 (cortex_a8_neon_vsra_vrsra): Likewise. 14259 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise. 14260 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise. 14261 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar): 14262 Likewise. 14263 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise. 14264 (cortex_a8_neon_mla_qqq_8_16): Likewise. 14265 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long): 14266 Likewise. 14267 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise. 14268 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise. 14269 (cortex_a8_neon_mul_qqd_32_scalar): Likewise. 14270 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise. 14271 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise. 14272 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise. 14273 (cortex_a8_neon_fp_vsum): Likewise. 14274 (cortex_a8_neon_fp_vmul_ddd): Likewise. 14275 (cortex_a8_neon_fp_vmul_qqd): Likewise. 14276 (cortex_a8_neon_fp_vmla_ddd): Likewise. 14277 (cortex_a8_neon_fp_vmla_qqq): Likewise. 14278 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise. 14279 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise. 14280 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise. 14281 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise. 14282 (cortex_a8_neon_bp_simple): Likewise. 14283 (cortex_a8_neon_bp_2cycle): Likewise. 14284 (cortex_a8_neon_bp_3cycle): Likewise. 14285 (cortex_a8_neon_ldr): Likewise. 14286 (cortex_a8_neon_str): Likewise. 14287 (cortex_a8_neon_vld1_1_2_regs): Likewise. 14288 (cortex_a8_neon_vld1_3_4_regs): Likewise. 14289 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise. 14290 (cortex_a8_neon_vld2_4_regs): Likewise. 14291 (cortex_a8_neon_vld3_vld4): Likewise. 14292 (cortex_a8_neon_vld1_vld2_lane): Likewise. 14293 (cortex_a8_neon_vld3_vld4_lane): Likewise. 14294 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise. 14295 (cortex_a8_neon_vst1_3_4_regs): Likewise. 14296 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise. 14297 (cortex_a8_neon_vst1_vst2_lane): Likewise. 14298 (cortex_a8_neon_vst3_vst4_lane): Likewise. 14299 (cortex_a8_neon_mcr): Likewise. 14300 (cortex_a8_neon_mcr_2_mcrr): Likewise. 14301 (cortex_a8_neon_mrc): Likewise. 14302 (cortex_a8_neon_mrrc): Likewise. 14303 143042013-10-15 James Greenhalgh <james.greenhalgh@arm.com> 14305 14306 * config/aarch64/iterators.md (Vetype): Add SF and DF modes. 14307 (fp): New. 14308 * config/aarch64/aarch64-simd.md (neon_type): Remove. 14309 (aarch64_simd_dup<mode>): Add "type" attribute. 14310 (aarch64_dup_lane<mode>): Likewise. 14311 (aarch64_dup_lane_<vswap_width_name><mode>): Likewise. 14312 (*aarch64_simd_mov<mode>): Likewise. 14313 (aarch64_simd_mov_from_<mode>low): Likewise. 14314 (aarch64_simd_mov_from_<mode>high): Likewise. 14315 (orn<mode>3): Likewise. 14316 (bic<mode>3): Likewise. 14317 (add<mode>3): Likewise. 14318 (sub<mode>3): Likewise. 14319 (mul<mode>3): Likewise. 14320 (*aarch64_mul3_elt<mode>): Likewise. 14321 (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise. 14322 (*aarch64_mul3_elt_to_128df): Likewise. 14323 (*aarch64_mul3_elt_to_64v2df): Likewise. 14324 (neg<mode>2): Likewise. 14325 (abs<mode>2): Likewise. 14326 (abd<mode>_3): Likewise. 14327 (aba<mode>_3): Likewise. 14328 (fabd<mode>_3): Likewise. 14329 (*fabd_scalar<mode>3): Likewise. 14330 (and<mode>3): Likewise. 14331 (ior<mode>3): Likewise. 14332 (xor<mode>3): Likewise. 14333 (one_cmpl<mode>2): Likewise. 14334 (aarch64_simd_vec_set<mode>): Likewise. 14335 (aarch64_simd_lshr<mode>): Likewise. 14336 (aarch64_simd_ashr<mode>): Likewise. 14337 (aarch64_simd_imm_shl<mode>): Likewise. 14338 (aarch64_simd_reg_sshl<mode): Likewise. 14339 (aarch64_simd_reg_shl<mode>_unsigned): Likewise. 14340 (aarch64_simd_reg_shl<mode>_signed): Likewise. 14341 (aarch64_simd_vec_setv2di): Likewise. 14342 (aarch64_simd_vec_set<mode>): Likewise. 14343 (aarch64_mla<mode>): Likewise. 14344 (*aarch64_mla_elt<mode>): Likewise. 14345 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise. 14346 (aarch64_mls<mode>): Likewise. 14347 (*aarch64_mls_elt<mode>): Likewise. 14348 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise. 14349 (<su><maxmin><mode>3): Likewise. 14350 (move_lo_quad_<mode>): Likewise. 14351 (aarch64_simd_move_hi_quad_<mode>): Likewise. 14352 (aarch64_simd_vec_pack_trunc_<mode>): Likewise. 14353 (vec_pack_trunc_<mode>): Likewise. 14354 (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise. 14355 (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise. 14356 (*aarch64_<su>mlal_lo<mode>): Likewise. 14357 (*aarch64_<su>mlal_hi<mode>): Likewise. 14358 (*aarch64_<su>mlsl_lo<mode>): Likewise. 14359 (*aarch64_<su>mlsl_hi<mode>): Likewise. 14360 (*aarch64_<su>mlal<mode>): Likewise. 14361 (*aarch64_<su>mlsl<mode>): Likewise. 14362 (aarch64_simd_vec_<su>mult_lo_<mode>): Likewise. 14363 (aarch64_simd_vec_<su>mult_hi_<mode>): Likewise. 14364 (add<mode>3): Likewise. 14365 (sub<mode>3): Likewise. 14366 (mul<mode>3): Likewise. 14367 (div<mode>3): Likewise. 14368 (neg<mode>2): Likewise. 14369 (abs<mode>2): Likewise. 14370 (fma<mode>4): Likewise. 14371 (*aarch64_fma4_elt<mode>): Likewise. 14372 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise. 14373 (*aarch64_fma4_elt_to_128df): Likewise. 14374 (*aarch64_fma4_elt_to_64v2df): Likewise. 14375 (fnma<mode>4): Likewise. 14376 (*aarch64_fnma4_elt<mode>): Likewise. 14377 (*aarch64_fnma4_elt_<vswap_width_name><mode> 14378 (*aarch64_fnma4_elt_to_128df): Likewise. 14379 (*aarch64_fnma4_elt_to_64v2df): Likewise. 14380 (<frint_pattern><mode>2): Likewise. 14381 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise. 14382 (<optab><fcvt_target><VDQF:VDQF:mode>2): Likewise. 14383 (vec_unpacks_lo_v4sf): Likewise. 14384 (aarch64_float_extend_lo_v2df): Likewise. 14385 (vec_unpacks_hi_v4sf): Likewise. 14386 (aarch64_float_truncate_lo_v2sf): Likewise. 14387 (aarch64_float_truncate_hi_v4sf): Likewise. 14388 (aarch64_vmls<mode>): Likewise. 14389 (<su><maxmin><mode>3): Likewise. 14390 (<maxmin_uns><mode>3): Likewise. 14391 (reduc_<sur>plus_<mode>): Likewise. 14392 (reduc_<sur>plus_v2di): Likewise. 14393 (reduc_<sur>plus_v2si): Likewise. 14394 (reduc_<sur>plus_<mode>): Likewise. 14395 (aarch64_addpv4sf): Likewise. 14396 (clz<mode>2): Likewise. 14397 (reduc_<maxmin_uns>_<mode>): Likewise. 14398 (reduc_<maxmin_uns>_v2di): Likewise. 14399 (reduc_<maxmin_uns>_v2si): Likewise. 14400 (reduc_<maxmin_uns>_<mode>): Likewise. 14401 (reduc_<maxmin_uns>_v4sf): Likewise. 14402 (aarch64_simd_bsl<mode>_internal): Likewise. 14403 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise. 14404 (*aarch64_get_lane_zero_extendsi<mode>): Likewise. 14405 (aarch64_get_lane<mode>): Likewise. 14406 (*aarch64_combinez<mode>): Likewise. 14407 (aarch64_combine<mode>): Likewise. 14408 (aarch64_simd_combine<mode>): Likewise. 14409 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): Likewise. 14410 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): Likewise. 14411 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Likewise. 14412 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Likewise. 14413 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Likewise. 14414 (aarch64_<sur>h<addsub><mode>): Likewise. 14415 (aarch64_<sur><addsub>hn<mode>): Likewise. 14416 (aarch64_<sur><addsub>hn2<mode>): Likewise. 14417 (aarch64_pmul<mode>): Likewise. 14418 (aarch64_<su_optab><optab><mode>): Likewise. 14419 (aarch64_<sur>qadd<mode>): Likewise. 14420 (aarch64_sqmovun<mode>): Likewise. 14421 (aarch64_<sur>qmovn<mode>): Likewise. 14422 (aarch64_s<optab><mode>): Likewise. 14423 (aarch64_sq<r>dmulh<mode>): Likewise. 14424 (aarch64_sq<r>dmulh_lane<mode>): Likewise. 14425 (aarch64_sq<r>dmulh_laneq<mode>): Likewise. 14426 (aarch64_sq<r>dmulh_lane<mode>): Likewise. 14427 (aarch64_sqdml<SBINQOPS:as>l<mode>): Likewise. 14428 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise. 14429 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise. 14430 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Likewise. 14431 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Likewise. 14432 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise. 14433 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise. 14434 (aarch64_sqdmull<mode>): Likewise. 14435 (aarch64_sqdmull_lane<mode>_internal): Likewise. 14436 (aarch64_sqdmull_n<mode>): Likewise. 14437 (aarch64_sqdmull2<mode>_internal): Likewise. 14438 (aarch64_sqdmull2_lane<mode>_internal): Likewise. 14439 (aarch64_sqdmull2_n<mode>_internal): Likewise. 14440 (aarch64_<sur>shl<mode>): Likewise. 14441 (aarch64_<sur>q<r>shl<mode> 14442 (aarch64_<sur>shll_n<mode>): Likewise. 14443 (aarch64_<sur>shll2_n<mode>): Likewise. 14444 (aarch64_<sur>shr_n<mode>): Likewise. 14445 (aarch64_<sur>sra_n<mode>): Likewise. 14446 (aarch64_<sur>s<lr>i_n<mode>): Likewise. 14447 (aarch64_<sur>qshl<u>_n<mode>): Likewise. 14448 (aarch64_<sur>q<r>shr<u>n_n<mode>): Likewise. 14449 (aarch64_cm<optab><mode>): Likewise. 14450 (aarch64_cm<optab>di): Likewise. 14451 (aarch64_cm<optab><mode>): Likewise. 14452 (aarch64_cm<optab>di): Likewise. 14453 (aarch64_cmtst<mode>): Likewise. 14454 (aarch64_cmtstdi): Likewise. 14455 (aarch64_cm<optab><mode>): Likewise. 14456 (*aarch64_fac<optab><mode>): Likewise. 14457 (aarch64_addp<mode>): Likewise. 14458 (aarch64_addpdi): Likewise. 14459 (sqrt<mode>2): Likewise. 14460 (vec_load_lanesoi<mode>): Likewise. 14461 (vec_store_lanesoi<mode>): Likewise. 14462 (vec_load_lanesci<mode>): Likewise. 14463 (vec_store_lanesci<mode>): Likewise. 14464 (vec_load_lanesxi<mode>): Likewise. 14465 (vec_store_lanesxi<mode>): Likewise. 14466 (*aarch64_mov<mode>): Likewise. 14467 (aarch64_ld2<mode>_dreg): Likewise. 14468 (aarch64_ld2<mode>_dreg): Likewise. 14469 (aarch64_ld3<mode>_dreg): Likewise. 14470 (aarch64_ld3<mode>_dreg): Likewise. 14471 (aarch64_ld4<mode>_dreg): Likewise. 14472 (aarch64_ld4<mode>_dreg): Likewise. 14473 (aarch64_tbl1<mode>): Likewise. 14474 (aarch64_tbl2v16qi): Likewise. 14475 (aarch64_combinev16qi): Likewise. 14476 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Likewise. 14477 (aarch64_st2<mode>_dreg): Likewise. 14478 (aarch64_st2<mode>_dreg): Likewise. 14479 (aarch64_st3<mode>_dreg): Likewise. 14480 (aarch64_st3<mode>_dreg): Likewise. 14481 (aarch64_st4<mode>_dreg): Likewise. 14482 (aarch64_st4<mode>_dreg): Likewise. 14483 (*aarch64_simd_ld1r<mode>): Likewise. 14484 (aarch64_frecpe<mode>): Likewise. 14485 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise. 14486 (aarch64_frecps<mode>): Likewise. 14487 144882013-10-15 James Greenhalgh <james.greenhalgh@arm.com> 14489 14490 * config/arm/iterators.md (V_elem_ch): New. 14491 (q): Likewise. 14492 (VQH_type): Likewise. 14493 * config/arm/arm.md (is_neon_type): New. 14494 (conds): Use is_neon_type. 14495 (anddi3_insn): Update type attribute. 14496 (xordi3_insn): Likewise. 14497 (one_cmpldi2): Likewise. 14498 * config/arm/vfp.md (movhf_vfp_neon): Update type attribute. 14499 * config/arm/neon.md (neon_mov): Update type attribute. 14500 (*movmisalign<mode>_neon_store): Likewise. 14501 (*movmisalign<mode>_neon_load): Likewise. 14502 (vec_set<mode>_internal): Likewise. 14503 (vec_set<mode>_internal): Likewise. 14504 (vec_setv2di_internal): Likewise. 14505 (vec_extract<mode>): Likewise. 14506 (vec_extract<mode>): Likewise. 14507 (vec_extractv2di): Likewise. 14508 (*add<mode>3_neon): Likewise. 14509 (adddi3_neon): Likewise. 14510 (*sub<mode>3_neon): Likewise. 14511 (subdi3_neon): Likewise. 14512 (fma<VCVTF:mode>4): Likewise. 14513 (fma<VCVTF:mode>4_intrinsic): Likewise. 14514 (*fmsub<VCVTF:mode>4): Likewise. 14515 (fmsub<VCVTF:mode>4_intrinsic): Likewise. 14516 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise. 14517 (ior<mode>3): Likewise. 14518 (and<mode>3): Likewise. 14519 (orn<mode>3_neon): Likewise. 14520 (orndi3_neon): Likewise. 14521 (bic<mode>3_neon): Likewise. 14522 (bicdi3_neon): Likewise. 14523 (xor<mode>3): Likewise. 14524 (one_cmpl<mode>2): Likewise. 14525 (abs<mode>2): Likewise. 14526 (neg<mode>2): Likewise. 14527 (negdi2_neon): Likewise. 14528 (*umin<mode>3_neon): Likewise. 14529 (*umax<mode>3_neon): Likewise. 14530 (*smin<mode>3_neon): Likewise. 14531 (*smax<mode>3_neon): Likewise. 14532 (vashl<mode>3): Likewise. 14533 (vashr<mode>3_imm): Likewise. 14534 (vlshr<mode>3_imm): Likewise. 14535 (ashl<mode>3_signed): Likewise. 14536 (ashl<mode>3_unsigned): Likewise. 14537 (neon_load_count): Likewise. 14538 (ashldi3_neon_noclobber): Likewise. 14539 (ashldi3_neon): Likewise. 14540 (signed_shift_di3_neon): Likewise. 14541 (unsigned_shift_di3_neon): Likewise. 14542 (ashrdi3_neon_imm_noclobber): Likewise. 14543 (lshrdi3_neon_imm_noclobber): Likewise. 14544 (<shift>di3_neon): Likewise. 14545 (widen_ssum<mode>3): Likewise. 14546 (widen_usum<mode>3): Likewise. 14547 (quad_halves_<code>v4si): Likewise. 14548 (quad_halves_<code>v4sf): Likewise. 14549 (quad_halves_<code>v8hi): Likewise. 14550 (quad_halves_<code>v16qi): Likewise. 14551 (reduc_splus_v2di): Likewise. 14552 (neon_vpadd_internal<mode>): Likewise. 14553 (neon_vpsmin<mode>): Likewise. 14554 (neon_vpsmax<mode>): Likewise. 14555 (neon_vpumin<mode>): Likewise. 14556 (neon_vpumax<mode>): Likewise. 14557 (*ss_add<mode>_neon): Likewise. 14558 (*us_add<mode>_neon): Likewise. 14559 (*ss_sub<mode>_neon): Likewise. 14560 (*us_sub<mode>_neon): Likewise. 14561 (neon_vadd<mode>_unspec): Likewise. 14562 (neon_vaddl<mode>): Likewise. 14563 (neon_vaddw<mode>): Likewise. 14564 (neon_vhadd<mode>): Likewise. 14565 (neon_vqadd<mode>): Likewise. 14566 (neon_vaddhn<mode>): Likewise. 14567 (neon_vmul<mode>): Likewise. 14568 (neon_vfms<VCVTF:mode>): Likewise. 14569 (neon_vmlal<mode>): Likewise. 14570 (neon_vmls<mode>): Likewise. 14571 (neon_vmlsl<mode>): Likewise. 14572 (neon_vqdmulh<mode>): Likewise. 14573 (neon_vqdmlal<mode>): Likewise. 14574 (neon_vqdmlsl<mode>): Likewise. 14575 (neon_vmull<mode>): Likewise. 14576 (neon_vqdmull<mode>): Likewise. 14577 (neon_vsub<mode>_unspec): Likewise. 14578 (neon_vsubl<mode>): Likewise. 14579 (neon_vsubw<mode>): Likewise. 14580 (neon_vqsub<mode>): Likewise. 14581 (neon_vhsub<mode>): Likewise. 14582 (neon_vsubhn<mode>): Likewise. 14583 (neon_vceq<mode>): Likewise. 14584 (neon_vcge<mode>): Likewise. 14585 (neon_vcgeu<mode>): Likewise. 14586 (neon_vcgt<mode>): Likewise. 14587 (neon_vcgtu<mode>): Likewise. 14588 (neon_vcle<mode>): Likewise. 14589 (neon_vclt<mode>): Likewise. 14590 (neon_vcage<mode>): Likewise. 14591 (neon_vcagt<mode>): Likewise. 14592 (neon_vtst<mode>): Likewise. 14593 (neon_vabd<mode>): Likewise. 14594 (neon_vabdl<mode>): Likewise. 14595 (neon_vaba<mode>): Likewise. 14596 (neon_vabal<mode>): Likewise. 14597 (neon_vmax<mode>): Likewise. 14598 (neon_vmin<mode>): Likewise. 14599 (neon_vpaddl<mode>): Likewise. 14600 (neon_vpadal<mode>): Likewise. 14601 (neon_vpmax<mode>): Likewise. 14602 (neon_vpmin<mode>): Likewise. 14603 (neon_vrecps<mode>): Likewise. 14604 (neon_vrsqrts<mode>): Likewise. 14605 (neon_vqabs<mode>): Likewise. 14606 (neon_vqneg<mode>): Likewise. 14607 (neon_vcls<mode>): Likewise. 14608 (clz<mode>2): Likewise. 14609 (popcount<mode>2): Likewise. 14610 (neon_vrecpe<mode>): Likewise. 14611 (neon_vrsqrte<mode>): Likewise. 14612 (neon_vget_lane<mode>_sext_internal): Likewise. 14613 (neon_vget_lane<mode>_zext_internal): Likewise. 14614 (neon_vdup_n<mode>): Likewise. 14615 (neon_vdup_n<mode>): Likewise. 14616 (neon_vdup_nv2di): Likewise. 14617 (neon_vdup_lane<mode>_interal): Likewise. 14618 (*neon_vswp<mode>): Likewise. 14619 (neon_vcombine<mode>): Likewise. 14620 (float<mode><V_cvtto>2): Likewise. 14621 (floatuns<mode><V_cvtto>2): Likewise. 14622 (fix_trunc<mode><V_cvtto>2): Likewise. 14623 (fixuns_trunc<mode><V_cvtto>2 14624 (neon_vcvt<mode>): Likewise. 14625 (neon_vcvt<mode>): Likewise. 14626 (neon_vcvtv4sfv4hf): Likewise. 14627 (neon_vcvtv4hfv4sf): Likewise. 14628 (neon_vcvt_n<mode>): Likewise. 14629 (neon_vcvt_n<mode>): Likewise. 14630 (neon_vmovn<mode>): Likewise. 14631 (neon_vqmovn<mode>): Likewise. 14632 (neon_vqmovun<mode>): Likewise. 14633 (neon_vmovl<mode>): Likewise. 14634 (neon_vmul_lane<mode>): Likewise. 14635 (neon_vmul_lane<mode>): Likewise. 14636 (neon_vmull_lane<mode>): Likewise. 14637 (neon_vqdmull_lane<mode>): Likewise. 14638 (neon_vqdmulh_lane<mode>): Likewise. 14639 (neon_vqdmulh_lane<mode>): Likewise. 14640 (neon_vmla_lane<mode>): Likewise. 14641 (neon_vmla_lane<mode>): Likewise. 14642 (neon_vmlal_lane<mode>): Likewise. 14643 (neon_vqdmlal_lane<mode>): Likewise. 14644 (neon_vmls_lane<mode>): Likewise. 14645 (neon_vmls_lane<mode>): Likewise. 14646 (neon_vmlsl_lane<mode>): Likewise. 14647 (neon_vqdmlsl_lane<mode>): Likewise. 14648 (neon_vext<mode>): Likewise. 14649 (neon_vrev64<mode>): Likewise. 14650 (neon_vrev32<mode>): Likewise. 14651 (neon_vrev16<mode>): Likewise. 14652 (neon_vbsl<mode>_internal): Likewise. 14653 (neon_vshl<mode>): Likewise. 14654 (neon_vqshl<mode>): Likewise. 14655 (neon_vshr_n<mode>): Likewise. 14656 (neon_vshrn_n<mode>): Likewise. 14657 (neon_vqshrn_n<mode>): Likewise. 14658 (neon_vqshrun_n<mode>): Likewise. 14659 (neon_vshl_n<mode>): Likewise. 14660 (neon_vqshl_n<mode>): Likewise. 14661 (neon_vqshlu_n<mode>): Likewise. 14662 (neon_vshll_n<mode>): Likewise. 14663 (neon_vsra_n<mode>): Likewise. 14664 (neon_vsri_n<mode>): Likewise. 14665 (neon_vsli_n<mode>): Likewise. 14666 (neon_vtbl1v8qi): Likewise. 14667 (neon_vtbl2v8qi): Likewise. 14668 (neon_vtbl3v8qi): Likewise. 14669 (neon_vtbl4v8qi): Likewise. 14670 (neon_vtbl1v16qi): Likewise. 14671 (neon_vtbl2v16qi): Likewise. 14672 (neon_vcombinev16qi): Likewise. 14673 (neon_vtbx1v8qi): Likewise. 14674 (neon_vtbx2v8qi): Likewise. 14675 (neon_vtbx3v8qi): Likewise. 14676 (neon_vtbx4v8qi): Likewise. 14677 (*neon_vtrn<mode>_insn): Likewise. 14678 (*neon_vzip<mode>_insn): Likewise. 14679 (*neon_vuzp<mode>_insn): Likewise. 14680 (neon_vld1<mode>): Likewise. 14681 (neon_vld1_lane<mode>): Likewise. 14682 (neon_vld1_lane<mode>): Likewise. 14683 (neon_vld1_dup<mode>): Likewise. 14684 (neon_vld1_dup<mode>): Likewise. 14685 (neon_vld1_dupv2di): Likewise. 14686 (neon_vst1<mode>): Likewise. 14687 (neon_vst1_lane<mode>): Likewise. 14688 (neon_vst1_lane<mode>): Likewise. 14689 (neon_vld2<mode>): Likewise. 14690 (neon_vld2<mode>): Likewise. 14691 (neon_vld2_lane<mode>): Likewise. 14692 (neon_vld2_lane<mode>): Likewise. 14693 (neon_vld2_dup<mode>): Likewise. 14694 (neon_vst2<mode>): Likewise. 14695 (neon_vst2<mode>): Likewise. 14696 (neon_vst2_lane<mode>): Likewise. 14697 (neon_vst2_lane<mode>): Likewise. 14698 (neon_vld3<mode>): Likewise. 14699 (neon_vld3qa<mode>): Likewise. 14700 (neon_vld3qb<mode>): Likewise. 14701 (neon_vld3_lane<mode>): Likewise. 14702 (neon_vld3_lane<mode>): Likewise. 14703 (neon_vld3_dup<mode>): Likewise. 14704 (neon_vst3<mode>): Likewise. 14705 (neon_vst3qa<mode>): Likewise. 14706 (neon_vst3qb<mode>): Likewise. 14707 (neon_vst3_lane<mode>): Likewise. 14708 (neon_vst3_lane<mode>): Likewise. 14709 (neon_vld4<mode>): Likewise. 14710 (neon_vld4qa<mode>): Likewise. 14711 (neon_vld4qb<mode>): Likewise. 14712 (neon_vld4_lane<mode>): Likewise. 14713 (neon_vld4_lane<mode>): Likewise. 14714 (neon_vld4_dup<mode>): Likewise. 14715 (neon_vst4<mode>): Likewise. 14716 (neon_vst4qa<mode>): Likewise. 14717 (neon_vst4qb<mode>): Likewise. 14718 (neon_vst4_lane<mode>): Likewise. 14719 (neon_vst4_lane<mode>): Likewise. 14720 (neon_vec_unpack<US>_lo_<mode>): Likewise. 14721 (neon_vec_unpack<US>_hi_<mode>): Likewise. 14722 (neon_vec_<US>mult_lo_<mode>): Likewise. 14723 (neon_vec_<US>mult_hi_<mode>): Likewise. 14724 (neon_vec_<US>shiftl_<mode>): Likewise. 14725 (neon_unpack<US>_<mode>): Likewise. 14726 (neon_vec_<US>mult_<mode>): Likewise. 14727 (vec_pack_trunc_<mode>): Likewise. 14728 (neon_vec_pack_trunc_<mode>): Likewise. 14729 (neon_vabd<mode>_2): Likewise. 14730 (neon_vabd<mode>_3): Likewise. 14731 147322013-10-15 James Greenhalgh <james.greenhalgh@arm.com> 14733 14734 * config/aarch64/aarch64.md (movtf_aarch64): Update type attribute. 14735 (load_pair): Update type attribute. 14736 (store_pair): Update type attribute. 14737 * config/aarch64/iterators.md (q): New. 14738 147392013-10-15 James Greenhalgh <james.greenhalgh@arm.com> 14740 14741 * config/arm/types.md: Add new types for Neon insns. 14742 147432013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com> 14744 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 14745 Sergey Lega <sergey.s.lega@intel.com> 14746 Anna Tikhonova <anna.tikhonova@intel.com> 14747 Ilya Tocar <ilya.tocar@intel.com> 14748 Andrey Turetskiy <andrey.turetskiy@intel.com> 14749 Ilya Verbin <ilya.verbin@intel.com> 14750 Kirill Yukhin <kirill.yukhin@intel.com> 14751 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 14752 14753 * config/i386/sse.md (unspec): Add UNSPEC_RCP14, UNSPEC_RSQRT14, 14754 UNSPEC_FIXUPIMM, UNSPEC_SCALEF, UNSPEC_GETEXP, UNSPEC_GETMANT, 14755 UNSPEC_EXP2, UNSPEC_RCP28, UNSPEC_RSQRT28. 14756 (rcp14<mode>): New. 14757 (srcp14<mode>): Ditto. 14758 (rsqrt14<mode>): Ditto. 14759 (rsqrt14<mode>): Ditto. 14760 (avx512f_vmscalef<mode>): Ditto. 14761 (avx512f_scalef<mode>): Ditto. 14762 (avx512f_getexp<mode>): Ditto. 14763 (avx512f_sgetexp<mode>): Ditto. 14764 (avx512f_fixupimm<mode>): Ditto. 14765 (avx512f_sfixupimm<mode>): Ditto. 14766 (avx512f_rndscale<mode>): Ditto. 14767 (*avx512er_exp2<mode>): Ditto. 14768 (*avx512er_rcp28<mode>): Ditto. 14769 (avx512er_rsqrt28<mode>): Ditto. 14770 (avx512f_getmant<mode>): Ditto. 14771 (avx512f_getmant<mode>): Ditto. 14772 (avx512f_rndscale<mode>): Fix formatting. 14773 147742013-10-15 Martin Jambor <mjambor@suse.cz> 14775 14776 * ipa-utils.h (ipa_edge_within_scc): Declare. 14777 * ipa-cp.c (edge_within_scc): Moved... 14778 * ipa-utils.c (ipa_edge_within_scc): ...here. Updated all callers. 14779 147802013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com> 14781 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 14782 Sergey Lega <sergey.s.lega@intel.com> 14783 Anna Tikhonova <anna.tikhonova@intel.com> 14784 Ilya Tocar <ilya.tocar@intel.com> 14785 Andrey Turetskiy <andrey.turetskiy@intel.com> 14786 Ilya Verbin <ilya.verbin@intel.com> 14787 Kirill Yukhin <kirill.yukhin@intel.com> 14788 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 14789 14790 * config/i386/predicates.md (const_8_to_15_operand): New. 14791 (const_16_to_31_operand): Ditto. 14792 * config/i386/sse.md (V8FI): New. 14793 (V16FI): Ditto. 14794 (reduc_splus_v8df): Ditto. 14795 (reduc_splus_v16sf): Ditto. 14796 (avx512f_vextract<shuffletype>32x4_1): Ditto. 14797 (vec_extract_hi_<mode>): Ditto. 14798 (avx512f_vinsert<shuffletype>32x4_1): Ditto. 14799 (vec_set_lo_<mode>): Ditto. 14800 (vec_set_hi_<mode>): Ditto. 14801 (avx512f_shuf_<shuffletype>64x2_1): Ditto. 14802 (avx512f_shuf_<shuffletype>32x4_1): Ditto. 14803 (avx512f_pshufd_1): Ditto. 14804 (avx512f_broadcast<mode>): Ditto. 14805 (avx512f_broadcast<mode>): Ditto. 14806 (define_split): Split vec_extract_lo into move. 14807 (ssequartermode): Ditto. 14808 (ssedoublemode): Extened with wider modes. 14809 (vec_extract_lo_<mode>): Ditto. 14810 148112013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com> 14812 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 14813 Sergey Lega <sergey.s.lega@intel.com> 14814 Anna Tikhonova <anna.tikhonova@intel.com> 14815 Ilya Tocar <ilya.tocar@intel.com> 14816 Andrey Turetskiy <andrey.turetskiy@intel.com> 14817 Ilya Verbin <ilya.verbin@intel.com> 14818 Kirill Yukhin <kirill.yukhin@intel.com> 14819 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 14820 14821 * config/i386/predicates.md (register_or_constm1_operand): New. 14822 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_PCMP, UNSPEC_TESTM, 14823 UNSPEC_TESTNM, UNSPEC_VTERNLOG, UNSPEC_ALIGN, UNSPEC_CONFLICT, 14824 UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT, UNSPEC_GATHER_PREFETCH, 14825 UNSPEC_SCATTER_PREFETCH 14826 (VI48_512): New. 14827 (avx512f_ucmp<mode>3): Ditto. 14828 (avx512f_vternlog<mode>): Ditto. 14829 (avx512f_align<mode>): Ditto. 14830 (<shift_insn><mode>3): Ditto. 14831 (avx512f_<rotate>v<mode>): Ditto. 14832 (avx512f_<rotate><mode>): Ditto. 14833 (avx512f_eq<mode>3): Ditto. 14834 (avx512f_eq<mode>3_1): Ditto. 14835 (avx512f_gt<mode>3): Ditto. 14836 (avx512f_testm<mode>3): Ditto. 14837 (avx512f_testnm<mode>3): Ditto. 14838 (avx512pf_gatherpf<mode>): Ditto. 14839 (*avx512pf_gatherpf<mode>_mask): Ditto. 14840 (*avx512pf_gatherpf<mode>): Ditto. 14841 (avx512pf_scatterpf<mode>): Ditto. 14842 (*avx512pf_scatterpf<mode>_mask): Ditto. 14843 (*avx512pf_scatterpf<mode>): Ditto. 14844 (avx512f_vec_dup_gpr<mode>): Ditto. 14845 (clz<mode>2): Ditto. 14846 (conflict<mode>): Ditto. 14847 (REDUC_SMINMAX_MODE): Extened with wider modes. 14848 (reduc_<code>_<mode>): Ditto. 14849 (vlshr<mode>3): Ditto. 14850 (vashl<mode>3): Ditto. 14851 148522013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com> 14853 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 14854 Sergey Lega <sergey.s.lega@intel.com> 14855 Anna Tikhonova <anna.tikhonova@intel.com> 14856 Ilya Tocar <ilya.tocar@intel.com> 14857 Andrey Turetskiy <andrey.turetskiy@intel.com> 14858 Ilya Verbin <ilya.verbin@intel.com> 14859 Kirill Yukhin <kirill.yukhin@intel.com> 14860 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 14861 14862 * config/i386/sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2, 14863 UNSPEC_SCATTER. 14864 (VI48F_512): New. 14865 (avx512fmaskmode): Ditto. 14866 (bcstscalarsuff): Ditto. 14867 (avx512f_blendm<mode>): Ditto. 14868 (cmp_imm_predicate): Ditto. 14869 (avx512f_cmp<mode>3): Ditto. 14870 (avx512f_vec_dup<mode>): Ditto. 14871 (avx512f_vec_dup_mem<mode>): Ditto. 14872 (avx512f_vpermi2var<mode>3): Ditto. 14873 (avx512f_vpermt2var<mode>3): Ditto. 14874 (vec_init<mode>): Ditto. 14875 (avx512f_gathersi<mode>): Ditto. 14876 (*avx512f_gathersi<mode>): Ditto. 14877 (*avx512f_gathersi<mode>_2): Ditto. 14878 (avx512f_gatherdi<mode>): Ditto. 14879 (*avx512f_gatherdi<mode>): Ditto. 14880 (*avx512f_gatherdi<mode>_2): Ditto. 14881 (avx512f_scattersi<mode>): Ditto. 14882 (*avx512f_scattersi<mode>): Ditto. 14883 (avx512f_scatterdi<mode>): Ditto. 14884 (*avx512f_scatterdi<mode>): Ditto. 14885 (sseintprefix): Extened with wider modes. 14886 (VEC_GATHER_IDXSI): Ditto. 14887 (VEC_GATHER_IDXDI): Ditto. 14888 (VEC_GATHER_SRCDI): Ditto. 14889 148902013-10-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> 14891 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 14892 14893 * config/arm/t-aprofile: New file. 14894 * config.gcc: Handle --with-multilib-list option. 14895 148962013-10-15 Bernd Schmidt <bernds@codesourcery.com> 14897 14898 * reload1.c (reloads_unique_chain_p): Ensure that r1 is 14899 the input for r2. 14900 149012013-10-15 Richard Biener <rguenther@suse.de> 14902 14903 * tree-loop-distribution.c (build_empty_rdg): Inline into 14904 single user. 14905 (rdg_flag_vertex): Inline into single user. 14906 (rdg_flag_vertex_and_dependent): Likewise. 14907 (build_rdg_partition_for_vertex): Remove processed bitmap. 14908 (rdg_build_partitions): Simplify. 14909 149102013-10-15 Richard Biener <rguenther@suse.de> 14911 14912 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): 14913 Restructure forwarding through conversions and copies to 14914 avoid performing copy-propagation the wrong way. Adjust 14915 recursion invocations. 14916 (forward_propagate_addr_expr): Add argument stating if we 14917 are recursing from a single-use. 14918 (ssa_forward_propagate_and_combine): Adjust. 14919 149202013-10-14 David Malcolm <dmalcolm@redhat.com> 14921 14922 * dumpfile.h (gcc::dump_manager): New class, to hold state 14923 relating to dumpfile management. 14924 (get_dump_file_name): Remove in favor of method of dump_manager. 14925 (dump_initialized_p): Likewise. 14926 (dump_start): Likewise. 14927 (dump_finish): Likewise. 14928 (dump_switch_p): Likewise. 14929 (dump_register): Likewise. 14930 (get_dump_file_info): Likewise. 14931 * context.c (gcc::context::context): Construct the dump_manager 14932 instance. 14933 * context.h (gcc::context::get_dumps): New. 14934 (gcc::context::m_dumps): New. 14935 * coverage.c (coverage_init): Port to dump_manager API. 14936 * dumpfile.c (extra_dump_files): Convert to field of gcc::dump_manager. 14937 (extra_dump_files_in_use): Likewise. 14938 (extra_dump_files_alloced): Likewise. 14939 (gcc::dump_manager::dump_manager): New. 14940 (dump_register): Convert to... 14941 (gcc::dump_manager::dump_register): ...method, replacing 14942 function-static next_dump with m_next_dump field. 14943 (get_dump_file_info): Convert to... 14944 (gcc::dump_manager::get_dump_file_info): ...method. 14945 (get_dump_file_name): Convert to... 14946 (gcc::dump_manager::get_dump_file_name): ...method. 14947 (dump_start): Convert to... 14948 (gcc::dump_manager::dump_start): ...method. 14949 (dump_finish): Convert to... 14950 (gcc::dump_manager::dump_finish): ...method. 14951 (dump_begin): Replace body with... 14952 (gcc::dump_manager::dump_begin): ...new method. 14953 (dump_phase_enabled_p): Convert to... 14954 (gcc::dump_manager::dump_phase_enabled_p): ...method. 14955 (dump_phase_enabled_p): Convert to... 14956 (gcc::dump_manager::dump_phase_enabled_p): ...method. 14957 (dump_initialized_p): Convert to... 14958 (gcc::dump_manager::dump_initialized_p): ...method. 14959 (dump_flag_name): Replace body with... 14960 (gcc::dump_manager::dump_flag_name): ...new method. 14961 (dump_enable_all): Convert to... 14962 (gcc::dump_manager::dump_enable_all): ...new method. 14963 (opt_info_enable_passes): Convert to... 14964 (gcc::dump_manager::opt_info_enable_passes): ...new method. 14965 (dump_switch_p_1): Convert to... 14966 (gcc::dump_manager::dump_switch_p_1): ...new method. 14967 (dump_switch_p): Convert to... 14968 (gcc::dump_manager::dump_switch_p): ...new method. 14969 (opt_info_switch_p): Port to dump_manager API. 14970 (enable_rtl_dump_file): Likewise. 14971 * opts-global.c (handle_common_deferred_options): Port to new 14972 dump_manager API. 14973 * passes.c (pass_manager::finish_optimization_passes): Likewise. 14974 (pass_manager::register_one_dump_file): Likewise. 14975 (pass_manager::register_pass): Likewise. 14976 (pass_init_dump_file): Likewise. 14977 (pass_fini_dump_file): Likewise. 14978 * statistics.c (statistics_early_init): Likewise. 14979 149802013-10-14 Richard Biener <rguenther@suse.de> 14981 14982 * gimple.c (gimple_canonical_types, canonical_type_hash_cache, 14983 iterative_hash_canonical_type, gimple_canonical_type_hash, 14984 gimple_canonical_types_compatible_p, gimple_canonical_type_eq, 14985 gimple_register_canonical_type, print_gimple_types_stats, 14986 free_gimple_type_tables): Move to lto/lto.c 14987 (gt-gimple.h): Do not include. 14988 * gimple.h (gimple_register_canonical_type, 14989 print_gimple_types_stats, free_gimple_type_tables): Remove. 14990 * Makefile.in (GTFILES): Remove gimple.c. 14991 149922013-10-14 Travis Snoozy <quandary@remstate.com> 14993 14994 PR target/58716 14995 * config/msp430/msp430.c (msp430_option_override): Correct thinko 14996 scanning for msp430x targets. 14997 149982013-10-14 Eric Botcazou <ebotcazou@adacore.com> 14999 15000 PR bootstrap/58509 15001 * config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare. 15002 (registers_ok_for_ldd_peep): Move around. 15003 * config/sparc/sparc.c (widen_mem_for_ldd_peep): New. 15004 * config/sparc/sparc.md (widening peepholes): Use it. 15005 150062013-10-14 Richard Biener <rguenther@suse.de> 15007 15008 PR middle-end/58712 15009 PR middle-end/55358 15010 * gimple.c (iterative_hash_canonical_type): Make sure to 15011 record the hash into the correct hashtable slot. 15012 150132013-10-13 Eric Botcazou <ebotcazou@adacore.com> 15014 15015 PR rtl-optimization/58662 15016 * combine.c (try_combine): Take into account death nodes on I2 when 15017 splitting a PARALLEL of two independent SETs. Fix dump message. 15018 150192013-10-12 Oleg Endo <olegendo@gcc.gnu.org> 15020 15021 PR target/51244 15022 * config/sh/sh_treg_combine.cc: New SH specific RTL pass. 15023 * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add sh_treg_combine.o to 15024 extra_objs. 15025 * config/sh/t-sh (sh_treg_combine.o): New entry. 15026 * config/sh/sh.c (sh_fixed_condition_code_regs): New function that 15027 implements the target hook TARGET_FIXED_CONDITION_CODE_REGS. 15028 (register_sh_passes): New function. Register sh_treg_combine pass. 15029 (sh_option_override): Invoke it. 15030 (sh_canonicalize_comparison): Handle op0_preserve_value. 15031 * sh.md (*cbranch_t"): Do not try to optimize missed test and branch 15032 opportunities. Canonicalize branch condition. 15033 (nott): Allow only if pseudos can be created for non-SH2A. 15034 150352013-10-12 H.J. Lu <hongjiu.lu@intel.com> 15036 15037 PR target/58690 15038 * config/i386/i386.c (ix86_copy_addr_to_reg): New function. 15039 (ix86_expand_movmem): Replace copy_addr_to_reg with 15040 ix86_copy_addr_to_reg. 15041 (ix86_expand_setmem): Likewise. 15042 150432013-10-12 Alexander Monakov <amonakov@ispras.ru> 15044 15045 * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode 15046 provided by ix86_fp_compare_mode instead of CCFPUmode. 15047 150482013-10-12 James Greenhalgh <james.greenhalgh@arm.com> 15049 15050 * config/aarch64/arm_neon.h 15051 (vtbx<1,3>_<psu>8): Fix register constriants. 15052 150532013-10-11 Jeff Law <law@redhat.com> 15054 15055 PR tree-optimization/58640 15056 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump 15057 threading paths that cross over two loop entry points. 15058 150592013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 15060 15061 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to 15062 handle vector float as well. 15063 (*vsx_le_perm_load_v4si): Likewise. 15064 (*vsx_le_perm_store_v2di): Likewise. 15065 (*vsx_le_perm_store_v4si): Likewise. 15066 150672013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 15068 15069 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm 15070 directly to circumvent subtract from splat{31} workaround. 15071 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New 15072 prototype. 15073 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New. 15074 * config/rs6000/altivec.md (define_c_enum "unspec"): Add 15075 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X. 15076 (altivec_vperm_<mode>): Convert to define_insn_and_split to 15077 separate big and little endian logic. 15078 (*altivec_vperm_<mode>_internal): New define_insn. 15079 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to 15080 separate big and little endian logic. 15081 (*altivec_vperm_<mode>_uns_internal): New define_insn. 15082 (vec_permv16qi): Add little endian logic. 15083 150842013-10-11 Marc Glisse <marc.glisse@inria.fr> 15085 15086 * doc/extend.texi (returns_nonnull): Remove arguments. 15087 150882013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com> 15089 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 15090 Sergey Lega <sergey.s.lega@intel.com> 15091 Anna Tikhonova <anna.tikhonova@intel.com> 15092 Ilya Tocar <ilya.tocar@intel.com> 15093 Andrey Turetskiy <andrey.turetskiy@intel.com> 15094 Ilya Verbin <ilya.verbin@intel.com> 15095 Kirill Yukhin <kirill.yukhin@intel.com> 15096 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 15097 15098 * config/i386/sse.md (VI48F_256_512): New. 15099 (avx2_permvar<mode>): Change to ... 15100 (<avx2_avx512f>_permvar<mode>): This. 15101 151022013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com> 15103 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 15104 Sergey Lega <sergey.s.lega@intel.com> 15105 Anna Tikhonova <anna.tikhonova@intel.com> 15106 Ilya Tocar <ilya.tocar@intel.com> 15107 Andrey Turetskiy <andrey.turetskiy@intel.com> 15108 Ilya Verbin <ilya.verbin@intel.com> 15109 Kirill Yukhin <kirill.yukhin@intel.com> 15110 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 15111 15112 * config/i386/i386.c (bdesc_args): Change corresponding pattern for 15113 __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256. 15114 * config/i386/sse.md (VI4_AVX): New. 15115 (sf2simodelower): Ditto. 15116 (sse2_cvtps2dq): Change to ... 15117 (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This. 15118 151192013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com> 15120 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 15121 Sergey Lega <sergey.s.lega@intel.com> 15122 Anna Tikhonova <anna.tikhonova@intel.com> 15123 Ilya Tocar <ilya.tocar@intel.com> 15124 Andrey Turetskiy <andrey.turetskiy@intel.com> 15125 Ilya Verbin <ilya.verbin@intel.com> 15126 Kirill Yukhin <kirill.yukhin@intel.com> 15127 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 15128 15129 * config/i386/sse.md (V_512): New. 15130 (VI_512): Ditto. 15131 (vcond<V_512:mode><VF_512:mode>): Ditto. 15132 (vcond<V_512:mode><VI_512:mode>): Ditto. 15133 (vcondu<V_512:mode><VI_512:mode>): Ditto. 15134 151352013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com> 15136 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 15137 Sergey Lega <sergey.s.lega@intel.com> 15138 Anna Tikhonova <anna.tikhonova@intel.com> 15139 Ilya Tocar <ilya.tocar@intel.com> 15140 Andrey Turetskiy <andrey.turetskiy@intel.com> 15141 Ilya Verbin <ilya.verbin@intel.com> 15142 Kirill Yukhin <kirill.yukhin@intel.com> 15143 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 15144 15145 * config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F. 15146 * config/i386/sse.md (FMAMODEM): Changed modes and conditions. 15147 (FMAMODE): Ditto. 15148 (fma<mode>4): Removed condition. 15149 (fms<mode>4): Ditto. 15150 (fnma<mode>4): Ditto. 15151 (fnms<mode>4): Ditto. 15152 (fma4i_fmadd_<mode>): Ditto. 15153 (*fma_fmadd_<mode>): Ditto. 15154 (*fma_fmsub_<mode>): Ditto. 15155 (*fma_fnmadd_<mode>): Ditto. 15156 (*fma_fnmsub_<mode>): Ditto. 15157 (fmaddsub_<mode>): Allow for TARGET_AVX512F. 15158 (*fma_fmaddsub_<mode>): Ditto. 15159 (*fma_fmsubadd_<mode>): Ditto. 15160 (*fmai_fmadd_<mode>): Ditto. 15161 (*fmai_fmsub_<mode>): Ditto. 15162 (*fmai_fnmadd_<mode>): Ditto. 15163 (*fmai_fnmsub_<mode>): Ditto. 15164 151652013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com> 15166 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 15167 Sergey Lega <sergey.s.lega@intel.com> 15168 Anna Tikhonova <anna.tikhonova@intel.com> 15169 Ilya Tocar <ilya.tocar@intel.com> 15170 Andrey Turetskiy <andrey.turetskiy@intel.com> 15171 Ilya Verbin <ilya.verbin@intel.com> 15172 Kirill Yukhin <kirill.yukhin@intel.com> 15173 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 15174 15175 * config/i386/sse.md (VI248_AVX2_8_AVX512F): New. 15176 (VI124_256): Changed to ... 15177 (VI124_256_48_512): This. 15178 (ssepackmode): Extended with wider modes. 15179 (<code><mode>3): Changed iterator. 15180 (*avx2_<code><mode>3): Ditto. 15181 (vec_pack_trunc_<mode>): Ditto. 15182 151832013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com> 15184 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 15185 Sergey Lega <sergey.s.lega@intel.com> 15186 Anna Tikhonova <anna.tikhonova@intel.com> 15187 Ilya Tocar <ilya.tocar@intel.com> 15188 Andrey Turetskiy <andrey.turetskiy@intel.com> 15189 Ilya Verbin <ilya.verbin@intel.com> 15190 Kirill Yukhin <kirill.yukhin@intel.com> 15191 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 15192 15193 * config/i386/sse.md (VI124_AVX2_48_AVX512F): New. 15194 (VI8F_256_512): Ditto. 15195 (abs<mode>2): Changed iterator. 15196 (avx2_perm<mode>): Changed to ... 15197 (<avx2_avx512f>_perm<mode>): This. 15198 (avx2_perm<mode>_1): Changed to ... 15199 (<avx2_avx512f>_perm<mode>_1): This. 15200 152012013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com> 15202 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 15203 Sergey Lega <sergey.s.lega@intel.com> 15204 Anna Tikhonova <anna.tikhonova@intel.com> 15205 Ilya Tocar <ilya.tocar@intel.com> 15206 Andrey Turetskiy <andrey.turetskiy@intel.com> 15207 Ilya Verbin <ilya.verbin@intel.com> 15208 Kirill Yukhin <kirill.yukhin@intel.com> 15209 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 15210 15211 * config/i386/sse.md (VI48_AVX512F): New. 15212 (VI48_AVX2): Changed to ... 15213 (VI48_AVX2_48_AVX512F): This. 15214 (avx2_ashrv<mode>): Changed to ... 15215 (<avx2_avx512f>_ashrv<mode>): This. 15216 (avx2_<shift_insn>v<mode>): Changed to ... 15217 (<avx2_avx512f>_<shift_insn>v<mode>): This. 15218 152192013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com> 15220 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 15221 Sergey Lega <sergey.s.lega@intel.com> 15222 Anna Tikhonova <anna.tikhonova@intel.com> 15223 Ilya Tocar <ilya.tocar@intel.com> 15224 Andrey Turetskiy <andrey.turetskiy@intel.com> 15225 Ilya Verbin <ilya.verbin@intel.com> 15226 Kirill Yukhin <kirill.yukhin@intel.com> 15227 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 15228 15229 * config/i386/sse.md (VI4_AVX512F): New. 15230 (VI8_AVX2_AVX512F): Ditto. 15231 (mul<mode>3): Extended with wider modes. 15232 (*<sse4_1_avx2>_mul<mode>3): Ditto. 15233 (mul<mode>3): Ditto. 15234 (vec_widen_<s>mult_odd_<mode>): Ditto. 15235 152362013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com> 15237 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 15238 Sergey Lega <sergey.s.lega@intel.com> 15239 Anna Tikhonova <anna.tikhonova@intel.com> 15240 Ilya Tocar <ilya.tocar@intel.com> 15241 Andrey Turetskiy <andrey.turetskiy@intel.com> 15242 Ilya Verbin <ilya.verbin@intel.com> 15243 Kirill Yukhin <kirill.yukhin@intel.com> 15244 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 15245 15246 * config/i386/sse.md (VI2_AVX512F): New. 15247 (VI124_AVX512F): Ditto. 15248 (sseunpackmode): Extended with wider modes. 15249 (sseunpackfltmode): Ditto. 15250 (vec_unpacks_float_hi_<mode>): Ditto. 15251 (vec_unpacks_float_lo_<mode>): Ditto. 15252 (vec_unpacku_float_hi_<mode>): Ditto. 15253 (vec_unpacku_float_lo_<mode>): Ditto. 15254 (vec_unpacks_lo_<mode>): Ditto. 15255 (vec_unpacks_hi_<mode>): Ditto. 15256 (vec_unpacku_lo_<mode>): Ditto. 15257 (vec_unpacku_hi_<mode>): Ditto. 15258 152592013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com> 15260 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 15261 Sergey Lega <sergey.s.lega@intel.com> 15262 Anna Tikhonova <anna.tikhonova@intel.com> 15263 Ilya Tocar <ilya.tocar@intel.com> 15264 Andrey Turetskiy <andrey.turetskiy@intel.com> 15265 Ilya Verbin <ilya.verbin@intel.com> 15266 Kirill Yukhin <kirill.yukhin@intel.com> 15267 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 15268 15269 * config/i386/i386.md (multdiv): New. 15270 (multdiv_mnemonic): Ditto. 15271 * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to... 15272 (<sse>_vm<multdiv_mnemonic><mode>3): This. 15273 (<sse>_vmdiv<mode>3): Removed. 15274 152752013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com> 15276 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 15277 Sergey Lega <sergey.s.lega@intel.com> 15278 Anna Tikhonova <anna.tikhonova@intel.com> 15279 Ilya Tocar <ilya.tocar@intel.com> 15280 Andrey Turetskiy <andrey.turetskiy@intel.com> 15281 Ilya Verbin <ilya.verbin@intel.com> 15282 Kirill Yukhin <kirill.yukhin@intel.com> 15283 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 15284 15285 * config/i386/sse.md (V): Extended with wider modes. 15286 (VF2): Ditto. 15287 (ssehalfvecmode): Ditto. 15288 (i128): Ditto. 15289 (ssepackfltmode): Ditto. 15290 (avx_vec_concat<mode>): Ditto. 15291 (V_256_512): New iterator. 15292 (VF2_512_256): Ditto. 15293 (si2dfmode): New attribute. 15294 (si2dfmodelower): Ditto. 15295 (sf2dfmode): Ditto. 15296 (concat_tg_mode): Ditto. 15297 (floatv4siv4df2): Changed to ... 15298 (float<si2dfmodelower><mode>2): This. 15299 (avx_cvtps2pd256): Changed to ... 15300 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This. 15301 (vec_pack_trunc_v4df): Changed to ... 15302 (vec_pack_trunc_<mode>): This. 15303 (avx_vpermil<mode>): Changed to ... 15304 (<sse2_avx_avx512f>_vpermil<mode>): This. 15305 (<fixsuffix>fix_truncv8dfv8si2): New. 15306 (vec_pack_sfix_trunc_v8df): Ditto. 15307 (avx512f_rndscale<mode>): Ditto. 15308 (avx512f_roundpd512): Ditto. 15309 (vec_pack_ufix_trunc_<mode>): Updated iterator. 15310 153112013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com> 15312 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 15313 Sergey Lega <sergey.s.lega@intel.com> 15314 Anna Tikhonova <anna.tikhonova@intel.com> 15315 Ilya Tocar <ilya.tocar@intel.com> 15316 Andrey Turetskiy <andrey.turetskiy@intel.com> 15317 Ilya Verbin <ilya.verbin@intel.com> 15318 Kirill Yukhin <kirill.yukhin@intel.com> 15319 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 15320 15321 * config/i386/i386.md (any_fix): New iterator. 15322 (fixsuffix): New attribute. 15323 * config/i386/sse.md (VF1): Extened with wider modes. 15324 (VI): Ditto. 15325 (VI_AVX2): Ditto. 15326 (VI8): Ditto. 15327 (sseintvecmodelower): Ditto. 15328 (ssescalarmode): Ditto. 15329 (ssescalarnum): Ditto. 15330 (VF1_128_256): New. 15331 (ssexmmmode): Ditto. 15332 (<fixsuffix>fix_truncv16sfv16si2): Ditto. 15333 (<sse>_rcp<mode>2): Change iterator. 15334 (rsqrt<mode>2): Ditto. 15335 (<sse>_rsqrt<mode>2): Ditto. 15336 (avx2_vec_dup<mode>): Ditto. 15337 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto. 15338 (round<mode>2_sfix): Ditto. 15339 (avx2_pbroadcast<mode>): Ditto. 15340 (*andnot<mode>3): Handle XI mode. 15341 (*<code><mode>3): Ditto. 15342 (AVXTOSSEMODE): Removed. 15343 (avx_vpermil<mode>): Changed to ... 15344 (<sse2_avx_avx512f>_vpermil<mode>): This. 15345 153462013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com> 15347 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 15348 Sergey Lega <sergey.s.lega@intel.com> 15349 Anna Tikhonova <anna.tikhonova@intel.com> 15350 Ilya Tocar <ilya.tocar@intel.com> 15351 Andrey Turetskiy <andrey.turetskiy@intel.com> 15352 Ilya Verbin <ilya.verbin@intel.com> 15353 Kirill Yukhin <kirill.yukhin@intel.com> 15354 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 15355 15356 * config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v". 15357 (<sse>_comi): Ditto. 15358 (<sse>_ucomi): Ditto. 15359 (sse_cvtss2siq_2): Ditto. 15360 (sse2_cvtsd2si): Ditto. 15361 (sse2_cvtsd2siq): Ditto. 15362 (sse2_cvttsd2si): Ditto. 15363 (sse2_cvttsd2siq): Ditto. 15364 (<shift_insn><mode>3): Ditto. 15365 (sse2_cvtsi2sdq): Update constraint and prefix. 15366 (sse_cvtsi2ss): Update prefix. 15367 (sse_cvtsi2ssq): Ditto. 15368 153692013-10-11 Jakub Jelinek <jakub@redhat.com> 15370 15371 * tree-vrp.c (infer_nonnull_range): Use is_gimple_call, 15372 ignore internal calls. 15373 153742013-10-11 Richard Biener <rguenther@suse.de> 15375 15376 * tree-pretty-print.c (dump_generic_node): Allow to dump both (D) 15377 and (ab) for SSA_NAMEs. Mark INTEGER_CSTs with (OVF) if 15378 TREE_OVERFLOW is set. 15379 153802013-10-11 Thomas Schwinge <thomas@codesourcery.com> 15381 15382 * tree.h (OMP_CLAUSE_CODE): Remove duplicate definition. 15383 15384 * gimple.c: GIMPLE statements have subcodes, not sub-codes. 15385 * gimple.h: Likewise. 15386 15387 * doc/generic.texi (OpenMP): OMP_CLAUSE_* are subcodes, not sub-codes. 15388 15389 * doc/generic.texi (Adding new DECL node types): Explain *_CHECK 15390 macros. 15391 15392 * doc/gimple.texi (is_gimple_omp): Move into the correct section. 15393 15394 * acinclude.m4 (gcc_GAS_FLAGS): Add more gcc_cv_as_flags overrides. 15395 * configure: Regenerate. 15396 153972013-10-11 Jakub Jelinek <jakub@redhat.com> 15398 15399 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_ 15400 and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION, 15401 formatting fixes, use pp_colon instead of pp_character (..., ':'), 15402 similarly pp_right_paren. 15403 (dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS, 15404 OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP, 15405 allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST. 15406 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0 15407 clauses. 15408 (omp_declare_simd_clauses_equal, 15409 omp_remove_redundant_declare_simd_attrs): New functions. 15410 (attribute_value_equal): Use omp_declare_simd_clauses_equal. 15411 (walk_tree_1): Handle new OpenMP 4.0 clauses. 15412 * tree.h (OMP_LOOP_CHECK): Define. 15413 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND, 15414 OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it. 15415 (OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES, 15416 OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY, 15417 OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE, 15418 OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND, 15419 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND, 15420 OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT, 15421 OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR, 15422 OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR, 15423 OMP_CLAUSE_SIMDLEN_EXPR): Define. 15424 (OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_. 15425 (omp_remove_redundant_declare_simd_attrs): New prototype. 15426 * gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET, 15427 GIMPLE_OMP_TEAMS): New codes. 15428 (GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE. 15429 * omp-low.c (struct omp_context): Add cancel_label and cancellable 15430 fields. 15431 (target_nesting_level): New variable. 15432 (extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and 15433 OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation 15434 for collapse > 1 static schedule unless ordered. 15435 (get_ws_args_for): Add par_stmt argument. Handle combined loops. 15436 (determine_parallel_type): Adjust get_ws_args_for caller. 15437 (install_var_field): Handle mask & 4 for double indirection. 15438 (scan_sharing_clauses): Ignore shared clause on teams construct. 15439 Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses. 15440 (create_omp_child_function): If inside target or declare target 15441 constructs, set "omp declare target" attribute on the child function. 15442 (find_combined_for): New function. 15443 (scan_omp_parallel): Handle combined loops. 15444 (scan_omp_target, scan_omp_teams): New functions. 15445 (check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting 15446 restrictions and set ctx->cancellable for cancellable constructs. 15447 (scan_omp_1_stmt): Call check_omp_nesting_restrictions also on 15448 selected builtin calls. Handle GIMPLE_OMP_TASKGROUP, 15449 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS. 15450 (build_omp_barrier): Add lhs argument, return gimple rather than tree. 15451 (omp_clause_aligned_alignment): New function. 15452 (lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR on decls. 15453 (lower_rec_input_clauses): Add FD argument. Ignore shared clauses 15454 on teams constructs. Handle user defined reductions and new 15455 OpenMP 4.0 clauses. 15456 (lower_reduction_clauses): Don't set placeholder to address of ref 15457 if it has already the right type. 15458 (lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_. 15459 (expand_parallel_call): Use the new non-_start suffixed builtins, 15460 handle OMP_CLAUSE_PROC_BIND, don't call the outlined function 15461 and GOMP_parallel_end after the call. 15462 (expand_task_call): Handle OMP_CLAUSE_DEPEND. 15463 (expand_omp_for_init_counts): Handle combined loops. 15464 (expand_omp_for_init_vars): Add inner_stmt argument, handle combined 15465 loops. 15466 (expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the 15467 end of cancellable loops. 15468 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): 15469 Likewise. Handle collapse > 1 loops. 15470 (expand_omp_simd): Handle combined loops. 15471 (expand_omp_for): Add inner_stmt argument, adjust callers of 15472 expand_omp_for* functions, use expand_omp_for_static*chunk even 15473 for collapse > 1 unless ordered. 15474 (expand_omp_sections): Use GOMP_sections_end_cancel at the end 15475 of cancellable sections. 15476 (expand_omp_single): Remove need_barrier variable, just rely on 15477 gimple_omp_return_nowait_p. Adjust build_omp_barrier caller. 15478 (expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS. 15479 (expand_omp_atomic_load, expand_omp_atomic_store, 15480 expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p. 15481 (expand_omp_target): New function. 15482 (expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP, 15483 GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET. 15484 (build_omp_regions_1): Immediately close region for 15485 GF_OMP_TARGET_KIND_UPDATE. 15486 (maybe_add_implicit_barrier_cancel): New function. 15487 (lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle 15488 cancellation. 15489 (lower_omp_single): Likewise. Add clobber after the barrier. 15490 (lower_omp_taskgroup): New function. 15491 (lower_omp_for): Handle combined loops. Adjust 15492 lower_rec_input_clauses caller. Handle cancellation. 15493 (lower_depend_clauses): New function. 15494 (lower_omp_taskreg): Lower depend clauses. Adjust 15495 lower_rec_input_clauses caller. Add clobber after the call. Handle 15496 cancellation. 15497 (lower_omp_target, lower_omp_teams): New functions. 15498 (lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP, 15499 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel 15500 and GOMP_cancellation_point calls. 15501 (lower_omp): Fold stmts inside of target region. 15502 (diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP, 15503 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS. 15504 * builtin-types.def (DEF_FUNCTION_TYPE_8): Document. 15505 (BT_FN_VOID_OMPFN_PTR_UINT, 15506 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG, 15507 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG, 15508 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove. 15509 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT, 15510 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT, 15511 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT, 15512 BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT, 15513 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR, 15514 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR, 15515 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New. 15516 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1, 15517 call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL, 15518 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL, 15519 BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle 15520 BUILT_IN_GOMP_PARALLEL_END. 15521 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP, 15522 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS. 15523 * gimple-pretty-print.c (dump_gimple_omp_for): Handle 15524 GF_OMP_FOR_KIND_DISTRIBUTE. 15525 (dump_gimple_omp_target, dump_gimple_omp_teams): New functions. 15526 (dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP. 15527 (dump_gimple_omp_return): Print lhs if it has any. 15528 (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle 15529 gimple_omp_atomic_seq_cst_p. 15530 (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET 15531 and GIMPLE_OMP_TEAMS. 15532 * langhooks.c (lhd_omp_mappable_type): New function. 15533 * tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment. 15534 * langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type 15535 hook. 15536 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP, 15537 GOVD_ALIGNED and GOVD_MAP_TO_ONLY. 15538 (enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and ORT_TARGET. 15539 (struct gimplify_omp_ctx): Add combined_loop field. 15540 (gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt 15541 on stmts inside of target region. 15542 (is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP. 15543 (omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED, 15544 ORT_TARGET and ORT_TARGET_DATA. 15545 (omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED. 15546 Handle GOVD_MAP. 15547 (omp_notice_threadprivate_variable): Complain about threadprivate 15548 variables in target region. 15549 (omp_notice_variable): Complain about vars with non-mappable type 15550 in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA. 15551 (omp_check_private): Ignore ORT_TARGET* regions. 15552 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1, 15553 gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses. 15554 (find_combined_omp_for): New function. 15555 (gimplify_omp_for): Handle gimplification of combined loops. 15556 (gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA, 15557 OMP_TEAMS. 15558 (gimplify_omp_target_update): New function. 15559 (gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST. 15560 (gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA, 15561 OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP. 15562 (gimplify_body): If fndecl has "omp declare target" attribute, add 15563 implicit ORT_TARGET context around it. 15564 * tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET, 15565 OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes. 15566 * tree-nested.c (convert_nonlocal_reference_stmt, 15567 convert_local_reference_stmt, convert_gimple_call): Handle 15568 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP. 15569 * omp-builtins.def (BUILT_IN_GOMP_TASK): Use 15570 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR 15571 instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT. 15572 (BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA, 15573 BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE, 15574 BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL, 15575 BUILT_IN_GOMP_LOOP_END_CANCEL, 15576 BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM, 15577 BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START, 15578 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC, 15579 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC, 15580 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED, 15581 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL, 15582 BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL, 15583 BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins. 15584 (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START, 15585 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START, 15586 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START, 15587 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START, 15588 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END, 15589 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove. 15590 * tree-inline.c (remap_gimple_stmt, estimate_num_insns): 15591 Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP. 15592 * gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target, 15593 gimple_build_omp_teams): New functions. 15594 (walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and 15595 GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN. 15596 (walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET, 15597 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP. 15598 * gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE, 15599 GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO, 15600 GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION, 15601 GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE, 15602 GF_OMP_ATOMIC_SEQ_CST): New. 15603 (gimple_build_omp_taskgroup, gimple_build_omp_target, 15604 gimple_build_omp_teams): New prototypes. 15605 (gimple_has_substatements): Handle GIMPLE_OMP_TARGET, 15606 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP. 15607 (gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of 15608 GIMPLE_OMP_SINGLE as end of range. 15609 (gimple_omp_return_set_lhs, gimple_omp_return_lhs, 15610 gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p, 15611 gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p, 15612 gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p, 15613 gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses, 15614 gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses, 15615 gimple_omp_target_kind, gimple_omp_target_set_kind, 15616 gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr, 15617 gimple_omp_target_set_child_fn, gimple_omp_target_data_arg, 15618 gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg, 15619 gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr, 15620 gimple_omp_teams_set_clauses): New inlines. 15621 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS 15622 and GIMPLE_OMP_TASKGROUP. 15623 * tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause codes. 15624 (enum omp_clause_depend_kind, enum omp_clause_map_kind, 15625 enum omp_clause_proc_bind_kind): New. 15626 (union omp_clause_subcode): Add depend_kind, map_kind and 15627 proc_bind_kind fields. 15628 * tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET, 15629 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP. 15630 * langhooks-def.h (lhd_omp_mappable_type): New prototype. 15631 (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define. 15632 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it. 15633 156342013-10-10 Teresa Johnson <tejohnson@google.com> 15635 15636 * predict.c (tree_estimate_probability): Add new parameter 15637 for estimate_bb_frequencies. 15638 (estimate_bb_frequencies): Add new parameter to force estimation. 15639 (rebuild_frequencies): When max frequency in function is small, 15640 recompute counts from frequencies. 15641 * predict.h (estimate_bb_frequencies): New parameter. 15642 156432013-10-10 David Malcolm <dmalcolm@redhat.com> 15644 15645 * ipa-inline.c (ipa_inline): Fix leak of "order" when 15646 optimizations are disabled. 15647 156482013-10-10 David Malcolm <dmalcolm@redhat.com> 15649 15650 * coverage.c (coverage_finish): Fix leak of da_file_name. 15651 156522013-10-10 Jan Hubicka <jh@suse.cz> 15653 15654 * config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES 15655 for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer, 15656 Bobcat and generic. 15657 156582013-10-10 Jakub Jelinek <jakub@redhat.com> 15659 15660 PR middle-end/58670 15661 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument, 15662 if any labels are in FALLTHRU_BB, use a special label emitted 15663 immediately after the asm goto insn rather than label_rtx 15664 of the LABEL_DECL. 15665 (expand_asm_stmt): Adjust caller. 15666 * cfgrtl.c (commit_one_edge_insertion): Force splitting of 15667 edge if the last insn in predecessor is a jump with single successor, 15668 but it isn't simplejump_p. 15669 156702013-10-10 Richard Biener <rguenther@suse.de> 15671 15672 PR tree-optimization/58656 15673 * tree-ssa-pre.c (phi_translate): Do not cache failed translations. 15674 156752013-10-10 Andrew MacLeod <amacleod@redhat.com> 15676 15677 * gimplify.c: Include expr.h and tm_p.h for targets with special 15678 va-arg padding requirements. 15679 156802013-10-10 Andrew MacLeod <amacleod@redhat.com> 15681 15682 * tree-flow.h: Move some prototypes to gimple.h. 15683 (gimple_fold_indirect_ref): Move prototype to gimple-fold.h. 15684 * gimple.h: Relocate some prototypes from tree-flow.h 15685 * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref): 15686 Move to gimplify.c. 15687 * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c. 15688 (build_va_arg_indirect_ref): Relocate and make static. 15689 (std_gimplify_va_arg_expr): Relocate here. 15690 * gimple-fold.c (gimple_fold_indirect_ref): Relocate here. 15691 * gimple-fold.h (gimple_fold_indirect_ref): Add prototype. 15692 156932013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 15694 15695 * doc/md.texi: Document the mnemonic attribute. 15696 156972013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 15698 15699 PR target/57377 15700 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and 15701 (set_attr_alternative x ...) when searching for user defined 15702 mnemonic attribute. 15703 157042013-10-10 Andrew MacLeod <amacleod@redhat.com> 15705 15706 * config/alpha/alpha.c: Add gimple-ssa.h to include list. 15707 157082013-10-09 Easwaran Raman <eraman@google.com> 15709 15710 * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param... 15711 * cfgexpand.c (defer_stack_allocation): ...use here 15712 * doc/invoke.texi: Add documentation for min-size-for-stack-sharing. 15713 157142013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com> 15715 15716 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function. 15717 (operand_equal_for_value_replacement): New function, extracted from 15718 value_replacement and enhanced to catch more cases. 15719 (value_replacement): Use operand_equal_for_value_replacement. 15720 157212013-10-09 Andrew MacLeod <amacleod@redhat.com> 15722 15723 * loop-doloop.c (doloop_modify, doloop_optimize): Use 15724 get_max_loop_iterations. 15725 157262013-10-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 15727 15728 * config/arm/aarch-common.c (arm_early_load_addr_dep): 15729 Place comment above function. 15730 157312013-10-09 Andrew MacLeod <amacleod@redhat.com> 15732 15733 * tree-flow.h: Remove all remaining prototypes, enums and structs that 15734 are not related to tree-cfg.c. 15735 * tree-ssa-address.h: New file. Relocate prototypes. 15736 * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h. 15737 (addr_for_mem_ref): New. Combine call to get_address_description and 15738 return addr_for_mem_ref. 15739 * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine. 15740 * tree-ssa-live.h: Adjust prototypes. 15741 * passes.c: Include tree-ssa-live.h. 15742 * gimple-pretty-print.h (gimple_dump_bb): Add prototype. 15743 * graphite.c (graphite_transform_loops): Make static. 15744 (graphite_transforms, gate_graphite_transforms, pass_data_graphite, 15745 make_pass_graphite, pass_data_graphite_transforms, 15746 make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c. 15747 * ipa-pure-const.c (warn_function_noreturn): Make static. 15748 (execute_warn_function_noreturn, gate_warn_function_noreturn, 15749 class pass_warn_function_noreturn, make_pass_warn_function_noreturn): 15750 Relocate from tree-cfg.c 15751 * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make 15752 static. 15753 (execute_warn_function_noreturn, gate_warn_function_noreturn, 15754 class pass_warn_function_noreturn, make_pass_warn_function_noreturn): 15755 Move to ipa-pure-const.c. 15756 (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg): 15757 Relocate from tree-optimize.c. 15758 * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg, 15759 make_pass_fixup_cfg): Move to tree-cfg.c. 15760 * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h. 15761 Relocate some prototypes. 15762 * tree-data-ref.h (tree_check_data_deps) Add prototype. 15763 * tree-dump.c (dump_function_to_file): Remove prototype. 15764 Add tree-flow.h to the include file. 15765 * tree-dump.h: Remove prototype. 15766 * tree-parloops.h: New File. Add prototypes. 15767 * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops, 15768 pass_data_parallelize_loops, make_pass_parallelize_loops): Relocate 15769 from tree-ssa-loop.c. 15770 * tree-predcom.c (run_tree_predictive_commoning, 15771 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom): 15772 Relocate here from tree-ssa-loop.c. 15773 * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call 15774 ssa_name_values.release (). 15775 * tree-ssa-threadedge.h: New File. Relocate prototypes here. 15776 (ssa_name_values): Relocate from tree-flow.h. 15777 * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h. 15778 * tree-ssa-loop.c (run_tree_predictive_commoning, 15779 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom, 15780 graphite_transforms, gate_graphite_transforms, pass_data_graphite, 15781 make_pass_graphite, pass_data_graphite_transforms, 15782 make_pass_graphite_transforms, gate_tree_parallelize_loops, 15783 tree_parallelize_loops, pass_data_parallelize_loops, 15784 make_pass_parallelize_loops): Move to other files. 15785 * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype 15786 moved here. 15787 * tree.h: Remove prototypes from tree-address.c. 15788 157892013-10-09 Andrew MacLeod <amacleod@redhat.com> 15790 15791 * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h. 15792 (struct int_tree_map): Move to tree-hasher.h 15793 (SCALE, LABEL, PERCENT): Move to gimple.h 15794 * tree-flow-inline.h: Delete. Move functions to other files. 15795 (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete. 15796 * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h. 15797 (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h 15798 * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid, 15799 inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h. 15800 (SCALE, LABEL, PERCENT): Relocate from tree-flow.h 15801 * tree-hasher.h: Don't include tree-flow.h. 15802 (struct int_tree_map): Relocate from tree-flow.h. 15803 * tree-sra.c (contains_view_convert_expr_p): Relocate from 15804 tree-flow-inline.h and make static. 15805 * tree-ssa-alias.h (ranges_overlap_p): Relocate from 15806 tree-flow-inline.h. 15807 * tree-ssa-operands.c (gimple_ssa_operands): Relocate from 15808 tree-flow-inline.h and make static. 15809 * tree.h (is_global_var, may_be_aliased): Relocate from 15810 tree-flow-inline.h. 15811 * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h. 15812 * value-prof.c: No longer include tree-flow-inline.h. 15813 * tree-switch-conversion.c: No longer include tree-flow-inline.h. 15814 158152013-10-09 Andrew MacLeod <amacleod@redhat.com> 15816 15817 * tree-flow.h: Move some protoypes. Include new tree-ssa-loop.h. 15818 (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h. 15819 (enum move_pos): Move to tree-ssa-loop-im.h 15820 * cfgloop.h: Move some prototypes. 15821 (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c. 15822 * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h. 15823 * tree-ssa-loop.h: New File. Include other tree-ssa-loop-*.h files. 15824 (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h. 15825 (loop_containing_stmt): Relocate from tree-flow-inline.h. 15826 * tree-ssa-loop-ch.c: (do_while_loop_p): Make static. 15827 * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c. 15828 (enum move_pos): Relocate here. 15829 (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to 15830 tree-ssa-loop.c. 15831 (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call. 15832 (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim, 15833 make_pass_lim): Relocate here from tree-ssa-loop.c. 15834 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to 15835 tree-ssa-loop.c. 15836 (loop_edge_to_cancel, unloop_loops): Make static. 15837 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon, 15838 make_pass_iv_canon): Relocate from tree-ssa-loop.c. 15839 (tree_complete_unroll, gate_tree_complete_unroll, 15840 pass_data_complete_unroll, make_pass_complete_unroll): Relocate here. 15841 (tree_complete_unroll_inner, gate_tree_complete_unroll_inner, 15842 pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here. 15843 * tree-ssa-loop-ivopts.c: Remove local prototypes. 15844 (stmt_invariant_in_loop_p): Remove unused function. 15845 * tree-ssa-loop-ivopts.h: New file. Add prototypes. 15846 * tree-ssa-loop-manip.h: New file. Add prototypes. 15847 * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c. 15848 (gcov_type_to_double_int): Move to cfgloop.h. 15849 (double_int_cmp, bound_index, 15850 estimate_numbers_of_iterations_loop): Make static. 15851 (estimated_loop_iterations): Factor out get_estimated_loop_iterations. 15852 (max_loop_iterations): Factor out get_max_loop_iterations. 15853 (estimated_loop_iterations_int, max_stmt_executions_int): Move to 15854 cfgloop.c. 15855 * tree-ssa-loop-niter.h: New file. Add prototypes. 15856 * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch, 15857 gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch, 15858 make_pass_loop_prefetch): Relocate from tree-ssa-loop.c. 15859 * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch, 15860 gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch, 15861 make_pass_tree_unswitch): Relocate from tree-ssa-loop.c. 15862 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im, 15863 pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c. 15864 (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch, 15865 pass_data_tree_unswitch, make_pass_tree_unswitch): Move. 15866 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon, 15867 make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll, 15868 pass_data_complete_unroll, make_pass_complete_unroll, 15869 tree_complete_unroll_inner, gate_tree_complete_unroll_inner, 15870 pass_data_complete_unrolli, make_pass_complete_unrolli): Move to 15871 tree-ssa-loop-ivcanon.c. 15872 (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch, 15873 pass_data_loop_prefetch, make_pass_loop_prefetch): Move to 15874 tree-ssa-loop-prefetch.c. 15875 (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from 15876 tree-ssa-loop-im.c. 15877 (get_lsm_tmp_name): Relocate and add suffix parameter. 15878 (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c. 15879 * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef. 15880 * cfgloop.c (record_niter_bound, estimated_loop_iterations_int, 15881 max_stmt_executions_int): Move from tree-ssa-loop-niter.c. 15882 (get_estimated_loop_iterations): Factor out accessor from 15883 estimated_loop_iterations in tree-ssa-loop-niter.c. 15884 (get_max_loop_iterations): Factor out accessor from 15885 _max_loop_iterations in tree-ssa-niter.c. 15886 * loop-unroll.c (decide_unroll_constant_iterations, 15887 decide_unroll_runtime_iterations, decide_peel_simple, 15888 decide_unroll_stupid): Use new get_* accessors. 15889 158902013-10-09 Marc Glisse <marc.glisse@inria.fr> 15891 15892 PR tree-optimization/20318 15893 * doc/extend.texi (returns_nonnull): New function attribute. 15894 * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull 15895 attribute. 15896 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise. 15897 (stmt_interesting_for_vrp): Accept all GIMPLE_CALL. 15898 158992013-10-09 Eric Botcazou <ebotcazou@adacore.com> 15900 15901 PR middle-end/58570 15902 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return 15903 false if both components are bitfields. 15904 159052013-10-09 Alex Velenko <Alex.Velenko@arm.com> 15906 15907 * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32) 15908 (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32) 15909 (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C. 15910 * config/aarch64/aarch64.h 15911 (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz. 15912 * config/aarch64/aarch64-simd-builtins.def 15913 (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator. 15914 159152013-10-09 Alex Velenko <Alex.Velenko@arm.com> 15916 15917 * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added. 15918 159192013-10-09 Alex Velenko <Alex.Velenko@arm.com> 15920 15921 * config/aarch64/arm_neon.h (vdiv_f64): Added. 15922 159232013-10-09 Alex Velenko <Alex.Velenko@arm.com> 15924 15925 * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C. 15926 (vneg_f64): New intrinsic. 15927 (vneg_s8): Asm replaced with C. 15928 (vneg_s16): Likewise. 15929 (vneg_s32): Likewise. 15930 (vneg_s64): New intrinsic. 15931 (vnegq_f32): Asm replaced with C. 15932 (vnegq_f64): Likewise. 15933 (vnegq_s8): Likewise. 15934 (vnegq_s16): Likewise. 15935 (vnegq_s32): Likewise. 15936 (vnegq_s64): Likewise. 15937 159382013-10-09 Renlin Li <Renlin.Li@arm.com> 15939 15940 * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant. 15941 159422013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 15943 15944 * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove 15945 packed stack special handling. 15946 (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch 15947 back to fixed stack slots for FPRs saved due to stdarg. 15948 159492013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 15950 15951 * config/s390/s390.c (s390_frame_info): Restructure function. 15952 159532013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 15954 15955 * config/s390/s390.c (struct s390_frame_layout): New field 15956 gpr_save_slots. 15957 (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros. 15958 (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of 15959 regs_ever_clobbered to char*. 15960 (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead 15961 of cfun->has_nonlocal_label. Ignore frame related restore INSNs. 15962 (s390_register_info): Enable FPR save slots. Move/Copy some 15963 functionality into ... 15964 (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr) 15965 (s390_register_info_stdarg_gpr, s390_optimize_register_info): New 15966 function. 15967 (s390_frame_info): Do gpr slot allocation here now. stdarg does 15968 not imply a stack frame. 15969 (s390_init_frame_layout): Remove variable clobbered_regs. 15970 (s390_update_register_info): Remove function. 15971 (s390_hard_regno_rename_ok): Call-saved regs without a save slot 15972 cannot be used for register renaming. 15973 (s390_hard_regno_scratch_ok): New function. 15974 (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook. 15975 (s390_initial_elimination_offset): Change offset calculation of 15976 the return address pointer. 15977 (save_gprs): Deal with only r6 being saved from the call-saved regs. 15978 (restore_gprs): Set frame related flag. 15979 (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions. 15980 (s390_emit_prologue): Call s390_register_info instead of 15981 s390_update_frame_layout. Call s390_save_gprs_to_fprs. 15982 (s390_emit_epilogue): Call s390_restore_gprs_from_fprs. 15983 (s390_optimize_prologue): Call s390_optimize_register_info. 15984 Try to remove also FPR slot save/restore INSNs. Remove frame 15985 related flags from restore INSNs. 15986 159872013-10-08 DJ Delorie <dj@redhat.com> 15988 15989 * config/rl78/rl78-expand.md (movqi): use operands[] not operandN. 15990 (movhi): Likewise. 15991 15992 * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to 15993 avoid conflict with the MI use of %c. 15994 * config/rl78/rl78-real.md: change %c to %C throughout. 15995 * config/rl78/rl78-virt.md: Likewise. 15996 159972013-10-08 Jan Hubicka <jh@suse.cz> 15998 15999 * config/i386/i386.c (ix86_option_override_internal): Switch 16000 to SSE math for -ffast-math when target ISA supports SSE2. 16001 160022013-10-08 Andrew MacLeod <amacleod@redhat.com> 16003 16004 * tree-flow.h: Remove some prototypes. 16005 * tree.h: Remove some protypes, add a couple. 16006 * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups, 16007 using_eh_for_cleanups_p): Add interface routines for front ends. 16008 * tree-eh.h: New file. Add protoptyes. 16009 * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete. 16010 (add_stmt_to_eh_lp_fn): Make static. 16011 (lower_try_finally): Use new using_eh_for_cleanups_p. 16012 * emit-rtl.c: Include tree-eh.h. 16013 * gimple.h: Include tree-eh.h. 16014 160152013-10-08 Marc Glisse <marc.glisse@inria.fr> 16016 16017 PR tree-optimization/58480 16018 * tree-vrp.c (infer_nonnull_range): New function. 16019 (infer_value_range): Call infer_nonnull_range. 16020 160212013-10-08 Dehao Chen <dehao@google.com> 16022 16023 PR tree-optimization/58619 16024 * tree-inline.c (copy_phis_for_bb): Combine location data 16025 only if non-null. 16026 160272013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org> 16028 16029 PR target/58423 16030 * config/arm/arm.c (arm_emit_ldrd_pop): Attach 16031 RTX_FRAME_RELATED_P on INSN. 16032 160332013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 16034 16035 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New. 16036 (altivec_expand_vec_perm_const): Call it. 16037 160382013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 16039 16040 * config/rs6000/vector.md (mov<mode>): Emit permuted move 16041 sequences for LE VSX loads and stores at expand time. 16042 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New 16043 prototype. 16044 * config/rs6000/rs6000.c (rs6000_const_vec): New. 16045 (rs6000_gen_le_vsx_permute): New. 16046 (rs6000_gen_le_vsx_load): New. 16047 (rs6000_gen_le_vsx_store): New. 16048 (rs6000_gen_le_vsx_move): New. 16049 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New. 16050 (*vsx_le_perm_load_v4si): New. 16051 (*vsx_le_perm_load_v8hi): New. 16052 (*vsx_le_perm_load_v16qi): New. 16053 (*vsx_le_perm_store_v2di): New. 16054 (*vsx_le_perm_store_v4si): New. 16055 (*vsx_le_perm_store_v8hi): New. 16056 (*vsx_le_perm_store_v16qi): New. 16057 (*vsx_xxpermdi2_le_<mode>): New. 16058 (*vsx_xxpermdi4_le_<mode>): New. 16059 (*vsx_xxpermdi8_le_V8HI): New. 16060 (*vsx_xxpermdi16_le_V16QI): New. 16061 (*vsx_lxvd2x2_le_<mode>): New. 16062 (*vsx_lxvd2x4_le_<mode>): New. 16063 (*vsx_lxvd2x8_le_V8HI): New. 16064 (*vsx_lxvd2x16_le_V16QI): New. 16065 (*vsx_stxvd2x2_le_<mode>): New. 16066 (*vsx_stxvd2x4_le_<mode>): New. 16067 (*vsx_stxvd2x8_le_V8HI): New. 16068 (*vsx_stxvd2x16_le_V16QI): New. 16069 160702013-10-07 Renlin Li <Renlin.Li@arm.com> 16071 16072 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning. 16073 160742013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 16075 16076 * config/s390/s390.c (s390_register_info): Make the call-saved FPR 16077 loop to work also for 31bit ABI. 16078 Save the stack pointer for frame_size > 0. 16079 160802013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 16081 16082 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry") 16083 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove 16084 constraint letters from expanders. 16085 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the 16086 retry count to general_operand. 16087 ("tabort"): Give operand 0 a mode. 16088 ("tabort_1"): Add mode and constraint letter for operand 0. 16089 * doc/extend.texi: Fix protoype of __builtin_non_tx_store. 16090 160912013-10-04 Jeff Law <law@redhat.com> 16092 16093 * tree-ssa-threadedge.c: Fix some trailing whitespace problems. 16094 16095 * tree-ssa-threadedge.c (thread_through_normal_block): Broken 16096 out of ... 16097 (thread_across_edge): Here. Call it. 16098 160992013-10-04 Cary Coutant <ccoutant@google.com> 16100 16101 * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when 16102 discarding a location list expression (or a piece of one). 16103 161042013-10-03 Jan Hubicka <jh@suse.cz> 16105 16106 * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue 16107 rate of 2. Core2, Corei7 and Haswell has issue rate of 4. 16108 (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case. 16109 161102013-10-03 Jan Hubicka <jh@suse.cz> 16111 16112 * config/i386/i386.c (ix86_option_override_internal): Do not enable 16113 accumulate-outgoing-args when producing unwind info. 16114 161152013-10-03 Wei Mi <wmi@google.com> 16116 16117 * lra-constraints.c (insert_move_for_subreg): New function 16118 extracted from simplify_operand_subreg. 16119 (simplify_operand_subreg): Add reload for paradoxical subreg. 16120 161212013-10-03 Rong Xu <xur@google.com> 16122 16123 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find 16124 the candidate of builtin_expect such that we should fix the 16125 size/time estimation. 16126 (estimate_function_body_sizes): Do the acutally size/time fix-up 16127 for builtin_expect. 16128 161292013-10-03 Rong Xu <xur@google.com> 16130 16131 * predict.c (tree_predict_by_opcode): Get the probability 16132 for builtin_expect from param builtin_expect_probability. 16133 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter. 16134 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments. 16135 * doc/invoke.texi: Add documentation for builtin-expect-probability. 16136 161372013-10-03 Marc Glisse <marc.glisse@inria.fr> 16138 16139 PR c++/19476 16140 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'. 16141 * calls.c (alloca_call_p): Use get_callee_fndecl. 16142 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new. 16143 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp): 16144 Likewise. 16145 (vrp_visit_stmt): Remove duplicated code. 16146 161472013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com> 16148 16149 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2, 16150 ceildf2, btruncdf2, instead of vsx_* name. 16151 16152 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic 16153 iterators to only do V2DF and V4SF here. Move the DF code to 16154 rs6000.md where it is combined with SF mode. Replace <VSv> with 16155 just 'v' since only vector operations are handled with these insns 16156 after moving the DF support to rs6000.md. 16157 (vsx_sub<mode>3): Likewise. 16158 (vsx_mul<mode>3): Likewise. 16159 (vsx_div<mode>3): Likewise. 16160 (vsx_fre<mode>2): Likewise. 16161 (vsx_neg<mode>2): Likewise. 16162 (vsx_abs<mode>2): Likewise. 16163 (vsx_nabs<mode>2): Likewise. 16164 (vsx_smax<mode>3): Likewise. 16165 (vsx_smin<mode>3): Likewise. 16166 (vsx_sqrt<mode>2): Likewise. 16167 (vsx_rsqrte<mode>2): Likewise. 16168 (vsx_fms<mode>4): Likewise. 16169 (vsx_nfma<mode>4): Likewise. 16170 (vsx_copysign<mode>3): Likewise. 16171 (vsx_btrunc<mode>2): Likewise. 16172 (vsx_floor<mode>2): Likewise. 16173 (vsx_ceil<mode>2): Likewise. 16174 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md. 16175 (vsx_sminsf3): Likewise. 16176 (vsx_fmadf4): Likewise. 16177 (vsx_fmsdf4): Likewise. 16178 (vsx_nfmadf4): Likewise. 16179 (vsx_nfmsdf4): Likewise. 16180 (vsx_cmpdf_internal1): Likewise. 16181 16182 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it 16183 simpler to select whether a target has SPE or traditional floating 16184 point support in iterators. 16185 (TARGET_DF_SPE): Likewise. 16186 (TARGET_SF_FPR): Likewise. 16187 (TARGET_DF_FPR): Likewise. 16188 (TARGET_SF_INSN): Macros to say whether floating point support 16189 exists for a given operation for expanders. 16190 (TARGET_DF_INSN): Likewise. 16191 16192 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow 16193 combining of SF/DF mode operations, using both traditional and VSX 16194 registers. 16195 (Fvsx): Likewise. 16196 (Ff): Likewise. 16197 (Fv): Likewise. 16198 (Fs): Likewise. 16199 (Ffre): Likewise. 16200 (FFRE): Likewise. 16201 (abs<mode>2): Combine SF/DF modes using traditional floating point 16202 instructions. Add support for using the upper DF registers with 16203 VSX support, and SF registers with power8-vector support. Update 16204 expanders for operations supported by both the SPE and traditional 16205 floating point units. 16206 (abs<mode>2_fpr): Likewise. 16207 (nabs<mode>2): Likewise. 16208 (nabs<mode>2_fpr): Likewise. 16209 (neg<mode>2): Likewise. 16210 (neg<mode>2_fpr): Likewise. 16211 (add<mode>3): Likewise. 16212 (add<mode>3_fpr): Likewise. 16213 (sub<mode>3): Likewise. 16214 (sub<mode>3_fpr): Likewise. 16215 (mul<mode>3): Likewise. 16216 (mul<mode>3_fpr): Likewise. 16217 (div<mode>3): Likewise. 16218 (div<mode>3_fpr): Likewise. 16219 (sqrt<mode>3): Likewise. 16220 (sqrt<mode>3_fpr): Likewise. 16221 (fre<Fs>): Likewise. 16222 (rsqrt<mode>2): Likewise. 16223 (cmp<mode>_fpr): Likewise. 16224 (smax<mode>3): Likewise. 16225 (smin<mode>3): Likewise. 16226 (smax<mode>3_vsx): Likewise. 16227 (smin<mode>3_vsx): Likewise. 16228 (negsf2): Delete SF operations that are merged with DF. 16229 (abssf2): Likewise. 16230 (addsf3): Likewise. 16231 (subsf3): Likewise. 16232 (mulsf3): Likewise. 16233 (divsf3): Likewise. 16234 (fres): Likewise. 16235 (fmasf4_fpr): Likewise. 16236 (fmssf4_fpr): Likewise. 16237 (nfmasf4_fpr): Likewise. 16238 (nfmssf4_fpr): Likewise. 16239 (sqrtsf2): Likewise. 16240 (rsqrtsf_internal1): Likewise. 16241 (smaxsf3): Likewise. 16242 (sminsf3): Likewise. 16243 (cmpsf_internal1): Likewise. 16244 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support. 16245 (negdf2): Delete DF operations that are merged with SF. 16246 (absdf2): Likewise. 16247 (nabsdf2): Likewise. 16248 (adddf3): Likewise. 16249 (subdf3): Likewise. 16250 (muldf3): Likewise. 16251 (divdf3): Likewise. 16252 (fred): Likewise. 16253 (rsqrtdf_internal1): Likewise. 16254 (fmadf4_fpr): Likewise. 16255 (fmsdf4_fpr): Likewise. 16256 (nfmadf4_fpr): Likewise. 16257 (nfmsdf4_fpr): Likewise. 16258 (sqrtdf2): Likewise. 16259 (smaxdf3): Likewise. 16260 (smindf3): Likewise. 16261 (cmpdf_internal1): Likewise. 16262 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro. 16263 (btrunc<mode>2): Delete separate expander, and combine with the 16264 insn and add VSX instruction support. Use TARGET_<MODE>_FPR. 16265 (btrunc<mode>2_fpr): Likewise. 16266 (ceil<mode>2): Likewise. 16267 (ceil<mode>2_fpr): Likewise. 16268 (floor<mode>2): Likewise. 16269 (floor<mode>2_fpr): Likewise. 16270 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support. 16271 Add support for using the upper registers with VSX and 16272 power8-vector. Move insns to be closer to the define_expands. On 16273 VSX systems, prefer the traditional form of FMA over the VSX 16274 version, since the traditional form allows the target not to 16275 overlap with the inputs. 16276 (fms<mode>4_fpr): Likewise. 16277 (nfma<mode>4_fpr): Likewise. 16278 (nfms<mode>4_fpr): Likewise. 16279 162802013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 16281 Richard Earnshaw <richard.earnshaw@arm.com> 16282 16283 * config/arm/aarch-common-protos.h (struct alu_cost_table): New. 16284 (struct mult_cost_table): Likewise. 16285 (struct mem_cost_table): Likewise. 16286 (struct fp_cost_table): Likewise. 16287 (struct vector_cost_table): Likewise. 16288 (cpu_cost_table): Likewise. 16289 * config/arm/arm.opt (mold-rts-costs): New option. 16290 (mnew-generic-costs): Likewise. 16291 * config/arm/arm.c (generic_extra_costs): New table. 16292 (cortexa15_extra_costs): Likewise. 16293 (arm_slowmul_tune): Use NULL as new costs. 16294 (arm_fastmul_tune): Likewise. 16295 (arm_strongarm_tune): Likewise. 16296 (arm_xscale_tune): Likewise. 16297 (arm_9e_tune): Likewise. 16298 (arm_v6t2_tune): Likewise. 16299 (arm_cortex_a5_tune): Likewise. 16300 (arm_cortex_a9_tune): Likewise. 16301 (arm_v6m_tune): Likewise. 16302 (arm_fa726te_tune): Likewise. 16303 (arm_cortex_a15_tune): Use cortex15_extra_costs. 16304 (arm_cortex_tune): Use generict_extra_costs. 16305 (shifter_op_p): New function. 16306 (arm_unspec_cost): Likewise. 16307 (LIBCALL_COST): Define. 16308 (arm_new_rtx_costs): New function. 16309 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific 16310 table is available. Use old costs otherwise unless mnew-generic-costs 16311 is specified. 16312 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field. 16313 (cpu_cost_table): Declare. 16314 163152013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com> 16316 16317 PR target/58460 16318 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>) 16319 (*subs_mul_imm_<mode>) 16320 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>) 16321 (*sub_<shift>_<mode>) 16322 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw): 16323 Remove k constraint. 16324 163252013-10-03 Ian Bolton <ian.bolton@arm.com> 16326 16327 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy 16328 code. 16329 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise. 16330 163312013-10-02 Teresa Johnson <tejohnson@google.com> 16332 16333 * predict.c (probably_never_executed): New function. 16334 (probably_never_executed_bb_p): Invoke probably_never_executed. 16335 (probably_never_executed_edge_p): Ditto. 16336 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): 16337 Treat profile insanities conservatively. 16338 163392013-10-02 John David Anglin <danglin@gcc.gnu.org> 16340 16341 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file. 16342 163432013-10-02 Vladimir Makarov <vmakarov@redhat.com> 16344 16345 * lra-constraints.c (process_alt_operand): Calculate scratch_p and 16346 use it. Use smaller increase for scratch. Don't increase reject 16347 for early clobber scratch. 16348 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns 16349 setting eliminated regs except setting fp from hfp. 16350 (lra_eliminate): Check lra_insn_recog_data on NULL. 16351 163522013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com> 16353 16354 PR target/58587 16355 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off 16356 setting -mvsx-timode by default until the underlying problem is fixed. 16357 (RS6000_CPU, power7 defaults): Likewise. 16358 163592013-10-02 Uros Bizjak <ubizjak@gmail.com> 16360 16361 * config/x-linux (host-linux.o): Remove header dependencies. 16362 Use $(COMPILE) and $(POSTCOMPILE). 16363 * config/t-linux-android (linux-android.o): Ditto. 16364 163652013-10-02 Uros Bizjak <ubizjak@gmail.com> 16366 16367 * Makefile.in (expmed.o-warn): Remove. 16368 163692013-10-02 Andrew MacLeod <amacleod@redhat.com> 16370 16371 * graphite-scop-detection.c: Include tree-ssa-propagate,h. 16372 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h. 16373 163742013-10-02 Teresa Johnson <tejohnson@google.com> 16375 16376 * dojump.c (do_jump_1): Divide probability between 16377 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR. 16378 163792013-10-02 Tom Tromey <tromey@redhat.com> 16380 16381 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and). 16382 163832013-10-02 Andrew MacLeod <amacleod@redhat.com> 16384 16385 * tree-flow.h: Remove some prototypes. 16386 * tree-ssa-dce.c (mark_virtual_operand_for_renaming, 16387 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c. 16388 * tree-into-ssa.c (mark_virtual_operand_for_renaming, 16389 mark_virtual_phi_result_for_renaming): Relocate here. 16390 * tree-into-ssa.h: Add prototypes. 16391 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use 16392 single_pred_before_succ_order. 16393 (blocks_in_phiopt_order): Rename and move to cfganal.c. 16394 (nonfreeing_call_p) Move to gimple.c. 16395 * cfganal.c (single_pred_before_succ_order): Move and renamed from 16396 tree-ssa-phiopt.c. 16397 * basic-block.h (single_pred_before_succ_order): Add prototype. 16398 * gimple.c (nonfreeing_call_p): Relocate here. 16399 * gimple.h: Add prototype. 16400 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h. 16401 * tree-ssa-dom.h: New file. Relocate prototypes here. 16402 * tree-ssa.h: Include tree-ssa-dom.h. 16403 164042013-10-02 Uros Bizjak <ubizjak@gmail.com> 16405 16406 * config/i386/x-i386 (driver-i386.o): Remove header dependencies. 16407 Use $(COMPILE) and $(POSTCOMPILE). 16408 16409 * config/alpha/x-alpha (driver-alpha.o): Ditto. 16410 164112013-10-02 Andrew MacLeod <amacleod@redhat.com> 16412 16413 * tree-flow.h: Remove some prototypes. 16414 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h. 16415 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h. 16416 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp, 16417 propagate_tree_value*): Move from here to... 16418 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp, 16419 propagate_tree_value*): Relocate here. 16420 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h. 16421 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h. 16422 * gimple-fold.c: Remove gimple-fold.h from include list. 16423 * tree-vrp.c: Remove gimple-fold.h from include list. 16424 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list. 16425 * tree-ssa-ccp.c: Remove gimple-fold.h from include list. 16426 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list. 16427 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list. 16428 * sese.c: Add tree-ssa-propagate.h to include list. 16429 164302013-10-02 Richard Biener <rguenther@suse.de> 16431 16432 * tree-loop-distribution.c: Include tree-vectorizer.h for 16433 find_loop_location. 16434 (enum partition_kind): Remove PKIND_REDUCTION. 16435 (struct partition_s): Remove has_writes member, add reduction_p member. 16436 (partition_alloc): Adjust. 16437 (partition_builtin_p): Likewise. 16438 (partition_has_writes): Remove. 16439 (partition_reduction_p): New function. 16440 (partition_merge_into): Likewise. 16441 (generate_code_for_partition): Commonize builtin partition 16442 handling tail. 16443 (rdg_cannot_recompute_vertex_p): Remove. 16444 (already_processed_vertex_p): Likewise. 16445 (rdg_flag_vertex): Do not set has_writes. 16446 (classify_partition): Adjust. 16447 (rdg_build_partitions): Do not set has_writes, treat all 16448 partitions as useful. 16449 (distribute_loop): Record number of library calls generated. Adjust. 16450 (tree_loop_distribution): Report number of loops and library 16451 calls generated as opt-info. 16452 164532013-10-02 Andrew MacLeod <amacleod@redhat.com> 16454 16455 * tree-flow.h: Include new .h files. Move prototypes. 16456 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h. 16457 * tree-dfa.h: New File. Add prototypes from tree-flow.h. 16458 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h. 16459 * tree-pretty-print.h: Add prototypes from tree-flow.h. 16460 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h. 16461 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c. 16462 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file. 16463 * tree.h (get_ref_base_and_extent): Move prototype out. 16464 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to 16465 tree-dfa.h. 16466 * gimple-low.h: New File. Add prototypes from tree-flow.h. 16467 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to... 16468 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here. 16469 * tree-scalar-evolution.c: Include tree.h. 16470 * sese.c: Include tree.h. 16471 * dumpfile.c: Move gimple-pretty-print.h include after tree.h. 16472 * dwarf2out.c: Include tree-dfa.h. 16473 * tree-chrec.c: Include tree.h. 16474 * tree-data-ref.c: Include tree.h. 16475 164762013-10-02 Yufeng Zhang <yufeng.zhang@arm.com> 16477 16478 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): 16479 Fix whitespace. 16480 164812013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 16482 16483 * config/t-sol2 (sol2-c.o): Remove header dependencies. 16484 Use $(COMPILE) and $(POSTCOMPILE). 16485 (sol2-cxx.o): Likewise. 16486 (sol2-stubs.o): Likewise. 16487 (sol2.o): Likewise. 16488 * config/x-solaris (host-solaris.o): Likewise. 16489 16490 * config/sparc/t-sparc (sparc.o): Remove. 16491 (sparc-c.o): Remove header dependencies. 16492 Use $(COMPILE) and $(POSTCOMPILE). 16493 * config/sparc/x-sparc: Likewise. 16494 164952013-10-02 Joern Rennecke <joern.rennecke@embecosm.com> 16496 16497 * config/arc/arc-opts.h: Add 2013 to Copyright years. 16498 * config/arc/arc700.md: Likewise. 16499 * config/arc/arc-modes.def: Likewise. 16500 * config/arc/arc-simd.h: Likewise. 16501 * config/arc/t-arc-uClibc: Likewise. 16502 * config/arc/t-arc-newlib: Likewise. 16503 165042013-10-02 Renlin Li <renlin.li@arm.com> 16505 16506 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use 16507 plus_constant. 16508 (aarch64_expand_epilogue): Likewise. 16509 165102013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 16511 Yufeng Zhang <yufeng.zhang@arm.com> 16512 16513 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward 16514 declaration. 16515 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if 16516 'base_in' represent a conversion and legal_cast_p_1 holds; set 16517 'base_in' with the returned value from get_unwidened. 16518 165192013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 16520 16521 * config/arm/arm.c (arm_legitimize_reload_address): Explain why 16522 plus_constant is not used. 16523 165242013-10-01 Wei Mi <wmi@google.com> 16525 16526 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL. 16527 * config/i386/i386.md: Add define_peephole2 to 16528 break partial reg stall for cvtss2sd/cvtsd2ss. 16529 165302013-10-01 Joern Rennecke <joern.rennecke@embecosm.com> 16531 16532 * config/arc/arc.c (pass_arc_ifcvt::clone): 16533 Update for ctxt_ -> m_ctxt change. 16534 165352013-10-01 Jeff Law <law@redhat.com> 16536 16537 * tree-ssa-threadupdate.c (struct redirection_data): Delete 16538 outgoing_edge and intermediate_edge fields. Instead store the path. 16539 (redirection_data::hash): Hash on the last edge's destination index. 16540 (redirection_data::equal): Check the entire thread path. 16541 (lookup_redirectio_data): Corresponding changes. 16542 (create_edge_and_update_destination_phis): Likewise. 16543 (thread_single_edge): Likewise. 16544 165452013-10-01 Joern Rennecke <joern.rennecke@embecosm.com> 16546 Diego Novillo <dnovillo@google.com> 16547 16548 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete. 16549 (UNSPEC_ARC_SIMD_VLD32WL): Likewise. 16550 (vld32wh_insn, vld32wl_insn): Delete commented-out old 16551 versions of these patterns. 16552 16553 * doc/extend.texi (long_call/medium_call/short_call): Typo fix. 16554 (__builtin_arc_aligned): Likewise. 16555 16556 * config/arc/arc.md: Expand adc_0 comment stating the intended 16557 purpose and why it isn't ready. 16558 Replace commented out call_value_via_label_mixed with a 16559 plain comment about bl_s. 16560 16561 * config/arc/arc.c (stdio.h): Don't include directly. 16562 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p. 16563 Remove if (1) condition. 16564 (arc_encode_section_info): Fix comment. 16565 165662013-10-01 Joern Rennecke <joern.rennecke@embecosm.com> 16567 16568 * config/arc/arc.c (arc_conditional_register_usage): 16569 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG. 16570 Also set reg_alloc_order for DMA config regs. 16571 165722013-10-01 Joern Rennecke <joern.rennecke@embecosm.com> 16573 Jeremy Bennett <jeremy.bennett@embecosm.com> 16574 16575 * doc/install.texi (--with-cpu): Mention ARC. 16576 (arc-*-elf32): New paragraph. 16577 (arc-linux-uclibc): Likewise. 16578 * doc/md.texi (Machine Constraints): Add ARC part. 16579 * doc/invoke.texi: (menu): Add ARC Options. 16580 (Machine Dependent Options) <ARC Options>: Add synopsis. 16581 (node ARC Options): Add. 16582 * doc/extend.texi (long_call / short_call attribute): Add ARC. 16583 (ARC Built-in Functions): New section defining 16584 generic ARC built-in functions. 16585 (ARC SIMD Built-in Functions): New section defining SIMD specific 16586 built-in functions. 16587 (Declaring Attributes of Functions): Extended 16588 description of short_call and long_call attributes for ARC and 16589 added index entries. 16590 165912013-10-01 Saurabh Verma <saurabh.verma@codito.com> 16592 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com> 16593 Joern Rennecke <joern.rennecke@embecosm.com> 16594 Muhammad Khurram Riaz <khurram.riaz@arc.com> 16595 Brendan Kehoe <brendan@zen.org> 16596 Michael Eager <eager@eagercon.com> 16597 Simon Cook <simon.cook@embecosm.com> 16598 Jeremy Bennett <jeremy.bennett@embecosm.com> 16599 16600 * config/arc, common/config/arc: New directories. 16601 166022013-10-01 Joern Rennecke <joern.rennecke@embecosm.com> 16603 Brendan Kehoe <brendan@zen.org> 16604 Simon Cook <simon.cook@embecosm.com> 16605 16606 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations. 16607 166082013-10-01 Andrew MacLeod <amacleod@redhat.com> 16609 16610 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to... 16611 * tree-ssa-coalesce.h: New. Move prototype to here. 16612 * tree-outof-ssa.h: Include tree-ssa-coalesce.h. 16613 * tree-ssa-coalesce.c: Include tree-outof-ssa.h. 16614 (gimple_can_coalesce_p): Move to... 16615 * gimple.c (gimple_can_coalesce_p): Here. 16616 166172013-10-01 Andrew MacLeod <amacleod@redhat.com> 16618 16619 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h. 16620 (dump_decl_set): Move to gimple.c. 16621 * gimple.h: Don't include tree-ssa-operands.h. 16622 (dump_decl_set): Add prototype. 16623 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified): 16624 Move to gimple-ssa.h. 16625 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def, 16626 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location, 16627 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location, 16628 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h 16629 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather 16630 than PHI_ARG_DEF. 16631 (dump_decl_set): Relocate here. 16632 * gimple-ssa.h: New file. 16633 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified): 16634 Relocate from gimple.h. 16635 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to... 16636 * tree-ssa-operands.c (swap_ssa_operands): Rename from 16637 swap_tree_operands and remove non-ssa path. 16638 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c. 16639 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use 16640 swap_ssa_operands. 16641 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction, 16642 vect_is_simple_reduction_1): Use swap_ssa_operands. 16643 * tree-flow.h: Move various prototypes to tree-phinodes.h. 16644 (enum need_phi_state): Move to tree-into-ssa.c. 16645 (struct immediate_use_iterator_d, FOR_EACH_IMM_*, 16646 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h. 16647 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h. 16648 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list, 16649 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use, 16650 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use, 16651 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use, 16652 num_imm_uses): Move to ssa-iterators.h. 16653 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h 16654 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to 16655 tree-phinodes.h. 16656 (op_iter_done, op_iter_next_def, op_iter_next_tree, 16657 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use, 16658 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand, 16659 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands, 16660 num_ssa_operands, delink_stmt_imm_use, single_phi_def, 16661 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p, 16662 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after, 16663 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt, 16664 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h. 16665 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge, 16666 gimple_phi_arg_location, gimple_phi_arg_location_from_edge, 16667 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes, 16668 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h. 16669 (set_phi_nodes): Move to tree-phinodes.h. 16670 * tree-ssa-operands.h (enum ssa_op_iter_type, 16671 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*, 16672 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h. 16673 (dump_decl_set): Remove prototype. 16674 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h. 16675 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h. 16676 (set_phi_nodes): Relocate from tree-flow-inline.h. 16677 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from 16678 tree-flow-inline.h 16679 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to 16680 include list. Temporarily add gimple.h to include list. 16681 * ssa-iterators.h: New file. 16682 (struct immediate_use_iterator_d, FOR_EACH_IMM_*, 16683 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h. 16684 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*, 16685 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): 16686 Relocate from tree-ssa-operands.h. 16687 (delink_imm_use, link_imm_use_to_list, link_imm_use, 16688 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use, 16689 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use, 16690 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use, 16691 num_imm_uses, get_use_from_ptr, get_def_from_ptr, 16692 phi_arg_index_from_use, op_iter_done, op_iter_next_def, 16693 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init, 16694 op_iter_init_use, op_iter_init_def, op_iter_init_tree, 16695 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand, 16696 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use, 16697 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef, 16698 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head, 16699 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt, 16700 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt): 16701 Relocate from tree-flow-inline.h. 16702 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H. 16703 167042013-10-01 Vidya Praveen <vidyapraveen@arm.com> 16705 16706 * aarch64-simd.md 16707 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ... 16708 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this; 16709 Insert '\t' to output template. 16710 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New. 16711 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call 16712 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead. 16713 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto. 16714 167152013-10-01 Uros Bizjak <ubizjak@gmail.com> 16716 16717 * doc/install.texi (Host/target specific installation notes for GCC): 16718 Put @anchor before @heading. 16719 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website. 16720 Use @email for email addresses. 16721 167222013-10-01 Jeff Law <law@redhat.com> 16723 16724 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to 16725 a vec. Only delete the path if we create one without successfully 16726 registering a jump thread. 16727 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector 16728 as a pointer. 16729 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used 16730 (paths): New vector of jump threading paths. 16731 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros. 16732 (THREAD_PATH): New accessor macro for the entire thread path. 16733 (lookup_redirection_data): Get intermediate and final outgoing edge 16734 from the thread path. 16735 (create_edge_and_update_destination_phis): Copy the threading path. 16736 (ssa_fix_duplicate_block_edges): Get edges and block types from the 16737 jump threading path. 16738 (ssa_redirect_edges): Get edges and block types from the jump threading 16739 path. Free the path vector. 16740 (thread_block): Get edges from the jump threading path. Look at the 16741 entire path to see if we thread to a loop exit. If we cancel a jump 16742 thread request, then free the path vector. 16743 (thread_single_edge): Get edges and block types from the jump threading 16744 path. Free the path vector. 16745 (thread_through_loop_header): Get edges and block types from the jump 16746 threading path. Free the path vector. 16747 (mark_threaded_blocks): Iterate over the vector of paths and store 16748 the path on the appropriate edge. Get edges and block types from the 16749 jump threading path. 16750 (mark_threaded_blocks): Get edges and block types from the jump 16751 threading path. Free the path vector. 16752 (thread_through_all_blocks): Use the vector of paths rather than 16753 a vector of 3-edge sets. 16754 (register_jump_thread): Accept pointer to a path vector rather 16755 than the path vector itself. Store the path vector for later use. 16756 Simplify. 16757 167582013-10-01 Jakub Jelinek <jakub@redhat.com> 16759 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 16760 16761 PR target/58574 16762 * config/s390/s390.c (s390_split_branches): Modify check for table 16763 jump insns. 16764 (s390_chunkify_start): Rearrange table jump insn check in order to 16765 deal with compare and branch insns correctly. 16766 167672013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org> 16768 16769 PR target/58578 16770 Revert 16771 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com> 16772 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into 16773 define_insn_and_split. 16774 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise. 16775 (shiftsi3_compare): New pattern. 16776 (rrx): New pattern. 16777 * config/arm/unspecs.md (UNSPEC_RRX): New. 16778 167792013-10-01 Alan Modra <amodra@gmail.com> 16780 16781 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special 16782 casing inout operands. 16783 167842013-10-01 Richard Biener <rguenther@suse.de> 16785 16786 PR tree-optimization/58553 16787 * tree-loop-distribution.c (struct partition_s): Add niter member. 16788 (classify_partition): Populate niter member for the partition 16789 and properly identify whether the relevant store happens before 16790 or after the loop exit. 16791 (generate_memset_builtin): Use niter member from the partition. 16792 (generate_memcpy_builtin): Likewise. 16793 167942013-09-30 Richard Sandiford <rdsandiford@googlemail.com> 16795 16796 * vec.h (vec_prefix, vec): Prefix member names with "m_". 16797 * vec.c (vec_prefix::calculate_allocation): Update accordingly. 16798 167992013-09-30 Richard Sandiford <rdsandiford@googlemail.com> 16800 16801 * basic-block.h (edge_list): Prefix member names with "m_". 16802 * context.h (context): Likewise. 16803 * domwalk.h (dom_walker): Likewise. 16804 * gengtype-state.c (s_expr_writer, state_writer): Likewise. 16805 * graphite-sese-to-poly.c (sese_dom_walker): Likewise. 16806 * hash-table.h (hash_table): Likewise. 16807 * machmode.h (bit_field_mode_iterator): Likewise. 16808 * pass_manager.h (pass_list): Likewise. 16809 * tree-into-ssa.c (mark_def_dom_walker): Likewise. 16810 * tree-pass.h (pass_data): Likewise. 16811 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise. 16812 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise, 16813 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise. 16814 * asan.c (pass_data_asan): Update accordingly. 16815 * cfganal.c (control_dependences::find_control_dependence): Likewise. 16816 (control_dependences::control_dependences): Likewise. 16817 (control_dependences::~control_dependences): Likewise. 16818 (control_dependences::~control_dependences): Likewise. 16819 (control_dependences::get_edges_dependent_on): Likewise. 16820 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise. 16821 (pass_data_remove_cgraph_callee_edges::clone): Likewise. 16822 * context.c (gcc::context::context): Likewise. 16823 * cprop.c (pass_rtl_cprop::clone): Likewise. 16824 * domwalk.c (dom_walker::walk): Likewise. 16825 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise. 16826 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise. 16827 * mode-switching.c (pass_mode_switching::clone): Likewise. 16828 * passes.c (opt_pass::opt_pass): Likewise. 16829 (pass_manager::pass_manager): Likewise. 16830 * predict.c (pass_strip_predict_hints::clone): Likewise. 16831 * recog.c (pass_data pass_data_peephole2::clone): Likewise. 16832 (pass_split_all_insns::clone): Likewise. 16833 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator): 16834 Likewise. 16835 (bit_field_mode_iterator::next_mode): Likewise. 16836 (bit_field_mode_iterator::prefer_smaller_modes): Likewise. 16837 * tree-cfg.c (pass_split_crit_edges::clone): Likewise. 16838 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise. 16839 * tree-complex.c (pass_lower_complex::clone): Likewise. 16840 * tree-eh.c (pass_cleanup_eh::clone): Likewise. 16841 * tree-object-size.c (pass_object_sizes::clone): Likewise. 16842 * tree-optimize.c (pass_fixup_cfg::clone): Likewise. 16843 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise. 16844 (pass_fold_builtins::clone): Likewise. 16845 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise. 16846 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise. 16847 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise. 16848 (pass_cd_dce::clone): Likewise. 16849 * tree-ssa-dom.c (pass_dominator::clone): Likewise. 16850 (pass_phi_only_cprop::clone): Likewise. 16851 * tree-ssa-dse.c (pass_dse::clone): Likewise. 16852 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise. 16853 * tree-ssa-loop.c (pass_lim::clone): Likewise. 16854 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise. 16855 * tree-ssa-pre.c (pass_fre::clone): Likewise. 16856 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise. 16857 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise. 16858 * tree-tailcall.c (pass_tail_recursion::clone): Likewise. 16859 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise. 16860 * tree-vrp.c (pass_vrp::clone): Likewise. 16861 * tsan.c (pass_tsan::clone): Likewise. 16862 168632013-09-30 Jakub Jelinek <jakub@redhat.com> 16864 16865 PR middle-end/58564 16866 * fold-const.c (tree_unary_nonnegative_warnv_p): Use 16867 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE. 16868 16869 PR middle-end/58564 16870 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0 16871 optimization, punt if sign_bit_p looked through any zero extension. 16872 168732013-09-30 Teresa Johnson <tejohnson@google.com> 16874 16875 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges): 16876 Update redirected out edge count in joiner case. 16877 (ssa_redirect_edges): Common the joiner and non-joiner cases 16878 so that joiner case gets profile updates. 16879 168802013-09-30 Richard Biener <rguenther@suse.de> 16881 16882 PR tree-optimization/58554 16883 * tree-loop-distribution.c (classify_partition): Require 16884 unconditionally executed stores for memcpy and memset recognition. 16885 (tree_loop_distribution): Calculate dominance info. 16886 168872013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org> 16888 16889 * config/aarch64/aarch64.h (MCOUNT_NAME): Define. 16890 (NO_PROFILE_COUNTERS): Likewise. 16891 (PROFILE_HOOK): Likewise. 16892 (FUNCTION_PROFILER): Likewise. 16893 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove. 16894 168952013-09-30 Iain Sandoe <iain@codesourcery.com> 16896 16897 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic 16898 calls and defines in TARGET_MACHO conditional. 16899 (load_macho_picbase_di): Likewise. 16900 (reload_macho_picbase): Likewise. 16901 (reload_macho_picbase_si): Likewise. 16902 (reload_macho_picbase_di): Likewise. 16903 (nonlocal_goto_receiver): Likewise. 16904 169052013-09-30 Nick Clifton <nickc@redhat.com> 16906 16907 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs 16908 that use the MSP430X ISA. 16909 (msp430_option_override): Scan -mmcu command line option for any 16910 MCU name that supports the MSP430X ISA. 16911 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known 16912 -mmcu options which enable the MSP430X ISA. 16913 169142013-09-30 Richard Biener <rguenther@suse.de> 16915 16916 PR middle-end/58532 16917 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements 16918 before looking for setjmp-like calls. 16919 169202013-09-29 Iain Sandoe <iain@codesourcery.com> 16921 16922 PR target/10901 16923 * config/darwin-protos.h (machopic_get_function_picbase): New. 16924 * config/darwin.c (machopic_get_function_picbase): New. 16925 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase 16926 label for a new func. (load_macho_picbase_di): Likewise. 16927 (reload_macho_picbase): New expand. 16928 (reload_macho_picbase_si): New insn. 16929 (reload_macho_picbase_di): New insn. 16930 (nonlocal_goto_receiver): New define and split. 16931 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC. 16932 (unspecv enum): Add UNSPECV_NLGR. 16933 169342013-09-29 Iain Sandoe <iain@codesourcery.com> 16935 16936 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure 16937 that altivec registers are correctly sized on Darwin. 16938 169392013-09-29 Iain Sandoe <iain@codesourcery.com> 16940 16941 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o, 16942 darwin-driver.o): Use COMPILE and POSTCOMPILE. 16943 * config/x-darwin (host-darwin.o): Likewise. 16944 * config/i386/x-darwin (host-i386-darwin.o): Likewise. 16945 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise. 16946 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise. 16947 169482013-09-29 Uros Bizjak <ubizjak@gmail.com> 16949 16950 * doc/invoke.texi: Fix usage of @tie{} command. 16951 169522013-09-29 Eric Botcazou <ebotcazou@adacore.com> 16953 16954 * config/sparc/sync.md: Add peephole for consecutive memory barriers. 16955 169562013-09-28 Jan Hubicka <jh@suse.cz> 16957 16958 * config/i386/x86-tune.def: Add documentation for each of the options; 16959 add whitespace. 16960 169612013-09-28 Jan Hubicka <jh@suse.cz> 16962 16963 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for 16964 generic. 16965 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise. 16966 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer. 16967 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips. 16968 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic. 16969 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic. 16970 169712013-09-28 Richard Sandiford <rdsandiford@googlemail.com> 16972 16973 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c, 16974 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c, 16975 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c, 16976 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c, 16977 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h, 16978 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c, 16979 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c, 16980 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c, 16981 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c, 16982 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c, 16983 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c, 16984 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c, 16985 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c, 16986 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c, 16987 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c, 16988 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c, 16989 gimple.h, godump.c, graphite-clast-to-gimple.c, 16990 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c, 16991 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c, 16992 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h, 16993 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c, 16994 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, 16995 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c, 16996 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c, 16997 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c, 16998 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c, 16999 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c, 17000 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c, 17001 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c, 17002 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c, 17003 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c, 17004 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c, 17005 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h, 17006 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c, 17007 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c, 17008 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h, 17009 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c, 17010 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c, 17011 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c, 17012 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c, 17013 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c, 17014 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c, 17015 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c, 17016 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c, 17017 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c, 17018 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c, 17019 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c, 17020 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c, 17021 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c, 17022 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c, 17023 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c, 17024 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c, 17025 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c, 17026 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c, 17027 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing 17028 whitespace before "(". 17029 170302013-09-28 Sandra Loosemore <sandra@codesourcery.com> 17031 17032 * expr.h (extract_bit_field): Remove packedp parameter. 17033 * expmed.c (extract_fixed_bit_field): Remove packedp parameter 17034 from forward declaration. 17035 (store_split_bit_field): Remove packedp arg from calls to 17036 extract_fixed_bit_field. 17037 (extract_bit_field_1): Remove packedp parameter and packedp 17038 argument from recursive calls and calls to extract_fixed_bit_field. 17039 (extract_bit_field): Remove packedp parameter and corresponding 17040 arg to extract_bit_field_1. 17041 (extract_fixed_bit_field): Remove packedp parameter. Remove code 17042 to issue warnings. 17043 (extract_split_bit_field): Remove packedp arg from call to 17044 extract_fixed_bit_field. 17045 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field. 17046 (copy_blkmode_from_reg): Likewise. 17047 (copy_blkmode_to_reg): Likewise. 17048 (read_complex_part): Likewise. 17049 (store_field): Likewise. 17050 (expand_expr_real_1): Likewise. 17051 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call 17052 to extract_bit_field. 17053 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust 17054 call to extract_bit_field. 17055 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust 17056 call to extract_bit_field. 17057 * doc/invoke.texi (Code Gen Options): Remove mention of warnings 17058 and special packedp behavior from -fstrict-volatile-bitfields 17059 documentation. 17060 170612013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de> 17062 17063 * lra-eliminations.c (init_elim_table): Guard value_p. 17064 170652013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com> 17066 17067 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow 17068 DFmode, DImode, and SFmode in the upper VSX registers based on the 17069 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS 17070 if -mpower8-vector. Combine -mvsx-timode handling with the rest 17071 of the VSX register handling. 17072 17073 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters. 17074 (f32_sv): Likewise. 17075 (zero_extendsidi2_lfiwzx): Add support for loading into the 17076 Altivec registers with -mpower8-vector. Use wu/wv constraints to 17077 only do VSX memory options on Altivec registers. 17078 (extendsidi2_lfiwax): Likewise. 17079 (extendsfdf2_fpr): Likewise. 17080 (mov<mode>_hardfloat, SF/SD modes): Likewise. 17081 (mov<mode>_hardfloat32, DF/DD modes): Likewise. 17082 (mov<mode>_hardfloat64, DF/DD modes): Likewise. 17083 (movdi_internal64): Likewise. 17084 170852013-09-27 Xinliang David Li <davidxl@google.com> 17086 17087 * opts.c (finish_options): Adjust parameters 17088 according to vect cost model. 17089 (common_handle_option): Set dynamic vect cost 17090 model for FDO. 17091 targhooks.c (default_add_stmt_cost): Compute stmt cost 17092 unconditionally. 17093 * tree-vect-loop.c (vect_estimate_min_profitable_iters): 17094 Use helper function. 17095 * tree-vectorizer.h (unlimited_cost_model): New function. 17096 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function. 17097 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper 17098 function. 17099 (vect_enhance_data_refs_alignment): Ditto. 17100 * flag-types.h: New enum. 17101 * common/config/i386/i386-common.c (ix86_option_init_struct): 17102 No need to initialize vect_cost_model flag. 17103 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost 17104 unconditionally. 17105 171062013-09-27 Diego Novillo <dnovillo@google.com> 17107 17108 * gimple.h (enum ssa_mode): Remove. 17109 171102013-09-27 Paulo Matos <pmatos@broadcom.com> 17111 17112 * cfgloop.h (number_of_loops): Fix typo in check for null. 17113 171142013-09-27 Jakub Jelinek <jakub@redhat.com> 17115 17116 PR middle-end/58551 17117 * tree-cfg.c (move_sese_region_to_fn): Also move loops that 17118 are children of outermost saved_cfun's loop, and set it up to 17119 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments 17120 if loop != loop0 and SESE region contains bbs that belong to loop0. 17121 171222013-09-27 Richard Sandiford <rdsandiford@googlemail.com> 17123 17124 * rtlanal.c (must_be_base_p, must_be_index_p): Delete. 17125 (binary_scale_code_p, get_base_term, get_index_term): New functions. 17126 (set_address_segment, set_address_base, set_address_index) 17127 (set_address_disp): Accept the argument unconditionally. 17128 (baseness): Remove must_be_base_p and must_be_index_p checks. 17129 (decompose_normal_address): Classify as much as possible in the 17130 main loop. 17131 171322013-09-27 Richard Sandiford <rdsandiford@googlemail.com> 17133 17134 * cse.c (count_reg_usage): Handle INT_LIST. 17135 * lra-eliminations.c (lra_eliminate_regs_1): Likewise. 17136 * reginfo.c (reg_scan_mark_refs): Likewise. 17137 * reload1.c (eliminate_regs_1): Likewise. 17138 171392013-09-27 Iain Sandoe <iain@codesourcery.com> 17140 17141 PR middle-end/58547 17142 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison 17143 signed. 17144 171452013-09-27 Richard Biener <rguenther@suse.de> 17146 17147 PR tree-optimization/58459 17148 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove 17149 restriction not propagating into loops. 17150 171512013-09-26 Florian Weimer <fw@deneb.enyo.de> 17152 17153 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete. 17154 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete. 17155 * doc/tree-ssa.texi (Walking use-def chains): Delete. 17156 171572013-09-26 Richard Biener <rguenther@suse.de> 17158 17159 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous. 17160 171612013-09-26 Richard Biener <rguenther@suse.de> 17162 17163 * alias.h (component_uses_parent_alias_set): Rename to ... 17164 (component_uses_parent_alias_set_from): ... this. 17165 * alias.c (component_uses_parent_alias_set): Rename to ... 17166 (component_uses_parent_alias_set_from): ... this and return 17167 the desired parent. 17168 (reference_alias_ptr_type_1): Use the result from 17169 component_uses_parent_alias_set_from instead of stripping 17170 components one at a time. 17171 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust. 17172 171732013-09-26 Andrew MacLeod <amacleod@redhat.com> 17174 17175 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs): 17176 Move prototypes to... 17177 * tree-ssa-ter.h: New File. Move prototypes here. 17178 * tree-flow.h (stmt_is_replaceable_p): Remove prototype. 17179 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h. 17180 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits 17181 from is_replaceable_p. 17182 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete. 17183 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p. 17184 (process_replaceable): Use ter_is_replaceable_p. 17185 (find_replaceable_in_bb): Use ter_is_replaceable_p. 17186 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use 17187 newly refactored ssa_is_replaceable_p. 17188 * cfgexpand.c: Include tree-outof-ssa.h. 17189 * ssaexpand.h: Delete. 17190 171912013-09-26 Andrew MacLeod <amacleod@redhat.com> 17192 17193 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename. 17194 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to 17195 tree-ssa.c 17196 (create_gimple_tmp): Delete. 17197 (get_expr_type, build_assign, build_type_cast): Move to... 17198 * gimple-builder.c: New File. 17199 (get_expr_type): Relocate from gimple.c. 17200 (build_assign, build_type_cast): Change to only create ssanames. 17201 * gimple.h: Move prototypes to... 17202 * gimple-builder.h: New File. Here. 17203 * tree-ssa.h: And here. 17204 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs, 17205 count_uses_and_derefs): Relocate from gimple.c. 17206 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c 17207 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs. 17208 * tree-ssa-math-opts (execute_cse_reciprocals): Use 17209 gimple_replace_ssa_lhs. 17210 * asan.c: Include gimple-builder.h. 17211 * Makefile.in: Add gimple-builder.o. 17212 172132013-09-26 Richard Biener <rguenther@suse.de> 17214 17215 * tree-ssa-live.c (var_map_base_init): Handle SSA names with 17216 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names. 17217 (loe_visit_block): Use gcc_checking_assert. 17218 * tree-ssa-coalesce.c (create_outofssa_var_map): Use 17219 gimple_assign_ssa_name_copy_p. 17220 (gimple_can_coalesce_p): Adjust according to the var_map_base_init 17221 change. 17222 172232013-09-26 David Edelsohn <dje.gcc@gmail.com> 17224 17225 * config/rs6000/t-rs6000 (rs6000.o): Remove. 17226 (rs6000-c.o): Use COMPILE and POSTCOMPILE. 17227 172282013-09-26 Richard Biener <rguenther@suse.de> 17229 17230 PR tree-optimization/58539 17231 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor 17232 the fact that debug statements are not taking part in loop-closed 17233 SSA construction. 17234 172352013-09-26 Nick Clifton <nickc@redhat.com> 17236 17237 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile 17238 time warning message. 17239 (msp430_print_operand_raw): Delete unused letter parameter. 17240 (TARGET_PRINT_OPERAND_ADDRESS): Define. 17241 (msp430_print_operand_address): New function. 17242 (msp430_print_operand): Move address printing code from here to 17243 new function. 17244 * config/msp430/msp430.md (movsipsi2): Add comment in generated 17245 assembler. 17246 (zero_extendpsisi2): Likewise. 17247 (extendpsisi2): New pattern. 17248 (andneghi3): New pattern. 17249 172502013-09-26 Yvan Roux <yvan.roux@linaro.org> 17251 17252 * config/aarch64/aarch64.opt (mlra): New option. 17253 * config/aarch64/aarch64.c (aarch64_lra_p): New function. 17254 (TARGET_LRA_P): Define. 17255 172562013-09-26 Eric Botcazou <ebotcazou@adacore.com> 17257 17258 * expr.c (expand_assignment): Remove obsolete comment. 17259 172602013-09-25 Jeff Law <law@redhat.com> 17261 17262 * tree-flow.h (thread_through_all_blocks): Prototype moved into 17263 tree-ssa-threadupdate.h. 17264 (register_jump_thread): Similarly. 17265 * tree-ssa-threadupdate.h: New header file. 17266 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h. 17267 * tree-vrp.c: Likewise. 17268 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h. 17269 (thread_around_empty_blocks): Change type of path vector argument to 17270 an edge,type pair from just an edge. Initialize both elements when 17271 appending to a jump threading path. Tweak references to elements 17272 appropriately. 17273 (thread_across_edge): Similarly. Release memory for the elements 17274 as needed. 17275 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h. 17276 (dump_jump_thread_path): New function broken out from 17277 register_jump_thread. 17278 (register_jump_thread): Use dump_jump_thread_path. Change type of 17279 path vector entries. Search the path for NULL edges and dump 17280 the path if one is found. Tweak the conversion of path to 3-edge 17281 form to use the block copy type information embedded in the path. 17282 172832013-09-25 Yvan Roux <yvan.roux@linaro.org> 17284 17285 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes. 17286 172872013-09-25 Yvan Roux <yvan.roux@linaro.org> 17288 Vladimir Makarov <vmakarov@redhat.com> 17289 17290 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations 17291 from the least significant bit. 17292 (strip_address_mutations): Add bitfield operations handling. 17293 (must_be_index_p): Add shifting and rotate operations handling. 17294 (set_address_base): Use must_be_base_p predicate. 17295 (set_address_index): Use must_be_index_p predicate. 17296 172972013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com> 17298 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 17299 Sergey Lega <sergey.s.lega@intel.com> 17300 Anna Tikhonova <anna.tikhonova@intel.com> 17301 Ilya Tocar <ilya.tocar@intel.com> 17302 Andrey Turetskiy <andrey.turetskiy@intel.com> 17303 Ilya Verbin <ilya.verbin@intel.com> 17304 Kirill Yukhin <kirill.yukhin@intel.com> 17305 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 17306 17307 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign): 17308 Use new names. 17309 (ix86_expand_vector_move_misalign): Support new unaligned load and 17310 stores and use new names. 17311 (CODE_FOR_sse2_storedqu): Rename to ... 17312 (CODE_FOR_sse2_storedquv16qi): ... this. 17313 (CODE_FOR_sse2_loaddqu): Rename to ... 17314 (CODE_FOR_sse2_loaddquv16qi): ... this. 17315 (CODE_FOR_avx_loaddqu256): Rename to ... 17316 (CODE_FOR_avx_loaddquv32qi): ... this. 17317 (CODE_FOR_avx_storedqu256): Rename to ... 17318 (CODE_FOR_avx_storedquv32qi): ... this. 17319 * config/i386/i386.md (fpint_logic): New. 17320 * config/i386/sse.md (VMOVE): Extend for AVX512. 17321 (VF): Ditto. 17322 (VF_128_256): New. 17323 (VF_512): Ditto. 17324 (VI_UNALIGNED_LOADSTORE): Ditto. 17325 (sse2_avx_avx512f): Ditto. 17326 (sse2_avx2): Extend for AVX512. 17327 (sse4_1_avx2): Ditto. 17328 (avx2_avx512f): New. 17329 (sse): Extend for AVX512. 17330 (sse2): Ditto. 17331 (sse4_1): Ditto. 17332 (avxsizesuffix): Ditto. 17333 (sseintvecmode): Ditto. 17334 (ssePSmode): Ditto. 17335 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto. 17336 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto. 17337 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ... 17338 (<sse2_avx_avx512f>_loaddqu<mode>): ... this. 17339 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ... 17340 (<sse2_avx_avx512f>_storedqu<mode): ... this. 17341 (<sse>_movnt<mode>): Replace constraint "x" with "v". 17342 (STORENT_MODE): Extend for AVX512. 17343 (*absneg<mode>2): Replace constraint "x" with "v". 17344 (*mul<mode>3): Ditto. 17345 (*ieee_smin<mode>3): Ditto. 17346 (*ieee_smax<mode>3): Ditto. 17347 (avx_cmp<mode>3): Replace VF with VF_128_256. 17348 (*<sse>_maskcmp<mode>3_comm): Ditto. 17349 (<sse>_maskcmp<mode>3): Ditto. 17350 (<sse>_andnot<mode>3): Extend for AVX512. 17351 (<code><mode>3, anylogic): Replace VF with VF_128_256. 17352 (<code><mode>3, fpint_logic): New. 17353 (*<code><mode>3): Extend for AVX512. 17354 (avx512flogicsuff): New. 17355 (avx512f_<logic><mode>): Ditto. 17356 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with 17357 VF_128_256. 17358 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto. 17359 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto. 17360 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto. 17361 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto. 17362 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto. 17363 (xop_vpermil2<mode>3): Ditto. 17364 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ... 17365 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this. 17366 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ... 17367 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this. 17368 173692013-09-25 Tom Tromey <tromey@redhat.com> 17370 17371 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H) 17372 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H) 17373 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H) 17374 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H) 17375 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H) 17376 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H) 17377 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H) 17378 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H) 17379 (GRAPHITE_HTAB_H): Remove. 17380 173812013-09-25 Tom Tromey <tromey@redhat.com> 17382 17383 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove. 17384 173852013-09-25 Tom Tromey <tromey@redhat.com> 17386 17387 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE. 17388 173892013-09-25 Tom Tromey <tromey@redhat.com> 17390 17391 * config/i386/t-i386 (i386.o): Remove. 17392 (i386-c.o): Use COMPILE and POSTCOMPILE. 17393 173942013-09-25 Tom Tromey <tromey@redhat.com> 17395 17396 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE. 17397 173982013-09-25 Tom Tromey <tromey@redhat.com> 17399 17400 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o) 17401 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o) 17402 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o) 17403 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o) 17404 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o) 17405 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o) 17406 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o) 17407 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o) 17408 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o) 17409 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o) 17410 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o) 17411 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o) 17412 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o) 17413 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o) 17414 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o) 17415 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o) 17416 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o) 17417 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o) 17418 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o) 17419 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o) 17420 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o) 17421 (tree-ssa-pre.o, tree-ssa-sccvn.o) 17422 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o) 17423 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o) 17424 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o) 17425 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o) 17426 (tree-ssa-loop-unswitch.o, tree-ssa-address.o) 17427 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o) 17428 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o) 17429 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o) 17430 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o) 17431 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o) 17432 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o) 17433 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o) 17434 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o) 17435 (graphite-clast-to-gimple.o, graphite-dependences.o) 17436 (graphite-interchange.o, graphite-poly.o) 17437 (graphite-scop-detection.o, graphite-sese-to-poly.o) 17438 (graphite-optimize-isl.o, tree-vect-loop.o) 17439 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o) 17440 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o) 17441 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o) 17442 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o) 17443 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o) 17444 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o) 17445 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o) 17446 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o) 17447 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o) 17448 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o) 17449 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o) 17450 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o) 17451 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o) 17452 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o) 17453 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o) 17454 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o) 17455 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o) 17456 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o) 17457 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o) 17458 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o) 17459 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o) 17460 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o) 17461 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o) 17462 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o) 17463 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o) 17464 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o) 17465 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o) 17466 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o) 17467 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o) 17468 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o) 17469 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o) 17470 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o) 17471 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o) 17472 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o) 17473 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o) 17474 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o) 17475 (lra-assigns.o, lra-coalesce.o, lra-constraints.o) 17476 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o) 17477 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o) 17478 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o) 17479 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o) 17480 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o) 17481 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o) 17482 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o) 17483 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o) 17484 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file)) 17485 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o) 17486 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o) 17487 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o) 17488 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o) 17489 (gcov-dump.o): Remove. 17490 (default-c.o): Use COMPILE and POSTCOMPILE. 17491 (CFLAGS-gcc.o): New variable. 17492 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE. 17493 174942013-09-25 Tom Tromey <tromey@redhat.com> 17495 17496 * Makefile.in (c-family/cppspec.o, c-family/c-common.o) 17497 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o) 17498 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o) 17499 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o) 17500 (c-family/c-pragma.o, c-family/c-pretty-print.o) 17501 (c-family/c-semantics.o, c-family/c-ada-spec.o) 17502 (c-family/array-notation-common.o, c-family/stub-objc.o) 17503 (c-family/c-ubsan.o): Remove. 17504 175052013-09-25 Tom Tromey <tromey@redhat.com> 17506 17507 * Makefile.in (C_TREE_H): Reference c/c-tree.h. 17508 175092013-09-25 Tom Tromey <tromey@redhat.com> 17510 17511 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code, 17512 to add -DENABLE_SHARED_LIBGCC. 17513 (gcc.o): Don't use subshell. 17514 175152013-09-25 Tom Tromey <tromey@redhat.com> 17516 17517 * Makefile.in (OUTPUT_OPTION): Define as "-o $@". 17518 * configure.ac: Don't invoke AM_PROG_CC_C_O. 17519 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst. 17520 * configure, config.in: Rebuild. 17521 175222013-09-25 Tom Tromey <tromey@redhat.com> 17523 17524 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base) 17525 (COMPILE, POSTCOMPILE): New variables. 17526 (.cc.o .c.o): Use COMPILE, POSTCOMPILE. 17527 (DEPFILES): New variable. 17528 Include ".Po" files. 17529 * configure.ac: Add checks for dependency checking. 17530 * configure, aclocal.m4: Regenerate. 17531 175322013-09-25 Tom Tromey <tromey@redhat.com> 17533 17534 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o. 17535 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file. 17536 175372013-09-25 Tom Tromey <tromey@redhat.com> 17538 17539 * Makefile.in (generated_files): Add options.h, 17540 target-hooks-def.h, insn-opinit.h, 17541 common/common-target-hooks-def.h, pass-instances.def, 17542 c-family/c-target-hooks-def.h. 17543 175442013-09-25 Jeff Law <law@redhat.com> 17545 17546 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather 17547 than foo[foo.length () - 1] to access last member in a vec. 17548 * tree-ssa-threadupdate.c (register_jump_thread): Similarly. 17549 175502013-09-25 Richard Biener <rguenther@suse.de> 17551 17552 PR middle-end/58521 17553 * tree.c (iterative_hash_expr): Remove MEM_REF special handling. 17554 175552013-09-25 Jan Hubicka <jh@suse.cz> 17556 17557 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency 17558 test. 17559 175602013-09-25 Marek Polacek <polacek@redhat.com> 17561 17562 PR sanitizer/58420 17563 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs 17564 when determining the type name. 17565 175662013-09-24 Oleg Endo <olegendo@gcc.gnu.org> 17567 17568 * config/sh/sh.md: Fix formatting. 17569 175702013-09-24 Xinliang David Li <davidxl@google.com> 17571 17572 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check 17573 max peel iterations parameter. 17574 * param.def: New parameter. 17575 * doc/invoke.texi: Document New parameter. 17576 175772013-09-24 Christophe Lyon <christophe.lyon@linaro.org> 17578 17579 * gimple-pretty-print.c: Various whitespace tweaks. 17580 * tree-core.h: Likewise. 17581 * tree-pretty-print.c: Likewise. 17582 * tree-ssa-alias.c: Likewise. 17583 * tree-ssa-copy.c: Likewise. 17584 * tree-ssanames.c: Likewise. 17585 * tree-ssanames.h: Likewise. 17586 * tree-vrp.c: Likewise. 17587 175882013-09-24 Alan Modra <amodra@gmail.com> 17589 17590 PR middle-end/57134 17591 PR middle-end/57586 17592 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY 17593 for output operands that disallow regs. Don't use EXPAND_WRITE on 17594 inout operands. 17595 175962013-09-24 Richard Biener <rguenther@suse.de> 17597 17598 PR middle-end/58513 17599 * tree.c (reference_alias_ptr_type): Move ... 17600 * alias.c (reference_alias_ptr_type): ... here and implement 17601 in terms of the new reference_alias_ptr_type_1. 17602 (ref_all_alias_ptr_type_p): New helper. 17603 (get_deref_alias_set_1): Drop flag_strict_aliasing here, 17604 use ref_all_alias_ptr_type_p. 17605 (get_deref_alias_set): Add flag_strict_aliasing check here. 17606 (reference_alias_ptr_type_1): New function, split out from ... 17607 (get_alias_set): ... here. 17608 (alias_ptr_types_compatible_p): New function. 17609 * alias.h (reference_alias_ptr_type): Declare. 17610 (alias_ptr_types_compatible_p): Likewise. 17611 * tree.h (reference_alias_ptr_type): Remove. 17612 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p 17613 to compare MEM_REF alias types. 17614 176152013-09-24 Richard Biener <rguenther@suse.de> 17616 17617 * tree-vrp.c (vrp_finalize): Check for SSA name presence. 17618 176192013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com> 17620 17621 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine 17622 reload helper function arrays into a single array reg_addr. 17623 (reload_fpr_gpr): Likewise. 17624 (reload_gpr_vsx): Likewise. 17625 (reload_vsx_gpr): Likewise. 17626 (struct rs6000_reg_addr): Likewise. 17627 (reg_addr): Likewise. 17628 (rs6000_debug_reg_global): Change rs6000_vector_reload, 17629 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr. 17630 (rs6000_init_hard_regno_mode_ok): Likewise. 17631 (rs6000_secondary_reload_direct_move): Likewise. 17632 (rs6000_secondary_reload): Likewise. 17633 17634 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new 17635 constraints: wu, ww, and wy. Repurpose wv constraint added during 17636 power8 changes. Put wg constraint in alphabetical order. 17637 17638 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch 17639 for future work to add ISA 2.07 VSX single precision support. 17640 (-mvsx-scalar-double): Change default from -1 to 1, update 17641 documentation comment. 17642 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df. 17643 (-mupper-regs-df): New debug switch to control whether DF values 17644 can go in the traditional Altivec registers. 17645 (-mupper-regs-sf): New debug switch to control whether SF values 17646 can go in the traditional Altivec registers. 17647 17648 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww, 17649 and wy constraints. 17650 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for 17651 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df. 17652 Add new constraints, wu/ww/wy. Repurpose wv constraint. 17653 (rs6000_debug_legitimate_address_p): Print if we are running 17654 before, during, or after reload. 17655 (rs6000_secondary_reload): Add a comment. 17656 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf. 17657 17658 * config/rs6000/constraints.md (wa constraint): Sort w<x> 17659 constraints. Update documentation string. 17660 (wd constraint): Likewise. 17661 (wf constraint): Likewise. 17662 (wg constraint): Likewise. 17663 (wn constraint): Likewise. 17664 (ws constraint): Likewise. 17665 (wt constraint): Likewise. 17666 (wx constraint): Likewise. 17667 (wz constraint): Likewise. 17668 (wu constraint): New constraint for ISA 2.07 SFmode scalar 17669 instructions. 17670 (ww constraint): Likewise. 17671 (wy constraint): Likewise. 17672 (wv constraint): Repurpose ISA 2.07 constraint that we did not use 17673 in the previous submissions. 17674 * doc/md.texi (PowerPC and IBM RS6000): Likewise. 17675 176762013-09-23 Richard Sandiford <rdsandiford@googlemail.com> 17677 17678 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used. 17679 (REG_BR_PROB): Say that the probability is stored in an int_list. 17680 * reg-notes.def: Update commentary to mention INT_LIST. 17681 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments. 17682 (INT_LIST): New rtx. 17683 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare. 17684 * rtlanal.c (int_reg_note_p): New function. 17685 (alloc_reg_note): Assert that the note does not have an int argument. 17686 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions. 17687 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx. 17688 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST 17689 rather than an INSN_LIST. Handle INT_LIST. 17690 * ifcvt.c (cond_exec_process_insns): Take the probability as an int 17691 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note. 17692 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values. 17693 Manipulate them as ints rather than rtxes. 17694 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes. 17695 * regmove.c (copy_src_to_dest): Likewise. 17696 * sched-vis.c (print_insn_with_notes): Handle INT_LIST. 17697 17698 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment 17699 into the cases that need it. 17700 * config/arm/arm.c (arm_unwind_emit): Likewise. 17701 17702 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB. 17703 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise. 17704 * loop-doloop.c (add_test, doloop_modify): Likewise. 17705 * loop-unswitch.c (compare_and_jump_seq): Likewise. 17706 * optabs.c (emit_cmp_and_jump_insn_1): Likewise. 17707 * predict.c (combine_predictions_for_insn): Likewise. 17708 * print-rtl.c (print_rtx): Handle INT_LIST. 17709 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise. 17710 * config/alpha/alpha.c (emit_unlikely_jump): Likewise. 17711 * config/arm/arm.c (emit_unlikely_jump): Likewise. 17712 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise. 17713 (ix86_split_fp_branch, predict_jump): Likewise. 17714 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise. 17715 * config/sh/sh.c (expand_cbranchsi4): Likewise. 17716 * config/spu/spu.c (ea_load_store_inline): Likewise. 17717 17718 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the 17719 value of a REG_BR_PROB note. 17720 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. 17721 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise. 17722 * emit-rtl.c (try_split): Likewise. 17723 * predict.c (br_prob_note_reliable_p): Likewise. 17724 (invert_br_probabilities, combine_predictions_for_insn): Likewise. 17725 * reorg.c (mostly_true_jump): Likewise. 17726 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise. 17727 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise. 17728 * config/i386/i386.c (ix86_print_operand): Likewise. 17729 * config/ia64/ia64.c (ia64_print_operand): Likewise. 17730 * config/mmix/mmix.c (mmix_print_operand): Likewise. 17731 * config/rs6000/rs6000.c (output_cbranch): Likewise. 17732 * config/s390/s390.c (s390_expand_tbegin): Likewise. 17733 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise. 17734 * config/sparc/sparc.c (output_cbranch): Likewise. 17735 * config/spu/spu.c (get_branch_target): Likewise. 17736 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise. 17737 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise. 17738 177392013-09-23 Jan Hubicka <jh@suse.cz> 17740 17741 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check 17742 for ipa-devirt. 17743 * ipa-utils.h (possible_polymorphic_call_target_p): New function. 17744 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant 17745 of external calls 17746 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h 17747 (gimple_fold_call): Dump inconsistent devirtualizations; add 17748 sanity check for type based devirtualizations. 17749 * ipa-prop.c: Include ipa-utils.h 17750 (ipa_intraprocedural_devirtualization): Add sanity check. 17751 (try_make_edge_direct_virtual_call): Likewise. 17752 177532013-09-23 Eric Botcazou <ebotcazou@adacore.com> 17754 17755 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy 17756 assignment statements. 17757 177582013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org> 17759 17760 * gimple-pretty-print.c (dump_ssaname_info): New function. 17761 (dump_gimple_phi): Call it. 17762 (pp_gimple_stmt_1): Likewise. 17763 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field. 17764 (range_info_def): Declare. 17765 * tree-pretty-print.c (pp_double_int): New function. 17766 (dump_generic_node): Call it. 17767 * tree-pretty-print.h (pp_double_int): Declare. 17768 * tree-ssa-alias.c (dump_alias_info): Check pointer type. 17769 * tree-ssanames.h (range_info_def): New structure. 17770 (value_range_type): Move definition here. 17771 (set_range_info, value_range_type, duplicate_ssa_name_range_info): 17772 Declare. 17773 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at 17774 initialization. 17775 (set_range_info): New function. 17776 (get_range_info): Likewise. 17777 (duplicate_ssa_name_range_info): Likewise. 17778 (duplicate_ssa_name_fn): Check pointer type and call 17779 duplicate_ssa_name_range_info. 17780 * tree-ssa-copy.c (fini_copy_prop): Likewise. 17781 * tree-vrp.c (value_range_type): Remove definition, now in 17782 tree-ssanames.h. 17783 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs. 17784 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union. 17785 (SSA_NAME_RANGE_INFO): New macro. 17786 177872013-09-23 Richard Biener <rguenther@suse.de> 17788 17789 PR tree-optimization/58464 17790 * tree-ssa-pre.c (phi_trans_lookup): Remove. 17791 (phi_trans_add): Change to add conditionally on being not present. 17792 (phi_translate_1): Remove recursion detection here. 17793 (phi_translate): Pre-seed the cache with NULL to catch 17794 recursion here in a more generic way. 17795 (bitmap_find_leader): Adjust comment. 17796 (get_representative_for): Dump value-numbers. 17797 (create_expression_by_pieces): Likewise. 17798 (insert_into_preds_of_block): Likewise. 17799 178002013-09-23 Christian Bruel <christian.bruel@st.com> 17801 17802 PR target/58475 17803 * config/sh/sh.md (movsf_ie): Allow fpul_operand. 17804 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG. 17805 178062013-09-23 James Greenhalgh <james.greenhalgh@arm.com> 17807 17808 Revert r202780: 17809 2013-09-20 Renlin Li <renlin.li@arm.com> 17810 17811 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use 17812 plus_constant. 17813 (aarch64_expand_epilogue): Likewise. 17814 (aarch64_legitimize_reload_address): Likewise. 17815 178162013-09-22 Eric Botcazou <ebotcazou@adacore.com> 17817 17818 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to 17819 NULL_TREE before pushing them onto the vector. Likewise for labels. 17820 178212013-09-21 Eric Botcazou <ebotcazou@adacore.com> 17822 17823 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered 17824 comparison operators when -fno-trapping-math is in effect. 17825 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered 17826 comparison operators in TFmode and assert that unsupported operators 17827 cannot reach here. 17828 (ia64_print_operand): Likewise. 17829 178302013-09-21 Jan Hubicka <jh@suse.cz> 17831 17832 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer. 17833 (sse_typeless_stores): Enable for core 17834 (sse_load0_by_pxor): Likewise. 17835 (four_jump_limit): Disable for core. 17836 (pad_returns): Likewise. 17837 (avoid_vector_decode): Likewise. 17838 (fuse_cmp_and_branch): Enable for cores. 17839 * i386.c (x86_accumulate_outgoing_args): Disable for cores. 17840 178412013-09-20 John David Anglin <danglin@gcc.gnu.org> 17842 17843 PR middle-end/56791 17844 * config/pa/pa.c (pa_option_override): Disable auto increment and 17845 decrement instructions until reload is completed. 17846 17847 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define 17848 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2, 17849 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4. 17850 178512013-09-20 DJ Delorie <dj@redhat.com> 17852 Nick Clifton <nickc@redhat.com> 17853 17854 * config/rl78/rl78.c: Various whitespace and comment tweaks. 17855 (need_to_save): Save bank 0 on interrupts. 17856 (characterize_address): Strip far address wrappers. 17857 (rl78_as_legitimate_address): Likewise. 17858 (transcode_memory_rtx): Likewise. 17859 (rl78_peep_movhi_p): Disable this peephole after devirt. 17860 (rl78_propogate_register_origins): Forget all origins when a 17861 CLOBBER is seen. 17862 * config/rl78/rl78-virt.md: Various whitespace tweaks. 17863 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional 17864 peephole2's. 17865 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case. 17866 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts. 17867 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless 17868 relocating. 17869 * config/rl78/constraints.md: Various whitespace and paren tweaks. 17870 178712013-09-20 John David Anglin <danglin@gcc.gnu.org> 17872 17873 * config/pa/pa.md: In "scc" insn patterns, change output template to 17874 handle const0_rtx in reg_or_0_operand operands. 17875 178762013-09-20 Martin Husemann <martin@NetBSD.org> 17877 17878 PR target/56875 17879 * config/vax/vax.c (vax_output_int_move): Use D format specifier. 17880 * config/vax/vax.md (ashldi3, <unnamed>): Ditto. 17881 178822013-09-20 Richard Biener <rguenther@suse.de> 17883 17884 PR middle-end/58484 17885 * tree-scalar-evolution.c (struct scev_info_str): Shrink by 17886 remembering SSA name version and block index. 17887 (new_scev_info_str): Adjust. 17888 (hash_scev_info): Likewise. Also hash the block index. 17889 (eq_scev_info): Adjust. 17890 (find_var_scev_info): Likewise. 17891 (struct instantiate_cache_entry): Remove. 17892 (struct instantiate_cache_type): Use a htab to map name, block 17893 to chrec. 17894 (instantiate_cache_type::~instantiate_cache_type): Adjust. 17895 (get_instantiated_value_entry): Likewise. 17896 (hash_idx_scev_info, eq_idx_scev_info): New functions. 17897 (instantiate_scev_name): Adjust. 17898 178992013-09-20 Jeff Law <law@redhat.com> 17900 17901 * tree-ssa-dom.c (record_temporary_equivalences): Add comment. 17902 179032013-09-20 Yufeng Zhang <yufeng.zhang@arm.com> 17904 17905 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): 17906 Call aarch64_simd_expand_args to update op[argc]. 17907 179082013-09-20 Basile Starynkevitch <basile@starynkevitch.net> 17909 17910 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside 17911 plugin argument. 17912 179132013-09-20 Basile Starynkevitch <basile@starynkevitch.net> 17914 17915 * gengtype.c (file_rules): Added rule for *.cc files. 17916 (get_output_file_with_visibility): Give fatal message when no 17917 rules found. 17918 179192013-09-20 Renlin Li <renlin.li@arm.com> 17920 17921 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant. 17922 (aarch64_expand_epilogue): Likewise. 17923 (aarch64_legitimize_reload_address): Likewise. 17924 179252013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de> 17926 17927 PR middle-end/57748 17928 * expr.c (expand_assignment): Remove misalignp code path. 17929 179302013-09-20 Marek Polacek <polacek@redhat.com> 17931 17932 PR sanitizer/58413 17933 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of 17934 TYPE_PRECISION. Add asserts. 17935 179362013-09-20 Richard Biener <rguenther@suse.de> 17937 17938 PR tree-optimization/58453 17939 * tree-loop-distribution.c (distribute_loop): Apply the cost 17940 model for -ftree-loop-distribute-patterns, too. 17941 179422013-09-20 Richard Biener <rguenther@suse.de> 17943 17944 PR middle-end/58473 17945 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert, 17946 make type comparison less strict. 17947 179482013-09-20 Alan Modra <amodra@gmail.com> 17949 17950 * configure: Regenerate. 17951 * aclocal.m4: Regenerate. 17952 179532013-09-20 Marek Polacek <polacek@redhat.com> 17954 17955 PR other/58467 17956 * doc/extend.texi: Document that attribute used is meant to be used 17957 on variables with static storage duration. 17958 179592013-09-19 Jakub Jelinek <jakub@redhat.com> 17960 17961 PR tree-optimization/58472 17962 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For 17963 simd_lane_access set inv_p = false. 17964 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on 17965 the simduid magic VAR_DECL. 17966 179672013-09-19 Jan Hubicka <jh@suse.cz> 17968 17969 * i386.c (generic_memcpy, generic_memset): Fix 32bit template. 17970 179712013-09-17 Jeff Law <law@redhat.com> 17972 17973 * tree-ssa-dom.c (record_temporary_equivalences): New function 17974 split out of dom_opt_dom_walker::after_dom_children. 17975 (dom_opt_dom_walker::thread_across_edge): Move common code 17976 in here from dom_opt_dom_walker::after_dom_children. 17977 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions. 17978 179792013-09-19 Jan Hubicka <jh@suse.cz> 17980 17981 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove. 17982 (TARGET_GENERIC): Use PROCESOR_GENERIC 17983 (enum processor_type): Unify generic32 and 64. 17984 * i386.md (cpu): Likewise. 17985 * x86-tune.def (use_leave): Enable for generic32. 17986 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise. 17987 * athlon.md: Change generic64 to generic in all occurences. 17988 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32. 17989 (ix86_target_macros_internal): Likewise. 17990 * driver-i386.c (host_detect_local_cpu): Likewise. 17991 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename 17992 to .. 17993 (generic_memcpy, generic_memset, generic_cost): This one. 17994 (generic32_memcpy, generic32_memset, generic32_cost): Remove. 17995 (m_GENERIC32, m_GENERIC64): Remove. 17996 (m_GENERIC): Turn into one flag. 17997 (processor_target): Unify generic tunnings. 17998 (ix86_option_override_internal): Replace generic32/64 by generic. 17999 (ix86_issue_rate): Likewise. 18000 (ix86_adjust_cost): Likewise. 18001 180022013-09-19 Jan Hubicka <jh@suse.cz> 18003 18004 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read 18005 of speculative flag. 18006 180072013-09-19 Jakub Jelinek <jakub@redhat.com> 18008 18009 * omp-low.c (expand_omp_sections): Always pass len - 1 to 18010 GOMP_sections_start, even if !exit_reachable. 18011 180122013-09-18 Vladimir Makarov <vmakarov@redhat.com> 18013 18014 * lra-constraints.c (need_for_all_save_p): Use macro 18015 HARD_REGNO_CALL_PART_CLOBBERED. 18016 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to 18017 set up pseudo conflict hard regs. 18018 180192013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com> 18020 18021 PR target/58452 18022 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory 18023 operands. 18024 180252013-09-18 Vladimir Makarov <vmakarov@redhat.com> 18026 18027 PR rtl-optimization/58438 18028 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop. 18029 * lra-constraints.c (undo_optional_reloads): Keep optional reloads 18030 from previous subpasses. 18031 180322013-09-18 Richard Earnshaw <rearnsha@arm.com> 18033 18034 * arm.c (arm_get_frame_offsets): Validate architecture supports 18035 LDRD/STRD before accepting the tuning preference. 18036 (arm_expand_prologue): Likewise. 18037 (arm_expand_epilogue): Likewise. 18038 180392013-09-18 Richard Biener <rguenther@suse.de> 18040 18041 PR tree-optimization/58417 18042 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not 18043 have chrecs with symbols defined in the loop as operands. 18044 (chrec_fold_multiply): Likewise. 18045 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate 18046 parameters before folding binary operations. 18047 (struct instantiate_cache_entry_hasher): Remove. 18048 (struct instantiate_cache_type): Use a pointer-map. 18049 (instantiate_cache_type::instantiate_cache_type): New function. 18050 (instantiate_cache_type::get): Likewise. 18051 (instantiate_cache_type::set): Likewise. 18052 (instantiate_cache_type::~instantiate_cache_type): Adjust. 18053 (get_instantiated_value_entry): Likewise. 18054 (global_cache): New global. 18055 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary, 18056 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3, 18057 instantiate_scev_2, instantiate_scev_1): Do not pass along cache. 18058 (instantiate_scev_name): Adjust. 18059 (instantiate_scev): Construct global instead of local cache. 18060 (resolve_mixers): Likewise. 18061 180622013-09-18 Daniel Morris <danielm@ecoscentric.com> 18063 Paolo Carlini <paolo.carlini@oracle.com> 18064 18065 PR c++/58458 18066 * doc/implement-cxx.texi: Fix references to the C++ standards. 18067 180682013-09-18 Jakub Jelinek <jakub@redhat.com> 18069 18070 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES. 18071 * tree-vect-data-refs.c (vect_analyze_data_refs): For 18072 simd_lane_access drs, update also DR_ALIGNED_TO. 18073 180742013-09-18 Marek Polacek <polacek@redhat.com> 18075 18076 PR sanitizer/58411 18077 * doc/extend.texi: Document no_sanitize_undefined attribute. 18078 * builtins.c (fold_builtin_0): Don't sanitize function if it has the 18079 no_sanitize_undefined attribute. 18080 180812013-09-18 Nick Clifton <nickc@redhat.com> 18082 18083 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler. 18084 (ASM_DECLARE_FUNCTION_NAME): Define. 18085 180862013-09-17 Trevor Saunders <tsaunders@mozilla.com> 18087 18088 * compare-elim.c (find_comparison_dom_walker): New class 18089 (find_comparisons_in_bb): Rename to 18090 find_comparison_dom_walker::before_dom_children 18091 (find_comparisons): Adjust 18092 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and 18093 adjust. 18094 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove 18095 * domwalk.h (dom_walk_data): Convert it To a class dom_walker. 18096 (init_walk_dominator_tree): Remove declaration. 18097 (fini_walk_dominator_tree): Remove declaration. 18098 * fwprop.c (single_def_use_dom_walker): New class 18099 (single_def_use_enter_block): Convert to 18100 single_def_use_dom_walker::before_dom_children. 18101 (single_def_use_leave_block): Convert to 18102 single_def_use_dom_walker::after_dom_children. 18103 (build_single_def_use_links): Adjust. 18104 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New 18105 class. 18106 (find_candidates_in_block): Convert to 18107 find_candidates_dom_walker::before_dom_children. 18108 (execute_strength_reduction): Adjust. 18109 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove. 18110 (sese_dom_walker): New class. 18111 (sese_dom_walker::sese_dom_walker): New constructor. 18112 (sese_dom_walker::~sese_dom_walker): New destructor. 18113 (build_sese_conditions_before): Convert to 18114 sese_dom_walker::before_dom_children. 18115 (build_sese_conditions_after): Convert to 18116 sese_dom_walker::after_dom_children. 18117 (build_poly_scop): Adjust 18118 * tree-into-ssa.c (rewrite_dom_walker): New class 18119 (rewrite_enter_block): Convert to 18120 rewrite_dom_walker::before_dom_children. 18121 (rewrite_leave_block): Convert to 18122 rewrite_dom_walker::after_dom_children. 18123 (rewrite_update_dom_walker): New class. 18124 (rewrite_update_enter_block): Convert to 18125 rewrite_update_dom_walker::before_dom_children. 18126 (rewrite_update_leave_block): Convert to 18127 rewrite_update_dom_walker::after_dom_children. 18128 (rewrite_blocks, rewrite_into_ssa): Adjust. 18129 (mark_def_dom_walker): New class. 18130 (mark_def_dom_walker::mark_def_dom_walker): New constructor. 18131 (mark_def_dom_walker::~mark_def_dom_walker): New destructor. 18132 (mark_def_sites_blocks): Convert to 18133 mark_def_dom_walker::before_dom_children. 18134 (mark_def_site_blocks): Remove. 18135 * tree-ssa-dom.c (dom_opt_dom_walker): New class. 18136 (tree_ssa_dominator_optimize): Adjust. 18137 (dom_thread_across_edge): Convert to method 18138 dom_opt_dom_walker::thread_across_edge. 18139 (dom_opt_enter_block): Convert to member function 18140 dom_opt_dom_walker::before_dom_children. 18141 (dom_opt_leave_block): Convert to member function 18142 dom_opt_dom_walker::after_dom_children. 18143 * tree-ssa-dse.c (dse_dom_walker): New class. 18144 (dse_enter_block): Convert to member function 18145 dse_dom_walker::before_dom_children. 18146 (tree_ssa_dse): Adjust. 18147 * tree-ssa-loop-im.c (invariantness_dom_walker): New class. 18148 (determine_invariantness_stmt): Convert to method 18149 invariantness_dom_walker::before_dom_children. 18150 (determine_invariantness): Remove 18151 (move_computations_dom_walker): New class. 18152 (move_computations_stmt): Convert to method 18153 move_computations_dom_walker::before_dom_children. 18154 (move_computations, tree_ssa_lim): Adjust. 18155 * tree-ssa-phiopt.c (nontrapping_dom_walker): New class. 18156 (nt_init_block): Convert to method 18157 notrappping_dom_walker::before_dom_children. 18158 (nt_fini_block): Convert to method 18159 method nontrapping_dom_walker::after_dom_children. 18160 (get_non_trapping): Adjust. 18161 * tree-ssa-pre.c (eliminate_dom_walker): New class. 18162 (eliminate_bb): Convert to method 18163 eliminate_dom_walker::before_dom_children. 18164 (eliminate_leave_block): Convert to method 18165 eliminate_dom_walker::after_dom_children. 18166 (eliminate): Adjust. 18167 * tree-ssa-strlen.c (strlen_dom_walker): New class. 18168 (strlen_enter_block): Convert to method 18169 strlen_dom_walker::before_dom_children. 18170 (strlen_leave_block): Convert to method 18171 method strlen_dom_walker::after_dom_children. 18172 (tree_ssa_strlen): Adjust. 18173 * tree-ssa-uncprop.c (uncprop_dom_walker): New class. 18174 (tree_ssa_uncprop): Adjust. 18175 (uncprop_leave_block): Convert to method 18176 uncprop_dom_walker::after_dom_children. 18177 (uncprop_leave_block): Convert to method 18178 uncprop_dom_walker::before_dom_children. 18179 181802013-09-18 Bin Cheng <bin.cheng@arm.com> 18181 18182 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before 18183 branch in same basic block. Check both src and dest of the move insn. 18184 181852013-09-17 Nick Clifton <nickc@redhat.com> 18186 18187 * config/rl78/rl78-real.md (bf): New pattern. 18188 (bt): New pattern. 18189 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B. 18190 (rl78_print_operand): Do not put a # before a %B. 18191 * config/rl78/rl78.opt: Tweak doc strings. 18192 181932013-09-17 DJ Delorie <dj@redhat.com> 18194 18195 * config/rl78/constraints.md (Wcv): Allow up to $r31. 18196 * config/rl78/rl78.c (rl78_asm_file_start: Likewise. 18197 (rl78_option_override): Likewise, if -mallregs. 18198 (is_virtual_register): Likewise. 18199 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31. 18200 (REGNO_OK_FOR_BASE_P): Likewise. 18201 * config/rl78/rl78.opt (-mallregs): New. 18202 182032013-09-17 Nick Clifton <nickc@redhat.com> 18204 18205 * config/rl78/rl78.c (need_to_save): Change return type to bool. 18206 For interrupt functions: save all call clobbered registers if the 18207 interrupt handler is not a leaf function. 18208 (rl78_expand_prologue): Always recompute the frame information. 18209 For interrupt functions: only select bank 0 if one of the bank 0 18210 registers is going to be psuhed. 18211 182122013-09-17 DJ Delorie <dj@redhat.com> 18213 18214 * config/rl78/constraints.md: For each W* constraint, rename to C* 18215 and create a W* constraint that checks for an optional ES: prefix 18216 pattern also. 18217 * config/rl78/rl78.md (UNS_ES_ADDR): New. 18218 (es_addr): New. Used to wrap far addresses. 18219 * config/rl78/rl78-protos.h (rl78_es_addr): New. 18220 (rl78_es_base): New. 18221 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec" 18222 wrapped far addresses. 18223 (rl78_print_operand_1): Unwrap far addresses before processing. 18224 (rl78_lo16): Wrap far addresses in unspecs. 18225 (rl78_es_addr): New. 18226 (rl78_es_base): New. 18227 (insn_ok_now): Check for not-yet-wrapped far addresses. 18228 (transcode_memory_rtx): Properly re-wrap far addresses. 18229 182302013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de> 18231 18232 * config/sparc/t-rtems: Add leon3 multilibs. 18233 182342013-09-17 Cong Hou <congh@google.com> 18235 18236 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug 18237 when checking the dot production pattern. The type of rhs operand 18238 of multiply is now checked correctly. 18239 182402013-09-17 Jeff Law <law@redhat.com> 18241 18242 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate 18243 edge implied equivalences into successor phis. 18244 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into 18245 here from tree-ssa-threadedge.c. 18246 (mark_threaded_blocks): When threading through a joiner, if both 18247 successors of the joiner's clone reach the same block, verify the 18248 PHI arguments are equal. If not, cancel the jump threading request. 18249 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into 18250 tree-ssa-threadupdate.c 18251 (thread_across_edge): Don't check PHI argument equality when 18252 threading through joiner block here. 18253 182542013-09-17 Andrew MacLeod <amacleod@redhat.com> 18255 18256 * tree-flow.h (ssa_undefined_value_p): Remove prototype. 18257 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here. 18258 (warn_uninit, warn_uninitialized_vars, 18259 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized): 18260 Move to tree-ssa-uninit.c. 18261 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c. 18262 (has_undefined_value_p): New. Pass dependant parts of 18263 ssa_undefined_value_p. 18264 (uninit_undefined_value_p): Use has_undefined_value_p. 18265 (warn_uninit, warn_uninitialized_vars, 18266 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized): 18267 Move from tree-ssa.c. 18268 * tree-ssa.h: Adjust prototypes. 18269 182702013-09-17 Jan Hubicka <jh@suse.cz> 18271 18272 PR middle-end/58332 18273 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code. 18274 * ipa-inline.c (can_inline_edge_p): Do not downgrade 18275 FUNCTION_NOT_OPTIMIZED. 18276 * ipa-inline-analysis.c (compute_inline_parameters): Function 18277 not optimized is not inlinable unless it is alwaysinline. 18278 (inline_analyze_function): Force calls in not optimized 18279 function not inlinable. 18280 182812013-09-17 Jan Hubicka <jh@suse.cz> 18282 18283 PR middle-end/58329 18284 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias 18285 to return NULL. 18286 * ipa.c (function_and_variable_visibility): Likewise. 18287 * ipa-profile.c (ipa_profile): Likewise. 18288 182892013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de> 18290 18291 PR ipa/58398 18292 * cgraph.c (cgraph_function_body_availability): Check for ifunc 18293 attribute, and don't inline the resolver in this case. 18294 182952013-09-17 Teresa Johnson <tejohnson@google.com> 18296 18297 * coverage.c (get_coverage_counts): Add missing newline. 18298 182992013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 18300 18301 PR tree-optimization/58088 18302 * fold-const.c (mask_with_trailing_zeros): New function. 18303 (fold_binary_loc): Make sure we don't recurse infinitely 18304 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2. 18305 Use mask_with_trailing_zeros where appropriate. 18306 183072013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com> 18308 18309 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization 18310 of 'prev' var to get better distance estimation. 18311 183122013-09-17 Eric Botcazou <ebotcazou@adacore.com> 18313 18314 * tree-inline.h (struct copy_body_data): Add transform_parameter. 18315 * tree-inline.c (is_parameter_of): New predicate. 18316 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if 18317 a parameter has been remapped. 18318 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF. 18319 (optimize_inline_calls): Initialize transform_parameter. 18320 (copy_gimple_seq_and_replace_locals): Likewise. 18321 (tree_function_versioning): Likewise. 18322 (maybe_inline_call_in_expr): Likewise. 18323 183242013-09-17 Nick Clifton <nickc@redhat.com> 18325 18326 * config/msp430/msp430-protos.h: Add prototypes for new functions. 18327 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for 18328 interrupt handlers. 18329 (is_attr_func): New function. 18330 (msp430_is_interrupt_func): New function. 18331 (is_naked_func): New function. 18332 (is_reentrant_func): New function. 18333 (is_critical_func): New function. 18334 (msp430_start_function): Add annotations for function attributes. 18335 (msp430_attr): New function. 18336 (msp430_attribute_table): New. 18337 (msp430_function_section): New function. 18338 (TARGET_ASM_FUNCTION_SECTION): Define. 18339 (msp430_builtin): New enum. 18340 (msp430_init_builtins): New function. 18341 (msp430_builtin_devl): New function. 18342 (msp430_expand_builtin): New function. 18343 (TARGET_INIT_BUILTINS): Define. 18344 (TARGET_EXPAND_BUILTINS): Define. 18345 (TARGET_BUILTIN_DECL): Define. 18346 (msp430_expand_prologue): Add support for naked, interrupt, 18347 critical and reentrant functions. 18348 (msp430_expand_epilogue): Likewise. 18349 (msp430_print_operand): Handle 'O' character. 18350 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define 18351 NO_TRAMPOLINES. 18352 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT, 18353 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR. 18354 (pushm): Use a 'n' rather than an 'i' constraint. 18355 (msp_return): Add generation of the interrupt return instruction. 18356 (disable_interrupts): New pattern. 18357 (enable_interrupts): New pattern. 18358 (push_intr_state): New pattern. 18359 (pop_intr_state): New pattern. 18360 (bic_SR): New pattern. 18361 (bis_SR): New pattern. 18362 * doc/extend.texi: Document MSP430 function attributes and builtin 18363 functions. 18364 183652013-09-17 Richard Biener <rguenther@suse.de> 18366 18367 PR tree-optimization/58432 18368 * tree-loop-distribution.c (tree_loop_distribution): Also 18369 scan PHIs for outside loop uses and seed a partition from them. 18370 183712013-09-17 Bin Cheng <bin.cheng@arm.com> 18372 18373 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New. 18374 (restructure_reference): Call backtrace_base_for_ref. 18375 183762013-09-17 Alan Modra <amodra@gmail.com> 18377 18378 PR target/57589 18379 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11 18380 patch. 18381 183822013-09-16 DJ Delorie <dj@redhat.com> 18383 18384 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate 18385 vregs location for RL78/G10. 18386 (rl78_expand_prologue): Avoid SEL on G10. 18387 (rl78_expand_epilogue): Likewise. 18388 (rl78_peep_movhi_p): Can't move a constant to memory in HImode. 18389 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define 18390 __RL78_G10__ when appropriate. 18391 (ASM_SPEC): Pass -mg10 along to the assembler. 18392 * config/rl78/rl78.md (sel_rb): Disable for G10. 18393 * config/rl78/rl78.opt: Add -mg10 option. 18394 * config/rl78/t-rl78: Add -mg10 multilib. 18395 183962013-09-16 Xinliang David Li <davidxl@google.com> 18397 18398 * tree-if-conv.c (main_tree_if_conversion): Check new flag. 18399 * omp-low.c (omp_max_vf): Ditto. 18400 (expand_omp_simd): Ditto. 18401 * tree-vectorizer.c (vectorize_loops): Ditto. 18402 (gate_vect_slp): Ditto. 18403 (gate_increase_alignment): Ditto. 18404 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto. 18405 * tree-ssa-loop.c (gate_tree_vectorize): Ditto. 18406 (gate_tree_vectorize): Name change. 18407 (tree_vectorize): Ditto. 18408 (pass_vectorize::gate): Call new function. 18409 (pass_vectorize::execute): Ditto. 18410 * opts.c: O3 default setting change. 18411 (finish_options): Check new flag. 18412 * doc/invoke.texi: Document new flags. 18413 * common.opt: New flags. 18414 184152013-09-16 Andreas Schwab <schwab@linux-m68k.org> 18416 18417 * doc/tm.texi.in (Cond Exec Macros): Remove node. 18418 (Condition Code): Don't reference it. 18419 * doc/tm.texi: Regenerate. 18420 184212013-09-16 Vladimir Makarov <vmakarov@redhat.com> 18422 18423 PR middle-end/58418 18424 * lra-constraints.c (undo_optional_reloads): Consider all optional 18425 reload even if it did not get a hard reg. 18426 184272013-09-16 Teresa Johnson <tejohnson@google.com> 18428 18429 * dumpfile.c (dump_loc): Remove newline emission. 18430 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline 18431 emission to dump_printf_loc calls where missing. 18432 (vect_mark_for_runtime_alias_test): Ditto. 18433 (vect_analyze_data_ref_dependence): Ditto. 18434 (vect_analyze_data_ref_dependences): Ditto. 18435 (vect_slp_analyze_data_ref_dependence): Ditto. 18436 (vect_slp_analyze_data_ref_dependences): Ditto. 18437 (vect_compute_data_ref_alignment): Ditto. 18438 (vect_update_misalignment_for_peel): Ditto. 18439 (vect_verify_datarefs_alignment): Ditto. 18440 (vector_alignment_reachable_p): Ditto. 18441 (vect_get_data_access_cost): Ditto. 18442 (vect_enhance_data_refs_alignment): Ditto. 18443 (vect_find_same_alignment_drs): Ditto. 18444 (vect_analyze_data_refs_alignment): Ditto. 18445 (vect_analyze_group_access): Ditto. 18446 (vect_analyze_data_ref_access): Ditto. 18447 (vect_analyze_data_ref_accesses): Ditto. 18448 (vect_prune_runtime_alias_test_list): Ditto. 18449 (vect_analyze_data_refs): Ditto. 18450 (vect_create_addr_base_for_vector_ref): Ditto. 18451 (vect_create_data_ref_ptr): Ditto. 18452 (vect_grouped_store_supported): Ditto. 18453 (vect_grouped_load_supported): Ditto. 18454 * value-prof.c (check_counter): Ditto. 18455 (check_ic_target): Ditto. 18456 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto. 18457 (vect_recog_widen_mult_pattern): Ditto. 18458 (vect_recog_widen_sum_pattern): Ditto. 18459 (vect_recog_over_widening_pattern): Ditto. 18460 (vect_recog_widen_shift_pattern): Ditto. 18461 (vect_recog_rotate_pattern): Ditto. 18462 (vect_recog_vector_vector_shift_pattern): Ditto. 18463 (vect_recog_divmod_pattern): Ditto. 18464 (vect_recog_mixed_size_cond_pattern): Ditto. 18465 (vect_recog_bool_pattern): Ditto. 18466 (vect_pattern_recog_1): Ditto. 18467 (vect_pattern_recog): Ditto. 18468 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto. 18469 (vect_is_simple_iv_evolution): Ditto. 18470 (vect_analyze_scalar_cycles_1): Ditto. 18471 (vect_get_loop_niters): Ditto. 18472 (vect_analyze_loop_1): Ditto. 18473 (vect_analyze_loop_form): Ditto. 18474 (vect_analyze_loop_operations): Ditto. 18475 (vect_analyze_loop_2): Ditto. 18476 (vect_analyze_loop): Ditto. 18477 (report_vect_op): Ditto. 18478 (vect_is_slp_reduction): Ditto. 18479 (vect_is_simple_reduction_1): Ditto. 18480 (vect_get_known_peeling_cost): Ditto. 18481 (vect_estimate_min_profitable_iters): Ditto. 18482 (vect_model_reduction_cost): Ditto. 18483 (vect_model_induction_cost): Ditto. 18484 (get_initial_def_for_induction): Ditto. 18485 (vect_create_epilog_for_reduction): Ditto. 18486 (vectorizable_reduction): Ditto. 18487 (vectorizable_induction): Ditto. 18488 (vectorizable_live_operation): Ditto. 18489 (vect_loop_kill_debug_uses): Ditto. 18490 (vect_transform_loop): Ditto. 18491 * tree-vect-stmts.c (vect_mark_relevant): Ditto. 18492 (vect_stmt_relevant_p): Ditto. 18493 (process_use): Ditto. 18494 (vect_mark_stmts_to_be_vectorized): Ditto. 18495 (vect_model_simple_cost): Ditto. 18496 (vect_model_promotion_demotion_cost): Ditto. 18497 (vect_model_store_cost): Ditto. 18498 (vect_get_store_cost): Ditto. 18499 (vect_model_load_cost): Ditto. 18500 (vect_get_load_cost): Ditto. 18501 (vect_init_vector_1): Ditto. 18502 (vect_get_vec_def_for_operand): Ditto. 18503 (vect_finish_stmt_generation): Ditto. 18504 (vectorizable_call): Ditto. 18505 (vectorizable_conversion): Ditto. 18506 (vectorizable_assignment): Ditto. 18507 (vectorizable_shift): Ditto. 18508 (vectorizable_operation): Ditto. 18509 (vectorizable_store): Ditto. 18510 (vectorizable_load): Ditto. 18511 (vectorizable_condition): Ditto. 18512 (vect_analyze_stmt): Ditto. 18513 (vect_transform_stmt): Ditto. 18514 (vect_is_simple_use): Ditto. 18515 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto. 18516 (vect_can_advance_ivs_p): Ditto. 18517 (vect_update_ivs_after_vectorizer): Ditto. 18518 (vect_do_peeling_for_loop_bound): Ditto. 18519 (vect_gen_niters_for_prolog_loop): Ditto. 18520 (vect_update_inits_of_drs): Ditto. 18521 (vect_create_cond_for_alias_checks): Ditto. 18522 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto. 18523 (vect_build_slp_tree_1): Ditto. 18524 (vect_supported_load_permutation_p): Ditto. 18525 (vect_analyze_slp_instance): Ditto. 18526 (vect_analyze_slp): Ditto. 18527 (vect_make_slp_decision): Ditto. 18528 (vect_detect_hybrid_slp): Ditto. 18529 (vect_bb_vectorization_profitable_p): Ditto. 18530 (vect_slp_analyze_bb_1): Ditto. 18531 (vect_update_slp_costs_according_to_vf): Ditto. 18532 (vect_get_mask_element): Ditto. 18533 (vect_transform_slp_perm_load): Ditto. 18534 (vect_schedule_slp_instance): Ditto. 18535 (vect_schedule_slp): Ditto. 18536 (vect_slp_transform_bb): Ditto. 18537 * profile.c (read_profile_edge_counts): Ditto. 18538 (compute_branch_probabilities): Ditto. 18539 * coverage.c (get_coverage_counts): Ditto. 18540 185412013-09-16 Diego Novillo <dnovillo@google.com> 18542 18543 * tree-core.h: Add missing comment lines from refactoring of tree.h. 18544 185452013-09-16 Jan Hubicka <jh@suse.cz> 18546 18547 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept 18548 abstract functions; for static functions check the presence of body. 18549 185502013-09-16 James Greenhalgh <james.greenhalgh@arm.com> 18551 18552 * config/aarch64/aarch64-simd-builtins.def (fma): New. 18553 * config/aarch64/aarch64-simd.md 18554 (aarch64_mla_elt<mode>): New. 18555 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise. 18556 (aarch64_mls_elt<mode>): Likewise. 18557 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise. 18558 (aarch64_fma4_elt<mode>): Likewise. 18559 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise. 18560 (aarch64_fma4_elt_to_128v2df): Likewise. 18561 (aarch64_fma4_elt_to_64df): Likewise. 18562 (fnma<mode>4): Likewise. 18563 (aarch64_fnma4_elt<mode>): Likewise. 18564 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise. 18565 (aarch64_fnma4_elt_to_128v2df): Likewise. 18566 (aarch64_fnma4_elt_to_64df): Likewise. 18567 * config/aarch64/iterators.md (VDQSF): New. 18568 * config/aarch64/arm_neon.h 18569 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation. 18570 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise. 18571 185722013-09-16 James Greenhalgh <james.greenhalgh@arm.com> 18573 18574 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New. 18575 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise. 18576 (aarch64_mul3_elt_to_128df): Likewise. 18577 (aarch64_mul3_elt_to_64v2df): Likewise. 18578 * config/aarch64/iterators.md (VEL): Also handle DFmode. 18579 (VMUL): New. 18580 (VMUL_CHANGE_NLANES) Likewise. 18581 (h_con): Likewise. 18582 (f): Likewise. 18583 * config/aarch64/arm_neon.h 18584 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation. 18585 185862013-09-16 James Greenhalgh <james.greenhalgh@arm.com> 18587 18588 * config/aarch64/arm_neon.h 18589 (vcvtx_high_f32_f64): Fix parameters. 18590 185912013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de> 18592 Uros Bizjak <ubizjak@gmail.com> 18593 18594 * config/alpha.c: Include tree-ssanames.h. 18595 185962013-09-16 Richard Biener <rguenther@suse.de> 18597 18598 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd. 18599 (dot_rdg_1): Handle control_dd. 18600 (create_edge_for_control_dependence): New function. 18601 (create_rdg_edges): Add control dependences if asked for. 18602 (build_rdg): Likewise. 18603 (generate_loops_for_partition): If there are not necessary 18604 control stmts remove all their dependencies. 18605 (collect_condition_stmts, rdg_flag_loop_exits): Remove. 18606 (distribute_loop): Pass on control dependences. 18607 (tree_loop_distribution): Compute control dependences and remove 18608 restriction on number of loop nodes. 18609 186102013-09-16 Jakub Jelinek <jakub@redhat.com> 18611 18612 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early 18613 for internal calls. 18614 186152013-09-16 Richard Sandiford <rdsandiford@googlemail.com> 18616 18617 * cse.c (try_const_anchors): Punt on CC modes. 18618 186192013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de> 18620 18621 * config/vax/constraints.md (T): Add missing CONSTANT_P check. 18622 186232013-09-14 John David Anglin <danglin@gcc.gnu.org> 18624 18625 PR target/58382 18626 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC 18627 calls to word_mode. 18628 186292013-09-14 Iain Sandoe <iain@codesourcery.com> 18630 18631 PR target/48094 18632 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is 18633 seen. 18634 (darwin_objc1_section): Likewise. 18635 (darwin_file_end): Emit Image Info section when required. 18636 186372013-09-14 Jan Hubicka <jh@suse.cz> 18638 18639 * tree-into-ssa.c (gate_into_ssa): New. 18640 (pass_data_build_ssa): Use it. 18641 * cgraph.h (expand_thunk): Update prototype. 18642 * cgraphunit.c (analyze_function): Expand thunks early. 18643 (expand_thunk): Fix DECL_CONTEXT of reust_decl; 18644 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN; 18645 set lowered flag; do not add new function. 18646 (assemble_thunks_and_aliases): Update. 18647 * tree-ssa.c (gate_init_datastructures): New gate. 18648 (pass_data_init_datastructures): Use it. 18649 186502013-09-14 Iain Sandoe <iain@codesourcery.com> 18651 18652 PR target/58269 18653 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the 18654 xmm register set described in the psABI. 18655 186562013-09-13 Evgeny Gavrin <e.gavrin@samsung.com> 18657 18658 * dwarf2out.c (should_emit_struct_debug): Add check 18659 for type_decl variable is not NULL. 18660 186612013-09-13 Jacek Caban <jacek@codeweavers.com> 18662 18663 * config.gcc: Use new winnt-c.c target hooks 18664 * config/t-winnt: New file 18665 * config/winnt-c.c: New file 18666 * doc/tm.texi.in: Document new hook 18667 * doc/tm.texi: Regenerated 18668 186692013-09-13 Jan Hubicka <jh@suse.cz> 18670 18671 PR middle-end/58094 18672 * ipa-inline.c (check_callers): New function. 18673 (check_caller_edge): Remove. 18674 (want_inline_function_to_all_callers_p): Also permit alises that are 18675 called dirrectly. 18676 (inline_to_all_callers): Terminate the walk when devirtualization 18677 introduce new calls. 18678 186792013-09-13 Jan Hubicka <jh@suse.cz> 18680 18681 * ipa-inline-analysis.c (struct growth_data): Add node. 18682 (do_estimate_growth_1): Fix detection of recursion. 18683 186842013-09-13 Jakub Jelinek <jakub@redhat.com> 18685 18686 PR tree-optimization/58392 18687 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable 18688 to avoid shadowing of outer loop variable. If 18689 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops, 18690 replace_by_duplicate_decl simduid of loops that have it set and 18691 set dest_cfun->has_simduid_loops and/or 18692 dest_cfun->has_force_vect_loops. 18693 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx 18694 instead of maybe_lookup_decl. 18695 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id. 18696 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive 18697 call. Copy over force_vect and copy and remap simduid. Set 18698 cfun->has_simduid_loops and/or cfun->has_force_vect_loops. 18699 (copy_cfg_body): Remove blocks_to_copy argument. Use 18700 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops 18701 caller. Don't set cfun->has_simduid_loops and/or 18702 cfun->has_force_vect_loops here. 18703 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body 18704 caller. 18705 (expand_call_inline, tree_function_versioning): Adjust copy_body 18706 callers. 18707 187082013-09-13 Martin Jambor <mjambor@suse.cz> 18709 18710 PR bootstrap/58388 18711 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in 18712 the assert if the edge was a speculative one. 18713 187142013-09-13 Richard Biener <rguenther@suse.de> 18715 18716 * tree-data-ref.h (known_dependences_p): Move here ... 18717 * tree-loop-distribution.c (known_dependences_p): ... from here. 18718 (dump_rdg_component, debug_rdg_component): Remove. 18719 (dump_rdg): Adjust. 18720 (generate_loops_for_partition): Use gimple_uid instead of 18721 relying on matching stmt visit order. 18722 (rdg_build_partitions): Take starting stmt vector. 18723 (ldist_gen): Merge into ... 18724 (distribute_loop): ... this function. Do not compute starting 18725 vertices vector. 18726 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs. 18727 187282013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 18729 18730 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative. 18731 Set type attribute correctly. Set predicable_short_it attribute. 18732 (cmpsi_shiftsi): Remove %? from output template. 18733 187342013-09-13 Richard Biener <rguenther@suse.de> 18735 18736 * tree-loop-distribution.c (struct rdg_component, 18737 rdg_defs_used_in_other_loops_p, free_rdg_components, 18738 rdg_build_components): Remove. 18739 (stmts_from_loop): Do not record virtual PHIs. 18740 (generate_loops_for_partition): Skip virtual PHIs. 18741 (build_rdg_partition_for_component): Rename to ... 18742 (build_rdg_partition_for_vertex): ... this and adjust. 18743 (rdg_build_partitions): Take a vector of starting vertices 18744 instead of components. Remove unnecessary leftover handling. 18745 (ldist_gen): Do not build components or record other stores. 18746 (distribute_loop): Do not distribute loops containing stmts 18747 with side-effects. 18748 187492013-09-13 Christian Bruel <christian.bruel@st.com> 18750 18751 PR target/58314 18752 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads. 18753 187542013-09-13 Kai Tietz <ktietz@redhat.com> 18755 18756 * config.gcc: Separate cases for mingw and cygwin targets, 18757 and add 64-bit cygwin target case. 18758 18759 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't 18760 dll-export inline-functions. 18761 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise. 18762 187632013-09-13 Jeff Law <law@redhat.com> 18764 18765 PR middle-end/58387 18766 Revert: 18767 2013-09-06 Jeff Law <law@redhat.com> 18768 18769 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate 18770 edge implied equivalences into successor phis. 18771 187722013-09-12 DJ Delorie <dj@redhat.com> 18773 18774 * config/rl78/rl78-virt.md: Change from | to \; for asm line 18775 separators. 18776 187772013-09-12 Brooks Moses <bmoses@google.com> 18778 18779 PR driver/42955 18780 * Makefile.in: Do not install driver binaries in $(target)/bin. 18781 187822013-09-12 DJ Delorie <dj@redhat.com> 18783 18784 * config/rl78/rl78.opt (mrelax): New. 18785 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas. 18786 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld. 18787 18788 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy 18789 between SP and FP. 18790 (rl78_expand_epilogue): Likewise. 18791 187922013-09-12 Vladimir Makarov <vmakarov@redhat.com> 18793 18794 PR middle-end/58335 18795 * lra-eliminations.c (remove_reg_equal_offset_note): New. 18796 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame 18797 pointer elimination with using remove_reg_equal_offset_note. 18798 187992013-09-12 DJ Delorie <dj@redhat.com> 18800 18801 * config/msp430/: New port. 18802 * config.gcc (msp430): Added. 18803 * doc/invoke.texi: Document MSP430 options. 18804 * doc/install.texi: Document msp430-elf 18805 * doc/md.texi: Document msp430-elf 18806 * doc/contrib.texi: Document msp430-elf 18807 18808 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to 18809 PSImode. 18810 188112013-09-12 Martin Jambor <mjambor@suse.cz> 18812 18813 PR ipa/58389 18814 * ipa-prop.c (remove_described_reference): Give up if the edge in the 18815 reference descriptor is NULL. 18816 (ipa_edge_removal_hook): If owning a reference descriptor, set its 18817 edge to NULL. 18818 188192013-09-12 Andrew MacLeod <amacleod@redhat.com> 18820 18821 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c 18822 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def, 18823 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes. 18824 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name, 18825 make_temp_ssa_name): move to tree-ssanames.h 18826 * tree-ssa-alias.h: Move prototype. 18827 * tree-ssa.h: Include tree-ssanames.h. 18828 * tree-ssanames.c (FREE_SSANAMES): Move to here. 18829 * tree-ssanames.h: New. Move items from tree-flow*.h 18830 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES. 18831 188322013-09-12 Richard Biener <rguenther@suse.de> 18833 18834 PR tree-optimization/58404 18835 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also 18836 propagate non-invariant addresses into dereferences wrapped 18837 in component references. 18838 188392013-09-12 Richard Biener <rguenther@suse.de> 18840 18841 PR tree-optimization/58402 18842 * passes.def: Move pass_late_warn_uninitialized later. 18843 188442013-09-12 Andrew MacLeod <amacleod@redhat.com> 18845 18846 * tree-ssa.h: New. Move content from tree-flow.h and 18847 tree-flow-inline.h. 18848 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h. 18849 Move prototypes belonging to tree-ssa.c. 18850 * tree-flow-inline.h (redirect_edge_var_map_def, 18851 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to 18852 tree-ssa.h. 18853 * gimple.h: Adjust prototypes. 18854 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move 18855 to... 18856 * gimple.c (useless_type_conversion_p, types_compatible_p): Here. 18857 * tree.h: Move prototype to tree-ssa.h. 18858 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h. 18859 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies. 18860 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c, 18861 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c, 18862 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c, 18863 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c, 18864 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, 18865 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c, 18866 graphite-blocking.c, graphite-clast-to-gimple.c, 18867 graphite-dependences.c, graphite-interchange.c, 18868 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c, 18869 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c, 18870 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c, 18871 ipa-reference.c, ipa-split.c, ipa-utils.c, 18872 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c, 18873 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c, 18874 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c, 18875 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, 18876 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c, 18877 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c, 18878 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c, 18879 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c, 18880 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c, 18881 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c, 18882 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c, 18883 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c, 18884 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c, 18885 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c, 18886 value-prof.c, var-tracking.c, 18887 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h 18888 188892013-09-12 Richard Biener <rguenther@suse.de> 18890 18891 PR tree-optimization/58396 18892 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs. 18893 (build_rdg): Take a loop-nest parameter, fix memleaks. 18894 (distribute_loop): Compute loop-nest here and pass it to build_rdg. 18895 188962013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com> 18897 18898 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE 18899 for SLM. 18900 189012013-09-12 Cameron McInally <cameron.mcinally@nyu.edu> 18902 18903 * doc/extend.texi: Fix errors in x86 FMA builtin naming. 18904 The FMA instruction names should have a 'v' prefix. 18905 189062013-09-12 Richard Biener <rguenther@suse.de> 18907 18908 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier. 18909 (dot_rdg): Use popen instead of system in optional code. 18910 (remaining_stmts, upstream_mem_writes): Remove global bitmaps. 18911 (already_processed_vertex_p): Adjust. 18912 (has_anti_or_output_dependence, predecessor_has_mem_write, 18913 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes, 18914 rdg_flag_uses): Remove. 18915 (rdg_flag_vertex): Simplify. 18916 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and 18917 remove recursion. 18918 (build_rdg_partition_for_component): Process the first vertex 18919 of a component only. 18920 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes. 18921 189222013-09-12 Alan Modra <amodra@gmail.com> 18923 18924 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand. 18925 189262013-09-11 DJ Delorie <dj@redhat.com> 18927 Nick Clifton <nickc@redhat.com> 18928 18929 * config/rl78/predicates.md (rl78_cmp_operator_signed): New. 18930 (rl78_stack_based_mem): New. 18931 * config/rl78/constraints.md (Iv08): New. 18932 (Iv16): New. 18933 (Iv24): New. 18934 (Is09): New. 18935 (Is17): New. 18936 (Is25): New. 18937 (ISsi): New. 18938 (IShi): New. 18939 (ISqi): New. 18940 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands. 18941 (movhi): Likewise. 18942 (movsi): Change from expand to insn-and-split. 18943 (ashrsi3): Clobber AX. 18944 (lshrsi3): New. 18945 (ashlsi3): New. 18946 (cbranchsi4): New. 18947 * config/rl78/rl78.md (CC_REG): Fix. 18948 (addsi3): Allow memory and immediate operands. 18949 (addsi3_internal): Split into... 18950 (addsi3_internal_virt): ...new, and ... 18951 (addsi3_internal_real): ...new. 18952 (subsi): New. 18953 (subsi3_internal_virt): New. 18954 (subsi3_internal_real): New. 18955 (mulsi3): Add memory operand. 18956 (mulsi3_rl78): Likewise. 18957 (mulsi3_g13): Likewise. 18958 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New. 18959 (cbranchqi4_real): Add more constraint options. 18960 (cbranchhi4_real): Expand pattern. 18961 (cbranchhi4_real_signed): New. 18962 (cbranchhi4_real_inverted): New. 18963 (cbranchsi4_real_lt): New. 18964 (cbranchsi4_real_ge): New. 18965 (cbranchsi4_real_signed): New. 18966 (cbranchsi4_real): New. 18967 (peephole2): New. 18968 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for 18969 constant shifts. 18970 (lshrsi3_virt): Likewise. 18971 (ashlsi3_virt): Likewise. 18972 (cbranchqi4_virt_signed): New. 18973 (cbranchhi4_virt_signed): New. 18974 (cbranchsi4_virt): New. 18975 * config/rl78/rl78.c: Whitespace fixes throughout. 18976 (move_elim_pass): New. 18977 (pass_data_rl78_move_elim): New. 18978 (pass_rl78_move_elim): New. 18979 (make_pass_rl78_move_elim): New. 18980 (rl78_devirt_info): Run devirt earlier. 18981 (rl78_move_elim_info): New. 18982 (rl78_asm_file_start): Register it. 18983 (rl78_split_movsi): New. 18984 (rl78_as_legitimate_address): Allow virtual base registers when 18985 appropriate. 18986 (rl78_addr_space_convert): Remove spurious debug stuff. 18987 (rl78_print_operand_1): Add z,s,S,r,E modifiers. 18988 (rl78_print_operand): More cases for not printing '#'. 18989 (rl78_expand_compare): Remove most of the logic. 18990 (content_memory): New. 18991 (clear_content_memory): New. 18992 (get_content_index): New. 18993 (get_content_name): New. 18994 (display_content_memory): New. 18995 (update_content): New. 18996 (record_content): New. 18997 (already_contains): New. 18998 (insn_ok_now): Re-recog insns with virtual registers. 18999 (add_postponed_content_update): New. 19000 (process_postponed_content_update): New. 19001 (gen_and_emit_move): New. 19002 (transcode_memory_rtx): Record new location content. 19003 Use gen_and_emit_move. 19004 (force_into_acc): New. 19005 (move_to_acc): Use gen_and_emit_move. 19006 (move_from_acc): Likewise. 19007 (move_acc_to_reg): Likewise. 19008 (move_to_x): Likewise. 19009 (move_to_hl): Likewise. 19010 (move_to_de): Likewise. 19011 (rl78_alloc_physical_registers_op1): Record location content. 19012 (has_constraint): New. 19013 (rl78_alloc_physical_registers_op2): Record location content. 19014 Optimize use of HL. 19015 (rl78_alloc_physical_registers_ro1): Likewise. 19016 (rl78_alloc_physical_registers_cmp): Likewise. 19017 (rl78_alloc_physical_registers_umul): Likewise. 19018 (rl78_alloc_address_registers_macax): New. 19019 (rl78_alloc_physical_registers): Initialize and set location 19020 content memory as needed. 19021 (rl78_reorg): Make sure split2 is called. 19022 (rl78_rtx_costs): New. 19023 190242013-09-11 Richard Sandiford <rdsandiford@googlemail.com> 19025 19026 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary 19027 for (not (neg ...)) and (neg (not ...)) cases. 19028 190292013-09-11 Richard Biener <rguenther@suse.de> 19030 19031 PR middle-end/58377 19032 * passes.def: Split critical edges before late uninit warning passes. 19033 * tree-cfg.c (pass_split_crit_edges): Implement clone method. 19034 190352013-09-11 Jakub Jelinek <jakub@redhat.com> 19036 19037 PR tree-optimization/58385 19038 * fold-const.c (build_range_check): If both low and high are NULL, 19039 use omit_one_operand_loc to preserve exp side-effects. 19040 190412013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 19042 19043 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M. 19044 190452013-09-11 Richard Biener <rguenther@suse.de> 19046 19047 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex, 19048 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg, 19049 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr, 19050 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices, 19051 stmts_from_loop, known_dependences_p, build_empty_rdg, 19052 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ... 19053 * tree-loop-distribution.c: ... here. 19054 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS, 19055 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS, 19056 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type, 19057 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ... 19058 * tree-loop-distribution.c: ... here. 19059 * tree-loop-distribution.c: Include gimple-pretty-print.h. 19060 (struct partition_s): Add loops member. 19061 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex, 19062 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits, 19063 build_rdg_partition_for_component, rdg_build_partitions): Adjust. 19064 190652013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com> 19066 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 19067 Sergey Lega <sergey.s.lega@intel.com> 19068 Anna Tikhonova <anna.tikhonova@intel.com> 19069 Ilya Tocar <ilya.tocar@intel.com> 19070 Andrey Turetskiy <andrey.turetskiy@intel.com> 19071 Ilya Verbin <ilya.verbin@intel.com> 19072 Kirill Yukhin <kirill.yukhin@intel.com> 19073 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 19074 19075 * config/i386/constraints.md (k): New. 19076 (Yk): Ditto. 19077 * config/i386/i386.c (const regclass_map): Add new mask registers. 19078 (dbx_register_map): Ditto. 19079 (dbx64_register_map): Ditto. 19080 (svr4_dbx_register_map): Ditto. 19081 (ix86_conditional_register_usage): Squash mask registers if AVX512F is 19082 disabled. 19083 (ix86_preferred_reload_class): Disable constants for mask registers. 19084 (ix86_secondary_reload): Do spill of mask register using 32-bit insn. 19085 (ix86_hard_regno_mode_ok): Support new mask registers. 19086 (x86_order_regs_for_local_alloc): Ditto. 19087 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update. 19088 (FIXED_REGISTERS): Add new mask registers. 19089 (CALL_USED_REGISTERS): Ditto. 19090 (REG_ALLOC_ORDER): Ditto. 19091 (VALID_MASK_REG_MODE): New. 19092 (FIRST_MASK_REG): Ditto. 19093 (LAST_MASK_REG): Ditto. 19094 (reg_class): Add MASK_EVEX_REGS, MASK_REGS. 19095 (MAYBE_MASK_CLASS_P): New. 19096 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS. 19097 (REG_CLASS_CONTENTS): Ditto. 19098 (MASK_REGNO_P): New. 19099 (ANY_MASK_REG_P): Ditto. 19100 (HI_REGISTER_NAMES): Add new mask registers. 19101 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG, 19102 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new 19103 mask registers. 19104 (attribute "type"): Add mskmov, msklog. 19105 (attribute "length_immediate"): Support them. 19106 (attribute "memory"): Ditto. 19107 (attribute "prefix_0f"): Ditto. 19108 (*movhi_internal): Support new mask registers. 19109 (*movqi_internal): Ditto. 19110 (define_split): Split out clobber pattern is a logic 19111 insn on mask registers. 19112 (*k<logic><mode>): New. 19113 (*andhi_1): Extend to support mask regs. 19114 (*andqi_1): Extend to support mask regs. 19115 (kandn<mode>): New. 19116 (define_split): Split and-not to and and not if operands 19117 are not mask regs. 19118 (*<code><mode>_1): Separate HI mode to new pattern... 19119 (*<code>hi_1): This. 19120 (*<code>qi_1): Extend to support mask regs. 19121 (kxnor<mode>): New. 19122 (kortestzhi): Ditto. 19123 (kortestchi): Ditto. 19124 (kunpckhi): Ditto. 19125 (*one_cmpl<mode>2_1): Remove HImode and handle it... 19126 (*one_cmplhi2_1): ...Here, now with mask registers support. 19127 (*one_cmplqi2_1): Support new mask registers. 19128 (HI/QImode arithmetics splitter): Don't split if mask registers 19129 are used. 19130 (HI/QImode not splitter): Ditto. 19131 * config/i386/predicated.md (mask_reg_operand): New. 19132 (general_reg_operand): Ditto. 19133 191342013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com> 19135 19136 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options. 19137 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins. 19138 191392013-09-10 Jeff Law <law@redhat.com> 19140 19141 PR tree-optimization/58380 19142 * tree-ssa-threadupdate.c (thread_block): Recognize another case 19143 of threading through a buried loop header. 19144 19145 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct 19146 return value for single successor case. 19147 191482013-09-10 Jan Hubicka <jh@suse.cz> 19149 19150 * ipa-devirt.c (ipa_devirt): Enable with LTO. 19151 191522013-09-10 Richard Earnshaw <rearnsha@arm.com> 19153 19154 PR target/58361 19155 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to 19156 support conditional execution. 19157 (combine_vcvt_f64_<FCVTI32typename>): Likewise. 19158 191592013-09-10 Vladimir Makarov <vmakarov@redhat.com> 19160 19161 * lra.c (lra): Clear lra_optional_reload_pseudos before every 19162 constraint pass. 19163 * lra-constraints.c (curr_insn_transform): Switch on optional reloads. 19164 Check destination too to check move insn. 19165 (undo_optional_reloads): Add check that the original peudo did not 19166 changed its allocation and the optional reload was inherited on last 19167 inheritance pass. Break loop after deciding to keep optional reload. 19168 (lra_undo_inheritance): Add check that inherited pseudo still in 19169 memory. 19170 191712013-09-10 James Greenhalgh <james.greenhalgh@arm.com> 19172 19173 * config/aarch64/aarch64.md (generic_sched): New. 19174 * config/aarch64/aarch64-generic.md (load): Make conditional 19175 on generic_sched attribute. 19176 (nonload): Likewise. 19177 191782013-09-10 Jan Hubicka <jh@suse.cz> 19179 19180 * lto-cgraph.c: Include ipa-utils.h. 19181 (compute_ltrans_boundary): Also add possible targets into the boundary. 19182 191832013-09-10 Jan Hubicka <jh@suse.cz> 19184 19185 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real 19186 VAR_DECL of vtable rather than full expression. 19187 191882013-09-10 Jan Hubicka <jh@suse.cz> 19189 Paolo Carlini <paolo.carlini@oracle.com> 19190 19191 * cgraphunit.c (analyze_functions): Save input_location, set it 19192 to UNKNOWN_LOCATION and restore it at the end. 19193 191942013-09-10 Martin Jambor <mjambor@suse.cz> 19195 19196 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC 19197 represented by a thunk. 19198 191992013-09-10 Jeff Law <law@redhat.com> 19200 19201 PR tree-optimization/58343 19202 * tree-ssa-threadupdate.c (thread_block): Identify and disable 19203 jump threading requests through loop headers buried in the middle 19204 of a jump threading path. 19205 19206 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko 19207 in return value/type. 19208 192092013-09-10 Jakub Jelinek <jakub@redhat.com> 19210 19211 PR rtl-optimization/58365 19212 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P 19213 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if 19214 it differs. 19215 192162013-09-10 Richard Biener <rguenther@suse.de> 19217 19218 * tree-data-ref.h (build_rdg): Drop all parameters but loop. 19219 * tree-data-ref.c (create_rdg_vertices): Collect all data 19220 references, signal failure to the caller, use data-ref API. 19221 (build_rdg): Compute data references only once. Maintain lifetime 19222 of data references and data dependences from within RDG. 19223 (free_rdg): Free dependence relations. 19224 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code 19225 inventing extra dependences. 19226 (distribute_loop): Update for RDG API changes. 19227 192282013-09-10 Kai Tietz <ktietz@redhat.com> 19229 19230 * doc/invoke.texi (fms-extensions): Document changed 19231 behavior for ms-abi targets. 19232 * config/i386/i386.c (ix86_option_override_internal): 19233 Set default value of option -fms-extension for ms-abi targets. 19234 192352013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com> 19236 19237 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation. 19238 192392013-09-10 Alan Modra <amodra@gmail.com> 19240 19241 PR target/58330 19242 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems. 19243 192442013-09-10 Alan Modra <amodra@gmail.com> 19245 19246 * config/rs6000/predicates.md (add_cint_operand): New. 19247 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand. 19248 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset 19249 using add_cint_operand. 19250 (largetoc_high_plus_aix): Likewise. 19251 192522013-09-09 Jakub Jelinek <jakub@redhat.com> 19253 19254 PR tree-optimization/58364 19255 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on 19256 BOOLEAN_TYPE, only invert in_p and continue with arg0 if 19257 the current range can't be an unconditional true or false. 19258 192592013-09-09 James Greenhalgh <james.greenhalgh@arm.com> 19260 19261 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type. 19262 192632013-09-09 Uros Bizjak <ubizjak@gmail.com> 19264 19265 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align. 19266 192672013-09-09 Paolo Carlini <paolo.carlini@oracle.com> 19268 19269 PR c++/43452 19270 * doc/invoke.texi (-Wdelete-incomplete): Document it. 19271 192722013-09-09 Ian Bolton <ian.bolton@arm.com> 19273 19274 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return 19275 NO_REGS for immediate that can't be moved directly into FP_REGS. 19276 192772013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 19278 19279 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for 19280 comparison with negated operand. 19281 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical 19282 RTL form. 19283 192842013-09-09 Richard Biener <rguenther@suse.de> 19285 19286 PR middle-end/58326 19287 * cfgloopmanip.c (fix_bb_placements): When fixing the placement 19288 of a subloop record all its block as affecting loop-closed SSA form. 19289 192902013-09-09 Richard Sandiford <rdsandiford@googlemail.com> 19291 19292 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead 19293 of an rtx/bitpos pair. 19294 (store_fixed_bit_field): Update accordingly. 19295 192962013-09-09 Richard Sandiford <rdsandiford@googlemail.com> 19297 19298 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of 19299 GEN_INT. 19300 * builtins.c (expand_errno_check): Likewise. 19301 * dwarf2cfi.c (init_return_column_size): Likewise. 19302 * except.c (sjlj_mark_call_sites): Likewise. 19303 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise. 19304 * lra-constraints.c (emit_inc): Likewise. 19305 * ree.c (combine_set_extension): Likewise. 19306 * regmove.c (fixup_match_2): Likewise. 19307 * reload1.c (inc_for_reload): Likewise. 19308 193092013-09-09 Richard Sandiford <rdsandiford@googlemail.com> 19310 19311 * combine.c (simplify_set, expand_field_assignment, extract_left_shift) 19312 (force_to_mode, simplify_shift_const_1, simplify_comparison): 19313 Use gen_int_mode with the mode of the associated simplify_* call. 19314 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise. 19315 * expmed.c (expand_shift_1): Likewise. 19316 * function.c (instantiate_virtual_regs_in_insn): Likewise. 19317 * loop-iv.c (iv_number_of_iterations): Likewise. 19318 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise. 19319 * simplify-rtx.c (simplify_binary_operation_1): Likewise. 19320 193212013-09-09 Richard Sandiford <rdsandiford@googlemail.com> 19322 19323 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode 19324 of the associated expand_* call. 19325 (asan_emit_stack_protection): Likewise. 19326 * builtins.c (round_trampoline_addr): Likewise. 19327 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise. 19328 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod) 19329 (emit_store_flag): Likewise. 19330 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1) 19331 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1): 19332 Likewise. 19333 * function.c (instantiate_virtual_regs_in_insn): Likewise. 19334 * ifcvt.c (noce_try_store_flag_constants): Likewise. 19335 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise. 19336 * modulo-sched.c (generate_prolog_epilog): Likewise. 19337 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz) 19338 (expand_ctz, expand_ffs, expand_unop): Likewise. 19339 193402013-09-09 Richard Sandiford <rdsandiford@googlemail.com> 19341 19342 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode 19343 of the associated gen_rtx_* call. 19344 * caller-save.c (init_caller_save): Likewise. 19345 * combine.c (find_split_point, make_extraction): Likewise. 19346 (make_compound_operation): Likewise. 19347 * dwarf2out.c (mem_loc_descriptor): Likewise. 19348 * explow.c (plus_constant, probe_stack_range): Likewise. 19349 * expmed.c (expand_mult_const): Likewise. 19350 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise. 19351 * reload1.c (init_reload): Likewise. 19352 * valtrack.c (cleanup_auto_inc_dec): Likewise. 19353 * var-tracking.c (adjust_mems): Likewise. 19354 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT 19355 rather than gen_rtx_fmt_ee. 19356 193572013-09-09 Jan Hubicka <jh@suse.cz> 19358 19359 PR middle-end/58294 19360 * value-prof.c (gimple_ic): Copy also abnormal edges. 19361 193622013-09-09 Richard Sandiford <rdsandiford@googlemail.com> 19363 19364 * asan.c (asan_shadow_cst): Use gen_int_mode. 19365 193662013-09-08 Jan Hubicka <jh@suse.cz> 19367 19368 * ipa-profile.c: Add toplevel comment. 19369 (ipa_propagate_frequency_1): Be more conservative when profile is read. 19370 (contains_hot_call_p): New function. 19371 (ipa_propagate_frequency): Set frequencies based on counts when 19372 profile is read. 19373 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for 19374 profile; do not tamper with profile after inlining if it is read. 19375 193762013-09-08 Jan Hubicka <jh@suse.cz> 19377 19378 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case 19379 speculative edges. 19380 193812013-09-08 Jan Hubicka <jh@suse.cz> 19382 19383 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA 19384 summary generation. 19385 193862013-09-08 Jeff Law <law@redhat.com> 19387 19388 PR bootstrap/58340 19389 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization 19390 of 'found'. 19391 193922013-09-08 Andi Kleen <ak@linux.intel.com> 19393 19394 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000. 19395 193962013-09-08 Jan Hubicka <jh@suse.cz> 19397 19398 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update. 19399 194002013-09-08 Richard Sandiford <rdsandiford@googlemail.com> 19401 19402 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg 19403 for non-debug insns. 19404 * lra.c (new_insn_reg): Take the containing insn as a parameter. 19405 Only modify lra_reg_info[].biggest_mode if it's non-debug insn. 19406 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update 19407 accordingly. 19408 194092013-09-08 Jan Hubicka <jh@suse.cz> 19410 19411 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible 19412 targets and devirtualize to BUILT_IN_UNREACHABLE. 19413 * timevar.def (TV_IPA_UNREACHABLE): New timevar. 19414 * ipa.c (walk_polymorphic_call_targets): New function. 19415 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual 19416 functions; use the new timevar. 19417 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that 19418 was removed from the program. 19419 (record_binfo): If BINFO corresponds to an anonymous namespace, we may 19420 not consider it in the walk when its vtable is dead. 19421 (possible_polymorphic_call_targets_1): Pass anonymous flag to 19422 record_binfo. 19423 (devirt_variable_node_removal_hook): New function. 19424 (possible_polymorphic_call_targets): Also register 19425 devirt_variable_node_removal_hook. 19426 (ipa_devirt): Do not do non-speculative devirtualization. 19427 (gate_ipa_devirt): One execute if devirtualizing speculatively. 19428 194292013-09-08 Jan Hubicka <jh@suse.cz> 19430 19431 * cgraph.h (varpool_node_hook, varpool_node_hook_list, 19432 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook, 19433 varpool_remove_variable_insertion_hook): Declare. 19434 * varpool.c (varpool_node_hook_list): New structure. 19435 (first_varpool_node_removal_hook, 19436 first_varpool_variable_insertion_hook): New variables. 19437 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook, 19438 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook, 19439 varpool_remove_variable_insertion_hook, 19440 varpool_call_variable_insertion_hooks): New functions. 19441 (varpool_remove_node): Use it. 19442 194432013-09-08 Paolo Carlini <paolo.carlini@oracle.com> 19444 19445 PR c++/54941 19446 * diagnostic.c (diagnostic_build_prefix): When s.file is 19447 "<built-in>" don't output line and column numbers. 19448 194492013-09-06 Jan Hubicka <jh@suse.cz> 19450 19451 * cgraphunit.c (expand_thunk): Get body before touching arguments. 19452 * lto-streamer-out.c: Stream thunks, too. 19453 * lto-streamer-in.c (input_function): Pop cfun here 19454 (lto_read_body): Instead of here. 19455 194562013-09-06 Caroline Tice <cmtice@google.com> 19457 19458 * doc/install.texi: Add documentation for the --enable-vtable-verify 19459 and the --disable-libvtv configure options. 19460 194612013-09-06 Jeff Law <law@redhat.com> 19462 19463 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate 19464 edge implied equivalences into successor phis. 19465 194662013-09-06 Joern Rennecke <joern.rennecke@embecosm.com> 19467 19468 * resource.c (mark_referenced_resources): Handle COND_EXEC. 19469 194702013-09-06 Claudiu Zissulescu <claziss@synopsys.com> 19471 19472 * resource.c (mark_target_live_regs): Compute resources taking 19473 into account if a call is predicated or not. 19474 194752013-09-06 Eric Botcazou <ebotcazou@adacore.com> 19476 19477 * toplev.c (output_stack_usage): Be prepared for suffixes created by 19478 the compiler in the function names. 19479 194802013-09-06 Jan Hubicka <jh@suse.cz> 19481 19482 PR middle-end/58094 19483 * ipa-inline.c (has_caller_p): New function. 19484 (want_inline_function_to_all_callers_p): Use it. 19485 (sum_callers, inline_to_all_callers): Break out from ... 19486 (ipa_inline): ... here. 19487 194882013-09-06 Jan Hubicka <jh@suse.cz> 19489 19490 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid 19491 only when AVX is enabled. 19492 194932013-09-06 James Greenhalgh <james.greenhalgh@arm.com> 19494 19495 * config/aarch64/aarch64.md 19496 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type 19497 is fpsimd_<load/store>2. 19498 (load_pair<mode>): Likewise. 19499 (store_pair<mode>): Likewise. 19500 195012013-09-06 James Greenhalgh <james.greenhalgh@arm.com> 19502 19503 * config/arm/types.md (type): Add "mrs" type. 19504 * config/aarch64/aarch64.md 19505 (aarch64_load_tp_hard): Make type "mrs". 19506 * config/arm/arm.md 19507 (load_tp_hard): Make type "mrs". 19508 * config/arm/cortex-a15.md: Update with new attributes. 19509 * config/arm/cortex-a5.md: Update with new attributes. 19510 * config/arm/cortex-a53.md: Update with new attributes. 19511 * config/arm/cortex-a7.md: Update with new attributes. 19512 * config/arm/cortex-a8.md: Update with new attributes. 19513 * config/arm/cortex-a9.md: Update with new attributes. 19514 * config/arm/cortex-m4.md: Update with new attributes. 19515 * config/arm/cortex-r4.md: Update with new attributes. 19516 * config/arm/fa526.md: Update with new attributes. 19517 * config/arm/fa606te.md: Update with new attributes. 19518 * config/arm/fa626te.md: Update with new attributes. 19519 * config/arm/fa726te.md: Update with new attributes. 19520 195212013-09-06 James Greenhalgh <james.greenhalgh@arm.com> 19522 19523 * config/aarch64/aarch64.md 19524 (*movti_aarch64): Use "multiple" for type where v8type is "move2". 19525 (*movtf_aarch64): Likewise. 19526 * config/arm/arm.md 19527 (thumb1_movdi_insn): Use "multiple" for type where more than one 19528 instruction is used for a move. 19529 (*arm32_movhf): Likewise. 19530 (*thumb_movdf_insn): Likewise. 19531 195322013-09-06 James Greenhalgh <james.greenhalgh@arm.com> 19533 19534 * config/arm/types.md (type): Rename fcpys to fmov. 19535 * config/arm/vfp.md 19536 (*arm_movsi_vfp): Rename type fcpys as fmov. 19537 (*thumb2_movsi_vfp): Likewise 19538 (*movhf_vfp_neon): Likewise 19539 (*movhf_vfp): Likewise 19540 (*movsf_vfp): Likewise 19541 (*thumb2_movsf_vfp): Likewise 19542 (*movsfcc_vfp): Likewise 19543 (*thumb2_movsfcc_vfp): Likewise 19544 * config/aarch64/aarch64-simd.md 19545 (move_lo_quad_<mode>): Replace type mov_reg with fmovs. 19546 * config/aarch64/aarch64.md 19547 (*movsi_aarch64): Replace type mov_reg with fmovs. 19548 (*movdi_aarch64): Likewise 19549 (*movsf_aarch64): Likewise 19550 (*movdf_aarch64): Likewise 19551 * config/arm/arm.c 19552 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV. 19553 * config/arm/iwmmxt.md 19554 (*iwmmxt_movsi_insn): Rename type fcpys as fmov. 19555 * config/arm/arm1020e.md: Update with new attributes. 19556 * config/arm/cortex-a15-neon.md: Update with new attributes. 19557 * config/arm/cortex-a5.md: Update with new attributes. 19558 * config/arm/cortex-a53.md: Update with new attributes. 19559 * config/arm/cortex-a7.md: Update with new attributes. 19560 * config/arm/cortex-a8-neon.md: Update with new attributes. 19561 * config/arm/cortex-a9.md: Update with new attributes. 19562 * config/arm/cortex-m4-fpu.md: Update with new attributes. 19563 * config/arm/cortex-r4f.md: Update with new attributes. 19564 * config/arm/marvell-pj4.md: Update with new attributes. 19565 * config/arm/vfp11.md: Update with new attributes. 19566 195672013-09-06 James Greenhalgh <james.greenhalgh@arm.com> 19568 19569 * config/aarch64/aarch64.md 19570 (*madd<mode>): Fix type attribute. 19571 (*maddsi_uxtw): Likewise. 19572 (*msub<mode>): Likewise. 19573 (*msubsi_uxtw): Likewise. 19574 (<su_optab>maddsidi4): Likewise. 19575 (<su_optab>msubsidi4): Likewise. 19576 195772013-09-06 James Greenhalgh <james.greenhalgh@arm.com> 19578 19579 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>. 19580 * config/arm/arm.md (core_cycles): Remove fdiv. 19581 * config/arm/vfp.md: 19582 (*sqrtsf2_vfp): Update for attribute changes. 19583 (*sqrtdf2_vfp): Likewise. 19584 * config/aarch64/aarch64.md: 19585 (sqrt<mode>2): Update for attribute changes. 19586 * config/arm/arm1020e.md: Update with new attributes. 19587 * config/arm/cortex-a15-neon.md: Update with new attributes. 19588 * config/arm/cortex-a5.md: Update with new attributes. 19589 * config/arm/cortex-a53.md: Update with new attributes. 19590 * config/arm/cortex-a7.md: Update with new attributes. 19591 * config/arm/cortex-a8-neon.md: Update with new attributes. 19592 * config/arm/cortex-a9.md: Update with new attributes. 19593 * config/arm/cortex-m4-fpu.md: Update with new attributes. 19594 * config/arm/cortex-r4f.md: Update with new attributes. 19595 * config/arm/marvell-pj4.md: Update with new attributes. 19596 * config/arm/vfp11.md: Update with new attributes. 19597 195982013-09-06 James Greenhalgh <james.greenhalgh@arm.com> 19599 19600 * config/arm/types.md 19601 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f. 19602 * config/aarch64/aarch64.md 19603 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with 19604 new attributes. 19605 (fix_trunc<GPF:mode><GPI:mode>2): Likewise. 19606 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise. 19607 (float<GPI:mode><GPF:mode>2): Likewise. 19608 * config/arm/vfp.md 19609 (*truncsisf2_vfp): Update with new attributes. 19610 (*truncsidf2_vfp): Likewise. 19611 (fixuns_truncsfsi2): Likewise. 19612 (fixuns_truncdfsi2): Likewise. 19613 (*floatsisf2_vfp): Likewise. 19614 (*floatsidf2_vfp): Likewise. 19615 (floatunssisf2): Likewise. 19616 (floatunssidf2): Likewise. 19617 (*combine_vcvt_f32_<FCVTI32typename>): Likewise. 19618 (*combine_vcvt_f64_<FCVTI32typename>): Likewise. 19619 * config/arm/arm1020e.md: Update with new attributes. 19620 * config/arm/cortex-a15-neon.md: Update with new attributes. 19621 * config/arm/cortex-a5.md: Update with new attributes. 19622 * config/arm/cortex-a53.md: Update with new attributes. 19623 * config/arm/cortex-a7.md: Update with new attributes. 19624 * config/arm/cortex-a8-neon.md: Update with new attributes. 19625 * config/arm/cortex-a9.md: Update with new attributes. 19626 * config/arm/cortex-m4-fpu.md: Update with new attributes. 19627 * config/arm/cortex-r4f.md: Update with new attributes. 19628 * config/arm/marvell-pj4.md: Update with new attributes. 19629 * config/arm/vfp11.md: Update with new attributes. 19630 196312013-09-06 James Greenhalgh <james.greenhalgh@arm.com> 19632 19633 * config/aarch64/arm_neon.h 19634 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type. 19635 (vqtbx<1,2,3,4><q>_s8): Likewise. 19636 196372013-09-06 James Greenhalgh <james.greenhalgh@arm.com> 19638 19639 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types. 19640 * config/arm/arm-fixed.md: Add type attribute to all insn patterns. 19641 (add<mode>3): Add type attribute. 19642 (add<mode>3): Likewise. 19643 (usadd<mode>3): Likewise. 19644 (ssadd<mode>3): Likewise. 19645 (sub<mode>3): Likewise. 19646 (sub<mode>3): Likewise. 19647 (ussub<mode>3): Likewise. 19648 (sssub<mode>3): Likewise. 19649 (ssmulsa3): Likewise. 19650 (usmulusa3): Likewise. 19651 (arm_usatsihi): Likewise. 19652 * config/arm/vfp.md 19653 (*movdi_vfp): Add types for all instructions. 19654 (*movdi_vfp_cortexa8): Likewise. 19655 (*movhf_vfp_neon): Likewise. 19656 (*movhf_vfp): Likewise. 19657 (*movdf_vfp): Likewise. 19658 (*thumb2_movdf_vfp): Likewise. 19659 (*thumb2_movdfcc_vfp): Likewise. 19660 * config/arm/arm.md: Add type attribute to all insn patterns. 19661 (*thumb1_adddi3): Add type attribute. 19662 (*arm_adddi3): Likewise. 19663 (*adddi_sesidi_di): Likewise. 19664 (*adddi_zesidi_di): Likewise. 19665 (*thumb1_addsi3): Likewise. 19666 (addsi3_compare0): Likewise. 19667 (*addsi3_compare0_scratch): Likewise. 19668 (*compare_negsi_si): Likewise. 19669 (cmpsi2_addneg): Likewise. 19670 (*addsi3_carryin_<optab>): Likewise. 19671 (*addsi3_carryin_alt2_<optab>): Likewise. 19672 (*addsi3_carryin_clobercc_<optab>): Likewise. 19673 (*subsi3_carryin): Likewise. 19674 (*subsi3_carryin_const): Likewise. 19675 (*subsi3_carryin_compare): Likewise. 19676 (*subsi3_carryin_compare_const): Likewise. 19677 (*arm_subdi3): Likewise. 19678 (*thumb_subdi3): Likewise. 19679 (*subdi_di_zesidi): Likewise. 19680 (*subdi_di_sesidi): Likewise. 19681 (*subdi_zesidi_di): Likewise. 19682 (*subdi_sesidi_di): Likewise. 19683 (*subdi_zesidi_ze): Likewise. 19684 (thumb1_subsi3_insn): Likewise. 19685 (*arm_subsi3_insn): Likewise. 19686 (*anddi3_insn): Likewise. 19687 (*anddi_zesidi_di): Likewise. 19688 (*anddi_sesdi_di): Likewise. 19689 (*ne_zeroextracts): Likewise. 19690 (*ne_zeroextracts): Likewise. 19691 (*ite_ne_zeroextr): Likewise. 19692 (*ite_ne_zeroextr): Likewise. 19693 (*anddi_notdi_di): Likewise. 19694 (*anddi_notzesidi): Likewise. 19695 (*anddi_notsesidi): Likewise. 19696 (andsi_notsi_si): Likewise. 19697 (thumb1_bicsi3): Likewise. 19698 (*iordi3_insn): Likewise. 19699 (*iordi_zesidi_di): Likewise. 19700 (*iordi_sesidi_di): Likewise. 19701 (*thumb1_iorsi3_insn): Likewise. 19702 (*xordi3_insn): Likewise. 19703 (*xordi_zesidi_di): Likewise. 19704 (*xordi_sesidi_di): Likewise. 19705 (*arm_xorsi3): Likewise. 19706 (*andsi_iorsi3_no): Likewise. 19707 (*smax_0): Likewise. 19708 (*smax_m1): Likewise. 19709 (*arm_smax_insn): Likewise. 19710 (*smin_0): Likewise. 19711 (*arm_smin_insn): Likewise. 19712 (*arm_umaxsi3): Likewise. 19713 (*arm_uminsi3): Likewise. 19714 (*minmax_arithsi): Likewise. 19715 (*minmax_arithsi_): Likewise. 19716 (*satsi_<SAT:code>): Likewise. 19717 (arm_ashldi3_1bit): Likewise. 19718 (arm_ashrdi3_1bit): Likewise. 19719 (arm_lshrdi3_1bit): Likewise. 19720 (*arm_negdi2): Likewise. 19721 (*thumb1_negdi2): Likewise. 19722 (*arm_negsi2): Likewise. 19723 (*thumb1_negsi2): Likewise. 19724 (*negdi_extendsid): Likewise. 19725 (*negdi_zero_extend): Likewise. 19726 (*arm_abssi2): Likewise. 19727 (*thumb1_abssi2): Likewise. 19728 (*arm_neg_abssi2): Likewise. 19729 (*thumb1_neg_abss): Likewise. 19730 (one_cmpldi2): Likewise. 19731 (extend<mode>di2): Likewise. 19732 (*compareqi_eq0): Likewise. 19733 (*arm_extendhisi2addsi): Likewise. 19734 (*arm_movdi): Likewise. 19735 (*thumb1_movdi_insn): Likewise. 19736 (*arm_movt): Likewise. 19737 (*thumb1_movsi_insn): Likewise. 19738 (pic_add_dot_plus_four): Likewise. 19739 (pic_add_dot_plus_eight): Likewise. 19740 (tls_load_dot_plus_eight): Likewise. 19741 (*thumb1_movhi_insn): Likewise. 19742 (*thumb1_movsf_insn): Likewise. 19743 (*movdf_soft_insn): Likewise. 19744 (*thumb_movdf_insn): Likewise. 19745 (cbranchsi4_insn): Likewise. 19746 (cbranchsi4_scratch): Likewise. 19747 (*negated_cbranchsi4): Likewise. 19748 (*tbit_cbranch): Likewise. 19749 (*tlobits_cbranch): Likewise. 19750 (*tstsi3_cbranch): Likewise. 19751 (*cbranchne_decr1): Likewise. 19752 (*addsi3_cbranch): Likewise. 19753 (*addsi3_cbranch_scratch): Likewise. 19754 (*arm_cmpdi_insn): Likewise. 19755 (*arm_cmpdi_unsig): Likewise. 19756 (*arm_cmpdi_zero): Likewise. 19757 (*thumb_cmpdi_zero): Likewise. 19758 (*deleted_compare): Likewise. 19759 (*mov_scc): Likewise. 19760 (*mov_negscc): Likewise. 19761 (*mov_notscc): Likewise. 19762 (*cstoresi_eq0_thumb1_insn): Likewise. 19763 (cstoresi_nltu_thumb1): Likewise. 19764 (cstoresi_ltu_thu): Likewise. 19765 (thumb1_addsi3_addgeu): Likewise. 19766 (*arm_jump): Likewise. 19767 (*thumb_jump): Likewise. 19768 (*check_arch2): Likewise. 19769 (arm_casesi_internal): Likewise. 19770 (thumb1_casesi_dispatch): Likewise. 19771 (*arm_indirect_jump): Likewise. 19772 (*thumb1_indirect_jump): Likewise. 19773 (nop): Likewise. 19774 (*and_scc): Likewise. 19775 (*ior_scc): Likewise. 19776 (*compare_scc): Likewise. 19777 (*cond_move): Likewise. 19778 (*cond_arith): Likewise. 19779 (*cond_sub): Likewise. 19780 (*cmp_ite0): Likewise. 19781 (*cmp_ite1): Likewise. 19782 (*cmp_and): Likewise. 19783 (*cmp_ior): Likewise. 19784 (*ior_scc_scc): Likewise. 19785 (*ior_scc_scc_cmp): Likewise. 19786 (*and_scc_scc): Likewise. 19787 (*and_scc_scc_cmp): Likewise. 19788 (*and_scc_scc_nod): Likewise. 19789 (*negscc): Likewise. 19790 (movcond_addsi): Likewise. 19791 (movcond): Likewise. 19792 (*ifcompare_plus_move): Likewise. 19793 (*if_plus_move): Likewise. 19794 (*ifcompare_move_plus): Likewise. 19795 (*if_move_plus): Likewise. 19796 (*ifcompare_arith_arith): Likewise. 19797 (*if_arith_arith): Likewise. 19798 (*ifcompare_arith_move): Likewise. 19799 (*if_arith_move): Likewise. 19800 (*ifcompare_move_arith): Likewise. 19801 (*if_move_arith): Likewise. 19802 (*ifcompare_move_not): Likewise. 19803 (*if_move_not): Likewise. 19804 (*ifcompare_not_move): Likewise. 19805 (*if_not_move): Likewise. 19806 (*ifcompare_shift_move): Likewise. 19807 (*if_shift_move): Likewise. 19808 (*ifcompare_move_shift): Likewise. 19809 (*if_move_shift): Likewise. 19810 (*ifcompare_shift_shift): Likewise. 19811 (*ifcompare_not_arith): Likewise. 19812 (*ifcompare_arith_not): Likewise. 19813 (*if_arith_not): Likewise. 19814 (*ifcompare_neg_move): Likewise. 19815 (*if_neg_move): Likewise. 19816 (*ifcompare_move_neg): Likewise. 19817 (*if_move_neg): Likewise. 19818 (prologue_thumb1_interwork): Likewise. 19819 (*cond_move_not): Likewise. 19820 (*sign_extract_onebit): Likewise. 19821 (*not_signextract_onebit): Likewise. 19822 (stack_tie): Likewise. 19823 (align_4): Likewise. 19824 (align_8): Likewise. 19825 (consttable_end): Likewise. 19826 (consttable_1): Likewise. 19827 (consttable_2): Likewise. 19828 (consttable_4): Likewise. 19829 (consttable_8): Likewise. 19830 (consttable_16): Likewise. 19831 (*thumb1_tablejump): Likewise. 19832 (prefetch): Likewise. 19833 (force_register_use): Likewise. 19834 (thumb_eh_return): Likewise. 19835 (load_tp_hard): Likewise. 19836 (load_tp_soft): Likewise. 19837 (tlscall): Likewise. 19838 (*arm_movtas_ze): Likewise. 19839 (*arm_rev): Likewise. 19840 (*arm_revsh): Likewise. 19841 (*arm_rev16): Likewise. 19842 * config/arm/thumb2.md 19843 (*thumb2_smaxsi3): Likewise. 19844 (*thumb2_sminsi3): Likewise. 19845 (*thumb32_umaxsi3): Likewise. 19846 (*thumb2_uminsi3): Likewise. 19847 (*thumb2_negdi2): Likewise. 19848 (*thumb2_abssi2): Likewise. 19849 (*thumb2_neg_abss): Likewise. 19850 (*thumb2_movsi_insn): Likewise. 19851 (tls_load_dot_plus_four): Likewise. 19852 (*thumb2_movhi_insn): Likewise. 19853 (*thumb2_mov_scc): Likewise. 19854 (*thumb2_mov_negs): Likewise. 19855 (*thumb2_mov_negs): Likewise. 19856 (*thumb2_mov_nots): Likewise. 19857 (*thumb2_mov_nots): Likewise. 19858 (*thumb2_movsicc_): Likewise. 19859 (*thumb2_movsfcc_soft_insn): Likewise. 19860 (*thumb2_indirect_jump): Likewise. 19861 (*thumb2_and_scc): Likewise. 19862 (*thumb2_ior_scc): Likewise. 19863 (*thumb2_ior_scc_strict_it): Likewise. 19864 (*thumb2_cond_move): Likewise. 19865 (*thumb2_cond_arith): Likewise. 19866 (*thumb2_cond_ari): Likewise. 19867 (*thumb2_cond_sub): Likewise. 19868 (*thumb2_negscc): Likewise. 19869 (*thumb2_movcond): Likewise. 19870 (thumb2_casesi_internal): Likewise. 19871 (thumb2_casesi_internal_pic): Likewise. 19872 (*thumb2_alusi3_short): Likewise. 19873 (*thumb2_mov<mode>_shortim): Likewise. 19874 (*thumb2_addsi_short): Likewise. 19875 (*thumb2_subsi_short): Likewise. 19876 (thumb2_addsi3_compare0): Likewise. 19877 (*thumb2_cbz): Likewise. 19878 (*thumb2_cbnz): Likewise. 19879 (*thumb2_one_cmplsi2_short): Likewise. 19880 (*thumb2_negsi2_short): Likewise. 19881 (*orsi_notsi_si): Likewise. 19882 * config/arm/arm1020e.md: Update with new attributes. 19883 * config/arm/arm1026ejs.md: Update with new attributes. 19884 * config/arm/arm1136jfs.md: Update with new attributes. 19885 * config/arm/arm926ejs.md: Update with new attributes. 19886 * config/arm/cortex-a15.md: Update with new attributes. 19887 * config/arm/cortex-a5.md: Update with new attributes. 19888 * config/arm/cortex-a53.md: Update with new attributes. 19889 * config/arm/cortex-a7.md: Update with new attributes. 19890 * config/arm/cortex-a8.md: Update with new attributes. 19891 * config/arm/cortex-a9.md: Update with new attributes. 19892 * config/arm/cortex-m4.md: Update with new attributes. 19893 * config/arm/cortex-r4.md: Update with new attributes. 19894 * config/arm/fa526.md: Update with new attributes. 19895 * config/arm/fa606te.md: Update with new attributes. 19896 * config/arm/fa626te.md: Update with new attributes. 19897 * config/arm/fa726te.md: Update with new attributes. 19898 198992013-09-06 James Greenhalgh <james.greenhalgh@arm.com> 19900 19901 * config/aarch64/aarch64-simd.md 19902 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use 19903 <vwx> iterator to ensure correct register choice. 19904 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise. 19905 (aarch64_sqdmull_n<mode>): Likewise. 19906 (aarch64_sqdmull2_n<mode>_internal): Likewise. 19907 * config/aarch64/arm_neon.h 19908 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector. 19909 (vml<as><q>_n_<su>16): Likewise. 19910 (vml<as>l_high_lane<q>_<su>16): Likewise. 19911 (vml<as>l_high_n_<su>16): Likewise. 19912 (vml<as>l_lane<q>_<su>16): Likewise. 19913 (vml<as>l_n_<su>16): Likewise. 19914 (vmul<q>_lane<q>_<su>16): Likewise. 19915 (vmul<q>_n_<su>16): Likewise. 19916 (vmull_lane<q>_<su>16): Likewise. 19917 (vmull_n_<su>16): Likewise. 19918 (vmull_high_lane<q>_<su>16): Likewise. 19919 (vmull_high_n_<su>16): Likewise. 19920 (vqrdmulh<q>_n_s16): Likewise. 19921 199222013-09-06 Tejas Belagod <tejas.belagod@arm.com> 19923 19924 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to 19925 have the correct lane parameter. 19926 199272013-09-06 Richard Biener <rguenther@suse.de> 19928 19929 * cfganal.c (control_dependences::~control_dependences): 19930 Properly free all of the vector. 19931 199322013-09-06 Kirill Yukhin <kirill.yukhin@intel.com> 19933 19934 PR target/58269 19935 * config/i386/i386.c (ix86_conditional_register_usage): 19936 Proper initialize extended SSE registers. 19937 199382013-09-06 Jan Hubicka <jh@suse.cz> 19939 19940 PR tree-optimization/58311 19941 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing. 19942 199432013-09-06 Jan Hubicka <jh@suse.cz> 19944 19945 * Makefile.in (tree-sra.o): Update dependencies. 19946 * tree-sra.c: Include ipa-utils.h 19947 (scan_function): Use recursive_call_p. 19948 (has_caller_p): New function. 19949 (cgraph_for_node_and_aliases): Count also callers of aliases. 19950 199512013-09-06 Jan Hubicka <jh@suse.cz> 19952 19953 PR middle-end/58094 19954 * cgraph.h (symtab_semantically_equivalent_p): Declare. 19955 * tree-tailcall.c: Include ipa-utils.h. 19956 (find_tail_calls): Use it. 19957 * ipa-pure-const.c (check_call): Likewise. 19958 * ipa-utils.c (recursive_call_p): New function. 19959 * ipa-utils.h (recursive_call_p): Dclare. 19960 * symtab.c (symtab_nonoverwritable_alias): Fix formatting. 19961 (symtab_semantically_equivalent_p): New function. 19962 * Makefile.in (tree-tailcall.o): Update dependencies. 19963 199642013-09-06 Eric Botcazou <ebotcazou@adacore.com> 19965 19966 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the 19967 non-inlinable part. 19968 199692013-09-06 Richard Biener <rguenther@suse.de> 19970 19971 * lto-streamer.h (lto_global_var_decls): Remove. 19972 * Makefile.in (OBJS): Remove lto-symtab.o. 19973 (lto-symtab.o): Remove. 19974 (GTFILES): Remove lto-symtab.c 19975 * lto-symtab.c: Move to lto/ 19976 199772013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 19978 19979 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC) 19980 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT) 19981 (UNSPEC_FPINT_RINT): New constant definitions. 19982 (FPINT, fpint_name, fpint_roundingmode): New integer iterator 19983 definition with 2 attributes. 19984 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2") 19985 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern 19986 definitions. 19987 199882013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 19989 19990 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute. 19991 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later. 19992 Set the mnemonic attribute to "bcr_flush". Set the "z196prop" 19993 attribute to "z196_alone". 19994 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and 19995 "zEC12_simple". 19996 199972013-09-06 Richard Biener <rguenther@suse.de> 19998 19999 * basic-block.h (class control_dependences): New. 20000 * tree-ssa-dce.c (control_dependence_map): Remove. 20001 (cd): New global. 20002 (EXECUTE_IF_CONTROL_DEPENDENT): Remove. 20003 (set_control_dependence_map_bit, clear_control_dependence_bitmap, 20004 find_pdom, find_control_dependence, find_all_control_dependences): 20005 Move to cfganal.c. 20006 (mark_control_dependent_edges_necessary, 20007 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init, 20008 tree_dce_done, perform_tree_ssa_dce): Adjust. 20009 * cfganal.c (set_control_dependence_map_bit, 20010 clear_control_dependence_bitmap, find_pdom, find_control_dependence, 20011 find_all_control_dependences): Move from tree-ssa-dce.c and 20012 implement as methods of control_dependences class. 20013 (control_dependences::control_dependences): New. 20014 (control_dependences::~control_dependences): Likewise. 20015 (control_dependences::get_edges_dependent_on): Likewise. 20016 (control_dependences::get_edge): Likewise. 20017 200182013-09-04 Jan Hubicka <jh@suse.cz> 20019 20020 * tree.c (types_same_for_odr): Drop overactive check. 20021 * ipa-devirt.c (hash_type_name): Likewise. 20022 200232013-09-04 Jan Hubicka <jh@suse.cz> 20024 20025 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ... 20026 (analyze_functions): ... here. 20027 200282013-09-04 Jan Hubicka <jh@suse.cz> 20029 20030 PR middle-end/58201 20031 * cgraphunit.c (analyze_functions): Clear AUX fields 20032 after processing; initialize assembler name has. 20033 200342013-09-05 Jeff Law <law@redhat.com> 20035 20036 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed 20037 from thread_around_empty_block. Record threading path into PATH. 20038 Recurse if threading through the initial block is successful. 20039 (thread_across_edge): Corresponding changes to slightly simplify. 20040 200412013-09-05 James Greenhalgh <james.greenhalgh@arm.com> 20042 20043 * config/aarch64/aarch64.md 20044 (type): Remove frecpe, frecps, frecpx. 20045 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md, 20046 fix to be a TARGET_SIMD instruction. 20047 (aarch64_frecps): Remove. 20048 * config/aarch64/aarch64-simd.md 20049 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md 20050 (aarch64_frecps<mode>): Handle all float/vector of float modes. 20051 200522013-09-05 James Greenhalgh <james.greenhalgh@arm.com> 20053 Sofiane Naci <sofiane.naci@arm.com> 20054 20055 * config/arm/types.md (define_attr "type"): Expand "arlo_imm" 20056 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm". 20057 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm", 20058 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel", 20059 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into 20060 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm", 20061 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg", 20062 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz" 20063 into "clz, "rbit". Rename "shift" to "shift_imm". 20064 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute 20065 changes. Update for attribute changes all occurrences of arlo_* and 20066 shift* types. 20067 * config/arm/arm-fixed.md: Update for attribute changes 20068 all occurrences of arlo_* types. 20069 * config/arm/thumb2.md: Update for attribute changes all occurrences 20070 of arlo_* types. 20071 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx 20072 (cortexa7_older_only): Likewise. 20073 (cortexa7_younger): Likewise. 20074 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes. 20075 (1020alu_shift_op): Likewise. 20076 (1020alu_shift_reg_op): Likewise. 20077 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes. 20078 (alu_shift_op): Likewise. 20079 (alu_shift_reg_op): Likewise. 20080 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes. 20081 (11_alu_shift_op): Likewise. 20082 (11_alu_shift_reg_op): Likewise. 20083 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes. 20084 (9_alu_shift_reg_op): Likewise. 20085 * config/arm/cortex-a15.md (cortex_a15_alu): Update for 20086 attribute changes. 20087 (cortex_a15_alu_shift): Likewise. 20088 (cortex_a15_alu_shift_reg): Likewise. 20089 * config/arm/cortex-a5.md (cortex_a5_alu): Update for 20090 attribute changes. 20091 (cortex_a5_alu_shift): Likewise. 20092 * config/arm/cortex-a53.md (cortex_a53_alu): Update for 20093 attribute changes. 20094 (cortex_a53_alu_shift): Likewise. 20095 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for 20096 attribute changes. 20097 (cortex_a7_alu_reg): Likewise. 20098 (cortex_a7_alu_shift): Likewise. 20099 * config/arm/cortex-a8.md (cortex_a8_alu): Update for 20100 attribute changes. 20101 (cortex_a8_alu_shift): Likewise. 20102 (cortex_a8_alu_shift_reg): Likewise. 20103 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes. 20104 (cortex_a9_dp_shift): Likewise. 20105 * config/arm/cortex-m4.md (cortex_m4_alu): Update for 20106 attribute changes. 20107 * config/arm/cortex-r4.md 20108 (cortex_r4_alu): Update for attribute changes. 20109 (cortex_r4_mov): Likewise. 20110 (cortex_r4_alu_shift_reg): Likewise. 20111 * config/arm/fa526.md (526_alu_op): Update for attribute changes. 20112 (526_alu_shift_op): Likewise. 20113 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes. 20114 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes. 20115 (626te_alu_shift_op): Likewise. 20116 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes. 20117 (726te_alu_shift_op): Likewise. 20118 (726te_alu_shift_reg_op): Likewise. 20119 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes. 20120 (mp626_alu_shift_op): Likewise. 20121 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes. 20122 (pj4_alu_conds): Likewise. 20123 (pj4_shift): Likewise. 20124 (pj4_shift_conds): Likewise. 20125 (pj4_alu_shift): Likewise. 20126 (pj4_alu_shift_conds): Likewise. 20127 * config/aarch64/aarch64.md: Update for attribute change 20128 all occurrences of arlo_* and shift* types. 20129 201302013-09-05 Mike Stump <mikestump@comcast.net> 20131 20132 * tree.h: Move documentation for tree_function_decl to tree-core.h 20133 with the declaration. 20134 201352013-09-05 Peter Bergner <bergner@vnet.ibm.com> 20136 20137 PR target/58139 20138 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes 20139 looking for widest mode. 20140 201412013-09-05 Eric Botcazou <ebotcazou@adacore.com> 20142 20143 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs. 20144 201452013-09-05 Richard Biener <rguenther@suse.de> 20146 20147 PR tree-optimization/58137 20148 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): 20149 Do not create vectors of pointers. 20150 * tree-vect-loop.c (get_initial_def_for_induction): Use proper 20151 types for the components of the vector initializer. 20152 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing 20153 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR. 20154 201552013-09-05 Martin Jambor <mjambor@suse.cz> 20156 20157 * ipa-prop.c (remove_described_reference): Accept missing references, 20158 return false if that hppens, otherwise return true. 20159 (cgraph_node_for_jfunc): New function. 20160 (try_decrement_rdesc_refcount): Likewise. 20161 (try_make_edge_direct_simple_call): Use them. 20162 (ipa_edge_removal_hook): Remove references from rdescs. 20163 (ipa_edge_duplication_hook): Clone rdescs and their references 20164 when the new edge has the same caller as the old one. 20165 * cgraph.c (cgraph_resolve_speculation): Remove speculative 20166 reference before removing any edges. 20167 201682013-09-05 Richard Earnshaw <rearnsha@arm.com> 20169 20170 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on 20171 initial store. 20172 * thumb2.md (thumb2_storewb_parisi): New pattern. 20173 201742013-09-05 Yufeng Zhang <yufeng.zhang@arm.com> 20175 20176 * config/aarch64/aarch64-option-extensions.def: Add 20177 AARCH64_OPT_EXTENSION of 'crc'. 20178 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define. 20179 (AARCH64_ISA_CRC): Ditto. 20180 * doc/invoke.texi (-march and -mcpu feature modifiers): Add 20181 description of the CRC extension. 20182 201832013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com> 20184 20185 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC. 20186 * config/rs6000/linux.h: Ditto. 20187 * alpha/linux.h: Ditto. 20188 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as 20189 no_c99_libc_has_function. 20190 * config/c6x/uclinux-elf.h: Ditto. 20191 * config/lm32/uclinux-elf.h: Ditto. 20192 * config/m68k/uclinux.h: Ditto. 20193 * config/moxie/uclinux.h: Ditto. 20194 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file. 20195 (crisv32-*-linux*, cris-*-linux*): Ditto. 20196 * config/bfin/bfin.c: Include "tm_p.h". 20197 201982013-09-05 Richard Biener <rguenther@suse.de> 20199 20200 * tree-vect-loop.c (vect_analyze_loop_operations): Properly 20201 check for a definition without a basic-block. 20202 202032013-09-05 James Greenhalgh <james.greenhalgh@arm.com> 20204 Sofiane Naci <sofiane.naci@arm.com> 20205 20206 * config/aarch64/aarch64.md 20207 (*movti_aarch64): Rename r_2_f and f_2_r. 20208 (*movsf_aarch64): Likewise. 20209 (*movdf_aarch64): Likewise. 20210 (*movtf_aarch64): Likewise. 20211 (aarch64_movdi_<mode>low): Likewise. 20212 (aarch64_movdi_<mode>high): Likewise. 20213 (aarch64_mov<mode>high_di): Likewise. 20214 (aarch64_mov<mode>low_di): Likewise. 20215 (aarch64_movtilow_tilow): Likewise. 20216 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute 20217 values to config/arm/types.md 20218 (attribute "conds"): Update for attribute change. 20219 (anddi3_insn): Likewise. 20220 (iordi3_insn): Likewise. 20221 (xordi3_insn): Likewise. 20222 (one_cmpldi2): Likewise. 20223 * config/arm/types.md (type): Add Neon types. 20224 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute, 20225 use "type" attribute. 20226 (movmisalign<mode>_neon_store): Likewise. 20227 (movmisalign<mode>_neon_load): Likewise. 20228 (vec_set<mode>_internal): Likewise. 20229 (vec_setv2di_internal): Likewise. 20230 (vec_extract<mode>): Likewise. 20231 (vec_extractv2di): Likewise. 20232 (add<mode>3_neon): Likewise. 20233 (adddi3_neon): Likewise. 20234 (sub<mode>3_neon): Likewise. 20235 (subdi3_neon): Likewise. 20236 (mul<mode>3_neon): Likewise. 20237 (mul<mode>3add<mode>_neon): Likewise. 20238 (mul<mode>3neg<mode>add<mode>_neon): Likewise. 20239 (fma<VCVTF:mode>4)): Likewise. 20240 (fma<VCVTF:mode>4_intrinsic): Likewise. 20241 (fmsub<VCVTF:mode>4)): Likewise. 20242 (fmsub<VCVTF:mode>4_intrinsic): Likewise. 20243 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise. 20244 (ior<mode>3): Likewise. 20245 (and<mode>3): Likewise. 20246 (anddi3_neon): Likewise. 20247 (orn<mode>3_neon): Likewise. 20248 (orndi3_neon): Likewise. 20249 (bic<mode>3_neon): Likewise. 20250 (bicdi3_neon): Likewise. 20251 (xor<mode>3): Likewise. 20252 (one_cmpl<mode>2): Likewise. 20253 (abs<mode>2): Likewise. 20254 (neg<mode>2): Likewise. 20255 (umin<mode>3_neon): Likewise. 20256 (umax<mode>3_neon): Likewise. 20257 (smin<mode>3_neon): Likewise. 20258 (smax<mode>3_neon): Likewise. 20259 (vashl<mode>3): Likewise. 20260 (vashr<mode>3_imm): Likewise. 20261 (vlshr<mode>3_imm): Likewise. 20262 (ashl<mode>3_signed): Likewise. 20263 (ashl<mode>3_unsigned): Likewise. 20264 (neon_load_count): Likewise. 20265 (ashldi3_neon_noclobber): Likewise. 20266 (signed_shift_di3_neon): Likewise. 20267 (unsigned_shift_di3_neon): Likewise. 20268 (ashrdi3_neon_imm_noclobber): Likewise. 20269 (lshrdi3_neon_imm_noclobber): Likewise. 20270 (widen_ssum<mode>3): Likewise. 20271 (widen_usum<mode>3): Likewise. 20272 (quad_halves_<code>v4si): Likewise. 20273 (quad_halves_<code>v4sf): Likewise. 20274 (quad_halves_<code>v8hi): Likewise. 20275 (quad_halves_<code>v16qi): Likewise. 20276 (reduc_splus_v2di): Likewise. 20277 (neon_vpadd_internal<mode>): Likewise. 20278 (neon_vpsmin<mode>): Likewise. 20279 (neon_vpsmax<mode>): Likewise. 20280 (neon_vpumin<mode>): Likewise. 20281 (neon_vpumax<mode>): Likewise. 20282 (ss_add<mode>_neon): Likewise. 20283 (us_add<mode>_neon): Likewise. 20284 (ss_sub<mode>_neon): Likewise. 20285 (us_sub<mode>_neon): Likewise. 20286 (neon_vadd<mode>_unspec): Likewise. 20287 (neon_vaddl<mode>): Likewise. 20288 (neon_vaddw<mode>): Likewise. 20289 (neon_vhadd<mode>): Likewise. 20290 (neon_vqadd<mode>): Likewise. 20291 (neon_vaddhn<mode>): Likewise. 20292 (neon_vmul<mode>): Likewise. 20293 (neon_vmla<mode>): Likewise. 20294 (neon_vmlal<mode>): Likewise. 20295 (neon_vmls<mode>): Likewise. 20296 (neon_vmlsl<mode>): Likewise. 20297 (neon_vqdmulh<mode>): Likewise. 20298 (neon_vqdmlal<mode>): Likewise. 20299 (neon_vqdmlsl<mode>): Likewise. 20300 (neon_vmull<mode>): Likewise. 20301 (neon_vqdmull<mode>): Likewise. 20302 (neon_vsub<mode>_unspec): Likewise. 20303 (neon_vsubl<mode>): Likewise. 20304 (neon_vsubw<mode>): Likewise. 20305 (neon_vqsub<mode>): Likewise. 20306 (neon_vhsub<mode>): Likewise. 20307 (neon_vsubhn<mode>): Likewise. 20308 (neon_vceq<mode>): Likewise. 20309 (neon_vcge<mode>): Likewise. 20310 (neon_vcgeu<mode>): Likewise. 20311 (neon_vcgt<mode>): Likewise. 20312 (neon_vcgtu<mode>): Likewise. 20313 (neon_vcle<mode>): Likewise. 20314 (neon_vclt<mode>): Likewise. 20315 (neon_vcage<mode>): Likewise. 20316 (neon_vcagt<mode>): Likewise. 20317 (neon_vtst<mode>): Likewise. 20318 (neon_vabd<mode>): Likewise. 20319 (neon_vabdl<mode>): Likewise. 20320 (neon_vaba<mode>): Likewise. 20321 (neon_vabal<mode>): Likewise. 20322 (neon_vmax<mode>): Likewise. 20323 (neon_vmin<mode>): Likewise. 20324 (neon_vpaddl<mode>): Likewise. 20325 (neon_vpadal<mode>): Likewise. 20326 (neon_vpmax<mode>): Likewise. 20327 (neon_vpmin<mode>): Likewise. 20328 (neon_vrecps<mode>): Likewise. 20329 (neon_vrsqrts<mode>): Likewise. 20330 (neon_vqabs<mode>): Likewise. 20331 (neon_vqneg<mode>): Likewise. 20332 (neon_vcls<mode>): Likewise. 20333 (clz<mode>2): Likewise. 20334 (popcount<mode>2): Likewise. 20335 (neon_vrecpe): Likewise. 20336 (neon_vrsqrte): Likewise. 20337 (neon_vget_lane<mode>_sext_internal): Likewise. 20338 (neon_vget_lane<mode>_zext_internal): Likewise. 20339 (neon_vdup_n<mode>): Likewise. 20340 (neon_vdup_nv2di): Likewise. 20341 (neon_vdpu_lane<mode>_internal): Likewise. 20342 (neon_vswp<mode>): Likewise. 20343 (float<mode><V_cvtto>2): Likewise. 20344 (floatuns<mode><V_cvtto>2): Likewise. 20345 (fix_trunc<mode><V_cvtto>)2): Likewise 20346 (fixuns_trunc<mode><V_cvtto)2): Likewise. 20347 (neon_vcvt<mode>): Likewise. 20348 (neon_vcvtv4sfv4hf): Likewise. 20349 (neon_vcvtv4hfv4sf): Likewise. 20350 (neon_vcvt_n<mode>): Likewise. 20351 (neon_vmovn<mode>): Likewise. 20352 (neon_vqmovn<mode>): Likewise. 20353 (neon_vqmovun<mode>): Likewise. 20354 (neon_vmovl<mode>): Likewise. 20355 (neon_vmul_lane<mode>): Likewise. 20356 (neon_vmull_lane<mode>): Likewise. 20357 (neon_vqdmull_lane<mode>): Likewise. 20358 (neon_vqdmulh_lane<mode>): Likewise. 20359 (neon_vmla_lane<mode>): Likewise. 20360 (neon_vmlal_lane<mode>): Likewise. 20361 (neon_vqdmlal_lane<mode>): Likewise. 20362 (neon_vmls_lane<mode>): Likewise. 20363 (neon_vmlsl_lane<mode>): Likewise. 20364 (neon_vqdmlsl_lane<mode>): Likewise. 20365 (neon_vext<mode>): Likewise. 20366 (neon_vrev64<mode>): Likewise. 20367 (neon_vrev32<mode>): Likewise. 20368 (neon_vrev16<mode>): Likewise. 20369 (neon_vbsl<mode>_internal): Likewise. 20370 (neon_vshl<mode>): Likewise. 20371 (neon_vqshl<mode>): Likewise. 20372 (neon_vshr_n<mode>): Likewise. 20373 (neon_vshrn_n<mode>): Likewise. 20374 (neon_vqshrn_n<mode>): Likewise. 20375 (neon_vqshrun_n<mode>): Likewise. 20376 (neon_vshl_n<mode>): Likewise. 20377 (neon_vqshl_n<mode>): Likewise. 20378 (neon_vqshlu_n<mode>): Likewise. 20379 (neon_vshll_n<mode>): Likewise. 20380 (neon_vsra_n<mode>): Likewise. 20381 (neon_vsri_n<mode>): Likewise. 20382 (neon_vsli_n<mode>): Likewise. 20383 (neon_vtbl1v8qi): Likewise. 20384 (neon_vtbl2v8qi): Likewise. 20385 (neon_vtbl3v8qi): Likewise. 20386 (neon_vtbl4v8qi): Likewise. 20387 (neon_vtbx1v8qi): Likewise. 20388 (neon_vtbx2v8qi): Likewise. 20389 (neon_vtbx3v8qi): Likewise. 20390 (neon_vtbx4v8qi): Likewise. 20391 (neon_vtrn<mode>_internal): Likewise. 20392 (neon_vzip<mode>_internal): Likewise. 20393 (neon_vuzp<mode>_internal): Likewise. 20394 (neon_vld1<mode>): Likewise. 20395 (neon_vld1_lane<mode>): Likewise. 20396 (neon_vld1_dup<mode>): Likewise. 20397 (neon_vld1_dupv2di): Likewise. 20398 (neon_vst1<mode>): Likewise. 20399 (neon_vst1_lane<mode>): Likewise. 20400 (neon_vld2<mode>): Likewise. 20401 (neon_vld2_lane<mode>): Likewise. 20402 (neon_vld2_dup<mode>): Likewise. 20403 (neon_vst2<mode>): Likewise. 20404 (neon_vst2_lane<mode>): Likewise. 20405 (neon_vld3<mode>): Likewise. 20406 (neon_vld3qa<mode>): Likewise. 20407 (neon_vld3qb<mode>): Likewise. 20408 (neon_vld3_lane<mode>): Likewise. 20409 (neon_vld3_dup<mode>): Likewise. 20410 (neon_vst3<mode>): Likewise. 20411 (neon_vst3qa<mode>): Likewise. 20412 (neon_vst3qb<mode>): Likewise. 20413 (neon_vst3_lane<mode>): Likewise. 20414 (neon_vld4<mode>): Likewise. 20415 (neon_vld4qa<mode>): Likewise. 20416 (neon_vld4qb<mode>): Likewise. 20417 (neon_vld4_lane<mode>): Likewise. 20418 (neon_vld4_dup<mode>): Likewise. 20419 (neon_vst4<mode>): Likewise. 20420 (neon_vst4qa<mode>): Likewise. 20421 (neon_vst4qb<mode>): Likewise. 20422 (neon_vst4_lane<mode>): Likewise. 20423 (neon_vec_unpack<US>_lo_<mode>): Likewise. 20424 (neon_vec_unpack<US>_hi_<mode>): Likewise. 20425 (neon_vec_<US>mult_lo_<mode>): Likewise. 20426 (neon_vec_<US>mult_hi_<mode>): Likewise. 20427 (neon_vec_<US>shiftl_<mode>): Likewise. 20428 (neon_unpack<US>_<mode>): Likewise. 20429 (neon_vec_<US>mult_<mode>): Likewise. 20430 (vec_pack_trunc_<mode>): Likewise. 20431 (neon_vec_pack_trunk_<mode>): Likewise. 20432 (neon_vabd<mode>_2): Likewise. 20433 (neon_vabd<mode>_3): Likewise. 20434 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes. 20435 (thumb2_movsi_vfp): Likewise. 20436 (movdi_vfp): Likewise. 20437 (movdi_vfp_cortexa8): Likewise. 20438 (movhf_vfp_neon): Likewise. 20439 (movhf_vfp): Likewiwse. 20440 (movsf_vfp): Likewiwse. 20441 (thumb2_movsf_vfp): Likewiwse. 20442 (movdf_vfp): Likewise. 20443 (thumb2_movdf_vfp): Likewise. 20444 (movsfcc_vfp): Likewise. 20445 (thumb2_movsfcc_vfp): Likewise. 20446 (movdfcc_vfp): Likewise. 20447 (thumb2_movdfcc_vfp): Likewise. 20448 * config/arm/arm.c (cortexa7_older_only): Update for attribute change. 20449 * config/arm/arm1020e.md (v10_c2v): Update for attribute change. 20450 (v10_v2c): Likewise. 20451 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for 20452 attribute change. 20453 (cortex_a15_neon_int_2): Likewise. 20454 (cortex_a15_neon_int_3): Likewise. 20455 (cortex_a15_neon_int_4): Likewise. 20456 (cortex_a15_neon_int_5): Likewise. 20457 (cortex_a15_neon_vqneg_vqabs): Likewise. 20458 (cortex_a15_neon_vmov): Likewise. 20459 (cortex_a15_neon_vaba): Likewise. 20460 (cortex_a15_neon_vaba_qqq): Likewise. 20461 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise. 20462 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise. 20463 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\ 20464 scalar_64_32_long_scalar): Likewise. 20465 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise. 20466 (cortex_a15_neon_mla_qqq_8_16): Likewise. 20467 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\ 20468 lotype_qdd_64_32_long): Likewise. 20469 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise. 20470 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise. 20471 (cortex_a15_neon_mul_qqd_32_scalar): Likewise. 20472 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise. 20473 (cortex_a15_neon_shift_1): Likewise. 20474 (cortex_a15_neon_shift_2): Likewise. 20475 (cortex_a15_neon_shift_3): Likewise. 20476 (cortex_a15_neon_vshl_ddd): Likewise. 20477 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise. 20478 (cortex_a15_neon_vsra_vrsra): Likewise. 20479 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise. 20480 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise. 20481 (cortex_a15_neon_fp_vmul_ddd): Likewise. 20482 (cortex_a15_neon_fp_vmul_qqd): Likewise. 20483 (cortex_a15_neon_fp_vmla_ddd): Likewise. 20484 (cortex_a15_neon_fp_vmla_qqq): Likewise. 20485 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise. 20486 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise. 20487 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise. 20488 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise. 20489 (cortex_a15_neon_bp_simple): Likewise. 20490 (cortex_a15_neon_bp_2cycle): Likewise. 20491 (cortex_a15_neon_bp_3cycle): Likewise. 20492 (cortex_a15_neon_vld1_1_2_regs): Likewise. 20493 (cortex_a15_neon_vld1_3_4_regs): Likewise. 20494 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise. 20495 (cortex_a15_neon_vld2_4_regs): Likewise. 20496 (cortex_a15_neon_vld3_vld4): Likewise. 20497 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise. 20498 (cortex_a15_neon_vst1_3_4_regs): Likewise. 20499 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise. 20500 (cortex_a15_neon_vst3_vst4): Likewise. 20501 (cortex_a15_neon_vld1_vld2_lane): Likewise. 20502 (cortex_a15_neon_vld3_vld4_lane" 10 20503 (cortex_a15_neon_vst1_vst2_lane): Likewise. 20504 (cortex_a15_neon_vst3_vst4_lane): Likewise. 20505 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise. 20506 (cortex_a15_neon_ldm_2): Likewise.0 20507 (cortex_a15_neon_stm_2): Likewise. 20508 (cortex_a15_neon_mcr): Likewise. 20509 (cortex_a15_neon_mcr_2_mcrr): Likewise. 20510 (cortex_a15_neon_mrc): Likewise. 20511 (cortex_a15_neon_mrrc): Likewise. 20512 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute 20513 change. 20514 (cortex_a15_alu_shift): Likewise. 20515 (cortex_a15_alu_shift_reg): Likewise. 20516 (cortex_a15_mult32): Likewise. 20517 (cortex_a15_mult64): Likewise. 20518 (cortex_a15_block): Likewise. 20519 (cortex_a15_branch): Likewise. 20520 (cortex_a15_load1): Likewise. 20521 (cortex_a15_load3): Likewise. 20522 (cortex_a15_store1): Likewise. 20523 (cortex_a15_store3): Likewise. 20524 (cortex_a15_call): Likewise. 20525 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change. 20526 (cortex_a5_f2r): Likewise. 20527 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute 20528 change. 20529 (cortex_a53_f2r): Likewise. 20530 * config/arm/cortex-a7.md 20531 (cortex_a7_branch): Update for attribute change. 20532 (cortex_a7_call): Likewise. 20533 (cortex_a7_alu_imm): Likewise. 20534 (cortex_a7_alu_reg): Likewise. 20535 (cortex_a7_alu_shift): Likewise. 20536 (cortex_a7_mul): Likewise. 20537 (cortex_a7_load1): Likewise. 20538 (cortex_a7_store1): Likewise. 20539 (cortex_a7_load2): Likewise. 20540 (cortex_a7_store2): Likewise. 20541 (cortex_a7_load3): Likewise. 20542 (cortex_a7_store3): Likewise. 20543 (cortex_a7_load4): Likewise. 20544 (cortex_a7_store4): Likewise. 20545 (cortex_a7_fpalu): Likewise. 20546 (cortex_a7_fconst): Likewise. 20547 (cortex_a7_fpmuls): Likewise. 20548 (cortex_a7_neon_mul): Likewise. 20549 (cortex_a7_fpmacs): Likewise. 20550 (cortex_a7_neon_mla: Likewise. 20551 (cortex_a7_fpmuld: Likewise. 20552 (cortex_a7_fpmacd: Likewise. 20553 (cortex_a7_fpfmad: Likewise. 20554 (cortex_a7_fdivs: Likewise. 20555 (cortex_a7_fdivd: Likewise. 20556 (cortex_a7_r2f: Likewise. 20557 (cortex_a7_f2r: Likewise. 20558 (cortex_a7_f_flags: Likewise. 20559 (cortex_a7_f_loads: Likewise. 20560 (cortex_a7_f_loadd: Likewise. 20561 (cortex_a7_f_stores: Likewise. 20562 (cortex_a7_f_stored: Likewise. 20563 (cortex_a7_neon): Likewise. 20564 * config/arm/cortex-a8-neon.md 20565 (cortex_a8_neon_mrc): Update for attribute change. 20566 (cortex_a8_neon_mrrc): Likewise. 20567 (cortex_a8_neon_int_1): Likewise. 20568 (cortex_a8_neon_int_2): Likewise. 20569 (cortex_a8_neon_int_3): Likewise. 20570 (cortex_a8_neon_int_4): Likewise. 20571 (cortex_a8_neon_int_5): Likewise. 20572 (cortex_a8_neon_vqneg_vqabs): Likewise. 20573 (cortex_a8_neon_vmov): Likewise. 20574 (cortex_a8_neon_vaba): Likewise. 20575 (cortex_a8_neon_vaba_qqq): Likewise. 20576 (cortex_a8_neon_vsma): Likewise. 20577 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise. 20578 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise. 20579 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\ 20580 long_scalar): Likewise. 20581 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise. 20582 (cortex_a8_neon_mla_qqq_8_16): Likewise. 20583 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\ 20584 long_scalar_qdd_64_32_long): Likewise. 20585 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise. 20586 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise. 20587 (cortex_a8_neon_mul_qqd_32_scalar): Likewise. 20588 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise. 20589 (cortex_a8_neon_shift_1): Likewise. 20590 (cortex_a8_neon_shift_2): Likewise. 20591 (cortex_a8_neon_shift_3): Likewise. 20592 (cortex_a8_neon_vshl_ddd): Likewise. 20593 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise. 20594 (cortex_a8_neon_vsra_vrsra): Likewise. 20595 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise. 20596 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise. 20597 (cortex_a8_neon_fp_vsum): Likewise. 20598 (cortex_a8_neon_fp_vmul_ddd): Likewise. 20599 (cortex_a8_neon_fp_vmul_qqd): Likewise. 20600 (cortex_a8_neon_fp_vmla_ddd): Likewise. 20601 (cortex_a8_neon_fp_vmla_qqq): Likewise. 20602 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise. 20603 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise. 20604 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise. 20605 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise. 20606 (cortex_a8_neon_bp_simple): Likewise. 20607 (cortex_a8_neon_bp_2cycle): Likewise. 20608 (cortex_a8_neon_bp_3cycle): Likewise. 20609 (cortex_a8_neon_ldr): Likewise. 20610 (cortex_a8_neon_str): Likewise. 20611 (cortex_a8_neon_vld1_1_2_regs): Likewise. 20612 (cortex_a8_neon_vld1_3_4_regs): Likewise. 20613 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise. 20614 (cortex_a8_neon_vld2_4_regs): Likewise. 20615 (cortex_a8_neon_vld3_vld4): Likewise. 20616 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise. 20617 (cortex_a8_neon_vst1_3_4_regs): Likewise. 20618 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise. 20619 (cortex_a8_neon_vst3_vst4): Likewise. 20620 (cortex_a8_neon_vld1_vld2_lane): Likewise. 20621 (cortex_a8_neon_vld3_vld4_lane): Likewise. 20622 (cortex_a8_neon_vst1_vst2_lane): Likewise. 20623 (cortex_a8_neon_vst3_vst4_lane): Likewise. 20624 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise. 20625 (cortex_a8_neon_mcr): Likewise. 20626 (cortex_a8_neon_mcr_2_mcrr): Likewise. 20627 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change. 20628 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute 20629 change. 20630 (ca9_neon_mrrc): Likewise. 20631 (cortex_a9_neon_int_1): Likewise. 20632 (cortex_a9_neon_int_2): Likewise. 20633 (cortex_a9_neon_int_3): Likewise. 20634 (cortex_a9_neon_int_4): Likewise. 20635 (cortex_a9_neon_int_5): Likewise. 20636 (cortex_a9_neon_vqneg_vqabs): Likewise. 20637 (cortex_a9_neon_vmov): Likewise. 20638 (cortex_a9_neon_vaba): Likewise. 20639 (cortex_a9_neon_vaba_qqq): Likewise. 20640 (cortex_a9_neon_vsma): Likewise. 20641 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise. 20642 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise. 20643 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\ 20644 long_scalar): Likewise. 20645 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise. 20646 (cortex_a9_neon_mla_qqq_8_16): Likewise. 20647 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\ 20648 long_scalar_qdd_64_32_long): Likewise. 20649 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise. 20650 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise. 20651 (cortex_a9_neon_mul_qqd_32_scalar): Likewise. 20652 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise. 20653 (cortex_a9_neon_shift_1): Likewise. 20654 (cortex_a9_neon_shift_2): Likewise. 20655 (cortex_a9_neon_shift_3): Likewise. 20656 (cortex_a9_neon_vshl_ddd): Likewise. 20657 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise. 20658 (cortex_a9_neon_vsra_vrsra): Likewise. 20659 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise. 20660 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise. 20661 (cortex_a9_neon_fp_vsum): Likewise. 20662 (cortex_a9_neon_fp_vmul_ddd): Likewise. 20663 (cortex_a9_neon_fp_vmul_qqd): Likewise. 20664 (cortex_a9_neon_fp_vmla_ddd): Likewise. 20665 (cortex_a9_neon_fp_vmla_qqq): Likewise. 20666 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise. 20667 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise. 20668 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise. 20669 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise. 20670 (cortex_a9_neon_bp_simple): Likewise. 20671 (cortex_a9_neon_bp_2cycle): Likewise. 20672 (cortex_a9_neon_bp_3cycle): Likewise. 20673 (cortex_a9_neon_ldr): Likewise. 20674 (cortex_a9_neon_str): Likewise. 20675 (cortex_a9_neon_vld1_1_2_regs): Likewise. 20676 (cortex_a9_neon_vld1_3_4_regs): Likewise. 20677 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise. 20678 (cortex_a9_neon_vld2_4_regs): Likewise. 20679 (cortex_a9_neon_vld3_vld4): Likewise. 20680 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise. 20681 (cortex_a9_neon_vst1_3_4_regs): Likewise. 20682 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise. 20683 (cortex_a9_neon_vst3_vst4): Likewise. 20684 (cortex_a9_neon_vld1_vld2_lane): Likewise. 20685 (cortex_a9_neon_vld3_vld4_lane): Likewise. 20686 (cortex_a9_neon_vst1_vst2_lane): Likewise. 20687 (cortex_a9_neon_vst3_vst4_lane): Likewise. 20688 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise. 20689 (cortex_a9_neon_mcr): Likewise. 20690 (cortex_a9_neon_mcr_2_mcrr): Likewise. 20691 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change. 20692 (cortex_a9_fps): Likewise. 20693 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute 20694 change. 20695 (cortex_m4_fmuls): Likewise. 20696 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute 20697 change. 20698 (cortex_r4_mrc): Likewise. 20699 * config/arm/iterators.md: Update comment referring to neon_type. 20700 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change. 20701 (iwmmxt_movsi_insn): Likewise. 20702 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for 20703 attribute change. 20704 (pj4_core_to_vfp): Likewise. 20705 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for 20706 attribute change. 20707 * config/arm/vfp11.md (vfp_fload): Update for attribute change. 20708 (vfp_fstore): Likewise. 20709 * doc/md.texi: Change references to neon_type to refer to type. 20710 207112013-09-04 Dodji Seketeli <dodji@redhat.com> 20712 20713 * tree.h (DECL_BUILT_IN): Fix typo in comment. 20714 207152013-09-04 David Edelsohn <dje.gcc@gmail.com> 20716 20717 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit 20718 lglobl if not weak. 20719 207202013-09-04 Easwaran Raman <eraman@google.com> 20721 20722 PR middle-end/57370 20723 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function, 20724 (build_and_add_sum): Use it. 20725 (appears_later_in_bb): Simplify code. 20726 207272013-09-04 Teresa Johnson <tejohnson@google.com> 20728 20729 * dumpfile.c (dump_finish): Don't close stderr/stdout. 20730 207312013-09-04 James Greenhalgh <james.greenhalgh@arm.com> 20732 20733 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types. 20734 207352013-09-04 Jan Hubicka <jh@suse.cz> 20736 20737 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h 20738 * ipa-devirt.c: Include diganostic.h 20739 (odr_type_d): Add types and types_set. 20740 (hash_type_name): Work for types with vtables during LTO. 20741 (odr_hasher::remove): Fix comment; destroy types_set. 20742 (add_type_duplicate): New function, 20743 (get_odr_type): Use it. 20744 (dump_type_inheritance_graph): Dump type duplicates. 20745 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance 20746 graph. 20747 * tree.c (types_same_for_odr): Give exact answers on types with 20748 virtual tables. 20749 207502013-09-04 Dodji Seketeli <dodji@redhat.com> 20751 20752 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments 20753 explaining their differences. 20754 207552013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com> 20756 20757 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200. 20758 207592013-09-03 Jeff Law <law@redhat.com> 20760 20761 * tree-ssa-threadedge.c (thread_across_edge): Record entire path 20762 when not threading through a joiner block. Pass joiner/no joiner 20763 state to register_jump_thread. 20764 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner 20765 state from argument rather than implying on path length. 20766 Dump the entire jump thread path into debugging dump. 20767 * tree-flow.h (register_jump_thread): Update prototype. 20768 207692013-08-29 Xinliang David Li <davidxl@google.com> 20770 20771 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): 20772 Remove a trivial gcc_assert. 20773 207742013-08-29 Xinliang David Li <davidxl@google.com> 20775 20776 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup. 20777 * tree-vect-loop.c (destroy_bb_vec_info): Ditto. 20778 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): 20779 Delay base decl alignment adjustment. 20780 * tree-vectorizer.c (vect_destroy_datarefs): New function. 20781 * tree-vectorizer.h: New data structure. 20782 (set_dr_misalignment): New function. 20783 (dr_misalignment): Ditto. 20784 * tree-vect-stmts.c (vectorizable_store): Ensure alignment. 20785 (vectorizable_load): Ditto. 20786 (ensure_base_align): New function. 20787 (vectorize_loops): Add dbg_cnt support. 20788 (execute_vect_slp): Ditto. 20789 * dbgcnt.def: New debug counter. 20790 * Makefile: New dependency. 20791 207922013-09-03 Meador Inge <meadori@codesourcery.com> 20793 20794 Revert: 20795 20796 2013-08-30 Meador Inge <meadori@codesourcery.com> 20797 20798 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays. 20799 208002013-09-03 David Edelsohn <dje.gcc@gmail.com> 20801 20802 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for 20803 function descriptor. 20804 208052013-09-03 Richard Biener <rguenther@suse.de> 20806 20807 * tree-affine.c (add_elt_to_tree): Fix association issue, 20808 avoid useless converts and make sure to always return a 20809 properly typed result. 20810 208112013-09-03 Richard Biener <rguenther@suse.de> 20812 20813 PR middle-end/57656 20814 * fold-const.c (negate_expr_p): Fix division case. 20815 (negate_expr): Likewise. 20816 208172013-09-03 Richard Biener <rguenther@suse.de> 20818 20819 PR lto/58285 20820 * tree-streamer-out.c: Include tm.h. 20821 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H). 20822 208232013-09-03 Jan Hubicka <jh@suse.cz> 20824 20825 * tree-profile.c (tree_profiling): Cleanup CFG when done. 20826 208272013-09-03 Alan Modra <amodra@gmail.com> 20828 20829 * config.gcc (powerpc*-*-linux*): Add support for little-endian 20830 multilibs to big-endian target and vice versa. 20831 * config/rs6000/t-linux64: Use := assignment on all vars. 20832 (MULTILIB_EXTRA_OPTS): Remove fPIC. 20833 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options. 20834 * config/rs6000/t-linux64le: New file. 20835 * config/rs6000/t-linux64bele: New file. 20836 * config/rs6000/t-linux64lebe: New file. 20837 208382013-09-02 Jan Hubicka <jh@suse.cz> 20839 20840 * ipa-inline-transform.c (inline_transform): Do not 20841 optimize_inline_calls when not optimizing. 20842 208432013-09-02 Jan Hubicka <jh@suse.cz> 20844 20845 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge 20846 duplicated nodes for assembler names. 20847 * symtab.c (symtab_unregister_node): Do not attempt to unlink 20848 hard registers from assembler name hash. 20849 208502013-09-02 Jan Hubicka <jh@suse.cz> 20851 20852 * ipa-split.c (execute_split_functions): Split externally visible 20853 functions called once. 20854 208552013-09-02 Martin Jambor <mjambor@suse.cz> 20856 20857 PR ipa/58106 20858 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the 20859 linked list. When finding the correct duplicate, also consider also 20860 the caller in additon to its inlined_to node. 20861 208622013-09-02 James Greenhalgh <james.greenhalgh@arm.com> 20863 20864 * config/aarch64/aarch64-simd-builtins.def 20865 (dup_lane_scalar): Remove. 20866 * config/aarch64/aarch64-simd.md 20867 (aarch64_simd_dup): Add 'w->w' alternative. 20868 (aarch64_dup_lane<mode>): Allow for VALL. 20869 (aarch64_dup_lane_scalar<mode>): Remove. 20870 (aarch64_dup_lane_<vswap_width_name><mode>): New. 20871 (aarch64_get_lane_signed<mode>): Add w->w altenative. 20872 (aarch64_get_lane_unsigned<mode>): Likewise. 20873 (aarch64_get_lane<mode>): Likewise. 20874 * config/aarch64/aarch64.c (aarch64_evpc_dup): New. 20875 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup. 20876 * config/aarch64/iterators.md (VSWAP_WIDTH): New. 20877 (VCON): Change container of V2SF. 20878 (vswap_width_name): Likewise. 20879 * config/aarch64/arm_neon.h 20880 (__aarch64_vdup_lane_any): New. 20881 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise. 20882 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation. 20883 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise. 20884 208852013-09-02 Eric Botcazou <ebotcazou@adacore.com> 20886 20887 PR middle-end/56382 20888 * expr.c (emit_move_complex): Do not move complex FP values as parts if 20889 the source or the destination is a single hard register. 20890 208912013-09-02 Richard Biener <rguenther@suse.de> 20892 20893 PR middle-end/57511 20894 * tree-scalar-evolution.c (instantiate_scev_name): Allow 20895 non-linear SCEVs. 20896 208972013-09-02 Richard Biener <rguenther@suse.de> 20898 20899 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer 20900 arithmetic to sizetype. 20901 209022013-09-02 Bin Cheng <bin.cheng@arm.com> 20903 20904 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates): 20905 Find auto-increment use both before and after candidate. 20906 209072013-09-02 Marek Polacek <polacek@redhat.com> 20908 20909 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency. 20910 209112013-09-01 Jan Hubicka <jh@suse.cz> 20912 20913 * Makefile.in: Add ipa-profile.o 20914 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies. 20915 * cgraph.c (struct cgraph_propagate_frequency_data, 20916 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to 20917 ipa-profile.c; replace cgraph_ by ipa_ prefix. 20918 * cgraph.h (cgraph_propagate_frequency): Remove. 20919 * ipa-inline-analysis.c: Include ipa-utils.h; 20920 drop duplicated cfgloop.h. 20921 (inline_update_callee_summaries): Update. 20922 * ipa-profile.c: New file. 20923 * ipa-utils.h (ipa_propagate_frequency): Declare. 20924 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h, 20925 data-streamer.h, value-prof.h. 20926 (symtab_remove_unreachable_nodes): Update profile. 20927 (struct histogram_entry, histogram, histogram_pool, histogram_hash, 20928 account_time_size, cmp_counts, dump_histogram, 20929 ipa_profile_generate_summary, ipa_profile_write_summary, 20930 ipa_profile_read_summary, ipa_profile, gate_ipa_profile, 20931 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile): 20932 Move to ipa-profile.c. 20933 209342013-09-01 John David Anglin <danglin@gcc.gnu.org> 20935 20936 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns. 20937 209382013-09-01 Jan Hubicka <jh@suse.cz> 20939 20940 * common.opt (fdevirtualize-speculatively): New function. 20941 * invoke.texi (fdevirtualize-speculatively): Document. 20942 * ipa-devirt.c: Include ipa-inline.h 20943 (likely_target_p): New function. 20944 (ipa_devirt): New function. 20945 (gate_ipa_devirt): New function. 20946 (pass_data_ipa_devirt): New static var. 20947 (pass_ipa_devirt): Likewise. 20948 (make_pass_ipa_devirt): New function. 20949 * opts.c (default_options): Add OPT_fdevirtualize_speculatively. 20950 (common_handle_option): Disable devirtualization when 20951 value range profiling is available. 20952 * passes.def (pass_ipa_devirt): Add. 20953 * timever.def (TV_IPA_DEVIRT): New timevar. 20954 * tree-pass.h (make_pass_ipa_devirt): 20955 209562013-09-01 Iain Sandoe <iain@codesourcery.com> 20957 20958 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to 20959 include sanitize(undefined). 20960 209612013-08-31 Diego Novillo <dnovillo@google.com> 20962 20963 * Makefile.in (TREE_CORE_H): Define. 20964 (TREE_H): Use. 20965 (GTFILES): Add tree-core.h. 20966 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to 20967 size the array. 20968 * tree-core.h: New file. 20969 Move all data structures, enum, typedefs, global 20970 declarations and constants from ... 20971 * tree.h: ... here. 20972 209732013-08-31 Jan Hubicka <jh@suse.cz> 20974 20975 * bulitins.c (expand_builtin): Do not early exit for gcov 20976 instrumented functions. 20977 209782013-08-31 Marek Polacek <polacek@redhat.com> 20979 20980 * ubsan.c: Include tm_p.h. 20981 209822013-08-31 Jan Hubicka <jh@suse.cz> 20983 20984 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused 20985 warning. 20986 20987 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body. 20988 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ... 20989 * tree-cfg.c (verify_gimple_label): ... here. 20990 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h 20991 (ipa_merge_profiles): New function. 20992 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl. 20993 (lto_input_function_body): Likewise. 20994 * ipa-utils.h (ipa_merge_profiles): Declare. 20995 * lto-streamer.h (lto_input_function_body): Update prototype. 20996 (emit_label_in_global_context_p): Remove. 20997 * lto-symtab.c: Include ipa-utils.h 20998 (lto_cgraph_replace_node): Use ipa_merge_profiles. 20999 210002013-08-31 Jan Hubicka <jh@suse.cz> 21001 21002 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup 21003 210042013-08-31 Jan Hubicka <jh@suse.cz> 21005 21006 * basic-block.h (apply_scale): Make scale parmeter gcov_type. 21007 210082013-08-31 Uros Bizjak <ubizjak@gmail.com> 21009 21010 * config/alpha/alpha.c (alpha_emit_conditional_move): Update 21011 "cmp" RTX before signed_comparison_operator check to account 21012 for "code" changes. 21013 210142013-08-30 Jan Hubicka <jh@suse.cz> 21015 21016 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records. 21017 (detect_type_change_1): Rename to ... 21018 (detect_type_change): ... this one; early return on non-polymorphic 21019 types. 21020 (detect_type_change_ssa): Add comp_type parameter; update 21021 use of detect_type_change. 21022 (compute_complex_assign_jump_func): Add param_type parameter; 21023 update use of detect_type_change_ssa. 21024 (compute_complex_ancestor_jump_func): Likewise. 21025 (ipa_get_callee_param_type): New function. 21026 (ipa_compute_jump_functions_for_edge): Compute parameter type; 21027 update calls to the jump function computation functions. 21028 210292013-08-30 Teresa Johnson <tejohnson@google.com> 21030 Steven Bosscher <steven@gcc.gnu.org> 21031 21032 * cfgrtl.c (fixup_new_cold_bb): New routine. 21033 (commit_edge_insertions): Invoke fixup_partitions. 21034 (find_partition_fixes): New routine. 21035 (fixup_partitions): Ditto. 21036 (verify_hot_cold_block_grouping): Update comments. 21037 (rtl_verify_edges): Invoke find_partition_fixes. 21038 (rtl_verify_bb_pointers): Update comments. 21039 (rtl_verify_bb_layout): Ditto. 21040 * basic-block.h (probably_never_executed_edge_p): Declare. 21041 (fixup_partitions): Ditto. 21042 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions. 21043 * bb-reorder.c (sanitize_hot_paths): New function. 21044 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke 21045 sanitize_hot_paths. 21046 * predict.c (probably_never_executed_edge_p): New routine. 21047 * cfg.c (check_bb_profile): Add partition insanity warnings. 21048 210492013-08-30 Meador Inge <meadori@codesourcery.com> 21050 21051 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays. 21052 210532013-08-30 Marek Polacek <polacek@redhat.com> 21054 21055 * Makefile.in (ubsan.o): Add. 21056 (c-family/c-ubsan.o): Add. 21057 (builtins.o): Add ubsan.h dependency. 21058 * ubsan.h: New file. 21059 * ubsan.c: New file. 21060 * common.opt: Add -fsanitize=undefined option. 21061 (flag_sanitize): Add variable. 21062 (fsanitize=): Add option. Add Driver. 21063 (fsanitize=thread): Remove option. 21064 (fsanitize=address): Likewise. 21065 (static-libubsan): New option. 21066 * doc/invoke.texi: Document the new flag and -static-libubsan. 21067 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define. 21068 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define. 21069 * builtin-attrs.def (ATTR_COLD): Define. 21070 (ATTR_COLD_NOTHROW_LEAF_LIST): Define. 21071 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW, 21072 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define. 21073 * flag-types.h (sanitize_code): New enum. 21074 * opts.c (common_handle_option): Parse command line arguments 21075 of -fsanitize=. Add -fsanitize=unreachable option. 21076 * varasm.c (get_variable_section): Adjust. 21077 (assemble_noswitch_variable): Likewise. 21078 (assemble_variable): Likewise. 21079 (output_constant_def_contents): Likewise. 21080 (categorize_decl_for_section): Likewise. 21081 (place_block_symbol): Likewise. 21082 (output_object_block): Likewise. 21083 * builtins.def: Likewise. 21084 * toplev.c (compile_file): Likewise. 21085 (process_options): Likewise. 21086 * cppbuiltin.c: Likewise. 21087 * tsan.c (tsan_pass): Likewise. 21088 (tsan_gate): Likewise. 21089 (tsan_gate_O0): Likewise. 21090 * cfgexpand.c (partition_stack_vars): Likewise. 21091 (expand_stack_vars): Likewise. 21092 (defer_stack_allocation): Likewise. 21093 (expand_used_vars): Likewise. 21094 * cfgcleanup.c (old_insns_match_p): Likewise. 21095 * asan.c (asan_finish_file): Likewise. 21096 (asan_instrument): Likewise. 21097 (gate_asan): Likewise. 21098 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR. 21099 (ATTR_COLD_NOTHROW_LEAF_LIST): Define. 21100 (asan_global_struct): Use pointer_sized_int_node instead 21101 calling build_nonstandard_integer_type. 21102 (initialize_sanitizer_builtins): Likewise. 21103 (asan_finish_file): Likewise. 21104 * gcc.c: Document %{%:function(args):X}. 21105 (static_spec_functions): Add sanitize. 21106 (handle_spec_function): Add retval_nonnull argument and if non-NULL, 21107 store funcval != NULL there. 21108 (do_spec_1): Adjust handle_spec_function caller. 21109 (handle_braces): Allow %:function(args) as condition. 21110 (sanitize_spec_function): New function. 21111 (ADD_STATIC_LIBUBSAN_LIBS): Define. 21112 (LIBUBSAN_SPEC): Likewise. 21113 (LIBUBSAN_EARLY_SPEC): Likewise. 21114 (SANITIZER_SPEC): Handle libubsan. 21115 (SANITIZER_EARLY_SPEC): Likewise. 21116 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address) 21117 instead of fsanitize=address. 21118 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address) 21119 instead of fsanitize=address*. 21120 * builtins.c: Include ubsan.h. 21121 (fold_builtin_0): Instrument __builtin_unreachable. 21122 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize 21123 instead of flag_asan. 21124 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE. 21125 (pointer_sized_int_node): Define. 21126 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node. 21127 211282013-08-30 Mike Stump <mikestump@comcast.net> 21129 21130 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6 21131 with RE patterns. 21132 211332013-08-29 Jan Hubicka <jh@suse.cz> 21134 21135 * cgraph.c (cgraph_function_body_availability): Handle weakref 21136 correctly. 21137 * passes.def: Remove pass_fixup_cfg. 21138 * ipa-inline.c (ipa_inline): When not optimizing, do not inline; 21139 track when we need to remove functions. 21140 (gate_ipa_inline): Execute inlining always; add comment why. 21141 (pass_data_ipa_inline): Remove TODO_remove_functions. 21142 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing 21143 do not produce summaries. 21144 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs. 21145 (symtab_nonoverwritable_alias): Assert we are not called on weakref. 21146 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs, 21147 constant pool and vtable. 21148 211492013-08-30 Tejas Belagod <tejas.belagod@arm.com> 21150 21151 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C): 21152 New arm_neon.h's internal macros to specify 64-bit constants. 21153 Avoid using stdint.h's macros. 21154 211552013-08-30 Joern Rennecke <joern.rennecke@embecosm.com> 21156 21157 * recog.c (verify_changes): Verify that changes[i].old is non-zero 21158 before applying REG_P. 21159 211602013-08-30 Jakub Jelinek <jakub@redhat.com> 21161 21162 PR tree-optimization/58277 21163 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up 21164 after seeing too many stmts with vdef in between dombb and current 21165 bb, invalidate everything. 21166 211672013-08-30 Richard Biener <rguenther@suse.de> 21168 21169 * fold-const.c (fold_single_bit_test): Fix overflow test. 21170 211712013-08-30 Eric Botcazou <ebotcazou@adacore.com> 21172 21173 * function.c (assign_parm_setup_reg): For a parameter passed by pointer 21174 and which can live in a register, always retrieve the value on entry. 21175 * var-tracking.c (add_stores): Treat the copy on entry for a parameter 21176 passed by invisible reference specially. 21177 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction. 21178 (vt_add_function_parameter): Correctly deal with a parameter passed by 21179 invisible reference. 21180 211812013-08-30 Jan Hubicka <jh@suse.cz> 21182 21183 * tree.c (set_call_expr_flags): Fix handling of TM_PURE. 21184 211852013-08-30 Richard Biener <rguenther@suse.de> 21186 21187 PR tree-optimization/58228 21188 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not 21189 allow invariant loads in nested loop vectorization. 21190 211912013-08-30 Richard Biener <rguenther@suse.de> 21192 21193 PR tree-optimization/58223 21194 * tree-loop-distribution.c (has_anti_dependence): Rename to ... 21195 (has_anti_or_output_dependence): ... this and adjust to also 21196 look for output dependences. 21197 (mark_nodes_having_upstream_mem_writes): Adjust. 21198 (rdg_flag_uses): Likewise. 21199 212002013-08-30 Richard Biener <rguenther@suse.de> 21201 21202 PR tree-optimization/58010 21203 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove 21204 assert that we have a loop-closed PHI. 21205 212062013-08-29 Jan Hubicka <jh@suse.cz> 21207 21208 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state. 21209 * cgraph.c (cgraph_release_function_body): Free decl_in_state. 21210 * lto-section-in.c (lto_free_function_in_decl_state): New function. 21211 (lto_free_function_in_decl_state_for_node): New function. 21212 212132013-08-29 Xinliang David Li <davidxl@google.com> 21214 21215 * loop-unroll.c (report_unroll_peel): Minor message change. 21216 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment): 21217 Emit alignment peeling message with default -fopt-info. 21218 (vect_loop_versioning): Emit loop version info message. 21219 * tree-vectorizer.c (vectorize_loops): Minor message change. 21220 (execute_vect_slp): Ditto. 21221 212222013-08-29 Eric Botcazou <ebotcazou@adacore.com> 21223 21224 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME 21225 of the clone from the DECL_NAME of the original function. 21226 212272013-08-29 Oleg Endo <olegendo@gcc.gnu.org> 21228 21229 * passes.c (register_pass): Add overload. 21230 * tree-pass.h (register_pass): Forward declare it. Add comment. 21231 212322013-08-29 Jan Hubicka <jh@suse.cz> 21233 21234 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P, 21235 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P. 21236 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream 21237 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P. 21238 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P. 21239 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): 21240 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P. 21241 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P. 21242 212432013-08-29 Teresa Johnson <tejohnson@google.com> 21244 21245 * dumpfile.c (dump_loc): Output column number. 21246 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL. 21247 * doc/invoke.texi: Document optall -fopt-info flag. 21248 * profile.c (read_profile_edge_counts): Use new dump framework. 21249 (compute_branch_probabilities): Ditto. 21250 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER 21251 when pass not in any opt group. 21252 * pass_manager.h (pass_manager::get_pass_profile): New method. 21253 * value-prof.c (check_counter): Use new dump framework. 21254 (check_ic_target): Ditto. 21255 * coverage.c (get_coverage_counts): Ditto. 21256 (coverage_init): Setup new dump framework. 21257 212582013-08-29 Richard Biener <rguenther@suse.de> 21259 21260 PR tree-optimization/58246 21261 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly 21262 handle the dominance check inside a basic-block. 21263 212642013-08-29 Richard Biener <rguenther@suse.de> 21265 21266 PR middle-end/57287 21267 * tree-ssa-copy.c (may_propagate_copy): Allow propagating 21268 of default defs that appear in abnormal PHI nodes. 21269 212702013-08-29 Richard Biener <rguenther@suse.de> 21271 21272 PR tree-optimization/57685 21273 * tree-vrp.c (register_edge_assert_for_1): Recurse only for 21274 single-use operands to avoid exponential complexity. 21275 212762013-08-28 Dehao Chen <dehao@google.com> 21277 21278 * ipa-inline.c (edge_badness): Fix integer underflow. 21279 212802013-08-28 Uros Bizjak <ubizjak@gmail.com> 21281 21282 * gtm-builtins.def (_ITM_free): Declare leaf. 21283 212842013-08-28 Jakub Jelinek <jakub@redhat.com> 21285 21286 PR target/58067 21287 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn. 21288 (*tls_local_dynamic_base_64_largepic): Likewise. 21289 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>): 21290 Remove predicate from call operand. 21291 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic 21292 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol. 21293 212942013-08-28 Jeff Law <law@redhat.com> 21295 21296 * tree-ssa-threadedge.c (thread_around_empty_block): Remove 21297 checks for the number of predecessors and successors allowed. 21298 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests 21299 which require copying a joiner block if there is a request which 21300 is a subpath that requires no joiner block copying. 21301 213022013-08-28 Jan Hubicka <jh@suse.cz> 21303 21304 * lto-streamer-out.c (DFS_write_tree_body): Drop 21305 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX. 21306 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN, 21307 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION. 21308 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): 21309 Do not read DECL_ERROR_ISSUED. 21310 (unpack_ts_decl_with_vis_value_fields): Do not read 21311 DECL_DEFER_OUTPUT. 21312 (lto_input_ts_binfo_tree_pointers): Do not read 21313 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX 21314 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not 21315 write DECL_ERROR_ISSUED.. 21316 (pack_ts_decl_with_vis_value_fields): Do not write 21317 DECL_DEFER_OUTPUT. 21318 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN, 21319 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX. 21320 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED. 21321 * tree.h (tree_decl_common): Update comment. 21322 (DECL_ERROR_ISSUED): Remove. 21323 213242013-08-28 Jakub Jelinek <jakub@redhat.com> 21325 21326 PR middle-end/58257 21327 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag. 21328 213292013-08-28 Jan Hubicka <jh@suse.cz> 21330 21331 * builtins.def (free): Declare leaf. 21332 213332013-08-27 David Malcolm <dmalcolm@redhat.com> 21334 21335 * gdbhooks.py: New. 21336 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py. 21337 * configure: Regenerate. 21338 213392013-08-27 Martin Jambor <mjambor@suse.cz> 21340 21341 * ipa-prop.h (ipa_pass_through_data): New field type_preserved. 21342 (ipa_ancestor_jf_data): Likewise. 21343 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo. 21344 (ipa_get_jf_pass_through_type_preserved): New function. 21345 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo. 21346 (ipa_get_jf_ancestor_type_preserved): New function. 21347 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag. 21348 (ipa_get_jf_ancestor_result): Likewise. 21349 (propagate_vals_accross_pass_through): Use 21350 ipa_get_jf_pass_through_result to do all the value mappings. 21351 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the 21352 type_preserved flag. 21353 (ipa_set_jf_cst_copy): New function. 21354 (ipa_set_jf_simple_pass_through): Set the type_preserved flag. 21355 (ipa_set_jf_arith_pass_through): Likewise. 21356 (ipa_set_ancestor_jf): Likewise. 21357 (compute_complex_assign_jump_func): Set type_preserved instead of 21358 punting. 21359 (ipa_compute_jump_functions_for_edge): Likewise. 21360 (combine_known_type_and_ancestor_jfs): Honor type_preserved. 21361 (update_jump_functions_after_inlining): Update type_preserved. 21362 Explicitely create jump functions when combining one with pass_through. 21363 (ipa_write_jump_function): Stream the type_preserved flags. 21364 (ipa_read_jump_function): Likewise. 21365 213662013-08-27 Jakub Jelinek <jakub@redhat.com> 21367 Aldy Hernandez <aldyh@redhat.com> 21368 21369 * Makefile.in (omp-low.o): Depend on $(TARGET_H). 21370 * cfgloop.h (struct loop): Add safelen, force_vect, simduid. 21371 * function.h (struct function): Add has_force_vect_loops and 21372 has_simduid_loops. 21373 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*. 21374 * gimple.c (gimple_build_omp_critical): Add KIND argument and 21375 handle it. 21376 * gimple.def: Update CLAUSES comments. 21377 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}. 21378 (gimple_build_omp_for): Add argument to prototype. 21379 (gimple_omp_for_kind): New. 21380 (gimple_omp_for_set_kind): New. 21381 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to 21382 GOVD_DATA_SHARE_CLASS. 21383 (enum omp_region_type): Add ORT_SIMD. 21384 (gimple_add_tmp_var): Handle ORT_SIMD. 21385 (gimplify_var_or_parm_decl): Same. 21386 (is_gimple_stmt): Same. 21387 (omp_firstprivatize_variable): Same. 21388 (omp_add_variable): Only use splay_tree_insert if lookup failed. 21389 (omp_notice_variable): Handle ORT_SIMD. 21390 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD. 21391 (omp_check_private): Handle ORT_SIMD. 21392 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and 21393 OMP_CLAUSE_SAFELEN. 21394 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR. 21395 Handle OMP_CLAUSE_LASTPRIVATE. 21396 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and 21397 OMP_CLAUSE_SAFELEN. 21398 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR. 21399 (gimplify_expr): Handle OMP_SIMD. 21400 * internal-fn.c (expand_GOMP_SIMD_LANE): New. 21401 (expand_GOMP_SIMD_VF): New. 21402 (expand_GOMP_SIMD_LAST_LANE): New. 21403 * internal-fn.def (GOMP_SIMD_LANE): New. 21404 (GOMP_SIMD_VF): New. 21405 (GOMP_SIMD_LAST_LANE): New. 21406 * omp-low.c: Include target.h. 21407 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR, 21408 OMP_CLAUSE_SAFELEN. 21409 (check_omp_nesting_restrictions): Same. 21410 (omp_max_vf): New. 21411 (lower_rec_simd_input_clauses): New. 21412 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD, 21413 OMP_CLAUSE_LINEAR. 21414 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR, 21415 GF_OMP_FOR_KIND_SIMD, OMP_SIMD. 21416 (expand_omp_build_assign): New. 21417 (expand_omp_for_init_counts): New. 21418 (expand_omp_for_init_vars): New. 21419 (extract_omp_for_update_vars): New. 21420 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars 21421 and rewrite accordingly. 21422 (expand_omp_simd): New. 21423 (expand_omp_for): Use expand_omp_simd. 21424 (lower_omp_for_lastprivate): Unshare vinit when appropriate. 21425 (lower_omp_for): Do not lower the body. 21426 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE 21427 in their own loops. 21428 * tree-flow.h (find_omp_clause): Remove prototype. 21429 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion, 21430 forcing vectorization of the loop, or if flag_tree_vectorize. 21431 (gate_tree_if_conversion): Similarly. 21432 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to 21433 gimple_build_omp_for. 21434 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops. 21435 * tree-parloops (create_parallel_loop): Pass kind argument to 21436 gimple_build_omp_for. 21437 * tree-pretty-print.c (dump_omp_clause): Add cases for 21438 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN, 21439 OMP_CLAUSE__SIMDUID_. 21440 (dump_generic_node): Handle OMP_SIMD. 21441 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*. 21442 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not 21443 unroll OMP_SIMD loops here. 21444 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops. 21445 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle 21446 loop->safelen. 21447 (vect_analyze_data_refs): Handle simd loops. 21448 * tree-vect-loop.c (vectorizable_live_operation): Handle 21449 IFN_GOMP_SIMD*. 21450 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE. 21451 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P. 21452 (vectorizable_load): Same. 21453 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h. 21454 (struct simduid_to_vf): New. 21455 (simduid_to_vf::hash): New. 21456 (simduid_to-vf::equal): New. 21457 (struct simd_array_to_simduid): New. 21458 (simd_array_to_simduid::hash): New. 21459 (simd_array_to_simduid::equal): New. 21460 (adjust_simduid_builtins): New. 21461 (struct note_simd_array_uses_struct): New. 21462 (note_simd_array_uses_cb): New. 21463 (note_simd_array_uses): New. 21464 (vectorize_loops): Handle simd hints and adjust simd builtins 21465 accordingly. 21466 * tree-vectorizer.h (struct _stmt_vec_info): Add 21467 simd_lane_access_p field. 21468 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro. 21469 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR, 21470 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM. 21471 (omp_clause_code_name): Same. 21472 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, 21473 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR. 21474 * tree.def (OMP_SIMD): New entry. 21475 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR, 21476 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_. 21477 (OMP_CLAUSE_DECL): Adjust range for new clauses. 21478 (OMP_CLAUSE_LINEAR_NO_COPYIN): New. 21479 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New. 21480 (OMP_CLAUSE_LINEAR_STEP): New. 21481 (OMP_CLAUSE_SAFELEN_EXPR): New. 21482 (OMP_CLAUSE__SIMDUID__DECL): New. 21483 (find_omp_clause): New prototype. 21484 214852013-08-27 H.J. Lu <hongjiu.lu@intel.com> 21486 21487 * config/i386/driver-i386.c (host_detect_local_cpu): Update 21488 Haswell processor detection. 21489 214902013-08-27 Christian Widmer <shadow@umbrox.de> 21491 21492 PR target/57927 21493 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection 21494 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown 21495 AVX2 capable processors. 21496 214972013-08-27 Tejas Belagod <tejas.belagod@arm.com> 21498 21499 * config/aarch64/arm_neon.h: Replace all inline asm implementations 21500 of vget_low_* with implementations in terms of other intrinsics. 21501 215022013-08-27 Marc Glisse <marc.glisse@inria.fr> 21503 21504 PR middle-end/57219 21505 * doc/extend.texi (__builtin_isinf_sign): Restrict the return 21506 values to -1, 0 and 1. 21507 215082013-08-27 Vidya Praveen <vidyapraveen@arm.com> 21509 21510 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL, 21511 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG. 21512 (<optab><mode>3_insn): Remove. 21513 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern. 21514 (aarch64_lshr_sisd_or_int_<mode>3): Likewise. 21515 (aarch64_ashr_sisd_or_int_<mode>3): Likewise. 21516 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise. 21517 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise. 21518 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise. 21519 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise. 21520 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise. 21521 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise. 21522 (ror<mode>3_insn): Likewise. 21523 * config/aarch64/predicates.md (aarch64_simd_register): New. 21524 215252013-08-27 Richard Biener <rguenther@suse.de> 21526 21527 PR tree-optimization/57521 21528 * tree-if-conv.c (if_convertible_bb_p): Verify that at least 21529 one edge is non-critical. 21530 (find_phi_replacement_condition): Make sure to use a non-critical 21531 edge. Cleanup and remove old bug workarounds. 21532 (bb_postdominates_preds): Remove. 21533 (if_convertible_loop_p_1): Do not compute post-dominators. 21534 (combine_blocks): Do not free post-dominators. 21535 (main_tree_if_conversion): Likewise. 21536 (pass_data_if_conversion): Add TODO_verify_ssa. 21537 215382013-08-27 DJ Delorie <dj@redhat.com> 21539 21540 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New. 21541 215422013-08-27 Yufeng Zhang <yufeng.zhang@arm.com> 21543 21544 * function.c (assign_parm_find_data_types): Set passed_mode and 21545 nominal_mode to the TYPE_MODE of nominal_type for the built 21546 pointer type in case of the struct-pass-by-reference. 21547 215482013-08-26 Joern Rennecke <joern.rennecke@embecosm.com> 21549 21550 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int". 21551 (UINT16_TYPE): Change default to "unsigned int". 21552 21553 * config/avr/avr.opt (mfract-convert-truncate): New option. 21554 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC 21555 is set, round negative fractional integers according to n1169 21556 when converting to integer types. 21557 215582013-08-26 Jan Hubicka <jh@suse.cz> 21559 21560 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual 21561 methods can not be called indirectly when their address is not taken. 21562 215632013-08-26 Jan Hubicka <jh@suse.cz> 21564 21565 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use 21566 ctor_for_folding. 21567 215682013-08-26 Jan Hubicka <jh@suse.cz> 21569 21570 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors 21571 can be unshared. 21572 215732013-08-26 Joern Rennecke <joern.rennecke@embecosm.com> 21574 21575 * reload.c (find_valid_class): Allow classes that do not include 21576 FIRST_PSEUDO_REGISTER - 1. 21577 215782013-08-26 Jan Hubicka <jh@suse.cz> 21579 21580 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting; 21581 fix edge count/frequency when speculation failed; fix type check 21582 for the direct call. 21583 215842013-08-26 Jan Hubicka <jh@suse.cz> 21585 21586 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA. 21587 215882013-08-26 Jan Hubicka <jh@suse.cz> 21589 21590 * ipa-inline-transform.c (inline_transform): Be ready for basic block 21591 to be changed by edge redirection. 21592 215932013-08-26 Jan Hubicka <jh@suse.cz> 21594 21595 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and 21596 formating; add sanity check. 21597 (cgraph_resolve_speculation): Add FIXME about scaling profiles. 21598 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump. 21599 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache. 21600 (resolve_noninline_speculation): Update callee keys, too. 21601 216022013-08-26 Jan Hubicka <jh@suse.cz> 21603 21604 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor. 21605 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros. 21606 216072013-08-26 Joern Rennecke <joern.rennecke@embecosm.com> 21608 21609 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED 21610 into proper place. 21611 216122013-08-26 Uros Bizjak <ubizjak@gmail.com> 21613 21614 * config/i386/i386.c (ix86_debug_options): Remove prototype. 21615 (x86_64_elf_select_section): Ditto. 21616 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used 21617 arguments. 21618 (ix86_pass_by_reference): Ditto. 21619 (output_set_got): Ditto. 21620 (ix86_unary_operator_ok): Ditto. 21621 (ix86_expand_builtin): Ditto. 21622 216232013-08-23 Jan Hubicka <jh@suse.cz> 21624 21625 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output. 21626 216272013-08-23 Jan Hubicka <jh@suse.cz> 21628 21629 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros. 21630 (tree_decl_with_vis): Add FINAL field. 21631 216322013-08-23 Jeff Law <law@redhat.com> 21633 21634 * tree-ssa-pre.c (do_regular_insertion): Include the expression in 21635 the debugging dump when the expression is fully redundant. 21636 216372013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net> 21638 21639 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer. 21640 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise. 21641 * pretty-print.c (pp_formatted_text_data): Likewise. 21642 (pp_write_text_to_stream): Likewise. 21643 (pp_write_text_as_dot_label_to_stream): Likewise. 21644 (pp_append_r): Likewise. 21645 (pp_format): Likewise. 21646 (pp_flush): Likewise. 21647 (pp_clear_output_area): Likewise. 21648 (pp_append_text): Likewise. 21649 (pp_formatted_text): Likewise. 21650 (pp_remaining_character_count_for_line): Likewise. 21651 (pp_newline): Likewise. 21652 (pp_character): Likewise. 21653 (output_buffer::~output_buffer): Define. 21654 (pretty_printer::~pretty_printer): Destruct output buffer. 21655 * pretty-print.h (output_buffer::~output_buffer): Declare. 21656 (pretty_printer::~pretty_printer): Declare virtual. 21657 216582013-08-24 Marc Glisse <marc.glisse@inria.fr> 21659 21660 PR other/57324 21661 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1, 21662 HOST_WIDE_INT_M1U): New macros. 21663 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc, 21664 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an 21665 unsigned -1 for lshift. 21666 * cse.c (cse_insn): Likewise. 21667 * double-int.c (rshift_double, lshift_double): Likewise. 21668 * builtins.c (fold_builtin_bitop): Likewise. 21669 * combine.c (force_to_mode): Likewise. 21670 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise. 21671 * simplify-rtx.c (simplify_const_unary_operation, 21672 simplify_const_binary_operation): Likewise. 21673 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read, 21674 check_va_list_escapes): Likewise. 21675 * rtlanal.c (nonzero_bits1): Likewise. 21676 * expmed.c (expand_smod_pow2): Likewise. 21677 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN. 21678 216792013-08-23 Jan Hubicka <jh@suse.cz> 21680 21681 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node 21682 as having address taken. 21683 216842013-08-23 Jan Hubicka <jh@suse.cz> 21685 21686 * ipa-utils.h (method_class_type): Declare. 21687 * ipa-devirt.c (method_class_type): Export. 21688 21689 * cgraphunit.c (analyze_functions): Do basic devirtualization; 21690 do not walk base classes of anonymous types. 21691 216922013-08-23 Kaz Kojima <kkojima@gcc.gnu.org> 21693 21694 PR rtl-optimization/58220 21695 PR regression/58221 21696 * final.c (reemit_insn_block_notes): Use NEXT_INSN to 21697 handle SEQUENCE insns properly. 21698 216992013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net> 21700 21701 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro 21702 definition. 21703 (pp_newline_and_indent): Likewise. 21704 (pp_separate_with): Likewise. 21705 * pretty-print.c (pp_newline_and_flush): Define. 21706 (pp_newline_and_indent): Likewise. 21707 (pp_separate_with): Likewise. 21708 217092013-08-23 Jakub Jelinek <jakub@redhat.com> 21710 21711 PR target/58218 21712 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define. 21713 * config/i386/i386.c (x86_64_elf_section_type_flags): New function. 21714 217152013-08-23 Kirill Yukhin <kirill.yukhin@intel.com> 21716 21717 * config/i386/predicates.md (ext_sse_reg_operand): New. 21718 * config/i386/i386.md (*movti_internal): Use 21719 predicate to determine if EVEX is needed. 21720 (*movsi_internal): Ditto. 21721 (*movdf_internal): Ditto. 21722 (*movsf_internal): Ditto. 21723 * config/i386/mmx.md (*mov<mode>_internal): Ditto. 21724 217252013-08-23 Jakub Jelinek <jakub@redhat.com> 21726 21727 PR tree-optimization/58209 21728 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR. 21729 (find_tail_calls): Give up for pointer result types if m is non-NULL. 21730 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type 21731 emit POINTER_PLUS_EXPR. 21732 (create_tailcall_accumulator): For pointer result type accumulate in 21733 sizetype type. 21734 217352013-08-22 Paolo Carlini <paolo.carlini@oracle.com> 21736 21737 * configure.ac: Add backslashes missing from the last change. 21738 * configure: Regenerate. 21739 217402013-08-22 Jan Hubicka <jh@susue.cz> 21741 21742 * ipa.c (function_and_variable_visibility): First remember function 21743 was global and then make it local. 21744 217452013-08-22 Julian Brown <julian@codesourcery.com> 21746 21747 * configure.ac: Add aarch64 to list of arches which use "nop" in 21748 debug_line test. 21749 * configure: Regenerate. 21750 217512013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 21752 21753 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as 21754 gnu_libc_has_function. 21755 * config/s390/tpf.h: Likewise. 21756 217572013-08-22 Jan Hubicka <jh@susue.cz> 21758 21759 * timevar.c (validate_phases): Add cast. 21760 217612013-08-22 Jan Hubicka <jh@susue.cz> 21762 21763 * timevar.c (validate_phases): Use size_t for memory. 21764 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem. 21765 217662013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net> 21767 21768 * pretty-print.h (output_buffer::output_buffer): Declare. 21769 (pretty_printer::pretty_printer): Likewise. 21770 (pp_construct): Remove. 21771 * pretty-print.c (output_buffer::output_buffer): Define. 21772 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify. 21773 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct. 21774 (print_gimple_expr): Likewise. 21775 (print_gimple_seq): Likewise. 21776 (gimple_dump_bb): Likewise. 21777 * sched-vis.c (dump_value_slim): Likewise. 21778 (dump_insn_slim): Likewise. 21779 (dump_rtl_slim): Likewise. 21780 (str_pattern_slim): Likewise. 21781 * tree-mudflap.c (mf_varname_tree): Likewise. 21782 * graph.c (print_graph_cfg): Likewise. 21783 (start_graph_dump): Likewise. 21784 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use 21785 placement-new. 21786 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic 21787 pretty printer initialization. 21788 * coretypes.h (diagnostic_context): Remove superflous type alias 21789 declaration. 21790 (pretty_printer): Likewise. Declare directly as a class. 21791 (pretty_print_info): Remove declaration as class. 21792 * asan.c (asan_emit_stack_protection): Remove call to pp_construct 21793 and pp_clear_output_area. 21794 (asan_add_global): Likewise. 21795 217962013-08-22 Jan Hubicka <jh@suse.cz> 21797 21798 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph. 21799 * ipa-utils.h (update_type_inheritance_graph): Declare. 21800 (possible_polymorphic_call_target_p): Declare. 21801 (possible_polymorphic_call_target_p): New. 21802 * ipa-devirt.c: Update toplevel comments. 21803 (cached_polymorphic_call_targets): Move up. 21804 (odr_type_d): Move ID down. 21805 (polymorphic_type_binfo_p): Update comment. 21806 (odr_hasher::remove): Likewise; 21807 (get_odr_type): Set anonymous_namespace. 21808 (dump_odr_type): Dump it. 21809 (dump_type_inheritance_graph): Do not ICE when there are no ODR types. 21810 (maybe_record_node): Record node in cached_polymorphic_call_targets. 21811 (record_binfo): Add comment. 21812 (free_polymorphic_call_targets_hash): Do not ICE when cache is not 21813 built. 21814 (devirt_node_removal_hook): Do not iCE when cache is freed. 21815 (possible_polymorphic_call_target_p): New predicate. 21816 (update_type_inheritance_graph): New function. 21817 218182013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com> 21819 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 21820 Sergey Lega <sergey.s.lega@intel.com> 21821 Anna Tikhonova <anna.tikhonova@intel.com> 21822 Ilya Tocar <ilya.tocar@intel.com> 21823 Andrey Turetskiy <andrey.turetskiy@intel.com> 21824 Ilya Verbin <ilya.verbin@intel.com> 21825 Kirill Yukhin <kirill.yukhin@intel.com> 21826 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 21827 21828 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New. 21829 (OPTION_MASK_ISA_AVX512CD_SET): Ditto. 21830 (OPTION_MASK_ISA_AVX512PF_SET): Ditto. 21831 (OPTION_MASK_ISA_AVX512ER_SET): Ditto. 21832 (OPTION_MASK_ISA_AVX2_UNSET): Update. 21833 (OPTION_MASK_ISA_AVX512F_UNSET): New. 21834 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto. 21835 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto. 21836 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto. 21837 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd, 21838 OPT_mavx512pf, OPT_mavx512er cases. 21839 * config/i386/constraints.md (v): New constraint. 21840 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS. 21841 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER) 21842 (bit_AVX512CD): New. 21843 * config/i386/driver-i386.c (host_detect_local_cpu): Detect 21844 AVX512F, AVX512ER, AVX512PF, AVX512CD features. 21845 * config/i386/i386-c.c (ix86_target_macros_internal): 21846 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__, 21847 __AVX512PF__. 21848 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128)) 21849 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes. 21850 * config/i386/i386.c (regclass_map, dbx_register_map) 21851 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers. 21852 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F. 21853 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd, 21854 -mavx512pf options. 21855 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER, 21856 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd, 21857 -mavx512pf options. Fix formatting. 21858 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit 21859 targets. Squash EVEX_SSE_REGS if AVX512F is disabled. 21860 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er, 21861 -mavx512cd, -mavx512pf options. 21862 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes. 21863 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands. 21864 (ix86_preferred_output_reload_class): Replace SSE_REGS with 21865 ALL_SSE_REGS. 21866 (ix86_hard_regno_mode_ok): Support 512-bit registers. 21867 (ix86_set_reg_reg_cost): Ditto. 21868 (x86_order_regs_for_local_alloc): Ditto. 21869 (MAX_VECT_LEN): Extend to 64-byte. 21870 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS. 21871 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF) 21872 (TARGET_AVX512ER, TARGET_AVX512CD): New. 21873 (BIGGEST_ALIGNMENT): Extend to 512-bits. 21874 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers. 21875 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise. 21876 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New. 21877 (SSE_REG_MODE_P): Support new modes. 21878 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments. 21879 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New. 21880 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS. 21881 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS. 21882 (REG_CLASS_CONTENTS): Add new registers. 21883 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers. 21884 (EXT_REX_SSE_REGNO_P): New. 21885 (HI_REGISTER_NAMES): Add new registers. 21886 * config/i386/i386.md: Define constants for new registers. 21887 (mode): Add new 512-bit modes. 21888 (prefix): Support evex prefix. 21889 (isa): Support avx512f, noavx512f, fma_avx512f. 21890 (ssemodesuffix): Add new 512-bit modes. 21891 (movxi): New. 21892 (*movxi_internal_avx512f): Ditto. 21893 (*movdi_internal): Replace constraint "x" with the new constraint "v". 21894 Support MODE_XI. 21895 (*movsi_internal): Likewise. 21896 (*movdf_internal): Likewise. 21897 (*movsf_internal): Likewise. 21898 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v". 21899 (<code><mode>3): Likewise. 21900 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd): 21901 New. 21902 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x" 21903 with the new constraint "v". 21904 * config/i386/sse.md (*mov<mode>_internal): Support new registers and 21905 modes. 21906 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x" 21907 with the new constraint "v". 21908 (<sse2>_loaddqu<avxsizesuffix>): Likewise. 21909 (<sse2>_storedqu<avxsizesuffix>): Likewise. 21910 (*<plusminus_insn><mode>3): Likewise. 21911 (<sse>_vm<plusminus_insn><mode>3): Likewise. 21912 (*mul<mode>3): Likewise. 21913 (<sse>_vmmul<mode>3): Likewise. 21914 (<sse>_div<mode>3): Likewise. 21915 (<sse>_vmdiv<mode>3): Likewise. 21916 (<sse>_sqrt<mode>2): Likewise. 21917 (<sse>_vmsqrt<mode>2): Likewise. 21918 (*<code><mode>3_finite): Likewise. 21919 (*<code><mode>3) <smaxmin>: Likewise. 21920 (<sse>_vm<code><mode>3): Likewise. 21921 (*<code><mode>3) <any_logic>: Likewise. 21922 (*fma_fmadd_<mode>): Likewise. 21923 (*fma_fmsub_<mode>): Likewise. 21924 (*fma_fnmadd_<mode>): Likewise. 21925 (*fma_fnmsub_<mode>): Likewise. 21926 (*fma_fmaddsub_<mode>): Likewise. 21927 (*fma_fmsubadd_<mode>): Likewise. 21928 (*fmai_fmadd_<mode>): Likewise. 21929 (*fmai_fmsub_<mode>): Likewise. 21930 (*fmai_fnmadd_<mode>): Likewise. 21931 (*fmai_fnmsub_<mode>): Likewise. 21932 (sse_cvtsi2ss): Likewise. 21933 (sse_cvtsi2ssq): Likewise. 21934 (sse_cvtss2si): Likewise. 21935 (sse_cvtss2si_2): Likewise. 21936 (sse_cvtss2siq): Likewise. 21937 (sse_cvtss2siq_2): Likewise. 21938 (sse_cvttss2si): Likewise. 21939 (sse_cvtss2siq_2): Likewise. 21940 (float<sseintvecmodelower><mode>2): Likewise. 21941 (sse2_cvtsd2si_2): Likewise. 21942 (sse2_cvtsd2siq_2): Likewise. 21943 (*<plusminus_insn><mode>3): Likewise. 21944 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise. 21945 (*<sse4_1_avx2>_mul<mode>3): Likewise. 21946 (ashr<mode>3): Likewise. 21947 (<shift_insn><mode>3): Likewise. 21948 (avx2_<code><mode>3): Likewise. 21949 (*avx2_<code><mode>3): Likewise. 21950 (*andnot<mode>3): Likewise. 21951 (*<code><mode>3) <any_logic>: Likewise. 21952 (abs<mode>2): Likewise. 21953 (avx2_permvar<mode>): Likewise. 21954 (avx2_perm<mode>_1): Likewise. 21955 (*avx_vpermilp<mode>): Likewise. 21956 (avx_vpermilvar<mode>3): Likewise. 21957 (avx2_ashrv<mode>): Likewise. 21958 (avx2_<shift_insn>v<mode>): Likewise. 21959 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er, 21960 -mavx512cd. 21961 * doc/rtl.texi: Document XImode. 21962 219632013-08-21 Jeff Law <law@redhat.com> 21964 21965 * tree-flow.h (register_jump_thread): Pass vector of edges 21966 instead of each important edge. 21967 * tree-ssa-threadedge.c (thread_across_edge): Build the jump 21968 thread path into a vector and pass that to register_jump_thread. 21969 * tree-ssa-threadupdate.c (register_jump_thread): Conver the 21970 passed in edge vector to the current 3-edge form. 21971 21972 Revert: 21973 2013-08-20 Alexey Makhalov <makhaloff@gmail.com> 21974 21975 * dce.c (fini_dce): Call df_analyze again just in case 21976 delete_unmarked_insns removed anything. 21977 219782013-08-21 Joern Rennecke <joern.rennecke@embecosm.com> 21979 21980 * reload.h (struct reg_equivs): Rename to .. 21981 (struct reg_equivs_s): .. this. 21982 219832013-08-20 Martin Liska <marxin.liska@gmail.com> 21984 21985 * ipa.c (ipa_profile_read_summary): Fix buffer overflow. 21986 219872013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 21988 21989 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment. 21990 219912013-08-21 Jeff Law <law@redhat.com> 21992 21993 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to 21994 simplify assignments too. If the RHS collapses to a singleton 21995 range, then return the value for the range. 21996 219972013-08-21 Kirill Yukhin <kirill.yukhin@intel.com> 21998 21999 * config/i386/sse.md (V16): Rename to... 22000 (VMOVE): this. 22001 (mov<mode>): Update iterator name. 22002 (*mov<mode>_internal): Ditto. 22003 (push<mode>1): Ditto. 22004 (movmisalign<mode>): Ditto. 22005 220062013-08-20 Jan Hubicka <jh@suse.cz> 22007 22008 PR bootstrap/58186 22009 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash 22010 entry for direct edges. 22011 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external. 22012 220132013-08-20 David Malcolm <dmalcolm@redhat.com> 22014 22015 Revert my last two changes, r201865 and r201864: 22016 22017 Revert r201865: 22018 2013-08-20 David Malcolm <dmalcolm@redhat.com> 22019 22020 Make opt_pass and gcc::pass_manager be GC-managed, so that pass 22021 instances can own GC refs. 22022 22023 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h. 22024 * context.c (gcc::context::gt_ggc_mx): Traverse passes_. 22025 (gcc::context::gt_pch_nx): Likewise. 22026 (gcc::context::gt_pch_nx): Likewise. 22027 * ggc.h (gt_ggc_mx <T>): New. 22028 (gt_pch_nx_with_op <T>): New. 22029 (gt_pch_nx <T>): New. 22030 * passes.c (opt_pass::gt_ggc_mx): New. 22031 (opt_pass::gt_pch_nx): New. 22032 (opt_pass::gt_pch_nx_with_op): New. 22033 (pass_manager::gt_ggc_mx): New. 22034 (pass_manager::gt_pch_nx): New. 22035 (pass_manager::gt_pch_nx_with_op): New. 22036 (pass_manager::operator new): Use 22037 ggc_internal_cleared_alloc_stat rather than xcalloc. 22038 * pass_manager.h (class pass_manager): Add GTY((user)) marking. 22039 (pass_manager::gt_ggc_mx): New. 22040 (pass_manager::gt_pch_nx): New. 22041 (pass_manager::gt_pch_nx_with_op): New. 22042 * tree-pass.h (class opt_pass): Add GTY((user)) marking. 22043 (opt_pass::operator new): New. 22044 (opt_pass::gt_ggc_mx): New. 22045 (opt_pass::gt_pch_nx): New. 22046 (opt_pass::gt_pch_nx_with_op): New. 22047 22048 Revert r201864: 22049 2013-08-20 David Malcolm <dmalcolm@redhat.com> 22050 22051 * Makefile.in (GTFILES): Add context.h. 22052 * context.c (gcc::context::operator new): New. 22053 (gcc::context::gt_ggc_mx): New. 22054 (gcc::context::gt_pch_nx): New. 22055 (gcc::context::gt_pch_nx): New. 22056 * context.h (gcc::context): Add GTY((user)) marking. 22057 (gcc::context::operator new): New. 22058 (gcc::context::gt_ggc_mx): New. 22059 (gcc::context::gt_pch_nx): New. 22060 (gcc::context::gt_pch_nx): New. 22061 (g): Add GTY marking. 22062 (gt_ggc_mx (gcc::context *)): New. 22063 (gt_pch_nx (gcc::context *)): New. 22064 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op, 22065 void *cookie)): New. 22066 * gengtype.c (open_base_files) <ifiles>: Add context.h. 22067 220682013-08-20 Alexey Makhalov <makhaloff@gmail.com> 22069 22070 * dce.c (fini_dce): Call df_analyze again just in case 22071 delete_unmarked_insns removed anything. 22072 220732013-08-20 Teresa Johnson <tejohnson@google.com> 22074 22075 PR rtl-optimizations/57451 22076 * final.c (reemit_insn_block_notes): Prevent lexical blocks 22077 from crossing split section boundaries. 22078 220792013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org> 22080 22081 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition. 22082 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association 22083 with MULTLIB_DEFAULTS. 22084 220852013-08-20 Nick Clifton <nickc@redhat.com> 22086 22087 * target.def (narrow_volatile_bitfield): Note that the default 22088 value is false, not !TARGET_STRICT_ALIGN. 22089 * doc/tm.texi: Regenerate. 22090 220912013-08-20 Pavel Chupin <pavel.v.chupin@intel.com> 22092 22093 Fix LIB_SPEC for systems without libpthread. 22094 22095 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC. 22096 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC 22097 for Android. 22098 * config/i386/linux-common.h: Likewise. 22099 * config/mips/linux-common.h: Likewise. 22100 221012013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn> 22102 22103 * tree-ssa-ccp.c (get_default_value): Remove redundant condition 22104 checks. 22105 221062013-08-20 David Malcolm <dmalcolm@redhat.com> 22107 22108 Make opt_pass and gcc::pass_manager be GC-managed, so that pass 22109 instances can own GC refs. 22110 22111 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h. 22112 * context.c (gcc::context::gt_ggc_mx): Traverse passes_. 22113 (gcc::context::gt_pch_nx): Likewise. 22114 (gcc::context::gt_pch_nx): Likewise. 22115 * ggc.h (gt_ggc_mx <T>): New. 22116 (gt_pch_nx_with_op <T>): New. 22117 (gt_pch_nx <T>): New. 22118 * passes.c (opt_pass::gt_ggc_mx): New. 22119 (opt_pass::gt_pch_nx): New. 22120 (opt_pass::gt_pch_nx_with_op): New. 22121 (pass_manager::gt_ggc_mx): New. 22122 (pass_manager::gt_pch_nx): New. 22123 (pass_manager::gt_pch_nx_with_op): New. 22124 (pass_manager::operator new): Use 22125 ggc_internal_cleared_alloc_stat rather than xcalloc. 22126 * pass_manager.h (class pass_manager): Add GTY((user)) marking. 22127 (pass_manager::gt_ggc_mx): New. 22128 (pass_manager::gt_pch_nx): New. 22129 (pass_manager::gt_pch_nx_with_op): New. 22130 * tree-pass.h (class opt_pass): Add GTY((user)) marking. 22131 (opt_pass::operator new): New. 22132 (opt_pass::gt_ggc_mx): New. 22133 (opt_pass::gt_pch_nx): New. 22134 (opt_pass::gt_pch_nx_with_op): New. 22135 221362013-08-20 David Malcolm <dmalcolm@redhat.com> 22137 22138 * Makefile.in (GTFILES): Add context.h. 22139 * context.c (gcc::context::operator new): New. 22140 (gcc::context::gt_ggc_mx): New. 22141 (gcc::context::gt_pch_nx): New. 22142 (gcc::context::gt_pch_nx): New. 22143 * context.h (gcc::context): Add GTY((user)) marking. 22144 (gcc::context::operator new): New. 22145 (gcc::context::gt_ggc_mx): New. 22146 (gcc::context::gt_pch_nx): New. 22147 (gcc::context::gt_pch_nx): New. 22148 (g): Add GTY marking. 22149 (gt_ggc_mx (gcc::context *)): New. 22150 (gt_pch_nx (gcc::context *)): New. 22151 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op, 22152 void *cookie)): New. 22153 * gengtype.c (open_base_files) <ifiles>: Add context.h. 22154 221552013-08-20 Alan Modra <amodra@gmail.com> 22156 22157 PR target/57865 22158 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust. 22159 (rs6000_emit_epilogue): Likewise. 22160 221612013-08-19 Dehao Chen <dehao@google.com> 22162 22163 * value-prof.c (gimple_ic): Fix the bug of adding EH edge. 22164 221652013-08-19 Peter Bergner <bergner@vnet.ibm.com> 22166 Jakub Jelinek <jakub@redhat.com> 22167 22168 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin. 22169 (BUILT_IN_FABSD64): Likewise. 22170 (BUILT_IN_FABSD128): Likewise. 22171 * builtins.c (expand_builtin): Add support for new DFP ABS builtins. 22172 (fold_builtin_1): Likewise. 22173 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping 22174 destination and source operands. 22175 (*abstd2_fpr): Likewise. 22176 (*nabstd2_fpr): Likewise. 22177 221782013-08-19 Richard Sandiford <rdsandiford@googlemail.com> 22179 22180 * config/mips/mips.c (mips_adjust_insn_length): Add checks for 22181 JUMP_P and INSN_P. 22182 221832013-08-19 Aldy Hernandez <aldyh@redhat.com> 22184 22185 * doc/invoke.texi (-fcilkplus): Clarify that implementation is 22186 incomplete. 22187 221882013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com> 22189 22190 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook. 22191 * builtins.c (default_libc_has_function): New. 22192 (gnu_libc_has_function): Ditto. 22193 (no_c99_libc_has_function): Ditto. 22194 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION 22195 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS. 22196 (fold_builtin_sincos): Likewise. 22197 (fold_builtin_cexp): Likewise. 22198 * builtins.def (DEF_C94_BUILTIN): Likewise. 22199 (DEF_C99_BUILTIN): Likewise. 22200 (DEF_C99_C90RES_BUILTIN): Likewise. 22201 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin 22202 definitions to using this define. 22203 * config/darwin-protos.h (darwin_libc_has_function): New. 22204 * config/darwin.c (darwin_libc_has_function): Ditto. 22205 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and 22206 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION. 22207 * config/darwin.h: Ditto. 22208 * config/elfos.h: Ditto. 22209 * config/freebsd.h: Ditto. 22210 * config/i386/cygming.h: Ditto. 22211 * config/i386/djgpp.h: Ditto. 22212 * config/i386/i386-interix.h: Ditto. 22213 * config/microblaze/microblaze.h: Ditto. 22214 * config/mmix/mmix.h: Ditto. 22215 * config/gnu-user.h: Ditto. 22216 * config/ia64/hpux.h: Ditto. 22217 * config/pa/pa-hpux.h: Ditto. 22218 * config/pdp11/pdp11.h: Ditto. 22219 * config/picochip/picochip.h: Ditto. 22220 * config/linux.h: Ditto. 22221 * config/netbsd.h: Ditto. 22222 * config/openbsd.h: Ditto. 22223 * config/rs6000/aix43.h: Ditto. 22224 * config/rs6000/aix51.h: Ditto. 22225 * config/rs6000/aix52.h: Ditto. 22226 * config/rs6000/aix53.h: Ditto. 22227 * config/rs6000/aix61.h: Ditto. 22228 * config/rs6000/darwin.h: Ditto. 22229 * config/rs6000/linux.h: Ditto. 22230 * config/rs6000/linux64.h: Ditto. 22231 * config/s390/tpf.h: Ditto. 22232 * config/sol2-10.h: Ditto. 22233 * config/sol2.h: Ditto. 22234 * config/vms/vms.h: Ditto. 22235 * config/vxworks.h: Ditto. 22236 * config/linux-android.c (linux_android_libc_has_function): 22237 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION. 22238 * config/linux-protos.h (linux_android_libc_has_function): 22239 New declaration. 22240 * config/i386/i386.c (ix86_libc_has_function): New. 22241 * config/i386/i386-protos.h 22242 (ix86_libc_has_function): New declaration. 22243 * config/i386/i386.md 22244 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION. 22245 ("isinf<mode>2): Likewise. 22246 * convert.c (convert_to_integer): Using new target hook 22247 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and 22248 TARGET_C99_FUNCTIONS. 22249 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto. 22250 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto. 22251 * coretypes.h (function_class): New enum for different 22252 classes of functions. 22253 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS. 22254 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation. 22255 (TARGET_HAS_SINCOS): Likewise. 22256 (TARGET_LIBC_HAS_FUNCTION): New. 22257 * doc/tm.texi: Regenerated. 22258 * targhooks.h (default_libc_has_function): New declaration. 22259 (no_c99_libc_has_function): Ditto. 22260 (gnu_libc_has_function): Ditto. 22261 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS 22262 and TARGET_HAS_SINCOS. 22263 222642013-08-18 Jan Hubicka <jh@suse.cz> 22265 22266 * Makeifle-in (ipa-devirt.o): New. 22267 (GTFILES): Add ipa-utils.h and ipa-devirt.c 22268 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals. 22269 (analyze_functions): Look into possible targets of polymorphic call. 22270 * dumpfile.c (dump_files): Add type-inheritance dump. 22271 * dumpfile.h (TDI_inheritance): New. 22272 * ipa-devirt.c: New file. 22273 * ipa-utils.h (odr_type_d): Forward declare. 22274 (odr_type): New type. 22275 (build_type_inheritance_graph): Declare. 22276 (possible_polymorphic_call_targets): Declare and introduce inline 22277 variant when only edge is pased. 22278 (dump_possible_polymorphic_call_targets): Likewise. 22279 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New. 22280 * tree.c (type_in_anonymous_namespace_p): Break out from ... 22281 (types_same_for_odr): ... here. 22282 * tree.h (type_in_anonymous_namespace_p): Declare. 22283 222842013-08-18 Jakub Jelinek <jakub@redhat.com> 22285 22286 PR tree-optimization/58006 22287 * tree-parloops.c (take_address_of): Don't ICE if get_name 22288 returns NULL. 22289 (eliminate_local_variables_stmt): Remove clobber stmts. 22290 222912013-08-18 Eric Botcazou <ebotcazou@adacore.com> 22292 22293 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the 22294 error message is issued for an alias to undefined symbol. 22295 222962013-08-18 Jan Hubicka <jh@suse.cz> 22297 22298 * cgraph.c (cgraph_create_indirect_edge): Discover 22299 polymorphic calls and record basic info into indirect_info. 22300 * gimple-fold.c (gimple_fold_call): When doing BINFO based 22301 devirtualization, ignore objc function calls. 22302 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic 22303 call with no parm index info. 22304 * ipa-prop.c (ipa_analyze_call_uses): Likewise. 22305 * tree.c (virtual_method_call_p): New function. 22306 * tree.h (virtual_method_call_p): Declare. 22307 223082013-08-16 Jan Hubicka <jh@suse.cz> 22309 22310 PR middle-end/58179 22311 * tree.c (obj_type_ref_class): Do not ICE on non-method calls. 22312 223132013-08-16 David Edelsohn <dje.gcc@gmail.com> 22314 22315 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length 22316 attribute. 22317 223182013-08-16 David Malcolm <dmalcolm@redhat.com> 22319 22320 * gengtype.c (type_for_name): Add special-case support for 22321 locating types within the "gcc::" namespace. 22322 (open_base_files): Emit a "using namespace gcc" directive. 22323 223242013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com> 22325 22326 PR target/58160 22327 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the 22328 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND. 22329 22330 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands 22331 array instead of each individual operand as a separate argument. 22332 (emit_fusion_gpr_load): Likewise. 22333 (expand_fusion_gpr_load): Add new function declaration. 22334 22335 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling 22336 signature to have the operands passed as an array, instead of as 22337 separate arguments. Allow ZERO_EXTEND to be in the memory 22338 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not 22339 depend on the register live/dead flags when peepholes are run. 22340 (expand_fusion_gpr_load): New function to be called from the 22341 peephole2 pass, to change the register that addis sets to be the 22342 target register. 22343 (emit_fusion_gpr_load): Change the calling signature to have the 22344 operands passed as an array, instead of as separate arguments. 22345 Allow ZERO_EXTEND to be in the memory address, and also 22346 SIGN_EXTEND if -mpower8-fusion-sign. 22347 22348 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused 22349 unspec enumeration. 22350 (power8 fusion peephole/peephole2): Rework the fusion peepholes to 22351 adjust the register addis loads up in the peephole2 pass. Do not 22352 depend on the register live/dead state when the peephole pass is done. 22353 223542013-08-16 David Malcolm <dmalcolm@redhat.com> 22355 22356 * gengtype.c (create_user_defined_type): Ensure that the kind 22357 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete 22358 declaration is seen before the GTY((user)) marking. 22359 223602013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de> 22361 22362 PR target/58105 22363 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE. 22364 223652013-08-16 Jan Hubicka <jh@suse.cz> 22366 22367 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new 22368 arugment expected_type. 22369 (gimple_fold_call): Use it. 22370 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype. 22371 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update. 22372 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class. 22373 (try_make_edge_direct_virtual_call): Likewise. 22374 * tree.c (obj_type_ref_class): New. 22375 * tree.h (obj_type_ref_class): Use it. 22376 223772013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net> 22378 22379 * sched-vis.c (rtl_slim_pp_initialized): Remove. 22380 (rtl_slim_pp): Likewise. 22381 (init_rtl_slim_pretty_print): Likewise. 22382 (dump_value_slim): Don't call it. Use local pretty printer. 22383 (dump_insn_slim): Likewise. 22384 (dump_rtl_slim): Likewise. 22385 (str_pattern_slim): Likewise. 22386 * tree-mudflap.c (mf_varname_tree): Use local pretty printer. 22387 Simplify. 22388 223892013-08-16 Jakub Jelinek <jakub@redhat.com> 22390 22391 PR tree-optimization/58164 22392 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr 22393 walk gimple_goto_dest of GIMPLE_GOTO. 22394 22395 PR tree-optimization/58165 22396 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If 22397 bi_call must be the last stmt in a bb, don't split_block, instead 22398 use fallthru edge from it and give up if there is none. 22399 Release conds vector when returning early. 22400 224012013-08-14 Xinliang David Li <davidxl@google.com> 22402 22403 * config/i386/i386.c (ix86_option_override_internal): 22404 Remove unused variable and field. 22405 224062013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 22407 22408 PR target/57949 22409 * doc/invoke.texi: Add documentation of mcompat-align-parm option. 22410 * config/rs6000/rs6000.opt: Add mcompat-align-parm option. 22411 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX 22412 and Linux, correct BLKmode alignment when 128-bit alignment is 22413 required and compatibility flag is not set. 22414 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment 22415 for zero-size arguments when compatibility flag is not set. 22416 224172013-08-14 Jakub Jelinek <jakub@redhat.com> 22418 22419 PR tree-optimization/58145 22420 * tree-sra.c (build_ref_for_offset): If prev_base has 22421 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF. 22422 224232013-08-14 Xinliang David Li <davidxl@google.com> 22424 22425 * config/i386/i386.c (ix86_option_override_internal): 22426 Fix uninitialized variable error. 22427 224282013-08-14 Xinliang David Li <davidxl@google.com> 22429 22430 * config/i386/i386.opt: Define two new options. 22431 * config/i386/x86-tune.def: Add arch selector field in macros. 22432 * config/i386/i386.h: Adjust macro definition. 22433 * config/i386/i386.c (ix86_option_override_internal): 22434 Refactor the code. 22435 (parse_mtune_ctrl_str): New function. 22436 (set_ix86_tune_features): New function. 22437 (ix86_function_specific_restore): Call the new helper function. 22438 224392013-08-14 Andrey Belevantsev <abel@ispras.ru> 22440 22441 PR rtl-optimization/57662 22442 * sel-sched.c (code_motion_process_successors): When the current insn 22443 is removed after the recursive traversal, break from the loop. 22444 Add comments and debug printouts. 22445 224462013-08-14 Jakub Jelinek <jakub@redhat.com> 22447 Alexandre Oliva <aoliva@redhat.com> 22448 22449 PR target/58067 22450 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC 22451 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle 22452 there also UNSPEC_PLTOFF. 22453 224542013-08-14 Marek Polacek <polacek@redhat.com> 22455 22456 * ipa-inline-analysis.c (add_clause): Avoid shifting integer 22457 NUM_CONDITIONS bit positions. 22458 224592013-08-13 Cary Coutant <ccoutant@google.com> 22460 22461 * dwarf2out.c (CHECKSUM_BLOCK): New macro. 22462 (attr_checksum): Hash vector contents instead of pointer. 22463 (attr_checksum_ordered): Likewise. 22464 224652013-08-13 Uros Bizjak <ubizjak@gmail.com> 22466 22467 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix 22468 when Pmode != word_mode. Add length_address attribute. 22469 (sse3_monitor_<mode>): Merge from sse3_monitor and 22470 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when 22471 Pmode != word_mode. Update insn length attribute. 22472 * config/i386/i386.c (ix86_option_override_internal): Update 22473 ix86_gen_monitor selection for merged sse3_monitor insn. 22474 224752013-08-13 Julian Brown <julian@codesourcery.com> 22476 22477 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't 22478 perform invalid legitimization on greater-than-word-size modes for 22479 TARGET_E500_DOUBLE. 22480 224812013-08-13 Vladimir Makarov <vmakarov@redhat.com> 22482 22483 * ira.c (setup_class_translate_array): Use aclass instead of cl 22484 for classes not fully covered by allocno classes. 22485 224862013-08-13 Jakub Jelinek <jakub@redhat.com> 22487 22488 PR tree-optimization/57661 22489 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field. 22490 * tree-inline.c (tree_function_versioning): Initialize it. 22491 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts 22492 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block 22493 that is not being copied. 22494 22495 PR sanitizer/56417 22496 * asan.c (instrument_strlen_call): Fix typo in comment. 22497 Use char * type even for the lhs of POINTER_PLUS_EXPR. 22498 224992013-08-13 Steve Ellcey <sellcey@mips.com> 22500 22501 * config/mips/mips.md (prefetch): Use lw instead of ld on 22502 loongson in 32bit mode. 22503 225042013-08-13 Nick Clifton <nickc@redhat.com> 22505 22506 * config.gcc: (avr-linux): Allow for tmake_file not being empty. 22507 225082013-08-13 Jan Hubicka <jh@suse.cz> 22509 22510 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly 22511 introduced edge; fix typo in sanity check. 22512 (cgraph_resolve_speculation): Export; improve diagnostic. 22513 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel 22514 speculation at type mismatch. 22515 * cgraph.h (cgraph_turn_edge_to_speculative): Update. 22516 (cgraph_resolve_speculation): Declare. 22517 (symtab_can_be_discarded): New function. 22518 * value-prof.c (gimple_ic_transform): Remove actual transform code. 22519 * ipa-inline-transform.c (speculation_removed): New global var. 22520 (clone_inlined_nodes): See if speculation can be removed. 22521 (inline_call): If speculations was removed, we growths may not match. 22522 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter. 22523 (speculation_useful_p): New function. 22524 (resolve_noninline_speculation): New function. 22525 (inline_small_functions): Resolve useless speculations. 22526 * ipa-inline.h (speculation_useful_p): Declare 22527 * ipa.c (can_replace_by_local_alias): Simplify. 22528 (ipa_profile): Produce speculative calls in non-lto, too; 22529 add simple cost model; produce local aliases. 22530 225312013-08-13 David Malcolm <dmalcolm@redhat.com> 22532 22533 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to 22534 PASS_MANAGER_H. 22535 225362013-08-12 Paolo Carlini <paolo.carlini@oracle.com> 22537 22538 * config/i386/i386.c (ix86_function_versions): Use error + inform. 22539 225402013-08-12 Uros Bizjak <ubizjak@gmail.com> 22541 22542 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode 22543 iterator instead of X87MODEF. 22544 225452013-08-12 Perez Read <netfirewall@gmail.com> 22546 22547 PR target/58132 22548 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before 22549 operand 0 for intel asm alternative. 22550 (*movabs<mode>_2): Ditto for operand 1. 22551 225522013-08-12 James Greenhalgh <james.greenhalgh@arm.com> 22553 22554 * config/aarch64/arm_none.h 22555 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call. 22556 225572013-08-12 Nick Clifton <nickc@redhat.com> 22558 22559 * config.gcc (m32r-linux): Allow for tmake_file not being empty. 22560 225612013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com> 22562 22563 * config/i386/i386.md (floatunssi<mode>2 expand): Add new 22564 expand for QI/HImode operand to produce more effictive code for 22565 unsigned char(short) --> float(double) conversion. 22566 225672013-08-12 Alexander Monakov <amonakov@ispras.ru> 22568 22569 * doc/invoke.texi: Mention that -ftls-model does not force the final 22570 model. 22571 225722013-08-12 Marek Polacek <polacek@redhat.com> 22573 Marc Glisse <marc.glisse@inria.fr> 22574 22575 PR tree-optimization/57980 22576 * tree-tailcall.c (process_assignment): Call build_minus_one_cst 22577 when creating -1 constant. 22578 225792013-08-10 Jan Hubicka <jh@suse.cz> 22580 22581 Workaround binutils PR14342. 22582 * tree-profile.c (init_ic_make_global_vars): Add LTO path. 22583 (gimple_init_edge_profiler): Likewise. 22584 (gimple_gen_ic_func_profiler): Likewise. 22585 225862013-08-09 Jan Hubicka <jh@suse.cz> 22587 22588 * cgraph.c (cgraph_create_edge_1): Clear speculative flag. 22589 225902013-08-09 Xinliang David Li <davidxl@google.com> 22591 22592 * config/i386/stringop.def: New file. 22593 * config/i386/stringop.opt: New file. 22594 * config/i386/i386-opts.h: Include stringopt.def. 22595 * config/i386/i386.opt: Include stringopt.opt. 22596 * config/i386/i386.c (ix86_option_override_internal): 22597 Override default size based stringop inline strategies with options. 22598 * config/i386/i386.c (ix86_parse_stringop_strategy_string): 22599 New function. 22600 226012013-08-09 Jan Hubicka <jh@suse.cz> 22602 22603 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too. 22604 226052013-08-09 Jan Hubicka <jh@suse.cz> 22606 22607 * cgraph.c (cgraph_resolve_speculation): Cut frequency to 22608 CGRAPH_FREQ_MAX. 22609 (dump_cgraph_node): Dump profile-id. 22610 * cgraph.h (cgraph_indirect_call_info): Add common_target_id 22611 and common_target_probability. 22612 * lto-cgraph.c (lto_output_edge): Stream common targets. 22613 (lto_output_node): Stream profile ids. 22614 (input_node): Stream profile ids. 22615 (input_edge): Stream common targets. 22616 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting. 22617 * ipa.c: Include value-prof.h 22618 (ipa_profile_generate_summary): Turn indirect call statement histograms 22619 into common targets. 22620 (ipa_profile): Turn common targets into speculative edges. 22621 226222013-08-09 Jan Hubicka <jh@suse.cz> 22623 22624 * cgraph.h (cgraph_node): Add profile_id. 22625 * value-prof.c (cgraph_node_map): Turn into pointer_map. 22626 (init_node_map): Rewrite to handle hashes increas of incremental IDs. 22627 (del_node_map): Update. 22628 (find_func_by_funcdef_no): Replace by ... 22629 (find_func_by_profile_id): ... this one. 22630 (gimple_ic_transform): Do not remove useful histograms when 22631 speculation is not done; dump info when indirect call removal 22632 can happen at LTO. 22633 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare. 22634 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ... 22635 (__gcov_indirect_call_profiler_v2): .. this one. 22636 * profile.h (init_node_map): Update. 22637 * coverage.c (coverage_compute_profile_id): New function. 22638 * coverage.h (coverage_compute_profile_id): Declare. 22639 * tree-profile.c (init_ic_make_global_vars): Make 22640 __gcov_indirect_call_callee and __gcov_indirect_call_counters global. 22641 (gimple_init_edge_profiler): Update prototype of 22642 __gcov_indirect_call_profiler. 22643 (gimple_gen_ic_func_profiler): Simplify. 22644 (tree_profiling): Use init_node_map 22645 226462013-08-09 Jan Hubicka <jh@suse.cz> 22647 22648 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only 22649 non-speculative refs. 22650 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function. 22651 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls. 22652 (cgraph_set_call_stmt): Likewise. 22653 (cgraph_create_edge_1): Fix release checking compilatoin; 22654 clear lto_stmt_uid. 22655 (cgraph_free_edge): Free indirect info. 22656 (cgraph_turn_edge_to_speculative): New function. 22657 (cgraph_speculative_call_info): New function. 22658 (cgraph_make_edge_direct): Return direct edge; handle speculation. 22659 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges. 22660 (dump_cgraph_node): Dump speculation. 22661 (verify_edge_count_and_frequency): Accept speculative edges. 22662 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph. 22663 (verify_cgraph_node): Handle speculation. 22664 * cgraph.h (cgraph_edge): Add SPECULATIVE flag. 22665 (cgraph_set_call_stmt): Update prototype. 22666 (cgraph_make_edge_direct): Update prototype. 22667 (cgraph_speculative_call_info): Declare. 22668 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge 22669 to change; update call of ipa_find_references. 22670 * ipa-ref.c (ipa_record_reference): Fix return value; clear 22671 lto_stmt_uid and speculative flags. 22672 (ipa_dump_references): Dump speculation. 22673 (ipa_clone_references): Clone speculative flag. 22674 (ipa_clone_referring): Likewise. 22675 (ipa_clone_ref): New function. 22676 (ipa_find_reference): Look into lto_stmt_uids 22677 (ipa_clear_stmts_in_references): Do not clear speculative calls. 22678 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags. 22679 (ipa_find_reference): Update declaration. 22680 (ipa_clone_ref): Declare. 22681 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0; 22682 stream speculative flag. 22683 (lto_output_ref): Stream statements uids and speculation. 22684 (input_ref): Likewise. 22685 (input_edge): Stream speuclation. 22686 * cgraphclones.c (cgraph_clone_edge): Clone speculation. 22687 (cgraph_set_call_stmt_including_clones): Handle speculation. 22688 * ipa-inline.c (heap_edge_removal_hook): New function. 22689 (inline_small_functions): Register it. 22690 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking; 22691 also initialize refs. 22692 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for 22693 edge to change. 22694 (try_make_edge_direct_simple_call): Likewise. 22695 (try_make_edge_direct_simple_call): Likewise. 22696 (update_indirect_edges_after_inlining): Likewise. 22697 (remove_described_reference): Look proper lto_stmt_uid. 22698 (propagate_controlled_uses): Likewise. 22699 (propagate_controlled_uses): Liekwise. 22700 * tree-inline.c (copy_bb): Copy speculative edges. 22701 (redirect_all_calls): New function. 22702 (copy_cfg_body): Do redirection after loop info is updated. 22703 (delete_unreachable_blocks_update_callgraph): Updadte speculation. 22704 227052013-08-09 Jan Hubicka <jh@suse.cz> 22706 22707 * lto-streamer-out.c (output_function): Renumber PHIs. 22708 * lto-streamer-in.c (input_function): Likewise. 22709 227102013-08-09 James Greenhalgh <james.greenhalgh@arm.com> 22711 22712 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove. 22713 (get_lane_unsigned): Likewise. 22714 (dup_lane_scalar): Likewise. 22715 (get_lane): enable for VALL. 22716 * config/aarch64/aarch64-simd.md 22717 (aarch64_dup_lane_scalar<mode>): Remove. 22718 (aarch64_get_lane_signed<mode>): Likewise. 22719 (aarch64_get_lane_unsigned<mode>): Likewise. 22720 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New. 22721 (aarch64_get_lane_zero_extendsi<mode>): Likewise. 22722 (aarch64_get_lane<mode>): Enable for all vector modes. 22723 (aarch64_get_lanedi): Remove misleading constraints. 22724 * config/aarch64/arm_neon.h 22725 (__aarch64_vget_lane_any): Define. 22726 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise. 22727 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros. 22728 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise. 22729 * config/aarch64/iterators.md (VDQQH): New. 22730 (VDQQHS): Likewise. 22731 (vwcore): Likewise. 22732 227332013-08-09 Eric Botcazou <ebotcazou@adacore.com> 22734 22735 * configure.ac: Add GAS check for LEON instructions on SPARC. 22736 * configure: Regenerate. 22737 * config.in: Likewise. 22738 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the 22739 sparc*-*-* block. 22740 * config/sparc/sparc.opt (LEON, LEON3): New masks. 22741 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG 22742 for LEON or LEON3. 22743 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3. 22744 (AS_LEON_FLAG): New macro. 22745 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon 22746 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined. 22747 Deal with LEON and LEON3 for the memory model. 22748 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3 22749 (atomic_compare_and_swap<mode>_1): Likewise. 22750 (*atomic_compare_and_swap<mode>_1): Likewise. 22751 227522013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org> 22753 22754 * config/arm/neon.md (vcond): Fix floating-point vector 22755 comparisons against 0. 22756 227572013-08-08 Vladimir Makarov <vmakarov@redhat.com> 22758 22759 * lra-constraints.c (emit_spill_move): Remove assert. 22760 (process_alt_operands): Add more debugging 22761 output. Increase reject for spilling into memory. Decrease 22762 reject for reloading scratch. 22763 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE. 22764 227652013-08-08 Steve Ellcey <sellcey@mips.com> 22766 22767 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008. 22768 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and 22769 micromips incompatible. Add nan2008. 22770 (MULTILIB_DIRNAMES): Add nan2008. 22771 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry. 22772 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16 22773 and micromips incompatible. Add nan2008. 22774 (MULTILIB_DIRNAMES): Add nan2008. 22775 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry. 22776 227772013-08-08 Richard Sandiford <rdsandiford@googlemail.com> 22778 22779 PR rtl-optimization/58079 22780 * combine.c (combine_simplify_rtx): Avoid using SUBST if 22781 simplify_comparison has widened a comparison with an integer. 22782 227832013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 22784 22785 * config/arm/neon.md (movmisalign<mode>): Disable when we 22786 don't allow unaligned accesses. 22787 (*movmisalign<mode>_neon_store): Likewise. 22788 (*movmisalign<mode>_neon_load): Likewise. 22789 (*movmisalign<mode>_neon_store): Likewise. 22790 (*movmisalign<mode>_neon_load): Likewise. 22791 227922013-08-08 Jan Hubicka <jh@suse.cz> 22793 22794 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs. 22795 (make_pass_rebuild_cgraph_edges): Also clear references. 22796 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier. 22797 * ipa-inline-transform.c (inline_transform): Remove all references 22798 after inlining. 22799 * cgraphunit.c (expand_function): Remove all references after 22800 expansion. 22801 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting. 22802 (ipa_find_reference): Rewrite to iterator. 22803 (remove_stmt_references): Likewise. 22804 (ipa_clear_stmts_in_references): New function. 22805 * ipa-ref.h (ipa_clear_stmts_in_references): Declare. 22806 * cgraphclones.c (cgraph_materialize_all_clones): Remove or 22807 clear references. 22808 * ipa-split.c (split_function): Remove references in split function. 22809 228102013-08-08 Richard Earnshaw <rearnsha@arm.com> 22811 22812 PR target/57431 22813 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern. 22814 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX. 22815 228162013-08-08 Richard Earnshaw <rearnsha@arm.com> 22817 22818 PR target/56979 22819 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the 22820 suggested mode for the assignment isn't compatible with the 22821 registers required. 22822 228232013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de> 22824 22825 PR target/58065 22826 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define. 22827 228282013-08-07 Xinliang David Li <davidxl@google.com> 22829 22830 * config/i386/i386.opt: New option -mtune-ctrl=. 22831 * config/i386/x86-tune.def: New file. 22832 * config/i386/i386.h: include x86-tune.def. 22833 * config/i386/i386.c (ix86_option_override_internal): 22834 Parsing -mtune-ctrl= option and set tune features. 22835 228362013-08-07 Oleg Endo <olegendo@gcc.gnu.org> 22837 22838 PR other/12081 22839 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef. 22840 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN 22841 to gen_2arg_fn_t. 22842 228432013-08-07 Eric Botcazou <ebotcazou@adacore.com> 22844 22845 * rtl.h (update_alignments): Declare. 22846 * final.c (grow_label_align): New function extracted from... 22847 (shorten_branches): ...here. Call it. 22848 (update_alignments): New function. 22849 * reorg.c (sibling_labels): New variable. 22850 (get_label_before): Add SIBLING parameter. If it is non-zero, push 22851 the new label along with it onto the sibling_labels vector. 22852 (fill_simple_delay_slots): Adjust call to get_label_before. 22853 (fill_slots_from_thread): Likewise. 22854 (relax_delay_slots): Likewise. 22855 (make_return_insns): Likewise. 22856 (dbr_schedule): Invoke update_alignment on the sibling_labels vector. 22857 228582013-08-07 Eric Botcazou <ebotcazou@adacore.com> 22859 22860 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and 22861 document its semantics. 22862 (diagnostic_report_diagnostic): Adjust accordingly. 22863 228642013-08-07 David Malcolm <dmalcolm@redhat.com> 22865 22866 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into... 22867 (sparc_option_override): ...and port to new C++ pass API. 22868 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H 22869 228702013-08-07 Peter Bergner <bergner@vnet.ibm.com> 22871 22872 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove. 22873 228742013-08-06 Caroline Tice <cmtice@google.com> 22875 22876 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition. 22877 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC. 22878 * tree-pass.h: Add pass_vtable_verify. 22879 * varasm.c (assemble_variable): Add code to properly set the comdat 22880 section and name for the .vtable_map_vars section. 22881 (assemble_vtyv_preinit_initializer): New function. 22882 (default_sectin_type_flags): Make sure .vtable_map_vars section has 22883 LINK_ONCE flag. 22884 * output.h: Add function decl for assemble_vtv_preinit_initializer. 22885 * vtable-verify.c: New file. 22886 * vtable-verify.h: New file. 22887 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify 22888 initialiation levels. 22889 * timevar.def (TV_VTABLE_VERIFICATION): New definition. 22890 * passes.def: Insert pass_vtable_verify. 22891 * aclocal.m4: Reorder includes. 22892 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and 22893 -fvtv-counts options. 22894 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o, 22895 as appropriate, if -fvtable-verify=... is used. 22896 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if 22897 -fvtable-verify=... is used. 22898 * Makefile.in (OBJS): Add vtable-verify.o to list. 22899 (vtable-verify.o): Add new build rule. 22900 (GTFILES): Add vtable-verify.c to list. 22901 * common.opt (fvtable-verify=): New flag. 22902 (vtv_priority): Values for fvtable-verify= flag. 22903 (fvtv-counts): New flag. 22904 (fvtv-debug): New flag. 22905 * tree.h (save_vtable_map_decl): New extern function decl. 22906 229072013-08-07 David Malcolm <dmalcolm@redhat.com> 22908 22909 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to... 22910 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with... 22911 (pass_data_rl78_devirt): ...new pass_data instance and... 22912 (make_pass_rl78_devirt): ...new function. 22913 (rl78_asm_file_start): Port pass registration to new C++ API. 22914 229152013-08-07 David Malcolm <dmalcolm@redhat.com> 22916 22917 * coretypes.h (rtl_opt_pass): Add. 22918 (gcc::context): Add. 22919 * config/epiphany/epiphany.c (pass_mode_switch_use): New. 22920 (epiphany_init): Port to new C++ pass API. 22921 (epiphany_optimize_mode_switching): Likewise. 22922 * pass_manager.h (pass_manager::get_pass_split_all_insns): New. 22923 (pass_manager::get_pass_mode_switching): New. 22924 (pass_manager::get_pass_peephole2): New. 22925 * mode-switching.c (pass_mode_switching): Add clone method. 22926 * recog.c (pass_peephole2): Add clone method. 22927 (pass_split_all_insns): Add clone method. 22928 229292013-08-06 David Malcolm <dmalcolm@redhat.com> 22930 22931 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into... 22932 (mips_option_override): ...here, porting to new C++ API for passes. 22933 229342013-08-06 Jan Hubicka <jh@suse.cz> 22935 22936 * cgraph.c (cgraph_get_body): New function based on lto.c 22937 implementation. 22938 * cgraph.h (cgraph_get_body): Declare. 22939 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and 22940 LTO paths. 22941 * cgraphunit.c (expand_function): Get body prior expanding. 22942 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test. 22943 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't 22944 really need. 22945 * passes.c (do_per_function_toporder): Get body. 22946 * tree-inline.c (expand_call_inline): Get body prior inlining it. 22947 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones. 22948 229492013-08-06 Martin Jambor <mjambor@suse.cz> 22950 22951 PR fortran/57987 22952 * cgraphunit.c (cgraph_finalize_function): Assert that nested function 22953 is not re-finalized. Rename second parameter to no_collect. 22954 229552013-08-06 Martin Jambor <mjambor@suse.cz> 22956 22957 PR middle-end/58041 22958 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built 22959 MEM_REF has proper alignment information. 22960 229612013-08-05 Oleg Endo <olegendo@gcc.gnu.org> 22962 22963 PR other/12081 22964 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new 22965 class insn_gen_fn. 22966 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument 22967 rtx (*) (rtx, ...) with insn_gen_fn. 22968 * genoutput.c (output_insn_data): Cast gen_? function pointers to 22969 insn_gen_fn::stored_funcptr. Add initializer braces. 22970 229712013-08-05 David Malcolm <dmalcolm@redhat.com> 22972 22973 Rewrite how instances of passes are cloned to remove assumptions 22974 about their sizes (thus allowing pass subclasses to have 22975 additional data fields, albeit non-GC-managed ones at this point). 22976 22977 * passes.c (make_pass_instance): Now that passes have clone 22978 methods, rewrite this function to eliminate XNEW and memcpy 22979 calls that used hardcoded sizes. Since this function no longer 22980 creates pass instances, rename it to... 22981 (add_pass_instance): ...this. Document the old way that passes were 22982 numbered and flagged, and rework this function to continue using it. 22983 (next_pass_1): Add an initial_pass argument for use by 22984 add_pass_instance. 22985 (position_pass): When adding multiple instances of a pass, use 22986 the pass's clone method, rather than relying on the XNEW/memcpy 22987 within the former make_pass_instance (now add_pass_instance). 22988 (pass_manager::pass_manager): When invoking next_pass_1, also supply 22989 the initial instance of the current pass within the pass manager. 22990 229912013-08-05 David Malcolm <dmalcolm@redhat.com> 22992 22993 This is the automated part of the conversion of passes from C 22994 structs to C++ classes. 22995 22996 Patch autogenerated by refactor_passes.py from 22997 https://github.com/davidmalcolm/gcc-refactoring-scripts 22998 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e 22999 23000 * asan.c (pass_asan): Convert from a global struct to a subclass of 23001 gimple_opt_pass along with... 23002 (pass_data_asan): ...new pass_data instance and... 23003 (make_pass_asan): ...new function. 23004 (pass_asan_O0): Convert from a global struct to a subclass of 23005 gimple_opt_pass along with... 23006 (pass_data_asan_O0): ...new pass_data instance and... 23007 (make_pass_asan_O0): ...new function. 23008 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a 23009 subclass of rtl_opt_pass along with... 23010 (pass_data_inc_dec): ...new pass_data instance and... 23011 (make_pass_inc_dec): ...new function. 23012 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to 23013 a subclass of rtl_opt_pass along with... 23014 (pass_data_reorder_blocks): ...new pass_data instance and... 23015 (make_pass_reorder_blocks): ...new function. 23016 (pass_duplicate_computed_gotos): Convert from a global struct to a 23017 subclass of rtl_opt_pass along with... 23018 (pass_data_duplicate_computed_gotos): ...new pass_data instance and... 23019 (make_pass_duplicate_computed_gotos): ...new function. 23020 (pass_partition_blocks): Convert from a global struct to a subclass of 23021 rtl_opt_pass along with... 23022 (pass_data_partition_blocks): ...new pass_data instance and... 23023 (make_pass_partition_blocks): ...new function. 23024 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global 23025 struct to a subclass of rtl_opt_pass along with... 23026 (pass_data_branch_target_load_optimize1): ...new pass_data instance 23027 and... 23028 (make_pass_branch_target_load_optimize1): ...new function. 23029 (pass_branch_target_load_optimize2): Convert from a global struct to a 23030 subclass of rtl_opt_pass along with... 23031 (pass_data_branch_target_load_optimize2): ...new pass_data instance 23032 and... 23033 (make_pass_branch_target_load_optimize2): ...new function. 23034 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass 23035 of rtl_opt_pass along with... 23036 (pass_data_jump): ...new pass_data instance and... 23037 (make_pass_jump): ...new function. 23038 (pass_jump2): Convert from a global struct to a subclass of 23039 rtl_opt_pass along with... 23040 (pass_data_jump2): ...new pass_data instance and... 23041 (make_pass_jump2): ...new function. 23042 * cfgexpand.c (pass_expand): Convert from a global struct to a 23043 subclass of rtl_opt_pass along with... 23044 (pass_data_expand): ...new pass_data instance and... 23045 (make_pass_expand): ...new function. 23046 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass 23047 of rtl_opt_pass along with... 23048 (pass_data_free_cfg): ...new pass_data instance and... 23049 (make_pass_free_cfg): ...new function. 23050 (pass_into_cfg_layout_mode): Convert from a global struct to a 23051 subclass of rtl_opt_pass along with... 23052 (pass_data_into_cfg_layout_mode): ...new pass_data instance and... 23053 (make_pass_into_cfg_layout_mode): ...new function. 23054 (pass_outof_cfg_layout_mode): Convert from a global struct to a 23055 subclass of rtl_opt_pass along with... 23056 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and... 23057 (make_pass_outof_cfg_layout_mode): ...new function. 23058 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global 23059 struct to a subclass of gimple_opt_pass along with... 23060 (pass_data_build_cgraph_edges): ...new pass_data instance and... 23061 (make_pass_build_cgraph_edges): ...new function. 23062 (pass_rebuild_cgraph_edges): Convert from a global struct to a 23063 subclass of gimple_opt_pass along with... 23064 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and... 23065 (make_pass_rebuild_cgraph_edges): ...new function. 23066 (pass_remove_cgraph_callee_edges): Convert from a global struct to a 23067 subclass of gimple_opt_pass along with... 23068 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance 23069 and... 23070 (make_pass_remove_cgraph_callee_edges): ...new function. 23071 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global 23072 struct to a subclass of rtl_opt_pass along with... 23073 (pass_data_stack_adjustments): ...new pass_data instance and... 23074 (make_pass_stack_adjustments): ...new function. 23075 * combine.c (pass_combine): Convert from a global struct to a subclass 23076 of rtl_opt_pass along with... 23077 (pass_data_combine): ...new pass_data instance and... 23078 (make_pass_combine): ...new function. 23079 * compare-elim.c (pass_compare_elim_after_reload): Convert from a 23080 global struct to a subclass of rtl_opt_pass along with... 23081 (pass_data_compare_elim_after_reload): ...new pass_data instance 23082 and... 23083 (make_pass_compare_elim_after_reload): ...new function. 23084 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass 23085 of rtl_opt_pass along with... 23086 (pass_data_rtl_cprop): ...new pass_data instance and... 23087 (make_pass_rtl_cprop): ...new function. 23088 * cse.c (pass_cse): Convert from a global struct to a subclass of 23089 rtl_opt_pass along with... 23090 (pass_data_cse): ...new pass_data instance and... 23091 (make_pass_cse): ...new function. 23092 (pass_cse2): Convert from a global struct to a subclass of 23093 rtl_opt_pass along with... 23094 (pass_data_cse2): ...new pass_data instance and... 23095 (make_pass_cse2): ...new function. 23096 (pass_cse_after_global_opts): Convert from a global struct to a 23097 subclass of rtl_opt_pass along with... 23098 (pass_data_cse_after_global_opts): ...new pass_data instance and... 23099 (make_pass_cse_after_global_opts): ...new function. 23100 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass 23101 of rtl_opt_pass along with... 23102 (pass_data_ud_rtl_dce): ...new pass_data instance and... 23103 (make_pass_ud_rtl_dce): ...new function. 23104 (pass_fast_rtl_dce): Convert from a global struct to a subclass of 23105 rtl_opt_pass along with... 23106 (pass_data_fast_rtl_dce): ...new pass_data instance and... 23107 (make_pass_fast_rtl_dce): ...new function. 23108 * df-core.c (pass_df_initialize_opt): Convert from a global struct to 23109 a subclass of rtl_opt_pass along with... 23110 (pass_data_df_initialize_opt): ...new pass_data instance and... 23111 (make_pass_df_initialize_opt): ...new function. 23112 (pass_df_initialize_no_opt): Convert from a global struct to a 23113 subclass of rtl_opt_pass along with... 23114 (pass_data_df_initialize_no_opt): ...new pass_data instance and... 23115 (make_pass_df_initialize_no_opt): ...new function. 23116 (pass_df_finish): Convert from a global struct to a subclass of 23117 rtl_opt_pass along with... 23118 (pass_data_df_finish): ...new pass_data instance and... 23119 (make_pass_df_finish): ...new function. 23120 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of 23121 rtl_opt_pass along with... 23122 (pass_data_rtl_dse1): ...new pass_data instance and... 23123 (make_pass_rtl_dse1): ...new function. 23124 (pass_rtl_dse2): Convert from a global struct to a subclass of 23125 rtl_opt_pass along with... 23126 (pass_data_rtl_dse2): ...new pass_data instance and... 23127 (make_pass_rtl_dse2): ...new function. 23128 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a 23129 subclass of rtl_opt_pass along with... 23130 (pass_data_dwarf2_frame): ...new pass_data instance and... 23131 (make_pass_dwarf2_frame): ...new function. 23132 * except.c (pass_set_nothrow_function_flags): Convert from a global 23133 struct to a subclass of rtl_opt_pass along with... 23134 (pass_data_set_nothrow_function_flags): ...new pass_data instance 23135 and... 23136 (make_pass_set_nothrow_function_flags): ...new function. 23137 (pass_convert_to_eh_region_ranges): Convert from a global struct to a 23138 subclass of rtl_opt_pass along with... 23139 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance 23140 and... 23141 (make_pass_convert_to_eh_region_ranges): ...new function. 23142 * final.c (pass_compute_alignments): Convert from a global struct to a 23143 subclass of rtl_opt_pass along with... 23144 (pass_data_compute_alignments): ...new pass_data instance and... 23145 (make_pass_compute_alignments): ...new function. 23146 (pass_final): Convert from a global struct to a subclass of 23147 rtl_opt_pass along with... 23148 (pass_data_final): ...new pass_data instance and... 23149 (make_pass_final): ...new function. 23150 (pass_shorten_branches): Convert from a global struct to a subclass of 23151 rtl_opt_pass along with... 23152 (pass_data_shorten_branches): ...new pass_data instance and... 23153 (make_pass_shorten_branches): ...new function. 23154 (pass_clean_state): Convert from a global struct to a subclass of 23155 rtl_opt_pass along with... 23156 (pass_data_clean_state): ...new pass_data instance and... 23157 (make_pass_clean_state): ...new function. 23158 * function.c (pass_instantiate_virtual_regs): Convert from a global 23159 struct to a subclass of rtl_opt_pass along with... 23160 (pass_data_instantiate_virtual_regs): ...new pass_data instance and... 23161 (make_pass_instantiate_virtual_regs): ...new function. 23162 (pass_leaf_regs): Convert from a global struct to a subclass of 23163 rtl_opt_pass along with... 23164 (pass_data_leaf_regs): ...new pass_data instance and... 23165 (make_pass_leaf_regs): ...new function. 23166 (pass_thread_prologue_and_epilogue): Convert from a global struct to a 23167 subclass of rtl_opt_pass along with... 23168 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance 23169 and... 23170 (make_pass_thread_prologue_and_epilogue): ...new function. 23171 (pass_match_asm_constraints): Convert from a global struct to a 23172 subclass of rtl_opt_pass along with... 23173 (pass_data_match_asm_constraints): ...new pass_data instance and... 23174 (make_pass_match_asm_constraints): ...new function. 23175 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a 23176 subclass of rtl_opt_pass along with... 23177 (pass_data_rtl_fwprop): ...new pass_data instance and... 23178 (make_pass_rtl_fwprop): ...new function. 23179 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of 23180 rtl_opt_pass along with... 23181 (pass_data_rtl_fwprop_addr): ...new pass_data instance and... 23182 (make_pass_rtl_fwprop_addr): ...new function. 23183 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of 23184 rtl_opt_pass along with... 23185 (pass_data_rtl_pre): ...new pass_data instance and... 23186 (make_pass_rtl_pre): ...new function. 23187 (pass_rtl_hoist): Convert from a global struct to a subclass of 23188 rtl_opt_pass along with... 23189 (pass_data_rtl_hoist): ...new pass_data instance and... 23190 (make_pass_rtl_hoist): ...new function. 23191 * gimple-low.c (pass_lower_cf): Convert from a global struct to a 23192 subclass of gimple_opt_pass along with... 23193 (pass_data_lower_cf): ...new pass_data instance and... 23194 (make_pass_lower_cf): ...new function. 23195 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert 23196 from a global struct to a subclass of gimple_opt_pass along with... 23197 (pass_data_strength_reduction): ...new pass_data instance and... 23198 (make_pass_strength_reduction): ...new function. 23199 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass 23200 of rtl_opt_pass along with... 23201 (pass_data_rtl_ifcvt): ...new pass_data instance and... 23202 (make_pass_rtl_ifcvt): ...new function. 23203 (pass_if_after_combine): Convert from a global struct to a subclass of 23204 rtl_opt_pass along with... 23205 (pass_data_if_after_combine): ...new pass_data instance and... 23206 (make_pass_if_after_combine): ...new function. 23207 (pass_if_after_reload): Convert from a global struct to a subclass of 23208 rtl_opt_pass along with... 23209 (pass_data_if_after_reload): ...new pass_data instance and... 23210 (make_pass_if_after_reload): ...new function. 23211 * init-regs.c (pass_initialize_regs): Convert from a global struct to 23212 a subclass of rtl_opt_pass along with... 23213 (pass_data_initialize_regs): ...new pass_data instance and... 23214 (make_pass_initialize_regs): ...new function. 23215 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass 23216 of ipa_opt_pass_d along with... 23217 (pass_data_ipa_cp): ...new pass_data instance and... 23218 (make_pass_ipa_cp): ...new function. 23219 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a 23220 global struct to a subclass of gimple_opt_pass along with... 23221 (pass_data_inline_parameters): ...new pass_data instance and... 23222 (make_pass_inline_parameters): ...new function. 23223 * ipa-inline.c (pass_early_inline): Convert from a global struct to a 23224 subclass of gimple_opt_pass along with... 23225 (pass_data_early_inline): ...new pass_data instance and... 23226 (make_pass_early_inline): ...new function. 23227 (pass_ipa_inline): Convert from a global struct to a subclass of 23228 ipa_opt_pass_d along with... 23229 (pass_data_ipa_inline): ...new pass_data instance and... 23230 (make_pass_ipa_inline): ...new function. 23231 * ipa-pure-const.c (pass_local_pure_const): Convert from a global 23232 struct to a subclass of gimple_opt_pass along with... 23233 (pass_data_local_pure_const): ...new pass_data instance and... 23234 (make_pass_local_pure_const): ...new function. 23235 (pass_ipa_pure_const): Convert from a global struct to a subclass of 23236 ipa_opt_pass_d along with... 23237 (pass_data_ipa_pure_const): ...new pass_data instance and... 23238 (make_pass_ipa_pure_const): ...new function. 23239 * ipa-reference.c (pass_ipa_reference): Convert from a global struct 23240 to a subclass of ipa_opt_pass_d along with... 23241 (pass_data_ipa_reference): ...new pass_data instance and... 23242 (make_pass_ipa_reference): ...new function. 23243 * ipa-split.c (pass_split_functions): Convert from a global struct to 23244 a subclass of gimple_opt_pass along with... 23245 (pass_data_split_functions): ...new pass_data instance and... 23246 (make_pass_split_functions): ...new function. 23247 (pass_feedback_split_functions): Convert from a global struct to a 23248 subclass of gimple_opt_pass along with... 23249 (pass_data_feedback_split_functions): ...new pass_data instance and... 23250 (make_pass_feedback_split_functions): ...new function. 23251 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a 23252 global struct to a subclass of simple_ipa_opt_pass along with... 23253 (pass_data_ipa_function_and_variable_visibility): ...new pass_data 23254 instance and... 23255 (make_pass_ipa_function_and_variable_visibility): ...new function. 23256 (pass_ipa_free_inline_summary): Convert from a global struct to a 23257 subclass of simple_ipa_opt_pass along with... 23258 (pass_data_ipa_free_inline_summary): ...new pass_data instance and... 23259 (make_pass_ipa_free_inline_summary): ...new function. 23260 (pass_ipa_whole_program_visibility): Convert from a global struct to a 23261 subclass of ipa_opt_pass_d along with... 23262 (pass_data_ipa_whole_program_visibility): ...new pass_data instance 23263 and... 23264 (make_pass_ipa_whole_program_visibility): ...new function. 23265 (pass_ipa_profile): Convert from a global struct to a subclass of 23266 ipa_opt_pass_d along with... 23267 (pass_data_ipa_profile): ...new pass_data instance and... 23268 (make_pass_ipa_profile): ...new function. 23269 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of 23270 ipa_opt_pass_d along with... 23271 (pass_data_ipa_cdtor_merge): ...new pass_data instance and... 23272 (make_pass_ipa_cdtor_merge): ...new function. 23273 * ira.c (pass_ira): Convert from a global struct to a subclass of 23274 rtl_opt_pass along with... 23275 (pass_data_ira): ...new pass_data instance and... 23276 (make_pass_ira): ...new function. 23277 (pass_reload): Convert from a global struct to a subclass of 23278 rtl_opt_pass along with... 23279 (pass_data_reload): ...new pass_data instance and... 23280 (make_pass_reload): ...new function. 23281 * jump.c (pass_cleanup_barriers): Convert from a global struct to a 23282 subclass of rtl_opt_pass along with... 23283 (pass_data_cleanup_barriers): ...new pass_data instance and... 23284 (make_pass_cleanup_barriers): ...new function. 23285 * loop-init.c (pass_loop2): Convert from a global struct to a subclass 23286 of rtl_opt_pass along with... 23287 (pass_data_loop2): ...new pass_data instance and... 23288 (make_pass_loop2): ...new function. 23289 (pass_rtl_loop_init): Convert from a global struct to a subclass of 23290 rtl_opt_pass along with... 23291 (pass_data_rtl_loop_init): ...new pass_data instance and... 23292 (make_pass_rtl_loop_init): ...new function. 23293 (pass_rtl_loop_done): Convert from a global struct to a subclass of 23294 rtl_opt_pass along with... 23295 (pass_data_rtl_loop_done): ...new pass_data instance and... 23296 (make_pass_rtl_loop_done): ...new function. 23297 (pass_rtl_move_loop_invariants): Convert from a global struct to a 23298 subclass of rtl_opt_pass along with... 23299 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and... 23300 (make_pass_rtl_move_loop_invariants): ...new function. 23301 (pass_rtl_unswitch): Convert from a global struct to a subclass of 23302 rtl_opt_pass along with... 23303 (pass_data_rtl_unswitch): ...new pass_data instance and... 23304 (make_pass_rtl_unswitch): ...new function. 23305 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a 23306 subclass of rtl_opt_pass along with... 23307 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance 23308 and... 23309 (make_pass_rtl_unroll_and_peel_loops): ...new function. 23310 (pass_rtl_doloop): Convert from a global struct to a subclass of 23311 rtl_opt_pass along with... 23312 (pass_data_rtl_doloop): ...new pass_data instance and... 23313 (make_pass_rtl_doloop): ...new function. 23314 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to 23315 a subclass of rtl_opt_pass along with... 23316 (pass_data_lower_subreg): ...new pass_data instance and... 23317 (make_pass_lower_subreg): ...new function. 23318 (pass_lower_subreg2): Convert from a global struct to a subclass of 23319 rtl_opt_pass along with... 23320 (pass_data_lower_subreg2): ...new pass_data instance and... 23321 (make_pass_lower_subreg2): ...new function. 23322 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global 23323 struct to a subclass of ipa_opt_pass_d along with... 23324 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and... 23325 (make_pass_ipa_lto_gimple_out): ...new function. 23326 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass 23327 of ipa_opt_pass_d along with... 23328 (pass_data_ipa_lto_finish_out): ...new pass_data instance and... 23329 (make_pass_ipa_lto_finish_out): ...new function. 23330 * mode-switching.c (pass_mode_switching): Convert from a global struct 23331 to a subclass of rtl_opt_pass along with... 23332 (pass_data_mode_switching): ...new pass_data instance and... 23333 (make_pass_mode_switching): ...new function. 23334 * modulo-sched.c (pass_sms): Convert from a global struct to a 23335 subclass of rtl_opt_pass along with... 23336 (pass_data_sms): ...new pass_data instance and... 23337 (make_pass_sms): ...new function. 23338 * omp-low.c (pass_expand_omp): Convert from a global struct to a 23339 subclass of gimple_opt_pass along with... 23340 (pass_data_expand_omp): ...new pass_data instance and... 23341 (make_pass_expand_omp): ...new function. 23342 (pass_lower_omp): Convert from a global struct to a subclass of 23343 gimple_opt_pass along with... 23344 (pass_data_lower_omp): ...new pass_data instance and... 23345 (make_pass_lower_omp): ...new function. 23346 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass 23347 of gimple_opt_pass along with... 23348 (pass_data_diagnose_omp_blocks): ...new pass_data instance and... 23349 (make_pass_diagnose_omp_blocks): ...new function. 23350 * passes.c (pass_early_local_passes): Convert from a global struct to 23351 a subclass of simple_ipa_opt_pass along with... 23352 (pass_data_early_local_passes): ...new pass_data instance and... 23353 (make_pass_early_local_passes): ...new function. 23354 (pass_all_early_optimizations): Convert from a global struct to a 23355 subclass of gimple_opt_pass along with... 23356 (pass_data_all_early_optimizations): ...new pass_data instance and... 23357 (make_pass_all_early_optimizations): ...new function. 23358 (pass_all_optimizations): Convert from a global struct to a subclass 23359 of gimple_opt_pass along with... 23360 (pass_data_all_optimizations): ...new pass_data instance and... 23361 (make_pass_all_optimizations): ...new function. 23362 (pass_all_optimizations_g): Convert from a global struct to a subclass 23363 of gimple_opt_pass along with... 23364 (pass_data_all_optimizations_g): ...new pass_data instance and... 23365 (make_pass_all_optimizations_g): ...new function. 23366 (pass_rest_of_compilation): Convert from a global struct to a subclass 23367 of rtl_opt_pass along with... 23368 (pass_data_rest_of_compilation): ...new pass_data instance and... 23369 (make_pass_rest_of_compilation): ...new function. 23370 (pass_postreload): Convert from a global struct to a subclass of 23371 rtl_opt_pass along with... 23372 (pass_data_postreload): ...new pass_data instance and... 23373 (make_pass_postreload): ...new function. 23374 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a 23375 subclass of rtl_opt_pass along with... 23376 (pass_data_gcse2): ...new pass_data instance and... 23377 (make_pass_gcse2): ...new function. 23378 * postreload.c (pass_postreload_cse): Convert from a global struct to 23379 a subclass of rtl_opt_pass along with... 23380 (pass_data_postreload_cse): ...new pass_data instance and... 23381 (make_pass_postreload_cse): ...new function. 23382 * predict.c (pass_profile): Convert from a global struct to a subclass 23383 of gimple_opt_pass along with... 23384 (pass_data_profile): ...new pass_data instance and... 23385 (make_pass_profile): ...new function. 23386 (pass_strip_predict_hints): Convert from a global struct to a subclass 23387 of gimple_opt_pass along with... 23388 (pass_data_strip_predict_hints): ...new pass_data instance and... 23389 (make_pass_strip_predict_hints): ...new function. 23390 * recog.c (pass_peephole2): Convert from a global struct to a subclass 23391 of rtl_opt_pass along with... 23392 (pass_data_peephole2): ...new pass_data instance and... 23393 (make_pass_peephole2): ...new function. 23394 (pass_split_all_insns): Convert from a global struct to a subclass of 23395 rtl_opt_pass along with... 23396 (pass_data_split_all_insns): ...new pass_data instance and... 23397 (make_pass_split_all_insns): ...new function. 23398 (pass_split_after_reload): Convert from a global struct to a subclass 23399 of rtl_opt_pass along with... 23400 (pass_data_split_after_reload): ...new pass_data instance and... 23401 (make_pass_split_after_reload): ...new function. 23402 (pass_split_before_regstack): Convert from a global struct to a 23403 subclass of rtl_opt_pass along with... 23404 (pass_data_split_before_regstack): ...new pass_data instance and... 23405 (make_pass_split_before_regstack): ...new function. 23406 (pass_split_before_sched2): Convert from a global struct to a subclass 23407 of rtl_opt_pass along with... 23408 (pass_data_split_before_sched2): ...new pass_data instance and... 23409 (make_pass_split_before_sched2): ...new function. 23410 (pass_split_for_shorten_branches): Convert from a global struct to a 23411 subclass of rtl_opt_pass along with... 23412 (pass_data_split_for_shorten_branches): ...new pass_data instance 23413 and... 23414 (make_pass_split_for_shorten_branches): ...new function. 23415 * ree.c (pass_ree): Convert from a global struct to a subclass of 23416 rtl_opt_pass along with... 23417 (pass_data_ree): ...new pass_data instance and... 23418 (make_pass_ree): ...new function. 23419 * reg-stack.c (pass_stack_regs): Convert from a global struct to a 23420 subclass of rtl_opt_pass along with... 23421 (pass_data_stack_regs): ...new pass_data instance and... 23422 (make_pass_stack_regs): ...new function. 23423 (pass_stack_regs_run): Convert from a global struct to a subclass of 23424 rtl_opt_pass along with... 23425 (pass_data_stack_regs_run): ...new pass_data instance and... 23426 (make_pass_stack_regs_run): ...new function. 23427 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a 23428 subclass of rtl_opt_pass along with... 23429 (pass_data_cprop_hardreg): ...new pass_data instance and... 23430 (make_pass_cprop_hardreg): ...new function. 23431 * reginfo.c (pass_reginfo_init): Convert from a global struct to a 23432 subclass of rtl_opt_pass along with... 23433 (pass_data_reginfo_init): ...new pass_data instance and... 23434 (make_pass_reginfo_init): ...new function. 23435 * regmove.c (pass_regmove): Convert from a global struct to a subclass 23436 of rtl_opt_pass along with... 23437 (pass_data_regmove): ...new pass_data instance and... 23438 (make_pass_regmove): ...new function. 23439 * regrename.c (pass_regrename): Convert from a global struct to a 23440 subclass of rtl_opt_pass along with... 23441 (pass_data_regrename): ...new pass_data instance and... 23442 (make_pass_regrename): ...new function. 23443 * reorg.c (pass_delay_slots): Convert from a global struct to a 23444 subclass of rtl_opt_pass along with... 23445 (pass_data_delay_slots): ...new pass_data instance and... 23446 (make_pass_delay_slots): ...new function. 23447 (pass_machine_reorg): Convert from a global struct to a subclass of 23448 rtl_opt_pass along with... 23449 (pass_data_machine_reorg): ...new pass_data instance and... 23450 (make_pass_machine_reorg): ...new function. 23451 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass 23452 of rtl_opt_pass along with... 23453 (pass_data_sched): ...new pass_data instance and... 23454 (make_pass_sched): ...new function. 23455 (pass_sched2): Convert from a global struct to a subclass of 23456 rtl_opt_pass along with... 23457 (pass_data_sched2): ...new pass_data instance and... 23458 (make_pass_sched2): ...new function. 23459 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct 23460 to a subclass of rtl_opt_pass along with... 23461 (pass_data_stack_ptr_mod): ...new pass_data instance and... 23462 (make_pass_stack_ptr_mod): ...new function. 23463 * store-motion.c (pass_rtl_store_motion): Convert from a global struct 23464 to a subclass of rtl_opt_pass along with... 23465 (pass_data_rtl_store_motion): ...new pass_data instance and... 23466 (make_pass_rtl_store_motion): ...new function. 23467 * tracer.c (pass_tracer): Convert from a global struct to a subclass 23468 of gimple_opt_pass along with... 23469 (pass_data_tracer): ...new pass_data instance and... 23470 (make_pass_tracer): ...new function. 23471 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct 23472 to a subclass of gimple_opt_pass along with... 23473 (pass_data_diagnose_tm_blocks): ...new pass_data instance and... 23474 (make_pass_diagnose_tm_blocks): ...new function. 23475 (pass_lower_tm): Convert from a global struct to a subclass of 23476 gimple_opt_pass along with... 23477 (pass_data_lower_tm): ...new pass_data instance and... 23478 (make_pass_lower_tm): ...new function. 23479 (pass_tm_init): Convert from a global struct to a subclass of 23480 gimple_opt_pass along with... 23481 (pass_data_tm_init): ...new pass_data instance and... 23482 (make_pass_tm_init): ...new function. 23483 (pass_tm_mark): Convert from a global struct to a subclass of 23484 gimple_opt_pass along with... 23485 (pass_data_tm_mark): ...new pass_data instance and... 23486 (make_pass_tm_mark): ...new function. 23487 (pass_tm_edges): Convert from a global struct to a subclass of 23488 gimple_opt_pass along with... 23489 (pass_data_tm_edges): ...new pass_data instance and... 23490 (make_pass_tm_edges): ...new function. 23491 (pass_tm_memopt): Convert from a global struct to a subclass of 23492 gimple_opt_pass along with... 23493 (pass_data_tm_memopt): ...new pass_data instance and... 23494 (make_pass_tm_memopt): ...new function. 23495 (pass_ipa_tm): Convert from a global struct to a subclass of 23496 simple_ipa_opt_pass along with... 23497 (pass_data_ipa_tm): ...new pass_data instance and... 23498 (make_pass_ipa_tm): ...new function. 23499 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a 23500 subclass of gimple_opt_pass along with... 23501 (pass_data_call_cdce): ...new pass_data instance and... 23502 (make_pass_call_cdce): ...new function. 23503 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a 23504 subclass of gimple_opt_pass along with... 23505 (pass_data_build_cfg): ...new pass_data instance and... 23506 (make_pass_build_cfg): ...new function. 23507 (pass_split_crit_edges): Convert from a global struct to a subclass of 23508 gimple_opt_pass along with... 23509 (pass_data_split_crit_edges): ...new pass_data instance and... 23510 (make_pass_split_crit_edges): ...new function. 23511 (pass_warn_function_return): Convert from a global struct to a 23512 subclass of gimple_opt_pass along with... 23513 (pass_data_warn_function_return): ...new pass_data instance and... 23514 (make_pass_warn_function_return): ...new function. 23515 (pass_warn_function_noreturn): Convert from a global struct to a 23516 subclass of gimple_opt_pass along with... 23517 (pass_data_warn_function_noreturn): ...new pass_data instance and... 23518 (make_pass_warn_function_noreturn): ...new function. 23519 (pass_warn_unused_result): Convert from a global struct to a subclass 23520 of gimple_opt_pass along with... 23521 (pass_data_warn_unused_result): ...new pass_data instance and... 23522 (make_pass_warn_unused_result): ...new function. 23523 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to 23524 a subclass of gimple_opt_pass along with... 23525 (pass_data_merge_phi): ...new pass_data instance and... 23526 (make_pass_merge_phi): ...new function. 23527 * tree-complex.c (pass_lower_complex): Convert from a global struct to 23528 a subclass of gimple_opt_pass along with... 23529 (pass_data_lower_complex): ...new pass_data instance and... 23530 (make_pass_lower_complex): ...new function. 23531 (pass_lower_complex_O0): Convert from a global struct to a subclass of 23532 gimple_opt_pass along with... 23533 (pass_data_lower_complex_O0): ...new pass_data instance and... 23534 (make_pass_lower_complex_O0): ...new function. 23535 * tree-eh.c (pass_lower_eh): Convert from a global struct to a 23536 subclass of gimple_opt_pass along with... 23537 (pass_data_lower_eh): ...new pass_data instance and... 23538 (make_pass_lower_eh): ...new function. 23539 (pass_refactor_eh): Convert from a global struct to a subclass of 23540 gimple_opt_pass along with... 23541 (pass_data_refactor_eh): ...new pass_data instance and... 23542 (make_pass_refactor_eh): ...new function. 23543 (pass_lower_resx): Convert from a global struct to a subclass of 23544 gimple_opt_pass along with... 23545 (pass_data_lower_resx): ...new pass_data instance and... 23546 (make_pass_lower_resx): ...new function. 23547 (pass_lower_eh_dispatch): Convert from a global struct to a subclass 23548 of gimple_opt_pass along with... 23549 (pass_data_lower_eh_dispatch): ...new pass_data instance and... 23550 (make_pass_lower_eh_dispatch): ...new function. 23551 (pass_cleanup_eh): Convert from a global struct to a subclass of 23552 gimple_opt_pass along with... 23553 (pass_data_cleanup_eh): ...new pass_data instance and... 23554 (make_pass_cleanup_eh): ...new function. 23555 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct 23556 to a subclass of simple_ipa_opt_pass along with... 23557 (pass_data_ipa_lower_emutls): ...new pass_data instance and... 23558 (make_pass_ipa_lower_emutls): ...new function. 23559 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to 23560 a subclass of gimple_opt_pass along with... 23561 (pass_data_if_conversion): ...new pass_data instance and... 23562 (make_pass_if_conversion): ...new function. 23563 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a 23564 subclass of gimple_opt_pass along with... 23565 (pass_data_build_ssa): ...new pass_data instance and... 23566 (make_pass_build_ssa): ...new function. 23567 * tree-loop-distribution.c (pass_loop_distribution): Convert from a 23568 global struct to a subclass of gimple_opt_pass along with... 23569 (pass_data_loop_distribution): ...new pass_data instance and... 23570 (make_pass_loop_distribution): ...new function. 23571 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a 23572 subclass of gimple_opt_pass along with... 23573 (pass_data_mudflap_1): ...new pass_data instance and... 23574 (make_pass_mudflap_1): ...new function. 23575 (pass_mudflap_2): Convert from a global struct to a subclass of 23576 gimple_opt_pass along with... 23577 (pass_data_mudflap_2): ...new pass_data instance and... 23578 (make_pass_mudflap_2): ...new function. 23579 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a 23580 subclass of gimple_opt_pass along with... 23581 (pass_data_mudflap_1): ...new pass_data instance and... 23582 (make_pass_mudflap_1): ...new function. 23583 (pass_mudflap_2): Convert from a global struct to a subclass of 23584 gimple_opt_pass along with... 23585 (pass_data_mudflap_2): ...new pass_data instance and... 23586 (make_pass_mudflap_2): ...new function. 23587 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of 23588 gimple_opt_pass along with... 23589 (pass_data_nrv): ...new pass_data instance and... 23590 (make_pass_nrv): ...new function. 23591 (pass_return_slot): Convert from a global struct to a subclass of 23592 gimple_opt_pass along with... 23593 (pass_data_return_slot): ...new pass_data instance and... 23594 (make_pass_return_slot): ...new function. 23595 * tree-object-size.c (pass_object_sizes): Convert from a global struct 23596 to a subclass of gimple_opt_pass along with... 23597 (pass_data_object_sizes): ...new pass_data instance and... 23598 (make_pass_object_sizes): ...new function. 23599 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a 23600 global struct to a subclass of gimple_opt_pass along with... 23601 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance 23602 and... 23603 (make_pass_cleanup_cfg_post_optimizing): ...new function. 23604 (pass_fixup_cfg): Convert from a global struct to a subclass of 23605 gimple_opt_pass along with... 23606 (pass_data_fixup_cfg): ...new pass_data instance and... 23607 (make_pass_fixup_cfg): ...new function. 23608 * tree-pass.h (pass_mudflap_1): Replace declaration with that of... 23609 (make_pass_mudflap_1): ...new function. 23610 (pass_mudflap_2): Replace declaration with that of... 23611 (make_pass_mudflap_2): ...new function. 23612 (pass_asan): Replace declaration with that of... 23613 (make_pass_asan): ...new function. 23614 (pass_asan_O0): Replace declaration with that of... 23615 (make_pass_asan_O0): ...new function. 23616 (pass_tsan): Replace declaration with that of... 23617 (make_pass_tsan): ...new function. 23618 (pass_tsan_O0): Replace declaration with that of... 23619 (make_pass_tsan_O0): ...new function. 23620 (pass_lower_cf): Replace declaration with that of... 23621 (make_pass_lower_cf): ...new function. 23622 (pass_refactor_eh): Replace declaration with that of... 23623 (make_pass_refactor_eh): ...new function. 23624 (pass_lower_eh): Replace declaration with that of... 23625 (make_pass_lower_eh): ...new function. 23626 (pass_lower_eh_dispatch): Replace declaration with that of... 23627 (make_pass_lower_eh_dispatch): ...new function. 23628 (pass_lower_resx): Replace declaration with that of... 23629 (make_pass_lower_resx): ...new function. 23630 (pass_build_cfg): Replace declaration with that of... 23631 (make_pass_build_cfg): ...new function. 23632 (pass_early_tree_profile): Replace declaration with that of... 23633 (make_pass_early_tree_profile): ...new function. 23634 (pass_cleanup_eh): Replace declaration with that of... 23635 (make_pass_cleanup_eh): ...new function. 23636 (pass_sra): Replace declaration with that of... 23637 (make_pass_sra): ...new function. 23638 (pass_sra_early): Replace declaration with that of... 23639 (make_pass_sra_early): ...new function. 23640 (pass_early_ipa_sra): Replace declaration with that of... 23641 (make_pass_early_ipa_sra): ...new function. 23642 (pass_tail_recursion): Replace declaration with that of... 23643 (make_pass_tail_recursion): ...new function. 23644 (pass_tail_calls): Replace declaration with that of... 23645 (make_pass_tail_calls): ...new function. 23646 (pass_tree_loop): Replace declaration with that of... 23647 (make_pass_tree_loop): ...new function. 23648 (pass_tree_loop_init): Replace declaration with that of... 23649 (make_pass_tree_loop_init): ...new function. 23650 (pass_lim): Replace declaration with that of... 23651 (make_pass_lim): ...new function. 23652 (pass_tree_unswitch): Replace declaration with that of... 23653 (make_pass_tree_unswitch): ...new function. 23654 (pass_predcom): Replace declaration with that of... 23655 (make_pass_predcom): ...new function. 23656 (pass_iv_canon): Replace declaration with that of... 23657 (make_pass_iv_canon): ...new function. 23658 (pass_scev_cprop): Replace declaration with that of... 23659 (make_pass_scev_cprop): ...new function. 23660 (pass_empty_loop): Replace declaration with that of... 23661 (make_pass_empty_loop): ...new function. 23662 (pass_record_bounds): Replace declaration with that of... 23663 (make_pass_record_bounds): ...new function. 23664 (pass_graphite): Replace declaration with that of... 23665 (make_pass_graphite): ...new function. 23666 (pass_graphite_transforms): Replace declaration with that of... 23667 (make_pass_graphite_transforms): ...new function. 23668 (pass_if_conversion): Replace declaration with that of... 23669 (make_pass_if_conversion): ...new function. 23670 (pass_loop_distribution): Replace declaration with that of... 23671 (make_pass_loop_distribution): ...new function. 23672 (pass_vectorize): Replace declaration with that of... 23673 (make_pass_vectorize): ...new function. 23674 (pass_slp_vectorize): Replace declaration with that of... 23675 (make_pass_slp_vectorize): ...new function. 23676 (pass_complete_unroll): Replace declaration with that of... 23677 (make_pass_complete_unroll): ...new function. 23678 (pass_complete_unrolli): Replace declaration with that of... 23679 (make_pass_complete_unrolli): ...new function. 23680 (pass_parallelize_loops): Replace declaration with that of... 23681 (make_pass_parallelize_loops): ...new function. 23682 (pass_loop_prefetch): Replace declaration with that of... 23683 (make_pass_loop_prefetch): ...new function. 23684 (pass_iv_optimize): Replace declaration with that of... 23685 (make_pass_iv_optimize): ...new function. 23686 (pass_tree_loop_done): Replace declaration with that of... 23687 (make_pass_tree_loop_done): ...new function. 23688 (pass_ch): Replace declaration with that of... 23689 (make_pass_ch): ...new function. 23690 (pass_ccp): Replace declaration with that of... 23691 (make_pass_ccp): ...new function. 23692 (pass_phi_only_cprop): Replace declaration with that of... 23693 (make_pass_phi_only_cprop): ...new function. 23694 (pass_build_ssa): Replace declaration with that of... 23695 (make_pass_build_ssa): ...new function. 23696 (pass_build_alias): Replace declaration with that of... 23697 (make_pass_build_alias): ...new function. 23698 (pass_build_ealias): Replace declaration with that of... 23699 (make_pass_build_ealias): ...new function. 23700 (pass_dominator): Replace declaration with that of... 23701 (make_pass_dominator): ...new function. 23702 (pass_dce): Replace declaration with that of... 23703 (make_pass_dce): ...new function. 23704 (pass_dce_loop): Replace declaration with that of... 23705 (make_pass_dce_loop): ...new function. 23706 (pass_cd_dce): Replace declaration with that of... 23707 (make_pass_cd_dce): ...new function. 23708 (pass_call_cdce): Replace declaration with that of... 23709 (make_pass_call_cdce): ...new function. 23710 (pass_merge_phi): Replace declaration with that of... 23711 (make_pass_merge_phi): ...new function. 23712 (pass_split_crit_edges): Replace declaration with that of... 23713 (make_pass_split_crit_edges): ...new function. 23714 (pass_pre): Replace declaration with that of... 23715 (make_pass_pre): ...new function. 23716 (pass_profile): Replace declaration with that of... 23717 (make_pass_profile): ...new function. 23718 (pass_strip_predict_hints): Replace declaration with that of... 23719 (make_pass_strip_predict_hints): ...new function. 23720 (pass_lower_complex_O0): Replace declaration with that of... 23721 (make_pass_lower_complex_O0): ...new function. 23722 (pass_lower_complex): Replace declaration with that of... 23723 (make_pass_lower_complex): ...new function. 23724 (pass_lower_vector): Replace declaration with that of... 23725 (make_pass_lower_vector): ...new function. 23726 (pass_lower_vector_ssa): Replace declaration with that of... 23727 (make_pass_lower_vector_ssa): ...new function. 23728 (pass_lower_omp): Replace declaration with that of... 23729 (make_pass_lower_omp): ...new function. 23730 (pass_diagnose_omp_blocks): Replace declaration with that of... 23731 (make_pass_diagnose_omp_blocks): ...new function. 23732 (pass_expand_omp): Replace declaration with that of... 23733 (make_pass_expand_omp): ...new function. 23734 (pass_expand_omp_ssa): Replace declaration with that of... 23735 (make_pass_expand_omp_ssa): ...new function. 23736 (pass_object_sizes): Replace declaration with that of... 23737 (make_pass_object_sizes): ...new function. 23738 (pass_strlen): Replace declaration with that of... 23739 (make_pass_strlen): ...new function. 23740 (pass_fold_builtins): Replace declaration with that of... 23741 (make_pass_fold_builtins): ...new function. 23742 (pass_stdarg): Replace declaration with that of... 23743 (make_pass_stdarg): ...new function. 23744 (pass_early_warn_uninitialized): Replace declaration with that of... 23745 (make_pass_early_warn_uninitialized): ...new function. 23746 (pass_late_warn_uninitialized): Replace declaration with that of... 23747 (make_pass_late_warn_uninitialized): ...new function. 23748 (pass_cse_reciprocals): Replace declaration with that of... 23749 (make_pass_cse_reciprocals): ...new function. 23750 (pass_cse_sincos): Replace declaration with that of... 23751 (make_pass_cse_sincos): ...new function. 23752 (pass_optimize_bswap): Replace declaration with that of... 23753 (make_pass_optimize_bswap): ...new function. 23754 (pass_optimize_widening_mul): Replace declaration with that of... 23755 (make_pass_optimize_widening_mul): ...new function. 23756 (pass_warn_function_return): Replace declaration with that of... 23757 (make_pass_warn_function_return): ...new function. 23758 (pass_warn_function_noreturn): Replace declaration with that of... 23759 (make_pass_warn_function_noreturn): ...new function. 23760 (pass_cselim): Replace declaration with that of... 23761 (make_pass_cselim): ...new function. 23762 (pass_phiopt): Replace declaration with that of... 23763 (make_pass_phiopt): ...new function. 23764 (pass_forwprop): Replace declaration with that of... 23765 (make_pass_forwprop): ...new function. 23766 (pass_phiprop): Replace declaration with that of... 23767 (make_pass_phiprop): ...new function. 23768 (pass_tree_ifcombine): Replace declaration with that of... 23769 (make_pass_tree_ifcombine): ...new function. 23770 (pass_dse): Replace declaration with that of... 23771 (make_pass_dse): ...new function. 23772 (pass_nrv): Replace declaration with that of... 23773 (make_pass_nrv): ...new function. 23774 (pass_rename_ssa_copies): Replace declaration with that of... 23775 (make_pass_rename_ssa_copies): ...new function. 23776 (pass_sink_code): Replace declaration with that of... 23777 (make_pass_sink_code): ...new function. 23778 (pass_fre): Replace declaration with that of... 23779 (make_pass_fre): ...new function. 23780 (pass_check_data_deps): Replace declaration with that of... 23781 (make_pass_check_data_deps): ...new function. 23782 (pass_copy_prop): Replace declaration with that of... 23783 (make_pass_copy_prop): ...new function. 23784 (pass_vrp): Replace declaration with that of... 23785 (make_pass_vrp): ...new function. 23786 (pass_uncprop): Replace declaration with that of... 23787 (make_pass_uncprop): ...new function. 23788 (pass_return_slot): Replace declaration with that of... 23789 (make_pass_return_slot): ...new function. 23790 (pass_reassoc): Replace declaration with that of... 23791 (make_pass_reassoc): ...new function. 23792 (pass_rebuild_cgraph_edges): Replace declaration with that of... 23793 (make_pass_rebuild_cgraph_edges): ...new function. 23794 (pass_remove_cgraph_callee_edges): Replace declaration with that of... 23795 (make_pass_remove_cgraph_callee_edges): ...new function. 23796 (pass_build_cgraph_edges): Replace declaration with that of... 23797 (make_pass_build_cgraph_edges): ...new function. 23798 (pass_local_pure_const): Replace declaration with that of... 23799 (make_pass_local_pure_const): ...new function. 23800 (pass_tracer): Replace declaration with that of... 23801 (make_pass_tracer): ...new function. 23802 (pass_warn_unused_result): Replace declaration with that of... 23803 (make_pass_warn_unused_result): ...new function. 23804 (pass_diagnose_tm_blocks): Replace declaration with that of... 23805 (make_pass_diagnose_tm_blocks): ...new function. 23806 (pass_lower_tm): Replace declaration with that of... 23807 (make_pass_lower_tm): ...new function. 23808 (pass_tm_init): Replace declaration with that of... 23809 (make_pass_tm_init): ...new function. 23810 (pass_tm_mark): Replace declaration with that of... 23811 (make_pass_tm_mark): ...new function. 23812 (pass_tm_memopt): Replace declaration with that of... 23813 (make_pass_tm_memopt): ...new function. 23814 (pass_tm_edges): Replace declaration with that of... 23815 (make_pass_tm_edges): ...new function. 23816 (pass_split_functions): Replace declaration with that of... 23817 (make_pass_split_functions): ...new function. 23818 (pass_feedback_split_functions): Replace declaration with that of... 23819 (make_pass_feedback_split_functions): ...new function. 23820 (pass_strength_reduction): Replace declaration with that of... 23821 (make_pass_strength_reduction): ...new function. 23822 (pass_ipa_lower_emutls): Replace declaration with that of... 23823 (make_pass_ipa_lower_emutls): ...new function. 23824 (pass_ipa_function_and_variable_visibility): Replace declaration with 23825 that of... 23826 (make_pass_ipa_function_and_variable_visibility): ...new function. 23827 (pass_ipa_tree_profile): Replace declaration with that of... 23828 (make_pass_ipa_tree_profile): ...new function. 23829 (pass_early_local_passes): Replace declaration with that of... 23830 (make_pass_early_local_passes): ...new function. 23831 (pass_ipa_whole_program_visibility): Replace declaration with that 23832 of... 23833 (make_pass_ipa_whole_program_visibility): ...new function. 23834 (pass_ipa_lto_gimple_out): Replace declaration with that of... 23835 (make_pass_ipa_lto_gimple_out): ...new function. 23836 (pass_ipa_increase_alignment): Replace declaration with that of... 23837 (make_pass_ipa_increase_alignment): ...new function. 23838 (pass_ipa_inline): Replace declaration with that of... 23839 (make_pass_ipa_inline): ...new function. 23840 (pass_ipa_free_lang_data): Replace declaration with that of... 23841 (make_pass_ipa_free_lang_data): ...new function. 23842 (pass_ipa_free_inline_summary): Replace declaration with that of... 23843 (make_pass_ipa_free_inline_summary): ...new function. 23844 (pass_ipa_cp): Replace declaration with that of... 23845 (make_pass_ipa_cp): ...new function. 23846 (pass_ipa_reference): Replace declaration with that of... 23847 (make_pass_ipa_reference): ...new function. 23848 (pass_ipa_pure_const): Replace declaration with that of... 23849 (make_pass_ipa_pure_const): ...new function. 23850 (pass_ipa_pta): Replace declaration with that of... 23851 (make_pass_ipa_pta): ...new function. 23852 (pass_ipa_lto_finish_out): Replace declaration with that of... 23853 (make_pass_ipa_lto_finish_out): ...new function. 23854 (pass_ipa_tm): Replace declaration with that of... 23855 (make_pass_ipa_tm): ...new function. 23856 (pass_ipa_profile): Replace declaration with that of... 23857 (make_pass_ipa_profile): ...new function. 23858 (pass_ipa_cdtor_merge): Replace declaration with that of... 23859 (make_pass_ipa_cdtor_merge): ...new function. 23860 (pass_cleanup_cfg_post_optimizing): Replace declaration with that 23861 of... 23862 (make_pass_cleanup_cfg_post_optimizing): ...new function. 23863 (pass_init_datastructures): Replace declaration with that of... 23864 (make_pass_init_datastructures): ...new function. 23865 (pass_fixup_cfg): Replace declaration with that of... 23866 (make_pass_fixup_cfg): ...new function. 23867 (pass_expand): Replace declaration with that of... 23868 (make_pass_expand): ...new function. 23869 (pass_instantiate_virtual_regs): Replace declaration with that of... 23870 (make_pass_instantiate_virtual_regs): ...new function. 23871 (pass_rtl_fwprop): Replace declaration with that of... 23872 (make_pass_rtl_fwprop): ...new function. 23873 (pass_rtl_fwprop_addr): Replace declaration with that of... 23874 (make_pass_rtl_fwprop_addr): ...new function. 23875 (pass_jump): Replace declaration with that of... 23876 (make_pass_jump): ...new function. 23877 (pass_jump2): Replace declaration with that of... 23878 (make_pass_jump2): ...new function. 23879 (pass_lower_subreg): Replace declaration with that of... 23880 (make_pass_lower_subreg): ...new function. 23881 (pass_cse): Replace declaration with that of... 23882 (make_pass_cse): ...new function. 23883 (pass_fast_rtl_dce): Replace declaration with that of... 23884 (make_pass_fast_rtl_dce): ...new function. 23885 (pass_ud_rtl_dce): Replace declaration with that of... 23886 (make_pass_ud_rtl_dce): ...new function. 23887 (pass_rtl_dce): Replace declaration with that of... 23888 (make_pass_rtl_dce): ...new function. 23889 (pass_rtl_dse1): Replace declaration with that of... 23890 (make_pass_rtl_dse1): ...new function. 23891 (pass_rtl_dse2): Replace declaration with that of... 23892 (make_pass_rtl_dse2): ...new function. 23893 (pass_rtl_dse3): Replace declaration with that of... 23894 (make_pass_rtl_dse3): ...new function. 23895 (pass_rtl_cprop): Replace declaration with that of... 23896 (make_pass_rtl_cprop): ...new function. 23897 (pass_rtl_pre): Replace declaration with that of... 23898 (make_pass_rtl_pre): ...new function. 23899 (pass_rtl_hoist): Replace declaration with that of... 23900 (make_pass_rtl_hoist): ...new function. 23901 (pass_rtl_store_motion): Replace declaration with that of... 23902 (make_pass_rtl_store_motion): ...new function. 23903 (pass_cse_after_global_opts): Replace declaration with that of... 23904 (make_pass_cse_after_global_opts): ...new function. 23905 (pass_rtl_ifcvt): Replace declaration with that of... 23906 (make_pass_rtl_ifcvt): ...new function. 23907 (pass_into_cfg_layout_mode): Replace declaration with that of... 23908 (make_pass_into_cfg_layout_mode): ...new function. 23909 (pass_outof_cfg_layout_mode): Replace declaration with that of... 23910 (make_pass_outof_cfg_layout_mode): ...new function. 23911 (pass_loop2): Replace declaration with that of... 23912 (make_pass_loop2): ...new function. 23913 (pass_rtl_loop_init): Replace declaration with that of... 23914 (make_pass_rtl_loop_init): ...new function. 23915 (pass_rtl_move_loop_invariants): Replace declaration with that of... 23916 (make_pass_rtl_move_loop_invariants): ...new function. 23917 (pass_rtl_unswitch): Replace declaration with that of... 23918 (make_pass_rtl_unswitch): ...new function. 23919 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of... 23920 (make_pass_rtl_unroll_and_peel_loops): ...new function. 23921 (pass_rtl_doloop): Replace declaration with that of... 23922 (make_pass_rtl_doloop): ...new function. 23923 (pass_rtl_loop_done): Replace declaration with that of... 23924 (make_pass_rtl_loop_done): ...new function. 23925 (pass_web): Replace declaration with that of... 23926 (make_pass_web): ...new function. 23927 (pass_cse2): Replace declaration with that of... 23928 (make_pass_cse2): ...new function. 23929 (pass_df_initialize_opt): Replace declaration with that of... 23930 (make_pass_df_initialize_opt): ...new function. 23931 (pass_df_initialize_no_opt): Replace declaration with that of... 23932 (make_pass_df_initialize_no_opt): ...new function. 23933 (pass_reginfo_init): Replace declaration with that of... 23934 (make_pass_reginfo_init): ...new function. 23935 (pass_inc_dec): Replace declaration with that of... 23936 (make_pass_inc_dec): ...new function. 23937 (pass_stack_ptr_mod): Replace declaration with that of... 23938 (make_pass_stack_ptr_mod): ...new function. 23939 (pass_initialize_regs): Replace declaration with that of... 23940 (make_pass_initialize_regs): ...new function. 23941 (pass_combine): Replace declaration with that of... 23942 (make_pass_combine): ...new function. 23943 (pass_if_after_combine): Replace declaration with that of... 23944 (make_pass_if_after_combine): ...new function. 23945 (pass_ree): Replace declaration with that of... 23946 (make_pass_ree): ...new function. 23947 (pass_partition_blocks): Replace declaration with that of... 23948 (make_pass_partition_blocks): ...new function. 23949 (pass_match_asm_constraints): Replace declaration with that of... 23950 (make_pass_match_asm_constraints): ...new function. 23951 (pass_regmove): Replace declaration with that of... 23952 (make_pass_regmove): ...new function. 23953 (pass_split_all_insns): Replace declaration with that of... 23954 (make_pass_split_all_insns): ...new function. 23955 (pass_fast_rtl_byte_dce): Replace declaration with that of... 23956 (make_pass_fast_rtl_byte_dce): ...new function. 23957 (pass_lower_subreg2): Replace declaration with that of... 23958 (make_pass_lower_subreg2): ...new function. 23959 (pass_mode_switching): Replace declaration with that of... 23960 (make_pass_mode_switching): ...new function. 23961 (pass_sms): Replace declaration with that of... 23962 (make_pass_sms): ...new function. 23963 (pass_sched): Replace declaration with that of... 23964 (make_pass_sched): ...new function. 23965 (pass_ira): Replace declaration with that of... 23966 (make_pass_ira): ...new function. 23967 (pass_reload): Replace declaration with that of... 23968 (make_pass_reload): ...new function. 23969 (pass_clean_state): Replace declaration with that of... 23970 (make_pass_clean_state): ...new function. 23971 (pass_branch_prob): Replace declaration with that of... 23972 (make_pass_branch_prob): ...new function. 23973 (pass_value_profile_transformations): Replace declaration with that 23974 of... 23975 (make_pass_value_profile_transformations): ...new function. 23976 (pass_postreload_cse): Replace declaration with that of... 23977 (make_pass_postreload_cse): ...new function. 23978 (pass_gcse2): Replace declaration with that of... 23979 (make_pass_gcse2): ...new function. 23980 (pass_split_after_reload): Replace declaration with that of... 23981 (make_pass_split_after_reload): ...new function. 23982 (pass_branch_target_load_optimize1): Replace declaration with that 23983 of... 23984 (make_pass_branch_target_load_optimize1): ...new function. 23985 (pass_thread_prologue_and_epilogue): Replace declaration with that 23986 of... 23987 (make_pass_thread_prologue_and_epilogue): ...new function. 23988 (pass_stack_adjustments): Replace declaration with that of... 23989 (make_pass_stack_adjustments): ...new function. 23990 (pass_peephole2): Replace declaration with that of... 23991 (make_pass_peephole2): ...new function. 23992 (pass_if_after_reload): Replace declaration with that of... 23993 (make_pass_if_after_reload): ...new function. 23994 (pass_regrename): Replace declaration with that of... 23995 (make_pass_regrename): ...new function. 23996 (pass_cprop_hardreg): Replace declaration with that of... 23997 (make_pass_cprop_hardreg): ...new function. 23998 (pass_reorder_blocks): Replace declaration with that of... 23999 (make_pass_reorder_blocks): ...new function. 24000 (pass_branch_target_load_optimize2): Replace declaration with that 24001 of... 24002 (make_pass_branch_target_load_optimize2): ...new function. 24003 (pass_leaf_regs): Replace declaration with that of... 24004 (make_pass_leaf_regs): ...new function. 24005 (pass_split_before_sched2): Replace declaration with that of... 24006 (make_pass_split_before_sched2): ...new function. 24007 (pass_compare_elim_after_reload): Replace declaration with that of... 24008 (make_pass_compare_elim_after_reload): ...new function. 24009 (pass_sched2): Replace declaration with that of... 24010 (make_pass_sched2): ...new function. 24011 (pass_stack_regs): Replace declaration with that of... 24012 (make_pass_stack_regs): ...new function. 24013 (pass_stack_regs_run): Replace declaration with that of... 24014 (make_pass_stack_regs_run): ...new function. 24015 (pass_df_finish): Replace declaration with that of... 24016 (make_pass_df_finish): ...new function. 24017 (pass_compute_alignments): Replace declaration with that of... 24018 (make_pass_compute_alignments): ...new function. 24019 (pass_duplicate_computed_gotos): Replace declaration with that of... 24020 (make_pass_duplicate_computed_gotos): ...new function. 24021 (pass_variable_tracking): Replace declaration with that of... 24022 (make_pass_variable_tracking): ...new function. 24023 (pass_free_cfg): Replace declaration with that of... 24024 (make_pass_free_cfg): ...new function. 24025 (pass_machine_reorg): Replace declaration with that of... 24026 (make_pass_machine_reorg): ...new function. 24027 (pass_cleanup_barriers): Replace declaration with that of... 24028 (make_pass_cleanup_barriers): ...new function. 24029 (pass_delay_slots): Replace declaration with that of... 24030 (make_pass_delay_slots): ...new function. 24031 (pass_split_for_shorten_branches): Replace declaration with that of... 24032 (make_pass_split_for_shorten_branches): ...new function. 24033 (pass_split_before_regstack): Replace declaration with that of... 24034 (make_pass_split_before_regstack): ...new function. 24035 (pass_convert_to_eh_region_ranges): Replace declaration with that 24036 of... 24037 (make_pass_convert_to_eh_region_ranges): ...new function. 24038 (pass_shorten_branches): Replace declaration with that of... 24039 (make_pass_shorten_branches): ...new function. 24040 (pass_set_nothrow_function_flags): Replace declaration with that of... 24041 (make_pass_set_nothrow_function_flags): ...new function. 24042 (pass_dwarf2_frame): Replace declaration with that of... 24043 (make_pass_dwarf2_frame): ...new function. 24044 (pass_final): Replace declaration with that of... 24045 (make_pass_final): ...new function. 24046 (pass_rtl_seqabstr): Replace declaration with that of... 24047 (make_pass_rtl_seqabstr): ...new function. 24048 (pass_release_ssa_names): Replace declaration with that of... 24049 (make_pass_release_ssa_names): ...new function. 24050 (pass_early_inline): Replace declaration with that of... 24051 (make_pass_early_inline): ...new function. 24052 (pass_inline_parameters): Replace declaration with that of... 24053 (make_pass_inline_parameters): ...new function. 24054 (pass_update_address_taken): Replace declaration with that of... 24055 (make_pass_update_address_taken): ...new function. 24056 (pass_convert_switch): Replace declaration with that of... 24057 (make_pass_convert_switch): ...new function. 24058 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct 24059 to a subclass of simple_ipa_opt_pass along with... 24060 (pass_data_ipa_tree_profile): ...new pass_data instance and... 24061 (make_pass_ipa_tree_profile): ...new function. 24062 * tree-sra.c (pass_sra_early): Convert from a global struct to a 24063 subclass of gimple_opt_pass along with... 24064 (pass_data_sra_early): ...new pass_data instance and... 24065 (make_pass_sra_early): ...new function. 24066 (pass_sra): Convert from a global struct to a subclass of 24067 gimple_opt_pass along with... 24068 (pass_data_sra): ...new pass_data instance and... 24069 (make_pass_sra): ...new function. 24070 (pass_early_ipa_sra): Convert from a global struct to a subclass of 24071 gimple_opt_pass along with... 24072 (pass_data_early_ipa_sra): ...new pass_data instance and... 24073 (make_pass_early_ipa_sra): ...new function. 24074 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a 24075 subclass of gimple_opt_pass along with... 24076 (pass_data_ccp): ...new pass_data instance and... 24077 (make_pass_ccp): ...new function. 24078 (pass_fold_builtins): Convert from a global struct to a subclass of 24079 gimple_opt_pass along with... 24080 (pass_data_fold_builtins): ...new pass_data instance and... 24081 (make_pass_fold_builtins): ...new function. 24082 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a 24083 subclass of gimple_opt_pass along with... 24084 (pass_data_copy_prop): ...new pass_data instance and... 24085 (make_pass_copy_prop): ...new function. 24086 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a 24087 global struct to a subclass of gimple_opt_pass along with... 24088 (pass_data_rename_ssa_copies): ...new pass_data instance and... 24089 (make_pass_rename_ssa_copies): ...new function. 24090 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a 24091 subclass of gimple_opt_pass along with... 24092 (pass_data_dce): ...new pass_data instance and... 24093 (make_pass_dce): ...new function. 24094 (pass_dce_loop): Convert from a global struct to a subclass of 24095 gimple_opt_pass along with... 24096 (pass_data_dce_loop): ...new pass_data instance and... 24097 (make_pass_dce_loop): ...new function. 24098 (pass_cd_dce): Convert from a global struct to a subclass of 24099 gimple_opt_pass along with... 24100 (pass_data_cd_dce): ...new pass_data instance and... 24101 (make_pass_cd_dce): ...new function. 24102 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a 24103 subclass of gimple_opt_pass along with... 24104 (pass_data_dominator): ...new pass_data instance and... 24105 (make_pass_dominator): ...new function. 24106 (pass_phi_only_cprop): Convert from a global struct to a subclass of 24107 gimple_opt_pass along with... 24108 (pass_data_phi_only_cprop): ...new pass_data instance and... 24109 (make_pass_phi_only_cprop): ...new function. 24110 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a 24111 subclass of gimple_opt_pass along with... 24112 (pass_data_dse): ...new pass_data instance and... 24113 (make_pass_dse): ...new function. 24114 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to 24115 a subclass of gimple_opt_pass along with... 24116 (pass_data_forwprop): ...new pass_data instance and... 24117 (make_pass_forwprop): ...new function. 24118 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global 24119 struct to a subclass of gimple_opt_pass along with... 24120 (pass_data_tree_ifcombine): ...new pass_data instance and... 24121 (make_pass_tree_ifcombine): ...new function. 24122 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a 24123 subclass of gimple_opt_pass along with... 24124 (pass_data_ch): ...new pass_data instance and... 24125 (make_pass_ch): ...new function. 24126 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a 24127 subclass of gimple_opt_pass along with... 24128 (pass_data_tree_loop): ...new pass_data instance and... 24129 (make_pass_tree_loop): ...new function. 24130 (pass_tree_loop_init): Convert from a global struct to a subclass of 24131 gimple_opt_pass along with... 24132 (pass_data_tree_loop_init): ...new pass_data instance and... 24133 (make_pass_tree_loop_init): ...new function. 24134 (pass_lim): Convert from a global struct to a subclass of 24135 gimple_opt_pass along with... 24136 (pass_data_lim): ...new pass_data instance and... 24137 (make_pass_lim): ...new function. 24138 (pass_tree_unswitch): Convert from a global struct to a subclass of 24139 gimple_opt_pass along with... 24140 (pass_data_tree_unswitch): ...new pass_data instance and... 24141 (make_pass_tree_unswitch): ...new function. 24142 (pass_predcom): Convert from a global struct to a subclass of 24143 gimple_opt_pass along with... 24144 (pass_data_predcom): ...new pass_data instance and... 24145 (make_pass_predcom): ...new function. 24146 (pass_vectorize): Convert from a global struct to a subclass of 24147 gimple_opt_pass along with... 24148 (pass_data_vectorize): ...new pass_data instance and... 24149 (make_pass_vectorize): ...new function. 24150 (pass_graphite): Convert from a global struct to a subclass of 24151 gimple_opt_pass along with... 24152 (pass_data_graphite): ...new pass_data instance and... 24153 (make_pass_graphite): ...new function. 24154 (pass_graphite_transforms): Convert from a global struct to a subclass 24155 of gimple_opt_pass along with... 24156 (pass_data_graphite_transforms): ...new pass_data instance and... 24157 (make_pass_graphite_transforms): ...new function. 24158 (pass_check_data_deps): Convert from a global struct to a subclass of 24159 gimple_opt_pass along with... 24160 (pass_data_check_data_deps): ...new pass_data instance and... 24161 (make_pass_check_data_deps): ...new function. 24162 (pass_iv_canon): Convert from a global struct to a subclass of 24163 gimple_opt_pass along with... 24164 (pass_data_iv_canon): ...new pass_data instance and... 24165 (make_pass_iv_canon): ...new function. 24166 (pass_scev_cprop): Convert from a global struct to a subclass of 24167 gimple_opt_pass along with... 24168 (pass_data_scev_cprop): ...new pass_data instance and... 24169 (make_pass_scev_cprop): ...new function. 24170 (pass_record_bounds): Convert from a global struct to a subclass of 24171 gimple_opt_pass along with... 24172 (pass_data_record_bounds): ...new pass_data instance and... 24173 (make_pass_record_bounds): ...new function. 24174 (pass_complete_unroll): Convert from a global struct to a subclass of 24175 gimple_opt_pass along with... 24176 (pass_data_complete_unroll): ...new pass_data instance and... 24177 (make_pass_complete_unroll): ...new function. 24178 (pass_complete_unrolli): Convert from a global struct to a subclass of 24179 gimple_opt_pass along with... 24180 (pass_data_complete_unrolli): ...new pass_data instance and... 24181 (make_pass_complete_unrolli): ...new function. 24182 (pass_parallelize_loops): Convert from a global struct to a subclass 24183 of gimple_opt_pass along with... 24184 (pass_data_parallelize_loops): ...new pass_data instance and... 24185 (make_pass_parallelize_loops): ...new function. 24186 (pass_loop_prefetch): Convert from a global struct to a subclass of 24187 gimple_opt_pass along with... 24188 (pass_data_loop_prefetch): ...new pass_data instance and... 24189 (make_pass_loop_prefetch): ...new function. 24190 (pass_iv_optimize): Convert from a global struct to a subclass of 24191 gimple_opt_pass along with... 24192 (pass_data_iv_optimize): ...new pass_data instance and... 24193 (make_pass_iv_optimize): ...new function. 24194 (pass_tree_loop_done): Convert from a global struct to a subclass of 24195 gimple_opt_pass along with... 24196 (pass_data_tree_loop_done): ...new pass_data instance and... 24197 (make_pass_tree_loop_done): ...new function. 24198 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global 24199 struct to a subclass of gimple_opt_pass along with... 24200 (pass_data_cse_reciprocals): ...new pass_data instance and... 24201 (make_pass_cse_reciprocals): ...new function. 24202 (pass_cse_sincos): Convert from a global struct to a subclass of 24203 gimple_opt_pass along with... 24204 (pass_data_cse_sincos): ...new pass_data instance and... 24205 (make_pass_cse_sincos): ...new function. 24206 (pass_optimize_bswap): Convert from a global struct to a subclass of 24207 gimple_opt_pass along with... 24208 (pass_data_optimize_bswap): ...new pass_data instance and... 24209 (make_pass_optimize_bswap): ...new function. 24210 (pass_optimize_widening_mul): Convert from a global struct to a 24211 subclass of gimple_opt_pass along with... 24212 (pass_data_optimize_widening_mul): ...new pass_data instance and... 24213 (make_pass_optimize_widening_mul): ...new function. 24214 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a 24215 subclass of gimple_opt_pass along with... 24216 (pass_data_phiopt): ...new pass_data instance and... 24217 (make_pass_phiopt): ...new function. 24218 (pass_cselim): Convert from a global struct to a subclass of 24219 gimple_opt_pass along with... 24220 (pass_data_cselim): ...new pass_data instance and... 24221 (make_pass_cselim): ...new function. 24222 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a 24223 subclass of gimple_opt_pass along with... 24224 (pass_data_phiprop): ...new pass_data instance and... 24225 (make_pass_phiprop): ...new function. 24226 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a 24227 subclass of gimple_opt_pass along with... 24228 (pass_data_pre): ...new pass_data instance and... 24229 (make_pass_pre): ...new function. 24230 (pass_fre): Convert from a global struct to a subclass of 24231 gimple_opt_pass along with... 24232 (pass_data_fre): ...new pass_data instance and... 24233 (make_pass_fre): ...new function. 24234 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a 24235 subclass of gimple_opt_pass along with... 24236 (pass_data_reassoc): ...new pass_data instance and... 24237 (make_pass_reassoc): ...new function. 24238 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a 24239 subclass of gimple_opt_pass along with... 24240 (pass_data_sink_code): ...new pass_data instance and... 24241 (make_pass_sink_code): ...new function. 24242 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a 24243 subclass of gimple_opt_pass along with... 24244 (pass_data_strlen): ...new pass_data instance and... 24245 (make_pass_strlen): ...new function. 24246 * tree-ssa-structalias.c (pass_build_alias): Convert from a global 24247 struct to a subclass of gimple_opt_pass along with... 24248 (pass_data_build_alias): ...new pass_data instance and... 24249 (make_pass_build_alias): ...new function. 24250 (pass_build_ealias): Convert from a global struct to a subclass of 24251 gimple_opt_pass along with... 24252 (pass_data_build_ealias): ...new pass_data instance and... 24253 (make_pass_build_ealias): ...new function. 24254 (pass_ipa_pta): Convert from a global struct to a subclass of 24255 simple_ipa_opt_pass along with... 24256 (pass_data_ipa_pta): ...new pass_data instance and... 24257 (make_pass_ipa_pta): ...new function. 24258 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a 24259 subclass of gimple_opt_pass along with... 24260 (pass_data_uncprop): ...new pass_data instance and... 24261 (make_pass_uncprop): ...new function. 24262 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a 24263 global struct to a subclass of gimple_opt_pass along with... 24264 (pass_data_late_warn_uninitialized): ...new pass_data instance and... 24265 (make_pass_late_warn_uninitialized): ...new function. 24266 * tree-ssa.c (pass_init_datastructures): Convert from a global struct 24267 to a subclass of gimple_opt_pass along with... 24268 (pass_data_init_datastructures): ...new pass_data instance and... 24269 (make_pass_init_datastructures): ...new function. 24270 (pass_early_warn_uninitialized): Convert from a global struct to a 24271 subclass of gimple_opt_pass along with... 24272 (pass_data_early_warn_uninitialized): ...new pass_data instance and... 24273 (make_pass_early_warn_uninitialized): ...new function. 24274 (pass_update_address_taken): Convert from a global struct to a 24275 subclass of gimple_opt_pass along with... 24276 (pass_data_update_address_taken): ...new pass_data instance and... 24277 (make_pass_update_address_taken): ...new function. 24278 * tree-ssanames.c (pass_release_ssa_names): Convert from a global 24279 struct to a subclass of gimple_opt_pass along with... 24280 (pass_data_release_ssa_names): ...new pass_data instance and... 24281 (make_pass_release_ssa_names): ...new function. 24282 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a 24283 subclass of gimple_opt_pass along with... 24284 (pass_data_stdarg): ...new pass_data instance and... 24285 (make_pass_stdarg): ...new function. 24286 * tree-switch-conversion.c (pass_convert_switch): Convert from a 24287 global struct to a subclass of gimple_opt_pass along with... 24288 (pass_data_convert_switch): ...new pass_data instance and... 24289 (make_pass_convert_switch): ...new function. 24290 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct 24291 to a subclass of gimple_opt_pass along with... 24292 (pass_data_tail_recursion): ...new pass_data instance and... 24293 (make_pass_tail_recursion): ...new function. 24294 (pass_tail_calls): Convert from a global struct to a subclass of 24295 gimple_opt_pass along with... 24296 (pass_data_tail_calls): ...new pass_data instance and... 24297 (make_pass_tail_calls): ...new function. 24298 * tree-vect-generic.c (pass_lower_vector): Convert from a global 24299 struct to a subclass of gimple_opt_pass along with... 24300 (pass_data_lower_vector): ...new pass_data instance and... 24301 (make_pass_lower_vector): ...new function. 24302 (pass_lower_vector_ssa): Convert from a global struct to a subclass of 24303 gimple_opt_pass along with... 24304 (pass_data_lower_vector_ssa): ...new pass_data instance and... 24305 (make_pass_lower_vector_ssa): ...new function. 24306 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct 24307 to a subclass of gimple_opt_pass along with... 24308 (pass_data_slp_vectorize): ...new pass_data instance and... 24309 (make_pass_slp_vectorize): ...new function. 24310 (pass_ipa_increase_alignment): Convert from a global struct to a 24311 subclass of simple_ipa_opt_pass along with... 24312 (pass_data_ipa_increase_alignment): ...new pass_data instance and... 24313 (make_pass_ipa_increase_alignment): ...new function. 24314 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of 24315 gimple_opt_pass along with... 24316 (pass_data_vrp): ...new pass_data instance and... 24317 (make_pass_vrp): ...new function. 24318 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a 24319 subclass of simple_ipa_opt_pass along with... 24320 (pass_data_ipa_free_lang_data): ...new pass_data instance and... 24321 (make_pass_ipa_free_lang_data): ...new function. 24322 * tsan.c (pass_tsan): Convert from a global struct to a subclass of 24323 gimple_opt_pass along with... 24324 (pass_data_tsan): ...new pass_data instance and... 24325 (make_pass_tsan): ...new function. 24326 (pass_tsan_O0): Convert from a global struct to a subclass of 24327 gimple_opt_pass along with... 24328 (pass_data_tsan_O0): ...new pass_data instance and... 24329 (make_pass_tsan_O0): ...new function. 24330 * var-tracking.c (pass_variable_tracking): Convert from a global 24331 struct to a subclass of rtl_opt_pass along with... 24332 (pass_data_variable_tracking): ...new pass_data instance and... 24333 (make_pass_variable_tracking): ...new function. 24334 * web.c (pass_web): Convert from a global struct to a subclass of 24335 rtl_opt_pass along with... 24336 (pass_data_web): ...new pass_data instance and... 24337 (make_pass_web): ...new function. 24338 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace 24339 declaration with that of... 24340 (make_pass_mode_switch_use): ...new function. 24341 (pass_resolve_sw_modes): Replace declaration with that of... 24342 (make_pass_resolve_sw_modes): ...new function. 24343 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert 24344 from a global struct to a subclass of rtl_opt_pass along with... 24345 (pass_data_mode_switch_use): ...new pass_data instance and... 24346 (make_pass_mode_switch_use): ...new function. 24347 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert 24348 from a global struct to a subclass of rtl_opt_pass along with... 24349 (pass_data_resolve_sw_modes): ...new pass_data instance and... 24350 (make_pass_resolve_sw_modes): ...new function. 24351 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global 24352 struct to a subclass of rtl_opt_pass along with... 24353 (pass_data_insert_vzeroupper): ...new pass_data instance and... 24354 (make_pass_insert_vzeroupper): ...new function. 24355 * config/sparc/sparc.c (pass_work_around_errata): Convert from a 24356 global struct to a subclass of rtl_opt_pass along with... 24357 (pass_data_work_around_errata): ...new pass_data instance and... 24358 (make_pass_work_around_errata): ...new function. 24359 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global 24360 struct to a subclass of rtl_opt_pass along with... 24361 (pass_data_mips_machine_reorg2): ...new pass_data instance and... 24362 (make_pass_mips_machine_reorg2): ...new function. 24363 243642013-08-05 David Malcolm <dmalcolm@redhat.com> 24365 24366 * passes.c (pass_manager::operator new): New. 24367 243682013-08-05 David Malcolm <dmalcolm@redhat.com> 24369 24370 Handwritten part of conversion of passes to C++ classes. 24371 24372 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def. 24373 (toplev.o): Add dep on PASS_MANAGER_H. 24374 * cgraphunit.c (cgraph_process_new_functions): Rework invocation 24375 of early local pases to reflect this moving from a global to a 24376 member of gcc::pass_manager. 24377 (cgraph_add_new_function): Likewise. 24378 * lto-cgraph.c (lto_output_node): Update for conversion of 24379 struct ipa_opt_pass_d to a C++ subclass of opt_pass. 24380 * passes.c (opt_pass::clone): New. 24381 (opt_pass::gate): New. 24382 (opt_pass::execute): New. 24383 (opt_pass::opt_pass): New. 24384 (pass_manager::execute_early_local_passes): New. 24385 (pass_manager::execute_pass_mode_switching): new. 24386 (finish_optimization_passes): Convert to... 24387 (pass_manager::finish_optimization_passes): ...this. 24388 (finish_optimization_passes): Update for conversion of passes to 24389 C++ classes. 24390 (register_dump_files_1): Use has_gate since we cannot portably 24391 check a vtable entry against NULL. 24392 (dump_one_pass): Likewise. 24393 (ipa_write_summaries_2): Likewise. 24394 (ipa_write_optimization_summaries_1): Likewise. 24395 (ipa_read_summaries_1): Likewise. 24396 (ipa_read_optimization_summaries_1): Likewise. 24397 (execute_ipa_stmt_fixups): Likewise. 24398 (pass_manager::pass_manager): Rewrite pass-creation, invoking 24399 pass-creation functions rather than wiring up globals, and 24400 storing the results in fields of pass_manager generated using 24401 pass-instances.def. 24402 (pass_manager::dump_profile_report): Update for conversion of 24403 passes to C++ classes. 24404 (pass_manager::execute_ipa_summary_passes): Likewise. 24405 (execute_one_ipa_transform_pass): Likewise. 24406 (execute_one_pass): Use has_gate and has_execute since we cannot 24407 portably check a vtable entry against NULL. 24408 * pass_manager.h (pass_manager::finish_optimization_passes): New. 24409 (pass_manager): Use pass-instances.def to add fields for the 24410 various pass instances. 24411 * toplev.c (finalize): Update for move of 24412 finish_optimization_passes to a method of gcc::pass_manager. 24413 * toplev.h (finish_optimization_passes): Move to method of class 24414 pass_manager. 24415 * tree-pass.h (struct pass_data): New. 24416 (opt_pass): Convert to C++ class, make it a subclass of pass_data. 24417 (opt_pass::gate): Convert to virtual function. 24418 (opt_pass::~opt_pass): New. 24419 (opt_pass::clone): New. 24420 (opt_pass::execute): Convert to virtual function. 24421 (opt_pass::opt_pass): New. 24422 (opt_pass::ctxt_): new. 24423 (gimple_opt_pass): Convert to subclass of opt_pass. 24424 (gimple_opt_pass::gimple_opt_pass): New. 24425 (rtl_opt_pass): Convert to subclass of opt_pass. 24426 (rtl_opt_pass::rtl_opt_pass): New. 24427 (ipa_opt_pass_d): Convert to subclass of opt_pass. 24428 (ipa_opt_pass_d::ipa_opt_pass_d): New. 24429 (simple_ipa_opt_pass): Convert to subclass of opt_pass. 24430 (simple_ipa_opt_pass::simple_ipa_opt_pass): New. 24431 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework 24432 invocation of pass_mode_switching to reflect this moving from a 24433 global to a member of gcc::pass_manager. 24434 (ix86_option_override): Rework how pass_insert_vzeroupper is 24435 added to the pass_manager to reflect autogenerated changes. 24436 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H. 24437 244382013-08-05 Richard Earnshaw <rearnsha@arm.com> 24439 24440 PR rtl-optimization/57708 24441 * recog.c (peep2_find_free_register): Validate all regs in a 24442 multi-reg mode. 24443 244442013-08-05 Jan Hubicka <jh@suse.cz> 24445 24446 PR lto/57602 24447 * cgraph.c (verify_cgraph_node): Accept local flags from other 24448 partitions. 24449 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag. 24450 (function_and_variable_visibility): Likewise. 24451 * trans-mem.c (ipa_tm_create_version): TM versions are not local. 24452 244532013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net> 24454 24455 * graph.c (init_graph_slim_pretty_print): Remove. 24456 (print_graph_cfg): Do not call it. Use local pretty printer. 24457 (start_graph_dump): Likewise. 24458 244592013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net> 24460 24461 * gimple-pretty-print.c (buffer): Remove. 24462 (initialized): Likewise. 24463 (maybe_init_pretty_print): Likewise. 24464 (print_gimple_stmt): Do not call it. Use non-static local 24465 pretty_printer variable. 24466 (print_gimple_expr): Likewise. 24467 (print_gimple_seq): Likewise. 24468 (gimple_dump_bb): Likewise. 24469 244702013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net> 24471 24472 * asan.c (asan_pp): Remove. 24473 (asan_pp_initialized): Likewise. 24474 (asan_pp_initialize): Likewise. 24475 (asan_pp_string): Take a pretty_printer parameter. Adjust callers. 24476 (asan_emit_stack_protection): Tidy. Use local pretty printer. 24477 (asan_add_global): Likewise. 24478 244792013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net> 24480 24481 * pretty-print.h (pp_base): Remove. Adjust dependent macros. 24482 * diagnostic.h (diagnostic_flush_buffer): Adjust. 24483 * pretty-print.c (pp_formatted_text_data): Likewise. 24484 (pp_indent): Rename from pp_base_indent. 24485 (pp_format): Rename from pp_base_format. 24486 (pp_output_formatted_text): Rename from pp_base_output_formatted_text. 24487 (pp_format_verbatim): Rename from pp_base_format_verbatim. 24488 (pp_flush): Rename from pp_base_flush. 24489 (pp_set_line_maximum_length): Rename from 24490 pp_base_set_line_maximum_length. 24491 (pp_clear_output_area): Rename from pp_base_clear_output_area. 24492 (pp_set_prefix): Rename from pp_base_set_prefix. 24493 (pp_destroy_prefix): Rename from pp_base_destroy_prefix. 24494 (pp_emit_prefix): Rename from pp_base_emit_prefix. 24495 (pp_append_text): Rename from pp_base_append_text. 24496 (pp_formatted_text): Rename from pp_base_formatted_text. 24497 (pp_last_position_in_text): Rename from pp_base_last_position_in_text. 24498 (pp_remaining_character_count_for_line): Rename from 24499 pp_base_remaining_character_count_for_line. 24500 (pp_newline): Rename from pp_base_newline. 24501 (pp_character): Rename from pp_base_character. 24502 (pp_string): Rename from pp_base_string. 24503 (pp_maybe_space): Rename from pp_base_maybe_space. 24504 * asan.c (asan_pp_string): Adjust. 24505 (asan_emit_stack_protection): Likewise. 24506 (asan_add_global): Likewise. 24507 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call. 24508 * tree-mudflap.c (mf_varname_tree): Likewise. 24509 * tree-pretty-print.c (pp_tree_identifier): Rename from 24510 pp_base_tree_identifier. 24511 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition. 24512 Declare as function. 24513 245142013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net> 24515 24516 * pretty-print.h (pp_bar_bar): New. 24517 (pp_ampersand_ampersand): Likewise. 24518 (pp_less_equal): Likewise. 24519 (pp_greater_equal): Likewise. 24520 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty 24521 printer functions instead of pp_string or operators and punctuators. 24522 (dump_gimple_call): Likewise. 24523 (dump_gimple_omp_for): Likewise. 24524 (dump_gimple_transaction): Likewise. 24525 (dump_gimple_phi): Likewise. 24526 (pp_gimple_stmt_1): Likewise. 24527 * sched-vis.c (print_insn): Likewise. 24528 * tree-mudflap.c (mf_varname_tree): Likewise. 24529 * tree-pretty-print.c (dump_block_node): Likewise. 24530 (dump_generic_node): Likewise. 24531 245322013-08-02 Jan Hubicka <jh@suse.cz> 24533 24534 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into 24535 boundaries. 24536 * lto-streamer-out.c (tree_is_indexable): Results decls and 24537 parm decls are not indexable. 24538 (DFS_write_tree_body): Do not follow args and results. 24539 (hash_tree): Likewise. 24540 (output_functions): Rearrange so struct function is needed 24541 only when real body is output; be able to also ouptut abstract 24542 functions; output DECL_ARGUMENTS and DECL_RESULT. 24543 (lto_output): When not in WPA, ale store abstract functions. 24544 (write_symbol): Do not care about RESULT_DECL. 24545 (output_symbol_p): Handle correctly sbtract decls. 24546 * lto-streamer-in.c (input_function): Rearrange so struct 24547 function can be NULL at entry; allow streaming of 24548 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT. 24549 * ipa.c (symtab_remove_unreachable_nodes): Silence confused 24550 sanity check during LTO. 24551 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip 24552 RESULT_DECl and DECL_ARGUMENTS. 24553 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers): 24554 Likewise. 24555 245562013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net> 24557 24558 * pretty-print.h (pp_underscore): New. 24559 (pp_comma): Tidy. 24560 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty 24561 printer functions instead of pp_character. 24562 (dump_binary_rhs): Likewise. 24563 (dump_ternary_rhs): Likewise. 24564 (dump_gimple_call_args): Likewise. 24565 (pp_points_to_solution): Likewise. 24566 (dump_gimple_call): Likewise. 24567 (dump_gimple_switch): Likewise. 24568 (dump_gimple_cond): Likewise. 24569 (dump_gimple_bind): Likewise. 24570 (dump_gimple_try): Likewise. 24571 (dump_gimple_omp_for): Likewise. 24572 (dump_gimple_omp_continue): Likewise. 24573 (dump_gimple_omp_single): Likewise. 24574 (dump_gimple_omp_sections): Likewise. 24575 (dump_gimple_omp_block): Likewise. 24576 (dump_gimple_omp_critical): Likewise. 24577 (dump_gimple_transaction): Likewise. 24578 (dump_gimple_asm): Likewise. 24579 (dump_gimple_phi): Likewise. 24580 (dump_gimple_omp_parallel): Likewise. 24581 (dump_gimple_omp_task): Likewise. 24582 (dump_gimple_omp_atomic_load): Likewise. 24583 (dump_gimple_omp_atomic_store): Likewise. 24584 (dump_gimple_mem_ops): Likewise. 24585 (pp_gimple_stmt_1): Likewise. 24586 (pp_cfg_jump): Likewise. 24587 (dump_implicit_edges): Likewise. 24588 (gimple_dump_bb_for_graph): Likewise. 24589 * graph.c (draw_cfg_node): Likewise. 24590 * langhooks.c (lhd_print_error_function): Likewise. 24591 * sched-vis.c (print_exp): Likewise. 24592 (print_value): Likewise. 24593 (print_pattern): Likewise. 24594 (print_insn): Likewise. 24595 (rtl_dump_bb_for_graph): Likewise. 24596 * tree-pretty-print.c (dump_function_declaration): Likewise. 24597 (dump_array_domain): Likewise. 24598 (dump_omp_clause): Likewise. 24599 (dump_location): Likewise. 24600 (dump_generic_node): Likewise. 24601 (print_struct_decl): Likewise. 24602 * diagnostic.c (diagnostic_show_locus): Use pp_space. 24603 246042013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com> 24605 24606 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update 24607 candidate table when replacing a candidate statement. 24608 (replace_rhs_if_not_dup): Likewise. 24609 (replace_one_candidate): Likewise. 24610 246112013-08-02 Jan Hubicka <jh@suse.cz> 24612 Martin Liska <marxin.liska@gmail.com> 24613 24614 * cgraphunit.c (add_new_function): Fix logic when adding from 24615 late IPA pass. 24616 (assemble_thunk): Rename to ... 24617 (expand_thunk); .. this one; export; get it working with 24618 general functions; make produced gimple valid. 24619 * cgraph.h (expand_thunk): Declare. 24620 246212013-08-02 Jan Hubicka <jh@suse.cz> 24622 24623 * ipa-cp.c (gather_context_independent_values): Use 24624 ipa_get_param_move_cost. 24625 (get_replacement_map): Remove PARAM; move parameter folding 24626 into tree-inline.c 24627 (create_specialized_node): Update. 24628 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins; 24629 assert that we have gimple body; update move_cost. 24630 (count_formal_params): Assert that we have gimple body. 24631 (ipa_dump_param): New function. 24632 (ipa_alloc_node_params): Break out from ... 24633 (ipa_initialize_node_params): ... here. 24634 (ipa_get_vector_of_formal_parms): ICE when used in WPA. 24635 (ipa_write_node_info): Stream move costs. 24636 (ipa_read_node_info): Read move costs. 24637 (ipa_update_after_lto_read): Do not recompute node params. 24638 * ipa-prop.h (ipa_param_descriptor): Add move_cost. 24639 (ipa_get_param): Check we are not in WPA. 24640 (ipa_get_param_move_cost): New. 24641 * tree-inline.c (tree_function_versioning): Fold replacement as needed. 24642 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only 24643 parm numbers to be present. 24644 246452013-08-02 Vladimir Makarov <vmakarov@redhat.com> 24646 24647 PR rtl-optimization/58048 24648 * lra-constraints.c (process_alt_operands): Don't check asm 24649 operand on register. 24650 246512013-08-02 Eric Botcazou <ebotcazou@adacore.com> 24652 24653 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add 24654 the implied StoreLoad barrier for atomic operations if before. 24655 246562013-08-02 Jan Hubicka <jh@suse.cz> 24657 Martin Liska <marxin.liska@gmail.com> 24658 24659 * cgraph.c (cgraph_function_body_availability): Do not check 24660 cgraph flags. 24661 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias, 24662 symtab_node_availability): Declare. 24663 * ipa.c (can_replace_by_local_alias): New. 24664 (function_and_variable_visibility): Use it. 24665 * symtab.c (symtab_for_node_and_aliases, 24666 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New. 24667 246682013-08-02 Vladimir Makarov <vmakarov@redhat.com> 24669 24670 PR rtl-optimization/57963 24671 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New. 24672 (lra_constraints): Use them. 24673 246742013-08-02 Sofiane Naci <sofiane.naci@arm.com> 24675 24676 * config/arm/types.md (define_attr "type"): Add "load_acq" 24677 and "store_rel". 24678 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute 24679 changes. 24680 (cortex_a53_store1): Likewise. 24681 246822013-08-01 Jan Hubicka <jh@suse.cz> 24683 24684 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other 24685 partitions are not needed. 24686 246872013-08-01 Uros Bizjak <ubizjak@gmail.com> 24688 24689 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New. 24690 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and 24691 MAYBE_NON_Q_CLASS_P where appropriate. 24692 246932013-08-01 Jan Hubicka <jh@suse.cz> 24694 24695 * cgraph.h (release_function_body): Declare. 24696 * tree.c (free_lang_data_in_decl): Free, parameters and return values 24697 of unused delcarations. 24698 246992013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 24700 24701 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical 24702 RTL form when subtracting a constant. 24703 247042013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 24705 24706 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)): 24707 Generate canonical plus rtx with negated immediate instead of minus 24708 where appropriate. 24709 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case. 24710 247112013-08-01 Jan Hubicka <jh@suse.cz> 24712 24713 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin. 24714 (cgraph_release_function_body): Likewise. 24715 (cgraph_can_remove_if_no_direct_calls_p): Likewise. 24716 * cgraph.h (cgrpah_node): Rename abstract_and_needed 24717 to used_as_abstract_origin. 24718 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove 24719 symbols used as abstract origins. 24720 * cgraphunit.c (analyze_functions): Update. 24721 * ipa.c (symtab_remove_unreachable_nodes): Recompute 24722 used_as_abstract_origin. 24723 * tree-inline.c (tree_function_versioning): Update 24724 used_as_abstract_origin; be ready for DECL_RESULT and 24725 DECL_ARGUMENTS to be NULL. 24726 24727 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes 24728 for abstract functions. 24729 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not 24730 real symbols. 24731 247322013-08-01 Jan Hubicka <jh@suse.cz> 24733 24734 * profile.c (compute_value_histograms): Fix thinko. 24735 247362013-08-01 Sofiane Naci <sofiane.naci@arm.com> 24737 24738 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add 24739 aarch-common-protos.h to extra_headers. 24740 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file. 24741 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md". 24742 * config/aarch64/t-aarch64 (aarch-common.o): Define. 24743 247442013-08-01 Sofiane Naci <sofiane.naci@arm.com> 24745 24746 * config/aarch64/aarch64.md (define_attr "type"): Delete. 24747 Include "../arm/types.md". Define "type" attribute for all patterns. 24748 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for 24749 attribute changes. 24750 247512013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com> 24752 24753 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates 24754 to support power8 load fusion. 24755 (fusion_gpr_mem_load): Likewise. 24756 24757 * config/rs6000/rs6000-modes.def (PTImode): Update a comment. 24758 24759 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New 24760 declarations for power8 load fusion. 24761 (emit_fusion_gpr_load): Likewise. 24762 24763 * config/rs6000/rs6000.c (rs6000_option_override_internal): If 24764 tuning for power8, turn on fusion mode by default. Turn on sign 24765 extending fusion mode if normal fusion mode is on, and we are at 24766 -O2 or -O3. 24767 (fusion_gpr_load_p): New function, return true if we can fuse an 24768 addis instruction with a dependent load to a GPR. 24769 (emit_fusion_gpr_load): Emit the instructions for power8 load 24770 fusion to GPRs. 24771 24772 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes. 24773 (VSX load fusion peepholes): New peepholes to fuse together an 24774 addi instruction with a VSX load instruction. 24775 24776 * config/rs6000/rs6000.md (GPR load fusion peepholes): New 24777 peepholes to fuse an addis instruction with a load to a GPR base 24778 register. If we are supporting sign extending fusions, convert 24779 sign extending loads to zero extending loads and add an explicit 24780 sign extension. 24781 247822013-07-31 Sofiane Naci <sofiane.naci@arm.com> 24783 24784 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add 24785 aarch-common-protos.h to extra_headers. 24786 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file. 24787 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ... 24788 (arm_early_store_addr_dep): Likewise. 24789 (arm_no_early_alu_shift_dep): Likewise. 24790 (arm_no_early_alu_shift_value_dep): Likewise. 24791 (arm_no_early_mul_dep): Likewise. 24792 (arm_no_early_store_addr_dep): Likewise. 24793 (arm_mac_accumulator_is_mul_result): Likewise. 24794 (arm_mac_accumulator_is_result): Likewise. 24795 * config/arm/aarch-common.c: ... here. New file. 24796 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from 24797 here to ... 24798 (arm_early_store_addr_dep): Likewise. 24799 (arm_no_early_alu_shift_dep): Likewise. 24800 (arm_no_early_alu_shift_value_dep): Likewise. 24801 (arm_no_early_mul_dep): Likewise. 24802 (arm_no_early_store_addr_dep): Likewise. 24803 (arm_mac_accumulator_is_mul_result): Likewise. 24804 (arm_mac_accumulator_is_result): Likewise. 24805 * config/arm/aarch-common-protos.h: ... here. New file. 24806 * config/arm/t-arm (aarch-common.o): Define. 24807 248082013-07-31 Sofiane Naci <sofiane.naci@arm.com> 24809 24810 * config/arm/arm.md: Include new file "types.md". 24811 (define_attr "type"): Move from here to ... 24812 (define_attr "mul32"): Likewise. 24813 (define_attr "mul64"): Likewise. 24814 * config/arm/types.md: ... here. New file. 24815 248162013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de> 24817 24818 * config.gcc (*-*-rtems*): Use __cxa_atexit by default. 24819 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define. 24820 248212013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de> 24822 24823 * gen-pass-instances.awk: Fix offset of substr(). 24824 248252013-07-31 David Malcolm <dmalcolm@redhat.com> 24826 24827 * Makefile.in (pass-instances.def): New. 24828 (passes.o): Replace dependency on passes.def with one on 24829 pass-instances.def 24830 24831 * gen-pass-instances.awk: New. 24832 24833 * passes.c (pass_manager::pass_manager): Use pass-instances.def 24834 rather than passes.def, updating local definition of NEXT_PASS 24835 macro to add an extra NUM parameter (currently unused). 24836 248372013-07-30 David Malcolm <dmalcolm@redhat.com> 24838 24839 * Makefile.in (PASS_MANAGER_H): New. 24840 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H. 24841 (passes.o): Likewise. 24842 (statistics.o): Likewise. 24843 (cgraphunit.o): Likewise. 24844 (context.o): Depend on PASS_MANAGER_H. 24845 24846 * pass_manager.h: New. 24847 24848 * cgraphunit.c (cgraph_add_new_function): Update for moves 24849 of globals to fields of pass_manager. 24850 (analyze_function): Likewise. 24851 (expand_function): Likewise. 24852 (ipa_passes): Likewise. 24853 (compile): Likewise. 24854 24855 * context.c (context::context): New. 24856 * context.h (context::context): New. 24857 (context::get_passes): New. 24858 (context::passes_): New. 24859 24860 * lto-cgraph.c (input_node): Update for moves of globals to 24861 fields of pass_manager. 24862 24863 * passes.c (all_passes): Remove, in favor of a field of the 24864 same name within the new class pass_manager. 24865 (all_small_ipa_passes): Likewise. 24866 (all_lowering_passes): Likewise. 24867 (all_regular_ipa_passes): Likewise. 24868 (all_late_ipa_passes): Likewise. 24869 (all_lto_gen_passes): Likewise. 24870 (passes_by_id): Likewise. 24871 (passes_by_id_size): Likewise. 24872 (gcc_pass_lists): Remove, in favor of "pass_lists" field within 24873 the new class pass_manager. 24874 (set_pass_for_id): Convert to... 24875 (pass_manager::set_pass_for_id): ...method. 24876 (get_pass_for_id): Convert to... 24877 (pass_manager::get_pass_for_id): ...method. 24878 (register_one_dump_file): Move body of implementation into... 24879 (pass_manager::register_one_dump_file): ...here. 24880 (register_dump_files_1): Convert to... 24881 (pass_manager::register_dump_files_1): ...method. 24882 (register_dump_files): Convert to... 24883 (pass_manager::register_dump_files): ...method. 24884 (create_pass_tab): Update for moves of globals to fields of 24885 pass_manager. 24886 (dump_passes): Move body of implementation into... 24887 (pass_manager::dump_passes): ...here. 24888 (register_pass): Move body of implementation into... 24889 (pass_manager::register_pass): ...here. 24890 (init_optimization_passes): Convert into... 24891 (pass_manager::pass_manager): ...constructor for new 24892 pass_manager class, and initialize the pass_lists array. 24893 (check_profile_consistency): Update for moves of globals to 24894 fields of pass_manager. 24895 (dump_profile_report): Move body of implementation into... 24896 (pass_manager::dump_profile_report): ...here. 24897 (ipa_write_summaries_1): Update for moves of pass lists from 24898 being globals to fields of pass_manager. 24899 (ipa_write_optimization_summaries): Likewise. 24900 (ipa_read_summaries): Likewise. 24901 (ipa_read_optimization_summaries): Likewise. 24902 (execute_all_ipa_stmt_fixups): Likewise. 24903 24904 * statistics.c (statistics_fini): Update for moves of globals to 24905 fields of pass_manager. 24906 24907 * toplev.c (general_init): Replace call to 24908 init_optimization_passes with construction of the pass_manager 24909 instance. 24910 24911 * tree-pass.h (all_passes): Remove, in favor of a field of the 24912 same name within the new class pass_manager. 24913 (all_small_ipa_passes): Likewise. 24914 (all_lowering_passes): Likewise. 24915 (all_regular_ipa_passes): Likewise. 24916 (all_lto_gen_passes): Likewise. 24917 (all_late_ipa_passes): Likewise. 24918 (passes_by_id): Likewise. 24919 (passes_by_id_size): Likewise. 24920 (gcc_pass_lists): Remove, in favor of "pass_lists" field within 24921 the new class pass_manager. 24922 (get_pass_for_id): Remove. 24923 249242013-07-30 Richard Earnshaw <rearnsha@arm.com> 24925 24926 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target 24927 configs. 24928 249292013-07-30 Richard Earnshaw <rearnsha@arm.com> 24930 24931 * arm.md (mulhi3): New expand pattern. 24932 249332013-07-30 Jan Hubicka <jh@suse.cz> 24934 Martin Liska <marxin.liska@gmail.com> 24935 24936 * profile.c (compute_value_histograms): Do not ICE when 24937 there is mismatch only on some counters. 24938 249392013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org> 24940 24941 PR rtl-optimization/57637 24942 * function.c (move_insn_for_shrink_wrap): Also check the 24943 GEN set of the LIVE problem for the liveness analysis 24944 if it exists, otherwise give up. 24945 249462013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com> 24947 24948 PR tree-optimization/57993 24949 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record 24950 replaced statement in the candidate table. 24951 (phi_add_costs): Return infinite cost when the hidden basis does 24952 not dominate all phis on which the candidate is dependent. 24953 (replace_one_candidate): Record replaced statement in the 24954 candidate table. 24955 249562013-07-29 Joern Rennecke <joern.rennecke@embecosm.com> 24957 24958 * config/epiphany/epiphany.md (*isub_i+2): New peephole. 24959 (ashlv2si3): New expander. 24960 (*ashlv2si3_i): New define_insn_and_split. 24961 * predicates.md (float_operation): Allow patterns with three 24962 basic sub-patterns. 24963 24964 PR rtl-optimization/58021 24965 * mode-switching.c (create_pre_exit): Always split off preceding 24966 insns if we are not at the basic block head. 24967 249682013-07-29 Maciej W. Rozycki <macro@codesourcery.com> 24969 24970 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'. 24971 (UCLIBC_DYNAMIC_LINKER): New macro. 24972 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle 24973 `-mnan=2008'. 24974 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise. 24975 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle 24976 `-mnan=2008'. 24977 (UCLIBC_DYNAMIC_LINKER64): Redefine macro. 24978 (UCLIBC_DYNAMIC_LINKERN32): Likewise. 24979 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls 24980 for SF and DF modes. Use ieee_quad_format for TF mode. 24981 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum. 24982 * config/mips/mips.c (mips_file_start): Output a `.nan' directive. 24983 (mips_option_override): Handle `-mnan=legacy'. 24984 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle 24985 `-mabs=2008' and `-mnan=2008'. 24986 (OPTION_DEFAULT_SPECS): Add "nan" default. 24987 (ASM_SPEC): Handle `-mnan='. 24988 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro. 24989 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update 24990 comment accordingly. 24991 (neg<mode>2): Likewise. 24992 * config/mips/mips.opt (mabs, mnan): New options. 24993 * doc/install.texi (Configuration): Document `--with-nan=' option. 24994 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and 24995 `-mnan=' options. 24996 (MIPS Options): Document them. 24997 * config.gcc <mips*-*-*>: Handle `--with-nan='. 24998 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support. 24999 * configure: Regenerate. 25000 * config.in: Regenerate. 25001 250022013-07-29 Uros Bizjak <ubizjak@gmail.com> 25003 25004 * config/i386/i386.md (float post-reload splitters): Do not check 25005 for subregs of SSE registers. 25006 250072013-07-29 Uros Bizjak <ubizjak@gmail.com> 25008 H.J. Lu <hongjiu.lu@intel.com> 25009 25010 PR target/57954 25011 PR target/57988 25012 * config/i386/i386.md (post-reload splitter 25013 to avoid partial SSE reg dependency stalls): New pattern. 25014 250152013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com> 25016 25017 * config/s390/s390.md ("movcc"): Swap load and store instructions. 25018 250192013-07-27 Joern Rennecke <joern.rennecke@embecosm.com> 25020 25021 * config/epiphany/epiphany.c (epiphany_compute_frame_size): 25022 Also reserve space for saving UNKNOWN_REGNUM for leaf functions. 25023 250242013-07-26 Cary Coutant <ccoutant@google.com> 25025 25026 * dwarf2out.c (die_checksum_ordered): Don't include template 25027 instantiations in signature. 25028 (is_template_parameter): New function. 25029 (is_template_instantiation): New function. 25030 (generate_skeleton_bottom_up): Don't include template instantiations 25031 in type unit DIE. 25032 (generate_skeleton): Likewise. 25033 (break_out_comdat_types): Move recursive call to break out nested 25034 types earlier. 25035 (prune_unused_types_mark_generic_parms_dies): Call 25036 is_template_parameter. 25037 250382013-07-26 Ian Bolton <ian.bolton@arm.com> 25039 25040 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that 25041 uses vector registers. 25042 * config/aarch64/iterators.md: Add attributes rtn and vas. 25043 250442013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 25045 Richard Earnshaw <richard.earnshaw@arm.com> 25046 25047 * combine.c (simplify_comparison): Re-canonicalize operands 25048 where appropriate. 25049 * config/arm/arm.md (movcond_addsi): New splitter. 25050 250512013-07-25 Sterling Augustine <saugustine@google.com> 25052 25053 * dwarf2out.c (size_of_pubnames): Move code to... 25054 (include_pubname_in_output): ...here. New. 25055 (want_pubnames): Rearrange. 25056 (output_pubnames): Call include_pubname_in_output. Move assertion. 25057 250582013-07-25 Cameron McInally <cameron.mcinally@nyu.edu> 25059 25060 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins. 25061 250622013-07-25 Cameron McInally <cameron.mcinally@nyu.edu> 25063 25064 PR target/38836 25065 * doc/extend.texi: Remove obsolete builtins. Fix 25066 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss. 25067 250682013-07-25 Jan Hubicka <jh@suse.cz> 25069 25070 * cgraph.c (release_function_body): Break out from ... 25071 (cgraph_release_function_body): ... this one; also release DECL_RESULT 25072 and DECL_ARGUMENTS. 25073 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set 25074 old_tree in the map. 25075 (create_specialized_node): Update. 25076 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree 25077 into index. 25078 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy 25079 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT. 25080 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones. 25081 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and 25082 DECL_RESULT. 25083 250842013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 25085 25086 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>, 25087 addsi3_carryin_alt2_<optab>): Correct output template. 25088 250892013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 25090 25091 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3): 25092 Adjust for arm_restrict_it. 25093 Remove trailing whitespace. 25094 250952013-07-25 Mark Kettenis <kettenis@openbsd.org> 25096 25097 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack 25098 libcall if HAVE_ENABLE_EXECUTE_STACK is defined. 25099 25100 * config.gcc (hppa-*-openbsd*): Don't set tmake_file. 25101 251022013-07-25 Vladimir Makarov <vmakarov@redhat.com> 25103 25104 PR rtl-optimization/57960 25105 * lra-constraints.c (process_alt_operands): Use the right mode 25106 when checking strict_low. 25107 251082013-07-25 Jan Hubicka <jh@suse.cz> 25109 25110 * lto-symtab.c (lto_cgraph_replace_node): Release function body. 25111 * cgraph.c (cgraph_remove_node): Do not release function body 25112 when in cgraph streaming. 25113 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects 25114 in other partitions are not considered reachable; fix handling of 25115 clones. 25116 251172013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 25118 25119 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space. 25120 251212013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 25122 25123 PR target/19599 25124 PR target/57731 25125 PR target/57837 25126 * config/arm/arm.md ("*sibcall_insn): Replace use of 25127 Ss with US. Adjust output for v5 and v4t. 25128 (*sibcall_value_insn): Likewise and loosen predicate on operand0. 25129 25130 * config/arm/constraints.md ("Ss"): Rename to US. 25131 251322013-07-25 Terry Guo <terry.guo@arm.com> 25133 25134 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for 25135 shift_add/shift_sub0/shift_sub1 RTXs. 25136 251372013-07-24 Bill Schmidt <wschmidt@linux.ibm.com> 25138 Anton Blanchard <anton@au1.ibm.com> 25139 25140 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian. 25141 (altivec_vpks<VI_char>ss): Likewise. 25142 (altivec_vpks<VI_char>us): Likewise. 25143 (altivec_vpku<VI_char>us): Likewise. 25144 (altivec_vpku<VI_char>um): Likewise. 25145 251462013-07-24 David Malcolm <dmalcolm@redhat.com> 25147 25148 Introduce context class. 25149 25150 * Makefile.in (CONTEXT_H): New. 25151 (OBJS): Add context.o. 25152 (toplev.o): Add CONTEXT_H to dependencies. 25153 (context.o): New. 25154 25155 * toplev.c (general_init): Create the singleton gcc::context instance. 25156 25157 * context.c: New. 25158 25159 * context.h: New. 25160 251612013-07-24 Joern Rennecke <joern.rennecke@embecosm.com> 25162 25163 PR rtl-optimization/57968 25164 * mode-switching.c (create_pre_exit): Allow instructions that 25165 don't set a return register to need a non-exit mode. 25166 251672013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com> 25168 Anton Blanchard <anton@au1.ibm.com> 25169 25170 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input 25171 operands to vperm for little endian. 25172 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead 25173 of lvsl to create the control mask for a vperm for little endian. 25174 251752013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 25176 Anton Blanchard <anton@au1.ibm.com> 25177 25178 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse 25179 two operands for little-endian. 25180 251812013-07-23 Steve Ellcey <sellcey@mips.com> 25182 25183 * config/mips/mips.c (mips_case_values_threshold): New. 25184 (TARGET_CASE_VALUES_THRESHOLD): Define. 25185 251862013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 25187 Anton Blanchard <anton@au1.ibm.com> 25188 25189 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct 25190 selection of field for vector splat in little endian mode. 25191 251922013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com> 25193 25194 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean 25195 expanders to rs6000.md. 25196 (ior<mode>3): Likewise. 25197 (and<mode>3): Likewise. 25198 (one_cmpl<mode>2): Likewise. 25199 (nor<mode>3): Likewise. 25200 (andc<mode>3): Likewise. 25201 (eqv<mode>3): Likewise. 25202 (nand<mode>3): Likewise. 25203 (orc<mode>3): Likewise. 25204 25205 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New 25206 declaration. 25207 25208 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support 25209 to split multi-word logical operations. 25210 (rs6000_split_logical_di): Likewise. 25211 (rs6000_split_logical): Likewise. 25212 25213 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used. 25214 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md, 25215 and allow TImode operations in 32-bit. 25216 (vsx_and<mode>3_64bit): Likewise. 25217 (vsx_ior<mode>3_32bit): Likewise. 25218 (vsx_ior<mode>3_64bit): Likewise. 25219 (vsx_xor<mode>3_32bit): Likewise. 25220 (vsx_xor<mode>3_64bit): Likewise. 25221 (vsx_one_cmpl<mode>2_32bit): Likewise. 25222 (vsx_one_cmpl<mode>2_64bit): Likewise. 25223 (vsx_nor<mode>3_32bit): Likewise. 25224 (vsx_nor<mode>3_64bit): Likewise. 25225 (vsx_andc<mode>3_32bit): Likewise. 25226 (vsx_andc<mode>3_64bit): Likewise. 25227 (vsx_eqv<mode>3_32bit): Likewise. 25228 (vsx_eqv<mode>3_64bit): Likewise. 25229 (vsx_nand<mode>3_32bit): Likewise. 25230 (vsx_nand<mode>3_64bit): Likewise. 25231 (vsx_orc<mode>3_32bit): Likewise. 25232 (vsx_orc<mode>3_64bit): Likewise. 25233 25234 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector 25235 logical types in GPRs. 25236 25237 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit 25238 logical insns to rs6000.md, and allow TImode operations in 25239 32-bit. 25240 (altivec_ior<mode>3): Likewise. 25241 (altivec_xor<mode>3): Likewise. 25242 (altivec_one_cmpl<mode>2): Likewise. 25243 (altivec_nor<mode>3): Likewise. 25244 (altivec_andc<mode>3): Likewise. 25245 25246 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode 25247 attributes for moving the 128-bit logical operations into 25248 rs6000.md. 25249 (BOOL_REGS_OUTPUT): Likewise. 25250 (BOOL_REGS_OP1): Likewise. 25251 (BOOL_REGS_OP2): Likewise. 25252 (BOOL_REGS_UNARY): Likewise. 25253 (BOOL_REGS_AND_CR0): Likewise. 25254 (one_cmpl<mode>2): Add support for DI logical operations on 25255 32-bit, splitting the operations to 32-bit. 25256 (anddi3): Likewise. 25257 (iordi3): Likewise. 25258 (xordi3): Likewise. 25259 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator 25260 changes to combine the 32/64-bit code, allow logical operations on 25261 TI mode in 32-bit, and to use similar match_operator patterns like 25262 scalar mode uses. Combine the Altivec and VSX code for logical 25263 operations, and move it here. 25264 (ior<mode>3, 128-bit types): Likewise. 25265 (xor<mode>3, 128-bit types): Likewise. 25266 (one_cmpl<mode>3, 128-bit types): Likewise. 25267 (nor<mode>3, 128-bit types): Likewise. 25268 (andc<mode>3, 128-bit types): Likewise. 25269 (eqv<mode>3, 128-bit types): Likewise. 25270 (nand<mode>3, 128-bit types): Likewise. 25271 (orc<mode>3, 128-bit types): Likewise. 25272 (and<mode>3_internal): Likewise. 25273 (bool<mode>3_internal): Likewise. 25274 (boolc<mode>3_internal1): Likewise. 25275 (boolc<mode>3_internal2): Likewise. 25276 (boolcc<mode>3_internal1): Likewise. 25277 (boolcc<mode>3_internal2): Likewise. 25278 (eqv<mode>3_internal1): Likewise. 25279 (eqv<mode>3_internal2): Likewise. 25280 (one_cmpl1<mode>3_internal): Likewise. 25281 252822013-07-23 David Holsgrove <david.holsgrove@xilinx.com> 25283 25284 * config/microblaze/microblaze.c (microblaze_expand_prologue): 25285 Rename flag_stack_usage to flag_stack_usage_info. 25286 252872013-07-23 David Holsgrove <david.holsgrove@xilinx.com> 25288 25289 * config/microblaze/sync.md: New file. 25290 * config/microblaze/microblaze.md: Include sync.md 25291 * config/microblaze/microblaze.c: Add print_operand 'y'. 25292 * config/microblaze/constraints.md: Add memory_contraint 25293 'Q' which is a single register. 25294 252952013-07-23 Eric Botcazou <ebotcazou@adacore.com> 25296 25297 * doc/invoke.texi (SPARC Options): Document new leon3 processor value. 25298 252992013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu> 25300 25301 * reload.c (find_reloads): Exit loop once we find this operand 25302 cannot be reloaded somehow for this alternative. 25303 25304 * reload.c (find_reloads): Exit loop once we find a hard register. 25305 25306 * rtlanal.c (computed_jump_p): Exit loop once we find label 25307 reference is used. 25308 25309 * i386.c (ix86_pad_returns): Exit loop after setting replace. 25310 25311 * cfgloopmanip.c (remove_path): Exit loop after setting 25312 irred_invalidated. 25313 25314 * gensupport.c (subst_dup): Avoid loop if code is not 25315 MATCH_DUP nor MATCH_OP_DUP. 25316 253172013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com> 25318 25319 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo. 25320 253212013-07-23 Yufeng Zhang <yufeng.zhang@arm.com> 25322 25323 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return 25324 true for SP_REGNUM if mode == ptr_mode. 25325 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp" 25326 with value R0_REGNUM + 31. 25327 253282013-07-23 Yufeng Zhang <yufeng.zhang@arm.com> 25329 25330 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian, 25331 pad pointer-typed argument downward. 25332 253332013-07-23 Yufeng Zhang <yufeng.zhang@arm.com> 25334 25335 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32 25336 and __ILP32__ when the ILP32 model is in use. 25337 253382013-07-23 Yufeng Zhang <yufeng.zhang@arm.com> 25339 25340 * config/aarch64/aarch64.c (POINTER_BYTES): New define. 25341 (aarch64_load_symref_appropriately): In the case of 25342 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode 25343 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT. 25344 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM, 25345 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem' 25346 if 'mode' doesn't equal to 'ptr_mode'. 25347 (aarch64_output_mi_thunk): Add an assertion on the alignment of 25348 'vcall_offset'; change to call aarch64_emit_move differently depending 25349 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES' 25350 to calculate the upper bound of 'vcall_offset'. 25351 (aarch64_cannot_force_const_mem): Change to also return true if 25352 mode != ptr_mode. 25353 (aarch64_legitimize_reload_address): In the case of large 25354 displacements, add new local variable 'xmode' and an assertion 25355 based on it; change to use 'xmode' to generate the new rtx and 25356 reload. 25357 (aarch64_asm_trampoline_template): Change to generate the template 25358 differently depending on TARGET_ILP32 or not; change to use 25359 'POINTER_BYTES' in the argument passed to assemble_aligned_integer. 25360 (aarch64_trampoline_size): Removed. 25361 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz' 25362 and replace immediate literals with it. Change to use 'ptr_mode' 25363 instead of 'DImode' and call convert_memory_address if the mode 25364 of 'fnaddr' doesn't equal to 'ptr_mode'. 25365 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer 25366 to output symbol. 25367 (aarch64_elf_asm_destructor): Likewise. 25368 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent 25369 on TARGET_ILP32 instead of aarch64_trampoline_size. 25370 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives 25371 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'. 25372 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ... 25373 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P. 25374 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ... 25375 (storewb_pair<GPI:mode>_<P:mode>): ... this. 25376 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode> 25377 depending on the value of 'mode'. 25378 (add_losym_<mode>): New. 25379 (ldr_got_small_<mode>): New, based on ldr_got_small. 25380 (ldr_got_small): Remove. 25381 (ldr_got_small_sidi): New. 25382 * config/aarch64/iterators.md (P): New. 25383 (PTR): Change to 'ptr_mode' in the condition. 25384 253852013-07-23 Yufeng Zhang <yufeng.zhang@arm.com> 25386 25387 * config.gcc (aarch64*-*-*): Support --with-abi. 25388 (aarch64*-*-elf): Support --with-multilib-list. 25389 (aarch64*-*-linux*): Likewise. 25390 (supported_defaults): Add abi to aarch64*-*-*. 25391 * configure.ac: Mention AArch64 for --with-multilib-list. 25392 * configure: Re-generated. 25393 * config/aarch64/biarchilp32.h: New file. 25394 * config/aarch64/biarchlp64.h: New file. 25395 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define. 25396 (ABI_SPEC): Ditto. 25397 (MULTILIB_DEFAULTS): Ditto. 25398 (DRIVER_SELF_SPECS): Ditto. 25399 (ASM_SPEC): Update to also substitute -mabi. 25400 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script 25401 file whose name depends on -mabi= and -mbig-endian. 25402 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on 25403 TARGET_ILP32. 25404 (POINTER_SIZE): New define. 25405 (POINTERS_EXTEND_UNSIGNED): Ditto. 25406 (enum aarch64_abi_type): New enumeration tag. 25407 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators. 25408 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined. 25409 (TARGET_ILP32): New define. 25410 * config/aarch64/aarch64.opt (mabi): New. 25411 (aarch64_abi): New. 25412 (ilp32, lp64): New values for -mabi. 25413 * config/aarch64/t-aarch64 (comma): New define. 25414 (MULTILIB_OPTIONS): Ditto. 25415 (MULTILIB_DIRNAMES): Ditto. 25416 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define. 25417 * doc/invoke.texi: Document -mabi for AArch64. 25418 254192013-07-23 Georg-Johann Lay <avr@gjlay.de> 25420 25421 * config/avr/avr.md: Explain asm print modifier 'r' for REG. 25422 254232013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com> 25424 Anton Blanchard <anton@au1.ibm.com> 25425 25426 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix 25427 endianness when selecting field to splat. 25428 254292013-07-22 Eric Christopher <echristo@gmail.com> 25430 25431 * dwarf2out.c (die_odr_checksum): New function to use 25432 CHECKSUM_ macros and ULEB128 for DIE tag. 25433 (generate_type_signature): Use. 25434 254352013-07-22 Eric Botcazou <ebotcazou@adacore.com> 25436 25437 * config.gcc (sparc*-*-*): Accept leon3 processor. 25438 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support. 25439 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry. 25440 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3. 25441 * config/sparc/sparc.opt (enum processor_type): Add leon3. 25442 (mfix-ut699): Adjust comment. 25443 * config/sparc/sparc.h (TARGET_CPU_leon3): New define. 25444 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support. 25445 (CPP_CPU_SPEC): Likewise. 25446 (ASM_CPU_SPEC): Likewise. 25447 * config/sparc/sparc.c (leon3_cost): New constant. 25448 (sparc_option_override): Add leon3 support. 25449 (mem_ref): New function. 25450 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled. 25451 (sparc_do_work_around_errata): Look into the instruction in the delay 25452 slot and adjust accordingly. Add fix for the data cache nullify issues 25453 of the UT699. Change insertion position for the NOP. 25454 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete. 25455 (leon3_load): New reservation. 25456 (leon_store): Bump latency to 2. 25457 (grfpu): New automaton. 25458 (grfpu_alu): New unit. 25459 (grfpu_ds): Likewise. 25460 (leon_fp_alu): Adjust. 25461 (leon_fp_mult): Delete. 25462 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd. 25463 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd. 25464 * config/sparc/sparc.md (cpu): Add leon3. 25465 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699. 25466 (swapsi): Likewise. 25467 (atomic_test_and_set): Likewise. 25468 (ldstub): Likewise. 25469 254702013-07-22 Jürgen Urban <JuergenUrban@gmx.de> 25471 25472 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the 25473 default for R5900 targets. 25474 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu. 25475 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900. 25476 * config/mips/mips.c (mips_option_override): Report an error for 25477 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format 25478 for -march=r5900 -mhard-float. 25479 254802013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu> 25481 25482 * df-problems.c (can_move_insns_across): Exit loop once we 25483 find a non-fixed, non-global register. 25484 25485 * ipa-pure-const.c (propagate_nothrow): Exit loop after 25486 setting can_throw. 25487 25488 * omega.c (omega_eliminate_red): Break after setting red_found. 25489 (omega_problem_has_red_equations): Similarly after setting found. 25490 (omega_query_variable): Similarly after setting coupled. 25491 254922013-07-22 Marek Polacek <polacek@redhat.com> 25493 25494 * gimplify.c: Don't include gimple.h twice. 25495 254962013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 25497 25498 * config/arm/constraints.md (Pd): Allow TARGET_THUMB 25499 instead of TARGET_THUMB1. 25500 (Pz): New constraint. 25501 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit 25502 encodings. 25503 (compare_negsi_si): Likewise. 25504 (compare_addsi2_op0): Likewise. 25505 (compare_addsi2_op1): Likewise. 25506 (addsi3_carryin_<optab>): Likewise. 25507 (addsi3_carryin_alt2_<optab>): Likewise. 25508 (addsi3_carryin_shift_<optab>): Disable cond_exec variant 25509 for arm_restrict_it. 25510 (subsi3_carryin): Likewise. 25511 (arm_subsi3_insn): Add alternatives for 16-bit encoding. 25512 (minmax_arithsi): Disable for arm_restrict_it. 25513 (minmax_arithsi_non_canon): Adjust for arm_restrict_it. 25514 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it. 25515 (satsi_<SAT:code>_shift): Likewise. 25516 (arm_shiftsi3): Add alternative for 16-bit encoding. 25517 (arm32_movhf): Disable for arm_restrict_it. 25518 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding. 25519 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it. 25520 255212013-07-22 Sofiane Naci <sofiane.naci@arm.com> 25522 25523 * config/arm/arm.md (attribute "insn"): Delete. 25524 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift", 25525 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg". 25526 (not_shiftsi): Update for attribute change. 25527 (not_shiftsi_compare0): Likewise. 25528 (not_shiftsi_compare0_scratch): Likewise. 25529 (arm_one_cmplsi2): Likewise. 25530 (thumb1_one_cmplsi2): Likewise. 25531 (notsi_compare0): Likewise. 25532 (notsi_compare0_scratch): Likewise. 25533 (thumb1_movdi_insn): Likewise. 25534 (arm_movsi_insn): Likewise. 25535 (movhi_insn_arch4): Likewise. 25536 (movhi_bytes): Likewise. 25537 (arm_movqi_insn): Likewise. 25538 (thumb1_movqi_insn): Likewise. 25539 (arm32_movhf): Likewise. 25540 (thumb1_movhf): Likewise. 25541 (arm_movsf_soft_insn): Likewise. 25542 (thumb1_movsf_insn): Likewise. 25543 (thumb_movdf_insn): Likewise. 25544 (movsicc_insn): Likewise. 25545 (movsfcc_soft_insn): Likewise. 25546 (and_scc): Likewise. 25547 (cond_move): Likewise. 25548 (if_move_not): Likewise. 25549 (if_not_move): Likewise. 25550 (if_shift_move): Likewise. 25551 (if_move_shift): Likewise. 25552 (if_shift_shift): Likewise. 25553 (if_not_arith): Likewise. 25554 (if_arith_not): Likewise. 25555 (cond_move_not): Likewise. 25556 * config/arm/neon.md (neon_mov<mode>): Update for attribute change. 25557 (neon_mov<mode>): Likewise. 25558 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change. 25559 (thumb2_movsi_vfp): Likewise. 25560 (movsf_vfp): Likewise. 25561 (thumb2_movsf_vfp): Likewise. 25562 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute 25563 change. 25564 (cortexa7_older_only): Likewise. 25565 (cortexa7_younger): Likewise. 25566 * config/arm/arm1020e.md (1020alu_op): Update for attribute change. 25567 (1020alu_shift_op): Likewise. 25568 (1020alu_shift_reg_op): Likewise. 25569 * config/arm/arm1026ejs.md (alu_op): Update for attribute change. 25570 (alu_shift_op): Likewise. 25571 (alu_shift_reg_op): Likewise. 25572 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change. 25573 (11_alu_shift_op): Likewise. 25574 (11_alu_shift_reg_op): Likewise. 25575 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change. 25576 (9_alu_shift_reg_op): Likewise. 25577 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute 25578 change. 25579 (cortex_a15_alu_shift): Likewise. 25580 (cortex_a15_alu_shift_reg): Likewise. 25581 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change. 25582 (cortex_a5_alu_shift): Likewise. 25583 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute 25584 change. 25585 (cortex_a53_alu_shift): Likewise. 25586 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute 25587 change. 25588 (cortex_a7_alu_reg): Likewise. 25589 (cortex_a7_alu_shift): Likewise. 25590 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change. 25591 (cortex_a8_alu_shift): Likewise. 25592 (cortex_a8_alu_shift_reg): Likewise. 25593 (cortex_a8_mov): Likewise. 25594 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change. 25595 (cortex_a9_dp_shift): Likewise. 25596 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change. 25597 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change. 25598 (cortex_r4_mov): Likewise. 25599 (cortex_r4_alu_shift): Likewise. 25600 (cortex_r4_alu_shift_reg): Likewise. 25601 * config/arm/fa526.md (526_alu_op): Update for attribute change. 25602 (526_alu_shift_op): Likewise. 25603 * config/arm/fa606te.md (606te_alu_op): Update for attribute change. 25604 * config/arm/fa626te.md (626te_alu_op): Update for attribute change. 25605 (626te_alu_shift_op): Likewise. 25606 * config/arm/fa726te.md (726te_shift_op): Update for attribute change. 25607 (726te_alu_op): Likewise. 25608 (726te_alu_shift_op): Likewise. 25609 (726te_alu_shift_reg_op): Likewise. 25610 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change. 25611 (mp626_alu_shift_op): Likewise. 25612 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change. 25613 (pj4_alu_e1_conds): Likewise. 25614 (pj4_alu): Likewise. 25615 (pj4_alu_conds): Likewise. 25616 (pj4_shift): Likewise. 25617 (pj4_shift_conds): Likewise. 25618 (pj4_alu_shift): Likewise. 25619 (pj4_alu_shift_conds): Likewise. 25620 256212013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 25622 25623 * config/arm/predicates.md (shiftable_operator_strict_it): 25624 New predicate. 25625 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): 25626 Disable cond_exec version for arm_restrict_it. 25627 (thumb2_smaxsi3): Convert to generate cond_exec. 25628 (thumb2_sminsi3): Likewise. 25629 (thumb32_umaxsi3): Likewise. 25630 (thumb2_uminsi3): Likewise. 25631 (thumb2_abssi2): Adjust constraints for arm_restrict_it. 25632 (thumb2_neg_abssi2): Likewise. 25633 (thumb2_mov_scc): Add alternative for 16-bit encoding. 25634 (thumb2_movsicc_insn): Adjust alternatives. 25635 (thumb2_mov_negscc): Disable for arm_restrict_it. 25636 (thumb2_mov_negscc_strict_it): New pattern. 25637 (thumb2_mov_notscc_strict_it): New pattern. 25638 (thumb2_mov_notscc): Disable for arm_restrict_it. 25639 (thumb2_ior_scc): Likewise. 25640 (thumb2_ior_scc_strict_it): New pattern. 25641 (thumb2_cond_move): Adjust for arm_restrict_it. 25642 (thumb2_cond_arith): Disable for arm_restrict_it. 25643 (thumb2_cond_arith_strict_it): New pattern. 25644 (thumb2_cond_sub): Adjust for arm_restrict_it. 25645 (thumb2_movcond): Likewise. 25646 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it. 25647 (thumb2_zero_extendhisi2_v6): Likewise. 25648 (thumb2_zero_extendqisi2_v6): Likewise. 25649 (orsi_notsi_si): Likewise. 25650 (orsi_not_shiftsi_si): Likewise. 25651 256522013-07-22 Georg-Johann Lay <avr@gjlay.de> 25653 25654 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that 25655 instruction sequence is 1 byte shorter. 25656 256572013-07-22 Uros Bizjak <ubizjak@gmail.com> 25658 25659 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if 25660 it is not needed after split. 25661 256622013-07-20 Iain Sandoe <iain@codesourcery.com> 25663 25664 PR target/51784 25665 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a 25666 second label for nonlocal goto receivers. Don't output pic base labels 25667 unless we're producing PIC; mark that action unreachable(). 25668 (ix86_save_reg): If the function contains a nonlocal label, save the 25669 PIC base reg. 25670 * config/darwin-protos.h (machopic_should_output_picbase_label): New. 25671 * config/darwin.c (emitted_pic_label_num): New GTY. 25672 (update_pic_label_number_if_needed): New. 25673 (machopic_output_function_base_name): Adjust for nonlocal receiver 25674 case. 25675 (machopic_should_output_picbase_label): New. 25676 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New. 25677 (nonlocal_goto_receiver): New insn and split. 25678 256792013-07-20 James Greenhalgh <james.greenhalgh@arm.com> 25680 25681 * config/aarch64/aarch64-builtins.c 25682 (aarch64_fold_builtin): Fold abs in all modes. 25683 * config/aarch64/aarch64-simd-builtins.def 25684 (abs): Enable for all modes. 25685 * config/aarch64/arm_neon.h 25686 (vabs<q>_s<8,16,32,64): Rewrite using builtins. 25687 (vabs_f64): Add missing intrinsic. 25688 256892013-07-19 Ian Bolton <ian.bolton@arm.com> 25690 25691 * config/aarch64/arm_neon.h (vabs_s64): New function 25692 256932013-07-19 Georg-Johann Lay <avr@gjlay.de> 25694 25695 PR target/57516 25696 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn. 25697 * config/avr/avr.md (adjust_len): Add `round'. 25698 * config/avr/avr-protos.h (avr_out_round): New prototype. 25699 (avr_out_plus): Add `out_label' argument. 25700 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument. 25701 (avr_out_plus): Pass down `out_label' to avr_out_plus_1. 25702 Handle the case where `insn' is just a pattern. 25703 (avr_out_bitop): Handle the case where `insn' is just a pattern. 25704 (avr_out_round): New function. 25705 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND. 25706 257072013-07-18 David Holsgrove <david.holsgrove@xilinx.com> 25708 25709 * config/microblaze/microblaze.c (microblaze_expand_prologue): 25710 Add check for flag_stack_usage to handle -fstack-usage support 25711 257122013-07-18 Pat Haugen <pthaugen@us.ibm.com> 25713 25714 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag 25715 interaction for new Power8 flags and VSX. 25716 257172013-07-18 Sriraman Tallam <tmsriram@google.com> 25718 25719 PR middle-end/57698 25720 * tree-inline.c (expand_call_inline): Emit errors during 25721 early_inlining only if optimization is not turned on. 25722 257232013-07-18 David Malcolm <dmalcolm@redhat.com> 25724 25725 * passes.def: New. 25726 25727 * passes.c (init_optimization_passes): Move the construction of 25728 the pass hierarchy into a new passes.def file. 25729 25730 * Makefile.in (passes.o): Add dependency on passes.def. 25731 257322013-07-18 David Malcolm <dmalcolm@redhat.com> 25733 25734 * passes.c (init_optimization_passes): Introduce macros for 25735 constructing the tree of passes (INSERT_PASSES_AFTER, 25736 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES, 25737 TERMINATE_PASS_LIST). 25738 257392013-07-18 Vladimir Makarov <vmakarov@redhat.com> 25740 Wei Mi <wmi@google.com> 25741 25742 PR rtl-optimization/57878 25743 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the 25744 top. 25745 (reload_pseudo_compare_func): Check nregs first for reload 25746 pseudos. 25747 257482013-07-18 David Malcolm <dmalcolm@redhat.com> 25749 25750 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl. 25751 257522013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu> 25753 25754 * read-rtl.c (validate_const_int): Once an invalid character is 25755 seen, quit the loop. 25756 25757 * gengtype.c (write_roots): Similarly once we find the "deletable" 25758 or "if_marked" option. 25759 257602013-07-18 Sofiane Naci <sofiane.naci@arm.com> 25761 25762 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr", 25763 "xtab" and "sat". Move value "clz" from here to ... 25764 (attriubte "type"): ... here. 25765 (satsi_<SAT:code>): Delete "insn" attribute. 25766 (satsi_<SAT:code>_shift): Likewise. 25767 (arm_zero_extendqisi2addsi): Likewise. 25768 (arm_extendqisi2addsi): Likewise. 25769 (clzsi2): Update for attribute changes. 25770 (rbitsi2): Likewise. 25771 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn" 25772 attribute. 25773 (arm_usatsihi): Likewise. 25774 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change. 25775 257762013-07-18 Sofiane Naci <sofiane.naci@arm.com> 25777 25778 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to 25779 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift" 25780 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split 25781 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types 25782 in alphabetical order. 25783 (attribute "core_cycles"): Update for attribute changes. 25784 (arm_addsi3): Likewise. 25785 (addsi3_compare0): Likewise. 25786 (addsi3_compare0_scratch): Likewise. 25787 (addsi3_compare_op1): Likewise. 25788 (addsi3_compare_op2): Likewise. 25789 (compare_addsi2_op0): Likewise. 25790 (compare_addsi2_op1): Likewise. 25791 (addsi3_carryin_shift_<optab>): Likewise. 25792 (subsi3_carryin_shift): Likewise. 25793 (rsbsi3_carryin_shift): Likewise. 25794 (arm_subsi3_insn): Likewise. 25795 (subsi3_compare0): Likewise. 25796 (subsi3_compare): Likewise. 25797 (arm_andsi3_insn): Likewise. 25798 (thumb1_andsi3_insn): Likewise. 25799 (andsi3_compare0): Likewise. 25800 (andsi3_compare0_scratch): Likewise. 25801 (zeroextractsi_compare0_scratch 25802 (andsi_not_shiftsi_si): Likewise. 25803 (iorsi3_insn): Likewise. 25804 (iorsi3_compare0): Likewise. 25805 (iorsi3_compare0_scratch): Likewise. 25806 (arm_xorsi3): Likewise. 25807 (thumb1_xorsi3_insn): Likewise. 25808 (xorsi3_compare0): Likewise. 25809 (xorsi3_compare0_scratch): Likewise. 25810 (satsi_<SAT:code>_shift): Likewise. 25811 (rrx): Likewise. 25812 (arm_shiftsi3): Likewise. 25813 (shiftsi3_compare0): Likewise. 25814 (not_shiftsi): Likewise. 25815 (not_shiftsi_compare0): Likewise. 25816 (not_shiftsi_compare0_scratch): Likewise. 25817 (arm_one_cmplsi2): Likewise. 25818 (thumb_one_complsi2): Likewise. 25819 (notsi_compare0): Likewise. 25820 (notsi_compare0_scratch): Likewise. 25821 (thumb1_zero_extendhisi2): Likewise. 25822 (arm_zero_extendhisi2): Likewise. 25823 (arm_zero_extendhisi2_v6): Likewise. 25824 (arm_zero_extendhisi2addsi): Likewise. 25825 (thumb1_zero_extendqisi2): Likewise. 25826 (thumb1_zero_extendqisi2_v6): Likewise. 25827 (arm_zero_extendqisi2): Likewise. 25828 (arm_zero_extendqisi2_v6): Likewise. 25829 (arm_zero_extendqisi2addsi): Likewise. 25830 (thumb1_extendhisi2): Likewise. 25831 (arm_extendhisi2): Likewise. 25832 (arm_extendhisi2_v6): Likewise. 25833 (arm_extendqisi): Likewise. 25834 (arm_extendqisi_v6): Likewise. 25835 (arm_extendqisi2addsi): Likewise. 25836 (thumb1_extendqisi2): Likewise. 25837 (thumb1_movdi_insn): Likewise. 25838 (arm_movsi_insn): Likewise. 25839 (movsi_compare0): Likewise. 25840 (movhi_insn_arch4): Likewise. 25841 (movhi_bytes): Likewise. 25842 (arm_movqi_insn): Likewise. 25843 (thumb1_movqi_insn): Likewise. 25844 (arm32_movhf): Likewise. 25845 (thumb1_movhf): Likewise. 25846 (arm_movsf_soft_insn): Likewise. 25847 (thumb1_movsf_insn): Likewise. 25848 (movdf_soft_insn): Likewise. 25849 (thumb_movdf_insn): Likewise. 25850 (arm_cmpsi_insn): Likewise. 25851 (cmpsi_shiftsi): Likewise. 25852 (cmpsi_shiftsi_swp): Likewise. 25853 (arm_cmpsi_negshiftsi_si): Likewise. 25854 (movsicc_insn): Likewise. 25855 (movsfcc_soft_insn): Likewise. 25856 (arith_shiftsi): Likewise. 25857 (arith_shiftsi_compare0 25858 (arith_shiftsi_compare0_scratch 25859 (sub_shiftsi): Likewise. 25860 (sub_shiftsi_compare0 25861 (sub_shiftsi_compare0_scratch 25862 (and_scc): Likewise. 25863 (cond_move): Likewise. 25864 (if_plus_move): Likewise. 25865 (if_move_plus): Likewise. 25866 (if_move_not): Likewise. 25867 (if_not_move): Likewise. 25868 (if_shift_move): Likewise. 25869 (if_move_shift): Likewise. 25870 (if_shift_shift): Likewise. 25871 (if_not_arith): Likewise. 25872 (if_arith_not): Likewise. 25873 (cond_move_not): Likewise. 25874 (thumb1_ashlsi3): Set type attribute. 25875 (thumb1_ashrsi3): Likewise. 25876 (thumb1_lshrsi3): Likewise. 25877 (thumb1_rotrsi3): Likewise. 25878 (shiftsi3_compare0_scratch): Likewise. 25879 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes. 25880 (neon_mov<mode>): Likewise. 25881 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for 25882 attribute changes. 25883 (thumb2_movsi_insn): Likewise. 25884 (thumb2_cmpsi_neg_shiftsi): Likewise. 25885 (thumb2_extendqisi_v6): Likewise. 25886 (thumb2_zero_extendhisi2_v6): Likewise. 25887 (thumb2_zero_extendqisi2_v6): Likewise. 25888 (thumb2_shiftsi3_short): Likewise. 25889 (thumb2_addsi3_compare0_scratch): Likewise. 25890 (orsi_not_shiftsi_si): Likewise. 25891 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes. 25892 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute 25893 changes. 25894 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes. 25895 (1020alu_shift_op): Likewise. 25896 (1020alu_shift_reg_op): Likewise. 25897 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes. 25898 (alu_shift_op): Likewise. 25899 (alu_shift_reg_op): Likewise. 25900 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes. 25901 (11_alu_shift_op): Likewise. 25902 (11_alu_shift_reg_op): Likewise. 25903 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes. 25904 (9_alu_shift_reg_op): Likewise. 25905 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute 25906 changes. 25907 (cortex_a15_alu_shift): Likewise. 25908 (cortex_a15_alu_shift_reg): Likewise. 25909 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute 25910 changes. 25911 (cortex_a5_alu_shift): Likewise. 25912 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute 25913 changes. 25914 (cortex_a53_alu_shift): Likewise. 25915 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute 25916 changes. 25917 (cortex_a7_alu_reg): Likewise. 25918 (cortex_a7_alu_shift): Likewise. 25919 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute 25920 changes. 25921 (cortex_a8_alu_shift): Likewise. 25922 (cortex_a8_alu_shift_reg): Likewise. 25923 (cortex_a8_mov): Likewise. 25924 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes. 25925 (cortex_a9_dp_shift): Likewise. 25926 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute 25927 changes. 25928 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute 25929 changes. 25930 (cortex_r4_mov): Likewise. 25931 (cortex_r4_alu_shift): Likewise. 25932 (cortex_r4_alu_shift_reg): Likewise. 25933 * config/arm/fa526.md (526_alu_op): Update for attribute changes. 25934 (526_alu_shift_op): Likewise. 25935 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes. 25936 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes. 25937 (626te_alu_shift_op): Likewise. 25938 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes. 25939 (726te_alu_op): Likewise. 25940 (726te_alu_shift_op): Likewise. 25941 (726te_alu_shift_reg_op): Likewise. 25942 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes. 25943 (mp626_alu_shift_op): Likewise. 25944 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes. 25945 (pj4_alu_e1_conds): Likewise. 25946 (pj4_alu): Likewise. 25947 (pj4_alu_conds): Likewise. 25948 (pj4_shift): Likewise. 25949 (pj4_shift_conds): Likewise. 25950 (pj4_alu_shift): Likewise. 25951 (pj4_alu_shift_conds): Likewise. 25952 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute 25953 changes. 25954 (cortexa7_older_only): Likewise. 25955 (cortexa7_younger): Likewise. 25956 259572013-07-18 David Malcolm <dmalcolm@redhat.com> 25958 25959 * ipa-pure-const.c (generate_summary): Rename to... 25960 (pure_const_generate_summary): ... this. 25961 259622013-07-17 Iain Sandoe <iain@codesourcery.com> 25963 25964 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers. 25965 259662013-07-17 Yvan Roux <yvan.roux@linaro.org> 25967 25968 PR target/57909 25969 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store 25970 usage in HI mode. 25971 259722013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 25973 25974 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be 25975 enabled without -march=zEC12. 25976 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine 25977 flags to be set. 25978 259792013-07-16 Maciej W. Rozycki <macro@codesourcery.com> 25980 25981 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting. 25982 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2. 25983 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in 25984 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2. 25985 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument. 25986 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for 25987 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than 25988 ISA_HAS_FP4. 25989 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4 25990 and ISA_HAS_NMADD3_NMSUB3. 25991 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise. 25992 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise. 25993 (nmsub4<mode>, nmsub3<mode>): Likewise. 25994 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise. 25995 259962013-07-16 Maciej W. Rozycki <macro@codesourcery.com> 25997 25998 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove 25999 TARGET_MIPS5400 checking. 26000 260012013-07-16 Jakub Jelinek <jakub@redhat.com> 26002 Peter Bergner <bergner@vnet.ibm.com> 26003 26004 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM 26005 registers in the comment. 26006 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers. 26007 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS 26008 rather than FIRST_PSEUDO_REGISTERS. 26009 260102013-07-16 Peter Bergner <bergner@vnet.ibm.com> 26011 26012 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not 26013 enable extra ISA flags with TARGET_HTM. 26014 260152013-07-16 Maciej W. Rozycki <macro@codesourcery.com> 26016 26017 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC): 26018 Fix comment typos. 26019 260202013-07-15 Cong Hou <congh@google.com> 26021 26022 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function 26023 in compare function for sorting. 26024 260252013-07-15 Peter Bergner <bergner@vnet.ibm.com> 26026 26027 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h. 26028 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md. 26029 * config/rs6000/rs6000.opt: Add -mhtm option. 26030 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM. 26031 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM. 26032 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define 26033 __HTM__ if the HTM instructions are available. 26034 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand, 26035 htm_spr_reg_operand): New define_predicates. 26036 * config/rs6000/rs6000.md (define_attr "type"): Add htm. 26037 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants. 26038 Include htm.md. 26039 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2, 26040 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining 26041 HTM builtin functions. 26042 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro. 26043 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names. 26044 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions. 26045 (rs6000_builtin_mask_calculate): Likewise. 26046 (rs6000_option_override_internal): Likewise. 26047 (bdesc_htm): Add new HTM builtin support. 26048 (htm_spr_num): New function. 26049 (htm_spr_regno): Likewise. 26050 (rs6000_htm_spr_icode): Likewise. 26051 (htm_expand_builtin): Likewise. 26052 (htm_init_builtins): Likewise. 26053 (rs6000_expand_builtin): Add support for HTM builtin functions. 26054 (rs6000_init_builtins): Likewise. 26055 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm 26056 option. 26057 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm. 26058 (TARGET_HTM, MASK_HTM): Define macros. 26059 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers. 26060 (FIXED_REGISTERS): Likewise. 26061 (CALL_USED_REGISTERS): Likewise. 26062 (CALL_REALLY_USED_REGISTERS): Likewise. 26063 (REG_ALLOC_ORDER): Likewise. 26064 (enum reg_class): Likewise. 26065 (REG_CLASS_NAMES): Likewise. 26066 (REG_CLASS_CONTENTS): Likewise. 26067 (REGISTER_NAMES): Likewise. 26068 (ADDITIONAL_REGISTER_NAMES): Likewise. 26069 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT, 26070 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros. 26071 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM. 26072 * config/rs6000/htm.md: New file. 26073 * config/rs6000/htmintrin.h: New file. 26074 * config/rs6000/htmxlintrin.h: New file. 26075 260762013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com> 26077 26078 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): 26079 Define SYMBOL_TINY_GOT, update comment. 26080 * config/aarch64/aarch64.c 26081 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT. 26082 (aarch64_expand_mov_immediate): Likewise. 26083 (aarch64_print_operand): Likewise. 26084 (aarch64_classify_symbol): Likewise. 26085 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define. 26086 (ldr_got_tiny): Define. 26087 260882013-07-13 Tobias Grosser <tobias@grosser.es> 26089 26090 PR tree-optimization/54094 26091 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the 26092 scheduling dimension for the parallelism check from the polyhedral 26093 information in the AST. 26094 * graphite-dependences.c (carries_deps): Do not assume the schedule is 26095 in 2D + 1 form. 26096 260972013-07-13 Jason Merrill <jason@redhat.com> 26098 26099 * print-tree.c (debug_vec_tree): Use debug_raw. 26100 (debug_raw (vec<tree, va_gc> &)): New. 26101 (debug_raw (vec<tree, va_gc> *)): New. 26102 * tree.h: Declare them. 26103 261042013-07-13 Bin Cheng <bin.cheng@arm.com> 26105 26106 * ifcvt.c (ifcvt_after_combine): New static variable. 26107 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing 26108 for size. 26109 (if_convert): New parameter after_combine. Set ifcvt_after_combine. 26110 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine, 26111 rest_of_handle_if_after_reload): Pass new argument for if_convert. 26112 261132013-07-12 Maciej W. Rozycki <macro@codesourcery.com> 26114 26115 * config/mips/mips.c (mips_expand_call): Remove empty statement. 26116 261172013-07-12 Michael Matz <matz@suse.de> 26118 26119 PR middle-end/55771 26120 * convert.c (convert_to_real): Reject non-float inner types. 26121 261222013-07-12 Tejas Belagod <tejas.belagod@arm.com> 26123 26124 * config/aarch64/aarch64-protos.h 26125 (aarch64_simd_immediate_valid_for_move): Remove. 26126 * config/aarch64/aarch64.c (simd_immediate_info): New member. 26127 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones 26128 cases. 26129 (aarch64_output_simd_mov_immediate): Print the correct shift specifier. 26130 261312013-07-11 Steve Ellcey <sellcey@mips.com> 26132 26133 * config/mips/mips.c (mips_conditional_register_usage): Do not 26134 use t[0-7] registers in MIPS16 mode when optimizing for size. 26135 261362013-07-11 Sriraman Tallam <tmsriram@google.com> 26137 26138 * config/i386/i386.c (dispatch_function_versions): Fix array 26139 indexing of function_version_info to match actual_versions. 26140 261412013-07-11 Teresa Johnson <tejohnson@google.com> 26142 26143 * vec.h (struct va_gc): Move release out-of-line. 26144 (va_gc::release): Call ggc_free on released vec. 26145 261462013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 26147 26148 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"): 26149 Require GOT register as additional operand in UNSPEC. 26150 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise. 26151 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise. 26152 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise. 26153 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter. 26154 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise. 26155 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise. 26156 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise. 26157 261582013-07-11 Georg-Johann Lay <avr@gjlay.de> 26159 26160 PR target/57631 26161 * config/avr/avr.c (avr_set_current_function): Sanity-check signal 26162 name seen by assembler/linker rather if available. 26163 261642013-07-11 Andreas Schwab <schwab@suse.de> 26165 26166 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define. 26167 261682013-07-10 Vladimir Makarov <vmakarov@redhat.com> 26169 26170 * lra-constraints.c (curr_insn_transform): Switch off optional reloads. 26171 261722013-07-10 Joseph Myers <joseph@codesourcery.com> 26173 26174 * doc/tm.texi.in: Move hook documentation to .... 26175 * target.def: ... here. 26176 26177 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray 26178 text on @hook line. 26179 * doc/tm.texi: Regenerate. 26180 261812013-07-10 Paolo Carlini <paolo.carlini@oracle.com> 26182 26183 PR c++/57869 26184 * doc/invoke.texi: Document -Wconditionally-supported. 26185 261862013-07-10 Georg-Johann Lay <avr@gjlay.de> 26187 26188 PR target/57844 26189 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode 26190 of my_fp. 26191 261922013-07-10 Georg-Johann Lay <avr@gjlay.de> 26193 26194 PR target/57506 26195 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb) 26196 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb) 26197 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1): 26198 Remove duplicate devices. 26199 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs. 26200 * config/avr/t-multilib: Regenerate. 26201 * config/avr/avr-tables.opt: Regenerate. 26202 * doc/avr-mmcu.texi: Regenerate. 26203 262042013-07-10 Georg-Johann Lay <avr@gjlay.de> 26205 26206 PR target/56987 26207 * config/avr/avr.opt (Waddr-space-convert): Fix typo. 26208 262092013-07-10 Graham Stott <graham.stott@btinternet.com> 26210 26211 * config/mips/mips.c (mips_rtx_costs): Very slightly increase 26212 the cost of MULT when optimizing for size. 26213 262142013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de> 26215 26216 * config/cr16/cr16-protos.h: Don't include target.h. 26217 262182013-07-09 Joseph Myers <joseph@codesourcery.com> 26219 26220 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only 26221 adjust register size for TDmode and TFmode for VSX registers. 26222 262232013-07-08 Kai Tietz <ktietz@redhat.com> 26224 26225 PR target/56892 26226 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as 26227 hook_bool_const_tree_true. 26228 262292013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 26230 26231 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM. 26232 * config/s390/s390.h: Remove F*_REGNUM macro definitions. 26233 * config/s390/s390.md: Define FPR*_REGNUM constants. 26234 Fix FPR2_REGNUM constant (18 -> 17). 26235 ("*trunc<BFP:mode><DFP_ALL:mode>2") 26236 ("*trunc<DFP_ALL:mode><BFP:mode>2") 26237 ("trunc<BFP:mode><DFP_ALL:mode>2") 26238 ("trunc<DFP_ALL:mode><BFP:mode>2") 26239 ("*extend<BFP:mode><DFP_ALL:mode>2") 26240 ("*extend<DFP_ALL:mode><BFP:mode>2") 26241 ("extend<BFP:mode><DFP_ALL:mode>2") 26242 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with 26243 FPR4_REGNUM. 26244 262452013-07-08 Graham Stott <graham.stott@btinternet.com> 26246 26247 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN) 26248 262492013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 26250 26251 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save 26252 and cfun_fpr_bit_p to cfun_fpr_save_p. 26253 (s390_frame_area, s390_register_info, s390_frame_info) 26254 (s390_emit_prologue, s390_emit_epilogue) 26255 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR 26256 register numbers. 26257 * config/s390/s390.h: Define *_REGNUM macros for floating point 26258 register numbers. 26259 262602013-07-08 Eric Botcazou <ebotcazou@adacore.com> 26261 26262 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H). 26263 262642013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu> 26265 26266 PR rtl-optimization/57786 26267 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool 26268 and break out of the loop when it is set to false. 26269 262702013-07-08 Jakub Jelinek <jakub@redhat.com> 26271 26272 PR target/57819 26273 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>: 26274 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI) 26275 (const_int 63)) 0)). 26276 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND 26277 using simplify_gen_unary instead of gen_rtx_*_EXTEND. 26278 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split. 26279 26280 PR rtl-optimization/57829 26281 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that 26282 mask bits outside of mode are just sign-extension from mode to HWI. 26283 262842013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com> 26285 26286 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop. 26287 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use 26288 adjust_address instead of change_address to keep info about alignment. 26289 (emit_strmov): Remove. 26290 (emit_memmov): New function. 26291 (expand_movmem_epilogue): Refactor to properly handle bigger sizes. 26292 (expand_movmem_epilogue): Likewise and return updated rtx for 26293 destination. 26294 (expand_constant_movmem_prologue): Likewise and return updated rtx for 26295 destination and source. 26296 (decide_alignment): Refactor, handle vector_loop. 26297 (ix86_expand_movmem): Likewise. 26298 (ix86_expand_setmem): Likewise. 26299 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg. 26300 263012013-07-07 Uros Bizjak <ubizjak@gmail.com> 26302 26303 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check 26304 signature_TM2_ebx, it interferes with signature_INTEL_ebx. 26305 263062013-07-06 Uros Bizjak <ubizjak@gmail.com> 26307 26308 * config/i386/sse.md (sse_movlhps): Change alternative 3 26309 of operand 2 to "m". 26310 263112013-07-06 Uros Bizjak <ubizjak@gmail.com> 26312 26313 PR target/57807 26314 * config/i386/sse.md (iptr): New mode attribute. 26315 (sse2_movq128): Add pointer size overrides for Intel asm dialect. 26316 (<sse>_vm<plusminus_insn><mode>3): Ditto. 26317 (<sse>_vmmul<mode>3): Ditto. 26318 (<sse>_vmdiv<mode>3): Ditto. 26319 (sse_vmrcpv4sf2): Ditto. 26320 (<sse>_vmsqrt<mode>2): Ditto. 26321 (sse_vmrsqrtv4sf2): Ditto. 26322 (<sse>_vm<code><mode>3): Ditto. 26323 (avx_vmcmp<mode>3): Ditto. 26324 (<sse>_vmmaskcmp<mode>3): Ditto. 26325 (<sse>_comi): Ditto. 26326 (<sse>_ucomi): Ditto. 26327 (*xop_vmfrcz_<mode>): Ditto. 26328 (*fmai_fmadd_<mode>): Ditto. 26329 (*fmai_fmsub_<mode>): Ditto. 26330 (*fmai_fnmadd_<mode>): Ditto. 26331 (*fmai_fnmsub_<mode>): Ditto. 26332 (*fma4i_vmfmadd_<mode>): Ditto. 26333 (*fma4i_vmfmsub_<mode>): Ditto. 26334 (*fma4i_vmfnmadd_<mode>): Ditto. 26335 (*fma4i_vmfnmsub_<mode>): Ditto. 26336 (*xop_vmfrcz_<mode>): Ditto. 26337 (sse_cvtps2pi): Ditto. 26338 (sse_cvttps2pi): Ditto. 26339 (sse_cvtss2si): Ditto. 26340 (sse_cvtss2si_2): Ditto. 26341 (sse_cvtss2siq_2): Ditto. 26342 (sse_cvttss2si): Ditto. 26343 (sse_cvttss2siq): Ditto. 26344 (sse_cvtsd2si): Ditto. 26345 (sse_cvtsd2si_2): Ditto. 26346 (sse_cvtsd2siq_2): Ditto. 26347 (sse_cvttsd2si): Ditto. 26348 (sse_cvttsd2siq): Ditto. 26349 (sse_cvtsd2ss): Ditto. 26350 (sse_cvtss2sd): Ditto. 26351 (avx2_pbroadcast<mode>): Ditto. 26352 (avx2_pbroadcast<mode>_1): Ditto. 26353 (*avx_vperm_broadcast_v4sf): Ditto. 26354 26355 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives. 26356 (sse_movlhps): Ditto. 26357 (sse_storehps): Ditto. 26358 (sse_loadhps): Ditto. 26359 (sse_storelps): Ditto. 26360 (sse_loadlps): Ditto. 26361 (*vec_concatv4sf): Ditto. 26362 (*vec_interleave_highv2df): Ditto. 26363 (*vec_interleave_lowv2df): Ditto. 26364 (*vec_extractv2df_1_sse): Ditto. 26365 (*vec_extractv2df_0_sse): Ditto. 26366 (sse2_storelpd): Ditto. 26367 (sse2_loadlpd): Ditto. 26368 (sse2_movsd): Ditto. 26369 (*vec_concatv4si): Ditto. 26370 (vec_concatv2di): Ditto. 26371 26372 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides 26373 for Intel asm dialect. 26374 (mmx_punpcklwd): Ditto. 26375 (mmx_punpckldq): Ditto. 26376 26377 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr' 26378 for intel assembler dialect. 26379 263802013-07-06 Jakub Jelinek <jakub@redhat.com> 26381 26382 PR target/29776 26383 * fold-const.c (tree_call_nonnegative_warnv_p): Return true 26384 for BUILT_IN_C{LZ,LRSB}*. 26385 * tree.h (CASE_INT_FN): Add FN##IMAX case. 26386 * tree-vrp.c (extract_range_basic): Handle 26387 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For 26388 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL, 26389 fall thru to code calling set_value*. 26390 * builtins.c (expand_builtin): Remove *IMAX cases. 26391 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE 26392 if width is bigger than 2*HWI. 26393 263942013-07-05 Vladimir Makarov <vmakarov@redhat.com> 26395 26396 PR rtl-optimization/55342 26397 * lra-int.h (lra_subreg_reload_pseudos): New. 26398 * lra.c: Add undoing optional reloads to the block diagram. 26399 (lra_subreg_reload_pseudos): New. 26400 (lra_optional_reload_pseudos): Change comments. 26401 (lra): Init and clear lra_subreg_reload_pseudos. Clear 26402 lra_optional_reload_pseudos after undo transformations. 26403 * lra-assigns.c (pseudo_prefix_title): New. 26404 (lra_setup_reg_renumber): Use it. 26405 (spill_for): Ditto. Check subreg reload pseudos too. 26406 (assign_by_spills): Consider subreg reload pseudos too. 26407 * lra-constraints.c (simplify_operand_subreg): Use 26408 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos. 26409 (curr_insn_transform): Recognize and do optional reloads. 26410 (undo_optional_reloads): New. 26411 (lra_undo_inheritance): Call undo_optional_reloads. 26412 264132013-07-05 Thomas Quinot <quinot@adacore.com> 26414 26415 * tree-complex.c (expand_complex_operations_1): Fix typo. 26416 264172013-07-04 Tejas Belagod <tejas.belagod@arm.com> 26418 26419 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New. 26420 (tune_params): New member 'const vec_costs'. 26421 * config/aarch64/aarch64.c (generic_vector_cost): New. 26422 (generic_tunings): New member 'generic_vector_cost'. 26423 (aarch64_builtin_vectorization_cost): New. 26424 (aarch64_add_stmt_cost): New. 26425 (TARGET_VECTORIZE_ADD_STMT_COST): New. 26426 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New. 26427 264282013-07-03 Jakub Jelinek <jakub@redhat.com> 26429 26430 PR target/57777 26431 * config/i386/predicates.md (vsib_address_operand): Disallow 26432 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic. 26433 264342013-07-03 Hans-Peter Nilsson <hp@bitrange.com> 26435 26436 PR middle-end/55030 26437 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of 26438 expand_builtin_setjmp_receiver. 26439 (expand_label): Adjust, call expand_builtin_setjmp_receiver 26440 with NULL for the label parameter. 26441 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber 26442 the frame-pointer. Adjust comments. 26443 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver 26444 only if LABEL is non-NULL. 26445 264462013-07-03 Yufeng Zhang <yufeng.zhang@arm.com> 26447 26448 * config/aarch64/aarch64.h (enum arm_abi_type): Remove. 26449 (ARM_ABI_AAPCS64): Ditto. 26450 (arm_abi): Ditto. 26451 (ARM_DEFAULT_ABI): Ditto. 26452 264532013-07-03 James Greenhalgh <james.greenhalgh@arm.com> 26454 26455 * config/aarch64/aarch64-builtins.c 26456 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1. 26457 * config/aarch64/aarch64-simd-builtins.def (ld1): New. 26458 (st1): Likewise. 26459 * config/aarch64/aarch64-simd.md 26460 (aarch64_ld1<VALL:mode>): New. 26461 (aarch64_st1<VALL:mode>): Likewise. 26462 * config/aarch64/arm_neon.h 26463 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins. 26464 264652013-07-02 Sriraman Tallam <tmsriram@google.com> 26466 26467 * config/i386/i386.c (gate_insert_vzeroupper): Check if 26468 target ISA is AVX. 26469 (ix86_option_override_internal):Turn on all -mavx target flags by 26470 default as they are dependent on AVX anyway. 26471 264722013-07-02 Cary Coutant <ccoutant@google.com> 26473 26474 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a 26475 deterministic hash. 26476 (loc_checksum_ordered): Likewise. 26477 (hash_loc_operands): Remove inline keyword. 26478 264792013-07-02 Jakub Jelinek <jakub@redhat.com> 26480 26481 PR tree-optimization/57741 26482 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow 26483 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs, 26484 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math. 26485 Allow REAL_CST step_exprs if flag_associative_math. 26486 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr. 26487 264882013-07-02 Ian Bolton <ian.bolton@arm.com> 26489 26490 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode. 26491 264922013-07-02 Ian Bolton <ian.bolton@arm.com> 26493 26494 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern. 26495 264962013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 26497 26498 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit 26499 encoding. 26500 (iorsi3_insn): Likewise. 26501 (arm_xorsi3): Likewise. 26502 265032013-07-01 Sofiane Naci <sofiane.naci@arm.com> 26504 26505 * arm.md (attribute "wtype"): Delete. Move attribute values from here 26506 to ... 26507 (attribute "type"): ... here, and prefix with "wmmx_". 26508 (attribute "core_cycles"): Update for attribute changes. 26509 * iwmmxt.md (tbcstv8qi): Update for attribute changes. 26510 (tbcstv4hi): Likewise. 26511 (tbcstv2si): Likewise. 26512 (iwmmxt_iordi3): Likewise. 26513 (iwmmxt_xordi3): Likewise. 26514 (iwmmxt_anddi3): Likewise. 26515 (iwmmxt_nanddi3): Likewise. 26516 (iwmmxt_arm_movdi): Likewise. 26517 (iwmmxt_movsi_insn): Likewise. 26518 (mov<mode>_internal): Likewise. 26519 (and<mode>3_iwmmxt): Likewise. 26520 (ior<mode>3_iwmmxt): Likewise. 26521 (xor<mode>3_iwmmxt): Likewise. 26522 (add<mode>3_iwmmxt): Likewise. 26523 (ssaddv8qi3): Likewise. 26524 (ssaddv4hi3): Likewise. 26525 (ssaddv2si3): Likewise. 26526 (usaddv8qi3): Likewise. 26527 (usaddv4hi3): Likewise. 26528 (usaddv2si3): Likewise. 26529 (sub<mode>3_iwmmxt): Likewise. 26530 (sssubv8qi3): Likewise. 26531 (sssubv4hi3): Likewise. 26532 (sssubv2si3): Likewise. 26533 (ussubv8qi3): Likewise. 26534 (ussubv4hi3): Likewise. 26535 (ussubv2si3): Likewise. 26536 (mulv4hi3_iwmmxt): Likewise. 26537 (smulv4hi3_highpart): Likewise. 26538 (umulv4hi3_highpart): Likewise. 26539 (iwmmxt_wmacs): Likewise. 26540 (iwmmxt_wmacsz): Likewise. 26541 (iwmmxt_wmacu): Likewise. 26542 (iwmmxt_wmacuz): Likewise. 26543 (iwmmxt_clrdi): Likewise. 26544 (iwmmxt_clrv8qi): Likewise. 26545 (iwmmxt_clr4hi): Likewise. 26546 (iwmmxt_clr2si): Likewise. 26547 (iwmmxt_uavgrndv8qi3): Likewise. 26548 (iwmmxt_uavgrndv4hi3): Likewise. 26549 (iwmmxt_uavgv8qi3): Likewise. 26550 (iwmmxt_uavgv4hi3): Likewise. 26551 (iwmmxt_tinsrb): Likewise. 26552 (iwmmxt_tinsrh): Likewise. 26553 (iwmmxt_tinsrw): Likewise. 26554 (iwmmxt_textrmub): Likewise. 26555 (iwmmxt_textrmsb): Likewise. 26556 (iwmmxt_textrmuh): Likewise. 26557 (iwmmxt_textrmsh): Likewise. 26558 (iwmmxt_textrmw): Likewise. 26559 (iwmxxt_wshufh): Likewise. 26560 (eqv8qi3): Likewise. 26561 (eqv4hi3): Likewise. 26562 (eqv2si3): Likewise. 26563 (gtuv8qi3): Likewise. 26564 (gtuv4hi3): Likewise. 26565 (gtuv2si3): Likewise. 26566 (gtv8qi3): Likewise. 26567 (gtv4hi3): Likewise. 26568 (gtv2si3): Likewise. 26569 (smax<mode>3_iwmmxt): Likewise. 26570 (umax<mode>3_iwmmxt): Likewise. 26571 (smin<mode>3_iwmmxt): Likewise. 26572 (umin<mode>3_iwmmxt): Likewise. 26573 (iwmmxt_wpackhss): Likewise. 26574 (iwmmxt_wpackwss): Likewise. 26575 (iwmmxt_wpackdss): Likewise. 26576 (iwmmxt_wpackhus): Likewise. 26577 (iwmmxt_wpackwus): Likewise. 26578 (iwmmxt_wpackdus): Likewise. 26579 (iwmmxt_wunpckihb): Likewise. 26580 (iwmmxt_wunpckihh): Likewise. 26581 (iwmmxt_wunpckihw): Likewise. 26582 (iwmmxt_wunpckilb): Likewise. 26583 (iwmmxt_wunpckilh): Likewise. 26584 (iwmmxt_wunpckilw): Likewise. 26585 (iwmmxt_wunpckehub): Likewise. 26586 (iwmmxt_wunpckehuh): Likewise. 26587 (iwmmxt_wunpckehuw): Likewise. 26588 (iwmmxt_wunpckehsb): Likewise. 26589 (iwmmxt_wunpckehsh): Likewise. 26590 (iwmmxt_wunpckehsw): Likewise. 26591 (iwmmxt_wunpckelub): Likewise. 26592 (iwmmxt_wunpckeluh): Likewise. 26593 (iwmmxt_wunpckeluw): Likewise. 26594 (iwmmxt_wunpckelsb): Likewise. 26595 (iwmmxt_wunpckelsh): Likewise. 26596 (iwmmxt_wunpckelsw): Likewise. 26597 (ror<mode>3): Likewise. 26598 (ashr<mode>3_iwmmxt): Likewise. 26599 (lshr<mode>3_iwmmxt): Likewise. 26600 (ashl<mode>3_iwmmxt): Likewise. 26601 (ror<mode>3_di): Likewise. 26602 (ashr<mode>3_di): Likewise. 26603 (lshr<mode>3_di): Likewise. 26604 (ashl<mode>3_di): Likewise. 26605 (iwmmxt_wmadds): Likewise. 26606 (iwmmxt_wmaddu): Likewise. 26607 (iwmmxt_tmia): Likewise. 26608 (iwmmxt_tmiaph): Likewise. 26609 (iwmmxt_tmiabb): Likewise. 26610 (iwmmxt_tmiatb): Likewise. 26611 (iwmmxt_tmiabt): Likewise. 26612 (iwmmxt_tmiatt): Likewise. 26613 (iwmmxt_tmovmskb): Likewise. 26614 (iwmmxt_tmovmskh): Likewise. 26615 (iwmmxt_tmovmskw): Likewise. 26616 (iwmmxt_waccb): Likewise. 26617 (iwmmxt_wacch): Likewise. 26618 (iwmmxt_waccw): Likewise. 26619 (iwmmxt_waligni): Likewise. 26620 (iwmmxt_walignr): Likewise. 26621 (iwmmxt_walignr0): Likewise. 26622 (iwmmxt_walignr1): Likewise. 26623 (iwmmxt_walignr2): Likewise. 26624 (iwmmxt_walignr3): Likewise. 26625 (iwmmxt_wsadb): Likewise. 26626 (iwmmxt_wsadh): Likewise. 26627 (iwmmxt_wsadbz): Likewise. 26628 (iwmmxt_wsadhz): Likewise. 26629 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes. 26630 (iwmmxt_wabsdiffb): Likewise. 26631 (iwmmxt_wabsdiffh): Likewise. 26632 (iwmmxt_wabsdiffw): Likewise. 26633 (iwmmxt_waddsubhx): Likewise 26634 (iwmmxt_wsubaddhx): Likewise. 26635 (addc<mode>3): Likewise. 26636 (iwmmxt_avg4): Likewise. 26637 (iwmmxt_avg4r): Likewise. 26638 (iwmmxt_wmaddsx): Likewise. 26639 (iwmmxt_wmaddux): Likewise. 26640 (iwmmxt_wmaddsn): Likewise. 26641 (iwmmxt_wmaddun): Likewise. 26642 (iwmmxt_wmulwsm): Likewise. 26643 (iwmmxt_wmulwum): Likewise. 26644 (iwmmxt_wmulsmr): Likewise. 26645 (iwmmxt_wmulumr): Likewise. 26646 (iwmmxt_wmulwsmr): Likewise. 26647 (iwmmxt_wmulwumr): Likewise. 26648 (iwmmxt_wmulwl): Likewise. 26649 (iwmmxt_wqmulm): Likewise. 26650 (iwmmxt_wqmulwm): Likewise. 26651 (iwmmxt_wqmulmr): Likewise. 26652 (iwmmxt_wqmulwmr): Likewise. 26653 (iwmmxt_waddbhusm): Likewise. 26654 (iwmmxt_waddbhusl): Likewise. 26655 (iwmmxt_wqmiabb): Likewise. 26656 (iwmmxt_wqmiabt): Likewise. 26657 (iwmmxt_wqmiatb): Likewise. 26658 (iwmmxt_wqmiatt): Likewise. 26659 (iwmmxt_wqmiabbn): Likewise. 26660 (iwmmxt_wqmiabtn): Likewise. 26661 (iwmmxt_wqmiatbn): Likewise. 26662 (iwmmxt_wqmiattn): Likewise. 26663 (iwmmxt_wmiabb): Likewise. 26664 (iwmmxt_wmiabt): Likewise. 26665 (iwmmxt_wmiatb): Likewise. 26666 (iwmmxt_wmiatt): Likewise. 26667 (iwmmxt_wmiabbn): Likewise. 26668 (iwmmxt_wmiabtn): Likewise. 26669 (iwmmxt_wmiatbn): Likewise. 26670 (iwmmxt_wmiattn): Likewise. 26671 (iwmmxt_wmiawbb): Likewise. 26672 (iwmmxt_wmiawbt): Likewise. 26673 (iwmmxt_wmiawtb): Likewise. 26674 (iwmmxt_wmiawtt): Likewise. 26675 (iwmmxt_wmiawbbn): Likewise. 26676 (iwmmxt_wmiawbtn): Likewise. 26677 (iwmmxt_wmiawtbn): Likewise. 26678 (iwmmxt_wmiawttn): Likewise. 26679 (iwmmxt_wmerge): Likewise. 26680 (iwmmxt_tandc<mode>3): Likewise. 26681 (iwmmxt_torc<mode>3): Likewise. 26682 (iwmmxt_torvsc<mode>3): Likewise. 26683 (iwmmxt_textrc<mode>3): Likewise. 26684 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes. 26685 (wmmxt_pack): Likewise. 26686 (wmmxt_mult_c1): Likewise. 26687 (wmmxt_mult_c2): Likewise. 26688 (wmmxt_alu_c1): Likewise. 26689 (wmmxt_alu_c2): Likewise. 26690 (wmmxt_alu_c3): Likewise. 26691 (wmmxt_transfer_c1): Likewise. 26692 (wmmxt_transfer_c2): Likewise. 26693 (wmmxt_transfer_c3): Likewise. 26694 (marvell_f_iwmmxt_wstr): Likewise. 26695 (marvell_f_iwmmxt_wldr): Likewise. 26696 266972013-06-29 Yufeng Zhang <yufeng.zhang@arm.com> 26698 26699 * config/aarch64/aarch64.c: Remove junk from the beginning of the file. 26700 267012013-06-28 Vladimir Makarov <vmakarov@redhat.com> 26702 26703 Revert: 26704 2013-06-28 Vladimir Makarov <vmakarov@redhat.com> 26705 * lra-constraints.c (need_for_split_p): Check call used hard regs 26706 living through calls. 26707 26708 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for 26709 call used regs for call insn. 26710 267112013-06-28 Jakub Jelinek <jakub@redhat.com> 26712 26713 PR target/57736 26714 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and 26715 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into. 26716 267172013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com> 26718 26719 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN. 26720 267212013-06-28 Vladimir Makarov <vmakarov@redhat.com> 26722 26723 * lra-constraints.c (need_for_split_p): Check call used hard regs 26724 living through calls. 26725 267262013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com> 26727 26728 PR target/57744 26729 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode 26730 to tie with any other modes. Eliminate Altivec vector mode tests, 26731 since these are a subset of ALTIVEC or VSX vector modes. Simplify 26732 code, to return 0 if testing MODE2 for a condition, if we've 26733 already tested MODE1 for the same condition. 26734 267352013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com> 26736 26737 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust 26738 layout. 26739 267402013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com> 26741 26742 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): 26743 Update comment w.r.t SYMBOL_TINY_ABSOLUTE. 26744 267452013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com> 26746 26747 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression): 26748 Define. 26749 (aarch64_symbolic_constant_p): Remove. 26750 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove 26751 static. Fix line length and white space. 26752 (aarch64_symbolic_constant_p): Remove. 26753 * config/aarch64/predicates.md (aarch64_valid_symref): 26754 Use aarch64_classify_symbol_expression. 26755 267562013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 26757 26758 * config/arm/constraints.md (Ts): New constraint. 26759 * config/arm/arm.md (arm_movqi_insn): Add alternatives for 26760 16-bit encodings. 26761 (compare_scc): Use "Ts" constraint for operand 0. 26762 (ior_scc_scc): Likewise. 26763 (and_scc_scc): Likewise. 26764 (and_scc_scc_nodom): Likewise. 26765 (ior_scc_scc_cmp): Likewise for operand 7. 26766 (and_scc_scc_cmp): Likewise. 26767 * config/arm/thumb2.md (thumb2_movsi_insn): 26768 Add alternatives for 16-bit encodings. 26769 (thumb2_movhi_insn): Likewise. 26770 (thumb2_movsicc_insn): Likewise. 26771 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint. 26772 (thumb2_negscc): Use "Ts" constraint. 26773 Move mvn instruction outside cond_exec block. 26774 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives 26775 for 16-bit encodings. 26776 267772013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 26778 26779 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit 26780 encoding. 26781 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it. 26782 (mulsi3subsi): Likewise. 26783 (mulsidi3adddi): Likewise. 26784 (mulsidi3_v6): Likewise. 26785 (umulsidi3_v6): Likewise. 26786 (umulsidi3adddi_v6): Likewise. 26787 (smulsi3_highpart_v6): Likewise. 26788 (umulsi3_highpart_v6): Likewise. 26789 (mulhisi3tb): Likewise. 26790 (mulhisi3bt): Likewise. 26791 (mulhisi3tt): Likewise. 26792 (maddhisi4): Likewise. 26793 (maddhisi4tb): Likewise. 26794 (maddhisi4tt): Likewise. 26795 (maddhidi4): Likewise. 26796 (maddhidi4tb): Likewise. 26797 (maddhidi4tt): Likewise. 26798 (zeroextractsi_compare0_scratch): Likewise. 26799 (insv_zero): Likewise. 26800 (insv_t2): Likewise. 26801 (anddi_notzesidi_di): Likewise. 26802 (anddi_notsesidi_di): Likewise. 26803 (andsi_notsi_si): Likewise. 26804 (iordi_zesidi_di): Likewise. 26805 (xordi_zesidi_di): Likewise. 26806 (andsi_iorsi3_notsi): Likewise. 26807 (smax_0): Likewise. 26808 (smax_m1): Likewise. 26809 (smin_0): Likewise. 26810 (not_shiftsi): Likewise. 26811 (unaligned_loadsi): Likewise. 26812 (unaligned_loadhis): Likewise. 26813 (unaligned_loadhiu): Likewise. 26814 (unaligned_storesi): Likewise. 26815 (unaligned_storehi): Likewise. 26816 (extv_reg): Likewise. 26817 (extzv_t2): Likewise. 26818 (divsi3): Likewise. 26819 (udivsi3): Likewise. 26820 (arm_zero_extendhisi2addsi): Likewise. 26821 (arm_zero_extendqisi2addsi): Likewise. 26822 (compareqi_eq0): Likewise. 26823 (arm_extendhisi2_v6): Likewise. 26824 (arm_extendqisi2addsi): Likewise. 26825 (arm_movt): Likewise. 26826 (thumb2_ldrd): Likewise. 26827 (thumb2_ldrd_base): Likewise. 26828 (thumb2_ldrd_base_neg): Likewise. 26829 (thumb2_strd): Likewise. 26830 (thumb2_strd_base): Likewise. 26831 (thumb2_strd_base_neg): Likewise. 26832 (arm_negsi2): Add alternative for 16-bit encoding. 26833 (arm_one_cmplsi2): Likewise. 26834 268352013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 26836 26837 * config/arm/predicates.md (arm_cond_move_operator): New predicate. 26838 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate. 26839 (movdfcc): Likewise. 26840 * config/arm/vfp.md (*thumb2_movsf_vfp): 26841 Disable predication for arm_restrict_it. 26842 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it. 26843 (*thumb2_movdfcc_vfp): Likewise. 26844 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp, 26845 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp, 26846 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp, 26847 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp, 26848 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp, 26849 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4, 26850 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4, 26851 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2, 26852 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2, 26853 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2, 26854 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp, 26855 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2): 26856 Disable predication for arm_restrict_it. 26857 268582013-06-28 Kirill Yukhin <kirill.yukhin@intel.com> 26859 26860 * config/i386/bmiintrin.h (_bextr_u32): New. 26861 (_bextr_u64): Ditto. 26862 268632013-06-27 Richard Sandiford <rdsandiford@googlemail.com> 26864 26865 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*) 26866 (mips64r5900el-*-elf*): Include mips/n32-elf.h. 26867 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL) 26868 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to... 26869 * config/mips/n32-elf.h: ...this new file. 26870 268712013-06-27 Marc Glisse <marc.glisse@inria.fr> 26872 26873 PR target/57224 26874 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove 26875 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS. 26876 268772013-06-27 Catherine Moore <clm@codesourcery.com> 26878 26879 * config/mips/mips-tables.opt: Regenerate. 26880 * config/mips/mips-cpus.def: Add m14ke and m14kec. 26881 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2. 26882 * doc/invoke.texi: Add -m14kc. 26883 268842013-06-27 Jakub Jelinek <jakub@redhat.com> 26885 26886 PR target/57623 26887 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and 26888 constraints of operand 1 and 2. 26889 26890 PR target/57623 26891 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments 26892 to match RTL canonicalization. Swap predicates and 26893 constraints of operand 1 and 2. 26894 268952013-06-27 Vladimir Makarov <vmakarov@redhat.com> 26896 26897 * lra-constraints.c (inherit_in_ebb): Process static hard regs too. 26898 Process OP_INOUT regs for splitting too. 26899 269002013-06-27 Jakub Jelinek <jakub@redhat.com> 26901 26902 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var 26903 decl before the loop, initialize to NULL. 26904 (vectorizable_load): Initialize ptr_incr to NULL. 26905 269062013-06-27 Martin Jambor <mjambor@suse.cz> 26907 26908 PR lto/57208 26909 * ipa-ref.h (ipa_maybe_record_reference): Declare. 26910 * ipa-ref.c (ipa_maybe_record_reference): New function. 26911 * cgraphclones.c (cgraph_create_virtual_clone): Use it. 26912 * ipa-cp.c (create_specialized_node): Record potential references from 26913 aggvals. 26914 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies. 26915 269162013-06-27 Yufeng Zhang <yufeng.zhang@arm.com> 26917 26918 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra 26919 parameter 'mode' of type 'enum machine_mode mode'; change to pass 26920 'mode' to force_reg. 26921 (aarch64_add_offset): Update calls to aarch64_force_temporary. 26922 (aarch64_expand_mov_immediate): Likewise. 26923 269242013-06-27 Yufeng Zhang <yufeng.zhang@arm.com> 26925 26926 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass 26927 'mode' to aarch64_plus_immediate and gen_rtx_PLUS. 26928 269292013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 26930 26931 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to 26932 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT. 26933 (struct machine_function): Add tbegin_p. 26934 (s390_canonicalize_comparison): Fold CC mode compares to 26935 conditional jump if possible. 26936 (s390_emit_jump): Return the emitted jump. 26937 (s390_branch_condition_mask, s390_branch_condition_mnemonic): 26938 Handle CCRAWmode compares. 26939 (s390_option_override): Default to -mhtm if available. 26940 (s390_reg_clobbered_rtx): Handle floating point regs as well. 26941 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for 26942 FPRs instead of df_regs_ever_live_p. 26943 (s390_optimize_nonescaping_tx): New function. 26944 (s390_init_frame_layout): Extend clobbered_regs array to cover 26945 FPRs as well. 26946 (s390_emit_prologue): Call s390_optimize_nonescaping_tx. 26947 (s390_expand_tbegin): New function. 26948 (enum s390_builtin): New enum definition. 26949 (code_for_builtin): New array definition. 26950 (s390_init_builtins): New function. 26951 (s390_expand_builtin): New function. 26952 (TARGET_INIT_BUILTINS): Define. 26953 (TARGET_EXPAND_BUILTIN): Define. 26954 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX. 26955 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode. 26956 (s390_alc_comparison): Likewise. 26957 * config/s390/s390-modes.def: Add CCRAWmode. 26958 * config/s390/s390.h (processor_flags): Add PF_TX. 26959 (TARGET_CPU_HTM): Define macro. 26960 (TARGET_HTM): Define macro. 26961 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm. 26962 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to 26963 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT. 26964 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT) 26965 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values. 26966 (TBEGIN_MASK, TBEGINC_MASK): New constants. 26967 ("*cc_to_int"): Move up. 26968 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer 26969 constants other than 0. 26970 ("*ccraw_to_int"): New insn and splitter definition. 26971 ("tbegin", "tbegin_nofloat", "tbegin_retry") 26972 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort") 26973 ("tx_assist"): New expander. 26974 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1") 26975 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition. 26976 * config/s390/s390.opt: Add -mhtm option. 26977 * config/s390/s390-protos.h (s390_emit_jump): Add return type. 26978 * config/s390/htmxlintrin.h: New file. 26979 * config/s390/htmintrin.h: New file. 26980 * config/s390/s390intrin.h: New file. 26981 * doc/extend.texi: Document htm builtins. 26982 * config.gcc: Add the new header files to extra_headers. 26983 269842013-06-26 Thomas Schwinge <thomas@codesourcery.com> 26985 26986 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP] 26987 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine. 26988 269892013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com> 26990 Pat Haugen <pthaugen@us.ibm.com> 26991 Peter Bergner <bergner@vnet.ibm.com> 26992 26993 * config/rs6000/power8.md: New. 26994 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor 26995 setting for power8 entry. 26996 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md. 26997 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust 26998 test for Power4/Power5 only. 26999 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8 27000 support. 27001 (force_new_group): Adjust comment. 27002 * config/rs6000/rs6000.md: Include power8.md. 27003 270042013-06-26 Greta Yorsh <Greta.Yorsh@arm.com> 27005 27006 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro. 27007 * config/arm/arm-protos.h (arm_max_conditional_execute): New 27008 declaration. 27009 (tune_params): Update comment. 27010 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2. 27011 (arm_max_conditional_execute): New function. 27012 (thumb2_final_prescan_insn): Use max_insn_skipped and 27013 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block. 27014 270152013-06-25 Jakub Jelinek <jakub@redhat.com> 27016 27017 PR tree-optimization/57705 27018 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow 27019 SSA_NAME step, provided that it is not defined inside the loop. 27020 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop. 27021 (get_initial_def_for_induction): Handle SSA_NAME IV step. 27022 270232013-06-25 Martin Jambor <mjambor@suse.cz> 27024 27025 PR middle-end/57670 27026 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr. 27027 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer 27028 calls in the dump. 27029 (ipa_note_param_call): Initialize member_ptr flag. 27030 (ipa_analyze_indirect_call_uses): Set member_ptr flag. 27031 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set. 27032 (ipa_write_indirect_edge_info): Stream member_ptr flag. 27033 (ipa_read_indirect_edge_info): Likewise. 27034 270352013-06-25 Richard Biener <rguenther@suse.de> 27036 27037 PR middle-end/56977 27038 * passes.c (init_optimization_passes): Move pass_fold_builtins 27039 and pass_dce earlier with -Og. 27040 270412013-06-25 Eric Botcazou <ebotcazou@adacore.com> 27042 27043 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches. 27044 <BIT_FIELD_REF>: Remove trailing TAB. 27045 * varasm.c (output_constructor_bitfield): Fix formatting glitch and 27046 remove blank line. 27047 270482013-06-24 Martin Jambor <mjambor@suse.cz> 27049 27050 PR tree-optimization/57358 27051 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function. 27052 (ipa_compute_jump_functions_for_edge): Bail out if it returns true. 27053 (ipa_analyze_params_uses): Generate pessimistic info when true. 27054 270552013-06-24 Martin Jambor <mjambor@suse.cz> 27056 27057 PR tree-optimization/57539 27058 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set 27059 global.inlined_to of the new node to it. All callers changed. 27060 * ipa-inline-transform.c (clone_inlined_nodes): New variable 27061 inlining_into, pass it to cgraph_clone_node. 27062 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call 27063 ipa_free_edge_args_substructures. 27064 (ipa_edge_duplication_hook): Only add edges from inlined nodes to 27065 rdesc linked list. Do not assert rdesc edges have inlined caller. 27066 Assert we have found an rdesc in the rdesc list. 27067 270682013-06-24 Richard Biener <rguenther@suse.de> 27069 27070 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c. 27071 (pointer_set_lookup): Declare. 27072 (class pointer_map): New template class implementing a 27073 generic pointer to T map. 27074 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map, 27075 pointer_map<T>::contains, pointer_map<T>::insert, 27076 pointer_map<T>::traverse): New functions. 27077 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h. 27078 (pointer_set_lookup): New function. 27079 (pointer_set_contains): Use pointer_set_lookup. 27080 (pointer_set_insert): Likewise. 27081 (insert_aux): Remove. 27082 (struct pointer_map_t): Embed a pointer_set_t. 27083 (pointer_map_create): Adjust. 27084 (pointer_map_destroy): Likewise. 27085 (pointer_map_contains): Likewise. 27086 (pointer_map_insert): Likewise. 27087 (pointer_map_traverse): Likewise. 27088 * tree-streamer.h (struct streamer_tree_cache_d): Use a 27089 pointer_map<unsigned> instead of a pointer_map_t. 27090 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust. 27091 (streamer_tree_cache_lookup): Likewise. 27092 (streamer_tree_cache_create): Likewise. 27093 (streamer_tree_cache_delete): Likewise. 27094 * lto-streamer.h (struct lto_tree_ref_encoder): Use a 27095 pointer_map<unsigned> instead of a pointer_map_t. 27096 (lto_init_tree_ref_encoder): Adjust. 27097 (lto_destroy_tree_ref_encoder): Likewise. 27098 * lto-section-out.c (lto_output_decl_index): Likewise. 27099 (lto_record_function_out_decl_state): Likewise. 27100 * dominance.c (iterate_fix_dominators): Use pointer_map<int>. 27101 271022013-06-24 Richard Biener <rguenther@suse.de> 27103 27104 PR tree-optimization/57488 27105 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration. 27106 271072013-06-24 Alan Modra <amodra@gmail.com> 27108 27109 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian. 27110 (gen_easy_altivec_constant): Likewise. 27111 * config/rs6000/predicates.md (easy_vector_constant_add_self, 27112 easy_vector_constant_msb): Likewise. 27113 271142013-06-23 Jakub Jelinek <jakub@redhat.com> 27115 27116 PR target/57688 27117 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt 27118 add missing return true. 27119 271202013-06-23 Oleg Endo <olegendo@gcc.gnu.org> 27121 27122 PR target/52483 27123 * config/sh/predicates.md (general_extend_operand): Invoke 27124 general_movsrc_operand for memory operands. 27125 (general_movsrc_operand): Allow reg+reg addressing, do not use 27126 general_operand for memory operands. 27127 271282013-06-23 Sriraman Tallam <tmsriram@google.com> 27129 27130 * config/i386/i386.c (ix86_pragma_target_parse): Restore target 27131 when current target options does not apply. 27132 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function. 27133 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto. 27134 * config/i386/bmiintrin.h: Pass appropriate target 27135 attributes to header. 27136 * config/i386/mmintrin.h: Ditto. 27137 * config/i386/nmmintrin.h: Ditto. 27138 * config/i386/avx2intrin.h: Ditto. 27139 * config/i386/fxsrintrin.h: Ditto. 27140 * config/i386/tbmintrin.h: Ditto. 27141 * config/i386/xsaveintrin.h: Ditto. 27142 * config/i386/f16cintrin.h: Ditto. 27143 * config/i386/xtestintrin.h: Ditto. 27144 * config/i386/xsaveoptintrin.h: Ditto. 27145 * config/i386/bmi2intrin.h: Ditto. 27146 * config/i386/lzcntintrin.h: Ditto. 27147 * config/i386/smmintrin.h: Ditto. 27148 * config/i386/wmmintrin.h: Ditto. 27149 * config/i386/x86intrin.h: Remove all header include guards. 27150 * config/i386/prfchwintrin.h: Ditto. 27151 * config/i386/pmmintrin.h: Ditto. 27152 * config/i386/tmmintrin.h: Ditto. 27153 * config/i386/xmmintrin.h: Ditto. 27154 * config/i386/popcntintrin.h: Ditto. 27155 * config/i386/rdseedintrin.h: Ditto. 27156 * config/i386/ammintrin.h: Ditto. 27157 * config/i386/emmintrin.h: Ditto. 27158 * config/i386/immintrin.h: Remove all header include guards. 27159 * config/i386/fma4intrin.h: Ditto. 27160 * config/i386/lwpintrin.h: Ditto. 27161 * config/i386/xopintrin.h: Ditto. 27162 * config/i386/ia32intrin.h: Ditto. 27163 * config/i386/avxintrin.h: Ditto. 27164 * config/i386/rtmintrin.h: Ditto. 27165 * config/i386/fmaintrin.h: Ditto. 27166 * config/i386/mm3dnow.h: Ditto. 27167 271682013-06-22 Sriraman Tallam <tmsriram@google.com> 27169 27170 * common/config/i386/i386-common.c: Handle LZCNT. 27171 271722013-06-22 Andi Kleen <ak@linux.intel.com> 27173 27174 * doc/extend.texi: Use __atomic_store_n instead of 27175 __atomic_store in HLE example. 27176 271772013-06-22 Oleg Endo <olegendo@gcc.gnu.org> 27178 27179 * config/sh/sh.c: Remove <cstdlib> workaround. 27180 271812013-06-21 Andi Kleen <ak@linux.intel.com> 27182 27183 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo. 27184 271852013-06-21 Andi Kleen <ak@linux.intel.com> 27186 27187 * doc/extend.texi: Document that __atomic_clear and 27188 __atomic_test_and_set should only be used with bool. 27189 271902013-06-20 Jan Hubicka <jh@suse.cz> 27191 27192 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use 27193 types_same_for_odr. 27194 * tree.c (decls_same_for_odr): New function. 27195 (same_for_edr): New function. 27196 (types_same_for_odr): New function. 27197 (get_binfo_at_offset): Use it. 27198 * tree.h (types_same_for_odr): Declare. 27199 272002013-06-20 Oleg Endo <olegendo@gcc.gnu.org> 27201 Jason Merrill <jason@redhat.com> 27202 27203 * system.h: Include <cstdlib> as well as <stdlib.h>. 27204 272052013-06-20 Uros Bizjak <ubizjak@gmail.com> 27206 27207 PR target/57655 27208 * config/i386/i386.c (construct_container): Report error if 27209 long double is used with disabled x87 float returns. 27210 272112013-06-20 Jan Hubicka <jh@suse.cz> 27212 27213 * lto-cgraph.c (input_symtab): Do not set cgraph state. 27214 272152013-06-20 Joern Rennecke <joern.rennecke@embecosm.com> 27216 27217 PR rtl-optimization/57425 27218 PR rtl-optimization/57569 27219 * alias.c (write_dependence_p): Remove parameters mem_mode and 27220 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized. 27221 Changed all callers. 27222 (canon_anti_dependence): Get comments and semantics in sync. 27223 Add parameter mem_canonicalized. Changed all callers. 27224 * rtl.h (canon_anti_dependence): Update prototype. 27225 272262013-06-20 Richard Biener <rguenther@suse.de> 27227 27228 * data-streamer-in.c (streamer_read_uhwi): Optimize single 27229 byte case, inline streamer_read_uchar and defer section 27230 overrun check. 27231 272322013-06-20 Richard Biener <rguenther@suse.de> 27233 27234 PR tree-optimization/57584 27235 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including 27236 SSA names into the expanded expression that take part in 27237 abnormal coalescing. 27238 272392013-06-19 Sharad Singhai <singhai@google.com> 27240 27241 * gcov.c (print_usage): Handle new option. 27242 (process_args): Ditto. 27243 (get_gcov_intermediate_filename): New function. 27244 (output_intermediate_file): New function. 27245 (output_gcov_file): New function 27246 (generate_results): Handle new option. 27247 (release_function): Relase demangled name. 27248 (read_graph_file): Handle demangled name. 27249 (output_lines): Ditto. 27250 * doc/gcov.texi: Document gcov intermediate format. 27251 272522013-06-19 Vladimir Makarov <vmakarov@redhat.com> 27253 27254 PR bootstrap/57604 27255 * lra.c (emit_add3_insn, emit_add2_insn): New functions. 27256 (lra_emit_add): Use the functions. Add comment about Y as an 27257 address segment. 27258 272592013-06-19 David Edelsohn <dje.gcc@gmail.com> 27260 27261 PR driver/57652 27262 * collect2.c (collect_atexit): New. 27263 (collect_exit): Delete. 27264 (main): Register collect_atexit with atexit. 27265 (collect_wait): Change collect_exit to exit. 27266 (do_wait): Same. 27267 * collect2.h (collect_exit): Delete. 27268 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit. 27269 272702013-06-19 Wei Mi <wmi@google.com> 27271 27272 PR rtl-optimization/57518 27273 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno] 27274 if regno is used in paradoxical subreg. 27275 (update_equiv_regs): Check pdx_subregs[regno] before 27276 set a reg to be equivalent with a mem. 27277 272782013-06-19 Matthias Klose <doko@ubuntu.com> 27279 27280 PR driver/57651 27281 * file-find.h (find_a_file): Add a mode parameter. 27282 * file-find.c (find_a_file): Likewise. 27283 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin, 27284 with X_OK for the executables. 27285 * collect2.c (main): Call find_a_file with X_OK. 27286 272872013-06-19 Steve Ellcey <sellcey@mips.com> 27288 27289 PR target/56942 27290 * config/mips/mips.md (casesi_internal_mips16_<mode>): 27291 Use NEXT_INSN instead of next_real_insn. 27292 272932013-06-19 Jan Hubicka <jh@suse.cz> 27294 27295 * cgraph.h (const_value_known_p): Replace by ... 27296 (ctor_for_folding): .. this one. 27297 * cgraphunit.c (process_function_and_variable_attributes): Use it. 27298 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding. 27299 * expr.c (expand_expr_real_1): Likewise. 27300 (string_constant): Likewise. 27301 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise. 27302 * ipa.c (process_references): Likewise. 27303 (symtab_remove_unreachable_nodes): Likewise. 27304 * ipa-inline-analysis.c (param_change_prob): Likewise. 27305 * gimple-fold.c (canonicalize_constructor_val): Likewise. 27306 (get_base_constructor): Likwise. 27307 * varpool.c (varpool_remove_node): Likewise. 27308 (varpool_remove_initializer): LIkewise. 27309 (dump_varpool_node): LIkwise. 27310 (const_value_known_p): Rewrite to ... 27311 (ctor_for_folding): ... this one. 27312 273132013-06-19 Jakub Jelinek <jakub@redhat.com> 27314 27315 PR driver/57651 27316 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for 27317 PERSONALITY in $PATH derived prefixes. 27318 273192013-06-19 Jeff Law <law@redhat.com> 27320 27321 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo 27322 in comment. 27323 27324 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function. 27325 (simplify_bitwise_binary): Use it to simpify certain binary ops on 27326 booleans. 27327 273282013-06-19 Sofiane Naci <sofiane.naci@arm.com> 27329 27330 * config/arm/vfp.md: Move VFP instruction classification documentation 27331 to ... 27332 * config/arm/arm.md: ... here. Update instruction classification 27333 documentation. 27334 273352013-06-19 Richard Earnshaw <rearnsha@arm.com> 27336 27337 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2. 27338 (peepholes for eq(reg, not-0)): Ensure condition register is dead after 27339 pattern. Use more efficient sequences on ARMv5 and Thumb2. 27340 273412013-06-19 Steven Bosscher <steven@gcc.gnu.org> 27342 27343 PR target/57609 27344 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn 27345 with NEXT_INSN. Use tablejump_p to check for jump table data 27346 insns. 27347 273482013-06-19 Paolo Carlini <paolo.carlini@oracle.com> 27349 27350 PR c++/56544 27351 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document 27352 that now in C++ the value is correct per the C++ standards. 27353 273542013-06-19 Richard Biener <rguenther@suse.de> 27355 27356 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check 27357 for global context. 27358 273592013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 27360 27361 Revert: 27362 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 27363 27364 PR target/57609 27365 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn 27366 with next_active_insn. 27367 273682013-06-18 Sriraman Tallam <tmsriram@google.com> 27369 27370 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline 27371 functions are inlined during failures to flag an error. 27372 * tree-inline.c (expand_call_inline): Allow the error to be flagged 27373 in early inline pass. 27374 273752013-06-18 H.J. Lu <hongjiu.lu@intel.com> 27376 27377 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo 27378 in comments. 27379 273802013-06-18 Julian Brown <julian@codesourcery.com> 27381 27382 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument. 27383 Permit virtual register pre-reload if !strict. 27384 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand 27385 change. 27386 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust 27387 prototype. 27388 * config/arm/neon.md (movmisalign<mode>): Use 27389 neon_perm_struct_or_reg_operand instead of 27390 neon_struct_or_register_operand. 27391 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use 27392 neon_permissive_struct_operand instead of neon_struct_operand. 27393 * config/arm/constraints.md (Un, Um, Us): Adjust calls to 27394 neon_vector_mem_operand. 27395 * config/arm/predicates.md (neon_struct_operand): Adjust call to 27396 neon_vector_mem_operand. 27397 (neon_permissive_struct_operand): New. 27398 (neon_struct_or_register_operand): Rename to... 27399 (neon_perm_struct_or_reg_operand): This. Adjust call to 27400 neon_vector_mem_operand. 27401 274022013-06-18 Richard Biener <rguenther@suse.de> 27403 27404 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency. 27405 * lto-streamer.h: Include pointer-set.h. 27406 (struct lto_decl_slot): Remove. 27407 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map. 27408 Remove next_index entry. 27409 (lto_hash_decl_slot_node, lto_eq_decl_slot_node, 27410 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove. 27411 (lto_init_tree_ref_encoder): Adjust. 27412 (lto_destroy_tree_ref_encoder): Likewise. 27413 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node, 27414 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove. 27415 (lto_output_decl_index): Adjust. 27416 (lto_new_out_decl_state): Likewise. 27417 (lto_record_function_out_decl_state): Likewise. 27418 * lto-streamer-out.c (copy_function): Likewise. 27419 274202013-06-18 Richard Biener <rguenther@suse.de> 27421 27422 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency. 27423 * cgraphunit.c: Include cfgloop.h. 27424 (init_lowered_empty_function): Initialize the loop tree. 27425 (assemble_thunk): Insert new BBs into loops. 27426 274272013-06-18 Richard Biener <rguenther@suse.de> 27428 27429 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype. 27430 * tree-streamer.c (streamer_tree_cache_create): Make maintaining 27431 the map from cache entry to cache index optional. 27432 (streamer_tree_cache_replace_tree): Adjust accordingly. 27433 (streamer_tree_cache_append): Likewise. 27434 (streamer_tree_cache_delete): Likewise. 27435 * lto-streamer-in.c (lto_data_in_create): Do not maintain the 27436 streamer cache map from cache entry to cache index. 27437 * lto-streamer-out.c (create_output_block): Adjust. 27438 274392013-06-18 Sofiane Naci <sofiane.naci@arm.com> 27440 27441 * config/arm/arm.md (attribute "insn"): Move multiplication and 27442 division attributes to... 27443 (attribute "type"): ... here. Remove mult. 27444 (attribute "mul32"): New attribute. 27445 (attribute "mul64"): Add umaal. 27446 (*arm_mulsi3): Update attributes. 27447 (*arm_mulsi3_v6): Likewise. 27448 (*thumb_mulsi3): Likewise. 27449 (*thumb_mulsi3_v6): Likewise. 27450 (*mulsi3_compare0): Likewise. 27451 (*mulsi3_compare0_v6): Likewise. 27452 (*mulsi_compare0_scratch): Likewise. 27453 (*mulsi_compare0_scratch_v6): Likewise. 27454 (*mulsi3addsi): Likewise. 27455 (*mulsi3addsi_v6): Likewise. 27456 (*mulsi3addsi_compare0): Likewise. 27457 (*mulsi3addsi_compare0_v6): Likewise. 27458 (*mulsi3addsi_compare0_scratch): Likewise. 27459 (*mulsi3addsi_compare0_scratch_v6): Likewise. 27460 (*mulsi3subsi): Likewise. 27461 (*mulsidi3adddi): Likewise. 27462 (*mulsi3addsi_v6): Likewise. 27463 (*mulsidi3adddi_v6): Likewise. 27464 (*mulsidi3_nov6): Likewise. 27465 (*mulsidi3_v6): Likewise. 27466 (*umulsidi3_nov6): Likewise. 27467 (*umulsidi3_v6): Likewise. 27468 (*umulsidi3adddi): Likewise. 27469 (*umulsidi3adddi_v6): Likewise. 27470 (*smulsi3_highpart_nov6): Likewise. 27471 (*smulsi3_highpart_v6): Likewise. 27472 (*umulsi3_highpart_nov6): Likewise. 27473 (*umulsi3_highpart_v6): Likewise. 27474 (mulhisi3): Likewise. 27475 (*mulhisi3tb): Likewise. 27476 (*mulhisi3bt): Likewise. 27477 (*mulhisi3tt): Likewise. 27478 (maddhisi4): Likewise. 27479 (*maddhisi4tb): Likewise. 27480 (*maddhisi4tt): Likewise. 27481 (maddhidi4): Likewise. 27482 (*maddhidi4tb): Likewise. 27483 (*maddhidi4tt): Likewise. 27484 (divsi3): Likewise. 27485 (udivsi3): Likewise. 27486 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes. 27487 (thumb2_mulsi_short_compare0): Likewise. 27488 (thumb2_mulsi_short_compare0_scratch): Likewise. 27489 * config/arm/arm1020e.md (1020mult1): Update attribute change. 27490 (1020mult2): Likewise. 27491 (1020mult3): Likewise. 27492 (1020mult4): Likewise. 27493 (1020mult5): Likewise. 27494 (1020mult6): Likewise. 27495 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute 27496 change. 27497 (cortex_a15_mult64): Likewise. 27498 (cortex_a15_sdiv): Likewise. 27499 (cortex_a15_udiv): Likewise. 27500 * config/arm/arm1026ejs.md (mult1): Update attribute change. 27501 (mult2): Likewise. 27502 (mult3): Likewise. 27503 (mult4): Likewise. 27504 (mult5): Likewise. 27505 (mult6): Likewise. 27506 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change. 27507 (pj4_ir_div): Likewise. 27508 * config/arm/arm1136jfs.md (11_mult1): Update attribute change. 27509 (11_mult2): Likewise. 27510 (11_mult3): Likewise. 27511 (11_mult4): Likewise. 27512 (11_mult5): Likewise. 27513 (11_mult6): Likewise. 27514 (11_mult7): Likewise. 27515 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change. 27516 (cortex_a8_mla): Likewise. 27517 (cortex_a8_mull): Likewise. 27518 (cortex_a8_smulwy): Likewise. 27519 (cortex_a8_smlald): Likewise. 27520 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change. 27521 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change. 27522 (cortex_r4_mul_3): Likewise. 27523 (cortex_r4_mla_4): Likewise. 27524 (cortex_r4_mla_3): Likewise. 27525 (cortex_r4_smlald): Likewise. 27526 (cortex_r4_mull): Likewise. 27527 (cortex_r4_sdiv): Likewise. 27528 (cortex_r4_udiv): Likewise. 27529 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change. 27530 (cortex_a7_idiv): Likewise. 27531 * config/arm/arm926ejs.md (9_mult1): Update attribute change. 27532 (9_mult2): Likewise. 27533 (9_mult3): Likewise. 27534 (9_mult4): Likewise. 27535 (9_mult5): Likewise. 27536 (9_mult6): Likewise. 27537 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change. 27538 (cortex_a53_sdiv): Likewise. 27539 (cortex_a53_udiv): Likewise. 27540 * config/arm/fa726te.md (726te_mult_op): Update attribute change. 27541 * config/arm/fmp626.md (mp626_mult1): Update attribute change. 27542 (mp626_mult2): Likewise. 27543 (mp626_mult3): Likewise. 27544 (mp626_mult4): Likewise. 27545 * config/arm/fa526.md (526_mult1): Update attribute change. 27546 (526_mult2): Likewise. 27547 * config/arm/arm-generic.md (mult): Update attribute change. 27548 (mult_ldsched_strongarm): Likewise. 27549 (mult_ldsched): Likewise. 27550 (multi_cycle): Likewise. 27551 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change. 27552 * config/arm/fa606te.md (606te_mult1): Update attribute change. 27553 (606te_mult2): Likewise. 27554 (606te_mult3): Likewise. 27555 (606te_mult4): Likewise. 27556 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change. 27557 (cortex_a9_mac16): Likewise. 27558 (cortex_a9_multiply): Likewise. 27559 (cortex_a9_mac): Likewise. 27560 (cortex_a9_multiply_long): Likewise. 27561 * config/arm/fa626te.md (626te_mult1): Update attribute change. 27562 (626te_mult2): Likewise. 27563 (626te_mult3): Likewise. 27564 (626te_mult4): Likewise. 27565 275662013-06-18 Richard Biener <rguenther@suse.de> 27567 27568 PR lto/57334 27569 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly. 27570 275712013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 27572 27573 PR target/57609 27574 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn 27575 with next_active_insn. 27576 275772013-06-18 Alan Modra <amodra@gmail.com> 27578 27579 * config/rs6000/rs6000.h (enum data_align): New. 27580 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment. 27581 (DATA_ABI_ALIGNMENT): Define. 27582 (CONSTANT_ALIGNMENT): Correct comment. 27583 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare. 27584 * config/rs6000/rs6000.c (rs6000_data_alignment): New function. 27585 275862013-06-17 David Malcolm <dmalcolm@redhat.com> 27587 27588 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous 27589 ATTRIBUTE_UNUSED marking. 27590 275912013-06-17 Sofiane Naci <sofiane.naci@arm.com> 27592 27593 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w 27594 alternative and update. 27595 (aarch64_dup_lanedi): Delete. 27596 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update. 27597 * config/aarch64/aarch64-simd-builtins.def: Update. 27598 275992013-06-17 Richard Biener <rguenther@suse.de> 27600 27601 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc. 27602 (lto_input_scc): Declare. 27603 (lto_input_tree_1): Likewise. 27604 (struct lto_stats_d): Add num_tree_bodies_output and 27605 num_pickle_refs_output. 27606 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree. 27607 (lto_read_tree_1): Split out from ... 27608 (lto_read_tree): ... this. 27609 (lto_input_scc): New function. 27610 (lto_input_tree_1): Split out from ... 27611 (lto_input_tree): ... this. Handle LTO_tree_scc. 27612 (lto_data_in_create): Create the streamer cache without hashes. 27613 * lto-streamer-out.c (create_output_block): Create the streamer 27614 cache with hashes when not doing WPA. 27615 (lto_write_tree_1): Split out from ... 27616 (lto_write_tree): ... this. 27617 (get_symbol_initial_value): New function. 27618 (lto_output_tree_1): Split out from ... 27619 (lto_output_tree): ... this. Write trees as series of SCCs 27620 using a DFS walk via DFS_write_tree. 27621 (struct sccs, struct scc_entry): New types. 27622 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals. 27623 (DFS_write_tree_body): New function. 27624 (DFS_write_tree): Likewise. 27625 (hash_tree): Likewise. 27626 (scc_entry_compare): Likewise. 27627 (hash_scc): Likewise. 27628 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities. 27629 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream 27630 TREE_CHAIN as regular reference. 27631 (streamer_read_integer_cst): Remove. 27632 (streamer_get_pickled_tree): Adjust. 27633 * tree-streamer-out.c (streamer_write_chain): Disable streaming 27634 of DECL_EXTERNALs in BLOCK_VARS for now. 27635 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular 27636 reference. 27637 * tree-streamer.c (streamer_tree_cache_add_to_node_array): 27638 Add hash value argument and record that if hashes are recorded 27639 in the cache. 27640 (streamer_tree_cache_insert_1): Adjust. 27641 (streamer_tree_cache_insert): Likewise. 27642 (streamer_tree_cache_insert_at): Rename to ... 27643 (streamer_tree_cache_replace_tree): ... this and adjust. 27644 (streamer_tree_cache_append): Adjust. 27645 (record_common_node): Likewise. 27646 (streamer_tree_cache_create): Add argument whether to 27647 record hash values together with trees. 27648 (streamer_tree_cache_delete): Adjust. 27649 * tree-streamer.h (struct streamer_tree_cache_d): Add 27650 vector of hashes. 27651 (streamer_read_integer_cst): Remove. 27652 (streamer_tree_cache_insert): Adjust. 27653 (streamer_tree_cache_append): Likewise. 27654 (streamer_tree_cache_insert_at): Rename to ... 27655 (streamer_tree_cache_replace_tree): ... this and adjust. 27656 (streamer_tree_cache_create): Add argument whether to record hashes. 27657 (streamer_tree_cache_get): Rename to ... 27658 (streamer_tree_cache_get_tree): ... this. 27659 (streamer_tree_cache_get_hash): New function. 27660 * tree.c (cache_integer_cst): New function. 27661 * tree.h (cache_integer_cst): Declare. 27662 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h. 27663 * lto-symtab.c (lto_varpool_replace_node): Only release 27664 DECL_INITIAL of non-prevailing decls. 27665 * varpool.c (varpool_remove_initializer): Do not release 27666 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING. 27667 276682013-06-16 Jürgen Urban <JuergenUrban@gmx.de> 27669 27670 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900. 27671 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros. 27672 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal) 27673 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT. 27674 (mul<mode>3_mul3): Handle TARGET_MIPS5900. 27675 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test. 27676 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3) 27677 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT 27678 instead of TARGET_64BIT. 27679 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>): 27680 Require ISA_HAS_<D>DIV. 27681 276822013-06-16 Richard Sandiford <rdsandiford@googlemail.com> 27683 27684 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*) 27685 (mips*-*-linux*): Move default with_llsc setting to where other 27686 defaults are set. 27687 (mips*-*-vxworks*): Move with_arch default from with_cpu block to 27688 with_arch block. 27689 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*): 27690 Likewise. Remove default with_tune setting. Move default float 27691 setting to its own block. Handle with_llsc in the same block as above. 27692 276932013-06-16 Joern Rennecke <joern.rennecke@embecosm.com> 27694 27695 PR rtl-optimization/57425 27696 PR rtl-optimization/57569 27697 * alias.c (write_dependence_p): Add new parameters mem_mode, 27698 canon_mem_addr and mem_canonicalized. Change type of writep to bool. 27699 Changed all callers. 27700 (canon_anti_dependence): New function. 27701 * cse.c (check_dependence): Use canon_anti_dependence. 27702 * cselib.c (cselib_invalidate_mem): Likewise. 27703 * rtl.h (canon_anti_dependence): Declare. 27704 277052013-06-16 Jürgen Urban <JuergenUrban@gmx.de> 27706 27707 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900. 27708 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output 27709 ".set mips3" for 64-bit targets. 27710 277112013-06-15 Dehao Chen <dehao@google.com> 27712 27713 * tree-flow.h (gimple_check_call_matching_types): Add new argument. 27714 * gimple-low.c (gimple_check_call_matching_types): Likewise. 27715 (gimple_check_call_args): Likewise. 27716 * value-prof.c (check_ic_target): Likewise. 27717 * ipa-inline.c (early_inliner): Likewise. 27718 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise. 27719 * cgraph.c (cgraph_create_edge_1): Likewise. 27720 (cgraph_make_edge_direct): Likewise. 27721 277222013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com> 27723 27724 PR target/57615 27725 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call 27726 rs6000_output_move_128bit to handle emitting quad memory 27727 operations. Set attribute length to 8 bytes. 27728 277292013-06-14 Vidya Praveen <vidyapraveen@arm.com> 27730 27731 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>): 27732 New pattern. 27733 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise. 27734 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise. 27735 (aarch64_<su>mlsl<mode>): Likewise. 27736 277372013-06-14 Mike Stump <mikestump@comcast.net> 27738 27739 * Makefile.in (TARGET_H): Add insn-codes.h. 27740 277412013-06-14 Alan Modra <amodra@gmail.com> 27742 27743 PR middle-end/57134 27744 PR middle-end/57586 27745 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass 27746 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use 27747 bitfield expansion when EXPAND_MEMORY. 27748 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise. 27749 277502013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com> 27751 27752 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move 27753 test for clearing quad memory on 32-bit later. 27754 277552013-06-13 Marc Glisse <marc.glisse@inria.fr> 27756 27757 * fold-const.c (negate_expr_p): Handle VECTOR_CST. 27758 (fold_negate_expr): Likewise. 27759 (fold_real_zero_addition_p): Handle vectors. 27760 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise. 27761 277622013-06-14 Alan Modra <amodra@gmail.com> 27763 27764 * varasm.c (force_const_mem): Revert 2013-06-07 change. 27765 277662013-06-13 Jan Hubicka <jh@suse.cz> 27767 27768 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p): 27769 Local comdats are not externally visible. 27770 * symtab.c (dump_symtab_base): Dump externally visible. 27771 (verify_symtab_base): Verify back links in the symtab hash. 27772 277732013-06-13 Bin Cheng <bin.cheng@arm.com> 27774 27775 * fold-const.c (operand_equal_p): Consider NOP_EXPR and 27776 CONVERT_EXPR as equal nodes. 27777 277782013-06-13 Bin Cheng <bin.cheng@arm.com> 27779 27780 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC. 27781 277822013-06-13 Marc Glisse <marc.glisse@inria.fr> 27783 27784 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus): 27785 Generalize to complex and vector. 27786 * tree.c (build_all_ones_cst): New function. 27787 * tree.h (build_all_ones_cst): Declare it. 27788 277892013-06-13 Alan Modra <amodra@gmail.com> 27790 27791 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define. 27792 * config/rs6000/rs6000.md (signbittf2): New insn. 27793 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST. 27794 (abstf2_internal, cmptf_internal2): Likewise. 27795 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise. 27796 277972013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com> 27798 Pat Haugen <pthaugen@us.ibm.com> 27799 Peter Bergner <bergner@vnet.ibm.com> 27800 27801 * config/rs6000/rs6000.c (emit_load_locked): Add support for 27802 power8 byte, half-word, and quad-word atomic instructions. 27803 (emit_store_conditional): Likewise. 27804 (rs6000_expand_atomic_compare_and_swap): Likewise. 27805 (rs6000_expand_atomic_op): Likewise. 27806 27807 * config/rs6000/sync.md (larx): Add new modes for power8. 27808 (stcx): Likewise. 27809 (AINT): New mode iterator to include TImode as well as normal 27810 integer modes on power8. 27811 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so 27812 that VSX registers are not considered. Use AINT mode iterator 27813 instead of INT1 to allow inclusion of quad word atomic operations 27814 on power8. 27815 (load_locked<mode>): Likewise. 27816 (store_conditional<mode>): Likewise. 27817 (atomic_compare_and_swap<mode>): Likewise. 27818 (atomic_exchange<mode>): Likewise. 27819 (atomic_nand<mode>): Likewise. 27820 (atomic_fetch_<fetchop_name><mode>): Likewise. 27821 (atomic_nand_fetch<mode>): Likewise. 27822 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating 27823 each type. 27824 (ATOMIC): On power8, add QImode, HImode modes. 27825 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI 27826 modes that promote to SImode. 27827 (load_lockedti): Convert TImode arguments to PTImode, so that we 27828 get a guaranteed even/odd register pair. 27829 (load_lockedpti): Likewise. 27830 (store_conditionalti): Likewise. 27831 (store_conditionalpti): Likewise. 27832 27833 * config/rs6000/rs6000.md (QHI): New mode iterator for power8 27834 atomic load/store instructions. 27835 (HSI): Likewise. 27836 278372013-06-12 Richard Sandiford <rdsandiford@googlemail.com> 27838 27839 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool 27840 loads. 27841 (insn_count): New attribute, with most cases extracted from... 27842 (length): ...here. Redefine most cases in terms of insn_count. 27843 (single_insn): Delete. 27844 (can_delay): Use insn_count to check for single instructions. 27845 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900) 27846 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000) 27847 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal) 27848 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal) 27849 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4) 27850 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b) 27851 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64) 27852 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>) 27853 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split) 27854 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count" 27855 rather than "length". 27856 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute. 27857 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s): 27858 Use "insn_count" rather than "length". 27859 * config/mips/mips-dsp.md 27860 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>) 27861 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove 27862 length attributes. 27863 278642013-06-12 Marc Glisse <marc.glisse@inria.fr> 27865 27866 PR tree-optimization/57361 27867 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment. 27868 278692013-06-12 Sofiane Naci <sofiane.naci@arm.com> 27870 27871 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert 27872 to split. 27873 (aarch64_simd_combine<mode>): New instruction expansion. 27874 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New 27875 function prototype. 27876 * config/aarch64/aarch64.c (aarch64_split_combine): New function. 27877 * config/aarch64/iterators.md (Vdbl): Add entry for DF. 27878 278792013-06-12 Jan Hubicka <jh@suse.cz> 27880 27881 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about 27882 decl has when in streaming stage. 27883 * lto-symtab.c (lto_symtab_merge_symbols): Likewise. 27884 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING. 27885 278862013-06-12 Roland Stigge <stigge@antcom.de> 27887 27888 PR target/57578 27889 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection. 27890 278912013-06-12 Jakub Jelinek <jakub@redhat.com> 27892 27893 PR tree-optimization/57537 27894 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If 27895 vect_handle_widen_op_by_const, convert oprnd1 to half_type1. 27896 278972013-06-12 Richard Biener <rguenther@suse.de> 27898 27899 * data-streamer.h (streamer_write_char_stream): CSE 27900 obs->current_pointer. 27901 * data-streamer-out.c (streamer_write_uhwi_stream): Inline 27902 streamer_write_char_stream manually and optimize the resulting loop. 27903 (streamer_write_hwi_stream): Likewise. 27904 279052013-06-12 Jan Hubicka <jh@suse.cz> 27906 27907 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable. 27908 * cgraph.h (varpool_create_empty_node): Declare. 27909 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create 27910 duplicated nodes. 27911 * symtab.c (symtab_unregister_node): Be lax about missin entries 27912 in node hash. 27913 (symtab_get_node): Update comment. 27914 * varpool.c (varpool_create_empty_node): Break out from ... 27915 (varpool_node_for_decl): ... here. 27916 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP. 27917 279182013-06-12 Eric Botcazou <ebotcazou@adacore.com> 27919 27920 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow. 27921 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first 27922 part. Use straight-line flow at the end. 27923 <COMPONENT_REF>: Remove superfluous else. 27924 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp). 27925 279262013-06-12 Jakub Jelinek <jakub@redhat.com> 27927 27928 PR target/56564 27929 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p 27930 target hook even for !TREE_PUBLIC decls. If no resolution info 27931 is available, return false for common and external decls. 27932 279332013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com> 27934 27935 * config/rl78/constraints.md (U): New constraint. 27936 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add 27937 valloc attribute. 27938 279392013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com> 27940 27941 PR target/57589 27942 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static 27943 to allow returning address to AT_PLATFORM name. 27944 279452013-06-11 Jan Hubicka <jh@suse.cz> 27946 27947 * cgraph.c (cgraph_create_function_alias): Set weakref flag. 27948 * cgraph.h (symtab_node_base): Add weakref flag. 27949 * cgraphunit.c (cgraph_reset_node): Clear weakref flag. 27950 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL. 27951 (output_weakrefs): Use weakref flag. 27952 * fold-const.c (simple_operand_p): Handle WEAK. 27953 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref. 27954 * ipa.c (varpool_externally_visible_p): Drop weakref. 27955 (function_and_variable_visibility): Update comment; fix weakref 27956 sanity checks; do not clear DECL_WEAK on them. 27957 * lto-cgraph.c (lto_output_node): update. 27958 (lto_output_varpool_node): Update. 27959 (input_overwrite_node): Update. 27960 (input_node): Update. 27961 (input_varpool_node): Update. 27962 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs. 27963 (lto_symtab_merge_symbols): Add sanity check. 27964 (lto_symtab_prevailing_decl): Do not special case weakrefs. 27965 * passes.c (rest_of_decl_compilation): Set static flag, too. 27966 * symtab.c (dump_symtab_base): Dump weakref. 27967 (verify_symtab_base): Sanity check weakrefs. 27968 (symtab_make_decl_local): Remove duplicated code. 27969 (symtab_alias_ultimate_target): Simplify. 27970 * varpool.c (varpool_create_variable_alias): Set weakref flag. 27971 279722013-06-11 Tom de Vries <tom@codesourcery.com> 27973 27974 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle 27975 sequence_vect == NULL. 27976 279772013-06-11 DJ Delorie <dj@redhat.com> 27978 27979 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define. 27980 (rl78_unwind_word_mode): New. 27981 279822013-06-11 David Malcolm <dmalcolm@redhat.com> 27983 27984 * final.c (debug_prefix_maps): Make static. 27985 279862013-06-11 David Malcolm <dmalcolm@redhat.com> 27987 27988 * function.c (initial_trampoline): Remove stray copy. 27989 279902013-06-11 Sofiane Naci <sofiane.naci@arm.com> 27991 27992 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update. 27993 279942013-06-11 Martin Jambor <mjambor@suse.cz> 27995 27996 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is 27997 within bounds at the beginning of the function. 27998 279992013-06-11 Alan Modra <amodra@gmail.com> 28000 28001 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error 28002 reporting. 28003 (get_named_section): Don't NULL !DECL_P decl. 28004 280052013-06-11 Igor Zamyatin <igor.zamyatin@intel.com> 28006 28007 * doc/invoke.texi (core-avx2): Document. 28008 (slm): Likewise. 28009 (atom): Updated with MOVBE. 28010 280112013-06-11 Richard Biener <rguenther@suse.de> 28012 28013 * collect2.c (main): Do not redirect ld stdout/stderr when debugging. 28014 280152013-06-11 Anton Blanchard <anton@samba.org> 28016 28017 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate 28018 correct shift value in little-endian mode. 28019 280202013-06-11 Jakub Jelinek <jakub@redhat.com> 28021 28022 PR target/56564 28023 * varasm.c (get_variable_align): Move #endif to the right place. 28024 280252013-06-10 Cary Coutant <ccoutant@google.com> 28026 28027 * dwarf2out.c (hash_external_ref): Use die_symbol or signature 28028 for hash so that hash table traversal order is deterministic. 28029 280302013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com> 28031 Pat Haugen <pthaugen@us.ibm.com> 28032 Peter Bergner <bergner@vnet.ibm.com> 28033 28034 * config/rs6000/vector.md (GPR move splitter): Do not split moves 28035 of vectors in GPRS if they are direct moves or quad word load or 28036 store moves. 28037 28038 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add 28039 declaration. 28040 (direct_move_p): Likewise. 28041 (quad_load_store_p): Likewise. 28042 28043 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register 28044 classes into bins based on the physical register type. 28045 (reg_class_to_reg_type): Likewise. 28046 (IS_STD_REG_TYPE): Likewise. 28047 (IS_FP_VECT_REG_TYPE): Likewise. 28048 (reload_fpr_gpr): Arrays to determine what insn to use if we can 28049 use direct move instructions. 28050 (reload_gpr_vsx): Likewise. 28051 (reload_vsx_gpr): Likewise. 28052 (rs6000_init_hard_regno_mode_ok): Precalculate the register type 28053 information that is a simplification of register classes. Also 28054 precalculate direct move reload helpers. 28055 (direct_move_p): New function to return true if the operation can 28056 be done as a direct move instruciton. 28057 (quad_load_store_p): New function to return true if the operation 28058 is a quad memory operation. 28059 (rs6000_legitimize_address): If quad memory, only allow register 28060 indirect for TImode addresses. 28061 (rs6000_legitimate_address_p): Likewise. 28062 (enum reload_reg_type): Delete, replace with rs6000_reg_type. 28063 (rs6000_reload_register_type): Likewise. 28064 (register_to_reg_type): Return register type. 28065 (rs6000_secondary_reload_simple_move): New helper function for 28066 secondary reload and secondary memory needed to identify anything 28067 that is a simple move, and does not need reloading. 28068 (rs6000_secondary_reload_direct_move): New helper function for 28069 secondary reload to identify cases that can be done with several 28070 instructions via the direct move instructions. 28071 (rs6000_secondary_reload_move): New helper function for secondary 28072 reload to identify moves between register types that can be done. 28073 (rs6000_secondary_reload): Add support for quad memory operations 28074 and for direct move. 28075 (rs6000_secondary_memory_needed): Likewise. 28076 (rs6000_debug_secondary_memory_needed): Change argument names. 28077 (rs6000_output_move_128bit): New function to return the move to 28078 use for 128-bit moves, including knowing about the various 28079 limitations of quad memory operations. 28080 28081 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad 28082 memory operations. call rs6000_output_move_128bit for the actual 28083 instruciton(s) to generate. 28084 (vsx_movti_64bit): Likewise. 28085 28086 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values. 28087 (UNSPEC_P8V_MTVSRWZ): Likewise. 28088 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise. 28089 (UNSPEC_P8V_MTVSRD): Likewise. 28090 (UNSPEC_P8V_XXPERMDI): Likewise. 28091 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise. 28092 (UNSPEC_FUSION_GPR): Likewise. 28093 (FMOVE128_GPR): New iterator for direct move. 28094 (f32_lv): New mode attribute for load/store of SFmode/SDmode values. 28095 (f32_sv): Likewise. 28096 (f32_dm): Likewise. 28097 (zero_extend<mode>di2_internal1): Add support for power8 32-bit 28098 loads and direct move instructions. 28099 (zero_extendsidi2_lfiwzx): Likewise. 28100 (extendsidi2_lfiwax): Likewise. 28101 (extendsidi2_nocell): Likewise. 28102 (floatsi<mode>2_lfiwax): Likewise. 28103 (lfiwax): Likewise. 28104 (floatunssi<mode>2_lfiwzx): Likewise. 28105 (lfiwzx): Likewise. 28106 (fix_trunc<mode>_stfiwx): Likewise. 28107 (fixuns_trunc<mode>_stfiwx): Likewise. 28108 (mov<mode>_hardfloat, 32-bit floating point): Likewise. 28109 (mov<move>_hardfloat64, 64-bit floating point): Likewise. 28110 (parity<mode>2_cmpb): Set length/type attr. 28111 (unnamed shift right patterns, mov<mode>_internal2): Change type attr 28112 for 'mr.' to fast_compare. 28113 (bpermd_<mode>): Change type attr to popcnt. 28114 (p8_fmrgow_<mode>): New insns for power8 direct move support. 28115 (p8_mtvsrwz_1): Likewise. 28116 (p8_mtvsrwz_2): Likewise. 28117 (reload_fpr_from_gpr<mode>): Likewise. 28118 (p8_mtvsrd_1): Likewise. 28119 (p8_mtvsrd_2): Likewise. 28120 (p8_xxpermdi_<mode>): Likewise. 28121 (reload_vsx_from_gpr<mode>): Likewise. 28122 (reload_vsx_from_gprsf): Likewise. 28123 (p8_mfvsrd_3_<mode>): LIkewise. 28124 (reload_gpr_from_vsx<mode>): Likewise. 28125 (reload_gpr_from_vsxsf): Likewise. 28126 (p8_mfvsrd_4_disf): Likewise. 28127 (multi-word GPR splits): Do not split direct moves or quad memory 28128 operations. 28129 281302013-06-10 David Malcolm <dmalcolm@redhat.com> 28131 28132 * tree-into-ssa.c (interesting_blocks): Make static. 28133 281342013-06-10 Jakub Jelinek <jakub@redhat.com> 28135 28136 PR target/56564 28137 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or 28138 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl). 28139 Use DATA_ABI_ALIGNMENT for that case instead if defined. 28140 (get_variable_align): New function. 28141 (get_variable_section, emit_bss, emit_common, 28142 assemble_variable_contents, place_block_symbol): Use 28143 get_variable_align instead of DECL_ALIGN. 28144 (assemble_noswitch_variable): Add align argument, use it 28145 instead of DECL_ALIGN. 28146 (assemble_variable): Adjust caller. Use get_variable_align 28147 instead of DECL_ALIGN. 28148 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment 28149 caller. 28150 (DATA_ABI_ALIGNMENT): Define. 28151 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype. 28152 * config/i386/i386.c (x86_data_alignment): Add opt argument. If 28153 opt is false, only return the psABI mandated alignment increase. 28154 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to... 28155 (DATA_ABI_ALIGNMENT): ... this. 28156 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to... 28157 (DATA_ABI_ALIGNMENT): ... this. 28158 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment. 28159 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to... 28160 (DATA_ABI_ALIGNMENT): ... this. 28161 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document. 28162 * doc/tm.texi: Regenerated. 28163 281642013-06-10 Uros Bizjak <ubizjak@gmail.com> 28165 28166 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use 28167 cmp_code to construct REG_EQUAL note. 28168 281692013-06-09 Jakub Jelinek <jakub@redhat.com> 28170 28171 PR target/57568 28172 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure 28173 that operands[2] doesn't overlap with operands[0]. 28174 281752013-06-09 David Edelsohn <dje.gcc@gmail.com> 28176 Jan Hubicka <jh@suse.cz> 28177 28178 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical 28179 hack to mark symbols as used. 28180 281812013-06-08 Vladimir Makarov <vmakarov@redhat.com> 28182 28183 PR rtl-optimization/57559 28184 * lra-constraints.c (process_alt_operands): Don't discourage 28185 memory with known offset for offsetable memory constraint. 28186 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn. 28187 281882013-06-08 Eric Botcazou <ebotcazou@adacore.com> 28189 28190 * varasm.c (struct oc_local_state): Reorder fields. 28191 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET 28192 and adjust accordingly. 28193 (output_constructor): Reorder initialization code and adjust call to 28194 output_constructor_bitfield. 28195 281962013-06-07 Jan Hubicka <jh@suse.cz> 28197 28198 * symtab.c (symtab_resolve_alias): Do not remove alias attribute. 28199 282002013-06-07 David Malcolm <dmalcolm@redhat.com> 28201 28202 * tree-object-size.c (unknown): Make const. 28203 282042013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 28205 28206 * config/s390/s390.md (cpu_facility): Add cpu_zarch. 28207 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch 28208 for last alternative in the cpu_facility attribute. 28209 282102013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 28211 28212 PR target/56315 28213 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split. 28214 (xordi3): Change operand 2 constraint to arm_xordi_operand. 28215 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR. 28216 * config/arm/constraints.md (Dg): New constraint. 28217 * config/arm/neon.md (xordi3_neon): Remove. 28218 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon. 28219 * config/arm/predicates.md (arm_xordi_operand): New predicate. 28220 282212013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 28222 28223 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives. 28224 Clean up alternatives. 28225 282262013-06-07 Alan Modra <amodra@gmail.com> 28227 28228 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up 28229 va_list_gpr_size. 28230 282312013-06-07 Alan Modra <amodra@gmail.com> 28232 28233 * varasm.c (force_const_mem): Assert mode is not VOID or BLK. 28234 282352013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 28236 28237 * config/arm/constraints.md (Df): New constraint. 28238 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De. 28239 Correct length attribute for last two alternatives. 28240 282412013-06-07 Alan Modra <amodra@gmail.com> 28242 28243 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't 28244 override user -mfp-in-toc. 28245 (offsettable_ok_by_alignment): Consider just the current access 28246 rather than the whole object, unless BLKmode. Handle 28247 CONSTANT_POOL_ADDRESS_P constants that lack a decl too. 28248 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants 28249 for -mcmodel=medium. 28250 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't 28251 override user -mfp-in-toc or -msum-in-toc. Default to 28252 -mno-fp-in-toc for -mcmodel=medium. 28253 282542013-06-06 DJ Delorie <dj@redhat.com> 28255 28256 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements 28257 TARGET_VALID_POINTER_MODE. 28258 282592013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com> 28260 Pat Haugen <pthaugen@us.ibm.com> 28261 Peter Bergner <bergner@vnet.ibm.com> 28262 28263 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): 28264 Document new power8 builtins. 28265 28266 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a 28267 condition code register, to allow 128-bit logical operations to be 28268 done in the VSX or GPR registers. 28269 (nor<mode>3): Use the canonical form for nor. 28270 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc, 28271 vclz*, and vpopcnt* vector instructions. 28272 (nand<mode>3): Likewise. 28273 (orc<mode>3): Likewise. 28274 (clz<mode>2): LIkewise. 28275 (popcount<mode>2): Likewise. 28276 28277 * config/rs6000/predicates.md (int_reg_operand): Rework tests so 28278 that only the GPRs are recognized. 28279 28280 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 28281 support for new power8 builtins. 28282 28283 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8 28284 builtin functions. 28285 (xscvdpspn): Likewise. 28286 (vclz): Likewise. 28287 (vclzb): Likewise. 28288 (vclzh): Likewise. 28289 (vclzw): Likewise. 28290 (vclzd): Likewise. 28291 (vpopcnt): Likewise. 28292 (vpopcntb): Likewise. 28293 (vpopcnth): Likewise. 28294 (vpopcntw): Likewise. 28295 (vpopcntd): Likewise. 28296 (vgbbd): Likewise. 28297 (vmrgew): Likewise. 28298 (vmrgow): Likewise. 28299 (eqv): Likewise. 28300 (eqv_v16qi3): Likewise. 28301 (eqv_v8hi3): Likewise. 28302 (eqv_v4si3): Likewise. 28303 (eqv_v2di3): Likewise. 28304 (eqv_v4sf3): Likewise. 28305 (eqv_v2df3): Likewise. 28306 (nand): Likewise. 28307 (nand_v16qi3): Likewise. 28308 (nand_v8hi3): Likewise. 28309 (nand_v4si3): Likewise. 28310 (nand_v2di3): Likewise. 28311 (nand_v4sf3): Likewise. 28312 (nand_v2df3): Likewise. 28313 (orc): Likewise. 28314 (orc_v16qi3): Likewise. 28315 (orc_v8hi3): Likewise. 28316 (orc_v4si3): Likewise. 28317 (orc_v2di3): Likewise. 28318 (orc_v4sf3): Likewise. 28319 (orc_v2df3): Likewise. 28320 28321 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only 28322 allow power8 quad mode in 64-bit. 28323 (rs6000_builtin_vectorized_function): Add support to vectorize 28324 ISA 2.07 count leading zeros, population count builtins. 28325 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form 28326 V4SF vectors instead of xscvdpsp to avoid IEEE related traps. 28327 (builtin_function_type): Add vgbbd builtin function which takes an 28328 unsigned argument. 28329 (altivec_expand_vec_perm_const): Add support for new power8 merge 28330 instructions. 28331 28332 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types, 28333 that does not include TImdoe for use with 32-bit. 28334 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn 28335 instructions. 28336 (UNSPEC_VSX_CVDPSPN): Likewise. 28337 (vsx_xscvdpspn): Likewise. 28338 (vsx_xscvspdpn): Likewise. 28339 (vsx_xscvdpspn_scalar): Likewise. 28340 (vsx_xscvspdpn_directmove): Likewise. 28341 (vsx_and<mode>3): Split logical operations into 32-bit and 28342 64-bit. Add support to do logical operations on TImode as well as 28343 VSX vector types. Allow logical operations to be done in either 28344 VSX registers or in general purpose registers in 64-bit mode. Add 28345 splitters if GPRs were used. For AND, add clobber of CCmode to 28346 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL 28347 encoding. 28348 (vsx_and<mode>3_32bit): Likewise. 28349 (vsx_and<mode>3_64bit): Likewise. 28350 (vsx_ior<mode>3): Likewise. 28351 (vsx_ior<mode>3_32bit): Likewise. 28352 (vsx_ior<mode>3_64bit): Likewise. 28353 (vsx_xor<mode>3): Likewise. 28354 (vsx_xor<mode>3_32bit): Likewise. 28355 (vsx_xor<mode>3_64bit): Likewise. 28356 (vsx_one_cmpl<mode>2): Likewise. 28357 (vsx_one_cmpl<mode>2_32bit): Likewise. 28358 (vsx_one_cmpl<mode>2_64bit): Likewise. 28359 (vsx_nor<mode>3): Likewise. 28360 (vsx_nor<mode>3_32bit): Likewise. 28361 (vsx_nor<mode>3_64bit): Likewise. 28362 (vsx_andc<mode>3): Likewise. 28363 (vsx_andc<mode>3_32bit): Likewise. 28364 (vsx_andc<mode>3_64bit): Likewise. 28365 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand, 28366 and xxlorc instructions. 28367 (vsx_eqv<mode>3_64bit): Likewise. 28368 (vsx_nand<mode>3_32bit): Likewise. 28369 (vsx_nand<mode>3_64bit): Likewise. 28370 (vsx_orc<mode>3_32bit): Likewise. 28371 (vsx_orc<mode>3_64bit): Likewise. 28372 28373 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment. 28374 28375 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd 28376 instruction. 28377 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions. 28378 (p8_vmrgow): Likewise. 28379 (altivec_and<mode>3): Add clobber of CCmode to allow AND using 28380 GPRs to be split under VSX. 28381 (p8v_clz<mode>2): Add power8 count leading zero support. 28382 (p8v_popcount<mode>2): Add power8 population count support. 28383 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword 28384 support. 28385 28386 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv 28387 instruction. 28388 28389 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8 28390 builtin functions. 28391 (vec_nand): Likewise. 28392 (vec_vclz): Likewise. 28393 (vec_vclzb): Likewise. 28394 (vec_vclzd): Likewise. 28395 (vec_vclzh): Likewise. 28396 (vec_vclzw): Likewise. 28397 (vec_vgbbd): Likewise. 28398 (vec_vmrgew): Likewise. 28399 (vec_vmrgow): Likewise. 28400 (vec_vpopcnt): Likewise. 28401 (vec_vpopcntb): Likewise. 28402 (vec_vpopcntd): Likewise. 28403 (vec_vpopcnth): Likewise. 28404 (vec_vpopcntw): Likewise. 28405 284062013-06-06 Vladimir Makarov <vmakarov@redhat.com> 28407 28408 PR rtl-optimization/57468 28409 * config/i386/i386.c (inline_secondary_memory_needed): Ignore 28410 spilled pseudos. 28411 284122013-06-06 Vladimir Makarov <vmakarov@redhat.com> 28413 28414 PR rtl-optimization/57459 28415 * lra-constraints.c (update_ebb_live_info): Fix typo for operand 28416 type when setting live regs. 28417 284182013-06-06 Vladimir Makarov <vmakarov@redhat.com> 28419 28420 * config/s390/s390.opt (mlra): New option. 28421 * config/s390/s390.c (s390_decompose_address): Check displacement 28422 for all registers for LRA. 28423 (s390_secondary_reload): Don't used secondary reloads for LRA. 28424 (s390_lra_p): New function. 28425 (TARGET_LRA_P): Define. 28426 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value 28427 of attribute cpu_facility to zarch for the last alternative. 28428 (*cmpmem_short): Ditto. 28429 284302013-06-06 Eric Botcazou <ebotcazou@adacore.com> 28431 28432 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate. 28433 (arm_compute_static_chain_stack_bytes): Use it. Tidy up. 28434 (arm_expand_prologue): Likewise. 28435 284362013-06-06 Teresa Johnson <tejohnson@google.com> 28437 28438 PR c++/53743 28439 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert 28440 as this is now done by redirect_edge_and_branch_force. 28441 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after 28442 barriers, and fix interaction with splitting. 28443 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes. 28444 * cfgcleanup.c (try_forward_edges): Fix early return value to properly 28445 reflect changes made in the routine. 28446 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c. 28447 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order 28448 since this is called in cfglayout mode, and replace partition fixup 28449 with assert as that is now done by force_nonfallthru_and_redirect. 28450 (add_reg_crossing_jump_notes): Handle the fact that some jumps may 28451 already be marked with region crossing note. 28452 (insert_section_boundary_note): Make non-static, gate on flag 28453 has_bb_partition, rewrite to also check for multiple partitions. 28454 (rest_of_handle_reorder_blocks): Remove call to 28455 insert_section_boundary_note, now done later during free_cfg. 28456 (duplicate_computed_gotos): Don't duplicate partition crossing edge. 28457 * bb-reorder.h (insert_section_boundary_note): Declare. 28458 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h 28459 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist 28460 invoke insert_section_boundary_note. 28461 (try_redirect_by_replacing_jump): Remove unnecessary 28462 check for region crossing note. 28463 (fixup_partition_crossing): New function. 28464 (rtl_redirect_edge_and_branch): Fixup partition boundaries. 28465 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion 28466 in non-cfglayout mode. 28467 (force_nonfallthru_and_redirect): Fixup partition boundaries, 28468 remove old code that tried to do this. Emit barrier correctly 28469 when we are in cfglayout mode. 28470 (last_bb_in_partition): New function. 28471 (rtl_split_edge): Correctly fixup partition boundaries. 28472 (commit_one_edge_insertion): Remove old code that tried to 28473 fixup region crossing edge since this is now handled in 28474 split_block, and set up insertion point correctly since 28475 block may now end in a jump. 28476 (verify_hot_cold_block_grouping): Guard against checking when not in 28477 linearized RTL mode. 28478 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP 28479 notes. 28480 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to 28481 rtl_verify_flow_info, so not called in cfglayout mode. 28482 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here. 28483 (fixup_reorder_chain): Remove old code that attempted to fixup region 28484 crossing note as this is now handled in force_nonfallthru_and_redirect. 28485 (duplicate_insn_chain): Don't duplicate switch section notes. 28486 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing 28487 note. 28488 * basic-block.h (emit_barrier_after_bb): Declare. 28489 284902013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 28491 28492 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3, 28493 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift, 28494 arm_usatsihi): Adjust alternatives for arm_restrict_it. 28495 284962013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 28497 28498 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no" 28499 where appropriate. 28500 * config/arm/ldmstm.md: Regenerate. 28501 285022013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 28503 28504 * config/arm/sync.md (atomic_loaddi_1): 28505 Disable predication for arm_restrict_it. 28506 (arm_load_exclusive<mode>): Likewise. 28507 (arm_load_exclusivesi): Likewise. 28508 (arm_load_exclusivedi): Likewise. 28509 (arm_load_acquire_exclusive<mode>): Likewise. 28510 (arm_load_acquire_exclusivesi): Likewise. 28511 (arm_load_acquire_exclusivedi): Likewise. 28512 (arm_store_exclusive<mode>): Likewise. 28513 (arm_store_exclusive<mode>): Likewise. 28514 (arm_store_release_exclusivedi): Likewise. 28515 (arm_store_release_exclusive<mode>): Likewise. 28516 285172013-06-06 Richard Biener <rguenther@suse.de> 28518 28519 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference 28520 after LTO_null. 28521 (lto_tag_is_tree_code_p): Adjust. 28522 (lto_tag_is_gimple_code_p): Likewise. 28523 (lto_gimple_code_to_tag): Likewise. 28524 (lto_tag_to_gimple_code): Likewise. 28525 (lto_tree_code_to_tag): Likewise. 28526 (lto_tag_to_tree_code): Likewise. 28527 * data-streamer.h (streamer_write_hwi_in_range): Use 28528 uhwi streaming to stream the normalized range. 28529 (streamer_read_hwi_in_range): Likewise. 28530 285312013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 28532 28533 * config/arm/arm.md (enabled_for_depr_it): New attribute. 28534 (predicable_short_it): Likewise. 28535 (predicated): Likewise. 28536 (enabled): Handle above. 28537 (define_cond_exec): Set predicated attribute to yes. 28538 285392013-06-05 Mike Stump <mikestump@comcast.net> 28540 28541 * gdbinit.in (__FUNCTION__): Add. 28542 285432013-06-05 Uros Bizjak <ubizjak@gmail.com> 28544 28545 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all 28546 GE, GT, GEU and GTU compares, modulo DImode compares with zero. 28547 285482013-06-05 Jan Hubicka <jh@suse.cz> 28549 28550 * varasm.c (mark_decl_referenced): Revert the removal until targets 28551 are fixed. 28552 285532013-06-05 David Edelsohn <dje.gcc@gmail.com> 28554 28555 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P 28556 instead of mark_decl_referenced. 28557 285582013-06-05 Jan Hubicka <jh@suse.cz> 28559 28560 * cgraph.c (cgraph_remove_node): Clear forced_by_abi. 28561 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi 28562 and symtab_used_from_object_file_p. 28563 (cgraph_make_node_local_1): Clear forced_by_abi. 28564 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi 28565 * cgraph.h (symtab_node_base): Add forced_by_abi. 28566 (decide_is_variable_needed): Remove. 28567 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi. 28568 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to .. 28569 (decide_is_symbol_needed): ... this one; handle symbols in general; 28570 always analyze virtuals; honnor forced_by_abi. 28571 (cgraph_finalize_function): Update. 28572 (varpool_finalize_decl): Update. 28573 (symbol_defined_and_needed): Remove. 28574 (analyze_functions): Update. 28575 * lto-cgraph.c (lto_output_node, lto_output_varpool_node, 28576 output_refs, input_overwrite_node): Handle forced_by_abi. 28577 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ... 28578 (address_taken_from_non_vtable_p): ... this one. 28579 (comdat_can_be_unshared_p_1): New function. 28580 (cgraph_comdat_can_be_unshared_p): Rename to ... 28581 (comdat_can_be_unshared_p): ... this one; handle symbols in general. 28582 (varpool_externally_visible_p): Use comdat_can_be_unshared_p. 28583 (function_and_variable_visibility): Clear forced_by_abi as needed. 28584 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin. 28585 (ipa_tm_create_version_alias, ipa_tm_create_version): Update. 28586 * symtab.c (dump_symtab_base): Dump forced_by_abi. 28587 * varpool.c (decide_is_variable_needed): Remove. 28588 285892013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 28590 28591 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro. 28592 (arm_option_override): Override arm_restrict_it where appropriate. 28593 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK. 28594 * config/arm/arm.opt (mrestrict-it): New command-line option. 28595 * doc/invoke.texi: Document -mrestrict-it. 28596 285972013-06-05 David Malcolm <dmalcolm@redhat.com> 28598 28599 * tsan.c (tsan_atomic_table): Make const. 28600 286012013-06-05 Richard Biener <rguenther@suse.de> 28602 28603 * tree-streamer.c (streamer_tree_cache_insert_1): Update the 28604 index associated with the tree we are supposed to replace. 28605 * tree-streamer-out.c (pack_ts_base_value_fields): Output 28606 TREE_ASM_WRITTEN as zero for everything but SSA names. 28607 286082013-06-05 David Malcolm <dmalcolm@redhat.com> 28609 28610 * tree-ssa-structalias.c (call_stmt_vars): Make static. 28611 286122013-06-04 Jan Hubicka <jh@suse.cz> 28613 28614 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check. 28615 (input_node, input_varpool_node): Handle correctly external same 28616 body aliases. 28617 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external 28618 nodes at ltrans stage. 28619 286202013-06-04 Jan Hubicka <jh@suse.cz> 28621 28622 * ipa-inline.c (update_caller_keys): Fix availability test. 28623 (update_callee_keys): Likewise. 28624 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic 28625 to follow ELF standard. 28626 286272013-06-04 Jürgen Urban <JuergenUrban@gmx.de> 28628 28629 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*) 28630 (mips64r5900el-*-elf*): New configurations. 28631 * config/mips/mips-cpus.def (r5900): New processor. 28632 * config/mips/mips-tables.opt: Regenerate. 28633 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry. 28634 (mips_issue_rate): Handle PROCESSOR_R5900. 28635 (mips_reorg_process_insns): Force reorder mode for the R5900. 28636 * config/mips/mips.h (TARGET_MIPS5900): Define. 28637 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include 28638 TARGET_MIPS5900. 28639 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude 28640 TARGET_MIPS5900. 28641 * config/mips/mips.md (processor): Add r5900. 28642 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900. 28643 286442013-06-04 Ian Bolton <ian.bolton@arm.com> 28645 28646 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call 28647 into function to generate MOVI instruction. 28648 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function. 28649 (aarch64_preferred_simd_mode): Turn into wrapper. 28650 (aarch64_output_scalar_simd_mov_immediate): New function. 28651 * config/aarch64/aarch64-protos.h: Add prototype for above. 28652 286532013-06-04 Ian Bolton <ian.bolton@arm.com> 28654 28655 * config/aarch64/aarch64.c (simd_immediate_info): Remove 28656 element_char member. 28657 (sizetochar): Return signed char. 28658 (aarch64_simd_valid_immediate): Remove elchar and other 28659 unnecessary variables. 28660 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx. 28661 Calculate element_char as required. 28662 * config/aarch64/aarch64-protos.h: Update and move prototype 28663 for aarch64_output_simd_mov_immediate. 28664 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): 28665 Update arguments. 28666 286672013-06-04 Ian Bolton <ian.bolton@arm.com> 28668 28669 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold 28670 information completed by aarch64_simd_valid_immediate. 28671 (aarch64_legitimate_constant_p): Update arguments. 28672 (aarch64_simd_valid_immediate): Work with struct rather than many 28673 pointers. 28674 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments. 28675 (aarch64_simd_make_constant): Update arguments. 28676 (aarch64_output_simd_mov_immediate): Work with struct rather than 28677 many pointers. Output immediate directly rather than as operand. 28678 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate): 28679 Update prototype. 28680 * config/aarch64/constraints.md (Dn): Update arguments. 28681 286822013-06-04 Ian Bolton <ian.bolton@arm.com> 28683 28684 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No 28685 longer static. 28686 (aarch64_simd_immediate_valid_for_move): Remove. 28687 (aarch64_simd_scalar_immediate_valid_for_move): Update call. 28688 (aarch64_simd_make_constant): Update call. 28689 (aarch64_output_simd_mov_immediate): Update call. 28690 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate): 28691 Add prototype. 28692 * config/aarch64/constraints.md (Dn): Update call. 28693 286942013-06-04 Ian Bolton <ian.bolton@arm.com> 28695 28696 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change 28697 return type to bool for prototype. 28698 (aarch64_legitimate_constant_p): Check for true instead of not -1. 28699 (aarch64_simd_valid_immediate): Fix up each return to return a bool. 28700 (aarch64_simd_immediate_valid_for_move): Update retval for bool. 28701 287022013-06-04 Catherine Moore <clm@codesourcery.com> 28703 28704 * config/mips/mips.opt (meva): New. 28705 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva. 28706 (ASM_SPEC): Handle -meva. 28707 * doc/invoke.texi (meva): Document. 28708 287092013-06-04 Alan Modra <amodra@gmail.com> 28710 28711 * config/rs6000/rs6000.c (output_toc): Correct little-endian float 28712 constant output. 28713 287142013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 28715 28716 * rtl.def: Add extra fourth optional field to define_cond_exec. 28717 * gensupport.c (process_one_cond_exec): Process attributes from 28718 define_cond_exec. 28719 * doc/md.texi: Document fourth field in define_cond_exec. 28720 287212013-06-04 Eric Botcazou <ebotcazou@adacore.com> 28722 28723 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor 28724 out the processing order as in store_bit_field_1. 28725 287262013-06-04 Jan Hubicka <jh@suse.cz> 28727 28728 PR middle-end/57500 28729 * cgraphunit.c (cgraph_process_same_body_aliases): Create 28730 non-VAR_DECL node if it does not exist yet. 28731 287322013-06-03 Richard Sandiford <rdsandiford@googlemail.com> 28733 28734 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*) 28735 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*) 28736 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove 28737 target_cpu_default setting. 28738 287392013-06-03 Teresa Johnson <tejohnson@google.com> 28740 28741 * dumpfile.c (opt_info_switch_p): Change -fopt-info 28742 default to -fopt-info=optimized instead of all. 28743 * doc/invoke.texi: Ditto. 28744 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization 28745 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc. 28746 (execute_vect_slp): Emit BB vectorization success under 28747 MSG_OPTIMIZED_LOCATIONS. 28748 * tree-vect-slp.c (vect_slp_transform_bb): Change 28749 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE. 28750 * tree-vect-loop.c (vect_transform_loop): Ditto. 28751 287522013-06-03 Jason Merrill <jason@redhat.com> 28753 28754 PR c++/57415 28755 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 28756 Use TARGET_EXPR for C++. 28757 287582013-06-03 Jakub Jelinek <jakub@redhat.com> 28759 28760 PR rtl-optimization/57268 28761 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists 28762 if DEBUG_INSN_P (insn). 28763 28764 Reapply 28765 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com> 28766 28767 PR rtl-optimization/57268 28768 * sched-deps.c (sched_analyze_2): Flush dependence lists if 28769 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH. 28770 287712013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com> 28772 28773 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting. 28774 (ix86_avoid_lea_for_addr): Likewise. 28775 (exact_dependency_1): Likewise. 28776 (ix86_adjust_cost): Likewise. 28777 (swap_top_of_ready_list): Fix formatting and !reload_completed check 28778 removed. 28779 (do_reorder_for_imul): Fix typo, formatting and 28780 !reload_completed check removed. 28781 (ix86_sched_reorder): Fix typo and formatting. 28782 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types 28783 list. 28784 287852013-06-03 Sofiane Naci <sofiane.naci@arm.com> 28786 28787 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute. 28788 287892013-06-03 Eric Botcazou <ebotcazou@adacore.com> 28790 28791 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak. 28792 <STRING_CST>: Likewise. 28793 <VECTOR_CST>: Likewise. 28794 287952013-06-01 Janus Weil <janus@gcc.gnu.org> 28796 Mikael Morin <mikael@gcc.gnu.org> 28797 28798 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro. 28799 * config.in: Regenerated. 28800 * configure: Regenerated. 28801 288022013-06-01 Jan Hubicka <jh@suse.cz> 28803 28804 PR middle-end/57366 28805 * cgraphunit.c (compile): When weakref is not supported, 28806 set up transparent aliases before final output pass. 28807 * varasm.c (assemble_alias): Do not try to do it here. 28808 288092013-06-01 Jan Hubicka <jh@suse.cz> 28810 28811 PR middle-end/57467 28812 * passes.c (for_per_function): Skip unanalyzed functions. 28813 288142013-06-01 Jan Hubicka <jh@suse.cz> 28815 28816 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ... 28817 (lto_symtab_merge_symbols_1): ... this one. 28818 (lto_symtab_merge_cgraph_nodes): Rename to ... 28819 (lto_symtab_merge_symbols): ... this one; simplify. 28820 * cgraph.c (same_body_aliases_done): Rename to ... 28821 (cpp_implicit_aliases_done): ... this one. 28822 (cgraph_create_function_alias): Update. 28823 (cgraph_same_body_alias): Update. 28824 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping. 28825 (verify_edge_corresponds_to_fndecl): Simplify. 28826 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target. 28827 (cgraph_node): Remove same_body_alias. 28828 (varpool_node): Remove alias_of and extra_name_alias. 28829 (same_body_aliases_done): Rename to .. 28830 (cpp_implicit_aliases_done): ... this one. 28831 (symtab_alias_ultimate_target): Add default parameter. 28832 (symtab_resolve_alias): New function. 28833 (fixup_same_cpp_alias_visibility): Declare. 28834 (cgraph_function_node): Add default parameter. 28835 (cgraph_node_asm_name): Likewise. 28836 (cgraph_function_or_thunk_node): Add default parameter; do 28837 not ICE when it is NULL. 28838 (varpool_variable_node): Likewise. 28839 * tree-emutls.c (create_emultls_var): Update. 28840 (ipa_lower_emutls): Update. 28841 * cgraphunit.c (cgraph_decide_is_function_needed): Update. 28842 (cgraph_reset_node): Reset alias info. 28843 (cgraph_finalize_function): Update. 28844 (fixup_same_cpp_alias_visibility): Move to symtab.c. 28845 (analyze_function): Simplify. 28846 (cgraph_process_same_body_aliases): Simplify. 28847 (analyze_functions): Fixup same body aliases. 28848 (handle_alias_pairs): Simplify. 28849 (assemble_thunk): Update. 28850 (assemble_thunks_and_aliases): Update. 28851 (output_weakrefs): Rewrite. 28852 * lto-cgraph.c (lto_output_node): Rewrite alias handling. 28853 (lto_output_varpool_node): Likewise. 28854 (compute_ltrans_boundary): Remve assert. 28855 (get_alias_symbol): New functoin. 28856 (input_node): Rewrite alias handling. 28857 (input_varpool_node): Likewise. 28858 * ipa-pure-const.c (propagate_pure_const): Fix formating. 28859 * ipa.c (process_references): Handle weakrefs correctly. 28860 (symtab_remove_unreachable_nodes): Likewise. 28861 * trans-mem.c (get_cg_data): Update. 28862 (ipa_tm_create_version_alias): Update. 28863 (ipa_tm_execute): Update. 28864 * symtab.c (dump_symtab_base): Dump aliases. 28865 (verify_symtab_base): Verify aliases. 28866 (symtab_node_availability): New function. 28867 (symtab_alias_ultimate_target): Simplify. 28868 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c; 28869 handle all the fixup cases. 28870 (symtab_resolve_alias): New function. 28871 * passes.c (ipa_write_summaries): Handle weakrefs. 28872 * varpool.c (varpool_analyze_node): Simplify. 28873 (assemble_aliases): Update. 28874 (varpool_create_variable_alias): Simplify. 28875 (varpool_extra_name_alias): Simplify. 28876 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to... 28877 (lto_symtab_merge_symbols): ... this one. 28878 288792013-06-01 Dinar Temirbulatov <dinar@kugelworks.com> 28880 28881 Revert 28882 PR rtl-optimization/57268 28883 * sched-deps.c (sched_analyze_2): Flush dependence lists if 28884 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH. 28885 288862013-06-01 Tobias Burnus <burnus@net-b.de> 28887 28888 Partially reverted: 28889 2013-05-31 Tobias Burnus <burnus@net-b.de> 28890 28891 PR middle-end/57073 28892 * tree-ssa-math-opts.c (execute_cse_sincos): Move check 28893 further up. 28894 288952013-05-31 Dinar Temirbulatov <dinar@kugelworks.com> 28896 28897 PR rtl-optimization/57268 28898 * sched-deps.c (sched_analyze_2): Flush dependence lists if 28899 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH. 28900 289012013-05-31 Eric Botcazou <ebotcazou@adacore.com> 28902 28903 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some 28904 unordered comparison operators when -fno-trapping-math is in effect 28905 on the e500. 28906 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code 28907 and implement unordered comparison operators properly on the e500. 28908 289092013-05-31 Eric Botcazou <ebotcazou@adacore.com> 28910 28911 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro 28912 for constant scalar integers. 28913 (simplify_relational_operation_1): Likewise. 28914 289152013-05-31 Segher Boessenkool <segher@kernel.crashing.org> 28916 28917 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder. 28918 * config/rs6000/rs6000.md (cpu): Reorder. Split long line. 28919 Fix comment. 28920 289212013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com> 28922 Igor Zamyatin <igor.zamyatin@intel.com> 28923 28924 Silvermont (SLM) architecture performance tuning. 28925 * config/i386/i386.h (enum ix86_tune_indices): Add 28926 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS. 28927 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define. 28928 28929 * config/i386/i386.c (initial_ix86_tune_features) 28930 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize. 28931 (ix86_lea_outperforms): Handle Silvermont tuning. 28932 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms 28933 call. 28934 (ix86_use_lea_for_mov): Likewise. 28935 (ix86_avoid_lea_for_addr): Likewise. 28936 (ix86_lea_for_add_ok): Likewise. 28937 (exact_dependency_1): New function. 28938 (exact_store_load_dependency): Likewise. 28939 (ix86_adjust_cost): Handle Silvermont tuning. 28940 (do_reoder_for_imul): Likewise. 28941 (swap_top_of_ready_list): New function. 28942 (ix86_sched_reorder): Changed to handle Silvermont tuning. 28943 28944 * config/i386/i386.md (peepholes that split memory operand in fp 28945 converts): New. 28946 289472013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com> 28948 28949 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): 28950 Remove un-necessary braces. 28951 289522013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com> 28953 28954 * config/aarch64/aarch64.c (aarch64_classify_symbol): 28955 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC. 28956 289572013-05-31 Tobias Burnus <burnus@net-b.de> 28958 28959 PR middle-end/57073 28960 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up. 28961 289622013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 28963 28964 PR target/56315 28965 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR. 28966 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split. 28967 * config/arm/neon.md (iordi3_neon): Remove. 28968 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon. 28969 * config/arm/predicates.md (imm_for_neon_logic_operand): 28970 Move to earlier in the file. 28971 (neon_logic_op2): Likewise. 28972 (arm_iordi_operand_neon): New predicate. 28973 289742013-05-31 Richard Biener <rguenther@suse.de> 28975 28976 PR tree-optimization/57478 28977 PR tree-optimization/57453 28978 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes 28979 are life as well. 28980 289812013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com> 28982 28983 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands. 28984 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns. 28985 289862013-05-30 Tobias Burnus <burnus@net-b.de> 28987 Thomas Koenig <tkoenig@gcc.gnu.org> 28988 28989 PR middle-end/57073 28990 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize 28991 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0. 28992 289932013-05-30 Steven Bosscher <steven@gcc.gnu.org> 28994 28995 * rtlanal.c (tablejump_p): Expect table and label to be adjacent. 28996 289972013-05-30 Vladimir Makarov <vmakarov@redhat.com> 28998 28999 * target.def (register_usage_leveling_p): New hook. 29000 * targhooks.c (default_register_usage_leveling_p): New. 29001 * targhooks.h (default_register_usage_leveling_p): New prototype. 29002 * lra-assigns.c (register_usage_leveling_p): Use the hook. 29003 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook. 29004 * doc/tm.texi: Update. 29005 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define. 29006 290072013-05-30 Ian Bolton <ian.bolton@arm.com> 29008 29009 * config/aarch64/aarch64.md (insv<mode>): New define_expand. 29010 (*insv_reg<mode>): New define_insn. 29011 290122013-05-30 Joern Rennecke <joern.rennecke@embecosm.com> 29013 29014 PR rtl-optimization/57439 29015 * postreload.c (move2add_valid_value_p): Check that we have 29016 a zero subreg_regno_offset when accessing the register in 29017 the requested mode. 29018 290192013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com> 29020 Igor Zamyatin <igor.zamyatin@intel.com> 29021 29022 Silvermont (SLM) architecture pipeline model, tuning and 29023 insn selection. 29024 * config.gcc: Add slm config options and target. 29025 29026 * config/i386/slm.md: New. 29027 29028 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe. 29029 29030 * config/i386/i386-c.c (ix86_target_macros_internal): New case 29031 PROCESSOR_SLM. 29032 (ix86_target_macros_internal): Likewise. 29033 29034 * config/i386/i386.c (slm_cost): New cost. 29035 (m_SLM): New macro flag. 29036 (initial_ix86_tune_features): Set m_SLM. 29037 (x86_accumulate_outgoing_args): Likewise. 29038 (x86_arch_always_fancy_math_387): Likewise. 29039 (processor_target_table): Add slm cost. 29040 (cpu_names): Add slm cpu name. 29041 (x86_option_override_internal): Set SLM ISA. 29042 (ix86_issue_rate): New case PROCESSOR_SLM. 29043 (ia32_multipass_dfa_lookahead): Likewise. 29044 (fold_builtin_cpu): Add slm. 29045 29046 * config/i386/i386.h (TARGET_SLM): New target macro. 29047 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm. 29048 (processor_type): Add PROCESSOR_SLM. 29049 29050 * config/i386/i386.md (cpu): Add new value "slm". 29051 (slm.md): Include slm.md. 29052 290532013-05-30 Bernd Schmidt <bernds@codesourcery.com> 29054 Zhenqiang Chen <zhenqiang.chen@linaro.org> 29055 29056 * config/arm/arm-protos.h: Add and update function protos. 29057 * config/arm/arm.c (use_simple_return_p): New added. 29058 (thumb2_expand_return): Check simple_return flag. 29059 * config/arm/arm.md: Add simple_return and conditional simple_return. 29060 * config/arm/iterators.md: Add iterator for return and simple_return. 29061 290622013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org> 29063 29064 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added. 29065 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes. 29066 (arm_emit_vfp_multi_reg_pop): Likewise. 29067 (thumb2_emit_ldrd_pop): Likewise. 29068 (arm_expand_epilogue): Add misc REG_CFA notes. 29069 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE. 29070 290712013-05-29 Lawrence Crowl <crowl@google.com> 29072 29073 * config/arm/t-arm: Update for below. 29074 29075 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab): 29076 Change type to hash_table. Update dependent calls and types. 29077 29078 * config/i386/t-cygming: Update for below. 29079 29080 * config/i386/t-interix: Update for below. 29081 29082 * config/i386/winnt.c (i386_pe_section_type_flags::htab): 29083 Change type to hash_table. Update dependent calls and types. 29084 (i386_find_on_wrapper_list::wrappers): Likewise. 29085 29086 * config/ia64/t-ia64: Update for below. 29087 29088 * config/ia64/ia64.c (bundle_state_table): 29089 Change type to hash_table. Update dependent calls and types. 29090 29091 * config/mips/mips.c (mips_reorg_process_insns::htab): 29092 Change type to hash_table. Update dependent calls and types. 29093 29094 * config/sol2.c (solaris_comdat_htab): 29095 Change type to hash_table. Update dependent calls and types. 29096 29097 * config/t-sol2: Update for above. 29098 290992013-05-29 Teresa Johnson <tejohnson@google.com> 29100 29101 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since 29102 functions are not yet marked as defined. 29103 291042013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com> 29105 Pat Haugen <pthaugen@us.ibm.com> 29106 Peter Bergner <bergner@vnet.ibm.com> 29107 29108 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI 29109 instructions. 29110 (VEC_A): Likewise. 29111 (VEC_C): Likewise. 29112 (vrotl<mode>3): Likewise. 29113 (vashl<mode>3): Likewise. 29114 (vlshr<mode>3): Likewise. 29115 (vashr<mode>3): Likewise. 29116 29117 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 29118 support for power8 V2DI builtins. 29119 29120 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for 29121 power8 V2DI builtins. 29122 (vupkhsw): Likewise. 29123 (vupklsw): Likewise. 29124 (vaddudm): Likewise. 29125 (vminsd): Likewise. 29126 (vmaxsd): Likewise. 29127 (vminud): Likewise. 29128 (vmaxud): Likewise. 29129 (vpkudum): Likewise. 29130 (vpksdss): Likewise. 29131 (vpkudus): Likewise. 29132 (vpksdus): Likewise. 29133 (vrld): Likewise. 29134 (vsld): Likewise. 29135 (vsrd): Likewise. 29136 (vsrad): Likewise. 29137 (vsubudm): Likewise. 29138 (vcmpequd): Likewise. 29139 (vcmpgtsd): Likewise. 29140 (vcmpgtud): Likewise. 29141 (vcmpequd_p): Likewise. 29142 (vcmpgtsd_p): Likewise. 29143 (vcmpgtud_p): Likewise. 29144 (vupkhsw): Likewise. 29145 (vupklsw): Likewise. 29146 (vaddudm): Likewise. 29147 (vmaxsd): Likewise. 29148 (vmaxud): Likewise. 29149 (vminsd): Likewise. 29150 (vminud): Likewise. 29151 (vpksdss): Likewise. 29152 (vpksdus): Likewise. 29153 (vpkudum): Likewise. 29154 (vpkudus): Likewise. 29155 (vrld): Likewise. 29156 (vsld): Likewise. 29157 (vsrad): Likewise. 29158 (vsrd): Likewise. 29159 (vsubudm): Likewise. 29160 29161 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add 29162 support for power8 V2DI instructions. 29163 29164 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for 29165 power8 V2DI instructions. Combine pack and unpack insns to use an 29166 iterator for each mode. Check whether a particular mode supports 29167 Altivec instructions instead of just checking TARGET_ALTIVEC. 29168 (UNSPEC_VPKUWUM): Likewise. 29169 (UNSPEC_VPKSHSS): Likewise. 29170 (UNSPEC_VPKSWSS): Likewise. 29171 (UNSPEC_VPKUHUS): Likewise. 29172 (UNSPEC_VPKSHUS): Likewise. 29173 (UNSPEC_VPKUWUS): Likewise. 29174 (UNSPEC_VPKSWUS): Likewise. 29175 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise. 29176 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise. 29177 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise. 29178 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise. 29179 (UNSPEC_VUPKHSB): Likewise. 29180 (UNSPEC_VUNPACK_HI_SIGN): Likewise. 29181 (UNSPEC_VUNPACK_LO_SIGN): Likewise. 29182 (UNSPEC_VUPKHSH): Likewise. 29183 (UNSPEC_VUPKLSB): Likewise. 29184 (UNSPEC_VUPKLSH): Likewise. 29185 (VI2): Likewise. 29186 (VI_char): Likewise. 29187 (VI_scalar): Likewise. 29188 (VI_unit): Likewise. 29189 (VP): Likewise. 29190 (VP_small): Likewise. 29191 (VP_small_lc): Likewise. 29192 (VU_char): Likewise. 29193 (add<mode>3): Likewise. 29194 (altivec_vaddcuw): Likewise. 29195 (altivec_vaddu<VI_char>s): Likewise. 29196 (altivec_vadds<VI_char>s): Likewise. 29197 (sub<mode>3): Likewise. 29198 (altivec_vsubcuw): Likewise. 29199 (altivec_vsubu<VI_char>s): Likewise. 29200 (altivec_vsubs<VI_char>s): Likewise. 29201 (altivec_vavgs<VI_char>): Likewise. 29202 (altivec_vcmpbfp): Likewise. 29203 (altivec_eq<mode>): Likewise. 29204 (altivec_gt<mode>): Likewise. 29205 (altivec_gtu<mode>): Likewise. 29206 (umax<mode>3): Likewise. 29207 (smax<mode>3): Likewise. 29208 (umin<mode>3): Likewise. 29209 (smin<mode>3): Likewise. 29210 (altivec_vpkuhum): Likewise. 29211 (altivec_vpkuwum): Likewise. 29212 (altivec_vpkshss): Likewise. 29213 (altivec_vpkswss): Likewise. 29214 (altivec_vpkuhus): Likewise. 29215 (altivec_vpkshus): Likewise. 29216 (altivec_vpkuwus): Likewise. 29217 (altivec_vpkswus): Likewise. 29218 (altivec_vpks<VI_char>ss): Likewise. 29219 (altivec_vpks<VI_char>us): Likewise. 29220 (altivec_vpku<VI_char>us): Likewise. 29221 (altivec_vpku<VI_char>um): Likewise. 29222 (altivec_vrl<VI_char>): Likewise. 29223 (altivec_vsl<VI_char>): Likewise. 29224 (altivec_vsr<VI_char>): Likewise. 29225 (altivec_vsra<VI_char>): Likewise. 29226 (altivec_vsldoi_<mode>): Likewise. 29227 (altivec_vupkhsb): Likewise. 29228 (altivec_vupkhs<VU_char>): Likewise. 29229 (altivec_vupkls<VU_char>): Likewise. 29230 (altivec_vupkhsh): Likewise. 29231 (altivec_vupklsb): Likewise. 29232 (altivec_vupklsh): Likewise. 29233 (altivec_vcmpequ<VI_char>_p): Likewise. 29234 (altivec_vcmpgts<VI_char>_p): Likewise. 29235 (altivec_vcmpgtu<VI_char>_p): Likewise. 29236 (abs<mode>2): Likewise. 29237 (vec_unpacks_hi_v16qi): Likewise. 29238 (vec_unpacks_hi_v8hi): Likewise. 29239 (vec_unpacks_lo_v16qi): Likewise. 29240 (vec_unpacks_hi_<VP_small_lc>): Likewise. 29241 (vec_unpacks_lo_v8hi): Likewise. 29242 (vec_unpacks_lo_<VP_small_lc>): Likewise. 29243 (vec_pack_trunc_v8h): Likewise. 29244 (vec_pack_trunc_v4si): Likewise. 29245 (vec_pack_trunc_<mode>): Likewise. 29246 29247 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8 29248 V2DI builtins. 29249 (vec_vmaxsd): Likewise. 29250 (vec_vmaxud): Likewise. 29251 (vec_vminsd): Likewise. 29252 (vec_vminud): Likewise. 29253 (vec_vpksdss): Likewise. 29254 (vec_vpksdus): Likewise. 29255 (vec_vpkudum): Likewise. 29256 (vec_vpkudus): Likewise. 29257 (vec_vrld): Likewise. 29258 (vec_vsld): Likewise. 29259 (vec_vsrad): Likewise. 29260 (vec_vsrd): Likewise. 29261 (vec_vsubudm): Likewise. 29262 (vec_vupkhsw): Likewise. 29263 (vec_vupklsw): Likewise. 29264 292652013-05-29 Jan Hubicka <jh@suse.cz> 29266 29267 * cgraph.h (symtab_node_base): Add definition, alias and analyzed 29268 flags; reorder rest of fields in more consistent way. 29269 (varpool_node): Remove analyzed, finalized and alias. 29270 (cgraph_ndoe): Likewise. 29271 (symtab_alias_ultimate_target): New function. 29272 (cgraph_function_node): Move offline. 29273 (cgraph_reset_node): Declare. 29274 (cgraph_comdat_can_be_unshared_p): Remove. 29275 (varpool_remove_initializer): Declare. 29276 (varpool_first_defined_variable, varpool_next_defined_variable 29277 cgraph_first_defined_function, cgraph_next_defined_function): Update. 29278 (cgraph_function_with_gimple_body_p): Update. 29279 (varpool_all_refs_explicit_p): Update. 29280 (symtab_alias_target): New function. 29281 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ... 29282 (cgraph_alias_target, varpool_alias_target): .. this one; simplify. 29283 (cgraph_function_or_thunk_node): Simplify using 29284 symtab_alias_ultimate_target. 29285 (varpool_variable_node): Likewise. 29286 * cgraph.c (cgraph_create_function_alias): Update. 29287 (cgraph_add_thunk): Update. 29288 (cgraph_remove_node): Update. 29289 (dump_cgraph_node): Do not dump removed flags. 29290 (cgraph_function_body_availability): Update. 29291 (cgraph_propagate_frequency): Update. 29292 (verify_cgraph_node): Check sanity of local flag. 29293 (cgraph_function_node): Move here from cgraph.h; revamp for 29294 cgraph_function_or_thunk_node. 29295 * lto-symtab.c (lto_varpool_replace_node): Update. 29296 (lto_symtab_resolve_can_prevail_p): Update. 29297 (lto_symtab_merge_cgraph_nodes): Update. 29298 * ipa-cp.c (determine_versionability, initialize_node_lattices, 29299 propagate_constants_accross_call, devirtualization_time_bonus, 29300 ipcp_propagate_stage): Update. 29301 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update. 29302 * ipa-inline-transform.c (clone_inlined_nodes, 29303 preserve_function_body_p): Update. 29304 * ipa-reference.c (propagate): Update. 29305 (write_node_summary_p): Update. 29306 * toplev.c (wrapup_global_declaration_2): Update. 29307 * cgraphunit.c (cgraph_analyze_function): Rename to ... 29308 (analyze_function) ... this one. 29309 (cgraph_process_new_functions): Update. 29310 (cgraph_reset_node): Export. 29311 (cgraph_finalize_function): Update. 29312 (cgraph_add_new_function): Update. 29313 (process_function_and_variable_attributes): Update. 29314 (varpool_finalize_decl): Update. 29315 (symbol_finalized): Remove. 29316 (symbol_finalized_and_needed): Rename to ... 29317 (symbol_defined_and_needed): ... update. 29318 (cgraph_analyze_functions): Update. 29319 (handle_alias_pairs): Update. 29320 (mark_functions_to_output): Update. 29321 (assemble_thunk): Update. 29322 (output_in_order): Update. 29323 (output_weakrefs): Update. 29324 (finalize_compilation_unit): Update. 29325 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node, 29326 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node, 29327 input_node, input_varpool_node): Update. 29328 * dbxout.c (dbxout_expand_expr): Update. 29329 * cgraphclones.c (cgraph_clone_node): Update. 29330 (cgraph_copy_node_for_versioning): Update. 29331 (cgraph_materialize_clone): Update. 29332 (cgraph_materialize_all_clones): Update. 29333 * ipa-pure-const.c (analyze_function, pure_const_write_summary, 29334 propagate_pure_const, propagate_nothrow): Update. 29335 * lto-streamer-out.c (lto_output, write_symbol): Update. 29336 * ipa-utils.c (ipa_reverse_postorder): Update. 29337 * ipa-inline.c (can_inline_edge_p): Update. 29338 (update_caller_keys, ipa_inline): Update. 29339 * dwarf2out.c (reference_to_unused, 29340 premark_types_used_by_global_vars_helper): Update. 29341 * tree-eh.c (tree_could_trap_p): Update. 29342 * ipa-split.c (consider_split, execute_split_functions): Update. 29343 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p, 29344 has_addr_references_p): Update; move ahead in file for better 29345 readability. 29346 (process_references): Simplify. 29347 (symtab_remove_unreachable_nodes): Update; cleanup way function/var 29348 bodies are removed. 29349 (cgraph_comdat_can_be_unshared_p): Make static. 29350 (cgraph_externally_visible_p): Update. 29351 (varpool_externally_visible_p): Update. 29352 (function_and_variable_visibility): Update. 29353 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function, 29354 ipa_tm_mark_force_output_node): Update. 29355 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed, 29356 estimate_edge_devirt_benefit, inline_generate_summary, 29357 inline_write_summary): Update. 29358 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update. 29359 * ipa-prop.c (ipa_compute_jump_functions): Update. 29360 (ipa_print_node_params, ipa_prop_read_section, 29361 ipa_update_after_lto_read, read_replacements_section): Update. 29362 * varasm.c (mark_decl_referenced): Update. 29363 (assemble_alias, dump_tm_clone_pairs): Update. 29364 * tree-inline.c (copy_bb): Update. 29365 (estimate_num_insns, optimize_inline_calls, tree_function_versioning): 29366 Update. 29367 * symtab.c (dump_symtab_base): Print new flags. 29368 (verify_symtab_base): Verify new flags. 29369 (symtab_alias_ultimate_target): New function. 29370 * tree-ssa-structalias.c (get_constraint_for_ssa_var, 29371 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute): 29372 Update. 29373 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries): 29374 Update. 29375 * i386.c (ix86_get_function_versions_dispatcher, 29376 ix86_generate_version_dispatcher_body): Update. 29377 (fold_builtin_cpu): Use varpool_add_new_variable. 29378 * varpool.c (varpool_remove_initializer): Break out from ... 29379 (varpool_remove_node): ... this one. 29380 (dump_varpool_node, varpool_node_for_asm, 29381 cgraph_variable_initializer_availability, varpool_analyze_node, 29382 varpool_assemble_decl, varpool_remove_unreferenced_decls, 29383 varpool_finalize_named_section_flags, varpool_create_variable_alias): 29384 Update. 29385 293862013-05-29 Jan Hubicka <jh@suse.cz> 29387 29388 * passes.c (init_optimization_passes): Move OMP expansion into lowering. 29389 293902013-05-29 Easwaran Raman <eraman@google.com> 29391 29392 PR tree-optimization/57442 29393 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value 29394 when control exits the main loop. 29395 293962013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com> 29397 29398 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200, 29399 and RX600. 29400 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100. 29401 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100. 29402 * rx/t-rx: Add rx100 under multi library matches option for nofpu 29403 option. 29404 294052013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 29406 29407 PR tree-optimization/57441 29408 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace): 29409 Don't limit size of incr_vec to number of candidates. 29410 294112013-05-29 Steve Ellcey <sellcey@imgtec.com> 29412 29413 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips 29414 and mips16 directories. 29415 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16. 29416 (MULTILIB_DIRNAMES): Ditto. 29417 (MULTILIB_EXCEPTIONS): Add new exceptions. 29418 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips. 29419 (MULTILIB_DIRNAMES): Ditto. 29420 (MULTILIB_EXCEPTIONS): Add new exceptions. 29421 294222012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com> 29423 Marcus Shawcroft <marcus.shawcroft@arm.com> 29424 29425 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define 29426 SYMBOL_TINY_ABSOLUTE. 29427 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle 29428 SYMBOL_TINY_ABSOLUTE. 29429 (aarch64_expand_mov_immediate): Likewise. 29430 (aarch64_classify_symbol): Likewise. 29431 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED. 29432 Permit SYMBOL_TINY_ABSOLUTE. 29433 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST. 29434 294352013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com> 29436 Marcus Shawcroft <marcus.shawcroft@arm.com> 29437 29438 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment. 29439 Refactor if/switch. Replace gcc_assert with if. 29440 294412013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> 29442 29443 * config/i386/i386.c (initial_ix86_tune_features): Enable 29444 FP Reassociation for AMD bdver1 and bdver2. 29445 294462013-05-29 Martin Jambor <mjambor@suse.cz> 29447 29448 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR 29449 and IMAGPART_EXPR do not occur within other handled_components. 29450 294512013-05-29 Richard Biener <rguenther@suse.de> 29452 29453 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo 29454 access on whether the use is in the BB we currently try to 29455 vectorize. 29456 (vect_bb_vectorization_profitable_p): Pass the BB we currently 29457 vectorize to vect_bb_slp_scalar_cost. 29458 294592013-05-29 Richard Biener <rguenther@suse.de> 29460 29461 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function 29462 computing scalar cost offsetted by stmts that are kept live 29463 by scalar uses. 29464 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost 29465 for computation of scalar cost. 29466 294672013-05-28 Steve Ellcey <sellcey@mips.com> 29468 29469 * config/mips/mips-cpus.def (mips32r2): Change processor type. 29470 294712013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com> 29472 29473 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus 29474 array notation built-in reduction functions. 29475 * doc/passes.texi (Passes): Added documentation about changes done 29476 for Cilk Plus. 29477 * doc/invoke.texi (C Dialect Options): Added documentation about 29478 the -fcilkplus flag. 29479 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o. 29480 (BUILTINS_DEF): Depend on cilkplus.def. 29481 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN. 29482 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR. 29483 * cilkplus.def: New file. 29484 294852013-05-28 Joern Rennecke <joern.rennecke@embecosm.com> 29486 29487 PR rtl-optimization/57439 29488 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common. 29489 294902013-05-28 Easwaran Raman <eraman@google.com> 29491 29492 PR tree-optimization/57337 29493 * tree-ssa-reassoc.c (appears_later_in_bb): New function. 29494 (find_insert_point): Correctly identify the insertion point 29495 when two statements with the same UID is compared. 29496 294972013-05-28 Richard Biener <rguenther@suse.de> 29498 29499 PR tree-optimization/56787 29500 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers 29501 from the list of data references. 29502 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip 29503 clobbers. 29504 (vect_analyze_loop_operations): Likewise. 29505 (vect_transform_loop): Remove clobbers. 29506 295072013-05-28 Martin Jambor <mjambor@suse.cz> 29508 29509 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs 29510 and REALPART_EXPRs have scalar type. 29511 295122013-05-28 Richard Biener <rguenther@suse.de> 29513 29514 PR tree-optimization/57411 29515 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate 29516 virtual operands. 29517 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case 29518 virtual operand propagation. 29519 295202013-05-28 Eric Botcazou <ebotcazou@adacore.com> 29521 29522 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as 29523 destination register for bmasksi_vis. 29524 (vector_init_bshuffle): Likewise. 29525 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise. 29526 295272013-05-28 Eric Botcazou <ebotcazou@adacore.com> 29528 29529 * doc/invoke.texi (SPARC Options): Document -mfix-ut699. 29530 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the 29531 mode if the instruction isn't available in the original mode. 29532 * config/sparc/sparc.opt (mfix-ut699): New option. 29533 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699. 29534 (divdf3): Turn into expander. 29535 (divdf3_nofix): New insn. 29536 (divdf3_fix): Likewise. 29537 (divsf3): Disable if -mfix-ut699. 29538 (sqrtdf2): Turn into expander. 29539 (sqrtdf2_nofix): New insn. 29540 (sqrtdf2_fix): Likewise. 29541 (sqrtsf2): Disable if -mfix-ut699. 29542 295432013-05-27 Richard Biener <rguenther@suse.de> 29544 29545 PR middle-end/57412 29546 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch 29547 block for the new loop. 29548 295492013-05-27 Richard Biener <rguenther@suse.de> 29550 29551 PR tree-optimization/57343 29552 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not 29553 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED. 29554 (number_of_iterations_cond): Do not build the folded tree. 29555 295562013-05-27 Richard Biener <rguenther@suse.de> 29557 29558 Revert 29559 PR middle-end/57381 29560 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with 29561 OEP_CONSTANT_ADDRESS_OF retained. 29562 29563 PR tree-optimization/57417 29564 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test 29565 for unchanged base. 29566 (set_ssa_val_to): Compare addresses using 29567 get_addr_base_and_unit_offset. 29568 295692013-05-27 Joern Rennecke <joern.rennecke@embecosm.com> 29570 29571 PR rtl-optimization/56833 29572 * postreload.c (move2add_record_mode): New function. 29573 (move2add_record_sym_value, move2add_valid_value_p): Likewise. 29574 (move2add_use_add2_insn): Use move2add_record_sym_value. 29575 (move2add_use_add3_insn): Likewise. 29576 (reload_cse_move2add): Use move2add_valid_value_p and 29577 move2add_record_mode. Invalidate call-clobbered and REG_INC 29578 affected regs by setting reg_mode to VOIDmode. 29579 (move2add_note_store): Don't pretend the inside of a SUBREG is 29580 the actual destination. Invalidate single/leading registers by 29581 setting reg_mode to VOIDmode. 29582 Use move2add_record_sym_value, move2add_valid_value_p and 29583 move2add_record_mode. 29584 295852013-05-27 Richard Biener <rguenther@suse.de> 29586 29587 PR tree-optimization/57396 29588 * tree-affine.c (double_int_constant_multiple_p): Properly 29589 return false for val == 0 and div != 0. 29590 295912013-05-25 Richard Sandiford <rdsandiford@googlemail.com> 29592 29593 * config/mips/mips.h: Use #elif in preprocessor conditions. 29594 295952013-05-25 Richard Sandiford <rdsandiford@googlemail.com> 29596 29597 PR target/53916 29598 * config/mips/constraints.md (kl): New constraint. 29599 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete. 29600 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the 29601 constraint for operand 0. Split after CSE for MIPS16. Emit a move 29602 from LO for MIPS16. 29603 (udivmod<mode>4_internal): Likewise udivmod<mode>4. 29604 296052013-05-25 Richard Sandiford <rdsandiford@googlemail.com> 29606 29607 PR target/55777 29608 * config/mips/mips.c (mips_can_inline_p): New function. 29609 (TARGET_CAN_INLINE_P): Define. 29610 296112013-05-25 Steven Bosscher <steven@gcc.gnu.org> 29612 29613 * sched-int.h (ds_t, dw_t): Make unsigned int. 29614 Fix documentation that describes how all the ds_t bits are used. 29615 Reserve the last bit for delayed-branch scheduling. 29616 (BITS_PER_DEP_STATUS): Move to ds_t typedef. 29617 (BITS_PER_DEP_WEAK): Fix definition and documentation. 29618 (gen_dep_weak_1): Remove prototype. 29619 * sched-deps.c (get_dep_weak_1): Make static. 29620 * target.def (speculate_insn, needs_block_p, gen_spec_check, 29621 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes. 29622 * doc/tm.texi: Regenerate. 29623 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype. 29624 296252013-05-24 Steven Bosscher <steven@gcc.gnu.org> 29626 29627 PR debug/56950 29628 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs. 29629 296302013-05-24 Nathan Sidwell <nathan@codesourcery.com> 29631 Sandra Loosemore <sandra@codesourcery.com> 29632 29633 * config.gcc (powerpc-*): Allow native for with-cpu. 29634 296352013-05-24 Jeff Law <law@redhat.com> 29636 29637 PR tree-optimization/57124 29638 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a 29639 conversion feeding a condition if the range has an overflow 29640 if -fstrict-overflow. Add warnings for when we do make the 29641 transformation. 29642 296432013-05-24 Dehao Chen <dehao@google.com> 29644 29645 * tree-cfg.c (locus_discrim_map): Fix the typo. 29646 (locus_discrim_hasher): Likewise. 29647 (locus_discrim_hasher::hash): Likewise. 29648 (locus_discrim_hasher::equal): Likewise. 29649 296502013-05-24 Martin Jambor <mjambor@suse.cz> 29651 29652 PR tree-optimization/57294 29653 * cgraph.h (ipa_record_stmt_references): Declare. 29654 * cgraphbuild.c (ipa_record_stmt_references): New function. 29655 (build_cgraph_edges): Use ipa_record_stmt_references. 29656 (rebuild_cgraph_edges): Likewise. 29657 (cgraph_rebuild_references): Likewise. 29658 * ipa-prop.c (ipa_modify_call_arguments): Discard references 29659 associated with the old statement and build references from the 29660 newly built statements. 29661 * ipa-ref.c (ipa_remove_stmt_references): New function. 29662 * ipa-ref.h (ipa_remove_stmt_references): Declare. 29663 296642013-05-24 Vladimir Makarov <vmakarov@redhat.com> 29665 29666 * lra-constraints.c (emit_spill_move): Use smaller mode for 29667 mem-mem moves. 29668 (check_and_process_move): Consider mem-reg moves for secondary 29669 too. 29670 (curr_insn_transform): Don't lose insns emitted before for 29671 secondary memory moves. 29672 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a 29673 reg set up in the current insn. 29674 296752013-05-24 Dehao Chen <dehao@google.com> 29676 29677 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator 29678 hash function. 29679 (locus_descrim_hasher::equal): Likewise. 29680 (build_gimple_cfg): New discriminator assignment algorithm. 29681 (make_edges): Likewise. 29682 (next_discriminator_for_locus): Likewise. 29683 (same_line_p): Likewise. 29684 (assign_discriminators): Likewise. 29685 (make_cond_expr_edges): Likewise. 29686 (make_gimple_switch_edges): Likewise. 29687 (make_goto_expr_edges): Likewise. 29688 (make_gimple_asm_edges): Likewise. 29689 296902013-05-24 Ian Bolton <ian.bolton@arm.com> 29691 29692 * config/aarch64/aarch64.c (aarch64_print_operand): Change the 29693 X format specifier to only display bottom 16 bits. 29694 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of 29695 immediate to match for operand 2, since it will be masked. 29696 296972013-05-24 Richard Biener <rguenther@suse.de> 29698 29699 PR tree-optimization/57287 29700 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard 29701 all SSA names that occur in abnormal PHIs. 29702 297032013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com> 29704 29705 PR tree-ssa/57385 29706 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check 29707 that index is not negative. 29708 297092013-05-24 Eric Botcazou <ebotcazou@adacore.com> 29710 29711 PR rtl-optimization/55177 29712 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP. 29713 (simplify_byte_swapping_operation): New. 29714 (simplify_binary_operation_1): Call it for AND, IOR and XOR. 29715 (simplify_relational_operation_1): Deal with BSWAP. 29716 297172013-05-23 Richard Henderson <rth@redhat.com> 29718 29719 PR target/56742 29720 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New. 29721 (ix86_reorg): Call it. 29722 297232013-05-23 Uros Bizjak <ubizjak@gmail.com> 29724 29725 PR target/57379 29726 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE. 29727 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct 29728 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec. 29729 297302013-05-23 Christian Bruel <christian.bruel@st.com> 29731 29732 PR debug/57351 29733 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number. 29734 297352013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com> 29736 Marcus Shawcroft <marcus.shawcroft@arm.com> 29737 29738 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S. 29739 * config/aarch64/constraints.md (Usa): Remove. 29740 * doc/md.texi (AArch64 Usa): Remove. 29741 297422013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com> 29743 Marcus Shawcroft <marcus.shawcroft@arm.com> 29744 29745 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define. 29746 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define. 29747 * config/aarch64/predicates.md (aarch64_const_address): Remove. 29748 (aarch64_mov_operand): Use aarch64_mov_operand_p. 29749 297502013-05-23 Vidya Praveen <vidyapraveen@arm.com> 29751 29752 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ 29753 instruction (AdvSIMD). 29754 * config/aarch64/aarch64-builtins.c 29755 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ. 29756 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ. 29757 297582013-05-23 Martin Jambor <mjambor@suse.cz> 29759 29760 PR middle-end/57347 29761 * tree.h (contains_bitfld_component_ref_p): Declare. 29762 * tree-sra.c (contains_bitfld_comp_ref_p): Move... 29763 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its 29764 caller. 29765 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does 29766 not access a bit-field. Assert all final offsets are byte-aligned. 29767 297682013-05-23 Richard Biener <rguenther@suse.de> 29769 29770 PR tree-optimization/57380 29771 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at 29772 least one invariant or re-used load. 29773 * passes.c (init_optimization_passes): Move pass_phiprop before 29774 pass_forwprop. 29775 297762013-05-23 James Greenhalgh <james.greenhalgh@arm.com> 29777 29778 * config/aarch64/aarch64-simd.md 29779 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern. 29780 297812013-05-23 Richard Biener <rguenther@suse.de> 29782 29783 PR middle-end/57381 29784 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with 29785 OEP_CONSTANT_ADDRESS_OF retained. 29786 297872013-05-23 Jakub Jelinek <jakub@redhat.com> 29788 29789 PR middle-end/57344 29790 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG, 29791 don't lower unit. Handle unit not being always BITS_PER_WORD. 29792 297932013-05-23 Richard Biener <rguenther@suse.de> 29794 29795 PR rtl-optimization/57341 29796 * ira.c (validate_equiv_mem_from_store): Use anti_dependence 29797 instead of true_dependence. 29798 297992013-05-22 David Malcolm <dmalcolm@redhat.com> 29800 29801 * bb-reorder.c (branch_threshold): Make const. 29802 (exec_threshold): Ditto. 29803 298042013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com> 29805 Pat Haugen <pthaugen@us.ibm.com> 29806 Peter Bergner <bergner@vnet.ibm.com> 29807 29808 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add 29809 documentation for the power8 crypto builtins. 29810 29811 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md. 29812 29813 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support 29814 macros for defining power8 builtin functions. 29815 (BU_P8V_AV_2): Likewise. 29816 (BU_P8V_AV_P): Likewise. 29817 (BU_P8V_VSX_1): Likewise. 29818 (BU_P8V_OVERLOAD_1): Likewise. 29819 (BU_P8V_OVERLOAD_2): Likewise. 29820 (BU_CRYPTO_1): Likewise. 29821 (BU_CRYPTO_2): Likewise. 29822 (BU_CRYPTO_3): Likewise. 29823 (BU_CRYPTO_OVERLOAD_1): Likewise. 29824 (BU_CRYPTO_OVERLOAD_2): Likewise. 29825 (XSCVSPDP): Fix typo, point to the correct instruction. 29826 (VCIPHER): Add power8 crypto builtins. 29827 (VCIPHERLAST): Likewise. 29828 (VNCIPHER): Likewise. 29829 (VNCIPHERLAST): Likewise. 29830 (VPMSUMB): Likewise. 29831 (VPMSUMH): Likewise. 29832 (VPMSUMW): Likewise. 29833 (VPERMXOR_V2DI): Likewise. 29834 (VPERMXOR_V4SI: Likewise. 29835 (VPERMXOR_V8HI: Likewise. 29836 (VPERMXOR_V16QI: Likewise. 29837 (VSHASIGMAW): Likewise. 29838 (VSHASIGMAD): Likewise. 29839 (VPMSUM): Likewise. 29840 (VPERMXOR): Likewise. 29841 (VSHASIGMA): Likewise. 29842 29843 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define 29844 __CRYPTO__ if the crypto instructions are available. 29845 (altivec_overloaded_builtins): Add support for overloaded power8 29846 builtins. 29847 29848 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add 29849 support for power8 crypto builtins. 29850 (builtin_function_type): Likewise. 29851 (altivec_init_builtins): Add support for builtins that take vector 29852 long long (V2DI) arguments. 29853 29854 * config/rs6000/crypto.md: New file, define power8 crypto 29855 instructions. 29856 298572013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com> 29858 Pat Haugen <pthaugen@us.ibm.com> 29859 Peter Bergner <bergner@vnet.ibm.com> 29860 29861 * doc/invoke.texi (Option Summary): Add power8 options. 29862 (RS/6000 and PowerPC Options): Likewise. 29863 29864 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use 29865 constraints.md instead of rs6000.h. Reorder w* constraints. Add 29866 wm, wn, wr documentation. 29867 29868 * config/rs6000/constraints.md (wm): New constraint for VSX 29869 registers if direct move instructions are enabled. 29870 (wn): New constraint for no registers. 29871 (wq): New constraint for quad word even GPR registers. 29872 (wr): New constraint if 64-bit instructions are enabled. 29873 (wv): New constraint if power8 vector instructions are enabled. 29874 (wQ): New constraint for quad word memory locations. 29875 29876 * config/rs6000/predicates.md (const_0_to_15_operand): New 29877 constraint for 0..15 for crypto instructions. 29878 (gpc_reg_operand): If VSX allow registers in VSX registers as well 29879 as GPR and floating point registers. 29880 (int_reg_operand): New predicate to match only GPR registers. 29881 (base_reg_operand): New predicate to match base registers. 29882 (quad_int_reg_operand): New predicate to match even GPR registers 29883 for quad memory operations. 29884 (vsx_reg_or_cint_operand): New predicate to allow vector logical 29885 operations in both GPR and VSX registers. 29886 (quad_memory_operand): New predicate for quad memory operations. 29887 (reg_or_indexed_operand): New predicate for direct move support. 29888 29889 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): 29890 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS. 29891 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8). 29892 (POWERPC_MASKS): Add power8 options. 29893 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the 29894 various options. 29895 29896 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): 29897 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8. 29898 29899 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation. 29900 (-mpower8-fusion): New power8 options. 29901 (-mpower8-fusion-sign): Likewise. 29902 (-mpower8-vector): Likewise. 29903 (-mcrypto): Likewise. 29904 (-mdirect-move): Likewise. 29905 (-mquad-memory): Likewise. 29906 29907 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8. 29908 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR 29909 registers. 29910 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg. 29911 (rs6000_debug_vector_unit): Add p8_vector. 29912 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint 29913 definitions. Also print fusion state. 29914 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints. 29915 (rs6000_builtin_mask_calculate): Add power8 builtin support. 29916 (rs6000_option_override_internal): Add support for power8. 29917 (rs6000_common_init_builtins): Add debugging for skipped builtins 29918 if -mdebug=builtin. 29919 (rs6000_adjust_cost): Add power8 support. 29920 (rs6000_issue_rate): Likewise. 29921 (insn_must_be_first_in_group): Likewise. 29922 (insn_must_be_last_in_group): Likewise. 29923 (force_new_group): Likewise. 29924 (rs6000_register_move_cost): Likewise. 29925 (rs6000_opt_masks): Likewise. 29926 29927 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a 29928 power8 capable assembler, default to power7 options. 29929 (TARGET_DIRECT_MOVE): Likewise. 29930 (TARGET_CRYPTO): Likewise. 29931 (TARGET_P8_VECTOR): Likewise. 29932 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support. 29933 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise. 29934 (VECTOR_MEM_P8_VECTOR_P): Likewise. 29935 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise. 29936 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise. 29937 (TARGET_XSCVDPSPN): Likewise. 29938 (TARGET_XSCVSPDPN): Likewsie. 29939 (TARGET_SYNC_HI_QI): Likewise. 29940 (TARGET_SYNC_TI): Likewise. 29941 (MASK_CRYPTO): Likewise. 29942 (MASK_DIRECT_MOVE): Likewise. 29943 (MASK_P8_FUSION): Likewise. 29944 (MASK_P8_VECTOR): Likewise. 29945 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode 29946 temporary used by some of the direct move instructions to get two FP 29947 temporary registers does not force creation of a stack frame. 29948 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs. 29949 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so 29950 that any VSX registers are tieable, even if they are also an 29951 Altivec vector mode. 29952 (r6000_reg_class_enum): Add wm, wr, wv constraints. 29953 (RS6000_BTM_P8_VECTOR): Power8 builtin support. 29954 (RS6000_BTM_CRYPTO): Likewise. 29955 (RS6000_BTM_COMMON): Likewise. 29956 29957 * config/rs6000/rs6000.md (cpu attribute): Add power8. 29958 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise. 29959 (enum rs6000_vector): Add power8 vector support. 29960 299612013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 29962 29963 PR target/19599 29964 PR target/57340 29965 * config/arm/arm.c (any_sibcall_uses_r3): Rename to .. 29966 (any_sibcall_could_use_r3): this and handle indirect calls. 29967 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3. 29968 299692013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 29970 29971 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define. 29972 299732013-05-22 Richard Biener <rguenther@suse.de> 29974 29975 PR middle-end/57349 29976 * profile.c (branch_prob): Do not split blocks that are 29977 abnormally receiving from ECF_RETURNS_TWICE functions. 29978 299792013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com> 29980 29981 * recog.c (offsettable_address_addr_space_p): Fix calculation of 29982 address mode. Move pointer mode initialization to the same place. 29983 299842013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 29985 29986 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators 29987 while it has any effect. 29988 299892013-05-21 Easwaran Raman <eraman@google.com> 29990 29991 PR tree-optimization/57322 29992 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the 29993 UID of the statement added to the BB to be 1. 29994 299952013-05-21 Jakub Jelinek <jakub@redhat.com> 29996 29997 PR tree-optimization/57331 29998 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison 29999 of conversion from pointer type to integral type with integer. 30000 300012013-05-21 Martin Jambor <mjambor@suse.cz> 30002 30003 PR lto/57289 30004 * ipa-prop.c (ipa_read_node_info): Process param_used and 30005 controlled_uses in the same order as when writing. 30006 300072013-05-21 Magnus Granberg <baldrick@free.fr> 30008 30009 PR plugins/56754 30010 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H). 30011 300122013-05-21 Richard Biener <rguenther@suse.de> 30013 30014 PR tree-optimization/57318 30015 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not 30016 estimate stmts with side-effects as likely eliminated. 30017 300182013-05-21 Richard Biener <rguenther@suse.de> 30019 30020 PR tree-optimization/57330 30021 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly 30022 preserve the call stmts fntype. 30023 300242013-05-21 Richard Biener <rguenther@suse.de> 30025 30026 PR tree-optimization/57303 30027 * tree-ssa-sink.c (statement_sink_location): Improve killing 30028 stmt detection and properly handle self-assignments. 30029 300302013-05-21 Christian Bruel <christian.bruel@st.com> 30031 30032 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for 30033 spanning registers. LEAF_REG_REMAP is supported only for contiguous 30034 registers. Set register size out of the PARALLEL loop. 30035 300362013-05-20 Oleg Endo <olegendo@gcc.gnu.org> 30037 30038 PR target/56547 30039 * config/sh/sh.md (fmasf4): Remove empty constraints strings. 30040 (*fmasf4, *fmasf4_media): New insns. 30041 300422013-05-19 Richard Sandiford <rdsandiford@googlemail.com> 30043 30044 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros. 30045 * config/mips/mips.c (mips_symbol_insns, mips_address_insns) 30046 (mips_const_insns, mips_split_const_insns, mips_load_store_insns) 30047 (mips_idiv_insns): Update the comments to say that the returned 30048 instruction counts are in units of BASE_INSN_LENGTH. 30049 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns 30050 by BASE_INSN_LENGTH rather than 4. Add the jump separately, 30051 using 2 rather than 4 as the length of indirect MIPS16 and 30052 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the 30053 length of a NOP. Don't divide MIPS16 lengths by 2. 30054 (mips16_split_long_branches): Assume a branch is long if the 30055 length is greater than 4 rather than 8. 30056 * config/mips/mips.md (length): Give MIPS16 lengths directly, 30057 rather than multiplying them by 2. Multiply instruction counts 30058 by BASE_INSN_LENGTH rather than 4. 30059 (*jump_mips16, tls_get_tp_mips16_<mode>) 30060 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2. 30061 300622013-05-19 Richard Sandiford <rdsandiford@googlemail.com> 30063 30064 * config/mips/mips.md (extended_mips16): Remove branch case. 30065 (length): Remove duplicated extended_mips16 test. 30066 300672013-05-19 Richard Sandiford <rdsandiford@googlemail.com> 30068 30069 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs. 30070 300712013-05-18 Richard Sandiford <rdsandiford@googlemail.com> 30072 30073 * recog.h (Recog_data): Rename to... 30074 (recog_data_d): ...this. 30075 (recog_data): Update accordingly. 30076 * recog.c (recog_data): Likewise. 30077 * reload.c (save_recog_data): Likewise. 30078 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise. 30079 (picochip_save_recog_data, picochip_restore_recog_data): Likewise. 30080 300812013-05-17 Julian Brown <julian@codesourcery.com> 30082 30083 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is 30084 found in a REG_EQUAL note, invalidate it. 30085 300862013-05-17 Easwaran Raman <eraman@google.com> 30087 30088 * tree-ssa-reassoc.c (find_insert_point): New function. 30089 (insert_stmt_after): Likewise. 30090 (get_def_stmt): Likewise. 30091 (ensure_ops_are_available): Likewise. 30092 (not_dominated_by): Likewise. 30093 (rewrite_expr_tree): Do not move statements beyond what is 30094 necessary. Remove call to swap_ops_for_binary_stmt... 30095 (reassociate_bb): ... and move it here. 30096 (build_and_add_sum): Assign UIDs for new statements. 30097 (linearize_expr): Likewise. 30098 (do_reassoc): Renumber gimple statement UIDs. 30099 301002013-05-17 Jan Hubicka <jh@suse.cz> 30101 30102 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module 30103 weakrefs. 30104 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias. 30105 * cgraphunit.c (handle_alias_pairs): Store target of unresolved 30106 weakrefs. 30107 (output_weakrefs): Update. 30108 301092013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu> 30110 Martin Jambor <mjambor@suse.cz> 30111 30112 PR middle-end/57276 30113 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a 30114 value that corresponds to the given aggval is found in values vector. 30115 301162013-05-17 Uros Bizjak <ubizjak@gmail.com> 30117 30118 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow, 30119 sse, sse2, sse3, ssse3 and sse4a flags to options. 30120 301212013-05-17 David Malcolm <dmalcolm@redhat.com> 30122 30123 * gengtype-state.c: (s_expr_writer): New class, to handle 30124 prettifying of output layout of s-expressions. 30125 (state_writer): New class, to write out gtype.state. 30126 (state_written_type_count): Move this variable into member data of 30127 state_writer. 30128 (s_expr_writer::s_expr_writer): New code: constructor for new class 30129 (state_writer::state_writer(): ditto 30130 (s_expr_writer::write_new_line): New function 30131 (s_expr_writer::write_any_indent): ditto 30132 (s_expr_writer::begin_s_expr): ditto 30133 (s_expr_writer::end_s_expr): ditto 30134 (write_state_fileloc): convert to method of state_writer... 30135 (state_writer:: write_state_fileloc): ...and use methods of 30136 s_expr_writer to write indentation into the gtype.state output file 30137 to visually represent the hierarchical structure of the list 30138 structures 30139 (write_state_fields): ditto, renaming to... 30140 (state_writer::write_state_fields) 30141 (write_state_a_string): ditto, renaming to... 30142 (state_writer::write_state_a_string) 30143 (write_state_string_option): ditto, renaming to... 30144 (state_writer::write_state_string_option) 30145 (write_state_type_option): ditto, renaming to... 30146 (state_writer::write_state_type_option) 30147 (write_state_nested_option): ditto, renaming to... 30148 (state_writer::write_state_nested_option) 30149 (write_state_option): ditto, renaming to... 30150 (state_writer::write_state_option) 30151 (write_state_options): ditto, renaming to... 30152 (state_writer::write_state_options) 30153 (write_state_lang_bitmap): ditto, renaming to... 30154 (state_writer::write_state_lang_bitmap) 30155 (write_state_version): ditto, renaming to... 30156 (state_writer::write_state_version) 30157 (write_state_scalar_type): ditto, renaming to... 30158 (state_writer::write_state_scalar_type) 30159 (write_state_string_type): ditto, renaming to... 30160 (state_writer::write_state_string_type) 30161 (write_state_undefined_type): ditto, renaming to... 30162 (state_writer::write_state_undefined_type) 30163 (write_state_struct_union_type): ditto, renaming to... 30164 (state_writer::write_state_struct_union_type) 30165 (write_state_struct_type): ditto, renaming to... 30166 (state_writer::write_state_struct_type) 30167 (write_state_user_struct_type): ditto, renaming to... 30168 (state_writer::write_state_user_struct_type) 30169 (write_state_lang_struct_type): ditto, renaming to... 30170 (state_writer::write_state_lang_struct_type) 30171 (write_state_param_struct_type): ditto, renaming to... 30172 (state_writer::write_state_param_struct_type) 30173 (write_state_pointer_type): ditto, renaming to... 30174 (state_writer::write_state_pointer_type) 30175 (write_state_array_type): ditto, renaming to... 30176 (state_writer::write_state_array_type) 30177 (write_state_gc_used): ditto, renaming to... 30178 (state_writer::write_state_gc_used) 30179 (write_state_common_type_content): ditto, renaming to... 30180 (state_writer::write_state_common_type_content) 30181 (write_state_type): ditto, renaming to... 30182 (state_writer::write_state_type) 30183 (write_state_pair_list): ditto, renaming to... 30184 (state_writer::write_state_pair_list) 30185 (write_state_pair): ditto, renaming to... 30186 (state_writer::write_state_pair) 30187 (write_state_typedefs): ditto, renaming to... 30188 (state_writer::write_state_typedefs) 30189 (write_state_structures): ditto, renaming to... 30190 (state_writer::write_state_structures) 30191 (write_state_param_structs): ditto, renaming to... 30192 (state_writer::write_state_param_structs) 30193 (write_state_variables): ditto, renaming to... 30194 (state_writer::write_state_variables) 30195 (write_state_srcdir): ditto, renaming to... 30196 (state_writer::write_state_srcdir) 30197 (write_state_files_list): ditto, renaming to... 30198 (state_writer::write_state_files_list) 30199 (write_state_languages): ditto, renaming to... 30200 (state_writer::write_state_languages) 30201 (write_state): create a state_writer instance and use it when 30202 writing out the state file 30203 302042013-05-17 Mike Stump <mikestump@comcast.net> 30205 30206 PR rtl-optimization/57304 30207 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before 30208 accessing DF_REF_REAL_LOC. 30209 302102013-05-17 Jakub Jelinek <jakub@redhat.com> 30211 30212 PR rtl-optimization/57281 30213 PR rtl-optimization/57300 30214 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove. 30215 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo 30216 what the other splitter did if the registers are dead. 30217 302182013-05-17 Richard Biener <rguenther@suse.de> 30219 30220 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare 30221 MEM_REF offsets. 30222 302232013-05-17 Jakub Jelinek <jakub@redhat.com> 30224 30225 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread 30226 linking. 30227 302282013-05-17 Marek Polacek <polacek@redhat.com> 30229 30230 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached 30231 length when doing non-zero store of storing '\0' to '\0'. 30232 302332013-05-17 Jakub Jelinek <jakub@redhat.com> 30234 30235 * tree-vect-patterns.c (vect_recog_rotate_pattern): For 30236 vect_external_def oprnd1 with loop_vinfo, try to emit 30237 optional cast, negation and and stmts on the loop preheader 30238 edge instead of into the pattern def seq. 30239 30240 PR tree-optimization/57051 30241 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR, 30242 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling. 30243 302442013-05-16 Nick Clifton <nickc@redhat.com> 30245 30246 * config/rl78/rl78.c (rl78_attribute_table): Add naked. 30247 (rl78_is_naked_func): New function. 30248 (rl78_expand_prologue): Skip prologue generation for naked functions. 30249 (rl78_expand_epilogue): Skip epilogue generation for naked functions. 30250 * doc/extend.texi (naked): Add RL78 to the list of processors 30251 that supports this attribute. 30252 302532013-05-16 Jeff Law <law@redhat.com> 30254 30255 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H). 30256 302572013-05-16 Uros Bizjak <ubizjak@gmail.com> 30258 30259 * config/i386/driver-i386.c (host_detect_local_cpu): Determine 30260 cache parameters using detect_caches_amd also for CYRIX, 30261 NSC and TM2 signatures. 30262 302632013-05-16 Uros Bizjak <ubizjak@gmail.com> 30264 Dzianis Kahanovich <mahatma@eu.by> 30265 30266 PR target/45359 30267 PR target/46396 30268 * config/i386/driver-i386.c (host_detect_local_cpu): Detect 30269 VIA/Centaur processors and determine their cache parameters 30270 using detect_caches_amd. 30271 302722013-05-16 Teresa Johnson <tejohnson@google.com> 30273 30274 * cfgrtl.c (verify_hot_cold_block_grouping): Return err. 30275 (rtl_verify_edges): New function. 30276 (rtl_verify_bb_insns): Ditto. 30277 (rtl_verify_bb_pointers): Ditto. 30278 (rtl_verify_bb_insn_chain): Ditto. 30279 (rtl_verify_fallthru): Ditto. 30280 (rtl_verify_bb_layout): Ditto. 30281 (rtl_verify_flow_info_1): Outline checks into new functions. 30282 (rtl_verify_flow_info): Ditto. 30283 302842013-05-16 Steve Ellcey <sellcey@imgtec.com> 30285 30286 * cfghooks.c (copy_bbs): Add update_dominance argument. 30287 * cfghooks.h (copy_bbs): Update prototype. 30288 * tree-cfg.c (gimple_duplicate_sese_region): 30289 Add update_dominance argument. 30290 * tree-flow.h (gimple_duplicate_sese_region): Update prototype. 30291 * tree-ssa-loop-ch.c (copy_loop_headers): Update 30292 gimple_duplicate_sese_region call. 30293 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): 30294 Update copy_bbs call. 30295 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto. 30296 * trans-mem.c (ipa_uninstrument_transaction): Ditto. 30297 302982013-05-16 Jakub Jelinek <jakub@redhat.com> 30299 30300 * tree-vectorizer.h (NUM_PATTERNS): Increment. 30301 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add 30302 vect_recog_rotate_pattern. 30303 (vect_recog_rotate_pattern): New function. 30304 303052013-05-16 Jason Merrill <jason@redhat.com> 30306 30307 * Makefile.in (LLINKER): New variable. 30308 (mostlyclean): Remove link mutex. 30309 * configure.ac: Handle --enable-link-mutex. 30310 * lock-and-run.sh: New script. 30311 303122013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 30313 30314 PR target/19599 30315 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check 30316 for NULL decl. 30317 303182013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 30319 30320 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0. 30321 303222013-05-16 Greta Yorsh <Greta.Yorsh@arm.com> 30323 30324 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration. 30325 * config/arm/arm.c (next_consecutive_mem): New function. 30326 (gen_movmem_ldrd_strd): Likewise. 30327 * config/arm/arm.md (movmemqi): Update condition and code. 30328 (unaligned_loaddi, unaligned_storedi): New patterns. 30329 303302013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 30331 30332 * config.gcc: Obsolete *-*-solaris2.9*. 30333 * doc/install.texi (Specific, *-*-solaris2*): Document it. 30334 303352013-05-16 Richard Biener <rguenther@suse.de> 30336 30337 * passes.c (init_optimization_passes): Move pass_parallelize_loops 30338 earlier, after GRAPHITE transforms and IV canonicalization. 30339 303402013-05-16 Jakub Jelinek <jakub@redhat.com> 30341 30342 * omp-low.c (extract_omp_for_data): For collapsed loops, 30343 if at least one of the loops is known at compile time to 30344 iterate zero times, set count to 0. 30345 (expand_omp_regimplify_p): New function. 30346 (expand_omp_for_generic): For collapsed loops, if at least 30347 one of the loops isn't known to iterate at least once, 30348 add runtime check with setting count to 0. 30349 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): 30350 For unsigned types if it isn't known at compile time that 30351 the loop will iterate at least once, add runtime check to bypass 30352 the whole loop if initial condition isn't true. 30353 303542013-05-16 Nathan Sidwell <nathan@codesourcery.com> 30355 30356 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p. 30357 303582013-05-16 Marc Glisse <marc.glisse@inria.fr> 30359 30360 PR middle-end/57286 30361 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some 30362 transformations to avoid an infinite loop. 30363 303642013-05-16 Marek Polacek <polacek@redhat.com> 30365 30366 * tree-scalar-evolution.c (scev_const_prop): Add more dumps. 30367 303682013-05-15 Leif Ekblad <leif@rdos.net> 30369 30370 * config/i386/i386.c (ix86_decompose_address): Use 30371 DEFAULT_TLS_SEG_REG to access TLS segment register. 30372 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define. 30373 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto. 30374 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto. 30375 303762013-05-15 Richard Sandiford <rdsandiford@googlemail.com> 30377 30378 PR target/57260 30379 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow 30380 sibling calls to functions that would normally be lazily bound, 30381 unless $gp is call-clobbered. 30382 303832013-05-15 Uros Bizjak <ubizjak@gmail.com> 30384 30385 * config/i386/i386.c (ix86_option_override_internal): Update 30386 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add 30387 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on 30388 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets. 30389 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead 30390 of TARGET_3DNOW. 30391 (*prefetch_3dnow): Enable for TARGET_PRFCHW only. 30392 303932013-05-15 Andreas Schwab <schwab@suse.de> 30394 30395 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name 30396 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing 30397 third operand. 30398 303992013-05-15 Teresa Johnson <tejohnson@google.com> 30400 30401 * loop-unroll.c (report_unroll_peel): Check decision before 30402 emitting unroll/peel message. 30403 304042013-05-15 Teresa Johnson <tejohnson@google.com> 30405 30406 * function.h (has_bb_partition): New rtl_data flag. 30407 (bb_reorder_complete): Ditto. 30408 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition 30409 instead of flag_reorder_blocks_and_partition. 30410 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c, 30411 with some enhancements. 30412 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping. 30413 * bb-reorder.c (connect_traces): Check for has_bb_partition 30414 instead of flag_reorder_blocks_and_partition. 30415 (verify_hot_cold_block_grouping): Moved to cfgrtl.c. 30416 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to 30417 verify_hot_cold_block_grouping. 30418 (partition_hot_cold_basic_blocks): Set has_bb_partition. 30419 304202013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 30421 30422 PR target/19599 30423 * config/arm/predicates.md (call_insn_operand): New predicate. 30424 * config/arm/constraints.md ("Cs", "Ss"): New constraints. 30425 * config/arm/arm.md (*call_insn, *call_value_insn): Match only 30426 if insn is not a tail call. 30427 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through 30428 registers. 30429 * config/arm/arm.h (enum reg_class): New caller save register class. 30430 (REG_CLASS_NAMES): Likewise. 30431 (REG_CLASS_CONTENTS): Likewise. 30432 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling 30433 without decls. 30434 304352013-05-15 Richard Biener <rguenther@suse.de> 30436 30437 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead 30438 of MSG_OPTIMIZED_LOCATIONS. 30439 * tree-vect-slp.c (vect_make_slp_decision): Likewise. 30440 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS 30441 message. 30442 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead 30443 of MSG_OPTIMIZED_LOCATIONS. 30444 (execute_vect_slp): Likewise. 30445 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise. 30446 (vect_create_cond_for_alias_checks): Likewise. 30447 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise. 30448 (vect_recog_widen_mult_pattern): Likewise. 30449 (vect_recog_widen_sum_pattern): Likewise. 30450 (vect_recog_over_widening_pattern): Likewise. 30451 (vect_recog_widen_shift_pattern): Likewise. 30452 (vect_recog_vector_vector_shift_pattern): Likewise. 30453 (vect_recog_divmod_pattern): Likewise. 30454 (vect_recog_mixed_size_cond_pattern): Likewise. 30455 (vect_recog_bool_pattern): Likewise. 30456 (vect_pattern_recog_1): Likewise. 30457 304582013-05-15 Martin Jambor <mjambor@suse.cz> 30459 30460 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to 30461 non-functions to builtin_unreachable. 30462 * ipa-inline-transform.c (inline_call): Do not assert estimates were 30463 correct when new direct edges were discovered. 30464 304652013-05-15 Martin Jambor <mjambor@suse.cz> 30466 30467 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in 30468 header, print symbol order instead of node uid, print more information 30469 about indirect edge targets. 30470 (ipa_make_edge_direct_to_target): Print symbol order instead of node 30471 uids. 30472 (ipa_make_edge_direct_to_target): Likewise. 30473 (remove_described_reference): Likewise. 30474 (propagate_controlled_uses): Likewise. 30475 (ipa_print_node_params): Also print symbol order. 30476 (ipcp_transform_function): Print symbol order instead of node uids. 30477 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise. 30478 (cgraph_get_create_real_symbol_node): Likewise. 30479 * ipa-cp.c (print_lattice): Likewise. 30480 (print_all_lattices): Likewise. 30481 (determine_versionability): Likewise. 30482 (initialize_node_lattices): Likewise. 30483 (estimate_local_effects): Likewise. 30484 (update_profiling_info): Likewise. 30485 (create_specialized_node): Likewise. 30486 (perhaps_add_new_callers): Likewise. 30487 (decide_about_value): Likewise. 30488 (decide_whether_version_node): Likewise. 30489 (identify_dead_nodes): Likewise. 30490 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise. 30491 (dump_inline_summary): Likewise. 30492 (estimate_node_size_and_time): Likewise. 30493 (inline_analyze_function): Likewise. 30494 * ipa-inline.c (report_inline_failed_reason): Likewise. 30495 (want_early_inline_function_p): Likewise. 30496 (edge_badness): Likewise. 30497 (update_edge_key): Likewise. 30498 (inline_small_functions): Likewise. Add dumping of order to two other 30499 dumps. 30500 * ipa-pure-const.c (pure_const_read_summary): Print symbol order 30501 instead of node uids. 30502 (propagate_pure_const): Likewise. 30503 (propagate_pure_const): Likewise. 30504 * ipa-utils.c (dump_cgraph_node_set): Likewise. 30505 * lto-cgraph.c (input_node): Explicitly specify we dump uid. 30506 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead 30507 of node uids. 30508 * tree-pretty-print.c (dump_function_header): Likewise. 30509 * tree-sra.c (convert_callers_for_node): Dump in traditional format. 30510 Print symbol order instead of node uids. 30511 305122013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 30513 30514 * config/s390/s390.c (s390_register_move_cost): Don't impose the 30515 FPR<->GPR move cost penalty if ldgr/lgdr can be used. 30516 305172013-05-15 Richard Biener <rguenther@suse.de> 30518 30519 PR tree-optimization/57275 30520 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix 30521 return value for fail to do runtime alias checks for gather loads. 30522 305232013-05-15 Jan Hubicka <jh@suse.cz> 30524 30525 PR lto/57038 30526 PR lto/47375 30527 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol; 30528 weakrefs are not external. 30529 (lto_symtab_merge_decls): Fix thinko when dealing with 30530 non-lto_symtab decls. 30531 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p. 30532 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p. 30533 * varpool.c (dump_varpool_node): Dump more flags. 30534 305352013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> 30536 30537 * config/i386/i386.c (processor_alias_table): Add instruction 30538 FSGSBASE for AMD bdver3 architecture. 30539 305402013-05-14 Jakub Jelinek <jakub@redhat.com> 30541 30542 * tree.c (warn_deprecated_use): Print file:line using locus color. 30543 * diagnostic.c (diagnostic_report_current_module): Print file:line 30544 and file:line:column using locus color. 30545 305462013-05-14 Mike Stump <mikestump@comcast.net> 30547 30548 * gdbinit.in: Add __null. 30549 305502013-05-14 Mike Stump <mikestump@comcast.net> 30551 30552 * recog.h: Rename struct recog_data to Recog_data. 30553 * recog.c: Likewise. 30554 * reload.c (can_reload_into): Likewise. 30555 * config/picochip/picochip.c: Likewise. 30556 305572013-05-14 Mike Stump <mikestump@comcast.net> 30558 30559 * web.c (union_match_dups): Also check DF_REF_REAL_LOC. 30560 305612013-05-14 Steven Bosscher <steven@gcc.gnu.org> 30562 30563 * resource.h (struct resources): Remove unch_memory member. 30564 (CLEAR_RESOURCE): Don't clear unch_memory. 30565 * resource.c (mark_referenced_resources): Don't set it. 30566 (mark_set_resources): Likewise. 30567 (mark_target_live_regs): Don't clear it. 30568 (init_resource_info): Likewise. 30569 * reorg.c (resource_conflicts_p): Don't compare it. 30570 (redundant_insn): Don't set it. 30571 30572 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns): 30573 Remove prototypes. 30574 * emit-rtl.c (next_label): Remove unused function. 30575 (skip_consecutive_labels, link_cc0_insns): Move to ... 30576 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the 30577 only place where these functions are used, and make them static. 30578 305792013-05-14 Marc Glisse <marc.glisse@inria.fr> 30580 30581 * fold-const.c (fold_negate_expr): Handle vectors. 30582 (fold_truth_not_expr): Make it static. 30583 (fold_invert_truthvalue): New static function. 30584 (invert_truthvalue_loc): Handle vectors. Do not call 30585 fold_truth_not_expr directly. 30586 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons. 30587 <TRUTH_NOT_EXPR>: Do not cast to boolean. 30588 (fold_comparison): Handle vector constants. 30589 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code. 30590 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations. 30591 * tree.h (fold_truth_not_expr): Remove declaration. 30592 305932013-05-14 James Greenhalgh <james.greenhalgh@arm.com> 30594 30595 * config/aarch64/aarch64-simd.md 30596 (aarch64_vcond_internal<mode>): Rename to... 30597 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes. 30598 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for 30599 float modes. Clarify all iterator modes. 30600 (vcond<mode><mode>): Use new name for vcond expanders. 30601 (vcond<v_cmp_result><mode>): Likewise. 30602 (vcondu<mode><mode>: Likewise. 30603 * config/aarch64/iterators.md (VDQF_COND): New. 30604 306052013-05-14 Marc Glisse <marc.glisse@inria.fr> 30606 30607 PR bootstrap/57266 30608 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned 30609 variable for the shift amount. Check that we shift by non-negative 30610 amounts. 30611 306122013-05-14 Chung-Lin Tang <cltang@codesourcery.com> 30613 30614 PR target/42017 30615 * config/arm/arm.h (EPILOGUE_USES): Only return true 30616 for LR_REGNUM after epilogue_completed. 30617 306182013-05-14 Joern Rennecke <joern.rennecke@embecosm.com> 30619 30620 * config/avr/avr.c (avr_encode_section_info): Bail out if the type 30621 is error_mark_node. 30622 306232013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 30624 30625 PR target/57261 30626 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11 30627 and Solaris 11+/x86 with gld. 30628 * configure: Regenerate. 30629 306302013-05-14 Jakub Jelinek <jakub@redhat.com> 30631 30632 * expmed.c (expand_shift_1): Canonicalize rotates by 30633 constant bitsize / 2 to bitsize - 1. 30634 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE, 30635 case ROTATERT>: Likewise. 30636 30637 Revert: 30638 2013-05-10 Jakub Jelinek <jakub@redhat.com> 30639 30640 * config/i386/i386.md (rotateinv): New code attr. 30641 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext, 30642 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of 30643 roll $31, %eax, etc. 30644 306452013-05-14 Richard Biener <rguenther@suse.de> 30646 30647 PR middle-end/57235 30648 * tree-eh.c (sink_clobbers): Give up for successors with 30649 multiple predecessors and no virtual uses. 30650 306512013-05-14 Eric Botcazou <ebotcazou@adacore.com> 30652 30653 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete. 30654 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise. 30655 306562013-05-14 Jakub Jelinek <jakub@redhat.com> 30657 30658 PR middle-end/57251 30659 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle 30660 the case when both op0 and op1 have VOIDmode. 30661 306622013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com> 30663 30664 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required 30665 in multiply-accumulate mode. 30666 306672013-05-13 Guozhi Wei <carrot@google.com> 30668 30669 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC. 30670 306712013-05-13 Kai Tietz <ktietz@redhat.com> 30672 30673 PR target/56975 30674 * config/i386/cygming.h (TARGET_PECOFF): Define as true. 30675 * config/i386/i386.h (TARGET_PECOFF): Define by default as false. 30676 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF. 30677 * config/i386/i386.c (ix86_option_override_internal): Likewise. 30678 (ix86_expand_prologue): Likewise. 30679 (ix86_expand_split_stack_prologue): Likewise. 30680 (legitimate_pic_address_disp_p): Likewise. 30681 (legitimize_pic_address): Likewise. 30682 (legitimize_tls_address): Likewise. 30683 (legitimize_pe_coff_symbol): Likewise. 30684 (output_pic_addr_const): Likewise. 30685 (construct_plt_address): Likewise. 30686 (ix86_expand_call): Likewise. 30687 (x86_output_mi_thunk): Likewise. 30688 (x86_function_profiler): Likewise. 30689 306902013-05-13 Sofiane Naci <sofiane.naci@arm.com> 30691 30692 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group 30693 similar switch cases. 30694 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update. 30695 (aarch64_simd_mov_to_<mode>low): Delete. 30696 (aarch64_simd_mov_to_<mode>high): Delete. 30697 (move_lo_quad_<mode>): Add w<-r alternative. 30698 (aarch64_simd_move_hi_quad_<mode>): Likewise. 30699 (aarch64_simd_mov_from_*): Update type attribute. 30700 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch 30701 statement. 30702 307032013-05-13 Jan Hubicka <jh@suse.cz> 30704 30705 * mode-switching.c (optimize_mode_switching): Set correct RTL profile. 30706 * config/i386/i386.c (ix86_compute_frame_layout, 30707 ix86_expand_epilogue, emit_i387_cw_initialization, 30708 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy, 30709 ix86_local_alignment): Fix use of size/speed predicates. 30710 307112013-05-13 Jakub Jelinek <jakub@redhat.com> 30712 30713 PR tree-optimization/45216 30714 PR tree-optimization/57157 30715 * tree-ssa-forwprop.c (simplify_rotate): Only recognize 30716 the (-Y) & (B - 1) variant if OP is |. 30717 * expmed.c (expand_shift_1): For rotations by const0_rtx just 30718 return shifted. Use (-op1) & (prec - 1) as other_amount 30719 instead of prec - op1. 30720 307212013-05-13 Martin Jambor <mjambor@suse.cz> 30722 30723 PR middle-end/42371 30724 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro. 30725 (ipa_constant_data): New type. 30726 (ipa_jump_func): Use ipa_constant_data to hold information about 30727 constant jump functions. 30728 (ipa_get_jf_constant): Adjust to jump function type changes. 30729 (ipa_get_jf_constant_rdesc): New function. 30730 (ipa_param_descriptor): New field controlled_uses. 30731 (ipa_get_controlled_uses): New function. 30732 (ipa_set_controlled_uses): Likewise. 30733 * ipa-ref.h (ipa_find_reference): Declare. 30734 * ipa-prop.c (ipa_cst_ref_desc): New type. 30735 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type 30736 changes. 30737 (ipa_set_jf_constant): Likewise. Also create reference descriptions. 30738 New parameter cs. Adjust all callers. 30739 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses. 30740 (remove_described_reference): New function. 30741 (jfunc_rdesc_usable): Likewise. 30742 (try_make_edge_direct_simple_call): Decrement controlled use count, 30743 attempt to remove reference if it hits zero. 30744 (combine_controlled_uses_counters): New function. 30745 (propagate_controlled_uses): Likewise. 30746 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses. 30747 (ipa_edge_duplication_hook): Duplicate reference descriptions. 30748 (ipa_print_node_params): Print described use counter. 30749 (ipa_write_jump_function): Adjust to jump function type changes. 30750 (ipa_read_jump_function): New parameter CS, pass it to 30751 ipa_set_jf_constant. Adjust caller. 30752 (ipa_write_node_info): Stream controlled use count 30753 (ipa_read_node_info): Likewise. 30754 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of 30755 asserting. 30756 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use 30757 count. Remove cloning-added reference if it reaches zero. 30758 * ipa-ref.c (ipa_find_reference): New function. 30759 307602013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> 30761 30762 * config/i386/i386.c (processor_target_table): Modified default 30763 alignment values for AMD BD and BT architectures. 30764 307652013-05-13 Marc Glisse <marc.glisse@inria.fr> 30766 30767 * tree-vect-generic.c (uniform_vector_p): Move ... 30768 * tree.c (uniform_vector_p): ... here. 30769 * tree.h (uniform_vector_p): Declare it. 30770 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument 30771 into a scalar. 30772 307732013-05-13 Jakub Jelinek <jakub@redhat.com> 30774 30775 PR tree-optimization/57230 30776 * tree-ssa-strlen.c (handle_char_store): Record length for 30777 array store from STRING_CST. 30778 30779 PR tree-optimization/57230 30780 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop 30781 check. 30782 307832013-05-12 Joern Rennecke <joern.rennecke@embecosm.com> 30784 30785 * config/epiphany/epiphany.c (epiphany_init): Check size of 30786 NUM_MODES_FOR_MODE_SWITCHING. 30787 (epiphany_expand_prologue): 30788 Remove CONFIG_REGNUM initial value handling code. 30789 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG. 30790 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise. 30791 (emit_set_fp_mode, epiphany_mode_after): Likewise. 30792 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>: 30793 Don't return 1 for FP_MODE_NONE. 30794 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING): 30795 Add value for EPIPHANY_MSW_ENTITY_CONFIG. 30796 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define. 30797 * config/epiphany/epiphany.md (save_config): New pattern. 30798 307992013-05-12 Uros Bizjak <ubizjak@gmail.com> 30800 30801 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative. 30802 308032013-05-10 Uros Bizjak <ubizjak@gmail.com> 30804 30805 * config/i386/i386.md (memory): Handle sseishft1. 30806 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute. 30807 (*vec_extractv2di_1): Ditto. 30808 308092013-05-10 Vladimir Makarov <vmakarov@redhat.com> 30810 30811 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call 30812 saved registers. 30813 308142013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de> 30815 30816 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib. 30817 Add mthumb/march=armv7-a multilib. 30818 Add mthumb/march=armv7-r multilib. 30819 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib. 30820 308212013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org> 30822 30823 * config/v850/t-rtems: Add more multilibs. 30824 308252013-05-10 Richard Biener <rguenther@suse.de> 30826 30827 PR tree-optimization/57214 30828 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do 30829 not propagate from SSA names that occur in abnormal PHI nodes. 30830 308312013-05-10 Marc Glisse <marc.glisse@inria.fr> 30832 30833 * stor-layout.c (element_precision): New function. 30834 * machmode.h (element_precision): Declare it. 30835 * tree.c (build_minus_one_cst): New function. 30836 (element_precision): Likewise. 30837 * tree.h (build_minus_one_cst): Declare new function. 30838 (element_precision): Likewise. 30839 * fold-const.c (operand_equal_p): Use element_precision. 30840 (fold_binary_loc): Handle vector types. 30841 * convert.c (convert_to_integer): Use element_precision. 30842 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors 30843 separately. 30844 308452013-05-10 Richard Sandiford <rdsandiford@googlemail.com> 30846 30847 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1) 30848 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1) 30849 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4) 30850 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete. 30851 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1) 30852 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4) 30853 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1) 30854 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete. 30855 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5) 30856 (Uuw8): New constraints. 30857 (Usb4): Move into alphabetical order. 30858 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand) 30859 (sd8_operand, ub8_operand, uw8_operand): New predicates. 30860 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name 30861 previously unnamed patterns. 30862 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16) 30863 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16) 30864 (*slt<u>_<GPR:mode><GPR2:mode>_mips16) 30865 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead 30866 of set_attr_alternative/if_then_else. Use extended_mips16 instead 30867 of specific lengths. 30868 308692013-05-10 Jakub Jelinek <jakub@redhat.com> 30870 30871 * config/i386/i386.md (rotateinv): New code attr. 30872 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext, 30873 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of 30874 roll $31, %eax, etc. 30875 30876 PR tree-optimization/45216 30877 PR tree-optimization/57157 30878 * tree-ssa-forwprop.c (simplify_rotate): New function. 30879 (ssa_forward_propagate_and_combine): Call it. 30880 308812013-05-10 Richard Biener <rguenther@suse.de> 30882 30883 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not 30884 disable peeling when we version for aliasing. 30885 (vector_alignment_reachable_p): Honor explicit user alignment. 30886 (vect_supportable_dr_alignment): Likewise. 30887 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use 30888 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it. 30889 * tree-vect-loop.c (vect_transform_loop): First apply versioning, 30890 then peeling to arrange for the cost-model check to come first. 30891 308922013-05-10 Alan Modra <amodra@gmail.com> 30893 30894 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases. 30895 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text. 30896 * configure: Regenerate. 30897 308982013-05-10 Alan Modra <amodra@gmail.com> 30899 30900 PR target/55033 30901 * varasm.c (default_elf_select_section): Move !DECL_P check.. 30902 (get_named_section): ..to here before calling get_section_name. 30903 Adjust assertion. 30904 (default_section_type_flags): Add DECL_P check. 30905 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise. 30906 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise. 30907 309082013-05-09 Joern Rennecke <joern.rennecke@embecosm.com> 30909 30910 * config/epiphany/epiphany.c (epiphany_expand_prologue): 30911 When using gen_stack_adjust_str with a register offset, add a 30912 REG_FRAME_RELATED_EXPR note. 30913 309142013-05-09 Uros Bizjak <ubizjak@gmail.com> 30915 30916 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern. 30917 (*vec_extractv4si_zext_mem): Ditto. 30918 (*vec_extractv2di): Add 0->x and x->x alternatives. 30919 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern. 30920 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative. 30921 309222013-05-09 Jason Merrill <jason@redhat.com> 30923 30924 N3639 C++1y VLA support 30925 * gimplify.c (gimplify_vla_decl): Don't touch an existing 30926 DECL_VALUE_EXPR. 30927 30928 * tree.c (build_constructor_va): New. 30929 * tree.h: Declare it. 30930 309312013-05-09 Martin Jambor <mjambor@suse.cz> 30932 30933 PR lto/57084 30934 * gimple-fold.c (canonicalize_constructor_val): Call 30935 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node. 30936 309372013-05-09 Jan Hubicka <jh@suse.cz> 30938 Richard Biener <rguenther@suse.de> 30939 30940 PR lto/54095 30941 * symtab.c (symtab_make_decl_local): Do not add private names. 30942 309432013-05-09 Jan Hubicka <jh@suse.cz> 30944 30945 PR lto/54095 30946 * symtab.c (insert_to_assembler_name_hash): Handle clones. 30947 (unlink_from_assembler_name_hash): Likewise. 30948 (symtab_prevail_in_asm_name_hash, symtab_register_node, 30949 symtab_unregister_node, symtab_initialize_asm_name_hash, 30950 change_decl_assembler_name): Update. 30951 309522013-05-09 Sofiane Naci <sofiane.naci@arm.com> 30953 30954 * config/aarch64/aarch64.md: New movtf split. 30955 (*movtf_aarch64): Update. 30956 (aarch64_movdi_tilow): Handle TF modes and rename to 30957 aarch64_movdi_<mode>low. 30958 (aarch64_movdi_tihigh): Handle TF modes and rename to 30959 aarch64_movdi_<mode>high 30960 (aarch64_movtihigh_di): Handle TF modes and rename to 30961 aarch64_mov<mode>high_di 30962 (aarch64_movtilow_di): Handle TF modes and rename to 30963 aarch64_mov<mode>low_di 30964 (aarch64_movtilow_tilow): Remove spurious whitespace. 30965 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode 30966 splits. 30967 (aarch64_print_operand): Update. 30968 309692013-05-09 Alan Modra <amodra@gmail.com> 30970 30971 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and 30972 powerpc64le. 30973 * configure: Regenerate. 30974 309752013-05-08 Uros Bizjak <ubizjak@gmail.com> 30976 30977 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload 30978 splitter preparation statements. 30979 * config/i386/sse.md (*vec_extract* splitters): Ditto. 30980 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of 30981 adjust_address_nv. 30982 309832013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 30984 30985 * gimple-ssa-strength-reduction.c (count_candidates): Change 30986 return value to int. 30987 (analyze_candidates_and_replace): Change type of length to int. 30988 309892013-05-08 Uros Bizjak <ubizjak@gmail.com> 30990 30991 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove. 30992 (*vec_extract<mode>): Use VI12_128 mode iterator. 30993 (*vec_extract<mode>_mem): Ditto. 30994 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode 30995 attribute. 30996 309972013-05-08 Diego Novillo <dnovillo@google.com> 30998 30999 PR bootstrap/54659 31000 31001 Revert: 31002 2012-08-17 Diego Novillo <dnovillo@google.com> 31003 31004 PR bootstrap/54281 31005 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list. 31006 * config.in: Regenerate. 31007 * configure: Regenerate. 31008 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set. 31009 310102013-05-08 Jan Hubicka <jh@suse.cz> 31011 31012 PR lto/54095 31013 * cgraph.c (cgraph_make_node_local_1): Se unique_name. 31014 * cgraph.h (symtab_node_base): Add unique_name. 31015 * lto-cgraph.c (lto_output_node, lto_output_varpool_node, 31016 input_overwrite_node, input_varpool_node): Stream unique_name. 31017 * cgraphclones.c (cgraph_create_virtual_clone, 31018 cgraph_function_versioning): Set unique_name. 31019 * ipa.c (function_and_variable_visibility): Set unique_name. 31020 310212013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 31022 31023 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix." 31024 (alloc_cand_and_find_basis): Restrict conditional candidate 31025 processing to CAND_MULTs. 31026 310272013-05-08 Jan Hubicka <jh@suse.cz> 31028 31029 PR lto/54095 31030 lto-symtab.c (lto_symtab_symbol_p): New function. 31031 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols, 31032 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2, 31033 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1): 31034 Skip static symbols. 31035 310362013-05-08 Paolo Carlini <paolo.carlini@oracle.com> 31037 31038 PR tree-optimization/57200 31039 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations): 31040 Only call inform if the preceding warning_at returns true. 31041 310422013-05-07 Han Shen <shenhan@google.com> 31043 31044 * cfgexpand.c (record_or_union_type_has_array_p): New function. 31045 (expand_used_vars): Add logic handling '-fstack-protector-strong'. 31046 * common.opt (fstack-protector-strong): New option. 31047 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__". 31048 * doc/invoke.texi (Optimization Options): Document 31049 "-fstack-protector-strong". 31050 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'. 31051 310522013-05-06 Steven Bosscher <steven@gcc.gnu.org> 31053 31054 * config/mips/mips.c (mips_machine_reorg2): Return 0. 31055 310562013-05-07 Vladimir Makarov <vmakarov@redhat.com> 31057 31058 * ira.c (update_equiv_regs): Add insn having equiv memory even if 31059 it is not lhs of the insn. 31060 (setup_reg_equiv): Remove insn having equiv memory which it is not 31061 lhs of the insn. 31062 * lra-constraints.c (process_address): Try to improve generation 31063 code for address base + disp. 31064 (lra_constraints): Make correct the code for checking insn setting 31065 up backward equivalence. Remove insn only if it is in the init 31066 insn list. 31067 * lra-eliminations.c (update_reg_eliminate): Change return value. 31068 (lra_eliminate): Use the result. 31069 310702013-05-07 Uros Bizjak <ubizjak@gmail.com> 31071 31072 * config/i386/sse.md (ssescalarnummask): New mode attribute. 31073 (PEXTR_MODE, PEXTR_MODEx): New mode iterators. 31074 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and 31075 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle 31076 register target operands. 31077 (*vec_extractv8hi_sse2): New pattern. 31078 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>. 31079 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>. 31080 (*vec_extract<mode>_mem): New insn and split pattern. 31081 310822013-05-07 Christophe Lyon <christophe.lyon@linaro.org> 31083 31084 * config/arm/arm.c (arm_asan_shadow_offset): New function. 31085 (TARGET_ASAN_SHADOW_OFFSET): Define. 31086 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define. 31087 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC. 31088 310892013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 31090 31091 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant. 31092 (incr_vec_index): Return -1 if increment not found. 31093 (create_add_on_incoming_edge): Assert if increment not found. 31094 (record_increment): Limit number of increments recorded. 31095 (all_phi_incrs_profitable): Return false if an increment not found. 31096 (replace_profitable_candidates): Don't process increments that were 31097 not recorded. 31098 (analyze_candidates_and_replace): Limit size of incr_vec. 31099 311002013-05-07 Richard Biener <rguenther@suse.de> 31101 31102 * calls.c (special_function_p): setjmp-like functions are leaf. 31103 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf. 31104 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert. 31105 311062013-05-07 Sofiane Naci <sofiane.naci@arm.com> 31107 31108 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter. 31109 (aarch64_simd_mov<mode>): New expander. 31110 (aarch64_simd_mov_to_<mode>low): New instruction pattern. 31111 (aarch64_simd_mov_to_<mode>high): Likewise. 31112 (aarch64_simd_mov_from_<mode>low): Likewise. 31113 (aarch64_simd_mov_from_<mode>high): Likewise. 31114 (aarch64_dup_lane<mode>): Update. 31115 (aarch64_dup_lanedi): New instruction pattern. 31116 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype. 31117 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function. 31118 311192013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 31120 31121 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove. 31122 (replace_mult_candidate): Remove unnecessary argument; remove 31123 unnecessary parameter from call to introduce_cast_before_cand. 31124 (replace_unconditional_candidate): Remove unnecessary parameter 31125 from call to replace_mult_candidate. 31126 (replace_conditional_candidate): Likewise. 31127 (insert_initializers): Use make_temp_ssa_name. 31128 (introduce_cast_before_cand): Remove unnecessary argument; use 31129 make_temp_ssa_name. 31130 (replace_one_candidate): Remove unnecessary argument; remove 31131 unnecessary parameter from calls to introduce_cast_before_cand. 31132 (replace_profitable_candidates): Remove unnecessary parameters 31133 from calls to replace_one_candidate. 31134 311352013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 31136 31137 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a 31138 phi def as possibly hiding a basis for a CAND_ADD whose operands 31139 have been commuted in the analysis. 31140 (alloc_cand_and_find_basis): Add parms to call to find_phi_def. 31141 311422013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> 31143 31144 * config/aarch64/aarch64.md 31145 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the 31146 shift value between 0-4. 31147 311482013-05-07 Richard Biener <rguenther@suse.de> 31149 31150 * double-int.h (rshift): New overload. 31151 * double-int.c (rshift): New function. 31152 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize. 31153 (create_reference_ops_from_ref): Remove. 31154 (vn_reference_insert): Use shared ops for constructing the 31155 reference and copy it. 31156 311572013-05-07 Richard Biener <rguenther@suse.de> 31158 31159 PR middle-end/57190 31160 * tree-eh.c (sink_clobbers): Properly propagate 31161 SSA_NAME_OCCURS_IN_ABNORMAL_PHI. 31162 311632013-05-07 Jakub Jelinek <jakub@redhat.com> 31164 31165 PR tree-optimization/57149 31166 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline. 31167 (can_skip_redundant_opnd, compute_uninit_opnds_pos, 31168 collect_phi_def_edges, execute_late_warn_uninitialized): Use 31169 uninit_undefined_value_p instead of ssa_undefined_value_p. 31170 31171 PR debug/57184 31172 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR 31173 for modifier == EXPAND_INITIALIZER. 31174 311752013-05-07 Anton Blanchard <anton@samba.org> 31176 31177 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation 31178 for powerpc64 little endian. 31179 * configure: Regenerate. 31180 311812013-05-06 Graham Stott <grahams@btinternet.com> 31182 31183 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld, 31184 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1, 31185 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1, 31186 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1. 31187 311882013-05-06 Graham Stott <grahams@btinternet.com> 31189 31190 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx 31191 codes which allow non-lvalues. 31192 311932013-05-06 Marc Glisse <marc.glisse@inria.fr> 31194 31195 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both 31196 components are all 1s. 31197 (integer_minus_onep): New function. 31198 * tree.h (integer_minus_onep): Declare it. 31199 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test 31200 integer_minus_onep instead of integer_all_onesp. 31201 312022013-05-06 Oleg Endo <olegendo@gcc.gnu.org> 31203 31204 PR target/52933 31205 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add 31206 variations of these patterns. 31207 312082013-05-06 Uros Bizjak <ubizjak@gmail.com> 31209 31210 * config/i386/i386.md (isa): Add x64_sse4 member. 31211 (enabled): Handle x64_sse4. 31212 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg 31213 instruction for 64bit SSE4_1 targets. Update insn attributes. 31214 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg 31215 instruction for SSE4_1 targets. Update insn attributes. 31216 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge 31217 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector. 31218 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having 31219 const_1 selector. 31220 (*vec_extractv4si): Rename from *sse4_1_pextrd. 31221 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext. 31222 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together. 31223 312242013-05-06 Oleg Endo <olegendo@gcc.gnu.org> 31225 31226 PR target/57108 31227 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator. 31228 312292013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com> 31230 31231 * final.c (do_assembler_dialects): Don't handle curly braces and 31232 vertical bar escaped by % as dialect delimiters. 31233 (output_asm_insn): Print curly braces and vertical bar if escaped 31234 by % and ASSEMBLER_DIALECT defined. 31235 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes. 31236 * doc/tm.texi: Regenerated. 31237 312382013-05-06 Steven Bosscher <steven@gcc.gnu.org> 31239 31240 * config/mips/mips.c: Include tree-pass.h. 31241 (mips_reorg): Split in pre- and post-dbr_schedule parts. 31242 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here. 31243 (pass_mips_machine_reorg2): New machine specific pass. 31244 (insert_pass_mips_machine_reorg2): New pass plugin definition. 31245 (mips_option_override): Register the new pass. 31246 * rtl.h (cleanup_barriers): Remove prototype. 31247 (dbr_schedule): Likewise. 31248 * jump.c (cleanup_barriers): Make static. 31249 * reorg.c (dbr_schedule): Likewise. 31250 312512013-05-06 Richard Biener <rguenther@suse.de> 31252 31253 PR tree-optimization/57185 31254 * tree-parloops.c (add_field_for_reduction): Handle anonymous 31255 SSA names properly. 31256 312572013-05-06 Uros Bizjak <ubizjak@gmail.com> 31258 31259 PR target/57106 31260 * config/i386/i386.c (add_parameter_dependencies): Add dependence 31261 between "first_arg" and "insn", not "last" and "insn". 31262 312632013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 31264 31265 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable. 31266 (find_candidates_in_block): Re-enable slsr_process_phi. 31267 (create_phi_basis): Fix double counting of candidate adjustment. 31268 312692013-05-06 Richard Biener <rguenther@suse.de> 31270 31271 PR middle-end/57147 31272 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If 31273 the edge is also fallthru, preserve it and just clear the 31274 abnormal flag. 31275 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is 31276 also complex, preserve that and just clear the fallthru flag. 31277 * tree-inline.c (update_ssa_across_abnormal_edges): Also 31278 update virtual operands. 31279 312802013-05-06 Alan Modra <amodra@gmail.com> 31281 31282 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define. 31283 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT. 31284 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define. 31285 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define. 31286 (LINK_TARGET_SPEC): Use ENDIAN_SELECT. 31287 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig. 31288 312892013-05-06 Alan Modra <amodra@gmail.com> 31290 31291 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from 31292 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too. 31293 (DEFAULT_ASM_ENDIAN): Define. 31294 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT. 31295 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options. 31296 Update -K PIC clause from sysv4.h. 31297 (ASM_SPEC_COMMON): Use ENDIAN_SELECT. 31298 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise. 31299 313002013-05-06 Alan Modra <amodra@gmail.com> 31301 31302 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words 31303 twice for little-endian. 31304 (ashrdi3_no_power, ashrdi3): Support little-endian. 31305 313062013-05-06 Oleg Endo <olegendo@gcc.gnu.org> 31307 31308 PR target/55303 31309 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases. 31310 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and 31311 related expanders. 31312 * config/sh/iterators.md (SMIN_SMAX): New code iterator. 31313 * config/sh/predicates.md (arith_reg_or_0_or_1_operand, 31314 clips_min_const_int, clips_max_const_int, clipu_max_const_int): 31315 New predicates. 31316 313172013-05-05 Steven Bosscher <steven@gcc.gnu.org> 31318 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 31319 31320 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default. 31321 * config/pa/pa.opt: Make mbig-switch a no-op. 31322 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH. 31323 (CASE_VECTOR_MODE): Always return SImode. 31324 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code 31325 for the !TARGET_BIG_SWITCH case. 31326 * config/pa/pa-linux.h: Likewise. 31327 * config/pa/pa-openbsd.h: Likewise. 31328 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0. 31329 * config/pa/pa.md (short_jump): Remove define_insn. 31330 (casesi): Remove code for the !TARGET_BIG_SWITCH case. 31331 (casesi0): Remove define_insn. 31332 (type): Remove btable_branch. 31333 (pa_combine_type): Likewise. 31334 (in_nullified_branch_delay): Likewise. 31335 (in_call_delay): Likewise. 31336 (define_delay): Likewise. 31337 (define_insn_reservation "Z3"): Likewise. 31338 (define_insn_reservation "Z4"): Likewise. 31339 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH. 31340 (pa_adjust_insn_length): Remove adjustment for btable branches. 31341 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch 31342 and mno-big-switch 31343 313442013-05-05 Uros Bizjak <ubizjak@gmail.com> 31345 31346 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge 31347 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator. 31348 Add m->r,x alternatives. 31349 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI 31350 splitters using SWI48x mode iterator. 31351 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for 31352 TARGET_64BIT. Add m->x alternative. 31353 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem. 31354 Add o->x alternative. Enable for TARGET_SSE. 31355 (sse_storeq): Remove expander. 31356 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives 31357 with memory input operand. 31358 (*vec_extractv2di_1 splitter): New. 31359 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem. 31360 * config/i386/i386.md (ssevecmodelower): New mode attribute. 31361 313622013-05-04 Segher Boessenkool <segher@kernel.crashing.org> 31363 31364 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment. 31365 (INT_LOWPART): Delete. 31366 (extract_MB): Adjust. 31367 (extract_ME): Adjust. 31368 (print_operand): Adjust. 31369 313702013-05-04 Segher Boessenkool <segher@kernel.crashing.org> 31371 31372 * config/rs6000/predicates.md (reg_or_add_cint_operand, 31373 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. 31374 (reg_or_logical_cint_operand, easy_fp_constant, 31375 logical_const_operand): Delete "CONST_DOUBLE" case. 31376 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete 31377 "HOST_BITS_PER_WIDE_INT == 64" test. 31378 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case. 31379 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test. 31380 (rs6000_emit_set_const): Delete CONST_DOUBLE case. 31381 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64" 31382 test. 31383 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete 31384 CONST_DOUBLE DImode/VOIDmode case. 31385 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case. 31386 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete 31387 CONST_DOUBLE VOIDmode case. 31388 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case. 31389 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case. 31390 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these): 31391 Delete CONST_DOUBLE case. 31392 (splitters for mov FMOVE64 const_double): Delete 31393 "HOST_BITS_PER_WIDE_INT == 32" case. Delete 31394 "HOST_BITS_PER_WIDE_INT >= 64" test. 31395 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32" 31396 case. 31397 (mov DI const_double): Delete. 31398 313992013-05-04 Jakub Jelinek <jakub@redhat.com> 31400 31401 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits 31402 on op shows all bits zero in mode of a lowpart subreg, return zero. 31403 314042013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com> 31405 31406 PR target/57150 31407 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode 31408 to save TFmode registers and DImode to save TImode registers for 31409 caller save operations. 31410 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to 31411 mark being partially clobbered since they only use the first 31412 double word. 31413 31414 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode 31415 and TDmode only use the upper 64-bits of each VSX register. 31416 314172013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 31418 31419 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable. 31420 (find_candidates_in_block): Disable slsr_process_phi. 31421 314222013-05-03 Guozhi Wei <carrot@google.com> 31423 31424 * coverage.c (coverage_obj_init): Move the construction of gcov 31425 constructor to ... 31426 (build_init_ctor): ... here. 31427 314282013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 31429 31430 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI. 31431 (slsr_cand_d): Redefine def_phi. 31432 (stride_status, phi_adjust_status, count_phis_status): New enums. 31433 (find_phi_def): New. 31434 (find_basis_for_base_expr): New. 31435 (find_basis_for_candidate): Handle hidden bases. 31436 (alloc_cand_and_find_basis): Handle phi candidates. 31437 (slsr_process_phi): New. 31438 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep. 31439 (create_mul_imm_cand): Likewise. 31440 (create_add_ssa_cand): Exclude phi base candidates. 31441 (create_add_imm_cand): Likewise. 31442 (slsr_process_cast): Likewise. 31443 (slsr_process_copy): Likewise. 31444 (find_candidates_in_block): Handle phi candidates. 31445 (dump_candidate): Likewise. 31446 (unconditional_cands): Delete. 31447 (unconditional_cands_with_known_stride_p): Delete. 31448 (phi_dependent_cand_p): New. 31449 (cand_increment): Handle phi-dependent candidates. 31450 (replace_dependent): Delete. 31451 (replace_mult_candidate): New. 31452 (replace_unconditional_candidate): New. 31453 (incr_vec_index): Move to avoid forward reference. 31454 (create_add_on_incoming_edge): New. 31455 (create_phi_basis): New. 31456 (replace_dependents): Delete. 31457 (replace_conditional_candidate): New. 31458 (phi_add_costs): New. 31459 (replace_uncond_cands_and_profitable_phis): New. 31460 (record_increment): Handle phi adjustments. 31461 (record_phi_increments): New. 31462 (record_increments): Handle phi adjustments. 31463 (phi_incr_cost): New. 31464 (lowest_cost_path): Handle phis. 31465 (total_savings): Likewise. 31466 (analyze_increments): Likewise. 31467 (ncd_with_phi): New. 31468 (ncd_of_cand_and_phis): New. 31469 (nearest_common_dominator_for_cands): Handle phi increments. 31470 (all_phi_incrs_profitable): New. 31471 (replace_profitable_candidates): Handle phi-dependent candidates. 31472 (analyze_candidates_and_replace): Likewise. 31473 314742013-05-03 Teresa Johnson <tejohnson@google.com> 31475 31476 PR bootstrap/57154 31477 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities 31478 do not exceed REG_BR_PROB_BASE. 31479 314802013-05-03 Jeff Law <law@redhat.com> 31481 31482 PR tree-optimization/57144 31483 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant 31484 operand of the condition will bit into the new type when eliminating 31485 a cast feeding a condition. 31486 314872013-05-03 Jakub Jelinek <jakub@redhat.com> 31488 31489 PR rtl-optimization/57130 31490 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead 31491 of COMPARE as in_code to the recursive call if needed. 31492 314932013-05-03 Uros Bizjak <ubizjak@gmail.com> 31494 31495 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members. 31496 (enabled): Handle new members. 31497 * config/i386/sse.md (*vec_concatv2si): Merge from 31498 *vec_concatv2si_sse2 and vec_concatv2si_sse. 31499 (vec_concatv2di): Merge with *vec_concatv2di_rex64. 31500 315012013-05-03 Joern Rennecke <joern.rennecke@embecosm.com> 31502 31503 PR tree-optimization/57027 31504 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking 31505 for fnms opportunity, check we got the prerequisite kind 31506 of tree / gimple before using accessor functions. 31507 315082013-05-03 Richard Biener <rguenther@suse.de> 31509 31510 * double-int.h (lshift): New overload without precision 31511 and arith argument. 31512 (operator *=, operator +=, operator -=): Move ... 31513 * double-int.c (operator *=, operator +=, operator -=): ... here 31514 and implement more efficiently. 31515 (mul_double_with_sign): Remove. 31516 (lshift_double): Adjust to take unsinged shift argument, push 31517 dispatching code to callers. 31518 (mul_double_wide_with_sign): Add early out for callers that 31519 are not interested in high parts or overflow. 31520 (lshift): New function. 31521 (lshift, rshift, alshift, arshift, llshift, lrshift): Add 31522 dispatch code here. 31523 (lrotate, rrotate): Use logical shifts. 31524 * expr.c (get_inner_reference): Use lshift. 31525 * fixed-value.c (do_fixed_divide): Likewise. 31526 * tree-dfa.c (get_ref_base_and_extent): Likewise. 31527 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise. 31528 (indirect_refs_may_alias_p): Likewise. 31529 (stmt_kills_ref_p_1): Likewise. 31530 315312013-05-03 Vidya Praveen <vidyapraveen@arm.com> 31532 31533 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description. 31534 315352013-05-03 Vidya Praveen <vidyapraveen@arm.com> 31536 31537 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support 31538 scalar form of FABD instruction. 31539 315402013-05-02 Vladimir Makarov <vmakarov@redhat.com> 31541 31542 * lra-constraints.c (process_alt_operands): Add checking alt 31543 number to choose the best alternative. 31544 315452013-05-02 Richard Biener <rguenther@suse.de> 31546 31547 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts 31548 bitmap and its handling. 31549 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa. 31550 315512013-05-02 Richard Biener <rguenther@suse.de> 31552 31553 PR middle-end/57140 31554 * tree-inline.c (copy_loops): Properly handle removed loops. 31555 (copy_cfg_body): Mark destination loops for fixup if source 31556 loops needed fixup. 31557 315582013-05-02 Greta Yorsh <Greta.Yorsh@arm.com> 31559 31560 PR target/56732 31561 * config/arm/arm.c (arm_expand_epilogue): Check really_return before 31562 generating simple_return for naked functions. 31563 315642013-05-02 Martin Jambor <mjambor@suse.cz> 31565 31566 PR middle-end/56988 31567 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref. 31568 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref 31569 flags match. 31570 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of 31571 ipa_agg_replacement_value structures. 31572 (known_aggs_to_agg_replacement_list): Likewise. 31573 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag. 31574 (read_agg_replacement_chain): Likewise. 31575 (ipcp_transform_function): Also check that by_ref flags match. 31576 315772013-05-02 Richard Biener <rguenther@suse.de> 31578 31579 * graphds.h (struct graph): Add obstack member. 31580 * graphds.c (new_graph): Initialize obstack and allocate 31581 vertices from it. 31582 (add_edge): Allocate edge from the obstack. 31583 (free_graph): Free the obstack instead of all edges and vertices. 31584 315852013-05-02 Teresa Johnson <tejohnson@google.com> 31586 31587 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding 31588 divides. 31589 * cfg.c (update_bb_profile_for_threading): Ditto. 31590 * tree-inline.c (copy_bb): Ditto. 31591 (copy_edges_for_bb): Ditto. 31592 (initialize_cfun): Ditto. 31593 (copy_cfg_body): Ditto. 31594 (expand_call_inline): Ditto. 31595 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto. 31596 (estimate_node_size_and_time): Ditto. 31597 (inline_merge_summary): Ditto. 31598 * cgraphclones.c (cgraph_clone_edge): Ditto. 31599 (cgraph_clone_node): Ditto. 31600 * sched-rgn.c (compute_dom_prob_ps): Ditto. 31601 (compute_trg_info): Ditto. 31602 316032013-05-02 Ian Bolton <ian.bolton@arm.com> 31604 31605 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from 31606 S reg when fp attribute set. 31607 (movdi_aarch64): Only allow to/from D reg when fp attribute set. 31608 316092013-05-02 Ian Bolton <ian.bolton@arm.com> 31610 31611 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0): 31612 New pattern. 31613 (*and_one_cmplsi3_compare0_uxtw): Likewise. 31614 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise. 31615 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise. 31616 316172013-05-02 Richard Biener <rguenther@suse.de> 31618 31619 * tree-scalar-evolution.c (scev_info_hasher): Remove. 31620 (struct instantiate_cache_entry): New type. 31621 (struct instantiate_cache_entry_hasher): New hashtable descriptor. 31622 (struct instantiate_cache_type): New type. 31623 (set_instantiated_value, get_instantiated_value): Remove. 31624 (get_instantiated_value_entry): New function. 31625 (instantiate_scev_name): Use the new cache and adjust. 31626 (instantiate_scev_poly): Adjust. 31627 (instantiate_scev_binary): Likewise. 31628 (instantiate_array_ref): Likewise. 31629 (instantiate_scev_convert): Likewise. 31630 (instantiate_scev_not): Likewise. 31631 (instantiate_scev_3): Likewise. 31632 (instantiate_scev_2): Likewise. 31633 (instantiate_scev_r): Likewise. 31634 (instantiate_scev): Likewise. 31635 (resolve_mixers): Likewise. 31636 316372013-05-01 Vladimir Makarov <vmakarov@redhat.com> 31638 31639 PR target/57091 31640 * lra-constraints.c (best_small_class_operands_num): Remove. 31641 (process_alt_operands): Remove small_class_operands_num. Take 31642 small classes operands into losers and only if the operand is not 31643 matched. Modify debugging output. 31644 (curr_insn_transform): Remove best_small_class_operands_num. 31645 Print insn name. 31646 316472013-05-01 James Greenhalgh <james.greenhalgh@arm.com> 31648 31649 * config/aarch64/aarch64-builtins.c 31650 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_. 31651 * config/aarch64/aarch64-simd-builtins.def 31652 (reduc_splus_): Add new modes. 31653 (reduc_uplus_): New. 31654 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove. 31655 (reduc_uplus_v4sf): Likewise. 31656 (reduc_splus_v4sf): Likewise. 31657 (aarch64_addv<mode>): Likewise. 31658 (reduc_uplus_<mode>): Likewise. 31659 (reduc_splus_<mode>): Likewise. 31660 (aarch64_addvv2di): Likewise. 31661 (reduc_uplus_v2di): Likewise. 31662 (reduc_splus_v2di): Likewise. 31663 (aarch64_addvv2si): Likewise. 31664 (reduc_uplus_v2si): Likewise. 31665 (reduc_splus_v2si): Likewise. 31666 (reduc_<sur>plus_<mode>): New. 31667 (reduc_<sur>plus_v2di): Likewise. 31668 (reduc_<sur>plus_v2si): Likewise. 31669 (reduc_<sur>plus_v4sf): Likewise. 31670 (aarch64_addpv4sf): Likewise. 31671 * config/aarch64/arm_neon.h 31672 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins. 31673 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV, 31674 add UNSPEC_SADDV, UNSPEC_UADDV. 31675 (SUADDV): New. 31676 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV. 31677 316782013-05-01 James Greenhalgh <james.greenhalgh@arm.com> 31679 31680 * config/aarch64/arm_neon.h 31681 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins. 31682 316832013-05-01 James Greenhalgh <james.greenhalgh@arm.com> 31684 31685 * config/aarch64/aarch64-builtins 31686 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins. 31687 316882013-05-01 James Greenhalgh <james.greenhalgh@arm.com> 31689 31690 * config/aarch64/aarch64-simd-builtins.def 31691 (reduc_smax_): New. 31692 (reduc_smin_): Likewise. 31693 (reduc_umax_): Likewise. 31694 (reduc_umin_): Likewise. 31695 (reduc_smax_nan_): Likewise. 31696 (reduc_smin_nan_): Likewise. 31697 (fmax): Remove. 31698 (fmin): Likewise. 31699 (smax): Update for V2SF, V4SF and V2DF modes. 31700 (smin): Likewise. 31701 (smax_nan): New. 31702 (smin_nan): Likewise. 31703 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to... 31704 (<su><maxmin><mode>3): ...This, refactor. 31705 (s<maxmin><mode>3): New. 31706 (<maxmin_uns><mode>3): Likewise. 31707 (reduc_<maxmin_uns>_<mode>): Refactor. 31708 (reduc_<maxmin_uns>_v4sf): Likewise. 31709 (reduc_<maxmin_uns>_v2si): Likewise. 31710 (aarch64_<fmaxmin><mode>: Remove. 31711 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use 31712 new builtin names. 31713 (vmin<q>_f<32,64>): Likewise. 31714 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV. 31715 (FMAXMIN): New. 31716 (su): Add mappings for smax, smin, umax, umin. 31717 (maxmin): New. 31718 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV. 31719 (FMAXMIN): Rename as... 31720 (FMAXMIN_UNS): ...This. 31721 (maxminv): Remove. 31722 (fmaxminv): Likewise. 31723 (fmaxmin): Likewise. 31724 (maxmin_uns): New. 31725 (maxmin_uns_op): Likewise. 31726 317272013-05-01 James Greenhalgh <james.greenhalgh@arm.com> 31728 31729 * config/aarch64/arm_neon.h 31730 (vac<ge, gt><sd>_f<32, 64>): Rename to... 31731 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C. 31732 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C. 31733 317342013-05-01 James Greenhalgh <james.greenhalgh@arm.com> 31735 31736 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New. 31737 * config/aarch64/iterators.md (FAC_COMPARISONS): New. 31738 317392013-05-01 James Greenhalgh <james.greenhalgh@arm.com> 31740 31741 * config/aarch64/aarch64-simd.md 31742 (vcond<mode>_internal): Handle special cases for constant masks. 31743 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors. 31744 (vcondu<mode><mode>): Likewise. 31745 (vcond<v_cmp_result><mode>): New. 31746 317472013-05-01 James Greenhalgh <james.greenhalgh@arm.com> 31748 31749 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define. 31750 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>. 31751 * config/aarch64/aarch64-simd-builtins.def 31752 (cmeq): Update to BUILTIN_VALLDI. 31753 (cmgt): Likewise. 31754 (cmge): Likewise. 31755 (cmle): Likewise. 31756 (cmlt): Likewise. 31757 * config/aarch64/arm_neon.h 31758 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap 31759 to builtins or C as appropriate. 31760 317612013-05-01 James Greenhalgh <james.greenhalgh@arm.com> 31762 31763 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to... 31764 (cmgeu): ...This. 31765 (cmhi): Rename to... 31766 (cmgtu): ...This. 31767 * config/aarch64/aarch64-simd.md 31768 (simd_mode): Add SF. 31769 (aarch64_vcond_internal): Use new names for unsigned comparison insns. 31770 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs. 31771 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to... 31772 (cstore<mode>_neg): ...This. 31773 * config/aarch64/iterators.md 31774 (VALLF): new. 31775 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>. 31776 (COMPARISONS): New. 31777 (UCOMPARISONS): Likewise. 31778 (optab): Add missing comparisons. 31779 (n_optab): New. 31780 (cmp_1): Likewise. 31781 (cmp_2): Likewise. 31782 (CMP): Likewise. 31783 (cmp): Remove. 31784 (VCMP_S): Likewise. 31785 (VCMP_U): Likewise. 31786 (V_cmp_result): Add DF, SF modes. 31787 (v_cmp_result): Likewise. 31788 (v): Likewise. 31789 (vmtype): Likewise. 31790 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New. 31791 317922013-05-01 Greta Yorsh <Greta.Yorsh@arm.com> 31793 31794 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert 31795 define_insn to define_insn_and_split. 31796 (thumb32_umaxsi3,thumb2_uminsi3): Likewise. 31797 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise. 31798 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise. 31799 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise. 31800 (thumb2_negscc): Likewise. 31801 318022013-04-30 Greta Yorsh <Greta.Yorsh@arm.com> 31803 31804 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete. 31805 318062013-04-30 Greta Yorsh <Greta.Yorsh@arm.com> 31807 31808 * config/arm/thumb2.md: Remove trailing whitespaces. 31809 318102013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com> 31811 31812 * explow.c (plus_constant): Pass "mode" to immed_double_int_const. 31813 Use gen_int_mode rather than GEN_INT. 31814 318152013-04-30 H.J. Lu <hongjiu.lu@intel.com> 31816 31817 * value-prof.c (stream_in_histogram_value): Remove the strayed 31818 debug_gimple_stmt. 31819 318202013-04-30 Richard Biener <rguenther@suse.de> 31821 31822 PR middle-end/57122 31823 * cfghooks.c (split_edge): Properly check for the loop latch edge. 31824 318252013-04-30 Richard Biener <rguenther@suse.de> 31826 31827 PR middle-end/57107 31828 * tree-eh.c (sink_clobbers): Preserve virtual SSA form. 31829 318302013-04-30 Andrey Belevantsev <abel@ispras.ru> 31831 31832 PR rtl-optimization/56957 31833 PR rtl-optimization/57105 31834 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted 31835 variable. Use just INSN_UID for determining whether an insn 31836 should be only disconnected from the insn stream. 31837 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove. 31838 318392013-04-30 Jakub Jelinek <jakub@redhat.com> 31840 31841 PR tree-optimization/57104 31842 * tsan.c (instrument_expr): Don't instrument accesses to 31843 DECL_HARD_REGISTER VAR_DECLs. 31844 318452013-04-30 Richard Biener <rguenther@suse.de> 31846 31847 * function.h (loops_for_fn): New inline function. 31848 (set_loops_for_fn): Likewise. 31849 * cfgloop.h (place_new_loop): Add struct function parameter. 31850 (get_loop): Likewise. 31851 (get_loops): Likewise. 31852 (number_of_loops): Likewise. 31853 (fel_next): Adjust. 31854 (fel_init): Likewise. 31855 * cfg.c (get_loop_copy): Adjust. 31856 * cfgloop.c (flow_loops_dump): Likewise. 31857 (record_loop_exits): Likewise. 31858 (verify_loop_structure): Likewise. 31859 * cfgloopanal.c (mark_irreducible_loops): Likewise. 31860 (estimate_reg_pressure_cost): Likewise. 31861 (mark_loop_exit_edges): Likewise. 31862 * cfgloopmanip.c (place_new_loop): Likewise. 31863 (add_loop): Likewise. 31864 (duplicate_loop): Likewise. 31865 * graph.c (draw_cfg_nodes): Likewise. 31866 * graphite-clast-to-gimple.c (translate_clast_user): Likewise. 31867 * graphite-sese-to-poly.c (build_scop_scattering): Likewise. 31868 (extract_affine_chrec): Likewise. 31869 (build_scop_iteration_domain): Likewise. 31870 * graphite.c (graphite_initialize): Likewise. 31871 * ira-build.c (create_loop_tree_nodes): Likewise. 31872 (more_one_region_p): Likewise. 31873 (rebuild_regno_allocno_maps): Likewise. 31874 (mark_loops_for_removal): Likewise. 31875 (mark_all_loops_for_removal): Likewise. 31876 (remove_unnecessary_regions): Likewise. 31877 (ira_build): Likewise. 31878 * ira-emit.c (setup_entered_from_non_parent_p): Likewise. 31879 * loop-init.c (fix_loop_structure): Likewise. 31880 (gate_rtl_move_loop_invariants): Likewise. 31881 (gate_rtl_unswitch): Likewise. 31882 (gate_rtl_unroll_and_peel_loops): Likewise. 31883 (rtl_doloop): Likewise. 31884 * lto-streamer-in.c (input_cfg): Likewise. 31885 * lto-streamer-out.c (output_cfg): Likewise. 31886 * modulo-sched.c (sms_schedule): Likewise. 31887 * predict.c (tree_estimate_probability): Likewise. 31888 (tree_estimate_probability_driver): Likewise. 31889 (estimate_loops): Likewise. 31890 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise. 31891 (move_sese_region_to_fn): Likewise. 31892 (debug_loop_num): Likewise. 31893 * tree-chrec.c (chrec_evaluate): Likewise. 31894 (hide_evolution_in_other_loops_than_loop): Likewise. 31895 (chrec_component_in_loop_num): Likewise. 31896 (reset_evolution_in_loop): Likewise. 31897 (evolution_function_is_invariant_rec_p): Likewise. 31898 * tree-if-conv.c (main_tree_if_conversion): Likewise. 31899 * tree-inline.c (copy_loops): Likewise. 31900 (copy_cfg_body): Likewise. 31901 (tree_function_versioning): Likewise. 31902 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise. 31903 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop): 31904 Likewise. 31905 (add_to_evolution_1): Likewise. 31906 (scev_const_prop): Likewise. 31907 * tree-scalar-evolution.h (get_chrec_loop): Likewise. 31908 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise. 31909 * tree-ssa-loop-im.c (analyze_memory_references): Likewise. 31910 (tree_ssa_lim_initialize): Likewise. 31911 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise. 31912 (verify_loop_closed_ssa): Likewise. 31913 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise. 31914 (tree_ssa_loop_im): Likewise. 31915 (tree_ssa_loop_unswitch): Likewise. 31916 (tree_vectorize): Likewise. 31917 (check_data_deps): Likewise. 31918 (tree_ssa_loop_ivcanon): Likewise. 31919 (tree_ssa_loop_bounds): Likewise. 31920 (tree_complete_unroll): Likewise. 31921 (tree_complete_unroll_inner): Likewise. 31922 (tree_parallelize_loops): Likewise. 31923 (tree_ssa_loop_prefetch): Likewise. 31924 (tree_ssa_loop_ivopts): Likewise. 31925 * tree-ssa.c (execute_update_addresses_taken): Liekwise. 31926 * tree-vectorizer.c (vectorize_loops): Likewise. 31927 319282013-04-29 Mike Frysinger <vapier@gentoo.org> 31929 31930 * config/arm/bpabi.h (EABI_LINK_SPEC): Define. 31931 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC. 31932 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC 31933 with EABI_LINK_SPEC. 31934 319352013-04-29 Uros Bizjak <ubizjak@gmail.com> 31936 31937 PR target/44578 31938 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y 31939 alternative. 31940 319412013-04-29 Vladimir Makarov <vmakarov@redhat.com> 31942 31943 PR target/57097 31944 * lra-constraints.c (process_alt_operands): Discourage a bit more 31945 using memory for pseudos. Print cost dump for alternatives. 31946 Modify cost values for conflicts with early clobbers. 31947 (curr_insn_transform): Spill pseudos reassigned to NO_REGS. 31948 319492013-04-29 Uros Bizjak <ubizjak@gmail.com> 31950 31951 PR target/57098 31952 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory. 31953 319542013-04-29 Ian Bolton <ian.bolton@arm.com> 31955 31956 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR 31957 from/to S register. 31958 (movdi_aarch64): Support LDR/STR from/to D register. 31959 319602013-04-29 Ian Bolton <ian.bolton@arm.com> 31961 31962 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2 31963 or higher by default. 31964 319652013-04-29 Richard Biener <rguenther@suse.de> 31966 31967 PR middle-end/57075 31968 * tree-inline.c (copy_edges_for_bb): Still split the bbs, 31969 even if not adding abnormal edges for calls that can make 31970 abnormal gotos. 31971 319722013-04-29 Richard Biener <rguenther@suse.de> 31973 31974 PR middle-end/57103 31975 * tree-cfg.c (move_stmt_op): Fix condition under which to update 31976 TREE_BLOCK. 31977 (move_stmt_r): Remove redundant checking. 31978 319792013-04-29 Teresa Johnson <tejohnson@google.com> 31980 31981 PR bootstrap/57077 31982 * basic-block.h (apply_scale): New function. 31983 (apply_probability): Use apply_scale. 31984 * gimple-streamer-in.c (input_bb): Ditto. 31985 * lto-streamer-in.c (input_cfg): Ditto. 31986 * lto-cgraph.c (merge_profile_summaries): Ditto. 31987 * tree-optimize.c (execute_fixup_cfg): Ditto. 31988 * tree-inline.c (copy_bb): Update comment to use apply_scale. 31989 (copy_edges_for_bb): Ditto. 31990 (copy_cfg_body): Ditto. 31991 319922013-04-29 Tom de Vries <tom@codesourcery.com> 31993 31994 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs. 31995 (replace_block_by): Don't set LOOPS_NEED_FIXUP. 31996 (tail_merge_optimize): Handle current_loops == NULL. 31997 319982013-04-26 Jeff Law <law@redhat.com> 31999 32000 * tree-vrp.c (range_fits_type_p): Move to earlier point in file. 32001 (simplify_cond_using_ranges): Generalize code to simplify 32002 COND_EXPRs where one argument is a constant and the other 32003 is an SSA_NAME created by an integral type conversion. 32004 320052013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 32006 32007 * config/arm/arm.md (store_minmaxsi): Use only when 32008 optimize_insn_for_size_p. 32009 320102013-04-29 Christian Bruel <christian.bruel@st.com> 32011 32012 PR target/57108 32013 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0. 32014 320152013-04-29 Richard Biener <rguenther@suse.de> 32016 32017 PR middle-end/57089 32018 * omp-low.c (expand_omp_taskreg): If the parent function had a broken 32019 loop tree make sure to schedule a fixup for the child as well. 32020 (expand_omp_for_generic): Properly add loops. 32021 (expand_omp_for_static_nochunk): Likewise. 32022 (expand_omp_for_static_chunk): Likewise. 32023 (expand_omp_for): For the degenerate case fixup loops. 32024 (expand_omp_sections): Fix default bb placement in loops. 32025 (expand_omp_atomic_pipeline): Properly add loops. 32026 320272013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 32028 32029 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY. 32030 320312013-04-29 Tom de Vries <tom@codesourcery.com> 32032 32033 * tree-ssa-tail-merge.c: Update header comment. 32034 320352013-04-29 James Greenhalgh <james.greenhalgh@arm.com> 32036 32037 * config/aarch64/arm_neon.h 32038 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C. 32039 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins. 32040 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise. 32041 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise. 32042 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise. 32043 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise. 32044 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise. 32045 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise. 32046 320472013-04-29 James Greenhalgh <james.greenhalgh@arm.com> 32048 32049 * config/aarch64/aarch64-simd.md 32050 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns. 32051 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to 32052 fix_trunc, fixuns_trunc. 32053 (ftrunc<VDQF:mode>2): New. 32054 * config/aarch64/iterators.md (optab): Add fix, fixuns. 32055 (fix_trunc_optab): New. 32056 320572013-04-29 James Greenhalgh <james.greenhalgh@arm.com> 32058 32059 * config/aarch64/aarch64-builtins.c 32060 (aarch64_builtin_vectorized_function): Vectorize over ifloorf, 32061 iceilf, lround, iroundf. 32062 320632013-04-29 Uros Bizjak <ubizjak@gmail.com> 32064 32065 PR target/54349 32066 * config/i386/i386.h (enum ix86_tune_indices) 32067 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>: 32068 New, split from X86_TUNE_INTER_UNIT_MOVES. 32069 <X86_TUNE_INTER_UNIT_MOVES>: Remove. 32070 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define. 32071 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto. 32072 (TARGET_INTER_UNIT_MOVES): Remove. 32073 * config/i386/i386.c (initial_ix86_tune_features): Update. 32074 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only. 32075 (ix86_expand_convert_uns_didf_sse): Use 32076 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES. 32077 (ix86_expand_vector_init_one_nonzero): Ditto. 32078 (ix86_expand_vector_init_interleave): Ditto. 32079 (inline_secondary_memory_needed): Return true for moves from SSE class 32080 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves 32081 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets. 32082 * config/i386/constraints.md (Yi, Ym): Depend on 32083 TARGET_INTER_UNIT_MOVES_TO_VEC. 32084 (Yj, Yn): New constraints. 32085 * config/i386/i386.md (*movdi_internal): Change constraints of 32086 operand 1 from Yi to Yj and from Ym to Yn. 32087 (*movsi_internal): Ditto. 32088 (*movdf_internal): Ditto. 32089 (*movsf_internal): Ditto. 32090 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use 32091 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES. 32092 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto. 32093 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto. 32094 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto. 32095 * config/i386/sse.md (movdi_to_sse): Ditto. 32096 (sse2_stored): Change constraint of operand 1 from Yi to Yj. 32097 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of 32098 TARGET_INTER_UNIT_MOVES. 32099 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj. 32100 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC 32101 instead of TARGET_INTER_UNIT_MOVES. 32102 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of 32103 operand 1 from Yi to Yj and from Ym to Yn. 32104 321052013-04-29 James Greenhalgh <james.greenhalgh@arm.com> 32106 32107 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New. 32108 (float_truncate_hi_): Likewise. 32109 (float_extend_lo_): Likewise. 32110 (float_truncate_lo_): Likewise. 32111 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New. 32112 (aarch64_float_extend_lo_v2df): Likewise. 32113 (vec_unpacks_hi_v4sf): Likewise. 32114 (aarch64_float_truncate_lo_v2sf): Likewise. 32115 (aarch64_float_truncate_hi_v4sf): Likewise. 32116 (vec_pack_trunc_v2df): Likewise. 32117 (vec_pack_trunc_df): Likewise. 32118 321192013-04-29 James Greenhalgh <james.greenhalgh@arm.com> 32120 32121 * config/aarch64/aarch64-builtins.c 32122 (aarch64_fold_builtin): Fold float conversions. 32123 * config/aarch64/aarch64-simd-builtins.def 32124 (floatv2si, floatv4si, floatv2di): New. 32125 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise. 32126 * config/aarch64/aarch64-simd.md 32127 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns. 32128 * config/aarch64/iterators.md (FLOATUORS): New. 32129 (optab): Add float, floatuns. 32130 (su_optab): Likewise. 32131 321322013-04-29 James Greenhalgh <james.greenhalgh@arm.com> 32133 32134 * config/aarch64/aarch64-builtins.c 32135 (aarch64_builtin_vectorized_function): Use new names for 32136 fcvt builtins. 32137 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as... 32138 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This. 32139 (fcvtzu): Split as... 32140 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This. 32141 (fcvtas): Split as... 32142 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This. 32143 (fcvtau): Split as... 32144 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This. 32145 (fcvtps): Split as... 32146 (lceilv2sf, lceilv4sf, lceilv2df): ...This. 32147 (fcvtpu): Split as... 32148 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This. 32149 (fcvtms): Split as... 32150 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This. 32151 (fcvtmu): Split as... 32152 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This. 32153 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New. 32154 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise. 32155 (lfrintnusf, lfrintnudf): Likewise. 32156 * config/aarch64/aarch64-simd.md 32157 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to 32158 define_insn. 32159 (aarch64_fcvt<frint_suffix><su><mode>): Remove. 32160 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN. 32161 (fcvt_pattern): Likewise. 32162 321632013-04-29 James Greenhalgh <james.greenhalgh@arm.com> 32164 32165 * config/aarch64/aarch64-simd.md 32166 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to... 32167 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This. 32168 321692013-04-29 James Greenhalgh <james.greenhalgh@arm.com> 32170 32171 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to... 32172 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin. 32173 (vrnd<a,m,n,p>_f32): Implement using builtins. 32174 (vrnd<i,x><q>_f<32, 64>): New. 32175 321762013-04-29 James Greenhalgh <james.greenhalgh@arm.com> 32177 32178 * config/aarch64/aarch64-builtins.c 32179 (aarch64_builtin_vectorized_function): Fold to standard pattern names. 32180 * config/aarch64/aarch64-simd-builtins.def (frintn): New. 32181 (frintz): Rename to... 32182 (btrunc): ...this. 32183 (frintp): Rename to... 32184 (ceil): ...this. 32185 (frintm): Rename to... 32186 (floor): ...this. 32187 (frinti): Rename to... 32188 (nearbyint): ...this. 32189 (frintx): Rename to... 32190 (rint): ...this. 32191 (frinta): Rename to... 32192 (round): ...this. 32193 * config/aarch64/aarch64-simd.md 32194 (aarch64_frint<frint_suffix><mode>): Delete. 32195 (<frint_pattern><mode>2): Convert to insn. 32196 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN. 32197 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN. 32198 (frint_pattern): Likewise. 32199 (frint_suffix): Likewise. 32200 322012013-04-29 Richard Biener <rguenther@suse.de> 32202 32203 PR tree-optimization/57081 32204 * loop-init.c: Include tree-flow.h. 32205 (loop_optimizer_finalize): Free number of iteration estimates. 32206 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency. 32207 322082013-04-29 Jakub Jelinek <jakub@redhat.com> 32209 32210 PR tree-optimization/57083 32211 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with 32212 non-singleton shift count range, zero extend low_bound for uns case. 32213 32214 * config/i386/predicates.md (general_vector_operand): New predicate. 32215 * config/i386/i386.c (const_vector_equal_evenodd_p): New function. 32216 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register 32217 if they aren't nonimmediate operands. If their original values 32218 satisfy const_vector_equal_evenodd_p, don't shift them. 32219 * config/i386/sse.md (mul<mode>3): Use general_vector_operand 32220 predicates. For the SSE4.1 case force operands[{1,2}] into registers 32221 if not nonimmediate_operand. 32222 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates 32223 instead of register_operand. 32224 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates. 32225 322262013-04-28 Eric Botcazou <ebotcazou@adacore.com> 32227 32228 * stor-layout.c (finalize_size_functions): Allocate a structure and 32229 reset cfun before dumping the functions. 32230 322312013-04-27 Jakub Jelinek <jakub@redhat.com> 32232 32233 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned. 32234 32235 PR target/56866 32236 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't 32237 use xop_pmacsdqh if uns_p. 32238 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of 32239 the immediate rotate count. 32240 322412013-04-26 Vladimir Makarov <vmakarov@redhat.com> 32242 32243 * rtl.h (struct rtx_def): Add comment for field jump. 32244 (LRA_SUBREG_P): New macro. 32245 * recog.c (register_operand): Check LRA_SUBREG_P. 32246 * lra.c (lra): Add note at the end of RTL code. Align non-empty 32247 stack frame. 32248 * lra-spills.c (lra_spill): Align stack after spilling pseudos. 32249 (lra_final_code_change): Skip subreg change for operators. 32250 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier 32251 if there are no operand changes. 32252 * lra-constraints.c (curr_insn_set): New. 32253 (match_reload): Set LRA_SUBREG_P. 32254 (emit_spill_move): Ditto. 32255 (check_and_process_move): Use curr_insn_set. Process only single 32256 set insns. Don't initialize sec_mem_p and change_p. 32257 (simplify_operand_subreg): Use LRA_SUBREG_P. 32258 (reg_in_class_p): New function. 32259 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead 32260 of #ifdef. Add code to remove cycling. 32261 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if 32262 non-null disp. Reload inner instead of disp when base and index 32263 are null. Try to put lo_sum into register. 32264 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents. 32265 (check_and_process_move): Move code for move cost check to 32266 simple_move_p. Remove equiv_substitution. 32267 (simple_move_p): New function. 32268 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up 32269 curr_insn_set. Call check_and_process_move only for single set 32270 insns. Use the new function. Move call of check_and_process_move 32271 after operand equiv substitution and address process. 32272 322732013-04-26 Jakub Jelinek <jakub@redhat.com> 32274 32275 PR go/57045 32276 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions 32277 with nonlocal goto receivers or returns twice calls, ignore 32278 unininitialized values from abnormal edges to nl goto receiver 32279 or returns twice call. 32280 322812013-04-26 Jakub Jelinek <jakub@redhat.com> 32282 32283 PR tree-optimization/57051 32284 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR 32285 and VEC_RSHIFT_EXPR if shift count is a multiple of element 32286 bitsize. 32287 322882013-04-26 Richard Biener <rguenther@suse.de> 32289 32290 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops. 32291 (expand_omp_taskreg): Likewise. Mark loops for fixup. 32292 * tree-cfg.c (move_block_to_fn): Remap loop fathers. 32293 (fixup_loop_arrays_after_move): New function. 32294 (move_sese_region_to_fn): Properly outline the loop tree parts 32295 of the SESE region. 32296 322972013-04-26 Uros Bizjak <ubizjak@gmail.com> 32298 32299 * config/i386/i386.md (type, unit): Fix long lines. 32300 323012013-04-26 Richard Biener <rguenther@suse.de> 32302 32303 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency. 32304 (lto-streamer-out.o): Likewise. 32305 * cfgloop.c (init_loops_structure): Export, add struct function 32306 argument and adjust. 32307 (flow_loops_find): Adjust. 32308 * cfgloop.h (enum loop_estimation): Add EST_LAST. 32309 (init_loops_structure): Declare. 32310 * lto-streamer-in.c: Include cfgloop.h. 32311 (input_cfg): Input the loop tree. 32312 * lto-streamer-out.c: Include cfgloop.h. 32313 (output_cfg): Output the loop tree. 32314 (output_struct_function_base): Do not drop PROP_loops. 32315 323162013-03-26 Richard Biener <rguenther@suse.de> 32317 32318 * tree-cfg.c (execute_build_cfg): Build the loop tree. 32319 (pass_build_cfg): Provide PROP_loops. 32320 (move_sese_region_to_fn): Remove loops that are outlined into fn 32321 for now. 32322 * tree-inline.c: Include cfgloop.h. 32323 (initialize_cfun): Do not drop PROP_loops. 32324 (copy_loops): New function. 32325 (copy_cfg_body): Copy loop structure. 32326 (tree_function_versioning): Initialize destination loop tree. 32327 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops. 32328 (pass_parallelize_loops): Do IL verification. 32329 * loop-init.c (loop_optimizer_init): Fixup loops if required. 32330 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup 32331 the CFG make sure we fixup loops as well. 32332 * tree-ssa-tail-merge.c: Include cfgloop.h. 32333 (replace_block_by): When merging loop latches mark loops for fixup. 32334 * lto-streamer-out.c (output_struct_function_base): Drop 32335 PROP_loops for now. 32336 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h. 32337 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV. 32338 * ipa-split.c: Include cfgloop.h. 32339 (split_function): Add the new return block to the loop tree root. 32340 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return 32341 whether we have removed the forwarder block. 32342 (merge_phi_nodes): If we removed a forwarder mark loops for fixup. 32343 * cfgloop.h (place_new_loop): Declare. 32344 * cfgloopmanip.c (place_new_loop): Export. 32345 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency. 32346 (tree-switch-conversion.o): Likewise. 32347 (tree-complex.o): Likewise. 32348 (tree-inline.o): Likewise. 32349 (tree-ssa-tailmerge.o): Likewise. 32350 (ipa-split.o): Likewise. 32351 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency. 32352 (tree-ssa-copy.o): Likewise. 32353 * tree-switch-conversion.c: Include cfgloop.h 32354 (process_switch): If we emit a bit-test cascade, schedule loops 32355 for fixup. 32356 * tree-complex.c: Include cfgloop.h. 32357 (expand_complex_div_wide): Properly add new basic-blocks to loops. 32358 * asan.c: Include cfgloop.h. 32359 (create_cond_insert_point): Properly add new basic-blocks to 32360 loops, schedule loop fixup. 32361 * cfgloop.c (verify_loop_structure): Check that looks are not 32362 marked for fixup. 32363 * omp-low.c (expand_parallel_call): Properly add new basic-blocks 32364 to loops. 32365 (expand_omp_for_generic): Likewise. 32366 (expand_omp_sections): Likewise. 32367 (expand_omp_atomic_pipeline): Schedule loops for fixup. 32368 * tree-ssa-copy.c: Include tree-scalar-evolution.h. 32369 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV 32370 is initialized, not when loops are present. 32371 * tree-parloops.c (parallelize_loops): Remove checking here. 32372 * passes.c (init_optimization_passes): Schedule a copy-propagation 32373 pass before complete unrolling of inner loops. 32374 323752013-04-26 Jakub Jelinek <jakub@redhat.com> 32376 32377 * Makefile.in (toplev.o): Depend on diagnostic-color.h. 32378 * diagnostic-color.c (should_colorize): Remove _WIN32 version. 32379 (colorize_init): Add argument to _WIN32 version. 32380 * toplev.c: Include diagnostic-color.h. 32381 (process_options): Default to -fdiagnostics-color=auto if 32382 GCC_COLORS env var is in the environment. 32383 * common.opt (fdiagnostics-color=): Add Var and Init. 32384 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS 32385 env var is in the environment, the default is auto rather than never. 32386 32387 * diagnostic.h (file_name_as_prefix): Add context argument. 32388 * diagnostic.c (file_name_as_prefix): Likewise. Colorize 32389 the string as locus. 32390 * langhooks.c (lhd_print_error_function): Adjust caller. 32391 323922013-04-25 Lawrence Crowl <crowl@google.com> 32393 32394 * var-tracking.c (shared_hash_def::htab): 32395 Change type to hash_table. Update dependent calls and types. 32396 323972013-04-25 Lawrence Crowl <crowl@google.com> 32398 32399 * Makefile.in: Update as needed below. 32400 32401 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash): 32402 Move declaration to after the type's method definitons. 32403 32404 * attribs.c (htab_t scoped_attributes::attribute_hash): 32405 Change type to hash_table. Update dependent calls and types. 32406 32407 * bitmap.c (htab_t bitmap_desc_hash): 32408 Change type to hash_table. Update dependent calls and types. 32409 32410 * cselib.c (htab_t cselib_hash_table): 32411 Change type to hash_table. Update dependent calls and types. 32412 32413 * data-streamer.h (struct string_slot): Move to lto-streamer.h. 32414 (hash_string_slot_node): Move implementation into lto-streamer.h 32415 struct string_slot_hasher. 32416 (eq_string_slot_node): Likewise. 32417 32418 * data-streamer-out.c: Update output_block::string_hash_table 32419 dependent calls and types. 32420 32421 * dwarf2cfi.c (htab_t trace_index): 32422 Change type to hash_table. Update dependent calls and types. 32423 32424 * dwarf2out.c (htab_t break_out_includes::cu_hash_table): 32425 Change type to hash_table. Update dependent calls and types. 32426 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise. 32427 (htab_t optimize_external_refs::map): Likewise. 32428 (htab_t output_comp_unit::extern_map): Likewise. 32429 (htab_t output_comdat_type_unit::extern_map): Likewise. 32430 (htab_t output_macinfo::macinfo_htab): Likewise. 32431 (htab_t optimize_location_lists::htab): Likewise. 32432 (htab_t dwarf2out_finish::comdat_type_table): Likewise. 32433 32434 * except.c (htab_t ehspec_hash_type): 32435 Change type to hash_table. Update dependent calls and types. 32436 (assign_filter_values::ttypes): Likewise. 32437 (assign_filter_values::ehspec): Likewise. 32438 (sjlj_assign_call_site_values::ar_hash): Likewise. 32439 (convert_to_eh_region_ranges::ar_hash): Likewise. 32440 32441 * gcse.c (htab_t pre_ldst_table): 32442 Change type to hash_table. Update dependent calls and types. 32443 32444 * ggc-common.c (htab_t saving_htab): 32445 Change type to hash_table. Update dependent calls and types. 32446 (htab_t loc_hash): Likewise. 32447 (htab_t ptr_hash): Likewise. 32448 (call_count): Rename ggc_call_count. 32449 (call_alloc): Rename ggc_call_alloc. 32450 (loc_descriptor): Rename make_loc_descriptor. 32451 (add_statistics): Rename ggc_add_statistics. 32452 32453 * ggc-common.c (saving_htab): 32454 Change type to hash_table. Update dependent calls and types. 32455 32456 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h. 32457 (push_gimplify_context): Likewise. 32458 (pop_gimplify_context): Likewise. 32459 (struct gimple_temp_hash_elt): Added. 32460 (struct gimplify_hasher): Likewise. 32461 (struct gimplify_ctx.temp_htab): 32462 Change type to hash_table. Update dependent calls and types. 32463 32464 * gimple-fold.c: Include gimplify-ctx.h. 32465 32466 * gimple-ssa-strength-reduction.c (htab_t base_cand_map): 32467 Change type to hash_table. Update dependent calls and types. 32468 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to 32469 avoid potential global name collision. 32470 32471 * gimplify.c: Include gimplify-ctx.h. 32472 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h. 32473 (htab_t gimplify_ctx::temp_htab): 32474 Update dependent calls and types for new type hash_table. 32475 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h. 32476 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h. 32477 32478 * gimplify-ctx.h: New. 32479 (struct gimple_temp_hash_elt): Move from gimplify.c. 32480 (class gimplify_hasher): New. 32481 (struct gimplify_ctx): Move from gimple.h. 32482 (htab_t gimplify_ctx::temp_htab): 32483 Change type to hash_table. Update dependent calls and types. 32484 32485 * graphite-clast-to-gimple.c: Include graphite-htab.h. 32486 (htab_t ivs_params::newivs_index): 32487 Change type to hash_table. Update dependent calls and types. 32488 (htab_t ivs_params::params_index): Likewise. 32489 (htab_t print_generated_program::params_index): Likewise. 32490 (htab_t gloog::newivs_index): Likewise. 32491 (htab_t gloog::params_index): Likewise. 32492 32493 * graphite.c: Include graphite-htab.h. 32494 4htab_t graphite_transform_loops::bb_pbb_mapping): 32495 Change type to hash_table. Update dependent calls and types. 32496 32497 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h. 32498 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h. 32499 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h. 32500 32501 * graphite-dependences.c: Include graphite-htab.h. 32502 (loop_is_parallel_p): Change hash table type of parameter. 32503 32504 * graphite-htab.h: New. 32505 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New. 32506 (extern find_pbb_via_hash): Move from graphite-poly.h. 32507 (extern loop_is_parallel_p): Move from graphite-poly.h. 32508 (extern get_loop_body_pbbs): Move from graphite-poly.h. 32509 32510 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h. 32511 (extern loop_is_parallel_p): Move to graphite-htab.h. 32512 (extern get_loop_body_pbbs): Move to graphite-htab.h. 32513 32514 * haifa-sched.c (htab_t delay_htab): 32515 Change type to hash_table. Update dependent calls and types. 32516 (htab_t delay_htab_i2): Likewise. 32517 32518 * ira-color.c (htab_t allocno_hard_regs_htab): 32519 Change type to hash_table. Update dependent calls and types. 32520 32521 * ira-costs.c (htab_t cost_classes_htab): 32522 Change type to hash_table. Update dependent calls and types. 32523 32524 * loop-invariant.c (htab_t merge_identical_invariants::eq): 32525 Change type to hash_table. Update dependent calls and types. 32526 32527 * loop-iv.c (htab_t bivs): 32528 Change type to hash_table. Update dependent calls and types. 32529 32530 * loop-unroll.c (htab_t opt_info::insns_to_split): 32531 Change type to hash_table. Update dependent calls and types. 32532 (htab_t opt_info::insns_with_var_to_expand): Likewise. 32533 32534 * lto-streamer.h (struct string_slot): Move from data-streamer.h 32535 (struct string_slot_hasher): New. 32536 (htab_t output_block::string_hash_table): 32537 Change type to hash_table. Update dependent calls and types. 32538 32539 * lto-streamer-in.c (freeing_string_slot_hasher): New. 32540 (htab_t file_name_hash_table): 32541 Change type to hash_table. Update dependent calls and types. 32542 32543 * lto-streamer-out.c: Update output_block::string_hash_table dependent 32544 calls and types. 32545 32546 * lto-streamer.c (htab_t tree_htab): 32547 Change type to hash_table. Update dependent calls and types. 32548 32549 * omp-low.c: Include gimplify-ctx.h. 32550 32551 * passes.c (htab_t name_to_pass_map): 32552 Change type to hash_table. Update dependent calls and types. 32553 (pass_traverse): Rename to passes_pass_traverse. 32554 32555 * plugin.c (htab_t event_tab): 32556 Change type to hash_table. Update dependent calls and types. 32557 32558 * postreload-gcse.c (htab_t expr_table): 32559 Change type to hash_table. Update dependent calls and types. 32560 (dump_hash_table_entry): Rename dump_expr_hash_table_entry. 32561 32562 * sese.c (debug_rename_map_1): Make extern. 32563 (htab_t copy_bb_and_scalar_dependences::rename_map): 32564 Change type to hash_table. Update dependent calls and types. 32565 32566 * sese.h (extern debug_rename_map): Move to .c file. 32567 32568 * store-motion.c (htab_t store_motion_mems_table): 32569 Change type to hash_table. Update dependent calls and types. 32570 32571 * trans-mem.c (htab_t tm_new_mem_hash): 32572 Change type to hash_table. Update dependent calls and types. 32573 32574 * tree-browser.c (htab_t TB_up_ht): 32575 Change type to hash_table. Update dependent calls and types. 32576 32577 * tree-cfg.c (htab_t discriminator_per_locus): 32578 Change type to hash_table. Update dependent calls and types. 32579 32580 * tree-complex.c: Include tree-hasher.h 32581 (htab_t complex_variable_components): 32582 Change type to hash_table. Update dependent calls and types. 32583 32584 * tree-eh.c (htab_t finally_tree): 32585 Change type to hash_table. Update dependent calls and types. 32586 32587 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher 32588 struct int_tree_hasher. 32589 (extern int_tree_map_eq): Likewise. 32590 (uid_decl_map_hash): Removed. 32591 (extern decl_tree_map_eq): Likewise. 32592 32593 * tree-hasher.h: New. 32594 (struct int_tree_hasher): New. 32595 (typedef int_tree_htab_type): New. 32596 32597 * tree-inline.c: Include gimplify-ctx.h. 32598 32599 * tree-mudflap.c: Include gimplify-ctx.h. 32600 32601 * tree-parloops.c: Include tree-hasher.h. 32602 (htab_t eliminate_local_variables_stmt::decl_address): 32603 Change type to hash_table. Update dependent calls and types. 32604 (htab_t separate_decls_in_region::decl_copies): Likewise. 32605 32606 * tree-scalar-evolution.c (htab_t resolve_mixers::cache): 32607 Change type to hash_table. Update dependent calls and types. 32608 32609 * tree-sra.c (candidates): 32610 Change type to hash_table. Update dependent calls and types. 32611 32612 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher 32613 in tree-flow.h. 32614 (int_tree_map_hash): Likewise. 32615 32616 * tree-ssa-dom.c (htab_t avail_exprs): 32617 Change type to hash_table. Update dependent calls and types. 32618 32619 * tree-ssa-live.c (var_map_base_init::tree_to_index): 32620 Change type to hash_table. Update dependent calls and types. 32621 32622 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab): 32623 Change type to hash_table. Update dependent calls and types. 32624 32625 * tree-ssa-phiopt.c (seen_ssa_names): 32626 Change type to hash_table. Update dependent calls and types. 32627 32628 * tree-ssa-strlen.c (decl_to_stridxlist_htab): 32629 Change type to hash_table. Update dependent calls and types. 32630 32631 * tree-ssa-uncprop.c (equiv): 32632 Change type to hash_table. Update dependent calls and types. 32633 326342013-04-25 Jakub Jelinek <jakub@redhat.com> 32635 32636 PR rtl-optimization/57003 32637 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg, 32638 call note_stores with kill_clobbered_value callback again after 32639 killing regs_invalidated_by_call. 32640 326412013-04-25 James Greenhalgh <james.greenhalgh@arm.com> 32642 32643 * config/aarch64/aarch64-simd.md 32644 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL. 32645 (aarch64_simd_bsl<mode>): Likewise. 32646 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL. 32647 326482013-04-25 Marek Polacek <polacek@redhat.com> 32649 32650 PR tree-optimization/57066 32651 * builtins.c (fold_builtin_logb): Return +Inf for -Inf. 32652 326532013-04-25 James Greenhalgh <james.greenhalgh@arm.com> 32654 32655 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator. 32656 326572013-04-25 James Greenhalgh <james.greenhalgh@arm.com> 32658 32659 * config/aarch64/aarch64-builtins.c 32660 (aarch64_fold_builtin): New. 32661 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New. 32662 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define. 32663 * config/aarch64/aarch64-simd-builtins.def (abs): New. 32664 * config/aarch64/arm_neon.h 32665 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs. 32666 326672013-04-25 James Greenhalgh <james.greenhalgh@arm.com> 32668 Tejas Belagod <tejas.belagod@arm.com> 32669 32670 * config/aarch64/aarch64-builtins.c 32671 (aarch64_gimple_fold_builtin): New. 32672 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New. 32673 * config/aarch64/aarch64-simd-builtins.def (addv): New. 32674 * config/aarch64/aarch64-simd.md (addpv4sf): New. 32675 (addvv4sf): Update. 32676 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define. 32677 326782013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> 32679 32680 * config/aarch64/aarch64.md 32681 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern. 32682 326832013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> 32684 32685 * config/aarch64/aarch64.md (*ngc<mode>): New pattern. 32686 (*ngcsi_uxtw): New pattern. 32687 326882013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 32689 Julian Brown <julian@codesourcery.com> 32690 32691 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF. 32692 (TB_DREG): Add T_V4HF. 32693 (v4hf_UP): New macro. 32694 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW. 32695 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW. 32696 Handle initialisation of V4HF. Adjust initialisation of reinterpret 32697 built-ins. 32698 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW. 32699 (arm_vector_mode_supported_p): Handle V4HF. 32700 (arm_mangle_map): Handle V4HFmode. 32701 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF. 32702 * config/arm/arm_neon_builtins.def: Add entries for 32703 vcvtv4hfv4sf, vcvtv4sfv4hf. 32704 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern. 32705 (neon_vcvtv4hfv4sf): Likewise. 32706 * config/arm/neon-gen.ml: Handle half-precision floating point 32707 features. 32708 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature. 32709 * config/arm/arm_neon.h: Regenerate. 32710 * config/arm/neon.ml (type elts): Add F16. 32711 (type vectype): Add T_float16x4, T_floatHF. 32712 (type vecmode): Add V4HF. 32713 (type features): Add Requires_FP_bit feature. 32714 (elt_width): Handle F16. 32715 (elt_class): Likewise. 32716 (elt_of_class_width): Likewise. 32717 (mode_of_elt): Refactor. 32718 (type_for_elt): Handle F16, fix error messages. 32719 (vectype_size): Handle T_float16x4. 32720 (vcvt_sh): New function. 32721 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16. 32722 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4. 32723 (string_of_mode): Handle V4HF. 32724 * doc/arm-neon-intrinsics.texi: Regenerate. 32725 327262013-04-25 James Greenhalgh <james.greenhalgh@arm.com> 32727 32728 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf 32729 format specifier in 'X' case. 32730 327312013-04-25 Alan Modra <amodra@gmail.com> 32732 32733 PR target/57052 32734 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to 32735 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN. 32736 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn. 32737 Repeat for many other rotate/shift and mask patterns using subregs. 32738 Name lshiftrt insns. 32739 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition 32740 on WORDS_BIG_ENDIAN. 32741 327422013-04-25 Alan Modra <amodra@gmail.com> 32743 32744 * config.gcc: Support little-endian powerpc-linux targets. 32745 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define. 32746 (LINK_OS_LINUX_SPEC): Define. 32747 * config/rs6000/linuxspe.h (TARGET_DEFAULT): 32748 Preserve MASK_LITTLE_ENDIAN. 32749 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise. 32750 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise. 32751 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero. 32752 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define. 32753 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above. 32754 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF. 32755 Correct fp word order for little-endian. Don't shift toc entries 32756 smaller than a word for little-endian. 32757 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment. 32758 (bswapdi2 splits): Correct low-part subreg for little-endian. 32759 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove 32760 low/high where such is correct only for be. 32761 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow 32762 little-endian for -mcall-aixdesc. 32763 327642013-04-25 Alan Modra <amodra@gmail.com> 32765 32766 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use 32767 replace_equiv_address_nv. 32768 327692013-04-25 Alan Modra <amodra@gmail.com> 32770 32771 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy. 32772 327732013-04-24 Vladimir Makarov <vmakarov@redhat.com> 32774 32775 Revert: 32776 2013-04-24 Vladimir Makarov <vmakarov@redhat.com> 32777 * rtl.h (struct rtx_def): ... 32778 327792013-04-24 Vladimir Makarov <vmakarov@redhat.com> 32780 32781 PR rtl-optimizations/57046 32782 * lra-constraints (split_reg): Set up lra_risky_transformations_p 32783 for multi-reg splits. 32784 327852013-04-24 H.J. Lu <hongjiu.lu@intel.com> 32786 32787 * config/i386/x86-64.h (ASM_SPEC): Support -mx32. 32788 327892013-04-24 Sterling Augustine <saugustine@google.com> 32790 32791 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string) 32792 (comp_dir_string, debug_str_dwo_section): New. 32793 (DEBUG_STR_DWO_SECTION): Rename to ... 32794 (DEBUG_DWO_STR_SECTION): ... this. 32795 (DEBUG_NORM_STR_SECTION): Delete. 32796 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions. 32797 (DEBUG_STR_DWO_SECTION_FLAGS): New. 32798 (find_AT_string): Move most logic to ... 32799 (find_AT_string_in_table): ... here. New. 32800 (add_top_level_skeleton_die_attrs): Call comp_dir_string and 32801 add_skeleton_AT_string. Delete logic. 32802 (output_skeleton_debug_sections): Remove call to 32803 add_top_level_skeleton_die_attrs. 32804 (add_comp_dir_attribute): Move logic to comp_dir_string. 32805 (dwarf2out_init): Initialize debug_str_dwo_section. 32806 (output_indirect_string): Call find_string_form. 32807 (output_indirect_strings): Rewrite. 32808 (prune_unused_types): Empty skeleton_debug_str_hash. 32809 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs. 32810 (dwarf2out_finish): Call output_indirect_strings. 32811 328122013-04-24 Paolo Carlini <paolo.carlini@oracle.com> 32813 32814 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__. 32815 328162013-04-24 Vladimir Makarov <vmakarov@redhat.com> 32817 32818 * rtl.h (struct rtx_def): Add comment for field jump. 32819 (LRA_SUBREG_P): New macro. 32820 * recog.c (register_operand): Check LRA_SUBREG_P. 32821 * lra.c (lra): Add note at the end of RTL code. Align non-empty 32822 stack frame. 32823 * lra-spills.c (lra_spill): Align stack after spilling pseudos. 32824 (lra_final_code_change): Skip subreg change for operators. 32825 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier 32826 if there are no operand changes. 32827 * lra-constraints.c (curr_insn_set): New. 32828 (match_reload): Set LRA_SUBREG_P. 32829 (emit_spill_move): Ditto. 32830 (check_and_process_move): Use curr_insn_set. Process only single 32831 set insns. Don't initialize sec_mem_p and change_p. 32832 (simplify_operand_subreg): Use LRA_SUBREG_P. 32833 (reg_in_class_p): New function. 32834 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead 32835 of #ifdef. Add code to remove cycling. 32836 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if 32837 non-null disp. Reload inner instead of disp when base and index 32838 are null. Try to put lo_sum into register. 32839 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents. 32840 (check_and_process_move): Move code for move cost check to 32841 simple_move_p. Remove equiv_substitution. 32842 (simple_move_p): New function. 32843 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up 32844 curr_insn_set. Call check_and_process_move only for single set 32845 insns. Use the new function. Move call of check_and_process_move 32846 after operand equiv substitution and address process. 32847 328482013-04-24 James Greenhalgh <james.greenhalgh@arm.com> 32849 32850 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints. 32851 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise. 32852 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise. 32853 328542013-04-24 Paolo Carlini <paolo.carlini@oracle.com> 32855 32856 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__. 32857 328582013-04-24 Marek Polacek <polacek@redhat.com> 32859 32860 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove. 32861 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise. 32862 (select_loops_exit_conditions): Likewise. 32863 (number_of_iterations_for_all_loops): Likewise. 32864 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise. 32865 (scev_analysis): Likewise. 32866 328672013-04-02 Catherine Moore <clm@codesourcery.com> 32868 Chao-ying Fu <fu@mips.com> 32869 32870 * config/mips/micromips.md (jraddiusp): New pattern. 32871 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP 32872 instruction if possible. 32873 328742013-04-24 Alan Modra <amodra@gmail.com> 32875 32876 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto. 32877 328782013-04-24 Julian Brown <julian@codesourcery.com> 32879 Chung-Lin Tang <cltang@codesourcery.com> 32880 32881 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT 32882 dependency behavior in enumeration type DIE generation. Add TODO note 32883 to comments about future DW_FORM_sdata/udata re-work of related code. 32884 328852013-04-23 Lawrence Crowl <crowl@google.com> 32886 32887 * Makefile.in: Update as needed below. 32888 32889 * hash-table.h (class hash_table): 32890 Correct many methods with parameter types compare_type to the correct 32891 value_type. (Correct code was unlikely to notice the change.) 32892 (hash_table::elements_with_deleted) New. 32893 (class hashtable::iterator): New. 32894 (hashtable::begin()): New. 32895 (hashtable::end()): New. 32896 (FOR_EACH_HASH_TABLE_ELEMENT): New. 32897 32898 * statistics.c (statistics_hashes): 32899 Change type to hash_table. Update dependent calls and types. 32900 32901 * tree-into-ssa.c (var_infos): 32902 Change type to hash_table. Update dependent calls and types. 32903 32904 * tree-ssa-coalesce.c (struct coalesce_list_d.list): 32905 Change type to hash_table. Update dependent calls and types. 32906 32907 * tree-ssa-loop-im.c (struct mem_ref.refs): 32908 Change type to hash_table. Update dependent calls and types. 32909 32910 * tree-ssa-reassoc.c (undistribute_ops_list::ctable): 32911 Change type to hash_table. Update dependent calls and types. 32912 32913 * tree-ssa-sccvn.c (vn_tables_s::nary): 32914 Change type to hash_table. Update dependent calls and types. 32915 (vn_tables_s::phis): Likewise. 32916 (vn_tables_s::references): Likewise. 32917 32918 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types. 32919 (vn_reference_eq): Update parameter and return types. 32920 32921 * tree-ssa-structalias.c (pointer_equiv_class_table): 32922 Change type to hash_table. Update dependent calls and types. 32923 (location_equiv_class_table): Likewise. 32924 32925 * tree-vect-data-refs.c: Consequential changes for making 32926 peeling a hash_table. 32927 32928 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update. 32929 (destroy_loop_vec_info): Dependent hash_table update. 32930 32931 * tree-vectorizer.h (peeling_htab): 32932 Change type to hash_table. Update dependent calls and types. 32933 329342013-04-23 Shiva Chen <shiva0217@gmail.com> 32935 32936 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p 32937 to check the register content is equal or not. 32938 * lra-constraints.c (match_reload): Use lra_assign_reg_val 32939 to assign register content record. 32940 * lra-eliminations.c (update_reg_eliminate): Use 32941 lra_update_reg_val_offset to update register content offset. 32942 * lra-int.h (struct lra_reg): Add offset member. 32943 (lra_reg_val_equal_p): New static inline function. 32944 (lra_update_reg_val_offset): New static inline function. 32945 (lra_assign_reg_val): New static inline function. 32946 * lra.c (lra_create_new_reg): Use lra_assign_reg_val 32947 to assign register content record. 32948 (initialize_lra_reg_info_element): Initial offset to zero. 32949 329502013-04-23 Catherine Moore <clm@codesourcery.com> 32951 32952 * config/mips/mips.md (*movhi_internal, *movqi_internal): New 32953 operands. Record compression. 32954 329552013-04-23 Xinliang David Li <davidxl@google.com> 32956 32957 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump. 32958 329592013-04-23 Richard Biener <rguenther@suse.de> 32960 32961 PR middle-end/57036 32962 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto 32963 parameter, only add abnormal goto edges from the copied body 32964 if the call could perform abnormal gotos. 32965 (copy_cfg_body): Adjust. 32966 329672013-04-23 Sofiane Naci <sofiane.naci@arm.com> 32968 32969 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute. 32970 329712013-04-23 Andreas Schwab <schwab@linux-m68k.org> 32972 32973 * coretypes.h (gimple_stmt_iterator): Add struct to make 32974 compatible with C. 32975 329762013-04-23 Richard Biener <rguenther@suse.de> 32977 32978 PR tree-optimization/57026 32979 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate 32980 from SSA names occuring in abnormal PHI nodes. 32981 329822013-04-22 Andi Kleen <ak@linux.intel.com> 32983 32984 * lto/lto.c (print_lto_report_1): Fix LTO report names. 32985 329862013-04-22 Andi Kleen <ak@linux.intel.com> 32987 32988 * lto/lto.c (print_lto_report_1): Declare early. 32989 (read_cgraph_and_symbols): Call print_lto_report_1 early. 32990 329912013-04-22 Andi Kleen <ak@linux.intel.com> 32992 32993 * common.opt (-flto-report-wpa): Add. 32994 * doc/invoke.texi (-flto-report-wpa): Add. 32995 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa. 32996 (lto_main): dito. 32997 329982013-04-22 Xinliang David Li <davidxl@google.com> 32999 33000 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label. 33001 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency. 33002 * Makefile.in: New dependency 33003 33004 David Daney <ddaney.cavm@gmail.com> 33005 33006 * configure.ac (gcc_cv_as_micromips_support): Use the 33007 --fatal-warnings option. 33008 * configure: Regenerate. 33009 330102013-04-22 Marek Polacek <polacek@redhat.com> 33011 33012 PR sanitizer/56990 33013 * tsan.c (instrument_expr): Don't instrument expression 33014 in case its size is zero. 33015 330162013-04-22 Uros Bizjak <ubizjak@gmail.com> 33017 33018 PR target/57032 33019 Revert: 33020 2013-03-17 Uros Bizjak <ubizjak@gmail.com> 33021 33022 * config/alpha/alpha.c (TARGET_LRA_P): New define. 33023 330242013-04-22 James Greenhalgh <james.greenhalgh@arm.com> 33025 33026 * coretypes.h (gimple_stmt_iterator_d): Forward declare. 33027 (gimple_stmt_iterator): New typedef. 33028 * gimple.h (gimple_stmt_iterator): Rename to... 33029 (gimple_stmt_iterator_d): ... This. 33030 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that 33031 trees be valid for GIMPLE and GENERIC. 33032 (TARGET_GIMPLE_FOLD_BUILTIN): New. 33033 * gimple-fold.c (gimple_fold_call): Call target hook 33034 gimple_fold_builtin. 33035 * hooks.c (hook_bool_gsiptr_false): New. 33036 * hooks.h (hook_bool_gsiptr_false): New. 33037 * target.def (fold_stmt): New. 33038 * doc/tm.texi: Regenerate. 33039 330402013-04-22 Vladimir Makarov <vmakarov@redhat.com> 33041 33042 PR target/57018 33043 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of 33044 a set sp if no stack realignment. 33045 330462013-04-22 Nick Clifton <nickc@redhat.com> 33047 33048 * config.gcc (tilegx-linux): Extend extra_objs rather than 33049 overwriting it. 33050 (tilepro-linux): Likewise. 33051 330522013-04-22 James Greenhalgh <james.greenhalgh@arm.com> 33053 33054 * config/aarch64/aarch64-builtins.c 33055 (CF): Remove. 33056 (CF0, CF1, CF2, CF3, CF4, CF10): New. 33057 (VAR<1-12>): Add MAP parameter. 33058 (BUILTIN_*): Likewise. 33059 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter. 33060 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove. 33061 (aarch64_ushl_n<mode>): Likewise. 33062 (aarch64_sshr_n<mode>): Likewise. 33063 (aarch64_ushr_n<mode>): Likewise. 33064 (aarch64_<maxmin><mode>): Likewise. 33065 (aarch64_sqrt<mode>): Likewise. 33066 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names. 33067 (vshr<q>_n_*): Likewise. 33068 330692013-04-22 James Greenhalgh <james.greenhalgh@arm.com> 33070 33071 * config/aarch64/aarch64-builtins.c 33072 (aarch64_simd_builtin_type_mode): Handle SF types. 33073 (sf_UP): Define. 33074 (BUILTIN_GPF): Define. 33075 (aarch64_init_simd_builtins): Handle SF types. 33076 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support. 33077 (frecps): Likewise. 33078 (frecpx): Likewise. 33079 * config/aarch64/aarch64-simd.md 33080 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>. 33081 (aarch64_frecpe<mode>): New. 33082 (aarch64_frecps<mode>): Likewise. 33083 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>. 33084 (v8type): Add frecp<esx>. 33085 (aarch64_frecp<FRECP:frecp_suffix><mode>): New. 33086 (aarch64_frecps<mode>): Likewise. 33087 * config/aarch64/iterators.md (FRECP): New. 33088 (frecp_suffix): Likewise. 33089 * config/aarch64/arm_neon.h 33090 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins. 33091 330922013-04-22 Christian Bruel <christian.bruel@st.com> 33093 33094 PR target/56995 33095 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS. 33096 (REG_CLASS_NAMES): Idem. 33097 (REG_CLASS_CONTENTS): Idem. 33098 (REGCLASS_HAS_FP_REG): Idem. 33099 * config/sh/sh.c (sh_cannot_change_mode_class): Idem. 33100 (sh_conditional_register_usage): Idem. 33101 331022013-04-21 Jeff Law <law@redhat.com> 33103 33104 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function. 33105 (ssa_forward_propagate_and_combine): Use it. 33106 331072013-04-19 Vladimir Makarov <vmakarov@redhat.com> 33108 33109 * lra.c: Update the flow chart diagram. 33110 331112013-04-19 Vladimir Makarov <vmakarov@redhat.com> 33112 33113 PR rtl-optimization/56847 33114 * lra-constraints.c (process_alt_operands): Discourage alternative 33115 with non-matche doffsettable memory constraint fro memory with 33116 known offset. 33117 331182013-04-19 Richard Biener <rguenther@suse.de> 33119 33120 PR tree-optimization/56982 33121 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf 33122 function. 33123 * gimplify.c (gimplify_call_expr): Notice special calls. 33124 (gimplify_modify_expr): Likewise. 33125 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like 33126 abnormal control flow receivers. 33127 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp 33128 in the same way as cfun->has_nonlocal_labels. 33129 (gimple_purge_dead_abnormal_call_edges): Likewise. 33130 (stmt_starts_bb_p): Make setjmp-like abnormal control flow 33131 receivers start a basic-block. 33132 331332013-04-19 Richard Biener <rguenther@suse.de> 33134 33135 * tree-vectorizer.h (struct _slp_instance): Move load_permutation 33136 member ... 33137 (struct _slp_tree): ... here. Make it a vector of unsigned ints. 33138 (SLP_INSTANCE_LOAD_PERMUTATION): Remove. 33139 (SLP_TREE_LOAD_PERMUTATION): Add. 33140 (vect_transform_slp_perm_load): Adjust prototype. 33141 * tree-vect-slp.c (vect_free_slp_tree): Adjust. 33142 (vect_free_slp_instance): Likewise. 33143 (vect_create_new_slp_node): Likewise. 33144 (vect_supported_slp_permutation_p): Remove. 33145 (vect_slp_rearrange_stmts): Adjust. 33146 (vect_supported_load_permutation_p): Likewise. Inline 33147 vect_supported_slp_permutation_p here. 33148 (vect_analyze_slp_instance): Compute load permutations per 33149 slp node instead of per instance. 33150 (vect_get_slp_defs): Adjust. 33151 (vect_transform_slp_perm_load): Likewise. 33152 (vect_schedule_slp_instance): Remove redundant code. 33153 (vect_schedule_slp): Remove hack for PR56270, add it ... 33154 * tree-vect-stmts.c (vectorizable_load): ... here, do not 33155 CSE loads for SLP. Adjust. 33156 331572013-04-19 Greta Yorsh <Greta.Yorsh@arm.com> 33158 33159 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix 33160 spelling in two comments. 33161 331622013-04-19 Greta Yorsh <Greta.Yorsh@arm.com> 33163 33164 PR target/56797 33165 * config/arm/arm.c (load_multiple_sequence): Require SP 33166 as base register for loads if SP is in the register list. 33167 331682013-04-19 Martin Jambor <mjambor@suse.cz> 33169 33170 PR tree-optimization/56718 33171 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved... 33172 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed 33173 and made public. Adjusted all callers. 33174 (ipa_intraprocedural_devirtualization): New function. 33175 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare. 33176 (ipa_intraprocedural_devirtualization): Likewise. 33177 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies. 33178 331792013-04-19 Richard Biener <rguenther@suse.de> 33180 33181 PR tree-optimization/57000 33182 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals. 33183 331842013-04-19 Terry Guo <terry.guo@arm.com> 33185 33186 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit. 33187 Replace with ... 33188 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units. 33189 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations. 33190 (cortex_m4_fmacs): Use new reservations. 33191 (cortex_m4_f_load, cortex_m4_f_store): Likewise. 33192 331932013-04-18 Vladimir Makarov <vmakarov@redhat.com> 33194 33195 PR rtl-optimization/56999 33196 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and 33197 related code. 33198 (lra_coalesce): Remove split_origin_bitmap and related code. 33199 * lra.c (lra): Coalesce after undoing inheritance. Recreate live 33200 ranges if necessary. 33201 332022013-04-18 Uros Bizjak <ubizjak@gmail.com> 33203 33204 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): 33205 New array. 33206 (ix86_expand_call): Remove clobbered_registers array and use 33207 x86_64_ms_sysv_extra_clobbered_registers instead. 33208 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers): 33209 Declare here. 33210 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New 33211 predicate. 33212 * config/i386/i386.md (*call_rex64_ms_sysv): Use 33213 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers. 33214 (*call_value_rex64_ms_sysv): Ditto. 33215 332162013-04-18 Cary Coutant <ccoutant@google.com> 33217 33218 * dwarf2out.c (output_pubnames): Check die_perennial_p of 33219 parent instead of die_mark. 33220 332212013-04-18 Diego Novillo <dnovillo@google.com> 33222 33223 * gimple.c (create_gimple_tmp): New. 33224 (get_expr_type): New. 33225 (build_assign): New. 33226 (build_type_cast): New. 33227 * gimple.h (enum ssa_mode): Define. 33228 (gimple_seq_set_location): New. 33229 * asan.c (build_check_stmt): Change some gimple_build_* calls 33230 to use build_assign and build_type_cast. 33231 332322013-04-18 Richard Biener <rguenther@suse.de> 33233 33234 * tree-vect-data-refs.c (vect_analyze_group_access): Properly 33235 handle negative step. Remove redundant checks. 33236 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps. 33237 * tree-vect-stmts.c (vectorizable_load): Instead of asserting 33238 for negative step and grouped loads fail to vectorize. 33239 332402013-04-18 Steven Bosscher <steven@gcc.gnu.org> 33241 33242 * emit-rtl.c (reset_insn_used_flags): New function. 33243 (reset_all_used_flags): Use it. 33244 (verify_insn_sharing): New function. 33245 (verify_rtl_sharing): Fix verification for SEQUENCEs. 33246 332472013-04-18 Jakub Jelinek <jakub@redhat.com> 33248 33249 PR tree-optimization/56984 33250 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N 33251 and (x >> M) >= N don't register any assertion if N << M is the 33252 minimum value. 33253 332542013-04-18 Steven Bosscher <steven@gcc.gnu.org> 33255 33256 * lower-subreg.c (resolve_simple_move): If called self-recursive, 33257 do not delete_insn insns that have not yet been emitted, only 33258 unlink them with remove_insn. 33259 * df-scan.c (df_insn_delete): Revert r197492. 33260 332612013-04-17 Steven Bosscher <steven@gcc.gnu.org> 33262 33263 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs. 33264 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API. 33265 332662013-04-17 Greta Yorsh <Greta.Yorsh@arm.com> 33267 33268 * config/arm/arm.md (movsicc_insn): Convert define_insn into 33269 define_insn_and_split. 33270 (and_scc,ior_scc,negscc): Likewise. 33271 (cmpsi2_addneg, subsi3_compare): Convert to named patterns. 33272 332732013-04-17 Greta Yorsh <Greta.Yorsh@arm.com> 33274 33275 * config/arm/arm.c (use_return_insn): Return 0 for targets that 33276 can benefit from using a sequence of LDRD instructions in epilogue 33277 instead of a single LDM instruction. 33278 332792013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org> 33280 33281 PR 45688 33282 * doc/extend.texi: Fix typo. 33283 332842013-04-17 Richard Biener <rguenther@suse.de> 33285 33286 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ... 33287 (vect_build_slp_tree): ... here. 33288 (vect_build_slp_tree_1): Compute which stmts of the SLP group 33289 match. Remove special-casing of mismatched complex loads. 33290 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1 33291 re-try the match with swapped commutative operands. 33292 (vect_supported_load_permutation_p): Remove special-casing of 33293 mismatched complex loads. 33294 (vect_analyze_slp_instance): Adjust. 33295 332962013-04-17 Richard Biener <rguenther@suse.de> 33297 33298 PR rtl-optimization/56921 33299 * cfgloop.h (struct loop): Add simple_loop_desc member. 33300 (struct niter_desc): Mark with GTY(()). 33301 (simple_loop_desc): Do not use aux field but simple_loop_desc. 33302 * loop-iv.c (get_simple_loop_desc): Likewise. 33303 (free_simple_loop_desc): Likewise. 33304 33305 Revert 33306 2013-04-16 Richard Biener <rguenther@suse.de> 33307 33308 PR rtl-optimization/56921 33309 * loop-init.c (pass_rtl_move_loop_invariants): Add 33310 TODO_do_not_ggc_collect to todo_flags_finish. 33311 (pass_rtl_unswitch): Same. 33312 (pass_rtl_unroll_and_peel_loops): Same. 33313 (pass_rtl_doloop): Same. 33314 333152013-04-17 Eric Botcazou <ebotcazou@adacore.com> 33316 33317 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New. 33318 (decl_refs_may_alias_p): Add REF1 and REF2 parameters. 33319 Use nonoverlapping_component_refs_of_decl_p to disambiguate component 33320 references. 33321 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p. 33322 * tree-streamer.c (record_common_node): Adjust reference in comment. 33323 333242013-04-17 Terry Guo <terry.guo@arm.com> 33325 33326 * config/arm/cortex-m4.md: Add a new bypass. 33327 333282013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> 33329 33330 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2): 33331 New pattern. 33332 (*subs_<optab><mode>_multp2): New pattern. 33333 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern. 33334 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern. 33335 333362013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> 33337 33338 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern. 33339 (*subs_mul_imm_<mode>): New pattern. 33340 333412013-04-16 David Edelsohn <dje.gcc@gmail.com> 33342 33343 PR target/56948 33344 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative. 33345 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative. 33346 (vsx_movti_32bit): Change j->wa to O->wa. 33347 333482013-04-16 Richard Biener <rguenther@suse.de> 33349 33350 PR rtl-optimization/56921 33351 * loop-init.c (pass_rtl_move_loop_invariants): Add 33352 TODO_do_not_ggc_collect to todo_flags_finish. 33353 (pass_rtl_unswitch): Same. 33354 (pass_rtl_unroll_and_peel_loops): Same. 33355 (pass_rtl_doloop): Same. 33356 333572013-04-16 Greta Yorsh <Greta.Yorsh@arm.com> 33358 33359 * config/arm/arm.c (emit_multi_reg_push): New declaration 33360 for an existing function. 33361 (arm_emit_strd_push): New function. 33362 (arm_expand_prologue): Used here. 33363 (arm_emit_ldrd_pop): New function. 33364 (arm_expand_epilogue): Used here. 33365 (arm_get_frame_offsets): Update condition. 33366 (arm_emit_multi_reg_pop): Add a special case for load of a single 33367 register with writeback. 33368 333692013-04-16 Uros Bizjak <ubizjak@gmail.com> 33370 33371 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard 33372 description. 33373 333742013-04-16 Richard Biener <rguenther@suse.de> 33375 33376 PR tree-optimization/56756 33377 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor. 33378 (first_mem_ref_loc): New. 33379 (execute_sm): Place the load temporarily before a previous 33380 access instead of in the latch edge to ensure its SSA dependencies 33381 are defined at points dominating the load. 33382 333832013-04-16 Steven Bosscher <steven@gcc.gnu.org> 33384 33385 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement 33386 correct fix by moving header and footer insn to the footer of 33387 the merged basic block. Clear BB_END of the merged-away block. 33388 33389 PR middle-end/43631 33390 * emit-rtl.c (make_note_raw): New function. 33391 (link_insn_into_chain): New static inline function. 33392 (add_insn): Use it. 33393 (add_insn_before, add_insn_after): Factor insn chain linking code... 33394 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions 33395 using link_insn_into_chain. 33396 (note_outside_basic_block_p): New helper function for emit_note_after 33397 and emit_note_before. 33398 (emit_note_after): Use nobb variant of add_insn_after if the note 33399 should not be contained in a basic block. 33400 (emit_note_before): Use nobb variant of add_insn_before if the note 33401 should not be contained in a basic block. 33402 (emit_note_copy): Use make_note_raw. 33403 (emit_note): Likewise. 33404 * bb-reorder.c (insert_section_boundary_note): Remove hack to set 33405 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS. 33406 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making 33407 the moved barrier the tail of the basic block it follows. 33408 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow. 33409 334102013-04-15 Jakub Jelinek <jakub@redhat.com> 33411 33412 PR tree-optimization/56962 33413 * gimple-ssa-strength-reduction.c (record_increment): Only set 33414 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and 33415 either rhs1 or rhs2 is equal to c->base_expr. 33416 334172013-04-15 Richard Biener <rguenther@suse.de> 33418 33419 PR tree-optimization/56933 33420 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep 33421 member. 33422 (GROUP_READ_WRITE_DEPENDENCE): Remove. 33423 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise. 33424 * tree-vect-data-refs.c (vect_analyze_group_access): Move 33425 dependence check ... 33426 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence): 33427 ... here. 33428 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize 33429 GROUP_READ_WRITE_DEPENDENCE. 33430 334312013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 33432 33433 * emit-rtl.c (reset_all_used_flags): New function. 33434 (verify_rtl_sharing): Call reset_all_used_flags before and after 33435 performing the checks. 33436 334372013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33438 33439 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case. 33440 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split. 33441 * config/arm/constraints.md (De): New constraint. 33442 * config/arm/neon.md (anddi3_neon): Delete. 33443 (neon_vand<mode>): Expand to standard anddi3 pattern. 33444 * config/arm/predicates.md (imm_for_neon_inv_logic_operand): 33445 Move earlier in the file. 33446 (neon_inv_logic_op2): Likewise. 33447 (arm_anddi_operand_neon): New predicate. 33448 334492013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 33450 33451 * configure.ac (gcc_cv_ld_as_needed): Set 33452 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option. 33453 Use -z ignore, -z record on *-*-solaris2*. 33454 (HAVE_LD_AS_NEEDED): Update comment. 33455 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define. 33456 * configure: Regenerate. 33457 * config.in: Regenerate. 33458 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use 33459 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION. 33460 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define. 33461 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed 33462 equivalents. Fix markup. 33463 * doc/tm.texi: Regenerate. 33464 334652013-04-15 Andrew Hsieh <andrewhsieh.google.com> 33466 33467 * config/i386/i386.opt: New option mstack-protector-guard=. 33468 * config/i386/i386-opts.h: Add enum stack_protector_guard. 33469 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and 33470 TARGET_SSP_TLS_GUARD. 33471 * config/i386/i386.c (ix86_option_override_internal): Set 33472 ix86_stack_protector_guard. 33473 * config/i386/i386.md (stack_protect_set): Enable for 33474 TARGET_SSP_TLS_GUARD only. 33475 (stack_protect_set_<mode>): Ditto. 33476 (stack_protect_test): Ditto. 33477 (stack_protect_test_<mode>): Ditto. 33478 * doc/invoke.texi (i386 Option): Document. 33479 334802013-04-15 Eric Botcazou <ebotcazou@adacore.com> 33481 33482 PR target/56890 33483 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value. 33484 (S_MODES): Set H_MODE bit. 33485 (SF_MODES): Set only S_MODE and SF_MODE bits. 33486 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits. 33487 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes. 33488 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes. 33489 <MODE_FLOAT>: Likewise. 33490 334912013-04-15 Joey Ye <joey.ye@arm.com> 33492 33493 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments. 33494 334952013-04-15 Joey Ye <joey.ye@arm.com> 33496 33497 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save 33498 for real far jump. 33499 (thumb_far_jump_used_p): Count instruction size and set 33500 far_jump_used. 33501 335022013-04-14 Eric Botcazou <ebotcazou@adacore.com> 33503 33504 * reorg.c (fill_simple_delay_slots): Reindent block of code. 33505 * resource.c (mark_target_live_regs): Reformat conditional block. 33506 335072013-04-13 Steven Bosscher <steven@gcc.gnu.org> 33508 33509 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn 33510 notes, they are emitted only just before final. 33511 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING. 33512 335132013-04-13 Steven Bosscher <steven@gcc.gnu.org> 33514 33515 * emit-rtl.c (remove_insn): Do not call df_insn_delete here. 33516 * cfgrtl.c (delete_insn): Call it here instead. 33517 * lra-spills.c (lra_final_code_change): Use delete_insn. 33518 * haifa-sched.c (sched_remove_insn): Likewise. 33519 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops 33520 returning to the nop pool. 33521 (sel_remove_insn): Simplify the only_disconnect case via remove_insn, 33522 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN. 33523 335242013-04-12 Steven Bosscher <steven@gcc.gnu.org> 33525 33526 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references. 33527 * doc/tm.texi: Regenerated. 33528 335292013-04-12 Uros Bizjak <ubizjak@gmail.com> 33530 33531 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in 33532 QImode checks. 33533 335342013-04-12 Steven Bosscher <steven@gcc.gnu.org> 33535 33536 * df-core.c (df_find_def): Compare register numbers. 33537 (df_find_use): Likewise. 33538 335392013-04-12 Vladimir Makarov <vmakarov@redhat.com> 33540 33541 PR target/56903 33542 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add 33543 lra_in_progress for return. 33544 335452013-04-12 Greta Yorsh <Greta.Yorsh@arm.com> 33546 33547 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert 33548 define_insn into define_insn_and_split and emit movsicc patterns. 33549 335502013-04-12 Greta Yorsh <Greta.Yorsh@arm.com> 33551 33552 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base". 33553 335542013-04-12 Richard Biener <rguenther@suse.de> 33555 33556 * tree-pass.h (TODO_do_not_ggc_collect): New. 33557 * passes.c (execute_one_ipa_transform_pass): Honor 33558 TODO_do_not_ggc_collect. 33559 (execute_one_pass): Likewise. 33560 33561 Revert 33562 2013-04-10 Richard Biener <rguenther@suse.de> 33563 33564 * passes.c (init_optimization_passes): Remove reload pass. 33565 * ira.c (do_reload): Merge into ... 33566 (ira): ... this. 33567 (rest_of_handle_reload): Remove. 33568 (pass_reload): Likewise. 33569 * config/i386/i386.c (ix86_option_override): Refer to ira instead 33570 of reload for vzeroupper pass placement. 33571 335722013-04-12 Jakub Jelinek <jakub@redhat.com> 33573 33574 PR tree-optimization/56918 33575 PR tree-optimization/56920 33576 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...) 33577 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second 33578 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision 33579 use wide_mul_with_sign method. 33580 335812013-04-12 Richard Biener <rguenther@suse.de> 33582 33583 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should 33584 not be considered a gimple constant. 33585 335862013-04-12 Marc Glisse <marc.glisse@inria.fr> 33587 33588 * fold-const.c (const_binop): Handle vector shifts by a scalar. 33589 (fold_binary_loc): Call const_binop also for mixed vector-scalar 33590 operations. 33591 335922013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org> 33593 Jakub Jelinek <jakub@redhat.com> 33594 33595 * opts.c: Include diagnostic-color.h. 33596 (common_handle_option): Handle OPT_fdiagnostics_color_. 33597 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o. 33598 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h. 33599 (diagnostic-color.o): New. 33600 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options. 33601 (diagnostic_color_rule): New enum. 33602 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*. 33603 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around 33604 the location string. 33605 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros, 33606 either NULL, or color kind. 33607 * diagnostic-color.c: New file. 33608 * diagnostic-color.h: New file. 33609 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3 33610 arguments. 33611 * doc/invoke.texi (-fdiagnostics-color): Document. 33612 * pretty-print.h (pp_show_color): Define. 33613 (struct pretty_print_info): Add show_color field. 33614 * diagnostic.c: Include diagnostic-color.h. 33615 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND 33616 macros. Colorize error:, warning: etc. strings and also the location 33617 string. 33618 (diagnostic_show_locus): Colorize the caret line. 33619 * pretty-print.c: Include diagnostic-color.h. 33620 (pp_base_format): Handle %r and %R format specifiers. Colorize strings 33621 inside of %< %> quotes or quoted through q format modifier. 33622 336232013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 33624 33625 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well. 33626 336272013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> 33628 33629 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG 33630 code in CC_NZ mode. 33631 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New 33632 pattern. 33633 336342013-04-11 Marek Polacek <polacek@redhat.com> 33635 33636 PR tree-optimization/48184 33637 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1. 33638 336392013-04-11 Eric Botcazou <ebotcazou@adacore.com> 33640 33641 * stor-layout.c (skip_simple_constant_arithmetic): Move to... 33642 * tree.c (skip_simple_constant_arithmetic): ...here and make public. 33643 (skip_simple_arithmetic): Tidy up. 33644 * tree.h (skip_simple_constant_arithmetic): Declare. 33645 336462013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> 33647 33648 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define. 33649 336502013-04-11 Richard Biener <rguenther@suse.de> 33651 33652 * tree-vect-loop.c (get_initial_def_for_induction): Properly 33653 generate vector constants. 33654 336552013-04-11 Richard Biener <rguenther@suse.de> 33656 33657 PR tree-optimization/56878 33658 * tree-flow.h (outermost_invariant_loop_for_expr): Declare. 33659 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr): 33660 New function. 33661 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): 33662 Prefer to align the DR with the most invariant base address. 33663 336642013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> 33665 33666 * opts.c (common_handle_option): Fix formatting and add FALLTHRU 33667 comment. 33668 336692013-04-11 James Greenhalgh <james.greenhalgh@arm.com> 33670 33671 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix 33672 floating-point vector comparisons against 0. 33673 336742013-04-11 Jakub Jelinek <jakub@redhat.com> 33675 33676 PR tree-optimization/56899 33677 * fold-const.c (extract_muldiv_1): Apply distributive law 33678 only if TYPE_OVERFLOW_WRAPS (ctype). 33679 336802013-04-11 Bin Cheng <bin.cheng@arm.com> 33681 33682 PR target/56124 33683 * ira-costs.c (scan_one_insn): Check whether the source rtx of 33684 loading has side effect. 33685 336862013-04-10 Steven Bosscher <steven@gcc.gnu.org> 33687 33688 * config/sparc/sparc.c: Include tree-pass.h. 33689 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine. 33690 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to 33691 head of file. Change return type. Split off gate function. 33692 (sparc_gate_work_around_errata): New function. 33693 (pass_work_around_errata): New pass definition. 33694 (insert_pass_work_around_errata) New pass insert definition to 33695 insert pass_work_around_errata just after delayed-branch scheduling. 33696 (sparc_option_override): Insert the pass. 33697 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence. 33698 336992013-04-10 David S. Miller <davem@davemloft.net> 33700 33701 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc 33702 or -mcpu=hypersparc. 33703 33704 * target.def (cstore_mode): New hook. 33705 * target.h: Include insn-codes.h 33706 * targhooks.c: Likewise. 33707 (default_cstore_mode): New function. 33708 * targhooks.h: Declare it. 33709 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE. 33710 * doc/tm.texi: Rebuild. 33711 * expmed.c (emit_cstore): Obtain cstore boolean result mode using 33712 target hook, rather than inspecting the insn_data. 33713 * config/sparc/sparc.c (sparc_cstore_mode): New function. 33714 (TARGET_CSTORE_MODE): Redefine. 33715 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean 33716 result patterns. 33717 * config/sparc/predicates.md (cstore_result_operand): New special 33718 predicate. 33719 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4): 33720 Use it for operand 0. 33721 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0. 33722 (*snesi_special): Likewise. 33723 (*snesi_zero): Likewise. 33724 (*seqsi_zero): Likewise. 33725 (*sltu_insn): Likewise. 33726 (*sgeu_insn): Likewise. 33727 (*seqdi_special): Make operand 0 and comparison operation be of 33728 DImode. 33729 (*snedi_special): Likewise. 33730 (*snedi_special_vis3): Likewise. 33731 (*neg_snesi_zero): Rename to *neg_snesisi_zero. 33732 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero. 33733 (*snesi_zero_extend): Delete, covered by 'P' mode iterator. 33734 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero. 33735 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero. 33736 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator. 33737 (*sltu_extend_sp64): Likewise. 33738 (*neg_sltu_insn): Rename to *neg_sltusi_insn. 33739 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn. 33740 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator. 33741 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn. 33742 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn. 33743 337442013-04-10 Yufeng Zhang <yufeng.zhang@arm.com> 33745 33746 * config/aarch64/aarch64.c (aarch64_print_extension): New function. 33747 (aarch64_start_file): Use the new function. 33748 337492013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> 33750 Jason Merrill <jason@redhat.com> 33751 33752 * common.opt: Add -gdwarf. 33753 * opts.c (common_handle_option): Handle it. 33754 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF. 33755 337562013-04-10 Richard Biener <rguenther@suse.de> 33757 33758 * passes.c (execute_todo): Do not call ggc_collect conditional here. 33759 (execute_one_ipa_transform_pass): But unconditionally here. 33760 (execute_one_pass): And here. 33761 (init_optimization_passes): Remove reload pass. 33762 * tree-pass.h (TODO_ggc_collect): Remove. 33763 (pass_reload): Likewise. 33764 * ira.c (do_reload): Merge into ... 33765 (ira): ... this. 33766 (rest_of_handle_reload): Remove. 33767 (pass_reload): Likewise. 33768 * config/i386/i386.c (ix86_option_override): Refer to ira instead 33769 of reload for vzeroupper pass placement. 33770 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start 33771 and todo_flags_finish of all passes. 33772 337732013-04-10 Richard Biener <rguenther@suse.de> 33774 33775 * tree-vectorizer.h (struct _slp_oprnd_info): Remove 33776 first_const_oprnd field, rename first_def_type to first_op_type. 33777 * tree-vect-slp.c (vect_create_oprnd_info): Adjust. 33778 (vect_get_and_check_slp_defs): Always use the type of the 33779 operand. Allow mixed vect_external_def, vect_constant_def types. 33780 (vect_get_constant_vectors): Handle mixed vect_external_def, 33781 vect_constant_def types. 33782 337832013-04-10 Joern Rennecke <joern.rennecke@embecosm.com> 33784 33785 PR tree-optimization/55524 33786 * tree-ssa-math-opts.c 33787 (convert_mult_to_fma): Don't use an fms construct 33788 when we don't have an fms operation, but fnma, and it looks 33789 likely that we'll be able to use the latter. 33790 337912013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn> 33792 33793 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable 33794 function. 33795 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the 33796 inline fail caused by overwritable functions. 33797 337982013-04-10 Chung-Ju Wu <jasonwucj@gmail.com> 33799 33800 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out 33801 unnecessary bits in the constant power of two case. 33802 338032013-04-10 Richard Biener <rguenther@suse.de> 33804 33805 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove 33806 broken code swapping operands. 33807 (vect_build_slp_tree): Do not compute load permutations here. 33808 (vect_analyze_slp_instance): Compute load permutations here, 33809 after building the SLP tree. 33810 338112013-04-09 Christian Bruel <christian.bruel@st.com> 33812 33813 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead 33814 of next/prev_real_insn. 33815 338162013-04-09 Jan Hubicka <jh@suse.cz> 33817 33818 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p): 33819 Drop aliased parameter. 33820 (function_and_variable_visibility): Do not handle alias pairs. 33821 * cgraph.c (varpool_externally_visible_p): Update prototype. 33822 * varpool.c (varpool_add_new_variable): Update. 33823 338242013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33825 33826 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern. 33827 338282013-04-09 Steven Bosscher <steven@gcc.gnu.org> 33829 33830 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns. 33831 33832 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv". 33833 338342013-04-09 Marek Polacek <polacek@redhat.com> 33835 33836 PR tree-optimization/48762 33837 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1. 33838 338392013-04-09 Richard Biener <rguenther@suse.de> 33840 33841 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code 33842 dealing with cost. 33843 (vect_build_slp_tree): Likewise. 33844 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions 33845 calculating the cost of a SLP instance. 33846 (vect_analyze_slp_instance): Use it from here, after building 33847 the SLP tree. 33848 338492013-04-09 Jakub Jelinek <jakub@redhat.com> 33850 33851 PR middle-end/56883 33852 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk, 33853 expand_omp_for_static_chunk): Use simple_p = true in 33854 force_gimple_operand_gsi calls when assigning to addressable decls. 33855 338562013-04-09 Jeff Law <law@redhat.com> 33857 33858 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean 33859 when the boolean was created by converting a wider object which 33860 had a boolean range. 33861 338622013-04-09 Richard Biener <rguenther@suse.de> 33863 33864 * tree-vectorizer.h (slp_void_p): Remove. 33865 (slp_tree): Typedef before _slp_tree declaration. 33866 (struct _slp_tree): Use a vector of slp_tree as children. 33867 (vect_get_place_in_interleaving_chain): Remove. 33868 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain): 33869 Move ... 33870 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here 33871 and make static. 33872 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts, 33873 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts, 33874 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations, 33875 vect_schedule_slp_instance, vect_remove_slp_scalar_calls): 33876 Use slp_node instead of slp_void_p and adjust. 33877 338782013-04-09 Richard Biener <rguenther@suse.de> 33879 33880 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid 33881 work that is not necessary. 33882 338832013-04-09 Jakub Jelinek <jakub@redhat.com> 33884 33885 PR tree-optimization/56854 33886 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't 33887 forward into clobber stmts if it would change MEM_REF lhs into 33888 non-MEM_REF. 33889 338902013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com> 33891 33892 * tree.c (type_hash_lookup, type_hash_add): Make static. 33893 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations. 33894 338952013-04-09 Richard Biener <rguenther@suse.de> 33896 33897 * tree.h (unsave_expr_now): Remove. 33898 * tree-inline.c (mark_local_for_remap_r): Remove. 33899 (unsave_expr_1): Likewise. 33900 (unsave_r): Likewise. 33901 (unsave_expr_now): Likewise. 33902 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr. 33903 (propagate_tree_value): Likewise. 33904 339052013-04-08 Steven Bosscher <steven@gcc.gnu.org> 33906 33907 * doc/rtl.texi (sequence): Rewrite documentation to match the 33908 current use of SEQUENCE rtl objects. 33909 * rtl.def (SEQUENCE): Likewise. 33910 33911 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END): 33912 Update documentation. 33913 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT, 33914 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes. 33915 33916 * reg-notes.def (REG_EH_CONTEXT): Remove unused note. 33917 339182013-04-08 Teresa Johnson <tejohnson@google.com> 33919 33920 * basic-block.h (GCOV_COMPUTE_SCALE): Define. 33921 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide 33922 methods. 33923 (estimate_edge_size_and_time): Add comment to suggest using rounding 33924 methods. 33925 (estimate_node_size_and_time): Ditto. 33926 (remap_edge_change_prob): Use helper rounding divide methods. 33927 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto. 33928 (gimple_mod_pow2_value_transform): Ditto. 33929 (gimple_mod_subtract_transform): Ditto. 33930 (gimple_ic_transform): Ditto. 33931 (gimple_stringops_transform): Ditto. 33932 * stmt.c (conditional_probability): Ditto. 33933 (emit_case_dispatch_table): Ditto. 33934 * lto-cgraph.c (merge_profile_summaries): Ditto. 33935 * tree-optimize.c (execute_fixup_cfg): Ditto. 33936 * cfgcleanup.c (try_forward_edges): Ditto. 33937 * cfgloopmanip.c (scale_loop_profile): Ditto. 33938 (loopify): Ditto. 33939 (duplicate_loop_to_header_edge): Ditto. 33940 (lv_adjust_loop_entry_edge): Ditto. 33941 * tree-vect-loop.c (vect_transform_loop): Ditto. 33942 * profile.c (compute_branch_probabilities): Ditto. 33943 * cfgbuild.c (compute_outgoing_frequencies): Ditto. 33944 * lto-streamer-in.c (input_cfg): Ditto. 33945 * gimple-streamer-in.c (input_bb): Ditto. 33946 * ipa-cp.c (update_profiling_info): Ditto. 33947 (update_specialized_profile): Ditto. 33948 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto. 33949 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using 33950 rounding methods. 33951 * sched-rgn.c (compute_dom_prob_ps): Ditto. 33952 (compute_trg_info): Ditto. 33953 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto. 33954 (purge_dead_edges): Ditto. 33955 * loop-unswitch.c (unswitch_loop): Ditto. 33956 * cgraphclones.c (cgraph_clone_edge): Ditto. 33957 (cgraph_clone_node): Ditto. 33958 * tree-inline.c (copy_bb): Ditto. 33959 (copy_edges_for_bb): Ditto. 33960 (initialize_cfun): Ditto. 33961 (copy_cfg_body): Ditto. 33962 (expand_call_inline): Ditto. 33963 339642013-04-08 Kai Tietz <ktietz@redhat.com> 33965 33966 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced 33967 TARGET_CYGWIN64 by TARGET_64BIT. 33968 339692013-04-08 Joern Rennecke <joern.rennecke@embecosm.com> 33970 33971 * config/epiphany/epiphany.md (GPR_1): New constant. 33972 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0. 33973 * config/epiphany/epiphany.c (gen_compare_reg): 33974 For flag_finite_math_only, avoid swapping operands when r0 and/or r1 33975 is already in place. 33976 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers. 33977 Don't require being called during rtl expansion; If y operlaps r0, 33978 return 0. 33979 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1. 33980 (epiphany_expand_epilogue): Likewise. 33981 33982 * config/epiphany/epiphany.c (epiphany_select_cc_mode): 33983 Don't use CC_FPmode for ORDERED / UNORDERED. 33984 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional. 33985 33986 * config/epiphany/constraints.md (CnL): New constraint. 33987 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative. 33988 * config/epiphany/predicates.md (add_operand): Allow 1024. 33989 33990 * config/epiphany/epiphany.md (logical_op): New code iterator. 33991 (op_mnc): New code attribute. 33992 (<op_mnc>_f, mov_f, cstoresi4): New patterns. 33993 (mov_f+1, mov_f+2): New peephole2 patterns. 33994 33995 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern. 33996 (cstoresi4): Also allow re-use of zero result when doing a NE 33997 comparison to a non-zero operand. 33998 Use (clobber (scratch)) for first insn if the gpr output is not needed. 33999 34000 * config/epiphany/epiphany.md (<insn_opname>v2si3): 34001 Use gen_addsi3_i / gen_subsi3_i. 34002 340032013-04-08 Jakub Jelinek <jakub@redhat.com> 34004 34005 PR c++/34949 34006 PR c++/50243 34007 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't 34008 contain anything but clobbers, at most one __builtin_stack_restore, 34009 optionally debug stmts and final resx, and if it has at least one 34010 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber. 34011 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber. 34012 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address 34013 which isn't defaut definition, remove them. 34014 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge} 34015 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}. 34016 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers 34017 with MEM_REF LHS with SSA_NAME address. 34018 340192013-04-08 Jeff Law <law@redhat.com> 34020 34021 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y. 34022 340232013-04-08 Richard Biener <rguenther@suse.de> 34024 34025 * gimple-pretty-print.c (debug_gimple_stmt): Do not print 34026 extra newline. 34027 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump 34028 determined vector type. 34029 (vect_analyze_data_refs): Likewise. 34030 (vect_get_new_vect_var): Adjust. 34031 (vect_create_destination_var): Preserve SSA name versions. 34032 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do 34033 not dump anything here. 34034 340352013-04-08 Joern Rennecke <joern.rennecke@embecosm.com> 34036 34037 * config/epiphany/epiphany.h (struct GTY (()) machine_function): 34038 Add member lr_slot_known. 34039 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs 34040 if necessary. 34041 * config/epiphany/epiphany.c (epiphany_compute_frame_size): 34042 Remove code that sets lr_slot_offset according to what a previous 34043 version of epiphany_emit_save_restore used to do. 34044 (epiphany_emit_save_restore): When doing an lr save or restore, 34045 set/verify lr_slot_known and lr_slot_offset. 34046 340472013-04-08 Xinyu Qi <xyqi@marvell.com> 34048 34049 PR target/54338 34050 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS 34051 in ALL_REGS. 34052 340532013-04-08 Richard Biener <rguenther@suse.de> 34054 34055 * alias.c (find_base_term): Fix thinko in previous change. 34056 340572013-04-08 Jakub Jelinek <jakub@redhat.com> 34058 34059 * tree-loop-distribution.c (const_with_all_bytes_same): New function. 34060 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if 34061 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same 34062 if possible to compute val. 34063 (classify_partition): Verify CONSTRUCTOR doesn't have any elts. 34064 For QImode integers don't require anything about precision. Use 34065 const_with_all_bytes_same to find out if the constant doesn't have 34066 repeated bytes in it. 34067 340682013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 34069 34070 * config/s390/s390.c (s390_expand_insv): Only accept insertions 34071 within mode size. 34072 340732013-04-08 Marek Polacek <polacek@redhat.com> 34074 34075 PR rtl-optimization/48182 34076 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum 34077 value to 1. 34078 340792013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 34080 34081 PR target/55487 34082 * config/pa/pa.c (legitimize_pic_address): Before incrementing label 34083 nuses, make sure we have a label. 34084 340852013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 34086 34087 PR target/56843 34088 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove. 34089 (rs6000_emit_swdiv_low_precision): Remove. 34090 (rs6000_emit_swdiv): Rewrite to handle between one and four 34091 iterations of Newton-Raphson generally; modify required number of 34092 iterations for some cases. 34093 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove. 34094 340952013-04-05 Steven Bosscher <steven@gcc.gnu.org> 34096 34097 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a 34098 set-but-unused variable. 34099 34100 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make 34101 basic blocks of released function bodies garbage-collectable. 34102 34103 * ree.c (find_and_remove_re): Do not call df_finish_pass here. 34104 (struct rtl_opt_pass): Add TODO_df_finish. 34105 34106 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation. 34107 341082013-04-05 Greta Yorsh <Greta.Yorsh@arm.com> 34109 34110 * config/arm/constraints.md (q): New constraint. 34111 * config/arm/ldrdstrd.md: New file. 34112 * config/arm/arm.md (ldrdstrd.md) New include. 34113 (arm_movdi): Use "q" instead of "r" constraint 34114 for double-word memory access. 34115 (movdf_soft_insn): Likewise. 34116 * config/arm/vfp.md (movdi_vfp): Likewise. 34117 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md. 34118 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration. 34119 * config/arm/arm.c (gen_operands_ldrd_strd): New function. 34120 (mem_ok_for_ldrd_strd): Likewise. 34121 (output_move_double): Update assertion. 34122 341232013-04-05 Greta Yorsh <Greta.Yorsh@arm.com> 34124 34125 * config/arm/arm.md: Comment on splitting Thumb1 patterns. 34126 341272013-04-05 Greta Yorsh <Greta.Yorsh@arm.com> 34128 34129 * config/arm/arm.md (arm_smax_insn): Convert define_insn into 34130 define_insn_and_split. 34131 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise. 34132 341332013-04-05 Greta Yorsh <Greta.Yorsh@arm.com> 34134 34135 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into 34136 define_insn_and_split. 34137 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise. 34138 (shiftsi3_compare): New pattern. 34139 (rrx): New pattern. 34140 * config/arm/unspecs.md (UNSPEC_RRX): New. 34141 341422013-04-05 Greta Yorsh <Greta.Yorsh@arm.com> 34143 34144 * config/arm/arm.md (negdi_extendsidi): New pattern. 34145 (negdi_zero_extendsidi): Likewise. 34146 341472013-04-05 Greta Yorsh <Greta.Yorsh@arm.com> 34148 34149 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into 34150 define_insn_and_split. 34151 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise. 34152 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise. 34153 341542013-04-05 Greta Yorsh <Greta.Yorsh@arm.com> 34155 34156 * config/arm/arm.md (arm_subdi3): Convert define_insn into 34157 define_insn_and_split. 34158 (subdi_di_zesidi,subdi_di_sesidi): Likewise. 34159 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise. 34160 341612013-04-05 Greta Yorsh <Greta.Yorsh@arm.com> 34162 34163 * config/arm/arm.md (subsi3_carryin): New pattern. 34164 (subsi3_carryin_const): Likewise. 34165 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise. 34166 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise. 34167 341682013-04-05 Greta Yorsh <Greta.Yorsh@arm.com> 34169 34170 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete. 34171 341722013-04-05 Greta Yorsh <Greta.Yorsh@arm.com> 34173 34174 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable. 34175 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise. 34176 341772013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 34178 34179 * config/arm/arm.c (arm_expand_builtin): Change fcode 34180 type to unsigned int. 34181 341822013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 34183 34184 * doc/invoke.texi (ARM Options): Document cortex-a53 support. 34185 341862013-04-04 Ian Lance Taylor <iant@google.com> 34187 34188 * doc/standards.texi (Standards): The Go frontend supports the Go 1 34189 language standard. 34190 341912013-04-04 Steven Bosscher <steven@gcc.gnu.org> 34192 34193 PR middle-end/56729 34194 * df-scan.c (df_insn_delete): Disable failing assert. 34195 341962013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 34197 34198 * config/arm/arm-protos.h (arm_builtin_vectorized_function): 34199 New function prototype. 34200 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define. 34201 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise. 34202 (arm_builtin_vectorized_function): New function. 34203 342042013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 34205 34206 * config/arm/arm_neon_builtins.def: New file. 34207 * config/arm/arm.c (neon_builtin_data): Move contents to 34208 arm_neon_builtins.def. 34209 (enum arm_builtins): Include neon builtin definitions. 34210 (ARM_BUILTIN_NEON_BASE): Move from enum to macro. 34211 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def. 34212 342132013-04-04 Marek Polacek <polacek@redhat.com> 34214 34215 PR tree-optimization/48186 34216 * predict.c (maybe_hot_frequency_p): Return false if 34217 HOT_BB_FREQUENCY_FRACTION is 0. 34218 (cgraph_maybe_hot_edge_p): Likewise. 34219 342202013-04-04 Richard Biener <rguenther@suse.de> 34221 34222 PR tree-optimization/56826 34223 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies 34224 more accurately. 34225 342262013-04-04 Richard Biener <rguenther@suse.de> 34227 34228 PR tree-optimization/56213 34229 * tree-vect-data-refs.c (vect_check_strided_load): Remove. 34230 (vect_analyze_data_refs): Allow all non-nested loads as strided loads. 34231 342322013-04-04 Richard Biener <rguenther@suse.de> 34233 34234 PR tree-optimization/56837 34235 * tree-loop-distribution.c (classify_partition): For non-zero 34236 values require that the value has the same precision as its 34237 mode to be useful as memset value. 34238 342392013-04-03 Nick Clifton <nickc@redhat.com> 34240 34241 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures. 34242 (fmssf4): Use fmsf.s on E3V5 architectures. 34243 (fnmasf4): Use fnmaf.s on E3V5 architectures. 34244 (fnmssf4): Use fnmsf.s on E3V5 architectures. 34245 342462013-04-03 Jeff Law <law@redhat.com> 34247 34248 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H). 34249 (lra-eliminations.o): Likewise. 34250 342512013-04-03 Teresa Johnson <tejohnson@google.com> 34252 34253 * gcov-io.c (compute_working_sets): Moved most of body of old 34254 compute_working_sets here from profile.c. 34255 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c. 34256 (gcov_working_set_t): Moved typedef here from basic-block.h 34257 (compute_working_set): Declare. 34258 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h. 34259 (get_working_sets): Renamed from compute_working_set, 34260 replace most of body with call to new compute_working_sets. 34261 (get_exec_counts): Replace call to compute_working_sets 34262 to get_working_sets. 34263 * profile.h (get_working_sets): Renamed from compute_working_set. 34264 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets 34265 to get_working_sets. 34266 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h. 34267 * gcov-dump.c (dump_working_sets): New function. 34268 342692013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com> 34270 34271 * hwint.c (sext_hwi, zext_hwi): New functions. 34272 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT, 34273 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C, 34274 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C, 34275 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX, 34276 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols. 34277 (sext_hwi, zext_hwi): New functions. 34278 342792013-04-03 Jeff Law <law@redhat.com> 34280 34281 PR tree-optimization/56799 34282 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring 34283 back test for widening conversion erroneously dropped in prior change. 34284 342852013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 34286 34287 PR target/56809 34288 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn 34289 instead of next_real_insn. 34290 342912013-04-03 Marek Polacek <polacek@redhat.com> 34292 34293 PR sanitizer/55702 34294 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions. 34295 342962013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 34297 34298 PR target/56809 34299 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of 34300 next_real_insn. 34301 (thumb1_output_casesi): Likewise. 34302 (thumb2_output_casesi): Likewise. 34303 343042013-04-03 Richard Biener <rguenther@suse.de> 34305 34306 PR tree-optimization/56817 34307 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): 34308 Split out ... 34309 (tree_unroll_loops_completely_1): ... new function to manually 34310 walk the loop tree, properly defering outer loops of unrolled 34311 loops to later iterations. 34312 343132013-04-03 Marc Glisse <marc.glisse@inria.fr> 34314 34315 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF. 34316 (vectorizable_load): Likewise. 34317 * tree-vect-slp.c (vect_build_slp_tree): Likewise. 34318 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE. 34319 343202013-04-03 Marc Glisse <marc.glisse@inria.fr> 34321 34322 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle 34323 BIT_FIELD_REF. 34324 343252013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 34326 34327 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA. 34328 343292013-04-03 Bin Cheng <bin.cheng@arm.com> 34330 34331 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP. 34332 343332013-04-03 Marc Glisse <marc.glisse@inria.fr> 34334 34335 PR tree-optimization/56790 34336 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant 34337 folding. 34338 343392013-04-03 Marc Glisse <marc.glisse@inria.fr> 34340 34341 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>: 34342 Handle VEC_MERGE. 34343 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT 34344 for masks. Test for side effects. Handle nested VEC_MERGE. Handle 34345 equal arguments. 34346 343472013-04-03 Jakub Jelinek <jakub@redhat.com> 34348 34349 PR c/19449 34350 * tree.h (force_folding_builtin_constant_p): New decl. 34351 * builtins.c (force_folding_builtin_constant_p): New variable. 34352 (fold_builtin_constant_p): Fold immediately also if 34353 force_folding_builtin_constant_p. 34354 343552013-04-03 Richard Biener <rguenther@suse.de> 34356 34357 PR tree-optimization/56812 34358 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence): 34359 DRs of the same interleaving chain are independent. 34360 343612013-04-02 Jason Merrill <jason@redhat.com> 34362 34363 * gdbinit.in (pbb): Use debug fn. 34364 343652013-04-02 Lawrence Crowl <crowl@google.com> 34366 34367 * sese.h (struct ivtype_map_elt_s): Remove unused. 34368 (extern debug_ivtype_map): Remove unused. 34369 (extern eq_ivtype_map_elts): Remove unused. 34370 * sese.c (debug_ivtype_map): Removed unused. 34371 (debug_ivtype_map_1): Removed unused. 34372 (debug_ivtype_elt): Remove unused. 34373 (eq_ivtype_map_elts): Remove unused. 34374 343752013-04-02 Kai Tietz <ktietz@redhat.com> 34376 34377 PR target/52790 34378 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro. 34379 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype. 34380 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static 34381 function. 34382 (legitimize_pe_coff_symbol): Likewise. 34383 (is_imported_p): New helper-function. 34384 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model 34385 for Windows x64 targets. 34386 (ix86_expand_prologue): Optimize for pe-coff targets. 34387 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets. 34388 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support 34389 medium/large code-model. 34390 (legitimize_pic_address): Likewise. 34391 (legitimize_tls_address): Likewise. 34392 (ix86_expand_call): Likewise. 34393 (x86_output_mi_thunk): Likewise. 34394 (get_dllimport_decl): Add new beimport argument. 34395 (construct_plt_address): Don't assert for x64 pe-coff targets. 34396 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff 34397 targets. 34398 (SYMBOL_FLAG_STUBVAR): New macro. 34399 (SYMBOL_REF_STUBVAR_P): Likewise. 34400 * config/i386/winnt.c (stub_list): New structure. 34401 (stub_head): New local variable. 34402 (i386_pe_record_stub): New function. 34403 (i386_pe_file_end): Emit refptr-stubs. 34404 344052013-04-02 Jakub Jelinek <jakub@redhat.com> 34406 34407 PR rtl-optimization/56745 34408 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize 34409 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR. 34410 34411 PR c++/34949 34412 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base 34413 and both of them are MEM_REFs, just compare first argument for 34414 equality and attempt to deal even with differing offsets. 34415 34416 PR c++/34949 34417 * tree-cfg.c (verify_gimple_assign_single): Allow lhs 34418 of gimple_clobber_p to be MEM_REF. 34419 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of 34420 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF 34421 after gimplification. 34422 * asan.c (get_mem_ref_of_assignment): Don't instrument 34423 gimple_clobber_p stmts. 34424 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of 34425 gimple_clobber_p stmt if they have MEM_REF lhs and 34426 are dead because of another gimple_clobber_p stmt. 34427 * tree-ssa-live.c (clear_unused_block_pointer): Treat 34428 gimple_clobber_p stmts like debug stmts. 34429 (remove_unused_locals): Remove clobbers with MEM_REF lhs 34430 that refer to unused VAR_DECLs or uninitialized values. 34431 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove 34432 gimple_clobber_p stmts if they refer to removed parameters. 34433 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up 34434 formatting. 34435 344362013-04-02 Uros Bizjak <ubizjak@gmail.com> 34437 34438 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64 34439 using SWI48 mode attribute. 34440 344412013-04-02 Wei Mi <wmi@google.com> 34442 34443 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for 34444 ashl<mode>3_mask, *<shift_insn><mode>3_mask and 34445 *<rotate_insn><mode>3_mask in i386.md. 34446 344472013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com> 34448 34449 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android. 34450 344512013-04-02 Richard Biener <rguenther@suse.de> 34452 34453 PR tree-optimization/56778 34454 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): 34455 Runtime alias tests are not supported for gather loads. 34456 * tree-vect-loop-manip.c (vect_loop_versioning): Insert 34457 stmts referenced from SSA operands before updating SSA form. 34458 344592013-04-02 Ian Caulfield <ian.caulfield@arm.com> 34460 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 34461 34462 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53. 34463 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md. 34464 * config/arm/cortex-a53.md: New file. 34465 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53. 34466 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53. 34467 * config/arm/arm.c (arm_issue_rate): Likewise. 34468 * config/arm/arm-tune.md: Regenerate 34469 * config/arm/arm-tables.opt: Regenerate. 34470 * config/arm/arm-cores.def: Add cortex-a53. 34471 344722013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com> 34473 34474 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for 34475 non-static link. 34476 344772013-04-02 Sofiane Naci <sofiane.naci@arm.com> 34478 34479 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for 34480 scalar load/store operations using B/H registers. 34481 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise. 34482 344832013-04-02 Sofiane Naci <sofiane.naci@arm.com> 34484 34485 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for 34486 scalar move. 34487 * config/aarch64/aarch64.c 34488 (aarch64_simd_scalar_immediate_valid_for_move): New. 34489 * config/aarch64/aarch64-protos.h 34490 (aarch64_simd_scalar_immediate_valid_for_move): New. 34491 * config/aarch64/constraints.md (Dh, Dq): New. 34492 * config/aarch64/iterators.md (hq): New. 34493 344942013-04-02 Eric Botcazou <ebotcazou@adacore.com> 34495 34496 * reorg.c (get_branch_condition): Deal with conditional returns. 34497 (fill_simple_delay_slots): Remove dead code dealing with jumps. 34498 344992013-04-01 Wei Mi <wmi@google.com> 34500 34501 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn. 34502 Truncate operand 2 using %b asm operand modifier. 34503 (*<shift_insn><mode>3_mask): Ditto. 34504 (*<rotate_insn><mode>3_mask): Ditto. 34505 345062013-04-01 Steven Bosscher <steven@gcc.gnu.org> 34507 34508 PR middle-end/56798 34509 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234. 34510 345112013-03-31 Kaz Kojima <kkojima@gcc.gnu.org> 34512 34513 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead 34514 of next_real_insn. 34515 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise. 34516 345172013-03-30 Lawrence Crowl <crowl@google.com> 34518 34519 * dse.c (clear_alias_sets): Remove never set. 34520 (disqualified_clear_alias_sets): Remove never set. 34521 (clear_alias_mode_pool): Remove never set. 34522 (dse_step0): Remove condition that is never true. 34523 (canon_address): Remove condition that is never true. 34524 (dse_step7): Remove condition that is never true. 34525 (rest_of_handle_dse): Remove condition that is never true. 34526 (rest_of_handle_dse::did_global): Remove never read from above. 34527 (dse_step2_spill): Remove never called from above. 34528 (dse_step5_spill): Remove never called from above. 34529 345302013-03-30 Steven Bosscher <steven@gcc.gnu.org> 34531 34532 * doc/md.texi (Standard Names) <casesi>: Update documentation for 34533 JUMP_TABLE_DATA changes. 34534 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise. 34535 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise. 34536 (Insns) <jump_table_data>: New entry. 34537 * doc/tm.texi: Regenerate. 34538 34539 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER. 34540 34541 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test 34542 for table jump at the end of a basic block using tablejump_p. 34543 * targhooks.c (default_invalid_within_doloop): Likewise. 34544 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove 34545 target hook implementation that is identical to the default hook. 34546 (rs6000_invalid_within_doloop): Remove. 34547 34548 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but 34549 unused variable from tablejump_p call. 34550 34551 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object. 34552 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA. 34553 (INSN_DELETED_P): Likewise. 34554 (emit_jump_table_data): New prototype. 34555 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields 34556 after 4th as unused. 34557 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA. 34558 * sched-vis.c (print_insn): Likewise. 34559 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active 34560 insn for compatibility with back ends that use next_active_insn to 34561 identify jump table data. 34562 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check. 34563 (remove_insn): Likewise. 34564 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains 34565 to be emitted. 34566 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem. 34567 (emit_jump_table_data): New function. 34568 34569 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a 34570 basic block, a JUMP_TABLE_DATA never is. 34571 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn. 34572 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA 34573 off from code handling real insns. 34574 * final.c (get_attr_length_1): Simplify for JUMP_INSNs. 34575 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P 34576 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn. 34577 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P 34578 is not a NONDEBUG_INSN_P. 34579 * ira-costs.c (scan_one_insn): Likewise. 34580 * jump.c (mark_all_labels): Likewise. 34581 (mark_jump_label_1): Likewise. 34582 * lra-eliminations.c (eliminate_regs_in_insn): Likewise. 34583 * lra.c (get_insn_freq): Expect all insns reaching here to be in 34584 a basic block. 34585 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn. 34586 * predict.c (expensive_function_p): Use FOR_BB_INSNS. 34587 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for 34588 JUMP_TABLE_DATA_P insns. 34589 (calculate_elim_costs_all_insns): Likewise. 34590 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns. 34591 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test. 34592 (delete_output_reload): Code style fixups. 34593 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting 34594 insn flags on this non-insn. 34595 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns 34596 as scheduling barriers, for pre-change compatibility. 34597 * stmt.c (emit_case_dispatch_table): Emit jump table data not as 34598 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects. 34599 34600 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove 34601 redundant JUMP_TABLE_DATA_P test. 34602 * config/arm/arm.c (thumb_far_jump_used_p): Likewise. 34603 * config/frv/frv.c (frv_function_contains_far_jump): Likewise. 34604 (frv_for_each_packet): Likewise. 34605 * config/i386/i386.c (min_insn_size): Likewise. 34606 (ix86_avoid_jump_mispredicts): Likewise. 34607 * config/m32r/m32r.c (m32r_is_insn): Likewise. 34608 * config/mep/mep.c (mep_reorg_erepeat): Likewise. 34609 * config/mips/mips.c (USEFUL_INSN_P): Likewise. 34610 (mips16_insn_length): Robustify. 34611 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test. 34612 (mips16_split_long_branches): Likewise. 34613 * config/pa/pa.c (pa_combine_instructions): Likewise. 34614 * config/rs6000/rs6000.c (get_next_active_insn): Treat 34615 JUMP_TABLE_DATA objects as active insns, like in active_insn_p. 34616 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA 34617 as contributing to pool range lengths. 34618 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC. 34619 Remove redundant JUMP_TABLE_DATA_P test. 34620 (sh_loop_align): Likewise. 34621 (split_branches): Likewise. 34622 (sh_insn_length_adjustment): Likewise. 34623 * config/spu/spu.c (get_branch_target): Likewise. 34624 346252013-03-29 Jan Hubicka <jh@suse.cz> 34626 34627 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use 34628 gcov streaming; stream hot bb threshold to ltrans. 34629 * predict.c (get_hot_bb_threshold): Break out from .... 34630 (maybe_hot_count_p): ... here. 34631 (set_hot_bb_threshold): New function. 34632 * lto-section-in.c (lto_section_name): Add profile. 34633 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare. 34634 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h 34635 and data-streamer.h 34636 (histogram_entry): New structure. 34637 (histogram, histogram_pool): New global vars. 34638 (histogram_hash): New structure. 34639 (histogram_hash::hash): New method. 34640 (histogram_hash::equal): Likewise. 34641 (account_time_size): New function. 34642 (cmp_counts): New function. 34643 (dump_histogram): New function. 34644 (ipa_profile_generate_summary): New function. 34645 (ipa_profile_write_summary): New function. 34646 (ipa_profile_read_summary): New function. 34647 (ipa_profile): Decide on threshold. 34648 (pass_ipa_profile): Add ipa_profile_write_summary and 34649 ipa_profile_read_summary. 34650 * Makefile.in (ipa.o): Update dependencies. 34651 * lto-streamer.h (LTO_section_ipa_profile): New section. 34652 346532013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net> 34654 34655 * tree.h (VAR_P): New. 34656 346572013-03-29 Paolo Carlini <paolo.carlini@oracle.com> 34658 34659 PR lto/56777 34660 * doc/invoke.texi ([-fwhole-program]): Fix typo. 34661 346622013-03-29 Steven Bosscher <steven@gcc.gnu.org> 34663 34664 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu 34665 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern. 34666 (control_flow_insn_p): Likewise. 34667 * cfgrtl.c (duplicate_insn_chain): Likewise. 34668 * final.c (get_attr_length_1): Likewise. 34669 (shorten_branches): Likewise. 34670 (final_scan_insn): Likewise. 34671 * function.c (instantiate_virtual_regs): Likewise. 34672 * gcse.c (insert_insn_end_basic_block): Likewise. 34673 * ira-costs.c (scan_one_insn): Likewise. 34674 * lra-eliminations.c (eliminate_regs_in_insn): Likewise. 34675 * lra.c (check_rtl): Likewise. 34676 * reload1.c (elimination_costs_in_insn): Likewise. 34677 * reorg.c (follow_jumps): Likewise. 34678 34679 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu 34680 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern. 34681 (thumb_far_jump_used_p): Likewise. 34682 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise. 34683 (workaround_speculation): Likewise. 34684 (add_sched_insns_for_speculation): Likewise. 34685 * config/c6x/c6x.c (reorg_emit_nops): Likewise. 34686 * config/frv/frv.c (frv_function_contains_far_jump): Likewise. 34687 (frv_for_each_packet): Likewise. 34688 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise. 34689 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise. 34690 (final_emit_insn_group_barriers): Likewise. 34691 * config/m32r/m32r.c (m32r_is_insn): Likewise. 34692 * config/mips/mips.c (USEFUL_INSN_P): Likewise. 34693 (mips16_insn_length): Likewise. 34694 * config/pa/pa.c (pa_reorg): Likewise. 34695 (pa_combine_instructions): Likewise. 34696 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise. 34697 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise. 34698 (sh_reorg): Likewise. 34699 (split_branches): Likewise. 34700 * config/spu/spu.c (get_branch_target): Likewise. 34701 34702 * config/s390/s390.c (s390_chunkify_start): Simplify logic using 34703 JUMP_TABLE_DATA_P. 34704 347052013-03-29 Kirill Yukhin <kirill.yukhin@intel.com> 34706 34707 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256): 34708 Fix declaration name. 34709 347102013-03-28 Lawrence Crowl <crowl@google.com> 34711 34712 * graphds.h (struct graph.indicies): Remove unused. 34713 * graphite-poly.h (struct graph.original_pddrs): Remove unused. 34714 (SCOP_ORIGINAL_PDDRS): Remove unused. 34715 * sese.h (extern insert_loop_close_phis): Removed unused. 34716 (extern insert_guard_phis): Removed unused. 34717 (extern ivtype_map_elt_info): Removed unused. 34718 (new_ivtype_map_elt): Removed unused. 34719 * sese.c (ivtype_map_elt_info): Removed unused. 34720 347212013-03-28 Lawrence Crowl <crowl@google.com> 34722 34723 * Makefile.in: Add several missing include dependences. 34724 (DUMPFILE_H): New. 34725 (test-dump.o): New. This object is not added to any executable, 34726 but is present for ad-hoc testing. 34727 * bitmap.c 34728 (debug (const bitmap_head_def &)): New. 34729 (debug (const bitmap_head_def *)): New. 34730 * bitmap.h 34731 (extern debug (const bitmap_head_def &)): New. 34732 (extern debug (const bitmap_head_def *)): New. 34733 * cfg.c 34734 (debug (edge_def &)): New. 34735 (debug (edge_def *)): New. 34736 * cfghooks.c 34737 (debug (basic_block_def &)): New. 34738 (debug (basic_block_def *)): New. 34739 * dumpfile.h 34740 (dump_node (const_tree, int, FILE *)): Correct source file. 34741 * dwarf2out.c 34742 (debug (die_struct &)): New. 34743 (debug (die_struct *)): New. 34744 * dwarf2out.h 34745 (extern debug (die_struct &)): New. 34746 (extern debug (die_struct *)): New. 34747 * gimple-pretty-print.c 34748 (debug (gimple_statement_d &)): New. 34749 (debug (gimple_statement_d *)): New. 34750 * gimple-pretty-print.h 34751 (extern debug (gimple_statement_d &)): New. 34752 (extern debug (gimple_statement_d *)): New. 34753 * ira-build.c 34754 (debug (ira_allocno_copy &)): New. 34755 (debug (ira_allocno_copy *)): New. 34756 (debug (ira_allocno &)): New. 34757 (debug (ira_allocno *)): New. 34758 * ira-int.h 34759 (extern debug (ira_allocno_copy &)): New. 34760 (extern debug (ira_allocno_copy *)): New. 34761 (extern debug (ira_allocno &)): New. 34762 (extern debug (ira_allocno *)): New. 34763 * ira-lives.c 34764 (debug (live_range &)): New. 34765 (debug (live_range *)): New. 34766 * lra-int.h 34767 (debug (lra_live_range &)): New. 34768 (debug (lra_live_range *)): New. 34769 * lra-lives.c 34770 (debug (lra_live_range &)): New. 34771 (debug (lra_live_range *)): New. 34772 * omega.c 34773 (debug (omega_pb_d &)): New. 34774 (debug (omega_pb_d *)): New. 34775 * omega.h 34776 (extern debug (omega_pb_d &)): New. 34777 (extern debug (omega_pb_d *)): New. 34778 * print-rtl.c 34779 (debug (const rtx_def &)): New. 34780 (debug (const rtx_def *)): New. 34781 * print-tree.c 34782 (debug_tree (tree): Move within file. 34783 (debug_raw (const tree_node &)): New. 34784 (debug_raw (const tree_node *)): New. 34785 (dump_tree_via_hooks (const tree_node *, int)): New. 34786 (debug (const tree_node &)): New. 34787 (debug (const tree_node *)): New. 34788 (debug_verbose (const tree_node &)): New. 34789 (debug_verbose (const tree_node *)): New. 34790 (debug_head (const tree_node &)): New. 34791 (debug_head (const tree_node *)): New. 34792 (debug_body (const tree_node &)): New. 34793 (debug_body (const tree_node *)): New. 34794 (debug_vec_tree (tree): Move and reimplement in terms of dump. 34795 (debug (vec<tree, va_gc> &)): New. 34796 (debug (vec<tree, va_gc> *)): New. 34797 * rtl.h 34798 (extern debug (const rtx_def &)): New. 34799 (extern debug (const rtx_def *)): New. 34800 * sbitmap.c 34801 (debug_raw (simple_bitmap_def &)): New. 34802 (debug_raw (simple_bitmap_def *)): New. 34803 (debug (simple_bitmap_def &)): New. 34804 (debug (simple_bitmap_def *)): New. 34805 * sbitmap.h 34806 (extern debug (simple_bitmap_def &)): New. 34807 (extern debug (simple_bitmap_def *)): New. 34808 (extern debug_raw (simple_bitmap_def &)): New. 34809 (extern debug_raw (simple_bitmap_def *)): New. 34810 * sel-sched-dump.c 34811 (debug (vinsn_def &)): New. 34812 (debug (vinsn_def *)): New. 34813 (debug_verbose (vinsn_def &)): New. 34814 (debug_verbose (vinsn_def *)): New. 34815 (debug (expr_def &)): New. 34816 (debug (expr_def *)): New. 34817 (debug_verbose (expr_def &)): New. 34818 (debug_verbose (expr_def *)): New. 34819 (debug (vec<rtx> &)): New. 34820 (debug (vec<rtx> *)): New. 34821 * sel-sched-dump.h 34822 (extern debug (vinsn_def &)): New. 34823 (extern debug (vinsn_def *)): New. 34824 (extern debug_verbose (vinsn_def &)): New. 34825 (extern debug_verbose (vinsn_def *)): New. 34826 (extern debug (expr_def &)): New. 34827 (extern debug (expr_def *)): New. 34828 (extern debug_verbose (expr_def &)): New. 34829 (extern debug_verbose (expr_def *)): New. 34830 (extern debug (vec<rtx> &)): New. 34831 (extern debug (vec<rtx> *)): New. 34832 * sel-sched-ir.h 34833 (_list_iter_cond_expr): Make inline instead of static. 34834 * sreal.c 34835 (debug (sreal &)): New. 34836 (debug (sreal *)): New. 34837 * sreal.h 34838 (extern debug (sreal &)): New. 34839 (extern debug (sreal *)): New. 34840 * tree.h 34841 (extern debug_raw (const tree_node &)): New. 34842 (extern debug_raw (const tree_node *)): New. 34843 (extern debug (const tree_node &)): New. 34844 (extern debug (const tree_node *)): New. 34845 (extern debug_verbose (const tree_node &)): New. 34846 (extern debug_verbose (const tree_node *)): New. 34847 (extern debug_head (const tree_node &)): New. 34848 (extern debug_head (const tree_node *)): New. 34849 (extern debug_body (const tree_node &)): New. 34850 (extern debug_body (const tree_node *)): New. 34851 (extern debug (vec<tree, va_gc> &)): New. 34852 (extern debug (vec<tree, va_gc> *)): New. 34853 * tree-cfg.c 34854 (debug (struct loop &)): New. 34855 (debug (struct loop *)): New. 34856 (debug_verbose (struct loop &)): New. 34857 (debug_verbose (struct loop *)): New. 34858 * tree-dump.c: Add header dependence. 34859 * tree-flow.h 34860 (extern debug (struct loop &)): New. 34861 (extern debug (struct loop *)): New. 34862 (extern debug_verbose (struct loop &)): New. 34863 (extern debug_verbose (struct loop *)): New. 34864 * tree-data-ref.c 34865 (debug (data_reference &)): New. 34866 (debug (data_reference *)): New. 34867 (debug (vec<data_reference_p> &)): New. 34868 (debug (vec<data_reference_p> *)): New. 34869 (debug (vec<ddr_p> &)): New. 34870 (debug (vec<ddr_p> *)): New. 34871 * tree-data-ref.h 34872 (extern debug (data_reference &)): New. 34873 (extern debug (data_reference *)): New. 34874 (extern debug (vec<data_reference_p> &)): New. 34875 (extern debug (vec<data_reference_p> *)): New. 34876 (extern debug (vec<ddr_p> &)): New. 34877 (extern debug (vec<ddr_p> *)): New. 34878 * tree-ssa-alias.c 34879 (debug (pt_solution &)): New. 34880 (debug (pt_solution *)): New. 34881 * tree-ssa-alias.h 34882 (extern debug (pt_solution &)): New. 34883 (extern debug (pt_solution *)): New. 34884 * tree-ssa-alias.c 34885 (debug (_var_map &)): New. 34886 (debug (_var_map *)): New. 34887 (debug (tree_live_info_d &)): New. 34888 (debug (tree_live_info_d *)): New. 34889 * tree-ssa-alias.h 34890 (extern debug (_var_map &)): New. 34891 (extern debug (_var_map *)): New. 34892 (extern debug (tree_live_info_d &)): New. 34893 (extern debug (tree_live_info_d *)): New. 34894 348952013-03-28 Jan Hubicka <jh@suse.cz> 34896 34897 * lto-cgraph.c (merge_profile_summaries): Fix overflows. 34898 348992013-03-28 Ian Bolton <ian.bolton@arm.com> 34900 34901 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame 34902 record only when desired or required. 34903 349042013-03-28 Uros Bizjak <ubizjak@gmail.com> 34905 34906 * config/i386/i386.md (*vec_extract2vdi_1): Merge with 34907 *vec_extractv2di_1_rex64. Use x64 isa attribute. 34908 349092013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> 34910 34911 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern. 34912 (*andsi3_compare0_uxtw): New pattern. 34913 (*and_<SHIFT:optab><mode>3_compare0): New pattern. 34914 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern. 34915 349162013-03-28 Jan Hubicka <jh@suse.cz> 34917 34918 * data-streamer-in.c (streamer_read_gcov_count): New function. 34919 * gimple-streamer-out.c: Include value-prof.h. 34920 (output_gimple_stmt): Output histogram. 34921 (output_bb): Use streamer_write_gcov_count. 34922 * value-prof.c: Include data-streamer.h 34923 (dump_histogram_value): Add HIST_TYPE_MAX. 34924 (stream_out_histogram_value): New function. 34925 (stream_in_histogram_value): New function. 34926 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX. 34927 (stream_out_histogram_value, stream_in_histogram_value): Declare. 34928 * data-streamer-out.c (streamer_write_gcov_count): New function. 34929 (streamer_write_gcov_count_stream): New function. 34930 * lto-cgraph.c (lto_output_edge): Update counter streaming. 34931 (lto_output_node): Likewise. 34932 (input_node, input_edge): Likewise. 34933 * lto-streamer-out.c (output_cfg): Update streaming. 34934 * lto-streamer-in.c (input_cfg): Likewise. 34935 * data-streamer.h (streamer_write_gcov_count, 34936 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare. 34937 * gimple-streamer-in.c: Include value-prof.h 34938 (input_gimple_stmt): Input histograms. 34939 (input_bb): Update profile streaming. 34940 349412013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com> 34942 34943 * genmodes.c (emit_max_int): New function. 34944 (emit_insn_modes_h): Added call to emit_max_function. 34945 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE): 34946 Added doc. 34947 * machmode.def: Fixed comment. 34948 349492013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com> 34950 34951 * combine.c (try_combine): Removed useless assert. 34952 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens. 34953 349542013-03-28 Marek Polacek <polacek@redhat.com> 34955 Richard Biener <rguenther@suse.de> 34956 34957 PR tree-optimization/56695 34958 * tree-vect-stmts.c (vectorizable_condition): Unconditionally 34959 build signed result of a vector comparison. 34960 * tree-cfg.c (verify_gimple_comparison): Check that a result 34961 of a vector comparison has signed type. 34962 349632013-03-28 Richard Biener <rguenther@suse.de> 34964 34965 PR tree-optimization/37021 34966 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling 34967 do not restrict gaps between groups. 34968 * tree-vect-stmts.c (vectorizable_load): Properly account for 34969 a gap between groups. 34970 349712013-03-28 Eric Botcazou <ebotcazou@adacore.com> 34972 34973 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a 34974 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS 34975 is not enabled. 34976 349772013-03-27 Gerald Pfeifer <gerald@pfeifer.com> 34978 34979 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual. 34980 * doc/extend.texi (Named Address Spaces): Ditto. 34981 (Variable Attributes): Ditto. 34982 349832013-03-27 Kai Tietz <ktietz@redhat.com> 34984 34985 * config.build: Add support for cygwin x64 target. 34986 * config.gcc: Likewise. 34987 * config.host: Likewise. 34988 * configure.ac: Likewise 34989 * configure: Regenerated. 34990 349912013-03-27 Kai Tietz <ktietz@redhat.com> 34992 34993 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target. 34994 * config/i386/t-cygwin-w64: New file. 34995 * config/i386/cygwin-w64.h: New file. 34996 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend 34997 and add support for x64-cygwin target. 34998 (CPP_SPEC): Likewise. 34999 (CXX_WRAP_SPEC_LIST): Undefine before define. 35000 (LIBGCJ_SONAME): Use 15 as version. 35001 350022013-03-27 Richard Biener <rguenther@suse.de> 35003 35004 PR tree-optimization/56716 35005 * tree-ssa-structalias.c (perform_var_substitution): Adjust 35006 dumping for ref nodes. 35007 350082013-03-27 Martin Jambor <mjambor@suse.cz> 35009 35010 PR tree-optimization/55334 35011 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to 35012 restricted pointers to arrays. 35013 350142013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net> 35015 35016 * Makefile.in (.SUFFIXES): Add .cc. 35017 (.c.o): Apply same recipe for implicit rule .cc.o. 35018 350192013-03-27 Richard Biener <rguenther@suse.de> 35020 35021 PR tree-optimization/37021 35022 * tree-vect-data-refs.c (vect_check_strided_load): Allow 35023 REALPART/IMAGPART_EXPRs around the supported refs. 35024 * tree-ssa-structalias.c (find_func_aliases): Assume that 35025 floating-point values are not used to transfer pointers. 35026 350272013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com> 35028 35029 * target.def (TARGET_HAS_IFUNC_P): New target hook. 35030 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New. 35031 * doc/tm.texi: Regenerate. 35032 * targhooks.h (default_has_ifunc_p): New. 35033 * targhooks.c (default_has_ifunc_p): Ditto. 35034 * config/linux-protos.h: New file. 35035 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this 35036 hook for linux which disables support of indirect functions in android. 35037 * config/linux-android.c: New file. 35038 * config/t-linux-android.c: Ditto. 35039 * config.gcc: Added new object file linux-android.o. 35040 * config/i386/i386.c (ix86_get_function_versions_dispatcher): 35041 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION. 35042 * varasm.c (do_assemble_alias): Likewise. 35043 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target 35044 doesn't support indirect functions. 35045 * configure: Regenerate. 35046 350472013-03-27 Bin Cheng <bin.cheng@arm.com> 35048 35049 PR target/56102 35050 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix 35051 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with 35052 mult-word mode. 35053 350542013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 35055 35056 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define. 35057 350582013-03-27 Terry Guo <terry.guo@arm.com> 35059 35060 * config/arm/arm-cores.def: Added core cortex-r7. 35061 * config/arm/arm-tune.md: Regenerated. 35062 * config/arm/arm-tables.opt: Regenerated. 35063 * doc/invoke.texi: Added entry for core cortex-r7. 35064 350652013-03-27 Walter Lee <walt@tilera.com> 35066 35067 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid 35068 double-decrement of next_scratch_regno. 35069 350702013-03-27 Walter Lee <walt@tilera.com> 35071 35072 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on 35073 input operands. 35074 (insn_v1mulus): Ditto. 35075 (insn_v2muls): Ditto. 35076 350772013-03-27 Walter Lee <walt@tilera.com> 35078 35079 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab. 35080 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto. 35081 350822013-03-27 Walter Lee <walt@tilera.com> 35083 35084 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr. 35085 (*sibcall_value): Ditto. 35086 350872013-03-27 Walter Lee <walt@tilera.com> 35088 35089 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ... 35090 (insn_mnz_v8qi): ... this ... 35091 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the 35092 vector equivalent. 35093 (insn_v<n>mnz): Replaced by ... 35094 (insn_v1mnz): ... this ... 35095 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector 35096 equivalent. 35097 (insn_mz_<mode>): Replaced by ... 35098 (insn_mz_v8qi): ... this ... 35099 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the 35100 vector equivalent. 35101 (insn_v<n>mz): Replaced by ... 35102 (insn_v1mz): ... this ... 35103 (insn_v2mz): ... and this. Replace (const_int 0) with the vector 35104 equivalent. 35105 351062013-03-26 Eric Botcazou <ebotcazou@adacore.com> 35107 35108 * doc/invoke.texi (SPARC options): Remove -mlittle-endian. 35109 351102013-03-26 Roland McGrath <mcgrathr@google.com> 35111 35112 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather 35113 than fprintf with a non-constant, non-format string. 35114 351152013-03-26 Uros Bizjak <ubizjak@gmail.com> 35116 35117 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64 35118 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as 35119 operand 0 predicate. 35120 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa 35121 attribute. Use general_x64nomem_operand as operand 1 predicate. 35122 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa 35123 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate. 35124 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa 35125 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate. 35126 (mov<mode>_insv_1): Remove expander. Merge insn with 35127 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute. 35128 Use general_x64nomem_operand as operand 1 predicate. 35129 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute. 35130 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa 35131 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate. 35132 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa 35133 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate. 35134 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa 35135 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate. 35136 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64 35137 isa attribute. Use general_x64nomem_operand as operand 2 predicate. 35138 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New. 35139 (general_x64nomem_operand): Ditto. 35140 351412013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de> 35142 35143 * config/rtems.opt: Add -pthread option. 35144 351452013-03-26 Richard Biener <rguenther@suse.de> 35146 35147 * alias.c (find_base_term): Avoid redundant and not used recursion. 35148 (base_alias_check): Get the initial base term from the caller. 35149 (true_dependence_1): Compute and pass base terms to base_alias_check. 35150 (write_dependence_p): Likewise. 35151 (may_alias_p): Likewise. 35152 351532013-03-26 Sofiane Naci <sofiane.naci@arm.com> 35154 35155 * config/aarch64/aarch64.c (aarch64_classify_address): Support 35156 PC-relative load in SI modes and above only. 35157 351582013-03-26 Xinyu Qi <xyqi@marvell.com> 35159 35160 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment. 35161 * config/arm/iwmmxt.md (WCGR0): Update. 35162 (WCGR1, WCGR2, WCGR3): Likewise. 35163 351642013-03-26 Uros Bizjak <ubizjak@gmail.com> 35165 35166 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64. 35167 Use x64 and nox64 isa attributes. 35168 351692013-03-26 Richard Biener <rguenther@suse.de> 35170 35171 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove 35172 alignment computations and rely on get_object_alignment_1 35173 for the !TYPE_P case. 35174 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path. 35175 351762013-03-26 Walter Lee <walt@tilera.com> 35177 35178 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define. 35179 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define. 35180 351812013-03-25 Jeff Law <law@redhat.com> 35182 35183 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing 35184 check for INTEGRAL_TYPE_P that was missing due to checking in 35185 wrong version of prior patch. 35186 351872013-03-25 Walter Lee <walt@tilera.com> 35188 35189 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add 35190 TILEGX_INSN_SHUFFLEBYTES1. 35191 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for 35192 shufflebytes1. 35193 (tilegx_builtins): Ditto. 35194 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern. 35195 351962013-03-25 Walter Lee <walt@tilera.com> 35197 35198 * config/tilegx/tilegx.md (floatsisf2): New pattern. 35199 (floatunssisf2): New pattern. 35200 (floatsidf2): New pattern. 35201 (floatunssidf2): New pattern. 35202 352032013-03-25 Walter Lee <walt@tilera.com> 35204 35205 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline 35206 tests for constraint J, K, N, P. 35207 352082013-03-25 Walter Lee <walt@tilera.com> 35209 35210 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format): 35211 Use indirect/pcrel encoding. 35212 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format): 35213 Ditto. 35214 352152013-03-25 Steve Ellcey <sellcey@mips.com> 35216 35217 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1, 35218 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD. 35219 * config/mips/mips.c (mips_option_override): Set IMADD default. 35220 * config/mips/mips.h (PTF_AVOID_IMADD): New. 35221 (ISA_HAS_MADD_MSUB): Remove MIPS16 check. 35222 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check. 35223 * config/mips/mips.md (mimadd): New flag for integer madd/msub. 35224 * doc/invoke.texi (-mimadd/-mno-imadd): New. 35225 352262013-03-25 Jeff Law <law@redhat.com> 35227 35228 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework 35229 slightly to avoid creating and folding useless trees. Simplify 35230 slightly by restricting to INTEGER_CSTs and using int_fits_type_p. 35231 352322013-03-25 Uros Bizjak <ubizjak@gmail.com> 35233 35234 * config/i386/i386.md (*zero_extendsidi2): Merge with 35235 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes. 35236 * config/i386/predicates.md (x86_64_zext_operand): Rename from 35237 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit 35238 targets. Clarify comment. 35239 352402013-03-25 Martin Jambor <mjambor@suse.cz> 35241 35242 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic 35243 pass-through jump functions differently. 35244 (ipa_read_jump_function): Likewise. Also use setter functions to set 35245 up jump functions. 35246 352472013-03-25 Martin Jambor <mjambor@suse.cz> 35248 35249 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to 35250 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to 35251 process it. 35252 (ipa_get_indirect_edge_target): New function. 35253 (devirtualization_time_bonus): New parameter known_aggs, pass it to 35254 ipa_get_indirect_edge_target. Update all callers. 35255 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to 35256 ipa_get_indirect_edge_target_1 instead of calling 35257 ipa_get_indirect_edge_target. 35258 (create_specialized_node): Pass aggvlas to 35259 ipcp_discover_new_direct_edges. 35260 352612013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 35262 35263 * config/arm/arm.md (f_sels, f_seld): New types. 35264 (*cmov<mode>): New pattern. 35265 * config/arm/predicates.md (arm_vsel_comparison_operator): New 35266 predicate. 35267 352682013-03-25 Kai Tietz <ktietz@redhat.com> 35269 35270 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable 35271 POSIX-printf for mingw-hosted builds. 35272 352732013-03-25 Richard Biener <rguenther@suse.de> 35274 35275 PR middle-end/56694 35276 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the 35277 must-not-throw stmt location. 35278 352792013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 35280 35281 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter. 35282 Emit load-acquire versions when acq is true. 35283 (arm_emit_store_exclusive): Add rel parameter. 35284 Emit store-release versions when rel is true. 35285 (arm_split_compare_and_swap): Use acquire-release instructions 35286 instead. 35287 of barriers when appropriate. 35288 (arm_split_atomic_op): Likewise. 35289 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro. 35290 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec. 35291 (VUNSPEC_SLX): Likewise. 35292 (VUNSPEC_LDA): Likewise. 35293 (VUNSPEC_STL): Likewise. 35294 * config/arm/sync.md (atomic_load<mode>): New pattern. 35295 (atomic_store<mode>): Likewise. 35296 (arm_load_acquire_exclusive<mode>): Likewise. 35297 (arm_load_acquire_exclusivesi): Likewise. 35298 (arm_load_acquire_exclusivedi): Likewise. 35299 (arm_store_release_exclusive<mode>): Likewise. 35300 353012013-03-25 Catherine Moore <clm@codesourcery.com> 35302 35303 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3, 35304 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints. 35305 * config/mip/predicates.md (lwsp_swsp_operand, 35306 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand, 35307 sb16_operand, db4_operand, db7_operand, ib3_operand, 35308 sb4_operand, ub4_operand, uh4_operand, uw4_operand, 35309 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand, 35310 andi16_operand): New predicates. 35311 * config/mips/mips.md (compression): New attribute. 35312 (enabled): New attribute. 35313 (length): Consider compression in computing length. 35314 (shift_compression): New code attribute. 35315 (*add<mode>3): New operands. Record compression. 35316 (sub<mode>3): Likewise. 35317 (one_cmpl<mode>2): Likewise. 35318 (*and<mode>3): Likewise. 35319 (*ior<mode>3): Likewise. 35320 (unnamed pattern for xor): Likewise. 35321 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise. 35322 (*<optab><mode>3): Likewise. 35323 (*mov<mode>_internal: Likewise. 35324 * config/mips/mips-protos.h (mips_signed_immediate_p): New. 35325 (mips_unsigned_immediate_p): New. 35326 (umips_lwsp_swsp_address_p): New. 35327 (m16_based_address_p): New. 35328 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype. 35329 (mips_unsigned_immediate_p): New prototype. 35330 (lwsp_swsp_address_p): New prototype. 35331 (m16_based_address_p): New prototype. 35332 * config/mips/mips.c (mips_unsigned_immediate_p): New function. 35333 (mips_signed_immediate_p): New function. 35334 (m16_based_address_p): New function. 35335 (lwsp_swsp_address_p): New function. 35336 (mips_print_operand_punctuation): Recognize short delay slot insns 35337 for microMIPS.add<mode>3" 35338 353392013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 35340 35341 PR target/56720 35342 * config/arm/iterators.md (v_cmp_result): New mode attribute. 35343 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases. 35344 353452013-03-25 Richard Biener <rguenther@suse.de> 35346 35347 PR tree-optimization/56689 35348 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed 35349 any edge. 35350 353512013-03-25 Richard Biener <rguenther@suse.de> 35352 35353 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead 35354 of bitmap. 35355 (memory_references): Likewise. 35356 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored, 35357 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1, 35358 ref_indep_loop_p_2, find_refs_for_sm): Adjust. 35359 (gather_mem_refs_in_loops): Fold into ... 35360 (analyze_memory_references): ... this. Move initialization 35361 to tree_ssa_lim_initialize. 35362 (fill_always_executed_in): Rename to ... 35363 (fill_always_executed_in_1): ... this. 35364 (fill_always_executed_in): Move contains_call computation to 35365 this new function from ... 35366 (tree_ssa_lim_initialize): ... here. 35367 (tree_ssa_lim): Call fill_always_executed_in. 35368 353692013-03-25 Eric Botcazou <ebotcazou@adacore.com> 35370 35371 * postreload.c (reload_combine): Fix code detecting returns. 35372 353732013-03-25 Eric Botcazou <ebotcazou@adacore.com> 35374 35375 * function.c (emit_use_return_register_into_block): On cc0 targets, 35376 do not emit the sequence between cc0 setter and user. 35377 353782013-03-25 Kai Tietz <ktietz@redhat.com> 35379 35380 * config/i386/predicates.md (local_symbolic_operand): Interpret 35381 dll-imported symbols as none-local. 35382 353832013-03-25 Richard Biener <rguenther@suse.de> 35384 35385 * tree-ssa-loop-im.c (struct depend): Remove. 35386 (struct lim_aux_data): Make depends a vec of gimples. 35387 (free_lim_aux_data): Adjust. 35388 (add_dependency): Likewise. 35389 (set_level): Likewise. 35390 353912013-03-25 Richard Biener <rguenther@suse.de> 35392 35393 PR middle-end/56434 35394 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate 35395 the pointer returned by calls with ECF_MALLOC set. 35396 353972013-03-24 Uros Bizjak <ubizjak@gmail.com> 35398 35399 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives. 35400 354012013-03-24 Uros Bizjak <ubizjak@gmail.com> 35402 35403 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander 35404 using MMXMODE mode iterator. 35405 (*move<mode>_internal): Merge with *movv2sf_internal and 35406 *movv2sf_internal_rex64 using MMXMODE mode iterator. 35407 354082013-03-23 Steven Bosscher <steven@gcc.gnu.org> 35409 35410 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm. 35411 (record_last_mem_set_info): Likewise. 35412 35413 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead 35414 of XNEWVEC followed by memset. 35415 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast. 35416 354172013-03-23 Steven Bosscher <steven@gcc.gnu.org> 35418 35419 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c, 35420 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c, 35421 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c, 35422 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c, 35423 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c, 35424 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c, 35425 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use 35426 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and 35427 BARRIER_P instead of GET_CODE. 35428 354292013-03-23 Eric Botcazou <ebotcazou@adacore.com> 35430 35431 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small 35432 inaccuracy in the probing code. 35433 35434 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3. 35435 (ctrapdi4): Likewise. 35436 354372013-03-23 Eric Botcazou <ebotcazou@adacore.com> 35438 35439 * calls.c (expand_call): Add missing guard to code handling return 35440 of non-BLKmode structures in MSB. 35441 * function.c (expand_function_end): Likewise. 35442 354432013-03-23 Eric Botcazou <ebotcazou@adacore.com> 35444 35445 * combine.c (try_combine): Adjust comment. Do not add the set of 35446 insn #0 if the destination indirectly is set or dies in insn #2. 35447 Tidy up code to distribute a new note. 35448 354492013-03-22 Uros Bizjak <ubizjak@gmail.com> 35450 35451 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute 35452 also for alternatives 16 and 17. 35453 354542013-03-22 Uros Bizjak <ubizjak@gmail.com> 35455 35456 * config/i386/sse.md (*mov<mode>_internal): Merge with 35457 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes. 35458 Emit insn template depending on type attribute. Use 35459 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require 35460 movd instead of movq mnemonic for interunit moves. Rewrite mode 35461 attribute calculation. Remove unit attribute calculation. 35462 Set prefix attribute to maybe_vex for sselog1 and ssemov types. 35463 Set prefix_data16 attribute for DImode ssemov types. 35464 Use Ym instead of y for SSE-MMX conversion alternatives. 35465 Reorder operand constraints. 35466 354672013-03-22 Steven Bosscher <steven@gcc.gnu.org> 35468 35469 * df.h (df_insn_delete): Adjust prototype. 35470 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete 35471 and let it decide whether mark the basic block dirty. 35472 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete. 35473 * df-scan.c (df_insn_info_delete): New helper function, split 35474 off from df_insn_delete. 35475 (df_scan_free_bb_info): Use it. 35476 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans): 35477 Likewise. 35478 (df_insn_delete): Likewise. Take insn rtx as argument. Verify 35479 that the insn is actually an insn and it has a non-NULL basic block. 35480 Do not mark basic block dirty if only deleting a DEBUG_INSN. 35481 354822013-03-22 Richard Biener <rguenther@suse.de> 35483 35484 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and 35485 dep_ref members. 35486 (mem_ref_alloc): Do not allocate them. 35487 (refs_independent_p): Do not query or maintain a cache. 35488 354892013-03-22 Richard Biener <rguenther@suse.de> 35490 35491 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop. 35492 (gather_mem_refs_in_loops): Do not compute it. 35493 (analyze_memory_references): Do not allocate it. 35494 (tree_ssa_lim_finalize): Do not free it. 35495 (for_all_locs_in_loop): Do not query all_refs_in_loop. 35496 354972013-03-22 Richard Biener <rguenther@suse.de> 35498 35499 * is-a.h (as_a): Use gcc_checking_assert. 35500 355012013-03-22 Ian Bolton <ian.bolton@arm.com> 35502 35503 * config/aarch64/aarch64.c (aarch64_print_operand): New 35504 format specifier for printing a constant in hex. 35505 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X 35506 format specifier for printing second operand. 35507 355082013-03-22 Richard Biener <rguenther@suse.de> 35509 35510 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop 35511 bitmaps. 35512 (gather_mem_refs_in_loops): Perform store accumulation here. 35513 (create_vop_ref_mapping_loop): Remove. 35514 (create_vop_ref_mapping): Likewise. 35515 (analyze_memory_references): Initialize refs_stored_in_loop. 35516 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps. 35517 (record_indep_loop): Remove. 35518 (record_dep_loop): New function. 35519 (ref_indep_loop_p_1): Adjust to only walk over references 35520 in the loop, not its subloops. 35521 (ref_indep_loop_p): Rename to ... 35522 (ref_indep_loop_p_2): ... this and recurse over the loop tree, 35523 maintaining a more fine-grained cache. 35524 (ref_indep_loop_p): Wrap ref_indep_loop_p_2. 35525 (tree_ssa_lim_finalize): Free refs_stored_in_loop. 35526 355272013-03-22 Richard Biener <rguenther@suse.de> 35528 35529 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove. 35530 (struct mem_ref): Make accesses_in_loop a vec of a vec of 35531 aggregate mem_ref_loc. 35532 (free_mem_ref_locs): Inline into ... 35533 (memref_free): ... this and adjust. 35534 (mem_ref_alloc): Adjust. 35535 (mem_ref_locs_alloc): Remove. 35536 (record_mem_ref_loc): Adjust. 35537 (get_all_locs_in_loop): Rewrite into ... 35538 (for_all_locs_in_loop): ... this iterator. 35539 (rewrite_mem_ref_loc): New functor. 35540 (rewrite_mem_refs): Use for_all_locs_in_loop. 35541 (sm_set_flag_if_changed): New functor. 35542 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop. 35543 (ref_always_accessed): New functor. 35544 (ref_always_accessed_p): Use for_all_locs_in_loop. 35545 355462013-03-21 Marc Glisse <marc.glisse@inria.fr> 35547 35548 * tree-pass.h (PROP_gimple_lvec): New. 35549 * passes.c (dump_properties): Handle PROP_gimple_lvec. 35550 (init_optimization_passes): Move pass_lower_vector. 35551 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test 35552 PROP_gimple_lvec. 35553 (pass_lower_vector): Provide PROP_gimple_lvec. 35554 (pass_lower_vector_ssa): Likewise. 35555 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec. 35556 355572013-03-21 Mark Wielaard <mjw@redhat.com> 35558 35559 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions. 35560 355612013-03-21 Uros Bizjak <ubizjak@gmail.com> 35562 35563 * config/i386/i386.md (*movdi_internal): Disparage slightly 35564 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX 35565 conversion alternatives. 35566 355672013-03-21 Jakub Jelinek <jakub@redhat.com> 35568 35569 PR middle-end/48087 35570 * diagnostic.def (DK_WERROR): New kind. 35571 * diagnostic.h (werrorcount): Define. 35572 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING 35573 promoted to DK_ERROR, increment DK_WERROR counter instead of 35574 DK_ERROR counter. 35575 * toplev.c (toplev_main): Call print_ignored_options even if 35576 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE 35577 even if just werrorcount is non-zero. 35578 35579 PR debug/55608 35580 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array) 35581 on failure. 35582 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written. 35583 (string_cst_pool_decl): New function. 35584 (optimize_one_addr_into_implicit_ptr): New function. 35585 (resolve_addr_in_expr): Optimize DWARF location expression 35586 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable 35587 which doesn't live in memory, but has DW_AT_location or 35588 DW_AT_const_value, or refers to a string literal, into 35589 DW_OP_GNU_implicit_pointer. 35590 (optimize_location_into_implicit_ptr): New function. 35591 (resolve_addr): If removing DW_AT_location of a variable because 35592 it was DW_OP_addr of address of the variable, but the variable doesn't 35593 live in memory, try to emit const value attribute for the initializer. 35594 355952013-03-21 Marc Glisse <marc.glisse@inria.fr> 35596 35597 * tree.h (VECTOR_TYPE_P): New macro. 35598 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P, 35599 TYPE_MODE): Use it. 35600 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst. 35601 VEC_COND_EXPR cannot be lvalues. 35602 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case. 35603 356042013-03-21 Marc Glisse <marc.glisse@inria.fr> 35605 35606 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>: 35607 Restrict the transformation to equal modes. 35608 356092013-03-21 Richard Biener <rguenther@suse.de> 35610 35611 PR tree-optimization/39326 35612 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define. 35613 (MEM_ANALYZABLE): Adjust. 35614 (record_mem_ref_loc): Move bitmap ops ... 35615 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for 35616 unanalyzable refs, do not record locations for it. 35617 (analyze_memory_references): Allocate ref zero as shared 35618 unanalyzable ref. 35619 (refs_independent_p): Do not test for unanalyzed mems here. 35620 (ref_indep_loop_p_1): Special-case disambiguation against 35621 the unanalyzed ref. 35622 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem. 35623 356242013-03-21 Christophe Lyon <christophe.lyon@linaro.org> 35625 35626 * config/arm/arm-protos.h (tune_params): Add 35627 prefer_neon_for_64bits field. 35628 * config/arm/arm.c (prefer_neon_for_64bits): New variable. 35629 (arm_slowmul_tune): Default prefer_neon_for_64bits to false. 35630 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto. 35631 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto. 35632 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto. 35633 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto. 35634 (arm_option_override): Handle -mneon-for-64bits new option. 35635 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro. 35636 (prefer_neon_for_64bits): Declare new variable. 35637 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to 35638 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8. 35639 (arch_enabled): Handle new arch types. Remove support for onlya8 35640 and nota8. 35641 (one_cmpldi2): Use new arch names. 35642 (zero_extend<mode>di2, extend<mode>di2): Ditto. 35643 * config/arm/arm.opt (mneon-for-64bits): Add option. 35644 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon) 35645 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use 35646 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead 35647 of onlya8. 35648 * doc/invoke.texi (-mneon-for-64bits): Document. 35649 356502013-03-21 Richard Biener <rguenther@suse.de> 35651 35652 PR tree-optimization/39326 35653 * tree-ssa-loop-im.c (bb_loop_postorder): New global static. 35654 (sort_bbs_in_loop_postorder_cmp): New function. 35655 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder. 35656 356572013-03-21 Richard Biener <rguenther@suse.de> 35658 35659 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove. 35660 (vect_insert_into_interleaving_chain): Likewise. 35661 (vect_drs_dependent_in_basic_block): Inline ... 35662 (vect_slp_analyze_data_ref_dependence): ... here. New function, 35663 split out from ... 35664 (vect_analyze_data_ref_dependence): ... here. Simplify. 35665 (vect_check_interleaving): Simplify. 35666 (vect_analyze_data_ref_dependences): Likewise. Split out ... 35667 (vect_slp_analyze_data_ref_dependences): ... this new function. 35668 (dr_group_sort_cmp): New function. 35669 (vect_analyze_data_ref_accesses): Compute data-reference groups 35670 here instead of in vect_analyze_data_ref_dependence. Use 35671 a more efficient algorithm. 35672 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use 35673 vect_slp_analyze_data_ref_dependences. Call 35674 vect_analyze_data_ref_accesses earlier. 35675 * tree-vect-loop.c (vect_analyze_loop_2): Likewise. 35676 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust. 35677 (vect_slp_analyze_data_ref_dependences): New prototype. 35678 356792013-03-21 Richard Biener <rguenther@suse.de> 35680 35681 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether 35682 ref is stored in the loop. 35683 (find_refs_for_sm): Walk only over all stores. 35684 (store_motion_loop): Allocate from lim_bitmap_obstack. 35685 (store_motion): Likewise. 35686 356872013-03-21 Richard Biener <rguenther@suse.de> 35688 35689 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): 35690 Update virtual SSA form. 35691 356922013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 35693 35694 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test. 35695 * configure: Regenerate. 35696 * config.in: Regenerate. 35697 * config/sol2.c (solaris_override_options): Only enforce DWARF 2 35698 if !HAVE_LD_EH_FRAME_CIEV3. 35699 357002013-03-21 Richard Biener <rguenther@suse.de> 35701 35702 * tree-cfg.c (verify_expr_no_block): New function. 35703 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR 35704 nor DECL_VALUE_EXPR have locations with associated blocks. 35705 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove. 35706 (clear_unused_block_pointer): Remove code dealing with 35707 blocks in DECL_DEBUG_EXPR locations. 35708 357092013-03-21 Richard Biener <rguenther@suse.de> 35710 35711 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ... 35712 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly. 35713 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P. 35714 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P 35715 instead of DECL_DEBUG_EXPR_IS_FROM. 35716 * gimplify.c (gimplify_modify_expr): Likewise. 35717 * tree-cfg.c (verify_expr_location_1): Likewise. 35718 * tree-complex.c (create_one_component_var): Likewise. 35719 * tree-sra.c (create_access_replacement): Likewise. 35720 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise. 35721 (clear_unused_block_pointer): Likewise. 35722 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise. 35723 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. 35724 * var-tracking.c (var_debug_decl): Likewise. 35725 (track_expr_p): Likewise. 35726 * tree-inline.c (add_local_variables): Likewise. Set 35727 DECL_HAS_DEBUG_EXPR_P after copying it. 35728 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P 35729 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly. 35730 357312013-03-21 Uros Bizjak <ubizjak@gmail.com> 35732 35733 PR bootstrap/56656 35734 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test. 35735 * configure: Regenerate. 35736 * config.in: Regenerate. 35737 * config/i386/i386.md (*movdf_internal): Use 35738 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require 35739 movd instead of movq mnemonic for interunit moves. 35740 (*movdi_internal): Ditto. 35741 357422013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> 35743 35744 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute. 35745 (abd<mode>_3): New pattern. 35746 (aba<mode>_3): New pattern. 35747 (fabd<mode>_3): New pattern. 35748 357492013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> 35750 35751 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove. 35752 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all 35753 occurrence of REGISTER_PREFIX as its empty string. 35754 357552013-03-20 Jeff Law <law@redhat.com> 35756 35757 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record 35758 addititional equivalences for equality comparisons between an SSA_NAME 35759 and a constant where the SSA_NAME was set from a widening conversion. 35760 357612013-03-20 Walter Lee <walt@tilera.com> 35762 35763 * config/tilegx/sync.md (atomic_test_and_set): New pattern. 35764 357652013-03-20 Uros Bizjak <ubizjak@gmail.com> 35766 35767 * config/i386/i386.md (*movoi_internal_avx): Emit insn template 35768 depending on type attribute. 35769 (*movti_internal): Ditto. 35770 (*movtf_internal): Ditto. 35771 (*movxf_internal): Ditto. 35772 (*movdf_internal): Ditto. 35773 (*movsf_internal): Ditto. 35774 357752013-03-20 Uros Bizjak <ubizjak@gmail.com> 35776 35777 * config/i386/i386.md (*movti_internal): Set prefix attribute to 35778 maybe_vex for sselog1 and ssemov types. 35779 (*movdi_internal): Reorder operand constraints. 35780 (*movsi_internal): Ditto. Set prefix attribute to 35781 maybe_vex for sselog1 and ssemov types. 35782 (*movtf_internal): Set prefix attribute to maybe_vex 35783 for sselog1 and ssemov types. 35784 (*movdf_internal): Ditto. Set prefix_data16 attribute for 35785 DImode ssemov types. Reorder operand constraints. 35786 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix 35787 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16 35788 attribute for SImode ssemov types. Reorder operand constraints. 35789 357902013-03-20 Martin Jambor <mjambor@suse.cz> 35791 35792 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter. 35793 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices. 35794 357952013-03-20 Pat Haugen <pthaugen@us.ibm.com> 35796 35797 * config/rs6000/predicates.md (indexed_address, update_address_mem 35798 update_indexed_address_mem): New predicates. 35799 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type" 35800 attribute for load/store instructions. 35801 * config/rs6000/dfp.md (movsd_store): Likewise. 35802 (movsd_load): Likewise. 35803 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise. 35804 (unnamed HI->DI extend define_insn): Likewise. 35805 (unnamed SI->DI extend define_insn): Likewise. 35806 (unnamed QI->SI extend define_insn): Likewise. 35807 (unnamed QI->HI extend define_insn): Likewise. 35808 (unnamed HI->SI extend define_insn): Likewise. 35809 (unnamed HI->SI extend define_insn): Likewise. 35810 (extendsfdf2_fpr): Likewise. 35811 (movsi_internal1): Likewise. 35812 (movsi_internal1_single): Likewise. 35813 (movhi_internal): Likewise. 35814 (movqi_internal): Likewise. 35815 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type" 35816 attribute for load/store instructions. 35817 (mov<mode>_hardfloat): Set correct "type" attribute for load/store 35818 instructions. 35819 (mov<mode>_softfloat): Likewise. 35820 (mov<mode>_hardfloat32): Likewise. 35821 (mov<mode>_hardfloat64): Likewise. 35822 (mov<mode>_softfloat64): Likewise. 35823 (movdi_internal32): Likewise. 35824 (movdi_internal64): Likewise. 35825 (probe_stack_<mode>): Likewise. 35826 358272013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com> 35828 35829 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary 35830 floating point, and decimal floating point to reload iterator. 35831 35832 * config/rs6000/constraints.md (wl constraint): New constraints to 35833 return FLOAT_REGS if certain options are used to reduce the number 35834 of separate patterns that exist in the file. 35835 (wx constraint): Likewise. 35836 (wz constraint): Likewise. 35837 35838 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If 35839 -mdebug=reg, print wg, wl, wx, and wz constraints. 35840 (rs6000_init_hard_regno_mode_ok): Initialize new constraints. 35841 Initialize the reload functions for 64-bit binary/decimal floating 35842 point types. 35843 (reg_offset_addressing_ok_p): If we are on a power7 or later, use 35844 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't 35845 create the buffer on the stack to overcome not having a 32-bit 35846 load and store. 35847 (rs6000_emit_move): Likewise. 35848 (rs6000_secondary_memory_needed_rtx): Likewise. 35849 (rs6000_alloc_sdmode_stack_slot): Likewise. 35850 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f 35851 via xxlxor, just like DFmode 0.0. 35852 35853 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro, 35854 define as 1 if we are running on a power7 or newer. 35855 (enum r6000_reg_class_enum): Add new constraints. 35856 35857 * config/rs6000/dfp.md (movsd): Delete, combine with binary 35858 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves 35859 with other moves by using conditional constraits (wg). Use LFIWZX 35860 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f. 35861 (movsd splitter): Likewise. 35862 (movsd_hardfloat): Likewise. 35863 (movsd_softfloat): Likewise. 35864 35865 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine 35866 binary and decimal floating point moves. 35867 (fmove_ok): New attributes to combine binary and decimal floating 35868 point moves, and to combine power6x (mfpgpr) moves along normal 35869 floating moves. 35870 (real_value_to_target): Likewise. 35871 (f32_lr): Likewise. 35872 (f32_lm): Likewise. 35873 (f32_li): Likewise. 35874 (f32_sr): Likewise. 35875 (f32_sm): Likewise. 35876 (f32_si): Likewise. 35877 (movsf): Combine binary and decimal floating point moves. Combine 35878 power6x (mfpgpr) moves with other moves by using conditional 35879 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7. 35880 (mov<mode> for SFmode/SDmode); Likewise. 35881 (SFmode/SDmode splitters): Likewise. 35882 (movsf_hardfloat): Likewise. 35883 (mov<mode>_hardfloat for SFmode/SDmode): Likewise. 35884 (movsf_softfloat): Likewise. 35885 (mov<mode>_softfloat for SFmode/SDmode): Likewise. 35886 35887 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl, 35888 wx and wz constraints. 35889 35890 * config/rs6000/constraints.md (wg constraint): New constraint to 35891 return FLOAT_REGS if -mmfpgpr (power6x) was used. 35892 35893 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg 35894 constraint. 35895 35896 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If 35897 -mdebug=reg, print wg, wl, wx, and wz constraints. 35898 (rs6000_init_hard_regno_mode_ok): Initialize new constraints. 35899 Initialize the reload functions for 64-bit binary/decimal floating 35900 point types. 35901 (reg_offset_addressing_ok_p): If we are on a power7 or later, use 35902 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't 35903 create the buffer on the stack to overcome not having a 32-bit 35904 load and store. 35905 (rs6000_emit_move): Likewise. 35906 (rs6000_secondary_memory_needed_rtx): Likewise. 35907 (rs6000_alloc_sdmode_stack_slot): Likewise. 35908 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f 35909 via xxlxor, just like DFmode 0.0. 35910 35911 * config/rs6000/dfp.md (movdd): Delete, combine with binary 35912 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves 35913 with other moves by using conditional constraits (wg). Use LFIWZX 35914 and STFIWX for loading SDmode on power7. 35915 (movdd splitters): Likewise. 35916 (movdd_hardfloat32): Likewise. 35917 (movdd_softfloat32): Likewise. 35918 (movdd_hardfloat64_mfpgpr): Likewise. 35919 (movdd_hardfloat64): Likewise. 35920 (movdd_softfloat64): Likewise. 35921 35922 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine 35923 64-bit binary and decimal floating point moves. 35924 (FMOVE64X): Likewise. 35925 (movdf): Combine 64-bit binary and decimal floating point moves. 35926 Combine power6x (mfpgpr) moves with other moves by using 35927 conditional constraits (wg). 35928 (mov<mode> for DFmode/DDmode): Likewise. 35929 (DFmode/DDmode splitters): Likewise. 35930 (movdf_hardfloat32): Likewise. 35931 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise. 35932 (movdf_softfloat32): Likewise. 35933 (movdf_hardfloat64_mfpgpr): Likewise. 35934 (movdf_hardfloat64): Likewise. 35935 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise. 35936 (movdf_softfloat64): Likewise. 35937 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise. 35938 (reload_<mode>_load): Move to later in the file so they aren't in 35939 the middle of the floating point move insns. 35940 (reload_<mode>_store): Likewise. 35941 35942 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg 35943 constraint. 35944 35945 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg 35946 constraint if -mdebug=reg. 35947 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr. 35948 Enable using dd reload support if needed. 35949 35950 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit 35951 binary and decimal floating point moves in rs6000.md. 35952 (movtd_internal): Likewise. 35953 35954 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and 35955 decimal floating point moves. 35956 (movtf): Likewise. 35957 (movtf_internal): Likewise. 35958 (mov<mode>_internal, TDmode/TFmode): Likewise. 35959 (movtf_softfloat): Likewise. 35960 (mov<mode>_softfloat, TDmode/TFmode): Likewise. 35961 35962 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with 35963 movdi_internal64, using wg constraint for move direct operations. 35964 (movdi_internal64): Likewise. 35965 35966 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print 35967 MODES_TIEABLE_P for selected modes. Print the numerical value of 35968 the various virtual registers. Use GPR/FPR first/last values, 35969 instead of hard coding the register numbers. Print which modes 35970 have reload functions registered. 35971 (rs6000_option_override_internal): If -mdebug=reg, trace the options 35972 settings before/after setting cpu, target and subtarget settings. 35973 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr 35974 and for secondary reload failures in rs6000_secondary_reload_inner. 35975 (rs6000_secondary_reload_fail): Likewise. 35976 (rs6000_secondary_reload_inner): Likewise. 35977 35978 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience 35979 macros for first/last GPR and FPR registers. 35980 (LAST_GPR_REGNO): Likewise. 35981 (FIRST_FPR_REGNO): Likewise. 35982 (LAST_FPR_REGNO): Likewise. 35983 35984 * config/rs6000/vector.md (mul<mode>3): Use the combined macro 35985 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to 35986 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P. 35987 (vcond<mode><mode>): Likewise. 35988 (vcondu<mode><mode>): Likewise. 35989 (vector_gtu<mode>): Likewise. 35990 (vector_gte<mode>): Likewise. 35991 (xor<mode>3): Don't allow logical operations on TImode in 32-bit 35992 to prevent the compiler from converting DImode operations to TImode. 35993 (ior<mode>3): Likewise. 35994 (and<mode>3): Likewise. 35995 (one_cmpl<mode>2): Likewise. 35996 (nor<mode>3): Likewise. 35997 (andc<mode>3): Likewise. 35998 35999 * config/rs6000/constraints.md (wt constraint): New constraint 36000 that returns VSX_REGS if TImode is allowed in VSX registers. 36001 36002 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy 36003 constant under VSX. 36004 36005 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is 36006 similar to TImode, but it is restricted to being in the GPRs. 36007 36008 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow 36009 TImode to occupy a single VSX register. 36010 36011 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to 36012 -mvsx-timode for power7/power8. 36013 (power7 cpu): Likewise. 36014 (power8 cpu): Likewise. 36015 36016 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make 36017 sure that TFmode/TDmode take up two registers if they are ever 36018 allowed in the upper VSX registers. 36019 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX 36020 registers. 36021 (rs6000_init_hard_regno_mode_ok): Likewise. 36022 (rs6000_debug_reg_global): Add debugging for PTImode and wt 36023 constraint. Print if LRA is turned on. 36024 (rs6000_option_override_internal): Give an error if -mvsx-timode 36025 and VSX is not enabled. 36026 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If 36027 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode 36028 to reg+offset addressing. Use PTImode when checking offset 36029 addresses for validity. 36030 (reg_offset_addressing_ok_p): Likewise. 36031 (rs6000_legitimate_offset_address_p): Likewise. 36032 (rs6000_legitimize_address): Likewise. 36033 (rs6000_legitimize_reload_address): Likewise. 36034 (rs6000_legitimate_address_p): Likewise. 36035 (rs6000_eliminate_indexed_memrefs): Likewise. 36036 (rs6000_emit_move): Likewise. 36037 (rs6000_secondary_reload): Likewise. 36038 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit 36039 reloads to fpr registers to continue to use reg+offset addressing, 36040 but 64-bit reloads to altivec registers need reg+reg addressing. 36041 Drop test for PRE_MODIFY, since VSX loads/stores no longer support 36042 it. Treat LO_SUM like a PLUS operation. 36043 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use 36044 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing. 36045 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX 36046 registers to share a register with a smaller sized type, since VSX 36047 puts scalars in the upper 64-bits. 36048 (print_operand): Add support for PTImode. 36049 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of 36050 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX 36051 registers, but don't have arithmetic support. 36052 (rs6000_memory_move_cost): Add test for VSX. 36053 (rs6000_opt_masks): Add -mvsx-timode. 36054 36055 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves 36056 for TImode. 36057 (VSs): Likewise. 36058 (VSr): Use wt constraint for TImode. 36059 (VSv): Drop TImode support. 36060 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit. 36061 (vsx_movti_64bit): Likewise. 36062 (vsx_movti_32bit): Likewise. 36063 (vec_store_<mode>): Use VSX iterator instead of vector iterator. 36064 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put 36065 one '?' on the appropriate output constraint. Do not allow TImode 36066 logical operations on 32-bit systems. 36067 (vsx_ior<mode>3): Likewise. 36068 (vsx_xor<mode>3): Likewise. 36069 (vsx_one_cmpl<mode>2): Likewise. 36070 (vsx_nor<mode>3): Likewise. 36071 (vsx_andc<mode>3): Likewise. 36072 (vsx_concat_<mode>): Likewise. 36073 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes. 36074 36075 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from 36076 OPTION_MASK_VSX_TIMODE. 36077 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt. 36078 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode. 36079 36080 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode. 36081 (TI2 iterator): New iterator for TImode, PTImode. 36082 (wd mode attribute): Add values for vector types. 36083 (movti_string): Replace TI move operations with operations for TImode 36084 and PTImode. Add support for TImode being allowed in VSX registers. 36085 (mov<mode>_string, TImode/PTImode): Likewise. 36086 (movti_ppc64): Likewise. 36087 (mov<mode>_ppc64, TImode/PTImode): Likewise. 36088 (TI mode splitters): Likewise. 36089 36090 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt 36091 constraint. 36092 360932013-03-20 Marc Glisse <marc.glisse@inria.fr> 36094 36095 PR tree-optimization/56355 36096 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>: 36097 Also handle integers with undefined overflow. 36098 360992013-03-20 Catherine Moore <clm@codesourcery.com> 36100 Maciej W. Rozycki <macro@codesourcery.com> 36101 Tom de Vries <tom@codesourcery.com> 36102 Nathan Sidwell <nathan@codesourcery.com> 36103 Iain Sandoe <iain@codesourcery.com> 36104 Nathan Froyd <froydnj@codesourcery.com> 36105 Chao-ying Fu <fu@mips.com> 36106 36107 * doc/extend.texi: (micromips, nomicromips, nocompression): 36108 Document new function attributes. 36109 * doc/invoke.texi (minterlink-compressed, mmicromips, 36110 m14k, m14ke, m14kec): Document new options. 36111 (minterlink-mips16): Update documentation. 36112 * doc/md.texi (ZC, ZD): Document new constraints. 36113 * configure.ac (gcc_cv_as_micromips): Check if linker 36114 supports the .set micromips directive. 36115 * configure: Regenerate. 36116 * config.in: Regenerate. 36117 * config/mips/mips-tables.opt: Regenerate. 36118 * config/mips/micromips.md: New file. 36119 * constraints.md (ZC, ZD): New constraints. 36120 * config/mips/predicates.md (movep_src_register): New predicate. 36121 (movep_src_operand): New predicate. 36122 (non_volatile_mem_operand): New predicate. 36123 * config/mips/mips.md (multimem): New type. 36124 (length): Differentiate between 17-bit and 18-bit branch offsets. 36125 (MOVEP1, MOVEP2): New mode iterator. 36126 (mov_<load>l): Use ZC constraint. 36127 (mov_<load>r): Likewise. 36128 (mov_<store>l): Likewise. 36129 (mov_<store>r): Likewise. 36130 (*branch_equality<mode>_inverted): Add microMIPS support. 36131 (*branch_equality<mode>): Likewise. 36132 (*jump_absolute): Likewise. 36133 (indirect_jump_<mode>): Likewise. 36134 (tablejump_<mode>): Likewise. 36135 (<optab>_internal): Likewise. 36136 (sibcall_internal): Likewise. 36137 (sibcall_value_internal): Likewise. 36138 (prefetch): Use constraint ZD. 36139 * config/mips/mips.opt (minterlink-compressed): New option. 36140 (minterlink-mips16): Now an alias for minterlink-compressed. 36141 (mmicromips): New option. 36142 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint. 36143 (compare_and_swap_12): Likewise. 36144 (sync_add<mode>): Likewise. 36145 (sync_<optab>_12): Likewise. 36146 (sync_old_<optab>_12): Likewise. 36147 (sync_new_<optab>_12): Likewise. 36148 (sync_nand_12): Likewise. 36149 (sync_old_nand_12): Likewise. 36150 (sync_new_nand_12): Likewise. 36151 (sync_sub<mode>): Likewise. 36152 (sync_old_add<mode>): Likewise. 36153 (sync_old_sub<mode>): Likewise. 36154 (sync_new_add<mode>): Likewise. 36155 (sync_new_sub<mode>): Likewise. 36156 (sync_<optab><mode>): Likewise. 36157 (sync_old_<optab><mode>): Likewise. 36158 (sync_new_<optab><mode>): Likewise. 36159 (sync_nand<mode>): Likewise. 36160 (sync_old_nand<mode>): Likewise. 36161 (sync_new_nand<mode>): Likewise. 36162 (sync_lock_test_and_set<mode>): Likewise. 36163 (test_and_set_12): Likewise. 36164 (atomic_compare_and_swap<mode>): Likewise. 36165 (atomic_exchange<mode>_llsc): Likewise. 36166 (atomic_fetch_add<mode>_llsc): Likewise. 36167 * config/mips/mips-cpus.def (m14kc, m14k): New processors. 36168 * config/mips/mips-protos.h (umips_output_save_restore): New prototype. 36169 (umips_save_restore_pattern_p): Likewise. 36170 (umips_load_store_pair_p): Likewise. 36171 (umips_output_load_store_pair): Likewise. 36172 (umips_movep_target_p): Likewise. 36173 (umips_12bit_offset_address_p): Likewise. 36174 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS. 36175 (mips_base_mips16): Rename this... 36176 (mips_base_compression_flags): ...to this. Update all uses. 36177 (mips_attribute_table): Add micromips, nomicromips and nocompression. 36178 (mips_mips16_decl_p): Delete. 36179 (mips_nomips16_decl_p): Delete. 36180 (mips_get_compress_on_flags): New function. 36181 (mips_get_compress_off_flags): New function. 36182 (mips_get_compress_mode): New function. 36183 (mips_get_compress_on_name): New function. 36184 (mips_get_compress_off_name): New function. 36185 (mips_insert_attributes): Support multiple compression types. 36186 (mips_merge_decl_attributes): Likewise. 36187 (umips_12bit_offset_address_p): New function. 36188 (mips_start_function_definition): Emit .set micromips directive. 36189 (mips_call_may_need_jalx_p): New function. 36190 (mips_function_ok_for_sibcall): Add microMIPS support. 36191 (mips_print_operand_punctuation): Support short delay slots and 36192 compact jumps. 36193 (umips_swm_mask, umips_swm_encoding): New. 36194 (umips_build_save_restore): New function. 36195 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support. 36196 (was_mips16_p): Remove. 36197 (old_compression_mode): New. 36198 (mips_set_compression_mode): New function. 36199 (mips_set_current_function): Add microMIPS support. 36200 (mips_option_override): Likewise. 36201 (umips_save_restore_pattern_p): New function. 36202 (umips_output_save_restore): New function. 36203 (umips_load_store_pair_p_1): New function. 36204 (umips_load_store_pair_p): New function. 36205 (umips_output_load_store_pair_1): New function. 36206 (umips_output_load_store_pair): New function. 36207 (umips_movep_target_p) New function. 36208 (mips_prepare_pch_save): Add microMIPS support. 36209 * config/mips/mips.h (TARGET_COMPRESSION): New. 36210 (TARGET_CPU_CPP_BUILTINS): Update macro 36211 to use new compression flags and to support microMIPS. 36212 (MIPS_ISA_LEVEL_SPEC): Add m14k processors. 36213 (MIPS_ARCH_FLOAT_SPEC): Likewise. 36214 (ISA_HAS_LWXS): Include TARGET_MICROMIPS. 36215 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS. 36216 (ASM_SPEC): Support mmicromips and mno-micromips. 36217 (M16STORE_REG_P): New macro. 36218 (MIPS_CALL): Support TARGET_MICROMIPS. 36219 (MICROMIPS_J): New macro. 36220 (mips_base_mips16): Rename this... 36221 (mips_base_compression_flags): ...to this. 36222 (UMIPS_12BIT_OFFSET_P): New macro. 36223 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS. 36224 (MULTILIB_DIRNAMES): Likewise. 362252013-03-20 Richard Biener <rguenther@suse.de> 36226 36227 PR tree-optimization/56661 36228 * tree-ssa-sccvn.c (visit_use): Only value-number calls if 36229 the result does not have to be distinct. 36230 362312013-03-20 Richard Biener <rguenther@suse.de> 36232 36233 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with 36234 remap_gimple_op_r. 36235 362362013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 36237 Steven Bosscher <steven@gcc.gnu.org> 36238 36239 PR rtl-optimization/56605 36240 * loop-iv.c (implies_p): Handle equal RTXs and subregs. 36241 362422013-03-20 Uros Bizjak <ubizjak@gmail.com> 36243 36244 PR bootstrap/56656 36245 * config/i386/i386.md (*movdi_internal): Handle broken assemblers 36246 that require movd instead of movq. 36247 362482013-03-20 Richard Biener <rguenther@suse.de> 36249 36250 * tree-ssa-structalias.c (struct variable_info): Add pointer 36251 to the first field of an aggregate with sub-vars. Make 36252 this and the pointer to the next subfield its ID. 36253 (vi_next): New function. 36254 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id, 36255 storedanything_id, integer_id): Increment by one. 36256 (new_var_info, get_call_vi, lookup_call_clobber_vi, 36257 get_call_clobber_vi): Adjust. 36258 (solution_set_expand): Simplify and speedup. 36259 (solution_set_add): Inline into ... 36260 (set_union_with_increment): ... this. Adjust accordingly. 36261 (do_sd_constraint): Likewise. 36262 (do_ds_constraint): Likewise. 36263 (do_complex_constraint): Simplify. 36264 (build_pred_graph): Adjust. 36265 (solve_graph): Likewise. Simplify and speedup. 36266 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset, 36267 get_constraint_for_component_ref, get_constraint_for_1, 36268 first_vi_for_offset, first_or_preceding_vi_for_offset, 36269 create_function_info_for, create_variable_info_for_1, 36270 create_variable_info_for, intra_create_variable_infos): Adjust. 36271 (init_base_vars): Push NULL for ID zero. 36272 (compute_points_to_sets): Adjust. 36273 362742013-03-20 Richard Biener <rguenther@suse.de> 36275 36276 * cfgloop.c (verify_loop_structure): Streamline and avoid 36277 ICEing on corrupt loop tree. 36278 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt 36279 loop tree. 36280 362812013-03-20 Richard Biener <rguenther@suse.de> 36282 36283 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not 36284 check whether an SSA update is needed. 36285 362862013-03-20 Richard Sandiford <rdsandiford@googlemail.com> 36287 36288 * config/mips/constraints.md (T): Rename to... 36289 (Yf): ...this. 36290 (U): Rename to... 36291 (Yd): ...this. 36292 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16) 36293 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly. 36294 362952013-03-19 Ian Bolton <ian.bolton@arm.com> 36296 36297 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern. 36298 (*subsi3_carryin_uxtw): Likewise. 36299 363002013-03-19 Ian Bolton <ian.bolton@arm.com> 36301 36302 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern. 36303 (*rorsi3_insn_uxtw): Likewise. 36304 363052013-03-19 Ian Bolton <ian.bolton@arm.com> 36306 36307 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern. 36308 (*extrsi5_insn_uxtw): Likewise. 36309 363102013-03-19 Richard Biener <rguenther@suse.de> 36311 36312 PR tree-optimization/56273 36313 * passes.c (init_optimization_passes): Move second VRP after DOM. 36314 363152013-03-19 Uros Bizjak <ubizjak@gmail.com> 36316 36317 * config/i386/i386.md (*movti_internal): Merge from 36318 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute. 36319 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and 36320 nox64 isa attributes. 36321 363222013-03-18 Richard Biener <rguenther@suse.de> 36323 36324 * tree-ssa-structalias.c (find): Use gcc_checking_assert. 36325 (unite): Likewise. 36326 (merge_node_constraints): Likewise. 36327 (build_succ_graph): Likewise. 36328 (valid_graph_edge): Inline into single caller. 36329 (unify_nodes): Likewise. Use bitmap_set_bit return value 36330 and cache varinfo. 36331 (scc_visit): Fix formatting and variable use. 36332 (do_sd_constraint): Use gcc_checking_assert. 36333 (do_ds_constraint): Likewise. 36334 (do_complex_constraint): Likewise. 36335 (condense_visit): Likewise. Cleanup. 36336 (dump_pred_graph): New function. 36337 (perform_var_substitution): Dump the pred-graph before 36338 variable substitution. 36339 (find_equivalent_node): Use gcc_checking_assert. 36340 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING. 36341 363422013-03-18 Richard Biener <rguenther@suse.de> 36343 36344 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): 36345 Remove cond_expr_stmt_list argument and do not gimplify the 36346 built expression. 36347 (vect_loop_versioning): Adjust. 36348 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): 36349 Cleanup to use less temporaries. 36350 (vect_create_data_ref_ptr): Cleanup. 36351 363522013-03-18 Jakub Jelinek <jakub@redhat.com> 36353 36354 PR tree-optimization/56635 36355 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF, 36356 require types_compatible_p types. 36357 363582013-03-18 Nick Clifton <nickc@redhat.com> 36359 36360 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove 36361 spurious backslash. 36362 36363 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs): 36364 Add missing line to comment describing function. 36365 363662013-03-18 Richard Biener <rguenther@suse.de> 36367 36368 PR tree-optimization/56210 36369 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): 36370 Handle string / character search functions. 36371 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise. 36372 363732013-03-18 Richard Biener <rguenther@suse.de> 36374 36375 PR middle-end/56483 36376 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p 36377 and implement properly. 36378 * gimple.h (gimple_cond_single_var_p): Remove. 36379 363802013-03-18 Richard Biener <rguenther@suse.de> 36381 36382 * tree-data-ref.h (find_data_references_in_loop): Declare. 36383 * tree-data-ref.c (get_references_in_stmt): Use a stack 36384 vector pre-allocated in the callers. 36385 (find_data_references_in_stmt): Adjust. 36386 (graphite_find_data_references_in_stmt): Likewise. 36387 (create_rdg_vertices): Likewise. 36388 (find_data_references_in_loop): Export. 36389 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): 36390 Compute dependences here... 36391 (vect_analyze_data_refs): ...not here. When we encounter 36392 a non-vectorizable data reference in basic-block vectorization 36393 truncate the data reference vector. Do not bother to 36394 fixup data-dependence information for gather loads. 36395 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number 36396 of data references, as reported. 36397 363982013-03-18 Richard Biener <rguenther@suse.de> 36399 36400 PR tree-optimization/3713 36401 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate 36402 has_constants and expr. 36403 (stmt_has_constants): Properly valueize SSA names when deciding 36404 whether the stmt has constants. 36405 364062013-03-18 Richard Biener <rguenther@suse.de> 36407 36408 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the 36409 whole function when there is nothing to do. 36410 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa. 36411 * tree-vectorizer.c (vectorize_loops): Update virtual and 36412 loop-closed SSA once. 36413 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here. 36414 364152013-03-18 Richard Biener <rguenther@suse.de> 36416 36417 PR middle-end/56113 36418 * domwalk.c (bb_postorder): New global static. 36419 (cmp_bb_postorder): New function. 36420 (walk_dominator_tree): Replace scheme imposing an order for 36421 visiting dominator sons by one sorting them at the time they 36422 are pushed on the stack. 36423 364242013-03-18 Richard Biener <rguenther@suse.de> 36425 36426 PR tree-optimization/39326 36427 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry. 36428 (struct mem_ref): Replace mem member with ao_ref typed member. 36429 (MEM_ANALYZABLE): Adjust. 36430 (memref_eq): Likewise. 36431 (mem_ref_alloc): Likewise. 36432 (gather_mem_refs_stmt): Likewise. 36433 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle. 36434 (execute_sm_if_changed_flag_set): Adjust. 36435 (execute_sm): Likewise. 36436 (ref_always_accessed_p): Likewise. 36437 (refs_independent_p): Likewise. 36438 (can_sm_ref_p): Likewise. 36439 364402013-03-18 Jakub Jelinek <jakub@redhat.com> 36441 36442 PR c/56566 36443 * tree.c (tree_int_cst_min_precision): For integer_zerop (value) 36444 return 1 even for !unsignedp. 36445 364462013-03-17 Uros Bizjak <ubizjak@gmail.com> 36447 36448 * config/i386/i386.md (isa): Add x64 and nox64. 36449 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT. 36450 (*pushtf): Enable *roF alternative for x64 isa only. 36451 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set 36452 mode attribute of integer alternatives to DImode for TARGET_64BIT. 36453 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes. 36454 (*movtf_internal): Merge from *movtf_internal_rex64 and 36455 *movtf_internal_sse. Use x64 and nox64 isa attributes. 36456 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and 36457 nox64 isa attributes. 36458 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and 36459 nox64 isa attributes. 36460 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT. 36461 364622013-03-17 Uros Bizjak <ubizjak@gmail.com> 36463 36464 * config/alpha/alpha.c (TARGET_LRA_P): New define. 36465 364662013-03-17 Jakub Jelinek <jakub@redhat.com> 36467 36468 PR target/56640 36469 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG" 36470 class names. Remove trailing comma after "ALL_REGS". 36471 364722013-03-16 Jan Hubicka <jh@suse.cz> 36473 36474 * cgraph.h (cgraph_get_create_real_symbol_node): Declare. 36475 * cgraph.c (cgraph_get_create_real_symbol_node): New function. 36476 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead 36477 of cgraph_get_create_node. 36478 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. 36479 364802013-03-16 Jason Merrill <jason@redhat.com> 36481 36482 PR debug/49090 36483 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments 36484 with DW_AT_default_value. 36485 364862013-03-16 Jakub Jelinek <jakub@redhat.com> 36487 36488 * BASE-VER: Set to 4.9.0. 36489 364902013-03-14 Andi Kleen <ak@linux.intel.com> 36491 36492 PR target/56619 36493 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE, 36494 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs. 36495 Document _x* TSX intrinsics. 36496 364972013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com> 36498 David Holsgrove <david.holsgrove@xilinx.com> 36499 36500 * configure.ac: Add MicroBlaze TLS support detection. 36501 * configure: Regenerate. 36502 * config/microblaze/microblaze-protos.h 36503 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p, 36504 symbol_mentioned_p, label_mentioned_p): Add prototypes. 36505 * config/microblaze/microblaze.c (microblaze_address_type): Add 36506 ADDRESS_TLS and tls_reloc address types. 36507 (microblaze_address_info): Add tls_reloc. 36508 (TARGET_HAVE_TLS): Define. 36509 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1, 36510 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem, 36511 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p, 36512 load_tls_operand, microblaze_call_tls_get_addr, 36513 microblaze_legitimize_tls_address): New functions. 36514 (microblaze_classify_unspec): Handle UNSPEC_TLS. 36515 (get_base_reg): Use microblaze_tls_symbol_p. 36516 (microblaze_classify_address): Handle TLS. 36517 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p, 36518 label_mentioned_p and microblaze_tls_referenced_p. 36519 (microblaze_legitimize_address): Handle TLS. 36520 (microblaze_address_insns): Handle ADDRESS_TLS. 36521 (pic_address_needs_scratch): Handle TLS. 36522 (print_operand_address): Handle TLS. 36523 (microblaze_expand_prologue): Check TLS_NEEDS_GOT. 36524 (microblaze_expand_move): Handle TLS. 36525 (microblaze_legitimate_constant_p): Check 36526 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p. 36527 (TARGET_CANNOT_FORCE_CONST_MEM): Define. 36528 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define 36529 (PIC_OFFSET_TABLE_REGNUM): Set. 36530 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define. 36531 * config/microblaze/microblaze.md (UNSPEC_TLS): Define. 36532 (addsi3, movsi_internal2, movdf_internal): Update constraints 36533 * config/microblaze/predicates.md (arith_plus_operand): Define 36534 (move_operand): Redefine as move_src_operand, 36535 check microblaze_tls_referenced_p. 36536 365372013-03-14 Ian Bolton <ian.bolton@arm.com> 36538 36539 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ. 36540 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise. 36541 365422013-03-14 Ian Bolton <ian.bolton@arm.com> 36543 36544 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct 36545 CC mode for AND. 36546 365472013-03-14 Jakub Jelinek <jakub@redhat.com> 36548 36549 PR tree-optimization/53265 36550 * common.opt (Waggressive-loop-optimizations): New option. 36551 * tree-ssa-loop-niter.c: Include tree-pass.h. 36552 (do_warn_aggressive_loop_optimizations): New function. 36553 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds 36554 if number_of_latch_executions returned constant. 36555 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions 36556 early. If number_of_latch_executions returned constant, set 36557 nb_iterations_upper_bound back to it. 36558 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations 36559 field. 36560 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H). 36561 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document. 36562 36563 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove. 36564 (MULTILIB_OSDIRNAMES): Set. 36565 * genmultilib: If defaultosdirname doesn't start with :: , set 36566 defaultosdirname2 instead, clear it and emit two . multilib_raw 36567 entries instead of just one. 36568 365692013-03-14 Kaz Kojima <kkojima@gcc.gnu.org> 36570 36571 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE. 36572 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default. 36573 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE. 36574 (SUBTARGET_OVERRIDE_OPTIONS): New. 36575 365762013-03-13 Oleg Endo <olegendo@gcc.gnu.org> 36577 36578 PR target/49880 36579 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask. 36580 (musermode): Convert to Var(TARGET_USERMODE). 36581 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY, 36582 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY. 36583 * config/sh/sh.c (sh_option_override): Use 36584 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case. 36585 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4 36586 condition. 36587 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of 36588 TARGET_SH4. 36589 (udivsi3_i4_single, divsi3_i4_single): Use 36590 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4. 36591 365922013-03-13 Dave Korn <dave.korn.cygwin@gmail.com> 36593 36594 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the 36595 default setting. 36596 365972013-03-13 Richard Biener <rguenther@suse.de> 36598 36599 PR tree-optimization/56608 36600 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar 36601 calls when vectorizing basic-blocks. 36602 366032013-03-13 Jakub Jelinek <jakub@redhat.com> 36604 36605 PR plugins/45078 36606 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to 36607 tm_file. 36608 366092013-03-12 Jakub Jelinek <jakub@redhat.com> 36610 36611 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier. 36612 366132013-03-11 Jan Hubicka <jh@suse.cz> 36614 36615 PR lto/56557 36616 * lto-streamer-out.c (output_symbol_p): Skip references from 36617 constructors of external variables. 36618 366192013-03-11 Jan Hubicka <jh@suse.cz> 36620 36621 PR middle-end/56571 36622 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating 36623 from pseudos. 36624 * emit-rtl.c (verify_rtx_sharing): Likewise. 36625 (copy_insn_1): Likewise. 36626 * rtl.c (copy_rtx): Likewise. 36627 366282013-03-11 Georg-Johann Lay <avr@gjlay.de> 36629 36630 PR target/56591 36631 * config/avr/avr.c (avr_print_operand): Add space after '%c' in 36632 output_operand_lossage message. 36633 366342013-03-11 Richard Earnshaw <rearnsha@arm.com> 36635 36636 PR target/56470 36637 * arm.c (shift_op): Validate RTL pattern on the fly. 36638 (arm_print_operand, case 'S'): Don't use shift_operator to validate 36639 the RTL. 36640 366412013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 36642 36643 PR target/56347 36644 * config/pa/pa.md (call_value): Check for calls to powf and direct to 36645 new call patterns that clobber %fr12. 36646 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn, 36647 split and postreload patterns. 36648 * config/pa/pa.c (pa_conditional_register_usage): Revert marking 36649 registers %fr12 and %fr12R as call used. 36650 366512013-03-09 Steven Bosscher <steven@gcc.gnu.org> 36652 36653 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS. 36654 (canon_address, record_store, replace_read, check_mem_read_rtx, 36655 scan_insn, dse_step1, dse_step2_init, dse_step2_spill, 36656 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6, 36657 rest_of_handle_dse): Likewise. 36658 366592013-03-09 Richard Sandiford <rdsandiford@googlemail.com> 36660 36661 PR middle-end/56524 36662 * tree.h (tree_optimization_option): Rename target_optabs to optabs. 36663 Add base_optabs. 36664 (TREE_OPTIMIZATION_OPTABS): Update after previous field change. 36665 (TREE_OPTIMIZATION_BASE_OPTABS): New macro. 36666 (save_optabs_if_changed): Replace with... 36667 (init_tree_optimization_optabs): ...this. 36668 * optabs.c (save_optabs_if_changed): Rename to... 36669 (init_tree_optimization_optabs): ...this. Take the optimization node 36670 as argument. Do nothing if the base optabs are already correct. 36671 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need 36672 to recompute optabs. 36673 * function.h (function): Remove optabs field. 36674 * function.c (invoke_set_current_function_hook): Call 36675 init_tree_optimization_optabs. Use the result to initialize 36676 this_fn_optabs. 36677 366782013-02-27 Aldy Hernandez <aldyh@redhat.com> 36679 36680 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE 36681 if GTMA_HAS_NO_INSTRUMENTATION. 36682 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit. 36683 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION. 36684 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define. 36685 * gimple-pretty-print.c (dump_gimple_transaction): Handle 36686 GTMA_HAS_NO_INSTRUMENTATION. 36687 366882013-03-08 Jakub Jelinek <jakub@redhat.com> 36689 36690 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against 36691 libasan_preinit.o. 36692 366932013-03-08 Marek Polacek <polacek@redhat.com> 36694 Jakub Jelinek <jakub@redhat.com> 36695 36696 PR tree-optimization/56478 36697 * predict.c (is_comparison_with_loop_invariant_p): Change the 36698 type of loop_step to tree. 36699 (predict_loops): Adjust. 36700 (predict_iv_comparison): Perform the computations on double_ints. 36701 367022013-03-08 Richard Biener <rguenther@suse.de> 36703 36704 PR tree-optimization/56570 36705 * tree-cfg.c (verify_expr_location_1): Verify locations for 36706 DECL_DEBUG_EXPR. 36707 * tree-sra.c (create_access_replacement): Strip locations 36708 from DECL_DEBUG_EXPRs. 36709 367102013-03-08 Richard Biener <rguenther@suse.de> 36711 36712 * tree-inline.c (expand_call_inline): Do not associate 36713 a BLOCK with the location in BLOCK_SOURCE_LOCATION. 36714 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION. 36715 367162013-03-08 Richard Biener <rguenther@suse.de> 36717 36718 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location 36719 or block changes with -Og. Fix for location / block encoding 36720 changes and PHI arguments with locations. 36721 367222013-03-07 Steven Bosscher <steven@gcc.gnu.org> 36723 36724 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT 36725 for all counters. 36726 (struct output_info): Likewise. 36727 (register_overhead): Remove bad gcc_assert. 36728 (bitmap_find_bit): If there is only a single bitmap element, do not 36729 count a miss as a search. 36730 (print_statistics): Update for counter type changes. 36731 (dump_bitmap_statistics): Likewise. Print headers such that they 36732 are properly lined up with the printed counters. 36733 367342013-03-07 Jakub Jelinek <jakub@redhat.com> 36735 36736 PR tree-optimization/56559 36737 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2, 36738 check that it has only a single use. 36739 367402013-03-07 Richard Biener <rguenther@suse.de> 36741 36742 * doc/invoke.texi (fwhole-program): Discourage use in combination 36743 with -flto. 36744 367452013-03-06 Jakub Jelinek <jakub@redhat.com> 36746 36747 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def. 36748 36749 PR tree-optimization/56539 36750 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT 36751 instead of GSI_CONTINUE_LINKING as last argument to 36752 force_gimple_operand_gsi. Adjust function comment. 36753 36754 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add 36755 aarch64-cores.def. 36756 36757 PR middle-end/56548 36758 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in 36759 promoted mode, convert the result back to the original mode. 36760 367612013-03-06 Richard Biener <rguenther@suse.de> 36762 36763 PR middle-end/56294 36764 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping. 36765 (insert_updated_phi_nodes_compare_uids): New function. 36766 (update_ssa): Sort symbols_to_rename after UID before 36767 traversing it to insert PHI nodes. 36768 367692013-03-06 Richard Biener <rguenther@suse.de> 36770 36771 PR middle-end/50494 36772 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): 36773 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls. 36774 36775 Revert 36776 2013-02-13 Richard Biener <rguenther@suse.de> 36777 36778 PR lto/50494 36779 * varasm.c (output_constant_def_1): Get the decl representing 36780 the constant as argument. 36781 (output_constant_def): Wrap output_constant_def_1. 36782 (make_decl_rtl): Use output_constant_def_1 with the decl 36783 representing the constant. 36784 (build_constant_desc): Optionally re-use a decl already 36785 representing the constant. 36786 (tree_output_constant_def): Adjust. 36787 367882013-03-06 Joey Ye <joey.ye@arm.com> 36789 36790 PR lto/50293 36791 * gcc.c (convert_white_space): New function. 36792 (main): Handles white space in function name. 36793 367942013-03-06 Oleg Endo <olegendo@gcc.gnu.org> 36795 36796 PR target/56529 36797 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT 36798 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy 36799 to SH_DIV_CALL_TABLE for TARGET_SH2. 36800 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib 36801 list. 36802 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp, 36803 call-table options. 36804 368052013-03-05 Sterling Augustine <saugustine@google.com> 36806 Cary Coutant <ccoutant@google.com> 36807 36808 PR debug/55364 36809 * dwarf2out.c (resolve_addr): Don't call 36810 remove_loc_list_addr_table_entries a second time for the same 36811 expression. 36812 368132013-03-05 Jakub Jelinek <jakub@redhat.com> 36814 36815 PR debug/56510 36816 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming. 36817 (avoid_complex_debug_insns): New function. 36818 (expand_debug_locations): Call it. 36819 36820 PR rtl-optimization/56484 36821 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending 36822 lifetimes of hard registers on small register class machines. 36823 368242013-03-05 David Holsgrove <david.holsgrove@xilinx.com> 36825 36826 * config/microblaze/microblaze-protos.h: Rename 36827 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant. 36828 * config/microblaze/microblaze.c (microblaze_attribute_table): Add 36829 fast_interrupt. 36830 (microblaze_fast_interrupt_function_p): New function. 36831 (microblaze_is_interrupt_handler): Rename to 36832 microblaze_is_interrupt_variant and add fast_interrupt check. 36833 (microblaze_must_save_register): Use microblaze_is_interrupt_variant. 36834 (save_restore_insns): Likewise. 36835 (compute_frame_size): Likewise. 36836 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME. 36837 (microblaze_globalize_label): Likewise. 36838 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME. 36839 * config/microblaze/microblaze.md: Use wrapper 36840 microblaze_is_interrupt_variant. 36841 368422013-03-05 Kai Tietz <ktietz@redhat.com> 36843 36844 * sdbout.c (sdbout_one_type): Switch to current function's section 36845 supporting cold/hot. 36846 368472013-03-05 David Holsgrove <david.holsgrove@xilinx.com> 36848 36849 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian, 36850 -mxl-reorder. 36851 368522013-03-05 Jakub Jelinek <jakub@redhat.com> 36853 36854 PR middle-end/56461 36855 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING, 36856 if VALGRIND_GET_VBITS is defined, temporarily make object 36857 memory all defined, and restore previous valgrind addressability 36858 and definability afterwards. Free this_object at the end. 36859 36860 PR middle-end/56461 36861 * lra.c (lra): Call lra_clear_live_ranges if live_p, 36862 right before calling lra_create_live_ranges, also call it 36863 when clearing live_p. Only call lra_clear_live_ranges 36864 at the end if live_p. 36865 36866 PR middle-end/56461 36867 * sched-deps.c (delete_dep_node): Free DEP_REPLACE. 36868 368692013-03-05 Richard Biener <rguenther@suse.de> 36870 36871 PR tree-optimization/56521 36872 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize 36873 value-id. 36874 368752013-03-05 Steven Bosscher <steven@gcc.gnu.org> 36876 36877 PR c++/55135 36878 * except.h (remove_unreachable_eh_regions): New prototype. 36879 * except.c (remove_eh_handler_splicer): New function, split out 36880 of remove_eh_handler. 36881 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment 36882 warning about running it on many EH regions one at a time. 36883 (remove_unreachable_eh_regions_worker): New function, walk the 36884 EH tree in depth-first order and remove non-marked regions. 36885 (remove_unreachable_eh_regions): New function. 36886 * tree-eh.c (mark_reachable_handlers): New function, split out 36887 from remove_unreachable_handlers. 36888 (remove_unreachable_handlers): Use mark_reachable_handlers and 36889 remove_unreachable_eh_regions. 36890 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers 36891 and remove_unreachable_eh_regions. 36892 368932013-03-05 Richard Biener <rguenther@suse.de> 36894 36895 PR middle-end/56525 36896 * loop-init.c (fix_loop_structure): Remove loops in two stages, 36897 not freeing them until the end. 36898 368992013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 36900 36901 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO. 36902 369032013-03-05 Richard Biener <rguenther@suse.de> 36904 36905 PR tree-optimization/56270 36906 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts 36907 of loads after scheduling an SLP instance. 36908 369092013-03-05 Jakub Jelinek <jakub@redhat.com> 36910 36911 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and 36912 tic6x.exp. 36913 (check_gcc_parallelize): Run guality.exp as a separate job from 36914 vect.exp with unsorted.exp and $(dg_target_exps) separately from 36915 struct-layout-1.exp with stackalign.exp. 36916 36917 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap. 36918 36919 PR middle-end/56461 36920 * tree-vect-slp.c (vect_supported_load_permutation_p): Free 36921 load_index sbitmap even if some bit in it isn't set. 36922 36923 PR middle-end/56461 36924 * tree-ssa-loop-niter.c (bb_queue): Remove typedef. 36925 (discover_iteration_bound_by_body_walk): Change queues to 36926 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up 36927 spelling in comment. Call safe_push on queues[bound_index] directly. 36928 Release queues[queue_index] in every iteration unconditionally. 36929 Release bounds vector. 36930 36931 PR middle-end/56461 36932 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call 36933 free_stmt_vec_info on any left-over stmt_vec_info in the vector. 36934 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release 36935 inner_phis vector. 36936 369372013-03-05 Richard Biener <rguenther@suse.de> 36938 36939 PR lto/56515 36940 * tree-inline.c (remap_blocks_to_null): New function. 36941 (expand_call_inline): When expanding a call stmt without 36942 an associated block inline remap all callee blocks to NULL. 36943 369442013-03-05 Jakub Jelinek <jakub@redhat.com> 36945 36946 PR rtl-optimization/56494 36947 * simplify-rtx.c (simplify_truncation): If C is narrower than A, 36948 optimize (truncate:A (subreg:B (truncate:C X) 0)) into 36949 (subreg:A (truncate:C X) 0) instead of (truncate:A X). 36950 36951 PR middle-end/56461 36952 * sel-sched-ir.c (free_sched_pools): Release 36953 succs_info_pool.stack[succs_info_pool.max_top] vectors too 36954 if succs_info_pool.max_top isn't -1. 36955 36956 PR bootstrap/56509 36957 * opts.c (opts_obstack, opts_concat): Moved to... 36958 * opts-common.c (opts_obstack, opts_concat): ... here. 36959 369602013-03-04 Jakub Jelinek <jakub@redhat.com> 36961 36962 PR middle-end/56461 36963 * diagnostic.c (diagnostic_append_note): Save and restore old prefix. 36964 369652013-03-04 Martin Jambor <mjambor@suse.cz> 36966 36967 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in 36968 all appropriate places. 36969 369702013-01-04 Eric Botcazou <ebotcazou@adacore.com> 36971 36972 PR tree-optimization/56424 36973 * ipa-split.c (split_function): Do not set the RSO flag if result is 36974 not by reference and its type is a register type. 36975 369762013-03-04 David Holsgrove <david.holsgrove@xilinx.com> 36977 36978 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New 36979 (microblaze_legitimate_pic_operand): Likewise 36980 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls 36981 new function microblaze_legitimate_pic_operand 36982 * config/microblaze/microblaze-protos.h 36983 (microblaze_legitimate_pic_operand): Declare. 36984 369852013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com> 36986 36987 * config/microblaze/predicates.md (call_insn_simple_operand): 36988 New predicate for supported rtx code types. 36989 * config/microblaze/microblaze.md (call_internal1): Use 36990 call_insn_simple_operand predicate. 36991 369922013-03-04 Jakub Jelinek <jakub@redhat.com> 36993 36994 PR middle-end/56461 36995 * tree-loop-distribution.c (ldist_gen): Call partition_free after each 36996 partitions.ordered_remove. 36997 36998 PR middle-end/56461 36999 * tree-vect-stmts.c (vectorizable_conversion): Don't call 37000 vec_oprnds0.create (1) for modifier == NONE. 37001 37002 PR middle-end/56461 37003 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods 37004 on vec_oprnds0 or vec_oprnds1 before loop, only call it on 37005 vec_oprnds1 right before pushing anything to it for 37006 scalar_shift_arg. 37007 37008 PR middle-end/56461 37009 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just 37010 set nbbs to 0 instead of having separate code path. 37011 (vect_analyze_loop_form): Call destroy_loop_vec_info with true 37012 instead of false as last argument if returning NULL. 37013 370142013-03-03 Sandra Loosemore <sandra@codesourcery.com> 37015 37016 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments; 37017 the attribute is now called "target" instead of "option". 37018 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma. 37019 * doc/tm.texi.in (Target Attributes): Likewise document the correct 37020 attribute/pragma name for TARGET_OPTION_VALID_P and 37021 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup. 37022 * doc/tm.texi: Regenerated. 37023 370242013-03-02 David Holsgrove <david.holsgrove@xilinx.com> 37025 37026 * config/microblaze/microblaze.c: 37027 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met. 37028 * config/microblaze/microblaze.h: Add -mxl-reorder to 37029 DRIVER_SELF_SPECS. 37030 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2. 37031 instructions emitted if TARGET_REORDER. 37032 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1 37033 or 0 for -m/-mno case, but initialises as 2 to detect default use case 37034 separately. 37035 370362013-03-01 Xinliang David Li <davidxl@google.com> 37037 37038 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom 37039 walk length. 37040 370412013-03-01 Jakub Jelinek <jakub@redhat.com> 37042 37043 PR middle-end/56461 37044 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path 37045 vector even when returning true. Fix up function comment formatting. 37046 37047 PR middle-end/56461 37048 * ira-build.c (ira_loop_nodes_count): New variable. 37049 (create_loop_tree_nodes): Initialize it. 37050 (finish_loop_tree_nodes): Use it instead of looking at current_loops. 37051 37052 PR middle-end/56461 37053 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy 37054 method on dr_chain and result_chain. 37055 * tree-vect-stmts.c (vectorizable_store): Only call 37056 result_chain.create if j == 0. 37057 37058 PR middle-end/56461 37059 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call 37060 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0) 37061 before overwriting it. 37062 370632013-03-01 Tobias Burnus <burnus@net-b.de> 37064 37065 * doc/extended.texi (C Extensions): Change order in @menu 37066 to match @node. 37067 (Other MIPS Built-in Functions): Move last MIPS entry before 37068 "picoChip Built-in Functions". 37069 (SH Built-in Functions): Move after RX Built-in Functions. 37070 * doc/gcc.texi (Introduction): Change order in @menu 37071 to match @node. 37072 * doc/md.texi (Constraints): Ditto. 37073 * gty.texi (Type Information): Ditto. 37074 (User-provided marking routines for template types): Make 37075 subsection. 37076 * doc/invoke.texi (AArch64 Options): Move before 37077 "Adapteva Epiphany Options". 37078 370792013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com> 37080 Jakub Jelinek <jakub@redhat.com> 37081 37082 PR sanitizer/56454 37083 * asan.c (gate_asan): Lookup no_sanitize_address instead of 37084 no_address_safety_analysis attribute. 37085 * doc/extend.texi (no_address_safety_attribute): Rename to 37086 no_sanitize_address attribute, mention no_address_safety_analysis 37087 attribute as deprecated alias. 37088 370892013-02-28 Jakub Jelinek <jakub@redhat.com> 37090 37091 PR middle-end/56461 37092 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument 37093 type to vec<vec<tree> > *. 37094 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs 37095 to be vec<tree> instead of vec<tree> *, set vec_defs 37096 to vNULL and call vec_defs.create (number_of_vects), adjust other 37097 uses of vec_defs. 37098 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call, 37099 vectorizable_condition): Adjust vect_get_slp_defs callers. 37100 371012013-02-28 James Greenhalgh <james.greenhalgh@arm.com> 37102 37103 * config/aarch64/aarch64.c 37104 (aarch64_float_const_representable): Remove unused variable. 37105 371062013-02-28 James Greenhalgh <james.greenhalgh@arm.com> 37107 37108 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static. 37109 371102013-02-28 James Greenhalgh <james.greenhalgh@arm.com> 37111 37112 * config/aarch64/aarch64-builtins.c 37113 (aarch64_init_simd_builtins): Make static. 37114 371152013-02-28 James Greenhalgh <james.greenhalgh@arm.com> 37116 37117 * config/aarch64/aarch64.c 37118 (aarch64_simd_make_constant): Make static. 37119 371202013-02-28 Martin Jambor <mjambor@suse.cz> 37121 37122 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements 37123 with no initialization to the RHS of debug statements. 37124 371252013-02-28 Martin Jambor <mjambor@suse.cz> 37126 37127 PR tree-optimization/56294 37128 * tree-sra.c (analyze_access_subtree): Create replacement declarations. 37129 Adjust dumping. 37130 (get_access_replacement): Do not call create_access_replacement. 37131 Assert a replacement exists. 37132 (get_repl_default_def_ssa_name): Create the replacement declaration 37133 itself. 37134 371352013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 37136 37137 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and 37138 final_end_function. 37139 371402013-02-28 Marek Polacek <polacek@redhat.com> 37141 37142 PR rtl-optimization/56466 37143 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure 37144 if we're changing a loop. 37145 (peel_loops_completely): Likewise. 37146 371472013-02-28 Paolo Carlini <paolo.carlini@oracle.com> 37148 37149 PR c++/55813 37150 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete. 37151 371522013-02-28 Georg-Johann Lay <avr@gjlay.de> 37153 37154 PR target/56445 37155 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty 37156 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX, 37157 INTX_FTYPE_FX, FX_FTYPE_INTX. 37158 * config/avr/builtins.def: Adjust respective DEF_BUILTIN. 37159 371602013-02-28 Georg-Johann Lay <avr@gjlay.de> 37161 37162 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285) 37163 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795) 37164 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb) 37165 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a) 37166 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1) 37167 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p) 37168 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb) 37169 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161) 37170 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e) 37171 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4) 37172 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3) 37173 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1) 37174 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva) 37175 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3) 37176 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU. 37177 (avrxmega6): Increase max flash segments from 5 to 6. 37178 * config/avr/t-multilib: Regenerate. 37179 * config/avr/avr-tables.opt: Regenerate. 37180 * doc/avr-mmcu.texi: Regenerate. 37181 371822013-02-28 Georg-Johann Lay <avr@gjlay.de> 37183 37184 * config/avr/avr.h (device_to_arch): Rename to device_to_ld. 37185 (avr_device_to_arch): Rename to avr_device_to_ld. 37186 (avr_device_to_as): New prototype. 37187 (EXTRA_SPEC_FUNCTIONS): Add device_to_as. 37188 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=. 37189 * config/avr/driver-avr.c (avr_device_to_as): New. 37190 (avr_device_to_arch): Rename to avr_device_to_ld. 37191 371922013-02-27 Jakub Jelinek <jakub@redhat.com> 37193 37194 PR middle-end/56461 37195 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy 37196 method on dr_chain and result_chain. 37197 37198 PR middle-end/56461 37199 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call 37200 pointer_set_destroy on not_executed_last_iteration. 37201 37202 PR middle-end/56461 37203 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector. 37204 37205 PR middle-end/56461 37206 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of 37207 FOR_EACH_DEFINED_FUNCTION when freeing state. 37208 37209 PR middle-end/56461 37210 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before 37211 pool_free. 37212 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before 37213 overwriting it. 37214 37215 PR middle-end/56461 37216 * ipa-cp.c (decide_whether_version_node): Call vec_free on 37217 known_aggs[i].items and release known_aggs vector. 37218 37219 PR middle-end/56461 37220 * ipa-reference.c (propagate): Free node_info even for alias nodes. 37221 372222013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com> 37223 37224 * config/microblaze/microblaze.c (microblaze_emit_compare): 37225 Use xor for EQ/NE comparisions. 37226 * config/microblaze/microblaze.md (cstoresf4): Add constraints 37227 (cbranchsf4): Adjust operator to comparison_operator. 37228 372292013-02-27 Jakub Jelinek <jakub@redhat.com> 37230 37231 PR middle-end/56461 37232 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed 37233 vector. 37234 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and 37235 vec_safe_push, always update *slot. 37236 (redirect_edge_var_map_clear): Use vec_free. 37237 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve. 37238 (free_var_map_entry): Use vec_free. 37239 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use 37240 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT. 37241 372422013-02-27 Andrey Belevantsev <abel@ispras.ru> 37243 37244 PR middle-end/45472 37245 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr 37246 when the may_trap_p bit of the exprs being merged differs. 37247 Reorder tests for speculativeness in the logical and operator. 37248 372492013-02-27 Jakub Jelinek <jakub@redhat.com> 37250 37251 * incpath.c (add_standard_paths): Use reconcat instead of concat 37252 where appropriate and avoid leaking memory. 37253 37254 * opts.h: Include obstack.h. 37255 (opts_concat): New prototype. 37256 (opts_obstack): New declaration. 37257 * opts.c (opts_concat): New function. 37258 (opts_obstack): New variable. 37259 (init_options_struct): Call gcc_init_obstack on opts_obstack. 37260 (finish_options): Use opts_concat instead of concat 37261 and XOBNEWVEC instead of XNEWVEC. 37262 * opts-common.c (generate_canonical_option, decode_cmdline_option, 37263 generate_option): Likewise. 37264 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H). 37265 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack. 37266 37267 PR target/56455 37268 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic 37269 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true. 37270 372712013-02-26 Jakub Jelinek <jakub@redhat.com> 37272 37273 PR middle-end/56461 37274 * lra-spills.c (lra_spill): Free spill_hard_reg at the end. 37275 372762013-02-26 Joern Rennecke <joern.rennecke@embecosm.com> 37277 37278 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change. 37279 (arm_block_move_unaligned_straight): Likewise. 37280 (arm_adjust_block_mem): Likewise. 37281 372822013-02-26 Joern Rennecke <joern.rennecke@embecosm.com> 37283 37284 PR target/48901 37285 * config/lm32/lm32.c (gen_int_relational): Remove unused variables 37286 temp, cond and label. 37287 * config/lm32/lm32.md (ashlsi3): Remove unused variable one. 37288 37289 PR target/52500 37290 * config/c6x/c6x.c (dbx_register_map): Change to unsigned. 37291 * config/c6x/c6x.h (dbx_register_map): Update declaration. 37292 37293 PR target/52501 37294 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end 37295 of prologue/epilogue functions. 37296 37297 PR target/52550 37298 * config/tilegx/tilegx.c (tilegx_expand_prologue): 37299 Remove unused variable cfa_offset. 37300 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise. 37301 37302 PR target/54639 37303 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset 37304 type promotion to unsigned. 37305 37306 PR target/54640 37307 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent 37308 for HOST_WIDE_INT of 32 bit / same size as int. 37309 (arm_block_move_unaligned_straight): Likewise. 37310 (arm_adjust_block_mem): Likewise. 37311 37312 PR target/54662 37313 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of 37314 ALL_CFLAGS. 37315 373162013-02-26 Marek Polacek <polacek@redhat.com> 37317 37318 PR tree-optimization/56426 37319 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize. 37320 373212013-02-26 Richard Biener <rguenther@suse.de> 37322 37323 PR target/56444 37324 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove 37325 unused variable loops. 37326 373272013-02-26 Jakub Jelinek <jakub@redhat.com> 37328 37329 PR tree-optimization/56448 37330 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at 37331 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF. 37332 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or 37333 later operands of the references, or even first operand for 37334 INDIRECT_REF, TARGET_MEM_REF or MEM_REF. 37335 37336 PR tree-optimization/56443 37337 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For 37338 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument 37339 to type_for_mode langhook. 37340 373412013-02-25 Matt Turner <mattst88@gmail.com> 37342 37343 * doc/invoke.texi: Document r4700. 37344 373452013-02-25 Richard Biener <rguenther@suse.de> 37346 37347 PR tree-optimization/56175 37348 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate, 37349 split out from ... 37350 (simplify_bitwise_binary): ... here. Also guard the conversion 37351 of (type) X op CST to (type) (X op ((type-x) CST)) with it. 37352 373532013-02-25 Catherine Moore <clm@codesourcery.com> 37354 37355 Revert: 37356 2013-02-24 Catherine Moore <clm@codesourcery.com> 37357 Maciej W. Rozycki <macro@codesourcery.com> 37358 Tom de Vries <tom@codesourcery.com> 37359 Nathan Sidwell <nathan@codesourcery.com> 37360 Iain Sandoe <iain@codesourcery.com> 37361 Nathan Froyd <froydnj@codesourcery.com> 37362 Chao-ying Fu <fu@mips.com> 37363 37364 * doc/extend.texi: (micromips, nomicromips, nocompression): 37365 Document new function attributes. 37366 * doc/invoke.texi (minterlink-compressed, mmicromips, 37367 m14k, m14ke, m14kec): Document new options. 37368 (minterlink-mips16): Update documentation. 37369 * doc/md.texi (ZC, ZD): Document new constraints. 37370 * configure.ac (gcc_cv_as_micromips): Check if linker 37371 supports the .set micromips directive. 37372 * configure: Regenerate. 37373 * config.in: Regenerate. 37374 * config/mips/mips-tables.opt: Regenerate. 37375 * config/mips/micromips.md: New file. 37376 * constraints.md (ZC, AD): New constraints. 37377 * config/mips/predicates.md (movep_src_register): New predicate. 37378 (movep_src_operand): New predicate. 37379 (non_volatile_mem_operand): New predicate. 37380 * config/mips/mips.md (multimem): New type. 37381 (length): Differentiate between 17-bit and 18-bit branch offsets. 37382 (MOVEP1, MOVEP2): New mode iterator. 37383 (mov_<load>l): Use ZC constraint. 37384 (mov_<load>r): Likewise. 37385 (mov_<store>l): Likewise. 37386 (mov_<store>r): Likewise. 37387 (*branch_equality<mode>_inverted): Add microMIPS support. 37388 (*branch_equality<mode>): Likewise. 37389 (*jump_absolute): Likewise. 37390 (indirect_jump_<mode>): Likewise. 37391 (tablejump_<mode>): Likewise. 37392 (<optab>_internal): Likewise. 37393 (sibcall_internal): Likewise. 37394 (sibcall_value_internal): Likewise. 37395 (prefetch): Use constraint ZD. 37396 * config/mips/mips.opt (minterlink-compressed): New option. 37397 (minterlink-mips16): Now an alias for minterlink-compressed. 37398 (mmicromips): New option. 37399 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint. 37400 (compare_and_swap_12): Likewise. 37401 (sync_add<mode>): Likewise. 37402 (sync_<optab>_12): Likewise. 37403 (sync_old_<optab>_12): Likewise. 37404 (sync_new_<optab>_12): Likewise. 37405 (sync_nand_12): Likewise. 37406 (sync_old_nand_12): Likewise. 37407 (sync_new_nand_12): Likewise. 37408 (sync_sub<mode>): Likewise. 37409 (sync_old_add<mode>): Likewise. 37410 (sync_old_sub<mode>): Likewise. 37411 (sync_new_add<mode>): Likewise. 37412 (sync_new_sub<mode>): Likewise. 37413 (sync_<optab><mode>): Likewise. 37414 (sync_old_<optab><mode>): Likewise. 37415 (sync_new_<optab><mode>): Likewise. 37416 (sync_nand<mode>): Likewise. 37417 (sync_old_nand<mode>): Likewise. 37418 (sync_new_nand<mode>): Likewise. 37419 (sync_lock_test_and_set<mode>): Likewise. 37420 (test_and_set_12): Likewise. 37421 (atomic_compare_and_swap<mode>): Likewise. 37422 (atomic_exchange<mode>_llsc): Likewise. 37423 (atomic_fetch_add<mode>_llsc): Likewise. 37424 * config/mips/mips-cpus.def (m14kc, m14k): New processors. 37425 * config/mips/mips-protos.h (umips_output_save_restore): New prototype. 37426 (umips_save_restore_pattern_p): Likewise. 37427 (umips_load_store_pair_p): Likewise. 37428 (umips_output_load_store_pair): Likewise. 37429 (umips_movep_target_p): Likewise. 37430 (umips_12bit_offset_address_p): Likewise. 37431 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS. 37432 (mips_base_mips16): Rename this... 37433 (mips_base_compression_flags): ...to this. Update all uses. 37434 (mips_attribute_table): Add micromips, nomicromips and nocompression. 37435 (mips_mips16_decl_p): Delete. 37436 (mips_nomips16_decl_p): Delete. 37437 (mips_get_compress_on_flags): New function. 37438 (mips_get_compress_off_flags): New function. 37439 (mips_get_compress_mode): New function. 37440 (mips_get_compress_on_name): New function. 37441 (mips_get_compress_off_name): New function. 37442 (mips_insert_attributes): Support multiple compression types. 37443 (mips_merge_decl_attributes): Likewise. 37444 (umips_12bit_offset_address_p): New function. 37445 (mips_start_function_definition): Emit .set micromips directive. 37446 (mips_call_may_need_jalx_p): New function. 37447 (mips_function_ok_for_sibcall): Add microMIPS support. 37448 (mips_print_operand_punctuation): Support short delay slots and 37449 compact jumps. 37450 (umips_swm_mask, umips_swm_encoding): New. 37451 (umips_build_save_restore): New function. 37452 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support. 37453 (was_mips16_p): Remove. 37454 (old_compression_mode): New. 37455 (mips_set_compression_mode): New function. 37456 (mips_set_current_function): Add microMIPS support. 37457 (mips_option_override): Likewise. 37458 (umips_save_restore_pattern_p): New function. 37459 (umips_output_save_restore): New function. 37460 (umips_load_store_pair_p_1): New function. 37461 (umips_load_store_pair_p): New function. 37462 (umips_output_load_store_pair_1): New function. 37463 (umips_output_load_store_pair): New function. 37464 (umips_movep_target_p) New function. 37465 (mips_prepare_pch_save): Add microMIPS support. 37466 * config/mips/mips.h (TARGET_COMPRESSION): New. 37467 (TARGET_CPU_CPP_BUILTINS): Update macro 37468 to use new compression flags and to support microMIPS. 37469 (MIPS_ISA_LEVEL_SPEC): Add m14k processors. 37470 (MIPS_ARCH_FLOAT_SPEC): Likewise. 37471 (ISA_HAS_LWXS): Include TARGET_MICROMIPS. 37472 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS. 37473 (ASM_SPEC): Support mmicromips and mno-micromips. 37474 (M16STORE_REG_P): New macro. 37475 (MIPS_CALL): Support TARGET_MICROMIPS. 37476 (MICROMIPS_J): New macro. 37477 (mips_base_mips16): Rename this... 37478 (mips_base_compression_flags): ...to this. 37479 (UMIPS_12BIT_OFFSET_P): New macro. 37480 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS. 37481 (MULTILIB_DIRNAMES): Likewise. 37482 374832013-02-25 Tom de Vries <tom@codesourcery.com> 37484 37485 PR rtl-optimization/56131 37486 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment. 37487 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and 37488 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL. 37489 374902013-02-25 Tobias Burnus <burnus@net-b.de> 37491 37492 * doc/invoke.texi (-fsanitize=): Move from optimization 37493 to debugging options. 37494 374952013-02-25 Andrey Belevantsev <abel@ispras.ru> 37496 37497 * sched-deps.c (sched_analyze_insn): Fix typo in comment. 37498 374992013-02-25 Andrey Belevantsev <abel@ispras.ru> 37500 Alexander Monakov <amonakov@ispras.ru> 37501 37502 PR middle-end/56077 37503 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier, 37504 flush pending lists also on non-jumps. Adjust comment. 37505 375062013-02-24 Catherine Moore <clm@codesourcery.com> 37507 Maciej W. Rozycki <macro@codesourcery.com> 37508 Tom de Vries <tom@codesourcery.com> 37509 Nathan Sidwell <nathan@codesourcery.com> 37510 Iain Sandoe <iain@codesourcery.com> 37511 Nathan Froyd <froydnj@codesourcery.com> 37512 Chao-ying Fu <fu@mips.com> 37513 37514 * doc/extend.texi: (micromips, nomicromips, nocompression): 37515 Document new function attributes. 37516 * doc/invoke.texi (minterlink-compressed, mmicromips, 37517 m14k, m14ke, m14kec): Document new options. 37518 (minterlink-mips16): Update documentation. 37519 * doc/md.texi (ZC, ZD): Document new constraints. 37520 * configure.ac (gcc_cv_as_micromips): Check if linker 37521 supports the .set micromips directive. 37522 * configure: Regenerate. 37523 * config.in: Regenerate. 37524 * config/mips/mips-tables.opt: Regenerate. 37525 * config/mips/micromips.md: New file. 37526 * constraints.md (ZC, AD): New constraints. 37527 * config/mips/predicates.md (movep_src_register): New predicate. 37528 (movep_src_operand): New predicate. 37529 (non_volatile_mem_operand): New predicate. 37530 * config/mips/mips.md (multimem): New type. 37531 (length): Differentiate between 17-bit and 18-bit branch offsets. 37532 (MOVEP1, MOVEP2): New mode iterator. 37533 (mov_<load>l): Use ZC constraint. 37534 (mov_<load>r): Likewise. 37535 (mov_<store>l): Likewise. 37536 (mov_<store>r): Likewise. 37537 (*branch_equality<mode>_inverted): Add microMIPS support. 37538 (*branch_equality<mode>): Likewise. 37539 (*jump_absolute): Likewise. 37540 (indirect_jump_<mode>): Likewise. 37541 (tablejump_<mode>): Likewise. 37542 (<optab>_internal): Likewise. 37543 (sibcall_internal): Likewise. 37544 (sibcall_value_internal): Likewise. 37545 (prefetch): Use constraint ZD. 37546 * config/mips/mips.opt (minterlink-compressed): New option. 37547 (minterlink-mips16): Now an alias for minterlink-compressed. 37548 (mmicromips): New option. 37549 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint. 37550 (compare_and_swap_12): Likewise. 37551 (sync_add<mode>): Likewise. 37552 (sync_<optab>_12): Likewise. 37553 (sync_old_<optab>_12): Likewise. 37554 (sync_new_<optab>_12): Likewise. 37555 (sync_nand_12): Likewise. 37556 (sync_old_nand_12): Likewise. 37557 (sync_new_nand_12): Likewise. 37558 (sync_sub<mode>): Likewise. 37559 (sync_old_add<mode>): Likewise. 37560 (sync_old_sub<mode>): Likewise. 37561 (sync_new_add<mode>): Likewise. 37562 (sync_new_sub<mode>): Likewise. 37563 (sync_<optab><mode>): Likewise. 37564 (sync_old_<optab><mode>): Likewise. 37565 (sync_new_<optab><mode>): Likewise. 37566 (sync_nand<mode>): Likewise. 37567 (sync_old_nand<mode>): Likewise. 37568 (sync_new_nand<mode>): Likewise. 37569 (sync_lock_test_and_set<mode>): Likewise. 37570 (test_and_set_12): Likewise. 37571 (atomic_compare_and_swap<mode>): Likewise. 37572 (atomic_exchange<mode>_llsc): Likewise. 37573 (atomic_fetch_add<mode>_llsc): Likewise. 37574 * config/mips/mips-cpus.def (m14kc, m14k): New processors. 37575 * config/mips/mips-protos.h (umips_output_save_restore): New prototype. 37576 (umips_save_restore_pattern_p): Likewise. 37577 (umips_load_store_pair_p): Likewise. 37578 (umips_output_load_store_pair): Likewise. 37579 (umips_movep_target_p): Likewise. 37580 (umips_12bit_offset_address_p): Likewise. 37581 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS. 37582 (mips_base_mips16): Rename this... 37583 (mips_base_compression_flags): ...to this. Update all uses. 37584 (mips_attribute_table): Add micromips, nomicromips and nocompression. 37585 (mips_mips16_decl_p): Delete. 37586 (mips_nomips16_decl_p): Delete. 37587 (mips_get_compress_on_flags): New function. 37588 (mips_get_compress_off_flags): New function. 37589 (mips_get_compress_mode): New function. 37590 (mips_get_compress_on_name): New function. 37591 (mips_get_compress_off_name): New function. 37592 (mips_insert_attributes): Support multiple compression types. 37593 (mips_merge_decl_attributes): Likewise. 37594 (umips_12bit_offset_address_p): New function. 37595 (mips_start_function_definition): Emit .set micromips directive. 37596 (mips_call_may_need_jalx_p): New function. 37597 (mips_function_ok_for_sibcall): Add microMIPS support. 37598 (mips_print_operand_punctuation): Support short delay slots and 37599 compact jumps. 37600 (umips_swm_mask, umips_swm_encoding): New. 37601 (umips_build_save_restore): New function. 37602 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support. 37603 (was_mips16_p): Remove. 37604 (old_compression_mode): New. 37605 (mips_set_compression_mode): New function. 37606 (mips_set_current_function): Add microMIPS support. 37607 (mips_option_override): Likewise. 37608 (umips_save_restore_pattern_p): New function. 37609 (umips_output_save_restore): New function. 37610 (umips_load_store_pair_p_1): New function. 37611 (umips_load_store_pair_p): New function. 37612 (umips_output_load_store_pair_1): New function. 37613 (umips_output_load_store_pair): New function. 37614 (umips_movep_target_p) New function. 37615 (mips_prepare_pch_save): Add microMIPS support. 37616 * config/mips/mips.h (TARGET_COMPRESSION): New. 37617 (TARGET_CPU_CPP_BUILTINS): Update macro 37618 to use new compression flags and to support microMIPS. 37619 (MIPS_ISA_LEVEL_SPEC): Add m14k processors. 37620 (MIPS_ARCH_FLOAT_SPEC): Likewise. 37621 (ISA_HAS_LWXS): Include TARGET_MICROMIPS. 37622 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS. 37623 (ASM_SPEC): Support mmicromips and mno-micromips. 37624 (M16STORE_REG_P): New macro. 37625 (MIPS_CALL): Support TARGET_MICROMIPS. 37626 (MICROMIPS_J): New macro. 37627 (mips_base_mips16): Rename this... 37628 (mips_base_compression_flags): ...to this. 37629 (UMIPS_12BIT_OFFSET_P): New macro. 37630 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS. 37631 (MULTILIB_DIRNAMES): Likewise. 37632 376332013-02-24 Jakub Jelinek <jakub@redhat.com> 37634 37635 PR target/52555 37636 * target-globals.c (save_target_globals): For init_reg_sets and 37637 target_reinit remporarily set this_fn_optabs to this_target_optabs. 37638 376392013-02-22 James Greenhalgh <james.greenhalgh@arm.com> 37640 37641 * config/aarch64/aarch64-simd-builtins.def: Add copyright header. 37642 * config/aarch64/t-aarch64 37643 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def. 37644 376452013-02-22 Vladimir Makarov <vmakarov@redhat.com> 37646 37647 PR inline-asm/56148 37648 * lra-constraints.c (process_alt_operands): Reload operand 37649 conflicting with earlier clobber only if no more other conflicting 37650 operands. 37651 376522013-02-22 Jakub Jelinek <jakub@redhat.com> 37653 37654 PR sanitizer/56393 37655 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o 37656 if not linking a shared library. 37657 376582013-02-22 Seth LaForge <sethml@google.com> 37659 37660 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian. 37661 376622013-02-22 Greta Yorsh <Greta.Yorsh@arm.com> 37663 37664 * config/arm/arm.md (split for extendsidi): Update condition. 37665 (zero_extend<mode>di2,extend<mode>di2): Add an alternative. 37666 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise. 37667 (qhs_zextenddi_cstr): Likewise. 37668 376692013-02-21 Jakub Jelinek <jakub@redhat.com> 37670 37671 PR middle-end/56420 37672 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to 37673 avoid signed wrapping. 37674 (expand_mult): Handle properly multiplication by 37675 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by 37676 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior 37677 in the compiler if coeff is HOST_WIDE_INT_MIN. 37678 (expand_divmod): Don't make ext_op1 static, change it's type to 37679 uhwi. Avoid undefined behavior in -INTVAL (op1). 37680 37681 PR rtl-optimization/50339 37682 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt 37683 field. 37684 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT. 37685 (compute_costs): Call compute_splitting_shift also for ASHIFTRT 37686 into splitting_ashiftrt field. 37687 (find_decomposable_shift_zext, resolve_shift_zext): Handle also 37688 ASHIFTRT. 37689 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT 37690 choices. 37691 376922013-02-20 Aldy Hernandez <aldyh@redhat.com> 37693 37694 PR middle-end/56108 37695 * trans-mem.c (execute_tm_mark): Do not expand transactions that 37696 are sure to go irrevocable. 37697 376982013-02-21 Hans-Peter Nilsson <hp@axis.com> 37699 37700 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that 37701 scalars are valid operands. 37702 377032013-02-21 Martin Jambor <mjambor@suse.cz> 37704 37705 PR tree-optimization/56310 37706 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy 37707 only matching indices and non-negative final offsets. 37708 (intersect_aggregates_with_edge): Pass src_idx to 37709 agg_replacements_to_vector. Pass src_idx insstead of index to 37710 intersect_with_agg_replacements. 37711 377122013-02-21 Martin Jambor <mjambor@suse.cz> 37713 37714 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold 37715 instead of hard-wired defaults. 37716 377172013-02-21 Maciej W. Rozycki <macro@codesourcery.com> 37718 37719 * doc/invoke.texi (MIPS Options): Update documentation of the 37720 floating-point multiply-accumulate instruction restrictions. 37721 377222013-02-21 Kostya Serebryany <kcc@google.com> 37723 37724 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as 37725 asan_shadow_offset on x86_64 linux. 37726 377272013-02-21 Richard Biener <rguenther@suse.de> 37728 37729 PR tree-optimization/56415 37730 Revert 37731 2013-02-11 Richard Biener <rguenther@suse.de> 37732 37733 PR tree-optimization/56273 37734 * tree-vrp.c (simplify_cond_using_ranges): Disable for the 37735 first VRP run. 37736 377372013-02-21 Jakub Jelinek <jakub@redhat.com> 37738 37739 PR bootstrap/56258 37740 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item 37741 instead of @itemx. 37742 37743 PR inline-asm/56405 37744 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't 37745 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier. 37746 377472013-02-20 Jan Hubicka <jh@suse.cz> 37748 37749 PR tree-optimization/56265 37750 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph 37751 when target is referenced for first time. 37752 377532013-02-20 Richard Biener <rguenther@suse.de> 37754 37755 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals. 37756 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise. 37757 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise. 37758 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do 37759 not return anything. 37760 (rename_ssa_copies): Do not remove unused locals. 37761 * tree-ssa-ccp.c (do_ssa_ccp): Likewise. 37762 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first. 37763 * passes.c (execute_function_todo): Do not schedule unused locals 37764 removal if cleanup_tree_cfg did something. 37765 * tree-ssa-live.c (remove_unused_locals): Dump statistics 37766 about the number of removed locals. 37767 377682013-02-20 Richard Biener <rguenther@suse.de> 37769 37770 PR tree-optimization/56398 37771 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs. 37772 377732013-02-20 Martin Jambor <mjambor@suse.cz> 37774 37775 PR tree-optimization/55334 37776 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to 37777 restricted pointers to arrays. 37778 377792013-02-20 Richard Biener <rguenther@suse.de> 37780 Jakub Jelinek <jakub@redhat.com> 37781 37782 PR tree-optimization/56396 37783 * tree-ssa-ccp.c (n_const_val): New static variable. 37784 (get_value): Return NULL for SSA names we don't have a lattice 37785 entry for. 37786 (ccp_initialize): Initialize n_const_val. 37787 * tree-ssa-copy.c (n_copy_of): New static variable. 37788 (init_copy_prop): Initialize n_copy_of. 37789 (get_value): Return NULL_TREE for SSA names we don't have a 37790 lattice entry for. 37791 377922013-02-20 Martin Jambor <mjambor@suse.cz> 37793 37794 * ipa-cp.c (initialize_node_lattices): Fix dumping condition. 37795 377962013-02-20 Richard Biener <rguenther@suse.de> 37797 37798 * genpreds.c (write_lookup_constraint): Do not compare first 37799 letter of the constraint again. 37800 378012013-02-20 Richard Biener <rguenther@suse.de> 37802 37803 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits 37804 and ceil_log2. 37805 (get_use_iv_cost): Terminate hashtable walk when coming across 37806 an empty entry. 37807 378082013-02-20 Igor Zamyatin <igor.zamyatin@intel.com> 37809 37810 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp 37811 reassociation for avx2 targets. 37812 378132012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com> 37814 37815 * config/microblaze/microblaze.c: microblaze_has_clz = 0 37816 Add version check for v8.10.a to enable microblaze_has_clz 37817 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined 37818 version and TARGET_PATTERN_COMPARE check 37819 * config/microblaze/microblaze.md: New clzsi2 instruction 37820 378212012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com> 37822 37823 * config/microblaze/microblaze.md (call_value_intern): Check symbol is 37824 function before branching. 37825 378262012-02-19 Andrey Belevantsev <abel@ispras.ru> 37827 37828 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set 37829 DUMP_INSN_RTX_UID. 37830 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim. 37831 378322012-02-19 Andrey Belevantsev <abel@ispras.ru> 37833 37834 PR middle-end/55889 37835 * sel-sched.c: Include ira.h. 37836 (implicit_clobber_conflict_p): New function. 37837 (moveup_expr): Use it. 37838 * Makefile.in (sel-sched.o): Depend on ira.h. 37839 378402013-02-19 Richard Biener <rguenther@suse.de> 37841 37842 PR tree-optimization/56384 37843 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member. 37844 (vn_hash_type): Split out from ... 37845 (vn_hash_constant_with_type): ... here. 37846 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type. 37847 (vn_phi_eq): Compare types from vn_phi_s structure. 37848 (vn_phi_lookup): Populate vn_phi_s type. 37849 (vn_phi_insert): Likewise. 37850 378512013-02-19 Jakub Jelinek <jakub@redhat.com> 37852 37853 PR tree-optimization/56350 37854 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false 37855 if haven't found reduction or nested cycle operand, rather than 37856 asserting we must find it. 37857 37858 PR tree-optimization/56381 37859 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument 37860 to fold_build3. 37861 378622013-02-18 Aldy Hernandez <aldyh@redhat.com> 37863 Jakub Jelinek <jakub@redhat.com> 37864 37865 PR target/52555 37866 * genopinit.c (raw_optab_handler): Use this_fn_optabs. 37867 (swap_optab_enable): Same. 37868 (init_all_optabs): Use argument instead of global. 37869 * tree.h (struct tree_optimization_option): New field target_optabs. 37870 * expr.h (init_all_optabs): Add argument to prototype. 37871 (TREE_OPTIMIZATION_OPTABS): New. 37872 (save_optabs_if_changed): Protoize. 37873 * optabs.h: Declare this_fn_optabs. 37874 * optabs.c (save_optabs_if_changed): New. 37875 Declare this_fn_optabs. 37876 (init_optabs): Add argument to init_all_optabs() call. 37877 * function.c (invoke_set_current_function_hook): Handle per 37878 function optabs. 37879 * function.h (struct function): New field optabs. 37880 * config/mips/mips.c (mips_set_mips16_mode): Handle when 37881 optimization_current_node has changed. 37882 * target-globals.h (save_target_globals_default_opts): Protoize. 37883 * target-globals.c (save_target_globals_default_opts): New. 37884 378852013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 37886 37887 PR target/56347 37888 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark 37889 registers %fr12 and %fr12R as call used. 37890 37891 PR target/56214 37892 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode 37893 and HImode, require all displacements to be an integer multiple of 37894 their mode size. 37895 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses, 37896 only allow QImode and HImode when reload is in progress and strict is 37897 true. Likewise for symbolic addresses. Use base14_operand to check 37898 displacements in REG+BASE addresses. 37899 379002013-02-18 Richard Biener <rguenther@suse.de> 37901 37902 PR tree-optimization/56366 37903 * tree-vect-loop.c (get_initial_def_for_induction): Properly 37904 handle sign-conversion of outer-loop initial induction value. 37905 379062013-02-18 Richard Biener <rguenther@suse.de> 37907 37908 PR middle-end/56349 37909 * cfghooks.c (merge_blocks): If we merge a latch into another 37910 block adjust references to it. 37911 * cfgloop.c (flow_loops_find): Reset latch before recomputing it. 37912 (verify_loop_structure): Verify that a recorded latch is in fact 37913 a latch. 37914 379152013-02-18 Richard Biener <rguenther@suse.de> 37916 37917 PR tree-optimization/56321 37918 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly 37919 order SSA name release and virtual operand unlinking. 37920 379212013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com> 37922 37923 * config/microblaze/microblaze.md (save_stack_block): Define. 37924 (restore_stack_block): Likewise. 37925 379262013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com> 37927 37928 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1. 37929 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1. 37930 * config/microblaze/microblaze.c (microblaze_option_override): 37931 Bail out early for PIC modes when target does not support PIC. 37932 379332013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com> 37934 37935 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template): 37936 Replace with a microblaze version. 37937 (microblaze_trampoline_init): Adapt for microblaze. 37938 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for 37939 microblaze. 37940 379412013-02-16 Jakub Jelinek <jakub@redhat.com> 37942 Dodji Seketeli <dodji@redhat.com> 37943 37944 PR asan/56330 37945 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup. 37946 (instrument_mem_region_access): Do not forget to always put 37947 instrumentation of the of 'base' and 'base + len' in a "if (len != 37948 0) statement, even for cases where either 'base' or 'base + len' 37949 are not instrumented -- because they have been previously 37950 instrumented. Simplify the logic by putting all the statements 37951 instrument 'base + len' inside a sequence, and then insert that 37952 sequence right before the current insertion point. Then, to 37953 instrument 'base + len', just get an iterator on that statement. 37954 And do not forget to update the pointer to iterator the function 37955 received as argument. 37956 379572013-02-15 Vladimir Makarov <vmakarov@redhat.com> 37958 37959 PR rtl-optimization/56348 37960 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos. 37961 379622013-02-15 Steven Bosscher <steven@gcc.gnu.org> 37963 37964 * graph.c (start_graph_dump): Print dumpfile base as digraph label. 37965 (clean_graph_dump_file): Pass base to start_graph_dump. 37966 379672013-02-14 Richard Henderson <rth@redhat.com> 37968 37969 PR target/55941 37970 * lower-subreg.c (simple_move): Check dest mode instead of src mode. 37971 379722013-02-14 Steven Bosscher <steven@gcc.gnu.org> 37973 37974 * collect2-aix.h: Define F_LOADONLY. 37975 379762013-02-14 Richard Biener <rguenther@suse.de> 37977 37978 PR lto/50494 37979 * varasm.c (output_constant_def_1): Get the decl representing 37980 the constant as argument. 37981 (output_constant_def): Wrap output_constant_def_1. 37982 (make_decl_rtl): Use output_constant_def_1 with the decl 37983 representing the constant. 37984 (build_constant_desc): Optionally re-use a decl already 37985 representing the constant. 37986 (tree_output_constant_def): Adjust. 37987 379882013-02-14 Dodji Seketeli <dodji@redhat.com> 37989 37990 Fix an asan crash 37991 * asan.c (instrument_builtin_call): Really put the length of the 37992 second source argument into src1_len. 37993 379942013-02-13 Jakub Jelinek <jakub@redhat.com> 37995 37996 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge 37997 argument. If it is false, don't create edge from then_bb to 37998 fallthru_bb. 37999 (insert_if_then_before_iter): Pass true to it. 38000 (build_check_stmt): Pass false to it. 38001 (transform_statements): Flush hash table only on extended basic 38002 block boundaries, rather than at the beginning of every bb. 38003 Don't flush hash table on nonfreeing_call_p calls. 38004 * tree-flow.h (nonfreeing_call_p): New prototype. 38005 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static. 38006 380072013-02-13 David S. Miller <davem@davemloft.net> 38008 38009 * expmed.c (expand_shift_1): Only strip scalar integer subregs. 38010 380112013-02-13 Vladimir Makarov <vmakarov@redhat.com> 38012 38013 PR target/56184 38014 * ira.c (max_regno_before_ira): Move from ... 38015 (ira): ... here. 38016 (fix_reg_equiv_init): Use max_regno_before_ira instead of 38017 vec_safe_length. 38018 380192013-02-13 Jakub Jelinek <jakub@redhat.com> 38020 38021 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change. 38022 380232013-02-13 Richard Biener <rguenther@suse.de> 38024 38025 PR lto/56295 38026 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping 38027 globals in MEM_REFs. 38028 380292013-02-13 Richard Biener <rguenther@suse.de> 38030 38031 * loop-init.c (loop_optimizer_init): Clear loop state when 38032 re-initializing preserved loops. 38033 * loop-unswitch.c (unswitch_single_loop): Return whether 38034 we unswitched the loop. Do not verify loop state here. 38035 (unswitch_loops): When we unswitched a loop discover new loops. 38036 380372013-02-13 Kostya Serebryany <kcc@google.com> 38038 38039 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset 38040 on x86_64 linux. 38041 * sanitizer.def: Rename __asan_init to __asan_init_v1. 38042 380432013-02-12 Dodji Seketeli <dodji@redhat.com> 38044 38045 Avoid instrumenting duplicated memory access in the same basic block 38046 * Makefile.in (asan.o): Add new dependency on hash-table.h 38047 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types. 38048 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table) 38049 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table) 38050 (free_mem_ref_resources, has_mem_ref_been_instrumented) 38051 (has_stmt_been_instrumented_p, update_mem_ref_hash_table) 38052 (get_mem_ref_of_assignment): New functions. 38053 (get_mem_refs_of_builtin_call): Extract from 38054 instrument_builtin_call and tweak a little bit to make it fit with 38055 the new signature. 38056 (instrument_builtin_call): Use the new 38057 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead 38058 of is_gimple_builtin_call. 38059 (instrument_derefs, instrument_mem_region_access): Insert the 38060 instrumented memory reference into the hash table. 38061 (maybe_instrument_assignment): Renamed instrument_assignment into 38062 this, and change it to advance the iterator when instrumentation 38063 actually happened and return true in that case. This makes it 38064 homogeneous with maybe_instrument_assignment, and thus give a 38065 chance to callers to be more 'regular'. 38066 (transform_statements): Clear the memory reference hash table 38067 whenever we enter a new BB, when we cross a function call, or when 38068 we are done transforming statements. Use 38069 maybe_instrument_assignment instead of instrumentation. No more 38070 need to special case maybe_instrument_assignment and advance the 38071 iterator after calling it; it's now handled just like 38072 maybe_instrument_call. Update comment. 38073 380742013-02-13 Richard Biener <rguenther@suse.de> 38075 38076 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): 38077 Fix loop discovery code. 38078 380792013-02-12 Vladimir Makarov <vmakarov@redhat.com> 38080 38081 PR inline-asm/56148 38082 * lra-constraints.c (process_alt_operands): Match early clobber 38083 operand with itself. Check conflicts with earlyclobber only if 38084 the operand is not reloaded. Prefer to reload conflicting operand 38085 if earlyclobber and matching operands are the same. 38086 380872013-02-12 Richard Biener <rguenther@suse.de> 38088 38089 PR lto/56297 38090 * lto-streamer-out.c (write_symbol): Do not output symbols 38091 for hard register variables. 38092 380932013-02-12 Georg-Johann Lay <avr@gjlay.de> 38094 38095 PR target/54222 38096 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders. 38097 (umulsidi3_insn, mulsidi3_insn): New insns. 38098 380992013-02-12 Christophe Lyon <christophe.lyon@linaro.org> 38100 38101 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type. 38102 (struct tune_params): Add vec_costs field. 38103 * config/arm/arm.c (arm_builtin_vectorization_cost) 38104 (arm_add_stmt_cost): New functions. 38105 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST) 38106 (TARGET_VECTORIZE_ADD_STMT_COST): Define. 38107 (arm_default_vec_cost): New struct of type cpu_vec_costs. 38108 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune) 38109 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune) 38110 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune) 38111 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field. 38112 381132013-02-12 Richard Biener <rguenther@suse.de> 38114 38115 PR lto/56295 38116 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off 38117 decls again if possible. 38118 381192013-02-12 Richard Biener <rguenther@suse.de> 38120 38121 PR middle-end/56288 38122 * tree-ssa.c (verify_ssa_name): Fix check, move 38123 SSA_NAME_IN_FREE_LIST check up. 38124 381252013-02-12 Jakub Jelinek <jakub@redhat.com> 38126 Steven Bosscher <steven@gcc.gnu.org> 38127 38128 PR rtl-optimization/56151 38129 * optabs.c (add_equal_note): Don't return 0 if target is a MEM, 38130 equal to op0 or op1, and last_insn pattern is CODE operation 38131 with MEM dest and one of the operands matches that MEM. 38132 381332013-02-11 Sriraman Tallam <tmsriram@google.com> 38134 38135 * doc/extend.texi: Document Function Multiversioning and "default" 38136 parameter string to target attribute. 38137 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if 38138 target attribute parameter is "default". 38139 (ix86_compare_version_priority): Remove checks for target attribute. 38140 (ix86_mangle_function_version_assembler_name): Change error to sorry. 38141 Remove check for target attribute equal to NULL. Add assert. 38142 (ix86_generate_version_dispatcher_body): Change error to sorry. 38143 381442013-02-11 Iain Sandoe <iain@codesourcery.com> 38145 Jack Howarth <howarth@bromo.med.uc.edu> 38146 Patrick Marlier <patrick.marlier@gmail.com> 38147 38148 PR libitm/55693 38149 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and 38150 define ENDFILE_SPEC as TM_DESTRUCTOR. 38151 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR. 38152 381532013-02-11 Alexander Potapenko <glider@google.com> 38154 Jack Howarth <howarth@bromo.med.uc.edu> 38155 Jakub Jelinek <jakub@redhat.com> 38156 38157 PR sanitizer/55617 38158 * config/darwin.c (cdtor_record): Rename ctor_record. 38159 (sort_cdtor_records): Rename sort_ctor_records. 38160 (finalize_dtors): New routine to sort destructors by 38161 priority before use in assemble_integer. 38162 (machopic_asm_out_destructor): Use finalize_dtors if needed. 38163 381642013-02-11 Uros Bizjak <ubizjak@gmail.com> 38165 38166 PR rtl-optimization/56275 38167 * simplify-rtx.c (avoid_constant_pool_reference): Check that 38168 offset is non-negative and less than cmode size before 38169 calling simplify_subreg. 38170 381712013-02-11 Richard Biener <rguenther@suse.de> 38172 38173 PR tree-optimization/56264 38174 * cfgloop.h (fix_loop_structure): Adjust prototype. 38175 * loop-init.c (fix_loop_structure): Return the number of 38176 newly discovered loops. 38177 * tree-cfgcleanup.c (repair_loop_structures): When new loops 38178 are discovered, do a full loop-closed SSA rewrite. 38179 381802013-02-11 Richard Biener <rguenther@suse.de> 38181 38182 PR tree-optimization/56273 38183 * tree-vrp.c (simplify_cond_using_ranges): Disable for the 38184 first VRP run. 38185 (check_array_ref): Fix missing newline in dumps. 38186 (search_for_addr_array): Likewise. 38187 381882013-02-09 David Edelsohn <dje.gcc@gmail.com> 38189 38190 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine. 38191 381922013-02-09 Jakub Jelinek <jakub@redhat.com> 38193 38194 PR target/56256 38195 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define. 38196 381972013-02-08 Vladimir Makarov <vmakarov@redhat.com> 38198 38199 PR rtl-optimization/56246 38200 * lra-constraints.c (simplify_operand_subreg): Try to reuse 38201 reload pseudo. 38202 * lra.c (lra): Clear lra_optional_reload_pseudos only when all 38203 constraints are satisfied. 38204 382052013-02-08 Jeff Law <law@redhat.com> 38206 38207 PR debug/53948 38208 * emit-rtl.c (reg_is_parm_p): New function. 38209 * regs.h (reg_is_parm_p): New prototype. 38210 * ira-conflicts.c (ira_build_conflicts): Allow parameters in 38211 callee-clobbered registers. 38212 382132013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com> 38214 38215 PR target/56043 38216 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): 38217 If there is no implicit builtin declaration, just return NULL. 38218 382192013-02-08 Uros Bizjak <ubizjak@gmail.com> 38220 38221 * config/i386/sse.md (FMAMODEM): New mode iterator. 38222 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM 38223 mode iterator. Do not use TARGET_SSE_MATH in insn constraint. 38224 382252013-02-08 Uros Bizjak <ubizjak@gmail.com> 38226 38227 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only 38228 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set. 38229 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto. 38230 382312013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com> 38232 38233 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT. 38234 (microblaze*-*-elf): Likewise. 38235 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to 38236 LINK_SPEC. 38237 * config/microblaze/microblaze-c.c: Add builtin defines for 38238 _LITTLE_ENDIAN and _BIG_ENDIAN. 38239 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and 38240 add to TARGET_DEFAULT flags. 38241 Expand ASM_SPEC and LINK_SPEC. 38242 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN. 38243 * config/microblaze/microblaze.md: Update extendsidi2 and 38244 movdi_internal instructions to use low-order / high-order reg 38245 print_operands. 38246 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian 38247 options and inversemask / mask of LITTLE_ENDIAN. 38248 * config/microblaze/t-microblaze: Expand multilib options to 38249 include mlittle-endian (le) and update exceptions patterns. 38250 382512013-02-08 Jakub Jelinek <jakub@redhat.com> 38252 38253 PR rtl-optimization/56195 38254 * lra-constraints.c (get_reload_reg): Don't reuse regs 38255 if they have smaller mode than requested, if they have 38256 wider mode than requested, try to return a SUBREG. 38257 38258 PR tree-optimization/56250 38259 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize 38260 if type is unsigned and code isn't MULT_EXPR. 38261 382622013-02-08 Georg-Johann Lay <avr@gjlay.de> 38263 38264 PR tree-optimization/56064 38265 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload 38266 bits according to mode. 38267 * fixed-value.h (fixed_from_double_int) 38268 (const_fixed_from_double_int): Adjust comments. 38269 382702013-02-08 Richard Biener <rguenther@suse.de> 38271 38272 PR lto/56231 38273 * lto-streamer.h (struct data_in): Remove current_file, current_line 38274 and current_col members. 38275 * lto-streamer-out.c (lto_output_location): Stream changed bits 38276 en-block for efficiency. 38277 * lto-streamer-in.c (clear_line_info): Remove. 38278 (lto_input_location): Cache current file, line and column 38279 globally via local statics. Read changed bits en-block. 38280 (input_function): Do not call clear_line_info. 38281 (lto_read_body): Likewise. 38282 (lto_input_toplevel_asms): Likewise. 38283 382842013-02-08 Michael Matz <matz@suse.de> 38285 38286 PR tree-optimization/52448 38287 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member. 38288 (nt_call_phase): New static. 38289 (add_or_mark_expr): Only mark accesses with newer phase than any 38290 call seen. 38291 (nonfreeing_call_p): New. 38292 (nt_init_block): Update nt_call_phase, mark blocks as visited. 38293 (nt_fini_block): Keep blocks marked as visited. 38294 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer. 38295 382962013-02-08 Richard Biener <rguenther@suse.de> 38297 38298 * ira.c (ira): Free broken dominator information. 38299 383002013-02-08 Uros Bizjak <ubizjak@gmail.com> 38301 38302 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro. 38303 383042013-02-08 Marek Polacek <polacek@redhat.com> 38305 38306 * cfgloop.c (verify_loop_structure): Add more checking of headers. 38307 383082013-02-08 Richard Biener <rguenther@suse.de> 38309 38310 PR middle-end/56181 38311 * cfgloop.h (flow_loops_find): Adjust. 38312 (bb_loop_header_p): Declare. 38313 * cfgloop.c (bb_loop_header_p): New function split out from ... 38314 (flow_loops_find): ... here. Adjust function signature, 38315 support incremental loop structure update. 38316 (verify_loop_structure): Cleanup. Verify a loop is a loop. 38317 * cfgloopmanip.c (fix_loop_structure): Move ... 38318 * loop-init.c (fix_loop_structure): ... here. 38319 (apply_loop_flags): Split out from ... 38320 (loop_optimizer_init): ... here. 38321 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find 38322 in incremental mode, only remove dead loops here. 38323 383242013-02-08 Georg-Johann Lay <avr@gjlay.de> 38325 38326 PR target/54222 38327 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add. 38328 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators. 38329 (round<mode>3, round<mode>3_const): New expanders for fixed-mode. 38330 (*round<mode>3.libgcc): New insns for fixed-modes. 38331 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME. 38332 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs. 38333 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs. 38334 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline 38335 implementations. Define to __builtin_avr_absFX, 38336 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively. 38337 (roundFX, countlsFX): Define to __builtin_avr_roundFX, 38338 __builtin_avr_countlsFX, respectively. 38339 * config/avr/avr-c.c (target.h): Include it. 38340 (enum avr_builtin_id): New enum. 38341 (avr_resolve_overloaded_builtin): New static function. 38342 (avr_register_target_pragmas): Use it to set 38343 targetm.resolve_overloaded_builtin. 38344 * config/avr/avr.c (avr_init_builtins): Supply myriads of local 38345 tree nodes used by DEF_BUILTIN. 38346 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them. 38347 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR. 38348 <AVR_BUILTIN_xxBITS>: Same. 38349 383502013-02-08 Richard Biener <rguenther@suse.de> 38351 38352 * cfgloop.c (verify_loop_structure): Properly handle 38353 a loop exiting to another loop header. 38354 * ira-int.h (ira_loops): Remove. 38355 * ira.c (ira_loops): Remove. 38356 (ira): Use loop_optimizer_init and loop_optimizer_finalize. 38357 (do_reload): Use loop_optimizer_finalize. 38358 * ira-build.c (create_loop_tree_nodes): Use get_loops and 38359 number_of_loops to access the loop tree. 38360 (more_one_region_p): Likewise. 38361 (finish_loop_tree_nodes): Likewise. 38362 (rebuild_regno_allocno_maps): Likewise. 38363 (mark_loops_for_removal): Likewise. 38364 (mark_all_loops_for_removal): Likewise. 38365 (remove_unnecessary_regions): Likewise. 38366 (ira_build): Likewise. 38367 * ira-emit.c (setup_entered_from_non_parent_p): Likewise. 38368 383692013-02-08 Richard Biener <rguenther@suse.de> 38370 38371 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency. 38372 * ipa-pure-const.c (analyze_function): Avoid calling 38373 mark_irreducible_loops twice. 38374 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup. 38375 383762013-02-07 David S. Miller <davem@davemloft.net> 38377 38378 * dwarf2out.c (based_loc_descr): Perform leaf register remapping 38379 on 'reg'. 38380 * var-tracking.c (vt_add_function_parameter): Test the presence of 38381 HAVE_window_save properly and do not remap argument registers when 38382 we have a leaf function. 38383 383842013-02-07 Uros Bizjak <ubizjak@gmail.com> 38385 38386 PR bootstrap/56227 38387 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT 38388 instead of "ll". 38389 * config/i386/i386.c (ix86_print_operand): Ditto. 38390 383912013-02-07 Vladimir Makarov <vmakarov@redhat.com> 38392 38393 * lra-constraints.c (process_alt_operands): Fix recently added comment. 38394 383952013-02-07 Vladimir Makarov <vmakarov@redhat.com> 38396 38397 PR rtl-optimization/56225 38398 * lra-constraints.c (process_alt_operands): Check that reload hard 38399 reg can hold value for strict_low_part. 38400 384012013-02-07 Jakub Jelinek <jakub@redhat.com> 38402 38403 PR debug/56154 38404 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to 38405 dwarf2out_end_function. 38406 (in_first_function_p, maybe_at_text_label_p, 38407 first_loclabel_num_not_at_text_label): New variables. 38408 (dwarf2out_var_location): In the first function find out 38409 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0. 38410 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New 38411 functions. 38412 384132013-02-07 Eric Botcazou <ebotcazou@adacore.com> 38414 38415 PR rtl-optimization/56178 38416 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a 38417 SUBREG of a register. Tidy up related block of code. 38418 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL 38419 note if the source is a register or a SUBREG of a register. 38420 384212013-02-07 Jakub Jelinek <jakub@redhat.com> 38422 38423 PR target/56228 38424 * config/rs6000/rs6000.md (ptrm): New mode attr. 38425 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11, 38426 call_value_indirect_aix<pttrsize>, 38427 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of 38428 m in constraints. 38429 384302013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at> 38431 38432 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable 38433 if -bnortl. Convert to strcmp and strncmp. 38434 384352013-02-07 Alan Modra <amodra@gmail.com> 38436 38437 PR target/54009 38438 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM 38439 addresses won't wrap when offsetting. 38440 (rs6000_secondary_reload): Provide secondary reloads needed for 38441 wrapping LO_SUM addresses. 38442 384432013-02-06 Thomas Schwinge <thomas@codesourcery.com> 38444 38445 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define 38446 MACH, just __MACH__. 38447 384482013-02-06 Richard Biener <rguenther@suse.de> 38449 38450 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP 38451 instead of calling fix_loop_structure. 38452 384532013-02-06 Jakub Jelinek <jakub@redhat.com> 38454 38455 PR middle-end/56217 38456 * omp-low.c (use_pointer_for_field): Return false if 38457 lower_send_shared_vars doesn't generate any copy-out code. 38458 384592013-02-06 Tom de Vries <tom@codesourcery.com> 38460 38461 PR rtl-optimization/56131 38462 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN 38463 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb 38464 of the label is NULL. Add comment. 38465 384662013-02-05 Jakub Jelinek <jakub@redhat.com> 38467 38468 * tree.h (struct tree_decl_with_vis): Remove thread_local field. 38469 38470 PR sanitizer/55374 38471 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define. 38472 (STATIC_LIBTSAN_LIBS): Likewise. 38473 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define. 38474 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC 38475 is defined, don't add anything else beyond that. 38476 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define. 38477 (LINK_COMMAND_SPEC): Use them. 38478 38479 PR tree-optimization/56205 38480 * tree-stdarg.c (check_all_va_list_escapes): Return true if 38481 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME 38482 and some va_list_escape_vars SSA_NAME appears in some PHI argument. 38483 384842013-02-05 Richard Biener <rguenther@suse.de> 38485 38486 PR tree-optimization/53342 38487 PR tree-optimization/53185 38488 * tree-vectorizer.h (vect_check_strided_load): Remove. 38489 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do 38490 not disallow peeling for vectorized strided loads. 38491 (vect_check_strided_load): Make static and simplify. 38492 (vect_analyze_data_refs): Adjust. 38493 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops 38494 correctly when vectorizing strided loads. 38495 384962013-02-05 Richard Biener <rguenther@suse.de> 38497 38498 * doc/install.texi: Refer to ISL, not PPL. 38499 385002013-02-05 Jan Hubicka <jh@suse.cz> 38501 38502 PR tree-optimization/55789 38503 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1. 38504 385052013-02-05 Jan Hubicka <jh@suse.cz> 38506 38507 PR tree-optimization/55789 38508 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove 38509 the dead call anyway. 38510 385112013-02-05 Eric Botcazou <ebotcazou@adacore.com> 38512 38513 PR sanitizer/55374 38514 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard. 38515 385162013-02-04 Alexander Potapenko <glider@google.com> 38517 Jack Howarth <howarth@bromo.med.uc.edu> 38518 Jakub Jelinek <jakub@redhat.com> 38519 38520 PR sanitizer/55617 38521 * config/darwin.c (sort_ctor_records): Stabilized qsort 38522 on constructor priority by using original position. 38523 (finalize_ctors): New routine to sort constructors by 38524 priority before use in assemble_integer. 38525 (machopic_asm_out_constructor): Use finalize_ctors if needed. 38526 385272013-02-04 Jakub Jelinek <jakub@redhat.com> 38528 38529 PR libstdc++/54314 38530 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn 38531 about visibility on artificial decls. 38532 * config/sol2.c (solaris_assemble_visibility): Likewise. 38533 385342013-02-04 Kai Tietz <ktietz@redhat.com> 38535 38536 PR target/56186 38537 * config/i386/i386.c (function_value_ms_64): Add additional valtype 38538 argument and improve checking of return-argument types for 16-byte 38539 modes. 38540 (ix86_function_value_1): Add additional valtype argument on call 38541 of function_value_64. 38542 (return_in_memory_ms_64): Sync 16-byte sized mode handling with 38543 handling infunction_value_64 function. 38544 385452013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org> 38546 38547 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue. 38548 385492013-02-04 Richard Biener <rguenther@suse.de> 38550 38551 PR tree-optimization/56188 38552 * tree-ssa-structalias.c (label_visit): Consider case with 38553 initially non-empty points-to set. 38554 (perform_var_substitution): Dump node mapping and clean up. 38555 385562013-02-04 Richard Guenther <rguenther@suse.de> 38557 38558 PR lto/56168 38559 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin 38560 node prevail as last resort. 38561 (lto_symtab_merge_decls): Remove guard on LTRANS here. 38562 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl. 38563 385642013-02-04 Richard Biener <rguenther@suse.de> 38565 38566 PR tree-optimization/56113 38567 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add): 38568 Merge into ... 38569 (equiv_class_lookup_or_add): ... this. 38570 (label_visit): Adjust and fix error in previous patch. 38571 (perform_var_substitution): Adjust. 38572 385732013-02-03 Oleg Endo <olegendo@gcc.gnu.org> 38574 38575 * config/sh/divtab.c: Fix formatting and comments throughout the file. 38576 * config/sh/sh4-300.md: Likewise. 38577 * config/sh/sh4a.md: Likewise. 38578 * config/sh/constraints.md: Likewise. 38579 * config/sh/sh.md: Likewise. 38580 * config/sh/netbsd-elf.h: Likewise. 38581 * config/sh/predicates.md: Likewise. 38582 * config/sh/sh-protos.h: Likewise. 38583 * config/sh/ushmedia.h: Likewise. 38584 * config/sh/linux.h: Likewise. 38585 * config/sh/sh.c: Likewise. 38586 * config/sh/superh.h: Likewise. 38587 * config/sh/elf.h: Likewise. 38588 * config/sh/sh4.md: Likewise. 38589 * config/sh/sh.h: Likewise. 38590 385912013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 38592 38593 * config/pa/constraints.md: Adjust unused letters. Change "T" 38594 constraint to match_test floating_point_store_memory_operand(). 38595 * config/pa/predicates.md (reg_plus_base_memory_operand): New. 38596 (base14_operand): New. 38597 (floating_point_store_memory_operand): New. 38598 (integer_store_memory_operand): Revise to use base14_operand and 38599 reg_plus_base_memory_operand. 38600 (move_dest_operand): Allow symbolic_memory_operands. 38601 (symbolic_memory_operand): Check for LO_SOM. 38602 (symbolic_operand): Change default case to break. 38603 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force 38604 CONST_DOUBLE values to be reloaded by putting them into memory when 38605 the destination is a floating point register. 38606 (movdf): Remove code to handle CONST_DOUBLE. 38607 (movsf): Likewise. 38608 (reload_indf_r1): New. 38609 (reload_insf_r1): New. 38610 Consistently use "Q" and "T" constraints with integer and floating 38611 point move instructions, respectively. 38612 (movdi): Remove FAIL. 38613 Change predicate for source operand unamed DImode move from 38614 general_operand to move_src_operand. 38615 (umulsidi3): Change predicate for destination operand to 38616 register_operand. 38617 Likewise for similar unamed patterns. 38618 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare. 38619 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis. 38620 (hppa_legitimize_address): Simplify mask calculation. 38621 (pa_emit_move_sequence): Revised handling of secondary reloads from 38622 REG+D addresses for floating point loads and stores. Directly handle 38623 loading CONST0_RTX (mode) to a floating point register. 38624 (pa_secondary_reload): Handle reloading DF and SFmode constant values 38625 to floating point registers. Don't restrict secondary reloads to 38626 floating point registers to integer modes. Revise some comments and 38627 cleanup some code. 38628 (TARGET_LEGITIMATE_ADDRESS_P): Define. 38629 (pa_legitimate_address_p): New. 38630 (pa_legitimize_reload_address): New. 38631 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New. 38632 (STRICT_REG_OK_FOR_BASE_P): New. 38633 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments. 38634 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address. 38635 386362013-02-03 David Edelsohn <dje.gcc@gmail.com> 38637 Andrew Dixie <andrewd@gentrack.com> 38638 38639 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY 38640 flag set. 38641 386422013-02-03 Richard Sandiford <rdsandiford@googlemail.com> 38643 38644 * expmed.c (extract_bit_field_1): Pass the full width of the 38645 structure to get_best_reg_extraction_insn. 38646 386472013-02-01 David Edelsohn <dje.gcc@gmail.com> 38648 38649 PR target/54601 38650 * configure.ac (use_cxa_atexit): Add AIX. 38651 * configure: Regenerate. 38652 38653 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o. 38654 386552013-02-01 Jakub Jelinek <jakub@redhat.com> 38656 38657 PR debug/54793 38658 * final.c (need_profile_function): New variable. 38659 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument. 38660 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG 38661 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED 38662 notes, targetm.asm_out.function_prologue doesn't emit anything, 38663 HAVE_prologue and profiler should be emitted before prologue, 38664 set need_profile_function instead of emitting it. 38665 (final_scan_insn): If need_profile_function, emit 38666 profile_function on the first NOTE_INSN_BASIC_BLOCK or 38667 NOTE_INSN_FUNCTION_BEG note. 38668 386692013-02-01 Richard Henderson <rth@redhat.com> 38670 38671 * config/rs6000/rs6000.md (smulditi3): New. 38672 (umulditi3): New. 38673 38674 * config/alpha/alpha.md (umulditi3): New. 38675 386762013-02-01 David Edelsohn <dje.gcc@gmail.com> 38677 38678 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2. 38679 (ASM_OUTPUT_ALIGNED_LOCAL): New. 38680 386812013-02-01 Richard Biener <rguenther@suse.de> 38682 38683 PR tree-optimization/56113 38684 * tree-ssa-structalias.c (label_visit): Reduce work for 38685 single-predecessor nodes. 38686 386872013-02-01 Eric Botcazou <ebotcazou@adacore.com> 38688 38689 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the 38690 range isn't testing for zero. 38691 386922013-01-31 Steven Bosscher <steven@gcc.gnu.org> 38693 38694 PR middle-end/56113 38695 * fwprop.c (fwprop_init): Set up loops without CFG modifications. 38696 386972013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com> 38698 Nick Clifton <nickc@redhat.com> 38699 38700 * config/v850/constraints.md (Q): Define as a memory constraint. 38701 * config/v850/predicates.md (label_ref_operand): New predicate. 38702 (e3v5_shift_operand): New predicate. 38703 (ior_operator): New predicate. 38704 * config/v850/t-v850: Add e3v5 multilib. 38705 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype. 38706 (v850_gen_movdi): Prototype. 38707 * config/v850/v850.c: Add support for e3v5 architecture. 38708 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to 38709 TARGET_V850E_UP. 38710 (construct_save_jarl): Add e3v5 long JARL support. 38711 (v850_adjust_insn_length): New function. Adjust length of call 38712 insns when using e3v5 instructions. 38713 (v850_gen_movdi): New function: Generate instructions to move a 38714 DImode value. 38715 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define. 38716 (CPP_SPEC): Define __v850e3v5__ as appropriate. 38717 (TARGET_USE_FPU): Enable for e3v5. 38718 (CONST_OK_FOR_W): New macro. 38719 (ADJUST_INSN_LENGTH): Define. 38720 * config/v850/v850.md (UNSPEC_LOOP): Define. 38721 (attr cpu): Add v850e3v5. 38722 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP. 38723 (movdi): New pattern. 38724 (movdi_internal): New pattern. 38725 (cbranchsf4): Conditionalize on TARGET_USE_FPU. 38726 (cbranchdf4): Conditionalize on TARGET_USE_FPU. 38727 (cstoresf4): Likewise. 38728 (cstoredf4): Likewise. 38729 (insv): New pattern. 38730 (rotlso3_a): New pattern. 38731 (rotlsi3_b): New pattern 38732 (rotlsi3_v850e3v5): New pattern. 38733 (doloop_begin): New pattern. 38734 (fix_loop_counter): New pattern. 38735 (doloop_end): New pattern. 38736 (branch_normal): Add e3v5 long branch support. 38737 (branch_invert): Likewise. 38738 (branch_z_normal): Likewise. 38739 (branch_z_invert): Likewise. 38740 (branch_nz_normal): Likewise. 38741 (branch_nz_invert): Likewise. 38742 (call_internal_short): Add e3v5 register-indirect JARL support. 38743 (call_internal_long): Likewise. 38744 (call_value_internal_short): Likewise. 38745 (call_value_internal_long): Likewise. 38746 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options. 38747 (mloop): New option. 38748 * config.gcc: Add support for configuring v840e3v5 target. 38749 * doc/invoke.texi: Document new v850 specific command line options. 38750 387512013-01-31 Paul Koning <ni1d@arrl.net> 38752 38753 PR debug/55059 38754 PR debug/54508 38755 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's 38756 children if parent is a class. 38757 (prune_unused_types_prune): Don't add DW_AT_declaration. 38758 387592013-01-31 Richard Biener <rguenther@suse.de> 38760 38761 PR tree-optimization/56157 38762 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to 38763 match up operand with SLP child. 38764 387652013-01-31 Jason Merrill <jason@redhat.com> 38766 38767 PR debug/54410 38768 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template 38769 parameters the first time. 38770 (gen_scheduled_generic_parms_dies): Check completeness here. 38771 387722013-01-31 Richard Biener <rguenther@suse.de> 38773 38774 PR middle-end/53073 38775 * common.opt (faggressive-loop-optimizations): New flag, 38776 enabled by default. 38777 * doc/invoke.texi (faggressive-loop-optimizations): Document. 38778 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard 38779 infer_loop_bounds_from_undefined by it. 38780 387812013-01-31 Richard Biener <rguenther@suse.de> 38782 38783 PR tree-optimization/56150 38784 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not 38785 visit virtual operands. 38786 (find_uses_to_rename_bb): Likewise. 38787 387882013-01-31 Richard Biener <rguenther@suse.de> 38789 38790 PR tree-optimization/56150 38791 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle 38792 mixed store non-store stmts. 38793 387942013-01-30 Jakub Jelinek <jakub@redhat.com> 38795 38796 PR sanitizer/55374 38797 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if 38798 LIBASAN_EARLY_SPEC is defined. 38799 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined. 38800 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address, 38801 before %o. 38802 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define. 38803 38804 PR c++/55742 38805 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose 38806 invalid args instead of ICEing on it. 38807 (ix86_valid_target_attribute_tree): Return error_mark_node if 38808 ix86_valid_target_attribute_inner_p failed. 38809 (ix86_valid_target_attribute_p): Return false only if 38810 ix86_valid_target_attribute_tree returned error_mark_node. Allow 38811 target("default") attribute. 38812 (sorted_attr_string): Change argument from const char * to tree, 38813 merge in all target attribute arguments rather than just one. 38814 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC 38815 instead of free. Avoid using strcat. 38816 (ix86_mangle_function_version_assembler_name): Mangle 38817 target("default") as if no target attribute is present. Adjust 38818 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC 38819 instead of xmalloc and XDELETEVEC instead of free. 38820 (ix86_function_versions): Don't return true if one of the decls 38821 doesn't have target attribute. If they don't and one of the decls 38822 is DECL_FUNCTION_VERSIONED, report an error. Adjust 38823 sorted_attr_string caller. Use XDELETEVEC instead of free. 38824 (ix86_supports_function_versions): Remove. 38825 (make_name): Fix up formatting. 38826 (make_dispatcher_decl): Remove resolver_name and its initialization. 38827 Avoid leaking memory. 38828 (is_function_default_version): Return true if there is 38829 target("default") attribute rather than no target attribute at all. 38830 (make_resolver_func): Avoid leaking memory. 38831 (ix86_generate_version_dispatcher_body): Likewise. 38832 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove. 38833 * target.def (supports_function_versions): Remove. 38834 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove. 38835 * doc/tm.texi: Regenerated. 38836 388372013-01-30 Vladimir Makarov <vmakarov@redhat.com> 38838 38839 PR rtl-optimization/56144 38840 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo 38841 for values with side effects. 38842 388432013-01-30 Richard Biener <rguenther@suse.de> 38844 38845 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert. 38846 (sparseset_pop): Likewise. 38847 * cfganal.c (compute_idf): Likewise. Increase work-stack size 38848 to be able to use quick_push in the worker loop. 38849 388502013-01-30 Marek Polacek <polacek@redhat.com> 38851 38852 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs. 38853 388542013-01-30 Richard Biener <rguenther@suse.de> 38855 38856 PR lto/56147 38857 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check. 38858 388592013-01-30 Georg-Johann Lay <avr@gjlay.de> 38860 38861 PR tree-optimization/56064 38862 * fixed-value.c (fixed_from_double_int): New function. 38863 * fixed-value.h (fixed_from_double_int): New prototype. 38864 (const_fixed_from_double_int): New static inline function. 38865 * fold-const.c (native_interpret_fixed): New static function. 38866 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it. 38867 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true. 38868 (native_encode_fixed): New static function. 38869 (native_encode_expr) <FIXED_CST>: Use it. 38870 (native_interpret_int): Move double_int worker code to... 38871 * double-int.c (double_int::from_buffer): ...this new static method. 38872 * double-int.h (double_int::from_buffer): Prototype it. 38873 388742013-01-30 Richard Biener <rguenther@suse.de> 38875 38876 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack): 38877 New pointer-map and obstack. 38878 (init_alias_vars): Allocate pointer-map and obstack. 38879 (delete_points_to_sets): Free them. 38880 (find_what_var_points_to): Cache result. 38881 (find_what_p_points_to): Adjust for changed interface of 38882 find_what_var_points_to. 38883 (compute_points_to_sets): Likewise. 38884 (ipa_pta_execute): Likewise. 38885 388862013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 38887 38888 * configure.ac (HAVE_AS_SPARC_NOBITS): New test. 38889 * configure: Regenerate. 38890 * config.in: Regenerate. 38891 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit 38892 #nobits/#progbits if supported. 38893 388942013-01-29 Oleg Endo <olegendo@gcc.gnu.org> 38895 38896 PR target/56121 38897 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a, 38898 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a, 38899 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition. 38900 389012013-01-29 Greta Yorsh <Greta.Yorsh@arm.com> 38902 38903 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove. 38904 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all. 38905 389062013-01-29 Greta Yorsh <Greta.Yorsh@arm.com> 38907 38908 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL. 38909 * config/arm/cortex-a7.md (cortex_a7_call): Update required units. 38910 389112013-01-29 Greta Yorsh <Greta.Yorsh@arm.com> 38912 38913 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New 38914 declaration. 38915 * config/arm/arm.c (arm_mac_accumulator_is_result): New function. 38916 * config/arm/cortex-a7.md: New bypasses using 38917 arm_mac_accumulator_is_result. 38918 389192013-01-29 Greta Yorsh <Greta.Yorsh@arm.com> 38920 38921 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation. 38922 (cortex_a7_neon_mla): Likewise. 38923 (cortex_a7_fpfmad): New reservation. 38924 (cortex_a7_fpmacs): Use ffmas and update required units. 38925 (cortex_a7_fpmuld): Update required units and latency. 38926 (cortex_a7_fpmacd): Likewise. 38927 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise. 38928 (cortex_a7_neon). Likewise. 38929 (bypass) Update participating units. 38930 389312013-01-29 Greta Yorsh <Greta.Yorsh@arm.com> 38932 38933 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute. 38934 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type 38935 from fmac to ffma. 38936 * config/arm/vfp11.md (vfp_farith): Use ffmas. 38937 (vfp_fmul): Use ffmad. 38938 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas. 38939 (cortex_r4_fmacd): Use ffmad. 38940 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas. 38941 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas. 38942 (cortex_a9_fmacd): Use ffmad. 38943 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas. 38944 (cortex_a8_vfp_macd): Use ffmad. 38945 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas. 38946 (cortex_a5_fpmacd): Use ffmad. 38947 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas. 38948 (cortex_a15_vfp_macd): Use ffmad. 38949 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad. 38950 389512013-01-29 Jason Merrill <jason@redhat.com> 38952 38953 PR libstdc++/54314 38954 * varasm.c (default_assemble_visibility): Don't warn about 38955 visibility on artificial decls. 38956 389572013-01-29 Richard Biener <rguenther@suse.de> 38958 38959 PR tree-optimization/56113 38960 * tree-ssa-structalias.c (equiv_class_lookup): Also return 38961 the bitmap leader. 38962 (label_visit): Free duplicate bitmaps and record the leader instead. 38963 (perform_var_substitution): Adjust. 38964 389652013-01-29 Richard Biener <rguenther@suse.de> 38966 38967 PR tree-optimization/55270 38968 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed 38969 the CFG, schedule loops for fixup. 38970 389712013-01-29 Nick Clifton <nickc@redhat.com> 38972 38973 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow 38974 SP_REG. 38975 389762013-01-28 Leif Ekblad <leif@rdos.net> 38977 38978 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets. 38979 * config/i386/i386.h (TARGET_RDOS): New macro. 38980 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro. 38981 * config/i386/i386.c (ix86_option_override_internal): For 64bit 38982 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1. 38983 * config/i386/i386.opt (mlarge-data-threshold): Initialize to 38984 DEFAULT_LARGE_SECTION_THRESHOLD. 38985 * config/i386/i386.md (R14_REG, R15_REG): New constants. 38986 * config/i386/rdos.h: New file. 38987 * config/i386/rdos64.h: New file. 38988 389892013-01-28 Bernd Schmidt <bernds@codesourcery.com> 38990 38991 PR other/54814 38992 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of 38993 TEST_HARD_REG_BIT. 38994 389952013-01-28 Jakub Jelinek <jakub@redhat.com> 38996 38997 PR rtl-optimization/56117 38998 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib 38999 call cselib_lookup_from_insn on the MEM before calling 39000 add_insn_mem_dependence. 39001 390022013-01-28 Richard Biener <rguenther@suse.de> 39003 39004 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK 39005 to a stmt that didn't have one. 39006 (copy_phis_for_bb): Likewise for PHI arguments. 39007 (copy_debug_stmt): Likewise for debug stmts. 39008 390092013-01-28 Richard Biener <rguenther@suse.de> 39010 39011 PR tree-optimization/56034 39012 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION. 39013 (partition_builtin_p): Adjust. 39014 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert 39015 it is the last partition. 39016 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking 39017 up the vertex for the definition. 39018 (classify_partition): Classify whether a partition is a 39019 PKIND_REDUCTION, thus has uses outside of the loop. 39020 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions. 39021 Merge all PKIND_REDUCTION partitions into the last partition. 39022 (tree_loop_distribution): Seed partitions from reductions as well. 39023 390242013-01-28 Jakub Jelinek <jakub@redhat.com> 39025 39026 PR tree-optimization/56125 39027 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize 39028 pow(x,c) into sqrt(x) * powi(x, n/2) or 39029 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when 39030 optimizing for size. 39031 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or 39032 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an 39033 integer. 39034 39035 PR tree-optimization/56094 39036 * gimplify.c (force_gimple_operand_1): Temporarily set input_location 39037 to UNKNOWN_LOCATION while gimplifying expr. 39038 390392013-01-27 Uros Bizjak <ubizjak@gmail.com> 39040 39041 PR target/56114 39042 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around 39043 operand 0 in movabs insn template for -masm=intel asm alternative. 39044 (*movabs<mode>_2): Ditto for operand 1. 39045 390462013-01-26 David Holsgrove <david.holsgrove@xilinx.com> 39047 39048 PR target/54663 39049 * config.gcc (microblaze*-linux*): Add tmake_file to allow building 39050 of microblaze-c.o 39051 390522013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com> 39053 39054 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update 39055 tm_file. 39056 390572013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> 39058 39059 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS): 39060 Undef to avoid warning. 39061 390622013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at> 39063 39064 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld. 39065 * configure: Regenerate. 39066 390672013-01-25 Jakub Jelinek <jakub@redhat.com> 39068 39069 PR tree-optimization/56098 39070 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr 39071 for stmts with volatile ops. 39072 (cond_store_replacement): Don't optimize if assign has volatile ops. 39073 (cond_if_else_store_replacement_1): Don't optimize if either 39074 then_assign or else_assign have volatile ops. 39075 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have 39076 volatile ops. 39077 390782013-01-25 Georg-Johann Lay <avr@gjlay.de> 39079 39080 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__. 39081 390822013-01-25 Georg-Johann Lay <avr@gjlay.de> 39083 39084 * doc/extend.texi (Example of asm with clobbered asm reg): Fix 39085 missing ':' in asm example. 39086 390872013-01-25 Tejas Belagod <tejas.belagod@arm.com> 39088 39089 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane 39090 entries into lane and laneq entries. 39091 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>): 39092 Remove AdvSIMD scalar modes. 39093 (aarch64_sq<r>dmulh_laneq<mode>): New. 39094 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD 39095 modes. 39096 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics' 39097 builtin implementations to relfect changes in RTL in aarch64-simd.md. 39098 * config/aarch64/iterators.md (VCOND): New. 39099 (VCONQ): New. 39100 391012013-01-25 Georg-Johann Lay <avr@gjlay.de> 39102 39103 PR target/54222 39104 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument. 39105 Add NULL LIBNAME argument to existing definitions. 39106 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New. 39107 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument. 39108 * config/avr/avr.c (DEF_BUILTIN): Same. 39109 (avr_init_builtins): Pass down LIBNAME to add_builtin_function. 39110 (avr_expand_builtin): Expand to a vanilla call if a libgcc 39111 implementation is available (DECL_ASSEMBLER_NAME is set). 39112 (avr_fold_absfx): New static function. 39113 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR, 39114 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR, 39115 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK, 39116 AVR_BUILTIN_ABSLLK. 39117 * config/avr/stdfix.h (abshr, absr, abslr, absllr) 39118 (abshk, absk, abslk, absllk): Provide as static inline functions. 39119 391202013-01-25 Marek Polacek <polacek@redhat.com> 39121 39122 PR tree-optimization/56035 39123 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition. 39124 391252012-01-24 Uros Bizjak <ubizjak@gmail.com> 39126 39127 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative. 39128 (*movtf_internal_rex64): Add (!o,C) alternative 39129 (*movxf_internal_rex64): Ditto. 39130 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives. 39131 391322013-01-24 Shenghou Ma <minux.ma@gmail.com> 39133 39134 * doc/invoke.texi: fix typo. 39135 * doc/objc.texi: fix typo. 39136 391372013-01-24 Richard Sandiford <rdsandiford@googlemail.com> 39138 39139 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint 39140 for the first two alternatives. 39141 391422013-01-24 Diego Novillo <dnovillo@google.com> 39143 39144 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o. 39145 (ggc-zone.o): Remove. 39146 * configure.ac: Remove option --with-gc. 39147 * configure: Re-generate. 39148 * doc/install.texi: Remove documentation for --with-gc. 39149 * gengtype.c (write_enum_defn): Remove. Update all users. 39150 (write_Types_process_field): Remove generation of gt_e_* argument. 39151 (output_type_enum): Remove. Update all users. 39152 (write_enum_defn): Remove. Update all users. 39153 (enum alloc_zone): Remove. Update all users. 39154 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument. 39155 * ggc-common.c (ggc_splay_alloc): Remove first argument. 39156 Update all callers. 39157 (struct ptr_data): Remove field TYPE. Update all users. 39158 (gt_pch_note_object): Remove argument TYPE. Update all users. 39159 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument. 39160 Update all users. 39161 * ggc-none.c (ggc_alloc_typed_stat): Remove. 39162 (struct alloc_zone): Remove. 39163 (ggc_internal_alloc_zone_stat): Remove. 39164 (ggc_internal_cleared_alloc_zone_stat): Remove. 39165 * ggc-page.c (ggc_alloc_typed_stat): Remove. 39166 (ggc_pch_count_object): Remove last argument. Update all users. 39167 (ggc_pch_alloc_object): Remove last argument. Update all users. 39168 (struct alloc_zone): Remove. 39169 * ggc-zone.c: Remove. 39170 * ggc.h (gt_pch_note_object): Remove last argument. Update all users. 39171 (struct alloc_zone): Remove. 39172 (ggc_alloc_typed_stat): Remove. 39173 (ggc_alloc_typed): Remove. 39174 (ggc_splay_alloc): Remove first argument. 39175 (rtl_zone): Remove. Update all users. 39176 (tree_zone): Remove. Update all users. 39177 (tree_id_zone): Remove. Update all users. 39178 (ggc_internal_zone_alloc_stat): Remove. Update all users. 39179 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users. 39180 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users. 39181 * tree-ssanames.c: Remove references to zone allocator in comments. 39182 391832013-01-24 Georg-Johann Lay <avr@gjlay.de> 39184 39185 * config/avr/avr.c (avr_out_fract): Make register numbers that 39186 might be outside of source operand signed. 39187 391882013-01-24 Uros Bizjak <ubizjak@gmail.com> 39189 39190 * config/i386/constraints.md (Yf): New constraint. 39191 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead 39192 of f constraint to conditionaly disable x87 register preferences. 39193 (*movdf_internal): Ditto. 39194 (*movsf_internal): Ditto. 39195 391962013-01-24 Steven Bosscher <steven@gcc.gnu.org> 39197 39198 PR inline-asm/55934 39199 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms 39200 that have operands with impossible constraints. 39201 Add a FIXME for a speed-up opportunity. 39202 * lra-constraints.c (process_alt_operands): Verify that a class 39203 selected from constraints on asms is valid for the operand mode. 39204 (curr_insn_transform): Remove incorrect comment. 39205 392062013-01-23 David Edelsohn <dje.gcc@gmail.com> 39207 39208 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that 39209 TOC operand is a valid symbol ref in the constant pool. 39210 392112013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com> 39212 39213 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS 39214 392152013-01-23 Georg-Johann Lay <avr@gjlay.de> 39216 39217 PR target/54222 39218 * config/avr/stdfix.h: New file. 39219 * t-avr (stdfix-gcc.h): New rule to build it. 39220 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h. 39221 392222013-01-23 Kostya Serebryany <kcc@google.com> 39223 39224 * config/darwin.h: remove dependency on 39225 CoreFoundation (asan on Mac OS). 39226 392272013-01-23 Jakub Jelinek <jakub@redhat.com> 39228 39229 PR target/49069 39230 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand 39231 instead of cmpdi_operand for first comparison operand. 39232 Don't assert that comparison operands aren't both constants. 39233 392342013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com> 39235 39236 * doc/install.texi (Downloading the Source): Update references to 39237 downloading separate components. 39238 392392013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com> 39240 39241 * doc/extend.texi (__int128): Improve grammar. 39242 392432013-01-22 Uros Bizjak <ubizjak@gmail.com> 39244 39245 PR target/56028 39246 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF) 39247 alternative to (o,r). 39248 (*movdi_internal_rex64): Remove (!o,n) alternative. 39249 (DImode immediate->memory splitter): Remove. 39250 (DImode immediate->memory peephole2): Remove. 39251 (movtf): Enable for TARGET_64BIT || TARGET_SSE. 39252 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r) 39253 alternative to (!o,*r). 39254 (*movtf_internal_sse): New pattern. 39255 (*movxf_internal_rex64): New pattern. 39256 (*movxf_internal): Disable for TARGET_64BIT. 39257 (*movdf_internal_rex64): Remove (!o,F) alternative. 39258 392592013-01-22 Jakub Jelinek <jakub@redhat.com> 39260 39261 PR middle-end/56074 39262 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc) 39263 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION. 39264 * tree-vect-loop-manip.c (find_loop_location): Also ignore 39265 stmt locations where LOCATION_LOCUS of the stmt location is 39266 UNKNOWN_LOCATION or BUILTINS_LOCATION. 39267 39268 PR target/55686 39269 * config/i386/i386.md (UNSPEC_STOS): New. 39270 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1, 39271 *strsetqi_1): Add UNSPEC_STOS. 39272 392732013-01-22 Paolo Carlini <paolo.carlini@oracle.com> 39274 39275 PR c++/56067 39276 * doc/invoke.texi: Remove left over -Wsynth example. 39277 392782013-01-21 Jakub Jelinek <jakub@redhat.com> 39279 39280 PR tree-optimization/56051 39281 * fold-const.c (fold_binary_loc): Don't fold 39282 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either 39283 a narrowing conversion, or widening conversion from signed 39284 to unsigned. 39285 392862013-01-21 Uros Bizjak <ubizjak@gmail.com> 39287 39288 PR rtl-optimization/56023 39289 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions, 39290 dependent on debug instruction. 39291 392922013-01-21 Martin Jambor <mjambor@suse.cz> 39293 39294 PR middle-end/56022 39295 * function.c (allocate_struct_function): Call 39296 invoke_set_current_function_hook earlier. 39297 392982013-01-21 Jakub Jelinek <jakub@redhat.com> 39299 39300 * reload1.c (init_reload): Only initialize reload_obstack 39301 during the first call. 39302 393032013-01-21 Marek Polacek <polacek@redhat.com> 39304 39305 * cfgloop.c (verify_loop_structure): Fix up grammar. 39306 393072013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com> 39308 39309 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift, 39310 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift. 39311 393122013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 39313 39314 PR target/56058 39315 * config/arm/marvell-pj4.md: Update copyright year. 39316 Fix up use of alu to alu_reg and simple_alu_imm. 39317 393182013-01-21 Uros Bizjak <ubizjak@gmail.com> 39319 39320 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA. 39321 393222013-01-20 Vladimir Makarov <vmakarov@redhat.com> 39323 39324 PR target/55433 39325 * lra-constraints.c (curr_insn_transform): Don't reuse original 39326 insn for secondary memory move when memory mode should be different. 39327 393282013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 39329 39330 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi, 39331 atomic_storedi_1): New patterns. 39332 393332013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com> 39334 39335 btver2 pipeline descriptions. 39336 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline 39337 descriptions. 39338 * config/i386/i386.md (btver2_decode): New type attributes. 39339 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New 39340 type attributes. 39341 * config/i386/btver2.md: New file describing btver2 pipelines. 39342 393432013-01-19 Andrew Pinski <apinski@cavium.com> 39344 39345 PR tree-optimization/52631 39346 * tree-ssa-sccvn (visit_use): Before looking up the original 39347 statement, try looking up the simplified expression. 39348 393492013-01-19 Anthony Green <green@moxielogic.com> 39350 39351 * config/moxie/moxie.c (moxie_expand_prologue): Set 39352 current_function_static_stack_size. 39353 393542013-01-18 Jakub Jelinek <jakub@redhat.com> 39355 39356 PR tree-optimization/56029 39357 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set 39358 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION. 39359 393602013-01-18 Sharad Singhai <singhai@google.com> 39361 39362 PR tree-optimization/55995 39363 * dumpfile.c (dump_loc): Print location only if available. 39364 * tree-vectorizer.c (increase_alignment): Intialize vect_location. 39365 393662013-01-18 Vladimir Makarov <vmakarov@redhat.com> 39367 39368 PR target/55433 39369 * lra-constraints.c (curr_insn_transform): Reuse original insn for 39370 secondary memory move. 39371 (inherit_reload_reg): Use rclass instead of cl for 39372 check_secondary_memory_needed_p. 39373 393742013-01-18 Jakub Jelinek <jakub@redhat.com> 39375 39376 PR middle-end/56015 39377 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle 39378 the case where writing real complex part of target modifies op1. 39379 393802013-01-18 James Greenhalgh <james.greenhalgh@arm.com> 39381 39382 * config/aarch64/aarch64-simd.md 39383 (aarch64_vcond_internal<mode>): Handle unordered cases. 39384 * config/aarch64/iterators.md (v_cmp_result): New. 39385 393862013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com> 39387 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 39388 39389 * config/arm/marvell-pj4.md: New file. 39390 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4. 39391 * config/arm/arm.md (generic_sched): Add marvell_pj4. 39392 (generic_vfp): Likewise. 39393 * config/arm/arm-cores.def: Add marvell-pj4. 39394 * config/arm/arm-tune.md: Regenerate. 39395 * config/arm/arm-tables.opt: Regenerate. 39396 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4. 39397 * doc/invoke.texi: Document marvell-pj4. 39398 393992013-01-18 Tejas Belagod <tejas.belagod@arm.com> 39400 39401 * config/aarch64/arm_neon.h: Map scalar types to standard types. 39402 394032013-01-18 Alexandre Oliva <aoliva@redhat.com> 39404 39405 PR debug/54114 39406 PR debug/54402 39407 PR debug/49888 39408 * var-tracking.c (negative_power_of_two_p): New. 39409 (global_get_addr_cache, local_get_addr_cache): New. 39410 (get_addr_from_global_cache, get_addr_from_local_cache): New. 39411 (vt_canonicalize_addr): Rewrite using the above. Adjust the 39412 heading comment. 39413 (vt_stack_offset_p): Remove. 39414 (vt_canon_true_dep): Always canonicalize loc's address. 39415 (clobber_overlapping_mems): Make sure we have a MEM. 39416 (local_get_addr_clear_given_value): New. 39417 (val_reset): Clear local cached entries. 39418 (compute_bb_dataflow): Create and release the local cache. 39419 Disable duplicate MEMs clobbering. 39420 (emit_notes_in_bb): Clobber MEMs likewise. 39421 (vt_emit_notes): Create and release the local cache. 39422 (vt_initialize, vt_finalize): Create and release the global 39423 cache, respectively. 39424 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs. 39425 394262013-01-18 Alexandre Oliva <aoliva@redhat.com> 39427 39428 PR libmudflap/53359 39429 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls 39430 not found in the symtab. 39431 394322013-01-18 Alexandre Oliva <aoliva@redhat.com> 39433 39434 PR debug/56006 39435 PR rtl-optimization/55547 39436 PR rtl-optimization/53827 39437 PR debug/53671 39438 PR debug/49888 39439 * alias.c (offset_overlap_p): New, factored out of... 39440 (memrefs_conflict_p): ... this. Use absolute sizes. Retain 39441 the conservative special case for symbolic constants. Don't 39442 adjust zero sizes on alignment. 39443 394442013-01-18 Bernd Schmidt <bernds@codesourcery.com> 39445 39446 PR rtl-optimization/52573 39447 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a 39448 REG_UNUSED for the same register. 39449 394502013-01-17 Richard Biener <rguenther@suse.de> 39451 Marek Polacek <polacek@redhat.com> 39452 39453 PR rtl-optimization/55833 39454 * loop-unswitch.c (unswitch_loops): Move loop verification... 39455 (unswitch_single_loop): ...here. Call mark_irreducible_loops. 39456 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter. 39457 Set it to true when we're removing a loop from hierarchy tree in 39458 an irreducible region. 39459 (fix_bb_placements): Adjust caller. 39460 (fix_loop_placements): Likewise. 39461 394622013-01-17 Georg-Johann Lay <avr@gjlay.de> 39463 39464 * config/avr/builtins.def (DEF_BUILTIN): Factor out 39465 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier. 39466 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'. 39467 Remove ID. Adjust comments. 39468 * config/avr/avr-c.c (avr_builtin_name): Remove. 39469 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop. 39470 * config/avr/avr.c (avr_tolower): New static function. 39471 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'. 39472 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it. 39473 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for 39474 default expansion. 39475 394762013-01-17 Jan Hubicka <jh@suse.cz> 39477 39478 PR tree-optimization/55273 39479 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case. 39480 394812013-01-17 Uros Bizjak <ubizjak@gmail.com> 39482 39483 PR target/55981 39484 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode 39485 store through atomic_store<mode>_1. 39486 (atomic_store<mode>_1): Macroize insn using SWI mode iterator. 39487 394882013-01-17 Martin Jambor <mjambor@suse.cz> 39489 39490 PR tree-optimizations/55264 39491 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true 39492 for virtual methods. 39493 * ipa.c (symtab_remove_unreachable_nodes): Never return true for 39494 virtual methods before inlining is over. 39495 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for 39496 virtual functions. 39497 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as 39498 non-virtual. 39499 395002013-01-16 Vladimir Makarov <vmakarov@redhat.com> 39501 39502 PR rtl-optimization/56005 39503 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding 39504 pending reads for prefetch. 39505 395062013-01-16 Ian Bolton <ian.bolton@arm.com> 39507 39508 * config/aarch64/aarch64.md 39509 (*cstoresi_neg_uxtw): New pattern. 39510 (*cmovsi_insn_uxtw): New pattern. 39511 (*<optab>si3_uxtw): New pattern. 39512 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern. 39513 (*<optab>si3_insn_uxtw): New pattern. 39514 (*bswapsi2_uxtw): New pattern. 39515 395162013-01-16 Richard Biener <rguenther@suse.de> 39517 39518 * tree-inline.c (tree_function_versioning): Remove set but 39519 never used variable. 39520 395212013-01-16 Richard Biener <rguenther@suse.de> 39522 39523 PR tree-optimization/55964 39524 * tree-flow.h (rename_variables_in_loop): Remove. 39525 (rename_variables_in_bb): Likewise. 39526 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove. 39527 (copy_loop_before): Adjust and delete update-ssa status. 39528 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static. 39529 (rename_variables_in_bb): Likewise. Properly walk over predecessors. 39530 (rename_variables_in_loop): Remove. 39531 (slpeel_update_phis_for_duplicate_loop): Likewise. 39532 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops, 39533 use available cfg machinery instead of duplicating it. 39534 Update PHI nodes and perform poor-mans SSA update here. 39535 (slpeel_tree_peel_loop_to_edge): Adjust. 39536 395372013-01-16 Richard Biener <rguenther@suse.de> 39538 39539 PR tree-optimization/54767 39540 PR tree-optimization/53465 39541 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465. 39542 (vrp_visit_phi_node): For PHI arguments coming via backedges 39543 drop all symbolical range information. 39544 (execute_vrp): Compute backedges. 39545 395462013-01-16 Richard Biener <rguenther@suse.de> 39547 39548 * doc/install.texi: Update CLooG and ISL requirements to 39549 0.18.0 and 0.11.1. 39550 395512013-01-16 Christian Bruel <christian.bruel@st.com> 39552 39553 PR target/55301 39554 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol. 39555 (broken_move): Handle UNSPECV_SP_SWITCH_B. 39556 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG). 39557 395582013-01-16 DJ Delorie <dj@redhat.com> 39559 39560 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New. 39561 (UNSPECV_SP_SWITCH_E): New. 39562 (sp_switch_1): Change to an unspec. 39563 (sp_switch_2): Change to an unspec. Don't use post-inc when we 39564 replace $r15. 39565 395662013-01-16 Uros Bizjak <ubizjak@gmail.com> 39567 39568 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument 39569 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types. 39570 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto. 39571 (expand_mem_thread_fence): Ditto. 39572 (expand_mem_signal_fence): Ditto. 39573 (expand_atomic_load): Ditto. 39574 (expand_atomic_store): Ditto. 39575 395762013-01-16 Alexandre Oliva <aoliva@redhat.com> 39577 39578 PR rtl-optimization/55547 39579 PR rtl-optimization/53827 39580 PR debug/53671 39581 PR debug/49888 39582 * alias.c (memrefs_conflict_p): Set sizes to negative after 39583 AND adjustments. 39584 395852013-01-15 Jakub Jelinek <jakub@redhat.com> 39586 39587 PR target/55940 39588 * function.c (thread_prologue_and_epilogue_insns): Always 39589 add crtl->drap_reg to set_up_by_prologue.set, even if 39590 stack_realign_drap is false. 39591 395922013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de> 39593 39594 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, 39595 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3, 39596 *call): Fix indention. 39597 395982013-01-15 Tom de Vries <tom@codesourcery.com> 39599 39600 PR target/55876 39601 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG. 39602 Update comment. 39603 396042013-01-15 Vladimir Makarov <vmakarov@redhat.com> 39605 39606 PR rtl-optimization/55153 39607 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch. 39608 396092013-01-15 Martin Jambor <mjambor@suse.cz> 39610 39611 PR tree-optimization/55920 39612 * tree-sra.c (analyze_access_subtree): Do not mark non-removable 39613 accesses as grp_to_be_debug_replaced. 39614 396152013-01-15 Jakub Jelinek <jakub@redhat.com> 39616 39617 PR tree-optimization/55920 39618 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced 39619 there is non-useless type conversion needed from debug rhs to lhs, 39620 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR. 39621 396222013-01-15 Joseph Myers <joseph@codesourcery.com> 39623 Mikael Pettersson <mikpe@it.uu.se> 39624 39625 PR target/43961 39626 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for 39627 Thumb. 39628 (ASM_OUTPUT_CASE_LABEL): Remove. 39629 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty. 39630 * final.c (shorten_branches): Update alignment of labels before 39631 jump tables if CASE_VECTOR_SHORTEN_MODE. 39632 396332013-01-15 Richard Biener <rguenther@suse.de> 39634 39635 PR bootstrap/55961 39636 * system.h: Do not include gmp.h for building host tools. 39637 396382013-01-15 Richard Biener <rguenther@suse.de> 39639 39640 PR middle-end/55882 39641 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly 39642 account for bitpos when computing alignment. 39643 396442013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com> 39645 39646 * config/i386/i386-c.c (ix86_target_macros_internal): New case. 39647 (ix86_target_macros_internal): Likewise. 39648 39649 * config/i386/i386.c (m_CORE2I7): Removed. 39650 (m_CORE_HASWELL): New macro. 39651 (m_CORE_ALL): Likewise. 39652 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL. 39653 (initial_ix86_arch_features): Likewise. 39654 (processor_target_table): Initializations for Core avx2. 39655 (cpu_names): New names "core-avx2". 39656 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by 39657 PROCESSOR_CORE_HASWELL. 39658 (ix86_issue_rate): New case. 39659 (ia32_multipass_dfa_lookahead): Likewise. 39660 (ix86_sched_init_global): Likewise. 39661 39662 * config/i386/i386.h (TARGET_HASWELL): New macro. 39663 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell. 39664 (processor_type): New PROCESSOR_HASWELL. 39665 396662013-01-15 Jakub Jelinek <jakub@redhat.com> 39667 39668 PR tree-optimization/55955 39669 * tree-vect-loop.c (vectorizable_reduction): Give up early on 39670 *SHIFT_EXPR and *ROTATE_EXPR codes. 39671 39672 PR tree-optimization/48766 39673 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for 39674 -ftrapv disable -fwrapv. 39675 396762013-01-14 Georg-Johann Lay <avr@gjlay.de> 39677 39678 PR target/55974 39679 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH 39680 etc. to 1 and not to __flash. 39681 Use LL suffix for __INT24_MAX__ with -mint8. 39682 Use ULL suffix for __UINT24_MAX__ with -mint8. 39683 396842013-01-14 Georg-Johann Lay <avr@gjlay.de> 39685 39686 * config/avr/avr-arch.h 39687 (struct base_arch_s): Use typedef avr_arch_t instead. 39688 (struct arch_info_s): Use typedef avr_arch_info_t instead. 39689 (struct mcu_type_s): Use typedef avr_mcu_t instead. 39690 * config/avr/avr.c: Same. 39691 * config/avr/avr-devices.c: Same. 39692 * config/avr/driver-avr.c: Same. 39693 * config/avr/gen-avr-mmcu-texi.c: Same. 39694 * config/avr/avr-mcus.def: Adjust comment. 39695 396962013-01-14 Tejas Belagod <tejas.belagod@arm.com> 39697 39698 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New. 39699 * config/aarch64/iterators.md (VALLDI): New. 39700 397012013-01-14 Uros Bizjak <ubizjak@gmail.com> 39702 Andi Kleen <ak@linux.intel.com> 39703 39704 PR target/55948 39705 * config/i386/sync.md (atomic_store<mode>_1): New pattern. 39706 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE 39707 memmodel flag. 39708 397092013-01-14 Georg-Johann Lay <avr@gjlay.de> 39710 39711 * config/avr/avr-stdint.h: Remove trailing blanks. 39712 * config/avr/avr-log.h: Same. 39713 * config/avr/avr-arch.h: Same. 39714 * config/avr/avr-devices.c: Same. 39715 * config/avr/avr-dimode.md: Same. 39716 * config/avr/predicates.md: Same. 39717 * config/avr/avr-c.c: Same. And fix typo. 39718 39719 * config/avr/avr-protos.h: Same. And: 39720 (function_arg_regno_p): Rename to avr_function_arg_regno_p. 39721 (init_cumulative_args): Rename to avr_init_cumulative_args. 39722 (expand_prologue): Rename to avr_expand_prologue. 39723 (expand_epilogue): Rename to avr_expand_epilogue. 39724 (adjust_insn_length): Rename to avr_adjust_insn_length. 39725 (notice_update_cc): Rename to avr_notice_update_cc. 39726 (final_prescan_insn): Rename to avr_final_prescan_insn. 39727 * config/avr/avr.c: Same. 39728 * config/avr/avr.h: Same. 39729 * config/avr/avr.md: Remove trailing blanks. 39730 (prologue): Use avr_expand_prologue. 39731 (epilogue, sibcall_epilogue): Use avr_expand_epilogue. 39732 397332013-01-14 Richard Biener <rguenther@suse.de> 39734 39735 * tree-cfg.c (verify_expr_location, verify_expr_location_1, 39736 verify_location, collect_subblocks): New functions. 39737 (verify_gimple_in_cfg): Verify that locations only reference 39738 BLOCKs in the functions BLOCK tree. 39739 397402013-01-14 Richard Biener <rguenther@suse.de> 39741 39742 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated 39743 PHI argument. 39744 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly 39745 unshare reference. 39746 (insert_out_of_ssa_copy_on_edge): Likewise. 39747 (rewrite_close_phi_out_of_ssa): Likewise. 39748 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare 39749 debug expressions. 39750 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare 39751 propagated constants. 39752 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs 39753 can not be shared. 39754 397552013-01-14 Georg-Johann Lay <avr@gjlay.de> 39756 39757 * config/avr/avr-modes.def: Add GPL copyright notice. 39758 397592013-01-13 Uros Bizjak <ubizjak@gmail.com> 39760 39761 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with 39762 MEMMODEL_MASK to determine memory model. 39763 (atomic_store<mode>): Ditto from operands[2]. 39764 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool. 39765 397662013-01-13 Jakub Jelinek <jakub@redhat.com> 39767 39768 PR fortran/55935 39769 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr. 39770 (fold_gimple_assign): Don't call unshare_expr here. 39771 (fold_ctor_reference): Call unshare_expr. 39772 397732013-01-13 Terry Guo <terry.guo@arm.com> 39774 39775 * Makefile.in (s-mlib): New argument MULTILIB_REUSE. 39776 * doc/fragments.texi: Document MULTILIB_REUSE. 39777 * gcc.c (multilib_reuse): New internal spec. 39778 (set_multilib_dir): Also search multilib from multilib_reuse. 39779 * genmultilib (tmpmultilib3): Refactor code. 39780 (tmpmultilib4): Ditto. 39781 (multilib_reuse): New multilib argument. 39782 397832013-01-13 Richard Sandiford <rdsandiford@googlemail.com> 39784 39785 * Makefile.in: Update copyright. 39786 397872013-01-12 Tom de Vries <tom@codesourcery.com> 39788 39789 PR middle-end/55890 39790 * calls.c (expand_call): Check if arg_nr is valid. 39791 397922013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com> 39793 39794 * doc/extend.texi (X86 Built-in Functions): Add whitespace in 39795 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256 39796 documentation. Add missing '__' in front of 39797 __builtin_ia32_packssdw256. 39798 397992013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 39800 39801 PR target/55719 39802 * config/s390/s390.c (s390_preferred_reload_class): Do not return 39803 NO_REGS for larl operands. 39804 (s390_reload_larl_operand): Use s390_load_address instead of 39805 emit_move_insn. 39806 398072013-01-11 Richard Biener <rguenther@suse.de> 39808 39809 * tree-cfg.c (verify_node_sharing_1): Split out from ... 39810 (verify_node_sharing): ... here. 39811 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree. 39812 398132013-01-11 Eric Botcazou <ebotcazou@adacore.com> 39814 39815 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled. 39816 Substitute TREECHECKING. 39817 * configure: Regenerate. 39818 * Makefile.in (TREECHECKING): New. 39819 398202013-01-11 Richard Guenther <rguenther@suse.de> 39821 39822 PR tree-optimization/44061 39823 * tree-vrp.c (extract_range_basic): Compute zero as 39824 value-range for __builtin_constant_p of function parameters. 39825 398262013-01-10 Richard Sandiford <rdsandiford@googlemail.com> 39827 39828 Update copyright years. 39829 398302013-01-10 Vladimir Makarov <vmakarov@redhat.com> 39831 39832 PR rtl-optimization/55672 39833 * lra-eliminations.c (mark_not_eliminable): Permit addition with 39834 const to be eliminable. 39835 398362013-01-10 David Edelsohn <dje.gcc@gmail.com> 39837 39838 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix. 39839 * configure: Regenerate. 39840 398412013-01-10 Richard Biener <rguenther@suse.de> 39842 39843 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes. 39844 398452013-01-10 Richard Biener <rguenther@suse.de> 39846 39847 PR bootstrap/55792 39848 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set 39849 locations for virtual PHI arguments. 39850 (rewrite_update_phi_arguments): Likewise. 39851 398522013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com> 39853 39854 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi 39855 on to assembler. 39856 398572013-01-10 Jakub Jelinek <jakub@redhat.com> 39858 39859 PR tree-optimization/55921 39860 * tree-complex.c (expand_complex_asm): New function. 39861 (expand_complex_operations_1): Call it for GIMPLE_ASM. 39862 398632013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 39864 39865 PR target/55718 39866 * config/s390/s390.c (s390_symref_operand_p) 39867 (s390_loadrelative_operand_p): Merge the two functions. 39868 (s390_check_qrst_address, print_operand_address): Add parameters 39869 to s390_loadrelative_operand_p invokation. 39870 (s390_check_symref_alignment): Use s390_loadrelative_operand_p. 39871 (s390_reload_larl_operand, s390_secondary_reload): Use 39872 s390_loadrelative_operand_p instead of s390_symref_operand_p. 39873 (legitimize_pic_address): Handle @GOTENT and @PLT + addend. 39874 398752013-01-09 Mike Stump <mikestump@comcast.net> 39876 39877 * dse.c (record_store): Remove unnecessary assert. 39878 398792013-01-09 Jan Hubicka <jh@suse.cz> 39880 39881 PR tree-optimization/55569 39882 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type. 39883 * cfgloop.h (scale_loop_profile): Likewise. 39884 398852013-01-09 Jan Hubicka <jh@suse.cz> 39886 39887 PR lto/45375 39888 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual 39889 functions. 39890 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data. 39891 398922013-01-09 Richard Sandiford <rdsandiford@googlemail.com> 39893 39894 PR middle-end/55114 39895 * expr.h (maybe_emit_group_store): Declare. 39896 * expr.c (maybe_emit_group_store): New function. 39897 * builtins.c (expand_builtin_int_roundingfn): Call it. 39898 (expand_builtin_int_roundingfn_2): Likewise. 39899 399002013-01-09 Vladimir Makarov <vmakarov@redhat.com> 39901 39902 PR rtl-optimization/55829 39903 * lra-constraints.c (match_reload): Add code for absent output. 39904 (curr_insn_transform): Add code for reloads of matched inputs 39905 without output. 39906 399072013-01-09 Uros Bizjak <ubizjak@gmail.com> 39908 39909 * config/i386/sse.md (*vec_interleave_highv2df): Change mode 39910 attribute of movddup insn to DF. 39911 (*vec_interleave_lowv2df): Ditto. 39912 (vec_dupv2df): Ditto. 39913 399142013-01-09 Jan Hubicka <jh@suse.cz> 39915 39916 PR tree-optimiation/55875 39917 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add 39918 EVERY_ITERATION parameter. 39919 (number_of_iterations_exit): Check if exit is executed every iteration. 39920 (idx_infer_loop_bounds): Similarly here. 39921 (n_of_executions_at_most): Simplify 39922 to only test for cases where statement is dominated by the 39923 particular bound; handle correctly the "postdominance" test. 39924 (scev_probably_wraps_p): Use max loop iterations info 39925 as a global bound first. 39926 399272013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com> 39928 Nick Clifton <nickc@redhat.com> 39929 39930 * config/v850/v850.md (cbranchsf4): New pattern. 39931 (cstoresf4): New pattern. 39932 (cbranchdf4): New pattern. 39933 (cstoredf4): New pattern. 39934 (movsicc): Disallow floating point comparisons. 39935 (cmpsf_le_insn): Fix order of operators. 39936 (cmpsf_lt_insn): Likewise. 39937 (cmpsf_eq_insn): Likewise. 39938 (cmpdf_le_insn): Likewise. 39939 (cmpdf_lt_insn): Likewise. 39940 (cmpdf_eq_insn): Likewise. 39941 (cmpsf_ge_insn): Use LE comparison. 39942 (cmpdf_ge_insn): Likewise. 39943 (cmpsf_gt_insn): Use LT comparison. 39944 (cmpdf_gt_insn): Likewise. 39945 (cmpsf_ne_insn): Delete pattern. 39946 (cmpdf_ne_insn): Delete pattern. 39947 * config/v850/v850.c (v850_gen_float_compare): Use 39948 gen_cmpdf_eq_insn for NE comparison. 39949 (v850_float_z_comparison_operator) 39950 (v850_float_nz_comparison_operator): Move from here ... 39951 * config/v850/predicates.md: ... to here. Move GT and GE 39952 comparisons into v850_float_z_comparison_operator. 39953 * config/v850/v850-protos.h (v850_float_z_comparison_operator): 39954 Delete prototype. 39955 (v850_float_nz_comparison_operator): Likewise. 39956 399572013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 39958 39959 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv 39960 with calls to gen_insvsi/gen_insvdi. 39961 399622013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com> 39963 39964 * config/i386/i386.c (initial_ix86_tune_features): Set up 39965 X86_TUNE_AVX128_OPTIMAL for m_BTVER2. 39966 399672013-01-09 Steven Bosscher <steven@gcc.gnu.org> 39968 Jakub Jelinek <jakub@redhat.com> 39969 39970 PR tree-optimization/48189 39971 * predict.c (predict_loops): If max is 0, don't call compare_tree_int. 39972 If nitercst is 0, don't predict the exit edge. 39973 399742013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> 39975 39976 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r 39977 in asm_fprintf with reg_names. 39978 (aarch64_print_operand_address): Likewise. 39979 (aarch64_return_addr): Likewise. 39980 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove. 39981 399822013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 39983 39984 * config/pa/pa.h (VAL_U6_BITS_P): Define. 39985 (INT_U6_BITS): Likewise. 39986 * config/pa/predicates.md (uint6_operand): New predicate. 39987 (shift5_operand, shift6_operand): Likewise. 39988 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of 39989 arith32_operand. 39990 (lshrdi3): Use shift6_operand. 39991 (shrpsi4, shrpdi4): New insn patterns. 39992 (extzv): Delete expander. 39993 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand 39994 predicates in unamed zero extract patterns. Tighten common constraint. 39995 (extv): Delete expander. 39996 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand 39997 predicates in unamed sign extract patterns. Tighten common constraint. 39998 (insv): Delete expander. 39999 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand 40000 predicates in unamed insert patterns. Tighten common constraint. 40001 Change uint32_operand predicate to uint6_operand predicate in unamed 40002 DImode pattern to insert constant values of type 1...1xxxx. 40003 400042013-01-04 Jan Hubicka <jh@suse.cz> 40005 40006 PR tree-optimization/55823 40007 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering 40008 issue. 40009 400102013-01-08 Jakub Jelinek <jakub@redhat.com> 40011 Uros Bizjak <ubizjak@gmail.com> 40012 40013 PR rtl-optimization/55845 40014 * df-problems.c (can_move_insns_across): Stop scanning at 40015 volatile_insn_p source instruction or give up if 40016 across_from .. across_to range contains any volatile_insn_p 40017 instructions. 40018 400192013-01-08 Tejas Belagod <tejas.belagod@arm.com> 40020 40021 * config/aarch64/aarch64-simd.md (vec_init<mode>): New. 40022 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init): 40023 Declare. 40024 * config/aarch64/aarch64.c (aarch64_simd_dup_constant, 40025 aarch64_simd_make_constant, aarch64_expand_vector_init): New. 40026 400272013-01-08 Jakub Jelinek <jakub@redhat.com> 40028 40029 PR fortran/55341 40030 * asan.c (asan_clear_shadow): New function. 40031 (asan_emit_stack_protection): Use it. 40032 400332013-01-08 Tejas Belagod <tejas.belagod@arm.com> 40034 40035 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>, 40036 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand 40037 with tab instead of space. 40038 400392013-01-08 Nick Clifton <nickc@redhat.com> 40040 40041 * config/rl78/rl78.c (rl78_expand_prologue): Always select 40042 register bank 0 at the start of an interrupt handler. 40043 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and 40044 MDBH registers. 40045 400462013-01-08 James Greenhalgh <james.greenhalgh@arm.com> 40047 40048 * config/aarch64/aarch64-simd.md 40049 (aarch64_simd_bsl<mode>_internal): Add floating-point modes. 40050 (aarch64_simd_bsl): Likewise. 40051 (aarch64_vcond_internal<mode>): Likewise. 40052 (vcond<mode><mode>): Likewise. 40053 (aarch64_cm<cmp><mode>): Fix constraints, add new modes. 40054 * config/aarch64/iterators.md (V_cmp_result): Add V2DF. 40055 400562013-01-08 James Greenhalgh <james.greenhalgh@arm.com> 40057 40058 * config/aarch64/aarch64-builtins.c 40059 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf. 40060 400612013-01-08 Martin Jambor <mjambor@suse.cz> 40062 40063 PR debug/55579 40064 * tree-sra.c (analyze_access_subtree): Return true also after 40065 potentially creating a debug-only replacement. 40066 400672013-01-08 Jakub Jelinek <jakub@redhat.com> 40068 40069 PR middle-end/55890 40070 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p. 40071 40072 PR tree-optimization/54120 40073 * tree-vrp.c (range_fits_type_p): Don't allow 40074 src_precision < precision from signed vr to unsigned_p 40075 if vr->min or vr->max is negative. 40076 (simplify_float_conversion_using_ranges): Test can_float_p 40077 against CODE_FOR_nothing. 40078 400792013-01-08 Jakub Jelinek <jakub@redhat.com> 40080 Richard Biener <rguenther@suse.de> 40081 40082 PR middle-end/55851 40083 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P 40084 types instead of just INTEGER_TYPE types. 40085 400862013-01-07 Mark Kettenis <kettenis@openbsd.org> 40087 40088 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, 40089 TF_SIZE): Define. 40090 400912013-01-07 Steve Ellcey <sellcey@mips.com> 40092 40093 PR target/42661 40094 * config/mips/mips.opt: Change mad to mmad to match documentation. 40095 400962013-01-07 Georg-Johann Lay <avr@gjlay.de> 40097 40098 PR target/55897 40099 * doc/extend.texi (AVR Named Address Spaces): __memx goes into 40100 .progmemx.data now. 40101 401022013-01-07 Georg-Johann Lay <avr@gjlay.de> 40103 40104 PR target/55897 40105 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum. 40106 (avr_addrspace_t): Add .section_name field. 40107 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as 40108 array size. 40109 (avr_addrspace): Same. Initialize .section_name. Remove last 40110 NULL entry. Put __memx into .progmemx.data. 40111 (progmem_section_prefix): Remove. 40112 (avr_asm_init_sections): No need to initialize progmem_section. 40113 (avr_asm_named_section): Use avr_addrspace[].section_name to get 40114 section name prefix. 40115 (avr_asm_select_section): Ditto. And use get_unnamed_section to 40116 retrieve the progmem section. 40117 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop 40118 boundary to run over avr_addrspace[]. 40119 (avr_register_target_pragmas): Ditto. 40120 401212013-01-06 Jakub Jelinek <jakub@redhat.com> 40122 40123 * varasm.c (output_constant_def_contents): For asan_protect_global 40124 protected strings, adjust DECL_ALIGN if needed, before testing for 40125 anchored symbols. 40126 (place_block_symbol): Adjust size for asan protected STRING_CSTs if 40127 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected 40128 normal decls. 40129 (output_object_block): For asan protected decls, emit asan padding 40130 after their contents. 40131 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here. 40132 (asan_finish_file): Test it here instead. 40133 401342013-01-07 Nick Clifton <nickc@redhat.com> 40135 Matthias Klose <doko@debian.org> 40136 Doug Kwan <dougkwan@google.com> 40137 H.J. Lu <hongjiu.lu@intel.com> 40138 40139 PR driver/55470 40140 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold. 40141 40142 * common.opt: Add fuse-ld=bfd and fuse-ld=gold. 40143 40144 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2. 40145 40146 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold. 40147 40148 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold. 40149 401502013-01-07 Georg-Johann Lay <avr@gjlay.de> 40151 40152 PR target/54461 40153 * doc/install.texi (Cross-Compiler-Specific Options): Document 40154 --with-avrlibc. 40155 401562013-01-07 Tejas Belagod <tejas.belagod@arm.com> 40157 40158 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32, 40159 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64, 40160 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16, 40161 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32, 40162 vqmovun_high_s64): Fix source operand number and update copyright. 40163 401642013-01-07 Richard Biener <rguenther@suse.de> 40165 40166 PR middle-end/55890 40167 * gimple.h (gimple_call_builtin_p): New overload. 40168 * gimple.c (validate_call): New function. 40169 (gimple_call_builtin_p): Likewise. 40170 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): 40171 Use gimple_call_builtin_p. 40172 (find_func_clobbers): Likewise. 40173 * tree-ssa-strlen.c (adjust_last_stmt): Likewise. 40174 (strlen_optimize_stmt): Likewise. 40175 401762013-01-07 James Greenhalgh <james.greenhalgh@arm.com> 40177 40178 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const. 40179 (vld1q_dup_*): Likewise. 40180 (vld1_*): Likewise. 40181 (vld1q_*): Likewise. 40182 (vld1_lane_*): Likewise. 40183 (vld1q_lane_*): Likewise. 40184 401852013-01-07 Richard Biener <rguenther@suse.de> 40186 40187 * lto-streamer.h (LTO_minor_version): Bump to 2. 40188 401892013-01-07 James Greenhalgh <james.greenhalgh@arm.com> 40190 40191 * config/aarch64/aarch64-protos.h 40192 (aarch64_const_double_zero_rtx_p): Rename to... 40193 (aarch64_float_const_zero_rtx_p): ...this. 40194 (aarch64_float_const_representable_p): New. 40195 (aarch64_output_simd_mov_immediate): Likewise. 40196 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor 40197 move immediate case. 40198 * config/aarch64/aarch64.c 40199 (aarch64_const_double_zero_rtx_p): Rename to... 40200 (aarch64_float_const_zero_rtx_p): ...this. 40201 (aarch64_print_operand): Allow printing of new constants. 40202 (aarch64_valid_floating_const): New. 40203 (aarch64_legitimate_constant_p): Check for valid floating-point 40204 constants. 40205 (aarch64_simd_valid_immediate): Likewise. 40206 (aarch64_vect_float_const_representable_p): New. 40207 (aarch64_float_const_representable_p): Likewise. 40208 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0. 40209 (aarch64_output_simd_mov_immediate): New. 40210 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative. 40211 (*movdf_aarch64): Likewise. 40212 * config/aarch64/constraints.md (Ufc): New. 40213 (Y): call aarch64_float_const_zero_rtx. 40214 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New. 40215 402162013-01-07 Richard Biener <rguenther@suse.de> 40217 40218 PR tree-optimization/55888 40219 PR tree-optimization/55862 40220 * tree-ssa-pre.c (phi_translate_1): Revert previous change. 40221 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT, 40222 not if it is contained therein. 40223 402242013-01-07 Georg-Johann Lay <avr@gjlay.de> 40225 40226 * config/avr/t-avr: Typo. 40227 402282013-01-07 Georg-Johann Lay <avr@gjlay.de> 40229 40230 PR55243 40231 * config/avr/t-avr: Don't automatically rebuild 40232 $(srcdir)/config/avr/t-multilib 40233 $(srcdir)/config/avr/avr-tables.opt 40234 $(srcdir)/doc/avr-mmcu.texi 40235 (avr-mcus): New phony target to build them on request. 40236 (s-avr-mlib, s-avr-mmcu-texi): Remove. 40237 * avr/avr-mcus.def: Adjust comments. 40238 402392013-01-07 Uros Bizjak <ubizjak@gmail.com> 40240 40241 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove. 40242 402432013-01-06 Richard Sandiford <rdsandiford@googlemail.com> 40244 40245 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder. 40246 402472013-01-06 Richard Sandiford <rdsandiford@googlemail.com> 40248 40249 * config/tilepro/gen-mul-tables.cc: Put copyright on one line. 40250 402512013-01-05 David Edelsohn <dje.gcc@gmail.com> 40252 40253 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling 40254 to generate profiling. 40255 * config/rs6000/aix64.h (LIB_SPEC): Same. 40256 402572013-01-04 Andrew Pinski <apinski@cavium.com> 40258 40259 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs): 40260 New function. 40261 (TARGET_FIXED_CONDITION_CODE_REGS): Define. 40262 402632013-01-04 Uros Bizjak <ubizjak@gmail.com> 40264 40265 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode 40266 unconditionally. 40267 (ix86_expand_move): Ditto. 40268 (ix86_zero_extend_to_Pmode): Ditto. 40269 (ix86_expand_call): Ditto. 40270 (ix86_expand_special_args_builtin): Ditto. 40271 (ix86_expand_builtin): Ditto. 40272 402732013-01-04 Richard Biener <rguenther@suse.de> 40274 40275 PR tree-optimization/55862 40276 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after 40277 translating them through PHI nodes. 40278 402792013-01-04 Martin Jambor <mjambor@suse.cz> 40280 40281 PR tree-optimization/55755 40282 * tree-sra.c (sra_modify_assign): Do not check that an access has no 40283 children when trying to avoid producing a VIEW_CONVERT_EXPR. 40284 402852013-01-04 Marek Polacek <polacek@redhat.com> 40286 40287 PR middle-end/55859 40288 * opts.c (default_options_optimization): Clarify error message. 40289 402902013-01-04 Richard Biener <rguenther@suse.de> 40291 40292 PR middle-end/55863 40293 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for 40294 reassociation. 40295 402962013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 40297 40298 PR target/53789 40299 * config/pa/pa.md (movsi): Revert previous change. 40300 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol 40301 references. 40302 403032013-01-03 Richard Henderson <rth@redhat.com> 40304 40305 * config/i386/i386.c (ix86_expand_move): Always assign to op1 40306 after eliminating TLS symbols. 40307 403082013-01-03 Marc Glisse <marc.glisse@inria.fr> 40309 40310 PR bootstrap/50167 40311 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf. 40312 * graphite-poly.c (debug_gmp_value): Likewise. 40313 403142013-01-03 Uros Bizjak <ubizjak@gmail.com> 40315 40316 PR target/55712 40317 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on 40318 selected code model, define __code_mode_small__, __code_model_medium__, 40319 __code_model_large__, __code_model_32__ or __code_model_kernel__. 40320 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix 40321 xchg temporary register with %k. Declare temporary register as 40322 early clobbered. 40323 [__x86_64__]: For medium and large code models, preserve %rbx register. 40324 403252013-01-03 Richard Biener <rguenther@suse.de> 40326 40327 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing. 40328 (dump_subscript): Adjust. 40329 (finalize_ddr_dependent): Do not dump redundant info. 40330 (analyze_siv_subscript): Adjust. 40331 (subscript_dependence_tester): Likewise. 40332 (compute_affine_dependence): Likewise. 40333 403342013-01-03 Richard Biener <rguenther@suse.de> 40335 40336 Revert 40337 2013-01-03 Richard Biener <rguenther@suse.de> 40338 40339 PR tree-optimization/55857 40340 * tree-vect-stmts.c (vectorizable_load): Do not setup 40341 re-alignment for invariant loads. 40342 40343 2013-01-02 Richard Biener <rguenther@suse.de> 40344 40345 * tree-vect-stmts.c (vectorizable_load): When vectorizing an 40346 invariant load do not generate a vector load from the scalar location. 40347 403482013-01-03 Richard Biener <rguenther@suse.de> 40349 40350 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason 40351 for not vectorizing. 40352 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do 40353 not build INDIRECT_REFs, call get_name once only. 40354 (vect_create_data_ref_ptr): Likewise. Dump base object kind 40355 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS. 40356 403572013-01-03 Richard Biener <rguenther@suse.de> 40358 40359 PR tree-optimization/55857 40360 * tree-vect-stmts.c (vectorizable_load): Do not setup 40361 re-alignment for invariant loads. 40362 403632013-01-03 Richard Biener <rguenther@suse.de> 40364 40365 PR lto/55848 40366 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always 40367 prefer a built-in decl. 40368 403692013-01-03 Jakub Jelinek <jakub@redhat.com> 40370 40371 * gcc.c (process_command): Update copyright notice dates. 40372 * gcov.c (print_version): Likewise. 40373 * gcov-dump.c (print_version): Likewise. 40374 40375 PR rtl-optimization/55838 40376 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on 40377 iv0.step, iv1.step and step. 40378 403792013-01-03 Jakub Jelinek <jakub@redhat.com> 40380 Marc Glisse <marc.glisse@inria.fr> 40381 40382 PR tree-optimization/55832 40383 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and 40384 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of 40385 integer_{one,zero}_node. 40386 403872013-01-03 Jakub Jelinek <jakub@redhat.com> 40388 40389 PR debug/54402 40390 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param. 40391 * var-tracking.c (reverse_op): Don't add reverse ops to 40392 VALUEs that have already 40393 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list. 40394 403952013-01-02 Gerald Pfeifer <gerald@pfeifer.com> 40396 40397 * doc/contrib.texi: Note years as release manager for Mark Mitchell. 40398 403992013-01-02 Teresa Johnson <tejohnson@google.com> 40400 40401 * dumpfile.c (dump_loc): Print filename with location. 40402 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use 40403 new location_t parameter to emit complete unroll message with 40404 new dump framework. 40405 (canonicalize_loop_induction_variables): Compute loops location 40406 and pass to try_unroll_loop_completely. 40407 * loop-unroll.c (report_unroll_peel): New function. 40408 (peel_loops_completely): Use new dump format with location 40409 for main dumpfile message, and invoke report_unroll_peel on success. 40410 (decide_unrolling_and_peeling): Ditto. 40411 (decide_peel_once_rolling): Remove old dumpfile message subsumed 40412 by report_unroll_peel. 40413 (decide_peel_completely): Ditto. 40414 (decide_unroll_constant_iterations): Ditto. 40415 (decide_unroll_runtime_iterations): Ditto. 40416 (decide_peel_simple): Ditto. 40417 (decide_unroll_stupid): Ditto. 40418 * cfgloop.c (get_loop_location): New function. 40419 * cfgloop.h (get_loop_location): Declare. 40420 404212013-01-02 Sriraman Tallam <tmsriram@google.com> 40422 40423 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for 40424 NULL. 40425 404262013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 40427 40428 PR middle-end/55198 40429 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non 40430 BLKmode objects when EXPAND_MEMORY is specified. 40431 404322013-01-02 Sriraman Tallam <tmsriram@google.com> 40433 40434 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug 40435 in loop predicate. 40436 (fold_builtin_cpu): Do not share cpu model decls across statements. 40437 404382013-01-02 Jason Merrill <jason@redhat.com> 40439 40440 PR c++/55804 40441 * tree.c (build_array_type_1): Revert earlier change. 40442 404432013-01-02 Yufeng Zhang <yufeng.zhang@arm.com> 40444 40445 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and 40446 "cortex-a57". 40447 * config/aarch64/aarch64-tune.md: Re-generate. 40448 404492013-01-02 Richard Biener <rguenther@suse.de> 40450 40451 * tree-vect-stmts.c (vectorizable_load): When vectorizing an 40452 invariant load do not generate a vector load from the scalar location. 40453 404542013-01-02 Richard Biener <rguenther@suse.de> 40455 40456 PR bootstrap/55784 40457 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS. 40458 * configure: Regenerate. 40459 404602013-01-02 Richard Sandiford <rdsandiford@googlemail.com> 40461 40462 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2) 40463 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3) 40464 (expand_builtin_int_roundingfn_2): Keep the original target around 40465 for the fallback case. 40466 404672013-01-02 Richard Sandiford <rdsandiford@googlemail.com> 40468 40469 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int 40470 to be clear for sign changes. 40471 404722013-01-01 Jan Hubicka <jh@suse.cz> 40473 40474 * ipa-inline-analysis.c: Fix formatting. 40475 404762013-01-01 Jakub Jelinek <jakub@redhat.com> 40477 40478 PR tree-optimization/55831 40479 * tree-vect-loop.c (get_initial_def_for_induction): Use 40480 gsi_after_labels instead of gsi_start_bb. 40481 40482Copyright (C) 2013 Free Software Foundation, Inc. 40483 40484Copying and distribution of this file, with or without modification, 40485are permitted in any medium without royalty provided the copyright 40486notice and this notice are preserved. 40487