dfff862a822019a5d8973121f10bba1099a25d8c
[gcc.git] / gcc / ChangeLog
1 2014-12-10 Aldy Hernandez <aldyh@redhat.com>
2
3 * gdbhooks.py (class DWDieRefPrinter): New class.
4 (build_pretty_printer): Register dw_die_ref's.
5
6 2014-12-10 Ilya Tocar <ilya.tocar@intel.com>
7
8 * config.gcc: Support "knl".
9 * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knl".
10 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11 PROCESSOR_KNL.
12 * config/i386/i386.c (m_KNL): Define.
13 (processor_target_table): Add "knl".
14 (PTA_KNL): Define.
15 (ix86_issue_rate): Add PROCESSOR_KNL.
16 (ix86_adjust_cost): Ditto.
17 (ia32_multipass_dfa_lookahead): Ditto.
18 (get_builtin_code_for_version): Handle "knl".
19 (fold_builtin_cpu): Ditto.
20 * config/i386/i386.h (TARGET_KNL): Define.
21 (processor_type): Add PROCESSOR_KNL.
22 * config/i386/i386.md (attr "cpu"): Add knl.
23 * config/i386/x86-tune.def: Add m_KNL.
24
25 2014-12-10 Jan Hubicka <hubicka@ucw.cz>
26
27 * doc/invoke.texi: (-devirtualize-at-ltrans): Document.
28 * lto-cgraph.c (lto_output_varpool_node): Mark initializer as removed
29 when it is not streamed to the given ltrans.
30 (compute_ltrans_boundary): Make code adding all polymorphic
31 call targets conditional with !flag_wpa || flag_ltrans_devirtualize.
32 * common.opt (fdevirtualize-at-ltrans): New flag.
33
34 2014-12-10 Ilya Verbin <ilya.verbin@intel.com>
35
36 * varpool.c (varpool_node::get_create): Force output of vars with
37 "omp declare target" attribute.
38
39 2014-12-10 Marc Glisse <marc.glisse@inria.fr>
40
41 * real.h (HONOR_NANS): Replace macro with 3 overloaded declarations.
42 * real.c: Include rtl.h and options.h.
43 (HONOR_NANS): Define three overloads.
44 * builtins.c (fold_builtin_classify, fold_builtin_unordered_cmp):
45 Simplify argument of HONOR_NANS.
46 * fold-const.c (combine_comparisons, fold_truth_not_expr,
47 fold_cond_expr_with_comparison, merge_truthop_with_opposite_arm,
48 fold_comparison, fold_binary_loc): Likewise.
49 * ifcvt.c (noce_try_move, noce_try_minmax): Likewise.
50 * ipa-inline-analysis.c (add_clause,
51 set_cond_stmt_execution_predicate): Likewise.
52 * match.pd: Likewise.
53 * rtlanal.c (may_trap_p_1): Likewise.
54 * simplify-rtx.c (simplify_const_relational_operation): Likewise.
55 * tree-if-conv.c (parse_predicate): Likewise.
56 * tree-ssa-ccp.c (valid_lattice_transition): Likewise.
57 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
58 * tree-ssa-phiopt.c (minmax_replacement, neg_replacement): Likewise.
59 * tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
60 * tree-ssa-tail-merge.c (gimple_equal_p): Likewise.
61
62 2014-12-10 Jakub Jelinek <jakub@redhat.com>
63
64 PR tree-optimization/62021
65 * omp-low.c (simd_clone_adjust_return_type): Use
66 vector of pointer_sized_int_node types instead vector of pointer
67 types.
68 (simd_clone_adjust_argument_types): Likewise.
69
70 2014-12-10 Jakub Jelinek <jakub@redhat.com>
71 Evgeny Stupachenko <evstupac@gmail.com>
72
73 PR target/64252
74 * config/i386/i386.c (expand_vec_perm_pblendv): If not testing_p,
75 set dcopy.target to a new pseudo.
76
77 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
78
79 * config/rs6000/rs6000.md (*add<mode>3): Remove condition.
80
81 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
82
83 * config/rs6000/40x.md (ppc403-compare): Remove "compare".
84 config/rs6000/440.md (ppc440-compare): Remove "compare".
85 config/rs6000/476.md (ppc476-compare): Remove "compare".
86 config/rs6000/601.md (ppc601-compare): Remove "compare".
87 config/rs6000/603.md (ppc603-compare): Remove "compare".
88 config/rs6000/6xx.md (ppc604-compare): Remove "compare".
89 config/rs6000/7450.md (ppc7450-compare): Remove "compare".
90 config/rs6000/7xx.md (ppc750-compare): Remove "compare".
91 config/rs6000/8540.md (ppc8540_su): Remove "compare".
92 config/rs6000/cell.md (cell-fast-cmp, cell-cmp-microcoded): Remove
93 "compare".
94 config/rs6000/e300c2c3.md (ppce300c3_cmp): Remove "compare".
95 config/rs6000/e500mc.md (e500mc_su): Remove "compare".
96 config/rs6000/e500mc64.md (e500mc64_su2): Remove "compare".
97 config/rs6000/e5500.md (e5500_sfx2): Remove "compare".
98 config/rs6000/e6500.md (e6500_sfx2): Remove "compare".
99 config/rs6000/mpc.md (mpccore-compare): Remove "compare".
100 config/rs6000/power4.md (power4-compare): Remove "compare".
101 config/rs6000/power5.md (power5-compare): Remove "compare".
102 config/rs6000/power6.md (power6-compare): Remove "compare".
103 config/rs6000/power7.md (power7-compare): Remove "compare".
104 config/rs6000/power8.md (power8-compare): Remove "compare". Update
105 comment.
106 config/rs6000/rs6000.c (rs6000_adjust_cost) <TYPE_COMPARE>: Remove
107 (three times).
108 (is_cracked_insn): Remove TYPE_COMPARE case.
109 (insn_must_be_first_in_group) <TYPE_COMPARE>: Remove (twice).
110 config/rs6000/rs6000.md (type): Remove "compare".
111 (cell_micro): Remove "compare".
112 config/rs6000/rs64.md (rs64a-compare): Remove "compare".
113
114 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
115
116 * config/rs6000/rs6000.md (*anddi3_2rld_dot, *anddi3_rld_dot2):
117 Change type from "compare" to "two".
118
119 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
120
121 PR target/64180
122 * config/rs6000/predicates.md (unsigned_comparison_operator): New.
123 (signed_comparison_operator): New.
124 * config/rs6000/rs6000-protos.h (rs6000_emit_eqne): Declare.
125 * config/rs6000/rs6000.c (rs6000_emit_eqne): New function.
126 (rs6000_emit_sCOND): Remove ISEL test (move it to the expander).
127 * config/rs6000/rs6000.md (add<mode>3 for SDI): Expand DImode
128 add to addc,adde directly, if !TARGET_POWERPC64.
129 (sub<mode>3 for SDI): Expand DImode sub to subfc,subfe directly,
130 if !TARGET_POWERPC64.
131 (neg<mode>2): Delete expander.
132 (*neg<mode>2): Rename to "neg<mode>2".
133 (addti3, subti3): Delete.
134 (addti3, subti3): New expanders.
135 (*adddi3_noppc64, *subdi3_noppc64, *negdi2_noppc64): Delete.
136 (cstore<mode>4_unsigned): New expander.
137 (cstore<mode>4): Allow GPR as output (not just SI). Rewrite.
138 (cstore<mode>4 for FP): Remove superfluous quotes.
139 (*eq<mode>, *eq<mode>_compare, *plus_eqsi and splitter,
140 *compare_plus_eqsi and splitter, *plus_eqsi_compare and splitter,
141 *neg_eq0<mode>, *neg_eq<mode>, *ne0_<mode>, plus_ne0_<mode>,
142 compare_plus_ne0_<mode> and splitter, *compare_plus_ne0_<mode>_1 and
143 splitter, *plus_ne0_<mode>_compare and splitter, *leu<mode>,
144 *leu<mode>_compare and splitter, *plus_leu<mode>, *neg_leu<mode>,
145 *and_neg_leu<mode>, *ltu<mode>, *ltu<mode>_compare, *plus_ltu<mode>,
146 *plus_ltu<mode>_1, *plus_ltu<mode>compare, *neg_ltu<mode>, *geu<mode>,
147 *geu<mode>_compare and splitter, *plus_geu<mode>, *neg_geu<mode>,
148 *and_neg_geu<mode>, *plus_gt0<mode>, *gtu<mode>, *gtu<mode>_compare,
149 *plus_gtu<mode>, *plus_gtu<mode>_1, *plus_gtu<mode>_compare,
150 *neg_gtu<mode>, 12 anonymous insns, and 12 anonymous splitters):
151 Delete.
152 (eq<mode>3, ne<mode>3): New.
153 (*neg_eq_<mode>, *neg_ne_<mode>): New.
154 (*plus_eq_<mode>, *plus_ne_<mode>): New.
155 (*minus_eq_<mode>, *minus_ne_<mode>): New.
156
157 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
158
159 PR target/64180
160 * config/rs6000/predicates.md (adde_operand): New.
161 * config/rs6000/rs6000.md (add<mode>3_carry): New.
162 (*add<mode>3_imm_carry_pos): New.
163 (*add<mode>3_imm_carry_0): New.
164 (*add<mode>3_imm_carry_m1): New.
165 (*add<mode>3_imm_carry_neg): New.
166 (add<mode>3_carry_in): New.
167 (*add<mode>3_carry_in_internal): New.
168 (add<mode>3_carry_in_0): New.
169 (add<mode>3_carry_in_m1): New.
170 (subf<mode>3_carry): New.
171 (*subf<mode>3_imm_carry_0): New.
172 (*subf<mode>3_imm_carry_m1): New.
173 (subf<mode>3_carry_in): New.
174 (*subf<mode>3_carry_in_internal): New.
175 (subf<mode>3_carry_in_0): New.
176 (subf<mode>3_carry_in_m1): New.
177 (subf<mode>3_carry_in_xx): New.
178
179 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
180
181 PR target/64180
182 * config/rs6000/rs6000.md (*add<mode>3_internal1): Rename to
183 "*add<mode>3".
184 (*add<mode>3_internal2, *add<mode>3_internal3, and (their splitters):
185 Delete.
186 (*add<mode>3_dot, *add<mode>3_dot2): New.
187 (*add<mode>3_imm_dot, *add<mode>3_imm_dot2): New.
188
189 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
190
191 PR target/64180
192 * config/rs6000/rs6000.md (*add<mode>3_internal1): Remove addic
193 alternative.
194
195 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
196
197 PR target/64180
198 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
199 *ctr<mode>_internal5, *ctr<mode>_internal6): Change "r" alternatives
200 to "b". Increase length.
201 (splitters for these): Split to cmp+addi instead of addic.
202
203 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
204
205 PR target/64180
206 * config/rs6000/darwin.md (macho_low_si): Remove "r" alternative.
207 (macho_low_di): Ditto.
208 * config/rs6000/rs6000.md (*largetoc_low): Ditto.
209 (tocref<mode>): Ditto.
210 (elf_low): Ditto.
211 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0_elf_low_be): Ditto.
212 (mov_si<mode>_e500_subreg0_elf_low_le): Ditto.
213 (mov_si<mode>_e500_subreg4_elf_low_be): Ditto. Reformat condition.
214 (mov_si<mode>_e500_subreg4_elf_low_le): Ditto.
215
216 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org>
217
218 PR target/64180
219 * config/rs6000/rs6000.c (TARGET_MD_ASM_CLOBBERS): Define.
220 (rs6000_md_asm_clobbers): New function.
221
222 2014-12-10 Felix Yang <felix.yang@huawei.com>
223
224 * config/aarch64/aarch64-protos.h (aarch64_function_profiler): Remove
225 declaration of removed function.
226
227 2014-12-10 Richard Biener <rguenther@suse.de>
228
229 * tree-ssa-loop-im.c
230 (move_computations_dom_walker::before_dom_children): Clear
231 SSA_NAME_RANGE_INFO on moved stmts.
232
233 2014-12-10 Martin Liska <mliska@suse.cz>
234
235 * sreal.c (sreal::shift_right): New implementation
236 for int64_t as m_sig.
237 (sreal::normalize): Likewise.
238 (sreal::to_int): Likewise.
239 (sreal::operator+): Likewise.
240 (sreal::operator-): Likewise.
241 (sreal::operator*): Likewise.
242 (sreal::operator/): Likewise.
243 (sreal::signedless_minus): Removed.
244 (sreal::signedless_plus): Removed.
245 (sreal::debug): const keyword is added.
246 * sreal.h (sreal::operator<): New implementation
247 for int64_t as m_sig.
248 * ipa-inline.c (recursive_inlining): LONG_MIN is replaced
249 with sreal::min ().
250
251 2014-12-10 Martin Liska <mliska@suse.cz>
252
253 * gimple-iterator.h (gsi_start_bb_nondebug): New function.
254 * ipa-icf-gimple.c (func_checker::compare_bb): Correct iteration
255 replaces loop based on precomputed number of non-debug statements.
256
257 2014-12-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
258
259 * config/linux.c (linux_has_ifunc_p): Remove.
260 * config/linux.h (TARGET_HAS_IFUNC_P): Use default version.
261
262 2014-12-10 Mantas Mikaitis <mantas.mikaitis@arm.com>
263
264 * contrib/check_GNU_style.sh (col): Got rid of cut operation
265 from the pipe chain and instead added cut inside awk command.
266
267 2014-12-10 Richard Biener <rguenther@suse.de>
268
269 PR tree-optimization/64191
270 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not
271 mark clobbers as necessary.
272 (eliminate_unnecessary_stmts): Keep clobbers live if we can.
273
274 2014-12-10 Jakub Jelinek <jakub@redhat.com>
275
276 PR target/63594
277 * config/i386/sse.md (vec_dupv4sf): Move after
278 <mask_codefor><avx512>_vec_dup_gpr<mode><mask_name> pattern.
279 (*vec_dupv4si, *vec_dupv2di): Likewise.
280 (<mask_codefor><avx512>_vec_dup_mem<mode><mask_name>): Merge into ...
281 (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): ... this
282 pattern.
283 (*vec_dup<mode> AVX2_VEC_DUP_MODE splitter): Disable for
284 TARGET_AVX512VL (for QI/HI scalar modes only if TARGET_AVX512BW
285 is set too).
286 * config/i386/i386.c (enum ix86_builtins): Remove
287 IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
288 IX86_BUILTIN_PBROADCASTQ128_MEM_MASK and
289 IX86_BUILTIN_PBROADCASTQ512_MEM.
290 (bdesc_args): Use __builtin_ia32_pbroadcastq512_gpr_mask,
291 __builtin_ia32_pbroadcastq256_gpr_mask and
292 __builtin_ia32_pbroadcastq128_gpr_mask instead of *_mem_mask
293 regardless of OPTION_MASK_ISA_64BIT.
294 * config/i386/avx512fintrin.h (_mm512_set1_epi64,
295 _mm512_mask_set1_epi64, _mm512_maskz_set1_epi64): Use *_gpr_mask
296 builtins regardless of whether TARGET_64BIT is defined or not.
297 * config/i386/avx512vlintrin.h (_mm256_mask_set1_epi64,
298 _mm256_maskz_set1_epi64, _mm_mask_set1_epi64, _mm_maskz_set1_epi64):
299 Likewise.
300
301 * config/i386/sse.md (*mov<mode>_internal, *avx512f_gatherdi<mode>_2):
302 Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
303
304 2014-12-10 Oleg Endo <olegendo@gcc.gnu.org>
305
306 PR target/53513
307 * doc/extend.texi (__builtin_sh_set_fpscr): Fix typo.
308
309 2014-12-10 Marek Polacek <polacek@redhat.com>
310
311 PR tree-optimization/61686
312 * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
313 p->high.
314
315 2014-12-10 Kito Cheng <kito@0xlab.org>
316
317 * doc/libgcc.texi: Update text to match implementation in
318 libgcc/libgcc2.c
319
320 2014-12-09 Trevor Saunders <tsaunders@mozilla.com>
321
322 * plugin.c, plugin.def, ggc.h, ggc-common.c, gengtype.h, gengtype.c,
323 gengtype-state.c, gengtype-parse.c, gentype-lex.l, gcc-plugin.h,
324 doc/plugins.texi, doc/gty.texi: Remove support for if_marked and
325 param_is.
326
327 2014-12-10 Oleg Endo <olegendo@gcc.gnu.org>
328
329 PR target/53513
330 * doc/extend.texi (__builtin_sh_get_fpscr, __builtin_sh_get_fpscr):
331 Document it.
332
333 2014-12-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
334
335 PR middle-end/64225
336 * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
337 for BUILT_IN_POW when flag_errno_math is present.
338
339 2014-12-09 Ilya Verbin <ilya.verbin@intel.com>
340
341 * lto-wrapper.c (compile_offload_image): Start processing in_argv
342 from 0 instead of 1.
343 (run_gcc): Put offload objects into offload_argv, put LTO objects and
344 possible preceding arguments into lto_argv.
345 Pass offload_argv to compile_images_for_offload_targets instead of argv.
346 Use lto_argv for LTO recompilation instead of argv.
347
348 2014-12-09 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
349
350 * doc/install.texi: Describe --with-aix-soname option.
351
352 2014-12-09 Alan Lawrence <alan.lawrence@arm.com>
353
354 * config/aarch64/aarch64-simd.md (aarch64_get_lanedi): Remove.
355
356 2014-12-09 Alan Lawrence <alan.lawrence@arm.com>
357
358 PR target/63870
359 * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane):
360 Delete.
361 * config/aarch64/aarch64-simd.md (aarch64_be_checked_get_lane<mode\>):
362 Delete.
363 * config/aarch64/arm_neon.h (aarch64_vget_lane_any): Use GCC
364 vector extensions, __aarch64_lane, __builtin_aarch64_im_lane_boundsi.
365 (__aarch64_vget_lane_f32, __aarch64_vget_lane_f64,
366 __aarch64_vget_lane_p8, __aarch64_vget_lane_p16,
367 __aarch64_vget_lane_s8, __aarch64_vget_lane_s16,
368 __aarch64_vget_lane_s32, __aarch64_vget_lane_s64,
369 __aarch64_vget_lane_u8, __aarch64_vget_lane_u16,
370 __aarch64_vget_lane_u32, __aarch64_vget_lane_u64,
371 __aarch64_vgetq_lane_f32, __aarch64_vgetq_lane_f64,
372 __aarch64_vgetq_lane_p8, __aarch64_vgetq_lane_p16,
373 __aarch64_vgetq_lane_s8, __aarch64_vgetq_lane_s16,
374 __aarch64_vgetq_lane_s32, __aarch64_vgetq_lane_s64,
375 __aarch64_vgetq_lane_u8, __aarch64_vgetq_lane_u16,
376 __aarch64_vgetq_lane_u32, __aarch64_vgetq_lane_u64): Delete.
377 (__aarch64_vdup_lane_any): Use __aarch64_vget_lane_any, remove
378 'q2' argument.
379 (__aarch64_vdup_lane_f32, __aarch64_vdup_lane_f64,
380 __aarch64_vdup_lane_p8, __aarch64_vdup_lane_p16,
381 __aarch64_vdup_lane_s8, __aarch64_vdup_lane_s16,
382 __aarch64_vdup_lane_s32, __aarch64_vdup_lane_s64,
383 __aarch64_vdup_lane_u8, __aarch64_vdup_lane_u16,
384 __aarch64_vdup_lane_u32, __aarch64_vdup_lane_u64,
385 __aarch64_vdup_laneq_f32, __aarch64_vdup_laneq_f64,
386 __aarch64_vdup_laneq_p8, __aarch64_vdup_laneq_p16,
387 __aarch64_vdup_laneq_s8, __aarch64_vdup_laneq_s16,
388 __aarch64_vdup_laneq_s32, __aarch64_vdup_laneq_s64,
389 __aarch64_vdup_laneq_u8, __aarch64_vdup_laneq_u16,
390 __aarch64_vdup_laneq_u32, __aarch64_vdup_laneq_u64): Remove argument
391 to __aarch64_vdup_lane_any.
392 (vget_lane_f32, vget_lane_f64, vget_lane_p8, vget_lane_p16,
393 vget_lane_s8, vget_lane_s16, vget_lane_s32, vget_lane_s64,
394 vget_lane_u8, vget_lane_u16, vget_lane_u32, vget_lane_u64,
395 vgetq_lane_f32, vgetq_lane_f64, vgetq_lane_p8, vgetq_lane_p16,
396 vgetq_lane_s8, vgetq_lane_s16, vgetq_lane_s32, vgetq_lane_s64,
397 vgetq_lane_u8, vgetq_lane_u16, vgetq_lane_u32, vgetq_lane_u64,
398 vdupb_lane_p8, vdupb_lane_s8, vdupb_lane_u8, vduph_lane_p16,
399 vduph_lane_s16, vduph_lane_u16, vdups_lane_f32, vdups_lane_s32,
400 vdups_lane_u32, vdupb_laneq_p8, vdupb_laneq_s8, vdupb_laneq_u8,
401 vduph_laneq_p16, vduph_laneq_s16, vduph_laneq_u16, vdups_laneq_f32,
402 vdups_laneq_s32, vdups_laneq_u32, vdupd_laneq_f64, vdupd_laneq_s64,
403 vdupd_laneq_u64, vfmas_lane_f32, vfma_laneq_f64, vfmad_laneq_f64,
404 vfmas_laneq_f32, vfmss_lane_f32, vfms_laneq_f64, vfmsd_laneq_f64,
405 vfmss_laneq_f32, vmla_lane_f32, vmla_lane_s16, vmla_lane_s32,
406 vmla_lane_u16, vmla_lane_u32, vmla_laneq_f32, vmla_laneq_s16,
407 vmla_laneq_s32, vmla_laneq_u16, vmla_laneq_u32, vmlaq_lane_f32,
408 vmlaq_lane_s16, vmlaq_lane_s32, vmlaq_lane_u16, vmlaq_lane_u32,
409 vmlaq_laneq_f32, vmlaq_laneq_s16, vmlaq_laneq_s32, vmlaq_laneq_u16,
410 vmlaq_laneq_u32, vmls_lane_f32, vmls_lane_s16, vmls_lane_s32,
411 vmls_lane_u16, vmls_lane_u32, vmls_laneq_f32, vmls_laneq_s16,
412 vmls_laneq_s32, vmls_laneq_u16, vmls_laneq_u32, vmlsq_lane_f32,
413 vmlsq_lane_s16, vmlsq_lane_s32, vmlsq_lane_u16, vmlsq_lane_u32,
414 vmlsq_laneq_f32, vmlsq_laneq_s16, vmlsq_laneq_s32, vmlsq_laneq_u16,
415 vmlsq_laneq_u32, vmul_lane_f32, vmul_lane_s16, vmul_lane_s32,
416 vmul_lane_u16, vmul_lane_u32, vmuld_lane_f64, vmuld_laneq_f64,
417 vmuls_lane_f32, vmuls_laneq_f32, vmul_laneq_f32, vmul_laneq_f64,
418 vmul_laneq_s16, vmul_laneq_s32, vmul_laneq_u16, vmul_laneq_u32,
419 vmulq_lane_f32, vmulq_lane_s16, vmulq_lane_s32, vmulq_lane_u16,
420 vmulq_lane_u32, vmulq_laneq_f32, vmulq_laneq_f64, vmulq_laneq_s16,
421 vmulq_laneq_s32, vmulq_laneq_u16, vmulq_laneq_u32) : Use
422 __aarch64_vget_lane_any.
423
424 2014-12-09 Alan Lawrence <alan.lawrence@arm.com>
425
426 PR target/63870
427 * gcc/config/aarch64-builtins.c (aarch64_simd_expand_args): Update error
428 message for SIMD_ARG_CONSTANT.
429
430 2014-12-09 Alan Lawrence <alan.lawrence@arm.com>
431
432 PR target/63870
433 * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
434 TYPES_BINOPV): Delete.
435 (enum aarch64_builtins): Add AARCH64_BUILTIN_SIMD_LANE_CHECK and
436 AARCH64_SIMD_PATTERN_START.
437 (aarch64_init_simd_builtins): Register
438 __builtin_aarch64_im_lane_boundsi; use AARCH64_SIMD_PATTERN_START.
439 (aarch64_simd_expand_builtin): Handle AARCH64_BUILTIN_LANE_CHECK; use
440 AARCH64_SIMD_PATTERN_START.
441
442 * config/aarch64/aarch64-simd.md (aarch64_im_lane_boundsi): Delete.
443 * config/aarch64/aarch64-simd-builtins.def (im_lane_bound): Delete.
444
445 * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK): New.
446 (__aarch64_vget_lane_f64, __aarch64_vget_lane_s64,
447 __aarch64_vget_lane_u64, __aarch64_vset_lane_any, vdupd_lane_f64,
448 vdupd_lane_s64, vdupd_lane_u64, vext_f32, vext_f64, vext_p8, vext_p16,
449 vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
450 vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
451 vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
452 vextq_u64, vmulq_lane_f64): Use __AARCH64_LANE_CHECK.
453
454 2014-12-09 Alan Lawrence <alan.lawrence@arm.com>
455
456 PR target/63950
457 * config/aarch64/arm_neon.h (__AARCH64_NUM_LANES, __aarch64_lane *2):
458 New.
459 (aarch64_vset_lane_any): Redefine using previous, same for BE + LE.
460 (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
461 vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
462 vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64): Remove
463 number of lanes.
464 (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8, vld1_lane_p16,
465 vld1_lane_s8, vld1_lane_s16, vld1_lane_s32, vld1_lane_s64,
466 vld1_lane_u8, vld1_lane_u16, vld1_lane_u32, vld1_lane_u64): Call
467 __aarch64_vset_lane_any rather than vset_lane_xxx.
468
469 2014-12-09 Alan Lawrence <alan.lawrence@arm.com>
470
471 * config/aarch64/aarch64.md (absdi2): Remove scratch operand by
472 earlyclobbering result operand.
473
474 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
475 Remove final qualifier_internal.
476 (aarch64_fold_builtin): Stop folding abs builtins, except on floats.
477
478 2014-12-09 Wilco Dijkstra <wilco.dijkstra@arm.com>
479
480 * gcc/config/aarch64/aarch64-protos.h (tune-params): Add reasociation
481 tuning parameters.
482 * gcc/config/aarch64/aarch64.c (TARGET_SCHED_REASSOCIATION_WIDTH):
483 Define.
484 (aarch64_reassociation_width): New function.
485 (generic_tunings): Add reassociation tuning parameters.
486 (cortexa53_tunings): Likewise.
487 (cortexa57_tunings): Likewise.
488 (thunderx_tunings): Likewise.
489
490 2014-12-09 Andrew Pinski apinski@cavium.com
491 Kyrylo Tkachov kyrylo.tkachov@arm.com
492
493 * config/aarch64/aarch64.c (AARCH64_FUSE_CMP_BRANCH): New define.
494 (thunderx_tunings): Add AARCH64_FUSE_CMP_BRANCH to fuseable_ops.
495 (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_CMP_BRANCH.
496
497 2014-12-09 David Malcolm <dmalcolm@redhat.com>
498
499 PR jit/64166
500 * dumpfile.c (gcc::dump_manager::get_dump_file_info_by_switch):
501 New function.
502 (gcc::dump_manager::get_dump_file_name): Split out bulk of
503 implementation into a new overloaded variant taking a
504 dump_file_info *.
505 * dumpfile.h (gcc::dump_manager::get_dump_file_info_by_switch):
506 New function.
507 (gcc::dump_manager::get_dump_file_name): New overloaded variant of
508 this function, taking a dump_file_info *.
509
510 2014-12-09 Uros Bizjak <ubizjak@gmail.com>
511
512 PR bootstrap/64213
513 Revert:
514 2014-11-28 H.J. Lu <hongjiu.lu@intel.com>
515
516 PR rtl-optimization/64037
517 * combine.c (setup_incoming_promotions): Pass the argument
518 before any promotions happen to promote_function_mode.
519
520 2014-12-09 Richard Biener <rguenther@suse.de>
521
522 PR tree-optimization/64193
523 * tree-ssa-alias.c (walk_non_aliased_vuses): Add valueize parameter
524 and valueize the VUSE before looking up the def stmt.
525 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
526 * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Pass vn_valueize
527 to walk_non_aliased_vuses.
528 (vn_reference_lookup): Likewise.
529 * tree-ssa-dom.c (lookup_avail_expr): Pass NULL as valueize
530 callback to walk_non_aliased_vuses.
531
532 2014-12-09 Richard Biener <rguenther@suse.de>
533
534 PR middle-end/64199
535 * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.
536
537 2014-12-09 Richard Biener <rguenther@suse.de>
538
539 PR tree-optimization/64191
540 * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
541 not relevant (nor are their uses).
542
543 2014-12-09 Ilya Enkovich <ilya.enkovich@intel.com>
544
545 * lto/lto-partition.c (privatize_symbol_name): Correctly
546 privatize instrumentation clones.
547
548 2014-12-09 Ilya Enkovich <ilya.enkovich@intel.com>
549
550 * lto-cgraph.c (input_cgraph_1): Don't break existing
551 instrumentation clone references.
552 * lto/lto-symtab.c (lto_cgraph_replace_node): Redirect
553 instrumented_version references appropriately.
554
555 2014-12-09 Ilya Enkovich <ilya.enkovich@intel.com>
556
557 PR bootstrap/63995
558 * tree-chkp.c (chkp_make_static_bounds): Share bounds var
559 between nodes sharing assembler name.
560
561 2014-12-08 Michael Meissner <meissner@linux.vnet.ibm.com>
562
563 PR target/64204
564 * config/rs6000/rs6000.c (rs6000_emit_move): Do not split TFmode
565 constant moves if -mupper-regs-df.
566
567 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Optimize moving
568 0.0L to TFmode.
569 (movtd_64bit_nodm): Likewise.
570 (mov<mode>_32bit, FMOVE128 case): Likewise.
571
572 2014-12-08 Sandra Loosemore <sandra@codesourcery.com>
573
574 * simplify-rtx.c (simplify_relational_operation_1): Handle
575 simplification identities for BICS patterns.
576
577 2014-12-08 Trevor Saunders <tsaunders@mozilla.com>
578
579 * config/nvptx/nvptx.c: Convert htabs to hash_table.
580
581 2014-12-08 David Edelsohn <dje.gcc@gmail.com>
582
583 PR target/64226
584 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner)
585 [SYMBOL_REF]: Do not explicitly call create_TOC_reference for
586 TARGET_TOC. Always use rs6000_emit_move.
587
588 2014-12-08 Mark Wielaard <mjw@redhat.com>
589
590 PR debug/60782
591 * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_ATOMIC.
592
593 2014-11-15 David Wohlferd <dw@LimeGreenSocks.com>
594
595 PR target/61692
596 * cfgexpand.c (expand_asm_operands): Count all inline asm params.
597
598 2014-12-08 David Malcolm <dmalcolm@redhat.com>
599
600 PR jit/63854
601 * cgraph.h (xstrdup_for_dump): New function.
602 * cgraph.c (cgraph_node::get_create): Replace use of xstrdup
603 within fprintf with xstrdup_for_dump.
604 (cgraph_edge::make_speculative): Likewise.
605 (cgraph_edge::resolve_speculation): Likewise.
606 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
607 (cgraph_node::dump): Likewise.
608 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
609 * ipa-cp.c (perhaps_add_new_callers): Likewise.
610 * ipa-inline.c (report_inline_failed_reason): Likewise.
611 (want_early_inline_function_p): Likewise.
612 (edge_badness): Likewise.
613 (update_edge_key): Likewise.
614 (flatten_function): Likewise.
615 (inline_always_inline_functions): Likewise.
616 * ipa-profile.c (ipa_profile): Likewise.
617 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
618 (ipa_make_edge_direct_to_target): Likewise.
619 (remove_described_reference): Likewise.
620 (propagate_controlled_uses): Likewise.
621 * ipa-utils.c (ipa_merge_profiles): Likewise.
622
623 2014-12-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
624
625 PR ipa/64049
626 * ipa-polymorphic-call.c
627 (pa_polymorphic_call_context::ipa_polymorphic_call): Allow RESULT_DECL.
628
629 2014-12-08 Alex Velenko <Alex.Velenko@arm.com>
630
631 * config/aarch64/aarch64.md (and_one_cmpl<mode>3_compare0_no_reuse):
632 New define_insn.
633 * (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse):
634 Likewise.
635
636 2014-12-08 Felix Yang <felix.yang@huawei.com>
637 Haijian Zhang <z.zhanghaijian@huawei.com>
638 Jiji Jiang <jiangjiji@huawei.com>
639 Pengfei Sui <suipengfei@huawei.com>
640
641 * config/aarch64/arm_neon.h (vrecpe_u32, vrecpeq_u32): Rewrite using
642 builtin functions.
643 (vfma_f32, vfmaq_f32, vfmaq_f64, vfma_n_f32, vfmaq_n_f32, vfmaq_n_f64,
644 vfms_f32, vfmsq_f32, vfmsq_f64): Likewise.
645 (vhsub_s8, vhsub_u8, vhsub_s16, vhsub_u16, vhsub_s32, vhsub_u32,
646 vhsubq_s8, vhsubq_u8, vhsubq_s16, vhsubq_u16, vhsubq_s32, vhsubq_u32,
647 vsubhn_s16, vsubhn_u16, vsubhn_s32, vsubhn_u32, vsubhn_s64, vsubhn_u66,
648 vrsubhn_s16, vrsubhn_u16, vrsubhn_s32, vrsubhn_u32, vrsubhn_s64,
649 vrsubhn_u64, vsubhn_high_s16, vsubhn_high_u16, vsubhn_high_s32,
650 vsubhn_high_u32, vsubhn_high_s64, vsubhn_high_u64, vrsubhn_high_s16,
651 vrsubhn_high_u16, vrsubhn_high_s32, vrsubhn_high_u32, vrsubhn_high_s64,
652 vrsubhn_high_u64): Likewise.
653 * config/aarch64/iterators.md (VDQ_SI): New mode iterator.
654 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_URECPE.
655 * config/aarch64/aarch64-simd.md (aarch64_urecpe<mode>): New pattern.
656 * config/aarch64/aarch64-simd-builtins.def (shsub, uhsub, subhn, rsubhn,
657 subhn2, rsubhn2, urecpe): New builtins.
658
659 2014-12-08 Ilya Tocar <ilya.tocar@intel.com>
660
661 * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi.
662 * config/i386/sse.md (VEC_PERM_AVX2): Add v64qi.
663
664 2014-12-08 Ilya Tocar <ilya.tocar@intel.com>
665
666 * config/i386/i386.c (expand_vec_perm_broadcast_1): Handle v64qi.
667 (expand_vec_perm_vpermi2_vpshub2): New.
668 (ix86_expand_vec_perm_const_1): Use it.
669 (ix86_vectorize_vec_perm_const_ok): Handle v64qi.
670 * config/i386/sse.md (VEC_PERM_CONST): Add v64qi.
671
672 2014-12-08 Ilya Enkovich <ilya.enkovich@intel.com>
673
674 * tree-chkp.c (chkp_build_returned_bound): Don't predict
675 return bounds for strchr calls.
676
677 2014-12-08 Ilya Enkovich <ilya.enkovich@intel.com>
678
679 * tree-chkp.c (chkp_call_returns_bounds_p): New.
680 (chkp_build_returned_bound): Use zero bounds as
681 returned by calls not returning bounds.
682
683 2014-12-08 Richard Biener <rguenther@suse.de>
684
685 * builtins.c (fold_builtin_0): Remove unused ignore parameter.
686 (fold_builtin_1): Likewise.
687 (fold_builtin_3): Likewise.
688 (fold_builtin_varargs): Likewise.
689 (fold_builtin_2): Likewise. Do not fold stpcpy here.
690 (fold_builtin_n): Adjust.
691 (fold_builtin_stpcpy): Move to gimple-fold.c.
692 (gimple_fold_builtin_stpcpy): Moved and gimplified from builtins.c.
693 (gimple_fold_builtin): Fold stpcpy here.
694
695 2014-12-07 Trevor Saunders <tsaunders@mozilla.com>
696
697 * symtab.c (symtab_node::verify): Check for section attribute before
698 asserting something isn't in a section and a comdat group.
699
700 2014-12-07 Oleg Endo <olegendo@gcc.gnu.org>
701
702 PR target/50751
703 * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
704
705 2014-12-07 Eric Botcazou <ebotcazou@adacore.com>
706
707 * compare-elim.c: Fix head comment.
708 (conforming_compare): Remove redundant test.
709 (can_eliminate_compare): New function extracted from...
710 (before_dom_children): ...here. Use it, replace direct uses of
711 flag_non_call_exceptions and tidy up.
712 (maybe_select_cc_mode): Tidy up.
713
714 2014-12-07 Felix Yang <felix.yang@huawei.com>
715 Shanyao Chen <chenshanyao@huawei.com>
716
717 * config/aarch64/aarch64-simd.md (clrsb<mode>2, popcount<mode>2): New
718 patterns.
719 * config/aarch64/aarch64-simd-builtins.def (clrsb, popcount): New
720 builtins.
721 * config/aarch64/arm_neon.h (vcls_s8, vcls_s16, vcls_s32, vclsq_s8,
722 vclsq_s16, vclsq_s32, vcnt_p8, vcnt_s8, vcnt_u8, vcntq_p8, vcntq_s8,
723 vcntq_u8): Rewrite using builtin functions.
724
725 2014-12-07 Jan Hubicka <hubicka@ucw.cz>
726
727 * symtab.c (symtab_node::equal_address_to): New function.
728 * cgraph.h (symtab_node::equal_address_to): Declare.
729 * fold-const.c (fold_comparison, fold_binary_loc): Use it.
730 * c-family/c-common.c: Refuse weaks for symbols that can not change
731 visibility.
732
733 2014-12-07 Jonathan Wakely <jwakely@redhat.com>
734
735 * doc/invoke.texi (Warning Options): Fix spelling and grammar.
736
737 2014-12-06 James Greenhalgh <james.greenhalgh@arm.com>
738 Sebastian Pop <s.pop@samsung.com>
739 Brian Rzycki <b.rzycki@samsung.com>
740
741 PR tree-optimization/54742
742 * params.def (max-fsm-thread-path-insns, max-fsm-thread-length,
743 max-fsm-thread-paths): New.
744
745 * doc/invoke.texi (max-fsm-thread-path-insns, max-fsm-thread-length,
746 max-fsm-thread-paths): Documented.
747
748 * tree-cfg.c (split_edge_bb_loc): Export.
749 * tree-cfg.h (split_edge_bb_loc): Declared extern.
750
751 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Restore the
752 original value of cond when simplification fails.
753 (fsm_find_thread_path): New.
754 (fsm_find_control_statement_thread_paths): New.
755 (thread_through_normal_block): Call find_control_statement_thread_paths.
756
757 * tree-ssa-threadupdate.c (dump_jump_thread_path): Pretty print
758 EDGE_FSM_THREAD.
759 (verify_seme): New.
760 (duplicate_seme_region): New.
761 (thread_through_all_blocks): Generate code for EDGE_FSM_THREAD edges
762 calling duplicate_seme_region.
763
764 * tree-ssa-threadupdate.h (jump_thread_edge_type): Add EDGE_FSM_THREAD.
765
766 2014-12-06 H.J. Lu <hongjiu.lu@intel.com>
767
768 PR target/64200
769 * config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
770 for TARGET_INLINE_STRINGOPS_DYNAMICALLY.
771
772 2014-12-05 Jakub Jelinek <jakub@redhat.com>
773
774 PR sanitizer/64170
775 * sanopt.c (maybe_optimize_asan_check_ifn): If base_checks is
776 non-NULL, call maybe_get_dominating_check on it even if g is
777 non-NULL.
778
779 2014-12-05 Jeff Law <law@redhat.com>
780
781 * doc/md.texi: Note problems using function calls to determine
782 insn lengths and point readers to a potential workaround.
783
784 2014-12-05 Andreas Schwab <schwab@linux-m68k.org>
785
786 * combine.c (is_parallel_of_n_reg_sets)
787 (can_split_parallel_of_n_reg_sets): Only define if !HAVE_cc0.
788
789 2014-12-05 Andrew Pinski <apinski@cavium.com>
790
791 * config/aarch64/aarch64-simd-builtins.def (bswap): Use CF2 rather
792 than CF10 so 2 is appended on the code.
793 * config/aarch64/aarch64-simd.md (bswap<mode>): Rename to ...
794 (bswap<mode>2): This so it matches for the optabs.
795
796 2014-12-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
797
798 * regrename.c (find_best_rename_reg): Rename to ...
799 (find_rename_reg): This. Also add a parameter to skip tick check.
800 * regrename.h: Likewise.
801 * config/c6x/c6x.c (try_rename_operands): Adapt to above renaming.
802
803 2014-12-05 Martin Jambor <mjambor@suse.cz>
804
805 PR ipa/64192
806 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Convert alignment
807 from bits to bytes after checking they are byte-aligned.
808
809 2014-12-05 Renlin Li <renlin.li@arm.com>
810
811 * config/aarch64/aarch64-opts.h (AARCH64_CORE): Rename IDENT to SCHED.
812 * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
813 * config/aarch64/aarch64.c (AARCH64_CORE): Rename X to IDENT,
814 IDENT to SCHED.
815
816 2014-12-05 Bin Cheng <bin.cheng@arm.com>
817
818 * config/aarch64/aarch64.md (load_pair<mode>): Split to
819 load_pairsi, load_pairdi, load_pairsf and load_pairdf.
820 (load_pairsi, load_pairdi, load_pairsf, load_pairdf): Split
821 from load_pair<mode>. New alternative to support int/fp
822 registers in fp/int mode patterns.
823 (store_pair<mode>:): Split to store_pairsi, store_pairdi,
824 store_pairsf and store_pairdi.
825 (store_pairsi, store_pairdi, store_pairsf, store_pairdf): Split
826 from store_pair<mode>. New alternative to support int/fp
827 registers in fp/int mode patterns.
828 (*load_pair_extendsidi2_aarch64): New pattern.
829 (*load_pair_zero_extendsidi2_aarch64): New pattern.
830 (aarch64-ldpstp.md): Include.
831 * config/aarch64/aarch64-ldpstp.md: New file.
832 * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
833 New.
834 (extract_base_offset_in_addr): New.
835 (aarch64_operands_ok_for_ldpstp): New.
836 (aarch64_operands_adjust_ok_for_ldpstp): New.
837 * config/aarch64/aarch64.c (enum sched_fusion_type): New enum.
838 (TARGET_SCHED_FUSION_PRIORITY): New hook.
839 (fusion_load_store): New functon.
840 (extract_base_offset_in_addr): New function.
841 (aarch64_gen_adjusted_ldpstp): New function.
842 (aarch64_sched_fusion_priority): New function.
843 (aarch64_operands_ok_for_ldpstp): New function.
844 (aarch64_operands_adjust_ok_for_ldpstp): New function.
845
846 2014-12-05 Olivier Hainque <hainque@adacore.com>
847
848 * defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
849 * dwarf2cfi.c (init_one_dwarf_reg_size): Honor
850 DWARF_REG_TO_UNWIND_COLUMN.
851
852 2014-12-05 Olivier Hainque <hainque@adacore.com>
853
854 * dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing
855 one particular reg for expand_builtin_init_dwarf_reg_sizes.
856 (expand_builtin_init_dwarf_reg_sizes): Rework to use helper and
857 account for dwarf register spans.
858
859 2014-12-05 Ilya Enkovich <ilya.enkovich@intel.com>
860
861 PR target/64003
862 * config/i386/i386.md (*jcc_1_bnd): New.
863 (*jcc_2_bnd): New.
864 (jump_bnd): New.
865 (*jcc_1): Remove bnd prefix.
866 (*jcc_2): Likewise.
867 (jump): Likewise.
868
869 2014-12-05 Renlin Li <renlin.li@arm.com>
870
871 * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
872 selected_tune.
873 (aarch64_override_options): Use selected_cpu's tuning.
874
875 2014-12-05 David Edelsohn <dje.gcc@gmail.com>
876
877 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
878 alignment to section name. Increase default alignment to word.
879
880 2014-12-05 Martin Jambor <mjambor@suse.cz>
881
882 * cgraph.h (cgraph_node): New method expand_all_artificial_thunks.
883 (cgraph_edge): New method redirect_callee_duplicating_thunks.
884 * cgraphclones.c (duplicate_thunk_for_node): Donot expand newly
885 created thunks.
886 (redirect_edge_duplicating_thunks): Turned into edge method
887 redirect_callee_duplicating_thunks.
888 (cgraph_node::expand_all_artificial_thunks): New method.
889 (create_clone): Call expand_all_artificial_thunks.
890 * ipa-cp.c (perhaps_add_new_callers): Call
891 redirect_callee_duplicating_thunks instead of redirect_callee.
892 Also call expand_all_artificial_thunks.
893
894 2014-12-05 Ilya Enkovich <ilya.enkovich@intel.com>
895
896 PR target/64056
897 * doc/sourcebuild.texi: Add mempcpy and stpcpy for Effective-Target Keywords.
898
899 2014-12-05 Manuel López-Ibáñez <manu@gcc.gnu.org>
900
901 * diagnostic.h (diagnostic_expand_location): New inline function.
902 * diagnostic.c (diagnostic_build_prefix): Use it.
903 (diagnostic_show_locus): Likewise.
904
905 2014-12-04 H.J. Lu <hongjiu.lu@intel.com>
906
907 PR bootstrap/64189
908 * configure.ac (HAVE_LD_PIE_COPYRELOC): Always define.
909 * configure: Regenerated.
910
911 2014-12-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
912
913 * diagnostic.c (diagnostic_color_init): New.
914 * diagnostic.h: Declare.
915 * gcc.c (driver::global_initializations): Use it.
916 (driver_handle_option): Handle -fdiagnostics-color_.
917 * toplev.c: Do not include diagnostic-color.h.
918 (process_options): Do not initialize color diagnostics here.
919 * common.opt (fdiagnostics-color=): Add Driver.
920 * opts-global.c (init_options_once): Initialize color here.
921 * opts.c (common_handle_option): Use diagnostics_color_init.
922 * diagnostic-color.h: Fix comment.
923
924 2014-12-04 David Malcolm <dmalcolm@redhat.com>
925
926 * tree-pretty-print.c (INDENT): Rename "buffer" to "pp".
927 (NIY): Likewise.
928 (buffer): Rename this variable to...
929 (tree_pp): ...this.
930
931 (do_niy): Rename param from "buffer" to "pp".
932 (dump_decl_name): Likewise.
933 (dump_function_name): Likewise.
934 (dump_function_declaration): Likewise.
935 (dump_array_domain): Likewise.
936 (dump_omp_clause): Likewise.
937 (dump_omp_clauses): Likewise.
938 (dump_location): Likewise.
939 (dump_block_node): Likewise.
940 (dump_generic_node): Likewise.
941 (print_declaration): Likewise.
942 (print_struct_decl): Likewise.
943 (print_call_name): Likewise.
944 (pretty_print_string): Likewise.
945 (newline_and_indent): Likewise.
946
947 (print_generic_decl): Update for renaming of "buffer" to
948 "tree_pp".
949 (print_generic_stmt): Likewise.
950 (print_generic_stmt_indented): Likewise.
951 (print_generic_expr): Likewise.
952 (maybe_init_pretty_print): Likewise.
953
954 2014-12-04 David Malcolm <dmalcolm@redhat.com>
955
956 PR jit/63854
957 * tree-pretty-print.c: Eliminate include of <new>.
958 (buffer): Convert this variable from a pretty_printer to a
959 pretty_printer *.
960 (initialized): Eliminate this variable in favor of the NULL-ness
961 of "buffer".
962 (print_generic_decl): Update for "buffer" becoming a pointer.
963 (print_generic_stmt): Likewise.
964 (print_generic_stmt_indented): Likewise.
965 (print_generic_expr): Likewise.
966 (maybe_init_pretty_print): Likewise, allocating "buffer" on the
967 heap and using its non-NULL-ness to ensure idempotency.
968
969 2014-12-04 David Malcolm <dmalcolm@redhat.com>
970
971 PR jit/63854
972 * ipa-prop.c (ipa_register_cgraph_hooks): Guard insertion of
973 ipa_add_new_function on function_insertion_hook_holder being
974 non-NULL.
975 * ipa-reference.c (ipa_reference_c_finalize): Remove
976 node_removal_hook_holder and node_duplication_hook_holder if
977 they've been added to symtab.
978 * toplev.c (toplev::finalize): Call ipa_reference_c_finalize
979 before cgraph_c_finalize so that the former can access "symtab".
980
981 2014-12-04 David Malcolm <dmalcolm@redhat.com>
982
983 * doc/cfg.texi (GIMPLE statement iterators): Add note about
984 gphi_iterator, and use one in the example.
985 * doc/gimple.texi (Tuple specific accessors): Add missing
986 GIMPLE_GOTO section and menu item.
987 (gimple_build_asm, gimple gimple_build_assign_with_ops)
988 gimple_call_mark_uninlinable, gimple_call_cannot_inline_p): Remove
989 description of removed functions.
990 (gimple_build_assign, gimple_build_bind, gimple_build_call,
991 gimple_build_call_from_tree, gimple_build_call_vec,
992 gimple_build_catch, gimple_build_cond,
993 gimple_build_cond_from_tree, gimple_build_debug_bind,
994 gimple_build_eh_filter, gimple_build_label, gimple_build_goto,
995 gimple_build_omp_atomic_load, gimple_build_omp_atomic_store,
996 gimple_build_omp_continue, gimple_build_omp_critical,
997 gimple_build_omp_for, gimple_build_omp_parallel,
998 gimple_build_omp_sections, gimple_build_omp_single,
999 gimple_build_return, gimple_build_resx, gimple_build_switch,
1000 gimple_build_try): Update return type within description to
1001 reflect changes in gimple.h to using gimple subclasses.
1002 (gimple_build_asm_vec): Update return type, params and
1003 description.
1004 (gimple_asm_ninputs): Update param.
1005 (gimple_asm_noutputs, gimple_asm_nclobbers, gimple_asm_input_op
1006 gimple_asm_set_input_op, gimple_asm_output_op
1007 gimple_asm_set_output_op, gimple_asm_clobber_op,
1008 gimple_asm_set_clobber_op, gimple_asm_string,
1009 gimple_asm_volatile_p, gimple_asm_set_volatile, gimple_bind_vars,
1010 gimple_bind_set_vars, gimple_bind_append_vars, gimple_bind_body,
1011 gimple_bind_set_body, gimple_bind_add_stmt, gimple_bind_add_seq,
1012 gimple_bind_block, gimple_bind_set_block, gimple_call_set_fn,
1013 gimple_call_return_type, gimple_call_set_chain,
1014 gimple_call_set_tail, gimple_call_tail_p,
1015 gimple_call_copy_skip_args, gimple_catch_types,
1016 gimple_catch_types_ptr, gimple_catch_handler,
1017 gimple_catch_set_types, gimple_catch_set_handler,
1018 gimple_cond_set_code, gimple_cond_set_lhs, gimple_cond_set_rhs,
1019 gimple_cond_true_label, gimple_cond_set_true_label,
1020 gimple_cond_set_false_label, gimple_cond_false_label,
1021 gimple_cond_make_false, gimple_cond_make_true,
1022 gimple_eh_filter_set_types, gimple_eh_filter_set_failure,
1023 gimple_eh_must_not_throw_fndecl,
1024 gimple_eh_must_not_throw_set_fndecl, gimple_label_label,
1025 gimple_label_set_label, gimple_goto_set_dest,
1026 gimple_omp_atomic_load_set_lhs, gimple_omp_atomic_load_lhs,
1027 gimple_omp_atomic_load_set_rhs, gimple_omp_atomic_load_rhs,
1028 gimple_omp_atomic_store_set_val, gimple_omp_atomic_store_val,
1029 gimple_omp_continue_control_def,
1030 gimple_omp_continue_control_def_ptr,
1031 gimple_omp_continue_set_control_def,
1032 gimple_omp_continue_control_use,
1033 gimple_omp_continue_control_use_ptr,
1034 gimple_omp_continue_set_control_use, gimple_omp_critical_name,
1035 gimple_omp_critical_name_ptr, gimple_omp_critical_set_name,
1036 gimple_omp_parallel_clauses_ptr, gimple_omp_parallel_set_clauses,
1037 gimple_omp_parallel_child_fn, gimple_omp_parallel_child_fn_ptr,
1038 gimple_omp_parallel_set_child_fn, gimple_omp_parallel_data_arg,
1039 gimple_omp_parallel_data_arg_ptr,
1040 gimple_omp_parallel_set_data_arg, gimple_omp_single_set_clauses,
1041 gimple_phi_set_result, gimple_phi_set_arg, gimple_resx_region,
1042 gimple_resx_set_region, gimple_return_retval,
1043 gimple_return_set_retval, gimple_switch_num_labels,
1044 gimple_switch_set_num_labels, gimple_switch_index,
1045 gimple_switch_set_index, gimple_switch_label,
1046 gimple_switch_set_label, gimple_switch_default_label,
1047 gimple_switch_set_default_label, gimple_try_set_eval,
1048 gimple_try_set_cleanup): Update initial param within description
1049 to reflect changes in gimple.h to using gimple subclasses.
1050 (Adding a new GIMPLE statement code): Update to reflect gimple
1051 statement subclassing.
1052
1053 2014-12-04 Sriraman Tallam <tmsriram@google.com>
1054 H.J. Lu <hongjiu.lu@intel.com>
1055
1056 * configure.ac (HAVE_LD_PIE_COPYRELOC): Defined to 1 if
1057 Linux/x86-64 linker supports PIE with copy reloc.
1058 * config.in: Regenerated.
1059 * configure: Likewise.
1060
1061 * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
1062 pc-relative address for undefined, non-weak, non-function
1063 symbol reference in 64-bit PIE if linker supports PIE with
1064 copy reloc.
1065
1066 * doc/sourcebuild.texi: Document pie_copyreloc target.
1067
1068 2014-12-04 Marek Polacek <polacek@redhat.com>
1069
1070 PR middle-end/56917
1071 * fold-const.c (fold_unary_loc): Perform the negation in A's type
1072 when transforming ~ (A - 1) or ~ (A + -1) to -A.
1073
1074 2014-12-04 Tobias Burnus <burnus@net-b.de>
1075
1076 * Makefile.in: Remove CLOOGLIB and CLOOGINC.
1077
1078 2014-12-04 Richard Biener <rguenther@suse.de>
1079
1080 * doc/match-and-simplify.texi: Update for recent changes.
1081
1082 2014-12-04 Martin Jambor <mjambor@suse.cz>
1083
1084 * ipa-prop.h (ipa_alignment): New type.
1085 (ipa_jump_func): New field alignment.
1086 (ipcp_transformation_summary) New type.
1087 (ipcp_grow_transformations_if_necessary): Declare.
1088 (ipa_node_agg_replacements): Removed.
1089 (ipcp_transformations): Declare.
1090 (ipcp_get_transformation_summary): New function.
1091 (ipa_get_agg_replacements_for_node): Use it.
1092 * ipa-cp.c (ipcp_param_lattices): New field alignment.
1093 (print_all_lattices): Also print alignment.
1094 (alignment_bottom_p): New function.
1095 (set_alignment_to_bottom): Likewise.
1096 (set_all_contains_variable): Also set alignment to bottom.
1097 (initialize_node_lattices): Likewise.
1098 (propagate_alignment_accross_jump_function): New function.
1099 (propagate_constants_accross_call): Call it.
1100 (ipcp_store_alignment_results): New function.
1101 (ipcp_driver): Call it.
1102 * ipa-prop.c (ipa_node_agg_replacements): Removed.
1103 (ipcp_transformations): New.
1104 (ipa_print_node_jump_functions_for_edge): Also print alignment.
1105 (ipa_set_jf_unknown): New function.
1106 (detect_type_change_from_memory_writes): Use ipa_set_jf_unknown.
1107 (ipa_compute_jump_functions_for_edge): Also calculate alignment.
1108 (update_jump_functions_after_inlining): Use ipa_set_jf_unknown.
1109 (ipcp_grow_transformations_if_necessary): New function.
1110 (ipa_set_node_agg_value_chain): Use ipcp_transformations.
1111 (ipa_node_removal_hook): Likewise.
1112 (ipa_node_duplication_hook): Also duplicate alignment results.
1113 (ipa_write_jump_function): Also stream alignments.
1114 (ipa_read_jump_function): Use ipa_set_jf_unknown, also stream
1115 alignments.
1116 (write_agg_replacement_chain): Renamed to
1117 write_ipcp_transformation_info, also stream alignments.
1118 (read_agg_replacement_chain): Renamed to
1119 read_ipcp_transformation_info, also stream alignments.
1120 (ipa_prop_write_all_agg_replacement): Renamed to
1121 ipcp_write_transformation_summaries. Stream always.
1122 (ipa_prop_read_all_agg_replacement): Renamed to
1123 ipcp_read_transformation_summaries.
1124 (ipcp_update_alignments): New function.
1125 (ipcp_transform_function): Call it, free also alignments.
1126
1127 2014-12-04 Richard Biener <rguenther@suse.de>
1128
1129 * gimple-fold.c (replace_stmt_with_simplification): Properly
1130 fail when maybe_push_res_to_seq fails.
1131
1132 2014-12-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
1133
1134 * config/aarch64/aarch64.md (define_insn "prefetch"): New.
1135
1136 2014-12-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1137
1138 * doc/install.texi: Remove mentions of cloog and ppl.
1139 * doc/invoke.texi: Likewise
1140
1141 2014-12-04 Jakub Jelinek <jakub@redhat.com>
1142
1143 PR c++/56493
1144 * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
1145 Handle COMPOUND_EXPR.
1146
1147 2014-12-04 Richard Biener <rguenther@suse.de>
1148
1149 * builtins.c (target_newline): Export.
1150 (target_percent_s_newline): Likewise.
1151 (fold_builtin_1): Do not fold printf functions here.
1152 (fold_builtin_2): Likewise.
1153 (fold_builtin_3): Likewise, do not fold strncat.
1154 (fold_builtin_strncat): Move to gimple-fold.c.
1155 (fold_builtin_printf): Likewise.
1156 * builtins.h (target_newline): Declare.
1157 (target_percent_s_newline): Likewise.
1158 * gimple-fold.c (gimple_fold_builtin_strncat): Move from
1159 builtins.c and gimplify.
1160 (gimple_fold_builtin_printf): Likewise.
1161 (gimple_fold_builtin): Fold strncat, printf, printf_unlocked,
1162 vprintf, printf_chk and vprintf_chk here.
1163
1164 2014-12-03 David Edelsohn <dje.gcc@gmail.com>
1165
1166 * config/rs6000/rs6000.md (floatsidf2_internal): Use std::swap.
1167 (floatunssidf2_internal): Same.
1168 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Same.
1169 (rs6000_emit_int_cmove): Same.
1170 (rs6000_sched_reorder): Same.
1171 (altivec_expand_vec_perm_const): Same.
1172 (rs6000_expand_vec_perm_const_1): Same.
1173
1174 2014-12-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1175
1176 PR rtl-optimization/64010
1177 * reload.c (push_reload): Before reusing a register contained
1178 in an operand as input reload register, ensure that it is not
1179 used in CALL_INSN_FUNCTION_USAGE.
1180
1181 2014-12-03 Ulrich Drepper <drepper@gmail.com>
1182
1183 * Makefile.in: Use $(LN_S) instead of $(LN) -s and remove file first
1184 if it exists.
1185
1186 2014-12-03 Jakub Jelinek <jakub@redhat.com>
1187
1188 * expmed.c (expand_mult): Use std::swap.
1189
1190 PR c/59708
1191 * expmed.c (expand_widening_mult): Return const0_rtx if
1192 coeff is 0.
1193
1194 * doc/gimple.texi (gimple_build_assign_with_ops): Remove.
1195 (gimple_build_assign): Document the new overloads.
1196
1197 2014-12-03 Michael Meissner <meissner@linux.vnet.ibm.com>
1198
1199 PR target/64019
1200 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
1201 not create LO_SUM address for constant addresses if the type can
1202 go in Altivec registers.
1203
1204 2014-12-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
1205
1206 PR fortran/44054
1207 * pretty-print.c (output_buffer::output_buffer): Init flush_p to true.
1208 (pp_flush): Flush only if flush_p.
1209 (pp_really_flush): New.
1210 * pretty-print.h (struct output_buffer): Add flush_p.
1211 (pp_really_flush): Declare.
1212
1213 2014-12-03 Jakub Jelinek <jakub@redhat.com>
1214
1215 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add $(GENGTYPE_OBJS),
1216 gcc-ar.o, gcc-nm.o and gcc-ranlib.o.
1217 (GENGTYPE_OBJS): New.
1218 (gengtype-lex.o, gengtype-parse.o, gengtype-state.o, gengtype.o):
1219 Remove explicit dependencies.
1220 (CFLAGS-gengtype-lex.o, CFLAGS-gengtype-parse.o,
1221 CFLAGS-gengtype-state.o, CFLAGS-gengtype.o): Add -DHOST_GENERATOR_FILE
1222 instead of -DGENERATOR_FILE.
1223 (CFLAGS-errors.o): New.
1224 * gengtype.c: Instead of testing GENERATOR_FILE define, test
1225 HOST_GENERATOR_FILE. If defined, include config.h and define
1226 GENERATOR_FILE afterwards, otherwise include bconfig.h.
1227 * gengtype-parse.c: Likewise.
1228 * gengtype-state.c: Likewise.
1229 * gengtype-lex.l: Likewise.
1230 * errors.c: Likewise.
1231
1232 2014-12-03 Joern Rennecke <joern.rennecke@embecosm.com>
1233
1234 * config/epiphany/epiphany.c (epiphany_override_options):
1235 If TARGET_SOFT_CMPSF is not enabled, set flag_finite_math_only.
1236 * config/epiphany/epiphany.md (mov<mode>cc): Don't use
1237 reverse_condition_maybe_unordered if flag_finite_math_only is set.
1238
1239 2014-12-03 Andrew Stubbs <ams@codesourcery.com>
1240
1241 Revert:
1242
1243 2014-09-17 Andrew Stubbs <ams@codesourcery.com>
1244 * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
1245 when architecture is older than ARMv7.
1246
1247 2014-12-03 Richard Biener <rguenther@suse.de>
1248
1249 * builtins.c (target_percent_c): Export.
1250 (fold_builtin_fprintf): Move to gimple-fold.c.
1251 (fold_builtin_2): Do not fold fprintf functions.
1252 (fold_builtin_3): Likewise.
1253 (fold_builtin_4): Remove.
1254 (fold_builtin_n): Do not call fold_builtin_4.
1255 * builtins.h (target_percent_c): Declare.
1256 * gimple-fold.c (gimple_fold_builtin_fprintf): Move from
1257 builtins.c and gimplify.
1258 (gimple_fold_builtin): Fold fprintf, fprintf_unlocked, vfprintf,
1259 fprintf_chk and vfprintf_chk here.
1260
1261 2014-12-03 Martin Jambor <mjambor@suse.cz>
1262
1263 PR ipa/64153
1264 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
1265 type sizes before view_converting.
1266
1267 2014-12-03 H.J. Lu <hongjiu.lu@intel.com>
1268
1269 PR rtl-optimization/64151
1270 PR rtl-optimization/64156
1271 * ira-costs.c (scan_one_insn): Revert r218266.
1272
1273 2014-12-03 Richard Biener <rguenther@suse.de>
1274
1275 * builtins.c (fold_builtin_fpclassify): Change to take
1276 array of arguments instead of CALL_EXPR tree.
1277 (MAX_ARGS_TO_FOLD_BUILTIN): Remove.
1278 (fold_builtin_n): Dispatch to fold_builtin_varargs.
1279 (fold_call_expr): Always use fold_builtin_n.
1280 (fold_builtin_call_array): Change to not build the unfolded call,
1281 always use fold_builtin_n.
1282 (fold_builtin_varargs): Change to take array of arguments instead
1283 of CALL_EXPR tree.
1284 (fold_call_stmt): Always use fold_builtin_n.
1285 * tree.c (build_call_expr_loc_array): Use fold_build_call_array_loc.
1286 * fold-const.c (fold_build_call_array_loc): Build the call
1287 if fold_builtin_call_array returned NULL_TREE.
1288 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Do not build
1289 a CALL_EXPR and use fold_builtin_call_array instead of
1290 fold_call_expr.
1291
1292 2014-12-03 Alan Lawrence <alan.lawrence@arm.com>
1293
1294 * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>, orn<mode>3,
1295 bic<mode>3, add<mode>3, sub<mode>3, neg<mode>2, abs<mode>2, and<mode>3,
1296 ior<mode>3, xor<mode>3, one_cmpl<mode>2,
1297 aarch64_simd_lshr<mode> ,arch64_simd_ashr<mode>,
1298 aarch64_simd_imm_shl<mode>, aarch64_simd_reg_sshl<mode>,
1299 aarch64_simd_reg_shl<mode>_unsigned, aarch64_simd_reg_shr<mode>_signed,
1300 ashl<mode>3, lshr<mode>3, ashr<mode>3, vashl<mode>3,
1301 reduc_plus_scal_<mode>, aarch64_vcond_internal<mode><mode>,
1302 vcondu<mode><mode>, aarch64_cm<optab><mode>, aarch64_cmtst<mode>):
1303 Change VDQ to VDQ_I.
1304
1305 (mul<mode>3): Change VDQM to VDQ_BHSI.
1306 (aarch64_simd_vec_set<mode>,vashr<mode>3, vlshr<mode>3, vec_set<mode>,
1307 aarch64_mla<mode>, aarch64_mls<mode>, <su><maxmin><mode>3,
1308 aarch64_<sur>h<addsub><mode>): Change VQ_S to VDQ_BHSI.
1309
1310 (*aarch64_<su>mlal<mode>, *aarch64_<su>mlsl<mode>,
1311 aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>,
1312 aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>, aarch64_<sur>shll_n<mode>):
1313 Change VDW to VD_BHSI.
1314 (*aarch64_combinez<mode>, *aarch64_combinez_be<mode>):
1315 Change VDIC to VD_BHSI.
1316
1317 * config/aarch64/aarch64-simd-builtins.def (saddl, uaddl, ssubl, usubl,
1318 saddw, uaddw, ssubw, usubw, shadd, uhadd, srhadd, urhadd, sshll_n,
1319 ushll_n): Change BUILTIN_VDW to BUILTIN_VD_BHSI.
1320
1321 * config/aarch64/iterators.md (SDQ_I, VDQ, VQ_S, VSDQ_I_BHSI, VDQM, VDW,
1322 VDIC, VDQQHS): Remove.
1323 (Vwtype): Update comment (changing VDW to VD_BHSI).
1324
1325 2014-12-03 Richard Biener <rguenther@suse.de>
1326
1327 PR middle-end/14541
1328 * builtins.c (fold_builtin_logarithm): Implement simplifications ...
1329 * match.pd: ... here as patterns.
1330
1331 2014-12-03 Prachi Godbole <prachi.godbole@imgtec.com>
1332
1333 * config/mips/p5600.md (define_automaton, define_cpu_unit): Replace
1334 p5600_agen_pipe and p5600_alu_pipe with p5600_agen_alq_pipe.
1335 (p5600_int_arith_1, p5600_int_arith_2, p5600_int_arith_4): Change
1336 reservation order.
1337
1338 2014-12-03 Tom de Vries <tom@codesourcery.com>
1339
1340 PR rtl-optimization/63957
1341 * doc/invoke.texi: Replace -fuse-caller-save with -fipa-ra.
1342 * final.c (rest_of_handle_final): Replace flag_use_caller_save with
1343 flag_ipa_ra.
1344 (get_call_reg_set_usage): Same.
1345 * lra-assigns.c (lra_assign): Same.
1346 * lra-constraints.c (need_for_call_save_p): Same.
1347 * lra-lives.c (process_bb_lives): Same.
1348 * lra.c (lra): Same.
1349 * calls.c (expand_call): Same.
1350 (emit_library_call_value_1): Same.
1351 * config/arm/arm.c (arm_option_override): Same.
1352 * opts.c (default_options_table): Replace OPT_fuse_caller_save with
1353 OPT_fipa_ra.
1354 * target.def (call_fusage_contains_non_callee_clobbers): Replace
1355 fuse-caller-save with fipa-ra.
1356 * doc/tm.texi (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Same.
1357 * common.opt: Same.
1358
1359 2014-12-03 Yury Gribov <y.gribov@samsung.com>
1360
1361 * sanopt.c (maybe_get_single_definition): New function.
1362 (maybe_get_dominating_check): Ditto.
1363 (can_remove_asan_check): Ditto.
1364 (struct tree_map_traits): New struct.
1365 (struct sanopt_ctx): Use custom traits for asan_check_map.
1366 (maybe_optimize_ubsan_null_ifn): Move code to
1367 maybe_get_dominating_check.
1368 (maybe_optimize_asan_check_ifn): Move code and take non-SSA expressions
1369 into account when optimizing.
1370 (sanopt_optimize_walker): Optimize ASan checks even when
1371 recovering.
1372
1373 2014-12-03 Ilya Enkovich <ilya.enkovich@intel.com>
1374
1375 * config/i386/constraints.md (Yr): New.
1376 * config/i386/i386.h (reg_class): Add NO_REX_SSE_REGS.
1377 (REG_CLASS_NAMES): Likewise.
1378 (REG_CLASS_CONTENTS): Likewise.
1379 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add alternatives
1380 which use only NO_REX_SSE_REGS.
1381 (vec_set<mode>_0): Likewise.
1382 (*vec_setv4sf_sse4_1): Likewise.
1383 (sse4_1_insertps): Likewise.
1384 (*sse4_1_extractps): Likewise.
1385 (*sse4_1_mulv2siv2di3<mask_name>): Likewise.
1386 (*<sse4_1_avx2>_mul<mode>3<mask_name>): Likewise.
1387 (*sse4_1_<code><mode>3<mask_name>): Likewise.
1388 (*sse4_1_<code><mode>3): Likewise.
1389 (*sse4_1_eqv2di3): Likewise.
1390 (sse4_2_gtv2di3): Likewise.
1391 (*vec_extractv4si): Likewise.
1392 (*vec_concatv2si_sse4_1): Likewise.
1393 (vec_concatv2di): Likewise.
1394 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Likewise.
1395 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Likewise.
1396 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Likewise.
1397 (<vi8_sse4_1_avx2_avx512>_movntdqa): Likewise.
1398 (<sse4_1_avx2>_mpsadbw): Likewise.
1399 (<sse4_1_avx2>packusdw<mask_name>): Likewise.
1400 (<sse4_1_avx2>_pblendvb): Likewise.
1401 (sse4_1_pblendw): Likewise.
1402 (sse4_1_phminposuw): Likewise.
1403 (sse4_1_<code>v8qiv8hi2<mask_name>): Likewise.
1404 (sse4_1_<code>v4qiv4si2<mask_name>): Likewise.
1405 (sse4_1_<code>v4hiv4si2<mask_name>): Likewise.
1406 (sse4_1_<code>v2qiv2di2<mask_name>): Likewise.
1407 (sse4_1_<code>v2hiv2di2<mask_name>): Likewise.
1408 (sse4_1_<code>v2siv2di2<mask_name>): Likewise.
1409 (sse4_1_ptest): Likewise.
1410 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Likewise.
1411 (sse4_1_round<ssescalarmodesuffix>): Likewise.
1412 * config/i386/subst.md (mask_prefix4): New.
1413 * config/i386/x86-tune.def (X86_TUNE_AVOID_4BYTE_PREFIXES): New.
1414
1415 2014-12-03 Segher Boessenkool <segher@kernel.crashing.org>
1416
1417 PR rtl-optimization/52714
1418 * combine.c (try_combine): Allow combining two insns into two
1419 new insns if at least one of those is a noop.
1420
1421 2014-12-03 Bin Cheng <bin.cheng@arm.com>
1422
1423 * target.def (fusion_priority): Wrap code with @smallexample.
1424 * doc/tm.texi: Regenerated.
1425
1426 2014-12-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
1427
1428 * diagnostic.c (diagnostic_show_locus): Honor override_column when
1429 placing the caret.
1430
1431 2014-12-02 Dmitry Vyukov <dvyukov@google.com>
1432
1433 * asan.c: (asan_finish_file): Use default priority for constructors
1434 in kernel mode.
1435
1436 2014-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1437
1438 PR target/64115
1439 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
1440 invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
1441
1442 2014-12-02 H.J. Lu <hongjiu.lu@intel.com>
1443
1444 PR target/64108
1445 * config/i386/i386.c (decide_alg): Stop only if there aren't
1446 any usable algorithms.
1447
1448 2014-12-02 Tom de Vries <tom@codesourcery.com>
1449
1450 PR rtl-optimization/63718
1451 * config/arm/arm.c (arm_option_override): Disable fuse-caller-save for
1452 Thumb1.
1453
1454 2014-12-02 Richard Biener <rguenther@suse.de>
1455
1456 * match.pd: When combining divisions exclude the degenerate
1457 case involving INT_MIN from overflow handling.
1458
1459 2014-12-02 Wilco Dijkstra <wilco.dijkstra@arm.com>
1460
1461 * ira-costs.c (scan_one_insn): Improve spill cost adjustment.
1462
1463 2014-12-02 Martin Jambor <mjambor@suse.cz>
1464
1465 PR ipa/63814
1466 * ipa-cp.c (same_node_or_its_all_contexts_clone_p): New function.
1467 (cgraph_edge_brings_value_p): New parameter dest, use
1468 same_node_or_its_all_contexts_clone_p and check availability.
1469 (cgraph_edge_brings_value_p): Likewise.
1470 (get_info_about_necessary_edges): New parameter dest, pass it to
1471 cgraph_edge_brings_value_p. Update caller.
1472 (gather_edges_for_value): Likewise.
1473 (perhaps_add_new_callers): Use cgraph_edge_brings_value_p to check
1474 both the destination and availability.
1475
1476 2014-12-02 Uros Bizjak <ubizjak@gmail.com>
1477
1478 PR target/64113
1479 * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
1480 using post-reload splitter. Use peephole2 pass instead.
1481 (call_value_osf_tlsldm): Ditto.
1482 (TLS_CALL): New int iterator.
1483 (tls): New int attribute.
1484 (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
1485 and call_value_tlsldm using TLS_CALL int iterator.
1486
1487 2014-12-02 Richard Biener <rguenther@suse.de>
1488 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
1489
1490 * genmatch.c: Include hash-set.h.
1491 (fatal_at): Add source_location overload.
1492 (parser::record_operlist): New method.
1493 (parser::push_simplify): Likewise.
1494 (parser::oper_lists_set): New member.
1495 (parser::oper_lists): Likewise.
1496 (parser::parse_operation): Record seen operator list references.
1497 (parser::parse_c_expr): Likewise.
1498 (parser::parse_simplify): Init oper_lists_set and oper_lists
1499 and use push_simplify.
1500 (parser::parser): Init oper_lists_set and oper_lists.
1501
1502 2014-12-02 Richard Biener <rguenther@suse.de>
1503
1504 * match.pd: Restrict division combining to trunc_div and
1505 exact_div.
1506
1507 2014-12-02 Jakub Jelinek <jakub@redhat.com>
1508
1509 * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv):
1510 Remove NULL last argument from create_tmp_var calls.
1511 * config/mips/mips.c (mips_atomic_assign_expand_fenv): Likewise.
1512 * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Likewise.
1513 * config/i386/i386.c (add_condition_to_bb,
1514 ix86_atomic_assign_expand_fenv): Likewise.
1515 * config/mep/mep.c (mep_gimplify_va_arg_expr): Likewise.
1516 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
1517 * config/aarch64/aarch64-builtins.c
1518 (aarch64_atomic_assign_expand_fenv): Likewise.
1519 * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
1520 Likewise.
1521 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Likewise.
1522 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Likewise.
1523 * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
1524
1525 * config/alpha/alpha.c (alpha_gimple_fold_builtin): Use
1526 gimple_build_assign instead of gimple_build_assign_with_ops and swap
1527 the order of first two arguments.
1528 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
1529 Likewise. Remove last NULL_TREE argument.
1530
1531 2014-12-01 Segher Boessenkool <segher@kernel.crashing.org>
1532
1533 PR rtl-optimization/59278
1534 * combine (reg_dead_at_p): Consider REG_UNUSED notes.
1535
1536 2014-12-01 Segher Boessenkool <segher@kernel.crashing.org>
1537
1538 * combine.c (try_combine): Use is_parallel_of_n_reg_sets some more.
1539
1540 2014-12-01 Segher Boessenkool <segher@kernel.crashing.org>
1541
1542 * combine.c (is_parallel_of_n_reg_sets): New function.
1543 (can_split_parallel_of_n_reg_sets): New function.
1544 (try_combine): If I2 is a PARALLEL of two SETs, split it into
1545 two insns if possible.
1546
1547 2014-12-01 Tobias Burnus <burnus@net-b.de>
1548 Jack Howarth <howarth@bromo.med.uc.edu>
1549
1550 PR middle-end/64017
1551 * configure.ac (ac_has_isl_schedule_constraints_compute_schedule):
1552 New check.
1553 * doc/install.texi (ISL): Permit ISL 0.14.
1554 * graphite-optimize-isl.c (getScheduleForBandList, optimize_isl):
1555 Conditionally use ISL 0.13+ functions.
1556 * graphite-interchange.c: Make 'extern "C"' conditional.
1557 * graphite-isl-ast-to-gimple.c: Ditto.
1558 * graphite-poly.c: Ditto.
1559 * graphite-sese-to-poly.c: Ditto.
1560 * config.in: Regenerate.
1561 * gcc/configure: Regenerate.
1562
1563 2014-12-01 Segher Boessenkool <segher@kernel.crashing.org>
1564
1565 * combine.c (distribute_links): Handle multiple SETs.
1566
1567 2014-12-01 Segher Boessenkool <segher@kernel.crashing.org>
1568
1569 * combine.c (struct insn_link): New field `regno'.
1570 (alloc_insn_link): New parameter `regno'. Use it.
1571 (find_single_use): Check the new field.
1572 (can_combine_def_p, can_combine_use_p): New functions. Split
1573 off from ...
1574 (create_log_links): ... here. Correct data type of `regno'.
1575 Adjust call to alloc_insn_link.
1576 (adjust_for_new_dest): Find regno, use it in call to
1577 alloc_insn_link.
1578 (try_combine): Check reg_used_between_p when combining a PARALLEL
1579 as earlier insn. Adjust call to alloc_insn_link.
1580 (distribute_links): Check the new field.
1581
1582 2014-12-01 David Malcolm <dmalcolm@redhat.com>
1583
1584 PR jit/63854
1585 * real.c (real_from_string): Add missing mpfr_clear.
1586
1587 2014-12-01 David Malcolm <dmalcolm@redhat.com>
1588
1589 PR jit/63854
1590 * tree-ssa-math-opts.c (execute_cse_sincos_1): Fix a missing
1591 release of stmts by converting it to an auto_vec.
1592
1593 2014-12-01 Richard Biener <rguenther@suse.de>
1594
1595 * Makefile.in (gimple-match.o-warn): Use -Wno-unused instead of
1596 -Wno-unused-variable and -Wno-unused-but-set-variable to restore
1597 bootstrap with old GCC.
1598 (generic-match.o-warn): Likewise.
1599
1600 2014-12-01 Richard Biener <rguenther@suse.de>
1601
1602 * fold-const.c (const_binop): Handle POINTER_PLUS_EXPR.
1603 Properly handle FIXED_CST shifts by INTEGER_CST.
1604 (const_binop): Move COMPLEX_EXPR, VEC_PACK_TRUNC_EXPR,
1605 VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR,
1606 VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_EVEN_EXPR and
1607 VEC_WIDEN_MULT_ODD_EXPR handling here from ...
1608 (fold_binary_loc): ... here. Call const_binop overload
1609 with result type.
1610
1611 2014-12-01 Marek Polacek <polacek@redhat.com>
1612 Jakub Jelinek <jakub@redhat.com>
1613
1614 PR sanitizer/64121
1615 * ubsan.c (instrument_object_size): Stop searching if the base
1616 occurs in abnormal phi.
1617
1618 2014-12-01 Marek Polacek <polacek@redhat.com>
1619
1620 PR sanitizer/63956
1621 * ubsan.c (is_ubsan_builtin_p): Check also built-in class.
1622
1623 2014-12-01 Jakub Jelinek <jakub@redhat.com>
1624
1625 * gimple.h (gimple_build_assign_stat): Remove prototype.
1626 (gimple_build_assign): Remove define. Add overload prototypes
1627 with tree lhs and either a tree rhs, or enum tree_code and
1628 1, 2 or 3 tree operands.
1629 * gimple.c (gimple_build_assign_stat): Renamed to...
1630 (gimple_build_assign): ... this. Add overloads with
1631 enum tree_code and 1, 2 or 3 tree operands.
1632 (gimple_build_assign_with_ops): Remove 1 and 2 operand overloads.
1633 Rename the 3 operand overload to ...
1634 (gimple_build_assign_1): ... this. Make it static inline.
1635 * tree-ssa-strlen.c (get_string_length): Use gimple_build_assign
1636 instead of gimple_build_assign_with_ops, swap the order of first
1637 two arguments and adjust formatting where necessary.
1638 * tree-vect-slp.c (vect_get_constant_vectors,
1639 vect_create_mask_and_perm): Likewise.
1640 * tree-ssa-forwprop.c (simplify_rotate): Likewise.
1641 * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
1642 maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
1643 * tsan.c (instrument_builtin_call): Likewise.
1644 * tree-chkp.c (chkp_compute_bounds_for_assignment,
1645 chkp_generate_extern_var_bounds): Likewise.
1646 * tree-loop-distribution.c (generate_memset_builtin): Likewise.
1647 * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
1648 * gimple-builder.c (build_assign, build_type_cast): Likewise.
1649 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
1650 * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
1651 gimple_mod_subtract): Likewise.
1652 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
1653 * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
1654 vect_recog_sad_pattern, vect_handle_widen_op_by_const,
1655 vect_recog_widen_mult_pattern, vect_recog_pow_pattern,
1656 vect_recog_widen_sum_pattern, vect_operation_fits_smaller_type,
1657 vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern,
1658 vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
1659 vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
1660 adjust_bool_pattern_cast, adjust_bool_pattern,
1661 vect_recog_bool_pattern): Likewise.
1662 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge,
1663 insert_initializers, introduce_cast_before_cand,
1664 replace_one_candidate): Likewise.
1665 * tree-ssa-math-opts.c (insert_reciprocals, powi_as_mults_1,
1666 powi_as_mults, build_and_insert_binop, build_and_insert_cast,
1667 pass_cse_sincos::execute, bswap_replace, convert_mult_to_fma):
1668 Likewise.
1669 * tree-tailcall.c (adjust_return_value_with_ops,
1670 update_accumulator_with_ops): Likewise.
1671 * tree-predcom.c (reassociate_to_the_same_stmt): Likewise.
1672 * tree-ssa-reassoc.c (build_and_add_sum,
1673 optimize_range_tests_to_bit_test, update_ops,
1674 maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
1675 negate_value, repropagate_negates, attempt_builtin_powi,
1676 reassociate_bb): Likewise.
1677 * tree-vect-loop.c (vect_is_simple_reduction_1,
1678 get_initial_def_for_induction, vect_create_epilog_for_reduction):
1679 Likewise.
1680 * ipa-split.c (split_function): Likewise.
1681 * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
1682 abs_replacement, neg_replacement): Likewise.
1683 * tree-profile.c (gimple_gen_edge_profiler): Likewise.
1684 * tree-vrp.c (simplify_truth_ops_using_ranges,
1685 simplify_float_conversion_using_ranges,
1686 simplify_internal_call_using_ranges): Likewise.
1687 * gimple-fold.c (rewrite_to_defined_overflow, gimple_build): Likewise.
1688 * tree-vect-generic.c (expand_vector_divmod,
1689 optimize_vector_constructor): Likewise.
1690 * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn,
1691 instrument_bool_enum_load): Likewise.
1692 * tree-ssa-loop-manip.c (create_iv): Likewise.
1693 * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
1694 expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
1695 expand_cilk_for, simd_clone_adjust): Likewise.
1696 * trans-mem.c (expand_transaction): Likewise.
1697 * tree-vect-data-refs.c (bump_vector_ptr, vect_permute_store_chain,
1698 vect_setup_realignment, vect_permute_load_chain,
1699 vect_shift_permute_load_chain): Likewise.
1700 * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
1701 vectorizable_simd_clone_call, vect_gen_widened_results_half,
1702 vect_create_vectorized_demotion_stmts, vectorizable_conversion,
1703 vectorizable_shift, vectorizable_operation, vectorizable_store,
1704 permute_vec_elements, vectorizable_load): Likewise.
1705
1706 2014-12-01 Richard Biener <rguenther@suse.de>
1707
1708 PR middle-end/64111
1709 * tree.c (int_cst_hasher::hash): Use TYPE_UID instead of
1710 htab_hash_pointer to not break PCH.
1711
1712 2014-12-01 Richard Biener <rguenther@suse.de>
1713
1714 PR tree-optimization/15346
1715 * Makefile.in (gimple-match.o-warn): Remove -Wno-unused-parameter,
1716 add -Wno-unused-but-set-variable.
1717 * match.pd: Combine two successive divisions.
1718
1719 2014-12-01 Richard Biener <rguenther@suse.de>
1720
1721 PR middle-end/64126
1722 * match.pd: Allow conversions in ~A + 1 -> -A, add -A - 1 -> ~A
1723 and -1 - A -> ~A.
1724 * fold-const.c (fold_binary_loc): Remove transforms here.
1725
1726 2014-12-01 Maciej W. Rozycki <macro@codesourcery.com>
1727
1728 * config/mips/mips.c (mips16_build_call_stub): Move the save of
1729 the return address in $18 ahead of passing arguments to FPRs.
1730
1731 2014-12-01 Ilya Enkovich <ilya.enkovich@intel.com>
1732
1733 PR target/64055
1734 * tree-chkp.c (chkp_find_bound_slots_1): Allow non constant
1735 values in array domain.
1736
1737 2014-12-01 Yuri Rumyantsev <ysrumyan@gmail.com>
1738
1739 PR tree-optimization/63941
1740 * tree-if-conv.c (add_to_predicate_list): Delete wrong assertion that
1741 DOM_BB has non-true predicate, conditionally set non-true predicate
1742 for BB.
1743
1744 2014-12-01 Martin Jambor <mjambor@suse.cz>
1745
1746 PR ipa/63551
1747 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
1748 value of the argument to the type of the value in the condition.
1749
1750 2014-12-01 Oleg Endo <olegendo@gcc.gnu.org>
1751
1752 PR target/63986
1753 PR target/51244
1754 * config/sh/sh.c (sh_unspec_insn_p,
1755 sh_insn_operands_modified_between_p): New functions.
1756 (sh_split_movrt_negc_to_movt_xor): Do not delete insn if its operands
1757 are modified or if it has side effects, may trap or is volatile.
1758
1759 2014-11-29 Jakub Jelinek <jakub@redhat.com>
1760
1761 * gimple-expr.h (create_tmp_var_raw, create_tmp_var,
1762 create_tmp_reg): Add default NULL value to last argument.
1763 * tree-ssanames.h (make_ssa_name, copy_ssa_name): Likewise.
1764 * gimple-low.c (lower_builtin_posix_memalign): Remove NULL
1765 last argument from create_tmp_var_raw, create_tmp_var,
1766 create_tmp_reg, make_ssa_name and copy_ssa_name calls.
1767 * tree-ssa-strlen.c (get_string_length): Likewise.
1768 * tree-emutls.c (gen_emutls_addr, lower_emutls_1): Likewise.
1769 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
1770 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
1771 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
1772 * tree-ssa-forwprop.c (simplify_rotate): Likewise.
1773 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
1774 * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
1775 maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
1776 * tsan.c (instrument_expr, instrument_builtin_call,
1777 instrument_func_entry): Likewise.
1778 * varpool.c (add_new_static_var): Likewise.
1779 * tree-loop-distribution.c (generate_memset_builtin): Likewise.
1780 * gimplify.c (internal_get_tmp_var, gimplify_return_expr,
1781 gimplify_modify_expr_to_memcpy, gimplify_modify_expr_to_memset,
1782 gimplify_init_ctor_eval_range, gimplify_init_constructor,
1783 gimplify_omp_atomic, gimplify_expr): Likewise.
1784 * gimple-builder.c (build_assign, build_type_cast): Likewise.
1785 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1,
1786 slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge,
1787 vect_loop_versioning): Likewise.
1788 * tree-if-conv.c (version_loop_for_if_conversion): Likewise.
1789 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
1790 * tree-vect-patterns.c (vect_handle_widen_op_by_const,
1791 vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
1792 vect_recog_over_widening_pattern): Likewise.
1793 * tree-sra.c (build_ref_for_offset, create_access_replacement):
1794 Likewise.
1795 * tree-cfg.c (make_blocks): Likewise.
1796 * tree-eh.c (lower_eh_constructs_2, lower_resx, lower_eh_dispatch):
1797 Likewise.
1798 * tree-ssa-propagate.c (update_call_from_tree): Likewise.
1799 * tree-complex.c (get_component_ssa_name, expand_complex_div_wide):
1800 Likewise.
1801 * tree-ssa-math-opts.c (build_and_insert_cast): Likewise.
1802 * tree-tailcall.c (update_accumulator_with_ops): Likewise.
1803 * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm,
1804 execute_load_motion, reassociate_to_the_same_stmt): Likewise.
1805 * tree-ssa-reassoc.c (build_and_add_sum,
1806 optimize_range_tests_to_bit_test, update_ops,
1807 maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
1808 negate_value, repropagate_negates): Likewise.
1809 * tree-vect-loop.c (vect_is_simple_reduction_1,
1810 vect_create_epilog_for_reduction): Likewise.
1811 * ipa-split.c (split_function): Likewise.
1812 * tree-inline.c (remap_ssa_name, setup_one_parameter,
1813 declare_return_variable, tree_function_versioning): Likewise.
1814 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
1815 * cfgexpand.c (update_alias_info_with_stack_vars, expand_used_vars):
1816 Likewise.
1817 * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
1818 neg_replacement): Likewise.
1819 * gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
1820 Likewise.
1821 * tree-vrp.c (simplify_truth_ops_using_ranges,
1822 simplify_float_conversion_using_ranges,
1823 simplify_internal_call_using_ranges): Likewise.
1824 * tree-switch-conversion.c (emit_case_bit_tests,
1825 build_one_array, build_arrays, gen_def_assigns): Likewise.
1826 * gimple-fold.c (gimple_fold_builtin_memory_op,
1827 gimple_fold_builtin_strcat, gimple_fold_call, gimple_build): Likewise.
1828 * tree-vect-generic.c (expand_vector_divmod,
1829 optimize_vector_constructor): Likewise.
1830 * ubsan.c (ubsan_encode_value, ubsan_expand_null_ifn,
1831 ubsan_expand_objsize_ifn, instrument_si_overflow,
1832 instrument_bool_enum_load, instrument_nonnull_arg): Likewise.
1833 * tree-outof-ssa.c (insert_backedge_copies): Likewise.
1834 * tree-ssa-loop-manip.c (create_iv,
1835 tree_transform_and_unroll_loop): Likewise.
1836 * omp-low.c (scan_omp_parallel, lower_rec_simd_input_clauses,
1837 lower_rec_input_clauses, lower_lastprivate_clauses,
1838 expand_parallel_call, expand_omp_for_static_chunk,
1839 expand_omp_atomic_pipeline, expand_omp_target,
1840 maybe_add_implicit_barrier_cancel, lower_omp_single_simple,
1841 lower_omp_critical, lower_omp_for, task_copyfn_copy_decl,
1842 lower_depend_clauses, lower_omp_target, lower_omp_1,
1843 ipa_simd_modify_stmt_ops, simd_clone_adjust): Likewise.
1844 * tree-parloops.c (take_address_of, create_phi_for_local_result,
1845 create_call_for_reduction_1, separate_decls_in_region,
1846 create_parallel_loop): Likewise.
1847 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence,
1848 handle_scalar_deps_crossing_scop_limits): Likewise.
1849 * trans-mem.c (lower_transaction, build_tm_load, build_tm_store,
1850 expand_assign_tm, expand_call_tm, expand_transaction,
1851 ipa_tm_insert_gettmclone_call): Likewise.
1852 * tree-vect-data-refs.c (bump_vector_ptr, vect_setup_realignment):
1853 Likewise.
1854 * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
1855 vectorizable_call, vectorizable_simd_clone_call,
1856 vectorizable_conversion, vectorizable_store, permute_vec_elements,
1857 vectorizable_load): Likewise.
1858
1859 2014-11-29 Tobias Burnus <burnus@net-b.de>
1860 Manuel López-Ibáñez <manu@gcc.gnu.org>
1861
1862 * opt-functions.awk (lang_enabled_by): Support || for
1863 enabled-by.
1864 * optc-gen.awk: Ditto.
1865 * doc/options.texi (LangEnabledBy, EnabledBy): Document the
1866 || syntax.
1867
1868 2014-11-28 Mike Stump <mikestump@comcast.net>
1869
1870 * bitmap.c (bitmap_ior): Zap current as it could be deleted.
1871 (bitmap_ior_and_compl): Likewise.
1872
1873 2014-11-28 Vladimir Makarov <vmakarov@redhat.com>
1874
1875 PR target/64061
1876 * lra.c (lra_substitute_pseudo): Ignore constant with int mode for
1877 subreg.
1878
1879 2014-11-28 Segher Boessenkool <segher@kernel.crashing.org>
1880
1881 PR target/64093
1882 * config/rs6000/rs6000.md (and<mode>3): Don't generate
1883 and<mode>3_imm unless rs6000_gen_cell_microcode is true.
1884
1885 2014-11-28 Vladimir Makarov <vmakarov@redhat.com>
1886
1887 PR rtl-optimization/64087
1888 * lra-lives.c (process_bb_lives): Add debug output.
1889 (lra_create_live_ranges): Don't remove dead insn on the second
1890 call of lra_create_live_ranges_1.
1891
1892 2014-11-28 H.J. Lu <hongjiu.lu@intel.com>
1893
1894 PR rtl-optimization/64037
1895 * combine.c (setup_incoming_promotions): Pass the argument
1896 before any promotions happen to promote_function_mode.
1897
1898 2014-11-28 Evgeny Stupachenko <evstupac@gmail.com>
1899
1900 * tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift
1901 permutations to loads group of size 3.
1902
1903 2014-11-28 Jiong Wang <jiong.wang@arm.com>
1904
1905 * config/arm/arm.md (copysignsf3): New pattern.
1906 (copysigndf3): Likewise.
1907
1908 2014-11-28 Andrey Turetskiy <andrey.turetskiy@intel.com>
1909 Ilya Verbin <ilya.verbin@intel.com>
1910
1911 * omp-low.c (lower_omp_critical): Mark critical sections
1912 inside target functions as offloadable.
1913
1914 2014-11-28 Ilya Verbin <ilya.verbin@intel.com>
1915
1916 * lto-wrapper.c (run_gcc): Set have_lto and have_offload if at least one
1917 file contains sections with LTO and offload IR, respectively.
1918
1919 2014-11-28 Ilya Verbin <ilya.verbin@intel.com>
1920
1921 * cgraphunit.c (ipa_passes): Handle flag_generate_offload.
1922 (symbol_table::compile): Set flag_generate_offload if there is something
1923 to offload.
1924 * common.opt (flag_generate_offload): New Variable declaration.
1925 * dwarf2out.c (dwarf2out_finish): Handle flag_generate_offload.
1926 * ipa-inline-analysis.c (inline_generate_summary): Do not skip if
1927 flag_generate_offload is set.
1928 * lto-streamer.c (gate_lto_out): Handle flag_generate_offload.
1929 * passes.c (ipa_write_summaries): Do not skip if flag_generate_offload
1930 is set.
1931 * toplev.c (compile_file): Emit LTO marker if offload info has been
1932 previously emitted. Do not emit lto_slim marker if
1933 flag_generate_offload is without flag_generate_lto.
1934 * tree.c (free_lang_data): Do not skip if flag_generate_offload is set.
1935
1936 2014-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1937
1938 * config/arm/arm-cores.def (cortex-a17.cortex-a7): New entry.
1939 * config/arm/arm-tables.opt: Regenerate.
1940 * config/arm/arm-tune.md: Regenerate.
1941 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a17.cortex-a7.
1942 * config/arm/t-aprofile: Add cortex-a17.cortex-a7 entry to
1943 MULTILIB_MATCHES.
1944
1945 2014-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1946
1947 * config/arm/arm.md (generic_sched): Specify cortexa17 in 'no' list.
1948 Include cortex-a17.md.
1949 * config/arm/arm.c (arm_issue_rate): Specify 2 for cortexa17.
1950 * config/arm/arm-cores.def (cortex-a17): New entry.
1951 * config/arm/arm-tables.opt: Regenerate.
1952 * config/arm/arm-tune.md: Regenerate.
1953 * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=cortex-a17.
1954 * config/arm/cortex-a17.md: New file.
1955 * config/arm/cortex-a17-neon.md: New file.
1956 * config/arm/driver-arm.c (arm_cpu_table): Add entry for cortex-a17.
1957 * config/arm/t-aprofile: Add cortex-a17 entries to MULTILIB_MATCHES.
1958
1959 2014-11-28 Richard Biener <rguenther@suse.de>
1960
1961 PR middle-end/64084
1962 * genmatch.c (dt_node::gen_kids_1): New function, split out
1963 from dt_node::gen_kids.
1964 (decision_tree::cmp_node): DT_TRUE are generally not equal.
1965 (decision_tree::find_node): Treat DT_TRUE as barrier for
1966 node CSE on the same level.
1967 (dt_node::append_node): Do not keep DT_TRUE last.
1968 (dt_node::gen_kids): Emit code after each DT_TRUE node seen.
1969
1970 2014-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1971
1972 * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
1973 -march=armv8-a+crc.
1974
1975 2014-11-27 Uros Bizjak <ubizjak@gmail.com>
1976
1977 * config/i386/i386.md (preferred_for_size): New attribute
1978 (*pushxf): Split Yx*r constraints to r,*r. Use preferred_for_size
1979 attribute to conditionally disable alternative 1.
1980 (*pushdf): Split Yd*r constraints to r,*r. Use preferred_for_size
1981 and prefered_for_speed attributes to conditionally disable
1982 alternative 1.
1983 (*movxf_internal): Split Yx*r constraints to r,*r. Use
1984 preferred_for_size attribute to conditionally disable
1985 alternatives 3 and 4.
1986 (*movdf_internal): Split Yd*r constraints to r,*r. Use
1987 preferred_for_size and prefered_for_speed attributes to conditionally
1988 disable alternatives 3 and 4.
1989 * config/i386/constraints.md (Yd, Yx): Remove register constraints.
1990
1991 2014-11-27 Eric Botcazou <ebotcazou@adacore.com>
1992
1993 * dwarf2out.c (set_block_origin_self): Skip nested functions.
1994
1995 2014-11-27 H.J. Lu <hongjiu.lu@intel.com>
1996
1997 PR target/63833
1998 * config/i386/i386.h (REAL_PIC_OFFSET_TABLE_REGNUM): Use
1999 R15_REG for 64-bit.
2000 * config/i386/rdos64.h (REAL_PIC_OFFSET_TABLE_REGNUM): Removed.
2001
2002 2014-11-27 Martin Liska <mliska@suse.cz>
2003 David Malcolm <dmalcolm@redhat.com>
2004
2005 * ipa-icf.c (sem_function::equals_private): int* is replaced with
2006 auto_vec.
2007 (sem_function::bb_dict_test): Likewise.
2008 * ipa-icf.h: Likewise.
2009
2010 2014-11-27 Richard Biener <rguenther@suse.de>
2011
2012 PR middle-end/64088
2013 * fold-const.c (const_unop): Re-instantiate missing condition
2014 before calling fold_abs_const.
2015
2016 PR tree-optimization/64088
2017 * tree-ssa-tail-merge.c (update_debug_stmt): After resetting
2018 the stmt break from the loop over use operands.
2019
2020 2014-11-27 Ilya Tocar <ilya.tocar@intel.com>
2021
2022 * config/i386/cpuid.h (bit_MPX, bit_BNDREGS, bit_BNDCSR):
2023 Define.
2024 * config/i386/i386.c (get_builtin_code_for_version): Add avx512f.
2025 (fold_builtin_cpu): Ditto.
2026 * doc/extend.texi: Documment it.
2027
2028 2014-11-27 Jakub Jelinek <jakub@redhat.com>
2029
2030 PR middle-end/64067
2031 * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
2032 Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
2033 not only if modifier is EXPAND_INITIALIZER, but whenever
2034 COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
2035
2036 PR tree-optimization/64024
2037 * tree-vectorizer.h (struct _stmt_vec_info): Remove simd_clone_fndecl
2038 field. Add simd_clone_info field.
2039 (STMT_VINFO_SIMD_CLONE_FNDECL): Remove.
2040 (STMT_VINFO_SIMD_CLONE_INFO): Define.
2041 * tree-vect-stmts.c (vectorizable_simd_clone_call): Adjust for
2042 STMT_VINFO_SIMD_CLONE_FNDECL becoming first element of
2043 STMT_VINFO_SIMD_CLONE_INFO vector. For linear arguments, remember
2044 base and linear_step from analysis phase and use it during transform
2045 phase, biased by the difference between LOOP_VINFO_NITERS{_UNCHANGED,}
2046 multiplied by linear_step.
2047 (free_stmt_vec_info): Release STMT_VINFO_SIMD_CLONE_INFO.
2048
2049 PR lto/64025
2050 * alias.c (find_base_term): Use std::swap. Prefer tmp2
2051 if it is CONSTANT_P other than CONST_INT.
2052
2053 2014-11-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
2054
2055 PR target/59593
2056 * config/arm/arm.c (dump_minipool): dispatch to consttable pattern
2057 based on mode size.
2058 * config/arm/arm.md (consttable_1): Move from config/arm/thumb1.md and
2059 make it TARGET_EITHER.
2060 (consttable_2): Move from config/arm/thumb1.md, make it TARGET_EITHER
2061 and move HFmode handling from consttable_4 to it.
2062 (consttable_4): Move HFmode handling to consttable_2 pattern.
2063 * config/arm/thumb1.md (consttable_1): Move to config/arm/arm.md.
2064 (consttable_2): Ditto.
2065
2066 2014-11-27 Richard Biener <rguenther@suse.de>
2067
2068 * tree-ssa-sccvn.c (try_to_simplify): Allow
2069 gimple_fold_stmt_to_constant_1 to follow SSA edges.
2070
2071 2014-11-27 Richard Biener <rguenther@suse.de>
2072
2073 PR tree-optimization/64083
2074 * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2075 forcibly mark loop for removal the wrong way.
2076
2077 2014-11-27 Richard Biener <rguenther@suse.de>
2078
2079 PR middle-end/63704
2080 * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
2081 and instead return false when !fstrict-aliasing.
2082
2083 2014-11-27 Richard Biener <rguenther@suse.de>
2084
2085 PR tree-optimization/61634
2086 * tree-vect-slp.c: Include gimple-walk.h.
2087 (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
2088 down the SLP tree for one scalar statement.
2089 (vect_detect_hybrid_slp_1): New walker function.
2090 (vect_detect_hybrid_slp_2): Likewise.
2091 (vect_detect_hybrid_slp): Properly handle pattern statements
2092 in a pre-scan over all loop stmts.
2093
2094 2014-11-27 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2095
2096 Revert:
2097 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2098 * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
2099 aarch64_convert_mode, aarch64_gen_ccmp_first,
2100 aarch64_gen_ccmp_next): New functions.
2101 (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
2102
2103 2014-11-26 Jakub Jelinek <jakub@redhat.com>
2104
2105 * gcc.c (SANITIZER_SPEC): Don't error on -fsanitize=thread
2106 without -pie or -shared, error on -fsanitize=thread -static instead.
2107
2108 2014-11-26 Bernd Edlinger <bernd.edlinger@hotmail.de>
2109
2110 PR ipa/61190
2111 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Fix comment.
2112 (cgraph_node::function_or_virtual_thunk_symbol): New function.
2113 (cgraph_node::call_for_symbol_and_aliases): Fix comment.
2114 (cgraph_node::call_for_symbol_thunks_and_aliases): Adjust comment.
2115 Add new optional parameter exclude_virtual_thunks.
2116 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Add new
2117 optional parameter exclude_virtual_thunks.
2118 (cgraph_node::set_const_flag): Don't propagate to virtual thunks.
2119 (cgraph_node::set_pure_flag): Likewise.
2120 (cgraph_node::function_symbol): Simplified.
2121 (cgraph_node::function_or_virtual_thunk_symbol): New function.
2122 * ipa-pure-const.c (analyze_function): For virtual thunks set
2123 pure_const_state to IPA_NEITHER.
2124 (propagate_pure_const): Use function_or_virtual_thunk_symbol.
2125
2126 2014-11-26 Richard Biener <rguenther@suse.de>
2127
2128 PR middle-end/63738
2129 * tree-data-ref.c (split_constant_offset_1): Do not follow
2130 SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2131
2132 2014-11-26 Richard Biener <rguenther@suse.de>
2133
2134 * fold-const.h (const_unop): Declare.
2135 (const_binop): Likewise.
2136 * fold-const.c (const_binop): Export overload that expects
2137 a type parameter and dispatches to fold_relational_const as well.
2138 Check both operand kinds for guarding the transforms.
2139 (const_unop): New function, with constant folding from fold_unary_loc.
2140 (fold_unary_loc): Dispatch to const_unop for tcc_constant operand.
2141 Remove constant folding done there from the simplifications.
2142 (fold_binary_loc): Check for constants using CONSTANT_CLASS_P.
2143 (fold_negate_expr): Remove dead code from the REAL_CST case.
2144 Avoid building garbage in the COMPLEX_CST case.
2145 * gimple-match-head.c (gimple_resimplify1): Dispatch to
2146 const_unop.
2147 (gimple_resimplify2): Dispatch to const_binop.
2148 (gimple_simplify): Likewise.
2149
2150 2014-11-26 Ilya Enkovich <ilya.enkovich@intel.com>
2151
2152 PR bootstrap/63995
2153 * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Ignore
2154 debug statement when searching for a new position for
2155 bounds load/creation statement.
2156
2157 2014-11-26 Marek Polacek <polacek@redhat.com>
2158
2159 PR sanitizer/63788
2160 * asan.c (initialize_sanitizer_builtins): Add BT_FN_SIZE_CONST_PTR_INT
2161 var. Conditionally build BUILT_IN_OBJECT_SIZE decl.
2162 (ATTR_PURE_NOTHROW_LEAF_LIST): Define.
2163
2164 2014-11-26 Ilya Enkovich <ilya.enkovich@intel.com>
2165
2166 PR lto/64075
2167 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Use
2168 proper size for function_code bitfield.
2169 (pack_ts_function_decl_value_fields): Likewise.
2170
2171 2014-11-21 Mark Wielaard <mjw@redhat.com>
2172
2173 * doc/invoke.texi (-gdwarf-@{version}): Mention experimental DWARFv5.
2174 * opts.c (common_handle_option): Accept -gdwarf-5.
2175 * dwarf2out.c (is_cxx): Add DW_LANG_C_plus_plus_11 and
2176 DW_LANG_C_plus_plus_14.
2177 (lower_bound_default): Likewise. Plus DW_LANG_C11.
2178 (gen_compile_unit_die): Output DW_LANG_C_plus_plus_11,
2179 DW_LANG_C_plus_plus_14 or DW_LANG_C11.
2180 (output_compilation_unit_header): Output at most a DWARFv4 header.
2181 (output_skeleton_debug_sections): Likewise.
2182 (output_line_info): Likewise.
2183 (output_aranges): Document header version number.
2184
2185 2014-11-26 Richard Biener <rguenther@suse.de>
2186
2187 * gimple-fold.c (get_symbol_constant_value): Allow all
2188 GIMPLE register type zero-constants.
2189
2190 2014-11-26 Mark Wielaard <mjw@redhat.com>
2191
2192 * dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the
2193 function decl has TREE_THIS_VOLATILE.
2194
2195 2014-11-26 Richard Biener <rguenther@suse.de>
2196
2197 PR tree-optimization/62238
2198 * tree-predcom.c (ref_at_iteration): Unshare the expression
2199 before gimplifying it.
2200 (prepare_initializers_chain): Discard unused seq.
2201
2202 2014-11-26 Prachi Godbole <prachi.godbole@imgtec.com>
2203
2204 * config/mips/mips.c (mips_rtx_cost_data): Fix memory_latency cost
2205 for p5600.
2206
2207 2014-11-25 Vladimir Makarov <vmakarov@redhat.com>
2208
2209 * ira-lives.c (process_bb_node_lives): Make code with conditional
2210 REAL_PIC_OFFSET_TABLE_REGNUM.
2211
2212 2014-11-25 Vladimir Makarov <vmakarov@redhat.com>
2213
2214 PR target/63527
2215 * ira-lives.c (process_bb_node_lives): Check and remove conflict
2216 of pic pseudo with pic hard reg.
2217
2218 2014-11-25 Rohit <rohitarulraj@freescale.com>
2219
2220 PR bootstrap/63703
2221 * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
2222 added GCC hard register numbers for SPE high registers.
2223
2224 2014-11-25 Segher Boessenkool <segher@kernel.crashing.org>
2225
2226 * bt-load.c (migrate_btr_defs): Get the key of a heap entry
2227 before removing it, not after.
2228
2229 2014-11-25 Segher Boessenkool <segher@kernel.crashing.org>
2230
2231 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Remove
2232 PATTERN call.
2233
2234 2014-11-25 Segher Boessenkool <segher@kernel.crashing.org>
2235
2236 * config/rs6000/sysv4.h (ASM_OUTPUT_REG_POP): Use addi instead
2237 of addic.
2238
2239 2014-11-25 Segher Boessenkool <segher@kernel.crashing.org>
2240
2241 * config/rs6000/rs6000.md (iorxor, IORXOR): Delete code_attrs.
2242 (rest of file): Replace those with code resp. CODE.
2243
2244 2014-11-25 Tom de Vries <tom@codesourcery.com>
2245
2246 * tree-cfg.c (verify_sese): New function.
2247 (move_sese_region_to_fn): Call verify_sese.
2248 * tree-cfg.h (verify_sese): Declare.
2249
2250 2014-11-25 Richard Biener <rguenther@suse.de>
2251
2252 PR lto/64065
2253 * lto-streamer-out.c (output_struct_function_base): Stream
2254 last_clique field.
2255 * lto-streamer-in.c (input_struct_function_base): Likewise.
2256
2257 2014-11-25 Martin Liska <mliska@suse.cz>
2258
2259 PR bootstrap/64050
2260 PR ipa/64060
2261 * sreal.c (sreal::operator+): Addition fixed.
2262 (sreal::signedless_plus): Negative numbers are
2263 handled correctly.
2264 (sreal::operator-): Subtraction is fixed.
2265 (sreal::signedless_minus): Negative numbers are
2266 handled correctly.
2267 * sreal.h (sreal::operator<): Equal negative numbers
2268 are compared correctly.
2269 (sreal::shift): New checking asserts are introduced.
2270 Operation is fixed.
2271
2272 2014-11-25 Richard Biener <rguenther@suse.de>
2273
2274 PR tree-optimization/61927
2275 * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
2276 of group and pattern analysis to the one in GCC 4.8.
2277
2278 2014-11-25 Ilya Tocar <ilya.tocar@intel.com>
2279 Jakub Jelinek <jakub@redhat.com>
2280
2281 * gcc.c (handle_foffload_option): Remove unnecessary calls to strchr,
2282 strlen, strncpy.
2283 * lto-wrapper.c (append_offload_options): Likewise.
2284
2285 2014-11-25 Eric Botcazou <ebotcazou@adacore.com>
2286
2287 * config/rs6000/rs6000.c (rs6000_call_aix): For the AIX ABI, do not
2288 load the static chain if the call was originally direct.
2289
2290 2014-11-25 Jan Hubicka <hubicka@ucw.cz>
2291
2292 PR ipa/64059
2293 * ipa-prop.c (ipa_analyze_call_uses): Don't call get_dynamic_type when
2294 devirtualization is disabled.
2295
2296 2014-11-24 Michael Meissner <meissner@linux.vnet.ibm.com>
2297
2298 PR target/63965
2299 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
2300 Altivec & -16 mask if the type is not valid for Altivec registers.
2301 (rs6000_secondary_reload_memory): Add support for ((reg + const) +
2302 reg) that occurs during push_reload processing.
2303
2304 * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
2305 alternative for moving constant vectors which are easy altivec
2306 constants to GPRs. Set the length attribute each of the
2307 alternatives.
2308
2309 * config/rs6000/rs6000-cpus.def: Undo November 21st changes, a
2310 work in progress patch was committed instead of the fixes for
2311 63965.
2312 * config/rs6000/rs6000.c: Likewise.
2313
2314 2014-11-22 Jan Hubicka <hubicka@ucw.cz>
2315
2316 PR ipa/63671
2317 * ipa-inline-transform.c (can_remove_node_now_p_1): Handle alises
2318 and -fno-devirtualize more carefully.
2319 (can_remove_node_now_p): Update.
2320
2321 2014-11-24 Andrew Pinski <apinski@cavium.com>
2322
2323 PR rtl-opt/63972
2324 * shrink-wrap.c (move_insn_for_shrink_wrap): Allow LO_SUM also.
2325
2326 2014-11-24 Alan Lawrence <alan.lawrence@arm.com>
2327
2328 * config/aarch64/aarch64-simd.md (vec_shr<mode>): New.
2329
2330 2014-11-24 Alan Lawrence <alan.lawrence@arm.com>
2331
2332 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
2333 Refactor by combining switch statements and make arrays into scalars.
2334
2335 2014-11-24 David Edelsohn <dje.gcc@gmail.com>
2336
2337 PR c++/58561
2338 * dbxout.c: Include stringpool.h
2339 (dbxout_type) [default]: Ignore auto type.
2340
2341 2014-11-24 Richard Biener <rguenther@suse.de>
2342
2343 PR tree-optimization/63679
2344 * tree-ssa-sccvn.c: Include ipa-ref.h, plugin-api.h and cgraph.h.
2345 (copy_reference_ops_from_ref): Fix non-constant ADDR_EXPR case
2346 to properly leave off at -1.
2347 (fully_constant_vn_reference_p): Generalize folding from
2348 constant initializers.
2349 (vn_reference_lookup_3): When looking through aggregate copies
2350 handle offsetted reads and try simplifying the result to
2351 a constant.
2352 * gimple-fold.h (fold_ctor_reference): Export.
2353 * gimple-fold.c (fold_ctor_reference): Likewise.
2354
2355 2014-11-24 Petr Murzin <petr.murzin@intel.com>
2356
2357 * simplify-rtx.c (simplify_ternary_operation): Simplify
2358 vec_merge (vec_duplicate (vec_select)).
2359
2360 2014-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2361
2362 * config/aarch64/aarch64.c (AARCH64_FUSE_ADRP_LDR): Define.
2363 (cortexa53_tunings): Specify AARCH64_FUSE_ADRP_LDR in fuseable_ops.
2364 (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_LDR.
2365
2366 2014-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2367
2368 * config/aarch64/aarch64.c (AARCH64_FUSE_MOVK_MOVK): Define.
2369 (cortexa53_tunings): Specify AARCH64_FUSE_MOVK_MOVK in fuseable_ops.
2370 (cortexa57_tunings): Likewise.
2371 (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_MOVK_MOVK.
2372
2373 2014-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2374
2375 * sched-deps.c (sched_macro_fuse_insns): Do not check modified_in_p
2376 in the not conditional jump case.
2377 * doc/tm.texi (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
2378 * target.def (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
2379
2380 2014-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2381
2382 * config/aarch64/aarch64.c: Include tm-constrs.h
2383 (AARCH64_FUSE_ADRP_ADD): Define.
2384 (cortexa57_tunings): Add AARCH64_FUSE_ADRP_ADD to fuseable_ops.
2385 (cortexa53_tunings): Likewise.
2386 (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_ADD.
2387
2388 2014-11-24 Martin Liska <mliska@suse.cz>
2389
2390 * ipa-inline.c (edge_badness): long is replaced by sreal
2391 as fibonacci_heap template type.
2392 (update_edge_key): Likewise.
2393 (inline_small_functions): Likewise.
2394
2395 2014-11-24 Martin Liska <mliska@suse.cz>
2396
2397 * predict.c (propagate_freq): More elegant sreal API is used.
2398 (estimate_bb_frequencies): Precomputed constants replaced by integer
2399 constants.
2400 * sreal.c (sreal::normalize): New function.
2401 (sreal::to_int): Likewise.
2402 (sreal::operator+): Likewise.
2403 (sreal::operator-): Likewise.
2404 (sreal::signedless_plus): Likewise.
2405 (sreal::signedless_minus): Likewise.
2406 (sreal::operator/): Negative number support is added.
2407 * sreal.h: Definition of new functions added.
2408 (inline sreal operator<<): New function.
2409 (inline sreal operator>>): Likewise.
2410
2411 2014-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2412
2413 * config/aarch64/aarch64-protos.h (struct tune_params): Add
2414 fuseable_ops field.
2415 * config/aarch64/aarch64.c (generic_tunings): Specify fuseable_ops.
2416 (cortexa53_tunings): Likewise.
2417 (cortexa57_tunings): Likewise.
2418 (thunderx_tunings): Likewise.
2419 (aarch64_macro_fusion_p): New function.
2420 (aarch_macro_fusion_pair_p): Likewise.
2421 (TARGET_SCHED_MACRO_FUSION_P): Define.
2422 (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
2423 (AARCH64_FUSE_MOV_MOVK): Likewise.
2424 (AARCH64_FUSE_NOTHING): Likewise.
2425
2426 2014-11-24 Martin Liska <mliska@suse.cz>
2427
2428 PR lto/63968
2429 * bb-reorder.c (find_traces_1_round): decreate_key is replaced
2430 with replace_key method.
2431 * fibonacci_heap.h (fibonacci_heap::insert): New argument.
2432 (fibonacci_heap::replace_key_data): Likewise.
2433 (fibonacci_heap::replace_key): New method that can even increment key,
2434 this operation costs O(log N).
2435 (fibonacci_heap::extract_min): New argument.
2436 (fibonacci_heap::delete_node): Likewise.
2437
2438 2014-11-24 Richard Biener <rguenther@suse.de>
2439
2440 PR tree-optimization/55334
2441 * function.h (struct function): Add last_clique member.
2442 * tree-inline.c (remap_dependence_clique): New function.
2443 (remap_gimple_op_r): Remap dependence cliques in MEM_REFs.
2444 (copy_tree_body_r): Likewise.
2445 (copy_cfg_body): Free dependence map.
2446 (copy_gimple_seq_and_replace_locals): Likewise.
2447 * tree-pretty-print.c (dump_generic_node): Dump
2448 dependence info.
2449 * tree-ssa-alias.c (refs_may_alias_p_1): Use dependence info
2450 to answer alias query.
2451 * tree-ssa-structalias.c: Include tree-phinodes.h, ssa-iterators.h,
2452 tree-pretty-print.h and gimple-walk.h.
2453 (struct variable_info): Add is_restrict_var flag and ruid
2454 member.
2455 (new_var_info): Initialize is_restrict_var.
2456 (make_constraint_from_restrict): Likewise.
2457 (create_variable_info_for): Exclude restricts from global vars
2458 from new handling.
2459 (intra_create_variable_infos): But not those from parameters.
2460 (visit_loadstore): New function.
2461 (maybe_set_dependence_info): Likewise.
2462 (compute_dependence_clique): Likewise.
2463 (compute_may_aliases): Call compute_dependence_clique.
2464 * tree-data-ref.c (dr_analyze_indices): Copy dependence info
2465 to fake MEM_REF.
2466 (dr_may_alias_p): Use recorded dependence info to answer
2467 alias query.
2468 * tree-core.h (struct tree_base): Add clique, base struct in
2469 union.
2470 * tree.h (MR_DEPENDENCE_CLIQUE): New macro.
2471 (MR_DEPENDENCE_BASE): Likewise.
2472 * tree-inline.h (dependence_hasher): New hash-map kind.
2473 (struct copy_body_data): Add dependence_map pointer.
2474 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Avoid
2475 throwing away dependence info.
2476 * tree-streamer-in.c (unpack_value_fields): Stream dependence info.
2477 * tree-streamer-out.c (streamer_pack_tree_bitfields): Likewise.
2478
2479 2014-11-23 Oleg Endo <olegendo@gcc.gnu.org>
2480
2481 PR target/53976
2482 * config/sh/sh_optimize_sett_clrt.cc
2483 (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
2484 of void. Abort at complex edges.
2485 (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
2486 returned false.
2487
2488 2014-11-22 John David Anglin <danglin@gcc.gnu.org>
2489
2490 PR other/63694
2491 * configure.ac: Check for strtol, strtoul, strtoll and strtoull
2492 declarations.
2493 * configure: Regenerated.
2494 * config.in: Regenerated.
2495
2496 2014-11-22 Jan Hubicka <hubicka@ucw.cz>
2497
2498 * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline
2499 clones as having abstract origin used.
2500 * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract
2501 origin check.
2502 (clone_inlined_nodes): Copy abstract originflag.
2503 * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get
2504 abstract origin node.
2505
2506 2014-11-22 Uros Bizjak <ubizjak@gmail.com>
2507
2508 * params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200.
2509 * config/i386/i386.c (ix86_option_override_internal): Do not increase
2510 PARAM_MAX_COMPLETELY_PEELED_INSNS.
2511
2512 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
2513
2514 PR target/63783
2515 PR target/51244
2516 * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
2517 Do not emit bitwise not insn. Emit logical not insn sequence instead.
2518 Adjust related comments throughout the file.
2519
2520 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
2521
2522 PR target/63986
2523 PR target/51244
2524 * config/sh/sh.c (sh_is_logical_t_store_expr,
2525 sh_try_omit_signzero_extend): Use rtx_insn* for insn argument.
2526 (sh_split_movrt_negc_to_movt_xor): New function.
2527 (sh_find_set_of_reg): Move to ...
2528 * config/sh/sh-protos.h (sh_find_set_of_reg): ... here and convert
2529 to template function.
2530 (set_of_reg): Use rtx_insn* for insn member.
2531 (sh_is_logical_t_store_expr, sh_try_omit_signzero_extend): Use
2532 rtx_insn* for insn argument.
2533 * config/sh/sh.md (movrt_negc, *movrt_negc): Split into movt-xor
2534 sequence using new sh_split_movrt_negc_to_movt_xor function.
2535 (movrt_xor): Allow also for SH2A.
2536 (*movt_movrt): Delete insns and splits.
2537
2538 2014-11-22 Marc Glisse <marc.glisse@inria.fr>
2539
2540 PR tree-optimization/60770
2541 * tree-sra.c (clobber_subtree): New function.
2542 (sra_modify_constructor_assign): Call it.
2543
2544 2014-11-21 Vladimir Makarov <vmakarov@redhat.com>
2545
2546 PR target/63897
2547 * lra-lives.c (mark_regno_live, mark_regno_dead): Remove last
2548 argument.
2549 (process_bb_lives): Rename dead_insn_p on remove_p
2550 and global_live_info_p on dead_insn_p. Calculate local live info
2551 unconditionally. Remove last argument in calls mark_regno_live and
2552 mark_regno_dead. Reorganize body of EXECUTE_IF_SET_IN_BITMAP.
2553 (lra_create_live_ranges): Rename to lra_create_live_ranges_1.
2554 Return bool. Rename global_live_info_p on dead_insn_p. Return
2555 flag of live info change.
2556 (lra_create_live_ranges): New.
2557
2558 2014-11-21 Jakub Jelinek <jakub@redhat.com>
2559
2560 PR target/63848
2561 PR target/63975
2562 * internal-fn.c (expand_arith_overflow_result_store,
2563 expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): Use
2564 do_compare_rtx_and_jump instead of emit_cmp_and_jump_insns everywhere,
2565 adjust arguments to those functions. Use unsignedp = true for
2566 EQ, NE, GEU, LEU, LTU and GTU comparisons.
2567
2568 PR tree-optimization/64006
2569 * tree-vrp.c (stmt_interesting_for_vrp): Return true
2570 for {ADD,SUB,MUL}_OVERFLOW internal calls.
2571 (vrp_visit_assignment_or_call): For {ADD,SUB,MUL}_OVERFLOW
2572 internal calls, check if any REALPART_EXPR/IMAGPART_EXPR
2573 immediate uses would change their value ranges and return
2574 SSA_PROP_INTERESTING if so, or SSA_PROP_NOT_INTERESTING
2575 if there are some REALPART_EXPR/IMAGPART_EXPR immediate uses
2576 interesting for vrp.
2577
2578 2014-11-21 Michael Meissner <meissner@linux.vnet.ibm.com>
2579
2580 PR target/63965
2581 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
2582 Altivec & -16 mask if the type is not valid for Altivec registers.
2583 (rs6000_secondary_reload_memory): Add support for ((reg + const) +
2584 reg) that occurs during push_reload processing.
2585
2586 * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
2587 alternative for moving constant vectors which are easy altivec
2588 constants to GPRs. Set the length attribute each of the
2589 alternatives.
2590
2591 2014-11-21 Matthew Fortune <matthew.fortune@imgtec.com>
2592
2593 * configure.ac: When checking for MIPS .module support ensure that
2594 o32 FPXX is supported to avoid a second configure check.
2595 * configure: Regenerate.
2596
2597 2014-11-21 Jiong Wang <jiong.wang@arm.com>
2598
2599 * config/aarch64/iterators.md (VS): New mode iterator.
2600 (vsi2qi): New mode attribute.
2601 (VSI2QI): Likewise.
2602 * config/aarch64/aarch64-simd-builtins.def: New entry for ctz.
2603 * config/aarch64/aarch64-simd.md (ctz<mode>2): New pattern for ctz.
2604 * config/aarch64/aarch64-builtins.c
2605 (aarch64_builtin_vectorized_function): Support BUILT_IN_CTZ.
2606
2607 2014-11-21 H.J. Lu <hongjiu.lu@intel.com>
2608
2609 PR bootstrap/63784
2610 * configure: Regenerated.
2611
2612 2014-11-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2613
2614 * config/aarch64/arm_neon.h (vsqrt_f64): New intrinsic.
2615
2616 2014-11-21 Ilya Tocar <ilya.tocar@intel.com>
2617
2618 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
2619 OPTION_MASK_ISA_PCOMMIT_SET): New.
2620 (ix86_handle_option): Handle OPT_mpcommit.
2621 * config.gcc: Add pcommitintrin.h
2622 * config/i386/pcommitintrin.h: New file.
2623 * config/i386/cpuid.h (bit_PCOMMIT): Define.
2624 * config/i386/driver-i386.c (host_detect_local_cpu): Detect pcommit.
2625 * config/i386/i386-c.c (ix86_target_macros_internal): Define
2626 __PCOMMIT__.
2627 * config/i386/i386.c (ix86_target_string): Add -mpcommit.
2628 (PTA_PCOMMIT): Define.
2629 (ix86_option_override_internal): Handle new option.
2630 (ix86_valid_target_attribute_inner_p): Add pcommit.
2631 (ix86_builtins): Add IX86_BUILTIN_PCOMMIT.
2632 (bdesc_special_args): Add __builtin_ia32_pcommit.
2633 * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Define.
2634 * config/i386/i386.md (unspecv): Add UNSPECV_PCOMMIT.
2635 (pcommit): New instruction.
2636 * config/i386/i386.opt: Add mpcommit.
2637 * config/i386/x86intrin.h: Include pcommitintrin.h.
2638
2639 2014-11-20 Mark Wielaard <mjw@redhat.com>
2640
2641 PR debug/38757
2642 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use lang_GNU_C.
2643 * config/darwin.c (darwin_file_end): Use lang_GNU_CXX.
2644 (darwin_override_options): Likewise.
2645 * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
2646 Likewise.
2647 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
2648 Likewise.
2649 * dbxout.c (get_lang_number): Likewise.
2650 (dbxout_type): Likewise.
2651 (dbxout_symbol_location): Likewise.
2652 * dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
2653 also for DW_LANG_{C,C99,ObjC}.
2654 (highest_c_language): New function.
2655 (gen_compile_unit_die): Call highest_c_language to merge LTO
2656 TRANSLATION_UNIT_LANGUAGE. Use strncmp language_string to
2657 determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
2658 * fold-const.c (fold_cond_expr_with_comparison): Use lang_GNU_CXX.
2659 * langhooks.h (struct lang_hooks): Add version comment to name.
2660 (lang_GNU_C): New function declaration.
2661 (lang_GNU_CXX): Likewise.
2662 * langhooks.c (lang_GNU_C): New function.
2663 (lang_GNU_CXX): Likewise.
2664 * vmsdbgout.c (vmsdbgout_init): Use lang_GNU_C and lang_GNU_CXX.
2665
2666 2014-11-21 Ilya Tocar <ilya.tocar@intel.com>
2667
2668 * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLWB_UNSET,
2669 OPTION_MASK_ISA_CLWB_SET): New.
2670 (ix86_handle_option): Handle OPT_mclwb.
2671 * config.gcc: Add clwbintrin.h.
2672 * config/i386/clwbintrin.h: New file.
2673 * config/i386/cpuid.h (bit_CLWB): Define.
2674 * config/i386/driver-i386.c (host_detect_local_cpu): Detect clwb.
2675 * config/i386/i386-c.c (ix86_target_macros_internal): Define
2676 __CLWB__.
2677 * config/i386/i386.c (ix86_target_string): Add -mclwb.
2678 (PTA_CLWB): Define.
2679 (ix86_option_override_internal): Handle new option.
2680 (ix86_valid_target_attribute_inner_p): Add clwb.
2681 (ix86_builtins): Add IX86_BUILTIN_CLWB.
2682 (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clwb.
2683 (ix86_expand_builtin): Handle IX86_BUILTIN_CLWB.
2684 * config/i386/i386.h (TARGET_CLWB, TARGET_CLWB_P): Define.
2685 * config/i386/i386.md (unspecv): Add UNSPECV_CLWB.
2686 (clwb): New instruction.
2687 * config/i386/i386.opt: Add mclwb.
2688 * config/i386/x86intrin.h: Include clwbintrin.h.
2689
2690 2014-11-21 Ilya Tocar <ilya.tocar@intel.com>
2691
2692 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET
2693 OPTION_MASK_ISA_AVX512VBMI_UNSET): New.
2694 (ix86_handle_option): Handle OPT_mavx512vbmi.
2695 * config.gcc: Add avx512vbmiintrin.h, avx512vbmivlintrin.h.
2696 * config/i386/avx512vbmiintrin.h: New file.
2697 * config/i386/avx512vbmivlintrin.h: Ditto.
2698 * config/i386/cpuid.h (bit_AVX512VBMI): New.
2699 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vbmi.
2700 * config/i386/i386-c.c (ix86_target_macros_internal): Define
2701 __AVX512VBMI__.
2702 * config/i386/i386.c (ix86_target_string): Add -mavx512vbmi.
2703 (PTA_AVX512VBMI): Define.
2704 (ix86_option_override_internal): Handle new options.
2705 (ix86_valid_target_attribute_inner_p): Add avx512vbmi,
2706 (ix86_builtins): Add IX86_BUILTIN_VPMULTISHIFTQB512,
2707 IX86_BUILTIN_VPMULTISHIFTQB256, IX86_BUILTIN_VPMULTISHIFTQB128,
2708 IX86_BUILTIN_VPERMVARQI512_MASK, IX86_BUILTIN_VPERMT2VARQI512,
2709 IX86_BUILTIN_VPERMT2VARQI512_MASKZ, IX86_BUILTIN_VPERMI2VARQI512,
2710 IX86_BUILTIN_VPERMVARQI256_MASK, IX86_BUILTIN_VPERMVARQI128_MASK,
2711 IX86_BUILTIN_VPERMT2VARQI256, IX86_BUILTIN_VPERMT2VARQI256_MASKZ,
2712 IX86_BUILTIN_VPERMT2VARQI128, IX86_BUILTIN_VPERMI2VARQI256,
2713 IX86_BUILTIN_VPERMI2VARQI128.
2714 (bdesc_special_args): Add __builtin_ia32_vpmultishiftqb512_mask,
2715 __builtin_ia32_vpmultishiftqb256_mask,
2716 __builtin_ia32_vpmultishiftqb128_mask,
2717 __builtin_ia32_permvarqi512_mask, __builtin_ia32_vpermt2varqi512_mask,
2718 __builtin_ia32_vpermt2varqi512_maskz,
2719 __builtin_ia32_vpermi2varqi512_mask, __builtin_ia32_permvarqi256_mask,
2720 __builtin_ia32_permvarqi128_mask, __builtin_ia32_vpermt2varqi256_mask,
2721 __builtin_ia32_vpermt2varqi256_maskz,
2722 __builtin_ia32_vpermt2varqi128_mask,
2723 __builtin_ia32_vpermt2varqi128_maskz,
2724 __builtin_ia32_vpermi2varqi256_mask,
2725 __builtin_ia32_vpermi2varqi128_mask.
2726 (ix86_hard_regno_mode_ok): Allow big masks for AVX512VBMI.
2727 * config/i386/i386.h (TARGET_AVX512VBMI, TARGET_AVX512VBMI_P): Define.
2728 * config/i386/i386.opt: Add mavx512vbmi.
2729 * config/i386/immintrin.h: Include avx512vbmiintrin.h,
2730 avx512vbmivlintrin.h.
2731 * config/i386/sse.md (unspec): Add UNSPEC_VPMULTISHIFT.
2732 (VI1_AVX512VL): New iterator.
2733 (<avx512>_permvar<mode><mask_name>): Use it.
2734 (<avx512>_vpermi2var<mode>3_maskz): Ditto.
2735 (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Ditto.
2736 (<avx512>_vpermi2var<mode>3_mask): Ditto.
2737 (<avx512>_vpermt2var<mode>3_maskz): Ditto.
2738 (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto.
2739 (<avx512>_vpermt2var<mode>3_mask): Ditto.
2740 (vpmultishiftqb<mode><mask_name>): Ditto.
2741
2742 2014-11-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2743
2744 PR rtl-optimization/63952
2745 * optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode.
2746 * config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison.
2747 Remove incorrect TARGET_HARD_FLOAT check and no-op expander code.
2748
2749 2014-11-21 Ilya Tocar <ilya.tocar@intel.com>
2750
2751 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512IFMA_SET,
2752 OPTION_MASK_ISA_AVX512IFMA_UNSET): New.
2753 (ix86_handle_option): Handle OPT_mavx512ifma.
2754 * config.gcc: Add avx512ifmaintrin.h, avx512ifmavlintrin.h.
2755 * config/i386/avx512ifmaintrin.h: New file.
2756 * config/i386/avx512ifmaivlntrin.h: Ditto.
2757 * config/i386/cpuid.h (bit_AVX512IFMA): New.
2758 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
2759 avx512ifma.
2760 * config/i386/i386-c.c (ix86_target_macros_internal): Define
2761 __AVX512IFMA__.
2762 * config/i386/i386.c (ix86_target_string): Add -mavx512ifma.
2763 (PTA_AVX512IFMA): Define.
2764 (ix86_option_override_internal): Handle new options.
2765 (ix86_valid_target_attribute_inner_p): Add avx512ifma.
2766 (ix86_builtins): Add IX86_BUILTIN_VPMADD52LUQ512,
2767 IX86_BUILTIN_VPMADD52HUQ512, IX86_BUILTIN_VPMADD52LUQ256,
2768 IX86_BUILTIN_VPMADD52HUQ256, IX86_BUILTIN_VPMADD52LUQ128,
2769 IX86_BUILTIN_VPMADD52HUQ128, IX86_BUILTIN_VPMADD52LUQ512_MASKZ,
2770 IX86_BUILTIN_VPMADD52HUQ512_MASKZ, IX86_BUILTIN_VPMADD52LUQ256_MASKZ,
2771 IX86_BUILTIN_VPMADD52HUQ256_MASKZ, IX86_BUILTIN_VPMADD52LUQ128_MASKZ,
2772 IX86_BUILTIN_VPMADD52HUQ128_MASKZ.
2773 (bdesc_special_args): Add __builtin_ia32_vpmadd52luq512_mask,
2774 __builtin_ia32_vpmadd52luq512_maskz,
2775 __builtin_ia32_vpmadd52huq512_mask,
2776 __builtin_ia32_vpmadd52huq512_maskx,
2777 __builtin_ia32_vpmadd52luq256_mask,
2778 __builtin_ia32_vpmadd52luq256_maskz,
2779 __builtin_ia32_vpmadd52huq256_mask,
2780 __builtin_ia32_vpmadd52huq256_maskz,
2781 __builtin_ia32_vpmadd52luq128_mask,
2782 __builtin_ia32_vpmadd52luq128_maskz,
2783 __builtin_ia32_vpmadd52huq128_mask,
2784 __builtin_ia32_vpmadd52huq128_maskz,
2785 * config/i386/i386.h (TARGET_AVX512IFMA, TARGET_AVX512IFMA_P): Define.
2786 * config/i386/i386.opt: Add mavx512ifma.
2787 * config/i386/immintrin.h: Include avx512ifmaintrin.h,
2788 avx512ifmavlintrin.h.
2789 * config/i386/sse.md (unspec): Add UNSPEC_VPMADD52LUQ,
2790 UNSPEC_VPMADD52HUQ.
2791 (VPMADD52): New iterator.
2792 (vpmadd52type): New attribute.
2793 (vpamdd52huq<mode>_maskz): New.
2794 (vpamdd52luq<mode>_maskz): Ditto.
2795 (vpamdd52<vpmadd52type><mode><sd_maskz_name>): Ditto.
2796 (vpamdd52<vpmadd52type><mode>_mask): Ditto.
2797
2798 2014-11-21 Alan Lawrence <alan.lawrence@arm.com>
2799
2800 Revert:
2801 2014-09-22 Alan Lawrence <alan.lawrence@arm.com>
2802 * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
2803
2804 2014-11-21 Andrew Bennett <andrew.bennett@imgtec.com>
2805
2806 * config/mips/mips.c (mips_process_sync_loop): Place a
2807 nop in the delay slot of the branch likely instruction.
2808 (mips_output_sync_loop): Ensure mips_branch_likely is
2809 set before calling mips_output_sync_loop.
2810 (mips_sync_loop_insns): Likewise.
2811
2812 2014-11-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2813
2814 PR/target 63673
2815 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
2816 the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
2817 double.
2818
2819 2014-11-21 Georg-Johann Lay <avr@gjlay.de>
2820
2821 Forward-port from 2014-10-30 4_9-branch r216934
2822
2823 PR target/63633
2824 * config/avr/avr-protos.h (regmask): New inline function.
2825 (avr_fix_inputs, avr_emit3_fix_outputs): New protos.
2826 * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
2827 (avr_fix_inputs, avr_emit3_fix_outputs): New functions.
2828 * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
2829 (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
2830 (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
2831 * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
2832 (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
2833 (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
2834 * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
2835 (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
2836 (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
2837 (fmul, fmuls, fmulsu): Fix operands. Turn insn into expander as
2838 needed.
2839
2840 2014-11-21 Jakub Jelinek <jakub@redhat.com>
2841
2842 PR target/61137
2843 * config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function.
2844 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it.
2845
2846 2014-11-21 James Greenhalgh <james.greenhalgh@arm.com>
2847
2848 * config/aarch64/aarch64-simd.md
2849 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Add a tab between
2850 output mnemonic and operands.
2851 (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
2852 (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
2853
2854 2014-11-21 Evgeny Stupachenko <evstupac@gmail.com>
2855
2856 * config/i386/i386.c (ix86_option_override_internal): Increase
2857 PARAM_MAX_COMPLETELY_PEELED_INSNS.
2858
2859 2014-11-21 Evgeny Stupachenko <evstupac@gmail.com>
2860
2861 PR target/60451
2862 * config/i386/i386.c (expand_vec_perm_even_odd_pack): New.
2863 (expand_vec_perm_even_odd_1): Add new expand for V8HI mode,
2864 replace for V16QI, V16HI and V32QI modes.
2865 (ix86_expand_vec_perm_const_1): Add new expand.
2866
2867 2014-11-21 Nick Clifton <nickc@redhat.com>
2868
2869 * config/rl78/rl78-real.md (movqi_from_es): New pattern.
2870 * config/rl78/rl78.c (struct machine_function): Add uses_es field.
2871 (rl78_expand_prologue): Save the ES register in interrupt handlers
2872 that use it.
2873 (rl78_expand_epilogue): Restore the ES register if necessary.
2874 (rl78_start_function): Mention if the function uses the ES
2875 register.
2876 (rl78_lo16): Record the use of the ES register.
2877 (transcode_memory_rtx): Likewise.
2878
2879 2014-11-21 Jakub Jelinek <jakub@redhat.com>
2880
2881 PR tree-optimization/61773
2882 * tree-ssa-strlen.c (get_string_length): Don't assert
2883 stpcpy has been prototyped if si->stmt is BUILT_IN_MALLOC.
2884
2885 PR target/63910
2886 * simplify-rtx.c (simplify_immed_subreg): Return NULL for integer
2887 modes wider than MAX_BITSIZE_MODE_ANY_INT. If not using
2888 CONST_WIDE_INT, make sure r fits into CONST_DOUBLE.
2889
2890 2014-11-21 Markus Trippelsdorf <markus@trippelsdorf.de>
2891
2892 * config/rs6000/rs6000.c (includes_rldic_lshift_p): Use
2893 HOST_WIDE_INT_M1U instead of ~0.
2894 (includes_rldicr_lshift_p): Likewise.
2895
2896 2014-11-21 Chung-Ju Wu <jasonwucj@gmail.com>
2897
2898 * config/nds32/nds32.c (nds32_legitimate_address_p): For LO_SUM,
2899 we need to look into its operand to determine if it is a valid
2900 address.
2901
2902 2014-11-21 Chung-Ju Wu <jasonwucj@gmail.com>
2903
2904 * config/nds32/nds32.c (nds32_emit_stack_push_multiple): Add new
2905 vaarg_p argument and create correct CFI info.
2906 (nds32_expand_prologue): Pass true or false to
2907 nds32_emit_stack_push_multiple function.
2908
2909 2014-11-21 Chung-Ju Wu <jasonwucj@gmail.com>
2910
2911 * config/nds32/nds32.c (nds32_expand_prologue): Set fp_adjust_insn
2912 as RTX_FRAME_RELATED_P rtx.
2913
2914 2014-11-21 Chung-Ju Wu <jasonwucj@gmail.com>
2915
2916 * config/nds32/nds32.opt (march): Add help message.
2917
2918 2014-11-20 Patrick Palka <ppalka@gcc.gnu.org>
2919
2920 * tree-vrp.c (test_for_singularity): New parameter
2921 strict_overflow_p. Set *strict_overflow_p to true if signed
2922 overflow must be undefined for the return value to satisfy the
2923 conditional.
2924 (simplify_cond_using_ranges): Don't perform the simplification
2925 if it violates overflow rules.
2926
2927 2014-11-20 Marek Polacek <polacek@redhat.com>
2928
2929 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Fix typo.
2930
2931 2014-11-20 Andrew Stubbs <ams@codesourcery.com>
2932
2933 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
2934 condition would be removed due to undefined behaviour.
2935
2936 2014-11-20 Andrew Pinski <apinski@cavium.com>
2937
2938 PR ipa/63981
2939 PR ipa/63982
2940 * ipa-polymorphic-call.c (possible_placement_new):
2941 Use POINTER_SIZE instead of GET_MODE_BITSIZE (Pmode).
2942 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
2943 (extr_type_from_vtbl_ptr_store): Likewise.
2944
2945 2014-11-20 Markus Trippelsdorf <markus@trippelsdorf.de>
2946
2947 * config/rs6000/constraints.md: Avoid signed integer overflows.
2948 * config/rs6000/predicates.md: Likewise.
2949 * config/rs6000/rs6000.c (num_insns_constant_wide): Likewise.
2950 (includes_rldic_lshift_p): Likewise.
2951 (includes_rldicr_lshift_p): Likewise.
2952 * emit-rtl.c (const_wide_int_htab_hash): Likewise.
2953 * loop-iv.c (determine_max_iter): Likewise.
2954 (iv_number_of_iterations): Likewise.
2955 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Likewise.
2956 * varasm.c (get_section_anchor): Likewise.
2957
2958 2014-11-20 Charles Baylis <charles.baylis@linaro.org>
2959
2960 PR target/63870
2961 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Pass
2962 expression to aarch64_simd_lane_bounds.
2963 * config/aarch64/aarch64-protos.h (aarch64_simd_lane_bounds): Update
2964 prototype.
2965 * config/aarch64/aarch64-simd.md: (aarch64_combinez<mode>): Update
2966 call to aarch64_simd_lane_bounds.
2967 (aarch64_get_lanedi): Likewise.
2968 (aarch64_ld2_lane<mode>): Likewise.
2969 (aarch64_ld3_lane<mode>): Likewise.
2970 (aarch64_ld4_lane<mode>): Likewise.
2971 (aarch64_im_lane_boundsi): Likewise.
2972 * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Add exp
2973 parameter. Report calling function in error message if exp is non-NULL.
2974
2975 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org>
2976
2977 PR target/60111
2978 * config/sh/sh.c: Use signed char for signed field.
2979
2980 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
2981
2982 * cfgexpand.c, gimple-ssa.h, trans-mem.c: Replace htab with
2983 hash_table.
2984
2985 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
2986
2987 * ipa-utils.c, lto-section-in.c, lto-streamer.h,
2988 tree-scalar-evolution.c: Replace htab with hash_table.
2989
2990 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
2991
2992 * lto-section-in.c (lto_delete_in_decl_state): Adjust.
2993 (lto_free_function_in_decl_state): Likewise.
2994 * lto-streamer-out.c (copy_function_or_variable): Likewise.
2995 * lto-streamer.h (lto_file_decl_data_get_ ## name): Likewise.
2996 (lto_file_decl_data_num_ ## name ## s): Likewise.
2997 (struct lto_tree_ref_table): Remove.
2998 (struct lto_in_decl_state): Replace lto_tree_ref_table with vec<tree>.
2999
3000 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
3001
3002 * hash-map.h (hash_map::iterator): New class.
3003 (hash_map::begin): New method.
3004 (hash_map::end): Likewise.
3005 * alias.c, config/alpha/alpha.c, dwarf2asm.c, omp-low.c, tree.h:
3006 replace splay_tree with hash_map.
3007
3008 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
3009
3010 * hash-table.h (hash_table::hash_table): Call alloc_entries.
3011 (hash_table::alloc_entries): new method.
3012 (hash_table::expand): Call alloc_entries.
3013 (hash_table::empty): Likewise.
3014
3015 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
3016
3017 * config/i386/i386.c, function.c, trans-mem.c, tree-core.h,
3018 tree.c, tree.h, ubsan.c, varasm.c: Use hash_table instead of htab.
3019
3020 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
3021
3022 * doc/gty.texi: Document the new cache gty attribute.
3023 * gengtype.c (finish_cache_funcs): New function.
3024 (write_roots): Call gt_clear_cache on global variables with the cache
3025 gty attribute.
3026 * ggc-common.c (ggc_mark_roots): Call gt_clear_caches.
3027 * ggc.h (gt_clear_caches): New declaration.
3028 * hash-table.h (struct ggc_cache_hasher): New hasher for caches in gc
3029 memory.
3030 (gt_cleare_cache): New function.
3031 * emit-rtl.c, rtl.h, tree.c: Use hash_table instead of htab.
3032
3033 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org>
3034
3035 * combine.c (try_combine): Prefer to delete dead SETs inside
3036 a PARALLEL over keeping them.
3037
3038 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org>
3039
3040 * combine.c (combine_validate_cost): Always print the insn costs
3041 to the dump file.
3042
3043 2014-11-20 Richard Henderson <rth@redhat.com>
3044
3045 PR target/63977
3046 * config/i386/i386.c (ix86_static_chain): Reinstate the check
3047 for DECL_STATIC_CHAIN.
3048
3049 2014-11-20 Tejas Belagod <tejas.belagod@arm.com>
3050
3051 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol):
3052 Fixup prototype.
3053 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate,
3054 aarch64_cannot_force_const_mem, aarch64_classify_address,
3055 aarch64_classify_symbolic_expression): Fixup call to
3056 aarch64_classify_symbol.
3057 (aarch64_classify_symbol): Add range-checking for
3058 symbol + offset addressing for tiny and small models.
3059
3060 2014-11-20 Richard Biener <rguenther@suse.de>
3061
3062 PR middle-end/63962
3063 * match.pd ((p +p off1) +p off2 -> (p +p (off1 + off2))):
3064 Guard with single-use operand 0.
3065
3066 2014-11-20 Richard Biener <rguenther@suse.de>
3067
3068 PR tree-optimization/63677
3069 * tree-ssa-dom.c: Include gimplify.h for unshare_expr.
3070 (avail_exprs_stack): Make a vector of pairs.
3071 (struct hash_expr_elt): Replace stmt member with vop member.
3072 (expr_elt_hasher::equal): Simplify.
3073 (initialize_hash_element): Adjust.
3074 (initialize_hash_element_from_expr): Likewise.
3075 (dom_opt_dom_walker::thread_across_edge): Likewise.
3076 (record_cond): Likewise.
3077 (dom_opt_dom_walker::before_dom_children): Likewise.
3078 (print_expr_hash_elt): Likewise.
3079 (remove_local_expressions_from_table): Restore previous state
3080 if requested.
3081 (record_equivalences_from_stmt): Record &x + CST as constant
3082 &MEM[&x, CST] for further propagation.
3083 (vuse_eq): New function.
3084 (lookup_avail_expr): For loads use the alias oracle to see
3085 whether a candidate from the expr hash is usable.
3086 (avail_expr_hash): Do not hash VUSEs.
3087
3088 2014-11-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3089
3090 PR target/59593
3091 * config/arm/arm.md (*movhi_insn): Use right formatting
3092 for immediate.
3093
3094 2014-11-20 Igor Zamyatin <igor.zamyatin@intel.com>
3095
3096 PR sanitizer/63845
3097 * function.c (assign_parms): Move init of pic_offset_table_rtx
3098 from here to...
3099 * cfgexpand.c (expand_used_vars): ...here.
3100
3101 2014-11-19 Jan Hubicka <hubicka@ucw.cz>
3102
3103 * tree.c (free_lang_data_in_type): If BINFO has no important
3104 information in it, set it to NULL.
3105 (get_binfo_at_offset): Do not walk fields, only bases.
3106 * ipa-utils.h (polymorphic_type_binfo_p): Be ready for BINFO_TYPE
3107 to be NULL.
3108 * ipa-polymorphic-call.c (record_known_type): Likewise.
3109
3110 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3111
3112 PR jit/63854
3113 * ipa-icf.c (sem_item_optimizer::~sem_item_optimizer): Free each
3114 congruence_class_group *.
3115
3116 2014-11-19 Uros Bizjak <ubizjak@gmail.com>
3117
3118 PR target/63947
3119 * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
3120 Output "b" and "nb" suffix for FP mode.
3121
3122 2014-11-19 Jan Hubicka <hubicka@ucw.cz>
3123
3124 PR bootstrap/63963
3125 * tree-streamer-out.c (write_ts_function_decl_tree_pointers): Stream out
3126 DECL_FUNCTION_SPECIFIC_TARGET
3127 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): Stream in
3128 DECL_FUNCTION_SPECIFIC_TARGET.
3129
3130 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3131
3132 PR jit/63854
3133 * pass_manager.h (GCC_PASS_LISTS): Add all_late_ipa_passes.
3134
3135 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3136
3137 PR jit/63854
3138 * lra.c (lra): After creating live ranges in preparation for call
3139 to lra_inheritance, set live_p to true.
3140
3141 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3142
3143 PR jit/63854
3144 * tree-ssa-threadedge.c (thread_across_edge): Don't just release
3145 "path", delete it.
3146 * tree-ssa-threadupdate.c (delete_jump_thread_path): Likewise.
3147
3148 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3149
3150 PR jit/63854
3151 * tree-ssa-pre.c (do_regular_insertion): Convert "avail" from
3152 vec<> to auto_vec<> to fix a leak.
3153
3154 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3155
3156 PR jit/63854
3157 * dwarf2out.c (dwarf2out_c_finalize): Free producer_string.
3158
3159 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3160
3161 PR jit/63854
3162 * ira-costs.c (ira_costs_c_finalize): New function.
3163 * ira.h (ira_costs_c_finalize): New prototype.
3164 * toplev.c (toplev::finalize): Call ira_costs_c_finalize.
3165
3166 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3167
3168 PR jit/63854
3169 * ipa-reference.c (ipa_reference_c_finalize): Release
3170 optimization_summary_obstack.
3171
3172 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3173
3174 PR jit/63854
3175 * toplev.c (toplev::finalize): Free opts_obstack.
3176
3177 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3178
3179 PR jit/63854
3180 * toplev.c (toplev::finalize): Clean up save_decoded_options.
3181
3182 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3183
3184 PR jit/63854
3185 * bb-reorder.c
3186 (find_rarely_executed_basic_blocks_and_crossing_edges): Convert
3187 local bbs_in_hot_partition from vec<> to auto_vec<>.
3188
3189 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3190
3191 PR jit/63854
3192 * config/alpha/alpha.c (alpha_option_override): Remove static from
3193 "handle_trap_shadows_info" and "align_insns_info".
3194 * config/i386/i386.c (ix86_option_override): Likewise for
3195 "insert_vzeroupper_info".
3196 * config/rl78/rl78.c (rl78_asm_file_start): Likewise for
3197 "rl78_devirt_info" and "rl78_move_elim_info".
3198 * config/rs6000/rs6000.c (rs6000_option_override): Likewise for
3199 "analyze_swaps_info".
3200 * context.c (gcc::context::~context): New.
3201 * context.h (gcc::context::~context): New.
3202 * dumpfile.c (dump_files): Add "false" initializers for new field
3203 "owns_strings".
3204 (gcc::dump_manager::~dump_manager): New.
3205 (gcc::dump_manager::dump_register): Add param "take_ownership".
3206 * dumpfile.h (struct dump_file_info): Add field "owns_strings".
3207 (gcc::dump_manager::~dump_manager): New.
3208 (gcc::dump_manager::dump_register): Add param "take_ownership".
3209 * pass_manager.h (gcc::pass_manager::operator delete): New.
3210 (gcc::pass_manager::~pass_manager): New.
3211 * passes.c (pass_manager::register_one_dump_file): Pass "true" to
3212 new "owns_strings" argument to dump_register.
3213 (pass_manager::operator delete): New.
3214 (delete_pass_tree): New function.
3215 (pass_manager::~pass_manager): New.
3216 * statistics.c (statistics_early_init): Pass "false" to
3217 new "owns_strings" argument to dump_register.
3218 * toplev.c (toplev::finalize): Clean up the context and thus the
3219 things it owns.
3220
3221 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3222
3223 PR jit/63854
3224 * reginfo.c (finish_subregs_of_mode): Replace obstack_finish with
3225 obstack_free when cleaning up valid_mode_changes_obstack.
3226
3227 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3228
3229 PR jit/63854
3230 * opts.c (finalize_options_struct): New.
3231 * opts.h (finalize_options_struct): New.
3232 * toplev.c (toplev::finalize): Call finalize_options_struct
3233 on global_options and global_options_set.
3234
3235 2014-11-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3236 Jakub Jelinek <jakub@redhat.com>
3237
3238 PR driver/36312
3239 PR driver/63837
3240 * gcc.c (process_command): Don't check for input/output
3241 filename equality if output is HOST_BIT_BUCKET.
3242 * toplev.c (init_asm_output): Likewise.
3243
3244 2014-11-19 David Malcolm <dmalcolm@redhat.com>
3245
3246 Merger of git branch "gimple-classes-v2-option-3".
3247
3248 * ChangeLog.gimple-classes: New.
3249
3250 * coretypes.h (struct gcond): Add forward decl.
3251 (struct gdebug): Likewise.
3252 (struct ggoto): Likewise.
3253 (struct glabel): Likewise.
3254 (struct gswitch): Likewise.
3255 (struct gassign): Likewise.
3256 (struct gasm): Likewise.
3257 (struct gcall): Likewise.
3258 (struct gtransaction): Likewise.
3259 (struct greturn): Likewise.
3260 (struct gbind): Likewise.
3261 (struct gcatch): Likewise.
3262 (struct geh_filter): Likewise.
3263 (struct geh_mnt): Likewise.
3264 (struct geh_else): Likewise.
3265 (struct gresx): Likewise.
3266 (struct geh_dispatch): Likewise.
3267 (struct gphi): Likewise.
3268 (struct gtry): Likewise.
3269 (struct gomp_atomic_load): Likewise.
3270 (struct gomp_atomic_store): Likewise.
3271 (struct gomp_continue): Likewise.
3272 (struct gomp_critical): Likewise.
3273 (struct gomp_for): Likewise.
3274 (struct gomp_parallel): Likewise.
3275 (struct gomp_task): Likewise.
3276 (struct gomp_sections): Likewise.
3277 (struct gomp_single): Likewise.
3278 (struct gomp_target): Likewise.
3279 (struct gomp_teams): Likewise.
3280
3281 * doc/gimple.texi (Class hierarchy of GIMPLE statements): Update
3282 for renaming of gimple subclasses.
3283
3284 * gdbhooks.py: Update.
3285
3286 * gimple-iterator.c (gsi_for_phi): New.
3287 (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
3288 to gphi_iterator.
3289 * gimple-iterator.h (struct gphi_iterator): New subclass of
3290 gimple_stmt_iterator.
3291 (gsi_for_phi): New prototype.
3292 (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
3293 to gphi_iterator.
3294 (gsi_next_nonvirtual_phi): Strengthen param from
3295 gimple_stmt_iterator * to gphi_iterator *, and local "phi" from
3296 gimple to gphi *.
3297
3298 * gsstruct.def: Update for renamings of classes.
3299
3300 * gimple.c (gimple_build_return): Strengthen return type from
3301 gimple to greturn *.
3302 (gimple_call_reset_alias_info): Strengthen param to gcall *.
3303 (gimple_build_call_1): Strengthen return type from gimple to
3304 gcall *.
3305 (gimple_build_call_vec): Likewise.
3306 (gimple_build_call): Likewise.
3307 (gimple_build_call_valist): Likewise.
3308 (gimple_build_call_internal_1): Likewise.
3309 (gimple_build_call_internal): Likewise.
3310 (gimple_build_call_internal_vec): Likewise.
3311 (gimple_build_call_from_tree): Likewise.
3312 (gimple_build_assign_stat): Strengthen return type from gimple to
3313 gassign *.
3314 (gimple_build_assign_with_ops): Likewise.
3315 (gimple_build_assign_with_ops): Likewise.
3316 (gimple_build_cond): Strengthen return type from gimple to
3317 gcond *.
3318 (gimple_build_cond_from_tree): Likewise.
3319 (gimple_cond_set_condition_from_tree): Require a gcond *.
3320 (gimple_build_label): Strengthen return type from gimple to
3321 glabel *.
3322 (gimple_build_goto): Strengthen return type from gimple to
3323 ggoto *.
3324 (gimple_build_bind): Strengthen return type from gimple to
3325 gbind *.
3326 (gimple_build_asm_1): Strengthen return type from gimple to
3327 gasm *.
3328 (gimple_build_asm_vec): Likewise.
3329 (gimple_build_catch): Strengthen return type from gimple to
3330 gcatch *.
3331 (gimple_build_eh_filter): Strengthen return type from gimple to
3332 geh_filter *.
3333 (gimple_build_eh_must_not_throw): Strengthen return type from
3334 gimple to geh_mnt *.
3335 (gimple_build_eh_else): Strengthen return type from gimple to
3336 geh_else *.
3337 (gimple_build_try): Update for renaming of gimple_statement_try to
3338 gtry.
3339 (gimple_build_resx): Strengthen return type from gimple to
3340 gresx *.
3341 (gimple_build_switch_nlabels): Strengthen return type from gimple
3342 to gswitch *.
3343 (gimple_build_switch): Likewise.
3344 (gimple_build_eh_dispatch): Strengthen return type from gimple to
3345 geh_dispatch *.
3346 (gimple_build_debug_bind_stat): Strengthen return type from gimple
3347 to gdebug *.
3348 (gimple_build_debug_source_bind_stat): Strengthen return type from
3349 gimple to gdebug *.
3350 (gimple_build_omp_critical): Strengthen return type from gimple to
3351 gomp_critical *.
3352 (gimple_build_omp_for): Strengthen return type from gimple to
3353 gomp_for *.
3354 (gimple_build_omp_parallel): Strengthen return type from gimple to
3355 gomp_parallel *.
3356 (gimple_build_omp_task): Strengthen return type from gimple to
3357 gomp_task *.
3358 (gimple_build_omp_continue): Strengthen return type from gimple to
3359 gomp_continue *.
3360 (gimple_build_omp_sections): Strengthen return type from gimple to
3361 gomp_sections *.
3362 (gimple_build_omp_single): Strengthen return type from gimple to
3363 gomp_single *.
3364 (gimple_build_omp_target): Strengthen return type from gimple to
3365 gomp_target *.
3366 (gimple_build_omp_teams): Strengthen return type from gimple to
3367 gomp_teams *.
3368 (gimple_build_omp_atomic_load): Strengthen return type from gimple
3369 to gomp_atomic_load *.
3370 (gimple_build_omp_atomic_store): Strengthen return type from gimple
3371 to gomp_atomic_store *.
3372 (gimple_build_transaction): Strengthen return type from gimple
3373 to gtransaction *.
3374 (empty_stmt_p): Replace check for GIMPLE_BIND with a dyn_cast.
3375 (gimple_call_fnspec): Require a const gcall *.
3376 (gimple_call_arg_flags): Likewise.
3377 (gimple_call_return_flags): Likewise.
3378 (gimple_set_bb): Add a checked cast.
3379 (gimple_copy): Within the cases, add locals of the appropriate
3380 subclass and use in place of "stmt" and "copy" for typesafety.
3381 (gimple_has_side_effects): Add a checked cast.
3382 (gimple_could_trap_p_1): Likewise.
3383 (gimple_call_copy_skip_args): Require a gcall *, and return one.
3384 (gimple_asm_clobbers_memory_p): Require a const gasm *.
3385 (infer_nonnull_range): Replace a check for GIMPLE_RETURN with a
3386 dyn_cast, introducing local "return_stmt" and using ti in place
3387 of "stmt".
3388
3389 * gimple.h (gimple_vec): Eliminate this typedef.
3390 (struct gimple_statement_call): Rename to...
3391 (struct gcall): ...this.
3392 (struct gimple_statement_bind): Rename to...
3393 (struct gbind): ...this.
3394 (struct gimple_statement_catch): Rename to...
3395 (struct gcatch): ...this.
3396 (struct gimple_statement_eh_filter): Rename to...
3397 (struct geh_filter): ...this.
3398 (struct gimple_statement_eh_else): Rename to...
3399 (struct geh_else): ...this.
3400 (struct gimple_statement_eh_mnt): Rename to...
3401 (struct geh_mnt): ...this.
3402 (struct gimple_statement_phi): Rename to...
3403 (struct gphi): ...this.
3404 (struct gimple_statement_resx): Rename to...
3405 (struct gresx): ...this.
3406 (struct gimple_statement_eh_dispatch): Rename to...
3407 (struct geh_dispatch): ...this.
3408 (struct gimple_statement_try): Rename to...
3409 (struct gtry): ...this.
3410 (struct gimple_statement_asm): Rename to...
3411 (struct gasm): ...this.
3412 (struct gimple_statement_omp_critical): Rename to...
3413 (struct gomp_critical): ...this.
3414 (struct gimple_statement_omp_for): Rename to...
3415 (struct gomp_for): ...this.
3416 (struct gimple_statement_omp_parallel): Rename to...
3417 (struct gomp_parallel): ...this.
3418 (struct gimple_statement_omp_target): Rename to...
3419 (struct gomp_target): ...this.
3420 (struct gimple_statement_omp_task): Rename to...
3421 (struct gomp_task): ...this.
3422 (struct gimple_statement_omp_sections): Rename to...
3423 (struct gomp_sections): ...this.
3424 (struct gimple_statement_omp_continue): Rename to...
3425 (struct gomp_continue): ...this.
3426 (struct gimple_statement_omp_single): Rename to...
3427 (struct gomp_single): ...this.
3428 (struct gimple_statement_omp_teams): Rename to...
3429 (struct gomp_teams): ...this.
3430 (struct gimple_statement_omp_atomic_load): Rename to...
3431 (struct gomp_atomic_load): ...this.
3432 (struct gimple_statement_omp_atomic_store :): Rename to...
3433 (struct gomp_atomic_store :): ...this.
3434 (struct gimple_statement_transaction): Rename to...
3435 (struct gtransaction): ...this.
3436 (struct gcond): New subclass.
3437 (struct gdebug): New subclass.
3438 (struct ggoto): New subclass.
3439 (struct glabel): New subclass.
3440 (struct gswitch): New subclass.
3441 (struct gassign): New subclass.
3442 (struct greturn): New subclass.
3443 (is_a_helper <gimple_statement_asm *>::test): Rename to...
3444 (is_a_helper <gasm *>::test): ...this.
3445 (is_a_helper <gimple_statement_bind *>::test): Rename to...
3446 (is_a_helper <gbind *>::test): ...this.
3447 (is_a_helper <gassign *>::test): New.
3448 (is_a_helper <gimple_statement_call *>::test): Rename to...
3449 (is_a_helper <gcall *>::test): ...this.
3450 (is_a_helper <gimple_statement_catch *>::test): Rename to...
3451 (is_a_helper <gcatch *>::test): ...this.
3452 (is_a_helper <gimple_statement_resx *>::test): Rename to...
3453 (is_a_helper <gresx *>::test): ...this.
3454 (is_a_helper <gcond *>::test): New.
3455 (is_a_helper <gdebug *>::test): New.
3456 (is_a_helper <ggoto *>::test): New.
3457 (is_a_helper <glabel *>::test): New.
3458 (is_a_helper <gimple_statement_eh_dispatch *>::test): Rename to...
3459 (is_a_helper <geh_dispatch *>::test): ...this.
3460 (is_a_helper <gimple_statement_eh_else *>::test): Rename to...
3461 (is_a_helper <geh_else *>::test): ...this.
3462 (is_a_helper <gimple_statement_eh_filter *>::test): Rename to...
3463 (is_a_helper <geh_filter *>::test): ...this.
3464 (is_a_helper <gimple_statement_eh_mnt *>::test): Rename to...
3465 (is_a_helper <geh_mnt *>::test): ...this.
3466 (is_a_helper <gimple_statement_omp_atomic_load *>::test): Rename to...
3467 (is_a_helper <gomp_atomic_load *>::test): ...this.
3468 (is_a_helper <gimple_statement_omp_atomic_store *>::test): Rename to...
3469 (is_a_helper <gomp_atomic_store *>::test): ...this.
3470 (is_a_helper <gimple_statement_omp_continue *>::test): Rename to...
3471 (is_a_helper <gomp_continue *>::test): ...this.
3472 (is_a_helper <gimple_statement_omp_critical *>::test): Rename to...
3473 (is_a_helper <gomp_critical *>::test): ...this.
3474 (is_a_helper <gimple_statement_omp_for *>::test): Rename to...
3475 (is_a_helper <gomp_for *>::test): ...this.
3476 (is_a_helper <gimple_statement_omp_parallel *>::test): Rename to...
3477 (is_a_helper <gomp_parallel *>::test): ...this.
3478 (is_a_helper <gimple_statement_omp_target *>::test): Rename to...
3479 (is_a_helper <gomp_target *>::test): ...this.
3480 (is_a_helper <gimple_statement_omp_sections *>::test): Rename to...
3481 (is_a_helper <gomp_sections *>::test): ...this.
3482 (is_a_helper <gimple_statement_omp_single *>::test): Rename to...
3483 (is_a_helper <gomp_single *>::test): ...this.
3484 (is_a_helper <gimple_statement_omp_teams *>::test): Rename to...
3485 (is_a_helper <gomp_teams *>::test): ...this.
3486 (is_a_helper <gimple_statement_omp_task *>::test): Rename to...
3487 (is_a_helper <gomp_task *>::test): ...this.
3488 (is_a_helper <gimple_statement_phi *>::test): Rename to...
3489 (is_a_helper <gphi *>::test): ...this.
3490 (is_a_helper <gimple_statement_transaction *>::test): Rename to...
3491 (is_a_helper <gtransaction *>::test): ...this.
3492 (is_a_helper <greturn *>::test): New.
3493 (is_a_helper <gswitch *>::test): New.
3494 (is_a_helper <gimple_statement_try *>::test): Rename to...
3495 (is_a_helper <gtry *>::test): ...this.
3496 (is_a_helper <const gimple_statement_asm *>::test): Rename to...
3497 (is_a_helper <const gasm *>::test): ...this.
3498 (is_a_helper <const gimple_statement_bind *>::test): Rename to...
3499 (is_a_helper <const gbind *>::test): ...this.
3500 (is_a_helper <const gimple_statement_call *>::test): Rename to...
3501 (is_a_helper <const gcall *>::test): ...this.
3502 (is_a_helper <const gimple_statement_catch *>::test): Rename to...
3503 (is_a_helper <const gcatch *>::test): ...this.
3504 (is_a_helper <const gimple_statement_resx *>::test): Rename to...
3505 (is_a_helper <const gresx *>::test): ...this.
3506 (is_a_helper <const gimple_statement_eh_dispatch *>::test): Rename to...
3507 (is_a_helper <const geh_dispatch *>::test): ...this.
3508 (is_a_helper <const gimple_statement_eh_filter *>::test): Rename to...
3509 (is_a_helper <const geh_filter *>::test): ...this.
3510 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
3511 Rename to...
3512 (is_a_helper <const gomp_atomic_load *>::test): ...this.
3513 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
3514 Rename to...
3515 (is_a_helper <const gomp_atomic_store *>::test): ...this.
3516 (is_a_helper <const gimple_statement_omp_continue *>::test):
3517 Rename to...
3518 (is_a_helper <const gomp_continue *>::test): ...this.
3519 (is_a_helper <const gimple_statement_omp_critical *>::test):
3520 Rename to...
3521 (is_a_helper <const gomp_critical *>::test): ...this.
3522 (is_a_helper <const gimple_statement_omp_for *>::test): Rename to...
3523 (is_a_helper <const gomp_for *>::test): ...this.
3524 (is_a_helper <const gimple_statement_omp_parallel *>::test):
3525 Rename to...
3526 (is_a_helper <const gomp_parallel *>::test): ...this.
3527 (is_a_helper <const gimple_statement_omp_target *>::test): Rename to...
3528 (is_a_helper <const gomp_target *>::test): ...this.
3529 (is_a_helper <const gimple_statement_omp_sections *>::test):
3530 Rename to...
3531 (is_a_helper <const gomp_sections *>::test): ...this.
3532 (is_a_helper <const gimple_statement_omp_single *>::test): Rename to...
3533 (is_a_helper <const gomp_single *>::test): ...this.
3534 (is_a_helper <const gimple_statement_omp_teams *>::test): Rename to...
3535 (is_a_helper <const gomp_teams *>::test): ...this.
3536 (is_a_helper <const gimple_statement_omp_task *>::test): Rename to...
3537 (is_a_helper <const gomp_task *>::test): ...this.
3538 (is_a_helper <const gimple_statement_phi *>::test): Rename to...
3539 (is_a_helper <const gphi *>::test): ...this.
3540 (is_a_helper <const gimple_statement_transaction *>::test): Rename to...
3541 (is_a_helper <const gtransaction *>::test): ...this.
3542 (gimple_build_return): Strengthen return type to greturn *.
3543 (gimple_call_reset_alias_info): Require a gcall *.
3544 (gimple_build_call_vec): Return a gcall *.
3545 (gimple_build_call): Likewise.
3546 (gimple_build_call_valist): Likewise.
3547 (gimple_build_call_internal): Likewise.
3548 (gimple_build_call_internal_vec): Likewise.
3549 (gimple_build_call_from_tree): Likewise.
3550 (gimple_build_assign_stat): Return a gassign *.
3551 (gimple_build_assign_with_ops): Likewise.
3552 (gimple_build_cond): Return a gcond *.
3553 (gimple_build_cond_from_tree): Likewise.
3554 (gimple_cond_set_condition_from_tree): Require a gcond *.
3555 (gimple_build_label): Return a glabel *.
3556 (gimple_build_goto): Return a ggoto *.
3557 (gimple_build_bind): Return a gbind *.
3558 (gimple_build_asm_vec): Return a gasm *.
3559 (gimple_build_catch): Return a gcatch *.
3560 (gimple_build_eh_filter): Return a geh_filter *.
3561 (gimple_build_eh_must_not_throw): Return a geh_mnt *.
3562 (gimple_build_eh_else): Return a geh_else *.
3563 (gimple_build_try): Return a gtry *.
3564 (gimple_build_resx): Return a gresx *.
3565 (gimple_build_switch_nlabels): Return a gswitch *.
3566 (gimple_build_switch): Return a gswitch *.
3567 (gimple_build_eh_dispatch): Return a geh_dispatch *.
3568 (gimple_build_debug_bind_stat): Return a gdebug *.
3569 (gimple_build_debug_source_bind_stat): Return a gdebug *.
3570 (gimple_build_omp_critical): Return a gomp_critical *.
3571 (gimple_build_omp_for): Return a gomp_for *.
3572 (gimple_build_omp_parallel): Return a gomp_parallel *.
3573 (gimple_build_omp_task): Return a gomp_task *.
3574 (gimple_build_omp_continue): Return a gomp_continue *.
3575 (gimple_build_omp_sections): Return a gomp_sections *.
3576 (gimple_build_omp_single): Return a gomp_single *.
3577 (gimple_build_omp_target): Return a gomp_target *.
3578 (gimple_build_omp_teams): Return a gomp_teams *.
3579 (gimple_build_omp_atomic_load): Return a gomp_atomic_load *.
3580 (gimple_build_omp_atomic_store): Return a gomp_atomic_store *.
3581 (gimple_build_transaction): Return a gtransaction *.
3582 (gimple_call_arg_flags): Require a const gcall *.
3583 (gimple_call_return_flags): Likewise.
3584 (gimple_call_copy_skip_args): Require and return a gcall *.
3585 (gimple_asm_clobbers_memory_p): Require a const gasm *.
3586 (gimple_seq_first_stmt_as_a_bind): New.
3587 (gimple_assign_nontemporal_move_p): Require a const gassign *
3588 rather than a const_gimple.
3589 (gimple_call_internal_fn): Update for renaming to gcall.
3590 (gimple_call_fntype): Likewise.
3591 (gimple_call_set_fntype): Require a gcall * rather than a gimple.
3592 (gimple_call_set_fn): Likewise.
3593 (gimple_call_set_internal_fn): Likewise.
3594 (gimple_call_set_chain): Likewise.
3595 (gimple_call_set_tail): Likewise.
3596 (gimple_call_tail_p): Likewise.
3597 (gimple_call_set_return_slot_opt): Likewise.
3598 (gimple_call_return_slot_opt_p): Likewise.
3599 (gimple_call_set_from_thunk): Likewise.
3600 (gimple_call_from_thunk_p): Likewise.
3601 (gimple_call_set_va_arg_pack): Likewise.
3602 (gimple_call_va_arg_pack_p): Likewise.
3603 (gimple_call_set_nothrow): Likewise.
3604 (gimple_call_nothrow_p): Likewise.
3605 (gimple_call_set_alloca_for_var): Likewise.
3606 (gimple_call_alloca_for_var_p): Likewise.
3607 (gimple_call_use_set): Likewise.
3608 (gimple_call_clobber_set): Likewise.
3609 (gimple_call_return_type): Require a const gcall * rather than a
3610 const_gimple.
3611 (gimple_call_chain_ptr): Likewise.
3612 (gimple_call_copy_flags): Require a pair of gcall *.
3613 (gimple_cond_set_code): Require a gcond * rather than a gimple
3614 (gimple_cond_set_lhs): Likewise.
3615 (gimple_cond_set_rhs): Likewise.
3616 (gimple_cond_set_true_label): Likewise.
3617 (gimple_cond_set_false_label): Likewise.
3618 (gimple_cond_make_false): Likewise.
3619 (gimple_cond_make_true): Likewise.
3620 (gimple_cond_lhs_ptr): Require a const gcond * rather than a
3621 const_gimple.
3622 (gimple_cond_rhs_ptr): Likewise.
3623 (gimple_cond_true_label): Likewise.
3624 (gimple_cond_false_label): Likewise.
3625 (gimple_cond_true_p): Likewise.
3626 (gimple_cond_false_p): Likewise.
3627 (gimple_cond_set_condition): Likewise.
3628 (gimple_label_label): Require a const glabel *.
3629 (gimple_label_set_label): Require a glabel *.
3630 (gimple_goto_set_dest): Require a ggoto *.
3631 (gimple_bind_vars): Require a const gbind *.
3632 (gimple_bind_block): Likewise.
3633 (gimple_bind_set_vars): Require a gbind *.
3634 (gimple_bind_append_vars): Likewise.
3635 (gimple_bind_body_ptr): Likewise.
3636 (gimple_bind_body): Likewise.
3637 (gimple_bind_set_body): Likewise.
3638 (gimple_bind_add_stmt): Likewise.
3639 (gimple_bind_add_seq): Likewise.
3640 (gimple_bind_set_block): Likewise.
3641 (gimple_asm_ninputs): Require a const gasm *.
3642 (gimple_asm_noutputs): Likewise.
3643 (gimple_asm_nclobbers): Likewise.
3644 (gimple_asm_nlabels): Likewise.
3645 (gimple_asm_input_op): Likewise.
3646 (gimple_asm_input_op_ptr): Likewise.
3647 (gimple_asm_output_op): Likewise.
3648 (gimple_asm_output_op_ptr): Likewise.
3649 (gimple_asm_clobber_op): Likewise.
3650 (gimple_asm_label_op): Likewise.
3651 (gimple_asm_string): Likewise.
3652 (gimple_asm_volatile_p): Likewise.
3653 (gimple_asm_input_p): Likewise.
3654 (gimple_asm_set_input_op): Require a gasm *.
3655 (gimple_asm_set_output_op): Likewise.
3656 (gimple_asm_set_clobber_op): Likewise.
3657 (gimple_asm_set_label_op): Likewise.
3658 (gimple_asm_set_volatile): Likewise.
3659 (gimple_asm_set_input): Likewise.
3660 (gimple_catch_types): Require a const gcatch *.
3661 (gimple_catch_types_ptr): Require a gcatch *.
3662 (gimple_catch_handler_ptr): Likewise.
3663 (gimple_catch_handler): Likewise.
3664 (gimple_catch_set_types): Likewise.
3665 (gimple_catch_set_handler): Likewise.
3666 (gimple_eh_filter_types): Update for renaming of subclass to
3667 geh_filter.
3668 (gimple_eh_filter_types_ptr): Likewise.
3669 (gimple_eh_filter_failure_ptr): Likewise.
3670 (gimple_eh_filter_set_types): Require a geh_filter *.
3671 (gimple_eh_filter_set_failure): Likewise.
3672 (gimple_eh_must_not_throw_fndecl): Require a geh_mnt *.
3673 (gimple_eh_must_not_throw_set_fndecl): Likewise.
3674 (gimple_eh_else_n_body_ptr): Require a geh_else *.
3675 (gimple_eh_else_n_body): Likewise.
3676 (gimple_eh_else_e_body_ptr): Likewise.
3677 (gimple_eh_else_e_body): Likewise.
3678 (gimple_eh_else_set_n_body): Likewise.
3679 (gimple_eh_else_set_e_body): Likewise.
3680 (gimple_try_set_kind): Require a gtry *.
3681 (gimple_try_set_catch_is_cleanup): Likewise.
3682 (gimple_try_set_eval): Likewise.
3683 (gimple_try_set_cleanup): Likewise.
3684 (gimple_try_eval_ptr): Update for renaming of subclass to gtry.
3685 (gimple_try_cleanup_ptr): Likewise.
3686 (gimple_phi_capacity): Update for renaming of subclass to gphi.
3687 (gimple_phi_num_args): Likewise.
3688 (gimple_phi_result): Likewise.
3689 (gimple_phi_result_ptr): Likewise.
3690 (gimple_phi_arg): Likewise.
3691 (gimple_phi_set_result): Require a gphi *.
3692 (gimple_phi_set_arg): Likewise.
3693 (gimple_phi_arg_def_ptr): Likewise.
3694 (gimple_phi_arg_edge): Likewise.
3695 (gimple_phi_arg_location): Likewise.
3696 (gimple_phi_arg_location_from_edge): Likewise.
3697 (gimple_phi_arg_set_location): Likewise.
3698 (gimple_phi_arg_has_location): Likewise.
3699 (gimple_resx_region): Require a const gresx *.
3700 (gimple_resx_set_region): Require a gresx *.
3701 (gimple_eh_dispatch_region): Require a const geh_dispatch *.
3702 (gimple_eh_dispatch_set_region): Require a geh_dispatch *.
3703 (gimple_switch_num_labels): Require a const gswitch *.
3704 (gimple_switch_set_num_labels): Likewise.
3705 (gimple_switch_index): Likewise.
3706 (gimple_switch_index_ptr): Likewise.
3707 (gimple_switch_label): Likewise.
3708 (gimple_switch_default_label): Likewise.
3709 (gimple_switch_set_index): Require a gswitch *.
3710 (gimple_switch_set_label): Likewise.
3711 (gimple_switch_set_default_label): Likewise.
3712 (gimple_omp_critical_name): Require a const gomp_critical *.
3713 (gimple_omp_critical_name_ptr): Require a gomp_critical *.
3714 (gimple_omp_critical_set_name): Likewise.
3715 (gimple_omp_for_set_kind): Require a gomp_for *.
3716 (gimple_omp_for_set_combined_p): Likewise.
3717 (gimple_omp_for_set_combined_into_p): Likewise.
3718 (gimple_omp_for_clauses): Update for renaming of subclass to
3719 gomp_for.
3720 (gimple_omp_for_clauses_ptr): Likewise.
3721 (gimple_omp_for_set_clauses): Likewise.
3722 (gimple_omp_for_collapse): Likewise.
3723 (gimple_omp_for_index): Likewise.
3724 (gimple_omp_for_index_ptr): Likewise.
3725 (gimple_omp_for_set_index): Likewise.
3726 (gimple_omp_for_initial): Likewise.
3727 (gimple_omp_for_initial_ptr): Likewise.
3728 (gimple_omp_for_set_initial): Likewise.
3729 (gimple_omp_for_final): Likewise.
3730 (gimple_omp_for_final_ptr): Likewise.
3731 (gimple_omp_for_set_final): Likewise.
3732 (gimple_omp_for_incr): Likewise.
3733 (gimple_omp_for_incr_ptr): Likewise.
3734 (gimple_omp_for_set_incr): Likewise.
3735 (gimple_omp_for_pre_body): Likewise.
3736 (gimple_omp_for_set_pre_body): Likewise.
3737 (gimple_omp_parallel_clauses): Update for renaming of subclass to
3738 gomp_parallel.
3739 (gimple_omp_parallel_clauses_ptr): Require a gomp_parallel *.
3740 (gimple_omp_parallel_set_clauses): Likewise.
3741 (gimple_omp_parallel_child_fn_ptr): Likewise.
3742 (gimple_omp_parallel_set_child_fn): Likewise.
3743 (gimple_omp_parallel_data_arg_ptr): Likewise.
3744 (gimple_omp_parallel_set_data_arg): Likewise.
3745 (gimple_omp_parallel_child_fn): Require a const gomp_parallel *.
3746 (gimple_omp_parallel_data_arg): Likewise.
3747 (gimple_omp_task_clauses): Update for renaming of subclass to
3748 gomp_task.
3749 (gimple_omp_task_clauses_ptr): Likewise.
3750 (gimple_omp_task_set_clauses): Likewise.
3751 (gimple_omp_task_child_fn): Likewise.
3752 (gimple_omp_task_child_fn_ptr): Likewise.
3753 (gimple_omp_task_set_child_fn): Likewise.
3754 (gimple_omp_task_data_arg): Likewise.
3755 (gimple_omp_task_data_arg_ptr): Likewise.
3756 (gimple_omp_task_set_data_arg): Likewise.
3757 (gimple_omp_taskreg_clauses): Whitespace fixes.
3758 (gimple_omp_taskreg_clauses_ptr): Likewise.
3759 (gimple_omp_taskreg_set_clauses): Likewise.
3760 (gimple_omp_taskreg_child_fn): Likewise.
3761 (gimple_omp_taskreg_child_fn_ptr): Likewise.
3762 (gimple_omp_taskreg_set_child_fn): Likewise.
3763 (gimple_omp_taskreg_data_arg): Likewise.
3764 (gimple_omp_taskreg_data_arg_ptr): Likewise.
3765 (gimple_omp_taskreg_set_data_arg): Likewise.
3766 (gimple_omp_task_copy_fn): Update for renaming of subclass to
3767 gomp_task.
3768 (gimple_omp_task_copy_fn_ptr): Likewise.
3769 (gimple_omp_task_set_copy_fn): Likewise.
3770 (gimple_omp_task_arg_size): Likewise.
3771 (gimple_omp_task_arg_size_ptr): Likewise.
3772 (gimple_omp_task_set_arg_size): Likewise.
3773 (gimple_omp_task_arg_align): Likewise.
3774 (gimple_omp_task_arg_align_ptr): Likewise.
3775 (gimple_omp_task_set_arg_align): Likewise.
3776 (gimple_omp_single_clauses): Update for renaming of subclass to
3777 gomp_single.
3778 (gimple_omp_single_clauses_ptr): Likewise.
3779 (gimple_omp_single_set_clauses): Likewise.
3780 (gimple_omp_target_clauses): Update for renaming of subclass to
3781 gomp_target.
3782 (gimple_omp_target_clauses_ptr): Likewise.
3783 (gimple_omp_target_set_clauses): Require a gomp_target *.
3784 (gimple_omp_target_set_kind): Likewise.
3785 (gimple_omp_target_child_fn_ptr): Likewise.
3786 (gimple_omp_target_set_child_fn): Likewise.
3787 (gimple_omp_target_data_arg_ptr): Likewise.
3788 (gimple_omp_target_set_data_arg): Likewise.
3789 (gimple_omp_target_child_fn): Require a const gomp_target *.
3790 (gimple_omp_target_data_arg): Likewise.
3791 (gimple_omp_teams_clauses): Update for renaming of subclass to
3792 gomp_teams.
3793 (gimple_omp_teams_clauses_ptr): Likewise.
3794 (gimple_omp_teams_set_clauses): Require a gomp_teams *.
3795 (gimple_omp_sections_clauses): Update for renaming of subclass to
3796 gomp_sections.
3797 (gimple_omp_sections_clauses_ptr): Likewise.
3798 (gimple_omp_sections_set_clauses): Likewise.
3799 (gimple_omp_sections_control): Likewise.
3800 (gimple_omp_sections_control_ptr): Likewise.
3801 (gimple_omp_sections_set_control): Likewise.
3802 (gimple_omp_for_set_cond): Likewise.
3803 (gimple_omp_for_cond): Likewise.
3804 (gimple_omp_atomic_store_set_val): Require a gomp_atomic_store *.
3805 (gimple_omp_atomic_store_val_ptr): Likewise.
3806 (gimple_omp_atomic_load_set_lhs): Likewise.
3807 (gimple_omp_atomic_store_val): Require a const gomp_atomic_store *.
3808 (gimple_omp_atomic_load_lhs): Likewise.
3809 (gimple_omp_atomic_load_rhs): Likewise.
3810 (gimple_omp_atomic_load_lhs_ptr): Require a gomp_atomic_load *.
3811 (gimple_omp_atomic_load_set_rhs): Likewise.
3812 (gimple_omp_atomic_load_rhs_ptr): Likewise.
3813 (gimple_omp_continue_control_def): Require a const gomp_continue *.
3814 (gimple_omp_continue_control_use): Likewise.
3815 (gimple_omp_continue_control_def_ptr): Require a gomp_continue *.
3816 (gimple_omp_continue_set_control_def): Likewise.
3817 (gimple_omp_continue_control_use_ptr): Likewise.
3818 (gimple_omp_continue_set_control_use): Likewise.
3819 (gimple_transaction_body_ptr): Require a gtransaction *.
3820 (gimple_transaction_body): Likewise.
3821 (gimple_transaction_label_ptr): Likewise.
3822 (gimple_transaction_label): Require a const gtransaction *.
3823 (gimple_transaction_subcode): Likewise.
3824 (gimple_transaction_set_body): Require a gtransaction *.
3825 (gimple_transaction_set_label): Likewise.
3826 (gimple_transaction_set_subcode): Likewise.
3827 (gimple_return_retval_ptr): Require a const greturn *.
3828 (gimple_return_retval): Likewise.
3829 (gimple_return_set_retval): Require a greturn *.
3830 (gimple_expr_type): Introduce local "call_stmt" and use in place of
3831 "stmt" for typesafety.
3832
3833 * asan.c: Use gimple subclasses.
3834 * auto-profile.c: Likewise.
3835 * builtins.c: Likewise.
3836 * builtins.h: Likewise.
3837 * cfgexpand.c: Likewise.
3838 * cfgloop.c: Likewise.
3839 * cfgloopmanip.c: Likewise.
3840 * cgraph.c: Likewise.
3841 * cgraph.h: Likewise.
3842 * cgraphbuild.c: Likewise.
3843 * cgraphclones.c: Likewise.
3844 * cgraphunit.c: Likewise.
3845 * expr.h: Likewise.
3846 * gimple-builder.c: Likewise.
3847 * gimple-builder.h: Likewise.
3848 * gimple-fold.c: Likewise.
3849 * gimple-low.c: Likewise.
3850 * gimple-pretty-print.c: Likewise.
3851 * gimple-ssa-isolate-paths.c: Likewise.
3852 * gimple-ssa-strength-reduction.c: Likewise.
3853 * gimple-streamer-in.c: Likewise.
3854 * gimple-streamer-out.c: Likewise.
3855 * gimple-walk.c: Likewise.
3856 * gimplify-me.c: Likewise.
3857 * gimplify.c: Likewise.
3858 * gimplify.h: Likewise.
3859 * graphite-scop-detection.c: Likewise.
3860 * graphite-sese-to-poly.c: Likewise.
3861 * internal-fn.c: Likewise.
3862 * internal-fn.def:: Likewise.
3863 * internal-fn.h: Likewise.
3864 * ipa-icf-gimple.c: Likewise.
3865 * ipa-icf-gimple.h: Likewise.
3866 * ipa-icf.c: Likewise.
3867 * ipa-inline-analysis.c: Likewise.
3868 * ipa-prop.c: Likewise.
3869 * ipa-prop.h: Likewise.
3870 * ipa-pure-const.c: Likewise.
3871 * ipa-split.c: Likewise.
3872 * lto-streamer-in.c: Likewise.
3873 * lto-streamer-out.c: Likewise.
3874 * omp-low.c: Likewise.
3875 * predict.c: Likewise.
3876 * sanopt.c: Likewise.
3877 * sese.c: Likewise.
3878 * ssa-iterators.h: Likewise.
3879 * stmt.c: Likewise.
3880 * trans-mem.c: Likewise.
3881 * tree-call-cdce.c: Likewise.
3882 * tree-cfg.c: Likewise.
3883 * tree-cfg.h: Likewise.
3884 * tree-cfgcleanup.c: Likewise.
3885 * tree-chkp.c: Likewise.
3886 * tree-chkp.h: Likewise.
3887 * tree-complex.c: Likewise.
3888 * tree-data-ref.c: Likewise.
3889 * tree-dfa.c: Likewise.
3890 * tree-eh.c: Likewise.
3891 * tree-eh.h: Likewise.
3892 * tree-emutls.c: Likewise.
3893 * tree-if-conv.c: Likewise.
3894 * tree-inline.c: Likewise.
3895 * tree-inline.h: Likewise.
3896 * tree-into-ssa.c: Likewise.
3897 * tree-into-ssa.h: Likewise.
3898 * tree-loop-distribution.c: Likewise.
3899 * tree-nrv.c: Likewise.
3900 * tree-object-size.c: Likewise.
3901 * tree-outof-ssa.c: Likewise.
3902 * tree-parloops.c: Likewise.
3903 * tree-phinodes.c: Likewise.
3904 * tree-phinodes.h: Likewise.
3905 * tree-predcom.c: Likewise.
3906 * tree-profile.c: Likewise.
3907 * tree-scalar-evolution.c: Likewise.
3908 * tree-scalar-evolution.h
3909 * tree-sra.cn_function):
3910 * tree-ssa-alias.c: Likewise.
3911 * tree-ssa-alias.h: Likewise.
3912 * tree-ssa-ccp.c: Likewise.
3913 * tree-ssa-coalesce.c: Likewise.
3914 * tree-ssa-copy.c: Likewise.
3915 * tree-ssa-copyrename.c: Likewise.
3916 * tree-ssa-dce.c: Likewise.
3917 * tree-ssa-dom.c: Likewise.
3918 * tree-ssa-forwprop.c: Likewise.
3919 * tree-ssa-ifcombine.c: Likewise.
3920 * tree-ssa-live.c: Likewise.
3921 * tree-ssa-loop-im.c: Likewise.
3922 * tree-ssa-loop-ivcanon.c: Likewise.
3923 * tree-ssa-loop-ivopts.c: Likewise.
3924 * tree-ssa-loop-manip.c: Likewise.
3925 * tree-ssa-loop-niter.c: Likewise.
3926 * tree-ssa-loop-prefetch.c: Likewise.
3927 * tree-ssa-loop-unswitch.c: Likewise.
3928 * tree-ssa-math-opts.c: Likewise.
3929 * tree-ssa-operands.c: Likewise.
3930 * tree-ssa-phiopt.c: Likewise.
3931 * tree-ssa-phiprop.c: Likewise.
3932 * tree-ssa-pre.c: Likewise.
3933 * tree-ssa-propagate.c: Likewise.
3934 * tree-ssa-propagate.h: Likewise.
3935 * tree-ssa-reassoc.c: Likewise.
3936 * tree-ssa-sccvn.c: Likewise.
3937 * tree-ssa-sccvn.h: Likewise.
3938 * tree-ssa-sink.c: Likewise.
3939 * tree-ssa-strlen.c
3940 * tree-ssa-structalias.c
3941 * tree-ssa-tail-merge.c: Likewise.
3942 * tree-ssa-ter.c: Likewise.
3943 * tree-ssa-threadedge.c: Likewise.
3944 * tree-ssa-threadedge.h: Likewise.
3945 * tree-ssa-threadupdate.c: Likewise.
3946 * tree-ssa-uncprop.c: Likewise.
3947 * tree-ssa-uninit.c: Likewise.
3948 * tree-ssa.c: Likewise.
3949 * tree-stdarg.c: Likewise.
3950 * tree-switch-conversion.c: Likewise.
3951 * tree-tailcall.c: Likewise.
3952 * tree-vect-data-refs.c: Likewise.
3953 * tree-vect-generic.c: Likewise.
3954 * tree-vect-loop-manip.c: Likewise.
3955 * tree-vect-loop.c: Likewise.
3956 * tree-vect-patterns.c: Likewise.
3957 * tree-vect-slp.c: Likewise.
3958 * tree-vect-stmts.c: Likewise.
3959 * tree-vectorizer.h: Likewise.
3960 * tree-vrp.c: Likewise.
3961 * tree.c: Likewise.
3962 * ubsan.c: Likewise.
3963 * value-prof.c: Likewise.
3964 * value-prof.h: Likewise.
3965 * vtable-verify.c: Likewise.
3966
3967 2014-11-19 Markus Trippelsdorf <markus@trippelsdorf.de>
3968
3969 * config/rs6000/constraints.md: Avoid signed integer overflows.
3970 * config/rs6000/predicates.md: Likewise.
3971
3972 2014-11-19 Renlin Li <Renlin.Li@arm.com>
3973
3974 PR target/63424
3975 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
3976
3977 2014-11-19 Renlin Li <Renlin.Li@arm.com>
3978
3979 PR middle-end/63762
3980 * ira.c (ira): Update preferred class.
3981
3982 2014-11-19 Jakub Jelinek <jakub@redhat.com>
3983
3984 * gimple.h (gimple_build_assign_with_ops): Add unary arg overload.
3985 (gimple_assign_set_rhs_with_ops_1): Renamed to ...
3986 (gimple_assign_set_rhs_with_ops): ... this. Adjust binary arg
3987 inline overload to use it. Add unary arg overload.
3988 * gimple.c (gimple_build_assign_with_ops): New unary arg overload.
3989 (gimple_assign_set_rhs_from_tree): Use
3990 gimple_assign_set_rhs_with_ops instead of
3991 gimple_assign_set_rhs_with_ops_1.
3992 (gimple_assign_set_rhs_with_ops_1): Renamed to ...
3993 (gimple_assign_set_rhs_with_ops): ... this.
3994 * ipa-split.c (split_function): Remove last NULL argument
3995 from gimple_build_assign_with_ops call.
3996 * tree-ssa-loop-im.c
3997 (move_computations_dom_walker::before_dom_children): Likewise.
3998 * tsan.c (instrument_builtin_call): Likewise.
3999 * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
4000 vectorizable_conversion, vectorizable_load): Likewise.
4001 * tree-vect-loop.c (vect_is_simple_reduction_1,
4002 get_initial_def_for_induction): Likewise.
4003 * tree-loop-distribution.c (generate_memset_builtin): Likewise.
4004 * tree-vect-patterns.c (vect_handle_widen_op_by_const,
4005 vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
4006 vect_recog_over_widening_pattern, vect_recog_rotate_pattern,
4007 vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern,
4008 vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
4009 adjust_bool_pattern, vect_recog_bool_pattern): Likewise.
4010 * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
4011 neg_replacement): Likewise.
4012 * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
4013 maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
4014 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4015 * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
4016 expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
4017 simd_clone_adjust): Likewise.
4018 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
4019 * gimple-ssa-strength-reduction.c (introduce_cast_before_cand,
4020 replace_one_candidate): Likewise.
4021 * gimple-builder.c (build_type_cast): Likewise.
4022 * tree-ssa-forwprop.c (simplify_rotate): Likewise.
4023 (forward_propagate_addr_expr_1): Remove last NULL argument
4024 from gimple_assign_set_rhs_with_ops call.
4025 (simplify_vector_constructor): Use gimple_assign_set_rhs_with_ops
4026 instead of gimple_assign_set_rhs_with_ops_1.
4027 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Remove last NULL
4028 argument from gimple_build_assign_with_ops call.
4029 (repropagate_negates): Remove last NULL argument from
4030 gimple_assign_set_rhs_with_ops call.
4031 * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn): Remove
4032 last NULL argument from gimple_build_assign_with_ops call.
4033 (instrument_bool_enum_load): Likewise. Remove last NULL argument
4034 from gimple_assign_set_rhs_with_ops call.
4035 * tree-ssa-math-opts.c (build_and_insert_cast, convert_mult_to_fma):
4036 Remove last NULL argument from gimple_build_assign_with_ops call.
4037 (bswap_replace): Likewise. Use gimple_assign_set_rhs_with_ops instead
4038 of gimple_assign_set_rhs_with_ops_1.
4039 (convert_plusminus_to_widen): Use gimple_assign_set_rhs_with_ops
4040 instead of gimple_assign_set_rhs_with_ops_1.
4041 * gimple-fold.c (replace_stmt_with_simplification): Likewise.
4042 (rewrite_to_defined_overflow, gimple_build): Remove last NULL argument
4043 from gimple_build_assign_with_ops call.
4044 * tree-ssa-strlen.c (handle_pointer_plus): Remove last NULL argument
4045 from gimple_assign_set_rhs_with_ops call.
4046 * tree-vrp.c (simplify_truth_ops_using_ranges,
4047 simplify_bit_ops_using_ranges): Remove last NULL argument from
4048 gimple_assign_set_rhs_with_ops call.
4049 (simplify_float_conversion_using_ranges,
4050 simplify_internal_call_using_ranges): Remove last NULL argument from
4051 gimple_build_assign_with_ops call.
4052
4053 2014-11-19 Wilco Dijkstra <wdijkstr@arm.com>
4054
4055 PR target/61915
4056 * config/aarch64/aarch64.c (generic_regmove_cost): Increase FP move
4057 cost.
4058
4059 2014-11-19 Marek Polacek <polacek@redhat.com>
4060
4061 PR sanitizer/63690
4062 * ubsan.c (instrument_object_size): Check for MEM_REF.
4063
4064 2014-11-19 Ilya Verbin <ilya.verbin@intel.com>
4065
4066 PR regression/63868
4067 * cgraph.c (cgraph_node::create): Guard g->have_offload with
4068 ifdef ENABLE_OFFLOADING.
4069 * omp-low.c (create_omp_child_function): Likewise.
4070 (expand_omp_target): Guard node->mark_force_output and offload_funcs
4071 with ifdef ENABLE_OFFLOADING.
4072 * varpool.c (varpool_node::get_create): Guard g->have_offload and
4073 offload_vars with ifdef ENABLE_OFFLOADING.
4074
4075 2014-11-19 Felix Yang <felix.yang@huawei.com>
4076 Shanyao Chen <chenshanyao@huawei.com>
4077
4078 PR target/59593
4079 * config/arm/arm.md (define_attr "arch"): Add v6t2.
4080 (define_attr "arch_enabled"): Add test for the above.
4081 (*movhi_insn_arch4): Add new alternative.
4082
4083 2014-11-19 Richard Henderson <rth@redhat.com>
4084
4085 * c-family/c-common.c (c_common_reswords): Add
4086 __builtin_call_with_static_chain.
4087 * c-family/c-common.h (RID_BUILTIN_CALL_WITH_STATIC_CHAIN): New.
4088 * c/c-parser.c (c_parser_postfix_expression): Handle it.
4089 * doc/extend.texi (__builtin_call_with_static_chain): Document it.
4090
4091 * calls.c (prepare_call_address): Allow decl or type for first arg.
4092 (expand_call): Pass type to prepare_call_address if no decl.
4093 * gimple-fold.c (gimple_fold_call): Eliminate the static chain if
4094 the function doesn't use it; fold it otherwise.
4095 * gimplify.c (gimplify_call_expr): Gimplify the static chain.
4096 * tree-cfg.c (verify_gimple_call): Allow a static chain on indirect
4097 function calls.
4098
4099 * targhooks.c (default_static_chain): Remove check for
4100 DECL_STATIC_CHAIN.
4101 * config/moxie/moxie.c (moxie_static_chain): Likewise.
4102 * config/i386/i386.c (ix86_static_chain): Allow decl or type
4103 as the first argument.
4104 * config/xtensa/xtensa.c (xtensa_static_chain): Change the name
4105 of the unused first parameter.
4106 * doc/tm.texi (TARGET_STATIC_CHAIN): Document the first parameter
4107 may be a type.
4108 * target.def (static_chain): Likewise.
4109
4110 2014-11-19 Renlin Li <renlin.li@arm.com>
4111
4112 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_FP_FAST,
4113 __ARM_FEATURE_FMA, __ARM_FP, __ARM_FEATURE_NUMERIC_MAXMIN, __ARM_NEON_FP.
4114
4115 2014-11-19 Marek Polacek <polacek@redhat.com>
4116
4117 PR sanitizer/63879
4118 * fold-const.c (negate_expr_p) <case NEGATE_EXPR>: Return
4119 !TYPE_OVERFLOW_SANITIZED.
4120 (fold_negate_expr) <case INTEGER_CST>: Fold when overflow
4121 does not trap and when overflow wraps, or when SANITIZE_SI_OVERFLOW
4122 is 0.
4123
4124 2014-11-19 Ilya Tocar <ilya.tocar@intel.com>
4125
4126 * collect2.c (main): Don't call fatal_error before
4127 diagnostic_initialize.
4128 * lto-wrapper.c (main): Likewise.
4129
4130 2014-11-19 Tom de Vries <tom@codesourcery.com>
4131
4132 PR tree-optimization/62167
4133 * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
4134 conservatively.
4135 (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
4136 assigns.
4137
4138 2014-11-19 Jakub Jelinek <jakub@redhat.com>
4139
4140 PR tree-optimization/63915
4141 * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
4142 true instead of false as last argument to gsi_replace.
4143
4144 PR sanitizer/63520
4145 * internal-fn.c (expand_ubsan_result_store): New function.
4146 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
4147 Use it instead of just emit_move_insn.
4148
4149 2014-11-19 Richard Biener <rguenther@suse.de>
4150
4151 PR tree-optimization/63844
4152 * omp-low.c (fixup_child_record_type): Use a restrict qualified
4153 referece type for the receiver parameter.
4154
4155 2014-11-19 Jakub Jelinek <jakub@redhat.com>
4156
4157 PR sanitizer/63913
4158 * ubsan.c: Include tree-eh.h.
4159 (instrument_bool_enum_load): Handle loads that can throw.
4160
4161 PR rtl-optimization/63843
4162 * simplify-rtx.c (simplify_binary_operation_1) <case ASHIFTRT>: For
4163 optimization of ashiftrt of subreg of lshiftrt, check that code
4164 is ASHIFTRT.
4165
4166 2014-11-18 Andrew MacLeod <amacleod@redhat.com>
4167
4168 * attribs.c (decl_attributes): Remove always true condition,
4169 TREE_TYPE(x) will never compare equal to a TYPE_DECL.
4170
4171 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
4172
4173 PR target/63937
4174 * target.def (use_by_pieces_infrastructure_p): Take unsigned
4175 HOST_WIDE_INT as the size parameter.
4176 * targhooks.c (default_use_by_pieces_infrastructure_p): Likewise.
4177 * targhooks.h (default_use_by_pieces_infrastructure_p): Likewise.
4178 * config/arc/arc.c (arc_use_by_pieces_infrastructure_p)): Likewise.
4179 * config/mips/mips.c (mips_use_by_pieces_infrastructure_p)): Likewise.
4180 * config/s390/s390.c (s390_use_by_pieces_infrastructure_p)): Likewise.
4181 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p)): Likewise.
4182 * config/aarch64/aarch64.c
4183 (aarch64_use_by_pieces_infrastructure_p)): Likewise.
4184 * doc/tm.texi: Regenerate.
4185
4186 2014-11-18 Jan Hubicka <hubicka@ucw.cz>
4187
4188 * ipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn.
4189 (ipa_value_from_jfunc, ipa_context_from_jfunc): Skip sanity check.
4190 (ipa_get_indirect_edge_target_1): Use opt_for_fn.
4191 (good_cloning_opportunity_p): Likewise.
4192 (ipa-cp gate): Enable ipa-cp with LTO.
4193 * ipa-profile.c (ipa_propagate_frequency): Use opt_for_fn.
4194 * ipa.c (symbol_table::remove_unreachable_nodes): Always build type
4195 inheritance.
4196 * ipa-inline-transform.c (inline_transform): Check if there are inlines
4197 to apply even at -O0.
4198 * cgraphunit.c (cgraph_node::finalize_function): Use opt_for_fn.
4199 (analyze_functions): Build type inheritance graph.
4200 * ipa-inline.c (can_inline_edge_p): Use opt_for_fn.
4201 (want_early_inline_function_p, want_inline_small_function_p):
4202 Likewise.
4203 (check_callers): Likewise.
4204 (edge_badness): Likewise.
4205 (inline_small_functions): Always be ready for indirect inlining
4206 to happend.
4207 (ipa_inline): Always use want_inline_function_to_all_callers_p.
4208 (early_inline_small_functions): Use opt_for_fn.
4209 * ipa-inline-analysis.c (estimate_function_body_sizes): use opt_for_fn.
4210 (estimate_function_body_sizes): Likewise.
4211 (compute_inline_parameters): Likewise.
4212 (estimate_edge_devirt_benefit): Likewise.
4213 (inline_analyze_function): Likewise.
4214 * ipa-devirt.c (ipa_devirt): Likewise.
4215 (gate): Use in_lto_p.
4216 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): Use opt_for_fn.
4217 (try_make_edge_direct_virtual_call): Likewise.
4218 (update_indirect_edges_after_inlining): Likewise.
4219 (ipa_free_all_structures_after_ipa_cp): Add in_lto_p check.
4220 * common.opt (findirect-inlining): Turn into optimization.
4221 * ipa-pure-const.c (add_new_function): Use opt_for_fn.
4222 (pure_const_generate_summary): Likewise.
4223 (gate_pure_const): Always enable with in_lto_p.
4224
4225 2014-11-18 Maciej W. Rozycki <macro@codesourcery.com>
4226
4227 * config/mips/mips.md (compression): Add `micromips32' setting.
4228 (enabled, length): Handle it.
4229 (shift_compression): Replace `micromips' with `micromips32' in
4230 the `compression' attribute.
4231 (*add<mode>3, sub<mode>3): Likewise.
4232
4233 2014-11-18 Maciej W. Rozycki <macro@codesourcery.com>
4234
4235 * gcc/config/mips/mips.md (*jump_absolute): Use a branch when in
4236 range, a jump otherwise.
4237
4238 2014-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4239
4240 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_to_from_gp):
4241 Split into...
4242 (cortex_a15_gp_to_vfp): ...This.
4243 (cortex_a15_fp_to_gp): ...And this.
4244 Define and comment bypass from vfp operations to fp->gp moves.
4245
4246 2014-11-18 Martin Liska <mliska@suse.cz>
4247
4248 * var-tracking.c (vt_find_locations): New fibonacci_node is used.
4249
4250 2014-11-18 Martin Liska <mliska@suse.cz>
4251
4252 * bt-load.c (add_btr_def): New fibonacci_heap is used.
4253 (migrate_btr_defs): Likewise.
4254
4255 2014-11-18 Martin Liska <mliska@suse.cz>
4256
4257 * tracer.c (tail_duplicate): New fibonacci_heap class is used.
4258
4259 2014-11-18 Martin Liska <mliska@suse.cz>
4260
4261 * bb-reorder.c (mark_bb_visited): New fibonacci_heap is used.
4262 (find_traces): Likewise.
4263 (find_traces_1_round): Likewise.
4264
4265 2014-11-18 Martin Liska <mliska@suse.cz>
4266
4267 * fibonacci_heap.h: New file.
4268 (fibonacci_heap::insert): Created from fibheap_insert.
4269 (fibonacci_heap::empty): Created from fibheap_empty.
4270 (fibonacci_heap::nodes): Created from fibheap_nodes.
4271 (fibonacci_heap::min_key): Created from fibheap_min_key.
4272 (fibonacci_heap::decrease_key): Created from fibheap_replace_key.
4273 (fibonacci_heap::replace_key_data): Created from fibheap_replace_key_data.
4274 (fibonacci_heap::extract_min): Created from fibheap_extract_min.
4275 (fibonacci_heap::min): Created from fibheap_min.
4276 (fibonacci_heap::replace_data): Created from fibheap_replace_data.
4277 (fibonacci_heap::delete_node): Created from fibheap_delete_node.
4278 (fibonacci_heap::union_with): Created from fibheap_union.
4279 * ipa-inline.c (update_edge_key): New heap API is used.
4280 (update_caller_keys): Likewise.
4281 (update_callee_keys): Likewise.
4282 (lookup_recursive_calls): Likewise.
4283 (recursive_inlining): Likewise.
4284 (add_new_edges_to_heap): Likewise.
4285 (heap_edge_removal_hook): Likewise.
4286 (inline_small_functions): Likewise.
4287
4288 2014-11-18 Marek Polacek <polacek@redhat.com>
4289
4290 PR sanitizer/63866
4291 * asan.c (asan_global_struct): Create a TYPE_DECL for "__asan_global",
4292 put it into TYPE_NAME and TYPE_STUB_DECL.
4293 * ubsan.c (ubsan_type_descriptor_type): New variable.
4294 Function renamed to ...
4295 (ubsan_get_type_descriptor_type): ... this. Cache
4296 return value in ubsan_type_descriptor_type variable.
4297 Create a TYPE_DECL for "__ubsan_type_descriptor", put it into
4298 TYPE_NAME and TYPE_STUB_DECL.
4299 (ubsan_get_source_location_type): Create a TYPE_DECL for
4300 "__ubsan_source_location", put it into TYPE_NAME and TYPE_STUB_DECL.
4301 (ubsan_type_descriptor, ubsan_create_data): Call
4302 ubsan_get_type_descriptor_type instead of ubsan_type_descriptor_type.
4303 Create a TYPE_DECL for name, put it into TYPE_NAME and TYPE_STUB_DECL.
4304
4305 2014-11-18 Felix Yang <felix.yang@huawei.com>
4306
4307 * config/aarch64/aarch64.c (doloop_end): New pattern.
4308 * config/aarch64/aarch64.md (TARGET_CAN_USE_DOLOOP_P): Implement.
4309
4310 2014-11-18 Jason Merrill <jason@redhat.com>
4311
4312 * tree.c (warn_deprecated_use): Show declaration with inform.
4313
4314 2014-11-18 Richard Biener <rguenther@suse.de>
4315
4316 PR tree-optimization/63914
4317 * tree-ssa-ccp.c (canonicalize_value): Remove float value
4318 canonicalization.
4319 (valid_lattice_transition): Allow (partial) transition
4320 from NaN to non-NaN if !HONOR_NANS.
4321 (set_lattice_value): Check for valid lattice transitions
4322 only when checking is enabled.
4323
4324 2014-11-18 Bernd Schmidt <bernds@codesourcery.com>
4325
4326 * config/nvptx/nvptx.c: Include <sstream> directly after "config.h".
4327
4328 2014-11-18 Christophe Lyon <christophe.lyon@linaro.org>
4329
4330 * config/arm/neon-testgen.ml (emit_prologue): Handle new
4331 compile_test_optim argument.
4332 (emit_automatics): Rename to emit_variables. Support variable
4333 indentation of its output.
4334 (compile_test_optim): New function.
4335 (test_intrinsic): Call compile_test_optim.
4336 * config/arm/neon.ml (features): Add Compiler_optim.
4337 (ops): Add Compiler_optim feature to Vbic and Vorn.
4338 (type_in_crypto_only): Replace 'or' by '||'.
4339 (reinterp): Likewise.
4340 (reinterpq): Likewise.
4341
4342 2014-11-18 Alan Lawrence <alan.lawrence@arm.com>
4343
4344 * config/aarch64/arm_neon.h (vld1_dup_f32, vld1_dup_f64, vld1_dup_p8,
4345 vld1_dup_p16, vld1_dup_s8, vld1_dup_s16, vld1_dup_s32, vld1_dup_s64,
4346 vld1_dup_u8, vld1_dup_u16, vld1_dup_u32, vld1_dup_u64, vld1q_dup_f32,
4347 vld1q_dup_f64, vld1q_dup_p8, vld1q_dup_p16, vld1q_dup_s8, vld1q_dup_s16,
4348 vld1q_dup_s32, vld1q_dup_s64, vld1q_dup_u8, vld1q_dup_u16,
4349 vld1q_dup_u32, vld1q_dup_u64): Replace inline asm with vdup_n_ and
4350 pointer dereference.
4351
4352 2014-11-18 Marc Glisse <marc.glisse@inria.fr>
4353
4354 * tree.c (element_mode, integer_truep): New functions.
4355 * tree.h (element_mode, integer_truep): Declare them.
4356 * fold-const.c (negate_expr_p, fold_negate_expr, combine_comparisons,
4357 fold_cond_expr_with_comparison, fold_real_zero_addition_p,
4358 fold_comparison, fold_ternary_loc, tree_call_nonnegative_warnv_p,
4359 fold_strip_sign_ops): Use element_mode.
4360 (fold_binary_loc): Use element_mode and element_precision.
4361 * match.pd: Use integer_truep, element_mode, element_precision,
4362 VECTOR_TYPE_P and build_one_cst. Extend some transformations to
4363 vectors. Simplify A/-A.
4364
4365 2014-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4366
4367 * config/arm/arm.md (unaligned_loaddi): Use std::swap instead of
4368 manual swapping implementation.
4369 (movcond_addsi): Likewise.
4370 * config/arm/arm.c (arm_canonicalize_comparison): Likewise.
4371 (arm_select_dominance_cc_mode): Likewise.
4372 (arm_reload_out_hi): Likewise.
4373 (gen_operands_ldrd_strd): Likewise.
4374 (output_move_double): Likewise.
4375 (arm_print_operand_address): Likewise.
4376 (thumb_output_move_mem_multiple): Likewise.
4377 (SWAP_RTX): Delete.
4378
4379 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
4380
4381 * config/arm/arm-builtins.c (CONVERT_QUALIFIERS): Delete.
4382 (COPYSIGNF_QUALIFIERS): Likewise.
4383 (CREATE_QUALIFIERS): Likewise.
4384 (DUP_QUALIFIERS): Likewise.
4385 (FLOAT_WIDEN_QUALIFIERS): Likewise.
4386 (FLOAT_NARROW_QUALIFIERS): Likewise.
4387 (REINTERP_QUALIFIERS): Likewise.
4388 (RINT_QUALIFIERS): Likewise.
4389 (SPLIT_QUALIFIERS): Likewise.
4390 (FIXCONV_QUALIFIERS): Likewise.
4391 (SCALARMUL_QUALIFIERS): Likewise.
4392 (SCALARMULL_QUALIFIERS): Likewise.
4393 (SCALARMULH_QUALIFIERS): Likewise.
4394 (SELECT_QUALIFIERS): Likewise.
4395 (VTBX_QUALIFIERS): Likewise.
4396 (SHIFTIMM_QUALIFIERS): Likewise.
4397 (SCALARMAC_QUALIFIERS): Likewise.
4398 (LANEMUL_QUALIFIERS): Likewise.
4399 (LANEMULH_QUALIFIERS): Likewise.
4400 (LANEMULL_QUALIFIERS): Likewise.
4401 (SHIFTACC_QUALIFIERS): Likewise.
4402 (SHIFTINSERT_QUALIFIERS): Likewise.
4403 (VTBL_QUALIFIERS): Likewise.
4404 (LOADSTRUCT_QUALIFIERS): Likewise.
4405 (LOADSTRUCTLANE_QUALIFIERS): Likewise.
4406 (STORESTRUCT_QUALIFIERS): Likewise.
4407 (STORESTRUCTLANE_QUALIFIERS): Likewise.
4408 (neon_builtin_type_mode): Delete.
4409 (v8qi_UP): Map to V8QImode.
4410 (v8qi_UP): Map to V8QImode.
4411 (v4hi_UP): Map to V4HImode.
4412 (v4hf_UP): Map to V4HFmode.
4413 (v2si_UP): Map to V2SImode.
4414 (v2sf_UP): Map to V2SFmode.
4415 (di_UP): Map to DImode.
4416 (v16qi_UP): Map to V16QImode.
4417 (v8hi_UP): Map to V8HImode.
4418 (v4si_UP): Map to V4SImode.
4419 (v4sf_UP): Map to V4SFmode.
4420 (v2di_UP): Map to V2DImode.
4421 (ti_UP): Map to TImode.
4422 (ei_UP): Map to EImode.
4423 (oi_UP): Map to OImode.
4424 (neon_itype): Delete.
4425 (neon_builtin_datum): Remove itype, make mode a machine_mode.
4426 (VAR1): Update accordingly.
4427 (arm_init_neon_builtins): Use machine_mode directly.
4428 (neon_dereference_pointer): Likewise.
4429 (arm_expand_neon_args): Use qualifiers to decide operand types.
4430 (arm_expand_neon_builtin): Likewise.
4431 * config/arm/arm_neon_builtins.def: Remap operation type for
4432 many builtins.
4433
4434 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
4435
4436 * config/arm/arm-builtins.c (arm_scalar_builtin_types): New.
4437 (enum arm_simd_type): Likewise.
4438 (struct arm_simd_type_info): Likewise
4439 (arm_mangle_builtin_scalar_type): Likewise.
4440 (arm_mangle_builtin_vector_type): Likewise.
4441 (arm_mangle_builtin_type): Likewise.
4442 (arm_simd_builtin_std_type): Likewise.
4443 (arm_lookup_simd_builtin_type): Likewise.
4444 (arm_simd_builtin_type): Likewise.
4445 (arm_init_simd_builtin_types): Likewise.
4446 (arm_init_simd_builtin_scalar_types): Likewise.
4447 (arm_init_neon_builtins): Rewrite using qualifiers.
4448 * config/arm/arm-protos.h (arm_mangle_builtin_type): New.
4449 * config/arm/arm-simd-builtin-types.def: New file.
4450 * config/arm/t-arm (arm-builtins.o): Depend on it.
4451 * config/arm/arm.c (arm_mangle_type): Call arm_mangle_builtin_type.
4452 * config/arm/arm_neon.h (int8x8_t): Use new internal type.
4453 (int16x4_t): Likewise.
4454 (int32x2_t): Likewise.
4455 (float16x4_t): Likewise.
4456 (float32x2_t): Likewise.
4457 (poly8x8_t): Likewise.
4458 (poly16x4_t): Likewise.
4459 (uint8x8_t): Likewise.
4460 (uint16x4_t): Likewise.
4461 (uint32x2_t): Likewise.
4462 (int8x16_t): Likewise.
4463 (int16x8_t): Likewise.
4464 (int32x4_t): Likewise.
4465 (int64x2_t): Likewise.
4466 (float32x4_t): Likewise.
4467 (poly8x16_t): Likewise.
4468 (poly16x8_t): Likewise.
4469 (uint8x16_t): Likewise.
4470 (uint16x8_t): Likewise.
4471 (uint32x4_t): Likewise.
4472 (uint64x2_t): Likewise.
4473
4474 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
4475
4476 * gcc/config/arm/arm-builtins.c (arm_type_qualifiers): New.
4477 (neon_itype): Add new types corresponding to the types used in
4478 qualifiers names.
4479 (arm_unop_qualifiers): New.
4480 (arm_bswap_qualifiers): Likewise.
4481 (arm_binop_qualifiers): Likewise.
4482 (arm_ternop_qualifiers): Likewise.
4483 (arm_getlane_qualifiers): Likewise.
4484 (arm_lanemac_qualifiers): Likewise.
4485 (arm_setlane_qualifiers): Likewise.
4486 (arm_combine_qualifiers): Likewise.
4487 (arm_load1_qualifiers): Likewise.
4488 (arm_load1_lane_qualifiers): Likewise.
4489 (arm_store1_qualifiers): Likewise.
4490 (arm_storestruct_lane_qualifiers): Likewise.
4491 (UNOP_QUALIFIERS): Likewise.
4492 (DUP_QUALIFIERS): Likewise.
4493 (SPLIT_QUALIFIERS): Likewise.
4494 (CONVERT_QUALIFIERS): Likewise.
4495 (FLOAT_WIDEN_QUALIFIERS): Likewise.
4496 (FLOAT_NARROW_QUALIFIERS): Likewise.
4497 (RINT_QUALIFIERS): Likewise.
4498 (COPYSIGNF_QUALIFIERS): Likewise.
4499 (CREATE_QUALIFIERS): Likewise.
4500 (REINTERP_QUALIFIERS): Likewise.
4501 (BSWAP_QUALIFIERS): Likewise.
4502 (BINOP_QUALIFIERS): Likewise.
4503 (FIXCONV_QUALIFIERS): Likewise.
4504 (SCALARMUL_QUALIFIERS): Likewise.
4505 (SCALARMULL_QUALIFIERS): Likewise.
4506 (SCALARMULH_QUALIFIERS): Likewise.
4507 (TERNOP_QUALIFIERS): Likewise.
4508 (SELECT_QUALIFIERS): Likewise.
4509 (VTBX_QUALIFIERS): Likewise.
4510 (GETLANE_QUALIFIERS): Likewise.
4511 (SHIFTIMM_QUALIFIERS): Likewise.
4512 (LANEMAC_QUALIFIERS): Likewise.
4513 (SCALARMAC_QUALIFIERS): Likewise.
4514 (SETLANE_QUALIFIERS): Likewise.
4515 (SHIFTINSERT_QUALIFIERS): Likewise.
4516 (SHIFTACC_QUALIFIERS): Likewise.
4517 (LANEMUL_QUALIFIERS): Likewise.
4518 (LANEMULL_QUALIFIERS): Likewise.
4519 (LANEMULH_QUALIFIERS): Likewise.
4520 (COMBINE_QUALIFIERS): Likewise.
4521 (VTBL_QUALIFIERS): Likewise.
4522 (LOAD1_QUALIFIERS): Likewise.
4523 (LOADSTRUCT_QUALIFIERS): Likewise.
4524 (LOAD1LANE_QUALIFIERS): Likewise.
4525 (LOADSTRUCTLANE_QUALIFIERS): Likewise.
4526 (STORE1_QUALIFIERS): Likewise.
4527 (STORESTRUCT_QUALIFIERS): Likewise.
4528 (STORE1LANE_QUALIFIERS): Likewise.
4529 (STORESTRUCTLANE_QUALIFIERS): Likewise.
4530 (neon_builtin_datum): Keep track of qualifiers.
4531 (VAR1): Likewise.
4532
4533 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
4534
4535 * config/arm/arm-builtins.c (VAR1): Add a comma.
4536 (VAR2): Rewrite in terms of VAR1.
4537 (VAR3-10): Likewise.
4538 (arm_builtins): Remove leading comma before ARM_BUILTIN_MAX.
4539 * config/arm/arm_neon_builtins.def: Remove trailing commas.
4540
4541 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
4542
4543 * config.gcc (extra_objs): Add arm-builtins.o for arm*-*-*.
4544 (target_gtfiles): Add config/arm/arm-builtins.c for arm*-*-*.
4545 * config/arm/arm-builtins.c: New.
4546 * config/arm/t-arm (arm_builtins.o): New.
4547 * config/arm/arm-protos.h (arm_expand_builtin): New.
4548 (arm_builtin_decl): Likewise.
4549 (arm_init_builtins): Likewise.
4550 (arm_atomic_assign_expand_fenv): Likewise.
4551 * config/arm/arm.c (arm_atomic_assign_expand_fenv): Remove prototype.
4552 (arm_init_builtins): Likewise.
4553 (arm_init_iwmmxt_builtins): Likewise
4554 (safe_vector_operand): Likewise
4555 (arm_expand_binop_builtin): Likewise
4556 (arm_expand_unop_builtin): Likewise
4557 (arm_expand_builtin): Likewise
4558 (arm_builtin_decl): Likewise
4559 (insn_flags): Remove static.
4560 (tune_flags): Likewise.
4561 (enum arm_builtins): Move to config/arm/arm-builtins.c.
4562 (arm_init_neon_builtins): Likewise.
4563 (struct builtin_description): Likewise.
4564 (arm_init_iwmmxt_builtins): Likewise.
4565 (arm_init_fp16_builtins): Likewise.
4566 (arm_init_crc32_builtins): Likewise.
4567 (arm_init_builtins): Likewise.
4568 (arm_builtin_decl): Likewise.
4569 (safe_vector_operand): Likewise.
4570 (arm_expand_ternop_builtin): Likewise.
4571 (arm_expand_binop_builtin): Likewise.
4572 (arm_expand_unop_builtin): Likewise.
4573 (neon_dereference_pointer): Likewise.
4574 (arm_expand_neon_args): Likewise.
4575 (arm_expand_neon_builtin): Likewise.
4576 (neon_split_vcombine): Likewise.
4577 (arm_expand_builtin): Likewise.
4578 (arm_builtin_vectorized_function): Likewise.
4579 (arm_atomic_assign_expand_fenv): Likewise.
4580
4581 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
4582
4583 * config/arm/t-arm (arm.o): Include arm-protos.h in the recipe.
4584 * config/arm/arm.c (FL_CO_PROC): Move to arm-protos.h.
4585 (FL_ARCH3M): Likewise.
4586 (FL_MODE26): Likewise.
4587 (FL_MODE32): Likewise.
4588 (FL_ARCH4): Likewise.
4589 (FL_ARCH5): Likewise.
4590 (FL_THUMB): Likewise.
4591 (FL_LDSCHED): Likewise.
4592 (FL_STRONG): Likewise.
4593 (FL_ARCH5E): Likewise.
4594 (FL_XSCALE): Likewise.
4595 (FL_ARCH6): Likewise.
4596 (FL_VFPV2): Likewise.
4597 (FL_WBUF): Likewise.
4598 (FL_ARCH6K): Likewise.
4599 (FL_THUMB2): Likewise.
4600 (FL_NOTM): Likewise.
4601 (FL_THUMB_DIV): Likewise.
4602 (FL_VFPV3): Likewise.
4603 (FL_NEON): Likewise.
4604 (FL_ARCH7EM): Likewise.
4605 (FL_ARCH7): Likewise.
4606 (FL_ARM_DIV): Likewise.
4607 (FL_ARCH8): Likewise.
4608 (FL_CRC32): Likewise.
4609 (FL_SMALLMUL): Likewise.
4610 (FL_IWMMXT): Likewise.
4611 (FL_IWMMXT2): Likewise.
4612 (FL_TUNE): Likewise.
4613 (FL_FOR_ARCH2): Likewise.
4614 (FL_FOR_ARCH3): Likewise.
4615 (FL_FOR_ARCH3M): Likewise.
4616 (FL_FOR_ARCH4): Likewise.
4617 (FL_FOR_ARCH4T): Likewise.
4618 (FL_FOR_ARCH5): Likewise.
4619 (FL_FOR_ARCH5T): Likewise.
4620 (FL_FOR_ARCH5E): Likewise.
4621 (FL_FOR_ARCH5TE): Likewise.
4622 (FL_FOR_ARCH5TEJ): Likewise.
4623 (FL_FOR_ARCH6): Likewise.
4624 (FL_FOR_ARCH6J): Likewise.
4625 (FL_FOR_ARCH6K): Likewise.
4626 (FL_FOR_ARCH6Z): Likewise.
4627 (FL_FOR_ARCH6ZK): Likewise.
4628 (FL_FOR_ARCH6T2): Likewise.
4629 (FL_FOR_ARCH6M): Likewise.
4630 (FL_FOR_ARCH7): Likewise.
4631 (FL_FOR_ARCH7A): Likewise.
4632 (FL_FOR_ARCH7VE): Likewise.
4633 (FL_FOR_ARCH7R): Likewise.
4634 (FL_FOR_ARCH7M): Likewise.
4635 (FL_FOR_ARCH7EM): Likewise.
4636 (FL_FOR_ARCH8A): Likewise.
4637 * config/arm/arm-protos.h: Take definitions moved from arm.c.
4638
4639 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
4640
4641 * config/arm/arm.c (arm_expand_neon_builtin): Remove "Magic Word"
4642 parameter, rearrange switch statement accordingly.
4643 (arm_evpc_neon_vrev): Remove "Magic Word".
4644 * config/arm/unspecs.md (unspec): Split many UNSPECs to
4645 rounding, or signed/unsigned variants.
4646 * config/arm/neon.md (vcond<mode><mode>): Remove "Magic Word" code.
4647 (vcondu<mode><mode>): Likewise.
4648 (neon_vadd): Remove "Magic Word" operand.
4649 (neon_vaddl): Remove "Magic Word" operand, convert to use
4650 signed/unsigned iterator.
4651 (neon_vaddw): Likewise.
4652 (neon_vhadd): Likewise, also iterate over "rounding" forms.
4653 (neon_vqadd): Remove "Magic Word" operand, convert to use
4654 signed/unsigned iterator.
4655 (neon_v<r>addhn): Remove "Magic Word" operand, convert to iterate
4656 over "rounding" forms.
4657 (neon_vmul): Remove "Magic Word" operand, iterate over
4658 polynomial/float instruction forms.
4659 (neon_vmla): Remove "Magic Word" operand.
4660 (neon_vfma): Likewise.
4661 (neon_vfms): Likewise.
4662 (neon_vmls): Likewise.
4663 (neon_vmlal): Remove "Magic Word" operand, iterate over
4664 signed/unsigned forms.
4665 (neon_vmlsl): Likewise.
4666 (neon_vqdmulh): Remove "Magic Word" operand, iterate over "rounding"
4667 forms.
4668 (neon_vqdmlal): Remove "Magic Word" operand, iterate over
4669 signed/unsigned forms.
4670 (neon_vqdmlsl): Likewise.
4671 (neon_vmull): Likewise.
4672 (neon_vqdmull): Remove "Magic Word" operand.
4673 (neon_vsub): Remove "Magic Word" operand.
4674 (neon_vsubl): Remove "Magic Word" operand, convert to use
4675 signed/unsigned iterator.
4676 (neon_vsubw): Likewise.
4677 (neon_vhsub): Likewise.
4678 (neon_vqsub): Likewise.
4679 (neon_v<r>subhn): Remove "Magic Word" operand, convert to iterate
4680 over "rounding" forms.
4681 (neon_vceq): Remove "Magic Word" operand.
4682 (neon_vcge): Likewise.
4683 (neon_vcgeu): Likewise.
4684 (neon_vcgt): Likewise.
4685 (neon_vcgtu): Likewise.
4686 (neon_vcle): Likewise.
4687 (neon_vclt): Likewise.
4688 (neon_vcage): Likewise.
4689 (neon_vcagt): Likewise.
4690 (neon_vabd): Remove "Magic Word" operand, iterate over
4691 signed/unsigned forms, and split out...
4692 (neon_vabdf): ...this as new.
4693 (neon_vabdl): Remove "Magic Word" operand, iterate over
4694 signed/unsigned forms.
4695 (neon_vaba): Likewise.
4696 (neon_vmax): Remove "Magic Word" operand, iterate over
4697 signed/unsigned and max/min forms, and split out...
4698 (neon_v<maxmin>f): ...this as new.
4699 (neon_vmin): Delete.
4700 (neon_vpadd): Remove "Magic Word" operand.
4701 (neon_vpaddl): Remove "Magic Word" operand, iterate over
4702 signed/unsigned variants.
4703 (neon_vpadal): Likewise.
4704 (neon_vpmax): Remove "Magic Word" operand, iterate over
4705 signed/unsigned and max/min forms, and split out...
4706 (neon_vp<maxmin>f): ...this as new.
4707 (neon_vpmin): Delete.
4708 (neon_vrecps): Remove "Magic Word" operand.
4709 (neon_vrsqrts): Likewise.
4710 (neon_vabs): Likewise.
4711 (neon_vqabs): Likewise.
4712 (neon_vneg): Likewise.
4713 (neon_vqneg): Likewise.
4714 (neon_vcls): Likewise.
4715 (neon_vcnt): Likewise.
4716 (neon_vrecpe): Likewise.
4717 (neon_vrsqrte): Likewise.
4718 (neon_vmvn): Likewise.
4719 (neon_vget_lane): Likewise.
4720 (neon_vget_laneu): New.
4721 (neon_vget_lanedi): Remove "Magic Word" operand.
4722 (neon_vget_lanev2di): Likewise.
4723 (neon_vcvt): Remove "Magic Word" operand, iterate over
4724 signed/unsigned variants.
4725 (neon_vcvt_n): Likewise.
4726 (neon_vmovn): Remove "Magic Word" operand.
4727 (neon_vqmovn): Remove "Magic Word" operand, iterate over
4728 signed/unsigned variants.
4729 (neon_vmovun): Remove "Magic Word" operand.
4730 (neon_vmovl): Remove "Magic Word" operand, iterate over
4731 signed/unsigned variants.
4732 (neon_vmul_lane): Remove "Magic Word" operand.
4733 (neon_vmull_lane): Remove "Magic Word" operand, iterate over
4734 signed/unsigned variants.
4735 (neon_vqdmull_lane): Remove "Magic Word" operand.
4736 (neon_vqdmulh_lane): Remove "Magic Word" operand, iterate over
4737 rounding variants.
4738 (neon_vmla_lane): Remove "Magic Word" operand.
4739 (neon_vmlal_lane): Remove "Magic Word" operand, iterate over
4740 signed/unsigned variants.
4741 (neon_vqdmlal_lane): Remove "Magic Word" operand.
4742 (neon_vmls_lane): Likewise.
4743 (neon_vmlsl_lane): Remove "Magic Word" operand, iterate over
4744 signed/unsigned variants.
4745 (neon_vqdmlsl_lane): Remove "Magic Word" operand.
4746 (neon_vmul_n): Remove "Magic Word" operand.
4747 (neon_vmull_n): Rename to...
4748 (neon_vmulls_n): ...this, remove "Magic Word" operand.
4749 (neon_vmullu_n): New.
4750 (neon_vqdmull_n): Remove "Magic Word" operand.
4751 (neon_vqdmulh_n): Likewise.
4752 (neon_vqrdmulh_n): New.
4753 (neon_vmla_n): Remove "Magic Word" operand.
4754 (neon_vmls_n): Likewise.
4755 (neon_vmlal_n): Rename to...
4756 (neon_vmlals_n): ...this, remove "Magic Word" operand.
4757 (neon_vmlalu_n): New.
4758 (neon_vqdmlal_n): Remove "Magic Word" operand.
4759 (neon_vmlsl_n): Rename to...
4760 (neon_vmlsls_n): ...this, remove "Magic Word" operand.
4761 (neon_vmlslu_n): New.
4762 (neon_vqdmlsl_n): Remove "Magic Word" operand.
4763 (neon_vrev64): Remove "Magic Word" operand.
4764 (neon_vrev32): Likewise.
4765 (neon_vrev16): Likewise.
4766 (neon_vshl): Remove "Magic Word" operand, iterate over
4767 signed/unsigned and "rounding" forms.
4768 (neon_vqshl): Likewise.
4769 (neon_vshr_n): Likewise.
4770 (neon_vshrn_n): Remove "Magic Word" operand, iterate over
4771 "rounding" forms.
4772 (neon_vqshrn_n): Remove "Magic Word" operand, iterate over
4773 signed/unsigned and "rounding" forms.
4774 (neon_vqshrun_n): Remove "Magic Word" operand, iterate over
4775 "rounding" forms.
4776 (neon_vshl_n): Remove "Magic Word" operand.
4777 (neon_vqshl_n): Remove "Magic Word" operand, iterate over
4778 signed/unsigned variants.
4779 (neon_vqshlu_n): Remove "Magic Word" operand.
4780 (neon_vshll_n): Remove "Magic Word" operand, iterate over
4781 signed/unsigned variants.
4782 (neon_vsra_n): Remove "Magic Word" operand, iterate over
4783 signed/unsigned and "rounding" forms.
4784 * config/arm/iterators.md (VPF): New.
4785 (VADDL): Likewise.
4786 (VADDW): Likewise.
4787 (VHADD): Likewise.
4788 (VQADD): Likewise.
4789 (VADDHN): Likewise.
4790 (VMLAL): Likewise.
4791 (VMLAL_LANE): Likewise.
4792 (VLMSL): Likewise.
4793 (VMLSL_LANE): Likewise.
4794 (VQDMULH): Likewise,
4795 (VQDMULH_LANE): Likewise.
4796 (VMULL): Likewise.
4797 (VMULL_LANE): Likewise.
4798 (VSUBL): Likewise.
4799 (VSUBW): Likewise.
4800 (VHSUB): Likewise.
4801 (VQSUB): Likewise.
4802 (VSUBHN): Likewise.
4803 (VABD): Likewise.
4804 (VABDL): Likewise.
4805 (VMAXMIN): Likewise.
4806 (VMAXMINF): Likewise.
4807 (VPADDL): Likewise.
4808 (VPADAL): Likewise.
4809 (VPMAXMIN): Likewise.
4810 (VPMAXMINF): Likewise.
4811 (VCVT_US): Likewise.
4812 (VCVT_US_N): Likewise.
4813 (VQMOVN): Likewise.
4814 (VMOVL): Likewise.
4815 (VSHL): Likewise.
4816 (VQSHL): Likewise.
4817 (VSHR_N): Likewise.
4818 (VSHRN_N): Likewise.
4819 (VQSHRN_N): Likewise.
4820 (VQSHRUN_N): Likewise.
4821 (VQSHL_N): Likewise.
4822 (VSHLL_N): Likewise.
4823 (VSRA_N): Likewise.
4824 (pf): Likewise.
4825 (sup): Likewise.
4826 (r): Liekwise.
4827 (maxmin): Likewise.
4828 (shift_op): Likewise.
4829 * config/arm/arm_neon_builtins.def (vaddl): Split to...
4830 (vaddls): ...this and...
4831 (vaddlu): ...this.
4832 (vaddw): Split to...
4833 (vaddws): ...this and...
4834 (vaddwu): ...this.
4835 (vhadd): Split to...
4836 (vhadds): ...this and...
4837 (vhaddu): ...this and...
4838 (vrhadds): ...this and...
4839 (vrhaddu): ...this.
4840 (vqadd): Split to...
4841 (vqadds): ...this and...
4842 (vqaddu): ...this.
4843 (vaddhn): Split to itself and...
4844 (vraddhn): ...this.
4845 (vmul): Split to...
4846 (vmulf): ...this and...
4847 (vmulp): ...this.
4848 (vmlal): Split to...
4849 (vmlals): ...this and...
4850 (vmlalu): ...this.
4851 (vmlsl): Split to...
4852 (vmlsls): ...this and...
4853 (vmlslu): ...this.
4854 (vqdmulh): Split to itself and...
4855 (vqrdmulh): ...this.
4856 (vmull): Split to...
4857 (vmullp): ...this and...
4858 (vmulls): ...this and...
4859 (vmullu): ...this.
4860 (vmull_n): Split to...
4861 (vmulls_n): ...this and...
4862 (vmullu_n): ...this.
4863 (vmull_lane): Split to...
4864 (vmulls_lane): ...this and...
4865 (vmullu_lane): ...this.
4866 (vqdmulh_n): Split to itself and...
4867 (vqrdmulh_n): ...this.
4868 (vqdmulh_lane): Split to itself and...
4869 (vqrdmulh_lane): ...this.
4870 (vshl): Split to...
4871 (vshls): ...this and...
4872 (vshlu): ...this and...
4873 (vrshls): ...this and...
4874 (vrshlu): ...this.
4875 (vqshl): Split to...
4876 (vqshls): ...this and...
4877 (vqrshlu): ...this and...
4878 (vqrshls): ...this and...
4879 (vqrshlu): ...this.
4880 (vshr_n): Split to...
4881 (vshrs_n): ...this and...
4882 (vshru_n): ...this and...
4883 (vrshrs_n): ...this and...
4884 (vrshru_n): ...this.
4885 (vshrn_n): Split to itself and...
4886 (vrshrn_n): ...this.
4887 (vqshrn_n): Split to...
4888 (vqshrns_n): ...this and...
4889 (vqshrnu_n): ...this and...
4890 (vqrshrns_n): ...this and...
4891 (vqrshrnu_n): ...this.
4892 (vqshrun_n): Split to itself and...
4893 (vqrshrun_n): ...this.
4894 (vqshl_n): Split to...
4895 (vqshl_s_n): ...this and...
4896 (vqshl_u_n): ...this.
4897 (vshll_n): Split to...
4898 (vshlls_n): ...this and...
4899 (vshllu_n): ...this.
4900 (vsra_n): Split to...
4901 (vsras_n): ...this and...
4902 (vsrau_n): ...this and.
4903 (vrsras_n): ...this and...
4904 (vrsrau_n): ...this and.
4905 (vsubl): Split to...
4906 (vsubls): ...this and...
4907 (vsublu): ...this.
4908 (vsubw): Split to...
4909 (vsubws): ...this and...
4910 (vsubwu): ...this.
4911 (vqsub): Split to...
4912 (vqsubs): ...this and...
4913 (vqsubu): ...this.
4914 (vhsub): Split to...
4915 (vhsubs): ...this and...
4916 (vhsubu): ...this.
4917 (vsubhn): Split to itself and...
4918 (vrsubhn): ...this.
4919 (vabd): Split to...
4920 (vabds): ...this and...
4921 (vabdu): ...this and...
4922 (vabdf): ...this.
4923 (vabdl): Split to...
4924 (vabdls): ...this and...
4925 (vabdlu): ...this.
4926 (vaba): Split to...
4927 (vabas): ...this and...
4928 (vabau): ...this and...
4929 (vabal): Split to...
4930 (vabals): ...this and...
4931 (vabalu): ...this.
4932 (vmax): Split to...
4933 (vmaxs): ...this and...
4934 (vmaxu): ...this and...
4935 (vmaxf): ...this.
4936 (vmin): Split to...
4937 (vmins): ...this and...
4938 (vminu): ...this and...
4939 (vminf): ...this.
4940 (vpmax): Split to...
4941 (vpmaxs): ...this and...
4942 (vpmaxu): ...this and...
4943 (vpmaxf): ...this.
4944 (vpmin): Split to...
4945 (vpmins): ...this and...
4946 (vpminu): ...this and...
4947 (vpminf): ...this.
4948 (vpaddl): Split to...
4949 (vpaddls): ...this and...
4950 (vpaddlu): ...this.
4951 (vpadal): Split to...
4952 (vpadals): ...this and...
4953 (vpadalu): ...this.
4954 (vget_laneu): New.
4955 (vqmovn): Split to...
4956 (vqmovns): ...this and...
4957 (vqmovnu): ...this.
4958 (vmovl): Split to...
4959 (vmovls): ...this and...
4960 (vmovlu): ...this.
4961 (vmlal_lane): Split to...
4962 (vmlals_lane): ...this and...
4963 (vmlalu_lane): ...this.
4964 (vmlsl_lane): Split to...
4965 (vmlsls_lane): ...this and...
4966 (vmlslu_lane): ...this.
4967 (vmlal_n): Split to...
4968 (vmlals_n): ...this and...
4969 (vmlalu_n): ...this.
4970 (vmlsl_n): Split to...
4971 (vmlsls_n): ...this and...
4972 (vmlslu_n): ...this.
4973 (vext): Make type "SHIFTINSERT".
4974 (vcvt): Split to...
4975 (vcvts): ...this and...
4976 (vcvtu): ...this.
4977 (vcvt_n): Split to...
4978 (vcvts_n): ...this and...
4979 (vcvtu_n): ...this.
4980 * config/arm/arm_neon.h (vaddl_s8): Remove "Magic Word".
4981 (vaddl_s16): Likewise.
4982 (vaddl_s32): Likewise.
4983 (vaddl_u8): Likewise.
4984 (vaddl_u16): Likewise.
4985 (vaddl_u32): Likewise.
4986 (vaddw_s8): Likewise.
4987 (vaddw_s16): Likewise.
4988 (vaddw_s32): Likewise.
4989 (vaddw_u8): Likewise.
4990 (vaddw_u16): Likewise.
4991 (vaddw_u32): Likewise.
4992 (vhadd_s8): Likewise.
4993 (vhadd_s16): Likewise.
4994 (vhadd_s32): Likewise.
4995 (vhadd_u8): Likewise.
4996 (vhadd_u16): Likewise.
4997 (vhadd_u32): Likewise.
4998 (vhaddq_s8): Likewise.
4999 (vhaddq_s16): Likewise.
5000 (vhaddq_s32): Likewise.
5001 (vhaddq_u8): Likewise.
5002 (vhaddq_u16): Likewise.
5003 (vrhadd_s8): Likewise.
5004 (vrhadd_s16): Likewise.
5005 (vrhadd_s32): Likewise.
5006 (vrhadd_u8): Likewise.
5007 (vrhadd_u16): Likewise.
5008 (vrhadd_u32): Likewise.
5009 (vrhaddq_s8): Likewise.
5010 (vrhaddq_s16): Likewise.
5011 (vrhaddq_s32): Likewise.
5012 (vrhaddq_u8): Likewise.
5013 (vrhaddq_u16): Likewise.
5014 (vrhaddq_u32): Likewise.
5015 (vqadd_s8): Likewise.
5016 (vqadd_s16): Likewise.
5017 (vqadd_s32): Likewise.
5018 (vqadd_s64): Likewise.
5019 (vqadd_u8): Likewise.
5020 (vqadd_u16): Likewise.
5021 (vqadd_u32): Likewise.
5022 (vqadd_u64): Likewise.
5023 (vqaddq_s8): Likewise.
5024 (vqaddq_s16): Likewise.
5025 (vqaddq_s32): Likewise.
5026 (vqaddq_s64): Likewise.
5027 (vqaddq_u8): Likewise.
5028 (vqaddq_u16): Likewise.
5029 (vqaddq_u32): Likewise.
5030 (vqaddq_u64): Likewise.
5031 (vaddhn_s16): Likewise.
5032 (vaddhn_s32): Likewise.
5033 (vaddhn_s64): Likewise.
5034 (vaddhn_u16): Likewise.
5035 (vaddhn_u32): Likewise.
5036 (vaddhn_u64): Likewise.
5037 (vraddhn_s16): Likewise.
5038 (vraddhn_s32): Likewise.
5039 (vraddhn_s64): Likewise.
5040 (vraddhn_u16): Likewise.
5041 (vraddhn_u32): Likewise.
5042 (vraddhn_u64): Likewise.
5043 (vmul_p8): Likewise.
5044 (vmulq_p8): Likewise.
5045 (vqdmulh_s16): Likewise.
5046 (vqdmulh_s32): Likewise.
5047 (vqdmulhq_s16): Likewise.
5048 (vqdmulhq_s32): Likewise.
5049 (vqrdmulh_s16): Likewise.
5050 (vqrdmulh_s32): Likewise.
5051 (vqrdmulhq_s16): Likewise.
5052 (vqrdmulhq_s32): Likewise.
5053 (vmull_s8): Likewise.
5054 (vmull_s16): Likewise.
5055 (vmull_s32): Likewise.
5056 (vmull_u8): Likewise.
5057 (vmull_u16): Likewise.
5058 (vmull_u32): Likewise.
5059 (vmull_p8): Likewise.
5060 (vqdmull_s16): Likewise.
5061 (vqdmull_s32): Likewise.
5062 (vmla_s8): Likewise.
5063 (vmla_s16): Likewise.
5064 (vmla_s32): Likewise.
5065 (vmla_f32): Likewise.
5066 (vmla_u8): Likewise.
5067 (vmla_u16): Likewise.
5068 (vmla_u32): Likewise.
5069 (vmlaq_s8): Likewise.
5070 (vmlaq_s16): Likewise.
5071 (vmlaq_s32): Likewise.
5072 (vmlaq_f32): Likewise.
5073 (vmlaq_u8): Likewise.
5074 (vmlaq_u16): Likewise.
5075 (vmlaq_u32): Likewise.
5076 (vmlal_s8): Likewise.
5077 (vmlal_s16): Likewise.
5078 (vmlal_s32): Likewise.
5079 (vmlal_u8): Likewise.
5080 (vmlal_u16): Likewise.
5081 (vmlal_u32): Likewise.
5082 (vqdmlal_s16): Likewise.
5083 (vqdmlal_s32): Likewise.
5084 (vmls_s8): Likewise.
5085 (vmls_s16): Likewise.
5086 (vmls_s32): Likewise.
5087 (vmls_f32): Likewise.
5088 (vmls_u8): Likewise.
5089 (vmls_u16): Likewise.
5090 (vmls_u32): Likewise.
5091 (vmlsq_s8): Likewise.
5092 (vmlsq_s16): Likewise.
5093 (vmlsq_s32): Likewise.
5094 (vmlsq_f32): Likewise.
5095 (vmlsq_u8): Likewise.
5096 (vmlsq_u16): Likewise.
5097 (vmlsq_u32): Likewise.
5098 (vmlsl_s8): Likewise.
5099 (vmlsl_s16): Likewise.
5100 (vmlsl_s32): Likewise.
5101 (vmlsl_u8): Likewise.
5102 (vmlsl_u16): Likewise.
5103 (vmlsl_u32): Likewise.
5104 (vqdmlsl_s16): Likewise.
5105 (vqdmlsl_s32): Likewise.
5106 (vfma_f32): Likewise.
5107 (vfmaq_f32): Likewise.
5108 (vfms_f32): Likewise.
5109 (vfmsq_f32): Likewise.
5110 (vsubl_s8): Likewise.
5111 (vsubl_s16): Likewise.
5112 (vsubl_s32): Likewise.
5113 (vsubl_u8): Likewise.
5114 (vsubl_u16): Likewise.
5115 (vsubl_u32): Likewise.
5116 (vsubw_s8): Likewise.
5117 (vsubw_s16): Likewise.
5118 (vsubw_s32): Likewise.
5119 (vsubw_u8): Likewise.
5120 (vsubw_u16): Likewise.
5121 (vsubw_u32): Likewise.
5122 (vhsub_s8): Likewise.
5123 (vhsub_s16): Likewise.
5124 (vhsub_s32): Likewise.
5125 (vhsub_u8): Likewise.
5126 (vhsub_u16): Likewise.
5127 (vhsub_u32): Likewise.
5128 (vhsubq_s8): Likewise.
5129 (vhsubq_s16): Likewise.
5130 (vhsubq_s32): Likewise.
5131 (vhsubq_u8): Likewise.
5132 (vhsubq_u16): Likewise.
5133 (vhsubq_u32): Likewise.
5134 (vqsub_s8): Likewise.
5135 (vqsub_s16): Likewise.
5136 (vqsub_s32): Likewise.
5137 (vqsub_s64): Likewise.
5138 (vqsub_u8): Likewise.
5139 (vqsub_u16): Likewise.
5140 (vqsub_u32): Likewise.
5141 (vqsub_u64): Likewise.
5142 (vqsubq_s8): Likewise.
5143 (vqsubq_s16): Likewise.
5144 (vqsubq_s32): Likewise.
5145 (vqsubq_s64): Likewise.
5146 (vqsubq_u8): Likewise.
5147 (vqsubq_u16): Likewise.
5148 (vqsubq_u32): Likewise.
5149 (vqsubq_u64): Likewise.
5150 (vsubhn_s16): Likewise.
5151 (vsubhn_s32): Likewise.
5152 (vsubhn_s64): Likewise.
5153 (vsubhn_u16): Likewise.
5154 (vsubhn_u32): Likewise.
5155 (vsubhn_u64): Likewise.
5156 (vrsubhn_s16): Likewise.
5157 (vrsubhn_s32): Likewise.
5158 (vrsubhn_s64): Likewise.
5159 (vrsubhn_u16): Likewise.
5160 (vrsubhn_u32): Likewise.
5161 (vrsubhn_u64): Likewise.
5162 (vceq_s8): Likewise.
5163 (vceq_s16): Likewise.
5164 (vceq_s32): Likewise.
5165 (vceq_f32): Likewise.
5166 (vceq_u8): Likewise.
5167 (vceq_u16): Likewise.
5168 (vceq_u32): Likewise.
5169 (vceq_p8): Likewise.
5170 (vceqq_s8): Likewise.
5171 (vceqq_s16): Likewise.
5172 (vceqq_s32): Likewise.
5173 (vceqq_f32): Likewise.
5174 (vceqq_u8): Likewise.
5175 (vceqq_u16): Likewise.
5176 (vceqq_u32): Likewise.
5177 (vceqq_p8): Likewise.
5178 (vcge_s8): Likewise.
5179 (vcge_s16): Likewise.
5180 (vcge_s32): Likewise.
5181 (vcge_f32): Likewise.
5182 (vcge_u8): Likewise.
5183 (vcge_u16): Likewise.
5184 (vcge_u32): Likewise.
5185 (vcgeq_s8): Likewise.
5186 (vcgeq_s16): Likewise.
5187 (vcgeq_s32): Likewise.
5188 (vcgeq_f32): Likewise.
5189 (vcgeq_u8): Likewise.
5190 (vcgeq_u16): Likewise.
5191 (vcgeq_u32): Likewise.
5192 (vcle_s8): Likewise.
5193 (vcle_s16): Likewise.
5194 (vcle_s32): Likewise.
5195 (vcle_f32): Likewise.
5196 (vcle_u8): Likewise.
5197 (vcle_u16): Likewise.
5198 (vcle_u32): Likewise.
5199 (vcleq_s8): Likewise.
5200 (vcleq_s16): Likewise.
5201 (vcleq_s32): Likewise.
5202 (vcleq_f32): Likewise.
5203 (vcleq_u8): Likewise.
5204 (vcleq_u16): Likewise.
5205 (vcleq_u32): Likewise.
5206 (vcgt_s8): Likewise.
5207 (vcgt_s16): Likewise.
5208 (vcgt_s32): Likewise.
5209 (vcgt_f32): Likewise.
5210 (vcgt_u8): Likewise.
5211 (vcgt_u16): Likewise.
5212 (vcgt_u32): Likewise.
5213 (vcgtq_s8): Likewise.
5214 (vcgtq_s16): Likewise.
5215 (vcgtq_s32): Likewise.
5216 (vcgtq_f32): Likewise.
5217 (vcgtq_u8): Likewise.
5218 (vcgtq_u16): Likewise.
5219 (vcgtq_u32): Likewise.
5220 (vclt_s8): Likewise.
5221 (vclt_s16): Likewise.
5222 (vclt_s32): Likewise.
5223 (vclt_f32): Likewise.
5224 (vclt_u8): Likewise.
5225 (vclt_u16): Likewise.
5226 (vclt_u32): Likewise.
5227 (vcltq_s8): Likewise.
5228 (vcltq_s16): Likewise.
5229 (vcltq_s32): Likewise.
5230 (vcltq_f32): Likewise.
5231 (vcltq_u8): Likewise.
5232 (vcltq_u16): Likewise.
5233 (vcltq_u32): Likewise.
5234 (vcage_f32): Likewise.
5235 (vcageq_f32): Likewise.
5236 (vcale_f32): Likewise.
5237 (vcaleq_f32): Likewise.
5238 (vcagt_f32): Likewise.
5239 (vcagtq_f32): Likewise.
5240 (vcalt_f32): Likewise.
5241 (vcaltq_f32): Likewise.
5242 (vtst_s8): Likewise.
5243 (vtst_s16): Likewise.
5244 (vtst_s32): Likewise.
5245 (vtst_u8): Likewise.
5246 (vtst_u16): Likewise.
5247 (vtst_u32): Likewise.
5248 (vtst_p8): Likewise.
5249 (vtstq_s8): Likewise.
5250 (vtstq_s16): Likewise.
5251 (vtstq_s32): Likewise.
5252 (vtstq_u8): Likewise.
5253 (vtstq_u16): Likewise.
5254 (vtstq_u32): Likewise.
5255 (vtstq_p8): Likewise.
5256 (vabd_s8): Likewise.
5257 (vabd_s16): Likewise.
5258 (vabd_s32): Likewise.
5259 (vabd_f32): Likewise.
5260 (vabd_u8): Likewise.
5261 (vabd_u16): Likewise.
5262 (vabd_u32): Likewise.
5263 (vabdq_s8): Likewise.
5264 (vabdq_s16): Likewise.
5265 (vabdq_s32): Likewise.
5266 (vabdq_f32): Likewise.
5267 (vabdq_u8): Likewise.
5268 (vabdq_u16): Likewise.
5269 (vabdq_u32): Likewise.
5270 (vabdl_s8): Likewise.
5271 (vabdl_s16): Likewise.
5272 (vabdl_s32): Likewise.
5273 (vabdl_u8): Likewise.
5274 (vabdl_u16): Likewise.
5275 (vabdl_u32): Likewise.
5276 (vaba_s8): Likewise.
5277 (vaba_s16): Likewise.
5278 (vaba_s32): Likewise.
5279 (vaba_u8): Likewise.
5280 (vaba_u16): Likewise.
5281 (vaba_u32): Likewise.
5282 (vabaq_s8): Likewise.
5283 (vabaq_s16): Likewise.
5284 (vabaq_s32): Likewise.
5285 (vabaq_u8): Likewise.
5286 (vabaq_u16): Likewise.
5287 (vabaq_u32): Likewise.
5288 (vabal_s8): Likewise.
5289 (vabal_s16): Likewise.
5290 (vabal_s32): Likewise.
5291 (vabal_u8): Likewise.
5292 (vabal_u16): Likewise.
5293 (vabal_u32): Likewise.
5294 (vmax_s8): Likewise.
5295 (vmax_s16): Likewise.
5296 (vmax_s32): Likewise.
5297 (vmax_f32): Likewise.
5298 (vmax_u8): Likewise.
5299 (vmax_u16): Likewise.
5300 (vmax_u32): Likewise.
5301 (vmaxq_s8): Likewise.
5302 (vmaxq_s16): Likewise.
5303 (vmaxq_s32): Likewise.
5304 (vmaxq_f32): Likewise.
5305 (vmaxq_u8): Likewise.
5306 (vmaxq_u16): Likewise.
5307 (vmaxq_u32): Likewise.
5308 (vmin_s8): Likewise.
5309 (vmin_s16): Likewise.
5310 (vmin_s32): Likewise.
5311 (vmin_f32): Likewise.
5312 (vmin_u8): Likewise.
5313 (vmin_u16): Likewise.
5314 (vmin_u32): Likewise.
5315 (vminq_s8): Likewise.
5316 (vminq_s16): Likewise.
5317 (vminq_s32): Likewise.
5318 (vminq_f32): Likewise.
5319 (vminq_u8): Likewise.
5320 (vminq_u16): Likewise.
5321 (vminq_u32): Likewise.
5322 (vpadd_s8): Likewise.
5323 (vpadd_s16): Likewise.
5324 (vpadd_s32): Likewise.
5325 (vpadd_f32): Likewise.
5326 (vpadd_u8): Likewise.
5327 (vpadd_u16): Likewise.
5328 (vpadd_u32): Likewise.
5329 (vpaddl_s8): Likewise.
5330 (vpaddl_s16): Likewise.
5331 (vpaddl_s32): Likewise.
5332 (vpaddl_u8): Likewise.
5333 (vpaddl_u16): Likewise.
5334 (vpaddl_u32): Likewise.
5335 (vpaddlq_s8): Likewise.
5336 (vpaddlq_s16): Likewise.
5337 (vpaddlq_s32): Likewise.
5338 (vpaddlq_u8): Likewise.
5339 (vpaddlq_u16): Likewise.
5340 (vpaddlq_u32): Likewise.
5341 (vpadal_s8): Likewise.
5342 (vpadal_s16): Likewise.
5343 (vpadal_s32): Likewise.
5344 (vpadal_u8): Likewise.
5345 (vpadal_u16): Likewise.
5346 (vpadal_u32): Likewise.
5347 (vpadalq_s8): Likewise.
5348 (vpadalq_s16): Likewise.
5349 (vpadalq_s32): Likewise.
5350 (vpadalq_u8): Likewise.
5351 (vpadalq_u16): Likewise.
5352 (vpadalq_u32): Likewise.
5353 (vpmax_s8): Likewise.
5354 (vpmax_s16): Likewise.
5355 (vpmax_s32): Likewise.
5356 (vpmax_f32): Likewise.
5357 (vpmax_u8): Likewise.
5358 (vpmax_u16): Likewise.
5359 (vpmax_u32): Likewise.
5360 (vpmin_s8): Likewise.
5361 (vpmin_s16): Likewise.
5362 (vpmin_s32): Likewise.
5363 (vpmin_f32): Likewise.
5364 (vpmin_u8): Likewise.
5365 (vpmin_u16): Likewise.
5366 (vpmin_u32): Likewise.
5367 (vrecps_f32): Likewise.
5368 (vrecpsq_f32): Likewise.
5369 (vrsqrts_f32): Likewise.
5370 (vrsqrtsq_f32): Likewise.
5371 (vshl_s8): Likewise.
5372 (vshl_s16): Likewise.
5373 (vshl_s32): Likewise.
5374 (vshl_s64): Likewise.
5375 (vshl_u8): Likewise.
5376 (vshl_u16): Likewise.
5377 (vshl_u32): Likewise.
5378 (vshl_u64): Likewise.
5379 (vshlq_s8): Likewise.
5380 (vshlq_s16): Likewise.
5381 (vshlq_s32): Likewise.
5382 (vshlq_s64): Likewise.
5383 (vshlq_u8): Likewise.
5384 (vshlq_u16): Likewise.
5385 (vshlq_u32): Likewise.
5386 (vshlq_u64): Likewise.
5387 (vrshl_s8): Likewise.
5388 (vrshl_s16): Likewise.
5389 (vrshl_s32): Likewise.
5390 (vrshl_s64): Likewise.
5391 (vrshl_u8): Likewise.
5392 (vrshl_u16): Likewise.
5393 (vrshl_u32): Likewise.
5394 (vrshl_u64): Likewise.
5395 (vrshlq_s8): Likewise.
5396 (vrshlq_s16): Likewise.
5397 (vrshlq_s32): Likewise.
5398 (vrshlq_s64): Likewise.
5399 (vrshlq_u8): Likewise.
5400 (vrshlq_u16): Likewise.
5401 (vrshlq_u32): Likewise.
5402 (vrshlq_u64): Likewise.
5403 (vqshl_s8): Likewise.
5404 (vqshl_s16): Likewise.
5405 (vqshl_s32): Likewise.
5406 (vqshl_s64): Likewise.
5407 (vqshl_u8): Likewise.
5408 (vqshl_u16): Likewise.
5409 (vqshl_u32): Likewise.
5410 (vqshl_u64): Likewise.
5411 (vqshlq_s8): Likewise.
5412 (vqshlq_s16): Likewise.
5413 (vqshlq_s32): Likewise.
5414 (vqshlq_s64): Likewise.
5415 (vqshlq_u8): Likewise.
5416 (vqshlq_u16): Likewise.
5417 (vqshlq_u32): Likewise.
5418 (vqshlq_u64): Likewise.
5419 (vqrshl_s8): Likewise.
5420 (vqrshl_s16): Likewise.
5421 (vqrshl_s32): Likewise.
5422 (vqrshl_s64): Likewise.
5423 (vqrshl_u8): Likewise.
5424 (vqrshl_u16): Likewise.
5425 (vqrshl_u32): Likewise.
5426 (vqrshl_u64): Likewise.
5427 (vqrshlq_s8): Likewise.
5428 (vqrshlq_s16): Likewise.
5429 (vqrshlq_s32): Likewise.
5430 (vqrshlq_s64): Likewise.
5431 (vqrshlq_u8): Likewise.
5432 (vqrshlq_u16): Likewise.
5433 (vqrshlq_u32): Likewise.
5434 (vqrshlq_u64): Likewise.
5435 (vshr_n_s8): Likewise.
5436 (vshr_n_s16): Likewise.
5437 (vshr_n_s32): Likewise.
5438 (vshr_n_s64): Likewise.
5439 (vshr_n_u8): Likewise.
5440 (vshr_n_u16): Likewise.
5441 (vshr_n_u32): Likewise.
5442 (vshr_n_u64): Likewise.
5443 (vshrq_n_s8): Likewise.
5444 (vshrq_n_s16): Likewise.
5445 (vshrq_n_s32): Likewise.
5446 (vshrq_n_s64): Likewise.
5447 (vshrq_n_u8): Likewise.
5448 (vshrq_n_u16): Likewise.
5449 (vshrq_n_u32): Likewise.
5450 (vshrq_n_u64): Likewise.
5451 (vrshr_n_s8): Likewise.
5452 (vrshr_n_s16): Likewise.
5453 (vrshr_n_s32): Likewise.
5454 (vrshr_n_s64): Likewise.
5455 (vrshr_n_u8): Likewise.
5456 (vrshr_n_u16): Likewise.
5457 (vrshr_n_u32): Likewise.
5458 (vrshr_n_u64): Likewise.
5459 (vrshrq_n_s8): Likewise.
5460 (vrshrq_n_s16): Likewise.
5461 (vrshrq_n_s32): Likewise.
5462 (vrshrq_n_s64): Likewise.
5463 (vrshrq_n_u8): Likewise.
5464 (vrshrq_n_u16): Likewise.
5465 (vrshrq_n_u32): Likewise.
5466 (vrshrq_n_u64): Likewise.
5467 (vshrn_n_s16): Likewise.
5468 (vshrn_n_s32): Likewise.
5469 (vshrn_n_s64): Likewise.
5470 (vshrn_n_u16): Likewise.
5471 (vshrn_n_u32): Likewise.
5472 (vshrn_n_u64): Likewise.
5473 (vrshrn_n_s16): Likewise.
5474 (vrshrn_n_s32): Likewise.
5475 (vrshrn_n_s64): Likewise.
5476 (vrshrn_n_u16): Likewise.
5477 (vrshrn_n_u32): Likewise.
5478 (vrshrn_n_u64): Likewise.
5479 (vqshrn_n_s16): Likewise.
5480 (vqshrn_n_s32): Likewise.
5481 (vqshrn_n_s64): Likewise.
5482 (vqshrn_n_u16): Likewise.
5483 (vqshrn_n_u32): Likewise.
5484 (vqshrn_n_u64): Likewise.
5485 (vqrshrn_n_s16): Likewise.
5486 (vqrshrn_n_s32): Likewise.
5487 (vqrshrn_n_s64): Likewise.
5488 (vqrshrn_n_u16): Likewise.
5489 (vqrshrn_n_u32): Likewise.
5490 (vqrshrn_n_u64): Likewise.
5491 (vqshrun_n_s16): Likewise.
5492 (vqshrun_n_s32): Likewise.
5493 (vqshrun_n_s64): Likewise.
5494 (vqrshrun_n_s16): Likewise.
5495 (vqrshrun_n_s32): Likewise.
5496 (vqrshrun_n_s64): Likewise.
5497 (vshl_n_s8): Likewise.
5498 (vshl_n_s16): Likewise.
5499 (vshl_n_s32): Likewise.
5500 (vshl_n_s64): Likewise.
5501 (vshl_n_u8): Likewise.
5502 (vshl_n_u16): Likewise.
5503 (vshl_n_u32): Likewise.
5504 (vshl_n_u64): Likewise.
5505 (vshlq_n_s8): Likewise.
5506 (vshlq_n_s16): Likewise.
5507 (vshlq_n_s32): Likewise.
5508 (vshlq_n_s64): Likewise.
5509 (vshlq_n_u8): Likewise.
5510 (vshlq_n_u16): Likewise.
5511 (vshlq_n_u32): Likewise.
5512 (vshlq_n_u64): Likewise.
5513 (vqshl_n_s8): Likewise.
5514 (vqshl_n_s16): Likewise.
5515 (vqshl_n_s32): Likewise.
5516 (vqshl_n_s64): Likewise.
5517 (vqshl_n_u8): Likewise.
5518 (vqshl_n_u16): Likewise.
5519 (vqshl_n_u32): Likewise.
5520 (vqshl_n_u64): Likewise.
5521 (vqshlq_n_s8): Likewise.
5522 (vqshlq_n_s16): Likewise.
5523 (vqshlq_n_s32): Likewise.
5524 (vqshlq_n_s64): Likewise.
5525 (vqshlq_n_u8): Likewise.
5526 (vqshlq_n_u16): Likewise.
5527 (vqshlq_n_u32): Likewise.
5528 (vqshlq_n_u64): Likewise.
5529 (vqshlu_n_s8): Likewise.
5530 (vqshlu_n_s16): Likewise.
5531 (vqshlu_n_s32): Likewise.
5532 (vqshlu_n_s64): Likewise.
5533 (vqshluq_n_s8): Likewise.
5534 (vqshluq_n_s16): Likewise.
5535 (vqshluq_n_s32): Likewise.
5536 (vqshluq_n_s64): Likewise.
5537 (vshll_n_s8): Likewise.
5538 (vshll_n_s16): Likewise.
5539 (vshll_n_s32): Likewise.
5540 (vshll_n_u8): Likewise.
5541 (vshll_n_u16): Likewise.
5542 (vshll_n_u32): Likewise.
5543 (vsra_n_s8): Likewise.
5544 (vsra_n_s16): Likewise.
5545 (vsra_n_s32): Likewise.
5546 (vsra_n_s64): Likewise.
5547 (vsra_n_u8): Likewise.
5548 (vsra_n_u16): Likewise.
5549 (vsra_n_u32): Likewise.
5550 (vsra_n_u64): Likewise.
5551 (vsraq_n_s8): Likewise.
5552 (vsraq_n_s16): Likewise.
5553 (vsraq_n_s32): Likewise.
5554 (vsraq_n_s64): Likewise.
5555 (vsraq_n_u8): Likewise.
5556 (vsraq_n_u16): Likewise.
5557 (vsraq_n_u32): Likewise.
5558 (vsraq_n_u64): Likewise.
5559 (vrsra_n_s8): Likewise.
5560 (vrsra_n_s16): Likewise.
5561 (vrsra_n_s32): Likewise.
5562 (vrsra_n_s64): Likewise.
5563 (vrsra_n_u8): Likewise.
5564 (vrsra_n_u16): Likewise.
5565 (vrsra_n_u32): Likewise.
5566 (vrsra_n_u64): Likewise.
5567 (vrsraq_n_s8): Likewise.
5568 (vrsraq_n_s16): Likewise.
5569 (vrsraq_n_s32): Likewise.
5570 (vrsraq_n_s64): Likewise.
5571 (vrsraq_n_u8): Likewise.
5572 (vrsraq_n_u16): Likewise.
5573 (vrsraq_n_u32): Likewise.
5574 (vrsraq_n_u64): Likewise.
5575 (vabs_s8): Likewise.
5576 (vabs_s16): Likewise.
5577 (vabs_s32): Likewise.
5578 (vabs_f32): Likewise.
5579 (vabsq_s8): Likewise.
5580 (vabsq_s16): Likewise.
5581 (vabsq_s32): Likewise.
5582 (vabsq_f32): Likewise.
5583 (vqabs_s8): Likewise.
5584 (vqabs_s16): Likewise.
5585 (vqabs_s32): Likewise.
5586 (vqabsq_s8): Likewise.
5587 (vqabsq_s16): Likewise.
5588 (vqabsq_s32): Likewise.
5589 (vneg_s8): Likewise.
5590 (vneg_s16): Likewise.
5591 (vneg_s32): Likewise.
5592 (vneg_f32): Likewise.
5593 (vnegq_s8): Likewise.
5594 (vnegq_s16): Likewise.
5595 (vnegq_s32): Likewise.
5596 (vnegq_f32): Likewise.
5597 (vqneg_s8): Likewise.
5598 (vqneg_s16): Likewise.
5599 (vqneg_s32): Likewise.
5600 (vqnegq_s8): Likewise.
5601 (vqnegq_s16): Likewise.
5602 (vqnegq_s32): Likewise.
5603 (vmvn_s8): Likewise.
5604 (vmvn_s16): Likewise.
5605 (vmvn_s32): Likewise.
5606 (vmvn_u8): Likewise.
5607 (vmvn_u16): Likewise.
5608 (vmvn_u32): Likewise.
5609 (vmvn_p8): Likewise.
5610 (vmvnq_s8): Likewise.
5611 (vmvnq_s16): Likewise.
5612 (vmvnq_s32): Likewise.
5613 (vmvnq_u8): Likewise.
5614 (vmvnq_u16): Likewise.
5615 (vmvnq_u32): Likewise.
5616 (vmvnq_p8): Likewise.
5617 (vcls_s8): Likewise.
5618 (vcls_s16): Likewise.
5619 (vcls_s32): Likewise.
5620 (vclsq_s8): Likewise.
5621 (vclsq_s16): Likewise.
5622 (vclsq_s32): Likewise.
5623 (vclz_s8): Likewise.
5624 (vclz_s16): Likewise.
5625 (vclz_s32): Likewise.
5626 (vclz_u8): Likewise.
5627 (vclz_u16): Likewise.
5628 (vclz_u32): Likewise.
5629 (vclzq_s8): Likewise.
5630 (vclzq_s16): Likewise.
5631 (vclzq_s32): Likewise.
5632 (vclzq_u8): Likewise.
5633 (vclzq_u16): Likewise.
5634 (vclzq_u32): Likewise.
5635 (vcnt_s8): Likewise.
5636 (vcnt_u8): Likewise.
5637 (vcnt_p8): Likewise.
5638 (vcntq_s8): Likewise.
5639 (vcntq_u8): Likewise.
5640 (vcntq_p8): Likewise.
5641 (vrecpe_f32): Likewise.
5642 (vrecpe_u32): Likewise.
5643 (vrecpeq_f32): Likewise.
5644 (vrecpeq_u32): Likewise.
5645 (vrsqrte_f32): Likewise.
5646 (vrsqrte_u32): Likewise.
5647 (vrsqrteq_f32): Likewise.
5648 (vrsqrteq_u32): Likewise.
5649 (vget_lane_s8): Likewise.
5650 (vget_lane_s16): Likewise.
5651 (vget_lane_s32): Likewise.
5652 (vget_lane_f32): Likewise.
5653 (vget_lane_u8): Likewise.
5654 (vget_lane_u16): Likewise.
5655 (vget_lane_u32): Likewise.
5656 (vget_lane_p8): Likewise.
5657 (vget_lane_p16): Likewise.
5658 (vget_lane_s64): Likewise.
5659 (vget_lane_u64): Likewise.
5660 (vgetq_lane_s8): Likewise.
5661 (vgetq_lane_s16): Likewise.
5662 (vgetq_lane_s32): Likewise.
5663 (vgetq_lane_f32): Likewise.
5664 (vgetq_lane_u8): Likewise.
5665 (vgetq_lane_u16): Likewise.
5666 (vgetq_lane_u32): Likewise.
5667 (vgetq_lane_p8): Likewise.
5668 (vgetq_lane_p16): Likewise.
5669 (vgetq_lane_s64): Likewise.
5670 (vgetq_lane_u64): Likewise.
5671 (vcvt_s32_f32): Likewise.
5672 (vcvt_f32_s32): Likewise.
5673 (vcvt_f32_u32): Likewise.
5674 (vcvt_u32_f32): Likewise.
5675 (vcvtq_s32_f32): Likewise.
5676 (vcvtq_f32_s32): Likewise.
5677 (vcvtq_f32_u32): Likewise.
5678 (vcvtq_u32_f32): Likewise.
5679 (vcvt_n_s32_f32): Likewise.
5680 (vcvt_n_f32_s32): Likewise.
5681 (vcvt_n_f32_u32): Likewise.
5682 (vcvt_n_u32_f32): Likewise.
5683 (vcvtq_n_s32_f32): Likewise.
5684 (vcvtq_n_f32_s32): Likewise.
5685 (vcvtq_n_f32_u32): Likewise.
5686 (vcvtq_n_u32_f32): Likewise.
5687 (vmovn_s16): Likewise.
5688 (vmovn_s32): Likewise.
5689 (vmovn_s64): Likewise.
5690 (vmovn_u16): Likewise.
5691 (vmovn_u32): Likewise.
5692 (vmovn_u64): Likewise.
5693 (vqmovn_s16): Likewise.
5694 (vqmovn_s32): Likewise.
5695 (vqmovn_s64): Likewise.
5696 (vqmovn_u16): Likewise.
5697 (vqmovn_u32): Likewise.
5698 (vqmovn_u64): Likewise.
5699 (vqmovun_s16): Likewise.
5700 (vqmovun_s32): Likewise.
5701 (vqmovun_s64): Likewise.
5702 (vmovl_s8): Likewise.
5703 (vmovl_s16): Likewise.
5704 (vmovl_s32): Likewise.
5705 (vmovl_u8): Likewise.
5706 (vmovl_u16): Likewise.
5707 (vmovl_u32): Likewise.
5708 (vmul_lane_s16): Likewise.
5709 (vmul_lane_s32): Likewise.
5710 (vmul_lane_f32): Likewise.
5711 (vmul_lane_u16): Likewise.
5712 (vmul_lane_u32): Likewise.
5713 (vmulq_lane_s16): Likewise.
5714 (vmulq_lane_s32): Likewise.
5715 (vmulq_lane_f32): Likewise.
5716 (vmulq_lane_u16): Likewise.
5717 (vmulq_lane_u32): Likewise.
5718 (vmla_lane_s16): Likewise.
5719 (vmla_lane_s32): Likewise.
5720 (vmla_lane_f32): Likewise.
5721 (vmla_lane_u16): Likewise.
5722 (vmla_lane_u32): Likewise.
5723 (vmlaq_lane_s16): Likewise.
5724 (vmlaq_lane_s32): Likewise.
5725 (vmlaq_lane_f32): Likewise.
5726 (vmlaq_lane_u16): Likewise.
5727 (vmlaq_lane_u32): Likewise.
5728 (vmlal_lane_s16): Likewise.
5729 (vmlal_lane_s32): Likewise.
5730 (vmlal_lane_u16): Likewise.
5731 (vmlal_lane_u32): Likewise.
5732 (vqdmlal_lane_s16): Likewise.
5733 (vqdmlal_lane_s32): Likewise.
5734 (vmls_lane_s16): Likewise.
5735 (vmls_lane_s32): Likewise.
5736 (vmls_lane_f32): Likewise.
5737 (vmls_lane_u16): Likewise.
5738 (vmls_lane_u32): Likewise.
5739 (vmlsq_lane_s16): Likewise.
5740 (vmlsq_lane_s32): Likewise.
5741 (vmlsq_lane_f32): Likewise.
5742 (vmlsq_lane_u16): Likewise.
5743 (vmlsq_lane_u32): Likewise.
5744 (vmlsl_lane_s16): Likewise.
5745 (vmlsl_lane_s32): Likewise.
5746 (vmlsl_lane_u16): Likewise.
5747 (vmlsl_lane_u32): Likewise.
5748 (vqdmlsl_lane_s16): Likewise.
5749 (vqdmlsl_lane_s32): Likewise.
5750 (vmull_lane_s16): Likewise.
5751 (vmull_lane_s32): Likewise.
5752 (vmull_lane_u16): Likewise.
5753 (vmull_lane_u32): Likewise.
5754 (vqdmull_lane_s16): Likewise.
5755 (vqdmull_lane_s32): Likewise.
5756 (vqdmulhq_lane_s16): Likewise.
5757 (vqdmulhq_lane_s32): Likewise.
5758 (vqdmulh_lane_s16): Likewise.
5759 (vqdmulh_lane_s32): Likewise.
5760 (vqrdmulhq_lane_s16): Likewise.
5761 (vqrdmulhq_lane_s32): Likewise.
5762 (vqrdmulh_lane_s16): Likewise.
5763 (vqrdmulh_lane_s32): Likewise.
5764 (vmul_n_s16): Likewise.
5765 (vmul_n_s32): Likewise.
5766 (vmul_n_f32): Likewise.
5767 (vmul_n_u16): Likewise.
5768 (vmul_n_u32): Likewise.
5769 (vmulq_n_s16): Likewise.
5770 (vmulq_n_s32): Likewise.
5771 (vmulq_n_f32): Likewise.
5772 (vmulq_n_u16): Likewise.
5773 (vmulq_n_u32): Likewise.
5774 (vmull_n_s16): Likewise.
5775 (vmull_n_s32): Likewise.
5776 (vmull_n_u16): Likewise.
5777 (vmull_n_u32): Likewise.
5778 (vqdmull_n_s16): Likewise.
5779 (vqdmull_n_s32): Likewise.
5780 (vqdmulhq_n_s16): Likewise.
5781 (vqdmulhq_n_s32): Likewise.
5782 (vqdmulh_n_s16): Likewise.
5783 (vqdmulh_n_s32): Likewise.
5784 (vqrdmulhq_n_s16): Likewise.
5785 (vqrdmulhq_n_s32): Likewise.
5786 (vqrdmulh_n_s16): Likewise.
5787 (vqrdmulh_n_s32): Likewise.
5788 (vmla_n_s16): Likewise.
5789 (vmla_n_s32): Likewise.
5790 (vmla_n_f32): Likewise.
5791 (vmla_n_u16): Likewise.
5792 (vmla_n_u32): Likewise.
5793 (vmlaq_n_s16): Likewise.
5794 (vmlaq_n_s32): Likewise.
5795 (vmlaq_n_f32): Likewise.
5796 (vmlaq_n_u16): Likewise.
5797 (vmlaq_n_u32): Likewise.
5798 (vmlal_n_s16): Likewise.
5799 (vmlal_n_s32): Likewise.
5800 (vmlal_n_u16): Likewise.
5801 (vmlal_n_u32): Likewise.
5802 (vqdmlal_n_s16): Likewise.
5803 (vqdmlal_n_s32): Likewise.
5804 (vmls_n_s16): Likewise.
5805 (vmls_n_s32): Likewise.
5806 (vmls_n_f32): Likewise.
5807 (vmls_n_u16): Likewise.
5808 (vmls_n_u32): Likewise.
5809 (vmlsq_n_s16): Likewise.
5810 (vmlsq_n_s32): Likewise.
5811 (vmlsq_n_f32): Likewise.
5812 (vmlsq_n_u16): Likewise.
5813 (vmlsq_n_u32): Likewise.
5814 (vmlsl_n_s16): Likewise.
5815 (vmlsl_n_s32): Likewise.
5816 (vmlsl_n_u16): Likewise.
5817 (vmlsl_n_u32): Likewise.
5818 (vqdmlsl_n_s16): Likewise.
5819 (vqdmlsl_n_s32): Likewise.
5820
5821 2014-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5822
5823 * config/arm/arm.c (arm_new_rtx_costs, case PLUS, MINUS):
5824 Add cost of alu.arith in simple SImode case.
5825
5826 2014-11-18 Jiong Wang <jiong.wang@arm.com>
5827
5828 * lra-eliminations.c (update_reg_eliminate): Relax gcc_assert for fixed
5829 registers.
5830
5831 2014-11-18 Marat Zakirov <m.zakirov@samsung.com>
5832
5833 * opts.c (finish_options): Disable aggressive opts for sanitizer.
5834 (common_handle_option): Move code to finish_options.
5835
5836 2014-11-18 Yury Gribov <y.gribov@samsung.com>
5837
5838 PR sanitizer/63802
5839 * stor-layout.c (min_align_of_type): Respect user alignment
5840 more.
5841
5842 2014-11-18 Ilya Enkovich <ilya.enkovich@intel.com>
5843
5844 * passes.c (remove_cgraph_node_from_order): New.
5845 (do_per_function_toporder): Register cgraph removal
5846 hook.
5847
5848 2014-11-17 Terry Guo <terry.guo@arm.com>
5849
5850 * config/arm/arm.c (arm_issue_rate): Return 2 for cortex-m7.
5851 * config/arm/arm.md (generic_sched): Exclude cortex-m7.
5852 (generic_vfp): Likewise.
5853 * config/arm/cortex-m7.md: Pipeline description for cortex-m7.
5854
5855 2014-11-17 Vladimir Makarov <vmakarov@redhat.com>
5856
5857 PR rtl-optimization/63906
5858 * lra-remat.c (operand_to_remat): Check SP and
5859 frame_pointer_required.
5860
5861 2014-11-17 Mircea Namolaru <mircea.namolaru@inria.fr>
5862
5863 * doc/invoke.texi (floop-unroll-and-jam): Document
5864 (loop-unroll-jam-size): Likewise.
5865 (loop-unroll-jam-depth): Likewise.
5866 * graphite-optimize-isl.c (getPrevectorMap_full): Modify comment.
5867 (getScheduleForBandList): Replaced unsafe union_map reuse.
5868
5869 2014-11-17 Andrew Pinski <apinski@cavium.com>
5870
5871 * config/aarch64/thunderx.md: Remove copyright which should not
5872 have been there.
5873
5874 2014-11-17 Michael Meissner <meissner@linux.vnet.ibm.com>
5875 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5876
5877 * config/rs6000/rs6000.c (RELOAD_REG_AND_M16): Add support for
5878 Altivec style vector loads that ignore the bottom 3 bits of the
5879 address.
5880 (rs6000_debug_addr_mask): New function to print the addr_mask
5881 values if debugging.
5882 (rs6000_debug_print_mode): Call rs6000_debug_addr_mask to print
5883 out addr_mask.
5884 (rs6000_setup_reg_addr_masks): Add support for Altivec style
5885 vector loads that ignore the bottom 3 bits of the address. Allow
5886 pre-increment and pre-decrement on floating point, even if the
5887 -mupper-regs-{sf,df} options were used.
5888 (rs6000_init_hard_regno_mode_ok): Rework DFmode support if
5889 -mupper-regs-df. Add support for -mupper-regs-sf. Rearrange code
5890 placement for direct move support.
5891 (rs6000_option_override_internal): Add checks for -mupper-regs-df
5892 requiring -mvsx, and -mupper-regs-sf requiring -mpower8-vector.
5893 If -mupper-regs, set both -mupper-regs-sf and -mupper-regs-df,
5894 depending on the underlying cpu.
5895 (rs6000_secondary_reload_fail): Add ATTRIBUTE_NORETURN.
5896 (rs6000_secondary_reload_toc_costs): Helper function to identify
5897 costs of a TOC load for secondary reload support.
5898 (rs6000_secondary_reload_memory): Helper function for secondary
5899 reload, to determine if a particular memory operation is directly
5900 handled by the hardware, or if it needs support from secondary
5901 reload to create a valid address.
5902 (rs6000_secondary_reload): Rework code, to be clearer. If the
5903 appropriate -mupper-regs-{sf,df} is used, use FPR registers to
5904 reload scalar values, since the FPR registers have D-form
5905 addressing. Move most of the code handling memory to the function
5906 rs6000_secondary_reload_memory, and use the reg_addr structure to
5907 determine what type of address modes are supported. Print more
5908 debug information if -mdebug=addr.
5909 (rs6000_secondary_reload_inner): Rework entire function to be more
5910 general. Use the reg_addr bits to determine what type of
5911 addressing is supported.
5912 (rs6000_preferred_reload_class): Rework. Move constant handling
5913 into a single place. Prefer using FLOAT_REGS for scalar floating
5914 point.
5915 (rs6000_secondary_reload_class): Use a FPR register to move a
5916 value from an Altivec register to a GPR, and vice versa. Move VSX
5917 handling above traditional floating point.
5918
5919 * config/rs6000/rs6000.md (mov<mode>_hardfloat, FMOVE32 case):
5920 Delete some spaces in the constraints.
5921 (DF->DF move peephole2): Disable if -mupper-regs-{sf,df} to
5922 allow using FPR registers to load/store an Altivec register for
5923 scalar floating point types.
5924 (SF->SF move peephole2): Likewise.
5925 (DFmode splitter): Add a define_split to move floating point
5926 constants to the constant pool before register allocation.
5927 Normally constants are put into the pool immediately, but
5928 -ffast-math delays putting them into the constant pool for the
5929 reciprocal approximation support.
5930 (SFmode splitter): Likewise.
5931
5932 * config/rs6000/rs6000.opt (-mupper-regs-df): Make option public.
5933 (-mupper-regs-sf): Likewise.
5934
5935 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
5936 __UPPER_REGS_DF__ if -mupper-regs-df. Define __UPPER_REGS_SF__ if
5937 -mupper-regs-sf.
5938 (-mupper-regs): New combination option that sets -mupper-regs-sf
5939 and -mupper-regs-df by default if the cpu supports the instructions.
5940
5941 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
5942 -mupper-regs, -mupper-regs-sf, and -mupper-regs-df.
5943
5944 * config/rs6000/predicates.md (memory_fp_constant): New predicate
5945 to return true if the operand is a floating point constant that
5946 must be put into the constant pool, before register allocation
5947 occurs.
5948
5949 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Enable
5950 -mupper-regs-df by default.
5951 (ISA_2_7_MASKS_SERVER): Enable -mupper-regs-sf by default.
5952 (POWERPC_MASKS): Add -mupper-regs-{sf,df} as options set by the
5953 various -mcpu=... options.
5954 (power7 cpu): Enable -mupper-regs-df by default.
5955
5956 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
5957 -mupper-regs.
5958
5959 2014-11-17 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
5960
5961 * ira-conflicts.c (build_conflict_bit_table): Add the current
5962 object to OBJECTS_LIVE after traversing OBJECTS_LIVE.
5963
5964 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
5965
5966 * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
5967 (ipa_get_indirect_edge_target): Add SPECULATIVE argument.
5968 (devirtualization_time_bonus): Use it.
5969 (ipcp_discover_new_direct_edges): Likewise.
5970 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Update.
5971 * ipa-prop.h (ipa_get_indirect_edge_target): Update prototype.
5972
5973 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
5974
5975 * tree.c (free_lang_data_in_decl): Set DECL_FUNCTION_SPECIFIC_OPTIMIZATION
5976 to optimization_default_node.
5977
5978 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
5979
5980 * cgraphunit.c (analyze_functions): Use opt_for_fn.
5981 * cgraph.h (cgraph_node::optimize_for_size_p): Likewise.
5982
5983 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
5984
5985 * cgraph.c (symbol_table::create_edge): Use opt_for_fn.
5986 (cgraph_node::cannot_return_p): Likewise.
5987 (cgraph_edge::cannot_lead_to_return_p): Likewise.
5988 (cgraph_edge::maybe_hot_p): Likewise.
5989
5990 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
5991
5992 * predict.c (maybe_hot_frequency_p): Use opt_for_fn.
5993 (optimize_function_for_size_p): Likewise.
5994 (probably_never_executed): Likewise; replace cfun by fun.
5995
5996 2014-11-17 Alan Lawrence <alan.lawrence@arm.com>
5997
5998 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Add
5999 variant reading from memory and assembling to ld1.
6000
6001 * config/aarch64/arm_neon.h (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8,
6002 vld1_lane_p16, vld1_lane_s8, vld1_lane_s16, vld1_lane_s32,
6003 vld1_lane_s64, vld1_lane_u8, vld1_lane_u16, vld1_lane_u32,
6004 vld1_lane_u64, vld1q_lane_f32, vld1q_lane_f64, vld1q_lane_p8,
6005 vld1q_lane_p16, vld1q_lane_s8, vld1q_lane_s16, vld1q_lane_s32,
6006 vld1q_lane_s64, vld1q_lane_u8, vld1q_lane_u16, vld1q_lane_u32,
6007 vld1q_lane_u64): Replace asm with vset_lane and pointer dereference.
6008
6009 2014-11-17 Jason Merrill <jason@redhat.com>
6010
6011 * tree-inline.c (copy_fn): New.
6012 * tree-inline.h: Declare it.
6013
6014 2014-11-17 Alan Lawrence <alan.lawrence@arm.com>
6015
6016 * config/aarch64/aarch64-builtins.c (TYPES_CREATE): Remove.
6017 * config/aarch64/aarch64-simd-builtins.def (create): Remove.
6018 * config/aarch64/aarch64-simd.md (aarch64_create<mode>): Remove.
6019 * config/aarch64/arm_neon.h (vcreate_f64, vreinterpret_f64_s64,
6020 vreinterpret_f64_u64): Replace __builtin_aarch64_createv1df with C casts.
6021 * config/aarch64/iterators.md (VD1): Remove.
6022
6023 2014-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6024
6025 * config/aarch64/aarch64-cores.def (cortex-a53): Remove
6026 AARCH64_FL_CRYPTO from feature flags.
6027 (cortex-a57): Likewise.
6028 (cortex-a57.cortex-a53): Likewise.
6029
6030 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
6031
6032 * tree.c (free_lang_data_in_decl): Annotate all functio nbodies with
6033 DECL_FUNCTION_SPECIFIC_TARGET.
6034 * i386.c (ix86_set_current_function): Handle explicit default options.
6035
6036 2014-11-17 Ilya Enkovich <ilya.enkovich@intel.com>
6037
6038 * builtins.c (expand_builtin_memcpy_with_bounds): Use target hook
6039 instead of BNDmode.
6040 (expand_builtin_mempcpy_with_bounds): Likewise.
6041 (expand_builtin_memset_with_bounds): Likewise.
6042
6043 2014-11-17 Ilya Enkovich <ilya.enkovich@intel.com>
6044
6045 * tree-ssa-strlen.c: include ipa-chkp.h, cgraph.h,
6046 ipa-ref.h, plugin-api.h.
6047 (get_string_length): Handle calls with bounds.
6048 (adjust_last_stmt): Likewise.
6049 (handle_builtin_strchr): Likewise.
6050 (handle_builtin_strcpy): Likewise.
6051 (handle_builtin_memcpy): Likewise.
6052 (handle_builtin_strcat): Likewise.
6053
6054 2014-11-17 Ilya Enkovich <ilya.enkovich@intel.com>
6055
6056 * tree-chkp-opt.c (chkp_get_nobnd_fndecl): New.
6057 (chkp_get_nochk_fndecl): New.
6058 (chkp_optimize_string_function_calls): New.
6059 (chkp_opt_execute): Call chkp_optimize_string_function_calls.
6060 * tree-cfg.h (insert_cond_bb): New.
6061 * tree-cfg.c (insert_cond_bb): New.
6062
6063 2014-11-17 Ilya Enkovich <ilya.enkovich@intel.com>
6064
6065 * tree-core.h (built_in_class): Add builtin codes to be used
6066 by Pointer Bounds Checker for instrumented builtin functions.
6067 * tree-streamer-in.c: Include ipa-chkp.h.
6068 (streamer_get_builtin_tree): Created instrumented decl if
6069 required.
6070 * ipa-chkp.h (chkp_maybe_clone_builtin_fndecl): New.
6071 * ipa-chkp.c (chkp_build_instrumented_fndecl): Support builtin
6072 function decls.
6073 (chkp_maybe_clone_builtin_fndecl): New.
6074 (chkp_maybe_create_clone): Support builtin function decls.
6075 (chkp_versioning): Clone builtin functions.
6076 * tree-chkp.c (chkp_instrument_normal_builtin): New.
6077 (chkp_add_bounds_to_call_stmt): Support builtin functions.
6078 (chkp_replace_function_pointer): Likewise.
6079 * builtins.c (expand_builtin_memcpy_args): New.
6080 (expand_builtin_memcpy): Call expand_builtin_memcpy_args.
6081 (expand_builtin_memcpy_with_bounds): New.
6082 (expand_builtin_mempcpy_with_bounds): New.
6083 (expand_builtin_mempcpy_args): Add orig_exp arg. Support
6084 BUILT_IN_CHKP_MEMCPY_NOBND_NOCHK
6085 (expand_builtin_memset_with_bounds): New.
6086 (expand_builtin_memset_args): Support BUILT_IN_CHKP_MEMSET_NOBND_NOCHK.
6087 (expand_builtin_with_bounds): New.
6088 * builtins.h (expand_builtin_with_bounds): New.
6089 * expr.c (expand_expr_real_1): Support instrumented builtin calls.
6090
6091 2014-11-17 Dodji Seketeli <dodji@redhat.com>
6092
6093 * gimple.h (gimple_set_visited, gimple_visited_p)
6094 (gimple_set_plf, gimple_plf, gimple_set_uid, gimple_uid): Add more
6095 comments to these accessors.
6096
6097 2014-11-17 Georg-Johann Lay <avr@gjlay.de>
6098
6099 * config/avr/avr-log.c (avr_log_set_avr_log) [TARGET_ALL_DEBUG]:
6100 Set avr_log_details to "all".
6101
6102 2014-11-17 Richard Biener <rguenther@suse.de>
6103
6104 PR middle-end/63898
6105 * match.pd: Guard X / CST -> X * CST' transform against
6106 zero CST.
6107
6108 2014-11-17 Terry Guo <terry.guo@arm.com>
6109
6110 * config/arm/thumb1.md (*addsi3_cbranch_scratch): Updated to UAL
6111 format.
6112
6113 2014-11-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
6114
6115 * ifcvt.c (HAVE_cbranchcc4): Define.
6116 (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
6117 Use HAVE_cbranchcc4.
6118
6119 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6120
6121 * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
6122 aarch64_convert_mode, aarch64_gen_ccmp_first,
6123 aarch64_gen_ccmp_next): New functions.
6124 (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
6125
6126 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6127
6128 * config/aarch64/aarch64-protos.h (aarch64_ccmp_mode_to_code): New.
6129 * aarch64.c (aarch64_nzcv_codes): New data.
6130 (aarch64_ccmp_mode_to_code): New.
6131 (aarch64_print_operand): Output nzcv.
6132 config/aarch64/aarch64.md (cbranchcc4, *ccmp_and, *ccmp_ior, cstorecc4):
6133 New patterns.
6134 (cstore<mode>4): Handle ccmp_cc_register.
6135 * config/aarch64/predicates.md (const0_operand): New.
6136
6137 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6138
6139 * config/aarch64/aarch64-modes.def: Define ccmp CC mode.
6140 * config/aarch64/aarch64.c (aarch64_get_condition_code_1): New function
6141 extacted from aarch64_get_condition_code.
6142 (aarch64_get_condition_code): Call aarch64_get_condition_code_1.
6143 config/aarch64/predicates.md (ccmp_cc_register): New predicate.
6144
6145 014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6146
6147 * config/aarch64/constraints.md (Usn, aarch64_ccmp_immediate,
6148 aarch64_ccmp_operand): New constraints.
6149
6150 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6151
6152 * Makefile.in: Add ccmp.o.
6153 * ccmp.c: New file.
6154 * ccmp.h: New file.
6155 * expr.c: include "ccmp.h"
6156 (expand_cond_expr_using_cmove): Handle VOIDmode.
6157 (expand_expr_real_1): Try to expand ccmp.
6158
6159 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6160
6161 * cfgexpand.c (expand_gimple_cond): Check ccmp.
6162 * expmed.c (emit_cstore): Make it global.
6163 * expmed.h: #include "insn-codes.h"
6164 (emit_cstore): New prototype.
6165 * expr.c (expand_operands): Make it global.
6166 * expr.h (expand_operands): New prototype.
6167 * optabs.c (get_rtx_code): Make it global.
6168 * optabs.h (get_rtx_code): New prototype.
6169
6170 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6171
6172 * target.def (gen_ccmp_first, gen_ccmp_first): Add two new hooks.
6173 * doc/tm.texi.in (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
6174 * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
6175
6176 2014-11-16 Patrick Palka <ppalka@gcc.gnu.org>
6177
6178 PR middle-end/63790
6179 * tree-ssa-forwprop.c (forward_propagate_into_comparison_1):
6180 Always combine comparisons or conversions from booleans.
6181
6182 2014-11-16 Jan Hubicka <hubicka@ucw.cz>
6183
6184 * ipa-polymorphic-call.c
6185 (ipa_polymorphic_call_context::speculation_consistent_p): Constify.
6186 (ipa_polymorphic_call_context::meet_speculation_with): New function.
6187 (ipa_polymorphic_call_context::combine_with): Handle types in construction
6188 better.
6189 (ipa_polymorphic_call_context::equal_to): Do not bother about useless
6190 speculation.
6191 (ipa_polymorphic_call_context::meet_with): New function.
6192 * cgraph.h (class ipa_polymorphic_call_context): Add
6193 meet_width, meet_speculation_with; constify speculation_consistent_p.
6194 * ipa-cp.c (ipa_context_from_jfunc): Handle speculation; combine with incomming
6195 context.
6196 (propagate_context_accross_jump_function): Likewise; be more cureful.
6197 about set_contains_variable.
6198 (ipa_get_indirect_edge_target_1): Fix handling of dynamic type changes.
6199 (find_more_scalar_values_for_callers_subset): Fix.
6200 (find_more_contexts_for_caller_subset): Perform meet operation.
6201
6202 2014-11-16 Jan Hubicka <hubicka@ucw.cz>
6203
6204 * passes.c (execute_one_pass): Do not apply all transforms prior
6205 every simple IPA pass.
6206 * cgraphunit.c: Do not include fibheap.h
6207 (expand_thunk): Use get_untransformed_body.
6208 (cgraph_node::expand): Likewise.
6209 * tree-ssa-structalias.c (ipa_pta_execute): Skip inline clones.
6210 * cgraph.c (release_function_body): Do not push cfun when CFG is not there.
6211 (cgraph_node::get_untransformed_body): Break out from ...
6212 (cgraph_node::get_body): ... here; add code to apply all transforms.
6213 * cgraph.h (cgraph_node): Add get_untransformed_body.
6214 * ipa-icf.c (sem_function::init): Use get_untransformed_body.
6215 * cgraphclones.c (duplicate_thunk_for_node): Likewise.
6216 * tree-inline.c (expand_call_inline): LIkewise.
6217 * i386.c (ix86_reset_to_default_globals): Break out from ...
6218 (ix86_set_current_function): ... here;
6219 (ix86_reset_previous_fndecl): Use it.
6220 (ix86_simd_clone_adjust): Use ix86_reset_previous_fndecl.
6221
6222 2014-11-16 Eric Botcazou <ebotcazou@adacore.com>
6223
6224 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
6225 * doc/tm.texi: Regenerate.
6226
6227 2014-11-16 Uros Bizjak <ubizjak@gmail.com>
6228
6229 * config/sh/sh.c: Do not include algorithm.
6230 (sh_emit_scc_to_t): Replace open-coded swap with std::swap
6231 to swap values.
6232 (sh_emit_compare_and_branch): Ditto.
6233 (sh_emit_compare_and_set): Ditto.
6234 * config/sh/sh.md (replacement peephole2): Ditto.
6235 (cstore4_media): Ditto.
6236 (*fmasf4): Ditto.
6237
6238 2014-11-15 Vladimir Makarov <vmakarov@redhat.com>
6239
6240 * lra-remat.c (cand_transf_func): Process regno for
6241 rematerialization too.
6242 * lra.c (lra): Switch on rematerialization pass.
6243
6244 2014-11-15 Vladimir Makarov <vmakarov@redhat.com>
6245
6246 * lra.c (lra): Switch off rematerialization pass.
6247
6248 2014-11-15 Marc Glisse <marc.glisse@inria.fr>
6249
6250 * config/i386/xmmintrin.h (_mm_add_ps, _mm_sub_ps, _mm_mul_ps,
6251 _mm_div_ps, _mm_store_ss, _mm_cvtss_f32): Use vector extensions
6252 instead of builtins.
6253 * config/i386/emmintrin.h (__v2du, __v4su, __v8hu, __v16qu): New
6254 typedefs.
6255 (_mm_sqrt_sd): Fix comment.
6256 (_mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
6257 _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
6258 _mm_mullo_epi16, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
6259 _mm_cmplt_epi8, _mm_cmplt_epi16, _mm_cmplt_epi32, _mm_cmpgt_epi8,
6260 _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_and_si128, _mm_or_si128,
6261 _mm_xor_si128, _mm_store_sd, _mm_cvtsd_f64, _mm_storeh_pd,
6262 _mm_cvtsi128_si64, _mm_cvtsi128_si64x, _mm_add_pd, _mm_sub_pd,
6263 _mm_mul_pd, _mm_div_pd, _mm_storel_epi64, _mm_movepi64_pi64):
6264 Use vector extensions instead of builtins.
6265 * config/i386/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64,
6266 _mm_mullo_epi32): Likewise.
6267 * config/i386/avxintrin.h (__v4du, __v8su, __v16hu, __v32qu):
6268 New typedefs.
6269 (_mm256_add_pd, _mm256_add_ps, _mm256_div_pd, _mm256_div_ps,
6270 _mm256_mul_pd, _mm256_mul_ps, _mm256_sub_pd, _mm256_sub_ps):
6271 Use vector extensions instead of builtins.
6272 * config/i386/avx2intrin.h (_mm256_cmpeq_epi8, _mm256_cmpeq_epi16,
6273 _mm256_cmpeq_epi32, _mm256_cmpeq_epi64, _mm256_cmpgt_epi8,
6274 _mm256_cmpgt_epi16, _mm256_cmpgt_epi32, _mm256_cmpgt_epi64,
6275 _mm256_and_si256, _mm256_or_si256, _mm256_xor_si256, _mm256_add_epi8,
6276 _mm256_add_epi16, _mm256_add_epi32, _mm256_add_epi64,
6277 _mm256_mullo_epi16, _mm256_mullo_epi32, _mm256_sub_epi8,
6278 _mm256_sub_epi16, _mm256_sub_epi32, _mm256_sub_epi64): Likewise.
6279 * config/i386/avx512fintrin.h (__v8du, __v16su, __v32hu, __v64qu):
6280 New typedefs.
6281 (_mm512_or_si512, _mm512_or_epi32, _mm512_or_epi64, _mm512_xor_si512,
6282 _mm512_xor_epi32, _mm512_xor_epi64, _mm512_and_si512,
6283 _mm512_and_epi32, _mm512_and_epi64, _mm512_mullo_epi32,
6284 _mm512_add_epi64, _mm512_sub_epi64, _mm512_add_epi32,
6285 _mm512_sub_epi32, _mm512_add_pd, _mm512_add_ps, _mm512_sub_pd,
6286 _mm512_sub_ps, _mm512_mul_pd, _mm512_mul_ps, _mm512_div_pd,
6287 _mm512_div_ps): Use vector extensions instead of builtins.
6288 * config/i386/avx512bwintrin.h (_mm512_mullo_epi16, _mm512_add_epi8,
6289 _mm512_sub_epi8, _mm512_sub_epi16, _mm512_add_epi16): Likewise.
6290 * config/i386/avx512dqintrin.h (_mm512_mullo_epi64): Likewise.
6291 * config/i386/avx512vldqintrin.h (_mm256_mullo_epi64, _mm_mullo_epi64):
6292 Likewise.
6293
6294 2014-11-15 Jan Hubicka <hubicka@ucw.cz>
6295
6296 * lto-streamer-out.c (hash_tree): Use cl_optimization_hash.
6297 * lto-streamer.h (cl_optimization_stream_out, cl_optimization_stream_in): Declare.
6298 * optc-save-gen.awk: Generate cl_optimization LTO streaming and hashing routines.
6299 * opth-gen.awk: Add prototype of cl_optimization_hash.
6300 * tree-streamer-in.c (unpack_ts_optimization): Remove.
6301 (streamer_unpack_tree_bitfields): Use cl_optimization_stream_in.
6302 * tree-streamer-out.c (pack_ts_optimization): Remove.
6303 (streamer_pack_tree_bitfields): Use cl_optimization_stream_out.
6304
6305 2014-11-15 Mircea Namolaru <mircea.namolaru@inria.fr>
6306
6307 * common.opt (flag_loop_unroll_and_jam): New flag.
6308 * params.def (PARAM_LOOP_UNROLL_JAM_SIZE): Parameter for unroll and
6309 jam flag.
6310 (PARAM_LOOP_UNROLL_JAM_DEPTH): Likewise.
6311 * graphite-poly.h (struct poly_bb:map_sepclass): New field
6312 * graphite-poly.c (new_poly_bb): Initialization for new field.
6313 (apply_poly_transforms): Support for unroll and jam flag.
6314 * graphite-isl-ast-to-gimple.c (generate_luj_sepclass): Compute the
6315 separation class.
6316 (generate_luj_sepclass_opt): Build the separation class option.
6317 (generate_luj_options): Set unroll and jam options.
6318 (set_options): Support for unroll and jam options.
6319 (scop_to_isl_ast): Likewise
6320 * graphite-optimize-isl.c (getPrevectorMap_full): New function for
6321 computing the separating class map.
6322 (optimize_isl): Support for the separating class map.
6323 (apply_schedule_map_to_scop): Likewise.
6324 (getScheduleMap): Likewise.
6325 (getScheduleForBand): Likewise.
6326 (getScheduleForBandList): Likewise.
6327 * graphite.c (gate_graphite_transforms): Add unroll and jam flag.
6328 * toplev.c (process_options) Likewise.
6329
6330 2014-11-15 Eric Botcazou <ebotcazou@adacore.com>
6331
6332 * tree-cfg.c (replace_loop_annotate_in_block): New function extracted
6333 from...
6334 (replace_loop_annotate): ...here. Call it on the header and on the
6335 latch block, if any. Restore proper behavior of final cleanup.
6336
6337 2014-11-15 Eric Botcazou <ebotcazou@adacore.com>
6338
6339 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message
6340 for max-completely-peeled-insns limit.
6341
6342 2014-11-14 Jan Hubicka <hubicka@ucw.cz>
6343
6344 * ipa-prop.h (ipa_known_type_data): Remove.
6345 (ipa_binfo_from_known_type_jfunc): Remove.
6346
6347 2014-11-14 Andrew Pinski <apinski@cavium.com>
6348
6349 * config/aarch64/aarch64-cores.def (thunderx): Change the scheduler
6350 over to thunderx.
6351 * config/aarch64/aarch64.md: Include thunderx.md.
6352 (generic_sched): Set to no for thunderx.
6353 * config/aarch64/thunderx.md: New file.
6354
6355 2014-11-14 Michael Meissner <meissner@linux.vnet.ibm.com>
6356
6357 * config/rs6000/predicates.md (easy_fp_constant): Delete redunant
6358 tests for 0.0.
6359
6360 * config/rs6000/vector.md (VEC_R): Move secondary reload support
6361 insns to rs6000.md from vector.md.
6362 (reload_<VEC_R:mode>_<P:mptrsize>_store): Likewise.
6363 (reload_<VEC_R:mode>_<P:mptrsize>_load): Likewise.
6364 (vec_reload_and_plus_<mptrsize>): Likewise.
6365
6366 * config/rs6000/rs6000.md (Fa): New mode attribute to give
6367 constraint for the Altivec registers for a type.
6368 (RELOAD): New mode iterator for all of the types that have
6369 secondary reload address support to load up a base register.
6370 (extendsfdf2_fpr): Use correct constraint.
6371 (copysign<mode>3_fcpsgn): For SFmode, use correct xscpsgndp
6372 instruction.
6373 (floatsi<mode>2_lfiwax): Add support for -mupper-regs-{sf,df}.
6374 Generate the non-VSX instruction if all registers were FPRs. Do
6375 not use the patterns in vsx.md for scalar operations.
6376 (floatsi<mode>2_lfiwax_mem): Likewise.
6377 (floatunssi<mode>2_lfiwzx): Likewise.
6378 (floatunssi<mode>2_lfiwzx_mem): Likewise.
6379 (fix_trunc<mode>di2_fctidz): Likewise.
6380 (fixuns_trunc<mode>di2_fctiduz): Likewise.
6381 (fctiwz_<mode>): Likewise.
6382 (fctiwuz_<mode>): Likewise.
6383 (friz): Likewise.
6384 (floatdidf2_fpr): Likewise.
6385 (floatdidf2_mem): Likewise.
6386 (floatunsdidf2): Likewise.
6387 (floatunsdidf2_fcfidu): Likewise.
6388 (floatunsdidf2_mem): Likewise.
6389 (floatdisf2_fcfids): Likewise.
6390 (floatdisf2_mem): Likewise.
6391 (floatdisf2_internal1): Add explicit test for not FCFIDS to make
6392 it more obvious that the code is for pre-ISA 2.06 machines.
6393 (floatdisf2_internal2): Likewise.
6394 (floatunsdisf2_fcfidus): Add support for -mupper-regs-{sf,df}.
6395 Generate the non-VSX instruction if all registers were FPRs. Do
6396 not use the patterns in vsx.md for scalar operations.
6397 (floatunsdisf2_mem): Likewise.
6398 (reload_<RELOAD:mode>_<P:mptrsize>_store): Move the reload
6399 handlers here from vector.md, and expand the types we generate
6400 reload handlers for.
6401 (reload_<RELOAD:mode>_<P:mptrsize>_load): Likewise.
6402 (vec_reload_and_plus_<mptrsize>): Likewise.
6403
6404 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Only provide the
6405 vector forms of the instructions. Move VSX scalar forms to
6406 rs6000.md, and add support for -mupper-regs-sf.
6407 (vsx_floatuns<VSi><mode>2): Likewise.
6408 (vsx_fix_trunc<mode><VSi>2): Likewise.
6409 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
6410 (vsx_float_fix_<mode>2): Delete DF version, rename to
6411 vsx_float_fix_v2df2.
6412 (vsx_float_fix_v2df2): Likewise.
6413
6414 2014-11-14 Martin Jambor <mjambor@suse.cz>
6415
6416 * ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.
6417 (ipa_pass_through_data): Removed field type_preserved.
6418 (ipa_ancestor_jf_data): removed fields type and type_preserved.
6419 (ipa_jump_func): Removed field known_type.
6420 (ipa_get_jf_known_type_offset): Removed.
6421 (ipa_get_jf_known_type_base_type): Likewise.
6422 (ipa_get_jf_known_type_component_type): Likewise.
6423 (ipa_get_jf_ancestor_type): Likewise.
6424 * ipa-cp.c (print_ipcp_constant_value): Removed BINFO handling.
6425 (ipa_get_jf_pass_through_result): Likewise.
6426 (ipa_get_jf_ancestor_result): Always build ptr_node_type accesses.
6427 (values_equal_for_ipcp_p): Removed BINFO handling.
6428 (ipa_get_indirect_edge_target_1): Updated comment.
6429 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Removed handling
6430 of IPA_JF_KNOWN_TYPE jump functions. Do not print removed fields.
6431 (ipa_set_jf_known_type): Removed.
6432 (ipa_set_jf_simple_pass_through): Do not set removed fields. Update
6433 all callers.
6434 (ipa_set_jf_arith_pass_through): Likewise.
6435 (ipa_set_ancestor_jf): Likewise.
6436 (ipa_binfo_from_known_type_jfunc): Removed.
6437 (prop_type_change_info): Removed fields known_current_type and
6438 multiple_types_encountered.
6439 (extr_type_from_vtbl_ptr_store): Removed.
6440 (check_stmt_for_type_change): Do not attempt to identify changed type.
6441 (detect_type_change_from_memory_writes): Do not set the removed fields,
6442 always set jfunc to unknown.
6443 (compute_complex_assign_jump_func): Do not detect dynamic type change.
6444 (compute_complex_ancestor_jump_func): Likewise.
6445 (compute_known_type_jump_func): Removed.
6446 (ipa_compute_jump_functions_for_edge): Do not detect dynamic type
6447 change. Do not comute known type jump functions.
6448 (combine_known_type_and_ancestor_jfs): Removed.
6449 (update_jump_functions_after_inlining): Removed handling of
6450 IPA_JF_KNOWN_TYPE jump functions. Do not set removed fields.
6451 (ipa_write_jump_function): Do not stream removed fields or known type
6452 jump functions.
6453 (ipa_read_jump_function): Likewise.
6454
6455 2014-11-14 Vladimir Makarov <vmakarov@redhat.com>
6456
6457 * lra-int.h (lra_create_live_ranges): Add parameter.
6458 * lra-lives.c (temp_bitmap): Move higher.
6459 (initiate_live_solver): Move temp_bitmap initialization into
6460 lra_live_ranges_init.
6461 (finish_live_solver): Move temp_bitmap clearing into
6462 live_ranges_finish.
6463 (process_bb_lives): Add parameter. Use it to control live info
6464 update and dead insn elimination. Pass it to mark_regno_live and
6465 mark_regno_dead.
6466 (lra_create_live_ranges): Add parameter. Pass it to
6467 process_bb_lives.
6468 (lra_live_ranges_init, lra_live_ranges_finish): See changes in
6469 initiate_live_solver and finish_live_solver.
6470 * lra-remat.c (do_remat): Process insn non-operand hard regs too.
6471 Use temp_bitmap to update avail_cands.
6472 * lra.c (lra): Pass new parameter to lra_create_live_ranges. Move
6473 check with lra_need_for_spill_p after live range pass. Switch on
6474 rematerialization pass.
6475
6476 2014-11-14 Martin Jambor <mjambor@suse.cz>
6477
6478 * ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use
6479 agg_preserved flag instead.
6480 (ipa_get_jf_ancestor_type_preserved): Likewise.
6481 (ipa_node_params): Rename known_vals to known_csts, update all users.
6482 New field known_contexts.
6483 (ipa_get_indirect_edge_target): Update prototype.
6484 (ipcp_poly_ctx_values_pool): Declare.
6485 (ipa_context_from_jfunc): Likewise.
6486 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Updated prototype.
6487 * cgraph.h (ipa_polymorphic_call_context): New method equal_to. New
6488 parameter newline of method dump.
6489 * ipa-cp.c (ctxlat): New field.
6490 (ipcp_values_pool): Renamed to ipcp_cst_values_pool, updated all users.
6491 (ipcp_poly_ctx_values_pool):New variable.
6492 (ipa_get_poly_ctx_lat): New function.
6493 (print_ipcp_constant_value): New overloaded function for contexts.
6494 (print_all_lattices): Also print contexts.
6495 (ipa_topo_info): New field contexts;
6496 (set_all_contains_variable): Also set the flag in the context lattice.
6497 (initialize_node_lattices): Likewise for flag bottom.
6498 (ipa_get_jf_ancestor_result): Removed BINFO handling.
6499 (ipa_value_from_jfunc): Likewise.
6500 (ipa_context_from_jfunc): New function.
6501 (values_equal_for_ipcp_p): New overloaded function for contexts.
6502 (allocate_and_init_ipcp_value): Construct the value.
6503 (allocate_and_init_ipcp_value): New overloaded function for contexts.
6504 (propagate_scalar_accross_jump_function): Removed handling of
6505 KNOWN_TYPE jump functions.
6506 (propagate_context_accross_jump_function): New function.
6507 (propagate_constants_accross_call): Also propagate contexts.
6508 (ipa_get_indirect_edge_target_1): Work on contexts rather than BINFOs.
6509 (ipa_get_indirect_edge_target): Likewise.
6510 (devirtualization_time_bonus): Likewise.
6511 (gather_context_independent_values): Create and populate known_contexts
6512 vector rather than known_binfos.
6513 (perform_estimation_of_a_value): Work on contexts rather than BINFOs.
6514 (estimate_local_effects): Likewise.
6515 (add_all_node_vals_to_toposort): Also add contexts to teir topological
6516 sort.
6517 (ipcp_propagate_stage): Also propagate effects of contexts.
6518 (ipcp_discover_new_direct_edges): Receive and pass known_contexts to
6519 ipa_get_indirect_edge_target_1.
6520 (cgraph_edge_brings_value_p): New overloaded function for contexts.
6521 (create_specialized_node): Work on contexts rather than BINFOs.
6522 (find_more_contexts_for_caller_subset): New function.
6523 (known_contexts_useful_p): New function.
6524 (copy_useful_known_contexts): Likewise.
6525 (modify_known_vectors_with_val): Likewise.
6526 (ipcp_val_in_agg_replacements_p): Renamed to
6527 ipcp_val_agg_replacement_ok_p, return true for all offset indicating
6528 non-aggregate.
6529 (ipcp_val_agg_replacement_ok_p): New overloaded function for contexts.
6530 (decide_about_value): Work on contexts rather than BINFOs.
6531 (decide_whether_version_node): Likewise.
6532 (ipcp_driver): Initialize the new alloc pool.
6533 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Prettify
6534 printing of edge contexts.
6535 (ipa_set_ancestor_jf): Replace assert with conditional setting of
6536 type_preserved to false.
6537 (update_jump_functions_after_inlining): Use access function instead of
6538 reading agg_preserved directly. Store combined context in the ancestor
6539 case.
6540 (try_make_edge_direct_virtual_call): Work on contexts rather than
6541 BINFOs.
6542 (update_indirect_edges_after_inlining): Get context from
6543 ipa_context_from_jfunc.
6544 (ipa_free_node_params_substructures): Free also known_contexts.
6545 (ipa_free_all_structures_after_ipa_cp): Free the new alloc pool.
6546 (ipa_free_all_structures_after_iinln): Likewise.
6547 * ipa-inline-analysis.c (evaluate_properties_for_edge): Work on
6548 contexts rather than BINFOs.
6549 (estimate_edge_devirt_benefit): Likewise.
6550 (estimate_edge_size_and_time): Likewise.
6551 (estimate_calls_size_and_time): Likewise.
6552 (estimate_node_size_and_time): Likewise.
6553 (estimate_ipcp_clone_size_and_time): Likewise.
6554 (do_estimate_edge_time): Likewise.
6555 (do_estimate_edge_size): Likewise.
6556 (do_estimate_edge_hints): Likewise.
6557 * ipa-polymorphic-call.c (ipa_polymorphic_call_context::dump): New
6558 parameter newline, ouput newline only when it is set.
6559 (ipa_polymorphic_call_context::equal_to): New method.
6560
6561 2014-11-14 Martin Jambor <mjambor@suse.cz>
6562
6563 * ipa-cp.c (ipcp_value_source): Converted to a template class. All
6564 users converted to the same specialization as the using class/function
6565 or specialization on tree.
6566 (ipcp_value): Likewise.
6567 (ipcp_lattice): Likewise.
6568 (ipcp_agg_lattice): Now derived from tree specialization of
6569 ipcp_lattice.
6570 (values_topo): Moved to new class value_topo_info.
6571 (ipa_lat_is_single_const): Turned into ipcp_lattice::is_single_const.
6572 Updated all callers.
6573 (print_lattice): Turned into ipcp_lattice::print. Updated all
6574 callers.
6575 (value_topo_info): New class template.
6576 (ipa_topo_info): New field constants. New constructor.
6577 (build_toporder_info): Do not clear stack_top, only checkign assert
6578 it.
6579 (set_lattice_to_bottom): Turned into ipcp_lattice::set_to_bottom.
6580 Updated all callers.
6581 (set_lattice_contains_variable): Turned into
6582 ipcp_lattice::set_contains_variable. Updated all callers.
6583 (add_value_source): Turned into ipcp_value::add_source. Updated all
6584 callers.
6585 (allocate_and_init_ipcp_value): New function.
6586 (add_value_to_lattice): Turned into ipcp_lattice::add_value. Last
6587 parameter got default a value. Updated all callers.
6588 (add_scalar_value_to_lattice): Removed, users converted to using
6589 ipcp_lattice::add_value with default value of the last parameter.
6590 (add_val_to_toposort): Turned to value_topo_info::add_val. Updated
6591 all callers.
6592 (propagate_effects): Made method of value_topo_info.
6593 (cgraph_edge_brings_value_p): Now a template function.
6594 (get_info_about_necessary_edges): Likewise.
6595 (gather_edges_for_value): Likewise.
6596 (perhaps_add_new_callers): Likewise.
6597 (decide_about_value): Likewise.
6598 * ipa-prop.h (ipcp_lattice): Remove fowrward declaration.
6599
6600 2014-11-14 Jakub Jelinek <jakub@redhat.com>
6601
6602 * doc/install.texi (--with-diagnostics-color=): Document.
6603
6604 * tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate
6605 IFN_GOMP_SIMD_LANE without lhs as useless.
6606
6607 * ipa-pure-const.c (struct funct_state_d): Add can_free field.
6608 (varying_state): Add true for can_free.
6609 (check_call): For builtin or internal !nonfreeing_call_p set
6610 local->can_free.
6611 (check_stmt): For asm volatile and asm with "memory" set
6612 local->can_free.
6613 (analyze_function): Clear local->can_free initially, continue
6614 calling check_stmt until all flags are computed, dump can_free
6615 flag.
6616 (pure_const_write_summary): Write can_free flag.
6617 (pure_const_read_summary): Read it back.
6618 (propagate_pure_const): Propagate also can_free flag, set
6619 w->nonfreeing_fn if it is false after propagation.
6620 * cgraph.h (cgraph_node): Add nonfreeing_fn member.
6621 * gimple.c: Include ipa-ref.h, lto-streamer.h and cgraph.h.
6622 (nonfreeing_call_p): Return cgraph nonfreeing_fn flag if set.
6623 Also return true for IFN_ABNORMAL_DISPATCHER.
6624 * cgraph.c (cgraph_node::dump): Dump nonfreeing_fn flag.
6625 * lto-cgraph.c (lto_output_node): Write nonfreeing_fn flag.
6626 (input_overwrite_node): Read it back.
6627
6628 2014-11-14 Jakub Jelinek <jakub@redhat.com>
6629 Marek Polacek <polacek@redhat.com>
6630
6631 * sanopt.c: Include tree-ssa-operands.h.
6632 (struct sanopt_info): Add has_freeing_call_p,
6633 has_freeing_call_computed_p, imm_dom_path_with_freeing_call_p,
6634 imm_dom_path_with_freeing_call_computed_p, freeing_call_events,
6635 being_visited_p fields.
6636 (struct sanopt_ctx): Add asan_check_map field.
6637 (imm_dom_path_with_freeing_call, maybe_optimize_ubsan_null_ifn,
6638 maybe_optimize_asan_check_ifn): New functions.
6639 (sanopt_optimize_walker): Use them, optimize even ASAN_CHECK
6640 internal calls.
6641 (pass_sanopt::execute): Call sanopt_optimize even for
6642 -fsanitize=address.
6643 * gimple.c (nonfreeing_call_p): Return true for non-ECF_LEAF
6644 internal calls.
6645
6646 2014-11-14 Alan Lawrence <alan.lawrence@arm.com>
6647
6648 * tree-vect-loop.c (vect_create_epilog_for_reduction): Move code for
6649 'if (extract_scalar_result)' to the only place that it is true.
6650
6651 2014-11-14 H.J. Lu <hongjiu.lu@intel.com>
6652
6653 * config.gcc (default_gnu_indirect_function): Set to yes
6654 for i[34567]86-*-linux* and x86_64-*-linux* if not targeting
6655 Android nor uclibc.
6656
6657 2014-11-14 Felix Yang <felix.yang@huawei.com>
6658 Jiji Jiang <jiangjiji@huawei.com>
6659
6660 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
6661 VALL mode iterator instead of VALLDI.
6662
6663 2014-11-14 Jan Hubicka <hubicka@ucw.cz>
6664
6665 * optc-save-gen.awk: Output cl_target_option_eq,
6666 cl_target_option_hash, cl_target_option_stream_out,
6667 cl_target_option_stream_in functions.
6668 * opth-gen.awk: Output prototypes for
6669 cl_target_option_eq and cl_target_option_hash.
6670 * lto-streamer.h (cl_target_option_stream_out,
6671 cl_target_option_stream_in): Declare.
6672 * tree.c (cl_option_hash_hash): Use cl_target_option_hash.
6673 (cl_option_hash_eq): Use cl_target_option_eq.
6674 * tree-streamer-in.c (unpack_value_fields): Stream in
6675 TREE_TARGET_OPTION.
6676 * lto-streamer-out.c (DFS::DFS_write_tree_body): Follow
6677 DECL_FUNCTION_SPECIFIC_TARGET.
6678 (hash_tree): Hash TREE_TARGET_OPTION; visit
6679 DECL_FUNCTION_SPECIFIC_TARGET.
6680 * tree-streamer-out.c (streamer_pack_tree_bitfields): Skip
6681 TS_TARGET_OPTION.
6682 (streamer_write_tree_body): Output TS_TARGET_OPTION.
6683
6684 2014-11-14 Richard Biener <rguenther@suse.de>
6685
6686 * gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd
6687 valueization hook defaulted to no_follow_ssa_edges.
6688 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Pass
6689 2nd valueization hook to gimple_simplify.
6690 * tree-ssa-ccp.c (valueize_op_1): New function to be
6691 used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
6692 (ccp_fold): Adjust.
6693 * tree-vrp.c (vrp_valueize_1): New function to be
6694 used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
6695 (vrp_visit_assignment_or_call): Adjust.
6696
6697 2014-11-14 Marek Polacek <polacek@redhat.com>
6698
6699 * fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if
6700 that overflows when SANITIZE_SI_OVERFLOW is on. Guard -(-A)
6701 folding with TYPE_OVERFLOW_SANITIZED.
6702
6703 2014-11-14 Marek Polacek <polacek@redhat.com>
6704
6705 PR sanitizer/63839
6706 * asan.c (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST,
6707 ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.
6708 * builtin-attrs.def (ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST):
6709 Define.
6710 * builtins.c (fold_builtin_0): Don't include ubsan.h. Don't
6711 instrument BUILT_IN_UNREACHABLE here.
6712 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Make
6713 const.
6714 * sanopt.c (pass_sanopt::execute): Instrument BUILT_IN_UNREACHABLE.
6715 * tree-ssa-ccp.c (optimize_unreachable): Bail out if
6716 SANITIZE_UNREACHABLE.
6717 * ubsan.c (ubsan_instrument_unreachable): Rewrite for GIMPLE.
6718 * ubsan.h (ubsan_instrument_unreachable): Adjust declaration.
6719
6720 2014-11-14 Alan Lawrence <alan.lawrence@arm.com>
6721
6722 * config/rs6000/vector.md (vec_shl_<mode>): Remove.
6723 (vec_shr_<mode>): Reverse shift if BYTES_BIG_ENDIAN.
6724
6725 2014-11-14 Alan Lawrence <alan.lawrence@arm.com>
6726
6727 * optabs.c (shift_amt_for_vec_perm_mask): Remove code conditional on
6728 BYTES_BIG_ENDIAN.
6729 * tree-vect-loop.c (calc_vec_perm_mask_for_shift,
6730 vect_create_epilog_for_reduction): Likewise.
6731 * doc/md.texi (vec_shr_m): Clarify direction of shifting.
6732
6733 2014-11-14 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6734
6735 PR target/63724
6736 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out
6737 numerical immediate handling to...
6738 (aarch64_internal_mov_immediate): ...this. New.
6739 (aarch64_rtx_costs): Use aarch64_internal_mov_immediate.
6740 (aarch64_mov_operand_p): Relax predicate.
6741 * config/aarch64/aarch64.md (mov<mode>:GPI): Do not expand CONST_INTs.
6742 (*movsi_aarch64): Turn into define_insn_and_split and new alternative
6743 for 'n'.
6744 (*movdi_aarch64): Likewise.
6745
6746 2014-11-14 Richard Biener <rguenther@suse.de>
6747
6748 * match.pd: Implement more binary patterns exercised by
6749 fold_stmt.
6750 * fold-const.c (sing_bit_p): Export.
6751 (exact_inverse): Likewise.
6752 (fold_binary_loc): Remove patterns here.
6753 (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
6754 * fold-const.h (sing_bit_p): Declare.
6755 (exact_inverse): Likewise.
6756
6757 2014-11-14 Marek Polacek <polacek@redhat.com>
6758
6759 * tree.c (build_common_builtin_nodes): Remove doubled ECF_LEAF.
6760
6761 2014-11-14 Richard Biener <rguenther@suse.de>
6762
6763 * genmatch.c (add_operator): Allow CONSTRUCTOR.
6764 (dt_node::gen_kids): Handle CONSTRUCTOR not as GENERIC.
6765 (parser::parse_op): Allow to iterate over predicates.
6766
6767 2014-11-14 Jakub Jelinek <jakub@redhat.com>
6768
6769 * configure.ac (--with-diagnostics-color): New configure
6770 option, default to --with-diagnostics-color=auto.
6771 * toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT
6772 to determine -fdiagnostics-color= option default.
6773 * doc/invoke.texi (-fdiagnostics-color=): Document new
6774 default.
6775 * configure: Regenerated.
6776 * config.in: Regenerated.
6777
6778 2014-11-13 Teresa Johnson <tejohnson@google.com>
6779
6780 PR tree-optimization/63841
6781 * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
6782
6783 2014-11-14 Bin Cheng <bin.cheng@arm.com>
6784
6785 * timevar.def (TV_SCHED_FUSION): New time var.
6786 * passes.def (pass_sched_fusion): New pass.
6787 * config/arm/arm.c (TARGET_SCHED_FUSION_PRIORITY): New.
6788 (extract_base_offset_in_addr, fusion_load_store): New.
6789 (arm_sched_fusion_priority): New.
6790 (arm_option_override): Disable scheduling fusion by default
6791 on non-armv7 processors or ldrd/strd isn't preferred.
6792 * sched-int.h (struct _haifa_insn_data): New field.
6793 (INSN_FUSION_PRIORITY, FUSION_MAX_PRIORITY, sched_fusion): New.
6794 * sched-rgn.c (rest_of_handle_sched_fusion): New.
6795 (pass_data_sched_fusion, pass_sched_fusion): New.
6796 (make_pass_sched_fusion): New.
6797 * haifa-sched.c (sched_fusion): New.
6798 (insn_cost): Handle sched_fusion.
6799 (priority): Handle sched_fusion by calling target hook.
6800 (enum rfs_decision): New enum value.
6801 (rfs_str): New element for RFS_FUSION.
6802 (rank_for_schedule): Support sched_fusion.
6803 (schedule_insn, max_issue, prune_ready_list): Handle sched_fusion.
6804 (schedule_block, fix_tick_ready): Handle sched_fusion.
6805 * common.opt (flag_schedule_fusion): New.
6806 * tree-pass.h (make_pass_sched_fusion): New.
6807 * target.def (fusion_priority): New.
6808 * doc/tm.texi.in (TARGET_SCHED_FUSION_PRIORITY): New.
6809 * doc/tm.texi: Regenerated.
6810 * doc/invoke.texi (-fschedule-fusion): New.
6811
6812 2014-11-13 Rong Xu <xur@google.com>
6813
6814 PR debug/63581
6815 * cfgrtl.c (emit_barrier_after_bb): Append the barrier to the
6816 footer, instead of unconditionally overwritten.
6817
6818 2014-11-14 Martin Jambor <mjambor@suse.cz>
6819
6820 * cgraph.h (clear_outer_type): Make public. Fix comment.
6821 * ipa-devirt.c (possible_polymorphic_call_targets): Use
6822 clear_outer_type when resetting the context.
6823
6824 2014-11-13 Dominique Dhumieres <dominiq@lps.ens.fr>
6825
6826 PR bootstrap/63853
6827 * gcc.c (handle_foffload_option): Replace strchrnul with strchr.
6828 * lto-wrapper.c (parse_env_var, append_offload_options): Likewise.
6829
6830 2014-11-13 Alan Lawrence <alan.lawrence@arm.com>
6831
6832 * fold-const.c (const_binop): Remove code handling VEC_RSHIFT_EXPR.
6833 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
6834 * tree-inline.c (estimate_operator_cost): Likewise.
6835 * tree-pretty-print.c (dump_generic_node, op_code_prio, op_symbol_code):
6836 Likewise.
6837
6838 * tree-vect-generic.c (expand_vector_operations_1): Remove assertion
6839 against VEC_RSHIFT_EXPR.
6840
6841 * optabs.h (expand_vec_shift_expr): Remove.
6842 * optabs.c (optab_for_tree_code): Remove case VEC_RSHIFT_EXPR.
6843 (expand_vec_shift_expr): Remove.
6844 * tree.def (VEC_RSHIFT_EXPR): Remove
6845
6846 2014-11-13 Alan Lawrence <alan.lawrence@arm.com>
6847
6848 * optabs.c (can_vec_perm_p): Update comment, does not consider vec_shr.
6849 (shift_amt_for_vec_perm_mask): New.
6850 (expand_vec_perm_1): Use vec_shr_optab if second vector is const0_rtx
6851 and mask appropriate.
6852
6853 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): New.
6854 (have_whole_vector_shift): New.
6855 (vect_model_reduction_cost): Call have_whole_vector_shift instead of
6856 looking for vec_shr_optab.
6857 (vect_create_epilog_for_reduction): Likewise; also rename local variable
6858 have_whole_vector_shift to reduce_with_shift; output VEC_PERM_EXPRs
6859 instead of VEC_RSHIFT_EXPRs.
6860
6861 * tree-vect-stmts.c (vect_gen_perm_mask_checked): Extend comment.
6862
6863 2014-11-13 Alan Lawrence <alan.lawrence@arm.com>
6864
6865 * tree-vectorizer.h (vect_gen_perm_mask): Remove.
6866 (vect_gen_perm_mask_checked, vect_gen_perm_mask_any): New.
6867
6868 * tree_vec_data_refs.c (vect_permute_load_chain,
6869 vec_permute_store_chain, vec_shift_permute_load_chain): Replace
6870 vect_gen_perm_mask & assert with vect_gen_perm_mask_checked.
6871
6872 * tree-vect-stmts.c (vectorizable_mask_load_store, vectorizable_load):
6873 Likewise.
6874 (vect_gen_perm_mask_checked): New.
6875 (vect_gen_perm_mask): Remove can_vec_perm_p check, rename to...
6876 (vect_gen_perm_mask_any): ...this.
6877 (perm_mask_for_reverse): Call can_vec_perm_p and
6878 vect_gen_perm_mask_checked.
6879
6880 2014-11-13 Felix Yang <felix.yang@huawei.com>
6881
6882 * ipa-utils.h: Fix typo in comments.
6883 * ipa-profile.c: Likewise.
6884 * tree-ssa-loop-ivcanon.c: Fix typo in comments and debugging dumps.
6885
6886 2014-11-13 Teresa Johnson <tejohnson@google.com>
6887
6888 PR tree-optimization/63841
6889 * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
6890
6891 2014-11-13 Teresa Johnson <tejohnson@google.com>
6892
6893 PR tree-optimization/63841
6894 * tree.c (initializer_zerop): A clobber does not zero initialize.
6895
6896 2014-11-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6897
6898 * optabs.c (prepare_operand): Gracefully fail if the mode of X
6899 does not match the operand mode expected by the insn pattern.
6900
6901 2014-11-13 Richard Biener <rguenther@suse.de>
6902
6903 * match.pd: Add tcc_comparison, inverted_tcc_comparison
6904 and inverted_tcc_comparison_with_nans operator lists.
6905 Use tcc_comparison in the truth_valued_p predicate definition.
6906 Restrict logical_inverted_value with bit_xor to integral types.
6907 Build a boolean true for simplifying x |^ !x because of
6908 vector types. Implement patterns from forward_propagate_comparison
6909 * tree-ssa-forwprop.c (forward_propagate_comparison): Remove.
6910 (get_prop_dest_stmt): Likewise.
6911 (pass_forwprop::execute): Do not call it.
6912 * fold-const.c (fold_unary_loc): Remove the pattern here.
6913
6914 2014-11-13 Ilya Verbin <ilya.verbin@intel.com>
6915 Andrey Turetskiy <andrey.turetskiy@intel.com>
6916
6917 * config.gcc (*-intelmic-* | *-intelmicemul-*): Add i386/t-intelmic to
6918 tmake_file.
6919 (i[34567]86-*-* | x86_64-*-*): Build mkoffload$(exeext) with the
6920 accelerator compiler.
6921 * config/i386/intelmic-mkoffload.c: New file.
6922 * config/i386/t-intelmic: Ditto.
6923
6924 2014-11-13 Bernd Schmidt <bernds@codesourcery.com>
6925 Andrey Turetskiy <andrey.turetskiy@intel.com>
6926 Ilya Verbin <ilya.verbin@intel.com>
6927
6928 * common.opt (foffload, foffload-abi): New options.
6929 * config/i386/i386.c (ix86_offload_options): New static function.
6930 (TARGET_OFFLOAD_OPTIONS): Define.
6931 * coretypes.h (enum offload_abi): New enum.
6932 * doc/tm.texi: Regenerate.
6933 * doc/tm.texi.in (TARGET_OFFLOAD_OPTIONS): Document.
6934 * gcc.c (offload_targets): New static variable.
6935 (handle_foffload_option): New static function.
6936 (driver_handle_option): Handle OPT_foffload_.
6937 (driver::maybe_putenv_OFFLOAD_TARGETS): Set OFFLOAD_TARGET_NAMES
6938 according to offload_targets.
6939 * hooks.c (hook_charptr_void_null): New hook.
6940 * hooks.h (hook_charptr_void_null): Declare.
6941 * lto-opts.c: Include lto-section-names.h.
6942 (lto_write_options): Append options from target offload_options hook and
6943 store them to offload_lto section. Do not store target-specific,
6944 driver and diagnostic options in offload_lto section.
6945 * lto-wrapper.c (merge_and_complain): Handle OPT_foffload_ and
6946 OPT_foffload_abi_.
6947 (append_compiler_options, append_linker_options)
6948 (append_offload_options): New static functions.
6949 (compile_offload_image): Add new arguments with options.
6950 Call append_compiler_options and append_offload_options.
6951 (compile_images_for_offload_targets): Add new arguments with options.
6952 (find_and_merge_options): New static function.
6953 (run_gcc): Outline options handling into the new functions:
6954 find_and_merge_options, append_compiler_options, append_linker_options.
6955 * opts.c (common_handle_option): Don't handle OPT_foffload_.
6956 Forbid OPT_foffload_abi_ for non-offload compiler.
6957 * target.def (offload_options): New target hook.
6958
6959 2014-11-13 Ilya Verbin <ilya.verbin@intel.com>
6960 Bernd Schmidt <bernds@codesourcery.com>
6961 Andrey Turetskiy <andrey.turetskiy@intel.com>
6962 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6963
6964 * gcc.c (spec_host_machine, accel_dir_suffix): New variables.
6965 (process_command): Tweak path construction for the possibility
6966 of being configured as an offload compiler.
6967 (driver::maybe_putenv_OFFLOAD_TARGETS): New function.
6968 (driver::main): Call maybe_putenv_OFFLOAD_TARGETS.
6969 (driver::set_up_specs): Tweak path construction for the possibility of
6970 being configured as an offload compiler.
6971 * lto-wrapper.c (OFFLOAD_TARGET_NAMES_ENV): Define.
6972 (offload_names, offloadbegin, offloadend): New static variables.
6973 (free_array_of_ptrs, parse_env_var, access_check, compile_offload_image)
6974 (compile_images_for_offload_targets, copy_file, find_offloadbeginend):
6975 New static functions.
6976 (run_gcc): Determine whether offload sections are present. If so, run
6977 compile_images_for_offload_targets and return the names of new generated
6978 objects to linker. If there are offload sections, but no LTO sections,
6979 then return the copies of input objects without link-time recompilation.
6980
6981 2014-11-13 Richard Biener <rguenther@suse.de>
6982
6983 * genmatch.c (dt_node::gen_kids): Fix placement of break statement.
6984
6985 2014-11-13 Ilya Verbin <ilya.verbin@intel.com>
6986 Bernd Schmidt <bernds@codesourcery.com>
6987 Andrey Turetskiy <andrey.turetskiy@intel.com>
6988 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6989
6990 * Makefile.in (GTFILES): Add omp-low.h to list of GC files.
6991 * cgraphunit.c: Include omp-low.h.
6992 * doc/tm.texi: Regenerate.
6993 * doc/tm.texi.in (TARGET_RECORD_OFFLOAD_SYMBOL): Document.
6994 * gengtype.c (open_base_files): Add omp-low.h to ifiles.
6995 * lto-cgraph.c (output_offload_tables): New function.
6996 (input_offload_tables): Likewise.
6997 * lto-section-in.c (lto_section_name): Add "offload_table".
6998 * lto-section-names.h (OFFLOAD_VAR_TABLE_SECTION_NAME): Define.
6999 (OFFLOAD_FUNC_TABLE_SECTION_NAME): Likewise.
7000 * lto-streamer-out.c (lto_output): Call output_offload_tables.
7001 * lto-streamer.h (lto_section_type): Add LTO_section_offload_table.
7002 (output_offload_tables, input_offload_tables): Declare.
7003 * omp-low.c: Include common/common-target.h and lto-section-names.h.
7004 (offload_funcs, offload_vars): New global <tree, va_gc> vectors.
7005 (expand_omp_target): Add child_fn into offload_funcs vector.
7006 (add_decls_addresses_to_decl_constructor): New function.
7007 (omp_finish_file): Likewise.
7008 * omp-low.h (omp_finish_file, offload_funcs, offload_vars): Declare.
7009 * target.def (record_offload_symbol): New DEFHOOK.
7010 * toplev.c: Include omp-low.h.
7011 (compile_file): Call omp_finish_file.
7012 * varpool.c: Include omp-low.h.
7013 (varpool_node::get_create): Add decl into offload_vars vector.
7014
7015 2014-11-13 Ilya Verbin <ilya.verbin@intel.com>
7016 Ilya Tocar <ilya.tocar@intel.com>
7017 Andrey Turetskiy <andrey.turetskiy@intel.com>
7018 Bernd Schmidt <bernds@codesourcery.com>
7019
7020 * cgraph.c: Include context.h.
7021 (cgraph_node::create): Set node->offloadable and g->have_offload if
7022 decl have "omp declare target" attribute.
7023 * cgraph.h (symtab_node): Add need_lto_streaming and offloadable flags.
7024 * cgraphunit.c: Include lto-section-names.h.
7025 (ipa_passes): Call ipa_write_summaries if there is something to write to
7026 OFFLOAD_SECTION_NAME_PREFIX sections.
7027 (symbol_table::compile): Set flag_generate_lto if there is something to
7028 offload.
7029 Replace flag_lto with flag_generate_lto before lto_streamer_hooks_init.
7030 * context.c (gcc::context::context): Initialize have_offload with false.
7031 * context.h (class context): Add have_offload flag.
7032 * ipa-inline-analysis.c (inline_generate_summary): Do not exit under
7033 flag_generate_lto.
7034 (inline_free_summary): Always remove hooks.
7035 * lto-cgraph.c (referenced_from_other_partition_p): Ignore references
7036 from non-offloadable nodes while streaming a node into offload section.
7037 (reachable_from_other_partition_p): Likewise.
7038 (select_what_to_stream): New function.
7039 (compute_ltrans_boundary): Do not call
7040 lto_set_symtab_encoder_in_partition if the node should not be streamed.
7041 * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX): Define.
7042 (section_name_prefix): Declare.
7043 * lto-streamer.c (section_name_prefix): New variable.
7044 (lto_get_section_name): Use section_name_prefix instead of
7045 LTO_SECTION_NAME_PREFIX.
7046 * lto-streamer.h (select_what_to_stream): Declare.
7047 * omp-low.c: Include context.h.
7048 (is_targetreg_ctx): New function.
7049 (scan_sharing_clauses): Use offloadable flag, instead of an attribute.
7050 (create_omp_child_function, check_omp_nesting_restrictions): Use new
7051 is_targetreg_ctx function. Replace usage of "omp declare target"
7052 attribute with a cgraph_node flag offloadable.
7053 (expand_omp_target): Set mark_force_output for offloadable functions.
7054 (lower_omp_critical): Set offloadable flag for omp critical symbol.
7055 * passes.c (ipa_write_summaries): New argument offload_lto_mode. Call
7056 select_what_to_stream. Do not call lto_set_symtab_encoder_in_partition
7057 if the node should not be streamed out.
7058 * tree-pass.h (ipa_write_summaries): New bool argument.
7059 * varpool.c: Include context.h.
7060 (varpool_node::get_create): Set node->offloadable and g->have_offload if
7061 decl have "omp declare target" attribute.
7062
7063 2014-11-13 Bernd Schmidt <bernds@codesourcery.com>
7064 Thomas Schwinge <thomas@codesourcery.com>
7065 Ilya Verbin <ilya.verbin@intel.com>
7066 Andrey Turetskiy <andrey.turetskiy@intel.com>
7067
7068 * Makefile.in (real_target_noncanonical, accel_dir_suffix)
7069 (enable_as_accelerator): New variables substituted by configure.
7070 (libsubdir, libexecsubdir, unlibsubdir): Tweak for the possibility of
7071 being configured as an offload compiler.
7072 (DRIVER_DEFINES): Pass new defines DEFAULT_REAL_TARGET_MACHINE and
7073 ACCEL_DIR_SUFFIX.
7074 (install-cpp, install-common, install_driver, install-gcc-ar): Do not
7075 install for the offload compiler.
7076 * config.in: Regenerate.
7077 * configure: Regenerate.
7078 * configure.ac (real_target_noncanonical, accel_dir_suffix)
7079 (enable_as_accelerator): Compute new variables.
7080 (ACCEL_COMPILER): Define if the compiler is built as the accel compiler.
7081 (OFFLOAD_TARGETS): List of target names suitable for offloading.
7082 (ENABLE_OFFLOADING): Define if list of offload targets is not empty.
7083 * doc/install.texi (Options specification): Document
7084 --enable-as-accelerator-for and --enable-offload-targets.
7085
7086 2014-11-13 H.J. Lu <hongjiu.lu@intel.com>
7087
7088 PR tree-optimization/63828
7089 * ipa-polymorphic-call.c (possible_placement_new): Check
7090 POINTER_SIZE, instead of BITS_PER_WORD, for pointer size.
7091
7092 2014-11-13 Eric Botcazou <ebotcazou@adacore.com>
7093
7094 * doc/tm.texi.in (SELECT_CC_MODE): Update example.
7095 (REVERSIBLE_CC_MODE): Fix example.
7096 (REVERSE_CONDITION): Fix typo.
7097 * doc/tm.texi: Regenerate.
7098
7099 2014-11-13 Tom de Vries <tom@codesourcery.com>
7100
7101 * omp-low.c (pass_data_expand_omp): Set properties_provided to
7102 PROP_gimple_eomp.
7103 (pass_expand_omp::gate): Remove function. Move gate expression to ...
7104 (pass_expand_omp::execute): ... here, as new variable gate. Add early
7105 exit if gate is false.
7106 (pass_data pass_data_expand_omp_ssa): New pass_data.
7107 (class pass_expand_omp_ssa): New pass.
7108 (make_pass_expand_omp_ssa): New function.
7109 * passes.def (pass_parallelize_loops): Use PUSH_INSERT_PASSES_WITHIN
7110 instead of NEXT_PASS.
7111 (pass_expand_omp_ssa): Add after pass_parallelize_loops.
7112 * tree-parloops.c (gen_parallel_loop): Remove call to omp_expand_local.
7113 (pass_parallelize_loops::execute): Don't do cleanups TODO_cleanup_cfg
7114 and TODO_rebuild_alias yet. Add TODO_update_ssa. Set
7115 cfun->omp_expand_needed.
7116 * tree-pass.h: Add define PROP_gimple_eomp.
7117 (make_pass_expand_omp_ssa): Declare.
7118
7119 2014-11-13 Marek Polacek <polacek@redhat.com>
7120
7121 * tree.h (TYPE_OVERFLOW_SANITIZED): Define.
7122 * fold-const.c (fold_binary_loc): Use it.
7123 * match.pd: Likewise.
7124
7125 2014-11-14 Kirill Yukhin <kirill.yukhin@intel.com>
7126
7127 * lra-lives.c (struct bb_data): Rename to ...
7128 (struct bb_data_pseudos): ... this.
7129 (initiate_live_solver): Update struct name.
7130
7131 2014-11-13 Richard Biener <rguenther@suse.de>
7132
7133 * match.pd: Implement conditional expression patterns.
7134 * tree-ssa-forwprop.c (forward_propagate_into_cond): Remove
7135 them here.
7136 (combine_cond_exprs): Remove.
7137 (pass_forwprop::execute): Do not call combine_cond_exprs.
7138 * fold-const.c (fold_ternary_loc): Remove patterns here.
7139 (pedantic_omit_one_operand_loc): Remove.
7140
7141 2014-12-13 Richard Biener <rguenther@suse.de>
7142
7143 PR middle-end/61559
7144 * match.pd: Implement bswap patterns for transforms checked by
7145 gcc.dg/builtin-bswap-8.c.
7146
7147 2014-11-13 Vladimir Makarov <vmakarov@redhat.com>
7148
7149 * lra.c (lra): Switch off rematerialization pass.
7150
7151 2014-11-12 Vladimir Makarov <vmakarov@redhat.com>
7152
7153 * common.opt (flra-remat): New.
7154 * opts.c (default_options_table): Add entry for flra_remat.
7155 * timevar_def (TV_LRA_REMAT): New.
7156 * doc/invoke.texi (-flra-remat): Add description of the new
7157 option.
7158 * doc/passes.texi (-flra-remat): Remove lra-equivs.c and
7159 lra-saves.c. Add lra-remat.c.
7160 * Makefile.in (OBJS): Add lra-remat.o.
7161 * lra-remat.c: New file.
7162 * lra.c: Add info about the rematerialization pass in the top
7163 comment.
7164 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info):
7165 Process unallocatable regs too.
7166 (lra_constraint_new_insn_uid_start): Remove.
7167 (lra): Add code for calling rematerialization sub-pass.
7168 * lra-int.h (lra_constraint_new_insn_uid_start): Remove.
7169 (lra_constrain_insn, lra_remat): New prototypes.
7170 (lra_eliminate_regs_1): Add parameter.
7171 * lra-lives.c (make_hard_regno_born, make_hard_regno_dead):
7172 Process unallocatable hard regs too.
7173 (process_bb_lives): Ditto.
7174 * lra-spills.c (remove_pseudos): Add argument to
7175 lra_eliminate_regs_1 call.
7176 * lra-eliminations.c (lra_eliminate_regs_1): Add parameter. Use it
7177 for sp offset calculation.
7178 (lra_eliminate_regs): Add argument for lra_eliminate_regs_1 call.
7179 (eliminate_regs_in_insn): Add parameter. Use it for sp offset
7180 calculation.
7181 (process_insn_for_elimination): Add argument for
7182 eliminate_regs_in_insn call.
7183 * lra-constraints.c (get_equiv_with_elimination): Add argument
7184 for lra_eliminate_regs_1 call.
7185 (process_addr_reg): Add parameter. Use it.
7186 (process_address_1): Ditto. Add argument for process_addr_reg
7187 call.
7188 (process_address): Ditto.
7189 (curr_insn_transform): Add parameter. Use it. Add argument for
7190 process_address calls.
7191 (lra_constrain_insn): New function.
7192 (lra_constraints): Add argument for curr_insn_transform call.
7193
7194 2014-11-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
7195
7196 * opts-global.c (postpone_unknown_option_warning): Fix spelling.
7197 (print_ignored_options): Fix quoting.
7198 * opts.c (common_handle_option): Likewise.
7199 (set_debug_level): Likewise.
7200 * toplev.c (process_options): Likewise.
7201
7202 2014-11-12 Jakub Jelinek <jakub@redhat.com>
7203
7204 PR ipa/63838
7205 * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
7206 chain instead of node->indirect_calls. Put !can_throw into
7207 conditions of all the loops.
7208
7209 2014-11-12 H.J. Lu <hongjiu.lu@intel.com>
7210
7211 * config/i386/i386.c (x86_output_mi_thunk): Use gen_rtx_REG to
7212 set pic_offset_table_rtx.
7213
7214 2014-11-12 Matthew Fortune <matthew.fortune@imgtec.com>
7215
7216 * common/config/mips/mips-common.c (mips_handle_option): Ensure
7217 that -mfp32, -mfp64 disable -mfpxx and -mfpxx disables -mfp64.
7218 * config.gcc (--with-fp-32): New option.
7219 (--with-odd-spreg-32): Likewise.
7220 * config.in (HAVE_AS_DOT_MODULE): New config define.
7221 * config/mips/mips-protos.h
7222 (mips_secondary_memory_needed): New prototype.
7223 (mips_hard_regno_caller_save_mode): Likewise.
7224 * config/mips/mips.c (mips_get_reg_raw_mode): New static prototype.
7225 (mips_get_arg_info): Assert that V2SFmode is only handled specially
7226 with TARGET_PAIRED_SINGLE_FLOAT.
7227 (mips_return_mode_in_fpr_p): Likewise.
7228 (mips16_call_stub_mode_suffix): Likewise.
7229 (mips_get_reg_raw_mode): New static function.
7230 (mips_return_fpr_pair): O32 return values span two registers.
7231 (mips16_build_call_stub): Likewise.
7232 (mips_function_value_regno_p): Support both FP return registers.
7233 (mips_output_64bit_xfer): Use mthc1 whenever TARGET_HAS_MXHC1. Add
7234 specific cases for TARGET_FPXX to move via memory.
7235 (mips_dwarf_register_span): For TARGET_FPXX pretend that modes larger
7236 than UNITS_PER_FPREG 'span' one register.
7237 (mips_dwarf_frame_reg_mode): New static function.
7238 (mips_file_start): Switch to using .module instead of .gnu_attribute.
7239 No longer support FP ABI 4 (-mips32r2 -mfp64), replace with FP ABI 6.
7240 Add FP ABI 5 (-mfpxx) and FP ABI 7 (-mfp64 -mno-odd-spreg).
7241 (mips_save_reg, mips_restore_reg): Always represent DFmode frame
7242 slots with two CFI directives even for O32 FP64.
7243 (mips_for_each_saved_gpr_and_fpr): Account for fixed_regs when
7244 saving/restoring callee-saved registers.
7245 (mips_hard_regno_mode_ok_p): Implement O32 FP64A extension.
7246 (mips_secondary_memory_needed): New function.
7247 (mips_option_override): ABI check for TARGET_FLOATXX. Disable
7248 odd-numbered single-precision registers when using TARGET_FLOATXX.
7249 Implement -modd-spreg and defaults.
7250 (mips_conditional_register_usage): Redefine O32 FP64 to match O32 FP32
7251 callee-saved behaviour.
7252 (mips_hard_regno_caller_save_mode): Implement.
7253 (TARGET_GET_RAW_RESULT_MODE): Define target hook.
7254 (TARGET_GET_RAW_ARG_MODE): Define target hook.
7255 (TARGET_DWARF_FRAME_REG_MODE): Define target hook.
7256 * config/mips/mips.h (TARGET_FLOAT32): New macro.
7257 (TARGET_O32_FP64A_ABI): Likewise.
7258 (TARGET_CPU_CPP_BUILTINS): TARGET_FPXX is __mips_fpr==0. Add
7259 _MIPS_SPFPSET builtin define.
7260 (MIPS_FPXX_OPTION_SPEC): New macro.
7261 (OPTION_DEFAULT_SPECS): Pass through --with-fp-32=* to -mfp and
7262 --with-odd-spreg-32=* to -m[no-]odd-spreg.
7263 (ISA_HAS_ODD_SPREG): New macro.
7264 (ISA_HAS_MXHC1): True for anything other than -mfp32.
7265 (ASM_SPEC): Pass through mfpxx, mfp64, -mno-odd-spreg and -modd-spreg.
7266 (MIN_FPRS_PER_FMT): Redefine in terms of TARGET_ODD_SPREG.
7267 (HARD_REGNO_CALLER_SAVE_MODE): Define. Implement O32 FPXX extension
7268 (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
7269 (SECONDARY_MEMORY_NEEDED): Likewise.
7270 (FUNCTION_ARG_REGNO_P): Update for O32 FPXX and FP64 extensions.
7271 * config/mips/mips.md (define_attr enabled): Implement O32 FPXX and
7272 FP64A ABI extensions.
7273 (move_doubleword_fpr<mode>): Use ISA_HAS_MXHC1 instead of
7274 TARGET_FLOAT64.
7275 * config/mips/mips.opt (mfpxx): New target option.
7276 (modd-spreg): Likewise.
7277 * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Infer FP ABI from arch.
7278 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise and remove
7279 fp64 sysroot.
7280 * config/mips/t-mti-elf: Remove fp64 multilib.
7281 * config/mips/t-mti-linux: Likewise.
7282 * configure.ac: Detect .module support.
7283 * configure: Regenerate.
7284 * doc/invoke.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg option.
7285 * doc/install.texi (--with-fp-32, --with-odd-spreg-32): Document new
7286 options.
7287
7288 2014-11-12 H.J. Lu <hongjiu.lu@intel.com>
7289
7290 PR target/63815
7291 * config/i386/i386.c (ix86_init_large_pic_reg): New. Extracted
7292 from ...
7293 (ix86_init_pic_reg): Here. Use ix86_init_large_pic_reg.
7294 (x86_output_mi_thunk): Set PIC register to %r11. Call
7295 ix86_init_large_pic_reg to initialize PIC register.
7296
7297 2014-11-12 Kai Tietz <ktietz@redhat.com>
7298
7299 * sdbout.c (sdbout_symbol): Eliminate register only
7300 if decl isn't a global variable.
7301
7302 2014-11-12 Alan Lawrence <alan.lawrence@arm.com>
7303
7304 * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices.
7305
7306 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add
7307 qualifier_lane_index.
7308 (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): Rename to...
7309 (aarch64_types_quadop_lane_qualifiers, TYPES_QUADOP_LANE): ...these.
7310 (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): New.
7311
7312 (aarch64_types_getlane_qualifiers): Rename to...
7313 (aarch64_types_binop_imm_qualifiers): ...this.
7314 (TYPES_SHIFTIMM): Follow renaming.
7315 (TYPES_GETLANE): Rename to...
7316 (TYPE_GETREG): ...this.
7317
7318 (aarch64_types_setlane_qualifiers): Rename to...
7319 (aarch64_type_ternop_imm_qualifiers): ...this.
7320 (TYPES_SHIFTINSERT, TYPES_SHIFTACC): Follow renaming.
7321 (TYPES_SETLANE): Follow renaming above, and rename self to...
7322 (TYPE_SETREG): ...this.
7323
7324 (enum builtin_simd_arg): Add SIMD_ARG_LANE_INDEX.
7325 (aarch64_simd_expand_args): Add range check and endianness-flip.
7326
7327 (aarch64_simd_expand_builtin): Add mapping for qualifier_lane_index.
7328
7329 * config/aarch64/aarch64-simd.md
7330 (aarch64_sq<r>dmulh_lane<mode>_internal *2): Rename to...
7331 (aarch64_sq<r>dmulh_lane<mode>): ...this, and remove lane bounds check.
7332 (aarch64_sqdmulh_lane<mode> *2, aarch64_sqrdmulh_lane<mode> *2): Delete.
7333
7334 (aarch64_sq<r>dmulh_laneq<mode>_internal): Rename to...
7335 (aarch64_sq<r>dmulh_lane<mode>): ...this.
7336
7337 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal *2): Rename to...
7338 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): ...this.
7339
7340 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal *2): Rename to...
7341 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): ...this.
7342
7343 (aarch64_sqdmull_lane<mode>_internal *2): Rename to...
7344 (aarch64_sqdmull_lane<mode>): ...this.
7345
7346 (aarch64_sqdmull_laneq<mode>_internal *2): Rename to...
7347 (aarch64_sqdmull_laneq<mode>): ...this.
7348
7349 (aarch64_sqdmulh_laneq<mode>, aarch64_sqrdmulh_laneq<mode>,
7350 (aarch64_sqdmlal_lane<mode>, aarch64_sqdmlal_laneq<mode>,
7351 aarch64_sqdmlsl_lane<mode>, aarch64_sqdmlsl_laneq<mode>,
7352 aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Delete.
7353
7354 (aarch64_sqdmlal2_lane<mode>, aarch64_sqdmlal2_laneq<mode>,
7355 aarch64_sqdmlsl2_lane<mode>, aarch64_sqdmlsl2_laneq<mode>,
7356 aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>): Remove
7357 bounds check and lane flip.
7358
7359 * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane,
7360 get_dregoi, get_dregci, getdregxi, get_qregoi,get_qregci, get_qregxi,
7361 set_qregoi, set_qregci, set_qregxi): Change qualifiers to GETREG.
7362
7363 (sqdmlal_lane, sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq,
7364 sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, sqdmlsl2_laneq): Follow
7365 renaming of TERNOP_LANE to QUADOP_LANE.
7366
7367 (sqdmull_lane, sqdmull_laneq, sqdmull2_lane, sqdmull2_laneq,
7368 sqdmulh_lane, sqdmulh_laneq, sqrdmulh_lane, sqrdmulh_laneq): Set
7369 qualifiers to TERNOP_LANE.
7370
7371 2014-11-12 Tobias Burnus <burnus@net-b.de>
7372
7373 * Makefile.in (CLOOGLIBS, CLOOGINC): Remove.
7374 * configure.ac: Ditto.
7375 * graphite-interchange.c: Remove HAVE_CLOOG block.
7376 * config.in: Regenerate.
7377 * configure: Regenerate.
7378
7379 2014-11-12 Jiong Wang <jiong.wang@arm.com>
7380
7381 * config/aarch64/aarch64.h (CALL_USED_REGISTERS): Mark LR as
7382 caller-save.
7383 (EPILOGUE_USES): Guard the check by epilogue_completed.
7384 * config/aarch64/aarch64.c (aarch64_layout_frame): Explictly check for
7385 LR.
7386 (aarch64_can_eliminate): Check LR_REGNUM liveness.
7387
7388 2014-11-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7389
7390 * config/arm/arm.c (*<arith_shift_insn>_shiftsi): Fix typo.
7391
7392 2014-11-12 Marek Polacek <polacek@redhat.com>
7393
7394 * fold-const.c (fold_binary_loc): Don't fold if the result
7395 is undefined.
7396 * match.pd (A + (-B) -> A - B, A - (-B) -> A + B,
7397 -(-A) -> A): Likewise.
7398
7399 2014-11-12 Richard Biener <rguenther@suse.de>
7400
7401 Merge from match-and-simplify branch
7402 2014-11-04 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
7403
7404 * genmatch.c (user_id): Add new member is_oper_list.
7405 (user_id::user_id): Add new default argument.
7406 (parser::parse_operator_list): New function.
7407 (parser::parse_for): Allow operator-list.
7408 (parser::parse_pattern): Call parser::parse_operator_list.
7409 (parser::parse_operation): Reject operator-list.
7410 * match-builtin.pd: Define operator lists POWs, CBRTs and SQRTs.
7411
7412 2014-10-31 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
7413
7414 * genmatch.c (parser::parse_c_expr): Mark user-defined ops as used.
7415
7416 2014-10-30 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
7417
7418 * genmatch.c (parser::parse_op): Check if predicate is used in
7419 result operand.
7420
7421 2014-10-29 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
7422
7423 * genmatch.c (parser::parse_for): Make sure to have a valid
7424 token to report errors at.
7425
7426 2014-10-28 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
7427
7428 * genmatch.c (parser): Add new member parsing_match_operand.
7429 (parser::parse_operation): Check for conditional convert in result
7430 operand.
7431 (parser::parse_expr): Check for commutative operator in result operand.
7432 Check for :type in match operand.
7433 (parser::parse_simplify): Set/unset parsing_match_operand.
7434 (parser::parser): Initialize parsing_match_operand.
7435
7436 2014-10-28 Richard Biener <rguenther@suse.de>
7437
7438 * genmatch.c (parser::parse_for): Properly check for already
7439 defined operators.
7440
7441 2014-10-28 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
7442
7443 * genmatch.c (error_cb): Adjust for printing warnings.
7444 (warning_at): New function.
7445 (user_id): Add new member used.
7446 (get_operator): Mark user_id as used.
7447 (parse_for): Warn for unused operators.
7448
7449 2014-11-12 Richard Biener <rguenther@suse.de>
7450
7451 * match.pd: Implement simple complex operations cancelling.
7452 * fold-const.c (fold_unary_loc): Remove them here.
7453
7454 2014-11-12 Joseph Myers <joseph@codesourcery.com>
7455
7456 * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
7457 Define __NO_MATH_ERRNO__ if -fno-math-errno.
7458 * doc/cpp.texi (__NO_MATH_ERRNO__): Document predefined macro.
7459
7460 2014-11-12 Richard Biener <rguenther@suse.de>
7461
7462 * genmatch.c (::gen_transform): Add capture_info and
7463 expand_compares arguments.
7464 (struct expr): Add is_generic flag.
7465 (lower_cond): New functions lowering [VEC_]COND_EXPR
7466 conditions to a GENERIC and a GIMPLE variant.
7467 (lower): Call lower_cond.
7468 (cmp_operand): Also compare the is_generic flag.
7469 (capture_info::cinfo): Add cond_expr_cond_p flag.
7470 (capture_info::capture_info): Pass down whether the
7471 expression argument is a COND_EXPR condition.
7472 (capture_info::walk_match): Likewise, mark captures
7473 capturing COND_EXPR conditions with cond_expr_cond_p.
7474 (expr::gen_transform): Pass down whether we need to
7475 expand compares from COND_EXPR conditions.
7476 (capture::gen_transform): Expand compares substituted
7477 from COND_EXPR conditions into non-COND_EXPR conditions.
7478 (dt_operand::gen_gimple_expr): Handle explicitely marked
7479 GENERIC expressions as generic.
7480 (dt_simplify::gen): Pass whether we need to expand
7481 conditions to gen_transform. Handle capture results
7482 which are from COND_EXPR conditions.
7483 (main): Pass gimple flag down to lower.
7484
7485 2014-11-12 Jakub Jelinek <jakub@redhat.com>
7486
7487 PR c/59708
7488 * builtin-attrs.def (ATTR_NOTHROW_TYPEGENERIC_LEAF): New attribute.
7489 * builtins.c (fold_builtin_arith_overflow): New function.
7490 (fold_builtin_3): Use it.
7491 * builtins.def (BUILT_IN_ADD_OVERFLOW, BUILT_IN_SUB_OVERFLOW,
7492 BUILT_IN_MUL_OVERFLOW, BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW,
7493 BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW,
7494 BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW,
7495 BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW,
7496 BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADDL_OVERFLOW,
7497 BUILT_IN_UADDLL_OVERFLOW, BUILT_IN_USUB_OVERFLOW,
7498 BUILT_IN_USUBL_OVERFLOW, BUILT_IN_USUBLL_OVERFLOW,
7499 BUILT_IN_UMUL_OVERFLOW, BUILT_IN_UMULL_OVERFLOW,
7500 BUILT_IN_UMULLL_OVERFLOW): New built-in functions.
7501 * builtin-types.def (BT_PTR_UINT, BT_PTR_ULONG, BT_PTR_LONGLONG,
7502 BT_FN_BOOL_INT_INT_INTPTR, BT_FN_BOOL_LONG_LONG_LONGPTR,
7503 BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_FN_BOOL_UINT_UINT_UINTPTR,
7504 BT_FN_BOOL_ULONG_ULONG_ULONGPTR,
7505 BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_FN_BOOL_VAR): New.
7506 * expr.c (write_complex_part): Remove prototype, no longer static.
7507 * expr.h (write_complex_part): New prototype.
7508 * function.c (aggregate_value_p): For internal functions return 0.
7509 * gimple-fold.c (arith_overflowed_p): New functions.
7510 (gimple_fold_call): Fold {ADD,SUB,MUL}_OVERFLOW internal calls.
7511 * gimple-fold.h (arith_overflowed_p): New prototype.
7512 * tree-ssa-dce.c: Include tree-ssa-propagate.h and gimple-fold.h.
7513 (find_non_realpart_uses, maybe_optimize_arith_overflow): New
7514 functions.
7515 (eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW
7516 into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is
7517 never used.
7518 * gimplify.c (gimplify_call_expr): Handle gimplification of
7519 internal calls with lhs.
7520 * internal-fn.c (get_range_pos_neg, get_min_precision,
7521 expand_arith_overflow_result_store): New functions.
7522 (ubsan_expand_si_overflow_addsub_check): Renamed to ...
7523 (expand_addsub_overflow): ... this. Add LOC, LHS, ARG0, ARG1,
7524 UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
7525 Handle ADD_OVERFLOW and SUB_OVERFLOW expansion.
7526 (ubsan_expand_si_overflow_neg_check): Renamed to ...
7527 (expand_neg_overflow): ... this. Add LOC, LHS, ARG1, IS_UBSAN
7528 arguments, remove STMT argument. Handle SUB_OVERFLOW with
7529 0 as first argument expansion.
7530 (ubsan_expand_si_overflow_mul_check): Renamed to ...
7531 (expand_mul_overflow): ... this. Add LOC, LHS, ARG0, ARG1,
7532 UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
7533 Handle MUL_OVERFLOW expansion.
7534 (expand_UBSAN_CHECK_ADD): Use expand_addsub_overflow, prepare
7535 arguments for it.
7536 (expand_UBSAN_CHECK_SUB): Use expand_addsub_overflow or
7537 expand_neg_overflow, prepare arguments for it.
7538 (expand_UBSAN_CHECK_MUL): Use expand_mul_overflow, prepare arguments
7539 for it.
7540 (expand_arith_overflow, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW,
7541 expand_MUL_OVERFLOW): New functions.
7542 * internal-fn.def (ADD_OVERFLOW, SUB_OVERFLOW, MUL_OVERFLOW): New
7543 internal functions.
7544 * tree-vrp.c (check_for_binary_op_overflow): New function.
7545 (extract_range_basic): Handle {REAL,IMAG}PART_EXPR if the operand
7546 is SSA_NAME set by {ADD,SUB,MUL}_OVERFLOW internal functions.
7547 (simplify_internal_call_using_ranges): Handle {ADD,SUB,MUL}_OVERFLOW
7548 internal functions.
7549 * optabs.def (umulv4_optab): New optab.
7550 * config/i386/i386.md (umulv<mode>4, <u>mulvqi4): New define_expands.
7551 (*umulv<mode>4, *<u>mulvqi4): New define_insns.
7552 * doc/extend.texi (Integer Overflow Builtins): Document
7553 __builtin_*_overflow.
7554
7555 2014-11-12 Richard Biener <rguenther@suse.de>
7556
7557 * genmatch.c (capture_info::capture_info): Add missing
7558 COND_EXPR handling.
7559 (capture_info::walk_match): Fix COND_EXPR handling.
7560 (capture_info::walk_result): Likewise.
7561
7562 2014-11-12 Richard Biener <rguenther@suse.de>
7563
7564 PR middle-end/63821
7565 * match.pd: Add missing conversion to the -(T)-X pattern.
7566
7567 2014-11-12 Richard Biener <rguenther@suse.de>
7568
7569 PR bootstrap/63819
7570 * hash-table.h: Include ggc.h also for generator programs.
7571 * genmatch.c (ggc_internal_cleared_alloc): Properly define
7572 using MEM_STAT_DECL instead of CXX_MEM_STAT_INFO.
7573
7574 2014-11-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
7575
7576 PR tree-optimization/63761
7577 * tree-ssa-math-opts.c (bswap_replace): Construct gsi from cur_stmt
7578 rather than taking it as a parameter. Add some comments to explain the
7579 gsi_move_before in case of load and why canonicalization of bswap into
7580 a rotation is only done for 16bit values.
7581 (pass_optimize_bswap::execute): Adapt for loop via gsi to make gsi
7582 refer to the statement just before cur_stmt. Ignore 16bit bswap that
7583 are already in canonical form. Adapt bswap_replace to removal of its
7584 gsi parameter.
7585
7586 2014-11-12 Richard Sandiford <richard.sandiford@arm.com>
7587
7588 * rtl.h (rtx_function, for_each_rtx, for_each_rtx_in_insn): Delete.
7589 * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1, for_each_rtx):
7590 (for_each_rtx_in_insn): Delete.
7591 (init_rtlanal): Remove initialization of non_rtx_starting_operands.
7592 * df-core.c: Remove reference to for_each_rtx in comment.
7593
7594 2014-11-12 Tejas Belagod <tejas.belagod@arm.com>
7595
7596 * Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi,
7597 arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi.
7598 * doc/aarch64-acle-intrinsics.texi: Remove.
7599 * doc/arm-acle-intrinsics.texi: Remove.
7600 * doc/arm-neon-intrinsics.texi: Remove.
7601 * doc/extend.texi: Consolidate sections AArch64 intrinsics,
7602 ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language
7603 Extension section. Add references to public ACLE specification.
7604
7605 2014-11-11 Patrick Palka <ppalka@gcc.gnu.org>
7606
7607 * tree-vrp.c (register_edge_assert_for_2): Change return type to
7608 void and adjust accordingly.
7609 (register_edge_assert_for_1): Likewise.
7610 (register_edge_assert_for): Likewise.
7611 (find_conditional_asserts): Likewise.
7612 (find_switch_asserts): Likewise.
7613 (find_assert_locations_1): Likewise.
7614 (find_assert_locations): Likewise.
7615 (insert_range_insertions): Inspect the need_assert_for bitmap.
7616
7617 2014-11-11 Andrew Pinski <apinski@cavium.com>
7618
7619 Bug target/61997
7620 * config.gcc (aarch64*-*-*): Set target_gtfiles to include
7621 aarch64-builtins.c.
7622 * config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h
7623 at the end of the file.
7624
7625 2014-11-11 Anthony Brandon <anthony.brandon@gmail.com>
7626 Manuel López-Ibáñez <manu@gcc.gnu.org>
7627
7628 PR driver/36312
7629 * diagnostic-core.h: Add prototype for fatal_error.
7630 * diagnostic.c (fatal_error): New function fatal_error.
7631 * gcc.c (store_arg): Remove have_o_argbuf_index.
7632 (process_command): Check if input and output files are the same.
7633 * toplev.c (init_asm_output): Check if input and output files are
7634 the same.
7635
7636 2014-11-11 Eric Botcazou <ebotcazou@adacore.com>
7637
7638 * reorg.c (fill_slots_from_thread): Do not copy frame-related insns.
7639
7640 2014-11-11 Eric Botcazou <ebotcazou@adacore.com>
7641
7642 PR target/61535
7643 * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
7644 smaller than 8 bytes.
7645 (sparc_function_arg_1): Tweak.
7646 (sparc_function_value_1): Tweak.
7647
7648 2014-11-11 David Malcolm <dmalcolm@redhat.com>
7649
7650 * ChangeLog.jit: New.
7651 * Makefile.in (doc_build_sys): New variable, set to "sphinx" if
7652 sphinx is installed, falling back to "texinfo" otherwise.
7653 (FULL_DRIVER_NAME): New variable, adapted from the
7654 install-driver target. New target, a symlink within the builddir,
7655 linked to "xgcc", for use when running the JIT library from the
7656 builddir.
7657 (MOSTLYCLEANFILES): Add FULL_DRIVER_NAME.
7658 (install-driver): Use $(FULL_DRIVER_NAME) rather than spelling it
7659 out.
7660 * configure.ac (doc_build_sys): New variable, set to "sphinx" if
7661 sphinx is installed, falling back to "texinfo" otherwise.
7662 (GCC_DRIVER_NAME): Generate a gcc-driver-name.h file containing
7663 GCC_DRIVER_NAME for the benefit of jit/internal-api.c.
7664 * configure: Regenerate.
7665 * doc/install.texi (--enable-host-shared): Specify that this is
7666 required when building libgccjit.
7667 (Tools/packages necessary for modifying GCC): Add Sphinx.
7668 * timevar.def (TV_JIT_REPLAY): New.
7669 (TV_ASSEMBLE): New.
7670 (TV_LINK): New.
7671 (TV_LOAD): New.
7672
7673 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7674
7675 PR target/63610
7676 * configure: Regenerate.
7677
7678 2014-11-11 James Greenhalgh <james.greenhalgh@arm.com>
7679
7680 * config/aarch64/aarch64-simd.md
7681 (aarch64_simd_bsl<mode>_internal): Remove float cases, canonicalize.
7682 (aarch64_simd_bsl<mode>): Add gen_lowpart expressions where we
7683 are punning between float vectors and integer vectors.
7684
7685 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
7686
7687 * config/alpha/alpha.c (alpha_emit_conditional_branch): Replace
7688 open-coded swap with std::swap to swap values.
7689 (alpha_emit_setcc): Ditto.
7690 (alpha_emit_conditional_move): Ditto.
7691 (alpha_split_tmode_pair): Ditto.
7692
7693 2014-11-11 Evgeny Stupachenko <evstupac@gmail.com>
7694
7695 * tree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift
7696 permutations on power of 2 cases.
7697
7698 2014-11-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7699
7700 * config/aarch64/aarch64.h (MACHMODE): Remove 'enum' keyword.
7701 (CUMULATIVE_ARGS): Guard on !defined(USED_FOR_TARGET).
7702
7703 2014-11-11 Richard Biener <rguenther@suse.de>
7704
7705 * tree-core.h (pedantic_lvalues): Remove.
7706 * fold-const.c (pedantic_lvalues): Likewise.
7707 (pedantic_non_lvalue_loc): Remove conditional non_lvalue_loc call.
7708
7709 2014-11-11 Martin Liska <mliska@suse.cz>
7710
7711 PR ipa/63622
7712 PR ipa/63795
7713 * ipa-icf.c (sem_function::merge): Add new target symbol alias
7714 support guard.
7715 (sem_variable::merge): Likewise.
7716 * ipa-icf.h (target_supports_symbol_aliases_p): New function.
7717
7718 2014-11-11 Richard Biener <rguenther@suse.de>
7719
7720 * match.pd: Implement patterns from associate_plusminus
7721 and factor in differences from the fold-const.c implementation.
7722 * fold-const.c (fold_binary_loc): Remove patterns here.
7723 * tree-ssa-forwprop.c (associate_plusminus): Remove.
7724 (pass_forwprop::execute): Don't call it.
7725 * tree.c (tree_nop_conversion_p): New function, factored
7726 from tree_nop_conversion.
7727 * tree.h (tree_nop_conversion_p): Declare.
7728
7729 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
7730
7731 * system.h: Include algorithm and utility.
7732 * rtl.h: Do not include utility here.
7733 * wide-int.h: Ditto.
7734 * tree-vect-data-refs.c (swap): Remove template.
7735 (vect_prune_runtime_alias_test_list): Use std::swap instead of swap.
7736
7737 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7738
7739 PR bootstrap/63699
7740 PR bootstrap/63750
7741 * system.h: Include <string> before "safe-ctype.h"
7742 * wide-int.h (wi::smin, wi::smax, wi::umin, wi::umax): Prefix
7743 calls to min/max with wi namespace.
7744 * ipa-chkp.c: Don't include <string>.
7745
7746 2014-11-11 Terry Guo <terry.guo@arm.com>
7747
7748 * doc/invoke.texi (-masm-syntax-unified): Reword and fix typo.
7749 * config/arm/thumb1.md (*thumb_mulsi3): Use movs to move low
7750 registers.
7751 (*thumb1_movhf): Likewise.
7752
7753 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
7754
7755 * sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t)
7756 instead of INT64_MAX.
7757
7758 2014-11-11 Tobias Burnus <burnus@net-b.de>
7759
7760 * doc/install.texi (Prerequisites): Remove CLooG.
7761
7762 2014-11-10 Trevor Saunders <tsaunders@mozilla.com>
7763
7764 * ipa-inline.c (edge_badness): Adjust.
7765 (inline_small_functions): Likewise.
7766 * predict.c (propagate_freq): Likewise.
7767 (estimate_bb_frequencies): Likewise.
7768 * sreal.c (sreal::dump): Rename from dump_sreal.
7769 (debug): Adjust.
7770 (copy): Remove function.
7771 (sreal::shift_right): Rename from sreal_sift_right.
7772 (sreal::normalize): Rename from normalize.
7773 (sreal_init): Remove function.
7774 (sreal::to_int): Rename from sreal_to_int.
7775 (sreal_compare): Remove function.
7776 (sreal::operator+): Rename from sreal_add.
7777 (sreal::operator-): Rename from sreal_sub.
7778 (sreal::operator*): Rename from sreal_mul.
7779 (sreal::operator/): Rename from sreal_div.
7780 * sreal.h (class sreal): Adjust.
7781 (inline sreal &operator+=): New operator.
7782 (inline sreal &operator-=): Likewise.
7783 (inline sreal &operator/=): Likewise.
7784 (inline sreal &operator*=): Likewise.
7785 (inline bool operator!=): Likewise.
7786 (inline bool operator>): Likewise.
7787 (inline bool operator<=): Likewise.
7788 (inline bool operator>=): Likewise.
7789
7790 2014-11-11 Bin Cheng <bin.cheng@arm.com>
7791
7792 * sched-deps.c (sched_analyze_1): Check pending list if it is not
7793 less than MAX_PENDING_LIST_LENGTH.
7794 (sched_analyze_2, sched_analyze_insn, deps_analyze_insn): Ditto.
7795
7796 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
7797
7798 * config/i386/i386.c (ix86_decompose_address): Replace open-coded
7799 swap with std::swap to swap values.
7800 (ix86_fixup_binary_operands): Ditto.
7801 (ix86_binary_operator_ok): Ditto.
7802 (ix86_prepare_fp_compare_args): Ditto.
7803 (ix86_expand_branch): Ditto.
7804 (ix86_expand_carry_flag_compare): Ditto.
7805 (ix86_expand_int_movcc): Ditto.
7806 (ix86_prepare_sse_fp_compare_args): Ditto.
7807 (ix86_expand_sse_fp_minmax): Ditto.
7808 (ix86_expand_int_vcond): Ditto.
7809 (ix86_split_long_move): Ditto.
7810 (ix86_expand_sse_comi): Ditto.
7811 (ix86_expand_sse_compare_and_jump): Ditto.
7812 (ix86_expand_sse_compare_mask): Ditto.
7813 * config/i386/i386.md (*add<mode>_1): Ditto.
7814 (addsi_1_zext): Ditto.
7815 (*addhi_1): Ditto.
7816 (*addqi_1): Ditto.
7817 (*add<mode>_2): Ditto.
7818 (*addsi_2_zext): Ditto.
7819 (*add<mode>_3): Ditto.
7820 (*addsi_3_zext): Ditto.
7821 (*add<mode>_5): Ditto.
7822 (absneg splitter): Ditto.
7823
7824 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
7825
7826 Revert:
7827 2014-10-31 Uros Bizjak <ubizjak@gmail.com>
7828
7829 PR target/63620
7830 * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
7831 * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
7832 * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
7833 be reloaded through memory.
7834 (*pushxf): Ditto.
7835 (*pushdf): Ditto.
7836
7837 2014-11-11 Jakub Jelinek <jakub@redhat.com>
7838 Martin Liska <mliska@suse.cz>
7839
7840 * ipa-icf-gimple.c (func_checker::compare_bb): Fix comment typo.
7841 (func_checker::compare_gimple_call): Compare gimple_call_fn,
7842 gimple_call_chain, gimple_call_fntype and call flags.
7843
7844 2014-11-10 Vladimir Makarov <vmakarov@redhat.com>
7845
7846 PR rtl-optimization/63620
7847 PR rtl-optimization/63799
7848 * lra-lives.c (process_bb_lives): Do not delete EH_REGION, trapped
7849 and setting PIC pseudo insns.
7850 (lra_create_live_ranges): Fix the typo.
7851
7852 2014-11-10 Patrick Palka <ppalka@gcc.gnu.org>
7853
7854 PR middle-end/63748
7855 * tree-ssa-propagate.c (may_propagate_copy): Allow propagating
7856 SSA copies whose source and destination names both occur in
7857 abnormal PHIs.
7858
7859 2014-11-10 Roman Gareev <gareevroman@gmail.com>
7860
7861 * Makefile.in: Remove the compilation of graphite-clast-to-gimple.o.
7862 * common.opt: Remove using of fgraphite-code-generator flag.
7863 * flag-types.h: Likewise.
7864 * graphite.c: Remove using of CLooG.
7865 * graphite-blocking.c: Likewise.
7866 * graphite-dependences.c: Likewise.
7867 * graphite-poly.c: Likewise.
7868 * graphite-poly.h: Likewise.
7869 * graphite-scop-detection.c: Likewise.
7870 * graphite-sese-to-poly.c: Likewise.
7871 * graphite-clast-to-gimple.c: Removed.
7872 * graphite-clast-to-gimple.h: Likewise.
7873 * graphite-htab.h: Likewise.
7874
7875 2014-11-10 Paolo Carlini <paolo.carlini@oracle.com>
7876
7877 * doc/invoke.texi ([-Wshift-count-negative, -Wshift-count-overflow]):
7878 Add.
7879
7880 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
7881
7882 * config/frv/frv.c (frv_io_handle_use_1): Delete.
7883 (frv_io_handle_use): Use find_all_hard_regs.
7884
7885 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
7886
7887 * config/frv/frv.c (frv_registers_conflict_p_1): Take an rtx rather
7888 than an rtx *. Take the regstate_t directly rather than via a void *.
7889 Return a bool rather than an int. Iterate over all subrtxes here.
7890 (frv_registers_conflict_p): Update accordingly.
7891
7892 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
7893
7894 * config/frv/frv.c: Include rtl-iter.h.
7895 (frv_acc_group_1): Delete.
7896 (frv_acc_group): Use FOR_EACH_SUBRTX.
7897
7898 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
7899
7900 * config/frv/frv.c: Move include of rtl.h after hard-reg-set.h.
7901 (frv_clear_registers_used): Delete.
7902 (frv_ifcvt_modify_tests): Use find_all_hard_regs.
7903
7904 2014-11-10 Jan Hubicka <hubicka@ucw.cz>
7905
7906 PR bootstrap/63573
7907 * calls.c (initialize_argument_information): When emitting thunk call
7908 use original memory placement of the argument.
7909
7910 2014-11-10 Renlin Li <renlin.li@arm.com>
7911
7912 PR middle-end/61529
7913 * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.
7914
7915 2014-11-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
7916
7917 * expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to
7918 bswaphi if available.
7919
7920 2014-11-10 Bernd Schmidt <bernds@codesourcery.com>
7921
7922 * config/nvptx/nvptx.c: New file.
7923 * config/nvptx/nvptx.h: New file.
7924 * config/nvptx/nvptx-protos.h: New file.
7925 * config/nvptx/nvptx.md: New file.
7926 * config/nvptx/t-nvptx: New file.
7927 * config/nvptx/nvptx.opt: New file.
7928 * common/config/nvptx/nvptx-common.c: New file.
7929 * config.gcc: Handle nvptx-*-*.
7930
7931 2014-11-10 Richard Biener <rguenther@suse.de>
7932
7933 * tree-ssa-operands.c (finalize_ssa_uses): Properly put
7934 released operands on the free list.
7935
7936 2014-11-10 Richard Biener <rguenther@suse.de>
7937
7938 * match.pd: Implement pattern from simplify_mult.
7939 * tree-ssa-forwprop.c (simplify_mult): Remove.
7940 (pass_forwprop::execute): Do not call simplify_mult.
7941
7942 2014-11-10 Richard Biener <rguenther@suse.de>
7943
7944 PR tree-optimization/63800
7945 * tree-ssa-pre.c (eliminate_push_avail): Push in a way so
7946 we can restore the previous availability in after_dom_children.
7947 (eliminate_dom_walker::after_dom_children): Restore
7948 previous availability.
7949
7950 2014-11-10 Richard Biener <rguenther@suse.de>
7951
7952 PR middle-end/63798
7953 * expr.c (expand_expr_real_2): When expanding FMA_EXPRs
7954 properly treat the embedded multiplication as commutative
7955 when looking for feeding negates.
7956
7957 2014-11-10 Joern Rennecke <joern.rennecke@embecosm.com>
7958
7959 * config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define.
7960
7961 2014-11-10 Martin Liska <mliska@suse.cz>
7962
7963 * gcc.dg/tree-ssa/ldist-19.c: ICF is disabled
7964 for the test because of default char signedness
7965 on powerpc64 target.
7966
7967 2014-11-10 Richard Biener <rguenther@suse.de>
7968
7969 * match.pd: Implement pattern from simplify_conversion_from_bitmask.
7970 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): Remove.
7971 (pass_forwprop::execute): Do not call simplify_conversion_from_bitmask.
7972
7973 2014-11-10 Richard Biener <rguenther@suse.de>
7974
7975 * match.pd: Move rest of the conversion combining patterns
7976 from tree-ssa-forwprop.c.
7977 * tree-ssa-forwprop.c (combine_conversions): Remove.
7978 (pass_forwprop::execute): Do not call it.
7979
7980 2014-11-10 Eric Botcazou <ebotcazou@adacore.com>
7981
7982 * gimple-low.c (lower_function_body): Clear the location of the first
7983 inserted representative return if it also fills in for the fallthru.
7984
7985 2014-11-10 Yuri Rumyantsev <ysrumyan@gmail.com>
7986
7987 * tree-if-conv.c (add_to_predicate_list): Check unconditionally
7988 that bb is always executed to early exit. Use predicate of
7989 cd-equivalent block for join blocks if it exists.
7990 (if_convertible_loop_p_1): Recompute POST_DOMINATOR tree.
7991 (tree_if_conversion): Free post-dominance information.
7992
7993 2014-11-09 Jason Merrill <jason@redhat.com>
7994
7995 * config/i386/avx512vldqintrin.h (_mm256_broadcast_f32x2): __mmask8.
7996 * config/i386/avx512vlintrin.h (_mm256_mask_cvtepi32_storeu_epi16)
7997 (_mm_mask_cvtusepi32_storeu_epi16)
7998 (_mm_mask_cvtsepi64_storeu_epi32): Return void.
7999
8000 2014-11-09 Joern Rennecke <joern.rennecke@embecosm.com>
8001
8002 * config/avr/predicates.md (low_io_address_operand): Fix typo.
8003
8004 2014-11-09 Vladimir Makarov <vmakarov@redhat.com>
8005
8006 PR rtl-optimization/63620
8007 * lra-constraints.c (substitute_pseudo): Add prefix lra_ to the
8008 name. Move to lra.c. Make it external.
8009 (substitute_pseudo_within_insn): Ditto.
8010 (inherit_reload_reg, split_reg, remove_inheritance_pseudos): Use
8011 the new names.
8012 (undo_optional_reloads): Ditto.
8013 * lra-int.h (lra_dump_bitmap_with_title, lra_substitute_pseudo):
8014 New prototypes.
8015 (lra_substitute_pseudo_within_insn): Ditto.
8016 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): New.
8017 (mark_regno_live): Add parameter. Update bb_gen_pseudos.
8018 (mark_regno_dead): Add parameter. Update bb_gen_pseudos and
8019 bb_killed_pseudos.
8020 (struct bb_data, bb_data_t, bb_data): New.
8021 (get_bb_data, get_bb_data_by_index): Ditto.
8022 (all_hard_regs_bitmap): New.
8023 (live_trans_fun, live_con_fun_0, live_con_fun_n, all_blocks): New.
8024 (initiate_live_solver, finish_live_solver): New.
8025 (process_bb_lives): Change return type. Add code updating local
8026 live data and removing dead insns. Pass new argument to
8027 mark_regno_live and mark_regno_dead. Check changing bb pseudo
8028 life info. Return the result.
8029 (lra_create_live_ranges): Add code to do global pseudo live
8030 analysis.
8031 (lra_live_ranges_init): Call initiate_live_solver.
8032 (lra_live_ranges_finish): Call finish_live_solver.
8033 * lra.c (lra_dump_bitmap_with_title): New.
8034 (lra_substitute_pseudo, lra_substitute_pseudo_within_insn): Move
8035 from lra-constraints.c.
8036
8037 2014-11-09 Richard Biener <rguenther@suse.de>
8038
8039 * match.pd: Add patterns convering two conversions in a row
8040 from fold-const.c.
8041 * fold-const.c (fold_unary_loc): Remove them here.
8042 * tree-ssa-forwprop.c (combine_conversions): Likewise.
8043 * genmatch.c (dt_node::gen_kids): Check whether we may
8044 follow SSA use-def chains.
8045
8046 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
8047
8048 * config/aarch64/aarch64.c: Include rtl-iter.h.
8049 (aarch64_tls_operand_p_1): Delete.
8050 (aarch64_tls_operand_p): Use FOR_EACH_SUBRTX.
8051
8052 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
8053
8054 * config/arm/arm.c (arm_note_pic_base): Delete.
8055 (arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX.
8056
8057 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
8058
8059 * config/arm/arm.c: Include rtl-iter.h.
8060 (arm_tls_referenced_p_1): Delete.
8061 (arm_tls_referenced_p): Use FOR_EACH_SUBRTX.
8062
8063 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
8064
8065 * config/arm/aarch-common.c: Include rtl-iter.h.
8066 (search_term, arm_find_sub_rtx_with_search_term): Delete.
8067 (arm_find_sub_rtx_with_code): Use FOR_EACH_SUBRTX_VAR.
8068 (arm_get_set_operands): Pass the insn pattern rather than the
8069 insn itself.
8070 (arm_no_early_store_addr_dep): Likewise.
8071
8072 2014-11-08 Eric Botcazou <ebotcazou@adacore.com>
8073
8074 * config/arm/arm.c (arm_set_return_address): Mark the store as frame
8075 related, if any.
8076 (thumb_set_return_address): Likewise.
8077
8078 2014-11-07 Jeff Law <law@redhat.com>
8079
8080 PR tree-optimization/61515
8081 * tree-ssa-threadedge.c (invalidate_equivalences): Walk the unwinding
8082 stack rather than looking at every SSA_NAME's value.
8083
8084 2014-11-07 Richard Biener <rguenther@suse.de>
8085
8086 PR tree-optimization/63605
8087 * fold-const.c (fold_binary_loc): Properly use element_precision
8088 for types that may not be scalar.
8089
8090 2014-11-07 Evgeny Stupachenko <evstupac@gmail.com>
8091
8092 PR target/63534
8093 * config/i386/i386.md (builtin_setjmp_receiver): Use
8094 pic_offset_table_rtx for PIC register.
8095 (nonlocal_goto_receiver): Delete.
8096
8097 2014-11-07 Daniel Hellstrom <daniel@gaisler.com>
8098
8099 * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
8100 * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
8101
8102 2014-11-07 Martin Liska <mliska@suse.cz>
8103
8104 PR ipa/63580
8105 * cgraphunit.c (cgraph_node::create_wrapper):
8106 TREE_ADDRESSABLE is set to false for a newly created thunk.
8107
8108 2014-11-07 Martin Liska <mliska@suse.cz>
8109
8110 PR ipa/63747
8111 * ipa-icf-gimple.c (func_checker::compare_gimple_switch):
8112 Missing checking for CASE_LOW and CASE_HIGH added.
8113
8114 2014-11-07 Martin Liska <mliska@suse.cz>
8115
8116 PR ipa/63595
8117 * cgraphunit.c (cgraph_node::expand_thunk): DECL_BY_REFERENCE
8118 is correctly handled for thunks created by IPA ICF.
8119
8120 2014-11-07 Jiong Wang <jiong.wang@arm.com>
8121 2014-11-07 Richard Biener <rguenther@suse.de>
8122
8123 PR tree-optimization/63676
8124 * gimple-fold.c (fold_gimple_assign): Do not fold node when
8125 TREE_CLOBBER_P be true.
8126
8127 2014-11-07 Richard Biener <rguenther@suse.de>
8128
8129 PR middle-end/63770
8130 * match.pd: Guard conflicting GENERIC pattern properly.
8131
8132 2014-11-07 Richard Biener <rguenther@suse.de>
8133
8134 * match.pd: Add patterns for POINTER_PLUS_EXPR association
8135 and special patterns from tree-ssa-forwprop.c
8136 * fold-const.c (fold_binary_loc): Remove them here.
8137 * tree-ssa-forwprop.c (to_purge): New global bitmap.
8138 (fwprop_set_lattice_val): New function.
8139 (fwprop_invalidate_lattice): Likewise.
8140 (remove_prop_source_from_use): Instead of purging dead EH
8141 edges record blocks to do that in to_purge.
8142 (tidy_after_forward_propagate_addr): Likewise.
8143 (forward_propagate_addr_expr): Invalidate the lattice for
8144 SSA names we release.
8145 (simplify_conversion_from_bitmask): Likewise.
8146 (simplify_builtin_call): Likewise.
8147 (associate_pointerplus_align): Remove.
8148 (associate_pointerplus_diff): Likewise.
8149 (associate_pointerplus): Likewise.
8150 (fold_all_stmts): Merge with ...
8151 (pass_forwprop::execute): ... the original loop over all
8152 basic-blocks. Delay purging dead EH edges and invalidate
8153 the lattice for SSA names we release.
8154
8155 2014-11-07 Terry Guo <terry.guo@arm.com>
8156
8157 * config/arm/arm.opt (masm-syntax-unified): New option.
8158 * doc/invoke.texi (-masm-syntax-unified): Document new option.
8159 * config/arm/arm.h (TARGET_UNIFIED_ASM): Also include thumb1.
8160 (ASM_APP_ON): Redefined.
8161 * config/arm/arm.c (arm_option_override): Thumb2 inline assembly
8162 code always use UAL syntax.
8163 (arm_output_mi_thunk): Use UAL syntax for Thumb1 target.
8164 * config/arm/thumb1.md: Likewise.
8165
8166 2014-11-06 John David Anglin <danglin@gcc.gnu.org>
8167
8168 * config/pa/pa.md (trap): New insn. Add "trap" to attribute type.
8169 Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
8170 or in_call_delay.
8171
8172 2014-11-06 Steve Ellcey <sellcey@imgtec.com>
8173
8174 * config.gcc (mips*-mti-linux*): Remove gnu_ld and gas assignments.
8175 Set default_mips_arch and default_mips_abi instead of tm_defines.
8176 (mips*-*-linux*): Set default_mips_arch and default_mips_abi instead
8177 of tm_defines.
8178 (mips*-*-*): Check with_arch and with_abi. Set tm_defines.
8179 * config/mips/mips.h (STANDARD_STARTFILE_PREFIX_1): Set default
8180 based on MIPS_ABI_DEFAULT.
8181 (STANDARD_STARTFILE_PREFIX_2): Ditto.
8182
8183 2014-11-06 Joseph Myers <joseph@codesourcery.com>
8184
8185 * doc/invoke.texi (-std=c99, -std=c11): Don't refer to corner
8186 cases of extended identifiers.
8187
8188 2014-11-06 Eric Botcazou <ebotcazou@adacore.com>
8189
8190 * tree-cfgcleanup.c (fixup_noreturn_call): Do not perform DCE here.
8191
8192 2014-11-06 DJ Delorie <dj@redhat.com>
8193
8194 * config/m32c/cond.md (movqicc_<code>_<mode>): Remove mode of
8195 conditional.
8196 (movhicc_<code>_<mode>): Likewise.
8197 * config/m32c/m32c.c (encode_pattern_1): Specialise PSImode
8198 subregs.
8199 (m32c_eh_return_data_regno): Change to using memregs to avoid
8200 tying up all the compute regs.
8201 (m32c_legitimate_address_p) Subregs are not valid addresses.
8202
8203 2014-11-06 Bernd Schmidt <bernds@codesourcery.com>
8204
8205 * function.c (thread_prologue_and_epilogue_insns): No longer static.
8206 * function.h (thread_prologue_and_epilogue_insns): Declare.
8207
8208 * target.def (assemble_undefined_decl): New hooks.
8209 * hooks.c (hook_void_FILEptr_constcharptr_const_tree): New function.
8210 * hooks.h (hook_void_FILEptr_constcharptr_const_tree): Declare.
8211 * doc/tm.texi.in (TARGET_ASM_ASSEMBLE_UNDEFINED_DECL): Add.
8212 * doc/tm.texi: Regenerate.
8213 * output.h (assemble_undefined_decl): Declare.
8214 (get_fnname_from_decl): Declare.
8215 * varasm.c (assemble_undefined_decl): New function.
8216 (get_fnname_from_decl): New function.
8217 * final.c (rest_of_handle_final): Use it.
8218 * varpool.c (varpool_output_variables): Call assemble_undefined_decl
8219 for nodes without a definition.
8220
8221 * target.def (call_args, end_call_args): New hooks.
8222 * hooks.c (hook_void_rtx_tree): New empty function.
8223 * hooks.h (hook_void_rtx_tree): Declare.
8224 * doc/tm.texi.in (TARGET_CALL_ARGS, TARGET_END_CALL_ARGS): Add.
8225 * doc/tm.texi: Regenerate.
8226 * calls.c (expand_call): Slightly rearrange the code. Use the two new
8227 hooks.
8228 (expand_library_call_value_1): Use the two new hooks.
8229
8230 * expr.c (use_reg_mode): Just return for pseudo registers.
8231
8232 * combine.c (try_combine): Don't allow a call as one of the source
8233 insns.
8234
8235 * target.def (decl_end): New hook.
8236 * varasm.c (assemble_variable_contents, assemble_constant_contents):
8237 Use it.
8238 * doc/tm.texi.in (TARGET_ASM_DECL_END): Add.
8239 * doc/tm.texi: Regenerate.
8240
8241 2014-11-06 Renlin Li <renlin.li@arm.com>
8242
8243 * config/aarch64/aarch64.c (aarch64_architecture_version): New.
8244 (processor): New architecture_version field.
8245 (aarch64_override_options): Initialize aarch64_architecture_version.
8246 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_ARCH,
8247 __ARM_ARCH_PROFILE, aarch64_arch_name macro.
8248
8249 2014-11-06 James Greenhalgh <james.greenhalgh@arm.com>
8250
8251 * params.def (sra-max-scalarization-size-Ospeed): New.
8252 (sra-max-scalarization-size-Osize): Likewise.
8253 * doc/invoke.texi (sra-max-scalarization-size-Ospeed): Document.
8254 (sra-max-scalarization-size-Osize): Likewise.
8255 * toplev.c (process_options): Set default values for new
8256 parameters.
8257 * tree-sra.c (analyze_all_variable_accesses): Use new parameters.
8258 * targhooks.c (get_move_ratio): Remove static designator.
8259 * target.h (get_move_ratio): Declare.
8260
8261 2014-11-06 Marek Polacek <polacek@redhat.com>
8262
8263 * sanopt.c (sanopt_optimize_walker): Limit removal of the checks.
8264 Remove vector limit.
8265
8266 2014-11-06 Richard Biener <rguenther@suse.de>
8267
8268 * match.pd: Implement bitwise binary and unary simplifications
8269 from tree-ssa-forwprop.c.
8270 * fold-const.c (fold_unary_loc): Remove them here.
8271 (fold_binary_loc): Likewise.
8272 * tree-ssa-forwprop.c (simplify_not_neg_expr): Remove.
8273 (truth_valued_ssa_name): Likewise.
8274 (lookup_logical_inverted_value): Likewise.
8275 (simplify_bitwise_binary_1): Likewise.
8276 (hoist_conversion_for_bitop_p): Likewise.
8277 (simplify_bitwise_binary_boolean): Likewise.
8278 (simplify_bitwise_binary): Likewise.
8279 (pass_forwprop::execute): Remove calls to simplify_not_neg_expr
8280 and simplify_bitwise_binary.
8281 * genmatch.c (dt_node::append_true_op): Use safe_as_a for parent.
8282 (decision_tree::insert): Also insert non-expressions.
8283
8284 2014-11-06 Hale Wang <hale.wang@arm.com>
8285
8286 * config/arm/arm-cores.def: Add support for
8287 -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8288 cortex-m1.small-multiply.
8289 * config/arm/arm-tables.opt: Regenerate.
8290 * config/arm/arm-tune.md: Regenerate.
8291 * config/arm/arm.c: Update the rtx-costs for MUL.
8292 * config/arm/bpabi.h: Handle
8293 -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8294 cortex-m1.small-multiply.
8295 * doc/invoke.texi: Document
8296 -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8297 cortex-m1.small-multiply.
8298
8299 2014-11-06 Hale Wang <hale.wang@arm.com>
8300
8301 * config/arm/arm.c: Add cortex-m7 tune.
8302 * config/arm/arm-cores.def: Use cortex-m7 tune.
8303
8304 2014-11-05 Uros Bizjak <ubizjak@gmail.com>
8305
8306 PR target/63538
8307 * config/i386/i386.c (in_large_data_p): Reject automatic variables.
8308 (ix86_encode_section_info): Do not check for non-automatic varibles
8309 when setting SYMBOL_FLAG_FAR_ADDR flag.
8310 (x86_64_elf_select_section): Do not check ix86_cmodel here.
8311 (x86_64_elf_unique_section): Ditto.
8312 (x86_elf_aligned_common): Emit tab before .largecomm.
8313
8314 2014-11-05 Joseph Myers <joseph@codesourcery.com>
8315
8316 PR preprocessor/9449
8317 * doc/cpp.texi (Character sets, Tokenization)
8318 (Implementation-defined behavior): Don't refer to UCNs in
8319 identifiers requiring -fextended-identifiers.
8320 * doc/cppopts.texi (-fextended-identifiers): Document as enabled
8321 by default for C99 and later and C++.
8322 * doc/invoke.texi (-std=c99, -std=c11): Don't refer to extended
8323 identifiers needing -fextended-identifiers.
8324
8325 2014-11-05 Ilya Tocar <ilya.tocar@intel.com>
8326
8327 * config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd
8328 for 512-bit wide modes.
8329 (expand_vec_perm_1): Use correct versions of patterns.
8330 * config/i386/sse.md (avx512f_vec_dup<mode>_1): New.
8331 (vashr<mode>3<mask_name>): Split V8HImode and V16QImode.
8332
8333 2014-11-05 Ilya Enkovich <ilya.enkovich@intel.com>
8334
8335 * ipa-chkp.c: New.
8336 * ipa-chkp.h: New.
8337 * tree-chkp.c: New.
8338 * tree-chkp.h: New.
8339 * tree-chkp-opt.c: New.
8340 * rtl-chkp.c: New.
8341 * rtl-chkp.h: New.
8342 * Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
8343 tree-chkp-opt.o.
8344 (GTFILES): Add tree-chkp.c.
8345 * mode-classes.def (MODE_POINTER_BOUNDS): New.
8346 * tree.def (POINTER_BOUNDS_TYPE): New.
8347 * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
8348 (POINTER_BOUNDS_MODE): New.
8349 (make_pointer_bounds_mode): New.
8350 * machmode.h (POINTER_BOUNDS_MODE_P): New.
8351 * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
8352 (layout_type): Support POINTER_BOUNDS_TYPE.
8353 * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
8354 * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
8355 * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
8356 (type_contains_placeholder_1): Likewise.
8357 (build_common_tree_nodes): Initialize
8358 pointer_bounds_type_node.
8359 * tree.h (POINTER_BOUNDS_TYPE_P): New.
8360 (pointer_bounds_type_node): New.
8361 (POINTER_BOUNDS_P): New.
8362 (BOUNDED_TYPE_P): New.
8363 (BOUNDED_P): New.
8364 (CALL_WITH_BOUNDS_P): New.
8365 * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
8366 (gimple_call_with_bounds_p): New.
8367 (gimple_call_set_with_bounds): New.
8368 (gimple_return_retbnd): New.
8369 (gimple_return_set_retbnd): New
8370 * gimple.c (gimple_build_return): Increase number of ops
8371 for return statement.
8372 (gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
8373 flag.
8374 * gimple-pretty-print.c (dump_gimple_return): Print second op.
8375 * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
8376 * gimplify.c (gimplify_init_constructor): Avoid infinite
8377 loop during gimplification of bounds initializer.
8378 * calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
8379 (special_function_p): Use original decl name when analyzing
8380 instrumentation clone.
8381 (arg_data): Add fields special_slot, pointer_arg and
8382 pointer_offset.
8383 (store_bounds): New.
8384 (emit_call_1): Propagate instrumentation flag for CALL.
8385 (initialize_argument_information): Compute pointer_arg,
8386 pointer_offset and special_slot for pointer bounds arguments.
8387 (finalize_must_preallocate): Preallocate when storing bounds
8388 in bounds table.
8389 (compute_argument_addresses): Skip pointer bounds.
8390 (expand_call): Store bounds into tables separately. Return
8391 result joined with resulting bounds.
8392 * cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
8393 (expand_call_stmt): Propagate bounds flag for CALL_EXPR.
8394 (expand_return): Add returned bounds arg. Handle returned bounds.
8395 (expand_gimple_stmt_1): Adjust to new expand_return signature.
8396 (gimple_expand_cfg): Reset rtx bounds map.
8397 * expr.c: Include tree-chkp.h, rtl-chkp.h.
8398 (expand_assignment): Handle returned bounds.
8399 (store_expr_with_bounds): New. Replaces store_expr with new bounds
8400 target argument. Handle bounds returned by calls.
8401 (store_expr): Now wraps store_expr_with_bounds.
8402 * expr.h (store_expr_with_bounds): New.
8403 * function.c: Include tree-chkp.h, rtl-chkp.h.
8404 (bounds_parm_data): New.
8405 (use_register_for_decl): Do not registerize decls used for bounds
8406 stores and loads.
8407 (assign_parms_augmented_arg_list): Add bounds of the result
8408 structure pointer as the second argument.
8409 (assign_parm_find_entry_rtl): Mark bounds are never passed on
8410 the stack.
8411 (assign_parm_is_stack_parm): Likewise.
8412 (assign_parm_load_bounds): New.
8413 (assign_bounds): New.
8414 (assign_parms): Load bounds and determine a location for
8415 returned bounds.
8416 (diddle_return_value_1): New.
8417 (diddle_return_value): Handle returned bounds.
8418 * function.h (rtl_data): Add field for returned bounds.
8419 * varasm.c: Include tree-chkp.h.
8420 (output_constant): Support POINTER_BOUNDS_TYPE.
8421 (output_constant_pool_2): Support MODE_POINTER_BOUNDS.
8422 (ultimate_transparent_alias_target): Move up.
8423 (make_decl_rtl): For instrumented function use
8424 name of the original decl.
8425 (assemble_start_function): Mark function as global
8426 in case it is instrumentation clone of the global
8427 function.
8428 (do_assemble_alias): Follow transparent alias chain
8429 for identifier. Check if original alias is public.
8430 (maybe_assemble_visibility): Use visibility of the
8431 original function for instrumented version.
8432 (default_unique_section): Likewise.
8433 * emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
8434 (init_emit_once): Build pointer bounds zero constants.
8435 * explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
8436 * target.def (builtin_chkp_function): New.
8437 (chkp_bound_type): New.
8438 (chkp_bound_mode): New.
8439 (chkp_make_bounds_constant): New.
8440 (chkp_initialize_bounds): New.
8441 (load_bounds_for_arg): New.
8442 (store_bounds_for_arg): New.
8443 (load_returned_bounds): New.
8444 (store_returned_bounds): New.
8445 (chkp_function_value_bounds): New.
8446 (setup_incoming_vararg_bounds): New.
8447 (function_arg): Update hook description with new possible return
8448 value CONST_INT.
8449 * targhooks.h (default_load_bounds_for_arg): New.
8450 (default_store_bounds_for_arg): New.
8451 (default_load_returned_bounds): New.
8452 (default_store_returned_bounds): New.
8453 (default_chkp_bound_type): New.
8454 (default_chkp_bound_mode): New.
8455 (default_builtin_chkp_function): New.
8456 (default_chkp_function_value_bounds): New.
8457 (default_chkp_make_bounds_constant): New.
8458 (default_chkp_initialize_bounds): New.
8459 (default_setup_incoming_vararg_bounds): New.
8460 * targhooks.c (default_load_bounds_for_arg): New.
8461 (default_store_bounds_for_arg): New.
8462 (default_load_returned_bounds): New.
8463 (default_store_returned_bounds): New.
8464 (default_chkp_bound_type): New.
8465 (default_chkp_bound_mode); New.
8466 (default_builtin_chkp_function): New.
8467 (default_chkp_function_value_bounds): New.
8468 (default_chkp_make_bounds_constant): New.
8469 (default_chkp_initialize_bounds): New.
8470 (default_setup_incoming_vararg_bounds): New.
8471 * builtin-types.def (BT_BND): New.
8472 (BT_FN_PTR_CONST_PTR): New.
8473 (BT_FN_CONST_PTR_CONST_PTR): New.
8474 (BT_FN_BND_CONST_PTR): New.
8475 (BT_FN_CONST_PTR_BND): New.
8476 (BT_FN_PTR_CONST_PTR_SIZE): New.
8477 (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
8478 (BT_FN_VOID_PTRPTR_CONST_PTR): New.
8479 (BT_FN_VOID_CONST_PTR_SIZE): New.
8480 (BT_FN_VOID_PTR_BND): New.
8481 (BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
8482 (BT_FN_BND_CONST_PTR_SIZE): New.
8483 (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
8484 (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
8485 * chkp-builtins.def: New.
8486 * builtins.def: include chkp-builtins.def.
8487 (DEF_CHKP_BUILTIN): New.
8488 * builtins.c: Include tree-chkp.h and rtl-chkp.h.
8489 (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
8490 BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
8491 BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
8492 BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
8493 BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
8494 BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
8495 BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
8496 BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
8497 BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW,
8498 BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
8499 (std_expand_builtin_va_start): Init bounds for va_list.
8500 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
8501 __CHKP__ macro when Pointer Bounds Checker is on.
8502 * params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
8503 * passes.def (pass_ipa_chkp_versioning): New.
8504 (pass_early_local_passes): Renamed to pass_build_ssa_passes.
8505 (pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
8506 (pass_chkp_instrumentation_passes): New.
8507 (pass_ipa_chkp_produce_thunks): New.
8508 (pass_local_optimization_passes): New.
8509 (pass_chkp_opt): New.
8510 * tree-pass.h (make_pass_ipa_chkp_versioning): New.
8511 (make_pass_ipa_chkp_produce_thunks): New.
8512 (make_pass_chkp): New.
8513 (make_pass_chkp_opt): New.
8514 (make_pass_early_local_passes): Renamed to ...
8515 (make_pass_build_ssa_passes): This.
8516 (make_pass_chkp_instrumentation_passes): New.
8517 (make_pass_local_optimization_passes): New.
8518 * passes.c (pass_manager::execute_early_local_passes): Execute
8519 early passes in three steps.
8520 (execute_all_early_local_passes): Renamed to ...
8521 (execute_build_ssa_passes): This.
8522 (pass_data_early_local_passes): Renamed to ...
8523 (pass_data_build_ssa_passes): This.
8524 (pass_early_local_passes): Renamed to ...
8525 (pass_build_ssa_passes): This.
8526 (pass_data_chkp_instrumentation_passes): New.
8527 (pass_chkp_instrumentation_passes): New.
8528 (pass_data_local_optimization_passes): New.
8529 (pass_local_optimization_passes): New.
8530 (make_pass_early_local_passes): Renamed to ...
8531 (make_pass_build_ssa_passes): This.
8532 (make_pass_chkp_instrumentation_passes): New.
8533 (make_pass_local_optimization_passes): New.
8534 * c-family/c.opt (fcheck-pointer-bounds): New.
8535 (fchkp-check-incomplete-type): New.
8536 (fchkp-zero-input-bounds-for-main): New.
8537 (fchkp-first-field-has-own-bounds): New.
8538 (fchkp-narrow-bounds): New.
8539 (fchkp-narrow-to-innermost-array): New.
8540 (fchkp-optimize): New.
8541 (fchkp-use-fast-string-functions): New.
8542 (fchkp-use-nochk-string-functions): New.
8543 (fchkp-use-static-bounds): New.
8544 (fchkp-use-static-const-bounds): New.
8545 (fchkp-treat-zero-dynamic-size-as-infinite): New.
8546 (fchkp-check-read): New.
8547 (fchkp-check-write): New.
8548 (fchkp-store-bounds): New.
8549 (fchkp-instrument-calls): New.
8550 (fchkp-instrument-marked-only): New.
8551 (Wchkp): New.
8552 * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
8553 (handle_bnd_legacy): New.
8554 (handle_bnd_instrument): New.
8555 (c_common_attribute_table): Add bnd_variable_size, bnd_legacy
8556 and bnd_instrument. Fix documentation.
8557 (c_common_format_attribute_table): Likewsie.
8558 * toplev.c: include tree-chkp.h.
8559 (process_options): Check Pointer Bounds Checker is supported.
8560 (compile_file): Add chkp_finish_file call.
8561 * ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
8562 to handle instrumentation clones properly.
8563 (propagate_constants_accross_call): Do not propagate
8564 through instrumentation thunks.
8565 * ipa-pure-const.c (propagate_pure_const): Support
8566 IPA_REF_CHKP.
8567 * ipa-inline.c (early_inliner): Check edge has summary allocated.
8568 * ipa-split.c: Include tree-chkp.h.
8569 (find_retbnd): New.
8570 (split_part_set_ssa_name_p): New.
8571 (consider_split): Do not split retbnd and retval
8572 producers.
8573 (insert_bndret_call_after): new.
8574 (split_function): Propagate Pointer Bounds Checker
8575 instrumentation marks and handle returned bounds.
8576 * tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
8577 into bit field and add with_bounds field.
8578 * tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
8579 with_bounds field for instrumented calls.
8580 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
8581 CALL_WITH_BOUNDS_P flag for calls.
8582 * tree-ssa-ccp.c: Include tree-chkp.h.
8583 (insert_clobber_before_stack_restore): Handle
8584 BUILT_IN_CHKP_BNDRET calls.
8585 * tree-ssa-dce.c: Include tree-chkp.h.
8586 (propagate_necessity): For free call fed by alloc check
8587 bounds are also provided by the same alloc.
8588 (eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
8589 used by free calls.
8590 * tree-inline.c: Include tree-chkp.h.
8591 (declare_return_variable): Add arg holding
8592 returned bounds slot. Create and initialize returned bounds var.
8593 (remap_gimple_stmt): Handle returned bounds.
8594 Return sequence of statements instead of a single statement.
8595 (insert_init_stmt): Add declaration.
8596 (remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
8597 (copy_bb): Adjust to changed return type of remap_gimple_stmt.
8598 Properly handle bounds in va_arg_pack and va_arg_pack_len.
8599 (expand_call_inline): Handle returned bounds. Add bounds copy
8600 for generated mem to mem assignments.
8601 * tree-inline.h (copy_body_data): Add fields retbnd and
8602 assign_stmts.
8603 * value-prof.c: Include tree-chkp.h.
8604 (gimple_ic): Support returned bounds.
8605 * ipa.c (cgraph_build_static_cdtor_1): Support contructors
8606 with "chkp ctor" and "bnd_legacy" attributes.
8607 (symtab_remove_unreachable_nodes): Keep initial values for
8608 pointer bounds to be used for checks eliminations.
8609 (process_references): Handle IPA_REF_CHKP.
8610 (walk_polymorphic_call_targets): Likewise.
8611 * ipa-visibility.c (cgraph_externally_visible_p): Mark
8612 instrumented 'main' as externally visible.
8613 (function_and_variable_visibility): Filter instrumentation
8614 thunks.
8615 * cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
8616 field.
8617 (cgraph_node): Add instrumented_version, orig_decl and
8618 instrumentation_clone fields.
8619 (symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
8620 (varpool_node): Add need_bounds_init field.
8621 (cgraph_local_p): New.
8622 * cgraph.c: Include tree-chkp.h.
8623 (cgraph_node::remove): Fix instrumented_version
8624 of the referenced node if any.
8625 (cgraph_node::dump): Dump instrumentation_clone and
8626 instrumented_version fields.
8627 (cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
8628 references and instrumentation thunks.
8629 (cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
8630 all not instrumented instrumentation clones alive.
8631 (cgraph_redirect_edge_call_stmt_to_callee): Support
8632 returned bounds.
8633 * cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
8634 reference.
8635 (cgraph_rebuild_references): Likewise.
8636 * cgraphunit.c: Include tree-chkp.h.
8637 (assemble_thunks_and_aliases): Skip thunks calling instrumneted
8638 function version.
8639 (varpool_finalize_decl): Register statically initialized decls
8640 in Pointer Bounds Checker.
8641 (walk_polymorphic_call_targets): Do not mark generated call to
8642 __builtin_unreachable as with_bounds.
8643 (output_weakrefs): If there are both instrumented and original
8644 versions, output only one of them.
8645 (cgraph_node::expand_thunk): Set with_bounds flag
8646 for created call statement.
8647 * ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
8648 (ipa_ref): increase size of use field.
8649 * symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
8650 * varpool.c (dump_varpool_node): Dump need_bounds_init field.
8651 (ctor_for_folding): Do not fold constant bounds vars.
8652 * lto-streamer.h (LTO_minor_version): Change minor version from
8653 0 to 1.
8654 * lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
8655 pointer bounds.
8656 (lto_output_node): Output instrumentation_clone,
8657 thunk.add_pointer_bounds_args and orig_decl field.
8658 (lto_output_ref): Adjust to new ipa_ref::use field size.
8659 (input_overwrite_node): Read instrumentation_clone field.
8660 (input_node): Read thunk.add_pointer_bounds_args and orig_decl
8661 fields.
8662 (input_ref): Adjust to new ipa_ref::use field size.
8663 (input_cgraph_1): Compute instrumented_version fields and restore
8664 IDENTIFIER_TRANSPARENT_ALIAS chains.
8665 (lto_output_varpool_node): Output
8666 need_bounds_init value.
8667 (input_varpool_node): Read need_bounds_init value.
8668 * lto-partition.c (add_symbol_to_partition_1): Keep original
8669 and instrumented versions together.
8670 (privatize_symbol_name): Restore transparent alias chain if required.
8671 (add_references_to_partition): Add references to pointer bounds vars.
8672 * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
8673 * dwarf2out.c (gen_subprogram_die): Ignore bound args.
8674 (gen_type_die_with_usage): Skip pointer bounds.
8675 (dwarf2out_global_decl): Likewise.
8676 (is_base_type): Support POINTER_BOUNDS_TYPE.
8677 (gen_formal_types_die): Skip pointer bounds.
8678 (gen_decl_die): Likewise.
8679 * var-tracking.c (vt_add_function_parameters): Skip
8680 bounds parameters.
8681 * ipa-icf.c (sem_function::merge): Do not merge when instrumentation
8682 thunk still exists.
8683 (sem_variable::merge): Reset need_bounds_init flag.
8684 * doc/extend.texi: Document Pointer Bounds Checker built-in functions
8685 and attributes.
8686 * doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
8687 (TARGET_STORE_BOUNDS_FOR_ARG): New.
8688 (TARGET_LOAD_RETURNED_BOUNDS): New.
8689 (TARGET_STORE_RETURNED_BOUNDS): New.
8690 (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
8691 (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
8692 (TARGET_BUILTIN_CHKP_FUNCTION): New.
8693 (TARGET_CHKP_BOUND_TYPE): New.
8694 (TARGET_CHKP_BOUND_MODE): New.
8695 (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
8696 (TARGET_CHKP_INITIALIZE_BOUNDS): New.
8697 * doc/tm.texi: Regenerated.
8698 * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
8699 (BND32mode): New.
8700 (BND64mode): New.
8701 * doc/invoke.texi (-mmpx): New.
8702 (-mno-mpx): New.
8703 (chkp-max-ctor-size): New.
8704 * config/i386/constraints.md (w): New.
8705 (Ti): New.
8706 (Tb): New.
8707 * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
8708 * config/i386/i386-modes.def (BND32): New.
8709 (BND64): New.
8710 * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
8711 * config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
8712 (regclass_map): Add bound registers.
8713 (dbx_register_map): Likewise.
8714 (dbx64_register_map): Likewise.
8715 (svr4_dbx_register_map): Likewise.
8716 (isa_opts): Add -mmpx.
8717 (PTA_MPX): New.
8718 (ix86_option_override_internal): Support MPX ISA.
8719 (ix86_conditional_register_usage): Support bound registers.
8720 (ix86_code_end): Add MPX bnd prefix.
8721 (output_set_got): Likewise.
8722 (print_reg): Avoid prefixes for bound registers.
8723 (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
8724 (ix86_print_operand_punct_valid_p): Likewise.
8725 (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
8726 UNSPEC_BNDLDX_ADDR.
8727 (ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
8728 (ix86_class_likely_spilled_p): Add bound regs support.
8729 (ix86_hard_regno_mode_ok): Likewise.
8730 (x86_order_regs_for_local_alloc): Likewise.
8731 (ix86_bnd_prefixed_insn_p): New.
8732 (ix86_builtins): Add
8733 IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
8734 IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
8735 IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
8736 IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
8737 IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
8738 IX86_BUILTIN_BNDUPPER.
8739 (builtin_isa): Add leaf_p and nothrow_p fields.
8740 (def_builtin): Initialize leaf_p and nothrow_p.
8741 (ix86_add_new_builtins): Handle leaf_p and nothrow_p
8742 flags.
8743 (bdesc_mpx): New.
8744 (bdesc_mpx_const): New.
8745 (ix86_init_mpx_builtins): New.
8746 (ix86_init_builtins): Call ix86_init_mpx_builtins.
8747 (ix86_emit_cmove): New.
8748 (ix86_emit_move_max): New.
8749 (ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
8750 IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
8751 IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
8752 IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
8753 IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
8754 IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
8755 (ix86_function_value_bounds): New.
8756 (ix86_builtin_mpx_function): New.
8757 (ix86_get_arg_address_for_bt): New.
8758 (ix86_load_bounds): New.
8759 (ix86_store_bounds): New.
8760 (ix86_load_returned_bounds): New.
8761 (ix86_store_returned_bounds): New.
8762 (ix86_mpx_bound_mode): New.
8763 (ix86_make_bounds_constant): New.
8764 (ix86_initialize_bounds):
8765 (TARGET_LOAD_BOUNDS_FOR_ARG): New.
8766 (TARGET_STORE_BOUNDS_FOR_ARG): New.
8767 (TARGET_LOAD_RETURNED_BOUNDS): New.
8768 (TARGET_STORE_RETURNED_BOUNDS): New.
8769 (TARGET_CHKP_BOUND_MODE): New.
8770 (TARGET_BUILTIN_CHKP_FUNCTION): New.
8771 (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
8772 (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
8773 (TARGET_CHKP_INITIALIZE_BOUNDS): New.
8774 (ix86_option_override_internal): Do not
8775 support x32 with MPX.
8776 (init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
8777 and force_bnd_pass.
8778 (function_arg_advance_32): Return number of used integer
8779 registers.
8780 (function_arg_advance_64): Likewise.
8781 (function_arg_advance_ms_64): Likewise.
8782 (ix86_function_arg_advance): Handle pointer bounds.
8783 (ix86_function_arg): Likewise.
8784 (ix86_function_value_regno_p): Mark fisrt bounds registers as
8785 possible function value.
8786 (ix86_function_value_1): Handle pointer bounds type/mode
8787 (ix86_return_in_memory): Likewise.
8788 (ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
8789 (ix86_expand_call): Generate returned bounds.
8790 (ix86_setup_incoming_vararg_bounds): New.
8791 (ix86_va_start): Initialize bounds for pointers in va_list.
8792 (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
8793 * config/i386/i386.h (TARGET_MPX): New.
8794 (TARGET_MPX_P): New.
8795 (FIRST_PSEUDO_REGISTER): Fix to new value.
8796 (FIXED_REGISTERS): Add bound registers.
8797 (CALL_USED_REGISTERS): Likewise.
8798 (REG_ALLOC_ORDER): Likewise.
8799 (HARD_REGNO_NREGS): Likewise.
8800 (VALID_BND_REG_MODE): New.
8801 (FIRST_BND_REG): New.
8802 (LAST_BND_REG): New.
8803 (reg_class): Add BND_REGS.
8804 (REG_CLASS_NAMES): Likewise.
8805 (REG_CLASS_CONTENTS): Likewise.
8806 (BND_REGNO_P): New.
8807 (ANY_BND_REG_P): New.
8808 (BNDmode): New.
8809 (HI_REGISTER_NAMES): Add bound registers.
8810 (ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and
8811 stdarg fields.
8812 * config/i386/i386.md (UNSPEC_BNDMK): New.
8813 (UNSPEC_BNDMK_ADDR): New.
8814 (UNSPEC_BNDSTX): New.
8815 (UNSPEC_BNDLDX): New.
8816 (UNSPEC_BNDLDX_ADDR): New.
8817 (UNSPEC_BNDCL): New.
8818 (UNSPEC_BNDCU): New.
8819 (UNSPEC_BNDCN): New.
8820 (UNSPEC_MPX_FENCE): New.
8821 (UNSPEC_SIZEOF): New.
8822 (BND0_REG): New.
8823 (BND1_REG): New.
8824 (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
8825 (length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
8826 (prefix_rep): Check for bnd prefix.
8827 (prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
8828 (length_nobnd): New.
8829 (length): Use length_nobnd when specified.
8830 (memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
8831 (BND): New.
8832 (bnd_ptr): New.
8833 (BNDCHECK): New.
8834 (bndcheck): New.
8835 (*jcc_1): Add MPX bnd prefix.
8836 (*jcc_2): Likewise.
8837 (jump): Likewise.
8838 (*indirect_jump): Likewise.
8839 (*tablejump_1): Likewise.
8840 (simple_return_internal): Likewise.
8841 (simple_return_internal_long): Likewise.
8842 (simple_return_pop_internal): Likewise.
8843 (simple_return_indirect_internal): Likewise.
8844 (<mode>_mk): New.
8845 (*<mode>_mk): New.
8846 (mov<mode>): New.
8847 (*mov<mode>_internal_mpx): New.
8848 (<mode>_<bndcheck>): New.
8849 (*<mode>_<bndcheck>): New.
8850 (<mode>_ldx): New.
8851 (*<mode>_ldx): New.
8852 (<mode>_stx): New.
8853 (*<mode>_stx): New.
8854 move_size_reloc_<mode>): New.
8855 * config/i386/predicates.md (address_mpx_no_base_operand): New.
8856 (address_mpx_no_index_operand): New.
8857 (bnd_mem_operator): New.
8858 (symbol_operand): New.
8859 (x86_64_immediate_size_operand): New.
8860 * config/i386/i386.opt (mmpx): New.
8861 * config/i386/i386-builtin-types.def (BND): New.
8862 (ULONG): New.
8863 (BND_FTYPE_PCVOID_ULONG): New.
8864 (VOID_FTYPE_BND_PCVOID): New.
8865 (VOID_FTYPE_PCVOID_PCVOID_BND): New.
8866 (BND_FTYPE_PCVOID_PCVOID): New.
8867 (BND_FTYPE_PCVOID): New.
8868 (BND_FTYPE_BND_BND): New.
8869 (PVOID_FTYPE_PVOID_PVOID_ULONG): New.
8870 (PVOID_FTYPE_PCVOID_BND_ULONG): New.
8871 (ULONG_FTYPE_VOID): New.
8872 (PVOID_FTYPE_BND): New.
8873
8874 2014-11-05 Bernd Schmidt <bernds@codesourcery.com>
8875
8876 * passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
8877 pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
8878 pass_cleanup_barriers, pass_delay_slots,
8879 pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
8880 pass_shorten_branches, pass_est_nothrow_function_flags,
8881 pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
8882 into pass_late_compilation.
8883 (pass_late_compilation): Add.
8884 * passes.c (pass_data_late_compilation, pass_late_compilation,
8885 make_pass_late_compilation): New.
8886 * timevar.def (TV_LATE_COMPILATION): New.
8887
8888 * target.def (omit_struct_return_reg): New data hook.
8889 * doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG.
8890 * doc/tm.texi: Regenerate.
8891 * function.c (expand_function_end): Use it.
8892
8893 * target.def (no_register_allocation): New data hook.
8894 * doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
8895 * doc/tm.texi: Regenerate.
8896 * ira.c (gate_ira): New function.
8897 (pass_data_ira): Set has_gate.
8898 (pass_ira): Add a gate function.
8899 (pass_data_reload): Likewise.
8900 (pass_reload): Add a gate function.
8901 (pass_ira): Use it.
8902 * reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
8903 no register allocation happens on the target and return.
8904 * final.c (alter_subreg): Ensure register is not a pseudo before
8905 calling simplify_subreg.
8906 (output_operand): Assert that x isn't a pseudo only if doing
8907 register allocation.
8908
8909 * dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
8910 global vars.
8911
8912 * optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
8913 sorry if necessary.
8914
8915 2014-11-05 Alex Velenko <Alex.Velenko@arm.com>
8916
8917 * simplify-rtx.c (simplify_binary_operation_1): Div check added.
8918 * rtl.h (SUBREG_P): New macro added.
8919
8920 2014-11-05 Tejas Belagod <tejas.belagod@arm.com>
8921
8922 * config/aarch64/aarch64-builtins.c
8923 (aarch64_build_scalar_type): Remove.
8924 (aarch64_scalar_builtin_types, aarch64_simd_type,
8925 aarch64_simd_type, aarch64_mangle_builtin_scalar_type,
8926 aarch64_mangle_builtin_vector_type,
8927 aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type,
8928 aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type,
8929 aarch64_init_simd_builtin_types,
8930 aarch64_init_simd_builtin_scalar_types): New.
8931 (aarch64_init_simd_builtins): Refactor.
8932 (aarch64_init_crc32_builtins): Fixup with qualifier.
8933 * config/aarch64/aarch64-protos.h
8934 (aarch64_mangle_builtin_type): Export.
8935 * config/aarch64/aarch64-simd-builtin-types.def: New.
8936 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove.
8937 (aarch64_mangle_type): Refactor.
8938 * config/aarch64/arm_neon.h: Declare vector types based on
8939 internal types.
8940 * config/aarch64/t-aarch64: Update dependency.
8941
8942 2014-11-04 Pat Haugen <pthaugen@us.ibm.com>
8943
8944 * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
8945 atomic_update_decl): Guard declaration with #ifdef.
8946
8947 2014-11-04 Marek Polacek <polacek@redhat.com>
8948
8949 * sanopt.c (sanopt_optimize_walker): Remove unused variables.
8950
8951 2014-11-04 Marek Polacek <polacek@redhat.com>
8952
8953 * Makefile.in (OBJS): Add sanopt.o.
8954 (GTFILES): Add sanopt.c.
8955 * asan.h (asan_expand_check_ifn): Declare.
8956 * asan.c (asan_expand_check_ifn): No longer static.
8957 (class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move...
8958 * sanopt.c: ...here. New file.
8959
8960 2014-11-04 Jiong Wang <jiong.wang@arm.com>
8961 2014-11-04 Wilco Dijkstra <wilco.dijkstra@arm.com>
8962
8963 PR target/63293
8964 * config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
8965 stack adjustment.
8966
8967 2014-11-04 Bernd Schmidt <bernds@codesourcery.com>
8968
8969 * combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
8970 also verify that mode is equal to the mode of op0.
8971
8972 * bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
8973 emit into a sequence instead.
8974
8975 2014-11-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8976
8977 * config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.
8978
8979 2014-11-04 Alan Lawrence <alan.lawrence@arm.com>
8980
8981 config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
8982 (reduc_smin_scal_<mode> *2): ...this; extract scalar result.
8983 (reduc_smax_<mode> *2): Rename to...
8984 (reduc_smax_scal_<mode> *2): ...this; extract scalar result.
8985 (reduc_umin_<mode> *2): Rename to...
8986 (reduc_umin_scal_<mode> *2): ...this; extract scalar result.
8987 (reduc_umax_<mode> *2): Rename to...
8988 (reduc_umax_scal_<mode> *2): ...this; extract scalar result.
8989
8990 2014-11-04 Alan Lawrence <alan.lawrence@arm.com>
8991
8992 config/arm/neon.md (reduc_plus_*): Rename to...
8993 (reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.
8994
8995 2014-11-04 Michael Collison <michael.collison@linaro.org>
8996
8997 * config/aarch64/iterators.md (lconst_atomic): New mode attribute
8998 to support constraints for CONST_INT in atomic operations.
8999 * config/aarch64/atomics.md
9000 (atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
9001 (atomic_nand<mode>): Likewise.
9002 (atomic_fetch_<atomic_optab><mode>): Likewise.
9003 (atomic_fetch_nand<mode>): Likewise.
9004 (atomic_<atomic_optab>_fetch<mode>): Likewise.
9005 (atomic_nand_fetch<mode>): Likewise.
9006
9007 2014-11-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9008
9009 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in definition
9010 of __ARM_FEATURE_IDIV.
9011
9012 2014-11-04 Marek Polacek <polacek@redhat.com>
9013
9014 * ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
9015
9016 2014-11-03 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9017
9018 * config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.
9019
9020 2014-11-04 Zhenqiang Chen <zhenqiang.chen@arm.com>
9021
9022 Revert:
9023 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
9024 * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
9025 Allow CC mode if HAVE_cbranchcc4.
9026
9027 2014-11-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
9028
9029 * godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support
9030 with -fdump-go-spec. Anonymous substructures are now flattened and
9031 replaced by their fields (record) or the first named, non-bitfield
9032 field (union).
9033
9034 2014-11-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
9035
9036 * input.c (expand_location_to_spelling_point): Fix typo.
9037 (expansion_point_location_if_in_system_header): Fix comment.
9038
9039 2014-11-03 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9040
9041 * config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.
9042
9043 2014-11-03 Richard Biener <rguenther@suse.de>
9044
9045 * tree-eh.c (operation_could_trap_helper_p): Handle conversions
9046 like ordinary operations.
9047 * gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
9048 as NOP_EXPR.
9049
9050 2014-11-03 Joseph Myers <joseph@codesourcery.com>
9051
9052 * configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
9053 macros.
9054 * configure, config.h.in: Regenerate.
9055 * config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 ||
9056 (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
9057 (RS6000_GLIBC_ATOMIC_FENV): New macro.
9058 * config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 ||
9059 (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
9060 (RS6000_GLIBC_ATOMIC_FENV): New macro.
9061 * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl)
9062 (atomic_update_decl): New static variables.
9063 (rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]:
9064 Generate calls to __atomic_feholdexcept, __atomic_feclearexcept
9065 and __atomic_feupdateenv for soft-float and no-FPRs.
9066
9067 2014-11-03 Richard Biener <rguenther@suse.de>
9068
9069 * match.pd: Add two abs patterns. Announce tree_expr_nonnegative_p.
9070 Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR.
9071 * fold-const.c (fold_unary_loc): Remove them here.
9072 (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
9073 * gimple-fold.c (fold_gimple_assign): Remove now obsolete
9074 GIMPLE_UNARY_RHS case.
9075 (gimple_fold_stmt_to_constant_1): Likewise.
9076 (replace_stmt_with_simplification): Fix inverted comparison.
9077
9078 2014-11-03 Marc Glisse <marc.glisse@inria.fr>
9079
9080 PR tree-optimization/60770
9081 * tree-into-ssa.c (rewrite_update_stmt): Return whether the
9082 statement should be removed.
9083 (maybe_register_def): Likewise. Replace clobbers with default
9084 definitions.
9085 (rewrite_dom_walker::before_dom_children): Remove statement if
9086 rewrite_update_stmt says so.
9087 * tree-ssa-live.c: Include tree-ssa.h.
9088 (set_var_live_on_entry): Do not mark undefined variables as live.
9089 (verify_live_on_entry): Do not check undefined variables.
9090 * tree-ssa.h (ssa_undefined_value_p): New parameter for the case
9091 of partially undefined variables.
9092 * tree-ssa.c (ssa_undefined_value_p): Likewise.
9093 (execute_update_addresses_taken): Do not drop clobbers.
9094
9095 2014-11-03 Marc Glisse <marc.glisse@inria.fr>
9096
9097 PR tree-optimization/63666
9098 * fold-const.c: Include "optabs.h".
9099 (fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a
9100 can_vec_perm_p permutation to one that is not.
9101
9102 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
9103
9104 * ifcvt.c (noce_try_store_flag_mask): Check rtx cost.
9105
9106 2014-11-03 Andrew Pinski <apinski@cavium.com>
9107
9108 * config/mips/mips-cpus.def (octeon3): New cpu.
9109 * config/mips/mips.c (mips_rtx_cost_data): Add octeon3.
9110 (mips_print_operand <case 'T', case 't'>): Fix a bug as the mode
9111 of the comparison no longer matches mode of the operands.
9112 (mips_issue_rate): Handle PROCESSOR_OCTEON3.
9113 * config/mips/mips.h (TARGET_OCTEON): Add Octeon3.
9114 (TARGET_OCTEON2): Likewise.
9115 (TUNE_OCTEON): Add Octeon3.
9116 * config/mips/mips.md (processor): Add octeon3.
9117 * config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit.
9118 (octeon_arith): Add octeon3.
9119 (octeon_condmove): Remove.
9120 (octeon_condmove_o1): New reservation.
9121 (octeon_condmove_o2): New reservation.
9122 (octeon_condmove_o3_int_on_cc): New reservation.
9123 (octeon_load_o2): Add octeon3.
9124 (octeon_cop_o2): Likewise.
9125 (octeon_store): Likewise.
9126 (octeon_brj_o2): Likewise.
9127 (octeon_imul3_o2): Likewise.
9128 (octeon_imul_o2): Likewise.
9129 (octeon_mfhilo_o2): Likewise.
9130 (octeon_imadd_o2): Likewise.
9131 (octeon_idiv_o2_si): Likewise.
9132 (octeon_idiv_o2_di): Likewise.
9133 (octeon_fpu): Add to the automaton.
9134 (octeon_fpu): New cpu unit.
9135 (octeon_condmove_o2): Check for non floating point modes.
9136 (octeon_load_o2): Add prefetchx.
9137 (octeon_cop_o2): Don't check for octeon3.
9138 (octeon3_faddsubcvt): New reservation.
9139 (octeon3_fmul): Likewise.
9140 (octeon3_fmadd): Likewise.
9141 (octeon3_div_sf): Likewise.
9142 (octeon3_div_df): Likewise.
9143 (octeon3_sqrt_sf): Likewise.
9144 (octeon3_sqrt_df): Likewise.
9145 (octeon3_rsqrt_sf): Likewise.
9146 (octeon3_rsqrt_df): Likewise.
9147 (octeon3_fabsnegmov): Likewise.
9148 (octeon_fcond): Likewise.
9149 (octeon_fcondmov): Likewise.
9150 (octeon_fpmtc1): Likewise.
9151 (octeon_fpmfc1): Likewise.
9152 (octeon_fpload): Likewise.
9153 (octeon_fpstore): Likewise.
9154 * config/mips/mips-tables.opt: Regenerate.
9155 * doc/invoke.texi (-march=@var{arch}): Add octeon3.
9156
9157 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
9158
9159 * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
9160 Allow CC mode if HAVE_cbranchcc4.
9161
9162 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
9163
9164 * config/arc/arc.c (write_ext_corereg_1): Delete.
9165 (arc_write_ext_corereg): Use FOR_EACH_SUBRTX.
9166
9167 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
9168
9169 * config/arc/arc.c (arc600_corereg_hazard_1): Delete.
9170 (arc600_corereg_hazard): Use FOR_EACH_SUBRTX.
9171
9172 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
9173
9174 * config/arc/arc.c (arc_rewrite_small_data_p): Constify argument.
9175 (small_data_pattern_1): Delete.
9176 (small_data_pattern): Use FOR_EACH_SUBRTX.
9177
9178 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
9179
9180 * config/arc/arc.c: Include rtl-iter.h.
9181 (arc_rewrite_small_data_1): Delete.
9182 (arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR.
9183
9184 2014-11-02 Michael Collison <michael.collison@linaro.org>
9185
9186 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
9187 to support vector modes.
9188 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
9189
9190 2014-11-01 Andrew MacLeod <amacleod@redhat,com>
9191
9192 * optabs.h: Flatten insn-codes.h to source files. Move some prototypes
9193 and structs to genopinit.c. Adjust protyoptypes to match optabs.c.
9194 * genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
9195 * optabs.c: (gen_move_insn): Move to expr.c.
9196 * expr.h: Move protypes and enums to optabs.h.
9197 * expr.c: (gen_move_insn): Relocate from optabs.c.
9198 * genemit.c (main): Include insn-codes.h.
9199 * gengtype.c (open_base_files): Include insn-codes.h.
9200 * asan.c: Include insn-codes.h.
9201 * bb-reorder.c: Ditto.
9202 * builtins.c: Ditto.
9203 * calls.c: Ditto.
9204 * cfgexpand.c: Ditto.
9205 * cilk-common.c: Ditto.
9206 * combine.c: Ditto.
9207 * dojump.c: Ditto.
9208 * dse.c: Ditto.
9209 * except.c: Ditto.
9210 * explow.c: Ditto.
9211 * expmed.c: Ditto.
9212 * function.c: Ditto.
9213 * ifcvt.c: Ditto.
9214 * internal-fn.c: Ditto.
9215 * loop-unroll.c: Ditto.
9216 * lra.c: Ditto.
9217 * modulo-sched.c: Ditto.
9218 * omp-low.c: Ditto.
9219 * postreload.c: Ditto.
9220 * ree.c: Ditto.
9221 * reload.c: Ditto.
9222 * reload1.c: Ditto.
9223 * shrink-wrap.c: Ditto.
9224 * simplify-rtx.c: Ditto.
9225 * stmt.c: Ditto.
9226 * target-globals.c: Ditto.
9227 * targhooks.c: Ditto.
9228 * toplev.c: Ditto.
9229 * tree-if-conv.c: Ditto.
9230 * tree-ssa-forwprop.c: Ditto.
9231 * tree-ssa-loop-prefetch.c: Ditto.
9232 * tree-ssa-math-opts.c: Ditto.
9233 * tree-ssa-phiopt.c: Ditto.
9234 * tree-ssa-reassoc.c: Ditto.
9235 * tree-switch-conversion.c: Ditto.
9236 * tree-vect-data-refs.c: Ditto.
9237 * tree-vect-generic.c: Ditto.
9238 * tree-vect-loop.c: Ditto.
9239 * tree-vect-patterns.c: Ditto.
9240 * tree-vect-slp.c: Ditto.
9241 * tree-vect-stmts.c: Ditto.
9242 * tree-vrp.c: Ditto.
9243 * value-prof.c: Ditto.
9244 * config/aarch64/aarch64-builtins.c: Ditto.
9245 * config/alpha/alpha.c: Ditto.
9246 * config/arm/arm.c: Ditto.
9247 * config/cris/cris.c: Ditto.
9248 * config/epiphany/epiphany.c: Ditto.
9249 * config/frv/frv.c: Ditto.
9250 * config/h8300/h8300.c: Ditto.
9251 * config/ia64/ia64.c: Ditto.
9252 * config/iq2000/iq2000.c: Ditto.
9253 * config/m32c/m32c.c: Ditto.
9254 * config/mep/mep.c: Ditto.
9255 * config/microblaze/microblaze.c: Ditto.
9256 * config/mips/mips.c: Ditto.
9257 * config/mn10300/mn10300.c: Ditto.
9258 * config/moxie/moxie.c: Ditto.
9259 * config/msp430/msp430.c: Ditto.
9260 * config/nios2/nios2.c: Ditto.
9261 * config/pa/pa.c: Ditto.
9262 * config/rl78/rl78.c: Ditto.
9263 * config/rs6000/rs6000.c: Ditto.
9264 * config/rx/rx.c: Ditto.
9265 * config/s390/s390.c: Ditto.
9266 * config/sh/sh.c: Ditto.
9267 * config/sh/sh_treg_combine.cc: Ditto.
9268 * config/spu/spu.c: Ditto.
9269 * config/stormy16/stormy16.c: Ditto.
9270 * config/tilegx/mul-tables.c: Ditto.
9271 * config/tilegx/tilegx.c: Ditto.
9272 * config/tilepro/mul-tables.c: Ditto.
9273 * config/tilepro/tilepro.c: Ditto.
9274 * config/vax/vax.c: Ditto.
9275
9276 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
9277
9278 * doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
9279 (CLEAR_BY_PIECES_P): Likewise.
9280 (SET_BY_PIECES_P): Likewise.
9281 (STORE_BY_PIECES_P): Likewise.
9282 * doc/tm.texi: Regenerate.
9283 * system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
9284 SET_BY_PIECES_P, STORE_BY_PIECES_P.
9285 * expr.c (MOVE_BY_PIECES_P): Remove.
9286 (CLEAR_BY_PIECES_P): Likewise.
9287 (SET_BY_PIECES_P): Likewise.
9288 (STORE_BY_PIECES_P): Likewise.
9289 (can_move_by_pieces): Rewrite in terms of
9290 targetm.use_by_pieces_infrastructure_p.
9291 (emit_block_move_hints): Likewise.
9292 (can_store_by_pieces): Likewise.
9293 (store_by_pieces): Likewise.
9294 (clear_storage_hints): Likewise.
9295 (emit_push_insn): Likewise.
9296 (expand_constructor): Likewise.
9297
9298 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
9299
9300 * config/aarch64/aarch64.c
9301 (aarch64_use_by_pieces_infrastructre_p): New.
9302 (TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise.
9303 * config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete.
9304
9305 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
9306
9307 * config/mips/mips.h (MOVE_BY_PIECES_P): Remove.
9308 (STORE_BY_PIECES_P): Likewise.
9309 * config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9310 (mips_move_by_pieces_p): Rename to...
9311 (mips_use_by_pieces_infrastructure_p): ...this, use new hook
9312 parameters, use the default hook implementation as a
9313 fall-back.
9314
9315 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
9316
9317 * config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9318 (sh_use_by_pieces_infrastructure_p): Likewise.
9319 * config/sh/sh.h (MOVE_BY_PIECES_P): Remove.
9320 (STORE_BY_PIECES_P): Likewise.
9321 (SET_BY_PIECES_P): Likewise.
9322
9323 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
9324
9325 * config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9326 (arc_use_by_pieces_infrastructure_p): Likewise.
9327 * confir/arc/arc.h (MOVE_BY_PIECES_P): Delete.
9328 (CAN_MOVE_BY_PIECES): Likewise.
9329
9330 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
9331
9332 * config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
9333 (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
9334 * config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
9335 (CLEAR_BY_PIECES): Likewise.
9336 (SET_BY_PIECES): Likewise.
9337 (STORE_BY_PIECES): Likewise.
9338
9339 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
9340
9341 * target.def (use_by_pieces_infrastructure_p): New.
9342 * doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
9343 is deprecated.
9344 (STORE_BY_PIECES_P): Likewise.
9345 (CLEAR_BY_PIECES_P): Likewise.
9346 (SET_BY_PIECES_P): Likewise.
9347 (TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook.
9348 * doc/tm.texi: Regenerate.
9349 * expr.c (MOVE_BY_PIECES_P): Rewrite in terms of
9350 TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.
9351 (STORE_BY_PIECES_P): Likewise.
9352 (CLEAR_BY_PIECES_P): Likewise.
9353 (SET_BY_PIECES_P): Likewise.
9354 (STORE_MAX_PIECES): Move to...
9355 * defaults.h (STORE_MAX_PIECES): ...here.
9356 * targhooks.c (get_move_ratio): New.
9357 (default_use_by_pieces_infrastructure_p): Likewise.
9358 * targhooks.h (default_use_by_pieces_infrastructure_p): New.
9359 * target.h (by_pieces_operation): New.
9360
9361 2014-10-31 Uros Bizjak <ubizjak@gmail.com>
9362
9363 PR target/63702
9364 * config/i386/i386.c (ix86_expand_args_builtin): Remove extra
9365 assignment to 'nargs' variable.
9366
9367 2014-10-31 Uros Bizjak <ubizjak@gmail.com>
9368
9369 PR target/63620
9370 * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
9371 * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
9372 * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
9373 be reloaded through memory.
9374 (*pushxf): Ditto.
9375 (*pushdf): Ditto.
9376
9377 2014-10-31 Jakub Jelinek <jakub@redhat.com>
9378
9379 PR rtl-optimization/63659
9380 * ree.c (update_reg_equal_equiv_notes): New function.
9381 (combine_set_extension, transform_ifelse): Use it.
9382
9383 2014-10-31 Jeff Law <law@redhat.com>
9384
9385 * doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+)
9386 and Jonny Grant (collect2).
9387
9388 2014-10-31 Richard Biener <rguenther@suse.de>
9389
9390 * builtins.c (fold_builtin_atomic_always_lock_free): Use
9391 CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where
9392 approprate.
9393 (fold_builtin_expect): Likewise.
9394 (integer_valued_real_p): Likewise.
9395 * cfgexpand.c (expand_debug_expr): Likewise.
9396 * ipa-inline-analysis.c (eliminated_by_inlining_prob): Likewise.
9397 (find_foldable_builtin_expect): Likewise.
9398 * trans-mem.c (thread_private_new_memory): Likewise.
9399 * tree-affine.c (aff_combination_expand): Likewise.
9400 * tree-data-ref.c (initialize_matrix_A): Likewise.
9401 * tree-inline.c (copy_bb): Likewise.
9402 * tree-pretty-print.c (dump_function_name): Likewise.
9403 (print_call_name): Likewise.
9404 * tree-ssa-forwprop.c (constant_pointer_difference): Likewise.
9405 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise.
9406 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
9407 * tree-vect-patterns.c (vect_handle_widen_op_by_const): Likewise.
9408 (vect_recog_widen_mult_pattern): Likewise.
9409 (vect_operation_fits_smaller_type): Likewise.
9410 * tree-vrp.c (find_assert_locations_1): Likewise.
9411 * tree-ssa-dom.c (initialize_hash_element): Canonicalize
9412 converts to NOP_EXPR.
9413
9414 2014-10-31 Richard Biener <rguenther@suse.de>
9415
9416 * genmatch.c (expr::gen_transform): Use NOP_EXPRs instead of
9417 CONVERT_EXPRs in generated code.
9418 (dt_simplify::gen): Likewise.
9419
9420 2014-10-31 Evgeny Stupachenko <evstupac@gmail.com>
9421
9422 PR target/63534
9423 * config/i386/i386.c (ix86_init_pic_reg): Emit SET_GOT to
9424 REAL_PIC_OFFSET_TABLE_REGNUM for mcount profiling.
9425 (ix86_save_reg): Save REAL_PIC_OFFSET_TABLE_REGNUM when profiling
9426 using mcount in 32bit PIC mode.
9427 (ix86_elim_entry_set_got): New.
9428 (ix86_expand_prologue): For the mcount profiling emit new SET_GOT
9429 in PROLOGUE, delete initial if possible.
9430
9431 2014-10-31 Eric Botcazou <ebotcazou@adacore.com>
9432
9433 * ipa-inline.c (want_inline_small_function_p): Fix typo and formatting.
9434 (want_inline_function_to_all_callers_p): Fix formatting and simplify.
9435
9436 2014-10-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
9437
9438 PR tree-optimization/63259
9439 * tree-ssa-math-opts.c (bswap_replace): Replace expression by a
9440 rotation left if it is a 16 bit byte swap.
9441 (pass_optimize_bswap::execute): Also consider bswap in LROTATE_EXPR
9442 and RROTATE_EXPR statements if it is a byte rotation.
9443
9444 2014-10-31 Jakub Jelinek <jakub@redhat.com>
9445
9446 PR sanitizer/63697
9447 * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
9448 MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
9449 instead of vr0.min - vr1.min and vr0.max - vr1.max.
9450
9451 2014-10-31 Max Ostapenko <m.ostapenko@partner.samsung.com>
9452
9453 PR ipa/63696
9454 * ipa-icf.c (sem_function::~sem_function): Change free to delete to avoid
9455 alloc-dealloc mismatch with new, called in ipa_icf::sem_function::init.
9456
9457 2014-10-30 Felix Yang <felix.yang@huawei.com>
9458
9459 * config/xtensa/xtensa.h (TARGET_LOOPS): New Macro.
9460 * config/xtensa/xtensa.c: Include dumpfile.h and hw-doloop.h.
9461 (xtensa_reorg, xtensa_reorg_loops): New.
9462 (xtensa_can_use_doloop_p, xtensa_invalid_within_doloop): New.
9463 (hwloop_optimize, hwloop_fail, hwloop_pattern_reg): New.
9464 (xtensa_emit_loop_end): Emit the zero-overhead loop end label.
9465 (xtensa_doloop_hooks): Define.
9466 * config/xtensa/xtensa.md (doloop_end, loop_end): New
9467 (zero_cost_loop_start): Rewritten.
9468 (zero_cost_loop_end): Likewise.
9469
9470 2014-10-30 Steve Ellcey <sellcey@imgtec.com>
9471
9472 * config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.
9473
9474 2014-10-30 Richard Biener <rguenther@suse.de>
9475
9476 * genmatch.c: Remove <map>, <utility> and <string> includes.
9477 Include ggc.h and hash-map.h.
9478 (ggc_internal_cleared_alloc): Provide stub definition.
9479 (ggc_free): Likewise.
9480 (struct capture_id_map_hasher): New traits for hash_map.
9481 (cid_map_t): New typedef.
9482 (everywhere else): Replace std::map use with cid_map_t.
9483 * hash-map.h (hash_map::elements): New member function.
9484 * Makefile.in (build/genmatch.o): Add $(HASH_TABLE_H),
9485 hash-map.h and $(GGC_H) as dependency.
9486
9487 2014-10-30 Richard Biener <rguenther@suse.de>
9488
9489 * genmatch.c (capture_info::walk_c_expr): Ignore capture
9490 uses inside TREE_TYPE ().
9491 * gimple-ssa-strength-reduction.c (stmt_cost): Use CASE_CONVERT.
9492 (find_candidates_dom_walker::before_dom_children): Likewise.
9493 (replace_mult_candidate): Use CONVERT_EXPR_CODE_P.
9494 (replace_profitable_candidates): Likewise.
9495 * tree-ssa-dom.c (initialize_hash_element): Canonicalize
9496 CONVERT_EXPR_CODE_P to CONVERT_EXPR.
9497 * convert.c (convert_to_integer): Use CASE_CONVERT.
9498
9499 2014-10-30 Richard Biener <rguenther@suse.de>
9500
9501 * match.pd: Implement more patterns that simplify to a single value.
9502 * fold-const.c (fold_binary_loc): Remove them here.
9503 * tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise.
9504 (fwprop_ssa_val): Remove restriction on single uses.
9505
9506 2014-10-30 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9507
9508 * config/avr/driver-avr.c (avr_set_current_device): Remove.
9509
9510 2014-10-30 Martin Liska <mliska@suse.cz>
9511
9512 PR ipa/63574
9513 PR ipa/63664
9514 * ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added.
9515 (func_checker::compare_gimple_label): Simlified comparison introduced.
9516 * ipa-icf-gimple.h: Missing comment added.
9517
9518 2014-10-30 Jeff Law <law@redhat.com>
9519
9520 * config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen
9521 argument from rtx to rtx_insn *.
9522 (compute_movmem_length, compute_clrmem_length): Likewise.
9523 (copy_fp_args, length_fp_args): Likewise.
9524 * config/pa/pa.c (legitimize_pic_address): Promote local variable
9525 "insn" from rtx to rtx_insn *.
9526 (legitimize_tls_address, pa_emit_move_sequence): Likewise.
9527 (pa_output_block_move, store_reg, store_reg_modify): Likewise.
9528 (set_reg_plus_d, pa_expand_prologue, hppa_profile_hook): Likewise.
9529 (branch_to_delay_slot_p, branch_needs_nop_p, use_skip_p): Likewise.
9530 (pa_output_arg_descriptor): Strengthen argument to an rtx_insn *.
9531 (compute_movmem_length, compute_clrmem_length): Likewise.
9532 (copy_fp-args, length_fp_args): Likewise.
9533
9534 2014-10-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9535
9536 * config/arm/arm.h (MACHMODE): Treat machine_mode as a
9537 scalar typedef.
9538 (CUMULATIVE_ARGS): Guard against target includes.
9539 (machine_function): Likewise.
9540
9541 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9542
9543 * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
9544 recog state after aarch64_prev_real_insn call.
9545
9546 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9547
9548 * config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode.
9549
9550 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9551
9552 * config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode.
9553 (struct machine_function): Gate definition on
9554 !defined(USED_FOR_TARGET).
9555
9556 2014-10-29 DJ Delorie <dj@redhat.com>
9557
9558 * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
9559
9560 2014-10-29 Martin Liska <mliska@suse.cz>
9561
9562 PR ipa/63587
9563 * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
9564 to local declarations.
9565 * function.c (add_local_decl): Implementation moved from header
9566 file, assert introduced for tree type.
9567 * function.h: Likewise.
9568
9569 2014-10-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
9570
9571 * godump.c (go_format_type): Represent "float _Complex" and
9572 "double _Complex" as complex64 or complex128 in Go, as appropriate.
9573
9574 2014-10-29 Richard Biener <rguenther@suse.de>
9575
9576 * match.pd: Implement a first set of conversion patterns.
9577 * fold-const.c (fold_unary_loc): Remove them here.
9578 * tree-ssa-forwprop.c (simplify_vce): Remove.
9579 (pass_forwprop::execute): Do not call simplify_vce.
9580
9581 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
9582
9583 * addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c,
9584 builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h,
9585 cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c,
9586 config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md,
9587 config/aarch64/aarch64.c, config/aarch64/aarch64.h,
9588 config/aarch64/aarch64.md, config/alpha/alpha-protos.h,
9589 config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c,
9590 config/arc/arc.h, config/arc/predicates.md,
9591 config/arm/aarch-common-protos.h, config/arm/aarch-common.c,
9592 config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
9593 config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md,
9594 config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c,
9595 config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c,
9596 config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md,
9597 config/cr16/cr16-protos.h, config/cr16/cr16.c,
9598 config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md,
9599 config/darwin-protos.h, config/darwin.c,
9600 config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c,
9601 config/epiphany/epiphany.md, config/fr30/fr30.c,
9602 config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md,
9603 config/h8300/h8300-protos.h, config/h8300/h8300.c,
9604 config/i386/i386-builtin-types.awk, config/i386/i386-protos.h,
9605 config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md,
9606 config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h,
9607 config/ia64/ia64.c, config/iq2000/iq2000-protos.h,
9608 config/iq2000/iq2000.c, config/iq2000/iq2000.md,
9609 config/lm32/lm32-protos.h, config/lm32/lm32.c,
9610 config/m32c/m32c-protos.h, config/m32c/m32c.c,
9611 config/m32r/m32r-protos.h, config/m32r/m32r.c,
9612 config/m68k/m68k-protos.h, config/m68k/m68k.c,
9613 config/mcore/mcore-protos.h, config/mcore/mcore.c,
9614 config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c,
9615 config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c,
9616 config/mips/mips-protos.h, config/mips/mips.c,
9617 config/mmix/mmix-protos.h, config/mmix/mmix.c,
9618 config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
9619 config/moxie/moxie.c, config/msp430/msp430-protos.h,
9620 config/msp430/msp430.c, config/nds32/nds32-cost.c,
9621 config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
9622 config/nds32/nds32-protos.h, config/nds32/nds32.c,
9623 config/nios2/nios2-protos.h, config/nios2/nios2.c,
9624 config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h,
9625 config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c,
9626 config/rs6000/altivec.md, config/rs6000/rs6000-c.c,
9627 config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
9628 config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c,
9629 config/s390/predicates.md, config/s390/s390-protos.h,
9630 config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
9631 config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c,
9632 config/sh/sh.md, config/sparc/predicates.md,
9633 config/sparc/sparc-protos.h, config/sparc/sparc.c,
9634 config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c,
9635 config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
9636 config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c,
9637 config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h,
9638 config/tilepro/tilepro.c, config/v850/v850-protos.h,
9639 config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h,
9640 config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h,
9641 config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h,
9642 dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi,
9643 doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c,
9644 dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h,
9645 except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c,
9646 fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h,
9647 fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c,
9648 genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c,
9649 graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c,
9650 internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c,
9651 ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h,
9652 libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c,
9653 loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c,
9654 lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c,
9655 lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h,
9656 output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h,
9657 recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c,
9658 regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h,
9659 rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c,
9660 sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c,
9661 simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def,
9662 targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c,
9663 tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c,
9664 tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c,
9665 tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c,
9666 tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c,
9667 tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c,
9668 tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c,
9669 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c,
9670 tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
9671 tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c,
9672 var-tracking.c, varasm.c: Remove redundant enum from
9673 machine_mode.
9674 * gengtype.c (main): Treat machine_mode as a scalar typedef.
9675 * genmodes.c (emit_insn_modes_h): Hide inline functions if
9676 USED_FOR_TARGET.
9677
9678 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
9679
9680 PR rtl-optimization/63340 (part 2)
9681 * rtl.h (invalid_mode_change_p): Delete.
9682 (valid_mode_changes_for_regno): New function.
9683 * reginfo.c (invalid_mode_change_p): Delete.
9684 (valid_mode_changes_for_regno): New function.
9685 * ira-costs.c (setup_regno_cost_classes_by_aclass): Restrict the
9686 classes to registers that are allowed by valid_mode_changes_for_regno.
9687 (setup_regno_cost_classes_by_mode): Likewise.
9688 (print_allocno_costs): Remove invalid_mode_change_p test.
9689 (print_pseudo_costs, find_costs_and_classes): Likewise.
9690
9691 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
9692
9693 PR rtl-optimization/63340 (part 1)
9694 * ira-costs.c (all_cost_classes): New variable.
9695 (complete_cost_classes): New function, split out from...
9696 (setup_cost_classes): ...here.
9697 (initiate_regno_cost_classes): Set up all_cost_classes.
9698 (restrict_cost_classes): New function.
9699 (setup_regno_cost_classes_by_aclass): Restrict the cost classes to
9700 registers that are valid for the register's mode.
9701 (setup_regno_cost_classes_by_mode): Model the mode cache as a
9702 restriction of all_cost_classes to a particular mode.
9703 (print_allocno_costs): Remove contains_reg_of_mode check.
9704 (print_pseudo_costs, find_costs_and_classes): Likewise.
9705
9706 2014-10-29 Richard Biener <rguenther@suse.de>
9707
9708 PR tree-optimization/63666
9709 * tree-vect-slp.c (vect_get_mask_element): Properly handle
9710 accessing out-of-bound elements.
9711
9712 2014-10-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
9713 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9714 Anna Tikhonova <anna.tikhonova@intel.com>
9715 Ilya Tocar <ilya.tocar@intel.com>
9716 Andrey Turetskiy <andrey.turetskiy@intel.com>
9717 Ilya Verbin <ilya.verbin@intel.com>
9718 Kirill Yukhin <kirill.yukhin@intel.com>
9719 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9720
9721 * config/i386/i386.md
9722 (movhi_internal): Always detect maskmov.
9723 (movqi_internal): Fix target check.
9724
9725 2014-10-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
9726 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9727 Anna Tikhonova <anna.tikhonova@intel.com>
9728 Ilya Tocar <ilya.tocar@intel.com>
9729 Andrey Turetskiy <andrey.turetskiy@intel.com>
9730 Ilya Verbin <ilya.verbin@intel.com>
9731 Kirill Yukhin <kirill.yukhin@intel.com>
9732 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9733
9734 * config/i386/avx512bwintrin.h: Add new intrinsics.
9735 * config/i386/avx512vlbwintrin.h: Ditto.
9736 * config/i386/avx512vlintrin.h: Ditto.
9737
9738 2014-10-28 Dominik Vogt <vogt@linux.vnet.ibm.com>
9739
9740 * godump.c (precision_to_units): New helper function.
9741 (go_append_artificial_name): Ditto.
9742 (go_append_decl_name): Ditto.
9743 (go_append_bitfield): Ditto.
9744 (go_get_uinttype_for_precision): Ditto.
9745 (go_append_padding): Ditto.
9746 (go_force_record_alignment): Ditto.
9747 (go_format_type): Represent unions with an array of uints of the size
9748 of the alignment in go. This fixes the 'random' size of the union's
9749 representation using just the first field.
9750 (go_format_type): Add argument that indicates whether a record is
9751 nested (used for generation of artificial go names).
9752 (go_output_fndecl): Adapt to new go_format_type signature.
9753 (go_output_typedef): Ditto.
9754 (go_output_var): Ditto.
9755 (go_output_var): Prefer to output type as alias (typedef).
9756 (go_format_type): Bitfields in records are simulated as arrays of bytes
9757 in go.
9758
9759 * godump.c (go_format_type): Fix handling of arrays with zero elements.
9760
9761 2014-10-28 Andrew MacLeod <amacleod@redhat.com>
9762
9763 * cgraph.h: Flatten. Remove all include files.
9764 (symbol_table::initialize): Move to cgraph.c.
9765 * cgraph.c: Adjust include files.
9766 (symbol_table::initialize): Relocate from cgraph.h.
9767 * gengtype.c (open_base_files): Adjust include files.
9768 * gccplugin.h: Add hash-map.h, is-a.h, plugin-api.h, and ipa-ref.h to
9769 included files.
9770 * ipa-inline.h: Remove all include files.
9771 * ipa-prop.h: Ditto.
9772 * ipa-reference.h: Ditto.
9773 * ipa-utils.h: Ditto:
9774 * lto-streamer.h: Remove cgraph.h from include list.
9775 * asan.c: Adjust include files.
9776 * auto-profile.c: Ditto.
9777 * bb-reorder.c: Ditto.
9778 * calls.c: Ditto.
9779 * cfgexpand.c: Ditto.
9780 * cgraphbuild.c: Ditto.
9781 * cgraphclones.c: Ditto.
9782 * cgraphunit.c: Ditto.
9783 * combine.c: Ditto.
9784 * coverage.c: Ditto.
9785 * data-streamer.c: Ditto.
9786 * data-streamer-in.c: Ditto.
9787 * data-streamer-out.c: Ditto.
9788 * dbxout.c: Ditto.
9789 * dwarf2out.c: Ditto.
9790 * except.c: Ditto.
9791 * expr.c: Ditto.
9792 * final.c: Ditto.
9793 * fold-const.c: Ditto.
9794 * ggc-page.c: Ditto.
9795 * gimple-fold.c: Ditto.
9796 * gimple-iterator.c: Ditto.
9797 * gimple-pretty-print.c: Ditto.
9798 * gimple-streamer-in.c: Ditto.
9799 * gimple-streamer-out.c: Ditto.
9800 * gimplify.c: Ditto.
9801 * ipa.c: Ditto.
9802 * ipa-comdats.c: Ditto.
9803 * ipa-cp.c: Ditto.
9804 * ipa-devirt.c: Ditto.
9805 * ipa-icf.c: Ditto.
9806 * ipa-icf-gimple.c: Ditto.
9807 * ipa-inline-analysis.c: Ditto.
9808 * ipa-inline.c: Ditto.
9809 * ipa-inline-transform.c: Ditto.
9810 * ipa-polymorphic-call.c: Ditto.
9811 * ipa-profile.c: Ditto.
9812 * ipa-prop.c: Ditto.
9813 * ipa-pure-const.c: Ditto.
9814 * ipa-ref.c: Ditto.
9815 * ipa-reference.c: Ditto.
9816 * ipa-split.c: Ditto.
9817 * ipa-utils.c: Ditto.
9818 * ipa-visibility.c: Ditto.
9819 * langhooks.c: Ditto.
9820 * lto-cgraph.c: Ditto.
9821 * lto-compress.c: Ditto.
9822 * lto-opts.c: Ditto.
9823 * lto-section-in.c: Ditto.
9824 * lto-section-out.c: Ditto.
9825 * lto-streamer.c: Ditto.
9826 * lto-streamer-in.c: Ditto.
9827 * lto-streamer-out.c: Ditto.
9828 * omp-low.c: Ditto.
9829 * opts-global.c: Ditto.
9830 * passes.c: Ditto.
9831 * predict.c: Ditto.
9832 * print-tree.c: Ditto.
9833 * profile.c: Ditto.
9834 * ree.c: Ditto.
9835 * stor-layout.c: Ditto.
9836 * symtab.c: Ditto.
9837 * toplev.c: Ditto.
9838 * trans-mem.c: Ditto.
9839 * tree.c: Ditto.
9840 * tree-cfg.c: Ditto.
9841 * tree-eh.c: Ditto.
9842 * tree-emutls.c: Ditto.
9843 * tree-inline.c: Ditto.
9844 * tree-nested.c: Ditto.
9845 * tree-pretty-print.c: Ditto.
9846 * tree-profile.c: Ditto.
9847 * tree-sra.c: Ditto.
9848 * tree-ssa-alias.c: Ditto.
9849 * tree-ssa-loop-ivcanon.c: Ditto.
9850 * tree-ssa-loop-ivopts.c: Ditto.
9851 * tree-ssa-pre.c: Ditto.
9852 * tree-ssa-structalias.c: Ditto.
9853 * tree-streamer.c: Ditto.
9854 * tree-streamer-in.c: Ditto.
9855 * tree-streamer-out.c: Ditto.
9856 * tree-switch-conversion.c: Ditto.
9857 * tree-tailcall.c: Ditto.
9858 * tree-vect-data-refs.c: Ditto.
9859 * tree-vectorizer.c: Ditto.
9860 * tree-vect-stmts.c: Ditto.
9861 * tsan.c: Ditto.
9862 * ubsan.c: Ditto.
9863 * value-prof.c: Ditto.
9864 * varasm.c: Ditto.
9865 * varpool.c: Ditto.
9866 * config/arm/arm.c: Ditto.
9867 * config/bfin/bfin.c: Ditto.
9868 * config/c6x/c6x.c: Ditto.
9869 * config/cris/cris.c: Ditto.
9870 * config/darwin.c: Ditto.
9871 * config/darwin-c.c: Ditto.
9872 * config/i386/i386.c: Ditto.
9873 * config/i386/winnt.c: Ditto.
9874 * config/microblaze/microblaze.c: Ditto.
9875 * config/mips/mips.c: Ditto.
9876 * config/rs6000/rs6000.c: Ditto.
9877 * config/rx/rx.c: Ditto.
9878
9879 2014-10-28 Richard Biener <rguenther@suse.de>
9880
9881 * gimple-fold.h (follow_single_use_edges): Declare.
9882 * gimple-fold.c (follow_single_use_edges): New function.
9883 (gimple_fold_stmt_to_constant_1): Dispatch to gimple_simplify.
9884 * tree-ssa-propagate.c
9885 (substitute_and_fold_dom_walker::before_dom_children): Allow
9886 following single-use edges when folding stmts we propagated into.
9887
9888 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
9889 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9890 Anna Tikhonova <anna.tikhonova@intel.com>
9891 Ilya Tocar <ilya.tocar@intel.com>
9892 Andrey Turetskiy <andrey.turetskiy@intel.com>
9893 Ilya Verbin <ilya.verbin@intel.com>
9894 Kirill Yukhin <kirill.yukhin@intel.com>
9895 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9896
9897 * config/i386/avx512bwintrin.h: New.
9898 * config/i386/avx512dqintrin.h: Ditto.
9899 * config/i386/avx512vlbwintrin.h: Ditto.
9900 * config/i386/avx512vldqintrin.h: Ditto.
9901 * config/i386/avx512vlintrin.h: Ditto.
9902 * config/i386/immintrin.h: Include avx512vlintrin.h, avx512bwintrin.h,
9903 avx512dqintrin.h, avx512vlbwintrin.h, avx512vldqintrin.h.
9904
9905 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
9906 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9907 Anna Tikhonova <anna.tikhonova@intel.com>
9908 Ilya Tocar <ilya.tocar@intel.com>
9909 Andrey Turetskiy <andrey.turetskiy@intel.com>
9910 Ilya Verbin <ilya.verbin@intel.com>
9911 Kirill Yukhin <kirill.yukhin@intel.com>
9912 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9913
9914 * config/i386/i386.c
9915 (ix86_expand_args_builtin): Handle avx_vpermilv4df_mask,
9916 avx_shufpd256_mask, avx_vpermilv2df_mask.
9917
9918 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
9919 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9920 Anna Tikhonova <anna.tikhonova@intel.com>
9921 Ilya Tocar <ilya.tocar@intel.com>
9922 Andrey Turetskiy <andrey.turetskiy@intel.com>
9923 Ilya Verbin <ilya.verbin@intel.com>
9924 Kirill Yukhin <kirill.yukhin@intel.com>
9925 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9926
9927 * config/i386/i386.c
9928 (ix86_init_mmx_sse_builtins):
9929 Define __builtin_ia32_gather3siv2df, __builtin_ia32_gather3siv4df,
9930 __builtin_ia32_gather3div2df, __builtin_ia32_gather3div4df,
9931 __builtin_ia32_gather3siv4sf, __builtin_ia32_gather3siv8sf,
9932 __builtin_ia32_gather3div4sf, __builtin_ia32_gather3div8sf,
9933 __builtin_ia32_gather3siv2di, __builtin_ia32_gather3siv4di,
9934 __builtin_ia32_gather3div2di, __builtin_ia32_gather3div4di,
9935 __builtin_ia32_gather3siv4si, __builtin_ia32_gather3siv8si,
9936 __builtin_ia32_gather3div4si, __builtin_ia32_gather3div8si,
9937 __builtin_ia32_gather3altsiv4df, __builtin_ia32_gather3altdiv8sf,
9938 __builtin_ia32_gather3altsiv4di, __builtin_ia32_gather3altdiv8si,
9939 __builtin_ia32_scattersiv8sf, __builtin_ia32_scattersiv4sf,
9940 __builtin_ia32_scattersiv4df, __builtin_ia32_scattersiv2df,
9941 __builtin_ia32_scatterdiv8sf, __builtin_ia32_scatterdiv4sf,
9942 __builtin_ia32_scatterdiv4df, __builtin_ia32_scatterdiv2df,
9943 __builtin_ia32_scattersiv8si, __builtin_ia32_scattersiv4si,
9944 __builtin_ia32_scattersiv4di, __builtin_ia32_scattersiv2di,
9945 __builtin_ia32_scatterdiv8si, __builtin_ia32_scatterdiv4si,
9946 __builtin_ia32_scatterdiv4di, __builtin_ia32_scatterdiv2di.
9947
9948 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
9949 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9950 Anna Tikhonova <anna.tikhonova@intel.com>
9951 Ilya Tocar <ilya.tocar@intel.com>
9952 Andrey Turetskiy <andrey.turetskiy@intel.com>
9953 Ilya Verbin <ilya.verbin@intel.com>
9954 Kirill Yukhin <kirill.yukhin@intel.com>
9955 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9956
9957 * config/i386/i386.c
9958 (ix86_builtins): Add IX86_BUILTIN_GATHER3ALTSIV4DF,
9959 IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTSIV4DI,
9960 IX86_BUILTIN_GATHER3ALTDIV8SI.
9961 (ix86_expand_builtin):
9962 Handle IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTDIV8SI,
9963 IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV4DI,
9964 IX86_BUILTIN_SCATTERDIV2DF, IX86_BUILTIN_SCATTERDIV4DF,
9965 IX86_BUILTIN_GATHER3ALTSIV4DI, IX86_BUILTIN_GATHER3ALTSIV4DF,
9966 IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
9967 IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3DIV8SI,
9968 IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV4DI,
9969 IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3SIV8SF,
9970 IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
9971 IX86_BUILTIN_GATHER3DIV2DI, IX86_BUILTIN_GATHER3DIV4DI,
9972 IX86_BUILTIN_SCATTERDIV4SF, IX86_BUILTIN_SCATTERSIV2DI,
9973 IX86_BUILTIN_GATHER3SIV2DI, IX86_BUILTIN_GATHER3SIV4SI,
9974 IX86_BUILTIN_GATHER3SIV4SF, IX86_BUILTIN_GATHER3SIV2DF,
9975 IX86_BUILTIN_SCATTERSIV2DF, IX86_BUILTIN_SCATTERDIV4SI,
9976 IX86_BUILTIN_SCATTERSIV4SF, IX86_BUILTIN_SCATTERSIV4SI,
9977 IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
9978 IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV8SF,
9979 IX86_BUILTIN_GATHER3DIV4SF, IX86_BUILTIN_SCATTERDIV8SF.
9980 (ix86_vectorize_builtin_gather): Update V2DFmode, V4DFmode, V2DImode,
9981 V4DImode, V4SFmode, V8SFmode, V4SImode, V8SImode.
9982
9983 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
9984 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9985 Anna Tikhonova <anna.tikhonova@intel.com>
9986 Ilya Tocar <ilya.tocar@intel.com>
9987 Andrey Turetskiy <andrey.turetskiy@intel.com>
9988 Ilya Verbin <ilya.verbin@intel.com>
9989 Kirill Yukhin <kirill.yukhin@intel.com>
9990 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9991
9992 * config/i386/i386-builtin-types.def
9993 (SHORT): New.
9994 (V32HI): Ditto.
9995 (V12QI): Ditto.
9996 (V14QI): Ditto.
9997 (V32SI): Ditto.
9998 (V8UDI): Ditto.
9999 (V16USI): Ditto.
10000 (V32UHI): Ditto.
10001 (PSHORT): Ditto.
10002 (PV32QI): Ditto.
10003 (PV32HI): Ditto.
10004 (PV64QI): Ditto.
10005 (PCV8HI): Ditto.
10006 (PCV16QI): Ditto.
10007 (PCV16HI): Ditto.
10008 (PCV32QI): Ditto.
10009 (PCV32HI): Ditto.
10010 (PCV64QI): Ditto.
10011 (V4SF_FTYPE_V2DF_V4SF_QI): Ditto.
10012 (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
10013 (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
10014 (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
10015 (V16SF_FTYPE_V16HI): Ditto.
10016 (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
10017 (V16SF_FTYPE_V16SI): Ditto.
10018 (V4DI_FTYPE_V4DI): Ditto.
10019 (V16SI_FTYPE_V16SF): Ditto.
10020 (V8DI_FTYPE_PV2DI): Ditto.
10021 (V8DF_FTYPE_PV2DF): Ditto.
10022 (V4DI_FTYPE_PV2DI): Ditto.
10023 (V4DF_FTYPE_PV2DF): Ditto.
10024 (V16SI_FTYPE_PV2SI): Ditto.
10025 (V16SF_FTYPE_PV2SF): Ditto.
10026 (V8SF_FTYPE_FLOAT): Ditto.
10027 (V4SF_FTYPE_FLOAT): Ditto.
10028 (V4DF_FTYPE_DOUBLE): Ditto.
10029 (V8SF_FTYPE_PV4SF): Ditto.
10030 (V8SI_FTYPE_PV4SI): Ditto.
10031 (V4SI_FTYPE_PV2SI): Ditto.
10032 (V8SF_FTYPE_PV2SF): Ditto.
10033 (V8SI_FTYPE_PV2SI): Ditto.
10034 (V16SF_FTYPE_PV8SF): Ditto.
10035 (V16SI_FTYPE_PV8SI): Ditto.
10036 (V8DI_FTYPE_V8SF): Ditto.
10037 (V4DI_FTYPE_V4SF): Ditto.
10038 (V2DI_FTYPE_V4SF): Ditto.
10039 (V64QI_FTYPE_QI): Ditto.
10040 (V32HI_FTYPE_HI): Ditto.
10041 (V16UHI_FTYPE_V16UHI): Ditto.
10042 (V32UHI_FTYPE_V32UHI): Ditto.
10043 (V2UDI_FTYPE_V2UDI): Ditto.
10044 (V4UDI_FTYPE_V4UDI): Ditto.
10045 (V8UDI_FTYPE_V8UDI): Ditto.
10046 (V4USI_FTYPE_V4USI): Ditto.
10047 (V16USI_FTYPE_V16USI): Ditto.
10048 (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
10049 (V2DF_FTYPE_V8DF_INT): Ditto.
10050 (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
10051 (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
10052 (V8DF_FTYPE_V8DF_INT): Ditto.
10053 (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
10054 (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
10055 (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
10056 (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
10057 (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
10058 (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
10059 (V8DI_FTYPE_V8DI_INT): Ditto.
10060 (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
10061 (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
10062 (V8SF_FTYPE_V16SF_INT): Ditto.
10063 (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
10064 (V64QI_FTYPE_V32HI_V32HI): Ditto.
10065 (V32HI_FTYPE_V16SI_V16SI): Ditto.
10066 (V8DF_FTYPE_V8DF_V2DF_INT): Ditto.
10067 (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
10068 (V8DF_FTYPE_V8DF_V8DF_INT): Ditto.
10069 (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT): Ditto.
10070 (V8DF_FTYPE_V8DF_V8DF_V8DI_INT): Ditto.
10071 (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
10072 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
10073 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
10074 (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT): Ditto.
10075 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
10076 (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
10077 (V32HI_FTYPE_V64QI_V64QI): Ditto.
10078 (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
10079 (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
10080 (V32HI_FTYPE_V32HI_V32HI): Ditto.
10081 (V32HI_FTYPE_V32HI_INT): Ditto.
10082 (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
10083 (V16SI_FTYPE_V32HI_V32HI): Ditto.
10084 (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
10085 (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
10086 (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
10087 (V8SI_FTYPE_V16SI_INT): Ditto.
10088 (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
10089 (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
10090 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
10091 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
10092 (V8DI_FTYPE_V8DI_V4DI_INT): Ditto.
10093 (V8DI_FTYPE_V8DI_V2DI_INT): Ditto.
10094 (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
10095 (V8DI_FTYPE_V16SI_V16SI): Ditto.
10096 (V8DI_FTYPE_V64QI_V64QI): Ditto.
10097 (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
10098 (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
10099 (V2DI_FTYPE_V8DI_INT): Ditto.
10100 (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
10101 (QI_FTYPE_QI): Ditto.
10102 (SI_FTYPE_SI): Ditto.
10103 (DI_FTYPE_DI): Ditto.
10104 (HI_FTYPE_V16QI): Ditto.
10105 (SI_FTYPE_V32QI): Ditto.
10106 (DI_FTYPE_V64QI): Ditto.
10107 (QI_FTYPE_V8HI): Ditto.
10108 (HI_FTYPE_V16HI): Ditto.
10109 (SI_FTYPE_V32HI): Ditto.
10110 (QI_FTYPE_V4SI): Ditto.
10111 (QI_FTYPE_V8SI): Ditto.
10112 (HI_FTYPE_V16SI): Ditto.
10113 (QI_FTYPE_V2DI): Ditto.
10114 (QI_FTYPE_V4DI): Ditto.
10115 (QI_FTYPE_V8DI): Ditto.
10116 (V16QI_FTYPE_HI): Ditto.
10117 (V32QI_FTYPE_SI): Ditto.
10118 (V64QI_FTYPE_DI): Ditto.
10119 (V8HI_FTYPE_QI): Ditto.
10120 (V16HI_FTYPE_HI): Ditto.
10121 (V32HI_FTYPE_SI): Ditto.
10122 (V4SI_FTYPE_QI): Ditto.
10123 (V4SI_FTYPE_HI): Ditto.
10124 (V8SI_FTYPE_QI): Ditto.
10125 (V8SI_FTYPE_HI): Ditto.
10126 (V2DI_FTYPE_QI): Ditto.
10127 (V4DI_FTYPE_QI): Ditto.
10128 (QI_FTYPE_QI_QI): Ditto.
10129 (SI_FTYPE_SI_SI): Ditto.
10130 (DI_FTYPE_DI_DI): Ditto.
10131 (QI_FTYPE_QI_INT): Ditto.
10132 (SI_FTYPE_SI_INT): Ditto.
10133 (DI_FTYPE_DI_INT): Ditto.
10134 (HI_FTYPE_V16QI_V16QI): Ditto.
10135 (HI_FTYPE_V16QI_V16QI_HI): Ditto.
10136 (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
10137 (SI_FTYPE_V32QI_V32QI): Ditto.
10138 (SI_FTYPE_V32QI_V32QI_SI): Ditto.
10139 (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
10140 (DI_FTYPE_V64QI_V64QI): Ditto.
10141 (DI_FTYPE_V64QI_V64QI_DI): Ditto.
10142 (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
10143 (QI_FTYPE_V8HI_V8HI): Ditto.
10144 (QI_FTYPE_V8HI_V8HI_QI): Ditto.
10145 (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
10146 (HI_FTYPE_V16HI_V16HI): Ditto.
10147 (HI_FTYPE_V16HI_V16HI_HI): Ditto.
10148 (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
10149 (SI_FTYPE_V32HI_V32HI): Ditto.
10150 (SI_FTYPE_V32HI_V32HI_SI): Ditto.
10151 (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
10152 (QI_FTYPE_V4SI_V4SI): Ditto.
10153 (QI_FTYPE_V4SI_V4SI_QI): Ditto.
10154 (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
10155 (QI_FTYPE_V8SI_V8SI): Ditto.
10156 (QI_FTYPE_V8SI_V8SI_QI): Ditto.
10157 (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
10158 (QI_FTYPE_V2DI_V2DI): Ditto.
10159 (QI_FTYPE_V2DI_V2DI_QI): Ditto.
10160 (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
10161 (QI_FTYPE_V4DI_V4DI): Ditto.
10162 (QI_FTYPE_V4DI_V4DI_QI): Ditto.
10163 (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
10164 (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
10165 (V4DF_FTYPE_V4DF_V4DI_INT): Ditto.
10166 (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
10167 (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
10168 (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
10169 (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
10170 (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
10171 (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
10172 (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
10173 (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
10174 (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
10175 (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
10176 (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
10177 (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
10178 (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
10179 (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
10180 (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
10181 (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
10182 (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
10183 (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
10184 (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
10185 (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
10186 (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
10187 (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
10188 (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
10189 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
10190 (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
10191 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
10192 (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
10193 (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
10194 (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
10195 (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
10196 (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
10197 (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
10198 (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
10199 (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
10200 (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
10201 (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
10202 (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
10203 (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
10204 (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
10205 (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
10206 (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
10207 (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
10208 (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
10209 (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
10210 (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
10211 (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
10212 (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
10213 (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
10214 (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
10215 (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
10216 (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
10217 (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
10218 (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
10219 (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
10220 (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
10221 (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
10222 (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
10223 (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
10224 (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
10225 (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
10226 (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
10227 (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
10228 (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
10229 (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
10230 (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
10231 (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
10232 (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
10233 (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
10234 (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
10235 (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
10236 (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
10237 (V32HI_FTYPE_V64QI_V64QI_INT): Ditto.
10238 (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
10239 (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
10240 (V16HI_FTYPE_V32QI_V32QI_INT): Ditto.
10241 (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
10242 (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
10243 (V8HI_FTYPE_V16QI_V16QI_INT): Ditto.
10244 (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
10245 (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
10246 (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
10247 (V8SI_FTYPE_SI_V8SI_QI): Ditto.
10248 (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
10249 (V4SI_FTYPE_SI_V4SI_QI): Ditto.
10250 (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
10251 (V4DI_FTYPE_DI_V4DI_QI): Ditto.
10252 (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
10253 (V2DI_FTYPE_DI_V2DI_QI): Ditto.
10254 (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
10255 (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
10256 (V64QI_FTYPE_QI_V64QI_DI): Ditto.
10257 (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
10258 (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
10259 (V32QI_FTYPE_QI_V32QI_SI): Ditto.
10260 (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
10261 (V16QI_FTYPE_QI_V16QI_HI): Ditto.
10262 (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
10263 (V32HI_FTYPE_HI_V32HI_SI): Ditto.
10264 (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
10265 (V16HI_FTYPE_HI_V16HI_HI): Ditto.
10266 (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
10267 (V8HI_FTYPE_HI_V8HI_QI): Ditto.
10268 (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
10269 (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
10270 (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
10271 (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
10272 (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
10273 (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
10274 (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
10275 (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
10276 (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
10277 (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
10278 (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
10279 (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
10280 (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
10281 (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
10282 (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
10283 (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
10284 (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
10285 (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
10286 (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
10287 (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
10288 (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
10289 (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
10290 (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
10291 (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
10292 (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
10293 (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
10294 (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
10295 (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
10296 (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
10297 (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
10298 (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
10299 (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
10300 (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
10301 (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
10302 (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
10303 (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
10304 (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
10305 (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
10306 (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
10307 (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
10308 (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
10309 (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
10310 (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
10311 (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
10312 (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
10313 (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
10314 (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
10315 (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
10316 (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
10317 (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
10318 (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
10319 (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
10320 (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
10321 (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
10322 (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
10323 (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
10324 (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
10325 (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
10326 (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
10327 (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
10328 (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
10329 (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
10330 (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
10331 (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
10332 (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
10333 (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
10334 (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
10335 (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
10336 (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
10337 (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
10338 (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
10339 (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
10340 (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
10341 (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
10342 (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
10343 (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
10344 (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
10345 (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
10346 (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
10347 (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
10348 (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
10349 (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
10350 (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
10351 (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
10352 (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
10353 (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
10354 (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
10355 (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
10356 (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
10357 (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
10358 (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
10359 (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
10360 (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
10361 (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
10362 (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
10363 (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
10364 (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
10365 (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
10366 (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
10367 (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
10368 (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
10369 (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
10370 (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
10371 (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
10372 (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
10373 (QI_FTYPE_V8DF_INT): Ditto.
10374 (QI_FTYPE_V4DF_INT): Ditto.
10375 (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
10376 (QI_FTYPE_V2DF_INT): Ditto.
10377 (HI_FTYPE_V16SF_INT): Ditto.
10378 (QI_FTYPE_V8SF_INT): Ditto.
10379 (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
10380 (QI_FTYPE_V4SF_INT): Ditto.
10381 (QI_FTYPE_V8DF_INT_QI): Ditto.
10382 (QI_FTYPE_V4DF_INT_QI): Ditto.
10383 (QI_FTYPE_V2DF_INT_QI): Ditto.
10384 (HI_FTYPE_V16SF_INT_HI): Ditto.
10385 (QI_FTYPE_V8SF_INT_QI): Ditto.
10386 (QI_FTYPE_V4SF_INT_QI): Ditto.
10387 (V8DI_FTYPE_V8DF_V8DI_QI_INT): Ditto.
10388 (V8DI_FTYPE_V8SF_V8DI_QI_INT): Ditto.
10389 (V8DF_FTYPE_V8DI_V8DF_QI_INT): Ditto.
10390 (V8SF_FTYPE_V8DI_V8SF_QI_INT): Ditto.
10391 (V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_QI_INT): Ditto.
10392 (V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_QI_INT): Ditto.
10393 (V4DF_FTYPE_V4DF_PCDOUBLE_V8SI_QI_INT): Ditto.
10394 (V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_QI_INT): Ditto.
10395 (V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_QI_INT): Ditto.
10396 (V4SF_FTYPE_V4SF_PCFLOAT_V4SI_QI_INT): Ditto.
10397 (V8SF_FTYPE_V8SF_PCFLOAT_V8SI_QI_INT): Ditto.
10398 (V4SF_FTYPE_V4SF_PCFLOAT_V2DI_QI_INT): Ditto.
10399 (V4SF_FTYPE_V4SF_PCFLOAT_V4DI_QI_INT): Ditto.
10400 (V8SF_FTYPE_V8SF_PCFLOAT_V4DI_QI_INT): Ditto.
10401 (V2DI_FTYPE_V2DI_PCINT64_V4SI_QI_INT): Ditto.
10402 (V4DI_FTYPE_V4DI_PCINT64_V4SI_QI_INT): Ditto.
10403 (V4DI_FTYPE_V4DI_PCINT64_V8SI_QI_INT): Ditto.
10404 (V2DI_FTYPE_V2DI_PCINT64_V2DI_QI_INT): Ditto.
10405 (V4DI_FTYPE_V4DI_PCINT64_V4DI_QI_INT): Ditto.
10406 (V4SI_FTYPE_V4SI_PCINT_V4SI_QI_INT): Ditto.
10407 (V8SI_FTYPE_V8SI_PCINT_V8SI_QI_INT): Ditto.
10408 (V4SI_FTYPE_V4SI_PCINT_V2DI_QI_INT): Ditto.
10409 (V4SI_FTYPE_V4SI_PCINT_V4DI_QI_INT): Ditto.
10410 (V8SI_FTYPE_V8SI_PCINT_V4DI_QI_INT): Ditto.
10411 (VOID_FTYPE_PFLOAT_QI_V8SI_V8SF_INT): Ditto.
10412 (VOID_FTYPE_PFLOAT_QI_V4SI_V4SF_INT): Ditto.
10413 (VOID_FTYPE_PDOUBLE_QI_V4SI_V4DF_INT): Ditto.
10414 (VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT): Ditto.
10415 (VOID_FTYPE_PFLOAT_QI_V4DI_V4SF_INT): Ditto.
10416 (VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT): Ditto.
10417 (VOID_FTYPE_PDOUBLE_QI_V4DI_V4DF_INT): Ditto.
10418 (VOID_FTYPE_PDOUBLE_QI_V2DI_V2DF_INT): Ditto.
10419 (VOID_FTYPE_PINT_QI_V8SI_V8SI_INT): Ditto.
10420 (VOID_FTYPE_PINT_QI_V4SI_V4SI_INT): Ditto.
10421 (VOID_FTYPE_PLONGLONG_QI_V4SI_V4DI_INT): Ditto.
10422 (VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT): Ditto.
10423 (VOID_FTYPE_PINT_QI_V4DI_V4SI_INT): Ditto.
10424 (VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): Ditto.
10425 (VOID_FTYPE_PLONGLONG_QI_V4DI_V4DI_INT): Ditto.
10426 (VOID_FTYPE_PLONGLONG_QI_V2DI_V2DI_INT): Ditto.
10427 (V8DI_FTYPE_V8DI_INT): Ditto.
10428 (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
10429 (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
10430 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
10431 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
10432 (V2DF_FTYPE_ V2DF_ V2DF_ V2DI_ INT_ QI): Remove.
10433 (V4SF_FTYPE_ V4SF_ V2DF_ V4SF_ QI): Ditto.
10434 (V4SF_FTYPE_ V4SF_ V4SF_ V4SF_ QI): Ditto.
10435 (V2DF_FTYPE_ PCDOUBLE_ V2DF_ QI): Ditto.
10436 (V4SF_FTYPE_ PCFLOAT_ V4SF_ QI): Ditto.
10437 (V16QI_FTYPE_ V16SI_ V16QI_ HI): Ditto.
10438 (V16QI_FTYPE_ V8DI_ V16QI_ QI): Ditto.
10439 (V4SF_FTYPE_ V4SF_ V4SF_ INT_ V4SF_ QI): Ditto.
10440 (V2DF_FTYPE_ V2DF_ V2DF_ INT_ V2DF_ QI): Ditto.
10441 (V8DI_FTYPE_ V16SI_ V16SI_ V8DI_ QI): Ditto.
10442 * config/i386/i386.c (ix86_builtins):
10443 Add IX86_BUILTIN_PMOVUSQD256_MEM, IX86_BUILTIN_PMOVUSQD128_MEM,
10444 IX86_BUILTIN_PMOVSQD256_MEM, IX86_BUILTIN_PMOVSQD128_MEM,
10445 IX86_BUILTIN_PMOVQD256_MEM, IX86_BUILTIN_PMOVQD128_MEM,
10446 IX86_BUILTIN_PMOVUSQW256_MEM, IX86_BUILTIN_PMOVUSQW128_MEM,
10447 IX86_BUILTIN_PMOVSQW256_MEM, IX86_BUILTIN_PMOVSQW128_MEM,
10448 IX86_BUILTIN_PMOVQW256_MEM, IX86_BUILTIN_PMOVQW128_MEM,
10449 IX86_BUILTIN_PMOVUSQB256_MEM, IX86_BUILTIN_PMOVUSQB128_MEM,
10450 IX86_BUILTIN_PMOVSQB256_MEM, IX86_BUILTIN_PMOVSQB128_MEM,
10451 IX86_BUILTIN_PMOVQB256_MEM, IX86_BUILTIN_PMOVQB128_MEM,
10452 IX86_BUILTIN_PMOVUSDW256_MEM, IX86_BUILTIN_PMOVUSDW128_MEM,
10453 IX86_BUILTIN_PMOVSDW256_MEM, IX86_BUILTIN_PMOVSDW128_MEM,
10454 IX86_BUILTIN_PMOVDW256_MEM, IX86_BUILTIN_PMOVDW128_MEM,
10455 IX86_BUILTIN_PMOVUSDB256_MEM, IX86_BUILTIN_PMOVUSDB128_MEM,
10456 IX86_BUILTIN_PMOVSDB256_MEM, IX86_BUILTIN_PMOVSDB128_MEM,
10457 IX86_BUILTIN_PMOVDB256_MEM, IX86_BUILTIN_PMOVDB128_MEM,
10458 IX86_BUILTIN_MOVDQA64LOAD256_MASK, IX86_BUILTIN_MOVDQA64LOAD128_MASK,
10459 IX86_BUILTIN_MOVDQA32LOAD256_MASK, IX86_BUILTIN_MOVDQA32LOAD128_MASK,
10460 IX86_BUILTIN_MOVDQA64STORE256_MASK, IX86_BUILTIN_MOVDQA64STORE128_MASK,
10461 IX86_BUILTIN_MOVDQA32STORE256_MASK, IX86_BUILTIN_MOVDQA32STORE128_MASK,
10462 IX86_BUILTIN_LOADAPD256_MASK, IX86_BUILTIN_LOADAPD128_MASK,
10463 IX86_BUILTIN_LOADAPS256_MASK, IX86_BUILTIN_LOADAPS128_MASK,
10464 IX86_BUILTIN_STOREAPD256_MASK, IX86_BUILTIN_STOREAPD128_MASK,
10465 IX86_BUILTIN_STOREAPS256_MASK, IX86_BUILTIN_STOREAPS128_MASK,
10466 IX86_BUILTIN_LOADUPD256_MASK, IX86_BUILTIN_LOADUPD128_MASK,
10467 IX86_BUILTIN_LOADUPS256_MASK, IX86_BUILTIN_LOADUPS128_MASK,
10468 IX86_BUILTIN_STOREUPD256_MASK, IX86_BUILTIN_STOREUPD128_MASK,
10469 IX86_BUILTIN_STOREUPS256_MASK, IX86_BUILTIN_STOREUPS128_MASK,
10470 IX86_BUILTIN_LOADDQUDI256_MASK, IX86_BUILTIN_LOADDQUDI128_MASK,
10471 IX86_BUILTIN_LOADDQUSI256_MASK, IX86_BUILTIN_LOADDQUSI128_MASK,
10472 IX86_BUILTIN_LOADDQUHI256_MASK, IX86_BUILTIN_LOADDQUHI128_MASK,
10473 IX86_BUILTIN_LOADDQUQI256_MASK, IX86_BUILTIN_LOADDQUQI128_MASK,
10474 IX86_BUILTIN_STOREDQUDI256_MASK, IX86_BUILTIN_STOREDQUDI128_MASK,
10475 IX86_BUILTIN_STOREDQUSI256_MASK, IX86_BUILTIN_STOREDQUSI128_MASK,
10476 IX86_BUILTIN_STOREDQUHI256_MASK, IX86_BUILTIN_STOREDQUHI128_MASK,
10477 IX86_BUILTIN_STOREDQUQI256_MASK, IX86_BUILTIN_STOREDQUQI128_MASK,
10478 IX86_BUILTIN_COMPRESSPDSTORE256, IX86_BUILTIN_COMPRESSPDSTORE128,
10479 IX86_BUILTIN_COMPRESSPSSTORE256, IX86_BUILTIN_COMPRESSPSSTORE128,
10480 IX86_BUILTIN_PCOMPRESSQSTORE256, IX86_BUILTIN_PCOMPRESSQSTORE128,
10481 IX86_BUILTIN_PCOMPRESSDSTORE256, IX86_BUILTIN_PCOMPRESSDSTORE128,
10482 IX86_BUILTIN_EXPANDPDLOAD256, IX86_BUILTIN_EXPANDPDLOAD128,
10483 IX86_BUILTIN_EXPANDPSLOAD256, IX86_BUILTIN_EXPANDPSLOAD128,
10484 IX86_BUILTIN_PEXPANDQLOAD256, IX86_BUILTIN_PEXPANDQLOAD128,
10485 IX86_BUILTIN_PEXPANDDLOAD256, IX86_BUILTIN_PEXPANDDLOAD128,
10486 IX86_BUILTIN_EXPANDPDLOAD256Z, IX86_BUILTIN_EXPANDPDLOAD128Z,
10487 IX86_BUILTIN_EXPANDPSLOAD256Z, IX86_BUILTIN_EXPANDPSLOAD128Z,
10488 IX86_BUILTIN_PEXPANDQLOAD256Z, IX86_BUILTIN_PEXPANDQLOAD128Z,
10489 IX86_BUILTIN_PEXPANDDLOAD256Z, IX86_BUILTIN_PEXPANDDLOAD128Z,
10490 IX86_BUILTIN_PALIGNR256_MASK, IX86_BUILTIN_PALIGNR128_MASK,
10491 IX86_BUILTIN_MOVDQA64_256_MASK, IX86_BUILTIN_MOVDQA64_128_MASK,
10492 IX86_BUILTIN_MOVDQA32_256_MASK, IX86_BUILTIN_MOVDQA32_128_MASK,
10493 IX86_BUILTIN_MOVAPD256_MASK, IX86_BUILTIN_MOVAPD128_MASK,
10494 IX86_BUILTIN_MOVAPS256_MASK, IX86_BUILTIN_MOVAPS128_MASK,
10495 IX86_BUILTIN_MOVDQUHI256_MASK, IX86_BUILTIN_MOVDQUHI128_MASK,
10496 IX86_BUILTIN_MOVDQUQI256_MASK, IX86_BUILTIN_MOVDQUQI128_MASK,
10497 IX86_BUILTIN_MINPS128_MASK, IX86_BUILTIN_MAXPS128_MASK,
10498 IX86_BUILTIN_MINPD128_MASK, IX86_BUILTIN_MAXPD128_MASK,
10499 IX86_BUILTIN_MAXPD256_MASK, IX86_BUILTIN_MAXPS256_MASK,
10500 IX86_BUILTIN_MINPD256_MASK, IX86_BUILTIN_MINPS256_MASK,
10501 IX86_BUILTIN_MULPS128_MASK, IX86_BUILTIN_DIVPS128_MASK,
10502 IX86_BUILTIN_MULPD128_MASK, IX86_BUILTIN_DIVPD128_MASK,
10503 IX86_BUILTIN_DIVPD256_MASK, IX86_BUILTIN_DIVPS256_MASK,
10504 IX86_BUILTIN_MULPD256_MASK, IX86_BUILTIN_MULPS256_MASK,
10505 IX86_BUILTIN_ADDPD128_MASK, IX86_BUILTIN_ADDPD256_MASK,
10506 IX86_BUILTIN_ADDPS128_MASK, IX86_BUILTIN_ADDPS256_MASK,
10507 IX86_BUILTIN_SUBPD128_MASK, IX86_BUILTIN_SUBPD256_MASK,
10508 IX86_BUILTIN_SUBPS128_MASK, IX86_BUILTIN_SUBPS256_MASK,
10509 IX86_BUILTIN_XORPD256_MASK, IX86_BUILTIN_XORPD128_MASK,
10510 IX86_BUILTIN_XORPS256_MASK, IX86_BUILTIN_XORPS128_MASK,
10511 IX86_BUILTIN_ORPD256_MASK, IX86_BUILTIN_ORPD128_MASK,
10512 IX86_BUILTIN_ORPS256_MASK, IX86_BUILTIN_ORPS128_MASK,
10513 IX86_BUILTIN_BROADCASTF32x2_256, IX86_BUILTIN_BROADCASTI32x2_256,
10514 IX86_BUILTIN_BROADCASTI32x2_128, IX86_BUILTIN_BROADCASTF64X2_256,
10515 IX86_BUILTIN_BROADCASTI64X2_256, IX86_BUILTIN_BROADCASTF32X4_256,
10516 IX86_BUILTIN_BROADCASTI32X4_256, IX86_BUILTIN_EXTRACTF32X4_256,
10517 IX86_BUILTIN_EXTRACTI32X4_256, IX86_BUILTIN_DBPSADBW256,
10518 IX86_BUILTIN_DBPSADBW128, IX86_BUILTIN_CVTTPD2QQ256,
10519 IX86_BUILTIN_CVTTPD2QQ128, IX86_BUILTIN_CVTTPD2UQQ256,
10520 IX86_BUILTIN_CVTTPD2UQQ128, IX86_BUILTIN_CVTPD2QQ256,
10521 IX86_BUILTIN_CVTPD2QQ128, IX86_BUILTIN_CVTPD2UQQ256,
10522 IX86_BUILTIN_CVTPD2UQQ128, IX86_BUILTIN_CVTPD2UDQ256_MASK,
10523 IX86_BUILTIN_CVTPD2UDQ128_MASK, IX86_BUILTIN_CVTTPS2QQ256,
10524 IX86_BUILTIN_CVTTPS2QQ128, IX86_BUILTIN_CVTTPS2UQQ256,
10525 IX86_BUILTIN_CVTTPS2UQQ128, IX86_BUILTIN_CVTTPS2DQ256_MASK,
10526 IX86_BUILTIN_CVTTPS2DQ128_MASK, IX86_BUILTIN_CVTTPS2UDQ256,
10527 IX86_BUILTIN_CVTTPS2UDQ128, IX86_BUILTIN_CVTTPD2DQ256_MASK,
10528 IX86_BUILTIN_CVTTPD2DQ128_MASK, IX86_BUILTIN_CVTTPD2UDQ256_MASK,
10529 IX86_BUILTIN_CVTTPD2UDQ128_MASK, IX86_BUILTIN_CVTPD2DQ256_MASK,
10530 IX86_BUILTIN_CVTPD2DQ128_MASK, IX86_BUILTIN_CVTDQ2PD256_MASK,
10531 IX86_BUILTIN_CVTDQ2PD128_MASK, IX86_BUILTIN_CVTUDQ2PD256_MASK,
10532 IX86_BUILTIN_CVTUDQ2PD128_MASK, IX86_BUILTIN_CVTDQ2PS256_MASK,
10533 IX86_BUILTIN_CVTDQ2PS128_MASK, IX86_BUILTIN_CVTUDQ2PS256_MASK,
10534 IX86_BUILTIN_CVTUDQ2PS128_MASK, IX86_BUILTIN_CVTPS2PD256_MASK,
10535 IX86_BUILTIN_CVTPS2PD128_MASK, IX86_BUILTIN_PBROADCASTB256_MASK,
10536 IX86_BUILTIN_PBROADCASTB256_GPR_MASK, IX86_BUILTIN_PBROADCASTB128_MASK,
10537 IX86_BUILTIN_PBROADCASTB128_GPR_MASK, IX86_BUILTIN_PBROADCASTW256_MASK,
10538 IX86_BUILTIN_PBROADCASTW256_GPR_MASK, IX86_BUILTIN_PBROADCASTW128_MASK,
10539 IX86_BUILTIN_PBROADCASTW128_GPR_MASK, IX86_BUILTIN_PBROADCASTD256_MASK,
10540 IX86_BUILTIN_PBROADCASTD256_GPR_MASK, IX86_BUILTIN_PBROADCASTD128_MASK,
10541 IX86_BUILTIN_PBROADCASTD128_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MASK,
10542 IX86_BUILTIN_PBROADCASTQ256_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
10543 IX86_BUILTIN_PBROADCASTQ128_MASK, IX86_BUILTIN_PBROADCASTQ128_GPR_MASK,
10544 IX86_BUILTIN_PBROADCASTQ128_MEM_MASK, IX86_BUILTIN_BROADCASTSS256,
10545 IX86_BUILTIN_BROADCASTSS128, IX86_BUILTIN_BROADCASTSD256,
10546 IX86_BUILTIN_EXTRACTF64X2_256, IX86_BUILTIN_EXTRACTI64X2_256,
10547 IX86_BUILTIN_INSERTF32X4_256, IX86_BUILTIN_INSERTI32X4_256,
10548 IX86_BUILTIN_PMOVSXBW256_MASK, IX86_BUILTIN_PMOVSXBW128_MASK,
10549 IX86_BUILTIN_PMOVSXBD256_MASK, IX86_BUILTIN_PMOVSXBD128_MASK,
10550 IX86_BUILTIN_PMOVSXBQ256_MASK, IX86_BUILTIN_PMOVSXBQ128_MASK,
10551 IX86_BUILTIN_PMOVSXWD256_MASK, IX86_BUILTIN_PMOVSXWD128_MASK,
10552 IX86_BUILTIN_PMOVSXWQ256_MASK, IX86_BUILTIN_PMOVSXWQ128_MASK,
10553 IX86_BUILTIN_PMOVSXDQ256_MASK, IX86_BUILTIN_PMOVSXDQ128_MASK,
10554 IX86_BUILTIN_PMOVZXBW256_MASK, IX86_BUILTIN_PMOVZXBW128_MASK,
10555 IX86_BUILTIN_PMOVZXBD256_MASK, IX86_BUILTIN_PMOVZXBD128_MASK,
10556 IX86_BUILTIN_PMOVZXBQ256_MASK, IX86_BUILTIN_PMOVZXBQ128_MASK,
10557 IX86_BUILTIN_PMOVZXWD256_MASK, IX86_BUILTIN_PMOVZXWD128_MASK,
10558 IX86_BUILTIN_PMOVZXWQ256_MASK, IX86_BUILTIN_PMOVZXWQ128_MASK,
10559 IX86_BUILTIN_PMOVZXDQ256_MASK, IX86_BUILTIN_PMOVZXDQ128_MASK,
10560 IX86_BUILTIN_REDUCEPD256_MASK, IX86_BUILTIN_REDUCEPD128_MASK,
10561 IX86_BUILTIN_REDUCEPS256_MASK, IX86_BUILTIN_REDUCEPS128_MASK,
10562 IX86_BUILTIN_REDUCESD_MASK, IX86_BUILTIN_REDUCESS_MASK,
10563 IX86_BUILTIN_VPERMVARHI256_MASK, IX86_BUILTIN_VPERMVARHI128_MASK,
10564 IX86_BUILTIN_VPERMT2VARHI256, IX86_BUILTIN_VPERMT2VARHI256_MASKZ,
10565 IX86_BUILTIN_VPERMT2VARHI128, IX86_BUILTIN_VPERMT2VARHI128_MASKZ,
10566 IX86_BUILTIN_VPERMI2VARHI256, IX86_BUILTIN_VPERMI2VARHI128,
10567 IX86_BUILTIN_RCP14PD256, IX86_BUILTIN_RCP14PD128,
10568 IX86_BUILTIN_RCP14PS256, IX86_BUILTIN_RCP14PS128,
10569 IX86_BUILTIN_RSQRT14PD256_MASK, IX86_BUILTIN_RSQRT14PD128_MASK,
10570 IX86_BUILTIN_RSQRT14PS256_MASK, IX86_BUILTIN_RSQRT14PS128_MASK,
10571 IX86_BUILTIN_SQRTPD256_MASK, IX86_BUILTIN_SQRTPD128_MASK,
10572 IX86_BUILTIN_SQRTPS256_MASK, IX86_BUILTIN_SQRTPS128_MASK,
10573 IX86_BUILTIN_PADDB128_MASK, IX86_BUILTIN_PADDW128_MASK,
10574 IX86_BUILTIN_PADDD128_MASK, IX86_BUILTIN_PADDQ128_MASK,
10575 IX86_BUILTIN_PSUBB128_MASK, IX86_BUILTIN_PSUBW128_MASK,
10576 IX86_BUILTIN_PSUBD128_MASK, IX86_BUILTIN_PSUBQ128_MASK,
10577 IX86_BUILTIN_PADDSB128_MASK, IX86_BUILTIN_PADDSW128_MASK,
10578 IX86_BUILTIN_PSUBSB128_MASK, IX86_BUILTIN_PSUBSW128_MASK,
10579 IX86_BUILTIN_PADDUSB128_MASK, IX86_BUILTIN_PADDUSW128_MASK,
10580 IX86_BUILTIN_PSUBUSB128_MASK, IX86_BUILTIN_PSUBUSW128_MASK,
10581 IX86_BUILTIN_PADDB256_MASK, IX86_BUILTIN_PADDW256_MASK,
10582 IX86_BUILTIN_PADDD256_MASK, IX86_BUILTIN_PADDQ256_MASK,
10583 IX86_BUILTIN_PADDSB256_MASK, IX86_BUILTIN_PADDSW256_MASK,
10584 IX86_BUILTIN_PADDUSB256_MASK, IX86_BUILTIN_PADDUSW256_MASK,
10585 IX86_BUILTIN_PSUBB256_MASK, IX86_BUILTIN_PSUBW256_MASK,
10586 IX86_BUILTIN_PSUBD256_MASK, IX86_BUILTIN_PSUBQ256_MASK,
10587 IX86_BUILTIN_PSUBSB256_MASK, IX86_BUILTIN_PSUBSW256_MASK,
10588 IX86_BUILTIN_PSUBUSB256_MASK, IX86_BUILTIN_PSUBUSW256_MASK,
10589 IX86_BUILTIN_SHUF_F64x2_256, IX86_BUILTIN_SHUF_I64x2_256,
10590 IX86_BUILTIN_SHUF_I32x4_256, IX86_BUILTIN_SHUF_F32x4_256,
10591 IX86_BUILTIN_PMOVWB128, IX86_BUILTIN_PMOVWB256,
10592 IX86_BUILTIN_PMOVSWB128, IX86_BUILTIN_PMOVSWB256,
10593 IX86_BUILTIN_PMOVUSWB128, IX86_BUILTIN_PMOVUSWB256,
10594 IX86_BUILTIN_PMOVDB128, IX86_BUILTIN_PMOVDB256,
10595 IX86_BUILTIN_PMOVSDB128, IX86_BUILTIN_PMOVSDB256,
10596 IX86_BUILTIN_PMOVUSDB128, IX86_BUILTIN_PMOVUSDB256,
10597 IX86_BUILTIN_PMOVDW128, IX86_BUILTIN_PMOVDW256,
10598 IX86_BUILTIN_PMOVSDW128, IX86_BUILTIN_PMOVSDW256,
10599 IX86_BUILTIN_PMOVUSDW128, IX86_BUILTIN_PMOVUSDW256,
10600 IX86_BUILTIN_PMOVQB128, IX86_BUILTIN_PMOVQB256,
10601 IX86_BUILTIN_PMOVSQB128, IX86_BUILTIN_PMOVSQB256,
10602 IX86_BUILTIN_PMOVUSQB128, IX86_BUILTIN_PMOVUSQB256,
10603 IX86_BUILTIN_PMOVQW128, IX86_BUILTIN_PMOVQW256,
10604 IX86_BUILTIN_PMOVSQW128, IX86_BUILTIN_PMOVSQW256,
10605 IX86_BUILTIN_PMOVUSQW128, IX86_BUILTIN_PMOVUSQW256,
10606 IX86_BUILTIN_PMOVQD128, IX86_BUILTIN_PMOVQD256,
10607 IX86_BUILTIN_PMOVSQD128, IX86_BUILTIN_PMOVSQD256,
10608 IX86_BUILTIN_PMOVUSQD128, IX86_BUILTIN_PMOVUSQD256,
10609 IX86_BUILTIN_RANGEPD256, IX86_BUILTIN_RANGEPD128,
10610 IX86_BUILTIN_RANGEPS256, IX86_BUILTIN_RANGEPS128,
10611 IX86_BUILTIN_GETEXPPS256, IX86_BUILTIN_GETEXPPD256,
10612 IX86_BUILTIN_GETEXPPS128, IX86_BUILTIN_GETEXPPD128,
10613 IX86_BUILTIN_FIXUPIMMPD256_MASK, IX86_BUILTIN_FIXUPIMMPD256_MASKZ,
10614 IX86_BUILTIN_FIXUPIMMPS256_MASK, IX86_BUILTIN_FIXUPIMMPS256_MASKZ,
10615 IX86_BUILTIN_FIXUPIMMPD128_MASK, IX86_BUILTIN_FIXUPIMMPD128_MASKZ,
10616 IX86_BUILTIN_FIXUPIMMPS128_MASK, IX86_BUILTIN_FIXUPIMMPS128_MASKZ,
10617 IX86_BUILTIN_PABSQ256, IX86_BUILTIN_PABSQ128,
10618 IX86_BUILTIN_PABSD256_MASK, IX86_BUILTIN_PABSD128_MASK,
10619 IX86_BUILTIN_PMULHRSW256_MASK, IX86_BUILTIN_PMULHRSW128_MASK,
10620 IX86_BUILTIN_PMULHUW128_MASK, IX86_BUILTIN_PMULHUW256_MASK,
10621 IX86_BUILTIN_PMULHW256_MASK, IX86_BUILTIN_PMULHW128_MASK,
10622 IX86_BUILTIN_PMULLW256_MASK, IX86_BUILTIN_PMULLW128_MASK,
10623 IX86_BUILTIN_PMULLQ256, IX86_BUILTIN_PMULLQ128,
10624 IX86_BUILTIN_ANDPD256_MASK, IX86_BUILTIN_ANDPD128_MASK,
10625 IX86_BUILTIN_ANDPS256_MASK, IX86_BUILTIN_ANDPS128_MASK,
10626 IX86_BUILTIN_ANDNPD256_MASK, IX86_BUILTIN_ANDNPD128_MASK,
10627 IX86_BUILTIN_ANDNPS256_MASK, IX86_BUILTIN_ANDNPS128_MASK,
10628 IX86_BUILTIN_PSLLWI128_MASK, IX86_BUILTIN_PSLLDI128_MASK,
10629 IX86_BUILTIN_PSLLQI128_MASK, IX86_BUILTIN_PSLLW128_MASK,
10630 IX86_BUILTIN_PSLLD128_MASK, IX86_BUILTIN_PSLLQ128_MASK,
10631 IX86_BUILTIN_PSLLWI256_MASK , IX86_BUILTIN_PSLLW256_MASK,
10632 IX86_BUILTIN_PSLLDI256_MASK, IX86_BUILTIN_PSLLD256_MASK,
10633 IX86_BUILTIN_PSLLQI256_MASK, IX86_BUILTIN_PSLLQ256_MASK,
10634 IX86_BUILTIN_PSRADI128_MASK, IX86_BUILTIN_PSRAD128_MASK,
10635 IX86_BUILTIN_PSRADI256_MASK, IX86_BUILTIN_PSRAD256_MASK,
10636 IX86_BUILTIN_PSRAQI128_MASK, IX86_BUILTIN_PSRAQ128_MASK,
10637 IX86_BUILTIN_PSRAQI256_MASK, IX86_BUILTIN_PSRAQ256_MASK,
10638 IX86_BUILTIN_PANDD256, IX86_BUILTIN_PANDD128,
10639 IX86_BUILTIN_PSRLDI128_MASK, IX86_BUILTIN_PSRLD128_MASK,
10640 IX86_BUILTIN_PSRLDI256_MASK, IX86_BUILTIN_PSRLD256_MASK,
10641 IX86_BUILTIN_PSRLQI128_MASK, IX86_BUILTIN_PSRLQ128_MASK,
10642 IX86_BUILTIN_PSRLQI256_MASK, IX86_BUILTIN_PSRLQ256_MASK,
10643 IX86_BUILTIN_PANDQ256, IX86_BUILTIN_PANDQ128,
10644 IX86_BUILTIN_PANDND256, IX86_BUILTIN_PANDND128,
10645 IX86_BUILTIN_PANDNQ256, IX86_BUILTIN_PANDNQ128,
10646 IX86_BUILTIN_PORD256, IX86_BUILTIN_PORD128,
10647 IX86_BUILTIN_PORQ256, IX86_BUILTIN_PORQ128,
10648 IX86_BUILTIN_PXORD256, IX86_BUILTIN_PXORD128,
10649 IX86_BUILTIN_PXORQ256, IX86_BUILTIN_PXORQ128,
10650 IX86_BUILTIN_PACKSSWB256_MASK, IX86_BUILTIN_PACKSSWB128_MASK,
10651 IX86_BUILTIN_PACKUSWB256_MASK, IX86_BUILTIN_PACKUSWB128_MASK,
10652 IX86_BUILTIN_RNDSCALEPS256, IX86_BUILTIN_RNDSCALEPD256,
10653 IX86_BUILTIN_RNDSCALEPS128, IX86_BUILTIN_RNDSCALEPD128,
10654 IX86_BUILTIN_VTERNLOGQ256_MASK, IX86_BUILTIN_VTERNLOGQ256_MASKZ,
10655 IX86_BUILTIN_VTERNLOGD256_MASK, IX86_BUILTIN_VTERNLOGD256_MASKZ,
10656 IX86_BUILTIN_VTERNLOGQ128_MASK, IX86_BUILTIN_VTERNLOGQ128_MASKZ,
10657 IX86_BUILTIN_VTERNLOGD128_MASK, IX86_BUILTIN_VTERNLOGD128_MASKZ,
10658 IX86_BUILTIN_SCALEFPD256, IX86_BUILTIN_SCALEFPS256,
10659 IX86_BUILTIN_SCALEFPD128, IX86_BUILTIN_SCALEFPS128,
10660 IX86_BUILTIN_VFMADDPD256_MASK, IX86_BUILTIN_VFMADDPD256_MASK3,
10661 IX86_BUILTIN_VFMADDPD256_MASKZ, IX86_BUILTIN_VFMADDPD128_MASK,
10662 IX86_BUILTIN_VFMADDPD128_MASK3, IX86_BUILTIN_VFMADDPD128_MASKZ,
10663 IX86_BUILTIN_VFMADDPS256_MASK, IX86_BUILTIN_VFMADDPS256_MASK3,
10664 IX86_BUILTIN_VFMADDPS256_MASKZ, IX86_BUILTIN_VFMADDPS128_MASK,
10665 IX86_BUILTIN_VFMADDPS128_MASK3, IX86_BUILTIN_VFMADDPS128_MASKZ,
10666 IX86_BUILTIN_VFMSUBPD256_MASK3, IX86_BUILTIN_VFMSUBPD128_MASK3,
10667 IX86_BUILTIN_VFMSUBPS256_MASK3, IX86_BUILTIN_VFMSUBPS128_MASK3,
10668 IX86_BUILTIN_VFNMADDPD256_MASK, IX86_BUILTIN_VFNMADDPD128_MASK,
10669 IX86_BUILTIN_VFNMADDPS256_MASK, IX86_BUILTIN_VFNMADDPS128_MASK,
10670 IX86_BUILTIN_VFNMSUBPD256_MASK, IX86_BUILTIN_VFNMSUBPD256_MASK3,
10671 IX86_BUILTIN_VFNMSUBPD128_MASK, IX86_BUILTIN_VFNMSUBPD128_MASK3,
10672 IX86_BUILTIN_VFNMSUBPS256_MASK, IX86_BUILTIN_VFNMSUBPS256_MASK3,
10673 IX86_BUILTIN_VFNMSUBPS128_MASK, IX86_BUILTIN_VFNMSUBPS128_MASK3,
10674 IX86_BUILTIN_VFMADDSUBPD256_MASK, IX86_BUILTIN_VFMADDSUBPD256_MASK3,
10675 IX86_BUILTIN_VFMADDSUBPD256_MASKZ, IX86_BUILTIN_VFMADDSUBPD128_MASK,
10676 IX86_BUILTIN_VFMADDSUBPD128_MASK3, IX86_BUILTIN_VFMADDSUBPD128_MASKZ,
10677 IX86_BUILTIN_VFMADDSUBPS256_MASK, IX86_BUILTIN_VFMADDSUBPS256_MASK3,
10678 IX86_BUILTIN_VFMADDSUBPS256_MASKZ, IX86_BUILTIN_VFMADDSUBPS128_MASK,
10679 IX86_BUILTIN_VFMADDSUBPS128_MASK3, IX86_BUILTIN_VFMADDSUBPS128_MASKZ,
10680 IX86_BUILTIN_VFMSUBADDPD256_MASK3, IX86_BUILTIN_VFMSUBADDPD128_MASK3,
10681 IX86_BUILTIN_VFMSUBADDPS256_MASK3, IX86_BUILTIN_VFMSUBADDPS128_MASK3,
10682 IX86_BUILTIN_INSERTF64X2_256, IX86_BUILTIN_INSERTI64X2_256,
10683 IX86_BUILTIN_PSRAVV16HI, IX86_BUILTIN_PSRAVV8HI,
10684 IX86_BUILTIN_PMADDUBSW256_MASK, IX86_BUILTIN_PMADDUBSW128_MASK,
10685 IX86_BUILTIN_PMADDWD256_MASK, IX86_BUILTIN_PMADDWD128_MASK,
10686 IX86_BUILTIN_PSRLVV16HI, IX86_BUILTIN_PSRLVV8HI,
10687 IX86_BUILTIN_CVTPS2DQ256_MASK, IX86_BUILTIN_CVTPS2DQ128_MASK,
10688 IX86_BUILTIN_CVTPS2UDQ256, IX86_BUILTIN_CVTPS2UDQ128,
10689 IX86_BUILTIN_CVTPS2QQ256, IX86_BUILTIN_CVTPS2QQ128,
10690 IX86_BUILTIN_CVTPS2UQQ256, IX86_BUILTIN_CVTPS2UQQ128,
10691 IX86_BUILTIN_GETMANTPS256, IX86_BUILTIN_GETMANTPS128,
10692 IX86_BUILTIN_GETMANTPD256, IX86_BUILTIN_GETMANTPD128,
10693 IX86_BUILTIN_MOVDDUP256_MASK, IX86_BUILTIN_MOVDDUP128_MASK,
10694 IX86_BUILTIN_MOVSHDUP256_MASK, IX86_BUILTIN_MOVSHDUP128_MASK,
10695 IX86_BUILTIN_MOVSLDUP256_MASK, IX86_BUILTIN_MOVSLDUP128_MASK,
10696 IX86_BUILTIN_CVTQQ2PS256, IX86_BUILTIN_CVTQQ2PS128,
10697 IX86_BUILTIN_CVTUQQ2PS256, IX86_BUILTIN_CVTUQQ2PS128,
10698 IX86_BUILTIN_CVTQQ2PD256, IX86_BUILTIN_CVTQQ2PD128,
10699 IX86_BUILTIN_CVTUQQ2PD256, IX86_BUILTIN_CVTUQQ2PD128,
10700 IX86_BUILTIN_VPERMT2VARQ256, IX86_BUILTIN_VPERMT2VARQ256_MASKZ,
10701 IX86_BUILTIN_VPERMT2VARD256, IX86_BUILTIN_VPERMT2VARD256_MASKZ,
10702 IX86_BUILTIN_VPERMI2VARQ256, IX86_BUILTIN_VPERMI2VARD256,
10703 IX86_BUILTIN_VPERMT2VARPD256, IX86_BUILTIN_VPERMT2VARPD256_MASKZ,
10704 IX86_BUILTIN_VPERMT2VARPS256, IX86_BUILTIN_VPERMT2VARPS256_MASKZ,
10705 IX86_BUILTIN_VPERMI2VARPD256, IX86_BUILTIN_VPERMI2VARPS256,
10706 IX86_BUILTIN_VPERMT2VARQ128, IX86_BUILTIN_VPERMT2VARQ128_MASKZ,
10707 IX86_BUILTIN_VPERMT2VARD128, IX86_BUILTIN_VPERMT2VARD128_MASKZ,
10708 IX86_BUILTIN_VPERMI2VARQ128, IX86_BUILTIN_VPERMI2VARD128,
10709 IX86_BUILTIN_VPERMT2VARPD128, IX86_BUILTIN_VPERMT2VARPD128_MASKZ,
10710 IX86_BUILTIN_VPERMT2VARPS128, IX86_BUILTIN_VPERMT2VARPS128_MASKZ,
10711 IX86_BUILTIN_VPERMI2VARPD128, IX86_BUILTIN_VPERMI2VARPS128,
10712 IX86_BUILTIN_PSHUFB256_MASK, IX86_BUILTIN_PSHUFB128_MASK,
10713 IX86_BUILTIN_PSHUFHW256_MASK, IX86_BUILTIN_PSHUFHW128_MASK,
10714 IX86_BUILTIN_PSHUFLW256_MASK, IX86_BUILTIN_PSHUFLW128_MASK,
10715 IX86_BUILTIN_PSHUFD256_MASK, IX86_BUILTIN_PSHUFD128_MASK,
10716 IX86_BUILTIN_SHUFPD256_MASK, IX86_BUILTIN_SHUFPD128_MASK,
10717 IX86_BUILTIN_SHUFPS256_MASK, IX86_BUILTIN_SHUFPS128_MASK,
10718 IX86_BUILTIN_PROLVQ256, IX86_BUILTIN_PROLVQ128,
10719 IX86_BUILTIN_PROLQ256, IX86_BUILTIN_PROLQ128,
10720 IX86_BUILTIN_PRORVQ256, IX86_BUILTIN_PRORVQ128,
10721 IX86_BUILTIN_PRORQ256, IX86_BUILTIN_PRORQ128,
10722 IX86_BUILTIN_PSRAVQ128, IX86_BUILTIN_PSRAVQ256,
10723 IX86_BUILTIN_PSLLVV4DI_MASK, IX86_BUILTIN_PSLLVV2DI_MASK,
10724 IX86_BUILTIN_PSLLVV8SI_MASK, IX86_BUILTIN_PSLLVV4SI_MASK,
10725 IX86_BUILTIN_PSRAVV8SI_MASK, IX86_BUILTIN_PSRAVV4SI_MASK,
10726 IX86_BUILTIN_PSRLVV4DI_MASK, IX86_BUILTIN_PSRLVV2DI_MASK,
10727 IX86_BUILTIN_PSRLVV8SI_MASK, IX86_BUILTIN_PSRLVV4SI_MASK,
10728 IX86_BUILTIN_PSRAWI256_MASK, IX86_BUILTIN_PSRAW256_MASK,
10729 IX86_BUILTIN_PSRAWI128_MASK, IX86_BUILTIN_PSRAW128_MASK,
10730 IX86_BUILTIN_PSRLWI256_MASK, IX86_BUILTIN_PSRLW256_MASK,
10731 IX86_BUILTIN_PSRLWI128_MASK, IX86_BUILTIN_PSRLW128_MASK,
10732 IX86_BUILTIN_PRORVD256, IX86_BUILTIN_PROLVD256,
10733 IX86_BUILTIN_PRORD256, IX86_BUILTIN_PROLD256,
10734 IX86_BUILTIN_PRORVD128, IX86_BUILTIN_PROLVD128,
10735 IX86_BUILTIN_PRORD128, IX86_BUILTIN_PROLD128,
10736 IX86_BUILTIN_FPCLASSPD256, IX86_BUILTIN_FPCLASSPD128,
10737 IX86_BUILTIN_FPCLASSSD, IX86_BUILTIN_FPCLASSPS256,
10738 IX86_BUILTIN_FPCLASSPS128, IX86_BUILTIN_FPCLASSSS,
10739 IX86_BUILTIN_CVTB2MASK128, IX86_BUILTIN_CVTB2MASK256,
10740 IX86_BUILTIN_CVTW2MASK128, IX86_BUILTIN_CVTW2MASK256,
10741 IX86_BUILTIN_CVTD2MASK128, IX86_BUILTIN_CVTD2MASK256,
10742 IX86_BUILTIN_CVTQ2MASK128, IX86_BUILTIN_CVTQ2MASK256,
10743 IX86_BUILTIN_CVTMASK2B128, IX86_BUILTIN_CVTMASK2B256,
10744 IX86_BUILTIN_CVTMASK2W128, IX86_BUILTIN_CVTMASK2W256,
10745 IX86_BUILTIN_CVTMASK2D128, IX86_BUILTIN_CVTMASK2D256,
10746 IX86_BUILTIN_CVTMASK2Q128, IX86_BUILTIN_CVTMASK2Q256,
10747 IX86_BUILTIN_PCMPEQB128_MASK, IX86_BUILTIN_PCMPEQB256_MASK,
10748 IX86_BUILTIN_PCMPEQW128_MASK, IX86_BUILTIN_PCMPEQW256_MASK,
10749 IX86_BUILTIN_PCMPEQD128_MASK, IX86_BUILTIN_PCMPEQD256_MASK,
10750 IX86_BUILTIN_PCMPEQQ128_MASK, IX86_BUILTIN_PCMPEQQ256_MASK,
10751 IX86_BUILTIN_PCMPGTB128_MASK, IX86_BUILTIN_PCMPGTB256_MASK,
10752 IX86_BUILTIN_PCMPGTW128_MASK, IX86_BUILTIN_PCMPGTW256_MASK,
10753 IX86_BUILTIN_PCMPGTD128_MASK, IX86_BUILTIN_PCMPGTD256_MASK,
10754 IX86_BUILTIN_PCMPGTQ128_MASK, IX86_BUILTIN_PCMPGTQ256_MASK,
10755 IX86_BUILTIN_PTESTMB128, IX86_BUILTIN_PTESTMB256,
10756 IX86_BUILTIN_PTESTMW128, IX86_BUILTIN_PTESTMW256,
10757 IX86_BUILTIN_PTESTMD128, IX86_BUILTIN_PTESTMD256,
10758 IX86_BUILTIN_PTESTMQ128, IX86_BUILTIN_PTESTMQ256,
10759 IX86_BUILTIN_PTESTNMB128, IX86_BUILTIN_PTESTNMB256,
10760 IX86_BUILTIN_PTESTNMW128, IX86_BUILTIN_PTESTNMW256,
10761 IX86_BUILTIN_PTESTNMD128, IX86_BUILTIN_PTESTNMD256,
10762 IX86_BUILTIN_PTESTNMQ128, IX86_BUILTIN_PTESTNMQ256,
10763 IX86_BUILTIN_PBROADCASTMB128, IX86_BUILTIN_PBROADCASTMB256,
10764 IX86_BUILTIN_PBROADCASTMW128, IX86_BUILTIN_PBROADCASTMW256,
10765 IX86_BUILTIN_COMPRESSPD256, IX86_BUILTIN_COMPRESSPD128,
10766 IX86_BUILTIN_COMPRESSPS256, IX86_BUILTIN_COMPRESSPS128,
10767 IX86_BUILTIN_PCOMPRESSQ256, IX86_BUILTIN_PCOMPRESSQ128,
10768 IX86_BUILTIN_PCOMPRESSD256, IX86_BUILTIN_PCOMPRESSD128,
10769 IX86_BUILTIN_EXPANDPD256, IX86_BUILTIN_EXPANDPD128,
10770 IX86_BUILTIN_EXPANDPS256, IX86_BUILTIN_EXPANDPS128,
10771 IX86_BUILTIN_PEXPANDQ256, IX86_BUILTIN_PEXPANDQ128,
10772 IX86_BUILTIN_PEXPANDD256, IX86_BUILTIN_PEXPANDD128,
10773 IX86_BUILTIN_EXPANDPD256Z, IX86_BUILTIN_EXPANDPD128Z,
10774 IX86_BUILTIN_EXPANDPS256Z, IX86_BUILTIN_EXPANDPS128Z,
10775 IX86_BUILTIN_PEXPANDQ256Z, IX86_BUILTIN_PEXPANDQ128Z,
10776 IX86_BUILTIN_PEXPANDD256Z, IX86_BUILTIN_PEXPANDD128Z,
10777 IX86_BUILTIN_PMAXSD256_MASK, IX86_BUILTIN_PMINSD256_MASK,
10778 IX86_BUILTIN_PMAXUD256_MASK, IX86_BUILTIN_PMINUD256_MASK,
10779 IX86_BUILTIN_PMAXSD128_MASK, IX86_BUILTIN_PMINSD128_MASK,
10780 IX86_BUILTIN_PMAXUD128_MASK, IX86_BUILTIN_PMINUD128_MASK,
10781 IX86_BUILTIN_PMAXSQ256_MASK, IX86_BUILTIN_PMINSQ256_MASK,
10782 IX86_BUILTIN_PMAXUQ256_MASK, IX86_BUILTIN_PMINUQ256_MASK,
10783 IX86_BUILTIN_PMAXSQ128_MASK, IX86_BUILTIN_PMINSQ128_MASK,
10784 IX86_BUILTIN_PMAXUQ128_MASK, IX86_BUILTIN_PMINUQ128_MASK,
10785 IX86_BUILTIN_PMINSB256_MASK, IX86_BUILTIN_PMINUB256_MASK,
10786 IX86_BUILTIN_PMAXSB256_MASK, IX86_BUILTIN_PMAXUB256_MASK,
10787 IX86_BUILTIN_PMINSB128_MASK, IX86_BUILTIN_PMINUB128_MASK,
10788 IX86_BUILTIN_PMAXSB128_MASK, IX86_BUILTIN_PMAXUB128_MASK,
10789 IX86_BUILTIN_PMINSW256_MASK, IX86_BUILTIN_PMINUW256_MASK,
10790 IX86_BUILTIN_PMAXSW256_MASK, IX86_BUILTIN_PMAXUW256_MASK,
10791 IX86_BUILTIN_PMINSW128_MASK, IX86_BUILTIN_PMINUW128_MASK,
10792 IX86_BUILTIN_PMAXSW128_MASK, IX86_BUILTIN_PMAXUW128_MASK,
10793 IX86_BUILTIN_VPCONFLICTQ256, IX86_BUILTIN_VPCONFLICTD256,
10794 IX86_BUILTIN_VPCLZCNTQ256, IX86_BUILTIN_VPCLZCNTD256,
10795 IX86_BUILTIN_UNPCKHPD256_MASK, IX86_BUILTIN_UNPCKHPD128_MASK,
10796 IX86_BUILTIN_UNPCKHPS256_MASK, IX86_BUILTIN_UNPCKHPS128_MASK,
10797 IX86_BUILTIN_UNPCKLPD256_MASK, IX86_BUILTIN_UNPCKLPD128_MASK,
10798 IX86_BUILTIN_UNPCKLPS256_MASK, IX86_BUILTIN_VPCONFLICTQ128,
10799 IX86_BUILTIN_VPCONFLICTD128, IX86_BUILTIN_VPCLZCNTQ128,
10800 IX86_BUILTIN_VPCLZCNTD128, IX86_BUILTIN_UNPCKLPS128_MASK,
10801 IX86_BUILTIN_ALIGND256, IX86_BUILTIN_ALIGNQ256,
10802 IX86_BUILTIN_ALIGND128, IX86_BUILTIN_ALIGNQ128,
10803 IX86_BUILTIN_CVTPS2PH256_MASK, IX86_BUILTIN_CVTPS2PH_MASK,
10804 IX86_BUILTIN_CVTPH2PS_MASK, IX86_BUILTIN_CVTPH2PS256_MASK,
10805 IX86_BUILTIN_PUNPCKHDQ128_MASK, IX86_BUILTIN_PUNPCKHDQ256_MASK,
10806 IX86_BUILTIN_PUNPCKHQDQ128_MASK, IX86_BUILTIN_PUNPCKHQDQ256_MASK,
10807 IX86_BUILTIN_PUNPCKLDQ128_MASK, IX86_BUILTIN_PUNPCKLDQ256_MASK,
10808 IX86_BUILTIN_PUNPCKLQDQ128_MASK, IX86_BUILTIN_PUNPCKLQDQ256_MASK,
10809 IX86_BUILTIN_PUNPCKHBW128_MASK, IX86_BUILTIN_PUNPCKHBW256_MASK,
10810 IX86_BUILTIN_PUNPCKHWD128_MASK, IX86_BUILTIN_PUNPCKHWD256_MASK,
10811 IX86_BUILTIN_PUNPCKLBW128_MASK, IX86_BUILTIN_PUNPCKLBW256_MASK,
10812 IX86_BUILTIN_PUNPCKLWD128_MASK, IX86_BUILTIN_PUNPCKLWD256_MASK,
10813 IX86_BUILTIN_PSLLVV16HI, IX86_BUILTIN_PSLLVV8HI,
10814 IX86_BUILTIN_PACKSSDW256_MASK, IX86_BUILTIN_PACKSSDW128_MASK,
10815 IX86_BUILTIN_PACKUSDW256_MASK, IX86_BUILTIN_PACKUSDW128_MASK,
10816 IX86_BUILTIN_PAVGB256_MASK, IX86_BUILTIN_PAVGW256_MASK,
10817 IX86_BUILTIN_PAVGB128_MASK, IX86_BUILTIN_PAVGW128_MASK,
10818 IX86_BUILTIN_VPERMVARSF256_MASK, IX86_BUILTIN_VPERMVARDF256_MASK,
10819 IX86_BUILTIN_VPERMDF256_MASK, IX86_BUILTIN_PABSB256_MASK,
10820 IX86_BUILTIN_PABSB128_MASK, IX86_BUILTIN_PABSW256_MASK,
10821 IX86_BUILTIN_PABSW128_MASK, IX86_BUILTIN_VPERMILVARPD_MASK,
10822 IX86_BUILTIN_VPERMILVARPS_MASK, IX86_BUILTIN_VPERMILVARPD256_MASK,
10823 IX86_BUILTIN_VPERMILVARPS256_MASK, IX86_BUILTIN_VPERMILPD_MASK,
10824 IX86_BUILTIN_VPERMILPS_MASK, IX86_BUILTIN_VPERMILPD256_MASK,
10825 IX86_BUILTIN_VPERMILPS256_MASK, IX86_BUILTIN_BLENDMQ256,
10826 IX86_BUILTIN_BLENDMD256, IX86_BUILTIN_BLENDMPD256,
10827 IX86_BUILTIN_BLENDMPS256, IX86_BUILTIN_BLENDMQ128,
10828 IX86_BUILTIN_BLENDMD128, IX86_BUILTIN_BLENDMPD128,
10829 IX86_BUILTIN_BLENDMPS128, IX86_BUILTIN_BLENDMW256,
10830 IX86_BUILTIN_BLENDMB256, IX86_BUILTIN_BLENDMW128,
10831 IX86_BUILTIN_BLENDMB128, IX86_BUILTIN_PMULLD256_MASK,
10832 IX86_BUILTIN_PMULLD128_MASK, IX86_BUILTIN_PMULUDQ256_MASK,
10833 IX86_BUILTIN_PMULDQ256_MASK, IX86_BUILTIN_PMULDQ128_MASK,
10834 IX86_BUILTIN_PMULUDQ128_MASK, IX86_BUILTIN_CVTPD2PS256_MASK,
10835 IX86_BUILTIN_CVTPD2PS_MASK, IX86_BUILTIN_VPERMVARSI256_MASK,
10836 IX86_BUILTIN_VPERMVARDI256_MASK, IX86_BUILTIN_VPERMDI256_MASK,
10837 IX86_BUILTIN_CMPQ256, IX86_BUILTIN_CMPD256,
10838 IX86_BUILTIN_UCMPQ256, IX86_BUILTIN_UCMPD256,
10839 IX86_BUILTIN_CMPB256, IX86_BUILTIN_CMPW256,
10840 IX86_BUILTIN_UCMPB256, IX86_BUILTIN_UCMPW256,
10841 IX86_BUILTIN_CMPPD256_MASK, IX86_BUILTIN_CMPPS256_MASK,
10842 IX86_BUILTIN_CMPQ128, IX86_BUILTIN_CMPD128,
10843 IX86_BUILTIN_UCMPQ128, IX86_BUILTIN_UCMPD128,
10844 IX86_BUILTIN_CMPB128, IX86_BUILTIN_CMPW128,
10845 IX86_BUILTIN_UCMPB128, IX86_BUILTIN_UCMPW128,
10846 IX86_BUILTIN_CMPPD128_MASK, IX86_BUILTIN_CMPPS128_MASK,
10847 IX86_BUILTIN_GATHER3SIV8SF, IX86_BUILTIN_GATHER3SIV4SF,
10848 IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV2DF,
10849 IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3DIV4SF,
10850 IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
10851 IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3SIV4SI,
10852 IX86_BUILTIN_GATHER3SIV4DI, IX86_BUILTIN_GATHER3SIV2DI,
10853 IX86_BUILTIN_GATHER3DIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
10854 IX86_BUILTIN_GATHER3DIV4DI, IX86_BUILTIN_GATHER3DIV2DI,
10855 IX86_BUILTIN_SCATTERSIV8SF, IX86_BUILTIN_SCATTERSIV4SF,
10856 IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV2DF,
10857 IX86_BUILTIN_SCATTERDIV8SF, IX86_BUILTIN_SCATTERDIV4SF,
10858 IX86_BUILTIN_SCATTERDIV4DF, IX86_BUILTIN_SCATTERDIV2DF,
10859 IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV4SI,
10860 IX86_BUILTIN_SCATTERSIV4DI, IX86_BUILTIN_SCATTERSIV2DI,
10861 IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_SCATTERDIV4SI,
10862 IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
10863 IX86_BUILTIN_RANGESD128, IX86_BUILTIN_RANGESS128,
10864 IX86_BUILTIN_KUNPCKWD, IX86_BUILTIN_KUNPCKDQ,
10865 IX86_BUILTIN_BROADCASTF32x2_512, IX86_BUILTIN_BROADCASTI32x2_512,
10866 IX86_BUILTIN_BROADCASTF64X2_512, IX86_BUILTIN_BROADCASTI64X2_512,
10867 IX86_BUILTIN_BROADCASTF32X8_512, IX86_BUILTIN_BROADCASTI32X8_512,
10868 IX86_BUILTIN_EXTRACTF64X2_512, IX86_BUILTIN_EXTRACTF32X8,
10869 IX86_BUILTIN_EXTRACTI64X2_512, IX86_BUILTIN_EXTRACTI32X8,
10870 IX86_BUILTIN_REDUCEPD512_MASK, IX86_BUILTIN_REDUCEPS512_MASK,
10871 IX86_BUILTIN_PMULLQ512, IX86_BUILTIN_XORPD512,
10872 IX86_BUILTIN_XORPS512, IX86_BUILTIN_ORPD512,
10873 IX86_BUILTIN_ORPS512, IX86_BUILTIN_ANDPD512,
10874 IX86_BUILTIN_ANDPS512, IX86_BUILTIN_ANDNPD512,
10875 IX86_BUILTIN_ANDNPS512, IX86_BUILTIN_INSERTF32X8,
10876 IX86_BUILTIN_INSERTI32X8, IX86_BUILTIN_INSERTF64X2_512,
10877 IX86_BUILTIN_INSERTI64X2_512, IX86_BUILTIN_FPCLASSPD512,
10878 IX86_BUILTIN_FPCLASSPS512, IX86_BUILTIN_CVTD2MASK512,
10879 IX86_BUILTIN_CVTQ2MASK512, IX86_BUILTIN_CVTMASK2D512,
10880 IX86_BUILTIN_CVTMASK2Q512, IX86_BUILTIN_CVTPD2QQ512,
10881 IX86_BUILTIN_CVTPS2QQ512, IX86_BUILTIN_CVTPD2UQQ512,
10882 IX86_BUILTIN_CVTPS2UQQ512, IX86_BUILTIN_CVTQQ2PS512,
10883 IX86_BUILTIN_CVTUQQ2PS512, IX86_BUILTIN_CVTQQ2PD512,
10884 IX86_BUILTIN_CVTUQQ2PD512, IX86_BUILTIN_CVTTPS2QQ512,
10885 IX86_BUILTIN_CVTTPS2UQQ512, IX86_BUILTIN_CVTTPD2QQ512,
10886 IX86_BUILTIN_CVTTPD2UQQ512, IX86_BUILTIN_RANGEPS512,
10887 IX86_BUILTIN_RANGEPD512, IX86_BUILTIN_PACKUSDW512,
10888 IX86_BUILTIN_PACKSSDW512, IX86_BUILTIN_LOADDQUHI512_MASK,
10889 IX86_BUILTIN_LOADDQUQI512_MASK, IX86_BUILTIN_PSLLDQ512,
10890 IX86_BUILTIN_PSRLDQ512, IX86_BUILTIN_STOREDQUHI512_MASK,
10891 IX86_BUILTIN_STOREDQUQI512_MASK, IX86_BUILTIN_PALIGNR512,
10892 IX86_BUILTIN_PALIGNR512_MASK, IX86_BUILTIN_MOVDQUHI512_MASK,
10893 IX86_BUILTIN_MOVDQUQI512_MASK, IX86_BUILTIN_PSADBW512,
10894 IX86_BUILTIN_DBPSADBW512, IX86_BUILTIN_PBROADCASTB512,
10895 IX86_BUILTIN_PBROADCASTB512_GPR, IX86_BUILTIN_PBROADCASTW512,
10896 IX86_BUILTIN_PBROADCASTW512_GPR, IX86_BUILTIN_PMOVSXBW512_MASK,
10897 IX86_BUILTIN_PMOVZXBW512_MASK, IX86_BUILTIN_VPERMVARHI512_MASK,
10898 IX86_BUILTIN_VPERMT2VARHI512, IX86_BUILTIN_VPERMT2VARHI512_MASKZ,
10899 IX86_BUILTIN_VPERMI2VARHI512, IX86_BUILTIN_PAVGB512,
10900 IX86_BUILTIN_PAVGW512, IX86_BUILTIN_PADDB512,
10901 IX86_BUILTIN_PSUBB512, IX86_BUILTIN_PSUBSB512,
10902 IX86_BUILTIN_PADDSB512, IX86_BUILTIN_PSUBUSB512,
10903 IX86_BUILTIN_PADDUSB512, IX86_BUILTIN_PSUBW512,
10904 IX86_BUILTIN_PADDW512, IX86_BUILTIN_PSUBSW512,
10905 IX86_BUILTIN_PADDSW512, IX86_BUILTIN_PSUBUSW512,
10906 IX86_BUILTIN_PADDUSW512, IX86_BUILTIN_PMAXUW512,
10907 IX86_BUILTIN_PMAXSW512, IX86_BUILTIN_PMINUW512,
10908 IX86_BUILTIN_PMINSW512, IX86_BUILTIN_PMAXUB512,
10909 IX86_BUILTIN_PMAXSB512, IX86_BUILTIN_PMINUB512,
10910 IX86_BUILTIN_PMINSB512, IX86_BUILTIN_PMOVWB512,
10911 IX86_BUILTIN_PMOVSWB512, IX86_BUILTIN_PMOVUSWB512,
10912 IX86_BUILTIN_PMULHRSW512_MASK, IX86_BUILTIN_PMULHUW512_MASK,
10913 IX86_BUILTIN_PMULHW512_MASK, IX86_BUILTIN_PMULLW512_MASK,
10914 IX86_BUILTIN_PSLLWI512_MASK, IX86_BUILTIN_PSLLW512_MASK,
10915 IX86_BUILTIN_PACKSSWB512, IX86_BUILTIN_PACKUSWB512,
10916 IX86_BUILTIN_PSRAVV32HI, IX86_BUILTIN_PMADDUBSW512_MASK,
10917 IX86_BUILTIN_PMADDWD512_MASK, IX86_BUILTIN_PSRLVV32HI,
10918 IX86_BUILTIN_PUNPCKHBW512, IX86_BUILTIN_PUNPCKHWD512,
10919 IX86_BUILTIN_PUNPCKLBW512, IX86_BUILTIN_PUNPCKLWD512,
10920 IX86_BUILTIN_PSHUFB512, IX86_BUILTIN_PSHUFHW512,
10921 IX86_BUILTIN_PSHUFLW512, IX86_BUILTIN_PSRAWI512,
10922 IX86_BUILTIN_PSRAW512, IX86_BUILTIN_PSRLWI512,
10923 IX86_BUILTIN_PSRLW512, IX86_BUILTIN_CVTB2MASK512,
10924 IX86_BUILTIN_CVTW2MASK512, IX86_BUILTIN_CVTMASK2B512,
10925 IX86_BUILTIN_CVTMASK2W512, IX86_BUILTIN_PCMPEQB512_MASK,
10926 IX86_BUILTIN_PCMPEQW512_MASK, IX86_BUILTIN_PCMPGTB512_MASK,
10927 IX86_BUILTIN_PCMPGTW512_MASK, IX86_BUILTIN_PTESTMB512,
10928 IX86_BUILTIN_PTESTMW512, IX86_BUILTIN_PTESTNMB512,
10929 IX86_BUILTIN_PTESTNMW512, IX86_BUILTIN_PSLLVV32HI,
10930 IX86_BUILTIN_PABSB512, IX86_BUILTIN_PABSW512,
10931 IX86_BUILTIN_BLENDMW512, IX86_BUILTIN_BLENDMB512,
10932 IX86_BUILTIN_CMPB512, IX86_BUILTIN_CMPW512,
10933 IX86_BUILTIN_UCMPB512, IX86_BUILTIN_UCMPW512.
10934 (bdesc_special_args):
10935 Add __builtin_ia32_loaddquhi512_mask, __builtin_ia32_loaddquqi512_mask,
10936 __builtin_ia32_storedquhi512_mask, __builtin_ia32_storedquqi512_mask,
10937 __builtin_ia32_loaddquhi256_mask, __builtin_ia32_loaddquhi128_mask,
10938 __builtin_ia32_loaddquqi256_mask, __builtin_ia32_loaddquqi128_mask,
10939 __builtin_ia32_movdqa64load256_mask, __builtin_ia32_movdqa64load128_mask,
10940 __builtin_ia32_movdqa32load256_mask, __builtin_ia32_movdqa32load128_mask,
10941 __builtin_ia32_movdqa64store256_mask, __builtin_ia32_movdqa64store128_mask,
10942 __builtin_ia32_movdqa32store256_mask, __builtin_ia32_movdqa32store128_mask,
10943 __builtin_ia32_loadapd256_mask, __builtin_ia32_loadapd128_mask,
10944 __builtin_ia32_loadaps256_mask, __builtin_ia32_loadaps128_mask,
10945 __builtin_ia32_storeapd256_mask, __builtin_ia32_storeapd128_mask,
10946 __builtin_ia32_storeaps256_mask, __builtin_ia32_storeaps128_mask,
10947 __builtin_ia32_loadupd256_mask, __builtin_ia32_loadupd128_mask,
10948 __builtin_ia32_loadups256_mask, __builtin_ia32_loadups128_mask,
10949 __builtin_ia32_storeupd256_mask, __builtin_ia32_storeupd128_mask,
10950 __builtin_ia32_storeups256_mask, __builtin_ia32_storeups128_mask,
10951 __builtin_ia32_loaddqudi256_mask, __builtin_ia32_loaddqudi128_mask,
10952 __builtin_ia32_loaddqusi256_mask, __builtin_ia32_loaddqusi128_mask,
10953 __builtin_ia32_storedqudi256_mask, __builtin_ia32_storedqudi128_mask,
10954 __builtin_ia32_storedqusi256_mask, __builtin_ia32_storedqusi128_mask,
10955 __builtin_ia32_storedquhi256_mask, __builtin_ia32_storedquhi128_mask,
10956 __builtin_ia32_storedquqi256_mask, __builtin_ia32_storedquqi128_mask,
10957 __builtin_ia32_compressstoredf256_mask, __builtin_ia32_compressstoredf128_mask,
10958 __builtin_ia32_compressstoresf256_mask, __builtin_ia32_compressstoresf128_mask,
10959 __builtin_ia32_compressstoredi256_mask, __builtin_ia32_compressstoredi128_mask,
10960 __builtin_ia32_compressstoresi256_mask, __builtin_ia32_compressstoresi128_mask,
10961 __builtin_ia32_expandloaddf256_mask, __builtin_ia32_expandloaddf128_mask,
10962 __builtin_ia32_expandloadsf256_mask, __builtin_ia32_expandloadsf128_mask,
10963 __builtin_ia32_expandloaddi256_mask, __builtin_ia32_expandloaddi128_mask,
10964 __builtin_ia32_expandloadsi256_mask, __builtin_ia32_expandloadsi128_mask,
10965 __builtin_ia32_expandloaddf256_maskz, __builtin_ia32_expandloaddf128_maskz,
10966 __builtin_ia32_expandloadsf256_maskz, __builtin_ia32_expandloadsf128_maskz,
10967 __builtin_ia32_expandloaddi256_maskz, __builtin_ia32_expandloaddi128_maskz,
10968 __builtin_ia32_expandloadsi256_maskz, __builtin_ia32_expandloadsi128_maskz,
10969 __builtin_ia32_pmovqd256mem_mask, __builtin_ia32_pmovqd128mem_mask,
10970 __builtin_ia32_pmovsqd256mem_mask, __builtin_ia32_pmovsqd128mem_mask,
10971 __builtin_ia32_pmovusqd256mem_mask, __builtin_ia32_pmovusqd128mem_mask,
10972 __builtin_ia32_pmovqw256mem_mask, __builtin_ia32_pmovqw128mem_mask,
10973 __builtin_ia32_pmovsqw256mem_mask, __builtin_ia32_pmovsqw128mem_mask,
10974 __builtin_ia32_pmovusqw256mem_mask, __builtin_ia32_pmovusqw128mem_mask,
10975 __builtin_ia32_pmovqb256mem_mask, __builtin_ia32_pmovqb128mem_mask,
10976 __builtin_ia32_pmovsqb256mem_mask, __builtin_ia32_pmovsqb128mem_mask,
10977 __builtin_ia32_pmovusqb256mem_mask, __builtin_ia32_pmovusqb128mem_mask,
10978 __builtin_ia32_pmovdb256mem_mask, __builtin_ia32_pmovdb128mem_mask,
10979 __builtin_ia32_pmovsdb256mem_mask, __builtin_ia32_pmovsdb128mem_mask,
10980 __builtin_ia32_pmovusdb256mem_mask, __builtin_ia32_pmovusdb128mem_mask,
10981 __builtin_ia32_pmovdw256mem_mask, __builtin_ia32_pmovdw128mem_mask,
10982 __builtin_ia32_pmovsdw256mem_mask, __builtin_ia32_pmovsdw128mem_mask,
10983 __builtin_ia32_pmovusdw256mem_mask, __builtin_ia32_pmovusdw128mem_mask,
10984 __builtin_ia32_palignr256_mask, __builtin_ia32_palignr128_mask,
10985 __builtin_ia32_movdqa64_256_mask, __builtin_ia32_movdqa64_128_mask,
10986 __builtin_ia32_movdqa32_256_mask, __builtin_ia32_movdqa32_128_mask,
10987 __builtin_ia32_movapd256_mask, __builtin_ia32_movapd128_mask,
10988 __builtin_ia32_movaps256_mask, __builtin_ia32_movaps128_mask,
10989 __builtin_ia32_movdquhi256_mask, __builtin_ia32_movdquhi128_mask,
10990 __builtin_ia32_movdquqi256_mask, __builtin_ia32_movdquqi128_mask,
10991 __builtin_ia32_minps_mask, __builtin_ia32_maxps_mask,
10992 __builtin_ia32_minpd_mask, __builtin_ia32_maxpd_mask,
10993 __builtin_ia32_maxpd256_mask, __builtin_ia32_maxps256_mask,
10994 __builtin_ia32_minpd256_mask, __builtin_ia32_minps256_mask,
10995 __builtin_ia32_mulps_mask, __builtin_ia32_divps_mask,
10996 __builtin_ia32_mulpd_mask, __builtin_ia32_divpd_mask,
10997 __builtin_ia32_divpd256_mask, __builtin_ia32_divps256_mask,
10998 __builtin_ia32_mulpd256_mask, __builtin_ia32_mulps256_mask,
10999 __builtin_ia32_addpd128_mask, __builtin_ia32_addpd256_mask,
11000 __builtin_ia32_addps128_mask, __builtin_ia32_addps256_mask,
11001 __builtin_ia32_subpd128_mask, __builtin_ia32_subpd256_mask,
11002 __builtin_ia32_subps128_mask, __builtin_ia32_subps256_mask,
11003 __builtin_ia32_xorpd256_mask, __builtin_ia32_xorpd128_mask,
11004 __builtin_ia32_xorps256_mask, __builtin_ia32_xorps128_mask,
11005 __builtin_ia32_orpd256_mask, __builtin_ia32_orpd128_mask,
11006 __builtin_ia32_orps256_mask, __builtin_ia32_orps128_mask,
11007 __builtin_ia32_broadcastf32x2_256_mask, __builtin_ia32_broadcasti32x2_256_mask,
11008 __builtin_ia32_broadcasti32x2_128_mask, __builtin_ia32_broadcastf64x2_256_mask,
11009 __builtin_ia32_broadcasti64x2_256_mask, __builtin_ia32_broadcastf32x4_256_mask,
11010 __builtin_ia32_broadcasti32x4_256_mask, __builtin_ia32_extractf32x4_256_mask,
11011 __builtin_ia32_extracti32x4_256_mask, __builtin_ia32_dbpsadbw256_mask,
11012 __builtin_ia32_dbpsadbw128_mask, __builtin_ia32_cvttpd2qq256_mask,
11013 __builtin_ia32_cvttpd2qq128_mask, __builtin_ia32_cvttpd2uqq256_mask,
11014 __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvtpd2qq256_mask,
11015 __builtin_ia32_cvtpd2qq128_mask, __builtin_ia32_cvtpd2uqq256_mask,
11016 __builtin_ia32_cvtpd2uqq128_mask, __builtin_ia32_cvtpd2udq256_mask,
11017 __builtin_ia32_cvtpd2udq128_mask, __builtin_ia32_cvttps2qq256_mask,
11018 __builtin_ia32_cvttps2qq128_mask, __builtin_ia32_cvttps2uqq256_mask,
11019 __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvttps2dq256_mask,
11020 __builtin_ia32_cvttps2dq128_mask, __builtin_ia32_cvttps2udq256_mask,
11021 __builtin_ia32_cvttps2udq128_mask, __builtin_ia32_cvttpd2dq256_mask,
11022 __builtin_ia32_cvttpd2dq128_mask, __builtin_ia32_cvttpd2udq256_mask,
11023 __builtin_ia32_cvttpd2udq128_mask, __builtin_ia32_cvtpd2dq256_mask,
11024 __builtin_ia32_cvtpd2dq128_mask, __builtin_ia32_cvtdq2pd256_mask,
11025 __builtin_ia32_cvtdq2pd128_mask, __builtin_ia32_cvtudq2pd256_mask,
11026 __builtin_ia32_cvtudq2pd128_mask, __builtin_ia32_cvtdq2ps256_mask,
11027 __builtin_ia32_cvtdq2ps128_mask, __builtin_ia32_cvtudq2ps256_mask,
11028 __builtin_ia32_cvtudq2ps128_mask, __builtin_ia32_cvtps2pd256_mask,
11029 __builtin_ia32_cvtps2pd128_mask, __builtin_ia32_pbroadcastb256_mask,
11030 __builtin_ia32_pbroadcastb256_gpr_mask, __builtin_ia32_pbroadcastb128_mask,
11031 __builtin_ia32_pbroadcastb128_gpr_mask, __builtin_ia32_pbroadcastw256_mask,
11032 __builtin_ia32_pbroadcastw256_gpr_mask, __builtin_ia32_pbroadcastw128_mask,
11033 __builtin_ia32_pbroadcastw128_gpr_mask, __builtin_ia32_pbroadcastd256_mask,
11034 __builtin_ia32_pbroadcastd256_gpr_mask, __builtin_ia32_pbroadcastd128_mask,
11035 __builtin_ia32_pbroadcastd128_gpr_mask, __builtin_ia32_pbroadcastq256_mask,
11036 __builtin_ia32_pbroadcastq256_gpr_mask, __builtin_ia32_pbroadcastq256_mem_mask,
11037 __builtin_ia32_pbroadcastq128_mask, __builtin_ia32_pbroadcastq128_gpr_mask,
11038 __builtin_ia32_pbroadcastq128_mem_mask, __builtin_ia32_broadcastss256_mask,
11039 __builtin_ia32_broadcastss128_mask, __builtin_ia32_broadcastsd256_mask,
11040 __builtin_ia32_extractf64x2_256_mask, __builtin_ia32_extracti64x2_256_mask,
11041 __builtin_ia32_insertf32x4_256_mask, __builtin_ia32_inserti32x4_256_mask,
11042 __builtin_ia32_pmovsxbw256_mask, __builtin_ia32_pmovsxbw128_mask,
11043 __builtin_ia32_pmovsxbd256_mask, __builtin_ia32_pmovsxbd128_mask,
11044 __builtin_ia32_pmovsxbq256_mask, __builtin_ia32_pmovsxbq128_mask,
11045 __builtin_ia32_pmovsxwd256_mask, __builtin_ia32_pmovsxwd128_mask,
11046 __builtin_ia32_pmovsxwq256_mask, __builtin_ia32_pmovsxwq128_mask,
11047 __builtin_ia32_pmovsxdq256_mask, __builtin_ia32_pmovsxdq128_mask,
11048 __builtin_ia32_pmovzxbw256_mask, __builtin_ia32_pmovzxbw128_mask,
11049 __builtin_ia32_pmovzxbd256_mask, __builtin_ia32_pmovzxbd128_mask,
11050 __builtin_ia32_pmovzxbq256_mask, __builtin_ia32_pmovzxbq128_mask,
11051 __builtin_ia32_pmovzxwd256_mask, __builtin_ia32_pmovzxwd128_mask,
11052 __builtin_ia32_pmovzxwq256_mask, __builtin_ia32_pmovzxwq128_mask,
11053 __builtin_ia32_pmovzxdq256_mask, __builtin_ia32_pmovzxdq128_mask,
11054 __builtin_ia32_reducepd256_mask, __builtin_ia32_reducepd128_mask,
11055 __builtin_ia32_reduceps256_mask, __builtin_ia32_reduceps128_mask,
11056 __builtin_ia32_reducesd, __builtin_ia32_reducess,
11057 __builtin_ia32_permvarhi256_mask, __builtin_ia32_permvarhi128_mask,
11058 __builtin_ia32_vpermt2varhi256_mask, __builtin_ia32_vpermt2varhi256_maskz,
11059 __builtin_ia32_vpermt2varhi128_mask, __builtin_ia32_vpermt2varhi128_maskz,
11060 __builtin_ia32_vpermi2varhi256_mask, __builtin_ia32_vpermi2varhi128_mask,
11061 __builtin_ia32_rcp14pd256_mask, __builtin_ia32_rcp14pd128_mask,
11062 __builtin_ia32_rcp14ps256_mask, __builtin_ia32_rcp14ps128_mask,
11063 __builtin_ia32_rsqrt14pd256_mask, __builtin_ia32_rsqrt14pd128_mask,
11064 __builtin_ia32_rsqrt14ps256_mask, __builtin_ia32_rsqrt14ps128_mask,
11065 __builtin_ia32_sqrtpd256_mask, __builtin_ia32_sqrtpd128_mask,
11066 __builtin_ia32_sqrtps256_mask, __builtin_ia32_sqrtps128_mask,
11067 __builtin_ia32_paddb128_mask, __builtin_ia32_paddw128_mask,
11068 __builtin_ia32_paddd128_mask, __builtin_ia32_paddq128_mask,
11069 __builtin_ia32_psubb128_mask, __builtin_ia32_psubw128_mask,
11070 __builtin_ia32_psubd128_mask, __builtin_ia32_psubq128_mask,
11071 __builtin_ia32_paddsb128_mask, __builtin_ia32_paddsw128_mask,
11072 __builtin_ia32_psubsb128_mask, __builtin_ia32_psubsw128_mask,
11073 __builtin_ia32_paddusb128_mask, __builtin_ia32_paddusw128_mask,
11074 __builtin_ia32_psubusb128_mask, __builtin_ia32_psubusw128_mask,
11075 __builtin_ia32_paddb256_mask, __builtin_ia32_paddw256_mask,
11076 __builtin_ia32_paddd256_mask, __builtin_ia32_paddq256_mask,
11077 __builtin_ia32_paddsb256_mask, __builtin_ia32_paddsw256_mask,
11078 __builtin_ia32_paddusb256_mask, __builtin_ia32_paddusw256_mask,
11079 __builtin_ia32_psubb256_mask, __builtin_ia32_psubw256_mask,
11080 __builtin_ia32_psubd256_mask, __builtin_ia32_psubq256_mask,
11081 __builtin_ia32_psubsb256_mask, __builtin_ia32_psubsw256_mask,
11082 __builtin_ia32_psubusb256_mask, __builtin_ia32_psubusw256_mask,
11083 __builtin_ia32_shuf_f64x2_256_mask, __builtin_ia32_shuf_i64x2_256_mask,
11084 __builtin_ia32_shuf_i32x4_256_mask, __builtin_ia32_shuf_f32x4_256_mask,
11085 __builtin_ia32_pmovwb128_mask, __builtin_ia32_pmovwb256_mask,
11086 __builtin_ia32_pmovswb128_mask, __builtin_ia32_pmovswb256_mask,
11087 __builtin_ia32_pmovuswb128_mask, __builtin_ia32_pmovuswb256_mask,
11088 __builtin_ia32_pmovdb128_mask, __builtin_ia32_pmovdb256_mask,
11089 __builtin_ia32_pmovsdb128_mask, __builtin_ia32_pmovsdb256_mask,
11090 __builtin_ia32_pmovusdb128_mask, __builtin_ia32_pmovusdb256_mask,
11091 __builtin_ia32_pmovdw128_mask, __builtin_ia32_pmovdw256_mask,
11092 __builtin_ia32_pmovsdw128_mask, __builtin_ia32_pmovsdw256_mask,
11093 __builtin_ia32_pmovusdw128_mask, __builtin_ia32_pmovusdw256_mask,
11094 __builtin_ia32_pmovqb128_mask, __builtin_ia32_pmovqb256_mask,
11095 __builtin_ia32_pmovsqb128_mask, __builtin_ia32_pmovsqb256_mask,
11096 __builtin_ia32_pmovusqb128_mask, __builtin_ia32_pmovusqb256_mask,
11097 __builtin_ia32_pmovqw128_mask, __builtin_ia32_pmovqw256_mask,
11098 __builtin_ia32_pmovsqw128_mask, __builtin_ia32_pmovsqw256_mask,
11099 __builtin_ia32_pmovusqw128_mask, __builtin_ia32_pmovusqw256_mask,
11100 __builtin_ia32_pmovqd128_mask, __builtin_ia32_pmovqd256_mask,
11101 __builtin_ia32_pmovsqd128_mask, __builtin_ia32_pmovsqd256_mask,
11102 __builtin_ia32_pmovusqd128_mask, __builtin_ia32_pmovusqd256_mask,
11103 __builtin_ia32_rangepd256_mask, __builtin_ia32_rangepd128_mask,
11104 __builtin_ia32_rangeps256_mask, __builtin_ia32_rangeps128_mask,
11105 __builtin_ia32_getexpps256_mask, __builtin_ia32_getexppd256_mask,
11106 __builtin_ia32_getexpps128_mask, __builtin_ia32_getexppd128_mask,
11107 __builtin_ia32_fixupimmpd256, __builtin_ia32_fixupimmpd256_mask,
11108 __builtin_ia32_fixupimmpd256_maskz, __builtin_ia32_fixupimmps256,
11109 __builtin_ia32_fixupimmps256_mask, __builtin_ia32_fixupimmps256_maskz,
11110 __builtin_ia32_fixupimmpd128, __builtin_ia32_fixupimmpd128_mask,
11111 __builtin_ia32_fixupimmpd128_maskz, __builtin_ia32_fixupimmps128,
11112 __builtin_ia32_fixupimmps128_mask, __builtin_ia32_fixupimmps128_maskz,
11113 __builtin_ia32_pabsq256_mask, __builtin_ia32_pabsq128_mask,
11114 __builtin_ia32_pabsd256_mask, __builtin_ia32_pabsd128_mask,
11115 __builtin_ia32_pmulhrsw256_mask, __builtin_ia32_pmulhrsw128_mask,
11116 __builtin_ia32_pmulhuw128_mask, __builtin_ia32_pmulhuw256_mask,
11117 __builtin_ia32_pmulhw256_mask, __builtin_ia32_pmulhw128_mask,
11118 __builtin_ia32_pmullw256_mask, __builtin_ia32_pmullw128_mask,
11119 __builtin_ia32_pmullq256_mask, __builtin_ia32_pmullq128_mask,
11120 __builtin_ia32_andpd256_mask, __builtin_ia32_andpd128_mask,
11121 __builtin_ia32_andps256_mask, __builtin_ia32_andps128_mask,
11122 __builtin_ia32_andnpd256_mask, __builtin_ia32_andnpd128_mask,
11123 __builtin_ia32_andnps256_mask, __builtin_ia32_andnps128_mask,
11124 __builtin_ia32_psllwi128_mask, __builtin_ia32_pslldi128_mask,
11125 __builtin_ia32_psllqi128_mask, __builtin_ia32_psllw128_mask,
11126 __builtin_ia32_pslld128_mask, __builtin_ia32_psllq128_mask,
11127 __builtin_ia32_psllwi256_mask, __builtin_ia32_psllw256_mask,
11128 __builtin_ia32_pslldi256_mask, __builtin_ia32_pslld256_mask,
11129 __builtin_ia32_psllqi256_mask, __builtin_ia32_psllq256_mask,
11130 __builtin_ia32_psradi128_mask, __builtin_ia32_psrad128_mask,
11131 __builtin_ia32_psradi256_mask, __builtin_ia32_psrad256_mask,
11132 __builtin_ia32_psraqi128_mask, __builtin_ia32_psraq128_mask,
11133 __builtin_ia32_psraqi256_mask, __builtin_ia32_psraq256_mask,
11134 __builtin_ia32_pandd256_mask, __builtin_ia32_pandd128_mask,
11135 __builtin_ia32_psrldi128_mask, __builtin_ia32_psrld128_mask,
11136 __builtin_ia32_psrldi256_mask, __builtin_ia32_psrld256_mask,
11137 __builtin_ia32_psrlqi128_mask, __builtin_ia32_psrlq128_mask,
11138 __builtin_ia32_psrlqi256_mask, __builtin_ia32_psrlq256_mask,
11139 __builtin_ia32_pandq256_mask, __builtin_ia32_pandq128_mask,
11140 __builtin_ia32_pandnd256_mask, __builtin_ia32_pandnd128_mask,
11141 __builtin_ia32_pandnq256_mask, __builtin_ia32_pandnq128_mask,
11142 __builtin_ia32_pord256_mask, __builtin_ia32_pord128_mask,
11143 __builtin_ia32_porq256_mask, __builtin_ia32_porq128_mask,
11144 __builtin_ia32_pxord256_mask, __builtin_ia32_pxord128_mask,
11145 __builtin_ia32_pxorq256_mask, __builtin_ia32_pxorq128_mask,
11146 __builtin_ia32_packsswb256_mask, __builtin_ia32_packsswb128_mask,
11147 __builtin_ia32_packuswb256_mask, __builtin_ia32_packuswb128_mask,
11148 __builtin_ia32_rndscaleps_256_mask, __builtin_ia32_rndscalepd_256_mask,
11149 __builtin_ia32_rndscaleps_128_mask, __builtin_ia32_rndscalepd_128_mask,
11150 __builtin_ia32_pternlogq256_mask, __builtin_ia32_pternlogq256_maskz,
11151 __builtin_ia32_pternlogd256_mask, __builtin_ia32_pternlogd256_maskz,
11152 __builtin_ia32_pternlogq128_mask, __builtin_ia32_pternlogq128_maskz,
11153 __builtin_ia32_pternlogd128_mask, __builtin_ia32_pternlogd128_maskz,
11154 __builtin_ia32_scalefpd256_mask, __builtin_ia32_scalefps256_mask,
11155 __builtin_ia32_scalefpd128_mask, __builtin_ia32_scalefps128_mask,
11156 __builtin_ia32_vfmaddpd256_mask, __builtin_ia32_vfmaddpd256_mask3,
11157 __builtin_ia32_vfmaddpd256_maskz, __builtin_ia32_vfmaddpd128_mask,
11158 __builtin_ia32_vfmaddpd128_mask3, __builtin_ia32_vfmaddpd128_maskz,
11159 __builtin_ia32_vfmaddps256_mask, __builtin_ia32_vfmaddps256_mask3,
11160 __builtin_ia32_vfmaddps256_maskz, __builtin_ia32_vfmaddps128_mask,
11161 __builtin_ia32_vfmaddps128_mask3, __builtin_ia32_vfmaddps128_maskz,
11162 __builtin_ia32_vfmsubpd256_mask3, __builtin_ia32_vfmsubpd128_mask3,
11163 __builtin_ia32_vfmsubps256_mask3, __builtin_ia32_vfmsubps128_mask3,
11164 __builtin_ia32_vfnmaddpd256_mask, __builtin_ia32_vfnmaddpd128_mask,
11165 __builtin_ia32_vfnmaddps256_mask, __builtin_ia32_vfnmaddps128_mask,
11166 __builtin_ia32_vfnmsubpd256_mask, __builtin_ia32_vfnmsubpd256_mask3,
11167 __builtin_ia32_vfnmsubpd128_mask, __builtin_ia32_vfnmsubpd128_mask3,
11168 __builtin_ia32_vfnmsubps256_mask, __builtin_ia32_vfnmsubps256_mask3,
11169 __builtin_ia32_vfnmsubps128_mask, __builtin_ia32_vfnmsubps128_mask3,
11170 __builtin_ia32_vfmaddsubpd256_mask, __builtin_ia32_vfmaddsubpd256_mask3,
11171 __builtin_ia32_vfmaddsubpd256_maskz, __builtin_ia32_vfmaddsubpd128_mask,
11172 __builtin_ia32_vfmaddsubpd128_mask3, __builtin_ia32_vfmaddsubpd128_maskz,
11173 __builtin_ia32_vfmaddsubps256_mask, __builtin_ia32_vfmaddsubps256_mask3,
11174 __builtin_ia32_vfmaddsubps256_maskz, __builtin_ia32_vfmaddsubps128_mask,
11175 __builtin_ia32_vfmaddsubps128_mask3, __builtin_ia32_vfmaddsubps128_maskz,
11176 __builtin_ia32_vfmsubaddpd256_mask3, __builtin_ia32_vfmsubaddpd128_mask3,
11177 __builtin_ia32_vfmsubaddps256_mask3, __builtin_ia32_vfmsubaddps128_mask3,
11178 __builtin_ia32_insertf64x2_256_mask, __builtin_ia32_inserti64x2_256_mask,
11179 __builtin_ia32_psrav16hi_mask, __builtin_ia32_psrav8hi_mask,
11180 __builtin_ia32_pmaddubsw256_mask, __builtin_ia32_pmaddubsw128_mask,
11181 __builtin_ia32_pmaddwd256_mask, __builtin_ia32_pmaddwd128_mask,
11182 __builtin_ia32_psrlv16hi_mask, __builtin_ia32_psrlv8hi_mask,
11183 __builtin_ia32_cvtps2dq256_mask, __builtin_ia32_cvtps2dq128_mask,
11184 __builtin_ia32_cvtps2udq256_mask, __builtin_ia32_cvtps2udq128_mask,
11185 __builtin_ia32_cvtps2qq256_mask, __builtin_ia32_cvtps2qq128_mask,
11186 __builtin_ia32_cvtps2uqq256_mask, __builtin_ia32_cvtps2uqq128_mask,
11187 __builtin_ia32_getmantps256_mask, __builtin_ia32_getmantps128_mask,
11188 __builtin_ia32_getmantpd256_mask, __builtin_ia32_getmantpd128_mask,
11189 __builtin_ia32_movddup256_mask, __builtin_ia32_movddup128_mask,
11190 __builtin_ia32_movshdup256_mask, __builtin_ia32_movshdup128_mask,
11191 __builtin_ia32_movsldup256_mask, __builtin_ia32_movsldup128_mask,
11192 __builtin_ia32_cvtqq2ps256_mask, __builtin_ia32_cvtqq2ps128_mask,
11193 __builtin_ia32_cvtuqq2ps256_mask, __builtin_ia32_cvtuqq2ps128_mask,
11194 __builtin_ia32_cvtqq2pd256_mask, __builtin_ia32_cvtqq2pd128_mask,
11195 __builtin_ia32_cvtuqq2pd256_mask, __builtin_ia32_cvtuqq2pd128_mask,
11196 __builtin_ia32_vpermt2varq256_mask, __builtin_ia32_vpermt2varq256_maskz,
11197 __builtin_ia32_vpermt2vard256_mask, __builtin_ia32_vpermt2vard256_maskz,
11198 __builtin_ia32_vpermi2varq256_mask, __builtin_ia32_vpermi2vard256_mask,
11199 __builtin_ia32_vpermt2varpd256_mask, __builtin_ia32_vpermt2varpd256_maskz,
11200 __builtin_ia32_vpermt2varps256_mask, __builtin_ia32_vpermt2varps256_maskz,
11201 __builtin_ia32_vpermi2varpd256_mask, __builtin_ia32_vpermi2varps256_mask,
11202 __builtin_ia32_vpermt2varq128_mask, __builtin_ia32_vpermt2varq128_maskz,
11203 __builtin_ia32_vpermt2vard128_mask, __builtin_ia32_vpermt2vard128_maskz,
11204 __builtin_ia32_vpermi2varq128_mask, __builtin_ia32_vpermi2vard128_mask,
11205 __builtin_ia32_vpermt2varpd128_mask, __builtin_ia32_vpermt2varpd128_maskz,
11206 __builtin_ia32_vpermt2varps128_mask, __builtin_ia32_vpermt2varps128_maskz,
11207 __builtin_ia32_vpermi2varpd128_mask, __builtin_ia32_vpermi2varps128_mask,
11208 __builtin_ia32_pshufb256_mask, __builtin_ia32_pshufb128_mask,
11209 __builtin_ia32_pshufhw256_mask, __builtin_ia32_pshufhw128_mask,
11210 __builtin_ia32_pshuflw256_mask, __builtin_ia32_pshuflw128_mask,
11211 __builtin_ia32_pshufd256_mask, __builtin_ia32_pshufd128_mask,
11212 __builtin_ia32_shufpd256_mask, __builtin_ia32_shufpd128_mask,
11213 __builtin_ia32_shufps256_mask, __builtin_ia32_shufps128_mask,
11214 __builtin_ia32_prolvq256_mask, __builtin_ia32_prolvq128_mask,
11215 __builtin_ia32_prolq256_mask, __builtin_ia32_prolq128_mask,
11216 __builtin_ia32_prorvq256_mask, __builtin_ia32_prorvq128_mask,
11217 __builtin_ia32_prorq256_mask, __builtin_ia32_prorq128_mask,
11218 __builtin_ia32_psravq128_mask, __builtin_ia32_psravq256_mask,
11219 __builtin_ia32_psllv4di_mask, __builtin_ia32_psllv2di_mask,
11220 __builtin_ia32_psllv8si_mask, __builtin_ia32_psllv4si_mask,
11221 __builtin_ia32_psrav8si_mask, __builtin_ia32_psrav4si_mask,
11222 __builtin_ia32_psrlv4di_mask, __builtin_ia32_psrlv2di_mask,
11223 __builtin_ia32_psrlv8si_mask, __builtin_ia32_psrlv4si_mask,
11224 __builtin_ia32_psrawi256_mask, __builtin_ia32_psraw256_mask,
11225 __builtin_ia32_psrawi128_mask, __builtin_ia32_psraw128_mask,
11226 __builtin_ia32_psrlwi256_mask, __builtin_ia32_psrlw256_mask,
11227 __builtin_ia32_psrlwi128_mask, __builtin_ia32_psrlw128_mask,
11228 __builtin_ia32_prorvd256_mask, __builtin_ia32_prolvd256_mask,
11229 __builtin_ia32_prord256_mask, __builtin_ia32_prold256_mask,
11230 __builtin_ia32_prorvd128_mask, __builtin_ia32_prolvd128_mask,
11231 __builtin_ia32_prord128_mask, __builtin_ia32_prold128_mask,
11232 __builtin_ia32_fpclasspd256_mask, __builtin_ia32_fpclasspd128_mask,
11233 __builtin_ia32_fpclasssd, __builtin_ia32_fpclassps256_mask,
11234 __builtin_ia32_fpclassps128_mask, __builtin_ia32_fpclassss,
11235 __builtin_ia32_cvtb2mask128, __builtin_ia32_cvtb2mask256,
11236 __builtin_ia32_cvtw2mask128, __builtin_ia32_cvtw2mask256,
11237 __builtin_ia32_cvtd2mask128, __builtin_ia32_cvtd2mask256,
11238 __builtin_ia32_cvtq2mask128, __builtin_ia32_cvtq2mask256,
11239 __builtin_ia32_cvtmask2b128, __builtin_ia32_cvtmask2b256,
11240 __builtin_ia32_cvtmask2w128, __builtin_ia32_cvtmask2w256,
11241 __builtin_ia32_cvtmask2d128, __builtin_ia32_cvtmask2d256,
11242 __builtin_ia32_cvtmask2q128, __builtin_ia32_cvtmask2q256,
11243 __builtin_ia32_pcmpeqb128_mask, __builtin_ia32_pcmpeqb256_mask,
11244 __builtin_ia32_pcmpeqw128_mask, __builtin_ia32_pcmpeqw256_mask,
11245 __builtin_ia32_pcmpeqd128_mask, __builtin_ia32_pcmpeqd256_mask,
11246 __builtin_ia32_pcmpeqq128_mask, __builtin_ia32_pcmpeqq256_mask,
11247 __builtin_ia32_pcmpgtb128_mask, __builtin_ia32_pcmpgtb256_mask,
11248 __builtin_ia32_pcmpgtw128_mask, __builtin_ia32_pcmpgtw256_mask,
11249 __builtin_ia32_pcmpgtd128_mask, __builtin_ia32_pcmpgtd256_mask,
11250 __builtin_ia32_pcmpgtq128_mask, __builtin_ia32_pcmpgtq256_mask,
11251 __builtin_ia32_ptestmb128, __builtin_ia32_ptestmb256,
11252 __builtin_ia32_ptestmw128, __builtin_ia32_ptestmw256,
11253 __builtin_ia32_ptestmd128, __builtin_ia32_ptestmd256,
11254 __builtin_ia32_ptestmq128, __builtin_ia32_ptestmq256,
11255 __builtin_ia32_ptestnmb128, __builtin_ia32_ptestnmb256,
11256 __builtin_ia32_ptestnmw128, __builtin_ia32_ptestnmw256,
11257 __builtin_ia32_ptestnmd128, __builtin_ia32_ptestnmd256,
11258 __builtin_ia32_ptestnmq128, __builtin_ia32_ptestnmq256,
11259 __builtin_ia32_broadcastmb128, __builtin_ia32_broadcastmb256,
11260 __builtin_ia32_broadcastmw128, __builtin_ia32_broadcastmw256,
11261 __builtin_ia32_compressdf256_mask, __builtin_ia32_compressdf128_mask,
11262 __builtin_ia32_compresssf256_mask, __builtin_ia32_compresssf128_mask,
11263 __builtin_ia32_compressdi256_mask, __builtin_ia32_compressdi128_mask,
11264 __builtin_ia32_compresssi256_mask, __builtin_ia32_compresssi128_mask,
11265 __builtin_ia32_expanddf256_mask, __builtin_ia32_expanddf128_mask,
11266 __builtin_ia32_expandsf256_mask, __builtin_ia32_expandsf128_mask,
11267 __builtin_ia32_expanddi256_mask, __builtin_ia32_expanddi128_mask,
11268 __builtin_ia32_expandsi256_mask, __builtin_ia32_expandsi128_mask,
11269 __builtin_ia32_expanddf256_maskz, __builtin_ia32_expanddf128_maskz,
11270 __builtin_ia32_expandsf256_maskz, __builtin_ia32_expandsf128_maskz,
11271 __builtin_ia32_expanddi256_maskz, __builtin_ia32_expanddi128_maskz,
11272 __builtin_ia32_expandsi256_maskz, __builtin_ia32_expandsi128_maskz,
11273 __builtin_ia32_pmaxsd256_mask, __builtin_ia32_pminsd256_mask,
11274 __builtin_ia32_pmaxud256_mask, __builtin_ia32_pminud256_mask,
11275 __builtin_ia32_pmaxsd128_mask, __builtin_ia32_pminsd128_mask,
11276 __builtin_ia32_pmaxud128_mask, __builtin_ia32_pminud128_mask,
11277 __builtin_ia32_pmaxsq256_mask, __builtin_ia32_pminsq256_mask,
11278 __builtin_ia32_pmaxuq256_mask, __builtin_ia32_pminuq256_mask,
11279 __builtin_ia32_pmaxsq128_mask, __builtin_ia32_pminsq128_mask,
11280 __builtin_ia32_pmaxuq128_mask, __builtin_ia32_pminuq128_mask,
11281 __builtin_ia32_pminsb256_mask, __builtin_ia32_pminub256_mask,
11282 __builtin_ia32_pmaxsb256_mask, __builtin_ia32_pmaxub256_mask,
11283 __builtin_ia32_pminsb128_mask, __builtin_ia32_pminub128_mask,
11284 __builtin_ia32_pmaxsb128_mask, __builtin_ia32_pmaxub128_mask,
11285 __builtin_ia32_pminsw256_mask, __builtin_ia32_pminuw256_mask,
11286 __builtin_ia32_pmaxsw256_mask, __builtin_ia32_pmaxuw256_mask,
11287 __builtin_ia32_pminsw128_mask, __builtin_ia32_pminuw128_mask,
11288 __builtin_ia32_pmaxsw128_mask, __builtin_ia32_pmaxuw128_mask,
11289 __builtin_ia32_vpconflictdi_256_mask, __builtin_ia32_vpconflictsi_256_mask,
11290 __builtin_ia32_vplzcntq_256_mask, __builtin_ia32_vplzcntd_256_mask,
11291 __builtin_ia32_unpckhpd256_mask, __builtin_ia32_unpckhpd128_mask,
11292 __builtin_ia32_unpckhps256_mask, __builtin_ia32_unpckhps128_mask,
11293 __builtin_ia32_unpcklpd256_mask, __builtin_ia32_unpcklpd128_mask,
11294 __builtin_ia32_unpcklps256_mask, __builtin_ia32_vpconflictdi_128_mask,
11295 __builtin_ia32_vpconflictsi_128_mask, __builtin_ia32_vplzcntq_128_mask,
11296 __builtin_ia32_vplzcntd_128_mask, __builtin_ia32_unpcklps128_mask,
11297 __builtin_ia32_alignd256_mask, __builtin_ia32_alignq256_mask,
11298 __builtin_ia32_alignd128_mask, __builtin_ia32_alignq128_mask,
11299 __builtin_ia32_vcvtps2ph256_mask, __builtin_ia32_vcvtps2ph_mask,
11300 __builtin_ia32_vcvtph2ps_mask, __builtin_ia32_vcvtph2ps256_mask,
11301 __builtin_ia32_punpckhdq128_mask, __builtin_ia32_punpckhdq256_mask,
11302 __builtin_ia32_punpckhqdq128_mask, __builtin_ia32_punpckhqdq256_mask,
11303 __builtin_ia32_punpckldq128_mask, __builtin_ia32_punpckldq256_mask,
11304 __builtin_ia32_punpcklqdq128_mask, __builtin_ia32_punpcklqdq256_mask,
11305 __builtin_ia32_punpckhbw128_mask, __builtin_ia32_punpckhbw256_mask,
11306 __builtin_ia32_punpckhwd128_mask, __builtin_ia32_punpckhwd256_mask,
11307 __builtin_ia32_punpcklbw128_mask, __builtin_ia32_punpcklbw256_mask,
11308 __builtin_ia32_punpcklwd128_mask, __builtin_ia32_punpcklwd256_mask,
11309 __builtin_ia32_psllv16hi_mask, __builtin_ia32_psllv8hi_mask,
11310 __builtin_ia32_packssdw256_mask, __builtin_ia32_packssdw128_mask,
11311 __builtin_ia32_packusdw256_mask, __builtin_ia32_packusdw128_mask,
11312 __builtin_ia32_pavgb256_mask, __builtin_ia32_pavgw256_mask,
11313 __builtin_ia32_pavgb128_mask, __builtin_ia32_pavgw128_mask,
11314 __builtin_ia32_permvarsf256_mask, __builtin_ia32_permvardf256_mask,
11315 __builtin_ia32_permdf256_mask, __builtin_ia32_pabsb256_mask,
11316 __builtin_ia32_pabsb128_mask, __builtin_ia32_pabsw256_mask,
11317 __builtin_ia32_pabsw128_mask, __builtin_ia32_vpermilvarpd_mask,
11318 __builtin_ia32_vpermilvarps_mask, __builtin_ia32_vpermilvarpd256_mask,
11319 __builtin_ia32_vpermilvarps256_mask, __builtin_ia32_vpermilpd_mask,
11320 __builtin_ia32_vpermilps_mask, __builtin_ia32_vpermilpd256_mask,
11321 __builtin_ia32_vpermilps256_mask, __builtin_ia32_blendmq_256_mask,
11322 __builtin_ia32_blendmd_256_mask, __builtin_ia32_blendmpd_256_mask,
11323 __builtin_ia32_blendmps_256_mask, __builtin_ia32_blendmq_128_mask,
11324 __builtin_ia32_blendmd_128_mask, __builtin_ia32_blendmpd_128_mask,
11325 __builtin_ia32_blendmps_128_mask, __builtin_ia32_blendmw_256_mask,
11326 __builtin_ia32_blendmb_256_mask, __builtin_ia32_blendmw_128_mask,
11327 __builtin_ia32_blendmb_128_mask, __builtin_ia32_pmulld256_mask,
11328 __builtin_ia32_pmulld128_mask, __builtin_ia32_pmuludq256_mask,
11329 __builtin_ia32_pmuldq256_mask, __builtin_ia32_pmuldq128_mask,
11330 __builtin_ia32_pmuludq128_mask, __builtin_ia32_cvtpd2ps256_mask,
11331 __builtin_ia32_cvtpd2ps_mask, __builtin_ia32_permvarsi256_mask,
11332 __builtin_ia32_permvardi256_mask, __builtin_ia32_permdi256_mask,
11333 __builtin_ia32_cmpq256_mask, __builtin_ia32_cmpd256_mask,
11334 __builtin_ia32_ucmpq256_mask, __builtin_ia32_ucmpd256_mask,
11335 __builtin_ia32_cmpb256_mask, __builtin_ia32_cmpw256_mask,
11336 __builtin_ia32_ucmpb256_mask, __builtin_ia32_ucmpw256_mask,
11337 __builtin_ia32_cmppd256_mask, __builtin_ia32_cmpps256_mask,
11338 __builtin_ia32_cmpq128_mask, __builtin_ia32_cmpd128_mask,
11339 __builtin_ia32_ucmpq128_mask, __builtin_ia32_ucmpd128_mask,
11340 __builtin_ia32_cmpb128_mask, __builtin_ia32_cmpw128_mask,
11341 __builtin_ia32_ucmpb128_mask, __builtin_ia32_ucmpw128_mask,
11342 __builtin_ia32_cmppd128_mask, __builtin_ia32_cmpps128_mask,
11343 __builtin_ia32_broadcastf32x2_512_mask, __builtin_ia32_broadcasti32x2_512_mask,
11344 __builtin_ia32_broadcastf64x2_512_mask, __builtin_ia32_broadcasti64x2_512_mask,
11345 __builtin_ia32_broadcastf32x8_512_mask, __builtin_ia32_broadcasti32x8_512_mask,
11346 __builtin_ia32_extractf64x2_512_mask, __builtin_ia32_extractf32x8_mask,
11347 __builtin_ia32_extracti64x2_512_mask, __builtin_ia32_extracti32x8_mask,
11348 __builtin_ia32_reducepd512_mask, __builtin_ia32_reduceps512_mask,
11349 __builtin_ia32_pmullq512_mask, __builtin_ia32_xorpd512_mask,
11350 __builtin_ia32_xorps512_mask, __builtin_ia32_orpd512_mask,
11351 __builtin_ia32_orps512_mask, __builtin_ia32_andpd512_mask,
11352 __builtin_ia32_andps512_mask, __builtin_ia32_andnpd512_mask,
11353 __builtin_ia32_andnps512_mask, __builtin_ia32_insertf32x8_mask,
11354 __builtin_ia32_inserti32x8_mask, __builtin_ia32_insertf64x2_512_mask,
11355 __builtin_ia32_inserti64x2_512_mask, __builtin_ia32_fpclasspd512_mask,
11356 __builtin_ia32_fpclassps512_mask, __builtin_ia32_cvtd2mask512,
11357 __builtin_ia32_cvtq2mask512, __builtin_ia32_cvtmask2d512,
11358 __builtin_ia32_cvtmask2q512, __builtin_ia32_kunpcksi,
11359 __builtin_ia32_kunpckdi, __builtin_ia32_packusdw512_mask,
11360 __builtin_ia32_pslldq512, __builtin_ia32_psrldq512,
11361 __builtin_ia32_packssdw512_mask, __builtin_ia32_palignr512,
11362 __builtin_ia32_palignr512_mask, __builtin_ia32_movdquhi512_mask,
11363 __builtin_ia32_movdquqi512_mask, __builtin_ia32_psadbw512,
11364 __builtin_ia32_dbpsadbw512_mask, __builtin_ia32_pbroadcastb512_mask,
11365 __builtin_ia32_pbroadcastb512_gpr_mask, __builtin_ia32_pbroadcastw512_mask,
11366 __builtin_ia32_pbroadcastw512_gpr_mask, __builtin_ia32_pmovsxbw512_mask,
11367 __builtin_ia32_pmovzxbw512_mask, __builtin_ia32_permvarhi512_mask,
11368 __builtin_ia32_vpermt2varhi512_mask, __builtin_ia32_vpermt2varhi512_maskz,
11369 __builtin_ia32_vpermi2varhi512_mask, __builtin_ia32_pavgb512_mask,
11370 __builtin_ia32_pavgw512_mask, __builtin_ia32_paddb512_mask,
11371 __builtin_ia32_psubb512_mask, __builtin_ia32_psubsb512_mask,
11372 __builtin_ia32_paddsb512_mask, __builtin_ia32_psubusb512_mask,
11373 __builtin_ia32_paddusb512_mask, __builtin_ia32_psubw512_mask,
11374 __builtin_ia32_paddw512_mask, __builtin_ia32_psubsw512_mask,
11375 __builtin_ia32_paddsw512_mask, __builtin_ia32_psubusw512_mask,
11376 __builtin_ia32_paddusw512_mask, __builtin_ia32_pmaxuw512_mask,
11377 __builtin_ia32_pmaxsw512_mask, __builtin_ia32_pminuw512_mask,
11378 __builtin_ia32_pminsw512_mask, __builtin_ia32_pmaxub512_mask,
11379 __builtin_ia32_pmaxsb512_mask, __builtin_ia32_pminub512_mask,
11380 __builtin_ia32_pminsb512_mask, __builtin_ia32_pmovwb512_mask,
11381 __builtin_ia32_pmovswb512_mask, __builtin_ia32_pmovuswb512_mask,
11382 __builtin_ia32_pmulhrsw512_mask, __builtin_ia32_pmulhuw512_mask,
11383 __builtin_ia32_pmulhw512_mask, __builtin_ia32_pmullw512_mask,
11384 __builtin_ia32_psllwi512_mask, __builtin_ia32_psllw512_mask,
11385 __builtin_ia32_packsswb512_mask, __builtin_ia32_packuswb512_mask,
11386 __builtin_ia32_psrav32hi_mask, __builtin_ia32_pmaddubsw512_mask,
11387 __builtin_ia32_pmaddwd512_mask, __builtin_ia32_psrlv32hi_mask,
11388 __builtin_ia32_punpckhbw512_mask, __builtin_ia32_punpckhwd512_mask,
11389 __builtin_ia32_punpcklbw512_mask, __builtin_ia32_punpcklwd512_mask,
11390 __builtin_ia32_pshufb512_mask, __builtin_ia32_pshufhw512_mask,
11391 __builtin_ia32_pshuflw512_mask, __builtin_ia32_psrawi512_mask,
11392 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
11393 __builtin_ia32_psrlw512_mask, __builtin_ia32_cvtb2mask512,
11394 __builtin_ia32_cvtw2mask512, __builtin_ia32_cvtmask2b512,
11395 __builtin_ia32_cvtmask2w512, __builtin_ia32_pcmpeqb512_mask,
11396 __builtin_ia32_pcmpeqw512_mask, __builtin_ia32_pcmpgtb512_mask,
11397 __builtin_ia32_pcmpgtw512_mask, __builtin_ia32_ptestmb512,
11398 __builtin_ia32_ptestmw512, __builtin_ia32_ptestnmb512,
11399 __builtin_ia32_ptestnmw512, __builtin_ia32_psllv32hi_mask,
11400 __builtin_ia32_pabsb512_mask, __builtin_ia32_pabsw512_mask,
11401 __builtin_ia32_blendmw_512_mask, __builtin_ia32_blendmb_512_mask,
11402 __builtin_ia32_cmpb512_mask, __builtin_ia32_cmpw512_mask,
11403 __builtin_ia32_ucmpb512_mask, __builtin_ia32_ucmpw512_mask,
11404 __builtin_ia32_rangesd128_round, __builtin_ia32_rangess128_round,
11405 __builtin_ia32_cvtpd2qq512_mask, __builtin_ia32_cvtps2qq512_mask,
11406 __builtin_ia32_cvtpd2uqq512_mask, __builtin_ia32_cvtps2uqq512_mask,
11407 __builtin_ia32_cvtqq2ps512_mask, __builtin_ia32_cvtuqq2ps512_mask,
11408 __builtin_ia32_cvtqq2pd512_mask, __builtin_ia32_cvtuqq2pd512_mask,
11409 __builtin_ia32_cvttps2qq512_mask, __builtin_ia32_cvttps2uqq512_mask,
11410 __builtin_ia32_cvttpd2qq512_mask, __builtin_ia32_cvttpd2uqq512_mask,
11411 __builtin_ia32_rangeps512_mask, __builtin_ia32_rangepd512_mask.
11412 (ix86_expand_args_builtin): Handle HI_FTYPE_V16QI, SI_FTYPE_V32QI,
11413 DI_FTYPE_V64QI, V16QI_FTYPE_HI, V32QI_FTYPE_SI, V64QI_FTYPE_DI,
11414 V8HI_FTYPE_QI, V16HI_FTYPE_HI, V32HI_FTYPE_SI, V4SI_FTYPE_QI,
11415 V8SI_FTYPE_QI, V4SI_FTYPE_HI, V8SI_FTYPE_HI, QI_FTYPE_V8HI,
11416 HI_FTYPE_V16HI, SI_FTYPE_V32HI, QI_FTYPE_V4SI, QI_FTYPE_V8SI,
11417 HI_FTYPE_V16SI, QI_FTYPE_V2DI, QI_FTYPE_V4DI, QI_FTYPE_V8DI,
11418 V2DI_FTYPE_QI, V4DI_FTYPE_QI, V8DI_FTYPE_V64QI_V64QI,
11419 SI_FTYPE_SI_SI,DI_FTYPE_DI_DI, V8DI_FTYPE_V8DI_INT_CONVERT,
11420 QI_FTYPE_V4SF_INT, QI_FTYPE_V2DF_INT,
11421 V8SF_FTYPE_V4SF_V8SF_QI, V4DF_FTYPE_V2DF_V4DF_QI,
11422 V8SI_FTYPE_V4SI_V8SI_QI, V8SI_FTYPE_SI_V8SI_QI,
11423 V4SI_FTYPE_V4SI_V4SI_QI, V4SI_FTYPE_SI_V4SI_QI,
11424 V4DI_FTYPE_V2DI_V4DI_QI, V4DI_FTYPE_DI_V4DI_QI,
11425 V2DI_FTYPE_V2DI_V2DI_QI, V2DI_FTYPE_DI_V2DI_QI,
11426 V64QI_FTYPE_V64QI_V64QI_DI, V64QI_FTYPE_V16QI_V64QI_DI,
11427 V64QI_FTYPE_QI_V64QI_DI, V32QI_FTYPE_V32QI_V32QI_SI,
11428 V32QI_FTYPE_V16QI_V32QI_SI, V32QI_FTYPE_QI_V32QI_SI,
11429 V16QI_FTYPE_V16QI_V16QI_HI, V16QI_FTYPE_QI_V16QI_HI,
11430 V32HI_FTYPE_V8HI_V32HI_SI, V32HI_FTYPE_HI_V32HI_SI,
11431 V16HI_FTYPE_V8HI_V16HI_HI, V16HI_FTYPE_HI_V16HI_HI,
11432 V8HI_FTYPE_V8HI_V8HI_QI, V8HI_FTYPE_HI_V8HI_QI,
11433 V8SF_FTYPE_V8HI_V8SF_QI, V4SF_FTYPE_V8HI_V4SF_QI,
11434 V8SI_FTYPE_V8SF_V8SI_QI, V4SI_FTYPE_V4SF_V4SI_QI,
11435 V8DI_FTYPE_V8SF_V8DI_QI, V4DI_FTYPE_V4SF_V4DI_QI,
11436 V2DI_FTYPE_V4SF_V2DI_QI, V8SF_FTYPE_V8DI_V8SF_QI,
11437 V4SF_FTYPE_V4DI_V4SF_QI, V4SF_FTYPE_V2DI_V4SF_QI,
11438 V8DF_FTYPE_V8DI_V8DF_QI, V4DF_FTYPE_V4DI_V4DF_QI,
11439 V2DF_FTYPE_V2DI_V2DF_QI, V16QI_FTYPE_V8HI_V16QI_QI,
11440 V16QI_FTYPE_V16HI_V16QI_HI, V16QI_FTYPE_V4SI_V16QI_QI,
11441 V16QI_FTYPE_V8SI_V16QI_QI, V8HI_FTYPE_V4SI_V8HI_QI,
11442 V8HI_FTYPE_V8SI_V8HI_QI, V16QI_FTYPE_V2DI_V16QI_QI,
11443 V16QI_FTYPE_V4DI_V16QI_QI, V8HI_FTYPE_V2DI_V8HI_QI,
11444 V8HI_FTYPE_V4DI_V8HI_QI, V4SI_FTYPE_V2DI_V4SI_QI,
11445 V4SI_FTYPE_V4DI_V4SI_QI, V32QI_FTYPE_V32HI_V32QI_SI,
11446 HI_FTYPE_V16QI_V16QI_HI, SI_FTYPE_V32QI_V32QI_SI,
11447 DI_FTYPE_V64QI_V64QI_DI, QI_FTYPE_V8HI_V8HI_QI,
11448 HI_FTYPE_V16HI_V16HI_HI, SI_FTYPE_V32HI_V32HI_SI,
11449 QI_FTYPE_V4SI_V4SI_QI, QI_FTYPE_V8SI_V8SI_QI,
11450 QI_FTYPE_V2DI_V2DI_QI, QI_FTYPE_V4DI_V4DI_QI,
11451 V4SF_FTYPE_V2DF_V4SF_QI, V4SF_FTYPE_V4DF_V4SF_QI,
11452 V2DI_FTYPE_V4SI_V2DI_QI, V2DI_FTYPE_V8HI_V2DI_QI,
11453 V2DI_FTYPE_V16QI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_QI,
11454 V4DI_FTYPE_V4SI_V4DI_QI, V4DI_FTYPE_V8HI_V4DI_QI,
11455 V4DI_FTYPE_V16QI_V4DI_QI, V8DI_FTYPE_V8DF_V8DI_QI,
11456 V4DI_FTYPE_V4DF_V4DI_QI, V2DI_FTYPE_V2DF_V2DI_QI,
11457 V4SI_FTYPE_V4DF_V4SI_QI, V4SI_FTYPE_V2DF_V4SI_QI,
11458 V4SI_FTYPE_V8HI_V4SI_QI, V4SI_FTYPE_V16QI_V4SI_QI,
11459 V8SI_FTYPE_V8SI_V8SI_V8SI, V8SF_FTYPE_V8SF_V8SF_QI,
11460 V8SF_FTYPE_V8SI_V8SF_QI, V4DF_FTYPE_V4DF_V4DF_QI,
11461 V4SF_FTYPE_V4SF_V4SF_QI, V2DF_FTYPE_V2DF_V2DF_QI,
11462 V2DF_FTYPE_V4SF_V2DF_QI, V2DF_FTYPE_V4SI_V2DF_QI,
11463 V4SF_FTYPE_V4SI_V4SF_QI, V4DF_FTYPE_V4SF_V4DF_QI,
11464 V4DF_FTYPE_V4SI_V4DF_QI, V8SI_FTYPE_V8SI_V8SI_QI,
11465 V8SI_FTYPE_V8HI_V8SI_QI, V8SI_FTYPE_V16QI_V8SI_QI,
11466 V16SF_FTYPE_V8SF_V16SF_HI, V16SI_FTYPE_V8SI_V16SI_HI,
11467 V16HI_FTYPE_V16HI_V16HI_HI, V8HI_FTYPE_V16QI_V8HI_QI,
11468 V16HI_FTYPE_V16QI_V16HI_HI, V32HI_FTYPE_V32HI_V32HI_SI,
11469 V32HI_FTYPE_V32QI_V32HI_SI, V8DI_FTYPE_V8DI_V8DI_INT_CONVERT,
11470 V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI_CONVERT, QI_FTYPE_V8DF_INT_QI,
11471 QI_FTYPE_V4DF_INT_QI, QI_FTYPE_V2DF_INT_QI,
11472 HI_FTYPE_V16SF_INT_HI, QI_FTYPE_V8SF_INT_QI,
11473 QI_FTYPE_V4SF_INT_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI_CONVERT,
11474 V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI_CONVERT, V32QI_FTYPE_V32QI_V32QI_V32QI_SI,
11475 V32HI_FTYPE_V32HI_V32HI_V32HI_SI, V32HI_FTYPE_V64QI_V64QI_V32HI_SI,
11476 V16SI_FTYPE_V32HI_V32HI_V16SI_HI, V64QI_FTYPE_V64QI_V64QI_V64QI_DI,
11477 V32HI_FTYPE_V32HI_V8HI_V32HI_SI, V16HI_FTYPE_V16HI_V8HI_V16HI_HI,
11478 V8SI_FTYPE_V8SI_V4SI_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_V4DI_QI,
11479 V64QI_FTYPE_V32HI_V32HI_V64QI_DI, V32QI_FTYPE_V16HI_V16HI_V32QI_SI,
11480 V16QI_FTYPE_V8HI_V8HI_V16QI_HI, V32HI_FTYPE_V16SI_V16SI_V32HI_SI,
11481 V16HI_FTYPE_V8SI_V8SI_V16HI_HI, V8HI_FTYPE_V4SI_V4SI_V8HI_QI,
11482 V4DF_FTYPE_V4DF_V4DI_V4DF_QI, V8SF_FTYPE_V8SF_V8SI_V8SF_QI,
11483 V4SF_FTYPE_V4SF_V4SI_V4SF_QI, V2DF_FTYPE_V2DF_V2DI_V2DF_QI,
11484 V2DI_FTYPE_V4SI_V4SI_V2DI_QI, V4DI_FTYPE_V8SI_V8SI_V4DI_QI,
11485 V4DF_FTYPE_V4DI_V4DF_V4DF_QI, V8SF_FTYPE_V8SI_V8SF_V8SF_QI,
11486 V2DF_FTYPE_V2DI_V2DF_V2DF_QI, V4SF_FTYPE_V4SI_V4SF_V4SF_QI,
11487 V8HI_FTYPE_V8HI_V8HI_V8HI_QI, V8SI_FTYPE_V8SI_V8SI_V8SI_QI,
11488 V4SI_FTYPE_V4SI_V4SI_V4SI_QI, V8SF_FTYPE_V8SF_V8SF_V8SF_QI,
11489 V16QI_FTYPE_V16QI_V16QI_V16QI_HI, V16HI_FTYPE_V16HI_V16HI_V16HI_HI,
11490 V2DI_FTYPE_V2DI_V2DI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_V4DI_QI,
11491 V4DF_FTYPE_V4DF_V4DF_V4DF_QI, V8HI_FTYPE_V16QI_V16QI_V8HI_QI,
11492 V16HI_FTYPE_V32QI_V32QI_V16HI_HI, V8SI_FTYPE_V16HI_V16HI_V8SI_QI,
11493 V4SI_FTYPE_V8HI_V8HI_V4SI_QI, QI_FTYPE_V4DI_V4DI_INT_QI,
11494 QI_FTYPE_V8SI_V8SI_INT_QI, QI_FTYPE_V4DF_V4DF_INT_QI,
11495 QI_FTYPE_V8SF_V8SF_INT_QI, QI_FTYPE_V2DI_V2DI_INT_QI,
11496 QI_FTYPE_V4SI_V4SI_INT_QI, DI_FTYPE_V64QI_V64QI_INT_DI,
11497 SI_FTYPE_V32QI_V32QI_INT_SI, HI_FTYPE_V16QI_V16QI_INT_HI,
11498 SI_FTYPE_V32HI_V32HI_INT_SI, HI_FTYPE_V16HI_V16HI_INT_HI,
11499 QI_FTYPE_V8HI_V8HI_INT_QI, V8SF_FTYPE_V8SF_INT_V8SF_QI,
11500 V4SF_FTYPE_V4SF_INT_V4SF_QI, V2DF_FTYPE_V4DF_INT_V2DF_QI,
11501 V2DI_FTYPE_V4DI_INT_V2DI_QI, V8SF_FTYPE_V16SF_INT_V8SF_QI,
11502 V8SI_FTYPE_V16SI_INT_V8SI_QI, V2DF_FTYPE_V8DF_INT_V2DF_QI,
11503 V2DI_FTYPE_V8DI_INT_V2DI_QI, V4SF_FTYPE_V8SF_INT_V4SF_QI,
11504 V4SI_FTYPE_V8SI_INT_V4SI_QI, V8HI_FTYPE_V8SF_INT_V8HI_QI,
11505 V8HI_FTYPE_V4SF_INT_V8HI_QI, V32HI_FTYPE_V32HI_INT_V32HI_SI,
11506 V16HI_FTYPE_V16HI_INT_V16HI_HI, V8HI_FTYPE_V8HI_INT_V8HI_QI,
11507 V4DI_FTYPE_V4DI_INT_V4DI_QI, V2DI_FTYPE_V2DI_INT_V2DI_QI,
11508 V8SI_FTYPE_V8SI_INT_V8SI_QI, V4SI_FTYPE_V4SI_INT_V4SI_QI,
11509 V4DF_FTYPE_V4DF_INT_V4DF_QI, V2DF_FTYPE_V2DF_INT_V2DF_QI,
11510 V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI,
11511 V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI, V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI,
11512 V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI,
11513 V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI, V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI,
11514 V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI, V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI,
11515 V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI, V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI,
11516 V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI, V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI,
11517 V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI,
11518 V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI,
11519 V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI, V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI,
11520 V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI, V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI,
11521 V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI, V8DI_FTYPE_V8DF_V8DI_QI_INT,
11522 V8SF_FTYPE_V8DI_V8SF_QI_INT, V8DF_FTYPE_V8DI_V8DF_QI_INT,
11523 V8DI_FTYPE_V8SF_V8DI_QI_INT, V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT,
11524 V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT, VOID_FTYPE_PV4DI_V4DI_QI,
11525 VOID_FTYPE_PV2DI_V2DI_QI, VOID_FTYPE_PV8SI_V8SI_QI,
11526 VOID_FTYPE_PV4SI_V4SI_QI, VOID_FTYPE_PV4SI_V4DI_QI,
11527 VOID_FTYPE_PV4SI_V2DI_QI, VOID_FTYPE_PV8HI_V4DI_QI,
11528 VOID_FTYPE_PV8HI_V2DI_QI, VOID_FTYPE_PV8HI_V8SI_QI,
11529 VOID_FTYPE_PV8HI_V4SI_QI, VOID_FTYPE_PV16QI_V4DI_QI,
11530 VOID_FTYPE_PV16QI_V2DI_QI, VOID_FTYPE_PV16QI_V8SI_QI,
11531 VOID_FTYPE_PV16QI_V4SI_QI, VOID_FTYPE_PV8HI_V8HI_QI,
11532 VOID_FTYPE_PV16HI_V16HI_HI, VOID_FTYPE_PV32HI_V32HI_SI,
11533 VOID_FTYPE_PV16QI_V16QI_HI, VOID_FTYPE_PV32QI_V32QI_SI,
11534 VOID_FTYPE_PV64QI_V64QI_DI, VOID_FTYPE_PV4DF_V4DF_QI,
11535 VOID_FTYPE_PV2DF_V2DF_QI, VOID_FTYPE_PV8SF_V8SF_QI,
11536 VOID_FTYPE_PV4SF_V4SF_QI, V4SF_FTYPE_PCV4SF_V4SF_QI,
11537 V8SF_FTYPE_PCV8SF_V8SF_QI, V4SI_FTYPE_PCV4SI_V4SI_QI,
11538 V8SI_FTYPE_PCV8SI_V8SI_QI, V2DF_FTYPE_PCV2DF_V2DF_QI,
11539 V4DF_FTYPE_PCV4DF_V4DF_QI, V2DI_FTYPE_PCV2DI_V2DI_QI,
11540 V4DI_FTYPE_PCV4DI_V4DI_QI, V8HI_FTYPE_PCV8HI_V8HI_QI,
11541 V16HI_FTYPE_PCV16HI_V16HI_HI, V32HI_FTYPE_PCV32HI_V32HI_SI,
11542 V16QI_FTYPE_PCV16QI_V16QI_HI, V32QI_FTYPE_PCV32QI_V32QI_SI,
11543 V64QI_FTYPE_PCV64QI_V64QI_DI, do not handle V8USI_FTYPE_V8USI.
11544
11545 2014-10-28 Jakub Jelinek <jakub@redhat.com>
11546
11547 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Use uint64_t
11548 type for the left shift in CASE_CONVERT case.
11549
11550 2014-10-28 Max Ostapenko <m.ostapenko@partner.samsung.com>
11551
11552 * asan.h (asan_intercepted_p): New function.
11553 * asan.c (asan_mem_ref_hasher::hash): Remove MEM_REF access size from
11554 hash value construction. Call iterative_hash_expr instead of explicit
11555 hash building.
11556 (asan_mem_ref_hasher::equal): Change condition.
11557 (has_mem_ref_been_instrumented): Likewise.
11558 (update_mem_ref_hash_table): Likewise.
11559 (maybe_update_mem_ref_hash_table): New function.
11560 (instrument_strlen_call): Removed.
11561 (get_mem_refs_of_builtin_call): Handle new parameter.
11562 (instrument_builtin_call): Call maybe_update_mem_ref_hash_table instead
11563 of instrument_mem_region_access if intercepted_p is true.
11564 (instrument_mem_region_access): Instrument only base with len instead of
11565 base and end with 1.
11566 (build_check_stmt): Remove start_instrumented and end_instrumented
11567 parameters.
11568 (enum asan_check_flags): Remove ASAN_CHECK_START_INSTRUMENTED and
11569 ASAN_CHECK_END_INSTRUMENTED. Change ASAN_CHECK_LAST.
11570 (asan_expand_check_ifn): Remove start_instrumented and end_instrumented.
11571 * builtins.c (expand_builtin): Include asan.h. Don't expand string/memory
11572 builtin functions that have interceptors if ASan is enabled.
11573
11574 2014-10-28 Richard Biener <rguenther@suse.de>
11575
11576 PR middle-end/63665
11577 * fold-const.c (fold_comparison): Properly guard simplifying
11578 against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
11579
11580 2014-10-28 Alan Lawrence <alan.lawrence@arm.com>
11581
11582 * expr.c (expand_expr_real_2): Remove code handling VEC_LSHIFT_EXPR.
11583 * fold-const.c (const_binop): Likewise.
11584 * cfgexpand.c (expand_debug_expr): Likewise.
11585 * tree-inline.c (estimate_operator_cost): Likewise.
11586 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
11587 * optabs.c (optab_for_tree_code): Likewise.
11588 (expand_vec_shift_expr): Likewise, update comment.
11589 * tree.def: Delete VEC_LSHIFT_EXPR, remove comment.
11590 * optabs.h (expand_vec_shift_expr): Remove comment re. VEC_LSHIFT_EXPR.
11591 * optabs.def: Remove vec_shl_optab.
11592 * doc/md.texi: Remove references to vec_shr_m.
11593
11594 2014-10-28 Yury Gribov <y.gribov@samsung.com>
11595
11596 * asan.c (report_error_func): Add noabort path.
11597 (check_func): Ditto. Formatting.
11598 (asan_expand_check_ifn): Handle noabort path.
11599 * common.opt (flag_sanitize_recover): Add SANITIZE_KERNEL_ADDRESS
11600 to default value.
11601 * doc/invoke.texi (-fsanitize-recover=): Mention KASan.
11602 * opts.c (finish_options): Reword comment.
11603 * sanitizer.def: Add noabort ASan builtins.
11604
11605 2014-10-28 Yury Gribov <y.gribov@samsung.com>
11606
11607 * asan.c (set_asan_shadow_offset): New function.
11608 (asan_shadow_offset): Likewise.
11609 (asan_emit_stack_protection): Call asan_shadow_offset.
11610 (build_shadow_mem_access): Likewise.
11611 * asan.h (set_asan_shadow_offset): Declare.
11612 * common.opt (fasan-shadow-offset): New option.
11613 (frandom-seed): Fixed parameter name.
11614 * doc/invoke.texi (fasan-shadow-offset): Describe new option.
11615 (frandom-seed): Fixed parameter name.
11616 * opts-global.c (handle_common_deferred_options): Handle
11617 -fasan-shadow-offset.
11618 * opts.c (common_handle_option): Likewise.
11619
11620 2014-10-27 Jiong Wang <jiong.wang@arm.com>
11621
11622 PR target/63442
11623 * optabs.c (prepare_cmp_insn): Use "ret_mode" instead of "word_mode".
11624
11625 2014-10-27 DJ Delorie <dj@redhat.com>
11626
11627 * tree.c (build_common_tree_nodes): Don't even store the
11628 __int128 types if they're not supported.
11629
11630 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11631
11632 * config/i386/i386.c (ix86_loop_memcount): Delete.
11633 (ix86_loop_unroll_adjust): Use FOR_EACH_SUBRTX.
11634
11635 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11636
11637 * config/i386/i386.c (find_constant_1): Delete.
11638 (find_constant): Use FOR_EACH_SUBRTX.
11639
11640 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11641
11642 * config/i386/i386.c (extended_reg_mentioned_1): Delete.
11643 (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.
11644
11645 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11646
11647 * config/i386/i386.c: Include rtl-iter.h
11648 (ix86_check_avx256_register): Take a const_rtx and return a bool.
11649 (ix86_check_avx256_stores): Update call accordingly.
11650 (ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise.
11651 (ix86_avx_u128_mode_needed): Likewise. Use FOR_EACH_SUBRTX.
11652
11653 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11654
11655 * config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
11656 Take an rtx and return a bool.
11657 * config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
11658 Use FOR_EACH_SUBRTX_VAR.
11659 * config/alpha/predicates.md (some_small_symbolic_operand): Update
11660 accordingly.
11661
11662 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11663
11664 * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
11665 a bool.
11666 * config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
11667 (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX. Return a bool.
11668
11669 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11670
11671 * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
11672 (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.
11673
11674 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11675
11676 * config/alpha/alpha.c: Include rtl-iter.h.
11677 (split_small_symbolic_operand_1): Delete.
11678 (split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR.
11679
11680 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11681
11682 * config/s390/s390.c: Include rtl-iter.h.
11683 (check_dpu): Delete.
11684 (s390_loop_unroll_adjust): Only iterate over patterns.
11685 Use FOR_EACH_SUBRTX.
11686
11687 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
11688
11689 * config/spu/spu.c: Include rtl-iter.h
11690 (ea_symbol_ref): Replace with...
11691 (ea_symbol_ref_p): ...this new function.
11692 (spu_legitimate_address_p): Update call accordingly.
11693 (spu_legitimate_constant_p): Likewise. Use FOR_EACH_SUBRTX.
11694
11695 2014-10-27 Phil Muldoon <pmuldoon@redhat.com>
11696 Tom Tromey <tromey@redhat.com>
11697
11698 * aclocal.m4, configure: Rebuild.
11699 * Makefile.in (aclocal_deps): Add gcc-plugin.m4.
11700 * configure.ac: Use GCC_ENABLE_PLUGINS.
11701 * stor-layout.c (finish_bitfield_layout): Now public. Change
11702 argument type to 'tree'.
11703 (finish_record_layout): Update.
11704 * stor-layout.h (finish_bitfield_layout): Declare.
11705
11706 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
11707
11708 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
11709 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
11710 Restore, enable for bigendian, update to use __builtin..._scal...
11711
11712 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
11713
11714 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
11715 reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
11716 (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
11717 reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.
11718
11719 * config/aarch64/aarch64-simd.md
11720 (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
11721 (reduc_<maxmin_uns>_internal<mode>): ...this.
11722 (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
11723 (reduc_<maxmin_uns>_scal_<mode>): New (*2).
11724
11725 (reduc_<maxmin_uns>_v2si): Combine with below, renaming...
11726 (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
11727 (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).
11728
11729 * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
11730 vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
11731 vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
11732 vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
11733 vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
11734 vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
11735 vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
11736 __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.
11737
11738 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
11739
11740 * config/aarch64/aarch64-simd-builtins.def
11741 (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
11742 Remove.
11743 (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
11744
11745 * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
11746 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
11747
11748 (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
11749 (aarch64_reduc_plus_internal<mode>): ...this.
11750
11751 (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
11752 (aarch64_reduc_plus_internalv2si): ...this.
11753
11754 (reduc_splus_<mode>/V2F): Rename to...
11755 (aarch64_reduc_plus_internal<mode>): ...this.
11756
11757 * config/aarch64/iterators.md
11758 (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
11759 (UNSPEC_ADDV): New.
11760 (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
11761
11762 * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
11763 vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
11764 vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
11765 vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
11766 __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.
11767
11768 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
11769
11770 PR tree-optimization/61114
11771 * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
11772 optabs, and note in reduc_[us](plus|min|max) to prefer the former.
11773
11774 * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
11775 back to old reduc_... + BIT_FIELD_REF only if not.
11776
11777 * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
11778 return the reduce-to-scalar (reduc_..._scal) optab.
11779 (scalar_reduc_to_vector): New.
11780
11781 * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
11782 reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
11783 New.
11784
11785 * optabs.h (scalar_reduc_to_vector): Declare.
11786
11787 * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
11788 to either scalar or vector.
11789
11790 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
11791
11792 PR tree-optimization/61114
11793 * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
11794 extract_bit_field around optab result.
11795
11796 * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
11797 scalar not vector.
11798
11799 * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
11800 for REDUC_{MIN,MAX,PLUS}_EXPR.
11801
11802 * tree-vect-loop.c (vect_analyze_loop): Update comment.
11803 (vect_create_epilog_for_reduction): For direct vector reduction, use
11804 result of tree code directly without extract_bit_field.
11805
11806 * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
11807 comment.
11808
11809 2014-10-27 Andrew MacLeod <amacleod@redhat.com>
11810
11811 * basic-block.h: Remove all includes.
11812 (enum profile_status_d, struct control_flow_graph): Move to cfg.h
11813 * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
11814 * Makefile.in (GTFILES): Add cfg.h to list.
11815 * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
11816 * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
11817 * genconditions.c (write_header): Add predict.h and basic-block.h to
11818 lits of includes.
11819 * genemit.c (main): Ditto.
11820 * genpreds.c (write_insn_preds_c): Ditto.
11821 * genrecog.c (write_header): Ditto.
11822 * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
11823 to list of includes.
11824 * alias.c: Adjust include files.
11825 * asan.c: Ditto.
11826 * auto-inc-dec.c: Ditto.
11827 * auto-profile.c: Ditto.
11828 * bb-reorder.c: Ditto.
11829 * bt-load.c: Ditto.
11830 * builtins.c: Ditto.
11831 * caller-save.c: Ditto.
11832 * calls.c: Ditto.
11833 * cfg.c: Ditto.
11834 * cfganal.c: Ditto.
11835 * cfgbuild.c: Ditto.
11836 * cfgcleanup.c: Ditto.
11837 * cfgexpand.c: Ditto.
11838 * cfghooks.c: Ditto.
11839 * cfgloop.c: Ditto.
11840 * cfgloopanal.c: Ditto.
11841 * cfgloopmanip.c: Ditto.
11842 * cfgrtl.c: Ditto.
11843 * cgraphbuild.c: Ditto.
11844 * cgraphclones.c: Ditto.
11845 * cgraphunit.c: Ditto.
11846 * combine-stack-adj.c: Ditto.
11847 * combine.c: Ditto.
11848 * compare-elim.c: Ditto.
11849 * coverage.c: Ditto.
11850 * cprop.c: Ditto.
11851 * cse.c: Ditto.
11852 * cselib.c: Ditto.
11853 * data-streamer-in.c: Ditto.
11854 * data-streamer-out.c: Ditto.
11855 * data-streamer.c: Ditto.
11856 * dce.c: Ditto.
11857 * ddg.c: Ditto.
11858 * ddg.h: Ditto.
11859 * df-core.c: Ditto.
11860 * df-problems.c: Ditto.
11861 * df-scan.c: Ditto.
11862 * df.h: Ditto.
11863 * dojump.c: Ditto.
11864 * dominance.c: Ditto.
11865 * domwalk.c: Ditto.
11866 * dse.c: Ditto.
11867 * dwarf2cfi.c: Ditto.
11868 * emit-rtl.c: Ditto.
11869 * et-forest.c: Ditto.
11870 * except.c: Ditto.
11871 * expmed.c: Ditto.
11872 * expr.c: Ditto.
11873 * final.c: Ditto.
11874 * fold-const.c: Ditto.
11875 * function.c: Ditto.
11876 * fwprop.c: Ditto.
11877 * gcc-plugin.h: Ditto.
11878 * gcse.c: Ditto.
11879 * generic-match-head.c: Ditto.
11880 * ggc-page.c: Ditto.
11881 * gimple-builder.c: Ditto.
11882 * gimple-expr.c: Ditto.
11883 * gimple-fold.c: Ditto.
11884 * gimple-iterator.c: Ditto.
11885 * gimple-low.c: Ditto.
11886 * gimple-match-head.c: Ditto.
11887 * gimple-pretty-print.c: Ditto.
11888 * gimple-ssa-isolate-paths.c: Ditto.
11889 * gimple-ssa-strength-reduction.c: Ditto.
11890 * gimple-streamer-in.c: Ditto.
11891 * gimple-streamer-out.c: Ditto.
11892 * gimple-streamer.h: Ditto.
11893 * gimple-walk.c: Ditto.
11894 * gimple.c: Ditto.
11895 * gimplify-me.c: Ditto.
11896 * gimplify.c: Ditto.
11897 * graph.c: Ditto.
11898 * graphite-blocking.c: Ditto.
11899 * graphite-clast-to-gimple.c: Ditto.
11900 * graphite-dependences.c: Ditto.
11901 * graphite-interchange.c: Ditto.
11902 * graphite-isl-ast-to-gimple.c: Ditto.
11903 * graphite-optimize-isl.c: Ditto.
11904 * graphite-poly.c: Ditto.
11905 * graphite-scop-detection.c: Ditto.
11906 * graphite-sese-to-poly.c: Ditto.
11907 * graphite.c: Ditto.
11908 * haifa-sched.c: Ditto.
11909 * hw-doloop.c: Ditto.
11910 * ifcvt.c: Ditto.
11911 * init-regs.c: Ditto.
11912 * internal-fn.c: Ditto.
11913 * ipa-cp.c: Ditto.
11914 * ipa-devirt.c: Ditto.
11915 * ipa-icf-gimple.c: Ditto.
11916 * ipa-icf.c: Ditto.
11917 * ipa-inline-analysis.c: Ditto.
11918 * ipa-inline.c: Ditto.
11919 * ipa-polymorphic-call.c: Ditto.
11920 * ipa-profile.c: Ditto.
11921 * ipa-prop.c: Ditto.
11922 * ipa-pure-const.c: Ditto.
11923 * ipa-reference.c: Ditto.
11924 * ipa-split.c: Ditto.
11925 * ipa-utils.c: Ditto.
11926 * ipa.c: Ditto.
11927 * ira-build.c: Ditto.
11928 * ira-color.c: Ditto.
11929 * ira-conflicts.c: Ditto.
11930 * ira-costs.c: Ditto.
11931 * ira-emit.c: Ditto.
11932 * ira-lives.c: Ditto.
11933 * ira.c: Ditto.
11934 * jump.c: Ditto.
11935 * lcm.c: Ditto.
11936 * loop-doloop.c: Ditto.
11937 * loop-init.c: Ditto.
11938 * loop-invariant.c: Ditto.
11939 * loop-iv.c: Ditto.
11940 * loop-unroll.c: Ditto.
11941 * lower-subreg.c: Ditto.
11942 * lra-assigns.c: Ditto.
11943 * lra-coalesce.c: Ditto.
11944 * lra-constraints.c: Ditto.
11945 * lra-eliminations.c: Ditto.
11946 * lra-lives.c: Ditto.
11947 * lra-spills.c: Ditto.
11948 * lra.c: Ditto.
11949 * lto-cgraph.c: Ditto.
11950 * lto-compress.c: Ditto.
11951 * lto-opts.c: Ditto.
11952 * lto-section-in.c: Ditto.
11953 * lto-section-out.c: Ditto.
11954 * lto-streamer-in.c: Ditto.
11955 * lto-streamer-out.c: Ditto.
11956 * lto-streamer.c: Ditto.
11957 * mcf.c: Ditto.
11958 * mode-switching.c: Ditto.
11959 * modulo-sched.c: Ditto.
11960 * omp-low.c: Ditto.
11961 * optabs.c: Ditto.
11962 * opts-global.c: Ditto.
11963 * passes.c: Ditto.
11964 * postreload-gcse.c: Ditto.
11965 * postreload.c: Ditto.
11966 * predict.c: Ditto.
11967 * print-rtl.c: Ditto.
11968 * profile.c: Ditto.
11969 * recog.c: Ditto.
11970 * ree.c: Ditto.
11971 * reg-stack.c: Ditto.
11972 * regcprop.c: Ditto.
11973 * regcprop.h: Ditto.
11974 * reginfo.c: Ditto.
11975 * regrename.c: Ditto.
11976 * regstat.c: Ditto.
11977 * reload.c: Ditto.
11978 * reload1.c: Ditto.
11979 * reorg.c: Ditto.
11980 * resource.c: Ditto.
11981 * rtlanal.c: Ditto.
11982 * sched-deps.c: Ditto.
11983 * sched-ebb.c: Ditto.
11984 * sched-int.h: Ditto.
11985 * sched-rgn.c: Ditto.
11986 * sched-vis.c: Ditto.
11987 * sel-sched-dump.c: Ditto.
11988 * sel-sched-ir.c: Ditto.
11989 * sel-sched-ir.h: Ditto.
11990 * sel-sched.c: Ditto.
11991 * sese.c: Ditto.
11992 * shrink-wrap.c: Ditto.
11993 * stack-ptr-mod.c: Ditto.
11994 * stmt.c: Ditto.
11995 * store-motion.c: Ditto.
11996 * symtab.c: Ditto.
11997 * toplev.c: Ditto.
11998 * tracer.c: Ditto.
11999 * trans-mem.c: Ditto.
12000 * tree-affine.c: Ditto.
12001 * tree-call-cdce.c: Ditto.
12002 * tree-cfg.c: Ditto.
12003 * tree-cfgcleanup.c: Ditto.
12004 * tree-chrec.c: Ditto.
12005 * tree-complex.c: Ditto.
12006 * tree-data-ref.c: Ditto.
12007 * tree-dfa.c: Ditto.
12008 * tree-eh.c: Ditto.
12009 * tree-emutls.c: Ditto.
12010 * tree-if-conv.c: Ditto.
12011 * tree-inline.c: Ditto.
12012 * tree-into-ssa.c: Ditto.
12013 * tree-loop-distribution.c: Ditto.
12014 * tree-nested.c: Ditto.
12015 * tree-nrv.c: Ditto.
12016 * tree-object-size.c: Ditto.
12017 * tree-outof-ssa.c: Ditto.
12018 * tree-parloops.c: Ditto.
12019 * tree-phinodes.c: Ditto.
12020 * tree-predcom.c: Ditto.
12021 * tree-pretty-print.c: Ditto.
12022 * tree-profile.c: Ditto.
12023 * tree-scalar-evolution.c: Ditto.
12024 * tree-sra.c: Ditto.
12025 * tree-ssa-address.c: Ditto.
12026 * tree-ssa-alias.c: Ditto.
12027 * tree-ssa-ccp.c: Ditto.
12028 * tree-ssa-coalesce.c: Ditto.
12029 * tree-ssa-copy.c: Ditto.
12030 * tree-ssa-copyrename.c: Ditto.
12031 * tree-ssa-dce.c: Ditto.
12032 * tree-ssa-dom.c: Ditto.
12033 * tree-ssa-dse.c: Ditto.
12034 * tree-ssa-forwprop.c: Ditto.
12035 * tree-ssa-ifcombine.c: Ditto.
12036 * tree-ssa-live.c: Ditto.
12037 * tree-ssa-loop-ch.c: Ditto.
12038 * tree-ssa-loop-im.c: Ditto.
12039 * tree-ssa-loop-ivcanon.c: Ditto.
12040 * tree-ssa-loop-ivopts.c: Ditto.
12041 * tree-ssa-loop-manip.c: Ditto.
12042 * tree-ssa-loop-niter.c: Ditto.
12043 * tree-ssa-loop-prefetch.c: Ditto.
12044 * tree-ssa-loop-unswitch.c: Ditto.
12045 * tree-ssa-loop.c: Ditto.
12046 * tree-ssa-math-opts.c: Ditto.
12047 * tree-ssa-operands.c: Ditto.
12048 * tree-ssa-phiopt.c: Ditto.
12049 * tree-ssa-phiprop.c: Ditto.
12050 * tree-ssa-pre.c: Ditto.
12051 * tree-ssa-propagate.c: Ditto.
12052 * tree-ssa-reassoc.c: Ditto.
12053 * tree-ssa-sccvn.c: Ditto.
12054 * tree-ssa-sink.c: Ditto.
12055 * tree-ssa-strlen.c: Ditto.
12056 * tree-ssa-structalias.c: Ditto.
12057 * tree-ssa-tail-merge.c: Ditto.
12058 * tree-ssa-ter.c: Ditto.
12059 * tree-ssa-threadedge.c: Ditto.
12060 * tree-ssa-threadupdate.c: Ditto.
12061 * tree-ssa-uncprop.c: Ditto.
12062 * tree-ssa-uninit.c: Ditto.
12063 * tree-ssa.c: Ditto.
12064 * tree-ssanames.c: Ditto.
12065 * tree-stdarg.c: Ditto.
12066 * tree-streamer-in.c: Ditto.
12067 * tree-streamer-out.c: Ditto.
12068 * tree-streamer.c: Ditto.
12069 * tree-switch-conversion.c: Ditto.
12070 * tree-tailcall.c: Ditto.
12071 * tree-vect-data-refs.c: Ditto.
12072 * tree-vect-generic.c: Ditto.
12073 * tree-vect-loop-manip.c: Ditto.
12074 * tree-vect-loop.c: Ditto.
12075 * tree-vect-patterns.c: Ditto.
12076 * tree-vect-slp.c: Ditto.
12077 * tree-vect-stmts.c: Ditto.
12078 * tree-vectorizer.c: Ditto.
12079 * tree-vrp.c: Ditto.
12080 * tree.c: Ditto.
12081 * tsan.c: Ditto.
12082 * ubsan.c: Ditto.
12083 * valtrack.c: Ditto.
12084 * valtrack.h: Ditto.
12085 * value-prof.c: Ditto.
12086 * var-tracking.c: Ditto.
12087 * varasm.c: Ditto.
12088 * varpool.c: Ditto.
12089 * vtable-verify.c: Ditto.
12090 * web.c: Ditto.
12091 * config/aarch64/aarch64-builtins.c: Ditto.
12092 * config/aarch64/aarch64.c: Ditto.
12093 * config/alpha/alpha.c: Ditto.
12094 * config/arc/arc.c: Ditto.
12095 * config/arm/arm.c: Ditto.
12096 * config/avr/avr.c: Ditto.
12097 * config/bfin/bfin.c: Ditto.
12098 * config/c6x/c6x.c: Ditto.
12099 * config/cr16/cr16.c: Ditto.
12100 * config/cris/cris.c: Ditto.
12101 * config/darwin-c.c: Ditto.
12102 * config/darwin.c: Ditto.
12103 * config/epiphany/epiphany.c: Ditto.
12104 * config/epiphany/mode-switch-use.c: Ditto.
12105 * config/epiphany/resolve-sw-modes.c: Ditto.
12106 * config/fr30/fr30.c: Ditto.
12107 * config/frv/frv.c: Ditto.
12108 * config/h8300/h8300.c: Ditto.
12109 * config/i386/i386.c: Ditto.
12110 * config/i386/winnt.c: Ditto.
12111 * config/ia64/ia64.c: Ditto.
12112 * config/iq2000/iq2000.c: Ditto.
12113 * config/lm32/lm32.c: Ditto.
12114 * config/m32c/m32c.c: Ditto.
12115 * config/m32r/m32r.c: Ditto.
12116 * config/m68k/m68k.c: Ditto.
12117 * config/mcore/mcore.c: Ditto.
12118 * config/mep/mep.c: Ditto.
12119 * config/microblaze/microblaze.c: Ditto.
12120 * config/mips/mips.c: Ditto.
12121 * config/mmix/mmix.c: Ditto.
12122 * config/mn10300/mn10300.c: Ditto.
12123 * config/moxie/moxie.c: Ditto.
12124 * config/msp430/msp430.c: Ditto.
12125 * config/nds32/nds32-cost.c: Ditto.
12126 * config/nds32/nds32-fp-as-gp.c: Ditto.
12127 * config/nds32/nds32-intrinsic.c: Ditto.
12128 * config/nds32/nds32-isr.c: Ditto.
12129 * config/nds32/nds32-md-auxiliary.c: Ditto.
12130 * config/nds32/nds32-memory-manipulation.c: Ditto.
12131 * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
12132 * config/nds32/nds32-predicates.c: Ditto.
12133 * config/nds32/nds32.c: Ditto.
12134 * config/nios2/nios2.c: Ditto.
12135 * config/pa/pa.c: Ditto.
12136 * config/pdp11/pdp11.c: Ditto.
12137 * config/rl78/rl78.c: Ditto.
12138 * config/rs6000/rs6000.c: Ditto.
12139 * config/rx/rx.c: Ditto.
12140 * config/s390/s390.c: Ditto.
12141 * config/sh/sh-mem.cc: Ditto.
12142 * config/sh/sh.c: Ditto.
12143 * config/sh/sh_optimize_sett_clrt.cc: Ditto.
12144 * config/sh/sh_treg_combine.cc: Ditto.
12145 * config/sparc/sparc.c: Ditto.
12146 * config/spu/spu.c: Ditto.
12147 * config/stormy16/stormy16.c: Ditto.
12148 * config/tilegx/tilegx.c: Ditto.
12149 * config/tilepro/tilepro.c: Ditto.
12150 * config/v850/v850.c: Ditto.
12151 * config/vax/vax.c: Ditto.
12152 * config/xtensa/xtensa.c: Ditto.
12153
12154 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
12155
12156 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
12157 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
12158 Remove using preprocessor directives.
12159
12160 2014-10-27 Richard Biener <rguenther@suse.de>
12161
12162 * match.pd (0 % X): Properly use the iterator iterating over
12163 all modulo operators.
12164 (X % 1): Likewise.
12165
12166 2014-10-27 Richard Biener <rguenther@suse.de>
12167
12168 * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
12169 (lattice): New global.
12170 (fwprop_ssa_val): New function.
12171 (fold_all_stmts): Likewise.
12172 (pass_forwprop::execute): Finally fold all stmts.
12173
12174 2014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
12175
12176 PR c++/53061
12177 * doc/invoke.texi (fmessage-length): Update text to match reality.
12178
12179 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12180
12181 * config/microblaze/microblaze.c: Include rtl-iter.h.
12182 (microblaze_tls_referenced_p_1): Delete.
12183 (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
12184
12185 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12186
12187 * config/mips/mips.c (mips_at_reg_p): Delete.
12188 (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
12189
12190 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12191
12192 * config/mips/mips.c (mips_record_lo_sum): Replace with...
12193 (mips_record_lo_sums): ...this new function.
12194 (mips_reorg_process_insns): Update accordingly.
12195
12196 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12197
12198 * config/mips/mips.c (mips_sim_insn): Update comment.
12199 (mips_sim_wait_regs_2): Delete.
12200 (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
12201
12202 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12203
12204 * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
12205 and return a bool. Iterate over all subrtxes here.
12206 (r10k_needs_protection_p): Update accordingly.
12207
12208 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12209
12210 * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
12211 rather than an rtx pointer. Change type of insn from "void *"
12212 to its real type. Return bool rather than int. Iterate over
12213 all subrtxes here.
12214 (r10k_needs_protection_p_store): Update accordingly.
12215 (r10k_needs_protection_p): Likewise.
12216
12217 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12218
12219 * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
12220 (mips16_rewrite_pool_refs): Take the insn and constant pool as
12221 parameters. Iterate over the instruction's pattern and return void.
12222 (mips16_lay_out_constants): Update accordingly.
12223
12224 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12225
12226 * config/mips/mips.c (mips_kernel_reg_p): Replace with...
12227 (mips_refers_to_kernel_reg_p): ...this new function.
12228 (mips_expand_prologue): Update accordingly.
12229
12230 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12231
12232 * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
12233 as a parameter instead of the containing MEM. Iterate over all
12234 subrtxes. Don't return a value.
12235 (mips_rewrite_small_data): Update call accordingly.
12236
12237 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12238
12239 * config/mips/mips.c: Include rtl-iter.h.
12240 (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
12241 Take the context as a parameter instead of the containing MEM.
12242 Iterate over all subrtxes.
12243 (mips_small_data_pattern_p): Update call accordingly.
12244
12245 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12246
12247 * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
12248 (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
12249
12250 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12251
12252 * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
12253 return a bool. Replace "void *" with specific type. Iterate
12254 over all subrtxes.
12255 (mep_store_data_bypass_1): Update calls accordingly.
12256
12257 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12258
12259 * config/mep/mep.c: Include rtl-iter.h.
12260 (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
12261 (xtensa_tls_referenced_p): Return a bool. Use FOR_EACH_SUBRTX.
12262
12263 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12264
12265 * config/xtensa/xtensa.c: Include rtl-iter.h.
12266 (xtensa_tls_referenced_p_1): Delete.
12267 (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
12268
12269 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12270
12271 * config/sh/sh.c (sh_contains_memref_p_1): Delete.
12272 (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
12273
12274 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12275
12276 * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
12277 rtx as argument and return the number of changes.
12278 * config/sh/sh.c: Include rtl-iter.h.
12279 (shmedia_cleanup_truncate): Take an rtx as argument and iterate
12280 over all subrtxes. Return the number of changes made.
12281 * config/sh/sh.md: Update caller accordingly.
12282
12283 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12284
12285 * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
12286 (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
12287
12288 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
12289
12290 * config/m68k/m68k.c: Include rtl-iter.h.
12291 (m68k_final_prescan_insn_1): Delete.
12292 (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
12293
12294 2014-10-25 Jakub Jelinek <jakub@redhat.com>
12295
12296 PR tree-optimization/63641
12297 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
12298 to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
12299
12300 2014-10-25 Alan Modra <amodra@gmail.com>
12301
12302 PR rtl-optimization/63615
12303 * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
12304 decomposing PLUS or MINUS if operands are not placed adjacent
12305 in the "ops" array.
12306
12307 2014-10-25 Joseph Myers <joseph@codesourcery.com>
12308
12309 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
12310 not allow e500 double in registers not satisyfing
12311 SPE_SIMD_REGNO_P.
12312
12313 2014-10-24 Aldy Hernandez <aldyh@redhat.com>
12314
12315 * dwarf2out.c (declare_in_namespace): Only emit external
12316 declarations in the local scope once.
12317
12318 2014-10-24 Jonathan Wakely <jwakely@redhat.com>
12319
12320 * ginclude/stdbool.h: Do not define bool, true or false in C++11.
12321
12322 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
12323
12324 * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
12325 update uses to use new macro arguments.
12326 (__LD3_LANE_FUNC): Likewise.
12327 (__LD4_LANE_FUNC): Likewise.
12328
12329 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
12330
12331 * config/aarch64/aarch64-builtins.c
12332 (aarch64_types_loadstruct_lane_qualifiers): Define.
12333 * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
12334 ld4_lane): New builtins.
12335 * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
12336 New pattern.
12337 (aarch64_vec_load_lanesci_lane<mode>): Likewise.
12338 (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
12339 (aarch64_ld2_lane<mode>): New expand.
12340 (aarch64_ld3_lane<mode>): Likewise.
12341 (aarch64_ld4_lane<mode>): Likewise.
12342 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
12343 UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
12344
12345 2014-10-24 Georg-Johann Lay <avr@gjlay.de>
12346
12347 * avr-protos.h (avr_out_sign_extend): New.
12348 * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
12349 (avr_out_sign_extend): New function.
12350 * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
12351 (extendhisi2, extendpsisi2): Use it.
12352 (adjust_len) [sext]: New.
12353
12354 2014-10-24 Martin Liska <mliska@suse.cz>
12355
12356 * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
12357 added.
12358
12359 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12360
12361 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
12362 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
12363 * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
12364 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
12365
12366 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12367
12368 * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
12369 do while (0).
12370 * config/aarch64/aarch64.c (is_mem_p): Delete.
12371 (is_memory_op): Rename to...
12372 (has_memory_op): ... This. Use FOR_EACH_SUBRTX.
12373 (dep_between_memop_and_curr): Assert that the input is a SET.
12374 (aarch64_madd_needs_nop): Add comment. Do not call
12375 dep_between_memop_and_curr on NULL body.
12376 (aarch64_final_prescan_insn): Add comment.
12377 Include rtl-iter.h.
12378
12379 2014-10-24 Richard Biener <rguenther@suse.de>
12380
12381 * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
12382 to genmatch BUILD_LIBS instead.
12383
12384 2014-10-24 Richard Biener <rguenther@suse.de>
12385
12386 * genmatch.c (expr::gen_transform): Use fold_buildN_loc
12387 and build_call_expr_loc.
12388 (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
12389 non_lvalue_loc to build it for GENERIC.
12390 (decision_tree::gen_generic): Add location argument to
12391 generic_simplify prototype.
12392 (capture_info): New class.
12393 (capture_info::capture_info): New constructor.
12394 (capture_info::walk_match): New method.
12395 (capture_info::walk_result): New method.
12396 (capture_info::walk_c_expr): New method.
12397 (dt_simplify::gen): Handle preserving side-effects for
12398 GENERIC code generation.
12399 (decision_tree::gen_generic): Do not reject operands
12400 with TREE_SIDE_EFFECTS.
12401 * generic-match.h: New file.
12402 * generic-match-head.c: Include generic-match.h, not gimple-match.h.
12403 * match.pd: Add some constant folding patterns from fold-const.c.
12404 * fold-const.c: Include generic-match.h.
12405 (fold_unary_loc): Dispatch to generic_simplify.
12406 (fold_ternary_loc): Likewise.
12407 (fold_binary_loc): Likewise. Remove patterns now implemented
12408 by generic_simplify.
12409 * gimple-fold.c (replace_stmt_with_simplification): New function.
12410 (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
12411 (no_follow_ssa_edges): New function.
12412 (fold_stmt): New overload with valueization hook. Use
12413 no_follow_ssa_edges for the overload without hook.
12414 (fold_stmt_inplace): Likewise.
12415 * gimple-fold.h (no_follow_ssa_edges): Declare.
12416
12417 2014-10-24 Felix Yang <felix.yang@huawei.com>
12418 Jiji Jiang <jiangjiji@huawei.com>
12419
12420 PR target/63173
12421 * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
12422 (__LD3R_FUNC): Ditto.
12423 (__LD4R_FUNC): Ditto.
12424 (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
12425 vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
12426 vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
12427 vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
12428 vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
12429 vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
12430 (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
12431 vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
12432 vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
12433 vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
12434 vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
12435 vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
12436 (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
12437 vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
12438 vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
12439 vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
12440 vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
12441 vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
12442 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
12443 UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
12444 * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
12445 builtins.
12446 * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
12447 (aarch64_simd_ld3r<mode>): Likewise.
12448 (aarch64_simd_ld4r<mode>): Likewise.
12449 (aarch64_ld2r<mode>): New expand.
12450 (aarch64_ld3r<mode>): Likewise.
12451 (aarch64_ld4r<mode>): Likewise.
12452
12453 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
12454
12455 * rtlanal.c (get_base_term): Handle SCRATCH.
12456
12457 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
12458
12459 * haifa-sched.c (sched_init): Disable max_issue when scheduling for
12460 register pressure.
12461
12462 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
12463
12464 * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
12465 (cached_issue_rate): Remove. Use dfa_lookahead and issue_rate instead.
12466 (max_issue, choose_ready, sched_init): Update.
12467
12468 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
12469
12470 * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
12471 * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
12472 (rfs_result): Set INSN_LAST_RFS_WIN. Update signature.
12473 (rank_for_schedule): Update calls to rfs_result to pass new parameters.
12474 (print_rank_for_schedule_stats): Print out elements of ready list that
12475 ended up on their respective places due to each of the sorting
12476 heuristics.
12477 (ready_sort): Update.
12478 (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
12479 (schedule_block): Update.
12480
12481 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
12482
12483 * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
12484 arrays. Use sched_class_regs_num instead of ira_class_hard_regs_num.
12485 (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
12486 (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
12487 (model_start_schedule): Update.
12488 (sched_pressure_start_bb): New static function. Calculate
12489 sched_class_regs_num.
12490 (schedule_block): Use it.
12491 (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
12492
12493 2014-10-24 Richard Biener <rguenther@suse.de>
12494
12495 * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
12496 host library and make sure to pull in the required libintl
12497 and libiconv dependencies.
12498
12499 2014-10-24 Richard Biener <rguenther@suse.de>
12500
12501 * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
12502
12503 2014-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
12504
12505 PR bootstrap/63632
12506 * collect2.c (main): Filter out -fno-lto.
12507
12508 2014-10-24 Martin Liska <mliska@suse.cz>
12509
12510 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
12511 division by zero in dumps.
12512 (sem_item_optimizer::merge_classes): Ditto.
12513
12514 2014-10-23 John David Anglin <danglin@gcc.gnu.org>
12515
12516 * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
12517
12518 2014-10-23 Ian Lance Taylor <iant@google.com>
12519
12520 * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
12521
12522 2014-10-23 Ian Lance Taylor <iant@google.com>
12523
12524 * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
12525
12526 2014-10-23 Jakub Jelinek <jakub@redhat.com>
12527
12528 PR debug/63623
12529 * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
12530 (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
12531 instead of only handling autoinc in dest if it is a MEM.
12532 (vt_stack_adjustments): Fix up formatting.
12533
12534 2014-10-23 DJ Delorie <dj@redhat.com>
12535
12536 * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
12537 independend of -mlarge.
12538 * config/msp430/constraints.md (Ys): Update comment.
12539
12540 2014-10-23 Evgeny Stupachenko <evstupac@gmail.com>
12541
12542 PR target/63534
12543 PR target/63618
12544 * cse.c (delete_trivially_dead_insns): Consider PIC register is used
12545 while it is pseudo.
12546 * dse.c (deletable_insn_p): Likewise.
12547
12548 2014-10-23 Georg-Johann Lay <avr@gjlay.de>
12549
12550 * config/avr/avr.c: Fix GNU coding rules and typos.
12551 * config/avr/avr.h: Dito.
12552 * config/avr/avr-c.c: Dito.
12553 * config/avr/avr.md: Dito.
12554
12555 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
12556
12557 * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
12558 New.
12559 (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
12560 iterator.
12561 (define_expand "abs<mode>2"): Ditto.
12562
12563 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
12564
12565 * tree-core.h (tree_var_decl): Extend `function_code' field
12566 by one bit, move `regdecl_flag' field to ...
12567 (tree_decl_with_vis): Here.
12568 * tree.h (DECL_STATIC_CHAIN): Update struct name.
12569
12570 2014-10-23 Richard Biener <rguenther@suse.de>
12571
12572 * Makefile.in (BUILD_CPPLIB): Add.
12573 (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
12574 Drop LIBIBERTY.
12575
12576 2014-10-23 Richard Biener <rguenther@suse.de>
12577
12578 * fold-const.c (fold_binary_loc): Preserve side-effects of
12579 X - X when simplifying to 0.
12580 * stor-layout.c (finish_bitfield_representative): Strip
12581 side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
12582
12583 2014-10-22 Richard Biener <rguenther@suse.de>
12584 Tobias Burnus <burnus@net-b.de>
12585
12586 PR lto/63603
12587 * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
12588
12589 2014-10-22 Dehao Chen <dehao@google.com>
12590
12591 * auto-profile.c: Change order of header files.
12592
12593 2014-10-22 Guozhi Wei <carrot@google.com>
12594
12595 PR tree-optimization/63530
12596 tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
12597 pointer alignment according to DR_MISALIGNMENT.
12598
12599 2014-10-22 David Malcolm <dmalcolm@redhat.com>
12600
12601 * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
12602
12603 2014-10-22 Andrew MacLeod <amacleod@redhat.com>
12604
12605 * cfgbuild.h: New. Add prototypes for cfgbuild.c.
12606 * cfgcleanup.h: New. Add prototypes for cfgcleanup.c.
12607 * cfgloopmanip.h: New. Add prototypes for cfgloopmanip.c.
12608 * dominance.h: New. Add prototypes for dominance.c.
12609 * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
12610 * cfghooks.h: (struct profile_record) Relocate here.
12611 Relocate 2 prototypes from basic-block.h.
12612 * basic-block.h: Move prototypes and struct to new header files.
12613 Include cfgbuild.h, cfgcleanup.h, and dominance.h.
12614 * rtl.h: Move a few prototypes to new header files.
12615 * cfgcleanup.c (merge_memattrs): Make static.
12616 * genopinit.c (main): Add predict.h to list of includes.
12617 * predict.h: Update prototype list to match predict.c.
12618 * predict.c (maybe_hot_count_p): Export.
12619 (cgraph_edge::maybe_hot_p): Move to cgraph.c.
12620 (cgraph_node::optimize_for_size_p): Move to cgraph.h.
12621 * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
12622 * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
12623 * profile.h: Adjust prototypes.
12624 * ifcvt.h: New. Relocate struct ce_if_block here.
12625 * ifcvt.c: Include ifcvt.h.
12626 * config/frv/frv.c: Include ifcvt.h.
12627 * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
12628
12629 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
12630
12631 * lra.c (lra): Remove call to recog_init.
12632 * config/i386/i386.md (preferred_for_speed): New attribute
12633 (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
12634 "enabled". Remove check for sched1.
12635
12636 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
12637
12638 * recog.h (recog_data_d): Remove enabled_alternatives.
12639 * recog.c (extract_insn): Don't set it.
12640 * reload.c (find_reloads): Call get_enabled_alternatives.
12641
12642 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
12643
12644 * recog.h (constrain_operands): Add an alternative_mask parameter.
12645 (constrain_operands_cached): Likewise.
12646 (get_preferred_alternatives): Declare new form.
12647 * recog.c (get_preferred_alternatives): New bb-taking instance.
12648 (constrain_operands): Take the set of available alternatives as
12649 a parameter.
12650 (check_asm_operands, insn_invalid_p, extract_constrain_insn)
12651 (extract_constrain_insn_cached): Update calls to constrain_operands.
12652 * caller-save.c (reg_save_code): Likewise.
12653 * ira.c (setup_prohibited_mode_move_regs): Likewise.
12654 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
12655 * ree.c (combine_reaching_defs): Likewise.
12656 * reload.c (can_reload_into): Likewise.
12657 * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
12658 (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
12659 (emit_insn_if_valid_for_reload): Likewise.
12660 * reorg.c (fill_slots_from_thread): Likewise.
12661 * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
12662 * config/pa/pa.c (pa_can_combine_p): Likewise.
12663 * config/rl78/rl78.c (insn_ok_now): Likewise.
12664 * config/sh/sh.md (define_peephole2): Likewise.
12665 * final.c (final_scan_insn): Update call to constrain_operands_cached.
12666
12667 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
12668
12669 * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
12670 attributes.
12671 * genattr.c (main): Handle "preferred_for_size" and
12672 "preferred_for_speed" in the same way as "enabled".
12673 * recog.h (bool_attr): New enum.
12674 (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
12675 (get_preferred_alternatives, check_bool_attrs): Declare.
12676 * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
12677 (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
12678 New functions.
12679 (get_enabled_alternatives): Use get_bool_attr_mask.
12680 * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
12681 instead of recog_data.enabled_alternatives.
12682 * ira.c (ira_setup_alts): Likewise.
12683 * postreload.c (reload_cse_simplify_operands): Likewise.
12684 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
12685 * ira-lives.c (preferred_alternatives): New variable.
12686 (process_bb_node_lives): Set it.
12687 (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
12688 (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
12689 of recog_data.enabled_alternatives.
12690 * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
12691 to preferred_alternatives.
12692 * lra-constraints.c (process_alt_operands): Update accordingly.
12693 * lra.c (lra_set_insn_recog_data): Likewise.
12694 (lra_update_insn_recog_data): Assert check_bool_attrs.
12695
12696 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
12697
12698 * recog.h (extract_constrain_insn): Declare.
12699 * recog.c (extract_constrain_insn): New function.
12700 * lra.c (check_rtl): Use it.
12701 * postreload.c (reload_cse_simplify_operands): Likewise.
12702 * reg-stack.c (check_asm_stack_operands): Likewise.
12703 (subst_asm_stack_regs): Likewise.
12704 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
12705 * regrename.c (build_def_use): Likewise.
12706 * sel-sched.c (get_reg_class): Likewise.
12707 * config/arm/arm.c (note_invalid_constants): Likewise.
12708 * config/s390/predicates.md (execute_operation): Likewise.
12709
12710 2014-10-22 Jakub Jelinek <jakub@redhat.com>
12711 Yury Gribov <y.gribov@samsung.com>
12712
12713 * common.opt (flag_sanitize_recover): New variable.
12714 (fsanitize-recover): Remove Var/Init, deprecate.
12715 (fsanitize-recover=): New option.
12716 * doc/invoke.texi (fsanitize-recover): Update docs.
12717 * opts.c (finish_options): Use opts->x_flag_sanitize
12718 instead of flag_sanitize. Prohibit -fsanitize-recover
12719 for anything besides UBSan. Formatting.
12720 (common_handle_option): Handle OPT_fsanitize_recover_
12721 and OPT_fsanitize_recover. Use opts->x_flag_sanitize
12722 instead of flag_sanitize.
12723 * asan.c (pass_sanopt::execute): Fix up formatting.
12724 * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
12725 ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
12726 instrument_bool_enum_load, ubsan_instrument_float_cast,
12727 instrument_nonnull_arg, instrument_nonnull_return): Check
12728 bits in flag_sanitize_recover bitmask instead of
12729 flag_sanitize_recover as bool flag.
12730
12731 2014-10-22 Jiong Wang <jiong.wang@arm.com>
12732
12733 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
12734
12735 2014-10-22 Renlin Li <renlin.li@arm.com>
12736
12737 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
12738 __ARM_FEATURE_IDIV__.
12739
12740 2014-10-22 Richard Biener <rguenther@suse.de>
12741
12742 * Makefile.in (s-match): Adjust dependencies to only catch
12743 match.pd.
12744
12745 2014-10-22 Richard Biener <rguenther@suse.de>
12746 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
12747
12748 * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
12749 (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
12750 (gimple-match.c): Generate by triggering s-match.
12751 (generic-match.c): Likewise.
12752 (s-match): Rule to build gimple-match.c and generic-match.c
12753 by running the genmatch generator program.
12754 (build/hash-table.o): Dependencies to build hash-table.c for the host.
12755 (build/genmatch.o): Dependencies to build genmatch.
12756 (genprog): Add match.
12757 (build/genmatch): Likewise.
12758 (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
12759 * generic-match-head.c: New file.
12760 * gimple-match-head.c: Likewise.
12761 * gimple-match.h: Likewise.
12762 * genmatch.c: Likewise.
12763 * match.pd: Likewise.
12764 * builtins.h (fold_builtin_n): Export.
12765 * builtins.c (fold_builtin_n): Likewise.
12766 * gimple-fold.h (gimple_build): Declare various overloads.
12767 (gimple_simplify): Likewise.
12768 (gimple_convert): Re-implement in terms of gimple_build.
12769 * gimple-fold.c (gimple_convert): Remove.
12770 (gimple_build): New functions.
12771 * doc/match-and-simplify.texi: New file.
12772 * doc/gccint.texi: Add menu item Match and Simplify and include
12773 match-and-simplify.texi.
12774
12775 2014-10-22 Jakub Jelinek <jakub@redhat.com>
12776
12777 PR target/63594
12778 * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
12779 V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
12780 even for just TARGET_AVX2, not only for
12781 TARGET_AVX512VL && TARGET_AVX512BW. For V{32HI,64QI}mode,
12782 call ix86_vector_duplicate_value only if TARGET_AVX512BW,
12783 otherwise build it using concatenation of 256-bit
12784 broadcast.
12785 * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
12786 avx512 broadcast patterns.
12787 (vec_dup<mode>): Likewise. For avx2 use
12788 v<sseintprefix>broadcast<bcstscalarsuff> instead of
12789 vbroadcast<ssescalarmodesuffix>.
12790 (AVX2_VEC_DUP_MODE): New mode iterator.
12791 (*vec_dup<mode>): New TARGET_AVX2 define_insn with
12792 AVX2_VEC_DUP_MODE iterator, add a splitter for that.
12793
12794 PR target/63542
12795 * config/i386/i386.c (ix86_pic_register_p): Also return
12796 true if x is a hard register with ORIGINAL_REGNO equal to
12797 pic_offset_table_rtx pseudo REGNO.
12798 (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
12799 after reload, subtract GOT_SYMBOL_NAME symbol if possible.
12800
12801 2014-10-22 Alan Modra <amodra@gmail.com>
12802
12803 * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
12804 * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
12805 (gcc_obstack_init): Use obstack_specify_allocation in place of
12806 _obstack_begin.
12807 * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
12808 (regexp_representation): Likewise.
12809 * godump.c (go_output_type): Likewise.
12810
12811 2014-10-21 John David Anglin <danglin@gcc.gnu.org>
12812
12813 * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
12814 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
12815 * config/pa/pa.opt (mjump-in-delay): Ignore option. Update comment.
12816
12817 2014-10-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
12818
12819 * doc/invoke.texi (pedantic-errors): Explain better.
12820
12821 2014-10-21 Joern Rennecke <joern.rennecke@embecosm.com>
12822 Vidya Praveen <vidya.praveen@atmel.com>
12823 Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
12824 Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
12825 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
12826
12827 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
12828 __MEMX for avrtiny.
12829 * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
12830 (avr_nonconst_pointer_addrspace): Likewise.
12831 * config/avr/avr.h (AVR_HAVE_LPM): Define.
12832
12833 Added AVRTINY architecture to avr target.
12834 * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
12835 (base_arch_s): member added for AVRTINY architecture.
12836 * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
12837 alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
12838 AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
12839 and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
12840 respectively. LAST_CALLEE_SAVED_REG macro added for the last register
12841 in callee saved register list.
12842 (avr_option_override): CCP address updated for AVRTINY.
12843 (avr_init_expanders): tmp and zero rtx initialized as per arch.
12844 Reset avr_have_dimode if AVRTINY.
12845 (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
12846 (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
12847 (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
12848 Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
12849 (expand_epilogue): Likewise.
12850 (avr_print_operand): Print CCP address in case of AVRTINY also.
12851 <TBD>bad address
12852 (function_arg_regno_p): Check different register list for arguments
12853 if AVRTINY.
12854 (init_cumulative_args): Check for AVRTINY to update number of argument
12855 registers.
12856 (tiny_valid_direct_memory_access_range): New function. Return false if
12857 direct memory access range is not in accepted range for AVRTINY.
12858 (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
12859 indirect load (with displacement) for AVRTINY.
12860 (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
12861 avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
12862 (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
12863 indirect load (no displacement) for AVRTINY.
12864 (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
12865 indirect load (with displacement) for AVRTINY.
12866 (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
12867 indirect load for pre-decrement address.
12868 (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
12869 functions. Update instruction length for AVRTINY.
12870 (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
12871 SImode.
12872 (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
12873 (out_movsi_r_mr): Likewise, for SImode.
12874 (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
12875 indirect store (no displacement) for AVRTINY.
12876 (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
12877 indirect store (with displacement) for AVRTINY.
12878 (out_movsi_mr_r): Emit out insn for IO address store. Update store
12879 instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
12880 store functions.
12881 (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
12882 indirect load (no displacement) for PSImode in AVRTINY.
12883 (avr_out_load_psi_reg_disp_tiny): New function to handle register
12884 indirect load (with displacement) for PSImode in AVRTINY.
12885 (avr_out_load_psi): Call PSImode register indirect load functions for
12886 AVRTINY. Update instruction length for AVRTINY.
12887 (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
12888 indirect store (no displacement) for PSImode in AVRTINY.
12889 (avr_out_store_psi_reg_disp_tiny): New function to handle register
12890 indirect store (with displacement) for PSImode in AVRTINY.
12891 (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
12892 register indirect store functions for AVRTINY.
12893 (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
12894 register indirect store (with displacement) for AVRTINY.
12895 (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
12896 register indirect store function for QImode in AVRTINY.
12897 (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
12898 (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
12899 indirect store (no displacement) for HImode in AVRTINY.
12900 (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
12901 indirect store (with displacement) for HImode in AVRTINY.
12902 (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
12903 indirect store for post-increment address in HImode.
12904 (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
12905 register indirect store function for HImode in AVRTINY.
12906 (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
12907 in case of AVRTINY.
12908 (order_regs_for_local_alloc): Updated register allocation order for
12909 AVRTINY.
12910 (avr_conditional_register_usage): New function. It is a target hook
12911 (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
12912 used registers list and register allocation order for AVRTINY.
12913 (avr_return_in_memory): Update return value size for AVRTINY.
12914 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
12915 for AVRTINY arch and tiny program memory base address.
12916 * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
12917 (avr_texinfo): Added description for AVRTINY arch.
12918 * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
12919 STATIC_CHAIN_REGNUM for AVRTINY.
12920 * config/avr/avr-mcus.def: Added AVRTINY arch devices.
12921 * config/avr/avr.md: Added constants for tmp/ zero registers in
12922 AVRTINY. Attributes for AVRTINY added.
12923 (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
12924 memory access range.
12925 (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
12926 in AVRTINY memory access range.
12927 (*mov<mode>): Likewise for HImode and SImode.
12928 (*movsf): Likewise for SFmode.
12929 (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
12930 not have sbiw.
12931 * config/avr/avr-protos.h: Added function prototype for
12932 tiny_valid_direct_memory_access_range.
12933 * config/avr/avr-tables.opt: Regenerate.
12934 * gcc/config/avr/t-multilib: Regenerate.
12935 * doc/avr-mmcu.texi: Regenerate.
12936
12937 2014-10-21 Andrew Pinski <apinski@cavium.com>
12938
12939 * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
12940 available option also.
12941 * config/aarch64/aarch64-cost-tables.h: New file.
12942 * config/aarch64/aarch64-cores.def (thunderx): New core.
12943 * config/aarch64/aarch64-tune.md: Regenerate.
12944 * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
12945 of config/arm/aarch-cost-tables.h.
12946 (thunderx_regmove_cost): New variable.
12947 (thunderx_tunings): New variable.
12948
12949 2014-10-21 Dehao Chen <dehao@google.com>
12950
12951 * auto-profile.c: New file.
12952 * auto-profile.h: New file.
12953 * basic-block.h (maybe_hot_count_p): New export func.
12954 (add_working_set): New export func.
12955 * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
12956 (GCOV_TAG_AFDO_FUNCTION): Likewise.
12957 (GCOV_TAG_AFDO_WORKING_SET): Likewise.
12958 * opts.c (enable_fdo_optimizations): New func.
12959 (common_handle_option): Handle -fauto-profile flag.
12960 * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
12961 (class pass_early_inline): Export early_inliner.
12962 (early_inliner): Likewise.
12963 (pass_early_inline::execute): Likewise.
12964 * ipa-inline.h (early_inliner): Likewise.
12965 * predict.c (maybe_hot_count_p): New export func.
12966 (counts_to_freqs): AutoFDO logic.
12967 (rebuild_frequencies): Likewise.
12968 * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
12969 * profile.c (add_working_set): New func.
12970 * Makefile.in (auto-profile.o): New object file.
12971 * passes.def (pass_ipa_auto_profile): New pass.
12972 * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
12973 * tree-pass.h (make_pass_ipa_auto_profile): New pass.
12974 * toplev.c (compile_file): AutoFDO logic.
12975 * doc/invoke.texi (-fauto-profile): New doc.
12976 * coverage.c (coverage_init): AutoFDO logic.
12977 * common.opt (-fauto-profile): New flag.
12978 * timevar.def (TV_IPA_AUTOFDO): New tag.
12979 * value-prof.c (gimple_alloc_histogram_value): New export func.
12980 (check_ic_target): Likewise.
12981 * value-prof.h (gimple_alloc_histogram_value): Likewise.
12982 (check_ic_target): Likewise.
12983
12984 2014-10-21 David Malcolm <dmalcolm@redhat.com>
12985
12986 * cgraph.c (cgraph_c_finalize): New function.
12987 * cgraph.h (cgraph_c_finalize): New prototype.
12988 (cgraphunit_c_finalize): New prototype.
12989 * cgraphunit.c (first_analyzed): Move from analyze_functions
12990 to file-scope.
12991 (first_analyzed_var): Likewise.
12992 (analyze_functions): Move static variables into file-scope.
12993 (cgraphunit_c_finalize): New function.
12994 * diagnostic.c (diagnostic_finish): Free the memory for
12995 context->classify_diagnostic and context->printer, running the
12996 destructor for the latter.
12997 (bt_stop): Use toplev::main.
12998 * dwarf2out.c (dwarf2out_finalize): New function.
12999 * dwarf2out.h (dwarf2out_c_finalize): New prototype.
13000 * gcse.c (gcse_c_finalize): New function.
13001 * gcse.h (gcse_c_finalize): New prototype.
13002 * ggc-page.c (init_ggc): Make idempotent.
13003 * input.c (input_location): Initialize to UNKNOWN_LOCATION.
13004 * ipa-cp.c (ipa_cp_c_finalize): New function.
13005 * ipa-prop.h (ipa_cp_c_finalize): New prototype.
13006 * ipa-pure-const.c (function_insertion_hook_holder): Move to be
13007 a field of class pass_ipa_pure_const.
13008 (node_duplication_hook_holder): Likewise.
13009 (node_removal_hook_holder): Likewise.
13010 (register_hooks): Convert to method...
13011 (pass_ipa_pure_const::register_hooks): ...here, converting
13012 static variable init_p into...
13013 (pass_ipa_pure_const::init_p): ...new field.
13014 (pure_const_generate_summary): Update invocation of
13015 register_hooks to invoke as a method of current_pass.
13016 (pure_const_read_summary): Likewise.
13017 (propagate): Convert to...
13018 (pass_ipa_pure_const::execute): ...method.
13019 * ipa-reference.c (ipa_init): Move static bool init_p from here
13020 to...
13021 (ipa_init_p): New file-scope variable, so that it can be reset
13022 when repeatedly invoking the compiler within one process by...
13023 (ipa_reference_c_finalize): New function.
13024 * ipa-reference.h (ipa_reference_c_finalize): New.
13025 * main.c (main): Replace invocation of toplev_main with
13026 construction of a toplev instance, and call its "main" method.
13027 * params.c (global_init_params): Add an assert that
13028 params_finished is false.
13029 (params_c_finalize): New.
13030 * params.h (params_c_finalize): New.
13031 * passes.c (execute_ipa_summary_passes): Set "current_pass" before
13032 invoking generate_summary, for the benefit of pass_ipa_pure_const.
13033 (ipa_write_summaries_2): Assign "pass" to "current_pass" global
13034 before calling write_summary hook.
13035 (ipa_write_optimization_summaries_1): Likewise when calling
13036 write_optimization_summary hook.
13037 (ipa_read_summaries_1): Likewise for read_summary hook.
13038 (ipa_read_optimization_summaries_1): Likewise for
13039 read_optimization_summary hook.
13040 (execute_ipa_stmt_fixups): Likewise.
13041 * stringpool.c (init_stringpool): Clean up if we're called more
13042 than once.
13043 * timevar.c (timevar_init): Ignore repeated calls.
13044 * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
13045 "ipa-prop.h".
13046 (general_init): Reset "input_location" to UNKNOWN_LOCATION.
13047 (initialize_rtl): Move static local "initialized_once"
13048 into file scope, and rename to...
13049 (rtl_initialized): New variable.
13050 (do_compile): Move timevar initialization from here to
13051 toplev::start_timevars.
13052 (toplev::toplev, toplev::~toplev, toplev::start_timevars,
13053 toplev::finalize): New functions.
13054 (toplev_main): Rename to...
13055 (toplev::main): ...this.
13056 * toplev.h (class toplev): New class.
13057
13058 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
13059
13060 * loop-doloop.c: Include loop-unroll.h.
13061
13062 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
13063
13064 * cfg.h: New. Header file for cfg.c.
13065 * cfganal.h: New. Header file for cfganal.c.
13066 * lcm.h: New. Header file for lcm.c.
13067 * loop-unroll.h: New. Header file for loop-unroll.h.
13068 * cfgloop.h: (unroll_loops): Remove prototype.
13069 * basic-block.h: Move prototypes and structs to new header files.
13070 Include cfg.h, cfganal.h, and lcm.h.
13071 * loop-init.c: Include loop-unroll.h.
13072 * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
13073 * modulo-sched.c: Include loop-unroll.h.
13074
13075 2014-10-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
13076
13077 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
13078 MARKER_BYTE_UNKNOWN markers when handling casts.
13079
13080 2014-10-21 Richard Biener <rguenther@suse.de>
13081
13082 * tree-ssa-phiopt.c (value_replacement): Properly verify we
13083 are the non-singleton PHI.
13084
13085 2014-10-21 Jakub Jelinek <jakub@redhat.com>
13086
13087 PR tree-optimization/63563
13088 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
13089 if either dra or drb stmts are not normal loads/stores.
13090
13091 2014-10-21 Ilya Tocar <ilya.tocar@intel.com>
13092
13093 * config/i386/i386.c (expand_vec_perm_1): Fix
13094 expand_vec_perm_palignr case.
13095 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
13096 VI1_AVX512.
13097
13098 2014-10-21 Zhenqiang Chen <zhenqiang.chen@arm.com>
13099
13100 * cfgloopanal.c (seq_cost): Delete.
13101 * rtl.h (seq_cost): New prototype.
13102 * rtlanal.c (seq_cost): New function.
13103 * tree-ssa-loop-ivopts.c (seq_cost): Delete.
13104
13105 2014-10-20 Andrew MacLeod <amacleod@redhat.com>
13106
13107 * cfgrtl.h: New. Add prototypes for cfgrtl.c.
13108 * basic-block.h: Remove prototypes for cfgrtl.c.
13109 * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
13110 prototypes to cfgrtl.h.
13111 * profile.h (profile_info): Add extern export declaration.
13112 * rtl.h: Remove prototypes for cfgrtl.h.
13113 * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
13114 * ipa-inline.c: Include profile.h.
13115 * loop-unroll.c: Ditto.
13116 * modulo-sched.c: Ditto.
13117 * postreload-gcse.c: Ditto.
13118 * predict.c: Ditto.
13119 * sched-ebb.c: Ditto.
13120 * sched-rgn.c: Ditto.
13121 * tracer.c: Ditto.
13122 * tree-ssa-loop-ivcanon.c: Ditto.
13123
13124 2014-10-20 Richard Biener <rguenther@suse.de>
13125
13126 * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
13127 operands to get a def operand kind match. Signal mismatches
13128 to the parent so we can try swapping its operands.
13129 (vect_build_slp_tree): Try swapping operands if they have
13130 a mismatched operand kind.
13131
13132 2014-10-20 Alan Modra <amodra@gmail.com>
13133
13134 PR debug/60655
13135 * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
13136 Increase "ops" array size. Correct array size tests. Init
13137 n_constants in loop. Break out of innermost loop when finding
13138 a trivial CONST expression.
13139
13140 2014-10-20 Martin Liska <mliska@suse.cz>
13141
13142 PR ipa/63583
13143 * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
13144 Gimple tempate string is compared.
13145
13146 2014-10-20 Uros Bizjak <ubizjak@gmail.com>
13147
13148 * varasm.c (const_alias_set): Remove.
13149 (init_varasm_once): Remove initialization of const_alias_set.
13150 (build_constant_desc): Do not set alias set to const_alias_set.
13151
13152 2014-10-19 Ilya Verbin <ilya.verbin@intel.com>
13153
13154 * configure: Regenerate.
13155 * configure.ac: Move the test for section attribute specifier "e" in GAS
13156 out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
13157 * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
13158 * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
13159 ifdef HAVE_GAS_SECTION_EXCLUDE.
13160
13161 2014-10-19 Andreas Schwab <schwab@linux-m68k.org>
13162
13163 * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
13164 match_operand expression.
13165
13166 2014-10-19 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
13167 David Edelsohn <dje.gcc@gmail.com>
13168
13169 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
13170 function.
13171 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
13172
13173 2014-10-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
13174
13175 * doc/invoke.texi (Options to Request or Suppress Warnings):
13176 Explain options precedence.
13177 (Wtrampolines): Do not indent paragraph.
13178
13179 2014-10-18 John David Anglin <danglin@gcc.gnu.org>
13180
13181 * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
13182 * config/pa/pa-protos.h (pa_following_call): Delete declaration.
13183 (pa_jump_in_call_delay): Likewise.
13184 * config/pa/pa.c (pa_option_override): Remove jump in call delay
13185 override.
13186 (pa_output_millicode_call): Remove support for jump in call delay.
13187 (pa_output_call): Likewise.
13188 (pa_jump_in_call_delay): Delete.
13189 (pa_following_call): Likewise.
13190 * config/pa/pa.md (in_call_delay): Remove jump in delay check.
13191 (uncond_branch): Remove following call check from attribute length.
13192
13193 2014-10-18 Oleg Endo <olegendo@gcc.gnu.org>
13194
13195 PR target/53513
13196 * config/sh/sh-modes.def (PSI): Remove.
13197 * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
13198 * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
13199 (sh_reorg): Remove commented out FPSCR code.
13200 (fpscr_set_from_mem): Use SImode instead of PSImode. Emit lds_fpscr
13201 insn instead of move insn.
13202 (sh_hard_regno_mode_ok): Return SImode for FPSCR.
13203 (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
13204 handling.
13205 (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
13206 (sh1_builtin_p): Uncomment.
13207 (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
13208 (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
13209 * config/sh/sh/predicates.md (fpscr_operand): Simplify.
13210 (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
13211 (general_movsrc_operand, general_movdst_operand): Disallow
13212 fpscr_operand.
13213 * config/sh/sh.md (FPSCR_FR): New constant.
13214 (push_fpscr): Emit sts_fpscr insn.
13215 (pop_fpscr): Emit lds_fpscr_insn.
13216 (movsi_ie): Disallow FPSCR operands.
13217 (fpu_switch, unnamed related split, extend_psi_si,
13218 truncate_si_psi): Remove insns.
13219 (lds_fpscr, sts_fpscr): New insns.
13220 (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
13221
13222 >>>>>>> .r217525
13223 2014-10-17 Eric Botcazou <ebotcazou@adacore.com>
13224
13225 * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
13226 (clone_inlined_nodes): Do not overwrite the clone if above predicate
13227 returns true.
13228
13229 2014-10-17 Ilya Tocar <ilya.tocar@intel.com>
13230
13231 * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
13232 (expand_vec_perm_d): Ditto.
13233 (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
13234 V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
13235 V4DFmode.
13236 (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
13237 (ix86_expand_sse_unpack): Handle V64QImode.
13238 (expand_vec_perm_blend): Update conditions for TARGET, handle
13239 V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
13240 (expand_vec_perm_pshufb): Handle V64QImode.
13241 (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
13242 V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
13243 (ix86_expand_vec_perm_const_1): Call ix86_expand_vec_perm_vpermi2.
13244 (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
13245 (ix86_expand_vecop_qihi): Handle V64QImode.
13246 * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
13247 (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
13248 (define_mode_iterator VEC_PERM_CONST): Add V32HI.
13249 (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
13250 (mul<mode>3): Use VI1_AVX512.
13251 (<sse2_avx2>_packsswb): Ditto.
13252 (<sse2_avx2>_packuswb): Ditto.
13253 (<ssse3_avx2>_pshufb<mode>3): Ditto.
13254 (<shift_insn><mode>3): Ditto.
13255
13256 2014-10-17 Kirill Yukhin <kirill.yukhin@intel.com>
13257
13258 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
13259 conditions to fix bootstrap.
13260
13261 2014-10-17 Andrew MacLeod <amacleod@redhat.com>
13262
13263 gcc-plugin.h: Add tm.h and flattened includes from function.h.
13264
13265 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com>
13266 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13267 Anna Tikhonova <anna.tikhonova@intel.com>
13268 Ilya Tocar <ilya.tocar@intel.com>
13269 Andrey Turetskiy <andrey.turetskiy@intel.com>
13270 Ilya Verbin <ilya.verbin@intel.com>
13271 Kirill Yukhin <kirill.yukhin@intel.com>
13272 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13273
13274 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
13275 and V32HI modes, update V8HI, V16QI, V32QI modes handling.
13276 (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
13277 * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
13278 (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
13279 (define_expand "vec_init<mode>"): Use VF48_I1248.
13280
13281 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com>
13282 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13283 Anna Tikhonova <anna.tikhonova@intel.com>
13284 Ilya Tocar <ilya.tocar@intel.com>
13285 Andrey Turetskiy <andrey.turetskiy@intel.com>
13286 Ilya Verbin <ilya.verbin@intel.com>
13287 Kirill Yukhin <kirill.yukhin@intel.com>
13288 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13289
13290 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
13291 expand_sse2_mulvxdi3.
13292
13293 2014-10-17 Richard Biener <rguenther@suse.de>
13294
13295 * fold-const.c (fold_comparison): Remove redundant constant
13296 folding and operand swapping.
13297 (fold_binary_loc): Do comparison operand swapping here.
13298 (fold_ternary_loc): Canonicalize operand order for
13299 commutative ternary operations.
13300 * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
13301 and FMA_EXPR.
13302
13303 2014-10-17 Jakub Jelinek <jakub@redhat.com>
13304
13305 PR tree-optimization/63464
13306 * gimple.h (gimple_seq_discard): New prototype.
13307 * gimple.c: Include stringpool.h and tree-ssanames.h.
13308 (gimple_seq_discard): New function.
13309 * optabs.h (lshift_cheap_p): New prototype.
13310 * optabs.c (lshift_cheap_p): New function, moved from...
13311 * tree-switch-conversion.c (lshift_cheap_p): ... here.
13312 * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
13313 (reassoc_branch_fixups): New variable.
13314 (update_range_test): Add otherrangep and seq arguments.
13315 Unshare exp. If otherrange is NULL, use for other ranges
13316 array of pointers pointed by otherrangep instead.
13317 Emit seq before gimplified statements for tem.
13318 (optimize_range_tests_diff): Adjust update_range_test
13319 caller.
13320 (optimize_range_tests_xor): Likewise. Fix up comment.
13321 (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
13322 functions.
13323 (optimize_range_tests): Adjust update_range_test caller.
13324 Call optimize_range_tests_to_bit_test.
13325 (branch_fixup): New function.
13326 (execute_reassoc): Call branch_fixup.
13327
13328 PR tree-optimization/63302
13329 * tree-ssa-reassoc.c (optimize_range_tests_xor,
13330 optimize_range_tests_diff): Use !integer_pow2p () instead of
13331 tree_log2 () < 0.
13332
13333 2014-10-17 Martin Liska <mliska@suse.cz>
13334
13335 * ipa-icf.c (sem_function::merge): Local flags are set to false
13336 to enforce equal calling convention to be used.
13337 * opts.c (common_handle_option): Indentation fix.
13338
13339 2014-10-17 Marc Glisse <marc.glisse@inria.fr>
13340
13341 * tree-into-ssa.c (is_old_name): Replace "new" with "old".
13342
13343 2014-10-17 Tom de Vries <tom@codesourcery.com>
13344
13345 PR rtl-optimization/61605
13346 * regcprop.c (copyprop_hardreg_forward_1): Use
13347 regs_invalidated_by_this_call instead of regs_invalidated_by_call.
13348
13349 2014-10-17 Tom de Vries <tom@codesourcery.com>
13350
13351 PR rtl-optimization/61605
13352 * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p. Don't
13353 notice stores for noops. Don't regard noops as copies.
13354
13355 2014-10-17 Uros Bizjak <ubizjak@gmail.com>
13356
13357 * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
13358 register in a special way.
13359 (__cpuid_count): Ditto.
13360 * config/i386/driver-i386.h: Protect with
13361 "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
13362 (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
13363 is required to compile the function.
13364
13365 2014-10-16 DJ Delorie <dj@redhat.com>
13366
13367 * flag-types.h (sanitize_code): Don't assume targets have 32-bit
13368 integers.
13369
13370 * config/rs6000/rs6000-c.c (rid_int128): New.
13371 (rs6000_macro_to_expand): Use instead of RID_INT128.
13372
13373 2014-10-16 Andrew MacLeod <amacleod@redhat.com>
13374
13375 * function.h: Flatten file. Remove includes, adjust prototypes to
13376 reflect only what is in function.h.
13377 (enum direction, struct args_size, struct locate_and_pad_arg_data,
13378 ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
13379 from expr.h.
13380 (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
13381 (optimize_function_for_size_p, optimize_function_for_speed_p): Move
13382 prototypes to predict.h.
13383 (init_varasm_status): Move prototype to varasm.h.
13384 * expr.h: Adjust include files.
13385 (enum direction, struct args_size, struct locate_and_pad_arg_data,
13386 ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
13387 to function.h.
13388 (locate_and_pad_parm): Move prototype to function.h.
13389 * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
13390 assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
13391 assign_temp, reposition_prologue_and_epilogue_notes,
13392 prologue_epilogue_contains, sibcall_epilogue_contains,
13393 update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
13394 set_return_jump_label): Move prototypes to function.h.
13395 * predict.h (optimize_function_for_size_p,
13396 optimize_function_for_speed_p): Relocate prototypes from function.h.
13397 * shrink-wrap.h (emit_return_into_block, active_insn_between,
13398 convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
13399 function.h.
13400 * varasm.h (init_varasm_status): Relocate prototype from function.h.
13401 * genattrtab.c (write_header): Add predict.h to include list.
13402 * genconditions.c (write_header): Add predict.h to include list.
13403 * genemit.c (main): Adjust header file includes.
13404 * gengtype.c (ifiles): Add flattened function.h header files.
13405 * genoutput.c (output_prologue): Add predict.h to include list.
13406 * genpreds.c (write_insn_preds_c): Adjust header file includes.
13407 * genrecog.c (write_header): Add flattened function.h header files.
13408 * alias.c: Adjust include files.
13409 * auto-inc-dec.c: Likewise.
13410 * basic-block.h: Likewise.
13411 * bb-reorder.c: Likewise.
13412 * bt-load.c: Likewise.
13413 * builtins.c: Likewise.
13414 * caller-save.c: Likewise.
13415 * calls.c: Likewise.
13416 * cfgbuild.c: Likewise.
13417 * cfgcleanup.c: Likewise.
13418 * cfgexpand.c: Likewise.
13419 * cfgloop.c: Likewise.
13420 * cfgloop.h: Likewise.
13421 * cfgrtl.c: Likewise.
13422 * cgraph.h: Likewise.
13423 * cgraphclones.c: Likewise.
13424 * cgraphunit.c: Likewise.
13425 * combine-stack-adj.c: Likewise.
13426 * combine.c: Likewise.
13427 * coverage.c: Likewise.
13428 * cprop.c: Likewise.
13429 * cse.c: Likewise.
13430 * cselib.c: Likewise.
13431 * dbxout.c: Likewise.
13432 * ddg.c: Likewise.
13433 * df-core.c: Likewise.
13434 * df-problems.c: Likewise.
13435 * df-scan.c: Likewise.
13436 * dojump.c: Likewise.
13437 * dwarf2cfi.c: Likewise.
13438 * dwarf2out.c: Likewise.
13439 * emit-rtl.c: Likewise.
13440 * except.c: Likewise.
13441 * explow.c: Likewise.
13442 * expr.c: Likewise.
13443 * final.c: Likewise.
13444 * function.c: Likewise.
13445 * gcse.c: Likewise.
13446 * gimple-fold.c: Likewise.
13447 * gimple-low.c: Likewise.
13448 * gimple-streamer.h: Likewise.
13449 * haifa-sched.c: Likewise.
13450 * ifcvt.c: Likewise.
13451 * ira.c: Likewise.
13452 * jump.c: Likewise.
13453 * lcm.c: Likewise.
13454 * loop-invariant.c: Likewise.
13455 * lra-assigns.c: Likewise.
13456 * lra-coalesce.c: Likewise.
13457 * lra-constraints.c: Likewise.
13458 * lra-eliminations.c: Likewise.
13459 * lra-lives.c: Likewise.
13460 * lra-spills.c: Likewise.
13461 * lra.c: Likewise.
13462 * lto-cgraph.c: Likewise.
13463 * lto-section-in.c: Likewise.
13464 * lto-section-out.c: Likewise.
13465 * lto-streamer-in.c: Likewise.
13466 * lto-streamer-out.c: Likewise.
13467 * mode-switching.c: Likewise.
13468 * modulo-sched.c: Likewise.
13469 * omp-low.c: Likewise.
13470 * optabs.c: Likewise.
13471 * passes.c: Likewise.
13472 * postreload-gcse.c: Likewise.
13473 * postreload.c: Likewise.
13474 * predict.c: Likewise.
13475 * profile.c: Likewise.
13476 * recog.c: Likewise.
13477 * ree.c: Likewise.
13478 * reg-stack.c: Likewise.
13479 * regcprop.c: Likewise.
13480 * reginfo.c: Likewise.
13481 * regrename.c: Likewise.
13482 * reload.c: Likewise.
13483 * reload1.c: Likewise.
13484 * reorg.c: Likewise.
13485 * resource.c: Likewise.
13486 * rtlanal.c: Likewise.
13487 * sched-deps.c: Likewise.
13488 * sched-ebb.c: Likewise.
13489 * sched-rgn.c: Likewise.
13490 * sel-sched-dump.c: Likewise.
13491 * sel-sched-ir.c: Likewise.
13492 * sel-sched.c: Likewise.
13493 * shrink-wrap.c: Likewise.
13494 * simplify-rtx.c: Likewise.
13495 * statistics.c: Likewise.
13496 * stmt.c: Likewise.
13497 * stor-layout.c: Likewise.
13498 * store-motion.c: Likewise.
13499 * symtab.c: Likewise.
13500 * targhooks.c: Likewise.
13501 * toplev.c: Likewise.
13502 * trans-mem.c: Likewise.
13503 * tree-cfg.c: Likewise.
13504 * tree-cfgcleanup.c: Likewise.
13505 * tree-dfa.c: Likewise.
13506 * tree-eh.c: Likewise.
13507 * tree-inline.c: Likewise.
13508 * tree-into-ssa.c: Likewise.
13509 * tree-nested.c: Likewise.
13510 * tree-nrv.c: Likewise.
13511 * tree-profile.c: Likewise.
13512 * tree-ssa-alias.c: Likewise.
13513 * tree-ssa-ccp.c: Likewise.
13514 * tree-ssa-copy.c: Likewise.
13515 * tree-ssa-copyrename.c: Likewise.
13516 * tree-ssa-dom.c: Likewise.
13517 * tree-ssa-operands.c: Likewise.
13518 * tree-ssa-propagate.c: Likewise.
13519 * tree-ssa-structalias.c: Likewise.
13520 * tree-ssa-tail-merge.c: Likewise.
13521 * tree-ssa-threadedge.c: Likewise.
13522 * tree-ssa-threadupdate.c: Likewise.
13523 * tree-ssa-uncprop.c: Likewise.
13524 * tree-ssa-uninit.c: Likewise.
13525 * tree-ssa.c: Likewise.
13526 * tree-stdarg.c: Likewise.
13527 * tree-tailcall.c: Likewise.
13528 * tree.c: Likewise.
13529 * tsan.c: Likewise.
13530 * valtrack.c: Likewise.
13531 * varasm.c: Likewise.
13532 * vmsdbgout.c: Likewise.
13533 * web.c: Likewise.
13534 * config/aarch64/aarch64.c: Add flattened includes from function.h.
13535 * config/alpha/alpha.c: Likewise.
13536 * config/arc/arc.c: Likewise.
13537 * config/arm/arm.c: Likewise.
13538 * config/avr/avr-log.c: Likewise.
13539 * config/avr/avr.c: Likewise.
13540 * config/bfin/bfin.c: Likewise.
13541 * config/c6x/c6x.c: Likewise.
13542 * config/cr16/cr16.c: Likewise.
13543 * config/cris/cris.c: Likewise.
13544 * config/darwin.c: Likewise.
13545 * config/epiphany/epiphany.c: Likewise.
13546 * config/epiphany/mode-switch-use.c: Likewise.
13547 * config/epiphany/resolve-sw-modes.c: Likewise.
13548 * config/fr30/fr30.c: Likewise.
13549 * config/frv/frv.c: Likewise.
13550 * config/h8300/h8300.c: Likewise.
13551 * config/i386/i386.c: Likewise.
13552 * config/ia64/ia64.c: Likewise.
13553 * config/iq2000/iq2000.c: Likewise.
13554 * config/lm32/lm32.c: Likewise.
13555 * config/m32c/m32c.c: Likewise.
13556 * config/m32r/m32r.c: Likewise.
13557 * config/m68k/m68k.c: Likewise.
13558 * config/mcore/mcore.c: Likewise.
13559 * config/mep/mep-pragma.c: Likewise.
13560 * config/mep/mep.c: Likewise.
13561 * config/microblaze/microblaze.c: Likewise.
13562 * config/mips/mips.c: Likewise.
13563 * config/mmix/mmix.c: Likewise.
13564 * config/mn10300/mn10300.c: Likewise.
13565 * config/moxie/moxie.c: Likewise.
13566 * config/msp430/msp430.c: Likewise.
13567 * config/nds32/nds32-cost.c: Likewise.
13568 * config/nds32/nds32-fp-as-gp.c: Likewise.
13569 * config/nds32/nds32-intrinsic.c: Likewise.
13570 * config/nds32/nds32-isr.c: Likewise.
13571 * config/nds32/nds32-md-auxiliary.c: Likewise.
13572 * config/nds32/nds32-memory-manipulation.c: Likewise.
13573 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
13574 * config/nds32/nds32-predicates.c: Likewise.
13575 * config/nds32/nds32.c: Likewise.
13576 * config/nios2/nios2.c: Likewise.
13577 * config/pa/pa.c: Likewise.
13578 * config/pdp11/pdp11.c: Likewise.
13579 * config/rl78/rl78.c: Likewise.
13580 * config/rs6000/rs6000.c: Likewise.
13581 * config/rx/rx.c: Likewise.
13582 * config/s390/s390.c: Likewise.
13583 * config/score/score.c: Likewise.
13584 * config/sh/sh.c: Likewise.
13585 * config/sparc/sparc.c: Likewise.
13586 * config/spu/spu.c: Likewise.
13587 * config/stormy16/stormy16.c: Likewise.
13588 * config/tilegx/tilegx.c: Likewise.
13589 * config/tilepro/tilepro.c: Likewise.
13590 * config/v850/v850.c: Likewise.
13591 * config/vax/vax.c: Likewise.
13592 * config/xtensa/xtensa.c: Likewise.
13593
13594 2014-10-16 Richard Earnshaw <rearnsha@arm.com>
13595
13596 * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
13597 (TARGET_LEGITIMIZE_ADDRESS): Redefine.
13598
13599 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
13600
13601 * config/sh/sh-protos.h (fldi_ok): Remove.
13602 * config/sh/sh.c (fldi_ok): Likewise.
13603 (sh_secondary_reload): Don't use fldi_ok.
13604 * config/sh/constraints.md (G constraint, H constraint): Don't use
13605 fldi_ok.
13606
13607 2014-10-16 Martin Liska <mliska@suse.cz>
13608
13609 * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
13610 Cast to unsigned long.
13611 (sem_item_optimizer::dump_cong_classes): Likewise.
13612
13613 2014-10-16 Tom de Vries <tom@codesourcery.com>
13614
13615 * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
13616 with SSA_NAME_IN_FREELIST.
13617
13618 2014-10-16 Richard Biener <rguenther@suse.de>
13619
13620 PR middle-end/63554
13621 * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
13622 (fold_builtin_strncat_chk): Move ...
13623 * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
13624 (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
13625
13626 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
13627
13628 PR target/59401
13629 * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
13630 GBR to 0.
13631
13632 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
13633 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13634 Anna Tikhonova <anna.tikhonova@intel.com>
13635 Ilya Tocar <ilya.tocar@intel.com>
13636 Andrey Turetskiy <andrey.turetskiy@intel.com>
13637 Ilya Verbin <ilya.verbin@intel.com>
13638 Kirill Yukhin <kirill.yukhin@intel.com>
13639 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13640
13641 * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
13642 V64QI modes.
13643
13644 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
13645 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13646 Anna Tikhonova <anna.tikhonova@intel.com>
13647 Ilya Tocar <ilya.tocar@intel.com>
13648 Andrey Turetskiy <andrey.turetskiy@intel.com>
13649 Ilya Verbin <ilya.verbin@intel.com>
13650 Kirill Yukhin <kirill.yukhin@intel.com>
13651 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13652
13653 * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
13654 V16SI, V32HI, V64QI modes.
13655
13656 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
13657
13658 PR target/53513
13659 * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
13660 expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
13661
13662 * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
13663 to match fp insn patterns.
13664 (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
13665 list.
13666 (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
13667 expand_df_unop, expand_df_binop): Remove.
13668 (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
13669 FPSCR_STAT_REG as not call clobbered.
13670 (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
13671 invoking fpscr_set_from_mem.
13672
13673 * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
13674 (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
13675 FPSCR_STAT_REG.
13676 (REGISTER_NAMES): Adjust.
13677 (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
13678 (FIRST_PSEUDO_REGISTER): Increase to 156.
13679 (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
13680 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
13681 FPSCR_STAT_REG.
13682 (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
13683 FPSCR_MODES_REG and FPSCR_STAT_REG.
13684 (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
13685
13686 * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
13687 FPSCR_SZ): Add new constants.
13688 (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
13689
13690 (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
13691 (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
13692 Use TARGET_FPU_ANY condition.
13693 (fpu_switch peephole2): Remove.
13694 (fpu_switch split): Use simple_mem_operand to capture the mem and
13695 adjust split implementation.
13696 (extend_psi_si, truncate_si_psi): New insns.
13697 (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants. Add
13698 set of FPSCR_MODES_REG.
13699
13700 (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
13701 reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
13702 calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
13703 call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
13704 call_value_compact, call_value_compact_rettramp, call,
13705 call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
13706 sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
13707 sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
13708 sibcall_value_compact, sibcall_value, call_value_pop_compact,
13709 call_value_pop_compact_rettramp, various unnamed splits):
13710 Replace use of FPSCR_REG with use of FPSCR_MODES_REG. Adjust gen_*
13711 function uses.
13712
13713 (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
13714 (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
13715 (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
13716 (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
13717 (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
13718
13719 (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
13720 *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
13721 cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
13722 subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
13723 cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
13724 truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
13725 and use of FPSCR_MODES_REG. Adjust gen_* function uses.
13726
13727 2014-10-16 Martin Liska <mliska@suse.cz>
13728 Jan Hubicka <hubicka@ucw.cz>
13729
13730 * Makefile.in: New object files included.
13731 * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
13732 is printed.
13733 (verify_edge_corresponds_to_fndecl): More sensitive verification
13734 of nodes that are merged by IPA ICF.
13735 * cgraph.h (cgraph_node::num_references): New function.
13736 * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
13737 * common.opt: New options ipa-icf, ipa-icf-functions and
13738 ipa-icf-variables introduced.
13739 * doc/invoke.texi: Documentation of new options introduced.
13740 * ipa-icf-gimple.c: New file.
13741 * ipa-icf-gimple.h: New file.
13742 * ipa-icf.c: New file.
13743 * ipa-icf.h: New file.
13744 * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
13745 (input_overwrite_node): Likewise.
13746 * lto-section-in.c: New icf section added.
13747 * lto-streamer.h (enum lto_section_type): Likewise.
13748 * opts.c (common_handle_option): New option added.
13749 * passes.def: New pass included.
13750 * timevar.def: Time variable for IPA ICF added.
13751 * tree-pass.h: New IPA ICF pass entry point added.
13752
13753 2014-10-16 Richard Biener <rguenther@suse.de>
13754
13755 PR tree-optimization/63168
13756 * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
13757 latches if after merging they are no longer simple.
13758 * cfghooks.c (merge_blocks): Handle merging a latch block
13759 into another block.
13760
13761 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
13762 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13763 Anna Tikhonova <anna.tikhonova@intel.com>
13764 Ilya Tocar <ilya.tocar@intel.com>
13765 Andrey Turetskiy <andrey.turetskiy@intel.com>
13766 Ilya Verbin <ilya.verbin@intel.com>
13767 Kirill Yukhin <kirill.yukhin@intel.com>
13768 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13769
13770 * config/i386/sse.md
13771 (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
13772 support AVX-512VL instructions.
13773
13774 2014-10-16 DJ Delorie <dj@redhat.com>
13775
13776 * tree-core.h: Fix comment to not assume pointers are multiples of
13777 bytes.
13778
13779 2014-10-15 Tom Tromey <tromey@redhat.com>
13780
13781 * timevar.h (class auto_timevar): New class.
13782
13783 2014-10-15 Uros Bizjak <ubizjak@gmail.com>
13784
13785 PR go/59432
13786 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
13787 Remove the second alternative.
13788 (regprefix): Remove mode attribute.
13789 (atomic_compare_and_swap<mode>): Do not fixup operand 2.
13790 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
13791
13792 Revert:
13793 2013-11-05 Ian Lance Taylor <iant@google.com>
13794
13795 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
13796 If possible, add .cfi directives to record change to bx.
13797 * config/i386/i386.c (ix86_emit_cfi): New function.
13798 * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
13799
13800 2014-10-15 Jan Hubicka <hubicka@ucw.cz>
13801
13802 PR lto/62026
13803 * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
13804 to duplicate.
13805 * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
13806 at WPA time.
13807
13808 2014-10-15 Vladimir Makarov <vmakarov@redhat.com>
13809
13810 PR rtl-optimization/63448
13811 * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
13812 (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
13813 (LRA_MAX_INHERITANCE_PASSES): Use it.
13814 (lra_constraint_iter_after_spill): Remove.
13815 (lra_assignment_iter): New.
13816 (lra_assignment_iter_after_spill): New.
13817 * lra-assigns.c (lra_assignment_iter): New.
13818 (lra_assignment_iter_after_spill): New.
13819 (former_reload_pseudo_spill_p): New.
13820 (spill_for): Set up former_reload_pseudo_spill_p.
13821 (setup_live_pseudos_and_spill_after_risky): Ditto.
13822 (assign_by_spills): Ditto.
13823 (lra_assign): Increment lra_assignment_iter. Print the iteration
13824 number. Reset former_reload_pseudo_spill_p. Check
13825 lra_assignment_iter_after_spill.
13826 * lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize
13827 lra_assignment_iter and lra_assignment_iter_after_spill.
13828 * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
13829 (lra_constraints): Remove code with
13830 lra_assignment_iter_after_spill.
13831
13832 2014-10-15 Teresa Johnson <tejohnson@google.com>
13833
13834 PR bootstrap/63432
13835 * tree-ssa-threadupdate.c (recompute_probabilities): Better
13836 overflow checking.
13837
13838 2014-10-15 Renlin Li <renlin.li@arm.com>
13839
13840 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
13841 __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
13842 __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
13843 __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
13844
13845 2014-10-15 Richard Biener <rguenther@suse.de>
13846
13847 * gimple-fold.c (gimple_fold_call): Properly keep virtual
13848 SSA form up-to-date when devirtualizing a call to
13849 __builtin_unreachable and avoid fixing up EH info here.
13850
13851 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
13852 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13853 Anna Tikhonova <anna.tikhonova@intel.com>
13854 Ilya Tocar <ilya.tocar@intel.com>
13855 Andrey Turetskiy <andrey.turetskiy@intel.com>
13856 Ilya Verbin <ilya.verbin@intel.com>
13857 Kirill Yukhin <kirill.yukhin@intel.com>
13858 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13859
13860 * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
13861 to support AVX-512BW.
13862 (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
13863 (define_expand "<plusminus_insn><mode>3"): Remove masking support.
13864 (define_insn "*<plusminus_insn><mode>3"): Ditto.
13865 (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
13866 (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
13867 (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
13868 (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
13869 (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
13870 (define_insn "*andnot<mode>3"): Ditto.
13871 (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
13872 (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
13873 (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
13874 (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
13875 (define_insn "*abs<mode>2"): Remove masking support.
13876 (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
13877 (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
13878 (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
13879
13880 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
13881 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13882 Anna Tikhonova <anna.tikhonova@intel.com>
13883 Ilya Tocar <ilya.tocar@intel.com>
13884 Andrey Turetskiy <andrey.turetskiy@intel.com>
13885 Ilya Verbin <ilya.verbin@intel.com>
13886 Kirill Yukhin <kirill.yukhin@intel.com>
13887 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13888
13889 * config/i386/predicates.md (define_predicate "constm1_operand"): New.
13890 * config/i386/sse.md
13891 (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
13892 (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
13893 (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
13894 (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
13895 (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
13896 (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
13897 (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
13898
13899 2014-10-15 Renlin Li <renlin.li@arm.com>
13900
13901 * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
13902
13903 2014-10-15 Jakub Jelinek <jakub@redhat.com>
13904
13905 * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
13906 MINUS_EXPR in unsigned type to avoid undefined behavior.
13907
13908 2014-10-15 Eric Botcazou <ebotcazou@adacore.com>
13909
13910 * stor-layout.c (self_referential_size): Do not promote arguments.
13911
13912 2014-10-15 Marek Polacek <polacek@redhat.com>
13913
13914 * doc/invoke.texi: Update to reflect that GNU11 is the default
13915 mode for C.
13916 * c-common.h (c_language_kind): Update comment.
13917
13918 2014-10-15 Richard Biener <rguenther@suse.de>
13919
13920 * hash-table.c: Include bconfig.h if building for the host.
13921 * hash-table.h: Do not include ggc.h on the host but just declare
13922 a few ggc allocation templates.
13923
13924 2014-10-15 Joern Rennecke <joern.rennecke@embecosm.com>
13925 Jeff Law <law@redhat.com>
13926
13927 * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
13928 multiple hard registers, use smaller mode derived from MODE.
13929
13930 2014-10-15 Andreas Schwab <schwab@suse.de>
13931
13932 * explow.c (convert_memory_address_addr_space_1): Mark in_const
13933 as ATTRIBUTE_UNUSED.
13934
13935 2014-10-14 Jan Hubicka <hubicka@ucw.cz>
13936
13937 * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
13938 (decide_unrolling): ... this one.
13939 (peel_loops_completely): Remove.
13940 (decide_peel_simple): Remove.
13941 (decide_peel_once_rolling): Remove.
13942 (decide_peel_completely): Remove.
13943 (peel_loop_simple): Remove.
13944 (peel_loop_completely): Remove.
13945 (unroll_and_peel_loops): Rename to ...
13946 (unroll_loops): ... this one; handle only unrolling.
13947 * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
13948 LPT_PEEL_SIMPLE.
13949 (UAP_PEEL): Remove.
13950 (unroll_and_peel_loops): Remove.
13951 (unroll_loops): New.
13952 * passes.def: Replace
13953 pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
13954 * loop-init.c (gate_rtl_unroll_and_peel_loops,
13955 rtl_unroll_and_peel_loops): Rename to ...
13956 (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
13957 (pass_rtl_unroll_and_peel_loops): Rename to ...
13958 (pass_rtl_unroll_loops): ... this one.
13959 * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
13960 (make_pass_rtl_unroll_loops): New.
13961 * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
13962 (canonicalize_loop_induction_variables): Update.
13963
13964 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
13965
13966 * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
13967 * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
13968 !TARGET_HARD_FLOAT_POSTINC.
13969 (*lsip, *ssip): new instructions.
13970
13971 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
13972
13973 * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
13974 remove.
13975
13976 2014-10-14 Andrew Pinski <apinski@cavium.com>
13977
13978 * explow.c (convert_memory_address_addr_space): Rename to ...
13979 (convert_memory_address_addr_space_1): This. Add in_const argument.
13980 Inside a CONST RTL, permute the conversion and addition of constant
13981 for zero and sign extended pointers.
13982 (convert_memory_address_addr_space): New function.
13983
13984 2014-10-14 Andrew Pinski <apinski@cavium.com>
13985
13986 Revert:
13987 2011-08-19 H.J. Lu <hongjiu.lu@intel.com>
13988
13989 PR middle-end/49721
13990 * explow.c (convert_memory_address_addr_space): Also permute the
13991 conversion and addition of constant for zero-extend.
13992
13993 2014-10-14 DJ Delorie <dj@redhat.com>
13994
13995 * config/msp430/msp430-modes.def (PSI): Add.
13996
13997 * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
13998 (msp430_hard_regno_nregs_with_padding): New.
13999 * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
14000 (msp430_hard_regno_nregs_has_padding): New.
14001 (msp430_hard_regno_nregs_with_padding): New.
14002 (msp430_unwind_word_mode): Use PSImode instead of SImode.
14003 (msp430_addr_space_legitimate_address_p): New.
14004 (msp430_asm_integer): New.
14005 (msp430_init_dwarf_reg_sizes_extra): New.
14006 (msp430_print_operand): Use X suffix for PSImode even in small model.
14007 * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
14008 (PTR_SIZE): ...but 4 bytes for EH.
14009 (SIZE_TYPE): Use __int20.
14010 (PTRDIFF_TYPE): Likewise.
14011 (INCOMING_FRAME_SP_OFFSET): Adjust.
14012 * config/msp430/msp430.md (movqi_topbyte): New.
14013 (movpsi): Use fixed suffixes.
14014 (movsipsi2): Enable for 430X, not large model.
14015 (extendhipsi2): Likewise.
14016 (zero_extendhisi2): Likewise.
14017 (zero_extendhisipsi2): Likewise.
14018 (extend_and_shift1_hipsi2): Likewise.
14019 (extendpsisi2): Likewise.
14020 (*bitbranch<mode>4_z): Fix suffix logic.
14021
14022 2014-10-14 Eric Botcazou <ebotcazou@adacore.com>
14023
14024 PR ada/62019
14025 * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
14026 do not choke on null node.
14027 <VAR_DECL>: Likewise.
14028
14029 2014-10-14 DJ Delorie <dj@redhat.com>
14030
14031 * machmode.h (int_n_data_t): New.
14032 (int_n_enabled_p): New.
14033 (int_n_data): New.
14034 * tree.c (int_n_enabled_p): New.
14035 (int_n_trees): New.
14036 (make_or_reuse_type): Check for all __intN types, not just
14037 __int128.
14038 (build_common_tree_nodes): Likewise. Also fill in integer_typs[]
14039 entries.
14040 * tree.h (int128_integer_type_node): Remove.
14041 (int128_unsigned_type_node): Remove.
14042 (int_n_trees_t): New.
14043 (int_n_enabled_p): New.
14044 (int_n_trees): New.
14045 * toplev.c (standard_type_bitsize): New.
14046 (do_compile): Check which __intN types are enabled for the current
14047 run.
14048 * builtin-types.def (BT_INT128): Remove.
14049 (BT_UINT128): Remove.
14050 * machmode.def: Add macro to create __int128 for all targets.
14051 * stor-layout.c (mode_for_size): Support __intN types.
14052 (smallest_mode_for_size): Likewise.
14053 (initialize_sizetypes): Support __intN types.
14054 * genmodes.c (struct mode_data): Add int_n field.
14055 (blank_mode): Likewise.
14056 (INT_N): New.
14057 (make_int_n): New.
14058 (emit_insn_modes_h): Count __intN entries and define
14059 NUM_INT_N_ENTS.
14060 (emit_mode_int_n): New.
14061 (emit_insn_modes_c): Call it.
14062 * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
14063 types, not just __int128.
14064 * tree-core.h (integer_type_kind): Remove __int128-specific
14065 entries, reserve spots for __intN entries.
14066
14067 * config/msp430/msp430-modes.def (PSI): Add.
14068
14069 2014-10-14 Kito Cheng <kito@0xlab.org>
14070
14071 * ira.c: Fix typo in comment.
14072 * ira.h: Ditto.
14073 * ira-build.c: Ditto.
14074 * ira-color.c: Ditto.
14075 * ira-emit.c: Ditto.
14076 * ira-int.h: Ditto.
14077 * ira-lives.c: Ditto.
14078
14079 2014-10-14 Uros Bizjak <ubizjak@gmail.com>
14080
14081 PR rtl-optimization/63475
14082 * alias.c (true_dependence_1): Always use get_addr to extract
14083 true address operands from x_addr and mem_addr. Use extracted
14084 address operands to check for references with alignment ANDs.
14085 Use extracted address operands with find_base_term and
14086 base_alias_check. For noncanonicalized operands call canon_rtx with
14087 extracted address operand.
14088 (write_dependence_1): Ditto.
14089 (may_alias_p): Ditto. Remove unused calls to canon_rtx.
14090
14091 2014-10-14 Evgeny Stupachenko <evstupac@gmail.com>
14092
14093 PR target/63534
14094 * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
14095 __morestack local.
14096
14097 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14098 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14099 Anna Tikhonova <anna.tikhonova@intel.com>
14100 Ilya Tocar <ilya.tocar@intel.com>
14101 Andrey Turetskiy <andrey.turetskiy@intel.com>
14102 Ilya Verbin <ilya.verbin@intel.com>
14103 Kirill Yukhin <kirill.yukhin@intel.com>
14104 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14105
14106 * config/i386/i386.c
14107 (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
14108 (ix86_expand_int_vcond): Ditto.
14109
14110 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14111 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14112 Anna Tikhonova <anna.tikhonova@intel.com>
14113 Ilya Tocar <ilya.tocar@intel.com>
14114 Andrey Turetskiy <andrey.turetskiy@intel.com>
14115 Ilya Verbin <ilya.verbin@intel.com>
14116 Kirill Yukhin <kirill.yukhin@intel.com>
14117 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14118
14119 * config/i386/i386.c
14120 (emit_reduc_half): Handle V64QI and V32HI mode.
14121 * config/i386/sse.md
14122 (define_mode_iterator VI_AVX512BW): New.
14123 (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
14124
14125 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14126 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14127 Anna Tikhonova <anna.tikhonova@intel.com>
14128 Ilya Tocar <ilya.tocar@intel.com>
14129 Andrey Turetskiy <andrey.turetskiy@intel.com>
14130 Ilya Verbin <ilya.verbin@intel.com>
14131 Kirill Yukhin <kirill.yukhin@intel.com>
14132 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14133
14134 * config/i386/sse.md
14135 (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
14136
14137 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14138 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14139 Anna Tikhonova <anna.tikhonova@intel.com>
14140 Ilya Tocar <ilya.tocar@intel.com>
14141 Andrey Turetskiy <andrey.turetskiy@intel.com>
14142 Ilya Verbin <ilya.verbin@intel.com>
14143 Kirill Yukhin <kirill.yukhin@intel.com>
14144 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14145
14146 * config/i386/i386.c
14147 (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
14148 * config/i386/sse.md
14149 (define_mode_iterator VI): Add V64QI and V32HI modes.
14150
14151 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14152 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14153 Anna Tikhonova <anna.tikhonova@intel.com>
14154 Ilya Tocar <ilya.tocar@intel.com>
14155 Andrey Turetskiy <andrey.turetskiy@intel.com>
14156 Ilya Verbin <ilya.verbin@intel.com>
14157 Kirill Yukhin <kirill.yukhin@intel.com>
14158 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14159
14160 * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
14161
14162 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14163 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14164 Anna Tikhonova <anna.tikhonova@intel.com>
14165 Ilya Tocar <ilya.tocar@intel.com>
14166 Andrey Turetskiy <andrey.turetskiy@intel.com>
14167 Ilya Verbin <ilya.verbin@intel.com>
14168 Kirill Yukhin <kirill.yukhin@intel.com>
14169 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14170
14171 * config/i386/sse.md
14172 (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
14173 (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
14174
14175 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14176 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14177 Anna Tikhonova <anna.tikhonova@intel.com>
14178 Ilya Tocar <ilya.tocar@intel.com>
14179 Andrey Turetskiy <andrey.turetskiy@intel.com>
14180 Ilya Verbin <ilya.verbin@intel.com>
14181 Kirill Yukhin <kirill.yukhin@intel.com>
14182 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14183
14184 * config/i386/sse.md
14185 (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
14186 (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
14187
14188 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14189 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14190 Anna Tikhonova <anna.tikhonova@intel.com>
14191 Ilya Tocar <ilya.tocar@intel.com>
14192 Andrey Turetskiy <andrey.turetskiy@intel.com>
14193 Ilya Verbin <ilya.verbin@intel.com>
14194 Kirill Yukhin <kirill.yukhin@intel.com>
14195 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14196
14197 * config/i386/sse.md
14198 (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
14199 (define_mode_iterator VI2_AVX2): Add V32HI mode.
14200 (define_expand "mul<mode>3<mask_name>"): Add masking.
14201 (define_insn "*mul<mode>3<mask_name>"): Ditto.
14202 (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
14203 (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
14204 (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
14205 (define_mode_attr SDOT_PMADD_SUF): Ditto.
14206 (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
14207 (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
14208 (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
14209 (define_insn "avx2_packusdw"): Delete.
14210 (define_insn "sse4_1_packusdw"): Ditto.
14211 (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
14212
14213 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14214 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14215 Anna Tikhonova <anna.tikhonova@intel.com>
14216 Ilya Tocar <ilya.tocar@intel.com>
14217 Andrey Turetskiy <andrey.turetskiy@intel.com>
14218 Ilya Verbin <ilya.verbin@intel.com>
14219 Kirill Yukhin <kirill.yukhin@intel.com>
14220 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14221
14222 * config/i386/sse.md
14223 (define_insn "vec_dup<mode>"): Update constraints.
14224
14225 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14226 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14227 Anna Tikhonova <anna.tikhonova@intel.com>
14228 Ilya Tocar <ilya.tocar@intel.com>
14229 Andrey Turetskiy <andrey.turetskiy@intel.com>
14230 Ilya Verbin <ilya.verbin@intel.com>
14231 Kirill Yukhin <kirill.yukhin@intel.com>
14232 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14233
14234 * config/i386/sse.md
14235 (define_mode_iterator SSESCALARMODE): Add V4TI mode.
14236 (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
14237 (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
14238
14239 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14240 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14241 Anna Tikhonova <anna.tikhonova@intel.com>
14242 Ilya Tocar <ilya.tocar@intel.com>
14243 Andrey Turetskiy <andrey.turetskiy@intel.com>
14244 Ilya Verbin <ilya.verbin@intel.com>
14245 Kirill Yukhin <kirill.yukhin@intel.com>
14246 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14247
14248 * config/i386/sse.md
14249 (define_expand "mul<mode>3<mask_name>"): Add masking.
14250
14251 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14252 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14253 Anna Tikhonova <anna.tikhonova@intel.com>
14254 Ilya Tocar <ilya.tocar@intel.com>
14255 Andrey Turetskiy <andrey.turetskiy@intel.com>
14256 Ilya Verbin <ilya.verbin@intel.com>
14257 Kirill Yukhin <kirill.yukhin@intel.com>
14258 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14259
14260 * config/i386/sse.md
14261 (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
14262 (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
14263
14264 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14265 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14266 Anna Tikhonova <anna.tikhonova@intel.com>
14267 Ilya Tocar <ilya.tocar@intel.com>
14268 Andrey Turetskiy <andrey.turetskiy@intel.com>
14269 Ilya Verbin <ilya.verbin@intel.com>
14270 Kirill Yukhin <kirill.yukhin@intel.com>
14271 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14272
14273 * config/i386/sse.md
14274 (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
14275 (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
14276 (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
14277 Ditto.
14278
14279 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14280 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14281 Anna Tikhonova <anna.tikhonova@intel.com>
14282 Ilya Tocar <ilya.tocar@intel.com>
14283 Andrey Turetskiy <andrey.turetskiy@intel.com>
14284 Ilya Verbin <ilya.verbin@intel.com>
14285 Kirill Yukhin <kirill.yukhin@intel.com>
14286 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14287
14288 * config/i386/sse.md
14289 (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
14290 use VF_128_256 mode iterator and update assembler emit code.
14291 (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
14292 (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
14293 Add masking, use VF_128_256 mode iterator.
14294 (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
14295 (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
14296 Add masking, use VF_128_256 mode iterator and update assembler emit
14297 code.
14298 (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
14299 (define_mode_attr avx512flogicsuff): Delete.
14300 (define_insn "avx512f_<logic><mode>"): Ditto.
14301 (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
14302 MODE_TI.
14303 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
14304
14305 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14306 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14307 Anna Tikhonova <anna.tikhonova@intel.com>
14308 Ilya Tocar <ilya.tocar@intel.com>
14309 Andrey Turetskiy <andrey.turetskiy@intel.com>
14310 Ilya Verbin <ilya.verbin@intel.com>
14311 Kirill Yukhin <kirill.yukhin@intel.com>
14312 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14313
14314 * config/i386/sse.md
14315 (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
14316 (define_expand "vashr<mode>3<mask_name>"): Add masking,
14317 use VI12_128 mode iterator.
14318 (define_expand "ashrv2di3<mask_name>"): New.
14319
14320 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14321 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14322 Anna Tikhonova <anna.tikhonova@intel.com>
14323 Ilya Tocar <ilya.tocar@intel.com>
14324 Andrey Turetskiy <andrey.turetskiy@intel.com>
14325 Ilya Verbin <ilya.verbin@intel.com>
14326 Kirill Yukhin <kirill.yukhin@intel.com>
14327 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14328
14329 * config/i386/i386.c
14330 (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
14331 CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
14332 CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
14333 CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
14334 CODE_FOR_avx512vl_ucmpv4si3_mask.
14335 * config/i386/sse.md
14336 (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
14337 "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
14338 (define_insn
14339 "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
14340 (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
14341 (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
14342 (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
14343 (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
14344 (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
14345
14346 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14347 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14348 Anna Tikhonova <anna.tikhonova@intel.com>
14349 Ilya Tocar <ilya.tocar@intel.com>
14350 Andrey Turetskiy <andrey.turetskiy@intel.com>
14351 Ilya Verbin <ilya.verbin@intel.com>
14352 Kirill Yukhin <kirill.yukhin@intel.com>
14353 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14354
14355 * config/i386/sse.md
14356 (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
14357 (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
14358 (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
14359 (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
14360 (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
14361 (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
14362 (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
14363 (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
14364 (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
14365
14366 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
14367 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14368 Anna Tikhonova <anna.tikhonova@intel.com>
14369 Ilya Tocar <ilya.tocar@intel.com>
14370 Andrey Turetskiy <andrey.turetskiy@intel.com>
14371 Ilya Verbin <ilya.verbin@intel.com>
14372 Kirill Yukhin <kirill.yukhin@intel.com>
14373 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14374
14375 * config/i386/sse.md
14376 (define_insn "avx512f_blendm<mode>"): Delete.
14377 (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
14378 (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
14379 (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
14380 V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
14381 (define_insn
14382 "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14383 Remove.
14384 (define_insn
14385 "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14386 New.
14387 (define_insn
14388 "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14389 Ditto.
14390 (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
14391 (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
14392 (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
14393 (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
14394 Delete.
14395 (define_insn
14396 "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
14397 New.
14398 (define_insn
14399 "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
14400 Ditto.
14401 (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
14402 Delete.
14403 (define_insn
14404 "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
14405 New.
14406 (define_insn
14407 "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
14408 Ditto.
14409
14410 2014-10-14 Richard Biener <rguenther@suse.de>
14411
14412 PR tree-optimization/63512
14413 * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
14414 modified.
14415
14416 2014-10-14 Oleg Endo <olegendo@gcc.gnu.org>
14417
14418 PR target/63260
14419 * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
14420 abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute. Remove use
14421 of FPSCR.
14422 (negsf2_i): Rename to *negsf2_i.
14423 (abssf2_i): Rename to *abssf2_i.
14424 (negdf2_i): Rename to *negdf2_i.
14425 (absdf2_i): Rename to *absdf2_i.
14426
14427 2014-10-14 Felix Yang <felix.yang@huawei.com>
14428 Jeff Law <law@redhat.com>
14429
14430 * ira.c (struct equivalence): Change member "is_arg_equivalence" and
14431 "replace" into boolean bitfields; turn member "loop_depth" into a short
14432 integer; add new member "no_equiv" and "reserved".
14433 (no_equiv): Set no_equiv of struct equivalence if register is marked
14434 as having no known equivalence.
14435 (update_equiv_regs): Check all definitions for a multiple-set
14436 register to make sure that the RHS have the same value.
14437
14438 2014-10-13 Richard Henderson <rth@redhat.com>
14439
14440 * combine-stack-adj.c (no_unhandled_cfa): New.
14441 (maybe_merge_cfa_adjust): New.
14442 (combine_stack_adjustments_for_block): Use them.
14443
14444 2014-10-13 Aldy Hernandez <aldyh@redhat.com>
14445
14446 * Makefile.in (TAGS): Tag ../include files.
14447
14448 2014-10-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14449
14450 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
14451 to rs6000_dbx_register_number.
14452 (DWARF_FRAME_REGNUM): Redefine as identity map.
14453 (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
14454 * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
14455 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
14456 argument to handle .debug_frame and .eh_frame directly. Always
14457 translate SPE high register numbers. Add special treatment for CR,
14458 but only in .debug_frame. Respect RS6000_USE_DWARF_NUMBERING.
14459
14460 * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
14461 * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
14462 (RS6000_USE_DWARF_NUMBERING): Define.
14463 * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
14464 (RS6000_USE_DWARF_NUMBERING): Define.
14465 * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
14466 (RS6000_USE_DWARF_NUMBERING): Define.
14467 * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
14468 (RS6000_USE_DWARF_NUMBERING): Define.
14469 * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
14470 * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
14471
14472 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
14473
14474 * config/i386/i386.c (ix86_address_cost): Lower cost for
14475 when address contains GOT register.
14476
14477 2014-10-13 Ilya Enkovich <ilya.enkovich@intel.com>
14478 Vladimir Makarov <vmakarov@redhat.com>
14479
14480 PR target/8340
14481 PR middle-end/47602
14482 PR rtl-optimization/55458
14483 * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
14484 (ix86_init_pic_reg): New.
14485 (ix86_select_alt_pic_regnum): Add check on pseudo register.
14486 (ix86_save_reg): Likewise.
14487 (ix86_expand_prologue): Remove PIC register initialization
14488 now performed in ix86_init_pic_reg.
14489 (ix86_output_function_epilogue): Add check on pseudo register.
14490 (set_pic_reg_ever_alive): New.
14491 (legitimize_pic_address): Replace df_set_regs_ever_live with new
14492 set_pic_reg_ever_alive.
14493 (legitimize_tls_address): Likewise.
14494 (ix86_pic_register_p): New check.
14495 (ix86_delegitimize_address): Add check on pseudo register.
14496 (ix86_expand_call): Insert move from pseudo PIC register to ABI
14497 defined REAL_PIC_OFFSET_TABLE_REGNUM.
14498 (TARGET_INIT_PIC_REG): New.
14499 (TARGET_USE_PSEUDO_PIC_REG): New.
14500 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
14501 if pic_offset_table_rtx exists.
14502 * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
14503 Document.
14504 * doc/tm.texi: Regenerate.
14505 * function.c (assign_parms): Generate pseudo register for PIC.
14506 * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
14507 register.
14508 * ira-color.c (color_pass): Add check on pseudo register.
14509 * ira-emit.c (change_loop): Don't create copies for PIC pseudo
14510 register.
14511 * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
14512 register.
14513 (ira): Add target specific PIC register initialization.
14514 (do_reload): Keep PIC pseudo register.
14515 * lra-assigns.c (spill_for): Add checks on pseudo register.
14516 * lra-constraints.c (contains_symbol_ref_p): New.
14517 (lra_constraints): Enable lra risky transformations when PIC is pseudo
14518 register.
14519 * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
14520 * target.def (use_pseudo_pic_reg): New.
14521 (init_pic_reg): New.
14522
14523 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
14524
14525 * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
14526 Remove m_SILVERMONT and m_INTEL from the tune.
14527
14528 2014-10-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14529
14530 PR libfortran/63471
14531 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
14532 when _HPUX_SOURCE is defined.
14533
14534 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
14535
14536 PR tree-optimization/62127
14537 * tree.c (remap_type_1): When remapping array, remap
14538 also its type.
14539
14540 2014-10-13 Christophe Lyon <christophe.lyon@linaro.org>
14541
14542 * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
14543 longer impact parallelization.
14544
14545 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
14546
14547 PR bootstrap/63496
14548 * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
14549
14550 2014-10-13 Marat Zakirov <m.zakirov@samsung.com>
14551
14552 * asan.c (instrument_derefs): BIT_FIELD_REF added.
14553
14554 2014-10-13 Richard Biener <rguenther@suse.de>
14555
14556 PR tree-optimization/63419
14557 * gimple-fold.h (gimple_convert): New function.
14558 * gimple-fold.c (gimple_convert): Likewise.
14559 * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
14560 to split out required conversions early.
14561
14562 2014-10-13 Richard Sandiford <richard.sandiford@arm.com>
14563
14564 * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
14565 Add the parts of an insn in reverse order, with the pattern at
14566 the top of the queue. Detect when we're iterating over a SEQUENCE
14567 pattern and in that case just consider patterns of subinstructions.
14568
14569 2014-10-12 Oleg Endo <olegendo@gcc.gnu.org>
14570
14571 PR target/59401
14572 * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
14573 of rtx.
14574 * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
14575 insn walking.
14576 (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
14577 address. Use def chains to handle GBR clobbering call insns.
14578
14579 2014-10-12 Trevor Saunders <tsaunders@mozilla.com>
14580
14581 * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
14582 config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
14583 config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
14584 function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
14585 output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
14586 tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
14587 * doc/gty.texi (for_user): Document new option.
14588 * gengtype.c (create_user_defined_type): Don't try to get a struct for
14589 char.
14590 (walk_type): Don't error out on for_user option.
14591 (write_func_for_structure): Emit user marking routines if requested by
14592 for_user option.
14593 (write_local_func_for_structure): Likewise.
14594 (main): Mark types with for_user option as used.
14595 * ggc.h (gt_pch_nx): Add overload for unsigned int.
14596 * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
14597 * hash-table.h (ggc_hasher): New struct.
14598 (hash_table::create_ggc): New function.
14599 (gt_pch_nx): New overload for hash_table.
14600
14601 2014-10-11 Oleg Endo <olegendo@gcc.gnu.org>
14602
14603 * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
14604 * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
14605 * config/sh/sh.c: Likewise.
14606 * config/sh/sh-mem.cc: Likewise.
14607 * config/sh/sh.md: Likewise.
14608 * config/sh/predicates.md: Likewise.
14609 * config/sh/sync.md: Likewise.
14610
14611 2014-10-11 Martin Liska <mliska@suse.cz>
14612
14613 PR middle-end/63376
14614 * cgraphunit.c (symbol_table::process_new_functions): Missing call
14615 for call_cgraph_insertion_hooks added.
14616
14617 2014-10-10 Jakub Jelinek <jakub@redhat.com>
14618
14619 PR c/63495
14620 * stor-layout.c (min_align_of_type): Don't decrease alignment
14621 through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
14622 TYPE_USER_ALIGN is set.
14623
14624 2014-10-10 Uros Bizjak <ubizjak@gmail.com>
14625
14626 PR rtl-optimization/63483
14627 * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
14628 references when alignment ANDs are involved.
14629 (write_dependence_p): Ditto.
14630 (may_alias_p): Ditto.
14631
14632 2014-10-10 Marek Polacek <polacek@redhat.com>
14633
14634 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
14635 * doc/invoke.texi: Document -fsanitize=object-size.
14636 * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
14637 or it into SANITIZE_UNDEFINED.
14638 * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
14639 * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
14640 * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
14641 * opts.c (common_handle_option): Handle -fsanitize=object-size.
14642 * ubsan.c: Include tree-object-size.h.
14643 (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
14644 (ubsan_expand_bounds_ifn): Use false instead of 0.
14645 (ubsan_expand_objsize_ifn): New function.
14646 (instrument_object_size): New function.
14647 (pass_ubsan::execute): Add object size instrumentation.
14648 * ubsan.h (ubsan_expand_objsize_ifn): Declare.
14649
14650 2014-10-10 Richard Henderson <rth@redhat.com>
14651
14652 PR target/63404
14653 * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
14654 Restrict the set of expressions we're willing to move.
14655
14656 2014-10-10 Jeff Law <law@redhat.com>
14657
14658 * ira.c (struct equivalence): Promote INIT_INSNs field to
14659 an rtx_insn_list. Add comments.
14660 (no_equiv): Promote LIST to an rtx_insn_list. Update
14661 testing for and creating the special marker. Use methods
14662 to extract the insn and next pointers. Promote INSN to an
14663 rtx_insn.
14664 (update_equiv_regs): Update test for special marker in the
14665 INIT_INSNs list.
14666
14667 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14668
14669 * configure.ac: Add --enable-fix-cortex-a53-835769 option.
14670 * configure: Regenerate.
14671 * config/aarch64/aarch64.c (aarch64_override_options): Handle
14672 TARGET_FIX_ERR_A53_835769_DEFAULT.
14673 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
14674 value to 2.
14675 * doc/install.texi (aarch64*-*-*): Document
14676 new --enable-fix-cortex-a53-835769 option.
14677
14678 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14679 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14680
14681 * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
14682 (ADJUST_INSN_LENGTH): Define.
14683 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
14684 * config/aarch64/aarch64.c (is_mem_p): New function.
14685 (is_memory_op): Likewise.
14686 (aarch64_prev_real_insn): Likewise.
14687 (is_madd_op): Likewise.
14688 (dep_between_memop_and_curr): Likewise.
14689 (aarch64_madd_needs_nop): Likewise.
14690 (aarch64_final_prescan_insn): Likewise.
14691 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
14692 and -mno-fix-cortex-a53-835769 options.
14693
14694 2014-10-10 Jakub Jelinek <jakub@redhat.com>
14695
14696 PR tree-optimization/63464
14697 * tree-switch-conversion.c (struct case_bit_test): Remove
14698 hi and lo fields, add wide_int mask field.
14699 (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
14700 hi/lo fields into wide_int mask operations, optimize by pretending
14701 minval to be 0 if maxval is small enough.
14702 (process_switch): Adjust caller.
14703
14704 2014-10-10 Richard Biener <rguenther@suse.de>
14705
14706 PR tree-optimization/63379
14707 * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
14708 a neutral operand for min/max when it is not a reduction chain.
14709
14710 2014-10-10 Richard Biener <rguenther@suse.de>
14711
14712 PR tree-optimization/63476
14713 * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
14714 (BB_LIVE_VOP_ON_EXIT): New define.
14715 (create_expression_by_pieces): Assign VUSEs to stmts.
14716 (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
14717 (pass_pre::execute): Assert virtual SSA form is up-to-date
14718 after insertion.
14719
14720 2014-10-10 Eric Botcazou <ebotcazou@adacore.com>
14721
14722 * lra-assigns.c (assign_by_spills): Error out on spill failure.
14723
14724 2014-10-09 Markus Trippelsdorf <markus@trippelsdorf.de>
14725
14726 * pa-polymorphic-call.c (check_stmt_for_type_change): Move
14727 assertion.
14728
14729 2014-10-09 Richard Biener <rguenther@suse.de>
14730
14731 PR tree-optimization/63380
14732 * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
14733 may trap.
14734
14735 2014-10-09 Joern Rennecke <joern.rennecke@embecosm.com>
14736
14737 * config/avr/avr.opt (mmcu=): Change to have a string value.
14738 (mn-flash=, mskip-bug, march=, mrmw): New options.
14739 (HeaderInclude): New.
14740 (mmcu=): Remove Var / Init clauses.
14741 * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
14742 -specs option.
14743 (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
14744 (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
14745 (SYMBOL_FLAG_IO_LOW): Define.
14746 (avr_device_to_as, avr_device_to_ld): Don't declare.
14747 (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
14748 (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
14749 (EXTRA_SPEC_FUNCTIONS): Don't define.
14750 (ASM_SPEC): Translate -arch= option to -mmcu= option.
14751 (LINK_SPEC): Translate -arch= option to -m= option.
14752 Don't use device_to_ld / device_to_data_start.
14753 (STARTFILE_SPEC): Now empty.
14754 (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
14755 * config/avr/gen-avr-mmcu-specs.c: New file.
14756 * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
14757 (s-device-specs): Likewise.
14758 (GCC_PASSES): Add s-device-specs.
14759 (install-driver): Depend on install-device-specs.
14760 (install-device-specs): New rule.
14761 * config/avr/avr.c (avr_option_override): Look up mcu arch by
14762 avr_arch_index and provide fallback initialization for avr_n_flash.
14763 (varasm.h): #include.
14764 (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
14765 (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
14766 (avr_attribute_table): Add "io", "address" and "io_low".
14767 (avr_asm_output_aligned_decl_common): Change type of decl to tree.
14768 Add special handling for symbols with "io" and/or "address" attributes.
14769 (avr_asm_asm_output_aligned_bss): New function.
14770 (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
14771 as appropriate. Handle io_low attribute.
14772 (avr_out_sbxx_branch): Handle symbolic io addresses.
14773 (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
14774 avr_n_flash instead of avr_current_device->n_flash.
14775 (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
14776 (avr_emit_movmemhi): Likewise.
14777 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
14778 Use TARGET_RMW instead of avr_current_device->dev_attributes.
14779 Don't define avr_current_device->macro (that's the specfile's job).
14780 Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
14781 * config/avr/avr.c (avr_2word_insn_p): Likewise.
14782 * config/avr/avr.md (*cpse.ne): Likewise.
14783 (mov<mode>): Use avr_eval_addr_attrib.
14784 (cbi): Change constraint for low_io_address_operand operand to "i".
14785 (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
14786 * config/avr/predicates.md (io_address_operand):
14787 Allow SYMBOL_REF with SYMBOL_FLAG_IO.
14788 (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
14789 * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
14790 Update prototype.
14791 (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
14792 * config/avr/genmultilib.awk: Use -march=.
14793 Remove Multilib matches processing.
14794 * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
14795 * config/avr/avr-arch.h: Add double include guard.
14796 (avr_mcu_t) <library_name>: Update comment.
14797 * config/avr/driver-avr.c (avr_device_to_as): Delete.
14798 (avr_device_to_ld, avr_device_to_data_start): Likewise.
14799 (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
14800 (avr_device_to_sp8): Likewise.
14801 * config/avr/genopt.sh: Instead avr_mcu, emit an Enum for avr_arch.
14802
14803 * doc/extend.texi (io, address): Document new AVR variable attributes.
14804 (io_low): Likewise.
14805
14806 2014-10-09 Marek Polacek <polacek@redhat.com>
14807
14808 * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
14809
14810 2014-10-08 Richard Biener <rguenther@suse.de>
14811
14812 PR tree-optimization/61969
14813 * tree-nrv.c (pass_nrv::execute): Properly test for automatic
14814 variables.
14815
14816 2014-10-09 Richard Biener <rguenther@suse.de>
14817
14818 PR tree-optimization/63445
14819 * tree-vrp.c (simplify_cond_using_ranges): Only warn about
14820 overflow for non-equality compares.
14821
14822 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
14823
14824 PR rtl-optimization/57003
14825 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
14826 also check CALL_INSN_FUNCTION_USAGE for clobbers again after
14827 killing regs_invalidated_by_call.
14828
14829 2014-10-08 Teresa Johnson <tejohnson@google.com>
14830
14831 PR bootstrap/63432.
14832 * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
14833 (ssa_fix_duplicate_block_edges): Invoke it.
14834 (mark_threaded_blocks): Make two passes to avoid ordering dependences.
14835
14836 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
14837
14838 PR target/52941
14839 * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
14840 atomic_fetch_<fetchop_name>si_hard,
14841 atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
14842 atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
14843 atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
14844 atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
14845
14846 2014-10-08 Rong Xu <xur@google.com>
14847
14848 * gcov-tool.c (profile_overlap): New driver function
14849 to compute profile overlap.
14850 (print_overlap_usage_message): New.
14851 (overlap_usage): New.
14852 (do_overlap): New.
14853 (print_usage): Add calls to overlap function.
14854 (main): Ditto.
14855 * doc/gcov-tool.texi: Add documentation.
14856
14857 2014-10-08 Steve Ellcey <sellcey@mips.com>
14858
14859 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
14860 LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
14861
14862 2014-10-08 Jan Hubicka <hubicka@ucw.cz>
14863
14864 * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
14865 pattern matching of MEM_REF.
14866 (check_stmt_for_type_change): Update.
14867
14868 2014-10-08 Steve Ellcey <sellcey@mips.com>
14869
14870 * config/mips/linux64.h: Remove.
14871 * config/mips/gnu-user64.h: Remove.
14872 * gcc.config (mips*-*-*): Remove references to linux64.h and
14873 gnu-user64.h
14874 * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
14875 with modified version from gnu-user64.h.
14876 (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
14877 (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
14878 * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
14879 linux64.h.
14880 (GNU_USER_LINK_EMULATION64): Ditto.
14881 (GNU_USER_LINK_EMULATIONN32): Ditto.
14882 (GLIBC_DYNAMIC_LINKER32): Ditto.
14883 (GLIBC_DYNAMIC_LINKER64): Ditto.
14884 (GLIBC_DYNAMIC_LINKERN32): Ditto.
14885 (UCLIBC_DYNAMIC_LINKER32): Ditto.
14886 (UCLIBC_DYNAMIC_LINKER64): Ditto.
14887 (UCLIBC_DYNAMIC_LINKERN32): Ditto.
14888 (BIONIC_DYNAMIC_LINKERN32): Ditto.
14889 (GNU_USER_DYNAMIC_LINKERN32): Ditto.
14890 (GLIBC_DYNAMIC_LINKER): Delete.
14891 (UCLIBC_DYNAMIC_LINKER): Delete.
14892
14893 2014-10-08 Joern Rennecke <joern.rennecke@embecosm.com>
14894 Richard Biener <rguenther@suse.de>
14895
14896 * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
14897 Get address space from operand 0 (BASE).
14898
14899 2014-10-07 Iain Sandoe <iain@codesourcery.com>
14900
14901 PR target/61387
14902 * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
14903
14904 2014-10-07 Aldy Hernandez <aldyh@redhat.com>
14905
14906 * dwarf2out.c: Remove current_function_has_inlines.
14907 (gen_subprogram_die): Same.
14908 (gen_inlined_subroutine_die): Same.
14909
14910 2014-10-07 Ilya Tocar <ilya.tocar@intel.com>
14911
14912 * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
14913 type.
14914 (_addcarry_u64): Ditto.
14915 (_addcarryx_u64): Ditto.
14916
14917 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
14918
14919 * cgraph.h (cgraph_node::get_fun): Declare.
14920 * cgraph.c (cgraph_node::get_fun): New method.
14921 * ipa-inline.c (can_inline_edge_p): Use it.
14922
14923 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
14924
14925 * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
14926 and -ftrapping-math.
14927 * lto-wrapper.c (merge_and_complain): Likewise.
14928 (run_gcc): Likewise.
14929
14930 2014-10-06 Rong Xu <xur@google.com>
14931
14932 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
14933 * tree-profile.c: (params.h): New include.
14934 (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
14935 and __gcov_indirect_call_topn_counters for
14936 indirect_call_topn_profile.
14937 (gimple_init_edge_profiler): New decls for
14938 __gcov_indirect_call_topn_profiler.
14939 (gimple_gen_ic_profiler): Generate the correct profiler call.
14940 (gimple_gen_ic_func_profiler): Fix format.
14941 * value-prof.c (params.h): New include.
14942 (dump_histogram_value): Hanlde indirect_call_topn counters.
14943 (stream_in_histogram_value): Ditto.
14944 (gimple_indirect_call_to_profile): Use indirect_call_topn
14945 profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
14946 (gimple_find_values_to_profile): Hanlde indirect_call_topn
14947 counters.
14948 * value-prof.h (enum hist_type): Histrogram type for
14949 indirect_call_topn counters.
14950 * profile.c (instrument_values): Instrument
14951 indirect_call_topn counters.
14952
14953 2014-10-06 Rong Xu <xur@google.com>
14954
14955 * Makefile.in: Fix dependence.
14956 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
14957 indirect call topn profiler.
14958 * gcov-io.h: Ditto.
14959
14960 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
14961
14962 * calls.c (expand_call): Do not use the target as the return slot if
14963 it is not sufficiently aligned.
14964
14965 2014-10-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14966
14967 * config/rs6000/rs6000.c (analyze_swaps commentary): Add
14968 discussion of permutes and why we don't handle them.
14969
14970 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
14971
14972 * config/sparc/predicates.md (int_register_operand): Delete.
14973
14974 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
14975
14976 * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
14977
14978 2014-10-06 Jakub Jelinek <jakub@redhat.com>
14979
14980 * ubsan.h (ubsan_get_source_location): New prototype.
14981 * ubsan.c (ubsan_source_location_type): New variable.
14982 Function renamed to ...
14983 (ubsan_get_source_location_type): ... this. Cache
14984 return value in ubsan_source_location_type variable.
14985 (ubsan_source_location, ubsan_create_data): Use
14986 ubsan_get_source_location_type instead of
14987 ubsan_source_location_type.
14988 * asan.c (asan_protect_global): Don't protect globals
14989 with ubsan_get_source_location_type () type.
14990 (asan_add_global): Provide global decl location info
14991 if possible.
14992
14993 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
14994
14995 * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
14996 sanity check.
14997
14998 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
14999
15000 * ipa-polymorphic-call.c (possible_placement_new): Fix condition
15001 on size.
15002 (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
15003 into vptr pointer.
15004 (ipa_polymorphic_call_context::dump): Fix formating.
15005 (walk_ssa_copies): Add logic avoiding loops; update uses.
15006 * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
15007
15008 2014-10-02 Mark Wielaard <mjw@redhat.com>
15009
15010 PR debug/63239
15011 * dwarf2out.c (gen_subprogram_die): When a member function is
15012 explicitly deleted then add a DW_AT_GNU_deleted attribute.
15013 * langhooks.h (struct lang_hooks_for_decls): Add
15014 function_decl_deleted_p langhook.
15015 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
15016 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
15017
15018 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
15019
15020 * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
15021 NULL pointer checks.
15022 (ipa_polymorphic_call_context::get_dynamic_type): Return true
15023 if type doesn't change.
15024 * cgraph.h (cgraph_indirect_call_info): New flag.
15025 * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
15026 (cgraph_node::dump): Dump it.
15027 * ipa-prop.c (ipa_analyze_call_uses): Ignore return valud
15028 of context.get_dynamic_type.
15029 (ipa_make_edge_direct_to_target): Do not speculate
15030 edge that is already speuclative.
15031 (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
15032 speculate to __builtin_unreachable
15033 (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
15034 vptr_changed.
15035 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
15036
15037 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
15038
15039 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
15040 get_dynamic_type; drop TODO.
15041 * ipa-polymorphic-call.c
15042 (ipa_polymorphic_call_context::get_dynamic_type): Be ready
15043 for otr_type to be unknown.
15044
15045 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
15046
15047 * common/config/score/score-common.c: Remove.
15048 * config.gcc: Remove support for score-*.
15049 * config/score/constraints.md: Remove.
15050 * config/score/elf.h: Remove.
15051 * config/score/predicates.md: Remove.
15052 * config/score/score-conv.h: Remove.
15053 * config/score/score-generic.md: Remove.
15054 * config/score/score-modes.def: Remove.
15055 * config/score/score-protos.h: Remove.
15056 * config/score/score.c: Remove.
15057 * config/score/score.h: Remove.
15058 * config/score/score.md: Remove.
15059 * config/score/score.opt: Remove.
15060 * doc/md.texi: Don't document score-*.
15061
15062 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
15063
15064 PR pch/63429
15065 * genconditions.c: Directly include ggc.h before rtl.h.
15066
15067 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
15068
15069 * ipa-polymorphic-call.c
15070 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
15071 code determining speculative type.
15072 (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
15073
15074 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15075
15076 * altivec.md (altivec_lvsl): New define_expand.
15077 (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
15078 (altivec_lvsr): New define_expand.
15079 (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
15080 * rs6000.c (rs6000_expand_builtin): Change to use
15081 altivec_lvs[lr]_direct; remove commented-out code.
15082
15083 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15084
15085 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15086 Issue a warning message when vec_lvsl or vec_lvsr is used with a
15087 little endian target.
15088
15089 2014-10-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
15090
15091 * tree-pretty-print.c (dump_location): Make it extern. Dump also
15092 the column.
15093 * tree-pretty-print.h (dump_location): Declare.
15094 * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
15095 (pp_gimple_stmt_1): Likewise.
15096 (dump_implicit_edges): Likewise.
15097 * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
15098 LOCATION_LINE.
15099
15100
15101 2014-10-03 David Malcolm <dmalcolm@redhat.com>
15102
15103 * gcc.c (driver::global_initializations): Remove "const" so
15104 that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
15105 and decoded_options_count.
15106
15107 2014-10-03 Maciej W. Rozycki <macro@codesourcery.com>
15108
15109 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
15110 macro.
15111 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
15112 TARGET_E500_DOUBLE case here.
15113
15114 2014-10-03 Marc Glisse <marc.glisse@inria.fr>
15115
15116 PR c++/54427
15117 PR c++/57198
15118 PR c++/58845
15119 * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
15120
15121 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
15122
15123 * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
15124 * lto-cgraph.c (lto_output_edge, input_edge): Stream
15125 in_polymorphic_cdtor
15126 * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
15127 (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
15128 * cgraphclones.c (cgraph_edge::clone): Likewise.
15129 * ipa-prop.c (update_jump_functions_after_inlining,
15130 try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
15131 to possible_dynamic_type_change.
15132 (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
15133 (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
15134 IN_POLY_CDOTR argument.
15135
15136 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
15137 for BASE and OUTER_TYPE being NULL.
15138 (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
15139 in_poly_cdtor parameter.
15140
15141 2014-10-03 Jakub Jelinek <jakub@redhat.com>
15142
15143 * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
15144 (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
15145 TARGET_AVX512F.
15146 (expand_vec_perm_1): Likewise.
15147
15148 2014-10-03 Jakub Jelinek <jakub@redhat.com>
15149 Uros Bizjak <ubizjak@gmail.com>
15150
15151 PR tree-optimization/61403
15152 * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
15153 error in comment. Also optimize 256-bit vectors for AVX2
15154 or AVX (floating vectors only), provided the first permutation
15155 can be performed in one insn.
15156
15157 2014-10-03 David Malcolm <dmalcolm@redhat.com>
15158
15159 * gcc.c (class driver): New class.
15160 (main): Reimplement in terms of driver::main, moving most of the
15161 locals to be locals within individual methods of class driver.
15162 The remaining locals "explicit_link_files", "decoded_options" and
15163 "decoded_options_count" are used by multiple driver:: methods, and
15164 so become member data. Doing so isolates the argc/argv reads and
15165 writes. Replace "goto out" with a special exit code from
15166 new method driver::prepare_infiles. Split out the old
15167 implementation of main into the following...
15168 (driver::main): New function, corresponding to the old "main"
15169 implementation.
15170 (driver::set_progname): New function, taken from the old
15171 "main" implementation.
15172 (driver::expand_at_files): Likewise.
15173 (driver::decode_argv): Likewise.
15174 (driver::global_initializations): Likewise.
15175 (driver::build_multilib_strings): Likewise.
15176 (driver::set_up_specs): Likewise.
15177 (driver::putenv_COLLECT_GCC): Likewise.
15178 (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
15179 (driver::handle_unrecognized_options): Likewise.
15180 (driver::maybe_print_and_exit): Likewise.
15181 (driver::prepare_infiles): Likewise.
15182 (driver::do_spec_on_infiles): Likewise.
15183 (driver::maybe_run_linker): Likewise.
15184 (driver::final_actions): Likewise.
15185 (driver::get_exit_code): Likewise.
15186
15187 2014-10-03 Yury Gribov <y.gribov@samsung.com>
15188
15189 * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
15190 don't emit empty ctors.
15191
15192 2014-10-03 Eric Botcazou <ebotcazou@adacore.com>
15193
15194 * convert.c (convert_to_integer): Do not introduce useless conversions
15195 between integral types.
15196
15197 2014-10-03 David Sherwood <david.sherwood@arm.com>
15198
15199 * ira-int.h (ira_allocno): Mark hard_regno as signed.
15200
15201 2014-10-03 Ilya Enkovich <ilya.enkovich@intel.com>
15202
15203 * lra-constraints.c (inherit_in_ebb): Handle calls with
15204 multiple return values.
15205 * caller-save.c (save_call_clobbered_regs): Likewise.
15206
15207 2014-10-03 Jakub Jelinek <jakub@redhat.com>
15208
15209 * tree-vect-data-refs.c (vect_permute_load_chain,
15210 vect_shift_permute_load_chain): Fix a typo in temporary var names,
15211 suffle3 to shuffle3.
15212
15213 PR libgomp/61200
15214 * omp-low.c (taskreg_contexts): New variable.
15215 (scan_omp_parallel): Push newly created context into taskreg_contexts
15216 vector and move record layout code to finish_taskreg_scan.
15217 (scan_omp_task): Likewise.
15218 (finish_taskreg_scan): New function.
15219 (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
15220 vector elements and release it.
15221
15222 PR target/62128
15223 * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
15224 of palignr arguments can't be used due to min 0 or max - min
15225 too high, try also op0, op1 order of palignr arguments.
15226
15227 2014-10-02 Jan Hubicka <hubicka@ucw.cz>
15228
15229 * cgraph.h (ipa_polymorphic_call_context):
15230 Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
15231 private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
15232 * ipa-polymorphic-call.c
15233 (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
15234 past end of dynamic types.
15235 (ipa_polymorphic_call_context::stream_out,
15236 speculative_outer_type): Stream dynamic flag.
15237 (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
15238 (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
15239 Clear DYNAMIC.
15240 (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
15241 set it.
15242 (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
15243 * ipa-prop.c (update_jump_functions_after_inlining,
15244 try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
15245
15246 2014-10-02 Teresa Johnson <tejohnson@google.com>
15247
15248 * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
15249 up when synthesizing counts to avoid rounding errors.
15250
15251 2014-10-02 Teresa Johnson <tejohnson@google.com>
15252
15253 PR middle-end/63422
15254 * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
15255 asserts to handle incoming insanities.
15256
15257 2014-10-02 Martin Jambor <mjambor@suse.cz>
15258
15259 PR tree-optimization/63375
15260 * tree-sra.c (build_access_from_expr_1): Disqualify volatile
15261 references.
15262
15263 2014-10-02 Olivier Hainque <hainque@adacore.com>
15264
15265 * Makefile.in (CROSS): Define, to @CROSS.
15266
15267 2014-10-02 Jakub Jelinek <jakub@redhat.com>
15268
15269 PR target/62128
15270 * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
15271 if it expands to a single insn only.
15272 (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument. If true,
15273 fail unless in_order is true. Add forward declaration.
15274 (expand_vec_perm_vperm2f128): Fix up comment about which permutation
15275 is useful for one_operand_p.
15276 (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
15277
15278 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
15279
15280 * cgraphclones.c (build_function_type_skip_args): Do not make new
15281 type variant of old.
15282
15283 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
15284
15285 * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
15286 when speculation is added.
15287 (ipa_edge_args): Add polymorphic_call_contexts.
15288 (ipa_get_ith_polymorhic_call_context): New accesor.
15289 (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
15290 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
15291 (ipa_compute_jump_functions_for_edge): Compute contexts.
15292 (update_jump_functions_after_inlining): Update contexts.
15293 (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
15294 update dumping; add speculative edge creation.
15295 (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
15296 context updating.
15297 (update_indirect_edges_after_inlining): Pass down context.
15298 (ipa_edge_duplication_hook): Duplicate contexts.
15299 (ipa_write_node_info): Stream out contexts.
15300 (ipa_read_node_info): Stream in contexts.
15301 * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
15302 types.
15303 (try_speculative_devirtualization): New function.
15304 * ipa-utils.h (try_speculative_devirtualization): Declare.
15305
15306 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
15307
15308 * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
15309 dumping during WPA.
15310
15311 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
15312
15313 * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
15314 type variants.
15315
15316 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
15317
15318 * ipa-polymorphic-call.c
15319 (ipa_polymorphic_call_context::restrict_to_inner_class):
15320 Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
15321 use speculation_consistent_p to do so; Add CONSDER_BASES
15322 and CONSIDER_PLACEMENT_NEW parameters.
15323 (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
15324 short circuit obvious cases.
15325 (ipa_polymorphic_call_context::dump): Improve formatting.
15326 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
15327 combine_speculation_with to record speculations; Do not ICE when
15328 object is located in pointer type decl; do not ICE for methods
15329 of UNION_TYPE; do not record nonpolymorphic types.
15330 (ipa_polymorphic_call_context::speculation_consistent_p): New method.
15331 (ipa_polymorphic_call_context::combine_speculation_with): New method.
15332 (ipa_polymorphic_call_context::combine_with): New method.
15333 (ipa_polymorphic_call_context::make_speculative): Move here; use
15334 combine speculation.
15335 * cgraph.h (ipa_polymorphic_call_context): Update
15336 restrict_to_inner_class prototype; add offset_by, make_speculative,
15337 combine_with, useless_p, combine_speculation_with and
15338 speculation_consistent_p methods.
15339 (ipa_polymorphic_call_context::offset_by): New method.
15340 (ipa_polymorphic_call_context::useless_p): New method.
15341
15342 2014-10-01 Segher Boessenkool <segher@kernel.crashing.org>
15343
15344 PR rtl-optimization/62151
15345 * combine.c (can_combine_p): Allow the destination register of INSN
15346 to be clobbered in I3.
15347 (subst): Do not substitute into clobbers of registers.
15348
15349 2014-10-01 Jakub Jelinek <jakub@redhat.com>
15350
15351 PR debug/63342
15352 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
15353 offset, TARGET_MEM_REF and SSA_NAME.
15354
15355 * config/i386/i386.c (expand_vec_perm_palignr): Handle
15356 256-bit vectors for TARGET_AVX2.
15357
15358 * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
15359 dfirst permutation.
15360
15361 PR target/63428
15362 * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
15363 argument to avx2_permv2ti.
15364
15365 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15366
15367 * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
15368
15369 2014-09-30 Uros Bizjak <ubizjak@gmail.com>
15370
15371 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
15372 (fmod<mode>3): Ditto.
15373 (fpremxf4_i387): Ditto.
15374 (reminderxf3): Ditto.
15375 (reminder<mode>3): Ditto.
15376 (fprem1xf4_i387): Ditto.
15377
15378 2014-09-30 Teresa Johnson <tejohnson@google.com>
15379
15380 * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
15381 duplicate_blocks bitmap.
15382 (remove_ctrl_stmt_and_useless_edges): Ditto.
15383 (create_block_for_threading): Ditto.
15384 (compute_path_counts): New function.
15385 (update_profile): Ditto.
15386 (recompute_probabilities): Ditto.
15387 (update_joiner_offpath_counts): Ditto.
15388 (freqs_to_counts_path): Ditto.
15389 (clear_counts_path): Ditto.
15390 (ssa_fix_duplicate_block_edges): Update profile info.
15391 (ssa_create_duplicates): Pass new parameter.
15392 (ssa_redirect_edges): Remove old profile update.
15393 (thread_block_1): New duplicate_blocks bitmap,
15394 remove old profile update.
15395 (thread_single_edge): Pass new parameter.
15396
15397 2014-09-30 Ilya Tocar <ilya.tocar@intel.com>
15398
15399 PR middle-end/62120
15400 * varasm.c (decode_reg_name_and_count): Check availability for
15401 registers from ADDITIONAL_REGISTER_NAMES.
15402
15403 2014-09-30 David Malcolm <dmalcolm@redhat.com>
15404
15405 PR plugins/63410
15406 * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
15407 (PLUGIN_HEADERS): Add pass-instances.def.
15408
15409 2014-09-30 James Greenhalgh <james.greenhalgh@arm.com>
15410
15411 * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
15412 iterator.
15413 * config/aarch64/aarch64-simd.md
15414 (aarch64_sqdmull_laneq<mode>): Expand iterator.
15415 * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
15416 (vqdmulls_lane_s32): Fix return type.
15417 (vqdmulls_laneq_s32): New.
15418
15419 2014-09-30 Jakub Jelinek <jakub@redhat.com>
15420
15421 PR inline-asm/63282
15422 * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
15423 or invert_jump_1 if jump isn't any_condjump_p.
15424
15425 2014-09-30 Terry Guo <terry.guo@arm.com>
15426
15427 * config/arm/arm-cores.def (cortex-m7): New core name.
15428 * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
15429 (fpv5-d16): Ditto.
15430 * config/arm/arm-tables.opt: Regenerated.
15431 * config/arm/arm-tune.md: Regenerated.
15432 * config/arm/arm.h (TARGET_VFP5): New macro.
15433 * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
15434 * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
15435 smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
15436 * doc/invoke.texi: Document new cpu and fpu names.
15437
15438 2014-09-30 Jiong Wang <jiong.wang@arm.com>
15439
15440 * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
15441 before sinking insn.
15442
15443 2014-09-30 David Sherwood <david.sherwood@arm.com>
15444
15445 * ira-int.h (ira_allocno): Add "wmode" field.
15446 * ira-build.c (create_insn_allocnos): Add new "parent" function
15447 parameter.
15448 * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
15449 that cannot be accessed in wmode.
15450
15451 2014-09-30 Markus Trippelsdorf <markus@trippelsdorf.de>
15452
15453 * data-streamer.c (bp_unpack_var_len_int): Avoid signed
15454 integer overflow.
15455
15456 2014-09-29 Andi Kleen <ak@linux.intel.com>
15457
15458 * opts.c (print_filtered_help): Print --param min/max/default
15459 with -Q.
15460
15461 2014-09-29 Kaz Kojima <kkojima@gcc.gnu.org>
15462
15463 * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
15464
15465 2014-09-29 Eric Botcazou <ebotcazou@adacore.com>
15466
15467 * tree-vrp.c (get_single_symbol): New function.
15468 (build_symbolic_expr): Likewise.
15469 (symbolic_range_based_on_p): New predicate.
15470 (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
15471 for PLUS and MINUS. Do not drop symbolic ranges at the end.
15472 (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
15473 operand is symbolic and based on the other operand.
15474
15475 2014-09-29 Chen Gang <gang.chen.5i5j@gmail.com>
15476
15477 * config/microblaze/microblaze.md (call_internal1): Use VOID
15478 instead of SI to fix "((void (*)(void)) 0)()" issue
15479
15480 2014-09-29 Nick Clifton <nickc@redhat.com>
15481
15482 * config/msp430/msp430.c (msp430_expand_prologue): Return a
15483 CLOBBER rtx for naked functions.
15484 (msp430_expand_epilogue): Likewise.
15485 (msp430_use_f5_series_hwmult): Cache result.
15486 (use_32bit_hwmult): Cache result.
15487 (msp430_no_hwmult): New function.
15488 (msp430_output_labelref): Use it.
15489
15490 2014-09-29 Jakub Jelinek <jakub@redhat.com>
15491
15492 PR middle-end/63247
15493 * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
15494 of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
15495 use the alignment of avar rather than ovar.
15496
15497 2014-09-28 John David Anglin <danglin@gcc.gnu.org>
15498
15499 * config/pa/pa.c (pa_output_function_epilogue): Only update
15500 last_address when a nonnote insn is found.
15501
15502 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
15503
15504 PR ipa/60665
15505 * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
15506
15507 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
15508
15509 PR ipa/62121
15510 * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
15511 fix pasto in checking array size.
15512
15513 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
15514
15515 PR middle-end/35545
15516 * passes.def (pass_tracer): Move before last dominator pass.
15517
15518 2014-09-26 Thomas Schwinge <thomas@codesourcery.com>
15519
15520 * gcc.c (try_generate_repro): Remove argument "prog". Change all
15521 users.
15522 (run_attempt): Handle errors of "pex_run" invocation.
15523
15524 2014-09-26 Christophe Lyon <christophe.lyon@linaro.org>
15525
15526 * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
15527 (CC1_SPEC): Define.
15528 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
15529 (TARGET_ASAN_SHADOW_OFFSET): Define.
15530
15531 2014-09-26 Martin Liska <mliska@suse.cz>
15532
15533 * cgraph.c (cgraph_node::release_body): New argument keep_arguments
15534 introduced.
15535 * cgraph.h: Likewise.
15536 * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
15537 * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
15538 * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
15539 * tree-ssa-alias.h: Likewise.
15540
15541 2014-09-26 Jakub Jelinek <jakub@redhat.com>
15542 Max Ostapenko <m.ostapenko@partner.samsung.com>
15543
15544 * common.opt: New option.
15545 * doc/invoke.texi: Describe new option.
15546 * gcc.c (execute): Don't free first string early, but at the end
15547 of the function. Call retry_ice if compiler exited with
15548 ICE_EXIT_CODE.
15549 (main): Factor out common code.
15550 (print_configuration): New function.
15551 (files_equal_p): Likewise.
15552 (check_repro): Likewise.
15553 (run_attempt): Likewise.
15554 (do_report_bug): Likewise.
15555 (append_text): Likewise.
15556 (try_generate_repro): Likewise
15557
15558 2014-09-25 Andi Kleen <ak@linux.intel.com>
15559
15560 * config/i386/i386.c (x86_print_call_or_nop): New function.
15561 (x86_function_profiler): Support -mnop-mcount and
15562 -mrecord-mcount.
15563 * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
15564 * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
15565
15566 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
15567
15568 * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
15569 * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
15570 * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
15571 Remove.
15572
15573 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
15574
15575 * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
15576 type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
15577 types_odr_comparable): Declare.
15578 (polymorphic_type_binfo_p): Move here from ipa-devirt.c
15579 * ipa-polymorphic-call.c: New file.
15580 (contains_polymorphic_type_p, possible_placement_new,
15581 ipa_polymorphic_call_context::restrict_to_inner_class,
15582 contains_type_p, decl_maybe_in_construction_p,
15583 ipa_polymorphic_call_context::stream_out,
15584 ipa_polymorphic_call_context::debug,
15585 ipa_polymorphic_call_context::stream_in,
15586 ipa_polymorphic_call_context::set_by_decl,
15587 ipa_polymorphic_call_context::set_by_invariant,
15588 walk_ssa_copies,
15589 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15590 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
15591 extr_type_from_vtbl_ptr_store, record_known_type
15592 check_stmt_for_type_change,
15593 ipa_polymorphic_call_context::get_dynamic_type): Move here from
15594 ipa-devirt.c
15595 * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
15596 and streamer-hooks.h
15597 (contains_polymorphic_type_p, possible_placement_new,
15598 ipa_polymorphic_call_context::restrict_to_inner_class,
15599 contains_type_p, decl_maybe_in_construction_p,
15600 ipa_polymorphic_call_context::stream_out,
15601 ipa_polymorphic_call_context::debug,
15602 ipa_polymorphic_call_context::stream_in,
15603 ipa_polymorphic_call_context::set_by_decl,
15604 ipa_polymorphic_call_context::set_by_invariant,
15605 walk_ssa_copies,
15606 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15607 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
15608 extr_type_from_vtbl_ptr_store, record_known_type
15609 check_stmt_for_type_change,
15610 ipa_polymorphic_call_context::get_dynamic_type): Move to
15611 ipa-polymorphic-call.c
15612 (type_all_derivations_known_p, types_odr_comparable,
15613 types_must_be_same_for_odr): Export.
15614 (type_known_to_have_no_deriavations_p): New function.
15615 * Makefile.in: Add ipa-polymorphic-call.c
15616
15617 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
15618
15619 * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
15620 for better storage.
15621 (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
15622 (possible_polymorphic_call_targets): Instead of computing both
15623 speculative and non-speculative answers, do just one at a time.
15624 Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
15625 (dump_targets): Break out from ...
15626 (dump_possible_polymorphic_call_targets): ... here; dump both speculative
15627 and non-speculative lists.
15628 (ipa_devirt): Update for new possible_polymorphic_call_targets API.
15629 * ipa-utils.h (possible_polymorphic_call_targets): Update.
15630
15631 2014-09-25 Uros Bizjak <ubizjak@gmail.com>
15632
15633 PR rtl-optimization/63348
15634 * emit-rtl.c (try_split): Do not emit extra barrier.
15635
15636 2014-09-25 James Greenhalgh <james.greenhalgh@arm.com>
15637
15638 * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
15639 * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
15640 new predicates.
15641 (aarch64_<sur>shll2_n<mode>): Likewise.
15642 (aarch64_<sur>shr_n<mode>): Likewise.
15643 (aarch64_<sur>sra_n<mode>: Likewise.
15644 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
15645 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
15646 * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
15647 * config/aarch64/iterators.md (ve_mode): New.
15648 (offsetlr): Remap to infix text for use in new predicates.
15649 * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
15650 (aarch64_simd_shift_imm_hi): Likewise.
15651 (aarch64_simd_shift_imm_si): Likewise.
15652 (aarch64_simd_shift_imm_di): Likewise.
15653 (aarch64_simd_shift_imm_offset_qi): Likewise.
15654 (aarch64_simd_shift_imm_offset_hi): Likewise.
15655 (aarch64_simd_shift_imm_offset_si): Likewise.
15656 (aarch64_simd_shift_imm_offset_di): Likewise.
15657 (aarch64_simd_shift_imm_bitsize_qi): Likewise.
15658 (aarch64_simd_shift_imm_bitsize_hi): Likewise.
15659 (aarch64_simd_shift_imm_bitsize_si): Likewise.
15660 (aarch64_simd_shift_imm_bitsize_di): Likewise.
15661
15662 2014-09-25 Jiong Wang <jiong.wang@arm.com>
15663
15664 * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
15665 new created BB as the intersection of live-in from "old_dest" and
15666 live-out from "bb".
15667
15668 2014-09-25 Felix Yang <felix.yang@huawei.com>
15669
15670 * lra.c (lra_set_insn_recog_data): Fix typo in comment.
15671 * genautomata.c (merge_states): Ditto.
15672
15673 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
15674
15675 PR target/62218
15676 * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
15677 in instruction sequence.
15678
15679 2014-09-25 Nick Clifton <nickc@redhat.com>
15680
15681 PR target/62218
15682 * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
15683 in instruction sequence.
15684
15685 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15686
15687 PR target/63335
15688 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
15689 Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
15690
15691 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
15692 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15693 Anna Tikhonova <anna.tikhonova@intel.com>
15694 Ilya Tocar <ilya.tocar@intel.com>
15695 Andrey Turetskiy <andrey.turetskiy@intel.com>
15696 Ilya Verbin <ilya.verbin@intel.com>
15697 Kirill Yukhin <kirill.yukhin@intel.com>
15698 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15699
15700 * config/i386/sse.md
15701 (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
15702 (define_expand "<avx2_avx512>_perm<mode>"): ... this.
15703 (define_expand "avx512f_perm<mode>_mask"): Rename to ...
15704 (define_expand "<avx512>_perm<mode>_mask"): ... this.
15705 Use VI8F_256_512 mode iterator.
15706 (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
15707 (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
15708
15709 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
15710 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15711 Anna Tikhonova <anna.tikhonova@intel.com>
15712 Ilya Tocar <ilya.tocar@intel.com>
15713 Andrey Turetskiy <andrey.turetskiy@intel.com>
15714 Ilya Verbin <ilya.verbin@intel.com>
15715 Kirill Yukhin <kirill.yukhin@intel.com>
15716 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15717
15718 * config/i386/sse.md
15719 (define_insn "avx_movshdup256<mask_name>"): Add masking.
15720 (define_insn "sse3_movshdup<mask_name>"): Ditto.
15721 (define_insn "avx_movsldup256<mask_name>"): Ditto.
15722 (define_insn "sse3_movsldup<mask_name>"): Ditto.
15723 (define_insn "vec_dupv2df<mask_name>"): Ditto.
15724 (define_insn "*vec_concatv2df"): Add EVEX version.
15725
15726 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
15727 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15728 Anna Tikhonova <anna.tikhonova@intel.com>
15729 Ilya Tocar <ilya.tocar@intel.com>
15730 Andrey Turetskiy <andrey.turetskiy@intel.com>
15731 Ilya Verbin <ilya.verbin@intel.com>
15732 Kirill Yukhin <kirill.yukhin@intel.com>
15733 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15734
15735 * config/i386/sse.md
15736 (define_insn "vec_set<mode>_0"): Add EVEX version.
15737
15738 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
15739 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15740 Anna Tikhonova <anna.tikhonova@intel.com>
15741 Ilya Tocar <ilya.tocar@intel.com>
15742 Andrey Turetskiy <andrey.turetskiy@intel.com>
15743 Ilya Verbin <ilya.verbin@intel.com>
15744 Kirill Yukhin <kirill.yukhin@intel.com>
15745 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15746
15747 * config/i386/sse.md
15748 (define_insn
15749 "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
15750 New.
15751 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
15752 (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
15753 (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
15754 "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
15755 (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
15756 (define_expand "sse2_cvtpd2ps_mask): New.
15757 (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
15758 (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
15759
15760 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
15761 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15762 Anna Tikhonova <anna.tikhonova@intel.com>
15763 Ilya Tocar <ilya.tocar@intel.com>
15764 Andrey Turetskiy <andrey.turetskiy@intel.com>
15765 Ilya Verbin <ilya.verbin@intel.com>
15766 Kirill Yukhin <kirill.yukhin@intel.com>
15767 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15768
15769 * config/i386/i386.c
15770 (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
15771 (ufix_notruncv8dfv8si2_mask_round): ... this.
15772 * config/i386/sse.md
15773 (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
15774 (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
15775 (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
15776 (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
15777 (define_expand "sse2_cvtpd2dq"): Delete.
15778 (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
15779 make 2nd operand const0 vector.
15780 (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
15781 Delete.
15782 (define_mode_attr pd2udqsuff): New.
15783 (define_insn
15784 "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
15785 (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
15786 (define_insn "*avx_cvttpd2dq256_2"): Delete.
15787 (define_expand "sse2_cvttpd2dq"): Ditto.
15788 (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
15789 make 2nd operand const0 vector.
15790
15791 2014-09-25 Jakub Jelinek <jakub@redhat.com>
15792
15793 PR tree-optimization/63341
15794 * tree-vectorizer.h (vect_create_data_ref_ptr,
15795 vect_create_addr_base_for_vector_ref): Add another tree argument
15796 defaulting to NULL_TREE.
15797 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
15798 argument, pass it down to vect_create_addr_base_for_vector_ref.
15799 (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
15800 add that to base_offset too if non-NULL.
15801 * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
15802 for dr_explicit_realign_optimized set it to vector byte size
15803 - 1 instead of setting offset, pass byte_offset down to
15804 vect_create_data_ref_ptr.
15805
15806 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
15807
15808 * ipa-devirt.c (possible_polymorphic_call_targets): Remove
15809 forgotten debug output; canonicalize querries more wtih LTO.
15810
15811 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
15812
15813 * cgraph.h (class ipa_polymorphic_call_context): Move here from
15814 ipa-utils.h; add stream_int and stream_out methods.
15815 (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
15816 OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
15817 MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
15818 add CONTEXT.
15819 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15820 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15821 ipa_polymorphic_call_context::clear_speculation,
15822 ipa_polymorphic_call_context::clear_outer_type): Move here from
15823 ipa-utils.h
15824 * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
15825 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15826 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15827 ipa_polymorphic_call_context::clear_speculation,
15828 ipa_polymorphic_call_context::clear_outer_type): Likewise.
15829 * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
15830 streamer-hooks.h
15831 (ipa_polymorphic_call_context::stream_out): New method.
15832 (ipa_polymorphic_call_context::stream_in): New method.
15833 (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
15834 * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
15835 OUTER_TYPE.
15836 (ipa_analyze_call_uses): Simplify.
15837 (update_indirect_edges_after_inlining): Do not care about outer_type.
15838 (ipa_write_indirect_edge_info): Update.
15839 (ipa_write_indirect_edge_info): Likewise.
15840 * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
15841 (dump_edge_flags): Break out from ...
15842 (cgraph_node::dump): ... here; dump indirect edges.
15843
15844 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
15845
15846 * ipa-utils.h (polymorphic_call_context): Add
15847 metdhos dump, debug and clear_outer_type.
15848 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
15849 (ipa_polymorphic_call_context::clear_outer_type): New method.
15850 * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
15851 * ipa-devirt.c (types_odr_comparable): New function.
15852 (types_must_be_same_for_odr): New function.
15853 (odr_subtypes_equivalent_p): Simplify.
15854 (possible_placement_new): Break out from ...
15855 (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
15856 be more cuatious about returning false in cases the context may be
15857 valid in derived type or via placement new.
15858 (contains_type_p): Clear maybe_derived_type
15859 (ipa_polymorphic_call_context::dump): New method.
15860 (ipa_polymorphic_call_context::debug): New method.
15861 (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
15862 (ipa_polymorphic_call_context::set_by_invariant): Simplify.
15863 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
15864 (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
15865 to suceed on all valid cases; remove confused sanity check.
15866 (dump_possible_polymorphic_call_targets): Simplify.
15867
15868 2014-09-24 Aldy Hernandez <aldyh@redhat.com>
15869
15870 * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
15871 lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
15872 tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
15873 varpool.c: Rename all instances of DECL_ABSTRACT to
15874 DECL_ABSTRACT_P.
15875
15876 2014-09-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15877
15878 * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
15879 special handling for stores whose SET_SRC is an UNSPEC (such as
15880 UNSPEC_STVE).
15881
15882 2014-09-24 Jiong Wang <jiong.wang@arm.com>
15883
15884 * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
15885 !REG_P (src) to release more instruction sink opportunities.
15886
15887 2014-09-24 Wilco Dijkstra <wilco.dijkstra@arm.com>
15888
15889 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
15890 move costs for 128-bit types.
15891
15892 2014-09-24 Martin Jambor <mjambor@suse.cz>
15893
15894 * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
15895 when duplicating a PASS_THROUGH jump function when creating a
15896 speculative edge.
15897
15898 2014-09-24 Marek Polacek <polacek@redhat.com>
15899
15900 PR c/61405
15901 PR c/53874
15902 * asan.c (maybe_instrument_call): Add default case.
15903 * ipa-pure-const.c (special_builtin_state): Likewise.
15904 * predict.c (expr_expected_value_1): Likewise.
15905 * lto-streamer-out.c (write_symbol): Initialize variable.
15906
15907 2014-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15908
15909 * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
15910 the lane.
15911 (vmuld_laneq_f64): Likewise.
15912 (vmuls_lane_f32): Likewise.
15913 (vmuls_laneq_f32): Likewise.
15914
15915 2014-09-24 Kirill Yukhin <kirill.yukhin@intel.com>
15916
15917 PR bootstrap/63235
15918 * varpool.c (varpool_node::add): Pass decl attributes
15919 to lookup_attribute.
15920
15921 2014-09-24 Jakub Jelinek <jakub@redhat.com>
15922
15923 PR sanitizer/63316
15924 * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
15925
15926 2014-09-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
15927
15928 PR tree-optimization/63266
15929 * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
15930 marker for unknown byte value.
15931 (MARKER_MASK): New macro.
15932 (MARKER_BYTE_UNKNOWN): New macro.
15933 (HEAD_MARKER): New macro.
15934 (do_shift_rotate): Mark bytes with unknown values due to sign
15935 extension when doing an arithmetic right shift. Replace hardcoded
15936 mask for marker by new MARKER_MASK macro.
15937 (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
15938 numbers accordingly.
15939
15940 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
15941 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15942 Anna Tikhonova <anna.tikhonova@intel.com>
15943 Ilya Tocar <ilya.tocar@intel.com>
15944 Andrey Turetskiy <andrey.turetskiy@intel.com>
15945 Ilya Verbin <ilya.verbin@intel.com>
15946 Kirill Yukhin <kirill.yukhin@intel.com>
15947 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15948
15949 * config/i386/sse.md
15950 (define_insn
15951 "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
15952 Add masking.
15953 (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
15954 (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
15955
15956 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
15957 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15958 Anna Tikhonova <anna.tikhonova@intel.com>
15959 Ilya Tocar <ilya.tocar@intel.com>
15960 Andrey Turetskiy <andrey.turetskiy@intel.com>
15961 Ilya Verbin <ilya.verbin@intel.com>
15962 Kirill Yukhin <kirill.yukhin@intel.com>
15963 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15964
15965 * config/i386/sse.md
15966 (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
15967 (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
15968 (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
15969 (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
15970 (define_expand "avx512vl_pshuflw_mask"): New.
15971 (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
15972 (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
15973 (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
15974 (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
15975 (define_expand "avx512vl_pshufhw_mask"): New.
15976 (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
15977
15978 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
15979 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15980 Anna Tikhonova <anna.tikhonova@intel.com>
15981 Ilya Tocar <ilya.tocar@intel.com>
15982 Andrey Turetskiy <andrey.turetskiy@intel.com>
15983 Ilya Verbin <ilya.verbin@intel.com>
15984 Kirill Yukhin <kirill.yukhin@intel.com>
15985 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15986
15987 * config/i386/i386.c
15988 (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
15989 CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
15990 CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
15991 CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
15992 CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
15993 * config/i386/sse.md
15994 (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
15995 (define_insn
15996 "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
15997 (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
15998 (define_insn
15999 "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
16000 (define_expand "avx512vl_pshufdv3_mask"): Ditto.
16001 (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
16002 (define_expand "avx512vl_pshufd_mask"): New.
16003 (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
16004
16005 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
16006 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16007 Anna Tikhonova <anna.tikhonova@intel.com>
16008 Ilya Tocar <ilya.tocar@intel.com>
16009 Andrey Turetskiy <andrey.turetskiy@intel.com>
16010 Ilya Verbin <ilya.verbin@intel.com>
16011 Kirill Yukhin <kirill.yukhin@intel.com>
16012 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16013
16014 * config/i386/i386.c
16015 (CODE_FOR_avx2_extracti128): Rename to ...
16016 (CODE_FOR_avx_vextractf128v4di): this.
16017 (CODE_FOR_avx2_inserti128): Rename to ...
16018 (CODE_FOR_avx_vinsertf128v4di): this.
16019 (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
16020 CODE_FOR_avx_vextractf128v4di.
16021 (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
16022 CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
16023 CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
16024 CODE_FOR_avx512vl_vinsertv8si.
16025 * config/i386/sse.md
16026 (define_expand
16027 "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
16028 AVX512_VEC mode iterator.
16029 (define_insn
16030 "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
16031 Ditto.
16032 (define_expand
16033 "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
16034 AVX512_VEC_2 mode iterator.
16035 (define_insn "vec_set_lo_<mode><mask_name>"): New.
16036 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16037 (define_expand "avx512vl_vinsert<mode>"): Ditto.
16038 (define_insn "avx2_vec_set_lo_v4di"): Delete.
16039 (define_insn "avx2_vec_set_hi_v4di"): Ditto.
16040 (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
16041 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16042 (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
16043 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16044 (define_expand "avx2_extracti128"): Delete.
16045 (define_expand "avx2_inserti128"): Ditto.
16046
16047 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
16048 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16049 Anna Tikhonova <anna.tikhonova@intel.com>
16050 Ilya Tocar <ilya.tocar@intel.com>
16051 Andrey Turetskiy <andrey.turetskiy@intel.com>
16052 Ilya Verbin <ilya.verbin@intel.com>
16053 Kirill Yukhin <kirill.yukhin@intel.com>
16054 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16055
16056 * config/i386/sse.md
16057 (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
16058 (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
16059 (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
16060 (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
16061 (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
16062 (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
16063 (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
16064 (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
16065 (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
16066 (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
16067 (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
16068 (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
16069 (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
16070
16071 2014-09-24 Zhenqiang Chen <zhenqiang.chen@arm.com>
16072
16073 PR rtl-optimization/63210
16074 * ira-color.c (assign_hard_reg): Ignore conflict cost if the
16075 HARD_REGNO is not available for CONFLICT_A.
16076
16077 2014-09-23 Andi Kleen <ak@linux.intel.com>
16078
16079 * cgraph.h (symtab_node): Add no_reorder attribute.
16080 (symbol_table::output_asm_statements): Remove.
16081 * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
16082 (cgraph_node::create_version_clone): Dito.
16083 (symbol_table::output_asm_statements): Remove.
16084 * trans-mem.c (ipa_tm_create_version_alias): Dito.
16085 * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
16086 (output_in_order): Add no_reorder flag. Only handle no_reorder
16087 nodes when set.
16088 (symbol_table::compile): Add separate pass for no_reorder nodes.
16089 (process_common_attributes): Set no_reorder flag in symtab node.
16090 Add node argument.
16091 (process_function_and_variable_attributes): Pass symtab nodes to
16092 process_common_attributes.
16093 * doc/extend.texi (no_reorder): Document no_reorder attribute.
16094 * lto-cgraph.c (lto_output_node): Serialize no_reorder.
16095 (lto_output_varpool_node): Dito.
16096 (input_overwrite_node): Dito.
16097 (input_varpool_node): Dito.
16098 * varpool.c (varpool_node::add): Set no_reorder attribute.
16099 (symbol_table::remove_unreferenced_decls): Handle no_reorder.
16100 (symbol_table::output_variables): Dito.
16101 * symtab.c (symtab_node::dump_base): Print no_reorder.
16102
16103 2014-09-23 Jiong Wang <jiong.wang@arm.com>
16104
16105 * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
16106 be INVALID_REGNUM.
16107
16108 2014-09-23 Thomas Schwinge <thomas@codesourcery.com>
16109
16110 * configure: Regenerate.
16111
16112 2014-09-23 Alan Lawrence <alan.lawrence@arm.com>
16113
16114 * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
16115 when result_mode == shift_mode.
16116
16117 2014-09-23 Kostya Serebryany <kcc@google.com>
16118
16119 Update to match the changed asan API.
16120 * asan.c (asan_global_struct): Update the __asan_global definition
16121 to match the new API.
16122 (asan_add_global): Ditto.
16123 * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
16124 to __asan_init_v4.
16125
16126 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
16127
16128 * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
16129 refine the constraints used on 32/64-bit floating point moves.
16130 (f32_av): Likewise.
16131 (f64_vsx): Likewise.
16132 (f64_dm): Likewise.
16133 (f64_av): Likewise.
16134 (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
16135 (BOOL_REGS_OP1): Likewise.
16136 (BOOL_REGS_OP2): Likewise.
16137 (BOOL_REGS_UNARY): Likewise.
16138 (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
16139 32/64-bit floating point moves. Do not use wa, instead use ww/ws
16140 for moves involving VSX registers. Do not use constraints that
16141 target VSX registers for decimal types.
16142 (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
16143 (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
16144
16145 2014-09-23 Jan Hubicka <hubicka@ucw.cz>
16146
16147 * tree.h (int_bit_position): Turn into inline function;
16148 implement using wide int.
16149 * tree.c (int_bit_position): Remove.
16150
16151 2014-09-23 Richard Sandiford <richard.sandiford@arm.com>
16152
16153 PR bootstrap/63280
16154 * target-globals.c (target_globals::~target_globals): Fix location
16155 of ira_int destruction.
16156
16157 2014-09-23 Renlin Li <renlin.li@arm.com>
16158
16159 * config/aarch64/aarch64.md (return): New.
16160 (simple_return): Likewise.
16161 * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
16162 * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
16163
16164 2014-09-23 Wilco Dijkstra <wdijkstr@arm.com>
16165
16166 * common/config/aarch64/aarch64-common.c:
16167 (default_options aarch_option_optimization_table):
16168 Default to -fsched-pressure.
16169
16170 2014-09-23 Ilya Enkovich <ilya.enkovich@intel.com>
16171
16172 * cfgcleanup.c (try_optimize_cfg): Do not remove label
16173 with LABEL_PRESERVE_P flag set.
16174
16175 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
16176 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16177 Anna Tikhonova <anna.tikhonova@intel.com>
16178 Ilya Tocar <ilya.tocar@intel.com>
16179 Andrey Turetskiy <andrey.turetskiy@intel.com>
16180 Ilya Verbin <ilya.verbin@intel.com>
16181 Kirill Yukhin <kirill.yukhin@intel.com>
16182 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16183
16184 * config/i386/sse.md
16185 (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
16186 (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
16187 (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
16188 (define_insn "sse2_shufpd_v2df_mask"): New.
16189
16190 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
16191 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16192 Anna Tikhonova <anna.tikhonova@intel.com>
16193 Ilya Tocar <ilya.tocar@intel.com>
16194 Andrey Turetskiy <andrey.turetskiy@intel.com>
16195 Ilya Verbin <ilya.verbin@intel.com>
16196 Kirill Yukhin <kirill.yukhin@intel.com>
16197 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16198
16199 * config/i386/sse.md
16200 (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
16201 (define_insn "avx_shufps256_1<mask_name>"): Ditto.
16202 (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
16203 (define_insn "sse_shufps_v4sf_mask"): New.
16204
16205 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
16206 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16207 Anna Tikhonova <anna.tikhonova@intel.com>
16208 Ilya Tocar <ilya.tocar@intel.com>
16209 Andrey Turetskiy <andrey.turetskiy@intel.com>
16210 Ilya Verbin <ilya.verbin@intel.com>
16211 Kirill Yukhin <kirill.yukhin@intel.com>
16212 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16213
16214 * config/i386/sse.md
16215 (define_insn "avx_unpckhps256<mask_name>"): Add masking.
16216 (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
16217 (define_insn "avx_unpcklps256<mask_name>"): Ditto.
16218 (define_insn "unpcklps128_mask"): New.
16219
16220 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
16221 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16222 Anna Tikhonova <anna.tikhonova@intel.com>
16223 Ilya Tocar <ilya.tocar@intel.com>
16224 Andrey Turetskiy <andrey.turetskiy@intel.com>
16225 Ilya Verbin <ilya.verbin@intel.com>
16226 Kirill Yukhin <kirill.yukhin@intel.com>
16227 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16228
16229 * config/i386/sse.md
16230 (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
16231 (define_insn "avx512vl_unpckhpd128_mask"): New.
16232 (define_expand "avx_movddup256<mask_name>"): Add masking.
16233 (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
16234 (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
16235 (define_insn "avx512vl_unpcklpd128_mask"): New.
16236
16237 2014-09-22 Joseph Myers <joseph@codesourcery.com>
16238
16239 * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16240 * doc/tm.texi: Regenerate.
16241 * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
16242 * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16243 * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16244 Remove.
16245 * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16246 * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16247 * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16248 * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16249 * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16250 Remove.
16251 * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16252 * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16253 * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16254 * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16255 * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16256 * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16257 * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16258 * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16259 * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16260 * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16261 * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16262 Remove.
16263
16264 2014-09-22 Jan Hubicka <hubicka@ucw.cz>
16265
16266 * tree-ssa-ccp.c (prop_value_d): Rename to ...
16267 (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
16268 * ipa-prop.c (struct type_change_info): Rename to ...
16269 (prop_type_change_info): ... this; update uses.
16270 * ggc-page.c (globals): Rename to ...
16271 (static struct ggc_globals): ... this; update uses.
16272 * tree-ssa-loop-im.c (mem_ref): Rename to ...
16273 (im_mem_ref): ... this; update uses.
16274 * ggc-common.c (loc_descriptor): Rename to ...
16275 (ggc_loc_descriptor): ... this; update uses.
16276 * lra-eliminations.c (elim_table): Rename to ...
16277 (lra_elim_table): ... this; update uses.
16278 * bitmap.c (output_info): Rename to ...
16279 (bitmap_output_info): ... this; update uses.
16280 * gcse.c (expr): Rename to ...
16281 (gcse_expr) ... this; update uses.
16282 (occr): Rename to ...
16283 (gcse_occr): .. this; update uses.
16284 * tree-ssa-copy.c (prop_value_d): Rename to ...
16285 (prop_value_t): ... this.
16286 * predict.c (block_info_def): Rename to ...
16287 (block_info): ... this; update uses.
16288 (edge_info_def): Rename to ...
16289 (edge_info): ... this; update uses.
16290 * profile.c (bb_info): Rename to ...
16291 (bb_profile_info): ... this; update uses.
16292 * alloc-pool.c (output_info): Rename to ...
16293 (pool_output_info): ... this; update uses.
16294 * ipa-cp.c (topo_info): Rename to ..
16295 (ipa_topo_info): ... this; update uses.
16296 * tree-nrv.c (nrv_data): Rename to ...
16297 (nrv_data_t): ... this; update uses.
16298 * ipa-split.c (bb_info): Rename to ...
16299 (split_bb_info): ... this one.
16300 * profile.h (edge_info): Rename to ...
16301 (edge_profile_info): ... this one; update uses.
16302 * dse.c (bb_info): Rename to ...
16303 (dse_bb_info): ... this one; update uses.
16304 * cprop.c (occr): Rename to ...
16305 (cprop_occr): ... this one; update uses.
16306 (expr): Rename to ...
16307 (cprop_expr): ... this one; update uses.
16308
16309 2014-09-22 Jason Merrill <jason@redhat.com>
16310
16311 * Makefile.in (check-parallel-%): Add @.
16312
16313 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
16314
16315 * config/aarch64/geniterators.sh: New.
16316 * config/aarch64/iterators.md (VDQF_DF): New.
16317 * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
16318 * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
16319
16320 2014-09-22 Peter A. Bigot <pab@pabigot.com>
16321
16322 * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
16323 -lnosys when -msim absent.
16324
16325 2014-09-22 Alan Lawrence <alan.lawrence@arm.com>
16326
16327 * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
16328
16329 2014-09-22 Richard Biener <rguenther@suse.de>
16330
16331 * gimplify.c (gimplify_init_constructor): Do not leave
16332 non-GIMPLE vector constructors around.
16333 * tree-cfg.c (verify_gimple_assign_single): Verify that
16334 CONSTRUCTORs have gimple elements.
16335
16336 2014-09-22 Jakub Jelinek <jakub@redhat.com>
16337
16338 PR debug/63328
16339 * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
16340 insert a debug source bind stmt setting DEBUG_EXPR_DECL
16341 instead of a normal gimple assignment stmt.
16342
16343 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
16344
16345 * config/bfin/bfin.md: Fix use of constraints in define_split.
16346
16347 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
16348
16349 * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
16350 GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
16351
16352 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
16353
16354 * hard-reg-set.h: Include hash-table.h.
16355 (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
16356 field.
16357 * target-globals.c (target_globals::~target_globals): Call
16358 hard_regs->finalize.
16359 * rtl.h (subreg_shape): New structure.
16360 (shape_of_subreg): New function.
16361 (simplifiable_subregs): Declare.
16362 * reginfo.c (simplifiable_subreg): New structure.
16363 (simplifiable_subregs_hasher): Likewise.
16364 (simplifiable_subregs): New function.
16365 (invalid_mode_changes): Delete.
16366 (alid_mode_changes, valid_mode_changes_obstack): New variables.
16367 (record_subregs_of_mode): Remove subregs_of_mode parameter.
16368 Record valid mode changes in valid_mode_changes.
16369 (find_subregs_of_mode): Remove subregs_of_mode parameter.
16370 Update calls to record_subregs_of_mode.
16371 (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
16372 handling. Initialize new variables. Update call to
16373 find_subregs_of_mode.
16374 (invalid_mode_change_p): Check new variables instead of
16375 invalid_mode_changes.
16376 (finish_subregs_of_mode): Finalize new variables instead of
16377 invalid_mode_changes.
16378 (target_hard_regs::finalize): New function.
16379 * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
16380 even when CLASS_CANNOT_CHANGE_MODE is undefined.
16381
16382 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
16383
16384 * combine.c (subst): Use simplify_subreg_regno rather than
16385 REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
16386
16387 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
16388
16389 * rtl.h (subreg_info): Expand commentary
16390 * rtlanal.c (subreg_get_info): Likewise.
16391
16392 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
16393
16394 * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
16395 (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
16396 (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
16397
16398 2014-09-22 Zhenqiang Chen <zhenqiang.chen@arm.com>
16399
16400 * config/arm/arm.c: #include "tm-constrs.h"
16401 (thumb1_size_rtx_costs): Adjust rtx costs.
16402
16403 2014-09-22 Hans-Peter Nilsson <hp@axis.com>
16404
16405 * configure.ac (target_header_dir): Move block defining
16406 this to before the block setting inhibit_libc.
16407 (inhibit_libc): When considering $with_headers, just
16408 check it it's explicitly "no". If not, also check if
16409 $target_header_dir/stdio.h is present. If not, set
16410 inhibit_libc=true.
16411 * configure: Regenerate.
16412
16413 2014-09-21 Patrick Oppenlander <pattyo.lists@gmail.com>
16414
16415 * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
16416
16417 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16418
16419 * config/rs6000/rs6000.md (div<mode>3): Fix comment. Use a different
16420 insn for divides by integer powers of two.
16421 (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
16422 (mod<mode>3): Fix formatting.
16423 (three anonymous define_insn and two define_split): Delete.
16424
16425 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16426
16427 * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
16428 *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
16429 (floatdisf2_internal2): Ditto.
16430 (ashrdi3_no_power): Ditto. Fix formatting.
16431
16432 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16433
16434 * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
16435 popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
16436 Tidy.
16437
16438 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16439
16440 * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
16441 constant, use addsi3 directly.
16442 (three anonymous define_insn, two define_split): Delete.
16443 (sub<mode>3): Move. Do not allow constant second operand.
16444 Generate different insn for constant first operand.
16445 (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
16446 (subf<mode>3_imm): New.
16447 (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
16448 (*plus_ltu<mode>): Only handle registers.
16449 (*plus_ltu<mode>_1): New. Handle integer third operand.
16450 (*plus_gtu<mode>): Only handle registers.
16451 (*plus_gtu<mode>_1): New. Handle integer third operand.
16452
16453 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16454
16455 * config/rs6000/rs6000.md (iorxor): New code_iterator.
16456 (iorxor): New code_attr.
16457 (IORXOR): New code_attr.
16458 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
16459 (ior<mode>3, xor<mode>3): Delete.
16460 (<iorxor><mode>3): New.
16461 (splitter for "big" integer ior, xor): New.
16462 (*bool<mode>3): Move. Also handle AND.
16463 (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
16464 (splitter for "big" integer ior, xor): Delete.
16465
16466 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16467
16468 * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
16469 (two anonymous define_insn and two define_split): Delete.
16470 (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
16471
16472 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16473
16474 * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
16475 (two anonymous define_insn and two define_split): Delete.
16476 (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
16477
16478 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16479
16480 * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
16481
16482 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
16483
16484 * config/rs6000/predicates.md (ca_operand): Allow subregs.
16485 (input_operand): Do not allow ca_operand.
16486 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
16487 carry bit, allow SImode and Pmode.
16488 (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
16489
16490 2014-09-21 Uros Bizjak <ubizjak@gmail.com>
16491
16492 * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
16493 clobbered registers using clobber_reg. Remove UNSPEC decoration.
16494 * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
16495 (*call_rex64_ms_sysv): Remove.
16496 (*call_value_rex64_ms_sysv): Ditto.
16497 * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
16498
16499 2014-09-20 Joern Rennecke <joern.rennecke@embecosm.com>
16500
16501 * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
16502 operand 3 to "CnL".
16503
16504 2014-09-20 Andreas Schwab <schwab@suse.de>
16505
16506 * config/ia64/ia64.md: Remove constraints from define_split
16507 patterns.
16508
16509 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
16510
16511 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
16512 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
16513 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
16514 (get_dynamic_type): Remove.
16515 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
16516 (clear_speculation): Bring to ipa-deivrt.h
16517 (get_class_context): Rename to ...
16518 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
16519 (contains_type_p): Update.
16520 (get_dynamic_type): Rename to ...
16521 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
16522 (possible_polymorphic_call_targets): UPdate.
16523 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
16524 * ipa-prop.c (ipa_analyze_call_uses): Update.
16525
16526 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
16527
16528 * ipa-visibility.c (varpool_node::externally_visible_p): Do not
16529 privatize dynamic TLS variables.
16530
16531 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
16532
16533 * diagnostic.c (warning_n): New function.
16534 * diagnostic-core.h (warning_n): Declare.
16535 * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
16536 output dynamic counts when available.
16537
16538 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
16539
16540 PR tree-optimization/63255
16541 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
16542 issue in setting body_removed flag.
16543
16544 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
16545
16546 PR c++/61825
16547 * c-family/c-common.c (handle_alias_ifunc_attribute): Check
16548 that visibility change is possible
16549 (handle_weakref_attribute): Likewise.
16550 * cgraph.h (symtab_node): Add method get_create and
16551 field refuse_visibility_changes.
16552 (symtab_node::get_create): New method.
16553 * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
16554 * varasm.c (mark_weak): Verify that visibility change is
16555 possible.
16556
16557 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
16558
16559 * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
16560 for base_reg_operand to be common between LO_SUM and PLUS.
16561 (fusion_gpr_mem_combo): New predicate to match a fused address
16562 that combines the addis and memory offset address.
16563
16564 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
16565 calling signature.
16566 (emit_fusion_gpr_load): Likewise.
16567
16568 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
16569 signature to pass each argument separately, rather than
16570 using an operands array. Rewrite the insns found by peephole2 to
16571 be a single insn, rather than hoping the insns will still be
16572 together when the peephole pass is done. Drop being called via a
16573 normal peephole.
16574 (emit_fusion_gpr_load): Change calling signature to be called from
16575 the fusion_gpr_load_<mode> insns with a combined memory address
16576 instead of the peephole pass passing the addis and offset
16577 separately.
16578
16579 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
16580 fusion.
16581 (power8 fusion peephole): Drop support for doing power8 via a
16582 normal peephole that was created by the peephole2 pass.
16583 (power8 fusion peephole2): Create a new insn with the fused
16584 address, so that the fused operation is kept together after
16585 register allocation is done.
16586 (fusion_gpr_load_<mode>): Likewise.
16587
16588 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
16589
16590 PR lto/63286
16591 * tree.c (need_assembler_name_p): Do not mangle variadic types.
16592
16593 2014-09-19 Segher Boessenkool <segher@kernel.crashing.org>
16594
16595 * recog.c (scratch_operand): Do not simply allow all hard registers:
16596 only allow those that are allocatable.
16597
16598 2014-09-19 Felix Yang <felix.yang@huawei.com>
16599
16600 * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
16601 comments and fix spacing to conform to coding style.
16602
16603 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
16604
16605 * genrecog.c (validate_pattern): Allow empty constraints in
16606 a match_scratch.
16607
16608 2014-09-19 Aldy Hernandez <aldyh@redhat.com>
16609
16610 * dwarf2out.c (decl_ultimate_origin): Update comment.
16611 * tree.c (block_ultimate_origin): Same.
16612
16613 2014-09-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16614
16615 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
16616 Update GCC version name to GCC 5.
16617 (rs6000_function_arg_boundary): Likewise.
16618 (rs6000_function_arg): Likewise.
16619
16620 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
16621
16622 * config/sh/sh.md: Fix use of constraints in define_split.
16623
16624 2014-09-19 Markus Trippelsdorf <markus@trippelsdorf.de>
16625
16626 PR ipa/61998
16627 * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
16628
16629 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
16630
16631 * doc/md.texi (Modifiers): Consistently use "read/write"
16632 nomenclature rather than "input/output".
16633 * genrecog.c (constraints_supported_in_insn_p): New.
16634 (validate_pattern): If needed, also check constraints on
16635 MATCH_SCRATCH operands.
16636 * genoutput.c (validate_insn_alternatives): Catch earlyclobber
16637 operands with no '=' or '+' modifier.
16638
16639 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
16640
16641 * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
16642 scratch register as written.
16643
16644 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16645
16646 * config/s390/s390.c (s390_emit_epilogue): Remove bogus
16647 assignment.
16648
16649 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16650
16651 * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
16652 expanders.
16653
16654 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16655
16656 PR target/62662
16657 * config/s390/s390.c (s390_emit_epilogue): When doing the return
16658 address load optimization force s390_optimize_prologue to leave it
16659 that way. Only do the optimization if we already decided to push
16660 r14 into a stack slot.
16661
16662 2014-09-19 Marat Zakirov <m.zakirov@samsung.com>
16663
16664 * asan.c (build_check_stmt): Alignment arg was added.
16665 (asan_expand_check_ifn): Optimization for alignment >= 8.
16666
16667 2014-09-19 Olivier Hainque <hainque@adacore.com>
16668
16669 * config/i386/vxworksae.h: Remove obsolete definitions.
16670 (STACK_CHECK_PROTECT): Define.
16671 * config/i386/vx-common.h: Remove. Merge contents within
16672 config/i386/vxworks.h.
16673 * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
16674 i386/vx-common.h.
16675
16676 2014-09-19 Olivier Hainque <hainque@adacore.com>
16677
16678 * config.gcc (powerpc-wrs-vxworksmils): New configuration.
16679 * config/rs6000/t-vxworksmils: New file.
16680 * config/rs6000/vxworksmils.h: New file.
16681
16682 2014-09-19 Olivier Hainque <hainque@adacore.com>
16683
16684 * varasm.c (default_section_type_flags): Flag .persistent.bss
16685 sections as SECTION_BSS.
16686
16687 2014-09-19 Nick Clifton <nickc@redhat.com>
16688
16689 * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
16690 pop'ed registers so that DCE does not eliminate them.
16691
16692 2014-09-18 Jan Hubicka <hubicka@ucw.cz>
16693
16694 PR lto/63298
16695 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
16696
16697 2014-09-18 Joseph Myers <joseph@codesourcery.com>
16698
16699 * system.h (LIBGCC2_TF_CEXT): Poison.
16700 * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
16701 * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
16702 * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
16703 * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
16704 * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
16705 * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
16706 * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
16707 * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
16708 * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
16709
16710 2014-09-19 Kito Cheng <kito@0xlab.org>
16711
16712 * except.h: Fix header guard.
16713 * addresses.h: Add missing header guard.
16714 * cfghooks.h: Likewise.
16715 * collect-utils.h: Likewise.
16716 * collect2-aix.h: Likewise.
16717 * conditions.h: Likewise.
16718 * cselib.h: Likewise.
16719 * dwarf2asm.h: Likewise.
16720 * graphds.h: Likewise.
16721 * graphite-scop-detection.h: Likewise.
16722 * gsyms.h: Likewise.
16723 * hw-doloop.h: Likewise.
16724 * incpath.h: Likewise.
16725 * ipa-inline.h: Likewise.
16726 * ipa-ref.h: Likewise.
16727 * ira-int.h: Likewise.
16728 * ira.h: Likewise.
16729 * lra-int.h: Likewise.
16730 * lra.h: Likewise.
16731 * lto-section-names.h: Likewise.
16732 * read-md.h: Likewise.
16733 * reload.h: Likewise.
16734 * rtl-error.h: Likewise.
16735 * sdbout.h: Likewise.
16736 * targhooks.h: Likewise.
16737 * tree-affine.h: Likewise.
16738 * xcoff.h: Likewise.
16739 * xcoffout.h: Likewise.
16740
16741 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
16742
16743 PR debug/63285
16744 * haifa-sched.c (schedule_block): Advance cycle at the end of BB
16745 if advance != 0.
16746
16747 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
16748
16749 PR target/61360
16750 * lra.c (lra): Call recog_init.
16751
16752 2014-09-18 Jakub Jelinek <jakub@redhat.com>
16753
16754 PR c++/62017
16755 * asan.c (transform_statements): Don't instrument clobber statements.
16756
16757 2014-09-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16758
16759 * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
16760 to neon_load1_1reg<q>.
16761
16762 2014-09-17 Jakub Jelinek <jakub@redhat.com>
16763
16764 PR debug/63284
16765 * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
16766 if there are only debug stmts after the noreturn call, instead
16767 remove the debug stmts.
16768
16769 2014-09-17 Jan Hubicka <hubicka@ucw.cz>
16770
16771 * ipa-devirt.c (type_pair, default_hashset_traits): New types.
16772 (odr_types_equivalent_p): Use pair hash.
16773 (odr_subtypes_equivalent_p): Likewise, do structural compare
16774 on ODR types that may be mismatched.
16775 (warn_odr): Support warning when only one field is given.
16776 (odr_types_equivalent_p): Strenghten comparsions made;
16777 support VOIDtype.
16778 (add_type_duplicate): Update VISITED hash set.
16779
16780 2014-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
16781
16782 * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
16783 Enable selection of 'posix' or no thread model.
16784
16785 2014-09-17 Andrew Stubbs <ams@codesourcery.com>
16786
16787 * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
16788 when architecture is older than ARMv7.
16789
16790 2014-09-16 John David Anglin <danglin@gcc.gnu.org>
16791
16792 PR target/61853
16793 * config/pa/pa.c (pa_function_value): Directly handle aggregates
16794 that fit exactly in a word or double word.
16795
16796 2014-09-16 Ilya Tocar <ilya.tocar@intel.com>
16797
16798 * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
16799 zmm/k regs support.
16800
16801 2014-09-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
16802 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
16803 Anna Tikhonova <anna.tikhonova@intel.com>
16804 Ilya Tocar <ilya.tocar@intel.com>
16805 Andrey Turetskiy <andrey.turetskiy@intel.com>
16806 Ilya Verbin <ilya.verbin@intel.com>
16807 Kirill Yukhin <kirill.yukhin@intel.com>
16808 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16809
16810 * config/i386/i386.c
16811 (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
16812 * config/i386/sse.md
16813 (define_mode_iterator VI48F_256): New.
16814 (define_mode_attr extract_type): Ditto.
16815 (define_mode_attr extract_suf): Ditto.
16816 (define_mode_iterator AVX512_VEC): Ditto.
16817 (define_expand
16818 "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
16819 AVX512_VEC.
16820 (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
16821 (define_insn
16822 "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
16823 Ditto.
16824 (define_mode_attr extract_type_2): Ditto.
16825 (define_mode_attr extract_suf_2): Ditto.
16826 (define_mode_iterator AVX512_VEC_2): Ditto.
16827 (define_expand
16828 "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
16829 AVX512_VEC_2 mode iterator.
16830 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
16831 (define_expand "avx512vl_vextractf128<mode>"): Ditto.
16832 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
16833 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
16834 (define_split for V16FI mode): Ditto.
16835 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
16836 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
16837 (define_split for VI8F_256 mode): Ditto.
16838 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
16839 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
16840 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
16841 (define_split for VI4F_256 mode): Ditto.
16842 (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
16843 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
16844 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
16845 (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
16846 (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
16847 (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
16848 (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
16849 Update `type' attribute, remove explicit `memory' attribute calculation.
16850
16851 2014-09-16 Kito Cheng <kito@0xlab.org>
16852
16853 * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
16854 ira_spilled_reg_stack_slots_num if using lra.
16855 (do_reload): Remove release ira_spilled_reg_stack_slots part.
16856 * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
16857 make sure not using lra.
16858 (ira_reuse_stack_slot): Likewise.
16859 (ira_mark_new_stack_slot): Likewise.
16860
16861 2014-09-15 Andi Kleen <ak@linux.intel.com>
16862
16863 * function.c (allocate_struct_function): Force
16864 DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
16865 profiling is disabled.
16866
16867 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
16868
16869 * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
16870 config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
16871 emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
16872 reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
16873 macro with statically checked member functions.
16874 * rtl.h (rtx_insn::deleted): New method.
16875 (rtx_insn::set_deleted): Likewise.
16876 (rtx_insn::set_undeleted): Likewise.
16877 (INSN_DELETED_P): Remove.
16878
16879 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
16880
16881 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
16882 result of emit_jump_insn_before to a new variable.
16883 * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
16884 (mark_jump_label_1): Likewise.
16885 (mark_jump_label_asm): Likewise.
16886 * reload1.c (gen_reload): Change type of tem to rtx_insn *.
16887 * rtl.h (mark_jump_label): Adjust.
16888
16889 2014-09-15 Jakub Jelinek <jakub@redhat.com>
16890
16891 * Makefile.in (dg_target_exps): Remove.
16892 (check_gcc_parallelize): Change to just an upper bound number.
16893 (check-%-subtargets): Always print the non-parallelized goals.
16894 (check_p_vars, check_p_comma, check_p_subwork): Remove.
16895 (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
16896 check_p_numbers3, check_p_numbers4, check_p_numbers5,
16897 check_p_numbers6): New variables.
16898 (check_p_numbers): Set to sequence from 1 to 9999.
16899 (check_p_subdirs): Set to sequence from 1 to minimum of
16900 $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
16901 or 128.
16902 (check-%, check-parallel-%): Rewritten so that for parallelized
16903 testing each job runs all the *.exp files, with
16904 GCC_RUNTEST_PARALLELIZE_DIR set in environment.
16905
16906 2014-09-15 David Malcolm <dmalcolm@redhat.com>
16907
16908 * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
16909 rtx to rtx_insn *.
16910 (arc_sets_cc_p): Likewise.
16911 * config/arc/arc.c (arc_print_operand): Use methods of
16912 "final_sequence" for clarity, and to enable strengthening of
16913 locals "jump" and "delay" from rtx to rtx_insn *.
16914 (arc_adjust_insn_length): Strengthen local "prev" from rtx to
16915 rtx_insn *; use method of rtx_sequence for typesafety.
16916 (arc_get_insn_variants): Use insn method of rtx_sequence for
16917 typesafety.
16918 (arc_pad_return): Likewise.
16919 (arc_attr_type): Strengthen param from rtx to rtx_insn *.
16920 (arc_sets_cc_p): Likewise. Also, convert a GET_CODE check to a
16921 dyn_cast to rtx_sequence *, using insn method for typesafety.
16922 * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
16923 rtx_sequence * and use insn method when invoking get_attr_length.
16924 * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
16925 to rtx_insn *. Replace a GET_CODE check with a dyn_cast to
16926 rtx_sequence *, introducing a local "seq", using its insn method
16927 from typesafety and clarity.
16928 (add_sched_insns_for_speculation): Strengthen local "next" from
16929 rtx to rtx_insn *.
16930 * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
16931 (predicate_insn): Likewise.
16932 * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
16933 second param.
16934 * config/cris/cris.c (cris_notice_update_cc): Likewise.
16935 * config/epiphany/epiphany-protos.h
16936 (extern void epiphany_insert_mode_switch_use): Likewise for param
16937 "insn".
16938 (get_attr_sched_use_fpu): Likewise for param.
16939 * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
16940 Likewise for param "insn".
16941 * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
16942 param "insn" of "target_insert_mode_switch_use" callback.
16943 * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
16944 (frv_issues_to_branch_unit_p): Likewise.
16945 (frv_pack_insn_p): Likewise.
16946 (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
16947 const rtx * (i.e. mutable rtx_def * const *) to
16948 rtx_insn * const *.
16949 * config/i386/i386-protos.h (standard_sse_constant_opcode):
16950 Strengthen first param from rtx to rtx_insn *.
16951 (output_fix_trunc): Likewise.
16952 * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
16953 (output_fix_trunc): Likewise.
16954 (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
16955 local "insn".
16956 (min_insn_size): Likewise for param "insn".
16957 (get_mem_group): Likewise.
16958 (is_cmp): Likewise.
16959 (get_insn_path): Likewise.
16960 (get_insn_group): Likewise.
16961 (count_num_restricted): Likewise.
16962 (fits_dispatch_window): Likewise.
16963 (add_insn_window): Likewise.
16964 (add_to_dispatch_window): Likewise.
16965 (debug_insn_dispatch_info_file): Likewise.
16966 * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
16967 first param.
16968 * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
16969 "cmp" and local "prev".
16970 (m32c_output_compare): Likewise for param "insn".
16971 * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
16972 a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
16973 (define_predicate "large_insn_p"): Likewise.
16974 * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
16975 param from rtx to rtx_insn *.
16976 (attr_op_mem m68k_sched_attr_op_mem): Likewise.
16977 * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
16978 (m68k_sched_attr_size): Likewise.
16979 (sched_get_opxy_mem_type): Likewise for param "insn".
16980 (m68k_sched_attr_op_mem): Likewise.
16981 (sched_mem_operand_p): Likewise.
16982 * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
16983 * config/mep/mep.c (mep_multi_slot): Likewise.
16984 * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
16985 first param.
16986 (mips_sync_loop_insns): Likewise.
16987 * config/mips/mips.c (mips_print_operand_punctuation): Use insn
16988 method of "final_sequence" for typesafety.
16989 (mips_process_sync_loop): Strengthen param "insn" from rtx to
16990 rtx_insn *.
16991 (mips_output_sync_loop): Likewise.
16992 (mips_sync_loop_insns): Likewise.
16993 (mips_74k_agen_init): Likewise.
16994 (mips_sched_init): Use NULL rather than NULL_RTX when working with
16995 insns.
16996 * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
16997 Strengthen param "insn" from rtx to rtx_insn *.
16998 * config/nds32/nds32.c (nds32_target_alignment): Likewise for
16999 local "insn".
17000 * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
17001 param.
17002 * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
17003 "insn". Use method of rtx_sequence for typesafety.
17004 (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
17005 rtx_insn *.
17006 (branch_needs_nop_p): Likewise.
17007 (use_skip_p): Likewise.
17008 (pa_insn_refs_are_delayed): Likewise.
17009 * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
17010 for locals "insn", "ninsn".
17011 * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
17012 "insn".
17013 (is_cracked_insn): Likewise.
17014 (is_branch_slot_insn): Likewise.
17015 (is_nonpipeline_insn): Likewise.
17016 (insn_terminates_group_p): Likewise.
17017 (insn_must_be_first_in_group): Likewise.
17018 (insn_must_be_last_in_group): Likewise.
17019 (force_new_group): Likewise for param "next_insn".
17020 * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
17021 "insn".
17022 (s390_sched_score): Likewise.
17023 * config/sh/sh-protos.h (output_branch): Likewise for param 2.
17024 (rtx sfunc_uses_reg): Likewise for sole param.
17025 * config/sh/sh.c (sh_print_operand): Use insn method of
17026 final_sequence for typesafety.
17027 (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
17028 Use insn method of final_sequence for typesafety.
17029 (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
17030 * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
17031 for param.
17032 (eligible_for_return_delay): Likewise.
17033 (eligible_for_sibcall_delay): Likewise.
17034 * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
17035 (eligible_for_return_delay): Likewise.
17036 (eligible_for_sibcall_delay): Likewise.
17037 * config/stormy16/stormy16-protos.h
17038 (xstormy16_output_cbranch_hi): Likewise for final param.
17039 (xstormy16_output_cbranch_si): Likewise.
17040 * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
17041 (xstormy16_output_cbranch_si): Likewise.
17042 * config/v850/v850-protos.h (notice_update_cc): Likewise.
17043 * config/v850/v850.c (notice_update_cc): Likewise.
17044
17045 * final.c (get_attr_length_1): Strengthen param "insn" and param
17046 of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
17047 (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
17048 (get_attr_min_length): Likewise.
17049 (shorten_branches): Likewise for signature of locals "length_fun"
17050 and "inner_length_fun". Introduce local rtx_sequence * "seqn"
17051 from a checked cast and use its methods for clarity and to enable
17052 strengthening local "inner_insn" from rtx to rtx_insn *.
17053 * genattr.c (gen_attr): When writing out the prototypes of the
17054 various generated "get_attr_" functions, strengthen the params of
17055 the non-const functions from rtx to rtx_insn *.
17056 Similarly, strengthen the params of insn_default_length,
17057 insn_min_length, insn_variable_length_p, insn_current_length.
17058 (main): Similarly, strengthen the param of num_delay_slots,
17059 internal_dfa_insn_code, insn_default_latency, bypass_p,
17060 insn_latency, min_issue_delay, print_reservation,
17061 insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
17062 "insn_default_latency" callbacks. Rename hook_int_rtx_unreachable
17063 to hook_int_rtx_insn_unreachable.
17064 * genattrtab.c (write_attr_get): When writing out the generated
17065 "get_attr_" functions, strengthen the param "insn" from rtx to
17066 rtx_insn *, eliminating a checked cast.
17067 (make_automaton_attrs): When writing out prototypes of
17068 "internal_dfa_insn_code_", "insn_default_latency_" functions
17069 and the "internal_dfa_insn_code" and "insn_default_latency"
17070 callbacks, strengthen their params from rtx to rtx_insn *
17071 * genautomata.c (output_internal_insn_code_evaluation): When
17072 writing out code, add a checked cast from rtx to rtx_insn * when
17073 invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
17074 (output_dfa_insn_code_func): Strengthen param of generated
17075 function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
17076 (output_trans_func): Likewise for generated function
17077 "state_transition".
17078 (output_internal_insn_latency_func): When writing out generated
17079 function "internal_insn_latency", rename params from "insn" and
17080 "insn2" to "insn_or_const0" and "insn2_or_const0". Reintroduce
17081 locals "insn" and "insn2" as rtx_insn * with checked casts once
17082 we've proven that we're not dealing with const0_rtx.
17083 (output_insn_latency_func): Strengthen param of generated
17084 function "insn_latency" from rtx to rtx_insn *.
17085 (output_print_reservation_func): Likewise for generated function
17086 "print_reservation".
17087 (output_insn_has_dfa_reservation_p): Likewise for generated
17088 function "insn_has_dfa_reservation_p".
17089 * hooks.c (hook_int_rtx_unreachable): Rename to...
17090 (hook_int_rtx_insn_unreachable): ...this, and strengthen param
17091 from rtx to rtx_insn *.
17092 * hooks.h (hook_int_rtx_unreachable): Likewise.
17093 (extern int hook_int_rtx_insn_unreachable): Likewise.
17094 * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
17095 (get_attr_min_length): Likewise.
17096 * recog.c (get_enabled_alternatives): Likewise.
17097 * recog.h (alternative_mask get_enabled_alternatives): Likewise.
17098 * reorg.c (find_end_label): Introduce local rtx "pat" and
17099 strengthen local "insn" from rtx to rtx_insn *.
17100 (redundant_insn): Use insn method of "seq" rather than element for
17101 typesafety; strengthen local "control" from rtx to rtx_insn *.
17102 * resource.c (mark_referenced_resources): Add checked cast to
17103 rtx_insn * within INSN/JUMP_INSN case.
17104 (mark_set_resources): Likewise.
17105 * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
17106 rtx to rtx_insn *.
17107
17108 2014-09-15 David Malcolm <dmalcolm@redhat.com>
17109
17110 * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
17111 param "label" from rtx to rtx_insn *.
17112 * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
17113 and local "op".
17114 * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
17115 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
17116 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
17117 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
17118 * final.c (default_label_align_after_barrier_max_skip): Strengthen
17119 param from rtx to rtx_insn *.
17120 (default_loop_align_max_skip): Likewise.
17121 (default_label_align_max_skip): Likewise.
17122 (default_jump_align_max_skip): Likewise.
17123 * target.def (label_align_after_barrier_max_skip): Likewise.
17124 (loop_align_max_skip): Likewise.
17125 (label_align_max_skip): Likewise.
17126 (jump_align_max_skip): Likewise.
17127 * targhooks.h (default_label_align_after_barrier_max_skip):
17128 Likewise.
17129 (default_loop_align_max_skip): Likewise.
17130 (default_label_align_max_skip): Likewise.
17131 (default_jump_align_max_skip): Likewise.
17132
17133 2014-09-15 David Malcolm <dmalcolm@redhat.com>
17134
17135 * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
17136 from const_rtx to const rtx_insn *. Update union members from rtx
17137 to rtx_insn *.
17138 * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
17139 * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
17140 (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
17141 strengthen both params from const_rtx to const rtx_insn *.
17142 * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
17143 (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
17144 * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
17145 rtx_insn *.
17146 * target.def (can_follow_jump): Strengthen both params from
17147 const_rtx to const rtx_insn *, and update default implementation
17148 from hook_bool_const_rtx_const_rtx_true to
17149 hook_bool_const_rtx_insn_const_rtx_insn_true.
17150
17151 2014-09-15 David Malcolm <dmalcolm@redhat.com>
17152
17153 * sched-deps.c (deps_start_bb): Strengthen param "head" and local
17154 "insn" from rtx to rtx_insn *.
17155 * sched-int.h (deps_start_bb): Likewise for 2nd param.
17156
17157 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
17158 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17159 Anna Tikhonova <anna.tikhonova@intel.com>
17160 Ilya Tocar <ilya.tocar@intel.com>
17161 Andrey Turetskiy <andrey.turetskiy@intel.com>
17162 Ilya Verbin <ilya.verbin@intel.com>
17163 Kirill Yukhin <kirill.yukhin@intel.com>
17164 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17165
17166 * config/i386/sse.md
17167 (define_insn "vcvtph2ps<mask_name>"): Add masking.
17168 (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
17169 (define_insn "vcvtph2ps256<mask_name>"): Ditto.
17170 (define_expand "vcvtps2ph_mask"): New.
17171 (define_insn "*vcvtps2ph<mask_name>"): Add masking.
17172 (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
17173 (define_insn "vcvtps2ph256<mask_name>"): Ditto.
17174
17175 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
17176 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17177 Anna Tikhonova <anna.tikhonova@intel.com>
17178 Ilya Tocar <ilya.tocar@intel.com>
17179 Andrey Turetskiy <andrey.turetskiy@intel.com>
17180 Ilya Verbin <ilya.verbin@intel.com>
17181 Kirill Yukhin <kirill.yukhin@intel.com>
17182 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17183
17184 * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
17185 New.
17186 (define_mode_iterator VI24_AVX512BW_1): Ditto.
17187 (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
17188 (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
17189 (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
17190 also for TARGET_AVX512VL.
17191 (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
17192
17193 2014-09-15 Markus Trippelsdorf <markus@trippelsdorf.de>
17194
17195 * doc/install.texi (Options specification): add
17196 --disable-libsanitizer item.
17197
17198 2014-09-14 James Clarke <jrtc27@jrtc27.com>
17199 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
17200
17201 PR target/61407
17202 * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
17203 and above.
17204 * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
17205 kernel version check to avoid incrementing it after every major OS X
17206 release.
17207 (darwin_default_min_version): Avoid static memory buffer.
17208
17209 2014-09-13 Jan Hubicka <hubicka@ucw.cz>
17210
17211 * tree.c (need_assembler_name_p): Store C++ type mangling only
17212 for aggregates.
17213
17214 2014-09-13 Marek Polacek <polacek@redhat.com>
17215
17216 * tree.c (protected_set_expr_location): Don't check whether T is
17217 non-null here.
17218
17219 2014-09-12 DJ Delorie <dj@redhat.com>
17220
17221 * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
17222 (extend_and_shift1_hipsi2): Likewise.
17223 (extend_and_shift2_hipsi2): Likewise.
17224
17225 2014-09-12 David Malcolm <dmalcolm@redhat.com>
17226
17227 * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
17228 with NULL when dealing with an insn.
17229 * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
17230 from rtx to rtx_insn *.
17231 * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
17232 const_rtx to const rtx_insn *.
17233 * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
17234
17235 2014-09-12 Trevor Saunders <tsaunders@mozilla.com>
17236
17237 * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
17238 assert.
17239
17240 2014-09-12 Joseph Myers <joseph@codesourcery.com>
17241
17242 * target.def (libgcc_floating_mode_supported_p): New hook.
17243 * targhooks.c (default_libgcc_floating_mode_supported_p): New
17244 function.
17245 * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
17246 * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
17247 (LIBGCC2_HAS_TF_MODE): Remove.
17248 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
17249 * doc/tm.texi: Regenerate.
17250 * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
17251 machine mode.
17252 * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
17253 (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
17254 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
17255 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
17256 * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17257 * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
17258 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
17259 * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
17260 * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
17261 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
17262 function.
17263 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
17264 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17265 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17266 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17267 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17268 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17269 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17270 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
17271 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
17272 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
17273 * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17274 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
17275 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
17276 * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
17277 Remove.
17278 * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
17279 New macro.
17280 (ia64_libgcc_floating_mode_supported_p): New function.
17281 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
17282 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
17283 (IA64_NO_LIBGCC_TFMODE): Define.
17284 * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
17285 * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
17286 macro.
17287 (pdp11_scalar_mode_supported_p): New function.
17288 * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
17289 * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
17290
17291 2014-09-12 Richard Biener <rguenther@suse.de>
17292
17293 PR middle-end/63237
17294 * gimple-fold.c (get_maxval_strlen): Gimplify string length.
17295
17296 2014-09-12 Marc Glisse <marc.glisse@inria.fr>
17297
17298 * tree.c (integer_each_onep): New function.
17299 * tree.h (integer_each_onep): Declare it.
17300 * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
17301 -A - 1 to ~A. Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
17302 (X & 1) == 0 for vector and complex.
17303
17304 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
17305
17306 * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
17307 for A57.
17308 (cortexa53_regmove_cost): New cost table for A53. Increase GP2FP/FP2GP
17309 cost to spilling from integer to FP registers.
17310
17311 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
17312
17313 * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
17314 move handling.
17315 (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
17316 are now handled correctly.
17317
17318 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
17319
17320 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
17321 handling of CALLER_SAVE_REGS and POINTER_REGS.
17322
17323 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
17324
17325 * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
17326 the number of hard registers.
17327
17328 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
17329 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17330 Anna Tikhonova <anna.tikhonova@intel.com>
17331 Ilya Tocar <ilya.tocar@intel.com>
17332 Andrey Turetskiy <andrey.turetskiy@intel.com>
17333 Ilya Verbin <ilya.verbin@intel.com>
17334 Kirill Yukhin <kirill.yukhin@intel.com>
17335 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17336
17337 * config/i386/sse.md
17338 (define_mode_iterator VI48_AVX512VL): New.
17339 (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
17340 "avx512f_vternlog<mode>_maskz" and update mode iterator.
17341 (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
17342 from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
17343 (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
17344 "avx512f_vternlog<mode>_mask" and update mode iterator.
17345 (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
17346 from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
17347 iterator.
17348 (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
17349 "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
17350 (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
17351 "avx512f_<rotate><mode><mask_name>" and update mode iterator.
17352 (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
17353 (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
17354
17355 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
17356 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17357 Anna Tikhonova <anna.tikhonova@intel.com>
17358 Ilya Tocar <ilya.tocar@intel.com>
17359 Andrey Turetskiy <andrey.turetskiy@intel.com>
17360 Ilya Verbin <ilya.verbin@intel.com>
17361 Kirill Yukhin <kirill.yukhin@intel.com>
17362 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17363
17364 * config/i386/sse.md (VI128_256): Delete.
17365 (define_mode_iterator VI124_256): New.
17366 (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
17367 (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
17368 (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
17369 (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
17370 "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
17371 (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
17372 (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
17373 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
17374 iterator.
17375 (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
17376 in presence of AVX-512.
17377
17378 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
17379 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17380 Anna Tikhonova <anna.tikhonova@intel.com>
17381 Ilya Tocar <ilya.tocar@intel.com>
17382 Andrey Turetskiy <andrey.turetskiy@intel.com>
17383 Ilya Verbin <ilya.verbin@intel.com>
17384 Kirill Yukhin <kirill.yukhin@intel.com>
17385 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17386
17387 * config/i386/sse.md
17388 (define_expand "<avx512>_gathersi<mode>"): Rename from
17389 "avx512f_gathersi<mode>".
17390 (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
17391 (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
17392 (define_expand "<avx512>_gatherdi<mode>"): Rename from
17393 "avx512f_gatherdi<mode>".
17394 (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
17395 (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
17396 wide versions.
17397 (define_expand "<avx512>_scattersi<mode>"): Rename from
17398 "avx512f_scattersi<mode>".
17399 (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
17400 (define_expand "<avx512>_scatterdi<mode>"): Rename from
17401 "avx512f_scatterdi<mode>".
17402 (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
17403
17404 2014-09-12 Richard Sandiford <richard.sandiford@arm.com>
17405
17406 * ira.h (ira_finish_once): Delete.
17407 * ira-int.h (target_ira_int::~target_ira_int): Declare.
17408 (target_ira_int::free_ira_costs): Likewise.
17409 (target_ira_int::free_register_move_costs): Likewise.
17410 (ira_finish_costs_once): Delete.
17411 * ira.c (free_register_move_costs): Replace with...
17412 (target_ira_int::free_register_move_costs): ...this new function.
17413 (target_ira_int::~target_ira_int): Define.
17414 (ira_init): Call free_register_move_costs as a member function rather
17415 than a global function.
17416 (ira_finish_once): Delete.
17417 * ira-costs.c (free_ira_costs): Replace with...
17418 (target_ira_int::free_ira_costs): ...this new function.
17419 (ira_init_costs): Call free_ira_costs as a member function rather
17420 than a global function.
17421 (ira_finish_costs_once): Delete.
17422 * target-globals.c (target_globals::~target_globals): Call the
17423 target_ira_int destructor.
17424 * toplev.c: Include lra.h.
17425 (finalize): Call lra_finish_once rather than ira_finish_once.
17426
17427 2014-09-11 Jan Hubicka <hubicka@ucw.cz>
17428
17429 * common.opt (flto-odr-type-merging): New flag.
17430 * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
17431 (types_same_for_odr): Likewise.
17432 (odr_subtypes_equivalent_p): Likewise.
17433 (add_type_duplicate): Do not walk type variants.
17434 (register_odr_type): New function.
17435 * ipa-utils.h (register_odr_type): Declare.
17436 (odr_type_p): New function.
17437 * langhooks.c (lhd_set_decl_assembler_name): Do not compute
17438 TYPE_DECLs
17439 * doc/invoke.texi (-flto-odr-type-merging): Document.
17440 * tree.c (need_assembler_name_p): Compute ODR names when asked
17441 for it.
17442 * tree.h (DECL_ASSEMBLER_NAME): Update comment.
17443
17444 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
17445
17446 PR target/63228
17447 * config/i386/i386.c (ix86_option_override_internal): Also turn
17448 off OPTION_MASK_ABI_X32 for -m16.
17449
17450 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
17451
17452 * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
17453 GPR instead of P.
17454
17455 2014-09-11 Marc Glisse <marc.glisse@inria.fr>
17456
17457 PR target/58757
17458 * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
17459 Directly forward to __*_DENORM_MIN__.
17460
17461 2014-09-11 David Malcolm <dmalcolm@redhat.com>
17462
17463 * rtl.h (LABEL_REF_LABEL): New macro.
17464
17465 * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
17466 of XEXP (, 0), where we know that we have a LABEL_REF.
17467 * cfgbuild.c (make_edges): Likewise.
17468 (purge_dead_tablejump_edges): Likewise.
17469 * cfgexpand.c (convert_debug_memory_address): Likewise.
17470 * cfgrtl.c (patch_jump_insn): Likewise.
17471 * combine.c (distribute_notes): Likewise.
17472 * cse.c (hash_rtx_cb): Likewise.
17473 (exp_equiv_p): Likewise.
17474 (fold_rtx): Likewise.
17475 (check_for_label_ref): Likewise.
17476 * cselib.c (rtx_equal_for_cselib_1): Likewise.
17477 (cselib_hash_rtx): Likewise.
17478 * emit-rtl.c (mark_label_nuses): Likewise.
17479 * explow.c (convert_memory_address_addr_space): Likewise.
17480 * final.c (output_asm_label): Likewise.
17481 (output_addr_const): Likewise.
17482 * gcse.c (add_label_notes): Likewise.
17483 * genconfig.c (walk_insn_part): Likewise.
17484 * genrecog.c (validate_pattern): Likewise.
17485 * ifcvt.c (cond_exec_get_condition): Likewise.
17486 (noce_emit_store_flag): Likewise.
17487 (noce_get_alt_condition): Likewise.
17488 (noce_get_condition): Likewise.
17489 * jump.c (maybe_propagate_label_ref): Likewise.
17490 (mark_jump_label_1): Likewise.
17491 (redirect_exp_1): Likewise.
17492 (rtx_renumbered_equal_p): Likewise.
17493 * lra-constraints.c (operands_match_p): Likewise.
17494 * reload.c (operands_match_p): Likewise.
17495 (find_reloads): Likewise.
17496 * reload1.c (set_label_offsets): Likewise.
17497 * reorg.c (get_branch_condition): Likewise.
17498 * rtl.c (rtx_equal_p_cb): Likewise.
17499 (rtx_equal_p): Likewise.
17500 * rtlanal.c (reg_mentioned_p): Likewise.
17501 (rtx_referenced_p): Likewise.
17502 (get_condition): Likewise.
17503 * sched-vis.c (print_value): Likewise.
17504 * varasm.c (const_hash_1): Likewise.
17505 (compare_constant): Likewise.
17506 (const_rtx_hash_1): Likewise.
17507 (output_constant_pool_1): Likewise.
17508
17509 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
17510
17511 * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
17512 tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
17513 instead of minus.
17514 * config/rs6000/vector.md (cr6_test_for_zero_reverse,
17515 cr6_test_for_lt_reverse): Ditto.
17516
17517 2014-09-11 Paolo Carlini <paolo.carlini@oracle.com>
17518
17519 PR c++/61489
17520 * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
17521
17522 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
17523
17524 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
17525 TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
17526 aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
17527 aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
17528 Delete.
17529
17530 (aarch64_fold_builtin): Remove all reinterpret cases.
17531
17532 * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
17533
17534 * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
17535
17536 * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
17537 aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
17538 aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
17539 aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
17540 aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
17541 aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
17542 aarch64_reinterpretv2df<mode>): Delete.
17543
17544 * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
17545
17546 * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
17547 vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
17548 vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
17549 vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
17550 vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
17551 vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
17552 vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
17553 vreinterpret_u32_f64): Use cast.
17554
17555 * config/aarch64/iterators.md (VD_RE): Delete.
17556
17557 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
17558
17559 * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
17560 (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
17561 vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
17562 vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
17563 vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
17564 vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
17565 vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
17566 Replace inline assembler with __aarch64_vset_lane_any.
17567
17568 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
17569
17570 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
17571 types.
17572 (vmull_high_lane_s32): Likewise.
17573 (vmull_high_lane_u16): Likewise.
17574 (vmull_high_lane_u32): Likewise.
17575
17576 2014-09-11 Jason Merrill <jason@redhat.com>
17577
17578 PR c++/58678
17579 * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
17580
17581 2014-09-11 Georg-Johann Lay <avr@gjlay.de>
17582
17583 PR target/63223
17584 * config/avr/avr.md (*tablejump.3byte-pc): New insn.
17585 (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL. Add void clobber.
17586 (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
17587
17588 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
17589 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17590 Anna Tikhonova <anna.tikhonova@intel.com>
17591 Ilya Tocar <ilya.tocar@intel.com>
17592 Andrey Turetskiy <andrey.turetskiy@intel.com>
17593 Ilya Verbin <ilya.verbin@intel.com>
17594 Kirill Yukhin <kirill.yukhin@intel.com>
17595 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17596
17597 * config/i386/sse.md
17598 (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
17599 "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
17600 (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
17601 New.
17602 (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
17603 from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
17604 iterator.
17605 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
17606 New.
17607 (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
17608 "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
17609 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
17610 (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
17611 "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
17612 (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
17613 (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
17614 from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
17615 iterator.
17616 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
17617 New.
17618 (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
17619 "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
17620 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
17621
17622 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
17623
17624 * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
17625 to access removed nodes.
17626
17627 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
17628
17629 PR tree-optimization/63186
17630 * ipa-split.c (test_nonssa_use): Skip nonforced labels.
17631 (mark_nonssa_use): Likewise.
17632 (verify_non_ssa_vars): Verify all header blocks for label
17633 definitions.
17634
17635 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
17636 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17637 Anna Tikhonova <anna.tikhonova@intel.com>
17638 Ilya Tocar <ilya.tocar@intel.com>
17639 Andrey Turetskiy <andrey.turetskiy@intel.com>
17640 Ilya Verbin <ilya.verbin@intel.com>
17641 Kirill Yukhin <kirill.yukhin@intel.com>
17642 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17643
17644 * config/i386/sse.md
17645 (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
17646 (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
17647 (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
17648 "<avx2_avx512f>_permvar<mode><mask_name>".
17649 (define_insn "<avx512>_permvar<mode><mask_name>"): New.
17650 (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
17651 Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
17652 (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
17653 Ditto.
17654 (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
17655 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
17656 (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
17657 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
17658
17659 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
17660
17661 * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
17662 V2DF, V4SF, DF, and DI modes.
17663 (vsx_fmav2df2): Likewise.
17664 (vsx_float_fix_<mode>2): Likewise.
17665 (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
17666
17667 2014-09-10 Xinliang David Li <davidxl@google.com>
17668
17669 PR target/63209
17670 * config/arm/arm.md (movcond_addsi): Handle case where source
17671 and target operands are the same.
17672
17673 2014-09-10 David Malcolm <dmalcolm@redhat.com>
17674
17675 * final.c (this_is_asm_operands): Strengthen this variable from
17676 rtx to const rtx_insn *.
17677 * output.h (this_is_asm_operands): Likewise.
17678 * rtl-error.c (location_for_asm): Strengthen param "insn" from
17679 const_rtx to const rtx_insn *.
17680 (diagnostic_for_asm): Likewise.
17681 * rtl-error.h (error_for_asm): Likewise.
17682 (warning_for_asm): Likewise.
17683
17684 2014-09-10 David Malcolm <dmalcolm@redhat.com>
17685
17686 * genextract.c (print_header): When writing out insn_extract to
17687 insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
17688 * recog.h (insn_extract): Strengthen the param from rtx to
17689 rtx_insn *.
17690
17691 2014-09-10 Mike Stump <mikestump@comcast.net>
17692
17693 * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
17694 8.6.1.
17695
17696 2014-09-10 Martin Jambor <mjambor@suse.cz>
17697
17698 * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
17699 (analyze): Do not set analyze flag if expand_thunk returns false;.
17700 (create_wrapper): Likewise.
17701 * cgraphclones.c (duplicate_thunk_for_node): Likewise.
17702
17703 2014-09-10 Martin Jambor <mjambor@suse.cz>
17704
17705 PR ipa/61654
17706 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
17707 new decl properly. Analyze the new thunk if it is expanded.
17708
17709 2014-09-10 Andreas Schwab <schwab@suse.de>
17710
17711 * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
17712 [USED_FOR_TARGET]: Define.
17713
17714 2014-09-10 Matthew Fortune <matthew.fortune@imgtec.com>
17715
17716 * config/mips/mips.c (mips_secondary_reload_class): Handle
17717 regno < 0 case.
17718
17719 2014-09-10 Robert Suchanek <robert.suchanek@imgtec.com>
17720
17721 * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
17722 assignment.
17723
17724 2014-09-10 Jakub Jelinek <jakub@redhat.com>
17725
17726 * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
17727 and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
17728 * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
17729 SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
17730 flag_delete_null_pointer_checks for them.
17731 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
17732 BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
17733 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
17734 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
17735 * ubsan.c (instrument_bool_enum_load): Set *gsi back to
17736 stmt's iterator.
17737 (instrument_nonnull_arg, instrument_nonnull_return): New functions.
17738 (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
17739 or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
17740 (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
17741 * doc/invoke.texi (-fsanitize=nonnull-attribute,
17742 -fsanitize=returns-nonnull-attribute): Document.
17743
17744 * ubsan.h (struct ubsan_mismatch_data): Removed.
17745 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
17746 * ubsan.c (ubsan_source_location): For unknown locations,
17747 pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
17748 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
17749 Allow more than one location and arbitrary extra arguments passed
17750 in ... instead of through MISMATCH pointer.
17751 (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
17752 ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
17753 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
17754 callers.
17755
17756 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
17757 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17758 Anna Tikhonova <anna.tikhonova@intel.com>
17759 Ilya Tocar <ilya.tocar@intel.com>
17760 Andrey Turetskiy <andrey.turetskiy@intel.com>
17761 Ilya Verbin <ilya.verbin@intel.com>
17762 Kirill Yukhin <kirill.yukhin@intel.com>
17763 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17764
17765 * config/i386/sse.md
17766 (define_mode_iterator VI48F): New.
17767 (define_insn "<avx512>_compress<mode>_mask"): Rename from
17768 "avx512f_compress<mode>_mask" and update mode iterator.
17769 (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
17770 "avx512f_compressstore<mode>_mask" and update mode iterator.
17771 (define_expand "<avx512>_expand<mode>_maskz"): Rename from
17772 "avx512f_expand<mode>_maskz" and update mode iterator.
17773 (define_insn "<avx512>_expand<mode>_mask"): Rename from
17774 "avx512f_expand<mode>_mask" and update mode iterator.
17775
17776 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
17777 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17778 Anna Tikhonova <anna.tikhonova@intel.com>
17779 Ilya Tocar <ilya.tocar@intel.com>
17780 Andrey Turetskiy <andrey.turetskiy@intel.com>
17781 Ilya Verbin <ilya.verbin@intel.com>
17782 Kirill Yukhin <kirill.yukhin@intel.com>
17783 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17784
17785 * config/i386/i386.c
17786 (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
17787 avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
17788 avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
17789 avx512dq_rangepv4sf_mask.
17790 * config/i386/sse.md
17791 (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
17792 UNSPEC_RANGE.
17793 (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
17794 (define_insn "reduces<mode>"): Ditto.
17795 (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
17796 Ditto.
17797 (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
17798 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
17799 (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
17800
17801 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
17802 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17803 Anna Tikhonova <anna.tikhonova@intel.com>
17804 Ilya Tocar <ilya.tocar@intel.com>
17805 Andrey Turetskiy <andrey.turetskiy@intel.com>
17806 Ilya Verbin <ilya.verbin@intel.com>
17807 Kirill Yukhin <kirill.yukhin@intel.com>
17808 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17809
17810 * config/i386/i386.c
17811 (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
17812 (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
17813 (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
17814 avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
17815 avx512vl_getmantv2df_mask.
17816 (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
17817 avx512f_vgetmantv4sf_round.
17818 * config/i386/sse.md
17819 (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
17820 Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
17821 mode iterator.
17822 (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
17823 (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
17824 (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
17825 from "avx512f_scalef<mode><mask_name><round_name>" and update mode
17826 iterator..
17827 (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
17828 Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
17829 update mode iterator.
17830 (define_expand
17831 "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
17832 "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
17833 mode iterator.
17834 (define_insn
17835 "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
17836 from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
17837 update mode iterator.
17838 (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
17839 from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
17840 iterator..
17841 (define_insn
17842 "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
17843 "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
17844 mode iterator..
17845 (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
17846 Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
17847 update mode iterator.
17848 (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
17849 "avx512f_getmant<mode><round_saeonly_name>".
17850
17851 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
17852
17853 PR ipa/63166
17854 * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
17855
17856 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
17857 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17858 Anna Tikhonova <anna.tikhonova@intel.com>
17859 Ilya Tocar <ilya.tocar@intel.com>
17860 Andrey Turetskiy <andrey.turetskiy@intel.com>
17861 Ilya Verbin <ilya.verbin@intel.com>
17862 Kirill Yukhin <kirill.yukhin@intel.com>
17863 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17864
17865 * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
17866 (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
17867 (define_mode_iterator FMAMODE_AVX512): New.
17868 (define_mode_iterator FMAMODE): Remove conditions.
17869 (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
17870 (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
17871 from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
17872 mode iterator.
17873 (define_mode_iterator FMAMODE_NOVF512): Remove.
17874 (define_insn "*fma_fmadd_<mode>"): Rename from
17875 "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
17876 FMAMODE mode iterator.
17877 (define_mode_iterator VF_SF_AVX512VL): New.
17878 (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
17879 Use VF_SF_AVX512VL mode iterator.
17880 (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
17881 "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
17882 iterator.
17883 (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
17884 "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
17885 iterator.
17886 (define_insn "*fma_fmsub_<mode>"): Rename from
17887 "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
17888 FMAMODE mode iterator.
17889 (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
17890 Use VF_SF_AVX512VL mode iterator.
17891 (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
17892 "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
17893 iterator.
17894 (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
17895 "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
17896 iterator.
17897 (define_insn "*fma_fnmadd_<mode>"): Rename from
17898 "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
17899 use FMAMODE mode iterator.
17900 (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
17901 Use VF_SF_AVX512VL mode iterator.
17902 (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
17903 "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
17904 iterator.
17905 (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
17906 "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
17907 iterator.
17908 (define_insn "*fma_fnmsub_<mode>"): Rename from
17909 "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
17910 FMAMODE mode iterator.
17911 (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
17912 Use VF_SF_AVX512VL mode iterator.
17913 (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
17914 "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
17915 iterator.
17916 (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
17917 "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
17918 iterator.
17919 (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
17920 Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
17921 use VF_AVX512VL mode iterator.
17922 (define_insn "*fma_fmaddsub_<mode>"): Rename from
17923 "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
17924 remove subst usage.
17925 (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
17926 Use VF_SF_AVX512VL mode iterator.
17927 (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
17928 "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
17929 iterator.
17930 (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
17931 "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
17932 iterator.
17933 (define_insn "*fma_fmsubadd_<mode>"): Rename from
17934 "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
17935 remove usage of subst.
17936 (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
17937 Use VF_SF_AVX512VL mode iterator.
17938 (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
17939 "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
17940 iterator.
17941 (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
17942 "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
17943 iterator.
17944
17945 2014-09-10 Kugan Vivekanandarajah <kuganv@linaro.org>
17946
17947 Revert r213751:
17948 * calls.c (precompute_arguments): Check
17949 promoted_for_signed_and_unsigned_p and set the promoted mode.
17950 (promoted_for_signed_and_unsigned_p): New function.
17951 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
17952 and set the promoted mode.
17953 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
17954 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
17955 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
17956
17957 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
17958
17959 * opth-gen.awk: Generate mapping from cpp message reasons to the
17960 options that enable them.
17961 * doc/options.texi (CppReason): Document.
17962
17963 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
17964
17965 * doc/invoke.texi (Wnormalized=): Update.
17966
17967 2014-09-09 Segher Boessenkool <segher@kernel.crashing.org>
17968
17969 PR target/63195
17970 * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
17971 operands. Split off the constant operand alternative to ...
17972 (*bool<mode>3_imm): New.
17973
17974 2014-09-09 David Malcolm <dmalcolm@redhat.com>
17975
17976 * rtl.h (single_set_2): Strengthen first param from const_rtx to
17977 const rtx_insn *, and move prototype to above...
17978 (single_set): ...this. Convert this from a macro to an inline
17979 function, enforcing the requirement that the param is a const
17980 rtx_insn *.
17981 (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
17982
17983 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
17984 Strengthen both params from rtx to rtx_insn *.
17985 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
17986 Likewise; introduce locals "producer_set", "consumer_set", using
17987 them in place of "producer" and "consumer" when dealing with SET
17988 rather than insn.
17989 * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
17990 when invoking single_set in region guarded by INSN_P.
17991 (avr_out_bitop): Likewise.
17992 (_reg_unused_after): Introduce local rtx_sequence * "seq" in
17993 region guarded by GET_CODE check, using methods to strengthen
17994 local "this_insn" from rtx to rtx_insn *, and for clarity.
17995 * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
17996 Strengthen local "insn" from rtx to rtx_insn *.
17997 (define_insn_and_split "xload<mode>_A"): Likewise.
17998 * config/bfin/bfin.c (trapping_loads_p): Likewise for param
17999 "insn".
18000 (find_load): Likewise for return type.
18001 (workaround_speculation): Likewise for both locals named
18002 "load_insn".
18003 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
18004 local "cc0_user".
18005 * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
18006 for local "prev".
18007 * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
18008 param 2.
18009 * config/h8300/h8300.c (notice_update_cc): Likewise.
18010 * config/i386/i386.c (ix86_flags_dependent): Likewise for params
18011 "insn" and "dep_insn".
18012 (exact_store_load_dependency): Likewise for both params.
18013 (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
18014 since this now clashes with inline function. Instead, delay
18015 calling single_set until the point where its needed, and then
18016 assign the result to "compare_set" and rework the conditional that
18017 follows.
18018 * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
18019 local "last" from rtx to rtx_insn *.
18020 * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
18021 second param.
18022 (mips_store_data_bypass_p): Likewise for both params.
18023 * config/mips/mips.c (mips_load_store_insns): Likewise for second
18024 param.
18025 (mips_store_data_bypass_p): Likewise for both params.
18026 (mips_orphaned_high_part_p): Likewise for param "insn".
18027 * config/mn10300/mn10300.c (extract_bundle): Likewise.
18028 (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
18029 Introduce local rtx "insn2_pat".
18030 * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
18031 "ninsn".
18032 (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
18033 Introduce local rtx "set", using it in place of "insn" for the
18034 result of single_set. This appears to fix a bug, since the call
18035 to find_regno_note on a SET does nothing.
18036 * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
18037 params from rtx to rtx_insn *.
18038 (set_to_load_agen): Likewise.
18039 * config/s390/s390.c (s390_label_align): Likewise for local
18040 "prev_insn". Introduce new rtx locals "set" and "src", using
18041 them in place of "prev_insn" for the results of single_set
18042 and SET_SRC respectively.
18043 (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
18044 Introduce new rtx local "set" using in place of "jump" for the
18045 result of single_set. Use SET_SRC (set) rather than plain
18046 XEXP (set, 1).
18047 * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
18048 rtx to rtx_insn *.
18049 (noncall_uses_reg): Likewise.
18050 (reg_unused_after): Introduce local rtx_sequence * "seq" in region
18051 guarded by GET_CODE check, using its methods for clarity, and to
18052 enable strengthening local "this_insn" from rtx to rtx_insn *.
18053 * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
18054 "insn" from rtx to rtx_insn *.
18055 (define_expand "umulhisi3"): Likewise.
18056 (define_expand "smulsi3_highpart"): Likewise.
18057 (define_expand "umulsi3_highpart"): Likewise.
18058 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
18059 local "after". Replace GET_CODE check with a dyn_cast,
18060 introducing new local rtx_sequence * "seq", using insn method for
18061 typesafety.
18062
18063 * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
18064 from rtx to rtx_insn *. Introduce local rtx "pat", using it in
18065 place of "insn" once we're dealing with patterns rather than the
18066 input insn.
18067 (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
18068 (scan_trace): Likewise for local "elt", updating lookups within
18069 sequence to use insn method rather than element method.
18070 * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
18071 to rtx_insn *.
18072 * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
18073 * ifcvt.c (noce_try_abs): Likewise for local "insn".
18074 * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
18075 invoking single_set.
18076 * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
18077 "insn" from rtx to rtx_insn *.
18078 (skip_usage_debug_insns): Likewise for return type, adding a
18079 checked cast.
18080 (check_secondary_memory_needed_p): Likewise for local "insn".
18081 (inherit_reload_reg): Likewise.
18082 * modulo-sched.c (sms_schedule): Likewise for local "count_init".
18083 * recog.c (peep2_attempt): Likewise for local "old_insn", adding
18084 checked casts.
18085 (store_data_bypass_p): Likewise for both params.
18086 (if_test_bypass_p): Likewise.
18087 * recog.h (store_data_bypass_p): Likewise for both params.
18088 (if_test_bypass_p): Likewise.
18089 * reload.c (find_equiv_reg): Likewise for local "where".
18090 * reorg.c (delete_jump): Likewise for param "insn".
18091 * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
18092 to const rtx_insn *.
18093 * store-motion.c (replace_store_insn): Likewise for param "del".
18094 (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
18095 and use its methods for clarity, and to strengthen local "del"
18096 from rtx to rtx_insn *.
18097 (build_store_vectors): Use insn method of "st" when calling
18098 replace_store_insn for typesafety and clarity.
18099
18100 2014-09-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18101
18102 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
18103 UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
18104 on how to make it legal in future.
18105
18106 2014-09-09 David Malcolm <dmalcolm@redhat.com>
18107
18108 * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
18109 to rtx_insn *.
18110 (restinsn): Likewise.
18111 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
18112 Likewise for param.
18113 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
18114 Likewise.
18115 * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
18116 first param.
18117 (arc_hazard): Likewise for both params.
18118 * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
18119 checked casts to rtx_sequence * and uses of the insn method for
18120 type-safety.
18121 (arc_hazard): Strengthen both params from rtx to rtx_insn *.
18122 (arc_adjust_insn_length): Likewise for param "insn".
18123 (struct insn_length_parameters_s): Likewise for first param of
18124 "get_variants" callback field.
18125 (arc_get_insn_variants): Likewise for first param and local
18126 "inner". Replace a check of GET_CODE with a dyn_cast to
18127 rtx_sequence *, using methods for type-safety and clarity.
18128 * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
18129 rtx_sequence * and uses of the insn method for type-safety when
18130 invoking arc_adjust_insn_length.
18131 * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
18132 for param.
18133 (arm_address_offset_is_imm): Likewise.
18134 (struct tune_params): Likewise for params 1 and 3 of the
18135 "sched_adjust_cost" callback field.
18136 * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
18137 params 1 and 3 ("insn" and "dep").
18138 (xscale_sched_adjust_cost): Likewise.
18139 (fa726te_sched_adjust_cost): Likewise.
18140 (cortexa7_older_only): Likewise for param "insn".
18141 (cortexa7_younger): Likewise.
18142 (arm_attr_length_move_neon): Likewise.
18143 (arm_address_offset_is_imm): Likewise.
18144 * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
18145 * config/avr/avr.c (avr_notice_update_cc): Likewise.
18146 * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
18147 (workaround_speculation): Likewise for local "last_condjump".
18148 * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
18149 (shadow_or_blockage_p): Likewise.
18150 (get_unit_reqs): Likewise.
18151 (get_unit_operand_masks): Likewise.
18152 (c6x_registers_update): Likewise.
18153 (returning_call_p): Likewise.
18154 (can_use_callp): Likewise.
18155 (convert_to_callp): Likewise.
18156 (find_last_same_clock): Likwise for local "t".
18157 (reorg_split_calls): Likewise for local "shadow".
18158 (hwloop_pattern_reg): Likewise for param "insn".
18159 * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
18160 * config/frv/frv.c (frv_final_prescan_insn): Likewise.
18161 (frv_extract_membar): Likewise.
18162 (frv_optimize_membar_local): Strengthen param "last_membar" from
18163 rtx * to rtx_insn **.
18164 (frv_optimize_membar_global): Strengthen param "membar" from rtx
18165 to rtx_insn *.
18166 (frv_optimize_membar): Strengthen local "last_membar" from rtx *
18167 to rtx_insn **.
18168 * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
18169 both params from rtx to rtx_insn *.
18170 (ia64_ld_address_bypass_p): Likewise.
18171 * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
18172 "insn".
18173 (ia64_safe_type): Likewise.
18174 (group_barrier_needed): Likewise.
18175 (safe_group_barrier_needed): Likewise.
18176 (ia64_single_set): Likewise.
18177 (is_load_p): Likewise.
18178 (record_memory_reference): Likewise.
18179 (get_mode_no_for_insn): Likewise.
18180 (important_for_bundling_p): Likewise.
18181 (unknown_for_bundling_p): Likewise.
18182 (ia64_st_address_bypass_p): Likewise for both params.
18183 (ia64_ld_address_bypass_p): Likewise.
18184 (expand_vselect): Introduce new local rtx_insn * "insn", using it
18185 in place of rtx "x" after the emit_insn call.
18186 * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
18187 Strengthen param from rtx to rtx_insn *.
18188 (ix86_agi_dependent): Likewise for both params.
18189 (ix86_attr_length_immediate_default): Likewise for param 1.
18190 (ix86_attr_length_address_default): Likewise for param.
18191 (ix86_attr_length_vex_default): Likewise for param 1.
18192 * config/i386/i386.c (ix86_attr_length_immediate_default):
18193 Likewise for param "insn".
18194 (ix86_attr_length_address_default): Likewise.
18195 (ix86_attr_length_vex_default): Likewise.
18196 (ix86_agi_dependent): Likewise for both params.
18197 (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
18198 (vselect_insn): Likewise for this variable.
18199 * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
18200 for param 1.
18201 (m68k_sched_attr_opy_type): Likewise.
18202 * config/m68k/m68k.c (sched_get_operand): Likewise.
18203 (sched_attr_op_type): Likewise.
18204 (m68k_sched_attr_opx_type): Likewise.
18205 (m68k_sched_attr_opy_type): Likewise.
18206 (sched_get_reg_operand): Likewise.
18207 (sched_get_mem_operand): Likewise.
18208 (m68k_sched_address_bypass_p): Likewise for both params.
18209 (sched_get_indexed_address_scale): Likewise.
18210 (m68k_sched_indexed_address_bypass_p): Likewise.
18211 * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
18212 (m68k_sched_indexed_address_bypass_p): Likewise.
18213 * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
18214 "label", "ret" from rtx to rtx_insn *, adding a checked cast and
18215 removing another.
18216 * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
18217 params from rtx to rtx_insn *.
18218 (mips_fmadd_bypass): Likewise.
18219 * config/mips/mips.c (mips_fmadd_bypass): Likewise.
18220 (mips_linked_madd_p): Likewise.
18221 (mips_macc_chains_last_hilo): Likewise for this variable.
18222 (mips_macc_chains_record): Likewise for param.
18223 (vr4130_last_insn): Likewise for this variable.
18224 (vr4130_swap_insns_p): Likewise for both params.
18225 (mips_ls2_variable_issue): Likewise for param.
18226 (mips_need_noat_wrapper_p): Likewise for param "insn".
18227 (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
18228 in place of "x" after the emit_insn.
18229 * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
18230 params from rtx to rtx_insn *.
18231 * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
18232 (pa_combine_instructions): Introduce local "par" for result of
18233 gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
18234 to make_insn_raw.
18235 (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
18236 * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
18237 (rl78_alloc_physical_registers_op1): Likewise.
18238 (rl78_alloc_physical_registers_op2): Likewise.
18239 (rl78_alloc_physical_registers_ro1): Likewise.
18240 (rl78_alloc_physical_registers_cmp): Likewise.
18241 (rl78_alloc_physical_registers_umul): Likewise.
18242 (rl78_alloc_address_registers_macax): Likewise.
18243 (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
18244 * config/s390/predicates.md (execute_operation): Likewise for
18245 local "insn".
18246 * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
18247 params.
18248 * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
18249 (addr_generation_dependency_p): Likewise for param "insn".
18250 (s390_agen_dep_p): Likewise for both params.
18251 (s390_fpload_toreg): Likewise for param "insn".
18252 * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
18253 * config/sh/sh.c (sh_loop_align): Likewise for param and local
18254 "next".
18255 * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
18256 * config/sh/sh_treg_combine.cc
18257 (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
18258 and local "i".
18259 (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
18260 * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
18261 "and_insn", "load", "shift".
18262 * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
18263 "insn".
18264 * final.c (final_scan_insn): Introduce local rtx_insn * "other"
18265 for XEXP (note, 0) of the REG_CC_SETTER note.
18266 (cleanup_subreg_operands): Strengthen param "insn" from rtx to
18267 rtx_insn *, eliminating a checked cast made redundant by this.
18268 * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
18269 to rtx_insn *.
18270 * genattr.c (main): When writing out the prototype to
18271 const_num_delay_slots, strengthen the param from rtx to
18272 rtx_insn *.
18273 * genattrtab.c (write_const_num_delay_slots): Likewise when
18274 writing out the implementation of const_num_delay_slots.
18275 * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
18276 "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
18277 * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
18278 favor of new rtx locals "src" and "set" and new local rtx_insn *
18279 "insn" and "seq".
18280 (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
18281 to rtx_insn *.
18282 (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
18283 locals "cond", "if_then_else", "set" and new rtx_insn * locals
18284 "insn" and "seq".
18285 (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
18286 "last" from rtx to rtx_insn *. Likewise for a local "tmp",
18287 renaming to "tmp_insn". Eliminate the other local rtx "tmp" from
18288 the top-level scope, replacing with new more tightly-scoped rtx
18289 locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
18290 "new_insn", "copy_of_insn_b", and make local rtx "set" more
18291 tightly-scoped.
18292 * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
18293 rtx_insn *.
18294 * ira.c (setup_prohibited_mode_move_regs): Likewise for local
18295 "move_insn".
18296 (ira_setup_alts): Likewise for param "insn".
18297 * lra-constraints.c (emit_inc): Likewise for local "add_insn".
18298 * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
18299 and an rtx_insn *.
18300 (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
18301 new more-tightly scoped rtx locals "add3_insn", "insn",
18302 "add2_insn" and rtx_insn * "move_insn".
18303 * postreload-gcse.c (eliminate_partially_redundant_load): Add
18304 checked cast on result of gen_move_insn when invoking
18305 extract_insn.
18306 * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
18307 rtx_insn *.
18308 (verify_changes): Add a checked cast on "object" when invoking
18309 insn_invalid_p.
18310 (extract_insn_cached): Strengthen param "insn" from rtx to
18311 rtx_insn *.
18312 (extract_constrain_insn_cached): Likewise.
18313 (extract_insn): Likewise.
18314 * recog.h (insn_invalid_p): Likewise for param 1.
18315 (recog_memoized): Likewise for param.
18316 (extract_insn): Likewise.
18317 (extract_constrain_insn_cached): Likewise.
18318 (extract_insn_cached): Likewise.
18319 * reload.c (can_reload_into): Likewise for local "test_insn".
18320 * reload.h (cleanup_subreg_operands): Likewise for param.
18321 * reload1.c (emit_insn_if_valid_for_reload): Rename param from
18322 "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
18323 result of emit_insn. Remove a checked cast made redundant by this
18324 change.
18325 * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
18326 rtx to rtx_insn *.
18327 * sel-sched.c (get_reg_class): Likewise.
18328
18329 2014-09-09 Marcus Shawcroft <marcus.shawcroft@arm.com>
18330 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18331
18332 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
18333 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
18334 Define.
18335 (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
18336
18337 2014-09-09 David Malcolm <dmalcolm@redhat.com>
18338
18339 * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
18340 const rtx_insn *, and from rtx to rtx_insn * for the other
18341 overloaded variant.
18342 (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
18343 INSN_LOCATION, since we know INSN_P holds.
18344 (insn_line): Strengthen param from const_rtx to const rtx_insn *.
18345 (insn_file): Likewise.
18346 (insn_scope): Likewise.
18347 (insn_location): Likewise.
18348
18349 * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
18350 "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
18351 for the result of gen_load_const_gp.
18352 * config/rs6000/rs6000-protos.h (output_call): Strengthen first
18353 param from rtx to rtx_insn *.
18354 * config/rs6000/rs6000.c (output_call): Likewise.
18355 * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
18356 introducing a checked cast to rtx_sequence * and use of the insn
18357 method.
18358 * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
18359 from rtx to rtx_insn *.
18360 (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
18361 (insn_line): Likewise.
18362 (insn_file): Likewise.
18363 (insn_location): Likewise.
18364 * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
18365 from rtx to rtx_insn *.
18366 * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
18367 cast, using it for calls to INSN_HAS_LOCATION and insn_location.
18368 * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
18369 via a checked cast.
18370 * reorg.c (relax_delay_slots): Strengthen locals named "after"
18371 from rtx to rtx_insn *; use methods of "pat" for type-safety.
18372
18373 2014-09-09 David Malcolm <dmalcolm@redhat.com>
18374
18375 * combine.c (try_combine): Eliminate checked cast on result of
18376 gen_rtx_INSN.
18377 * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
18378 autogenerated one by strengthening the return type and params 2 and 3
18379 from rtx to rtx_insn *, and by naming the params.
18380 * gengenrtl.c (special_rtx): Add INSN to those that are
18381 special-cased.
18382 * rtl.h (gen_rtx_INSN): New prototype.
18383
18384 2014-09-09 David Malcolm <dmalcolm@redhat.com>
18385
18386 * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
18387 than NULL_RTX.
18388 (no_equiv): Likewise.
18389 (update_equiv_regs): Likewise.
18390 (setup_reg_equiv): Likewise. Strengthen locals "elem",
18391 "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
18392 from rtx to rtx_insn *. Use methods of "elem" for typesafety and
18393 clarity.
18394 * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
18395 from rtx to rtx_insn_list *.
18396 * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
18397 rtx_insn_list * and use methods for clarity and typesafety.
18398 * lra-constraints.c (contains_deleted_insn_p): Likewise for param
18399 "list".
18400 (init_insn_rhs_dead_pseudo_p): Likewise for local "insns". Remove
18401 redundant check on INSN_P (insns): this cannot hold, as "insns" is
18402 an INSN_LIST, not an insn.
18403 (reverse_equiv_p): Strengthen local "insns" from rtx to
18404 rtx_insn_list * and use methods for clarity and typesafety.
18405 (contains_reloaded_insn_p): Likewise for local "list".
18406
18407 2014-09-09 Jiong Wang <jiong.wang@arm.com>
18408
18409 * config/arm/arm.c (NEON_COPYSIGNF): New enum.
18410 (arm_init_neon_builtins): Support NEON_COPYSIGNF.
18411 (arm_builtin_vectorized_function): Likewise.
18412 * config/arm/arm_neon_builtins.def: New macro for copysignf.
18413 * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
18414
18415 2014-09-09 Richard Sandiford <richard.sandiford@arm.com>
18416
18417 * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
18418 * builtins.h (default_target_builtins): Likewise.
18419 * gcse.h (default_target_gcse): Likewise.
18420 * target-globals.h (target_globals): Add a destructor. Convert
18421 void-pointer fields back to their real type and change from
18422 GTY((atomic)) to GTY((skip)).
18423 (restore_target_globals): Remove casts accordingly.
18424 * target-globals.c (save_target_globals): Use XCNEW rather than
18425 ggc_internal_cleared_alloc to allocate non-GC structures.
18426 Use ggc_cleared_alloc to allocate the target_globals structure
18427 itself.
18428 (target_globals::~target_globals): Define.
18429
18430 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18431
18432 * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
18433 mnemonic instead of fldmfdd.
18434 * config/arm/arm.c (vfp_output_fstmd): Rename to...
18435 (vfp_output_vstmd): ... This. Convert output to UAL syntax.
18436 Output vpush when address register is SP.
18437 * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
18438 (vfp_output_vstmd): ... This.
18439 * config/arm/vfp.md (push_multi_vfp): Update call to
18440 vfp_output_vstmd.
18441
18442 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18443
18444 * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
18445
18446 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18447
18448 * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
18449 (*sqrtdf2_vfp): Likewise.
18450 (*cmpsf_vfp): Likewise.
18451 (*cmpsf_trap_vfp): Likewise.
18452 (*cmpdf_vfp): Likewise.
18453 (*cmpdf_trap_vfp): Likewise.
18454
18455 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18456
18457 * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
18458 (*truncdfsf2_vfp): Likewise.
18459 (*truncsisf2_vfp): Likewise.
18460 (*truncsidf2_vfp): Likewise.
18461 (fixuns_truncsfsi2): Likewise.
18462 (fixuns_truncdfsi2): Likewise.
18463 (*floatsisf2_vfp): Likewise.
18464 (*floatsidf2_vfp): Likewise.
18465 (floatunssisf2): Likewise.
18466 (floatunssidf2): Likewise.
18467
18468 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18469
18470 * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
18471 (*muldf3_vfp): Likewise.
18472 (*mulsf3negsf_vfp): Likewise.
18473 (*muldf3negdf_vfp): Likewise.
18474 (*mulsf3addsf_vfp): Likewise.
18475 (*muldf3adddf_vfp): Likewise.
18476 (*mulsf3subsf_vfp): Likewise.
18477 (*muldf3subdf_vfp): Likewise.
18478 (*mulsf3negsfaddsf_vfp): Likewise.
18479 (*fmuldf3negdfadddf_vfp): Likewise.
18480 (*mulsf3negsfsubsf_vfp): Likewise.
18481 (*muldf3negdfsubdf_vfp): Likewise.
18482
18483 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18484
18485 * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
18486 (*absdf2_vfp): Likewise.
18487 (*negsf2_vfp): Likewise.
18488 (*negdf2_vfp): Likewise.
18489 (*addsf3_vfp): Likewise.
18490 (*adddf3_vfp): Likewise.
18491 (*subsf3_vfp): Likewise.
18492 (*subdf3_vfp): Likewise.
18493 (*divsf3_vfp): Likewise.
18494 (*divdf3_vfp): Likewise.
18495
18496 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18497
18498 * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
18499 multiple.
18500 (arm_print_operand): Don't convert real values to decimal
18501 representation in default case.
18502 (fp_immediate_constant): Delete.
18503 * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
18504 * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
18505 syntax.
18506 (*thumb2_movsi_vfp): Likewise.
18507 (*movdi_vfp): Likewise.
18508 (*movdi_vfp_cortexa8): Likewise.
18509 (*movhf_vfp_neon): Likewise.
18510 (*movhf_vfp): Likewise.
18511 (*movsf_vfp): Likewise.
18512 (*thumb2_movsf_vfp): Likewise.
18513 (*movdf_vfp): Likewise.
18514 (*thumb2_movdf_vfp): Likewise.
18515 (*movsfcc_vfp): Likewise.
18516 (*thumb2_movsfcc_vfp): Likewise.
18517 (*movdfcc_vfp): Likewise.
18518 (*thumb2_movdfcc_vfp): Likewise.
18519
18520 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
18521
18522 * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
18523 (-mtune): Likewise.
18524 (-mcpu): Likewise.
18525
18526 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18527
18528 PR target/61749
18529 * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
18530 Use qualifier_immediate for last operand. Rename to...
18531 (aarch64_types_ternop_lane_qualifiers): ... This.
18532 (TYPES_QUADOP): Rename to...
18533 (TYPES_TERNOP_LANE): ... This.
18534 (aarch64_simd_expand_args): Return const0_rtx when encountering user
18535 error. Change return of 0 to return of NULL_RTX.
18536 (aarch64_crc32_expand_builtin): Likewise.
18537 (aarch64_expand_builtin): Return NULL_RTX instead of 0.
18538 ICE when expanding unknown builtin.
18539 * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
18540 TERNOP_LANE qualifiers.
18541 (sqdmlsl_lane): Likewise.
18542 (sqdmlal_laneq): Likewise.
18543 (sqdmlsl_laneq): Likewise.
18544 (sqdmlal2_lane): Likewise.
18545 (sqdmlsl2_lane): Likewise.
18546 (sqdmlal2_laneq): Likewise.
18547 (sqdmlsl2_laneq): Likewise.
18548
18549 2014-09-09 Nick Clifton <nickc@redhat.com>
18550
18551 * doc/invoke.texi (Optimization Options): Add missing @gol to the
18552 end of a line.
18553 (S/390 and zSeries Options): Remove superfluous word from the
18554 description of the -mhotpatch option.
18555
18556 2014-09-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
18557
18558 * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
18559 * ira.c: #include "shrink-wrap.h"
18560 (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
18561 * ifcvt.c: #include "shrink-wrap.h"
18562 (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
18563
18564 2014-09-08 Trevor Saunders <tsaunders@mozilla.com>
18565
18566 * common/config/picochip/picochip-common.c: Remove.
18567 * config.gcc: Remove support for picochip.
18568 * config/picochip/constraints.md: Remove.
18569 * config/picochip/dfa_space.md: Remove.
18570 * config/picochip/dfa_speed.md: Remove.
18571 * config/picochip/picochip-protos.h: Remove.
18572 * config/picochip/picochip.c: Remove.
18573 * config/picochip/picochip.h: Remove.
18574 * config/picochip/picochip.md: Remove.
18575 * config/picochip/picochip.opt: Remove.
18576 * config/picochip/predicates.md: Remove.
18577 * config/picochip/t-picochip: Remove.
18578 * doc/md.texi: Don't document picochi.
18579
18580 2014-09-08 David Malcolm <dmalcolm@redhat.com>
18581
18582 * basic-block.h (control_flow_insn_p): Strengthen param from
18583 const_rtx to const rtx_insn *.
18584 * cfgbuild.c (control_flow_insn_p): Likewise.
18585
18586 2014-09-08 David Malcolm <dmalcolm@redhat.com>
18587
18588 * gcse.c (modify_mem_list): Strengthen this variable from
18589 vec<rtx> * to vec<rtx_insn *> *.
18590 (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
18591 vec<rtx_insn *>.
18592 (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
18593 vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
18594 (record_last_mem_set_info): Strengthen param "insn" from rtx to
18595 rtx_insn *.
18596 (record_last_set_info): Likewise for local "last_set_insn".
18597
18598 2014-09-08 DJ Delorie <dj@redhat.com>
18599
18600 * doc/invoke.texi (MSP430 Options): Add -minrt.
18601
18602 2014-09-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18603
18604 * config/rs6000/rs6000.c (special_handling_values): Add SH_SPLAT.
18605 (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
18606 statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
18607 handling SH_SPLAT.
18608 (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
18609 of extracted lane.
18610 (adjust_splat): New function.
18611 (handle_special_swappables): Call adjust_splat for SH_SPLAT.
18612 (dump_swap_insn_table): Add case for SH_SPLAT.
18613
18614 2014-09-08 Richard Biener <rguenther@suse.de>
18615
18616 PR ipa/63196
18617 * tree-inline.c (copy_loops): The source loop header should
18618 always be non-NULL.
18619 (tree_function_versioning): If loops need fixup after removing
18620 unreachable blocks fix them.
18621 * omp-low.c (simd_clone_adjust): Do not add incr block to
18622 loop under construction.
18623
18624 2014-09-08 Alan Lawrence <alan.lawrence@arm.com>
18625
18626 * config/aarch64/aarch64-builtins.c
18627 (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
18628
18629 2014-09-08 Joseph Myers <joseph@codesourcery.com>
18630
18631 * config/i386/cygming.h (TF_SIZE): Remove.
18632 * config/i386/darwin.h (TF_SIZE): Remove.
18633 * config/i386/dragonfly.h (TF_SIZE): Remove.
18634 * config/i386/freebsd.h (TF_SIZE): Remove.
18635 * config/i386/gnu-user-common.h (TF_SIZE): Remove.
18636 * config/i386/openbsdelf.h (TF_SIZE): Remove.
18637 * config/i386/sol2.h (TF_SIZE): Remove.
18638 * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
18639 * config/ia64/linux.h (TF_SIZE): Remove.
18640 * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
18641 * doc/tm.texi: Regenerate.
18642 * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
18643
18644 2014-09-08 Joseph Myers <joseph@codesourcery.com>
18645
18646 * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
18647 Remove.
18648 * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
18649 Remove.
18650 * doc/tm.texi: Regenerate.
18651 * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
18652 Poison.
18653 * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
18654 * config/cris/cris.h (__make_dp): Remove.
18655
18656 2014-09-08 Richard Biener <rguenther@suse.de>
18657
18658 PR bootstrap/63204
18659 * cfgloop.c (mark_loop_for_removal): Track former header
18660 unconditionally.
18661 * cfgloop.h (struct loop): Add former_header member unconditionally.
18662 * loop-init.c (fix_loop_structure): Enable bogus loop removal
18663 diagnostic unconditionally.
18664
18665 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
18666
18667 PR target/63190
18668 * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
18669 constraint for operand0 and remove write only modifier from operand3.
18670
18671 2014-09-07 Richard Sandiford <richard.sandiford@arm.com>
18672
18673 PR rtl-optimization/62208
18674 * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
18675 rather than const0_rtx in eq/ne-xor simplifications.
18676
18677 2014-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
18678
18679 * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
18680 (arc_output_mi_thunk): Likewise.
18681
18682 * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
18683 arguments to silence bogus warning.
18684
18685 2014-09-06 Richard Sandiford <richard.sandiford@arm.com>
18686
18687 PR middle-end/63171
18688 * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
18689
18690 2014-09-06 Tom de Vries <tom@codesourcery.com>
18691
18692 * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
18693 IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
18694 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
18695
18696 2014-09-05 Dominique Dhumieres <dominiq@lps.ens.fr>
18697
18698 PR target/63188
18699 * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
18700 * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
18701
18702 2014-09-05 Easwaran Raman <eraman@google.com>
18703
18704 PR rtl-optimization/62146
18705 * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
18706 hoisted instruction unconditional.
18707
18708 2014-09-05 Segher Boessenkool <segher@kernel.crashing.org>
18709
18710 PR target/63187
18711 * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
18712 Do not allow any_mask_operand for operands[2].
18713 (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
18714
18715 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18716
18717 * config/arc/arc.c (arc_print_operand): Use insn method of
18718 final_sequence for type-safety.
18719 * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
18720 "insn" from rtx to rtx_insn *.
18721 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
18722 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
18723 Likewise for locals "branch", "label".
18724 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
18725 locals "i1", "i2". Use NULL rather than NULL_RTX in comparisons.
18726 (same_cmp_following_p): Likewise for locals "i2", "i3".
18727 * config/sh/sh_optimize_sett_clrt.cc
18728 (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
18729 param "cbranch_insn".
18730 * function.c (convert_jumps_to_returns): Likewis for local "jump".
18731 * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
18732 * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
18733 const rtx_insn *.
18734 (condjump_p): Likewise.
18735 (condjump_in_parallel_p): Likewise.
18736 (pc_set): Likewise.
18737 (any_uncondjump_p): Likewise.
18738 (any_condjump_p): Likewise.
18739 (condjump_label): Likewise.
18740 (returnjump_p): Strengthen param "insn" from rtx to
18741 const rtx_insn *.
18742 (onlyjump_p): Strengthen param "insn" from const_rtx to
18743 const rtx_insn *.
18744 (jump_to_label_p): Likewise.
18745 (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
18746 (invert_jump): Likewise.
18747 * reorg.c (simplejump_or_return_p): Add checked cast when calling
18748 simplejump_p.
18749 (get_jump_flags): Strengthen param "insn" from rtx to
18750 const rtx_insn *.
18751 (get_branch_condition): Likewise.
18752 (condition_dominates_p): Likewise.
18753 (make_return_insns): Move declaration of local "pat" earlier, to
18754 after we've handled NONJUMP_INSN_P and non-sequences, using its
18755 methods to simplify the code and for type-safety.
18756 * rtl.h (find_constant_src): Strengthen param from const_rtx to
18757 const rtx_insn *.
18758 (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
18759 (condjump_p): Strengthen param from const_rtx to
18760 const rtx_insn *.
18761 (any_condjump_p): Likewise.
18762 (any_uncondjump_p): Likewise.
18763 (pc_set): Likewise.
18764 (condjump_label): Likewise.
18765 (simplejump_p): Likewise.
18766 (returnjump_p): Likewise.
18767 (onlyjump_p): Likewise.
18768 (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
18769 (invert_jump): Likewise.
18770 (condjump_in_parallel_p): Strengthen param from const_rtx to
18771 const rtx_insn *.
18772 * rtlanal.c (find_constant_src): Strengthen param from const_rtx
18773 to const rtx_insn *.
18774 * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
18775 to const rtx_insn *.
18776 * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
18777
18778 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18779
18780 * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
18781 above the conditional, and convert the check on GET_CODE to a
18782 dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
18783 the conditional. Simplify the conditional by using methods of
18784 "trial_seq".
18785
18786 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18787
18788 * haifa-sched.c (check_clobbered_conditions): Strengthen local
18789 "link" from rtx to rtx_insn_list *, and use its methods for
18790 clarity and type-safety.
18791 (toggle_cancelled_flags): Likewise.
18792 (restore_last_backtrack_point): Likewise.
18793 (queue_to_ready): Use insn method of "link" in one place.
18794 (schedule_block): Strengthen local "link" from rtx to
18795 rtx_insn_list *, and use its methods for clarity and type-safety.
18796
18797 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18798
18799 * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
18800 param "insn" from const_rtx to const rtx_insn *.
18801 (sched_get_reverse_condition_uncached): Likewise.
18802 (sched_get_condition_with_rev): Likewise.
18803 (sched_has_condition_p): Likewise.
18804 (sched_insns_conditions_mutex_p): Likewise for both params.
18805 (sched_insn_is_legitimate_for_speculation_p): Likewise for param
18806 "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
18807 (setup_insn_reg_uses): Move local "list" to be more tightly
18808 scoped, strengthening it from an rtx to an rtx_insn_list *. Use
18809 its methods for clarity and type-safety.
18810 (sched_analyze_1): Strengthen local "pending" from rtx to
18811 rtx_insn_list *, and local "pending_mem" from rtx to
18812 rtx_expr_list *. Use methods of each for clarity and type-safety.
18813 (sched_analyze_2): Likewise.
18814 (sched_analyze_insn): Likewise.
18815
18816 * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
18817 param from const_rtx to const rtx_insn *.
18818 (sched_insns_conditions_mutex_p): Likewise for both params.
18819 (sched_insn_is_legitimate_for_speculation_p): Likewise for first
18820 param.
18821
18822 * system.h (CONST_CAST_RTX_INSN): New macro.
18823
18824 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18825
18826 * recog.c (peep2_attempt): Strengthen return type from rtx to
18827 rtx_insn *.
18828 (peep2_update_life): Likewise for params "last", "prev", removing
18829 a checked cast made redundant by this.
18830 (peephole2_optimize): Likewise for local "last".
18831
18832 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18833
18834 * basic-block.h (set_block_for_insn): Eliminate this macro in
18835 favor of...
18836 * rtl.h (set_block_for_insn): New inline function, imposing the
18837 requirement that the "insn" param is an rtx_insn *.
18838
18839 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18840
18841 * caller-save.c (setup_save_areas): Strengthen local "insn" from
18842 rtx to rtx_insn *.
18843 * final.c (get_call_reg_set_usage): Likewise for first param,
18844 eliminating a checked cast.
18845 * regs.h (get_call_reg_set_usage): Likewise for first param.
18846 * resource.c (mark_set_resources): Introduce local rtx_call_insn *
18847 "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
18848 cast, replacing references to "x" with "call_insn" where
18849 appropriate.
18850 (mark_target_live_regs): Strengthen local "real_insn" from rtx to
18851 rtx_insn *, adding a checked cast.
18852
18853 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18854
18855 * output.h (final_scan_insn): Strengthen first param from rtx to
18856 rtx_insn *.
18857
18858 * final.c (final_scan_insn): Likewise, renaming it back from
18859 "uncast_insn" to "insn", eliminating the checked cast.
18860
18861 * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
18862 "vec" with an rtx_sequence * "seq", taking a copy of
18863 "final_sequence", and using methods of "seq" for clarity, and for
18864 type-safety in the calls to final_scan_insn.
18865 * config/mips/mips.c (mips_output_conditional_branch): Use methods
18866 of "final_sequence" for clarity, and for type-safety in the call to
18867 final_scan_insn.
18868 * config/sh/sh.c (print_slot): Strengthen param from rtx to
18869 rtx_sequence * and rename from "insn" to "seq".
18870
18871 2014-09-05 David Malcolm <dmalcolm@redhat.com>
18872
18873 * jump.c (delete_related_insns): Introduce a new local "table" by
18874 replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
18875 get_labels method of "table" to simplify access to the labels in
18876 the jump table.
18877
18878 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18879
18880 * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
18881 f_minmaxs, f_minmaxd types.
18882
18883 2014-09-05 Richard Biener <rguenther@suse.de>
18884
18885 * cfgloop.c (mark_loop_for_removal): Record former header
18886 when ENABLE_CHECKING.
18887 * cfgloop.h (strut loop): Add former_header member when
18888 ENABLE_CHECKING.
18889 * loop-init.c (fix_loop_structure): Sanity check loops
18890 marked for removal if they re-appeared.
18891
18892 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
18893
18894 * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
18895 uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
18896
18897 (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
18898 vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
18899 vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
18900 vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
18901 vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
18902 vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
18903 vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
18904 vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
18905 vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
18906 vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
18907 vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
18908 vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
18909 vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
18910 vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
18911 vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
18912 vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
18913 vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
18914 vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
18915 vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
18916 vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
18917 with int{32,16,8}_t.
18918
18919 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
18920
18921 * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
18922 (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
18923 vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
18924 vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
18925 Remove temporary __asm__ and reimplement.
18926
18927 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
18928
18929 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
18930 handling cmge, cmgt, cmeq, cmtst.
18931
18932 * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
18933 cmlt, cmgeu, cmgtu, cmtst): Remove.
18934
18935 * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
18936 vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
18937 vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
18938 vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
18939
18940 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
18941
18942 * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
18943 TYPES_TST): Define.
18944 (aarch64_fold_builtin): Update pattern for cmtst.
18945
18946 * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
18947 Declare.
18948
18949 * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
18950
18951 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
18952 Switch operands, separate out more cases, refactor.
18953
18954 (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
18955
18956 * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
18957 argument; rename old version to...
18958 (aarch64_const_vec_all_same_in_range_p): ...this.
18959 (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
18960
18961 * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
18962
18963 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
18964
18965 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
18966 Remove qualifier_const_pointer, update comment.
18967
18968 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
18969
18970 * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
18971
18972 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
18973
18974 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
18975 varargs with pointer parameter.
18976 (aarch64_simd_expand_builtin): pass pointer into previous.
18977
18978 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18979
18980 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
18981 alus_ext.
18982
18983 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
18984
18985 * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
18986 * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
18987 * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
18988 Replace temporary asm with call to builtin.
18989 (vrbit_p8, vrbitq_p8): New functions.
18990
18991 2014-09-05 Richard Biener <rguenther@suse.de>
18992
18993 * cfgloop.c (mark_loop_for_removal): New function.
18994 * cfgloop.h (mark_loop_for_removal): Declare.
18995 * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
18996 (merge_blocks): Likewise.
18997 (duplicate_block): Likewise.
18998 * except.c (sjlj_emit_dispatch_table): Likewise.
18999 * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
19000 * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
19001 (thread_through_loop_header): Likewise.
19002
19003 2014-09-05 Richard Biener <rguenther@suse.de>
19004
19005 PR middle-end/63148
19006 * fold-const.c (try_move_mult_to_index): Remove.
19007 (fold_binary_loc): Do not call it.
19008 * tree-data-ref.c (dr_analyze_indices): Strip conversions
19009 from the base object again.
19010
19011 2014-09-05 James Greenhalgh <james.greenhalgh@arm.com>
19012
19013 * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
19014 DImode.
19015
19016 2014-09-05 Bin Cheng <bin.cheng@arm.com>
19017
19018 PR target/55701
19019 * config/arm/arm.md (setmem): New pattern.
19020 * config/arm/arm-protos.h (struct tune_params): New fields.
19021 (arm_gen_setmem): New prototype.
19022 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
19023 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
19024 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
19025 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
19026 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
19027 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
19028 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
19029 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
19030 (arm_const_inline_cost): New function.
19031 (arm_block_set_max_insns): New function.
19032 (arm_block_set_non_vect_profit_p): New function.
19033 (arm_block_set_vect_profit_p): New function.
19034 (arm_block_set_unaligned_vect): New function.
19035 (arm_block_set_aligned_vect): New function.
19036 (arm_block_set_unaligned_non_vect): New function.
19037 (arm_block_set_aligned_non_vect): New function.
19038 (arm_block_set_vect, arm_gen_setmem): New functions.
19039
19040 2014-09-05 Bin Cheng <bin.cheng@arm.com>
19041
19042 * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
19043
19044 2014-09-05 Bin Cheng <bin.cheng@arm.com>
19045
19046 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
19047
19048 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
19049
19050 * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
19051 an rtx.
19052 * valtrack.h: Adjust.
19053
19054 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
19055
19056 * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
19057 an rtx.
19058 (emit_jump_insn_before_noloc): Likewise.
19059 (emit_call_insn_before_noloc): Likewise.
19060 (emit_label_before): Likewise.
19061 (emit_label_after): Likewise.
19062 (emit_insn_before_setloc): Likewise.
19063 (emit_jump_insn_before_setloc): Likewise.
19064 (emit_call_insn_before_setloc): Likewise.
19065 (emit_call_insn_before): Likewise.
19066 * rtl.h: Adjust.
19067
19068 2014-09-05 David Malcolm <dmalcolm@redhat.com>
19069
19070 * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
19071 rtx_insn *, eliminating a checked cast.
19072
19073 2014-09-05 David Malcolm <dmalcolm@redhat.com>
19074
19075 * rtl.h (modified_between_p): Strengthen params 2 and 3 from
19076 const_rtx to const rtx_insn *.
19077 * rtlanal.c (modified_between_p): Likewise, eliminating a checked
19078 cast.
19079
19080 2014-09-05 David Malcolm <dmalcolm@redhat.com>
19081
19082 * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
19083 fixup_args_size_notes.
19084 * expr.c (fixup_args_size_notes): Strengthen first two params from
19085 rtx to rtx_insn *, eliminating a checked cast.
19086 * rtl.h (fixup_args_size_notes): Strengthen first two params from
19087 rtx to rtx_insn *.
19088
19089 2014-09-05 David Malcolm <dmalcolm@redhat.com>
19090
19091 * haifa-sched.c (get_ready_element): Strengthen return type from
19092 rtx to rtx_insn *.
19093 * sched-int.h (get_ready_element): Likewise.
19094
19095 2014-09-04 Segher Boessenkool <segher@kernel.crashing.org>
19096
19097 PR target/63165
19098 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
19099 indexed_or_indirect_operand instead of memory_operand.
19100 (floatsi<mode>2_lfiwzx_mem): Ditto.
19101
19102 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
19103
19104 * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
19105 config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
19106 ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
19107
19108 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
19109
19110 * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
19111 rtx.
19112 (get_last_nonnote_insn): Likewise.
19113 (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
19114 * resource.c (find_basic_block): Likewise.
19115 * rtl.h: Adjust.
19116 * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
19117 const_rtx.
19118
19119 2014-09-04 David Malcolm <dmalcolm@redhat.com>
19120
19121 * genattr.c (main): Within the prototype of insn_latency written
19122 out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
19123 * genautomata.c (output_internal_maximal_insn_latency_func):
19124 Within the implementation of insn_latency written out to
19125 insn-automata.c, strengthen both params from rtx to rtx_insn *,
19126 eliminating a pair of checked casts.
19127
19128 2014-09-04 David Malcolm <dmalcolm@redhat.com>
19129
19130 * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
19131 rtx_insn *.
19132
19133 * rtl.h (eh_returnjump_p): Likewise.
19134
19135 2014-09-04 Aldy Hernandez <aldyh@redhat.com>
19136
19137 * Makefile.in (TAGS): Handle constructs in timevar.def.
19138
19139 2014-09-04 Guozhi Wei <carrot@google.com>
19140
19141 PR target/62040
19142 * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
19143 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
19144 it into two patterns.
19145 (move_lo_quad_internal_be_<mode>): Likewise.
19146
19147 2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
19148
19149 * doc/options.texi: Document that Var and Init are required if CPP
19150 is given.
19151 * optc-gen.awk: Require Var and Init if CPP is given.
19152 * common.opt (Wpedantic): Use Init.
19153
19154 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19155
19156 * config/rs6000/rs6000.c (special_handling_values): Add
19157 SH_EXTRACT.
19158 (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
19159 wrapped in a VEC_DUPLICATE, representing an extract. Mark these
19160 as swappable with special handling SH_EXTRACT. Remove
19161 UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
19162 optimization.
19163 (adjust_extract): New function.
19164 (handle_special_swappables): Add default to case statement; add
19165 case for SH_EXTRACT that calls adjust_extract.
19166 (dump_swap_insn_table): Handle SH_EXTRACT.
19167
19168 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19169
19170 * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
19171 selection of 0th memory doubleword, regardless of endianness.
19172
19173 2014-09-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
19174
19175 * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
19176
19177 2014-09-04 Alan Modra <amodra@gmail.com>
19178
19179 PR debug/60655
19180 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
19181 can't be output.
19182
19183 2014-09-03 Matthew Fortune <matthew.fortune@imgtec.com>
19184
19185 * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
19186 * targhooks.c (default_dwarf_frame_reg_mode): New function.
19187 * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
19188 * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
19189 * doc/tm.texi: Regenerate.
19190 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
19191 selection logic to default_dwarf_frame_reg_mode.
19192
19193 2014-09-03 Marek Polacek <polacek@redhat.com>
19194
19195 * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
19196 by -Wall.
19197
19198 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
19199
19200 * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
19201 the automodified register.
19202
19203 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
19204
19205 * output.h (get_some_local_dynamic_name): Declare.
19206 * final.c (some_local_dynamic_name): New variable.
19207 (get_some_local_dynamic_name): New function.
19208 (final_end_function): Clear some_local_dynamic_name.
19209 * config/alpha/alpha.c (machine_function): Remove some_ld_name.
19210 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19211 (print_operand): Report an error if '%&' is used inappropriately.
19212 * config/i386/i386.c (get_some_local_dynamic_name): Delete.
19213 (get_some_local_dynamic_name_1): Delete.
19214 * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
19215 (rs6000_get_some_local_dynamic_name): Delete.
19216 (rs6000_get_some_local_dynamic_name_1): Delete.
19217 (print_operand): Report an error if '%&' is used inappropriately.
19218 * config/s390/s390.c (machine_function): Remove some_ld_name.
19219 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19220 (print_operand): Assert that get_some_local_dynamic_name is nonnull.
19221 * config/sparc/sparc.c: Include rtl-iter.h.
19222 (machine_function): Remove some_ld_name.
19223 (sparc_print_operand): Report an error if '%&' is used inappropriately.
19224 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19225
19226 2014-09-03 Richard Henderson <rth@redhat.com>
19227
19228 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
19229 (aarch64_popwb_pair_reg): Remove.
19230 (aarch64_set_frame_expr): Remove.
19231 (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
19232 the restore ops performed by the insns generated.
19233 (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
19234 insn. Perform the calls_eh_return addition later; do not attempt to
19235 preserve the CFA in that case. Don't use aarch64_set_frame_expr.
19236 (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
19237 special markup at all. Load cfun->machine->frame.hard_fp_offset
19238 into a local variable.
19239 (aarch64_frame_pointer_required): Don't check calls_alloca.
19240
19241 2014-09-03 Richard Biener <rguenther@suse.de>
19242
19243 * opts.c (default_options_optimization): Adjust
19244 max-combine-insns to 2 for -Og.
19245
19246 2014-09-03 Martin Jambor <mjambor@suse.cz>
19247
19248 PR ipa/62015
19249 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
19250 pass-trough jump functions correctly.
19251
19252 2014-09-03 Martin Jambor <mjambor@suse.cz>
19253
19254 PR ipa/61986
19255 * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
19256 created replacements in ascending order of offsets.
19257 (known_aggs_to_agg_replacement_list): Likewise.
19258
19259 2014-09-03 Martin Liska <mliska@suse.cz>
19260
19261 * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
19262 is set to set uninitialized value for vnresult.
19263
19264 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19265
19266 * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
19267 for TARGET_MUST_PASS_IN_STACK.
19268
19269 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19270
19271 * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
19272 for TARGET_ARG_PARTIAL_BYTES.
19273
19274 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19275
19276 * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
19277 instructions for varargs implementation.
19278 (nds32_expand_epilogue): Emit stack adjustment instructions for
19279 varargs implementation.
19280
19281 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19282
19283 * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
19284 optimization detection.
19285
19286 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19287
19288 * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
19289 arguments.
19290 (nds32_function_arg_advance): Deal with nameless arguments.
19291 * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
19292 (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
19293 (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
19294
19295 2014-09-03 Richard Biener <rguenther@suse.de>
19296
19297 * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
19298 (struct bb_bitmap_sets): Remove deferred member.
19299 (BB_DEFERRED): Remove.
19300 (defer_or_phi_translate_block): Remove.
19301 (compute_antic_aux): Remove deferring of blocks, assert
19302 proper iteration order.
19303 (compute_antic): Do not set BB_DEFERRED.
19304 (eliminate): Allocate el_avail of proper size initially.
19305
19306 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19307
19308 * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
19309 according to the value of crtl->args.pretend_args_size.
19310
19311 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19312
19313 * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
19314 varargs information.
19315
19316 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19317
19318 * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
19319 implementation for TARGET_SETUP_INCOMING_VARARGS.
19320 (nds32_strict_argument_naming): Refine comment.
19321 * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
19322 Define for future implementation.
19323
19324 2014-09-03 Ilya Tocar <ilya.tocar@intel.com>
19325
19326 * config/i386/adxintrin.h (_subborrow_u32): New.
19327 (_addcarry_u32): Ditto.
19328 (_subborrow_u64): Ditto.
19329 (_addcarry_u64): Ditto.
19330 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
19331 IX86_BUILTIN_SBB64.
19332 (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
19333 __builtin_ia32_sbb_u64
19334
19335 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19336
19337 * config/nds32/nds32.c (nds32_function_arg): Define and rename some
19338 GPR-specific stuff.
19339 (nds32_function_arg_advance): Likewise.
19340 (nds32_init_cumulative_args): Likewise.
19341 * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
19342 (NDS32_FIRST_GPR_REGNUM): Define.
19343 (NDS32_LAST_GPR_REGNUM): Define.
19344 (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
19345 (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
19346 (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
19347 (machine_function): Use GRP-specific stuff.
19348
19349 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19350
19351 * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
19352 (nds32_expand_epilogue): Likewise.
19353 (nds32_expand_prologue_v3push): Likewise.
19354 (nds32_expand_epilogue_v3pop): Likewise.
19355
19356 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19357
19358 * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
19359 v3push/v3pop for variadic function.
19360 * config/nds32/nds32.md (prologue, epilogue): Likewise.
19361
19362 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19363
19364 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
19365 Check rtx for varargs implementation.
19366 (nds32_output_stack_pop): Likewise.
19367 * config/nds32/nds32-protos.h: Have a rtx argument for
19368 nds32_output_stack_push and nds32_output_stack_pop.
19369 * config/nds32/nds32.md: Likewise.
19370
19371 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19372
19373 * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
19374 to check if FUNC is an interrupt service routine.
19375 * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
19376
19377 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19378
19379 * config/nds32/nds32.h (machine_function): Add some fields for variadic
19380 arguments implementation.
19381
19382 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19383
19384 * config/nds32/nds32-predicates.c
19385 (nds32_valid_stack_push_pop): Rename to ...
19386 (nds32_valid_stack_push_pop_p): ... this.
19387 * config/nds32/nds32-protos.h: Likewise.
19388 * config/nds32/predicates.md: Likewise.
19389
19390 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19391
19392 * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
19393 (nds32_emit_stack_v3push): ... this.
19394 (nds32_gen_stack_v3pop): Rename to ...
19395 (nds32_emit_stack_v3pop): ... this and consider CFA restore
19396 information.
19397
19398 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19399
19400 * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
19401 (nds32_emit_stack_push_multiple): ... this.
19402 (nds32_gen_stack_pop_multiple): Rename to ...
19403 (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
19404 information.
19405
19406 2014-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19407
19408 PR target/61078
19409 * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
19410 and add a second splitter to handle the remaining cases.
19411
19412 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
19413
19414 * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
19415
19416 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
19417
19418 * cfgexpand.c (label_rtx_for_bb): Change type to
19419 hash_map<basic_block, rtx_code_label *> *.
19420 (expand_gimple_basic_block): Adjust.
19421 (pass_expand::execute): Likewise.
19422
19423 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
19424
19425 * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
19426 config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
19427 config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
19428 config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
19429 config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
19430 config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
19431 stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
19432 of rtx.
19433
19434 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
19435
19436 * alloc-pool.c: Include coretypes.h.
19437 * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
19438 function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
19439 hash_set instead of htab.
19440 * ggc-page.c (in_gc): New variable.
19441 (ggc_free): Do nothing if a collection is taking place.
19442 (ggc_collect): Set in_gc appropriately.
19443 * ggc.h (gt_ggc_mx(const char *)): New function.
19444 (gt_pch_nx(const char *)): Likewise.
19445 (gt_ggc_mx(int)): Likewise.
19446 (gt_pch_nx(int)): Likewise.
19447 * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
19448 (hash_map::hash_entry::pch_nx): Likewise.
19449 (hash_map::hash_entry::pch_nx_helper): Likewise.
19450 (hash_map::hash_map): Adjust.
19451 (hash_map::create_ggc): New function.
19452 (gt_ggc_mx): Likewise.
19453 (gt_pch_nx): Likewise.
19454 * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
19455 (default_hashset_traits::pch_nx): Likewise.
19456 (hash_set::hash_entry::ggc_mx): Likewise.
19457 (hash_set::hash_entry::pch_nx): Likewise.
19458 (hash_set::hash_entry::pch_nx_helper): Likewise.
19459 (hash_set::hash_set): Adjust.
19460 (hash_set::create_ggc): New function.
19461 (hash_set::elements): Likewise.
19462 (gt_ggc_mx): Likewise.
19463 (gt_pch_nx): Likewise.
19464 * hash-table.h (hash_table::hash_table): Adjust.
19465 (hash_table::m_ggc): New member.
19466 (hash_table::~hash_table): Adjust.
19467 (hash_table::expand): Likewise.
19468 (hash_table::empty): Likewise.
19469 (gt_ggc_mx): New function.
19470 (hashtab_entry_note_pointers): Likewise.
19471 (gt_pch_nx): Likewise.
19472
19473 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19474
19475 * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New
19476 built-in definition.
19477 (XVCVUXDDP_SCALE): Likewise.
19478 (XVCVDPSXDS_SCALE): Likewise.
19479 (XVCVDPUXDS_SCALE): Likewise.
19480 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
19481 entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
19482 VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
19483 VSX_BUILTIN_XVCVDPUXDS_SCALE.
19484 * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
19485 prototype.
19486 * config/rs6000/rs6000.c (real.h): New include.
19487 (rs6000_scale_v2df): New function.
19488 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
19489 (UNSPEC_VSX_XVCVUXDDP): Likewise.
19490 (UNSPEC_VSX_XVCVDPSXDS): Likewise.
19491 (UNSPEC_VSX_XVCVDPUXDS): Likewise.
19492 (vsx_xvcvsxddp_scale): New define_expand.
19493 (vsx_xvcvsxddp): New define_insn.
19494 (vsx_xvcvuxddp_scale): New define_expand.
19495 (vsx_xvcvuxddp): New define_insn.
19496 (vsx_xvcvdpsxds_scale): New define_expand.
19497 (vsx_xvcvdpsxds): New define_insn.
19498 (vsx_xvcvdpuxds_scale): New define_expand.
19499 (vsx_xvcvdpuxds): New define_insn.
19500 * doc/extend.texi (vec_ctf): Add new prototypes.
19501 (vec_cts): Likewise.
19502 (vec_ctu): Likewise.
19503 (vec_splat): Likewise.
19504 (vec_div): Likewise.
19505 (vec_mul): Likewise.
19506
19507 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19508
19509 PR target/62275
19510 * config/arm/neon.md
19511 (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
19512 <v_cmp_result>): New pattern.
19513 * config/arm/iterators.md (NEON_VCVT): New int iterator.
19514 * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
19515 vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
19516 vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
19517 * config/arm/arm.c (arm_builtin_vectorized_function): Handle
19518 BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
19519
19520 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19521
19522 PR target/62275
19523 * config/arm/iterators.md (FIXUORS): New code iterator.
19524 (VCVT): New int iterator.
19525 (su_optab): New code attribute.
19526 (su): Likewise.
19527 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
19528
19529 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19530
19531 * config/aarch64/predicates.md (aarch64_comparison_operation):
19532 New special predicate.
19533 * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
19534 aarch64_comparison_operation instead of matching an operator.
19535 Update operand numbers.
19536 (csinc3<mode>_insn): Likewise.
19537 (*csinv3<mode>_insn): Likewise.
19538 (*csneg3<mode>_insn): Likewise.
19539 (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
19540 * config/aarch64/aarch64.c (aarch64_get_condition_code):
19541 Return -1 instead of aborting on invalid condition codes.
19542 (aarch64_print_operand): Update aarch64_get_condition_code callsites
19543 to assert that the returned condition code is valid.
19544 * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
19545
19546 2014-09-02 Aldy Hernandez <aldyh@redhat.com>
19547
19548 * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
19549 tree.def, and gimple.def
19550
19551 2014-09-02 Jakub Jelinek <jakub@redhat.com>
19552 Balaji V. Iyer <balaji.v.iyer@intel.com>
19553 Igor Zamyatin <igor.zamyatin@intel.com>
19554
19555 * cilk-builtins.def (__cilkrts_cilk_for_32): New.
19556 (__cilkrts_cilk_for_64): Likewise.
19557 * cilk-common.c (declare_cilk_for_builtin): New function.
19558 (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
19559 __cilkrts_cilk_for_64 bultins.
19560 * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
19561 CILK_TI_F_LOOP_64.
19562 (cilk_for_32_fndecl): New define.
19563 (cilk_for_64_fndecl): Likewise.
19564 * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
19565 GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
19566 * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
19567 GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
19568 GF_OMP_FOR_COMBINED_INTO.
19569 * gimplify.c (gimplify_scan_omp_clauses): Added
19570 OMP_CLAUSE__CILK_FOR_COUNT_ case.
19571 (gimplify_adjust_omp_clauses): Ditto.
19572 (gimplify_omp_for): Added CILK_FOR case.
19573 (gimplify_expr): Ditto.
19574 * omp-low.c: Include cilk.h.
19575 (extract_omp_for_data): Set appropriate kind for
19576 GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
19577 (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
19578 (create_omp_child_function_name): Added second argument to handle
19579 cilk_for case.
19580 (cilk_for_check_loop_diff_type): New function.
19581 (expand_cilk_for_call): Likewise.
19582 (expand_cilk_for): Likewise.
19583 (create_omp_child_function): Set cilk_for_count; handle the cases when
19584 it is true; call create_omp_child_function_name with second argument.
19585 (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
19586 (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
19587 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
19588 * tree-nested.c (convert_nonlocal_omp_clauses): Added
19589 OMP_CLAUSE__CILK_FOR_COUNT_ case.
19590 (convert_local_omp_clauses): Ditto.
19591 * tree-pretty-print.c (dump_omp_clause): Added
19592 OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
19593 (dump_generic_node): Added CILK_FOR case.
19594 * tree.c (omp_clause_num_ops): New element
19595 OMP_CLAUSE__CILK_FOR_COUNT_ (1).
19596 (omp_clause_code_name): New element _Cilk_for_count_.
19597 (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
19598 * tree.def: Add tree code for CILK_FOR.
19599
19600 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
19601
19602 * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
19603 (ppc403-compare): Add "exts with dot" case.
19604 * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
19605 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
19606 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
19607 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
19608 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
19609 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
19610 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
19611 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19612 cell-cmp-microcoded): Similarly.
19613 * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
19614 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
19615 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
19616 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
19617 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
19618 * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
19619 * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
19620 * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
19621 (power6-compare): Add "exts with dot" case.
19622 * config/rs6000/power7.md (power7-integer, power7-compare): As before.
19623 * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
19624 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
19625
19626 * config/rs6000/predicates.md (lwa_operand): Don't allow memory
19627 if avoiding Cell microcode.
19628 * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
19629 (is_cracked_insn): Ditto.
19630 (insn_must_be_first_in_group): Ditto.
19631 * config/rs6000/rs6000.md (dot): Adjust comment.
19632 (cell_micro): Handle exts+dot.
19633 (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
19634 *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
19635 extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
19636 (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
19637 extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
19638 *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
19639 *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
19640
19641 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
19642
19643 * config/rs6000/rs6000.md (QHSI): Delete.
19644 (EXTQI, EXTHI, EXTSI): New mode iterators.
19645 (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
19646 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
19647 *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
19648 9 anonymous instructions, and 8 splitters): Delete.
19649 (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
19650 *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
19651 *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
19652 zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
19653 *zero_extendsi<mode>2_dot2): New.
19654
19655 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
19656
19657 * config/rs6000/rs6000.md (any_extend): New code iterator.
19658 (u, su): New code attributes.
19659 (dmode, DMODE): New mode attributes.
19660 (<su>mul<mode>3_highpart): New.
19661 (*<su>mul<mode>3_highpart): New.
19662 (<su>mulsi3_highpart_le): New.
19663 (<su>muldi3_highpart_le): New.
19664 (<su>mulsi3_highpart_64): New.
19665 (<u>mul<mode><dmode>3): New.
19666 (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
19667 splitters): Delete.
19668 (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
19669 splitters): Delete.
19670
19671 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
19672
19673 * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
19674 *mulsi3_internal2, and two splitters): Delete.
19675 (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
19676 Delete.
19677 (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
19678
19679 2014-09-02 Richard Biener <rguenther@suse.de>
19680
19681 PR tree-optimization/62695
19682 * tree-ssa-structalias.c (find_func_clobbers): Add missing
19683 vector truncate.
19684
19685 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
19686
19687 PR target/62312
19688 * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
19689
19690 2014-09-01 Andi Kleen <ak@linux.intel.com>
19691
19692 * file-find.c (add_prefix_begin): Add.
19693 (do_add_prefix): Rename from add_prefix with first argument.
19694 (add_prefix): Add new wrapper.
19695 * file-find.h (add_prefix_begin): Add.
19696 * gcc-ar.c (main): Support -B option.
19697
19698 2014-09-01 Segher Boessenkool <segher@kernel.crashing.org>
19699
19700 * genemit.c: Include dumpfile.h.
19701 (gen_split): Print name of splitter function to dump file.
19702
19703 2014-09-01 Richard Biener <rguenther@suse.de>
19704
19705 * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
19706 Use stack auto_vecs for constraint expressions.
19707 (find_func_aliases_for_call): Likewise.
19708 (find_func_aliases): Likewise.
19709 (find_func_clobbers): Likewise.
19710
19711 2014-09-01 Richard Biener <rguenther@suse.de>
19712
19713 * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
19714 operands vector in most cases. Remove redundant code.
19715
19716 2014-09-01 Olivier Hainque <hainque@adacore.com>
19717
19718 * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
19719 $WIND_BASE instead of designating a harcoded arbitrary home dir.
19720 (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
19721
19722 2014-09-01 Richard Biener <rguenther@suse.de>
19723
19724 * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
19725 copy_reference_ops_from_call, vn_nary_op_compute_hash,
19726 vn_reference_compute_hash, vn_reference_insert): Remove.
19727 (vn_reference_lookup_call): New function.
19728 * tree-ssa-sccvn.c (vn_reference_compute_hash,
19729 copy_reference_ops_from_ref, copy_reference_ops_from_call,
19730 vn_reference_insert, vn_nary_op_compute_hash): Make static.
19731 (create_reference_ops_from_call): Remove.
19732 (vn_reference_lookup_3): Properly update shared_lookup_references.
19733 (vn_reference_lookup_pieces): Assert that we updated
19734 shared_lookup_references properly.
19735 (vn_reference_lookup): Likewise.
19736 (vn_reference_lookup_call): New function.
19737 (visit_reference_op_call): Use it. Avoid re-building the
19738 reference ops.
19739 (visit_reference_op_load): Remove redundant lookup.
19740 (visit_reference_op_store): Perform special tail-merging work
19741 only when possibly doing tail-merging.
19742 (visit_use): Likewise.
19743 * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
19744
19745 2014-09-01 Jakub Jelinek <jakub@redhat.com>
19746
19747 PR target/62025
19748 * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
19749 returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
19750 (find_inc): Revert 2014-08-13 change.
19751
19752 2014-09-01 Marek Polacek <polacek@redhat.com>
19753
19754 PR middle-end/61903
19755 * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
19756 Change the type of V to unsigned HOST_WIDE_INT.
19757
19758 2014-09-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
19759
19760 * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
19761 the size of byte markers.
19762 (do_shift_rotate): Fix confusion between host, target and marker byte
19763 size.
19764 (verify_symbolic_number_p): Likewise.
19765 (find_bswap_or_nop_1): Likewise.
19766 (find_bswap_or_nop): Likewise.
19767
19768 2014-09-01 Olivier Hainque <hainque@adacore.com>
19769
19770 * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
19771 INSTALL_SCRIPT and INSTALL_PROGRAM as well.
19772
19773 2014-09-01 Jakub Jelinek <jakub@redhat.com>
19774
19775 * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
19776 * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
19777 (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
19778
19779 2014-09-01 Yury Gribov <y.gribov@samsung.com>
19780
19781 PR sanitizer/61897
19782 PR sanitizer/62140
19783 * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
19784 (build_check_stmt): Likewise.
19785 (instrument_strlen_call): Likewise.
19786 (asan_expand_check_ifn): Likewise and fix types.
19787 (maybe_cast_to_ptrmode): New function.
19788
19789 2014-09-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
19790
19791 * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
19792
19793 2014-08-31 Gerald Pfeifer <gerald@pfeifer.com>
19794
19795 * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
19796
19797 2014-08-30 John David Anglin <danglin@gcc.gnu.org>
19798
19799 * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
19800 prefix to function labels when generating fast indirect calls.
19801
19802 2014-08-30 David Malcolm <dmalcolm@redhat.com>
19803
19804 PR bootstrap/62304
19805
19806 * gcc/reorg.c (skip_consecutive_labels): Convert return type and
19807 param back from rtx_insn * to rtx. Rename param from "label" to
19808 "label_or_return", reintroducing "label" as an rtx_insn * after
19809 we've ensured it's not a RETURN.
19810 (first_active_target_insn): Likewise for return type and param;
19811 add a checked cast to rtx_insn * once we've ensured "insn" is not
19812 a RETURN.
19813 (steal_delay_list_from_target): Convert param "pnew_thread" back
19814 from rtx_insn ** to rtx *. Replace use of JUMP_LABEL_AS_INSN
19815 with JUMP_LABEL.
19816 (own_thread_p): Convert param "thread" back from an rtx_insn * to
19817 an rtx. Introduce local rtx_insn * "thread_insn" with a checked
19818 cast once we've established we're not dealing with a RETURN,
19819 renaming subsequent uses of "thread" to "thread_insn".
19820 (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
19821 to JUMP_LABEL.
19822 (follow_jumps): Convert return type and param "label" from
19823 rtx_insn * back to rtx. Move initialization of "value" to after
19824 the handling for ANY_RETURN_P, adding a checked cast there to
19825 rtx_insn *. Convert local rtx_insn * "this_label" to an rtx and
19826 rename to "this_label_or_return", reintroducing "this_label" as
19827 an rtx_insn * once we've handled the case where it could be an
19828 ANY_RETURN_P.
19829 (fill_slots_from_thread): Rename param "thread" to
19830 "thread_or_return", converting from an rtx_insn * back to an rtx.
19831 Reintroduce name "thread" as an rtx_insn * local with a checked
19832 cast once we've handled the case of it being an ANY_RETURN_P.
19833 Convert local "new_thread" from an rtx_insn * back to an rtx.
19834 Add a checked cast when assigning to "trial" from "new_thread".
19835 Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL. Add a
19836 checked cast to rtx_insn * from "new_thread" when invoking
19837 get_label_before.
19838 (fill_eager_delay_slots): Convert locals "target_label",
19839 "insn_at_target" from rtx_insn * back to rtx.
19840 Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
19841 (relax_delay_slots): Convert locals "trial", "target_label" from
19842 rtx_insn * back to rtx. Convert uses of JUMP_LABEL_AS_INSN back
19843 to JUMP_LABEL. Add a checked cast to rtx_insn * on "trial" when
19844 invoking update_block.
19845 (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
19846 JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
19847
19848 * resource.h (mark_target_live_regs): Undo erroneous conversion
19849 of second param of r214693, converting it back from rtx_insn * to
19850 rtx, since it could be a RETURN.
19851
19852 * resource.c (find_dead_or_set_registers): Similarly, convert
19853 param "jump_target" back from an rtx_insn ** to an rtx *, as we
19854 could be writing back a RETURN. Rename local rtx_insn * "next" to
19855 "next_insn", and introduce "lab_or_return" as a local rtx,
19856 handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
19857 (mark_target_live_regs): Undo erroneous conversion
19858 of second param of r214693, converting it back from rtx_insn * to
19859 rtx, since it could be a RETURN. Rename it from "target" to
19860 "target_maybe_return", reintroducing the name "target" as a local
19861 rtx_insn * with a checked cast, after we've handled the case of
19862 ANY_RETURN_P.
19863
19864 2014-08-29 DJ Delorie <dj@redhat.com>
19865
19866 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
19867 pointer size up to a power of two.
19868 * defaults.h (DWARF2_ADDR_SIZE): Round up.
19869 (POINTER_SIZE_UNITS): New, rounded up value.
19870 * dwarf2asm.c (size_of_encoded_value): Use it.
19871 (dw2_output_indirect_constant_1): Likewise.
19872 * expmed.c (init_expmed_one_conv): We now know the sizes of
19873 partial int modes.
19874 * loop-iv.c (iv_number_of_iterations): Use precision, not size.
19875 * optabs.c (expand_float): Use precision, not size.
19876 (expand_fix): Likewise.
19877 * simplify-rtx (simplify_unary_operation_1): Likewise.
19878 * tree-dfa.c (get_ref_base_and_extent): Likewise.
19879 * varasm.c (assemble_addr_to_section): Round up pointer sizes.
19880 (default_assemble_integer) Likewise.
19881 (dump_tm_clone_pairs): Likewise.
19882 * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
19883 * var-tracking.c (adjust_mems): Allow partial-int modes also.
19884 (prepare_call_arguments): Likewise.
19885 * stor-layout.c (finalize_type_size): Preserve precision.
19886 (layout_type): Use precision, not size.
19887
19888 * expr.c (convert_move): If the target has an explicit converter,
19889 use it.
19890
19891 2014-08-29 David Malcolm <dmalcolm@redhat.com>
19892
19893 * gdbinit.in: Skip various inline functions in rtl.h when
19894 stepping.
19895
19896 2014-08-29 Richard Sandiford <richard.sandiford@arm.com>
19897
19898 PR bootstrap/62301
19899 * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
19900
19901 2014-08-29 Richard Biener <rguenther@suse.de>
19902
19903 PR tree-optimization/62291
19904 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
19905 exactly the vector size needed and use quick_push.
19906 (phi_translate_1): Adjust comment.
19907 (valid_in_sets): Remove block argument and remove pointless
19908 checking of NAMEs.
19909 (dependent_clean): Adjust for removal of block argument.
19910 (clean): Likewise.
19911 (compute_antic_aux): Likewise.
19912 (compute_partial_antic_aux): Likewise.
19913
19914 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
19915 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
19916 Anna Tikhonova <anna.tikhonova@intel.com>
19917 Ilya Tocar <ilya.tocar@intel.com>
19918 Andrey Turetskiy <andrey.turetskiy@intel.com>
19919 Ilya Verbin <ilya.verbin@intel.com>
19920 Kirill Yukhin <kirill.yukhin@intel.com>
19921 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
19922
19923 * config/i386/sse.md
19924 (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
19925 (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
19926 (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
19927 (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
19928
19929 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
19930 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
19931 Anna Tikhonova <anna.tikhonova@intel.com>
19932 Ilya Tocar <ilya.tocar@intel.com>
19933 Andrey Turetskiy <andrey.turetskiy@intel.com>
19934 Ilya Verbin <ilya.verbin@intel.com>
19935 Kirill Yukhin <kirill.yukhin@intel.com>
19936 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
19937
19938 * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
19939 * config/i386/sse.md
19940 (define_mode_iterator VI4_128_8_256): New.
19941 (define_mode_iterator VI2_128_4_256): Ditto.
19942 (define_mode_iterator PMOV_DST_MODE): Rename into
19943 (define_mode_iterator PMOV_DST_MODE_1): this.
19944 (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
19945 Use PMOV_DST_MODE_1 mode iterator.
19946 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
19947 Ditto.
19948 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
19949 Ditto.
19950 (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
19951 (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
19952 (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
19953 (define_mode_iterator PMOV_DST_MODE_2): New.
19954 (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
19955 (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
19956 (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
19957 Ditto.
19958 (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
19959 (define_mode_attr pmov_dst_3): Ditto.
19960 (define_mode_attr pmov_dst_zeroed_3): Ditto.
19961 (define_mode_attr pmov_suff_3): Ditto.
19962 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
19963 (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
19964 (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
19965 (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
19966 (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
19967 (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
19968 (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
19969 (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
19970 (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
19971 (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
19972 (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
19973 (define_mode_attr pmov_dst_4): Ditto.
19974 (define_mode_attr pmov_dst_zeroed_4): Ditto.
19975 (define_mode_attr pmov_suff_4): Ditto.
19976 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
19977 (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
19978 (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
19979 (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
19980 (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
19981 (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
19982 (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
19983 (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
19984 (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
19985 (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
19986 (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
19987
19988 2014-08-29 Richard Biener <rguenther@suse.de>
19989
19990 * tree-cfg.c (verify_gimple_assign_unary): Do not allow
19991 NON_LVALUE_EXPR in gimple.
19992
19993 2014-08-29 Richard Biener <rguenther@suse.de>
19994
19995 PR middle-end/62292
19996 * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
19997 from previous refactoring.
19998 (gimple_fold_builtin_strncpy): Likewise.
19999
20000 2014-08-29 David Malcolm <dmalcolm@redhat.com>
20001
20002 PR bootstrap/62300
20003 * function.c (assign_parm_setup_reg): Remove erroneous checked
20004 cast to rtx_insn * on result of gen_extend_insn in favor of
20005 introducing a new local rtx "pat".
20006
20007 2014-08-29 Jan-Benedict Glaw <jbglaw@lug-owl.de>
20008
20009 * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
20010 to silence warning.
20011 * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
20012
20013 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20014
20015 * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
20016 (next_insn): Likewise.
20017 * emit-rtl.c (next_insn): Likewise.
20018 (previous_insn): Likewise.
20019 * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
20020 "insn" and "next" from rtx to rtx_insn *.
20021 * config/picochip/picochip.c (picochip_reorg): Likewise for locals
20022 "insn", "insn1", "vliw_start", "prologue_end_note",
20023 "last_insn_in_packet".
20024
20025 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20026
20027 * shrink-wrap.h (active_insn_between): Strengthen both params from
20028 rtx to rtx_insn *.
20029 * function.c (active_insn_between): Likewise.
20030
20031 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20032
20033 * genattr.c (main): When writing out insn-attr.h, strengthen param
20034 of dfa_clear_single_insn_cache from rtx to rtx_insn *.
20035 * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
20036 writing out the definition of dfa_clear_single_insn_cache to the
20037 generated insn-automata.c
20038
20039 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20040
20041 * resource.h (clear_hashed_info_for_insn): Strengthen param from
20042 rtx to rtx_insn *.
20043 (incr_ticks_for_insn): Likewise.
20044 (init_resource_info): Likewise.
20045
20046 * resource.c (init_resource_info): Likewise.
20047 (clear_hashed_info_for_insn): Likewise.
20048 (incr_ticks_for_insn): Likewise.
20049
20050 * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
20051 rtx to rtx_insn *.
20052 (steal_delay_list_from_target): Use methods of "seq".
20053 (try_merge_delay_insns): Use methods of "merged_insns".
20054 (update_block): Strengthen param "insn" from rtx to rtx_insn *.
20055 (reorg_redirect_jump): Likewise for param "jump".
20056
20057 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20058
20059 * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
20060 rtx to rtx_insn *.
20061 * config/s390/s390.c (s390_split_branches): Eliminate top-level
20062 local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
20063 "set_insn".
20064 (s390_mainpool_finish): In three places, split out a local rtx
20065 "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
20066 "insn". Strengthen local "pool_end" from rtx to rtx_code_label *
20067 and split another local rtx "insn" out into rtx "pat" and
20068 rtx_insn * "insn".
20069 * config/sh/sh.c (output_branchy_insn): Rather than working
20070 directly on operands[9], introduce local rtx_code_label *
20071 variables named "lab" in two places, working on them, and then
20072 assigning them to operands[9], so that the intervening operations
20073 are known by the type system to be on insns.
20074
20075 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20076
20077 * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
20078 const rtx_insn *.
20079
20080 * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
20081 in invocation of INSN_HAS_LOCATION.
20082
20083 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20084
20085 * config/rs6000/altivec.h (vec_xl): New #define.
20086 (vec_xst): Likewise.
20087 * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
20088 (XXSPLTD_V2DI): Likewise.
20089 (DIV_V2DI): Likewise.
20090 (UDIV_V2DI): Likewise.
20091 (MUL_V2DI): Likewise.
20092 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20093 entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
20094 VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
20095 VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
20096 * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
20097 (UNSPEC_VSX_DIVSD): Likewise.
20098 (UNSPEC_VSX_DIVUD): Likewise.
20099 (UNSPEC_VSX_MULSD): Likewise.
20100 (vsx_mul_v2di): New insn-and-split.
20101 (vsx_div_v2di): Likewise.
20102 (vsx_udiv_v2di): Likewise.
20103 (vsx_xxspltd_<mode>): New insn.
20104
20105 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20106
20107 * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
20108 NEXT_INSN.
20109 (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
20110 (NEXT_INSN): Likewise.
20111 (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
20112 (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
20113 const rtx_insn *.
20114 (no_labels_between_p): Likewise for both params.
20115
20116 * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
20117 cast when using NEXT_INSN on operands[2].
20118 * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
20119 "insn" from rtx to rtx_insn *, adding a checked cast.
20120 (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
20121 rtx_insn *.
20122 * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
20123 for third param.
20124 (arc_text_label): Likewise for param "insn".
20125 * config/arc/arc.c (arc_expand_epilogue): Likewise for local
20126 "insn".
20127 (arc_ccfsm_record_condition): Likewise for param "jump".
20128 (arc_text_label): Likewise for local "label".
20129 * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
20130 Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
20131 a method for typesafety. Add a checked cast.
20132 * config/arc/constraints.md (Clb): Add a checked cast when getting
20133 the CODE_LABEL from a LABEL_REF.
20134 * config/arm/arm.c (require_pic_register): Strengthen locals
20135 "seq", "insn" from rtx to rtx_insn *.
20136 (create_fix_barrier): Likewise for locals "selected", "next".
20137 (thumb1_reorg): Likewise for locals "prev", "insn".
20138 (arm_expand_prologue): Likewise for local "last".
20139 (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
20140 operands[0].
20141 (thumb2_output_casesi): Likewise for operands[2].
20142 * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
20143 strengthen local "insn" from rtx to rtx_insn *.
20144 * config/bfin/bfin.c (find_next_insn_start): Likewise for return
20145 type and param "insn".
20146 (find_prev_insn_start): Likewise.
20147 (hwloop_optimize): Likewise for locals "insn", "last_insn",
20148 "prev".
20149 (gen_one_bundle): Likewise for loal "t".
20150 (find_load): Likewise for param "insn".
20151 (workaround_speculation): Likewise for locals "insn", "next",
20152 "target", "next_tgt".
20153 * config/c6x/c6x.c (assign_reservations): Likewise for both params
20154 and for locals "insn", "within", "last".
20155 (count_unit_reqs): Likewise for params "head", "tail" and local
20156 "insn".
20157 (try_rename_operands): Likewise for params "head", "tail".
20158 (reshuffle_units): Likewise for locals "head", "tail", "insn".
20159 (struct c6x_sched_context): Likewise for fields
20160 "last_scheduled_insn", "last_scheduled_iter0".
20161 (init_sched_state): Replace NULL_RTX with NULL.
20162 (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
20163 to rtx_insn *.
20164 (undo_split_delayed_nonbranch): Likewise for param and for local
20165 "prev".
20166 (conditionalize_after_sched): Likewise for local "insn".
20167 (bb_earliest_end_cycle): Likewise.
20168 (filter_insns_above): Likewise for locals "insn", "next".
20169 (hwloop_optimize): Remove redundant checked cast.
20170 (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
20171 * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
20172 NULL_RTX with NULL.
20173 (cris_simple_epilogue): Likewise.
20174 (cris_expand_prologue): Likewise.
20175 (cris_expand_epilogue): Likewise.
20176 * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
20177 local "insn" from rtx to rtx_insn *.
20178 (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
20179 (struct frv_packet_group): Likewise for the elements within array
20180 fields "insns", "sorted", and for field "nop".
20181 (frv_packet): Likewise for the elements within array field
20182 "insns".
20183 (frv_add_insn_to_packet): Likewise for param "insn".
20184 (frv_insert_nop_in_packet): Likewise for param "insn" and local
20185 "last".
20186 (frv_for_each_packet): Likewise for locals "insn", "next_insn".
20187 (frv_sort_insn_group_1): Likewise for local "insn".
20188 (frv_optimize_membar_local): Likewise.
20189 (frv_align_label): Likewise for locals "x", "last", "barrier",
20190 "label".
20191 * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
20192 local.
20193 (ia64_sched_init): Likewise for local "insn".
20194 (scheduled_good_insn): Likewise for param "last".
20195 (struct _ia64_sched_context): Likewise for field
20196 "last_scheduled_insn".
20197 (ia64_init_sched_context): Replace NULL_RTX with NULL.
20198 (struct bundle_state): Likewise for field "insn".
20199 (issue_nops_and_insn): Likewise for param "insn".
20200 (get_next_important_insn): Likewise for return type and both
20201 params.
20202 (ia64_add_bundle_selector_before): Likewise for param "insn".
20203 (bundling): Likewise for params "prev_head_insn", "tail" and
20204 locals "insn", "next_insn", "b". Eliminate top-level local rtx
20205 "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
20206 * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
20207 Strengthen final param from rtx to rtx_insn *.
20208 (iq2000_move_1word): Likewise for second param.
20209 * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
20210 param "cur_insn" and local "next_insn".
20211 (iq2000_move_1word): Likewise for param "insn".
20212 * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
20213 casts when using NEXT_INSN on operands[1].
20214 * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
20215 "insn" from rtx to rtx_insn *.
20216 * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
20217 "x", introducing local rtx_insn * "insn" for when working with the
20218 CODE_LABEL of the LABEL_REF.
20219 (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
20220 rtx_insn *.
20221 * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
20222 param.
20223 * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
20224 type.
20225 (conditionalize_block): Likewise for return type and param.
20226 (mcore_is_dead): Likewise for param "first" and local "insn".
20227 (emit_new_cond_insn): Likewise for return type.
20228 (conditionalize_block): Likewise for return type, param, and
20229 locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
20230 "newinsn".
20231 (conditionalize_optimization): Likewise for local "insn".
20232 * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
20233 using NEXT_INSN.
20234 * config/microblaze/microblaze.md: Add checked casts when using
20235 NEXT_INSN.
20236 * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
20237 rtx "insn" in favor of various more tightly-scoped rtx "insn" and
20238 and rtx_insn * "insn".
20239 * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
20240 checked cast when using NEXT_INSN on operands[2].
20241 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
20242 local "insn" from rtx to rtx_insn *.
20243 * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
20244 Likewise.
20245 * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
20246 Add a checked cast when using NEXT_INSN on operands[1].
20247 * config/pa/pa-protos.h (pa_following_call): Strengthen param from
20248 rtx to rtx_insn *.
20249 (pa_output_cbranch): Likewise for final param.
20250 (pa_output_lbranch): Likewise for second param.
20251 (pa_output_bb): Likewise for third param.
20252 (pa_output_bvb): Likewise.
20253 (pa_output_dbra): Likewise for second param.
20254 (pa_output_movb): Likewise.
20255 (pa_output_parallel_movb): Likewise.
20256 (pa_output_parallel_addb): Likewise.
20257 (pa_output_millicode_call): Likewise for first param.
20258 (pa_output_mul_insn): Likewise for second param.
20259 (pa_output_div_insn): Likewise for third param.
20260 (pa_output_mod_insn): Likewise for second param.
20261 (pa_jump_in_call_delay): Likewise for param.
20262 * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
20263 (pa_output_div_insn): Likewise.
20264 (pa_output_mod_insn): Likewise.
20265 (pa_output_cbranch): Likewise.
20266 (pa_output_lbranch): Likewise.
20267 (pa_output_bb): Likewise.
20268 (pa_output_bvb): Likewise.
20269 (pa_output_dbra): Likewise.
20270 (pa_output_movb): Likewise.
20271 (pa_output_millicode_call): Likewise; use method of rtx_sequence *
20272 to simplify and for typesafety.
20273 (pa_output_call): Use method of rtx_sequence *.
20274 (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
20275 (pa_jump_in_call_delay): Likewise.
20276 (pa_output_parallel_movb): Likewise.
20277 (pa_output_parallel_addb): Likewise.
20278 (pa_following_call): Likewise.
20279 (pa_combine_instructions): Likewise for locals "anchor",
20280 "floater".
20281 (pa_can_combine_p): Likewise for params "anchor", "floater" and
20282 locals "start", "end".
20283 * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
20284 param "insn" and local "local_insn".
20285 (picochip_final_prescan_insn): Likewise for local "local_insn".
20286 * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
20287 local "insn".
20288 (uses_TOC): Likewise.
20289 * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
20290 (s390_mainpool_finish): Eliminate top-level local rtx "insn",
20291 splitting out to more tightly-scoped locals, 3 as rtx and one as
20292 rtx_insn *.
20293 (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
20294 to rtx_insn *.
20295 (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
20296 where needed.
20297 * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
20298 to rtx_insn *.
20299 (fixup_addr_diff_vecs): Likewise.
20300 (reg_unused_after): Likewise for param 2.
20301 (sh_can_redirect_branch): Likewise for both params.
20302 (check_use_sfunc_addr): Likewise for param 1.
20303 * config/sh/sh.c (fixup_mova): Likewise for local "worker".
20304 (find_barrier): Likewise for local "last_got".
20305 (gen_block_redirect): Likewise for return type, param "jump" and
20306 locals "prev", "scan", "next", "insn".
20307 (struct far_branch): Likewise for fields "near_label",
20308 "insert_place", "far_label".
20309 (gen_far_branch): Likewise for local "jump".
20310 (fixup_addr_diff_vecs): Likewise for param "first" and locals
20311 "insn", "prev".
20312 (barrier_align): Likewise for param and for locals "prev", "x".
20313 Introduce local rtx_sequence * "prev_seq" and use insn method for
20314 typesafety and clarity.
20315 (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
20316 (get_dest_uid): Likewise for local "dest".
20317 (split_branches): Likewise for locals "next", "beyond", "label",
20318 "block", "far_label". Add checked casts when assigning to
20319 bp->far_label and "far_label".
20320 (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
20321 (sequence_insn_p): Likewise.
20322 (mark_constant_pool_use): Likewise for locals "insn", "lab". Add a
20323 more loop-scoped rtx "insn" when walking LABEL_REFS.
20324 (sh_can_redirect_branch): Strengthen both params from rtx to
20325 rtx_insn *.
20326 (check_use_sfunc_addr): Likewise for param "insn". Introduce a
20327 new local rtx_sequence * "seq" via a dyn_cast, and use a method
20328 for clarity and typesafety.
20329 * config/sh/sh.md (define_expand "epilogue"): Strengthen local
20330 "insn" from rtx to rtx_insn *.
20331 (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
20332 when using NEXT_INSN on the CODE_LABEL in operands[2].
20333 (define_insn "casesi_worker_2"): Likewise.
20334 (define_insn "casesi_shift_media"): Likewise.
20335 (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
20336 operands[3].
20337 * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
20338 Strengthen field "insn" from rtx to rtx_insn *.
20339 (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
20340 (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
20341 param "start_insn" and local "start_insn".
20342 * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
20343 field "insn".
20344 (find_set_of_reg_bb): Likewise for param "insn".
20345 (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
20346 (trace_reg_uses): Likewise for param "start_insn".
20347 (sh_treg_combine::cbranch_trace): Likewise for field
20348 "cbranch_insn".
20349 (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
20350 param "insn".
20351 (sh_treg_combine::record_set_of_reg): Likewise for param
20352 "start_insn" and local "i".
20353 (sh_treg_combine::can_remove_cstore): Likewise for local
20354 "prev_insn".
20355 (sh_treg_combine::try_optimize_cbranch): Likewise for param
20356 "insn".
20357 (sh_treg_combine::execute): Likewise for local "i".
20358 * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
20359 param.
20360 (sparc_check_64): Likewise for second param.
20361 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
20362 locals "insn", "next". Introduce local rtx_sequence * "seq" via a
20363 dyn_cast, using its insn method for typesafety and clarity.
20364 (empty_delay_slot): Strengthen param "insn" from rtx to
20365 rtx_insn *.
20366 (set_extends): Likewise.
20367 (sparc_check_64): Likewise.
20368 * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
20369 for locals "seq", "last_insn".
20370 (combine_bnp): Likewise for param "insn".
20371 (xstormy16_reorg): Likewise for local "insn".
20372 * config/v850/v850.c (substitute_ep_register): Likewise for params
20373 "first_insn", "last_insn" and local "insn".
20374 (v850_reorg): Likewise for fields "first_insn", "last_insn" within
20375 elements of "regs" array, and local "insn".
20376 * except.c (emit_note_eh_region_end): Likewise for param "insn".
20377 * final.c (final_sequence): Strengthen this global from rtx to
20378 rtx_sequence *.
20379 (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
20380 rtx_insn *.
20381 (final_scan_insn): Update assignment to "final_sequence" to be
20382 from "seq", the cast version of "body", for type-safety.
20383 * function.c (assign_parm_setup_reg): Strengthen locals "insn",
20384 "insns" from rtx to rtx_insn *.
20385 (thread_prologue_and_epilogue_insns): Likewise for local "seq".
20386 * genattr.c (main): When writing out generated insn-attr.h,
20387 strengthen params 1 and 3 of eligible_for_delay,
20388 eligible_for_annul_true, eligible_for_annul_false from rtx to
20389 rtx_insn *.
20390 * genattrtab.c (write_eligible_delay): Likewise when writing out
20391 generated insn-attrtab.c; also local "insn" the generated
20392 functions.
20393 * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
20394 to rtx_insn *.
20395 * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
20396 "start_label" from rtx to rtx_insn *.
20397 * ira.c (decrease_live_ranges_number): Likewise for local "p".
20398 (ira_update_equiv_info_by_shuffle_insn): Likewise for param
20399 "insns" and local "insn".
20400 (validate_equiv_mem): Likewise for param "start" and local "insn".
20401 (memref_used_between_p): Likewise for params "start", "end" and
20402 local "insn".
20403 * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
20404 final param.
20405 * loop-doloop.c (doloop_optimize): Within region guarded by
20406 INSN_P (doloop_pat), introduce a new local rtx_insn *
20407 "doloop_insn" via a checked cast, and use it for typesafety,
20408 eventually writing the value back into doloop_pat.
20409 * output.h (final_sequence): Strengthen this global from rtx to
20410 rtx_sequence *.
20411 * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
20412 reintroducing "insn" as an rtx_insn * via a checked cast.
20413 Strengthen param "attempt" and local "new_insn"from rtx to
20414 rtx_insn *.
20415 (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
20416 to rtx_insn *.
20417 * ree.c (emit_note_eh_region_end): Likewise for local "insn".
20418 * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
20419 "p" in favor of more tightly-scoped replacements, sometimes rtx
20420 and sometimes rtx_insn *, as appropriate.
20421 (delete_output_reload): Eliminate top-level rtx "i1", splitting
20422 into two loop-scoped locals, one an rtx, the other an rtx_insn *.
20423 * reorg.c (delete_scheduled_jump): Add checked cast. Strengthen
20424 local "trial" from rtx to rtx_insn *.
20425 (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
20426 rtx to rtx_insn *. Strenghten local "pat" from rtx to
20427 rtx_sequence * and use methods for clarity and typesafety.
20428 (redirect_with_delay_list_safe_p): Strengthen param "jump" from
20429 rtx to rtx_insn *. Strenghten local "li" from rtx to
20430 rtx_insn_list * and use its methods for clarity and typesafety.
20431 (steal_delay_list_from_target): Strengthen param "insn" from rtx
20432 to rtx_insn *.
20433 (steal_delay_list_from_fallthrough): Likewise.
20434 (try_merge_delay_insns): Likewise for param "thread" and locals
20435 "trial", "next_trial", "delay_insn".
20436 (redundant_insn): Likewise for param "target" and local "trial".
20437 (own_thread_p): Likewise for param "thread" and locals
20438 "active_insn", "insn".
20439 (get_label_before): Likewise for param "insn".
20440 (fill_simple_delay_slots): Likewise for local "new_label"; use
20441 JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
20442 (label_before_next_insn): Strengthen return type and local "insn"
20443 from rtx to rtx_insn *.
20444 (relax_delay_slots): Likewise for locals "other", "tmp".
20445 (make_return_insns): Likewise for param "first" and locals "insn",
20446 "jump_insn", "prev". Move declaration of "pat" to its assignment
20447 and strengthen from rtx to rtx_sequence *. Use its methods for
20448 clarity and typesafety.
20449 * rtlanal.c (no_labels_between_p): Strengthen params from
20450 const_rtx to const rtx_insn *. Strengthen local "p" from rtx to
20451 rtx_insn *.
20452 (reg_used_between_p): Strengthen params "from_insn", "to_insn"
20453 from const_rtx to const rtx_insn *.
20454 (reg_set_between_p): Rename param "from_insn" to
20455 "uncast_from_insn", and reintroduce "from_insn" as a
20456 const rtx_insn * via a checked cast.
20457 (modified_between_p): Likewise for param "start" as "uncast_start".
20458 (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
20459 * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
20460 "tmp", head" from rtx to rtx_insn *.
20461 (recompute_rev_top_order): Likewise for local "insn".
20462 * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
20463 * store-motion.c (build_store_vectors): Likewise for local "insn".
20464 Strengthen local "st" from rtx to rtx_insn_list * and use methods
20465 for clarity and typesafety.
20466 * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
20467 rtx to rtx_insn *.
20468 (computation_cost): Likewise for local "seq".
20469 (get_address_cost): Likewise.
20470
20471 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20472
20473 * rtl.h (tablejump_p): Strengthen first param from const_rtx to
20474 const rtx_insn *.
20475 (label_is_jump_target_p): Likewise for second param.
20476
20477 * rtlanal.c (tablejump_p): Likewise for param "insn".
20478 (label_is_jump_target_p): Likewise for param "jump_insn".
20479
20480 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20481
20482 * rtl.h (find_first_parameter_load): Strengthen return type and
20483 both params from rtx to rtx_insn *.
20484 * rtlanal.c (find_first_parameter_load): Strengthen return type,
20485 both params and locals "before", "first_set" from rtx to
20486 rtx_insn *. Remove now-redundant cast.
20487 * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
20488
20489 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20490
20491 * rtl.h (find_last_value): Delete.
20492 * rtlanal.c (find_last_value): Delete.
20493
20494 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20495
20496 * cfgexpand.c (pass_expand::execute): Strengthen local "after"
20497 from rtx to rtx_insn *.
20498 * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
20499 rtx "note" with new local rtx_insn * "new_head" when calculating
20500 head insn of new basic block.
20501 * combine.c (combine_split_insns): Strengthen return type and local
20502 "ret" from rtx to rtx_insn *.
20503 (likely_spilled_retval_p): Likewise for locals "use" and "p".
20504 (try_combine): Eliminate local "m_split", splitting into new
20505 locals "m_split_insn" and "m_split_pat".
20506 (find_split_point): Strengthen local "seq" from rtx into
20507 rtx_insn *.
20508 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
20509 locals "label", "branch".
20510 * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
20511 for local "insn".
20512 (define_expand "umulsi3_highpart"): Likewise for local "insn".
20513 * dse.c (note_add_store_info): Likewise for fields "first",
20514 "current".
20515 (note_add_store): Likewise for local "insn".
20516 (emit_inc_dec_insn_before): Likewise for locals "insn",
20517 "new_insn", "cur".
20518 (find_shift_sequence): Likewise for locals "shift_seq", "insn".
20519 (replace_read): Likewise for locals "insns", "this_insn".
20520 * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
20521 (notice_eh_throw): Likewise for param "insn".
20522 (before_next_cfi_note): Likewise for return type, param, and local
20523 "prev".
20524 (connect_traces): Likewise for local "note".
20525 * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
20526 (verify_rtl_sharing): Likewise.
20527 (unshare_all_rtl_in_chain): Likewise for param "insn".
20528 (get_first_nonnote_insn): Likewise for local "insn".
20529 (get_last_nonnote_insn): Likewise. Introduce local rtx_sequence *
20530 "seq" and use its methods to clarify things.
20531 (next_insn): Strengthen return type from rtx to rtx_insn *.
20532 Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
20533 local rtx_insn * using a checked cast, dropping a checked cast
20534 made redundant by this change. Use a cast to and method of
20535 rtx_sequence to clarify the code.
20536 (previous_insn): Rename param "insn" to "uncast_insn" and
20537 reintroduce "insn" as a local rtx_insn * using a checked cast,
20538 dropping a checked cast made redundant by this change. Use a cast
20539 to and method of rtx_sequence to clarify the code.
20540 (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
20541 reintroduce "insn" as a local rtx_insn * using a checked cast,
20542 dropping a checked cast made redundant by this change.
20543 (next_nonnote_insn_bb): Likewise.
20544 (prev_nonnote_insn): Likewise.
20545 (prev_nonnote_insn_bb): Likewise.
20546 (next_nondebug_insn): Likewise.
20547 (prev_nondebug_insn): Likewise.
20548 (next_nonnote_nondebug_insn): Likewise.
20549 (prev_nonnote_nondebug_insn): Likewise.
20550 (next_real_insn): Likewise.
20551 (prev_real_insn): Likewise.
20552 (next_active_insn): Likewise.
20553 (prev_active_insn): Likewise.
20554 (next_cc0_user): Likewise. Use rtx_sequence and a method for
20555 clarity.
20556 (prev_cc0_setter): Likewise.
20557 (try_split): Rename param "trial" to "uncast_trial" and
20558 reintroduce "insn" as a local rtx_insn * using a checked cast,
20559 dropping checked casts made redundant by this change.
20560 Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
20561 rtx to rtx_insn *.
20562 (remove_insn): Rename param "insn" to "uncast_insn" and
20563 reintroduce "insn" as a local rtx_insn * using a checked cast.
20564 (emit_pattern_after_setloc): Likewise for param "after", as
20565 "uncast_after".
20566 (emit_pattern_after): Likewise. Strengthen local "prev" from
20567 rtx to rtx_insn *.
20568 (emit_pattern_before_setloc): Rename param "before" to
20569 "uncast_before" and reintroduce "before" as a local rtx_insn *
20570 using a checked cast. Strengthen locals "first", "last" from
20571 rtx to rtx_insn *.
20572 (emit_pattern_before): Likewise rename/cast param "before" to
20573 "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
20574 * except.c (copy_reg_eh_region_note_forward): Strengthen param
20575 "first" and local "insn" from rtx to rtx_insn *.
20576 (copy_reg_eh_region_note_backward): Likewise for param "last"
20577 and local "insn".
20578 * expr.c (fixup_args_size_notes): Rename param "last" to
20579 "uncast_last" and reintroduce "last" as a local rtx_insn *
20580 using a checked cast. Strengthen local "insn" from rtx to
20581 rtx_insn *.
20582 * function.c (set_insn_locations): Strengthen param "insn" from
20583 rtx to rtx_insn *.
20584 (record_insns): Likewise for param "insns" and local "tmp".
20585 (active_insn_between): Rename param "tail" to
20586 "uncast_tail" and reintroduce "tail" as a local rtx_insn *
20587 using a checked cast.
20588 (thread_prologue_and_epilogue_insns): Split out top-level local
20589 rtx "seq" into three different rtx_insn * locals. Strengthen
20590 local "prologue_seq" from rtx to rtx_insn *.
20591 * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
20592 from rtx to rtx_insn *.
20593 * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
20594 (priority): Likewise for locals "prev_first", "twin".
20595 (setup_insn_max_reg_pressure): Likewise for param "after".
20596 (sched_setup_bb_reg_pressure_info): Likewise.
20597 (no_real_insns_p): Strengthen params from const_rtx to
20598 const rtx_insn *.
20599 (schedule_block): Strengthen local "next_tail" from rtx to
20600 rtx_insn *.
20601 * ifcvt.c (find_active_insn_before): Strengthen return type and
20602 param "insn" from rtx to rtx_insn *.
20603 (find_active_insn_after): Likewise.
20604 (cond_exec_process_insns): Likewise for param "start" and local "insn".
20605 (cond_exec_process_if_block): Likewise for locals "then_start",
20606 "then_end", "else_start", "else_end", "insn", "start", "end", "from".
20607 (noce_process_if_block): Likewise for local "jump".
20608 (merge_if_block): Likewise for two locals named "end".
20609 (cond_exec_find_if_block): Likewise for local "last_insn".
20610 * jump.c (delete_related_insns): Rename param "insn" to
20611 "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
20612 checked cast. Strengthen local "p" from rtx to rtx_insn *.
20613 * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
20614 NULL.
20615 (split_reg): Likewise.
20616 * lra.c (lra_process_new_insns): Likewise.
20617 * modulo-sched.c (permute_partial_schedule): Strengthen param
20618 "last" from rtx to rtx_insn *.
20619 * optabs.c (add_equal_note): Likewise for param "insns" and local
20620 "last_insn".
20621 (expand_binop_directly): Add checked casts to rtx_insn * within
20622 NEXT_INSN (pat) uses.
20623 (expand_unop_direct): Likewise.
20624 (maybe_emit_unop_insn): Likewise.
20625 * recog.c (peep2_attempt): Strengthen locals "last",
20626 "before_try", "x" from rtx to rtx_insn *.
20627 * reorg.c (optimize_skip): Strengthen return type and local
20628 "delay_list" from rtx to rtx_insn_list *. Strengthen param "insn"
20629 and locals "trial", "next_trial" from rtx to rtx_insn *.
20630 * resource.c (next_insn_no_annul): Strengthen return type and
20631 param "insn" from rtx to rtx_insn *. Use a cast to and method of
20632 rtx_sequence to clarify the code.
20633 (mark_referenced_resources): Add a checked cast to rtx_insn *
20634 within PREV_INSN (x).
20635 (find_dead_or_set_registers): Strengthen return type, param
20636 "target", locals "insn", "next", "jump_insn", "this_jump_insn"
20637 from rtx to rtx_insn *. Strengthen param "jump_target" from rtx *
20638 to rtx_insn **.
20639 (mark_target_live_regs): Strengthen params "insns" and "target",
20640 locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
20641 to rtx_insn *. Use cast to and method of rtx_sequence to clarify
20642 the code.
20643 * resource.h (mark_target_live_regs): Strengthen params 1 and 2
20644 from rtx to rtx_insn *.
20645 * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
20646 from rtx to rtx_insn *.
20647 (copy_reg_eh_region_note_backward): Likewise.
20648 (unshare_all_rtl_in_chain): Likewise for sole param.
20649 (dump_rtl_slim): Strengthen second and third params from const_rtx
20650 to const rtx_insn *.
20651 * sched-deps.c (sched_free_deps): Strengthen params "head" and
20652 "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
20653 * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
20654 "next_tail" from rtx to rtx_insn *.
20655 (begin_move_insn): Likewise for local "next".
20656 * sched-int.h (sched_free_deps): Likewise for first and second
20657 params.
20658 (no_real_insns_p): Strengthen both params from const_rtx to
20659 const rtx_insn *.
20660 (sched_setup_bb_reg_pressure_info): Strengthen second params from
20661 rtx to rtx_insn *.
20662 * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
20663 "next_tail".
20664 * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
20665 and locals "insn", "tail" from const_rtx to const rtx_insn *.
20666 (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
20667 rtx_insn *.
20668 (debug_rtl_slim): Strengthen params "first" and "last" from
20669 const_rtx to const rtx_insn *.
20670 * shrink-wrap.c (try_shrink_wrapping): Strengthen param
20671 "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
20672 (convert_to_simple_return): Likewise for param "returnjump".
20673 * shrink-wrap.h (try_shrink_wrapping): Likewise for param
20674 "prologue_seq".
20675 (convert_to_simple_return): Likewise for param "returnjump".
20676 * valtrack.c (propagate_for_debug): Likewise for params
20677 "insn", "last".
20678 * valtrack.h (propagate_for_debug): Likewise for second param.
20679
20680 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20681
20682 * output.h (insn_current_reference_address): Strengthen param
20683 from rtx to rtx_insn *.
20684 * final.c (insn_current_reference_address): Likewise.
20685
20686 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20687
20688 * basic-block.h (inside_basic_block_p): Strengthen param from
20689 const_rtx to const rtx_insn *.
20690 * cfgbuild.c (inside_basic_block_p): Likewise.
20691
20692 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20693
20694 * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
20695 rtx_insn *.
20696 (get_trace_info): Likewise for param "insn".
20697 (save_point_p): Likewise.
20698 (maybe_record_trace_start): Likewise for both params.
20699 (maybe_record_trace_start_abnormal): Likewise.
20700 (create_trace_edges): Likewise for sole param and for three of the
20701 locals named "lab".
20702 (scan_trace): Strengthen local "prev", "insn", "control" from rtx
20703 to rtx_insn *, and update a call to pat->element to pat->insn.
20704
20705 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20706
20707 * function.h (struct expr_status): Convert field "x_forced_labels"
20708 from rtx_expr_list * to rtx_insn_list *.
20709
20710 * cfgbuild.c (make_edges): Convert local "x" from an
20711 rtx_expr_list * to an rtx_insn_list *, replacing use of
20712 "element" method with "insn" method.
20713 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
20714 * except.c (sjlj_emit_dispatch_table): Replace use of
20715 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
20716 forced_labels.
20717 * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
20718 rtx_expr_list * to an rtx_insn_list *, replacing use of
20719 "element" method with "insn" method.
20720 * reload1.c (set_initial_label_offsets): Likewise for local "x".
20721 * stmt.c (label_rtx): Strengthen local "ref" from rtx to
20722 rtx_insn *, adding a checked cast. Replace use of
20723 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
20724 forced_labels.
20725 (expand_label): Likewise for local "label_r".
20726
20727 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20728
20729 * function.h (struct rtl_data): Convert field
20730 "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
20731 rtx_insn_list *.
20732 * rtl.h (remove_node_from_insn_list): New prototype.
20733
20734 * builtins.c (expand_builtin): When prepending to
20735 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
20736 gen_rtx_EXPR_LIST.
20737 * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
20738 to rtx_insn_list *, and use its "insn" method rather than
20739 "element" method.
20740 * cfgrtl.c (delete_insn): Use new function
20741 remove_node_from_insn_list rather than
20742 remove_node_from_expr_list.
20743 (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
20744 to rtx_insn_list *, and use its "insn" method rather than
20745 "element" method.
20746 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
20747 * reload1.c (set_initial_label_offsets): Likewise for local "x".
20748 * rtlanal.c (remove_node_from_insn_list): New function, adapted
20749 from remove_node_from_expr_list.
20750 * stmt.c (expand_label): When prepending to
20751 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
20752 gen_rtx_EXPR_LIST.
20753
20754 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20755
20756 * function.h (struct rtl_data): Strengthen fields "x_return_label"
20757 and "x_naked_return_label" from rtx to rtx_code_label *.
20758
20759 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20760
20761 * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
20762 (SET_NEXT_INSN): Likewise.
20763 (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
20764
20765 * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
20766 rtx * to rtx_insn **. Introduce a new local rtx "seq", using it
20767 to split out the SEQUENCE from local "bundle", strengthening the
20768 latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
20769 Strengthen locals "t" and "insn" from rtx to rtx_insn *.
20770 (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
20771 and the type of the elements of the "slot" array from rtx to
20772 rtx_insn *.
20773 (reorg_split_calls): Likewise for locals "insn" and "next", and
20774 the type of the elements of the "slot" array.
20775
20776 * config/frv/frv.c (frv_nops): Likewise for the elements of this
20777 array.
20778 (frv_function_prologue): Likewise for locals "insn", "next",
20779 "last_call".
20780 (frv_register_nop): Introduce a local "nop_insn" to be the
20781 rtx_insn * containing rtx "nop".
20782
20783 * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
20784 used as an insn and sometimes as a pattern, so rename it to
20785 "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
20786 using it where dealing with the core insn.
20787
20788 * config/picochip/picochip.c (reorder_var_tracking_notes):
20789 Strengthen locals "insn", "next", "last_insn", "queue",
20790 "next_queue", "prev" from rtx to rtx_insn *.
20791
20792 * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
20793 the second param is an rtx_insn ** rather than an rtx **.
20794 (link_insn_into_chain): Strengthen locals "seq" and "sequence"
20795 from rtx to rtx_sequence *, and introduce local named "sequence",
20796 using methods of rtx_sequence to clarify the code.
20797 (remove_insn): Introduce local rtx_sequence * named "sequence" and
20798 use its methods.
20799 (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
20800 Rename param "after" to "uncast_after", reintroducing "after" as a
20801 local rtx_insn * with a checked cast.
20802 (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
20803 reintroducing "after" as a local rtx_insn * with a checked cast.
20804 Strengthen local "last" from rtx to rtx_insn * and remove the
20805 now-redundant checked casts.
20806 (copy_delay_slot_insn): Strengthen return type and param from rtx
20807 to rtx_insn *.
20808
20809 * haifa-sched.c (reemit_notes): Strengthen params "insn" and
20810 "last" from rtx to rtx_insn *.
20811
20812 2014-08-28 David Malcolm <dmalcolm@redhat.com>
20813
20814 * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
20815 param from rtx to rtx_insn *.
20816
20817 * emit-rtl.c (copy_delay_slot_insn): Likewise.
20818
20819 * reorg.c (skip_consecutive_labels): Strengthen return type, param
20820 and local "insn" from rtx to rtx_insn *.
20821 (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
20822 (unfilled_slots_next): Likewise.
20823 (function_return_label): Strengthen from rtx to rtx_code_label *.
20824 (function_simple_return_label): Likewise.
20825 (first_active_target_insn): Strengthen return type and param from
20826 rtx to rtx_insn *.
20827 (find_end_label): Strengthen return type from rtx to
20828 rtx_code_label *; strengthen locals as appropriate.
20829 (emit_delay_sequence): Strengthen return type, param "insn" and
20830 local "seq_insn" from rtx to rtx_insn *. Strengthen param "list"
20831 and local "li" from rtx to rtx_insn_list *, using methods of
20832 rtx_insn_list for clarity and typesafety.
20833 (add_to_delay_list): Strengthen return type and param "insn" from
20834 rtx to rtx_insn *. Strengthen param "delay_list" from rtx to
20835 rtx_insn_list * and use methods of rtx_insn_list.
20836 (delete_from_delay_slot): Strengthen return type, param "insn",
20837 locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
20838 Strengthen local "seq" from rtx to rtx_sequence *, and local
20839 "delay_list" from rtx to rtx_insn_list *, using methods of
20840 rtx_sequence for clarity and type-safety.
20841 (delete_scheduled_jump): Add checked cast when invoking
20842 delete_from_delay_slot. Strengthen local "trial" from rtx to
20843 rtx_insn *.
20844 (optimize_skip): Strengthen return type and local "delay_list"
20845 from rtx to rtx_insn_list *. Strengthen local "trial" from rtx to
20846 rtx_insn *.
20847 (steal_delay_list_from_target): Strengthen return type, param
20848 "delay_list" and local "new_delay_list" from rtx to
20849 rtx_insn_list *. Strengthen param "seq" from rtx to
20850 rtx_sequence *. Strengthen param "pnew_thread" from rtx * to
20851 rtx_insn **.
20852 Split out local "temp" into multiple more-tightly scoped locals:
20853 sometimes an rtx_insn_list *, and once a rtx_insn *. Use methods
20854 of rtx_insn_list and rtx_sequence for clarity and typesafety.
20855 Strengthen locals named "trial" from rtx to rtx_insn *.
20856 (steal_delay_list_from_fallthrough): Strengthen return type and
20857 param "delay_list" from rtx to rtx_insn_list *. Strengthen param
20858 "seq" from rtx to rtx_sequence *. Use methods of rtx_sequence.
20859 Strengthen local "trial" from rtx to rtx_insn *.
20860 (try_merge_delay_insns): Strength local "merged_insns" from rtx
20861 to rtx_insn_list * and use its methods. Strengthen local "pat"
20862 from rtx to rtx_sequence * and use its methods. Strengthen locals
20863 "dtrial" and "new_rtx" from rtx to rtx_insn *.
20864 (get_label_before): Strengthen return type and local "label" from
20865 rtx to rtx_insn *.
20866 (fill_simple_delay_slots): Likewise for locals "insn", "trial",
20867 "next_trial", "next", prev". Strengthen local "delay_list" from
20868 rtx to rtx_insn_list * Strengthen local "tmp" from rtx * to
20869 rtx_insn **.
20870 (follow_jumps): Strengthen return type, param "label" and locals
20871 "insn", "next", "value", "this_label" from rtx to rtx_insn *.
20872 (fill_slots_from_thread): Strengthen return type, param
20873 "delay_list" from rtx to rtx_insn_list *. Strengthen params
20874 "insn", "thread", "opposite_thread" and locals "new_thread",
20875 "trial", "temp", "ninsn" from rtx to rtx_insn *. Introduce local
20876 "sequence" from a checked cast to rtx_sequence so that we can call
20877 steal_delay_list_from_target and steal_delay_list_from_fallthrough
20878 with an rtx_sequence *.
20879 (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
20880 "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
20881 Strengthen local "delay_list" from rtx to rtx_insn_list *.
20882 (relax_delay_slots): Strengthen param "first" and locals "insn",
20883 "next", "trial", "delay_insn", "target_label" from rtx to
20884 rtx_insn *. Strengthen local "pat" from rtx to rtx_sequence *.
20885 Introduce a local "trial_seq" for PATTERN (trial) of type
20886 rtx_sequence *, in both cases using methods of rtx_sequence.
20887 (dbr_schedule): Strengthen param "first" and locals "insn",
20888 "next", "epilogue_insn" from rtx to rtx_insn *.
20889
20890 2014-08-28 Richard Biener <rguenther@suse.de>
20891
20892 PR tree-optimization/62283
20893 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
20894 Do not peel loops for alignment where the vector loop likely
20895 doesn't run at least VF times.
20896
20897 2014-08-28 Bin Cheng <bin.cheng@arm.com>
20898
20899 * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
20900 important_candidates. Consider all important candidates if
20901 IVS doesn't give any result. Remove check on ivs->upto.
20902 (try_add_cand_for): Call iv_ca_add_use only once.
20903
20904 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
20905 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20906 Anna Tikhonova <anna.tikhonova@intel.com>
20907 Ilya Tocar <ilya.tocar@intel.com>
20908 Andrey Turetskiy <andrey.turetskiy@intel.com>
20909 Ilya Verbin <ilya.verbin@intel.com>
20910 Kirill Yukhin <kirill.yukhin@intel.com>
20911 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20912
20913 (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
20914 (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
20915 masking.
20916 (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
20917 (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
20918 (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
20919 (define_insn "*mul<mode>3"): Add EVEX version.
20920
20921 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
20922 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20923 Anna Tikhonova <anna.tikhonova@intel.com>
20924 Ilya Tocar <ilya.tocar@intel.com>
20925 Andrey Turetskiy <andrey.turetskiy@intel.com>
20926 Ilya Verbin <ilya.verbin@intel.com>
20927 Kirill Yukhin <kirill.yukhin@intel.com>
20928 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20929
20930 * config/i386/sse.md
20931 (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
20932 (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
20933 (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
20934 (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
20935 (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
20936 (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
20937 (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
20938 (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
20939 (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
20940 (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
20941 (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
20942 (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
20943 (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
20944 (define_insn "vec_interleave_highv16qi<mask_name>"): New.
20945 (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
20946 (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
20947
20948 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
20949 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20950 Anna Tikhonova <anna.tikhonova@intel.com>
20951 Ilya Tocar <ilya.tocar@intel.com>
20952 Andrey Turetskiy <andrey.turetskiy@intel.com>
20953 Ilya Verbin <ilya.verbin@intel.com>
20954 Kirill Yukhin <kirill.yukhin@intel.com>
20955 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20956
20957 * config/i386/sse.md
20958 (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
20959 (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
20960 (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
20961
20962 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
20963 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20964 Anna Tikhonova <anna.tikhonova@intel.com>
20965 Ilya Tocar <ilya.tocar@intel.com>
20966 Andrey Turetskiy <andrey.turetskiy@intel.com>
20967 Ilya Verbin <ilya.verbin@intel.com>
20968 Kirill Yukhin <kirill.yukhin@intel.com>
20969 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20970
20971 * config/i386/sse.md
20972 (define_mode_iterator VI128_256): New.
20973 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
20974
20975 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
20976 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20977 Anna Tikhonova <anna.tikhonova@intel.com>
20978 Ilya Tocar <ilya.tocar@intel.com>
20979 Andrey Turetskiy <andrey.turetskiy@intel.com>
20980 Ilya Verbin <ilya.verbin@intel.com>
20981 Kirill Yukhin <kirill.yukhin@intel.com>
20982 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20983
20984 * config/i386/sse.md
20985 (define_mode_iterator VI8_256_512): New.
20986 (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
20987 Ditto.
20988 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
20989 (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
20990 Ditto.
20991 (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
20992
20993 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
20994
20995 * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx. Remove the
20996 pointer to the cumulative reloc value and return the value for
20997 this reloc instead.
20998 (compute_reloc_for_rtx): Take a const_rtx. Call
20999 compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
21000 avoiding any recursion. Use FOR_EACH_SUBRTX rather than
21001 for_each_rtx for the CONST case.
21002
21003 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21004
21005 * varasm.c (mark_constant): Replace this for_each_rtx callback with...
21006 (mark_constants_in_pattern): ...this new function to iterate over
21007 all the subrtxes.
21008 (mark_constants): Update accordingly.
21009
21010 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21011
21012 * varasm.c: Include rtl-iter.h.
21013 (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
21014 Remove the pointer to the cumulative hashval_t and just return
21015 the hash for this rtx instead. Remove recursive CONST_VECTOR case.
21016 (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21017 Accumulate the hashval_ts here instead of const_rtx_hash_1.
21018
21019 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21020
21021 * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
21022 Give real type of data parameter. Remove return value.
21023 (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
21024 to iterate over subrtxes.
21025
21026 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21027
21028 * var-tracking.c (use_narrower_mode_test): Turn from being a
21029 for_each_rtx callback to being a function that examines each
21030 subrtx itself.
21031 (adjust_mems): Update accordingly.
21032
21033 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21034
21035 * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
21036 callback to being a function that examines each subrtx itself.
21037 Remove handling of null rtxes.
21038 (add_uses): Update accordingly.
21039
21040 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21041
21042 * var-tracking.c: Include rtl-iter.h.
21043 (rtx_debug_expr_p): Turn from being a for_each_rtx callback
21044 to being a function that examines each subrtx itself.
21045 (use_type): Update accordingly.
21046
21047 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21048
21049 * store-motion.c: Include rtl-iter.h.
21050 (extract_mentioned_regs_1): Delete.
21051 (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
21052 for_each_rtx to iterate over subrtxes.
21053
21054 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21055
21056 * sel-sched.c: Include rtl-iter.h
21057 (count_occurrences_1): Delete.
21058 (count_occurrences_equiv): Turn rtxes into const_rtxes.
21059 Use FOR_EACH_SUBRTX rather than for_each_rtx.
21060
21061 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21062
21063 * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
21064 * rtlanal.c (tls_referenced_p_1): Delete.
21065 (tls_referenced_p): Take a const_rtx rather than an rtx.
21066 Use FOR_EACH_SUBRTX rather than for_each_rtx.
21067
21068 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21069
21070 * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
21071 (for_each_inc_dec): Take an rtx rather than an rtx *.
21072 * cselib.c (cselib_record_autoinc_cb): Update accordingly.
21073 (cselib_record_sets): Likewise.
21074 * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
21075 (check_for_inc_dec): Likewise.
21076 * rtlanal.c (for_each_inc_dec_ops): Delete.
21077 (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
21078 rather than a pointer to the memory address. Replace
21079 for_each_inc_dec_ops argument with separate function and data
21080 arguments. Abort on non-autoinc addresses.
21081 (for_each_inc_dec_find_mem): Delete.
21082 (for_each_inc_dec): Take an rtx rather than an rtx *. Use
21083 FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
21084
21085 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21086
21087 * rtl.h (find_all_hard_regs): Declare.
21088 * rtlanal.c (find_all_hard_regs): New function.
21089 (record_hard_reg_uses_1): Delete.
21090 (record_hard_reg_uses): Use find_all_hard_regs.
21091
21092 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21093
21094 * rtl.h (replace_label_data): Delete.
21095 (replace_label): Take the old label, new label and update-nuses flag
21096 as direct arguments. Return void.
21097 * cfgcleanup.c (outgoing_edges_match): Update accordingly.
21098 * rtlanal.c (replace_label): Update interface as above. Handle
21099 JUMP_TABLE_DATA as a special case. Handle JUMPs outside the
21100 iterator. Use FOR_EACH_SUBRTX_PTR.
21101
21102 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21103
21104 * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
21105 with const_rtx parameters.
21106 * varasm.c (get_pool_constant): Likewise.
21107 * rtlanal.c (rtx_referenced_p_1): Delete.
21108 (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21109 Assert that the rtx we're looking for is nonnull. Allow searches
21110 for constant pool SYMBOL_REFs.
21111
21112 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21113
21114 * reload1.c: Include rtl-iter.h.
21115 (note_reg_elim_costly): Turn from being a for_each_rtx callback
21116 to being a function that examines each subrtx itself.
21117 (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
21118
21119 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21120
21121 * regcprop.c (cprop_find_used_regs_1): Delete.
21122 (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21123
21124 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21125
21126 * regcprop.c: Include rtl-iter.h.
21127 (kill_value): Take a const_rtx.
21128 (kill_autoinc_value): Turn from being a for_each_rtx callback
21129 to being a function that examines each subrtx itself.
21130 (copyprop_hardreg_forward_1): Update accordingly.
21131
21132 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21133
21134 * reg-stack.c: Include rtl-iter.h.
21135 (subst_stack_regs_in_debug_insn): Delete.
21136 (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
21137 instead of for_each_rtx.
21138
21139 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21140
21141 * lower-subreg.c (find_decomposable_subregs): Turn from being
21142 a for_each_rtx callback to being a function that examines each
21143 subrtx itself. Remove handling of null rtxes.
21144 (decompose_multiword_subregs): Update accordingly.
21145
21146 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21147
21148 * lower-subreg.c (adjust_decomposed_uses): Delete.
21149 (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
21150 Remove handling of null rtxes.
21151
21152 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21153
21154 * lower-subreg.c: Include rtl-iter.h.
21155 (resolve_subreg_use): Turn from being a for_each_rtx callback
21156 to being a function that examines each subrtx itself. Remove
21157 handling of null rtxes.
21158 (resolve_reg_notes, resolve_simple_move): Update accordingly.
21159 (decompose_multiword_subregs): Likewise.
21160
21161 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21162
21163 * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
21164 to being a function that examines each subrtx itself.
21165 (simplify_using_condition, simplify_using_initial_values): Update
21166 accordingly.
21167
21168 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21169
21170 * loop-iv.c: Include rtl-iter.h.
21171 (find_single_def_src): New function.
21172 (replace_single_def_regs): Turn from being a for_each_rtx callback
21173 to being a function that examines each subrtx itself.
21174 (replace_in_expr, simplify_using_initial_values): Update accordingly.
21175
21176 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21177
21178 * jump.c (eh_returnjump_p_1): Delete.
21179 (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21180 Remove handling of null rtxes.
21181
21182 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21183
21184 * jump.c: Include rtl-iter.h.
21185 (returnjump_p_1): Delete.
21186 (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21187 Remove handling of null rtxes.
21188
21189 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21190
21191 * ira.c: Include rtl-iter.h.
21192 (set_paradoxical_subreg): Turn from being a for_each_rtx callback
21193 to being a function that examines each subrtx itself. Remove
21194 handling of null rtxes.
21195 (update_equiv_regs): Update call accordingly.
21196
21197 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21198
21199 * fwprop.c: Include rtl-iter.h.
21200 (varying_mem_p): Turn from being a for_each_rtx callback to being
21201 a function that examines each subrtx itself.
21202 (propagate_rtx): Update accordingly.
21203
21204 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21205
21206 * function.c: Include rtl-iter.h
21207 (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
21208 callback to being a function that examines each subrtx itself.
21209 Return the changed flag.
21210 (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
21211 (instantiate_virtual_regs): Update calls accordingly.
21212
21213 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21214
21215 * final.c: Include rtl-iter.h.
21216 (mark_symbol_ref_as_used): Delete.
21217 (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
21218 for_each_rtx.
21219
21220 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21221
21222 * emit-rtl.c: Include rtl-iter.h.
21223 (find_auto_inc): Turn from being a for_each_rtx callback to being
21224 a function that examines each subrtx itself. Assume the first operand
21225 to an RTX_AUTOINC is the automodified register.
21226 (try_split): Update call accordingly.
21227
21228 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21229
21230 * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
21231 Return a bool, inverting the result so that 0/false means "not ok".
21232 Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
21233 subrtxes of a CONST.
21234 (mem_loc_descriptor, add_const_value_attribute)
21235 (resolve_addr_in_expr): Update calls accordingly.
21236
21237 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21238
21239 * dwarf2out.c: Include rtl-iter.h.
21240 (const_ok_for_output_1): Take the rtx instead of a pointer to it.
21241 Remove unused data parameter. Return a bool, inverting the result
21242 so that 0/false means "not ok".
21243 (const_ok_for_output): Update accordingly. Use FOR_EACH_SUBRTX_VAR
21244 instead of for_each_rtx.
21245
21246 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21247
21248 * dse.c: Include rtl-iter.h.
21249 (check_mem_read_rtx): Change void * parameter to real type.
21250 Remove return value.
21251 (check_mem_read_use): Fix comment. Use FOR_EACH_SUBRTX_PTR instead of
21252 for_each_rtx. Don't handle null rtxes.
21253
21254 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21255
21256 * df-problems.c: Include rtl-iter.h.
21257 (find_memory): Turn from being a for_each_rtx callback to being
21258 a function that examines each subrtx itself. Continue to look for
21259 volatile references even after a nonvolatile one has been found.
21260 (can_move_insns_across): Update calls accordingly.
21261
21262 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21263
21264 * ddg.c (walk_mems_2, walk_mems_1): Delete.
21265 (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
21266 to iterate over subrtxes. Return a bool rather than an int.
21267
21268 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21269
21270 * ddg.c: Include rtl-iter.h.
21271 (mark_mem_use_1): Rename to...
21272 (mark_mem_use): ...deleting old mark_mem_use. Use FOR_EACH_SUBRTX
21273 instead of for_each_rtx.
21274 (mem_read_insn_p): Update accordingly.
21275
21276 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21277
21278 * cse.c (change_cc_mode_args): Delete.
21279 (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
21280 a function that examines each subrtx itself. Take the fields of
21281 change_cc_mode_args as argument and return void.
21282 (cse_change_cc_mode_insn): Update calls accordingly.
21283
21284 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21285
21286 * cse.c (is_dead_reg): Change argument to const_rtx.
21287 (dead_debug_insn_data): Delete.
21288 (is_dead_debug_insn): Expand commentary. Turn from being a
21289 for_each_rtx callback to being a function that examines
21290 each subrtx itself. Take the fields of dead_debug_insn_data
21291 as argument.
21292 (delete_trivially_dead_insns): Update call accordingly.
21293
21294 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21295
21296 * cse.c (check_for_label_ref): Move earlier in file. Turn from
21297 being a for_each_rtx callback to being a function that examines
21298 each subrtx itself.
21299 (cse_extended_basic_block): Update call accordingly.
21300
21301 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21302
21303 * cse.c (check_dependence_data): Delete.
21304 (check_dependence): Change from being a for_each_rtx callback to being
21305 a function that examines all subrtxes itself. Don't handle null rtxes.
21306 (invalidate): Update call accordingly.
21307
21308 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21309
21310 * cse.c: Include rtl-iter.h.
21311 (approx_reg_cost_1): Delete.
21312 (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21313 Don't handle null rtxes.
21314
21315 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21316
21317 * cfgcleanup.c: Include rtl-iter.h.
21318 (mentions_nonequal_regs): Turn from being a for_each_rtx callback
21319 to being a function that examines each subrtx itself.
21320 (thread_jump): Update accordingly.
21321
21322 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21323
21324 * combine-stack-adj.c: Include rtl-iter.h.
21325 (record_stack_refs_data): Delete.
21326 (record_stack_refs): Turn from being a for_each_rtx callback
21327 to being a function that examines each subrtx itself.
21328 Take a pointer to the reflist. Invert sense of return value
21329 so that true means success and false means failure. Don't
21330 handle null rtxes.
21331 (combine_stack_adjustments_for_block): Update accordingly.
21332
21333 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21334
21335 * combine.c (record_truncated_value): Turn from being a for_each_rtx
21336 callback to a function that takes an rtx and returns a bool
21337 (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
21338 for_each_rtx.
21339
21340 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21341
21342 * combine.c: Include rtl-iter.h.
21343 (unmentioned_reg_p_1): Delete.
21344 (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21345 Don't handle null rtxes.
21346
21347 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21348
21349 * calls.c: Include rtl-iter.h.
21350 (internal_arg_pointer_based_exp_1): Delete.
21351 (internal_arg_pointer_based_exp): Take a const_rtx.
21352 Use FOR_EACH_SUBRTX to iterate over subrtxes.
21353
21354 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21355
21356 * caller-save.c: Include rtl-iter.h.
21357 (add_used_regs_1): Delete.
21358 (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
21359 to iterate over subrtxes. Assert that any remaining pseudos
21360 have been spilled.
21361
21362 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21363
21364 * bt-load.c: Include rtl-iter.h.
21365 (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
21366 (find_btr_use): Move further up file. Use FOR_EACH_SUBRTX_PTR
21367 to iterate over subrtxes.
21368 (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
21369 find_btr_use rather than btr_referenced_p.
21370
21371 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21372
21373 * alias.c: Include rtl-iter.h.
21374 (refs_newer_value_cb): Delete.
21375 (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21376
21377 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
21378
21379 * rtl-iter.h: New file.
21380 * rtlanal.c: Include it.
21381 (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
21382 (generic_subrtx_iterator <T>::add_single_to_queue)
21383 (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
21384 (generic_subrtx_iterator <T>::free_array): New functions.
21385 (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
21386 (generic_subrtx_iterator <const_rtx_accessor>)
21387 (generic_subrtx_iterator <rtx_var_accessor>
21388 (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
21389 (setup_reg_subrtx_bounds): New function.
21390 (init_rtlanal): Call it.
21391
21392 2014-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
21393
21394 PR target/62261
21395 * config/sh/sh.md (ashlsi3): Handle negative shift count for
21396 TARGET_SHMEDIA.
21397 (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
21398
21399 2014-08-27 Richard Sandiford <rdsandiford@googlemail.com>
21400
21401 * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
21402
21403 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21404
21405 * rtl.h (JUMP_LABEL_AS_INSN): New.
21406
21407 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21408
21409 * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
21410 rtx_expr_list **.
21411 (alloc_EXPR_LIST): Strengthen return type from rtx to
21412 rtx_expr_list *.
21413 (remove_free_EXPR_LIST_node): Likewise for param.
21414 * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
21415 from rtx to rtx_expr_list *.
21416 * sched-int.h (struct deps_desc): Strengthen fields
21417 "pending_read_mems" and "pending_write_mems" from rtx to
21418 rtx_expr_list *.
21419
21420 * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
21421 rtx to rtx_expr_list *.
21422 * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
21423 (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
21424 rtx_expr_list **.
21425 (remove_free_EXPR_LIST_node): Likewise. Strengthen local "node"
21426 from rtx to rtx_expr_list *.
21427 * loop-iv.c (simplify_using_initial_values): Strengthen local
21428 "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
21429 "pnote_next" from rtx * to rtx_expr_list **.
21430 * sched-deps.c (remove_from_both_dependence_lists): Strengthen
21431 param "exprp" from rtx * to rtx_expr_list **.
21432 (add_insn_mem_dependence): Strengthen local "mem_list" from
21433 rtx * to rtx_expr_list **. Strengthen local "mem_node" from rtx
21434 to rtx_expr_list *.
21435 * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
21436 and local "new_mems" from rtx to rtx_expr_list *. Strengthen
21437 param "old_mems_p" from rtx * to rtx_expr_list **.
21438 * var-tracking.c (struct adjust_mem_data): Strengthen field
21439 "side_effects" from rtx to rtx_expr_list *.
21440 (adjust_insn): Replace NULL_RTX with NULL when assigning to
21441 rtx_expr_list *.
21442 (prepare_call_arguments): Likewise.
21443
21444 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21445
21446 * function.h (struct rtl_data): Strengthen field
21447 "x_stack_slot_list" from rtx to rtx_expr_list *.
21448
21449 * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
21450 when assigning to stack_slot_list.
21451
21452 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21453
21454 * function.h (struct rtl_data): Strengthen field
21455 x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
21456 * rtl.h (remove_node_from_expr_list): Strengthen second param from
21457 rtx * to rtx_expr_list **.
21458
21459 * cfgbuild.c (make_edges): In loop over
21460 nonlocal_goto_handler_labels, strengthen local "x" from rtx to
21461 rtx_expr_list *, and use methods of the latter class to clarify
21462 the code.
21463 * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
21464 rtx_expr_list *, and use methods of the latter class to clarify
21465 the code.
21466 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
21467 * reload1.c (set_initial_label_offsets): Likewise for local "x".
21468 * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
21469 from rtx * to rtx_expr_list **. Strengthen local "temp" from rtx
21470 to rtx_expr_list *. Use methods of the latter class to clarify
21471 the code.
21472
21473 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21474
21475 * function.h (struct expr_status): Strengthen field
21476 "x_forced_labels" from rtx to rtx_expr_list *.
21477
21478 * cfgbuild.c (make_edges): Split local "x" into two locals,
21479 strengthening one from rtx to rtx_expr_list *, and using methods
21480 of said class.
21481 * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
21482 loop over forced_labels, introduce strengthen it from rtx to
21483 rtx_expr_list *, using methods to clarify the code.
21484 * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
21485 to rtx_expr_list *, using methods of said class to clarify the
21486 code.
21487 * reload1.c (set_initial_label_offsets): Split local "x" into two
21488 per-loop variables, strengthening the first from rtx to
21489 rtx_expr_list * and using methods.
21490
21491 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21492
21493 * coretypes.h (class rtx_expr_list): Add forward declaration.
21494 * emit-rtl.c (gen_rtx_EXPR_LIST): New.
21495 * gengenrtl.c (special_rtx): Add EXPR_LIST.
21496 * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
21497 invariant: GET_CODE (X) == EXPR_LIST.
21498 (is_a_helper <rtx_expr_list *>::test): New.
21499 (rtx_expr_list::next): New.
21500 (rtx_expr_list::element): New.
21501 (gen_rtx_EXPR_LIST): New.
21502
21503 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21504
21505 * varasm.c (mark_constants): Convert a GET_CODE check into a
21506 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
21507 Use methods of rtx_sequence to clarify the code.
21508
21509 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21510
21511 * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
21512 local "seq" via a checked cast, and use methods of rtx_sequence
21513 to simplify the code.
21514
21515 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21516
21517 * resource.c (mark_referenced_resources): Strengthen local
21518 "sequence" from rtx to rtx_sequence *, adding a checked cast, and
21519 using methods of rtx_sequence to clarify the code.
21520 (find_dead_or_set_registers): Within the switch statement, convert
21521 a GET_CODE check to a dyn_cast, introducing local "seq". Within
21522 the JUMP_P handling, introduce another local "seq", adding a
21523 checked cast to rtx_sequence *. In both cases, use methods of
21524 rtx_sequence to clarify the code.
21525 (mark_set_resources): Within SEQUENCE case, introduce local "seq"
21526 via a checked cast, and use methods of rtx_sequence to simplify
21527 the code.
21528
21529 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21530
21531 * reorg.c (redundant_insn): In two places in the function, replace
21532 a check of GET_CODE with a dyn_cast, introducing local "seq", and
21533 usings methods of rtx_sequence to clarify the code.
21534
21535 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21536
21537 * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
21538 local "seq" with a checked cast, and use methods of rtx_sequence
21539 to clarify the code.
21540
21541 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21542
21543 * function.c (contains): Introduce local "seq" for PATTERN (insn),
21544 with a checked cast, in the region for where we know it's a
21545 SEQUENCE. Use methods of rtx_sequence.
21546
21547 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21548
21549 * final.c (get_attr_length_1): Replace GET_CODE check with a
21550 dyn_cast, introducing local "seq" and the use of methods of
21551 rtx_sequence.
21552 (shorten_branches): Likewise, introducing local "body_seq".
21553 Strengthen local "inner_insn" from rtx to rtx_insn *.
21554 (reemit_insn_block_notes): Replace GET_CODE check with a
21555 dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
21556 Use methods of rtx_sequence.
21557 (final_scan_insn): Likewise, introducing local "seq" for when
21558 "body" is known to be a SEQUENCE, using its methods.
21559
21560 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21561
21562 * except.c (can_throw_external): Strengthen local "seq" from rtx
21563 to rtx_sequence *. Use methods of rtx_sequence.
21564 (insn_nothrow_p): Likewise.
21565
21566 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21567
21568 * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
21569 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
21570 Use methods of rtx_sequence.
21571 (scan_trace): Likewise for local "pat".
21572
21573 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21574
21575 * coretypes.h (class rtx_sequence): Add forward declaration.
21576 * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
21577 invariant: GET_CODE (X) == SEQUENCE.
21578 (is_a_helper <rtx_sequence *>::test): New.
21579 (is_a_helper <const rtx_sequence *>::test): New.
21580 (rtx_sequence::len): New.
21581 (rtx_sequence::element): New.
21582 (rtx_sequence::insn): New.
21583
21584 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21585
21586 * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
21587 rtx_insn_list **.
21588 (alloc_INSN_LIST): Strengthen return type from rtx to
21589 rtx_insn_list *.
21590 (copy_INSN_LIST): Likewise for return type and param.
21591 (concat_INSN_LIST): Likewise for both params and return type.
21592 (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
21593 rtx_insn *. Strengthen second param from rtx * to rtx_insn_list **.
21594 (remove_free_INSN_LIST_node): Strenghten return type from rtx to
21595 rtx_insn *. Strengthen param from rtx * to rtx_insn_list **.
21596
21597 * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
21598 "implicit_sets", "control_uses", "clobbers" from rtx to
21599 rtx_insn_list *.
21600 (struct deps_desc): Likewise for fields "pending_read_insns",
21601 "pending_write_insns", "pending_jump_insns",
21602 "last_pending_memory_flush", "last_function_call",
21603 "last_function_call_may_noreturn", "sched_before_next_call",
21604 "sched_before_next_jump".
21605 (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
21606 (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
21607
21608 * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
21609 from rtx to rtx_insn_list *.
21610 (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
21611 rtx_insn_list *.
21612
21613 * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
21614 to rtx_insn_list **.
21615 (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
21616 rtx_insn_list *.
21617 (queue_insn): Likewise for local "link".
21618 (struct haifa_saved_data): Strengthen field "insn_queue" from
21619 rtx * to rtx_insn_list **.
21620 (save_backtrack_point): Update allocation of save->insn_queue to
21621 reflect the strengthening of elements from rtx to rtx_insn_list *.
21622 (queue_to_ready): Strengthen local "link" from rtx to
21623 rtx_insn_list *; use methods "next" and "insn" when traversing the
21624 list.
21625 (early_queue_to_ready): Likewise for locals "link", "next_link",
21626 "prev_link".
21627 (schedule_block): Update allocation of insn_queue to reflect the
21628 strengthening of elements from rtx to rtx_insn_list *. Strengthen
21629 local "link" from rtx to rtx_insn_list *, and use methods when
21630 working it.
21631 (add_to_speculative_block): Strengthen locals "twins" and
21632 "next_node" from rtx to rtx_insn_list *, and use methods when
21633 working with them. Strengthen local "twin" from rtx to
21634 rtx_insn *, eliminating a checked cast.
21635 (fix_recovery_deps): Strengthen locals "ready_list" and "link"
21636 from rtx to rtx_insn_list *, and use methods when working with
21637 them.
21638
21639 * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
21640 from rtx to rtx_insn_list *, adding a checked cast.
21641 (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
21642 rtx_insn_list **.
21643 (copy_INSN_LIST): Strengthen return type and locals "new_queue",
21644 "newlink" from rtx to rtx_insn_list *. Strengthen local
21645 "pqueue" from rtx * to rtx_insn_list **. Strengthen local "x"
21646 from rtx to rtx_insn *.
21647 (concat_INSN_LIST): Strengthen return type and local "new_rtx",
21648 from rtx to rtx_insn_list *. Use methods of the latter class.
21649 (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
21650 rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
21651 (remove_free_INSN_LIST_node): Strengthen return type and local
21652 "elem" from rtx to rtx_insn *. Strenghten param "listp" from
21653 rtx * to rtx_insn_list **. Strengthen local "node" from rtx to
21654 rtx_insn_list *, using "insn" method.
21655
21656 * sched-deps.c (add_dependence_list): Strengthen param "list"
21657 from rtx to rtx_insn_list *, and use methods when working with it.
21658 (add_dependence_list_and_free): Strengthen param "listp" from
21659 rtx * to rtx_insn_list **.
21660 (remove_from_dependence_list): Strenghten param "listp" from rtx *
21661 to rtx_insn_list **, and use methods when working with *listp.
21662 (remove_from_both_dependence_lists): Strengthen param "listp" from
21663 rtx * to rtx_insn_list **
21664 (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
21665 to rtx_insn_list **. Eliminate local "link", in favor of two new
21666 locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
21667 respectively.
21668 (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
21669 by introducing local "cond_deps".
21670 (remove_from_deps): Strengthen param "insn" from rtx to
21671 rtx_insn *.
21672
21673 * sched-rgn.c (concat_insn_mem_list): Strengthen param
21674 "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
21675 Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
21676 Use methods of rtx_insn_list.
21677
21678 * store-motion.c (struct st_expr): Strengthen fields
21679 "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
21680 (st_expr_entry): Replace NULL_RTX with NULL when dealing with
21681 rtx_insn_list *.
21682 (find_moveable_store): Split out "tmp" into multiple more-tightly
21683 scoped locals. Use methods of rtx_insn_list *.
21684 (compute_store_table): Strengthen local "tmp" from rtx to
21685 rtx_insn *. Use methods of rtx_insn_list *.
21686
21687 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21688
21689 * coretypes.h (class rtx_insn_list): Add forward declaration.
21690 * rtl.h (class rtx_insn_list): New subclass of rtx_def
21691 (is_a_helper <rtx_insn_list *>::test): New.
21692 (rtx_insn_list::next): New.
21693 (rtx_insn_list::insn): New.
21694 (gen_rtx_INSN_LIST): Add prototype.
21695 * emit-rtl.c (gen_rtx_INSN_LIST): New.
21696 * gengenrtl.c (special_rtx): Add INSN_LIST.
21697
21698 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21699
21700 * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
21701 "prev" from rtx to rtx_insn *.
21702
21703 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21704
21705 * rtl.h (INSN_UID): Convert from a macro to a pair of inline
21706 functions. Require merely an rtx for now, not an rtx_insn *.
21707 (BLOCK_FOR_INSN): Likewise.
21708 (INSN_LOCATION): Likewise.
21709 (INSN_HAS_LOCATION): Convert from a macro to an inline function.
21710
21711 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21712
21713 * rtl.h (PATTERN): Convert this macro into a pair of inline
21714 functions, for now, requiring const_rtx and rtx.
21715
21716 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21717
21718 * target.def (unwind_emit): Strengthen param "insn" from rtx to
21719 rtx_insn *.
21720 (final_postscan_insn): Likewise.
21721 (adjust_cost): Likewise.
21722 (adjust_priority): Likewise.
21723 (variable_issue): Likewise.
21724 (macro_fusion_pair_p): Likewise.
21725 (dfa_post_cycle_insn): Likewise.
21726 (first_cycle_multipass_dfa_lookahead_guard): Likewise.
21727 (first_cycle_multipass_issue): Likewise.
21728 (dfa_new_cycle): Likewise.
21729 (adjust_cost_2): Likewise for params "insn" and "dep_insn".
21730 (speculate_insn): Likewise for param "insn".
21731 (gen_spec_check): Likewise for params "insn" and "label".
21732 (get_insn_spec_ds): Likewise for param "insn".
21733 (get_insn_checked_ds): Likewise.
21734 (dispatch_do): Likewise.
21735 (dispatch): Likewise.
21736 (cannot_copy_insn_p): Likewise.
21737 (invalid_within_doloop): Likewise.
21738 (legitimate_combined_insn): Likewise.
21739 (needed): Likewise.
21740 (after): Likewise.
21741
21742 * doc/tm.texi: Automatically updated to reflect changes to
21743 target.def.
21744
21745 * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
21746 working with insn.
21747 (schedule_block): Likewise.
21748 (sched_init): Likewise.
21749 (sched_speculate_insn): Strengthen param "insn" from rtx to
21750 rtx_insn *.
21751 (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
21752 working with insn.
21753 * hooks.c (hook_bool_rtx_true): Rename to...
21754 hook_bool_rtx_insn_true): ...this, and strengthen first param from
21755 rtx to rtx_insn *.
21756 (hook_constcharptr_const_rtx_null): Rename to...
21757 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
21758 first param from const_rtx to const rtx_insn *.
21759 (hook_bool_rtx_int_false): Rename to...
21760 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
21761 param from rtx to rtx_insn *.
21762 (hook_void_rtx_int): Rename to...
21763 (hook_void_rtx_insn_int): ...this, and strengthen first param from
21764 rtx to rtx_insn *.
21765
21766 * hooks.h (hook_bool_rtx_true): Rename to...
21767 (hook_bool_rtx_insn_true): ...this, and strengthen first param from
21768 rtx to rtx_insn *.
21769 (hook_bool_rtx_int_false): Rename to...
21770 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
21771 param from rtx to rtx_insn *.
21772 (hook_void_rtx_int): Rename to...
21773 (hook_void_rtx_insn_int): ...this, and strengthen first param from
21774 rtx to rtx_insn *.
21775 (hook_constcharptr_const_rtx_null): Rename to...
21776 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
21777 first param from const_rtx to const rtx_insn *.
21778
21779 * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
21780 and local "prev" from rtx to rtx_insn *.
21781
21782 * sched-int.h (sched_speculate_insn): Strengthen first param from
21783 rtx to rtx_insn *.
21784
21785 * sel-sched.c (create_speculation_check): Likewise for local "label".
21786 * targhooks.c (default_invalid_within_doloop): Strengthen param
21787 "insn" from const_rtx to const rtx_insn *.
21788 * targhooks.h (default_invalid_within_doloop): Strengthen param
21789 from const_rtx to const rtx_insn *.
21790
21791 * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
21792 (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
21793
21794 * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
21795 "insn".
21796 (arc_invalid_within_doloop): Likewise, with const.
21797
21798 * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
21799 (arm_cannot_copy_insn_p): Likewise for param "insn".
21800 (arm_unwind_emit): Likewise.
21801
21802 * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
21803 "dep_insn".
21804
21805 * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
21806 (c6x_variable_issue): Likewise. Removed now-redundant checked
21807 cast.
21808 (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
21809
21810 * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
21811 Likewise for param "insn".
21812 (epiphany_mode_after): Likewise.
21813 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
21814 params "insn", "dep_insn".
21815 (epiphany_mode_needed): Likewise for param "insn".
21816 (epiphany_mode_after): Likewise.
21817
21818 * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
21819 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
21820 (ix86_avx_u128_mode_needed): Likewise.
21821 (ix86_i387_mode_needed): Likewise.
21822 (ix86_mode_needed): Likewise.
21823 (ix86_avx_u128_mode_after): Likewise.
21824 (ix86_mode_after): Likewise.
21825 (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
21826 (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
21827 (ix86_adjust_priority): Likewise for param "insn".
21828 (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
21829 (do_dispatch): Likewise.
21830 (has_dispatch): Likewise.
21831 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
21832
21833 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
21834 reflect renaming of default hook implementation from
21835 hook_constcharptr_const_rtx_null to
21836 hook_constcharptr_const_rtx_insn_null.
21837 (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
21838 rtx to rtx_insn *.
21839 (ia64_variable_issue): Likewise for param "insn".
21840 (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
21841 (ia64_dfa_new_cycle): Likewise.
21842 (ia64_get_insn_spec_ds): Likewise.
21843 (ia64_get_insn_checked_ds): Likewise.
21844 (ia64_speculate_insn): Likewise.
21845 (ia64_gen_spec_check): Likewise for params "insn", "label".
21846 (ia64_asm_unwind_emit): Likewise for param "insn".
21847
21848 * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
21849
21850 * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
21851 "insn", "def_insn".
21852 (m68k_sched_variable_issue): Likewise for param "insn".
21853
21854 * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
21855 "def_insn".
21856
21857 * config/microblaze/microblaze.c (microblaze_adjust_cost):
21858 Likewise for params "insn", "dep".
21859
21860 * config/mips/mips.c (mips_adjust_cost): Likewise.
21861 (mips_variable_issue): Likewise for param "insn".
21862 (mips_final_postscan_insn): Likewise.
21863
21864 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
21865 for params "insn", "dep".
21866
21867 * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
21868 "dep_insn".
21869 (pa_adjust_priority): Likewise for param "insn".
21870
21871 * config/picochip/picochip.c (picochip_sched_adjust_cost):
21872 Likewise for params "insn", "dep_insn".
21873
21874 * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
21875 param "insn".
21876 (rs6000_variable_issue): Likewise.
21877 (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
21878 (rs6000_debug_adjust_cost): Likewise.
21879 (rs6000_adjust_priority): Likewise for param "insn".
21880 (rs6000_use_sched_lookahead_guard): Likewise.
21881 (get_next_active_insn): Likewise for return type and both params.
21882 (redefine_groups): Likewise for params "prev_head_insn", "tail"
21883 and locals "insn", "next_insn".
21884 (pad_groups): Likewise.
21885
21886 * config/s390/s390.c (s390_adjust_priority): Likewise for param
21887 "insn".
21888 (s390_cannot_copy_insn_p): Likewise.
21889 (s390_sched_variable_issue): Likewise for third param, eliminating
21890 checked cast.
21891 (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
21892 default hook implementation from hook_constcharptr_const_rtx_null
21893 to hook_constcharptr_const_rtx_insn_null.
21894
21895 * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
21896 from rtx to rtx_insn *.
21897 (sh_adjust_cost): Likewise for params "insn", "dep_insn".
21898 (sh_variable_issue): Likewise for param "insn".
21899 (sh_dfa_new_cycle): Likewise.
21900 (sh_mode_needed): Likewise.
21901 (sh_mode_after): Likewise.
21902
21903 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
21904 params "insn", "dep_insn".
21905 (hypersparc_adjust_cost): Likewise.
21906 (sparc_adjust_cost): Likewise.
21907
21908 * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
21909 param, eliminated checked cast.
21910 (spu_sched_adjust_cost): Likewise for first and third params.
21911
21912 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
21913 params "insn" and "dep_insn" from rtx to rtx_insn *.
21914
21915 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
21916
21917 2014-08-27 David Malcolm <dmalcolm@redhat.com>
21918
21919 * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
21920 (set_is_load_p): ...this, updating to work on a SET pattern rather
21921 than an insn.
21922 (is_store_insn): Rename to...
21923 (set_is_store_p): ...this, updating to work on a SET pattern
21924 rather than an insn.
21925 (mn10300_adjust_sched_cost): Move call to get_attr_timings from
21926 top of function to where it is needed. Rewrite the bogus
21927 condition that checks for "insn" and "dep" being PARALLEL to
21928 instead use single_set, introducing locals "insn_set" and
21929 "dep_set". Given that we only ever returned "cost" for a non-pair
21930 of SETs, bail out early if we don't have a pair of SET.
21931 Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
21932 use the new locals "insn_set" and "dep_set", and update calls to
21933 is_load_insn and is_store_insn to be calls to set_is_load_p and
21934 set_is_store_p.
21935
21936 2014-08-27 Guozhi Wei <carrot@google.com>
21937
21938 PR target/62262
21939 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
21940 amount before using it.
21941
21942 2014-08-27 Richard Biener <rguenther@suse.de>
21943
21944 * gimple-fold.c (get_maxval_strlen): Add overload wrapping
21945 get_maxval_strlen inside a more useful API.
21946 (gimple_fold_builtin_with_strlen): Remove and fold into ...
21947 (gimple_fold_builtin): ... caller.
21948 (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
21949 gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
21950 gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
21951 gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
21952 gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
21953 gimple_fold_builtin_sprintf): Adjust to compute maxval
21954 themselves.
21955
21956 2014-08-27 Yvan Roux <yvan.roux@linaro.org>
21957
21958 PR other/62248
21959 * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
21960
21961 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
21962 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
21963 Anna Tikhonova <anna.tikhonova@intel.com>
21964 Ilya Tocar <ilya.tocar@intel.com>
21965 Andrey Turetskiy <andrey.turetskiy@intel.com>
21966 Ilya Verbin <ilya.verbin@intel.com>
21967 Kirill Yukhin <kirill.yukhin@intel.com>
21968 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
21969
21970 * config/i386/sse.md
21971 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
21972 Use `concat_tg_mode' attribute to determine asm register size.
21973
21974 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
21975 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
21976 Anna Tikhonova <anna.tikhonova@intel.com>
21977 Ilya Tocar <ilya.tocar@intel.com>
21978 Andrey Turetskiy <andrey.turetskiy@intel.com>
21979 Ilya Verbin <ilya.verbin@intel.com>
21980 Kirill Yukhin <kirill.yukhin@intel.com>
21981 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
21982
21983 * config/i386/sse.md
21984 (define_mode_iterator VI48_AVX512VL): New.
21985 (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
21986 (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
21987 (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
21988 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
21989 with VI1): Change mode iterator.
21990 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
21991 with VI_ULOADSTORE_BW_AVX512VL): New.
21992 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
21993 with VI_ULOADSTORE_F_AVX512VL): Ditto.
21994 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
21995 with VI1): Change mode iterator.
21996 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
21997 with VI_ULOADSTORE_BW_AVX512VL): New.
21998 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
21999 with VI_ULOADSTORE_F_AVX512VL): Ditto.
22000 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22001 with VI1): Change mode iterator.
22002 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22003 with VI_ULOADSTORE_BW_AVX512VL): New.
22004 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22005 with VI_ULOADSTORE_BW_AVX512VL): Ditto.
22006 (define_insn "avx512f_storedqu<mode>_mask"): Delete.
22007 (define_insn "<avx512>_storedqu<mode>_mask" with
22008 VI48_AVX512VL): New.
22009 (define_insn "<avx512>_storedqu<mode>_mask" with
22010 VI12_AVX512VL): Ditto.
22011
22012 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
22013 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
22014 Anna Tikhonova <anna.tikhonova@intel.com>
22015 Ilya Tocar <ilya.tocar@intel.com>
22016 Andrey Turetskiy <andrey.turetskiy@intel.com>
22017 Ilya Verbin <ilya.verbin@intel.com>
22018 Kirill Yukhin <kirill.yukhin@intel.com>
22019 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
22020
22021 * config/i386/sse.md
22022 (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
22023 (define_mode_iterator VI48_AVX512BW): New.
22024 (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
22025 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
22026 with VI48_AVX2_48_AVX512F): New.
22027 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
22028 with VI2_AVX512VL): Ditto.
22029
22030 2014-08-27 Richard Biener <rguenther@suse.de>
22031
22032 PR middle-end/62239
22033 * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
22034 (fold_builtin_3): Do not fold strcat_chk here.
22035 * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
22036 from builtins.c.
22037 (gimple_fold_builtin): Fold strcat_chk here.
22038
22039 2014-08-26 Aldy Hernandez <aldyh@redhat.com>
22040
22041 * dwarf2out.h (dwarf2out_decl): Remove prototype.
22042 * dwarf2out.c (dwarf2out_decl): Make static.
22043
22044 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com>
22045
22046 * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
22047
22048 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22049
22050 * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
22051 from rtx to rtx_insn *.
22052 (cselib_lookup_from_insn): Likewise for final param.
22053 (cselib_subst_to_values_from_insn): Likewise.
22054 (cselib_add_permanent_equiv): Likewise.
22055
22056 * cselib.c (cselib_current_insn): Likewise for this variable.
22057 (cselib_subst_to_values_from_insn): Likewise for param "insn".
22058 (cselib_lookup_from_insn): Likewise.
22059 (cselib_add_permanent_equiv): Likewise for param "insn" and local
22060 "save_cselib_current_insn".
22061 (cselib_process_insn): Replace use of NULL_RTX with NULL.
22062
22063 * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
22064 from rtx to rtx_insn *.
22065
22066 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22067
22068 * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
22069 rtx_insn *.
22070
22071 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22072
22073 * df.h (df_dump_insn_problem_function): Strengthen first param of
22074 this callback from const_rtx to const rtx_insn *.
22075 (struct df_insn_info): Strengthen field "insn" from rtx to
22076 rtx_insn *.
22077 (DF_REF_INSN): Eliminate this function, reinstating the older
22078 macro definition.
22079 (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
22080 (df_reg_defined): Likewise.
22081 (df_find_use): Likewise.
22082 (df_reg_used): Likewise.
22083 (df_dump_insn_top): Strengthen param 1 from const_rtx to
22084 const rtx_insn *.
22085 (df_dump_insn_bottom): Likewise.
22086 (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
22087 (df_insn_debug_regno): Likewise.
22088 (debug_df_insn): Likewise.
22089 (df_rd_simulate_one_insn): Likewise for param 2.
22090 (df_word_lr_simulate_defs): Likewise for param 1.
22091 (df_word_lr_simulate_uses): Likewise.
22092 (df_md_simulate_one_insn): Likewise for param 2.
22093 (df_simulate_find_noclobber_defs): Likewise for param 1.
22094 (df_simulate_find_defs): Likewise.
22095 (df_simulate_defs): Likewise.
22096 (df_simulate_uses): Likewise.
22097 (df_simulate_one_insn_backwards): Likewise for param 2.
22098 (df_simulate_one_insn_forwards): Likewise.
22099 (df_uses_create): Likewise for param 2.
22100 (df_insn_create_insn_record): Likewise for param 1.
22101 (df_insn_delete): Likewise.
22102 (df_insn_rescan): Likewise.
22103 (df_insn_rescan_debug_internal): Likewise.
22104 (df_insn_change_bb): Likewise.
22105 (df_notes_rescan): Likewise.
22106 * rtl.h (remove_death): Likewise for param 2.
22107 (print_rtl_with_bb): Strengthen param 2 from const_rtx to
22108 const rtx_insn *.
22109 * sched-int.h (reemit_notes): Strengthen param from rtx to
22110 rtx_insn *.
22111 * valtrack.h (propagate_for_debug): Likewise for param 1.
22112
22113 * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
22114 local "tmp_rtx" from const_rtx to const rtx_insn *.
22115 * combine.c (remove_death): Strengthen param "insn" from rtx to
22116 rtx_insn *.
22117 (move_deaths): Likewise for local "where_dead".
22118 * cse.c (delete_trivially_dead_insns): Introduce local
22119 "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
22120 * df-core.c (df_find_def): Strengthen param "insn" from rtx to
22121 rtx_insn *.
22122 (df_reg_defined): Likewise.
22123 (df_find_use): Likewise.
22124 (df_reg_used): Likewise.
22125 (df_dump_insn_problem_data): Strengthen param "insn" from
22126 const_rtx to const rtx_insn *.
22127 (df_dump_insn_top): Likewise.
22128 (df_dump_insn_bottom): Likewise.
22129 (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
22130 (df_insn_debug_regno): Likewise.
22131 (debug_df_insn): Likewise.
22132 (DF_REF_INSN): Delete.
22133 * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
22134 from rtx to rtx_insn *.
22135 (df_chain_insn_top_dump): Strengthen param "insn" from
22136 const_rtx to const rtx_insn *.
22137 (df_chain_insn_bottom_dump): Likewise.
22138 (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
22139 rtx_insn *.
22140 (df_word_lr_simulate_uses): Likewise.
22141 (df_print_note): Likewise.
22142 (df_remove_dead_and_unused_notes): Likewise.
22143 (df_set_unused_notes_for_mw): Likewise.
22144 (df_set_dead_notes_for_mw): Likewise.
22145 (df_create_unused_note): Likewise.
22146 (df_simulate_find_defs): Likewise.
22147 (df_simulate_find_uses): Likewise.
22148 (df_simulate_find_noclobber_defs): Likewise.
22149 (df_simulate_defs): Likewise.
22150 (df_simulate_uses): Likewise.
22151 (df_simulate_one_insn_backwards): Likewise.
22152 (df_simulate_one_insn_forwards): Likewise.
22153 (df_md_simulate_one_insn): Likewise.
22154 * df-scan.c (df_uses_create): Likewise.
22155 (df_insn_create_insn_record): Likewise.
22156 (df_insn_delete): Likewise.
22157 (df_insn_rescan): Likewise.
22158 (df_insn_rescan_debug_internal): Likewise.
22159 (df_insn_change_bb): Likewise.
22160 (df_notes_rescan): Likewise.
22161 (df_refs_add_to_chains): Likewise.
22162 (df_insn_refs_verify): Likewise.
22163 * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
22164 when invoking df_insn_delete.
22165 (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
22166 (set_unique_reg_note): Add checked cast.
22167 * final.c (cleanup_subreg_operands): Likewise.
22168 * gcse.c (update_ld_motion_stores): Likewise, strengthening local
22169 "insn" from rtx to rtx_insn *.
22170 * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
22171 "last" from rtx to rtx_insn *.
22172 * ira-emit.c (change_regs_in_insn): New function.
22173 (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
22174 Invoke change_regs_in_insn rather than change_regs.
22175 * ira.c (update_equiv_regs): Strengthen locals "insn",
22176 "init_insn", "new_insn" from rtx to rtx_insn *. Invoke
22177 for_each_rtx_in_insn rather than for_each_rtx.
22178 * recog.c (confirm_change_group): Add checked casts.
22179 (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
22180 Add checked cast.
22181 (peep2_fill_buffer): Add checked cast.
22182 * rtlanal.c (remove_note): Likewise.
22183 * valtrack.c (propagate_for_debug): Strengthen param "insn" and
22184 locals "next" "end" from rtx to rtx_insn *.
22185
22186 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22187
22188 * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
22189 to rtx_insn *.
22190 (struct reg_use_data): Likewise for field "insn".
22191 (insn_cost): Likewise for param.
22192 (real_insn_for_shadow): Likewise for return type and param.
22193 (increase_insn_priority): Likewise for param 1.
22194 (debug_dependencies): Likewise for both params.
22195
22196 * haifa-sched.c (insn_delay): Likewise for param "insn".
22197 (real_insn_for_shadow): Likewise for return type and param "insn".
22198 (update_insn_after_change): Likewise for param "insn".
22199 (recompute_todo_spec): Likewise for param "next" and locals "pro",
22200 "other".
22201 (insn_cost): Likewise for param "insn".
22202 (increase_insn_priority): Likewise.
22203 (calculate_reg_deaths): Likewise.
22204 (setup_insn_reg_pressure_info): Likewise.
22205 (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
22206 (model_index): Strengthen param "insn" from rtx to rtx_insn *.
22207 (model_recompute): Likewise.
22208 (must_restore_pattern_p): Likewise for param "next".
22209 (model_excess_cost): Likewise for param "insn".
22210 (queue_remove): Likewise.
22211 (adjust_priority): Likewise for param "prev".
22212 (update_register_pressure): Likewise for param "insn".
22213 (setup_insn_max_reg_pressure): Likewise for local "insn".
22214 (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
22215 (model_add_to_schedule): Likewise.
22216 (model_reset_queue_indices): Likewise for local "insn".
22217 (unschedule_insns_until): Strengthen local "recompute_vec" from
22218 auto_vec<rtx> to auto_vec<rtx_insn *>. Strengthen locals "last",
22219 "con" from rtx to rtx_insn *.
22220 (restore_last_backtrack_point): Likewise for both locals "x". Add
22221 checked casts.
22222 (estimate_insn_tick): Likewise for param "insn".
22223 (commit_schedule): Likewise for params "prev_head", "tail" and
22224 local "x".
22225 (verify_shadows): Likewise for locals "i1", "i2".
22226 (dump_insn_stream): Likewise for params "head", "tail" and locals
22227 "next_tail", "insn".
22228 (schedule_block): Likewise for locals "insn", "x". Add a checked
22229 cast.
22230 (fix_inter_tick): Likewise for params "head", "tail".
22231 (create_check_block_twin): Likewise for local "jump".
22232 (haifa_change_pattern): Likewise for param "insn".
22233 (haifa_speculate_insn): Likewise.
22234 (dump_new_block_header): Likewise for params "head", "tail".
22235 (fix_jump_move): Likewise for param "jump".
22236 (move_block_after_check): Likewise.
22237 (sched_init_insn_luid): Likewise for param "insn".
22238 (sched_init_luids): Likewise for local "insn".
22239 (insn_luid): Likewise for param "insn".
22240 (init_h_i_d): Likewise.
22241 (haifa_init_h_i_d): Likewise for local "insn".
22242 (haifa_init_insn): Likewise for param "insn".
22243 * sched-deps.c (add_dependence): Likewise for local "real_pro",
22244 "other".
22245 (create_insn_reg_use): Likewise for param "insn".
22246 (setup_insn_reg_uses): Likewise. Add a checked cast.
22247 * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
22248 "tail" from rtx to rtx_insn *.
22249 * sched-rgn.c (void debug_dependencies): Likewise, also for locals
22250 "insn", "next_tail".
22251
22252 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22253
22254 * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
22255 from rtx to rtx_insn *.
22256 (model_add_to_schedule): Likewise for locals "start", "end",
22257 "iter".
22258
22259 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22260
22261 * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
22262 rtx_insn *.
22263 * cfgrtl.c (duplicate_insn_chain): Likewise for params "from",
22264 "to" and locals "insn", "next", "copy". Remove now-redundant
22265 checked cast.
22266
22267 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22268
22269 * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
22270 rtx_insn * and param 4 from rtx * to rtx_insn **.
22271 (get_condition): Strengthen param 1 from rtx to rtx_insn * and
22272 param 2 from rtx * to rtx_insn **.
22273
22274 * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
22275 rtx_insn * and final param from rtx * to rtx_insn **.
22276
22277 * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
22278 from rtx to rtx_insn *.
22279 (try_head_merge_bb): Likewise for both locals named "move_upto".
22280 * df-problems.c (can_move_insns_across): Likewise for params
22281 "from", "to", "across_from", "across_to" and locals "insn",
22282 "next", "max_to". Strengthen param "pmove_upto" from rtx * to
22283 rtx_insn **.
22284 * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
22285 from rtx to rtx_insn *.
22286 (noce_get_alt_condition): Strengthen param "earliest" from rtx *
22287 to rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
22288 (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
22289 rtx_insn *.
22290 (noce_try_abs): Likewise.
22291 (noce_get_condition): Likewise for param "jump". Strengthen param
22292 "earliest" from rtx * to rtx_insn **.
22293 (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
22294 rtx_insn *.
22295 (find_cond_trap): Likewise.
22296 (dead_or_predicable): Likewise for local "earliest".
22297 * loop-iv.c (check_simple_exit): Likewise for local "at". Add
22298 checked cast.
22299 * rtlanal.c (canonicalize_condition): Likewise for param "insn"
22300 and local "prev". Strengthen param "earliest" from rtx * to
22301 rtx_insn **.
22302 (get_condition): Strengthen param "jump" from rtx to rtx_insn *
22303 Strengthen param "earliest" from rtx * to rtx_insn **.
22304
22305 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22306
22307 * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
22308 "to" and local "insn" from rtx to rtx_insn *.
22309
22310 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22311
22312 * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
22313 from rtx to rtx_insn *.
22314 (need_nop_to_preserve_insn_bb): Likewise for param "insn".
22315 (code_motion_path_driver): Likewise for local "last_insn".
22316 (simplify_changed_insns): Likewise for local "insn".
22317
22318 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22319
22320 * rtl.h (push_to_sequence): Strengthen param from rtx to
22321 rtx_insn *.
22322 (push_to_sequence2): Likewise for both params.
22323 (delete_insns_since): Likewise for param.
22324 (reorder_insns_nobb): Likewise for all three params.
22325 (set_new_first_and_last_insn): Likewise for both params.
22326
22327 * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
22328 rtx_insn *. Remove now-redundant cast.
22329 (set_last_insn): Likewise.
22330
22331 * builtins.c (expand_builtin_return): Strengthen local
22332 "call_fusage" from rtx to rtx_insn *.
22333 * cfgrtl.c (create_basic_block_structure): Likewise for local
22334 "after".
22335 * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
22336 "first", "last" and local "insn".
22337 (delete_insns_since): Likewise for param "from".
22338 (reorder_insns_nobb): Likewise for params "from", "to", "after"
22339 and local "x".
22340 (push_to_sequence): Likewise for param "first" and local "last".
22341 (push_to_sequence2): Likewise for params "first" and "last".
22342 * lra.c (emit_add3_insn): Likewise for local "last".
22343 (lra_emit_add): Likewise.
22344 * lra-constraints.c (base_to_reg): Likewise for locals "insn",
22345 "last_insn".
22346 (process_address_1): Likewise for locals "insn", last".
22347 * modulo-sched.c (ps_first_note): Likewise for return type.
22348 * optabs.c (expand_binop_directly): Likewise for param "last".
22349
22350 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22351
22352 * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
22353 to rtx_insn*.
22354 * emit-rtl.c (get_last_insn_anywhere): Likewise.
22355
22356 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22357
22358 * function.h (struct sequence_stack): Strengthen fields "first"
22359 and "last" from rtx to rtx_insn *.
22360 (struct emit_status): Likewise for fields "x_first_insn" and
22361 "x_last_insn".
22362
22363 * emit-rtl.h (get_insns): Remove now-redundant checked cast.
22364 (set_first_insn): Add checked cast.
22365 (get_last_insn): Remove now-redundant checked cast.
22366 (set_last_insn): Add checked cast.
22367
22368 * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
22369 "saved_first" and "saved_last" from rtx to rtx_insn *.
22370
22371 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22372
22373 * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
22374 (unlink_insn_chain): Strengthen both params from rtx to
22375 rtx_insn *.
22376
22377 * cfgrtl.c (cfg_layout_function_header): Likewise for this
22378 variable.
22379 (unlink_insn_chain): Likewise for params "first" and "last".
22380 Remove now-redundant checked cast.
22381 (record_effective_endpoints): Replace use of NULL_RTX with NULL.
22382 (fixup_reorder_chain): Strengthen local "insn" from rtx to
22383 rtx_insn *.
22384 * emit-rtl.c (link_insn_into_chain): Likewise for all three
22385 params.
22386 (add_insn): Likewise for param "insn" and local "prev".
22387 (add_insn_after_nobb): Likewise for both params and local "next".
22388 (add_insn_before_nobb): Likewise for both params and local "prev".
22389 (add_insn_after): Rename param "after" to "uncast_after",
22390 introducing local "after" with another checked cast.
22391 (add_insn_before): Rename params "insn" and "before", giving them
22392 "uncast_" prefixes, adding the old names back using checked casts.
22393 (emit_note_after): Likewise for param "after".
22394 (emit_note_before): Likewise for param "before".
22395 (emit_label): Add a checked cast.
22396
22397 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22398
22399 * cselib.h (cselib_record_sets_hook): Strengthen initial param
22400 "insn" from rtx to rtx_insn *.
22401
22402 * cselib.c (cselib_record_sets_hook): Likewise.
22403
22404 * var-tracking.c (add_with_sets): Likewise, renaming back from
22405 "uncast_insn" to "insn" and eliminating the checked cast from rtx
22406 to rtx_insn *.
22407
22408 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22409
22410 * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
22411 and "header_" from rtx to rtx_insn *.
22412 (struct basic_block_d): Likewise for field "head_" within "x"
22413 field of union basic_block_il_dependent.
22414 (BB_HEAD): Drop function...
22415 (SET_BB_HEAD): ...and this function in favor of...
22416 (BB_HEAD): ...reinstate macro.
22417 (BB_END): Drop function...
22418 (SET_BB_END): ...and this function in favor of...
22419 (BB_END): ...reinstate macro.
22420 (BB_HEADER): Drop function...
22421 (SET_BB_HEADER): ...and this function in favor of...
22422 (BB_HEADER): ...reinstate macro.
22423
22424 * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
22425 (fix_crossing_unconditional_branches): Likewise.
22426 * caller-save.c (save_call_clobbered_regs): Likewise.
22427 (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
22428 * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
22429 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
22430 (merge_blocks_move_successor_nojumps): Likewise.
22431 (outgoing_edges_match): Update use of for_each_rtx to
22432 for_each_rtx_in_insn.
22433 * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
22434 (expand_gimple_cond): Likewise.
22435 (expand_gimple_tailcall): Likewise.
22436 (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
22437 SET_BB_END.
22438 (construct_exit_block): Drop use of SET_BB_END.
22439 * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
22440 rtx_insn *.
22441 (delete_insn): Rename param "insn" to "uncast_insn", introducing
22442 a new local "insn" with a checked cast to rtx_insn *. Drop use of
22443 SET_BB_HEAD and SET_BB_END.
22444 (create_basic_block_structure): Drop use of SET_BB_HEAD and
22445 SET_BB_END.
22446 (rtl_delete_block): Drop use of SET_BB_HEAD.
22447 (rtl_split_block): Drop use of SET_BB_END.
22448 (emit_nop_for_unique_locus_between): Likewise.
22449 (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
22450 (block_label): Drop use of SET_BB_HEAD.
22451 (fixup_abnormal_edges): Drop use of SET_BB_END.
22452 (record_effective_endpoints): Drop use of SET_BB_HEADER.
22453 (relink_block_chain): Likewise.
22454 (fixup_reorder_chain): Drop use of SET_BB_END.
22455 (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
22456 (cfg_layout_delete_block): Strengthen local "to" from rtx * to
22457 rtx_insn **. Drop use of SET_BB_HEADER.
22458 (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
22459 SET_BB_HEAD.
22460 (BB_HEAD): Delete this function.
22461 (SET_BB_HEAD): Likewise.
22462 (BB_END): Likewise.
22463 (SET_BB_END): Likewise.
22464 (BB_HEADER): Likewise.
22465 (SET_BB_HEADER): Likewise.
22466 * emit-rtl.c (add_insn_after): Rename param "insn" to
22467 "uncast_insn", adding a new local "insn" and a checked cast to
22468 rtx_insn *. Drop use of SET_BB_END.
22469 (remove_insn): Strengthen locals "next" and "prev" from rtx to
22470 rtx_insn *. Drop use of SET_BB_HEAD and SET_BB_END.
22471 (reorder_insns): Drop use of SET_BB_END.
22472 (emit_insn_after_1): Strengthen param "first" and locals "last",
22473 "after_after" from rtx to rtx_insn *. Drop use of SET_BB_END.
22474 (emit_pattern_after_noloc): Add checked cast.
22475 * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
22476 (restore_other_notes): Likewise.
22477 (move_insn): Likewise.
22478 (sched_extend_bb): Likewise.
22479 (fix_jump_move): Likewise.
22480 * ifcvt.c (noce_process_if_block): Likewise.
22481 (dead_or_predicable): Likewise.
22482 * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
22483 * reg-stack.c (change_stack): Drop use of SET_BB_END.
22484 * sel-sched-ir.c (sel_move_insn): Likewise.
22485 * sel-sched.c (move_nop_to_previous_block): Likewise.
22486
22487 * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
22488 SET_BB_END.
22489 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
22490
22491 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22492
22493 * basic-block.h (create_basic_block_structure): Strengthen params
22494 1 "head" and 2 "end" from rtx to rtx_insn *.
22495 * cfgrtl.c (create_basic_block_structure): Likewise.
22496 (rtl_create_basic_block): Update casts from void * to rtx to
22497 rtx_insn *, so that we can pass them as rtx_insn * to
22498 create_basic_block_structure.
22499 * sel-sched-ir.c (sel_create_basic_block): Likewise.
22500
22501 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22502
22503 * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
22504 rtx_insn **.
22505 (check_for_inc_dec): Strengthen param "insn" from rtx to
22506 rtx_insn *.
22507
22508 * cselib.h (cselib_process_insn): Likewise.
22509
22510 * cselib.c (cselib_record_sets): Likewise.
22511 (cselib_process_insn): Likewise.
22512
22513 * dse.c (struct insn_info): Likewise for field "insn".
22514 (check_for_inc_dec_1): Likewise for local "insn".
22515 (check_for_inc_dec): Likewise for param "insn".
22516 (scan_insn): Likewise.
22517 (dse_step1): Likewise for local "insn".
22518
22519 * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
22520 rtx_insn **. Use for_each_rtx_in_insn rather than for_each_rtx.
22521
22522 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22523
22524 * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
22525 from rtx to rtx_insn *.
22526 (DEP_PRO): Delete this function and...
22527 (SET_DEP_PRO): ...this function in favor of...
22528 (DEP_PRO): ...reinstate this macro.
22529 (DEP_CON): Delete this function and...
22530 (SET_DEP_CON): ...this function in favor of...
22531 (DEP_CON): ...reinstate this old macro.
22532 (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
22533 (init_dep): Likewise.
22534 (set_priorities): Likewise for both params.
22535 (sd_copy_back_deps): Likewise for params 1 and 2.
22536
22537 * haifa-sched.c (priority): Likewise for param "insn" and local
22538 "next".
22539 (set_priorities): Likewise for params "head" and "tail" and local
22540 "insn".
22541 (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
22542 local "consumer".
22543 (add_to_speculative_block): Add a checked cast.
22544 (create_check_block_twin): Drop use of SET_DEP_CON.
22545 (add_jump_dependencies): Strengthen params "insn" and "jump" from
22546 rtx to rtx_insn *.
22547
22548 * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
22549 Drop use of SET_DEP_PRO
22550 (init_dep): Strengthen params "pro" and "con" from rtx to
22551 rtx_insn *.
22552 (sd_copy_back_deps): Likewise for params "to" and "from". Drop
22553 use of SET_DEP_CON.
22554 (DEP_PRO): Delete.
22555 (DEP_CON): Delete.
22556 (SET_DEP_PRO): Delete.
22557 (SET_DEP_CON): Delete.
22558
22559 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22560
22561 * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
22562 from rtx to rtx_insn *.
22563 (VINSN_INSN_RTX): Eliminate rvalue function and...
22564 (SET_VINSN_INSN): ...lvalue function in favor of...
22565 (VINSN_INSN_RTX): reinstate this old macro.
22566
22567 * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
22568 in favor of VINSN_INSN_RTX.
22569 (VINSN_INSN_RTX): Delete this function.
22570 (SET_VINSN_INSN_RTX): Likewise.
22571
22572 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22573
22574 * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
22575 (BND_TO): Delete this function and...
22576 (SET_BND_TO): ...this functions in favor of...
22577 (BND_TO): ...reinstating this macro.
22578 (struct _fence): Strengthen field "executing_insns" from
22579 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *. Strengthen fields
22580 "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
22581 (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
22582 and param "insn" from rtx to insn_t.
22583 (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
22584 rtx_insn *.
22585
22586 * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
22587 vec<rtx_insn *> .
22588 (rtx_vec_t): Likewise.
22589 (struct sched_deps_info_def): Strengthen param of "start_insn"
22590 callback from rtx to rtx_insn *. Likewise for param "insn2" of
22591 "note_mem_dep" callback and first param of "note_dep" callback.
22592
22593 * haifa-sched.c (add_to_speculative_block): Strengthen param
22594 "insn" from rtx to rtx_insn *.
22595 (clear_priorities): Likewise.
22596 (calc_priorities): Likewise for local "insn".
22597
22598 * sched-deps.c (haifa_start_insn): Likewise for param "insn".
22599 Remove redundant checked cast.
22600 (haifa_note_mem_dep): Likewise for param "pending_insn".
22601 (haifa_note_dep): Likewise for param "elem".
22602 (note_mem_dep): Likewise for param "e".
22603 (sched_analyze_1): Add checked casts.
22604 (sched_analyze_2): Likewise.
22605
22606 * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
22607 from rtx to rtx_insn *.
22608 (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
22609 from vec<rtx> * to vec<rtx_insn *> *.
22610
22611 * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
22612 scaffolding.
22613 (flist_add): Strengthen param "executing_insns" from
22614 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
22615 (advance_deps_context): Remove now-redundant checked cast.
22616 (init_fences): Replace uses of NULL_RTX with NULL.
22617 (merge_fences): Strengthen params "last_scheduled_insn" and
22618 "sched_next" from rtx to rtx_insn * and "executing_insns" from
22619 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
22620 (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
22621 (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
22622 an instruction, rather than doing double-duty as a pattern.
22623 (return_nop_to_pool): Update for change of insn_t.
22624 (deps_init_id): Remove now-redundant checked cast.
22625 (struct sched_scan_info_def): Strengthen param of "init_insn"
22626 callback from rtx to insn_t.
22627 (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
22628 (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
22629 NULL.
22630 (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
22631 "end" from rtx to rtx_insn *.
22632 (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
22633 (rtx insn_rtx, bool force_unique_p)
22634 (BND_TO): Delete function.
22635 (SET_BND_TO): Delete function.
22636
22637 * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
22638 rtx to rtx_insn *.
22639 (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
22640 (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
22641 rtx to rtx_insn *.
22642 (undo_transformations): Likewise for param "insn".
22643 (update_liveness_on_insn): Likewise.
22644 (compute_live_below_insn): Likewise for param "insn" and local
22645 "succ".
22646 (update_data_sets): Likewise for param "insn".
22647 (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
22648 (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
22649 (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
22650 rtx_insn *.
22651 (move_cond_jump): Likewise for param "insn".
22652 (move_cond_jump): Drop use of SET_BND_TO.
22653 (compute_av_set_on_boundaries): Likewise.
22654 (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
22655 (update_and_record_unavailable_insns): Strengthen local "bb_end"
22656 from rtx to rtx_insn *.
22657 (maybe_emit_renaming_copy): Likewise for param "insn".
22658 (maybe_emit_speculative_check): Likewise.
22659 (handle_emitting_transformations): Likewise.
22660 (remove_insn_from_stream): Likewise.
22661 (code_motion_process_successors): Strengthen local "succ" from rtx
22662 to insn_t.
22663
22664 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22665
22666 * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
22667 ilist_t, not _xlist_t;
22668 (ILIST_INSN): Define in terms of new union field "insn".
22669 (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
22670 _XLIST_NEXT.
22671 (struct _list_node): Add new field "insn" to the union, of type
22672 insn_t.
22673 (ilist_add): Replace macro with an inline function, requiring an
22674 insn_t.
22675 (ilist_remove): Define this macro directly in terms of
22676 _list_remove, rather than indirectly via _xlist_remove.
22677 (ilist_clear): Likewise, in terms of _list_clear rather than
22678 _xlist_clear.
22679 (ilist_is_in_p): Replace macro with an inline function, requiring
22680 an insn_t.
22681 (_list_iter_cond_insn): New function.
22682 (ilist_iter_remove): Define this macro directly in terms of
22683 _list_iter_remove, rather than indirectly via _xlist_iter_remove.
22684 (ilist_iterator): Define directly in terms of _list_iterator
22685 rather than indirectly through _xlist_iterator.
22686 (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
22687 than in terms of _FOR_EACH_X.
22688 (FOR_EACH_INSN_1): Likewise.
22689
22690 2014-08-26 Joseph Myers <joseph@codesourcery.com>
22691
22692 PR target/60606
22693 PR target/61330
22694 * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
22695 DECL_HARD_REGISTER and return for invalid register specifications.
22696 * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
22697 DECL_HARD_REGISTER, call expand_one_error_var.
22698 * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
22699 CC_REGNUM with non-MODE_CC modes.
22700 (arm_regno_class): Return NO_REGS for PC_REGNUM.
22701
22702 2014-08-26 Marek Polacek <polacek@redhat.com>
22703
22704 PR c/61271
22705 * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
22706
22707 2014-08-26 Evandro Menezes <e.menezes@samsung.com>
22708
22709 * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
22710 qi cost; add di cost.
22711 (cortexa57_addrcost_table): Likewise.
22712
22713 2014-08-26 Marek Polacek <polacek@redhat.com>
22714
22715 PR c/61271
22716 * expr.c (is_aligning_offset): Remove logical not.
22717
22718 2014-08-26 Marek Polacek <polacek@redhat.com>
22719
22720 PR c/61271
22721 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
22722 LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
22723
22724 2014-08-26 Richard Biener <rguenther@suse.de>
22725
22726 PR tree-optimization/62175
22727 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
22728 expand possibly trapping operations.
22729
22730 2014-08-26 David Malcolm <dmalcolm@redhat.com>
22731
22732 * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
22733 "insn" from rtx to rtx_insn *.
22734 (permute_load): Likewise for param "insn".
22735 (permute_store): Likewise.
22736 (handle_special_swappables): Likewise for local "insn".
22737 (replace_swap_with_copy): Likewise for locals "insn" and
22738 "new_insn".
22739 (rs6000_analyze_swaps): Likewise for local "insn".
22740
22741 2014-08-25 David Malcolm <dmalcolm@redhat.com>
22742
22743 * regrename.h (struct du_chain): Strengthen field "insn" from rtx
22744 to rtx_insn *.
22745
22746 2014-08-25 David Malcolm <dmalcolm@redhat.com>
22747
22748 * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
22749 "note_list" from rtx to rtx_insn *.
22750 (BB_NOTE_LIST): Replace this function and...
22751 (SET_BB_NOTE_LIST): ...this function with...
22752 (BB_NOTE_LIST): ...the former macro implementation.
22753
22754 * sched-int.h (concat_note_lists): Strengthen param "from_end" and
22755 local "from_start" from rtx to rtx_insn *. Strengthen param
22756 "to_endp" from rtx * to rtx_insn **.
22757
22758 * haifa-sched.c (concat_note_lists): Likewise.
22759 * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
22760 BB_NOTE_LIST.
22761 (sel_restore_notes): Likewise.
22762 (move_bb_info): Likewise.
22763 (BB_NOTE_LIST): Delete this function.
22764 (SET_BB_NOTE_LIST): Delete this function.
22765 * sel-sched.c (create_block_for_bookkeeping): Eliminate
22766 SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
22767
22768 2014-08-25 David Malcolm <dmalcolm@redhat.com>
22769
22770 * target.def (reorder): Strengthen param "ready" of this DEFHOOK
22771 from rtx * to rtx_insn **.
22772 (reorder2): Likewise.
22773 (dependencies_evaluation_hook): Strengthen params "head", "tail"
22774 from rtx to rtx_insn *.
22775
22776 * doc/tm.texi: Update mechanically for above change to target.def.
22777
22778 * sched-int.h (note_list): Strengthen this variable from rtx to
22779 rtx_insn *.
22780 (remove_notes): Likewise for both params.
22781 (restore_other_notes): Likewise for return type and first param.
22782 (struct ready_list): Strengthen field "vec" from rtx * to
22783 rtx_insn **.
22784 (struct dep_replacement): Strenghten field "insn" from rtx to
22785 rtx_insn *.
22786 (struct deps_desc): Likewise for fields "last_debug_insn",
22787 "last_args_size".
22788 (struct haifa_sched_info): Likewise for callback field
22789 "can_schedule_ready_p"'s param, for first param of "new_ready"
22790 callback field, for both params of "rank" callback field, for
22791 first field of "print_insn" callback field (with a const), for
22792 both params of "contributes_to_priority" callback, for param
22793 of "insn_finishes_block_p" callback, for fields "prev_head",
22794 "next_tail", "head", "tail", for first param of "add_remove_insn"
22795 callback, for first param of "begin_schedule_ready" callback, for
22796 both params of "begin_move_insn" callback, and for second param
22797 of "advance_target_bb" callback.
22798 (add_dependence): Likewise for params 1 and 2.
22799 (sched_analyze): Likewise for params 2 and 3.
22800 (deps_analyze_insn): Likewise for param 2.
22801 (ready_element): Likewise for return type.
22802 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
22803 (try_ready): Strenghten param from rtx to rtx_insn *.
22804 (sched_emit_insn): Likewise for return type.
22805 (record_delay_slot_pair): Likewise for params 1 and 2.
22806 (add_delay_dependencies): Likewise for param.
22807 (contributes_to_priority): Likewise for both params.
22808 (find_modifiable_mems): Likewise.
22809
22810 * config/arm/arm.c (cortexa7_sched_reorder): Strengthen param
22811 "ready" from rtx * to rtx_insn **. Strengthen locals "insn",
22812 "first_older_only_insn" from rtx to rtx_insn *.
22813 (arm_sched_reorder): Strengthen param "ready" from rtx * to
22814 rtx_insn **.
22815
22816 * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
22817 "last_scheduled_iter0" from rtx to rtx_insn *.
22818 (init_sched_state): Replace use of NULL_RTX with NULL for insn.
22819 (c6x_sched_reorder_1): Strengthen param "ready" and locals
22820 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
22821 "insn" from rtx to rtx_insn *.
22822 (c6x_sched_reorder): Strengthen param "ready" from rtx * to
22823 rtx_insn **.
22824 (c6x_sched_reorder2): Strengthen param "ready" and locals
22825 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
22826 "insn" from rtx to rtx_insn *.
22827 (c6x_variable_issue): Add a checked cast when assigning from insn
22828 to ss.last_scheduled_iter0.
22829 (split_delayed_branch): Strengthen param "insn" and local "i1"
22830 from rtx to rtx_insn *.
22831 (split_delayed_nonbranch): Likewise.
22832 (undo_split_delayed_nonbranch): Likewise for local "insn".
22833 (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
22834 "entry_after", "end_packet", "head_insn", "tail_insn",
22835 "new_insns", "last_insn", "this_iter", "prev_stage_insn".
22836 Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
22837 to rtx_insn **. Remove now-redundant checked cast on last_insn,
22838 but add a checked cast on loop->start_label. Consolidate calls to
22839 avoid assigning result of gen_spkernel to "insn", now an
22840 rtx_insn *.
22841
22842 * config/i386/i386.c (do_reorder_for_imul): Strengthen param
22843 "ready" from rtx * to rtx_insn **. Strengthen local "insn" from
22844 rtx to rtx_insn *.
22845 (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
22846 rtx_insn **. Strengthen locals "top", "next" from rtx to
22847 rtx_insn *.
22848 (ix86_sched_reorder): Strengthen param "ready" from rtx * to
22849 rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
22850 (add_parameter_dependencies): Strengthen params "call", "head" and
22851 locals "insn", "last", "first_arg" from rtx to rtx_insn *.
22852 (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
22853 (add_dependee_for_func_arg): Likewise for param "arg" and local
22854 "insn".
22855 (ix86_dependencies_evaluation_hook): Likewise for params "head",
22856 "tail" and locals "insn", "first_arg".
22857
22858 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
22859 for params "head", "tail" and locals "insn", "next", "next_tail".
22860 (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
22861 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
22862 "insn", "lowest", "highest" from rtx to rtx_insn *.
22863 (ia64_sched_reorder): Strengthen param "ready" from rtx * to
22864 rtx_insn **.
22865 (ia64_sched_reorder2): Likewise.
22866
22867 * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
22868 and local "insn" from rtx to rtx_insn *. Strengthen param "ready"
22869 from rtx * to rtx_insn **.
22870 (mep_move_ready_insn): Strengthen param "ready" from rtx * to
22871 rtx_insn **.
22872 (mep_print_sched_insn): Strengthen param "insn" from rtx to
22873 rtx_insn *.
22874 (mep_sched_reorder): Strengthen param "ready" from rtx * to
22875 rtx_insn **. Strengthen locals "core_insn", "cop_insn" from rtx
22876 to rtx_insn *.
22877
22878 * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
22879 from rtx * to rtx_insn **. Strengthen local "new_head" from rtx
22880 to rtx_insn *.
22881 (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
22882 rtx_insn **. Strengthen local "temp" from rtx to rtx_insn *.
22883 (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
22884 rtx_insn **.
22885 (vr4130_reorder): Likewise.
22886 (mips_74k_agen_reorder): Likewise. Strengthen local "insn" from
22887 rtx to rtx_insn *.
22888 (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
22889 rtx_insn **.
22890 (mips_sched_reorder): Likewise.
22891 (mips_sched_reorder2): Likewise.
22892
22893 * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
22894
22895 * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
22896 Strengthen local "tmp" from rtx to rtx_insn *.
22897 (rs6000_sched_reorder2): Likewise.
22898
22899 * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
22900 Likewise. Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
22901 (s390_sched_reorder): Strengthen param "ready" from rtx * to
22902 rtx_insn **. Strengthen local "tmp" from rtx to rtx_insn *.
22903
22904 * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
22905 "tmp2" from rtx to rtx_insn *.
22906 (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
22907 Strengthen local "insn" from rtx to rtx_insn *.
22908 (ready_reorder): Strengthen param "ready" from rtx * to
22909 rtx_insn **. Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
22910 (sh_reorder): Strengthen param "ready" from rtx * to rtx_insn **.
22911 (sh_reorder2): Likewise.
22912
22913 * config/spu/spu.c (spu_sched_reorder): Likewise. Strengthen
22914 local "insn" from rtx to rtx_insn *.
22915
22916 * haifa-sched.c (note_list): Strengthen this variable from rtx to
22917 rtx_insn *.
22918 (scheduled_insns): Strengthen this variable from vec<rtx> to
22919 vec<rtx_insn *>.
22920 (set_modulo_params): Likewise for locals "i1", "i2".
22921 (record_delay_slot_pair): Likewise for params "i1", "i2".
22922 (add_delay_dependencies): Likewise for param "insn".
22923 (cond_clobbered_p): Likewise.
22924 (recompute_todo_spec): Likewise for local "prev".
22925 (last_scheduled_insn): Likewise for this variable.
22926 (nonscheduled_insns_begin): Likewise.
22927 (model_set_excess_costs): Strengthen param "insns" from rtx * to
22928 rtx_insn **.
22929 (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
22930 rtx_insn *.
22931 (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
22932 Strengthen local "insn" from rtx to rtx_insn *.
22933 (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
22934 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
22935 (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
22936 (ready_remove_first): Likewise for return type and local "t".
22937 (ready_element): Likewise for return type.
22938 (ready_remove): Likewise for return type and local "t".
22939 (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
22940 (check_clobbered_conditions): Strengthen local "x" from rtx to
22941 rtx_insn *, adding a checked cast.
22942 (schedule_insn): Likewise for param "insn".
22943 (remove_notes): Likewise for params "head", "tail" and locals
22944 "next_tail", "insn", "next".
22945 (struct haifa_saved_data): Likewise for fields
22946 "last_scheduled_insn", "nonscheduled_insns_begin".
22947 (save_backtrack_point): Update for change to field "vec" of
22948 struct ready_list.
22949 (toggle_cancelled_flags): Strengthen local "first" from rtx * to
22950 rtx_insn **.
22951 (restore_last_backtrack_point): Likewise. Strengthen local "insn"
22952 from rtx to rtx_insn *
22953 (resolve_dependencies): Strengthen param "insn" from rtx to
22954 rtx_insn *
22955 (restore_other_notes): Likewise for return type, for param "head"
22956 and local "note_head".
22957 (undo_all_replacements): Likewise for local "insn".
22958 (first_nonscheduled_insn): Likewise for return type and local "insn".
22959 (queue_to_ready): Likewise for local "insn", adding checked casts.
22960 (early_queue_to_ready): Likewise for local "insn".
22961 (debug_ready_list_1): Strengthen local "p" from rtx * to
22962 rtx_insn **.
22963 (move_insn): Strengthen param "insn" and local "note" from rtx to
22964 rtx_insn *
22965 (insn_finishes_cycle_p): Likewise for param "insn".
22966 (max_issue): Likewise for local "insn".
22967 (choose_ready): Likewise. Strengthen param "insn_ptr" from rtx *
22968 to rtx_insn **.
22969 (commit_schedule): Strengthen param "prev_head" and local "insn"
22970 from rtx to rtx_insn *
22971 (prune_ready_list): Likewise for local "insn".
22972 (schedule_block): Likewise for locals "prev_head", "head", "tail",
22973 "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
22974 (set_priorities): Likewise for local "prev_head".
22975 (try_ready): Likewise for param "next".
22976 (fix_tick_ready): Likewise.
22977 (change_queue_index): Likewise.
22978 (sched_extend_ready_list): Update for change to field "vec" of
22979 struct ready_list.
22980 (generate_recovery_code): Strengthen param "insn" from rtx to
22981 rtx_insn *.
22982 (begin_speculative_block): Likewise.
22983 (create_check_block_twin): Likewise for param "insn" and locals
22984 "label", "check", "twin". Introduce local "check_pat" to avoid
22985 "check" being used as a plain rtx before being used as an insn.
22986 (fix_recovery_deps): Add a checked cast to rtx_insn * when
22987 extracting elements from ready_list.
22988 (sched_remove_insn): Strengthen param "insn" from rtx to
22989 rtx_insn *.
22990 (sched_emit_insn): Likewise for return type.
22991 (ready_remove_first_dispatch): Likewise for return type and local
22992 "insn".
22993
22994 * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
22995
22996 * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
22997 const rtx_insn *.
22998
22999 * sched-deps.c (add_dependence): Strengthen params "con", "pro"
23000 from rtx to rtx_insn *.
23001 (add_dependence_list): Likewise for param "insn". Add a checked
23002 cast.
23003 (add_dependence_list_and_free): Strengthen param "insn" from rtx
23004 to rtx_insn *. Strengthen param "list_p" from rtx * to
23005 rtx_insn **.
23006 (chain_to_prev_insn): Strengthen param "insn" and locals
23007 "prec_nonnote", "i" from rtx to rtx_insn *.
23008 (flush_pending_lists): Likewise for param "insn".
23009 (cur_insn): Likewise for this variable.
23010 (haifa_start_insn): Add a checked cast.
23011 (note_dep): Strengthen param "e" from rtx to rtx_insn *.
23012 (sched_analyze_reg): Likewise for param "insn".
23013 (sched_analyze_1): Likewise.
23014 (sched_analyze_2): Likewise. Add checked casts.
23015 (sched_analyze_insn): Likewise. Also for local "prev".
23016 (deps_analyze_insn): Likewise for param "insn".
23017 (sched_analyze): Likewise for params "head", "tail" and local "insn".
23018 (add_dependence_1): Likewise for params "insn", "elem".
23019 (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
23020 (parse_add_or_inc): Likewise for param "insn".
23021 (find_inc): Likewise for local "inc_cand".
23022 (find_modifiable_mems): Likewise for params "head", "tail" and
23023 locals "insn", "next_tail".
23024
23025 * sched-ebb.c (init_ready_list): Likewise for local "insn".
23026 (begin_schedule_ready): Likewise for param "insn".
23027 (begin_move_insn): Likewise for params "insn" and "last".
23028 (ebb_print_insn): Strengthen param "insn" from const_rtx to
23029 const rtx_insn *.
23030 (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
23031 (ebb_contributes_to_priority): Likewise for params "next", "insn".
23032 (ebb_add_remove_insn): Likewise for param "insn".
23033 (advance_target_bb): Likewise.
23034
23035 * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
23036 "insn".
23037 (check_live): Likewise for param "insn".
23038 (init_ready_list): Likewise for local "insn".
23039 (can_schedule_ready_p): Likewise for param "insn".
23040 (begin_schedule_ready): Likewise.
23041 (new_ready): Likewise for param "next".
23042 (rgn_print_insn): Likewise for param "insn".
23043 (rgn_rank): Likewise for params "insn1", "insn2".
23044 (contributes_to_priority): Likewise for params "next", "insn".
23045 (rgn_insn_finishes_block_p): Likewise for param "insn".
23046 (add_branch_dependences): Likewise for params "head", "tail" and
23047 locals "insn", "last".
23048 (rgn_add_remove_insn): Likewise for param "insn".
23049 (advance_target_bb): Likewise.
23050
23051 * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
23052 const_rtx to const rtx_insn *.
23053
23054 * sel-sched-dump.h (sel_print_insn): Likewise.
23055
23056 * sel-sched-ir.c (advance_deps_context): Add a checked cast.
23057 (deps_init_id): Likewise.
23058
23059 * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
23060 (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
23061 rtx_insn **.
23062
23063 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23064
23065 * output.h (final_start_function): Strengthen param 1 from rtx to
23066 rtx_insn *.
23067
23068 * final.c (final_start_function): Likewise, renaming back from
23069 "uncast_first" to "first", and dropping the checked cast from rtx
23070 to rtx_insn *.
23071
23072 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23073
23074 * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
23075 * final.c (final): Likewise. Rename param back from
23076 "uncast_first" to "first" and eliminate the checked cast from rtx
23077 to rtx_insn *.
23078
23079 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23080
23081 * output.h (shorten_branches): Strengthen param from rtx to
23082 rtx_insn *.
23083
23084 * final.c (shorten_branches): Likewise, renaming param back from
23085 "uncast_first" to "first", and dropping the checked cast from rtx
23086 to rtx_insn *.
23087
23088 * genattr.c (gen_attr): Likewise when writing out the prototype of
23089 shorten_branches.
23090
23091 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23092
23093 * sched-int.h (struct haifa_sched_info): Strengthen fields
23094 "prev_head" and "next_tail" from rtx to rtx_insn *.
23095
23096 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23097
23098 * rtl.h (rtx_jump_table_data::get_labels): New method.
23099 * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
23100 with use of the new rtx_jump_table_data::get_labels method.
23101 (purge_dead_tablejump_edges): Strengthen param "table" from rtx
23102 to rtx_jump_table_data *. Simplify by using get_labels method.
23103 * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
23104 a dyn_cast, introducing local "table", using it to replace
23105 label-lookup logic with a get_labels method call.
23106 (patch_jump_insn): Simplify using get_labels method.
23107 * dwarf2cfi.c (create_trace_edges): Likewise.
23108 * rtlanal.c (label_is_jump_target_p): Likewise.
23109
23110 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23111
23112 * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
23113 to rtx_insn *.
23114
23115 * emit-rtl.c (unshare_all_rtl_1): Likewise.
23116 (unshare_all_rtl_again): Likewise, also for local "p".
23117
23118 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23119
23120 * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
23121 to rtx_insn *.
23122 * cfgrtl.c (delete_insn_and_edges): Likewise.
23123
23124 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23125
23126 * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
23127 from rtx to rtx_insn *.
23128
23129 * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
23130
23131 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23132
23133 * function.c (thread_prologue_and_epilogue_insns): Likewise for
23134 locals "returnjump", "epilogue_end", "insn", "next".
23135
23136 * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
23137 "returnjump" from rtx * to rtx_insn **.
23138 * shrink-wrap.c (get_unconverted_simple_return): Likewise.
23139
23140 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23141
23142 * basic-block.h (struct edge_def). Strengthen "r" within
23143 union edge_def_insns from rtx to rtx_insn *.
23144
23145 * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
23146 from rtx to rtx_insn *. Strengthen local "insns" from rtx to
23147 rtx_insn *.
23148 * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
23149 from rtx to rtx_insn *.
23150 * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
23151 rtx_insn *.
23152 * postreload-gcse.c (reg_killed_on_edge): Likewise.
23153 (reg_used_on_edge): Likewise.
23154 * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
23155 (gt_pch_nx): New overload for rtx_insn *&.
23156 * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
23157 from rtx to rtx_insn *.
23158
23159 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23160
23161 * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
23162 from rtx to rtx_insn *.
23163 (BB_FOOTER): Replace function with access macro.
23164 (SET_BB_FOOTER): Delete.
23165
23166 * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
23167 with BB_FOOTER.
23168 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
23169 (emit_barrier_after_bb): Likewise.
23170 (record_effective_endpoints): Likewise.
23171 (relink_block_chain): Likewise.
23172 (fixup_fallthru_exit_predecessor): Likewise.
23173 (cfg_layout_duplicate_bb): Likewise.
23174 (cfg_layout_split_block): Likewise.
23175 (cfg_layout_delete_block): Likewise.
23176 (cfg_layout_merge_blocks): Likewise.
23177 (BB_FOOTER): Delete function.
23178 (SET_BB_FOOTER): Delete function.
23179 * combine.c (update_cfg_for_uncondjump): Replace uses of
23180 SET_BB_FOOTER with BB_FOOTER.
23181
23182 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23183
23184 * except.h (struct eh_landing_pad_d): Strengthen field
23185 "landing_pad" from rtx to rtx_code_label *.
23186
23187 * except.c (sjlj_emit_dispatch_table): Likewise for param
23188 "dispatch_label"
23189 (sjlj_build_landing_pads): Likewise for local "dispatch_label".
23190
23191 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23192
23193 * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
23194 first param from rtx to rtx_insn *.
23195 * config/xtensa/xtensa.c (struct machine_function): Likewise for
23196 field "set_frame_ptr_insn".
23197 (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
23198 "csend" from rtx to rtx_code_label *.
23199 (xtensa_expand_atomic): Likewise for local "csloop".
23200 (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
23201 rtx_insn *.
23202 (xtensa_call_tls_desc): Likewise for return type and locals
23203 "call_insn", "insns".
23204 (xtensa_legitimize_tls_address): Likewise for local "insns".
23205 (xtensa_expand_prologue): Likewise for locals "insn", "first".
23206
23207 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23208
23209 * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
23210 first param from rtx to rtx_insn *.
23211 * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
23212 "insn".
23213
23214 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23215
23216 * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
23217 Strengthen param 1 from rtx to rtx_insn *.
23218 (tilepro_output_cbranch): Likewise.
23219 (tilepro_adjust_insn_length): Likewise.
23220 (tilepro_final_prescan_insn): Likewise for sole param.
23221
23222 * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
23223 Likewise for local "last".
23224 (cbranch_predicted_p): Likewise for param "insn".
23225 (tilepro_output_simple_cbranch_with_opcode): Likewise.
23226 (tilepro_output_cbranch_with_opcode): Likewise.
23227 (tilepro_output_cbranch): Likewise.
23228 (frame_emit_load): Likewise for return type and locals "seq",
23229 "insn".
23230 (emit_sp_adjust): Likewise for return type and local "insn".
23231 (tilepro_expand_epilogue): Likewise for locals "last_insn",
23232 "insn".
23233 (tilepro_adjust_insn_length): Likewise for param "insn".
23234 (next_insn_to_bundle): Likewise for return type and params
23235 "r", "end".
23236 (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
23237 (replace_pc_relative_symbol_ref): Likewise for param "insn" and
23238 local "new_insns".
23239 (match_addli_pcrel): Likewise for param "insn".
23240 (replace_addli_pcrel): Likewise.
23241 (match_auli_pcrel): Likewise.
23242 (replace_auli_pcrel): Likewise.
23243 (tilepro_fixup_pcrel_references): Likewise for locals "insn",
23244 "next_insn".
23245 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
23246 "queue", "next_queue", "prev".
23247 (tilepro_asm_output_mi_thunk): Likewise for local "insn".
23248 (tilepro_final_prescan_insn): Likewise for param "insn".
23249
23250 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23251
23252 * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
23253 Strengthen param 1 from rtx to rtx_insn *.
23254 (tilegx_output_cbranch): Likewise.
23255 (tilegx_adjust_insn_length): Likewise.
23256 (tilegx_final_prescan_insn): Likewise for sole param.
23257
23258 * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
23259 or local "last".
23260 (cbranch_predicted_p): Likewise for param "insn".
23261 (tilegx_output_simple_cbranch_with_opcode): Likewise.
23262 (tilegx_output_cbranch_with_opcode): Likewise.
23263 (tilegx_output_cbranch): Likewise.
23264 (frame_emit_load): Likewise for return type.
23265 (set_frame_related_p): Likewise for locals "seq", "insn".
23266 (emit_sp_adjust): Likewise for return type, and for local "insn".
23267 Introduce local "pat" for use in place of "insn" where the latter
23268 isn't an instruction.
23269 (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
23270 from rtx to rtx_insn *.
23271 (tilegx_adjust_insn_length): Likewise for param "insn".
23272 (next_insn_to_bundle): Likewise for return type and params "r" and
23273 "end".
23274 (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
23275 "end".
23276 (replace_insns): Likewise for params "old_insn", "new_insns".
23277 (replace_mov_pcrel_step1): Likewise for param "insn" and local
23278 "new_insns".
23279 (replace_mov_pcrel_step2): Likewise.
23280 (replace_mov_pcrel_step3): Likewise.
23281 (tilegx_fixup_pcrel_references): Likewise for locals "insn",
23282 "next_insn".
23283 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
23284 "queue", "next_queue", "prev".
23285 (tilegx_output_mi_thunk): Likewise for local "insn".
23286 (tilegx_final_prescan_insn): Likewise for param "insn".
23287
23288 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23289
23290 * config/spu/spu.c (frame_emit_store): Strengthen return type from
23291 rtx to rtx_insn *.
23292 (frame_emit_load): Likewise.
23293 (frame_emit_add_imm): Likewise, also for local "insn".
23294 (spu_expand_prologue): Likewise for local "insn".
23295 (struct spu_bb_info): Likewise for field "prop_jump".
23296 (emit_nop_for_insn): Likewise for param "insn" and local
23297 "new_insn".
23298 (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
23299 "hbr_insn".
23300 (spu_emit_branch_hint): Likewise for params "before", "branch" and
23301 locals "hint", "insn".
23302 (get_branch_target): Likewise for param "branch".
23303 (insn_clobbers_hbr): Likewise for param "insn".
23304 (insert_hbrp_for_ilb_runout): Likewise for param "first" and
23305 locals "insn", "before_4", "before_16".
23306 (insert_hbrp): Likewise for local "insn".
23307 (spu_machine_dependent_reorg): Likewise for locals "branch",
23308 "insn", "next", "bbend".
23309 (uses_ls_unit): Likewise for param "insn".
23310 (get_pipe): Likewise.
23311 (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
23312 introducing a checked cast.
23313 (spu_sched_adjust_cost): Likewise for params "insn" and
23314 "dep_insn".
23315 (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
23316 (spu_sms_res_mii): Likewise.
23317
23318 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23319
23320 * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
23321 from rtx to rtx_insn *.
23322 (output_cbranch): Likewise for param 6.
23323 (output_return): Likewise for param 1.
23324 (output_sibcall): Likewise.
23325 (output_v8plus_shift): Likewise.
23326 (output_v8plus_mult): Likewise.
23327 (output_v9branch): Likewise for param 7.
23328 (output_cbcond): Likewise for param 3.
23329
23330 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
23331 for local "insn".
23332 (sparc_legitimize_pic_address): Likewise.
23333 (sparc_emit_call_insn): Likewise.
23334 (emit_save_or_restore_regs): Likewise.
23335 (emit_window_save): Likewise for return type and local "insn".
23336 (sparc_expand_prologue): Likewise for local "insn".
23337 (sparc_flat_expand_prologue): Likewise.
23338 (output_return): Likewise for param "insn".
23339 (output_sibcall): Likewise for param "insn" and local "delay".
23340 (output_ubranch): Likewise for param "insn".
23341 (output_cbranch): Likewise.
23342 (output_cbcond): Likewise.
23343 (output_v9branch): Likewise.
23344 (output_v8plus_shift): Likewise.
23345 (sparc_output_mi_thunk): Likewise for local "insn".
23346 (get_some_local_dynamic_name): Likewise.
23347 (output_v8plus_mult): Likewise for param "insn".
23348
23349 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23350
23351 * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
23352 from rtx to rtx_insn *.
23353 (output_branchy_insn): Likewise for param 3.
23354 (output_far_jump): Likewise for param 1.
23355 (final_prescan_insn): Likewise.
23356 (sh_insn_length_adjustment): Likewise for sole param.
23357
23358 * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
23359 (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
23360 rtx_code_label *.
23361 (sh_emit_compare_and_set): Likewise for local "lab".
23362 (output_far_jump): Strengthen param "insn" and local "prev" from
23363 rtx to rtx_insn *.
23364 (output_branchy_insn): Likewise for param "insn" and local
23365 "next_insn".
23366 (output_ieee_ccmpeq): Likewise for param "insn".
23367 (struct label_ref_list_d): Strengthen field "label" from rtx to
23368 rtx_code_label *.
23369 (pool_node): Likewise.
23370 (pool_window_label): Likewise for this global.
23371 (add_constant): Likewise for return type and locals "lab", "new_rtx".
23372 (dump_table): Strengthen params "start", "barrier" and local
23373 "scan" from rtx to rtx_insn *.
23374 (broken_move): Likewise for param "insn".
23375 (untangle_mova): Likewise for params "first_mova" and "new_mova".
23376 Strengthen param "first_mova" from rtx * to rtx_insn **.
23377 (mova_p): Likewise for param "insn".
23378 (fixup_mova): Likewise for param "mova".
23379 (find_barrier): Likewise for return type, params "mova" and
23380 "from", and locals "barrier_before_mova", "found_barrier",
23381 "good_barrier", "orig", "last_symoff", "next". Strengthen local
23382 "label" from rtx to rtx_code_label *.
23383 (sh_loop_align): Strengthen locals "first", "insn", "mova" from
23384 rtx to rtx_insn *.
23385 (sh_reorg): Likewise for locals "link", "scan", "barrier".
23386 (split_branches): Likewise for param "first" and local "insn".
23387 (final_prescan_insn): Likewise for param "insn".
23388 (sequence_insn_p): Likewise for locals "prev", "next".
23389 (sh_insn_length_adjustment): Likewise for param "insn".
23390 (sh_can_redirect_branch): Likewise for local "insn".
23391 (find_r0_life_regions): Likewise for locals "end", "insn".
23392 (sh_output_mi_thunk): Likewise for local "insns".
23393
23394 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23395
23396 * config/score/score.c (score_output_mi_thunk): Strengthen local
23397 "insn" from rtx to rtx_insn *.
23398 (score_prologue): Likewise.
23399
23400 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23401
23402 * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
23403 1 from rtx to rtx_insn *.
23404 (s390_emit_jump): Likewise for return type.
23405 (s390_emit_call): Likewise.
23406 (s390_load_got): Likewise.
23407
23408 * config/s390/s390.c (last_scheduled_insn): Likewise for this
23409 variable.
23410 (s390_match_ccmode): Likewise for param "insn".
23411 (s390_emit_jump): Likewise for return type.
23412 (s390_split_branches): Likewise for local "label".
23413 (struct constant): Strengthen field "label" from rtx to
23414 rtx_code_label *.
23415 (struct constant_pool): Likewise for field "label". Strengthen
23416 fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
23417 rtx_insn *.
23418 (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
23419 insns.
23420 (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
23421 (s390_end_pool): Likewise.
23422 (s390_dump_pool): Likewise for local "insn".
23423 (s390_mainpool_start): Likewise.
23424 (s390_chunkify_start): Likewise.
23425 (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
23426 with insns. Strengthen locals "label", "jump", "barrier", "next",
23427 "prev", "vec_insn", "insn" from rtx to rtx_insn *.
23428 (s390_chunkify_finish): Strengthen local "insn" from rtx to
23429 rtx_insn *.
23430 (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
23431 "jump", "label", "next_insn".
23432 (s390_regs_ever_clobbered): Likewise for local "cur_insn".
23433 (s390_optimize_nonescaping_tx): Likewise for locals "insn",
23434 "tbegin_insn".
23435 (s390_load_got): Likewise for return type and local "insns".
23436 (s390_save_gprs_to_fprs): Likewise for local "insn".
23437 (s390_restore_gprs_from_fprs): Likewise.
23438 (pass_s390_early_mach::execute): Likewise.
23439 (s390_emit_prologue): Likewise for local "insns".
23440 (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
23441 rtx_code_label *.
23442 (s390_emit_call): Strengthen return type and local "insn" from
23443 rtx to rtx_insn *.
23444 (s390_emit_tpf_eh_return): Likewise for local "insn".
23445 (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
23446 "next_insn", introducing locals "s_pat", "rpat" to allow this.
23447 (s390_fix_long_loop_prediction): Likewise for param "insn" and
23448 local "cur_insn".
23449 (s390_non_addr_reg_read_p): Likewise for param "insn".
23450 (find_cond_jump): Likewise for return type and param "insn".
23451 (s390_swap_cmp): Likewise for param "insn".
23452 (s390_z10_optimize_cmp): Likewise for param "insn" and locals
23453 "prev_insn", "next_insn".
23454 (s390_reorg): Likewise for locals "insn", "target".
23455 (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
23456 (s390_sched_variable_issue): For now, rename param "insn" to
23457 "uncast_insn", introducing a checked cast.
23458 (s390_sched_init): Replace NULL_RTX with NULL when dealing with
23459 insn.
23460 (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
23461 rtx_insn *. Use for_each_rtx_in_insn rather than for_each_rtx.
23462
23463 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23464
23465 * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
23466 param from rtx to rtx_insn *.
23467 * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
23468
23469 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23470
23471 * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
23472 4 from rtx to rtx_insn *.
23473 (rs6000_final_prescan_insn): Likewise for first param.
23474 * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
23475 local "insn".
23476 (rs6000_get_some_local_dynamic_name): Likewise.
23477 (output_cbranch): Likewise for param "insn".
23478 (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
23479 (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
23480 (rs6000_emit_allocate_stack): Likewise for local "insn".
23481 (load_cr_save): Likewise.
23482 (restore_saved_cr): Likewise.
23483 (restore_saved_lr): Likewise.
23484 (emit_cfa_restores): Likewise.
23485 (rs6000_output_function_epilogue): Likewise for locals "insn" and
23486 "deleted_debug_label".
23487 (rs6000_output_mi_thunk): Likewise for local "insn".
23488 (rs6000_final_prescan_insn): Likewise for param "insn".
23489
23490 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23491
23492 * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
23493 Strengthen param "insn" from rtx to rtx_insn *.
23494 * config/picochip/picochip.c (picochip_current_prescan_insn):
23495 Likewise for this variable.
23496 (picochip_final_prescan_insn): Likewise for param "insn".
23497
23498 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23499
23500 * config/pa/pa-protos.h (pa_output_call): Strengthen first param
23501 from rtx to rtx_insn *.
23502 (pa_output_indirect_call): Likewise.
23503 (pa_adjust_insn_length): Likewise.
23504 (pa_attr_length_millicode_call): Likewise.
23505 (pa_attr_length_call): Likewise.
23506 (pa_attr_length_indirect_call): Likewise.
23507
23508 * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
23509 "insn".
23510 (pa_attr_length_millicode_call): Likewise.
23511 (pa_attr_length_call): Likewise.
23512 (pa_output_call): Likewise.
23513 (pa_attr_length_indirect_call): Likewise.
23514 (pa_output_indirect_call): Likewise.
23515
23516 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23517
23518 * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
23519 Strengthen first param from rtx to rtx_insn *.
23520 * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
23521 param "insn".
23522
23523 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23524
23525 * config/mips/mips-protos.h (mips_emit_move): Strengthen return
23526 type from rtx to rtx_insn *.
23527 (mips_expand_call): Likewise.
23528 (mips_adjust_insn_length): Likewise for first param.
23529 (mips_output_conditional_branch): Likewise.
23530 (mips_output_order_conditional_branch): Likewise.
23531 (mips_final_prescan_insn): Likewise.
23532
23533 * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
23534 rtx_insn * for the SEQUENCE case.
23535 (SEQ_END): Likewise.
23536 (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
23537 (mips_emit_call_insn): Likewise, also for local "insn".
23538 (mips16_gp_pseudo_reg): Likewise for local "scan".
23539 (mips16_build_call_stub): Likewise for return type and for local
23540 "insn". Introduce a new local "pattern" so that "insn" can indeed
23541 be an insn.
23542 (mips_expand_call): Strengthen return type and local "insn" from
23543 rtx to rtx_insn *.
23544 (mips_block_move_loop): Strengthen local "label" from rtx to
23545 rtx_code_label *.
23546 (mips_expand_synci_loop): Likewise for locals "label",
23547 "end_label".
23548 (mips_set_frame_expr): Strengthen local "insn" from rtx to
23549 rtx_insn *.
23550 (mips16e_collect_argument_saves): Likewise for locals "insn",
23551 "next".
23552 (mips_find_gp_ref): Likewise for param of callback for "pred"
23553 param, and for local "insn".
23554 (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
23555 (mips_insn_has_flexible_gp_ref_p): Likewise.
23556 (mips_epilogue_emit_cfa_restores): Likewise for return type and
23557 local "insn".
23558 (mips_epilogue_set_cfa): Likewise for local "insn".
23559 (mips_expand_epilogue): Likewise.
23560 (mips_adjust_insn_length): Likewise for param "insn".
23561 (mips_output_conditional_branch): Likewise.
23562 (mips_output_order_conditional_branch): Likewise.
23563 (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
23564 "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
23565 "falu2_turn_enabled_insn".
23566 (mips_builtin_branch_and_move): Strengthen locals "true_label",
23567 "done_label" from rtx to rtx_code_label *.
23568 (struct mips16_constant): Likewise for field "label".
23569 (mips16_add_constant): Likewise for return type.
23570 (mips16_emit_constants_1): Strengthen return type and param "insn"
23571 from rtx to rtx_insn *.
23572 (mips16_emit_constants): Likewise for param "insn".
23573 (mips16_insn_length): Likewise.
23574 (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
23575 to rtx_code_label *.
23576 (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
23577 from rtx to rtx_insn *.
23578 (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
23579 "jump". Strengthen local "label" from rtx to rtx_code_label *.
23580 (r10k_simplify_address): Strengthen param "insn" and local
23581 "def_insn" from rtx to rtx_insn *.
23582 (r10k_safe_address_p): Strengthen param "insn" from rtx to
23583 rtx_insn *.
23584 (r10k_needs_protection_p_1): Update target type of cast of data
23585 from to rtx to rtx_insn *.
23586 (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
23587 rtx * to rtx_insn **.
23588 (r10k_needs_protection_p): Strengthen param "insn" from rtx to
23589 rtx_insn *.
23590 (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
23591 (mips_call_expr_from_insn): Likewise for param "insn".
23592 (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
23593 (mips_find_pic_call_symbol): Likewise for param "insn".
23594 (mips_annotate_pic_calls): Likewise for local "insn".
23595 (mips_sim_insn): Likewise for this variable.
23596 (struct mips_sim): Likewise for field "insn" within elements of
23597 last_set array.
23598 (mips_sim_wait_reg): Likewise for param "insn".
23599 (mips_sim_wait_regs): Likewise.
23600 (mips_sim_wait_units): Likewise.
23601 (mips_sim_wait_insn): Likewise.
23602 (mips_sim_issue_insn): Likewise.
23603 (mips_sim_finish_insn): Likewise.
23604 (mips_seq_time): Likewise for param "seq" and local "insn".
23605 (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
23606 locals "first", "second".
23607 (vr4130_align_insns): Likewise for locals "insn", "subinsn",
23608 "last", "last2", "next".
23609 (mips_avoid_hazard): Likewise for params "after", "insn".
23610 (mips_reorg_process_insns): Likewise for locals "insn",
23611 "last_insn", "subinsn", "next_insn".
23612 (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
23613 (mips16_split_long_branches): Likewise for locals "insn" "jump",
23614 "jump_sequence".
23615 (mips_output_mi_thunk): Likewise for local "insn".
23616 (mips_final_prescan_insn): Likewise for param "insn".
23617
23618 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23619
23620 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
23621 Strengthen return type and local "insns" from rtx to rtx_insn *.
23622 (microblaze_legitimize_tls_address): Likewise for local "insns".
23623 (microblaze_block_move_loop): Strengthen local "label" from rtx
23624 to rtx_code_label *.
23625 (microblaze_expand_prologue): Strengthen two locals named "insn"
23626 from rtx to rtx_insn *.
23627 (microblaze_asm_output_mi_thunk): Likewise for local "insn".
23628 (microblaze_expand_divide): Likewise for locals "jump", "cjump",
23629 "insn". Strengthen locals "div_label", "div_end_label" from rtx
23630 to rtx_code_label *.
23631
23632 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23633
23634 * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
23635 param from rtx to rtx_insn *.
23636 (mep_reuse_lo): Likewise for third param.
23637 (mep_use_post_modify_p): Likewise for first param.
23638 (mep_core_address_length): Likewise.
23639 (mep_cop_address_length): Likewise.
23640 (mep_final_prescan_insn): Likewise.
23641 (mep_store_data_bypass_p): Likewise for both params.
23642 (mep_mul_hilo_bypass_p): Likewise.
23643 (mep_ipipe_ldc_p): Likewise for param.
23644
23645 * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
23646 (mep_rewrite_mult): Likewise.
23647 (mep_rewrite_mulsi3): Likewise.
23648 (mep_rewrite_maddsi3): Likewise.
23649 (mep_reuse_lo_p_1): Likewise.
23650 (mep_reuse_lo_p): Likewise.
23651 (mep_frame_expr): Likewise.
23652 (mep_make_parallel): Likewise for both params.
23653 (mep_use_post_modify_p_1): Likewise for param "set_insn" and
23654 local "insn".
23655 (mep_use_post_modify_p): Likewise for param "insn".
23656 (mep_core_address_length): Likewise.
23657 (mep_cop_address_length): Likewise.
23658 (mep_reg_set_in_function): Likewise for local "insn".
23659 (mep_asm_without_operands_p): Likewise.
23660 (F): Likewise for return type and param "x".
23661 (add_constant): Likewise for local "insn".
23662 (maybe_dead_move): Likewise for return type and local "insn".
23663 (mep_expand_prologue): Likewise for local "insn".
23664 (mep_final_prescan_insn): Likewise for param "insn".
23665 (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
23666 "next", "follow", "x".
23667 (mep_insert_repeat_label_last): Likewise for return type, param
23668 "last_insn", and locals "next", "prev". Strengthen param "label"
23669 from rtx to rtx_code_label *.
23670 (struct mep_doloop_begin): Strengthen field "insn" from rtx to
23671 rtx_insn *.
23672 (struct mep_doloop_end): Likewise for fields "insn" and
23673 "fallthrough".
23674 (mep_reorg_repeat): Likewise for param "insns" and local "insn".
23675 Strengthen local "repeat_label" from rtx to rtx_code_label *.
23676 (mep_invertable_branch_p): Strengthen param "insn" from rtx to
23677 rtx_insn *.
23678 (mep_invert_branch): Likewise for params "insn" and "after".
23679 (mep_reorg_erepeat): Likewise for param "insns" and locals
23680 "insn", "prev", "new_last", "barrier", "user". Strengthen local
23681 "l" from rtx to rtx_code_label *.
23682 (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
23683 from rtx to rtx_insn *.
23684 (mep_reorg_addcombine): Likewise for param "insns" and locals
23685 "i", "n".
23686 (add_sp_insn_p): Likewise for param "insn".
23687 (mep_reorg_noframe): Likewise for param "insns" and locals
23688 "start_frame_insn", "end_frame_insn", "next".
23689 (mep_reorg): Likewise for local "insns".
23690 (mep_store_data_bypass_1): Likewise for param "prev". Add checked
23691 cast.
23692 (mep_store_data_bypass_p): Likewise for params "prev", "insn".
23693 (mep_mul_hilo_bypass_p): Likewise.
23694 (mep_ipipe_ldc_p): Likewise for param "insn".
23695 (mep_make_bundle): Likewise for return type, param "cop" and local
23696 "insn", splitting out the latter into a new local "seq" for when it
23697 is a SEQUENCE rather than an insn.
23698 (core_insn_p): Likewise for param "insn".
23699 (mep_bundle_insns): Likewise for param "insns" and locals "insn",
23700 "last", "first", "note", "prev", "core_insn".
23701
23702 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23703
23704 * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
23705 rtx to rtx_insn *.
23706 (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
23707 (m68k_final_prescan_insn): Likewise for first param.
23708
23709 * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
23710 (m68k_set_frame_related): Likewise for param "insn".
23711 (output_btst): Likewise for param "insn".
23712 (m68k_final_prescan_insn): Likewise.
23713 (m68k_move_to_reg): Likewise for local "insn".
23714 (m68k_call_tls_get_addr): Likewise for local "insns".
23715 (m68k_call_m68k_read_tp): Likewise.
23716 (strict_low_part_peephole_ok): Likewise for param "first_insn".
23717 (m68k_output_mi_thunk): Likewise for local "insn".
23718
23719 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23720
23721 * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
23722 first param from rtx to rtx_insn *.
23723 (iq2000_adjust_insn_length): Likewise.
23724 (iq2000_output_conditional_branch): Likewise.
23725 * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
23726 "insn" and local "nop_insn".
23727 (iq2000_annotate_frame_insn): Likewise for param "insn".
23728 (iq2000_expand_prologue): Likewise for both locals "insn".
23729 (iq2000_adjust_insn_length): Likewise for param "insn".
23730 (iq2000_output_conditional_branch): Likewise.
23731
23732 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23733
23734 * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
23735 "insns" from rtx to rtx_insn *.
23736 (ia64_emit_cond_move): Likewise for locals "insn", "first".
23737 (struct spill_fill_data): Likewise for field "init_after" and for
23738 elements of array field "prev_insn".
23739 (spill_restore_mem): Likewise for locals "insn", "first".
23740 (do_spill): Likewise for local "insn".
23741 (do_restore): Likewise.
23742 (ia64_expand_prologue): Likewise.
23743 (ia64_expand_epilogue): Likewise.
23744 (emit_insn_group_barriers): Likewise for locals "insn",
23745 "last_label".
23746 (emit_all_insn_group_barriers): Likewise for locals "insn",
23747 "last".
23748 (dfa_stop_insn): Likewise for this global.
23749 (dfa_pre_cycle_insn): Likewise.
23750 (ia64_nop): Likewise.
23751 (final_emit_insn_group_barriers): Likewise for locals "insn",
23752 "last".
23753 (emit_predicate_relation_info): Likewise for locals "head", "n",
23754 "insn", "b", "a".
23755 (ia64_reorg): Likewise for local "insn".
23756 (ia64_output_mi_thunk): Likewise.
23757 (expand_vec_perm_interleave_2): Likewise for local "seq".
23758
23759 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23760
23761 * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
23762 param 1 "insn" from rtx to rtx_insn *.
23763 (ix86_use_lea_for_mov): Likewise.
23764 (ix86_avoid_lea_for_addr): Likewise.
23765 (ix86_split_lea_for_addr): Likewise.
23766 (ix86_lea_for_add_ok): Likewise.
23767 (ix86_output_call_insn): Likewise.
23768
23769 * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
23770 (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
23771 (ix86_output_function_epilogue): Likewise for locals "insn",
23772 "deleted_debug_label".
23773 (legitimize_tls_address): Likewise for local "insn".
23774 (get_some_local_dynamic_name): Likewise.
23775 (increase_distance): Likewise for params "prev", "next".
23776 (distance_non_agu_define_in_bb): Likewise for params "insn",
23777 "start" and locals "prev", "next".
23778 (distance_non_agu_define): Likewise for param "insn".
23779 (distance_agu_use_in_bb): Likewise for params "insn", "start" and
23780 locals "next", "prev".
23781 (distance_agu_use): Likewise for param "insn".
23782 (ix86_lea_outperforms): Likewise.
23783 (ix86_ok_to_clobber_flags): Likewise.
23784 (ix86_avoid_lea_for_add): Likewise.
23785 (ix86_use_lea_for_mov): Likewise.
23786 (ix86_avoid_lea_for_addr): Likewise.
23787 (find_nearest_reg_def): Likewise, also for locals "prev", "start".
23788 (ix86_split_lea_for_addr): Likewise for param "insn".
23789 (ix86_lea_for_add_ok): Likewise for param "insn".
23790 (ix86_expand_carry_flag_compare): Likewise for local
23791 "compare_seq".
23792 (ix86_expand_int_movcc): Likewise.
23793 (ix86_output_call_insn): Likewise for param "insn".
23794 (ix86_output_call_insn): Likewise for local "i".
23795 (x86_output_mi_thunk): Introduce local "insn", using it in place
23796 of "tmp" when dealing with insns.
23797 (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
23798 "start".
23799 (ix86_pad_returns): Likewise for locals "ret", "prev".
23800 (ix86_count_insn_bb): Likewise for local "insn".
23801 (ix86_pad_short_function): Likewise for locals "ret", "insn".
23802 (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
23803 (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
23804 (expand_vec_perm_interleave2): Likewise for local "seq".
23805 (expand_vec_perm_vperm2f128_vblend): Likewise.
23806 (ix86_loop_unroll_adjust): Likewise for local "insn". Convert
23807 call to for_each_rtx with for_each_rtx_in_insn.
23808
23809 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23810
23811 * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
23812 "label" from rtx to rtx_code_label *.
23813 (ix86_expand_prologue): Likewise.
23814 (ix86_expand_split_stack_prologue): Likewise for locals "label",
23815 "varargs_label".
23816 (ix86_split_idivmod): Likewise for locals "end_label" and
23817 "qimode_label".
23818 (ix86_expand_branch): Likewise for local "label2".
23819 (ix86_expand_aligntest): Likewise for return type and local "label".
23820 (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
23821 "top_label".
23822 (expand_movmem_epilogue): Likewise for the various locals named
23823 "label".
23824 (expand_setmem_epilogue): Likewise.
23825 (expand_small_movmem_or_setmem): Likewise for local "label".
23826 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
23827 Strengthen param "done_label" from rtx * to rtx_code_label **.
23828 Strengthen locals "loop_label" and "label" from rtx to
23829 rtx_code_label *.
23830 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
23831 Likewise for locals "loop_label", "label".
23832 (ix86_expand_set_or_movmem): Likewise for locals "label",
23833 "jump_around_label", "hot_label".
23834 (ix86_expand_strlensi_unroll_1): Likewise for locals
23835 "align_2_label", align_3_label", "align_4_label", "end_0_label",
23836 "end_2_label".
23837 (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
23838 (void ix86_emit_i387_log1p): Likewise for locals "label1",
23839 "label2", "jump_label".
23840 (ix86_expand_sse_compare_and_jump): Likewise for return type and
23841 local "label".
23842 (ix86_expand_lfloorceil): Likewise for local "label".
23843 (ix86_expand_rint): Likewise.
23844 (ix86_expand_floorceildf_32): Likewise.
23845 (ix86_expand_floorceil): Likewise.
23846 (ix86_expand_rounddf_32): Likewise.
23847 (ix86_expand_trunc): Likewise.
23848 (ix86_expand_truncdf_32): Likewise.
23849 (ix86_expand_round): Likewise.
23850
23851 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23852
23853 * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
23854 first param from rtx to rtx_insn *.
23855 (h8300_insn_length_from_table): Likewise.
23856 * config/h8300/h8300.c (F): Likewise for return type and param
23857 "x".
23858 (Fpa): Add a checked cast to rtx_insn *.
23859 (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
23860 rtx_insn *.
23861 (final_prescan_insn): Likewise for param "insn".
23862 (h8300_binary_length): Likewise.
23863 (h8300_insn_length_from_table): Likewise.
23864
23865 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23866
23867 * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
23868 Strengthen first param "insn" from rtx to rtx_insn *.
23869
23870 * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
23871 Likewise.
23872 (frame_insn): Likewise for return type. Introduce local "insn"
23873 for use in place of local "x" for use as an rtx_insn *.
23874 (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
23875 (epiphany_expand_prologue): Likewise for local "insn".
23876 * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
23877 * config/epiphany/resolve-sw-modes.c
23878 (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
23879 "seq".
23880
23881 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23882
23883 * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
23884 param from rtx to rtx_insn *.
23885 (c6x_final_prescan_insn): Likewise for first param.
23886
23887 * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
23888 (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
23889 (c6x_expand_compare): Strengthen local "insns" from rtx to
23890 rtx_insn *.
23891 (c6x_get_unit_specifier): Likewise for param "insn".
23892 (c6x_print_unit_specifier_field): Likewise.
23893 (c6x_final_prescan_insn): Likewise.
23894 (emit_add_sp_const): Likewise for local "insn".
23895 (c6x_expand_prologue): Likewise.
23896
23897 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23898
23899 * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
23900 param 1 from rtx to rtx_insn *.
23901 * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
23902 the various locals named "insn".
23903 (expand_epilogue_reg_restore): Likewise.
23904 (frame_related_constant_load): Likewise.
23905 (add_to_reg): Likewise.
23906 (emit_link_insn): Likewise.
23907 (do_link): Likewise.
23908 (expand_interrupt_handler_prologue): Likewise.
23909 (branch_dest): Likewise for param "branch".
23910 (asm_conditional_branch): Likewise for param "insn".
23911 (gen_one_bundle): Likewise for elements of param "slot" and local
23912 "t".
23913 (bfin_gen_bundles): Likewise for locals "insn", "next" and
23914 elements of local "slot".
23915 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
23916 "queue", "next_queue", "prev".
23917 (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
23918 (add_sched_insns_for_speculation): Likewise for local "insn".
23919
23920 2014-08-25 David Malcolm <dmalcolm@redhat.com>
23921
23922 * config/avr/avr-protos.h (output_movqi): Strengthen first param
23923 from rtx to rtx_insn *.
23924 (output_movhi): Likewise.
23925 (output_movsisf): Likewise.
23926 (avr_out_tstsi): Likewise.
23927 (avr_out_tsthi): Likewise.
23928 (avr_out_tstpsi): Likewise.
23929 (avr_out_compare): Likewise.
23930 (avr_out_compare64): Likewise.
23931 (avr_out_movpsi): Likewise.
23932 (ashlqi3_out): Likewise.
23933 (ashlhi3_out): Likewise.
23934 (ashlsi3_out): Likewise.
23935 (ashrqi3_out): Likewise.
23936 (ashrhi3_out): Likewise.
23937 (ashrsi3_out): Likewise.
23938 (lshrqi3_out): Likewise.
23939 (lshrhi3_out): Likewise.
23940 (lshrsi3_out): Likewise.
23941 (avr_out_ashlpsi3): Likewise.
23942 (avr_out_ashrpsi3): Likewise.
23943 (avr_out_lshrpsi3): Likewise.
23944 (avr_out_fract): Likewise.
23945 (avr_out_sbxx_branch): Likewise.
23946 (avr_out_round): Likewise.
23947 (avr_out_xload): Likewise.
23948 (avr_out_movmem): Likewise.
23949 (adjust_insn_length): Likewise.
23950 (avr_out_lpm): Likewise.
23951 (reg_unused_after): Likewise.
23952 (_reg_unused_after): Likewise.
23953 (avr_jump_mode): Likewise for second param.
23954 (jump_over_one_insn): Likewise for first param.
23955 (avr_final_prescan_insn): Likewise.
23956 (out_shift_with_cnt): Likewise for second param.
23957
23958 * config/avr/avr.c (get_sequence_length): Likewise for param
23959 "insns" and local "insn".
23960 (emit_push_byte): Likewise for local "insn".
23961 (emit_push_sfr): Likewise.
23962 (avr_prologue_setup_frame): Likewise for locals "insn",
23963 "fp_plus_insns", "sp_plus_insns".
23964 (avr_expand_epilogue): Likewise for local "fp_plus_insns",
23965 "sp_plus_insns".
23966 (avr_jump_mode): Likewise for param "insn".
23967 (avr_final_prescan_insn): Likewise.
23968 (avr_find_unused_d_reg): Likewise.
23969 (avr_out_lpm_no_lpmx): Likewise.
23970 (avr_out_lpm): Likewise.
23971 (avr_out_xload): Likewise.
23972 (output_movqi): Likewise.
23973 (output_movhi): Likewise.
23974 (out_movqi_r_mr): Likewise.
23975 (out_movhi_r_mr): Likewise.
23976 (out_movsi_r_mr): Likewise.
23977 (out_movsi_mr_r): Likewise.
23978 (output_movsisf): Likewise.
23979 (avr_out_load_psi): Likewise.
23980 (avr_out_store_psi): Likewise.
23981 (avr_out_movpsi): Likewise.
23982 (out_movqi_mr_r): Likewise.
23983 (avr_out_movhi_mr_r_xmega): Likewise.
23984 (out_movhi_mr_r): Likewise.
23985 (compare_condition): Likewise for param "insn" and local "next".
23986 (compare_sign_p): Likewise for param "insn".
23987 (compare_diff_p): Likewise.
23988 (compare_eq_p): Likewise.
23989 (avr_out_compare): Likewise.
23990 (avr_out_compare64): Likewise.
23991 (avr_out_tsthi): Likewise.
23992 (avr_out_tstpsi): Likewise.
23993 (avr_out_tstsi): Likewise.
23994 (out_shift_with_cnt): Likewise.
23995 (ashlqi3_out): Likewise.
23996 (ashlhi3_out): Likewise.
23997 (avr_out_ashlpsi3): Likewise.
23998 (ashlsi3_out): Likewise.
23999 (ashrqi3_out): Likewise.
24000 (ashrhi3_out): Likewise.
24001 (avr_out_ashrpsi3): Likewise.
24002 (ashrsi3_out): Likewise.
24003 (lshrqi3_out): Likewise.
24004 (lshrhi3_out): Likewise.
24005 (avr_out_lshrpsi3): Likewise.
24006 (lshrsi3_out): Likewise.
24007 (avr_out_fract): Likewise.
24008 (avr_out_round): Likewise.
24009 (avr_adjust_insn_length): Likewise.
24010 (reg_unused_after): Likewise.
24011 (_reg_unused_after): Likewise.
24012 (avr_compare_pattern): Likewise.
24013 (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
24014 and locals "branch1", "branch2", "insn2", "jump".
24015 (avr_reorg): Likewise for local "insn".
24016 (avr_2word_insn_p): Likewise for param "insn".
24017 (jump_over_one_insn_p): Likewise.
24018 (avr_out_sbxx_branch): Likewise.
24019 (avr_out_movmem): Likewise.
24020
24021 2014-08-25 David Malcolm <dmalcolm@redhat.com>
24022
24023 * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
24024 param from rtx to rtx_insn *.
24025 (thumb1_final_prescan_insn): Likewise.
24026 (thumb2_final_prescan_insn): Likewise.
24027
24028 * config/arm/arm.c (emit_set_insn): Strengthen return type from
24029 rtx to rtx_insn *.
24030 (struct minipool_node): Likewise for field "insn".
24031 (dump_minipool): Likewise for param "scan".
24032 (create_fix_barrier): Likewise for local "from". Strengthen local
24033 "label" from rtx to rtx_code_label *.
24034 (push_minipool_barrier): Strengthen param "insn" from rtx to
24035 rtx_insn *.
24036 (push_minipool_fix): Likewise.
24037 (note_invalid_constants): Likewise.
24038 (thumb2_reorg): Likewise for local "insn".
24039 (arm_reorg): Likewise.
24040 (thumb2_final_prescan_insn): Likewise for param
24041 "insn" and local "first_insn".
24042 (arm_final_prescan_insn): Likewise for param "insn" and locals
24043 "start_insn", "this_insn".
24044 (arm_debugger_arg_offset): Likewise for param "insn".
24045 (thumb1_emit_multi_reg_push): Likewise for return type and local
24046 "insn".
24047 (thumb1_final_prescan_insn): Likewise for param "insn".
24048 (thumb_far_jump_used_p): Likewise for local "insn".
24049 (thumb1_expand_prologue): Likewise.
24050 (arm_expand_epilogue_apcs_frame): Likewise.
24051 (arm_expand_epilogue): Likewise for locals "insn", "tmp".
24052 (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
24053 from rtx to rtx_code_label *.
24054 (arm_split_atomic_op): Likewise for local "label".
24055 (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
24056
24057 2014-08-25 David Malcolm <dmalcolm@redhat.com>
24058
24059 * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
24060 first param from rtx to rtx_insn *.
24061 (arc_verify_short): Likewise.
24062 (arc_short_long): Likewise.
24063 (arc_need_delay): Likewise.
24064
24065 * config/arc/arc.c (struct arc_ccfsm): Likewise for field
24066 "target_insn".
24067 (arc_ccfsm_advance): Likewise for param "insn" and locals
24068 "start_insn", "this_insn".
24069 (arc_ccfsm_record_condition): Likewise for local "seq_insn".
24070 (arc_ccfsm_post_advance): Likewise for param "insn".
24071 (arc_next_active_insn): Likewise for return type and param "insn".
24072 Convert NULL_RTX to NULL as appropriate. Add a checked cast.
24073 (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
24074 (output_short_suffix): Likewise for local "insn".
24075 (arc_final_prescan_insn): Likewise for param "insn". Remove
24076 now-redundant checked cast.
24077 (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
24078 "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
24079 rtx_insn *. Add a checked cast. Introduce local "lc_set_insn"
24080 for use where lc_set became an insn.
24081 (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
24082 rtx to rtx_insn *.
24083 (arc_get_insn_variants): Likewise for local "prev".
24084 (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
24085 "next".
24086 (arc_predicate_delay_insns): Likewise for local "insn".
24087 (arc_pad_return): Likewise for local "prev". For now, add a
24088 checked cast when extracting the insn from "final_sequence".
24089 (arc_short_long): Likewise for param "insn".
24090 (arc_need_delay): Likewise for param "insn" and local "next".
24091 (arc_label_align): Likewise for locals "prev", "next".
24092
24093 2014-08-25 David Malcolm <dmalcolm@redhat.com>
24094
24095 * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
24096 "insn" from rtx to rtx_insn *.
24097 (alpha_gp_save_rtx): Likewise for local "seq".
24098 (alpha_instantiate_decls): Likewise for local "top".
24099 (get_some_local_dynamic_name): Likewise for local "insn".
24100 (alpha_does_function_need_gp): Likewise.
24101 (set_frame_related_p): Likewise for return type and for locals
24102 "seq" and "insn".
24103 (emit_frame_store_1): Likewise for local "insn".
24104 (alpha_expand_prologue): Likewise for locals "insn", "seq".
24105 (alpha_end_function): Likewise for local "insn".
24106 (alpha_output_mi_thunk_osf): Likewise.
24107 (alphaev4_insn_pipe): Likewise for param "insn".
24108 (alphaev5_insn_pipe): Likewise.
24109 (alphaev4_next_group): Likewise for return type and param 1
24110 "insn".
24111 (alphaev5_next_group): Likewise.
24112 (alpha_align_insns_1): Likewise for return type and param 1 of
24113 callback param "next_group", and for locals "i", "next", "prev",
24114 "where", "where2", "insn".
24115
24116 2014-08-25 Bernd Schmidt <bernds@codesourcery.com>
24117
24118 * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
24119 rather than modifying the stmt.
24120
24121 2014-08-25 Jan-Benedict Glaw <jbglaw@lug-owl.de>
24122
24123 * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
24124 cgraph_state conversion.
24125
24126 2014-08-25 David Malcolm <dmalcolm@redhat.com>
24127
24128 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
24129 Strengthen local "insns" from rtx to rtx_insn *.
24130 (aarch64_set_frame_expr): Likewise for local "insn".
24131 (aarch64_save_or_restore_fprs): Likewise.
24132 (aarch64_save_or_restore_callee_save_registers): Likewise.
24133 (aarch64_expand_prologue): Likewise.
24134 (aarch64_expand_epilogue): Likewise.
24135 (aarch64_output_mi_thunk): Likewise.
24136 (aarch64_split_compare_and_swap): Strengthen locals "label1" and
24137 "label2" from rtx to rtx_code_label *.
24138 (aarch64_split_atomic_op): Likewise for local "label".
24139
24140 2014-08-25 Martin Liska <mliska@suse.cz>
24141
24142 * cgraph.h (symtab_node):
24143 (bool needed_p (void)): created from decide_is_symbol_needed
24144 (bool referred_to_p (void)): created from referred_to_p
24145 (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
24146 * cgraph.h (cgraph_node):
24147 (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
24148 (void expand (void)): created from expand_function
24149 (static void finalize_function (tree, bool)): created from cgraph_finalize_function
24150 (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
24151 (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
24152 (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
24153 * cgraph.h (varpool_node):
24154 (static void add (tree decl): created from varpool_add_new_variable
24155 * cgraph.h (cgraph_edge):
24156 void remove (void);
24157 (void remove_caller (void)): created from cgraph_edge_remove_caller
24158 (void remove_callee (void)): created from cgraph_edge_remove_callee
24159 (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
24160 created from cgraph_set_call_stmt
24161 (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
24162 (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
24163 (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
24164 gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
24165 (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
24166 created from cgraph_speculative_call_info
24167 (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
24168 int freq_scale, bool update_original)): created from cgraph_clone_edge
24169 (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
24170 (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
24171 (bool recursive_p (void)): created from cgraph_edge_recursive_p
24172 (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
24173 (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
24174 (static void rebuild_references (void)): created from cgraph_rebuild_references
24175 * cgraph.h (symbol_table):
24176 (create_reference): renamed from add_reference
24177 (maybe_create_reference): renamed from maybe_add_reference
24178 (void register_symbol (symtab_node *node)): new function
24179 (void clear_asm_symbols (void)): new function
24180 (void unregister (symtab_node *node)): new function
24181 (void release_symbol (cgraph_node *node, int uid)): new function
24182 (cgraph_node * allocate_cgraph_symbol (void)): new function
24183 (void initialize (void)): created from cgraph_init
24184 (symtab_node *first_symbol (void)):new function
24185 (asm_node *first_asm_symbol (void)):new function
24186 (symtab_node *first_defined_symbol (void)):new function
24187 (varpool_node *first_variable (void)):new function
24188 (varpool_node *next_variable (varpool_node *node)):new function
24189 (varpool_node *first_static_initializer (void)):new function
24190 (varpool_node *next_static_initializer (varpool_node *node)):new function
24191 (varpool_node *first_defined_variable (void)):new function
24192 (varpool_node *next_defined_variable (varpool_node *node)):new function
24193 (cgraph_node *first_defined_function (void)):new function
24194 (cgraph_node *next_defined_function (cgraph_node *node)):new function
24195 (cgraph_node *first_function (void)):new function
24196 (cgraph_node *next_function (cgraph_node *node)):new function
24197 (cgraph_node *first_function_with_gimple_body (void)):new function
24198 (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
24199 (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
24200 created from symtab_remove_unreachable_nodes
24201 (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
24202 (void process_new_functions (void)): created from cgraph_process_new_functions
24203 (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
24204 (bool output_variables (void)): created from varpool_node::output_variables
24205 (void output_asm_statements (void)): created from output_asm_statements
24206 (void finalize_compilation_unit (void)): created from finalize_compilation_unit
24207 (void compile (void)): created from compile
24208 (void output_weakrefs (void)): created from output_weakrefs
24209 (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
24210 (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
24211 gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
24212 (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
24213 (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
24214 created from cgraph_next_function_with_gimple_body
24215 (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
24216 created from cgraph_remove_edge_removal_hook
24217 (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
24218 created from cgraph_add_node_removal_hook
24219 (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
24220 created from cgraph_remove_node_removal_hook
24221 (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
24222 created from varpool_add_node_removal_hook
24223 (void remove_varpool_removal_hook (varpool_node_hook_list *)):
24224 created from varpool_remove_node_removal_hook
24225 (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
24226 created from cgraph_add_function_insertion_hook
24227 (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
24228 created from cgraph_remove_function_insertion_hook
24229 (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
24230 created from varpool_add_variable_insertion_hook
24231 (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
24232 created from varpool_remove_variable_insertion_hook
24233 (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
24234 created from cgraph_add_edge_duplication_hook
24235 (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
24236 created from cgraph_remove_edge_duplication_hook
24237 (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
24238 created from cgraph_add_node_duplication_hook
24239 (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
24240 created from cgraph_remove_node_duplication_hook
24241 (void call_edge_removal_hooks (cgraph_edge *e)):
24242 created from cgraph_call_edge_removal_hooks
24243 (void call_cgraph_insertion_hooks (cgraph_node *node)):
24244 created from call_function_insertion_hooks
24245 (void call_cgraph_removal_hooks (cgraph_node *node)):
24246 created from cgraph_call_node_removal_hooks
24247 (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
24248 created from cgraph_node::call_duplication_hooks
24249 (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
24250 created from cgraph_call_edge_duplication_hooks
24251 (void call_varpool_removal_hooks (varpool_node *node)):
24252 created from varpool_call_node_removal_hooks
24253 (void call_varpool_insertion_hooks (varpool_node *node)):
24254 created from varpool_call_variable_insertion_hooks
24255 (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
24256 created from insert_to_assembler_name_hash
24257 (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
24258 created from unlink_from_assembler_name_hash
24259 (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
24260 created from symtab_prevail_in_asm_name_hash
24261 (void symtab_initialize_asm_name_hash (void)):
24262 created from symtab_initialize_asm_name_hash
24263 (void change_decl_assembler_name (tree decl, tree name)):
24264 created from change_decl_assembler_name
24265 (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
24266 (static hashval_t decl_assembler_name_hash (const_tree asmname)):
24267 created from decl_assembler_name_hash
24268 (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
24269 created from decl_assembler_name_equal
24270 (static hashval_t hash_node_by_assembler_name (const void *p)):
24271 created from hash_node_by_assembler_name
24272 (static int eq_assembler_name (const void *p1, const void *p2)):
24273 created from eq_assembler_name
24274
24275 2014-08-25 Marek Polacek <polacek@redhat.com>
24276
24277 * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
24278
24279 2014-08-25 Petr Murzin <petr.murzin@intel.com>
24280
24281 * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
24282 (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
24283 SWI1248_AVX512BW mode iterator.
24284
24285 2014-08-25 Kaz Kojima <kkojima@gcc.gnu.org>
24286
24287 PR target/62111
24288 * config/sh/predicates.md (general_extend_operand): Disable
24289 TRUNCATE before reload completes.
24290
24291 2014-08-24 Gerald Pfeifer <gerald@pfeifer.com>
24292
24293 * doc/invoke.texi (Optimize Options): Fix markup in two cases.
24294
24295 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
24296
24297 PR target/61996
24298 * config/sh/sh.opt (musermode): Allow negative form.
24299 * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
24300 targets that don't support it.
24301 * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
24302 Document -mno-usermode option.
24303
24304 2014-08-24 Kito Cheng <kito@0xlab.org>
24305
24306 * system.h (CALLER_SAVE_PROFITABLE): Poison.
24307 * regs.h (CALLER_SAVE_PROFITABLE): Remove.
24308 * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
24309 * doc/tm.texi: Regenerate.
24310
24311 2014-08-24 Kito Cheng <kito@0xlab.org>
24312
24313 * ira.c: Fix typo in comment.
24314
24315 2014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
24316
24317 * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
24318 Deprecate c++1y. Change language to reflect greater confidence in C++14.
24319
24320 2014-08-23 John David Anglin <danglin@gcc.gnu.org>
24321
24322 PR target/62038
24323 * config/pa/pa.c (pa_output_function_epilogue): Don't set
24324 last_address when the current function is a thunk.
24325 (pa_asm_output_mi_thunk): When we don't have named sections or they
24326 are not being used, check that thunk can reach the stub table with a
24327 short branch.
24328
24329 2014-08-23 David Malcolm <dmalcolm@redhat.com>
24330
24331 * web.c (union_match_dups): Strengthen param "insn" from rtx to
24332 rtx_insn *.
24333 (pass_web::execute): Likewise for local "insn".
24334
24335 2014-08-23 David Malcolm <dmalcolm@redhat.com>
24336
24337 * var-tracking.c (struct micro_operation_def): Strengthen field
24338 "insn" from rtx to rtx_insn *.
24339 (struct emit_note_data_def): Likewise.
24340 (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
24341 (vt_stack_adjustments): Likewise for local "insn".
24342 (adjust_insn): Likewise for param "insn".
24343 (val_store): Likewise.
24344 (val_resolve): Likewise.
24345 (struct count_use_info): Likewise for field "insn".
24346 (log_op_type): Likewise for param "insn".
24347 (reverse_op): Likewise.
24348 (prepare_call_arguments): Likewise.
24349 (add_with_sets): The initial param takes an insn, but we can't
24350 yet strengthen it from rtx to rtx_insn * since it's used as a
24351 cselib_record_sets_hook callback. For now rename initial param
24352 from "insn" to "uncast_insn", and introduce a local "insn" of
24353 the stronger rtx_insn * type, with a checked cast.
24354 (compute_bb_dataflow): Strengthen local "insn" from rtx to
24355 rtx_insn *.
24356 (emit_note_insn_var_location): Likewise.
24357 (emit_notes_for_changes): Likewise.
24358 (emit_notes_for_differences): Likewise.
24359 (next_non_note_insn_var_location): Likewise for return type and
24360 for param "insn".
24361 (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
24362 (vt_initialize): Likewise for local "insn".
24363 (delete_debug_insns): Likewise for locals "insn" and "next".
24364
24365 2014-08-23 David Malcolm <dmalcolm@redhat.com>
24366
24367 * varasm.c (mark_constants): Strengthen param "insn" from rtx to
24368 rtx_insn *.
24369 (mark_constant_pool): Likewise for local "insn".
24370
24371 2014-08-23 David Malcolm <dmalcolm@redhat.com>
24372
24373 * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
24374 rtx to rtx_insn *.
24375 (dead_debug_promote_uses): Likewise.
24376 (dead_debug_insert_temp): Likewise.
24377
24378 2014-08-23 David Malcolm <dmalcolm@redhat.com>
24379
24380 * store-motion.c (store_killed_in_insn): Strengthen param "insn"
24381 from const_rtx to const rtx_insn *.
24382 (store_killed_after): Likewise. Strengthen locals "last", "act"
24383 from rtx to rtx_insn *.
24384 (store_killed_before): Strengthen param "insn" from const_rtx to
24385 const rtx_insn *. Strengthen local "first" from rtx to rtx_insn *.
24386 (find_moveable_store): Strengthen param "insn" from rtx to
24387 rtx_insn *.
24388 (compute_store_table): Likewise for local "insn".
24389 (insert_insn_start_basic_block): Likewise for param "insn" and
24390 locals "prev", "before", "insn".
24391 (insert_store): For now, add a checked cast to rtx_insn * on the
24392 result of gen_move_insn.
24393 (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
24394 to rtx_insn *.
24395 (replace_store_insn): Likewise. For now, add a checked cast to
24396 rtx_insn * on the result of gen_move_insn.
24397
24398 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24399
24400 * stmt.c (expand_case): Strengthen local "before_case" from rtx to
24401 rtx_insn *.
24402 (expand_sjlj_dispatch_table): Likewise.
24403
24404 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24405
24406 * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
24407 "insn" from rtx to rtx_insn *.
24408
24409 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24410
24411 * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
24412 "insn" from rtx to rtx_insn *.
24413 (dup_block_and_redirect): Likewise for param 3 "before".
24414
24415 * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
24416 from rtx to rtx_insn *.
24417 (move_insn_for_shrink_wrap): Likewise.
24418 (prepare_shrink_wrap): Likewise for locals "insn", "curr".
24419 (dup_block_and_redirect): Likewise for param "before" and local
24420 "insn".
24421 (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
24422 "end".
24423 (convert_to_simple_return): Likewise for local "start".
24424
24425 * config/i386/i386.c (ix86_finalize_stack_realign_flags):
24426 Strengthen local "insn" from rtx to rtx_insn *, for use when
24427 invoking requires_stack_frame_p.
24428
24429 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24430
24431 * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
24432 rtx_insn *.
24433 (speculate_expr): Likewise for locals "orig_insn_rtx",
24434 "spec_insn_rtx".
24435 (eq_transformed_insns): Likewise for locals "i1", "i2".
24436 (check_for_new_jump): Likewise for return type and local "end".
24437 (find_new_jump): Likewise for return type and local "jump".
24438 (sel_split_edge): Likewise for local "jump".
24439 (sel_create_recovery_block): Likewise.
24440 (sel_redirect_edge_and_branch_force): Likewise.
24441 (sel_redirect_edge_and_branch): Likewise.
24442
24443 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24444
24445 * sel-sched.c (substitute_reg_in_expr): Strengthen local
24446 "new_insn" from rtx to rtx_insn *.
24447 (create_insn_rtx_with_rhs): Likewise for return type and for local
24448 "insn_rtx".
24449 (create_insn_rtx_with_lhs): Likewise.
24450 (create_speculation_check): Likewise for local "insn_rtx".
24451 (implicit_clobber_conflict_p): Likewise for local "insn".
24452 (get_expr_cost): Likewise.
24453 (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
24454 (move_cond_jump): Likewise for locals "next", "prev", "link",
24455 "head", "from", "to".
24456
24457 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24458
24459 * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
24460 "next" from rtx to rtx_insn *.
24461 (find_conditional_protection): Likewise for local "next".
24462 (is_conditionally_protected): Likewise for local "insn1".
24463 (is_pfree): Likewise for locals "insn1", "insn2".
24464
24465 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24466
24467 * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
24468 from rtx to rtx_insn *.
24469
24470 * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
24471 locals "insn1", "insn2" from rtx to rtx_insn *.
24472 (add_deps_for_risky_insns): Likewise for params "head", "tail" and
24473 locals "insn", "prev", "last_jump", "next_tail".
24474 (schedule_ebb): Likewise for params "head", "tail".
24475 (schedule_ebbs): Likewise for locals "tail", "head".
24476
24477 * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
24478 to rtx_insn on "last_insn" in one of the invocations of
24479 schedule_ebb.
24480
24481 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24482
24483 * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
24484 "elem", "insn" from rtx to rtx_insn *.
24485 (change_spec_dep_to_hard): Likewise.
24486 (get_back_and_forw_lists): Likewise for local "con".
24487 (sd_add_dep): Likewise for locals "elem", "insn".
24488 (sd_resolve_dep): Likewise for locals "pro", "con".
24489 (sd_unresolve_dep): Likewise.
24490 (sd_delete_dep): Likewise.
24491 (chain_to_prev_insn): Likewise for local "pro".
24492 (find_inc): Likewise for locals "pro", "con".
24493
24494 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24495
24496 * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
24497 to rtx_insn *.
24498 (reg_set_between_p): Strengthen local "insn" from const_rtx to
24499 const rtx_insn *.
24500 (modified_between_p): Strengthen local "insn" from rtx to
24501 rtx_insn *.
24502 (remove_reg_equal_equiv_notes_for_regno): Likewise.
24503 (keep_with_call_p): Strengthen local "i2" from const_rtx to
24504 const rtx_insn *.
24505
24506 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24507
24508 * resource.c (next_insn_no_annul): Strengthen local "next" from
24509 rtx to rtx_insn *.
24510 (mark_referenced_resources): Likewise for local "insn".
24511
24512 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24513
24514 * reload.h (struct insn_chain): Strengthen field "insn" from rtx
24515 to rtx_insn *.
24516 (find_reloads): Likewise for param 1.
24517 (subst_reloads): Likewise for sole param.
24518 (find_equiv_reg): Likwise for param 2.
24519 (regno_clobbered_p): Likwise for param 2.
24520 (reload): Likewise for param 1.
24521
24522 * caller-save.c (save_call_clobbered_regs): Strengthen local
24523 "insn" from rtx to rtx_insn *.
24524 (insert_one_insn): Likewise for local "insn".
24525
24526 * reload.c (this_insn): Likewise for this global.
24527 (find_reloads): Likewise for param "insn".
24528 (find_reloads_toplev): Likewise.
24529 (find_reloads_address): Likewise.
24530 (subst_reg_equivs): Likewise.
24531 (update_auto_inc_notes): Likewise.
24532 (find_reloads_address_1): Likewise.
24533 (find_reloads_subreg_address): Likewise.
24534 (subst_reloads): Likewise.
24535 (find_equiv_reg): Likewise, also for local "p".
24536 (regno_clobbered_p): Likewise for param "insn".
24537
24538 * reload1.c (reg_reloaded_insn): Likewise for the elements of this
24539 array.
24540 (spill_reg_store): Likewise for the elements of this array.
24541 (remove_init_insns): Likewise for local "equiv_insn".
24542 (will_delete_init_insn_p): Likewise for param "insn".
24543 (reload): Likewise for param ""first" and local "insn".
24544 (calculate_needs_all_insns): Strengthen local "insn" from rtx to
24545 rtx_insn *.
24546 (calculate_elim_costs_all_insns): Likewise.
24547 (delete_caller_save_insns): Likewise.
24548 (spill_failure): Likewise for param "insn".
24549 (delete_dead_insn): Likewise.
24550 (set_label_offsets): Likewise.
24551 (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
24552 "prev_insn".
24553 (elimination_costs_in_insn): Likewise for param "insn".
24554 (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
24555 when referring to an insn.
24556 (set_initial_label_offsets): Likewise.
24557 (set_offsets_for_label): Strengthen param "insn" from rtx to
24558 rtx_insn *.
24559 (init_eliminable_invariants): Likewise for param "first" and local
24560 "insn".
24561 (fixup_eh_region_note): Likewise for param "insn".
24562 (reload_as_needed): Likewise for locals "prev", "insn",
24563 "old_next", "old_prev", "next".
24564 (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
24565 "last".
24566 (reload_inheritance_insn): Strengthen elements of this array from
24567 rtx to rtx_insn *.
24568 (failed_reload): Likewise for param "insn".
24569 (choose_reload_regs): Likewise for local "insn". Replace use of
24570 NULL_RTX with NULL when referring to an insn.
24571 (input_reload_insns): Strengthen elements of this array from rtx
24572 to rtx_insn *.
24573 (other_input_address_reload_insns): Likewise for this global.
24574 (other_input_reload_insns): Likewise for this global.
24575 (input_address_reload_insns): Likwise for the elements of this
24576 array.
24577 (inpaddr_address_reload_insns): Likwise for the elements of this
24578 array.
24579 (output_reload_insns): Likewise for the elements of this array.
24580 (output_address_reload_insns): Likewise for the elements of this
24581 array.
24582 (outaddr_address_reload_insns): Likewise for the elements of this
24583 array.
24584 (operand_reload_insns): Likewise for this global.
24585 (other_operand_reload_insns): Likewise for this global.
24586 (other_output_reload_insns): Likewise for the elements of this
24587 array.
24588 (new_spill_reg_store): Likewise for the elements of this
24589 array.
24590 (emit_input_reload_insns): Likewise for locals "insn", "temp".
24591 Strengthen local "where" from rtx * to rtx_insn **.
24592 (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
24593 from rtx to rtx_insn *.
24594 (do_input_reload): Likewise for local "insn".
24595 (do_output_reload): Likewise for local "insn".
24596 (emit_reload_insns): Likewise for locals "insn" and "store_insn".
24597 (emit_insn_if_valid_for_reload): Likewise for return type and local
24598 "last". Add checked cast to rtx_insn when returning "insn" since
24599 this has been through emit_insn.
24600 (gen_reload): Strengthen return type and locals "last", "insn", "set"
24601 from rtx to rtx_insn *. Add checked cast to rtx_insn when
24602 returning "insn" since it's been through
24603 emit_insn_if_valid_for_reload at this point.
24604 (delete_output_reload): Strengthen param "insn" and locals
24605 "output_reload_insn", "i2" from rtx to rtx_insn *.
24606 (delete_address_reloads): Likewise for params "dead_insn",
24607 "current_insn" and locals "prev", "next".
24608 (delete_address_reloads_1): Likewise for params "dead_insn",
24609 "current_insn" and locals "prev", "i2".
24610 (inc_for_reload): Likewise for locals "last", "add_insn".
24611 (add_auto_inc_notes): Strengthen param "insn" from rtx to
24612 rtx_insn *.
24613
24614 * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
24615 param of this duplicate of the prototype from reload.h
24616
24617 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24618
24619 * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
24620 rtx to rtx_insn *.
24621 (regstat_bb_compute_calls_crossed): Likewise.
24622
24623 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24624
24625 * regrename.c (create_new_chain): Strengthen param "insn" from rtx
24626 to rtx_insn *.
24627 (init_rename_info): Replace use of NULL_RTX with NULL when dealing
24628 with an insn.
24629 (regrename_analyze): Strengthen local "insn" from rtx to
24630 rtx_insn *.
24631 (scan_rtx_reg): Likewise for param "insn".
24632 (scan_rtx_address): Likewise.
24633 (scan_rtx): Likewise.
24634 (restore_operands): Likewise.
24635 (record_out_operands): Likewise.
24636 (build_def_use): Likewise for local "insn". Replace use of
24637 NULL_RTX with NULL when dealing with an insn.
24638
24639 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24640
24641 * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
24642 * reginfo.c (reg_scan): Likewise, also for local "insn".
24643 (reg_scan_mark_refs): Likewise for param "insn".
24644 (init_subregs_of_mode): Likewise for local "insn".
24645
24646 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24647
24648 * regcprop.c (struct queued_debug_insn_change): Strengthen field
24649 "insn" from rtx to rtx_insn *.
24650 (replace_oldest_value_reg): Likewise for param "insn".
24651 (replace_oldest_value_addr): Likewise.
24652 (replace_oldest_value_mem): Likewise.
24653 (apply_debug_insn_changes): Likewise for local "last_insn".
24654 (copyprop_hardreg_forward_1): Likewise for local "insn".
24655
24656 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24657
24658 * reg-stack.c (next_flags_user): Strengthen return type and param
24659 "insn" from rtx to rtx_insn *.
24660 (straighten_stack): Likewise for param "insn".
24661 (check_asm_stack_operands): Likewise.
24662 (remove_regno_note): Likewise.
24663 (emit_pop_insn): Likewise for return type, param "insn", local
24664 "pop_insn".
24665 (emit_swap_insn): Strengthen param "insn" and locals "i1", "tmp",
24666 "limit" from rtx to rtx_insn *.
24667 (swap_to_top): Likewise for param "insn".
24668 (move_for_stack_reg): Likewise.
24669 (move_nan_for_stack_reg): Likewise.
24670 (swap_rtx_condition): Likewise.
24671 (compare_for_stack_reg): Likewise.
24672 (subst_all_stack_regs_in_debug_insn): Likewise.
24673 (subst_stack_regs_pat): Likewise, and local "insn2".
24674 (subst_asm_stack_regs): Strengthen param "insn" from rtx to
24675 rtx_insn *.
24676 (subst_stack_regs): Likewise.
24677 (change_stack): Likewise.
24678 (convert_regs_1): Likewise for locals "insn", "next".
24679
24680 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24681
24682 * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
24683 rtx_insn *.
24684 (combine_set_extension): Likewise for param "curr_insn".
24685 (transform_ifelse): Likewise for param "def_insn".
24686 (get_defs): Likewise for param "def_insn". Strengthen param "dest"
24687 from vec<rtx> * to vec<rtx_insn *> *.
24688 (is_cond_copy_insn): Likewise for param "insn".
24689 (struct ext_state): Strengthen the four vec fields from vec<rtx>
24690 to vec<rtx_insn *>.
24691 (make_defs_and_copies_lists): Strengthen param "extend_insn" and
24692 local "def_insn" from rtx to rtx_insn *.
24693 (get_sub_rtx): Likewise for param "def_insn".
24694 (merge_def_and_ext): Likewise.
24695 (combine_reaching_defs): Likewise.
24696 (add_removable_extension): Likewise for param "insn".
24697 (find_removable_extensions): Likewise for local "insn".
24698 (find_and_remove_re): Likewise for locals "curr_insn" and
24699 "def_insn". Strengthen locals "reinsn_del_list" and
24700 "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
24701
24702 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24703
24704 * recog.c (split_insn): Strengthen param "insn" and locals
24705 "first", "last" from rtx to rtx_insn *.
24706 (split_all_insns): Likewise for locals "insn", "next".
24707 (split_all_insns_noflow): Likewise.
24708
24709 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24710
24711 * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
24712 const rtx_insn *.
24713 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
24714 (debug_rtx_find): Likewise for param 1 "x".
24715
24716 * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
24717 const_rtx to const rtx_insn *. Likewise for local "insn".
24718 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
24719 (debug_rtx_find): Likewise for param 1 "x".
24720 (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
24721 from const_rtx to const rtx_insn * within the appropriate cases of
24722 the switch statement.
24723
24724 * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
24725 Strengthen local "insns" from rtx to rtx_insn * since this is
24726 passed to a call to debug_rtx_list.
24727
24728 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24729
24730 * predict.h (predict_insn_def): Strengthen param "insn" from rtx
24731 to rtx_insn *.
24732
24733 * function.c (stack_protect_epilogue): Add checked cast to
24734 rtx_insn for now when invoking predict_insn_def.
24735
24736 * predict.c (predict_insn): Strengthen param "insn" from rtx to
24737 rtx_insn *.
24738 (predict_insn_def): Likewise.
24739 (rtl_predict_edge): Likewise for local "last_insn".
24740 (can_predict_insn_p): Strengthen param "insn" from const_rtx to
24741 const rtx_insn *.
24742 (combine_predictions_for_insn): Strengthen param "insn" from rtx
24743 to rtx_insn *.
24744 (bb_estimate_probability_locally): Likewise for local "last_insn".
24745 (expensive_function_p): Likewise for local "insn".
24746
24747 * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
24748 local "jmp", since this is used when invoking predict_insn_def.
24749
24750 2014-08-22 Marek Polacek <polacek@redhat.com>
24751
24752 PR c++/62199
24753 * doc/invoke.texi: Update -Wlogical-not-parentheses description.
24754
24755 2014-08-22 Marek Polacek <polacek@redhat.com>
24756
24757 PR c/61271
24758 * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
24759 a comparison in parens.
24760 * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
24761 in parens.
24762
24763 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24764
24765 * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
24766 rtx_insn *.
24767
24768 * cprop.c (fis_get_condition): Likewise.
24769
24770 * postreload.c (reload_cse_regs): Likewise for param "first".
24771 (reload_cse_simplify): Likewise for param "insn".
24772 (reload_cse_regs_1): Likewise for local "insn".
24773 (reload_cse_simplify_set): Likewise for param "insn".
24774 (reload_cse_simplify_operands): Likewise.
24775 (struct reg_use): Likewise for field "insn".
24776 (reload_combine_purge_insn_uses): Likewise for param "insn".
24777 (fixup_debug_insns): Likewise for params "from", "to" and local
24778 "insn".
24779 (try_replace_in_use): Likewise for local "use_insn".
24780 (reload_combine_recognize_const_pattern): Likewise for param
24781 "insn" and locals "add_moved_after_insn", "use_insn".
24782 (reload_combine_recognize_pattern): Likewise for param "insn" and
24783 local "prev".
24784 (reload_combine): Likewise for locals "insn", "prev".
24785 (reload_combine_note_use): Likewise for param "insn".
24786 (move2add_use_add2_insn): Likewise.
24787 (move2add_use_add3_insn): Likewise.
24788 (reload_cse_move2add): Likewise, also for local "next".
24789 (move2add_note_store): Likewise for local "insn".
24790
24791 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24792
24793 * postreload-gcse.c (struct occr): Strengthen field "insn" from
24794 rtx to rtx_insn *.
24795 (struct unoccr): Likewise.
24796 (struct modifies_mem): Likewise.
24797 (alloc_mem): Likewise for local "insn".
24798 (insert_expr_in_table): Likewise for param "insn".
24799 (dump_expr_hash_table_entry): Likewise for local "insn".
24800 (oprs_unchanged_p): Likewise for param "insn".
24801 (load_killed_in_block_p): Likewise for local "setter".
24802 (record_last_reg_set_info): Likewise for param "insn".
24803 (record_last_reg_set_info_regno): Likewise.
24804 (record_last_mem_set_info): Likewise.
24805 (record_last_set_info): Likewise for local "last_set_insn".
24806 (record_opr_changes): Likewise for param "insn".
24807 (hash_scan_set): Likewise.
24808 (compute_hash_table): Likewise for local "insn".
24809 (get_avail_load_store_reg): Likewise for param "insn".
24810 (eliminate_partially_redundant_load): Likewise, also for locals
24811 "avail_insn", "next_pred_bb_end". Replace use of NULL_RTX with
24812 RTX for insns.
24813 (eliminate_partially_redundant_loads): Likewise for local "insn".
24814
24815 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24816
24817 * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
24818 rtx to rtx_insn *.
24819 (expand_binop): Likewise for locals "entry_last", "last", "insns"
24820 (expand_twoval_unop): Likewise for locals entry_last", "last".
24821 (expand_twoval_binop): Likewise.
24822 (expand_twoval_binop_libfunc): Likewise for local "insns".
24823 (widen_leading): Likewise for local "last".
24824 (expand_doubleword_clz): Likewise for local "seq". Strengthen
24825 locals "hi0_label", "after_label" from rtx to rtx_code_label *.
24826 (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
24827 (expand_parity): Likewise for locals "last" and "seq".
24828 (expand_ffs): Likewise for local "seq". Strengthen local
24829 "nonzero_label" from rtx to rtx_code_label *.
24830 (expand_absneg_bit): Strengthen local "insns" from rtx to
24831 rtx_insn *.
24832 (expand_unop_direct): Likewise for local "last".
24833 (expand_unop): Likewise for locals "last", "insns".
24834 (expand_abs_nojump): Likewise for local "last".
24835 (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
24836 (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
24837 rtx_insn *.
24838 (expand_copysign_absneg): Strengthen local "label" from rtx to
24839 rtx_code_label *.
24840 (expand_copysign_bit): Strengthen local "insns" from rtx to
24841 rtx_insn *.
24842 (struct no_conflict_data): Likewise for fields "first", "insn".
24843 (emit_libcall_block_1): Likewise for param "insns" and locals
24844 "next", "last", "insn".
24845 (emit_libcall_block): For now, add a checked cast to rtx_insn *
24846 on "insns" when invoking emit_libcall_block_1. Ultimately we
24847 want to strengthen insns itself.
24848 (prepare_cmp_insn): Strengthen local "last" from rtx to
24849 rtx_insn *.
24850 (emit_cmp_and_jump_insn_1): Likewise for local "insn".
24851 (prepare_float_lib_cmp): Likewise for local "insns".
24852 (emit_conditional_move): Likewise for local "last".
24853 (emit_conditional_add): Likewise.
24854 (have_sub2_insn): Likewise for local "seq".
24855 (expand_float): Likewise for local "insns". Strengthen locals
24856 "label", "neglabel" from rtx to rtx_code_label *.
24857 (expand_fix): Likewise for locals "last", "insn", "insns" (to
24858 rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
24859 (expand_fixed_convert): Likewise for local "insns" (to
24860 rtx_insn *).
24861 (expand_sfix_optab): Likewise for local "last".
24862 (expand_compare_and_swap_loop): Strengthen local "label" from rtx
24863 to rtx_code_label *.
24864 (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
24865 from rtx to rtx_insn *.
24866 (expand_atomic_fetch_op): Likewise for local "insn".
24867 (maybe_legitimize_operand_same_code): Likewise for local "last".
24868 (maybe_legitimize_operands): Likewise.
24869
24870 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24871
24872 * modulo-sched.c (struct ps_reg_move_info): Strengthen field
24873 "insn" from rtx to rtx_insn *.
24874 (ps_rtl_insn): Likewise for return type.
24875 (doloop_register_get): Likewise for params "head", "tail" and
24876 locals "insn", "first_insn_not_to_check".
24877 (schedule_reg_move): Likewise for local "this_insn".
24878 (schedule_reg_moves): Add a checked cast to rtx_insn * to result
24879 of gen_move_insn for now.
24880 (reset_sched_times): Strengthen local "insn" from rtx to
24881 rtx_insn *.
24882 (permute_partial_schedule): Likewise.
24883 (duplicate_insns_of_cycles): Likewise for local "u_insn".
24884 (dump_insn_location): Likewise for param "insn".
24885 (loop_canon_p): Likewise for local "insn".
24886 (sms_schedule): Likewise.
24887 (print_partial_schedule): Likewise.
24888 (ps_has_conflicts): Likewise.
24889
24890 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24891
24892 * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
24893 "tailp" from rtx * to rtx_insn **.
24894
24895 * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
24896 from rtx to rtx_insn *.
24897 * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
24898 "tailp" from rtx * to rtx_insn **. Strengthen locals "beg_head",
24899 "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
24900 rtx to rtx_insn *.
24901 * modulo-sched.c (const_iteration_count): Strengthen return type
24902 and locals "insn", "head", "tail" from rtx to rtx_insn *. Replace
24903 use of NULL_RTX with NULL when working with insns.
24904 (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
24905 to rtx_insn *.
24906 (sms_schedule): Likewise.
24907 * sched-rgn.c (init_ready_list): Likewise, also for locals
24908 "src_head" and "src_next_tail".
24909 (compute_block_dependences): Likewise.
24910 (free_block_dependencies): Likewise.
24911 (debug_rgn_dependencies): Likewise.
24912 (free_rgn_deps): Likewise.
24913 (compute_priorities): Likewise.
24914 (schedule_region): Likewise.
24915 * sel-sched.c (find_ebb_boundaries): Likewise.
24916
24917 * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
24918 "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
24919
24920 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24921
24922 * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
24923 from rtx to rtx_insn *.
24924 (new_seginfo): Likewise for param "insn".
24925 (create_pre_exit): Likewise for locals "last_insn",
24926 "before_return_copy", "return_copy".
24927 (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
24928 "mode_set".
24929
24930 2014-08-22 David Malcolm <dmalcolm@redhat.com>
24931
24932 * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
24933 from rtx to rtx_insn *.
24934 (lra_push_insn): Likewise for 1st param.
24935 (lra_push_insn_and_update_insn_regno_info): Likewise.
24936 (lra_pop_insn): Likewise for return type.
24937 (lra_invalidate_insn_data): Likewise for 1st param.
24938 (lra_set_insn_deleted): Likewise.
24939 (lra_delete_dead_insn): Likewise.
24940 (lra_process_new_insns): Likewise for first 3 params.
24941 (lra_set_insn_recog_data): Likewise for 1st param.
24942 (lra_update_insn_recog_data): Likewise.
24943 (lra_set_used_insn_alternative): Likewise.
24944 (lra_invalidate_insn_regno_info): Likewise.
24945 (lra_update_insn_regno_info): Likewise.
24946 (lra_former_scratch_operand_p): Likewise.
24947 (lra_eliminate_regs_1): Likewise.
24948 (lra_get_insn_recog_data): Likewise.
24949
24950 * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
24951 rtx to rtx_insn *.
24952
24953 * lra-coalesce.c (move_freq_compare_func): Likewise for locals
24954 "mv1" and "mv2".
24955 (substitute_within_insn): New.
24956 (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
24957 rtx_insn *. Strengthen sorted_moves from rtx * to rxt_insn **.
24958 Replace call to "substitute" with call to substitute_within_insn.
24959
24960 * lra-constraints.c (curr_insn): Strengthen from rtx to
24961 rtx_insn *.
24962 (get_equiv_with_elimination): Likewise for param "insn".
24963 (match_reload): Strengthen params "before" and "after" from rtx *
24964 to rtx_insn **.
24965 (emit_spill_move): Likewise for return type. Add a checked cast
24966 to rtx_insn * on result of gen_move_insn for now.
24967 (check_and_process_move): Likewise for local "before". Replace
24968 NULL_RTX with NULL when referring to insns.
24969 (process_addr_reg): Strengthen params "before" and "after" from
24970 rtx * to rtx_insn **.
24971 (insert_move_for_subreg): Likewise.
24972 (simplify_operand_subreg): Strengthen locals "before" and "after"
24973 from rtx to rtx_insn *.
24974 (process_address_1): Strengthen params "before" and "after" from
24975 rtx * to rtx_insn **. Strengthen locals "insns", "last_insn" from
24976 rtx to rtx_insn *.
24977 (process_address): Strengthen params "before" and "after" from
24978 rtx * to rtx_insn **.
24979 (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
24980 (curr_insn_transform): Strengthen locals "before" and "after"
24981 from rtx to rtx_insn *. Replace NULL_RTX with NULL when referring
24982 to insns.
24983 (loc_equivalence_callback): Update cast of "data", changing
24984 resulting type from rtx to rtx_insn *.
24985 (substitute_pseudo_within_insn): New.
24986 (inherit_reload_reg): Strengthen param "insn" from rtx to
24987 rtx_insn *; likewise for local "new_insns". Replace NULL_RTX with
24988 NULL when referring to insns. Add a checked cast to rtx_insn *
24989 when using usage_insn to invoke lra_update_insn_regno_info.
24990 (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
24991 likewise for locals "restore", "save". Add checked casts to
24992 rtx_insn * when using usage_insn to invoke
24993 lra_update_insn_regno_info and lra_process_new_insns. Replace
24994 NULL_RTX with NULL when referring to insns.
24995 (split_if_necessary): Strengthen param "insn" from rtx to
24996 rtx_insn *.
24997 (update_ebb_live_info): Likewise for params "head", "tail" and local
24998 "prev_insn".
24999 (get_last_insertion_point): Likewise for return type and local "insn".
25000 (get_live_on_other_edges): Likewise for local "last".
25001 (inherit_in_ebb): Likewise for params "head", "tail" and locals
25002 "prev_insn", "next_insn", "restore".
25003 (remove_inheritance_pseudos): Likewise for local "prev_insn".
25004 (undo_optional_reloads): Likewise for local "insn".
25005
25006 * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
25007 "insn".
25008 (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
25009 insns.
25010 (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
25011 rtx_insn *.
25012 (spill_pseudos): Likewise for local "insn".
25013 (init_elimination): Likewise.
25014 (process_insn_for_elimination): Likewise for param "insn".
25015
25016 * lra-lives.c (curr_insn): Likewise.;
25017
25018 * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
25019 (remove_pseudos): Likewise for param "insn".
25020 (spill_pseudos): Likewise for local "insn".
25021 (lra_final_code_change): Likewise for locals "insn", "curr".
25022
25023 * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
25024 (lra_set_insn_deleted): Likewise.
25025 (lra_delete_dead_insn): Likewise, and for local "prev".
25026 (new_insn_reg): Likewise for param "insn".
25027 (lra_set_insn_recog_data): Likewise.
25028 (lra_update_insn_recog_data): Likewise.
25029 (lra_set_used_insn_alternative): Likewise.
25030 (get_insn_freq): Likewise.
25031 (invalidate_insn_data_regno_info): Likewise.
25032 (lra_invalidate_insn_regno_info): Likewise.
25033 (lra_update_insn_regno_info): Likewise.
25034 (lra_constraint_insn_stack): Strengthen from vec<rtx> to
25035 vec<rtx_insn *>.
25036 (lra_push_insn_1): Strengthen param "insn" from rtx to
25037 rtx_insn *.
25038 (lra_push_insn): Likewise.
25039 (lra_push_insn_and_update_insn_regno_info): Likewise.
25040 (lra_pop_insn): Likewise for return type and local "insn".
25041 (push_insns): Likewise for params "from", "to", and local "insn".
25042 (setup_sp_offset): Likewise for params "from", "last" and locals
25043 "before", "insn".
25044 (lra_process_new_insns): Likewise for params "insn", "before",
25045 "after" and local "last".
25046 (struct sloc): Likewise for field "insn".
25047 (lra_former_scratch_operand_p): Likewise for param "insn".
25048 (remove_scratches): Likewise for locals "insn", "last".
25049 (check_rtl): Likewise for local "insn".
25050 (add_auto_inc_notes): Likewise for param "insn".
25051 (update_inc_notes): Likewise for local "insn".
25052 (lra): Replace NULL_RTX with NULL when referring to insn.
25053
25054 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25055
25056 * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
25057 to rtx_insn *.
25058 (resolve_reg_notes): Likewise.
25059 (resolve_simple_move): Likewise for return type, param "insn", and
25060 locals "insns", "minsn".
25061 (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
25062 (resolve_use): Likewise.
25063 (resolve_debug): Likewise.
25064 (find_decomposable_shift_zext): Likewise.
25065 (resolve_shift_zext): Likewise for return type, param "insn", and
25066 locals "insns", "in". Eliminate use of NULL_RTX in favor of NULL.
25067 (decompose_multiword_subregs): Likewise for local "insn",
25068 "orig_insn", "decomposed_shift", "end".
25069
25070 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25071
25072 * basic-block.h (basic_block split_edge_and_insert): Strengthen
25073 param "insns" from rtx to rtx_insn *.
25074
25075 * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
25076 rtx to rtx_insn *.
25077 (struct iv_to_split): Likewise.
25078 (loop_exit_at_end_p): Likewise for local "insn".
25079 (split_edge_and_insert): Likewise for param "insns".
25080 (compare_and_jump_seq): Likewise for return type, param "cinsn",
25081 and locals "seq", "jump".
25082 (unroll_loop_runtime_iterations): Likewise for locals "init_code",
25083 "branch_code"; update invocations of compare_and_jump_seq to
25084 eliminate NULL_RTX in favor of NULL.
25085 (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
25086 rtx to rtx_insn *.
25087 (reset_debug_uses_in_loop): Likewise.
25088 (analyze_insn_to_expand_var): Likewise for param "insn".
25089 (analyze_iv_to_split_insn): Likewise.
25090 (analyze_insns_in_loop): Likewise for local "insn".
25091 (insert_base_initialization): Likewise for param
25092 "insn" and local "seq".
25093 (split_iv): Likewise for param "insn" and local "seq".
25094 (expand_var_during_unrolling): Likewise for param "insn".
25095 (insert_var_expansion_initialization): Likewise for local "seq".
25096 (combine_var_copies_in_loop_exit): Likewise.
25097 (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
25098 "insn".
25099 (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
25100 (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
25101 "next".
25102
25103 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25104
25105 * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
25106 rtx_insn *.
25107 (iv_analyze_result): Likewise.
25108 (iv_analyze_expr): Likewise.
25109 (biv_p): Likewise.
25110
25111 * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
25112 local "def_insn" from rtx to rtx_insn *.
25113 (get_biv_step_1): Likewise for local "insn".
25114 (iv_analyze_expr): Likewise for param "insn".
25115 (iv_analyze_def): Likewise for local "insn".
25116 (iv_analyze_op): Likewise for param "insn".
25117 (iv_analyze): Likewise.
25118 (iv_analyze_result): Likewise.
25119 (biv_p): Likewise.
25120 (suitable_set_for_replacement): Likewise.
25121 (simplify_using_initial_values): Likewise for local "insn".
25122 (iv_number_of_iterations): Likewise for param "insn".
25123 (check_simple_exit): Add checked cast to rtx_insn when invoking
25124 iv_number_of_iterations for now (until get_condition is
25125 strengthened).
25126
25127 * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
25128 "insn" from rtx to rtx_insn *.
25129 (analyze_insns_in_loop): Likewise for local "insn".
25130
25131 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25132
25133 * loop-invariant.c (struct use): Strengthen field "insn" from rtx
25134 to rtx_insn *.
25135 (struct invariant): Likewise.
25136 (hash_invariant_expr_1): Likewise for param "insn".
25137 (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
25138 (find_exits): Likewise for local "insn".
25139 (create_new_invariant): Likewise for param "insn".
25140 (check_dependencies): Likewise.
25141 (find_invariant_insn): Likewise.
25142 (record_uses): Likewise.
25143 (find_invariants_insn): Likewise.
25144 (find_invariants_bb): Likewise for local "insn".
25145 (get_pressure_class_and_nregs): Likewise for param "insn".
25146 (calculate_loop_reg_pressure): Likewise for local "insn".
25147
25148 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25149
25150 * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
25151 to rtx_insn *.
25152 (add_test): Likewise for locals "seq", "jump".
25153 (doloop_modify): Likewise for locals "sequence", "jump_insn".
25154
25155 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25156
25157 * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
25158 rtx_insn *.
25159 (rebuild_jump_labels_chain): Likewise for param "chain".
25160
25161 * cfgexpand.c (pass_expand::execute): Add checked cast to
25162 rtx_insn * when calling rebuild_jump_labels_chain in region where
25163 we know e->insns.r is non-NULL.
25164
25165 * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
25166 rtx_insn *.
25167 (rebuild_jump_labels): Likewise.
25168 (rebuild_jump_labels_chain): Likewise for param "chain".
25169 (cleanup_barriers): Likewise for locals "insn", "next", "prev".
25170 (init_label_info): Likewise for param "f".
25171 (maybe_propagate_label_ref): Likewise for params "jump_insn",
25172 "prev_nonjump_insn".
25173 (mark_all_labels): Likewise for param "f" and locals "insn",
25174 "prev_nonjump_insn".
25175
25176 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25177
25178 * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
25179 from rtx to rtx_insn *insn.
25180 (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
25181 (ira_add_allocno_copy): Likewise.
25182 * ira-build.c (find_allocno_copy): Strengthen param "insn" from
25183 rtx to rtx_insn *.
25184 (ira_create_copy): Likewise.
25185 (ira_add_allocno_copy): Likewise.
25186 (create_bb_allocnos): Likewise for local "insn".
25187 * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
25188 (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
25189 process_regs_for_copy for rtx_insn * param.
25190 (add_insn_allocno_copies): Strengthen param "insn" from rtx to
25191 rtx_insn *insn. Update NULL_RTX to NULL in invocation of
25192 process_regs_for_copy for rtx_insn * param.
25193 (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
25194 * ira-costs.c (record_reg_classes): Likewise for param "insn".
25195 (record_operand_costs): Likewise.
25196 (scan_one_insn): Likewise for return type, and for param "insn".
25197 (process_bb_for_costs): Likewise for local "insn".
25198 (process_bb_node_for_hard_reg_moves): Likewise.
25199 * ira-emit.c (struct move): Likewise for field "insn".
25200 (create_move): Eliminate use of NULL_RTX when dealing with an
25201 rtx_insn *.
25202 (emit_move_list): Strengthen return type and locals "result",
25203 "insn" from rtx to rtx_insn *insn.
25204 (emit_moves): Likewise for locals "insns", "tmp".
25205 (ira_emit): Likewise for local "insn".
25206 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
25207 "insn".
25208 (find_call_crossed_cheap_reg): Likewise.
25209 (process_bb_node_lives): Likewise for local "insn".
25210 * ira.c (decrease_live_ranges_number): Likewise.
25211 (compute_regs_asm_clobbered): Likewise.
25212 (build_insn_chain): Likewise.
25213 (find_moveable_pseudos): Likewise, also locals "def_insn",
25214 "use_insn", "x". Also strengthen local "closest_uses" from rtx *
25215 to rtx_insn **. Add a checked cast when assigning from
25216 "closest_use" into closest_uses array in a region where we know
25217 it's a non-NULL insn.
25218 (interesting_dest_for_shprep): Strengthen param "insn" from rtx
25219 to rtx_insn *.
25220 (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
25221 "last_interesting_insn", "uin".
25222 (move_unallocated_pseudos): Likewise for locals "def_insn",
25223 "move_insn", "newinsn".
25224
25225 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25226
25227 * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
25228 Strengthen locals "done_label", "do_error" from rtx to
25229 rtx_code_label *.
25230 (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
25231 from rtx to rtx_insn *. Strengthen local "sub_check from rtx to
25232 rtx_code_label *.
25233 (ubsan_expand_si_overflow_neg_check): Likewise for locals
25234 "done_label", "do_error" to rtx_code_label * and local "last" to
25235 rtx_insn *.
25236 (ubsan_expand_si_overflow_mul_check): Likewise for locals
25237 "done_label", "do_error", "large_op0", "small_op0_large_op1",
25238 "one_small_one_large", "both_ops_large", "after_hipart_neg",
25239 "after_lopart_neg", "do_overflow", "hipart_different" to
25240 rtx_code_label * and local "last" to rtx_insn *.
25241
25242 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25243
25244 * init-regs.c (initialize_uninitialized_regs): Strengthen locals
25245 "insn" and "move_insn" from rtx to rtx_insn *.
25246
25247 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25248
25249 * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
25250 rtx_insn *.
25251 (cheap_bb_rtx_cost_p): Likewise.
25252 (first_active_insn): Likewise for return type and local "insn".
25253 (last_active_insn): Likewise for return type and locals "insn",
25254 "head".
25255 (struct noce_if_info): Likewise for fields "jump", "insn_a",
25256 "insn_b".
25257 (end_ifcvt_sequence): Likewise for return type and locals "insn",
25258 "seq".
25259 (noce_try_move): Likewise for local "seq".
25260 (noce_try_store_flag): Likewise.
25261 (noce_try_store_flag_constants): Likewise.
25262 (noce_try_addcc): Likewise.
25263 (noce_try_store_flag_mask): Likewise.
25264 (noce_try_cmove): Likewise.
25265 (noce_try_minmax): Likewise.
25266 (noce_try_abs): Likewise.
25267 (noce_try_sign_mask): Likewise.
25268 (noce_try_bitop): Likewise.
25269 (noce_can_store_speculate_p): Likewise for local "insn".
25270 (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
25271 seq".
25272 (check_cond_move_block): Likewise for local "insn".
25273 (cond_move_convert_if_block): Likewise.
25274 (cond_move_process_if_block): Likewise for locals "seq",
25275 "loc_insn".
25276 (noce_find_if_block): Likewise for local "jump".
25277 (merge_if_block): Likewise for local "last".
25278 (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
25279 (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
25280 (block_has_only_trap): Likewise for return type and local "trap".
25281 (find_if_case_1): Likewise for local "jump".
25282 (dead_or_predicable): Likewise for locals "head", "end", "jump",
25283 "insn".
25284
25285 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25286
25287 * hw-doloop.h (struct hwloop_info_d): Strengthen fields
25288 "last_insn", "loop_end" from rtx to rtx_insn *.
25289
25290 * hw-doloop.c (scan_loop): Likewise for local "insn".
25291 (discover_loop): Likewise for param "tail_insn".
25292 (discover_loops): Likewise for local "tail".
25293
25294 * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
25295 cast to rtx_insn * when assigning from an rtx local to a
25296 hwloop_info's "last_insn" field.
25297
25298 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25299
25300 * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
25301 (add_delay_dependencies): Strengthen local "pro" from rtx to
25302 rtx_insn *.
25303 (recompute_todo_spec): Likewise.
25304 (dep_cost_1): Likewise for locals "insn", "used".
25305 (schedule_insn): Likewise for local "dbg".
25306 (schedule_insn): Likewise for locals "pro", "next".
25307 (unschedule_insns_until): Likewise for local "con".
25308 (restore_pattern): Likewise for local "next".
25309 (estimate_insn_tick): Likewise for local "pro".
25310 (resolve_dependencies): Likewise for local "next".
25311 (fix_inter_tick): Likewise.
25312 (fix_tick_ready): Likewise for local "pro".
25313 (add_to_speculative_block): Likewise for locals "check", "twin",
25314 "pro".
25315 (sched_extend_bb): Likewise for locals "end", "insn".
25316 (init_before_recovery): Likewise for local "x".
25317 (sched_create_recovery_block): Likewise for local "barrier".
25318 (create_check_block_twin): Likewise for local "pro".
25319 (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
25320 "consumer".
25321 (unlink_bb_notes): Update for change to type of bb_header.
25322 Strengthen locals "prev", "label", "note", "next" from rtx to
25323 rtx_insn *.
25324 (clear_priorities): Likewise for local "pro".
25325
25326 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25327
25328 * gcse.c (struct occr): Strengthen field "insn" from rtx to
25329 rtx_insn *.
25330 (test_insn): Likewise for this global.
25331 (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
25332 const rtx_insn *.
25333 (oprs_anticipatable_p): Likewise.
25334 (oprs_available_p): Likewise.
25335 (insert_expr_in_table): Strengthen param "insn" from rtx to
25336 rtx_insn *.
25337 (hash_scan_set): Likewise.
25338 (hash_scan_clobber): Likewise.
25339 (hash_scan_call): Likewise.
25340 (hash_scan_insn): Likewise.
25341 (compute_hash_table_work): Likewise for local "insn".
25342 (process_insert_insn): Likewise for return type and local "pat".
25343 (insert_insn_end_basic_block): Likewise for locals "new_insn",
25344 "pat", "pat_end", "maybe_cc0_setter".
25345 (pre_edge_insert): Likewise for local "insn".
25346 (pre_insert_copy_insn): Likewise for param "insn".
25347 (pre_insert_copies): Likewise for local "insn".
25348 (struct set_data): Likewise for field "insn".
25349 (single_set_gcse): Likewise for param "insn".
25350 (gcse_emit_move_after): Likewise.
25351 (pre_delete): Likewise for local "insn".
25352 (update_bb_reg_pressure): Likewise for param "from" and local
25353 "insn".
25354 (should_hoist_expr_to_dom): Likewise for param "from".
25355 (hoist_code): Likewise for local "insn".
25356 (get_pressure_class_and_nregs): Likewise for param "insn".
25357 (calculate_bb_reg_pressure): Likewise for local "insn".
25358 (compute_ld_motion_mems): Likewise.
25359
25360 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25361
25362 * genpeep.c (main): Rename param back from "uncast_ins1" to
25363 "ins1", strengthening from rtx to rtx_insn *. Drop now-redundant
25364 checked cast.
25365
25366 * output.h (peephole): Strengthen param from rtx to rtx_insn *.
25367
25368 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
25369
25370 PR target/62195
25371 * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
25372 documentation to state it is only for VSX operations.
25373
25374 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
25375 constraint only active if VSX.
25376
25377 * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
25378 wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
25379 (lfiwzx): Likewise.
25380
25381 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25382
25383 * fwprop.c (single_def_use_dom_walker::before_dom_children):
25384 Strengthen local "insn" from rtx to rtx_insn *.
25385 (use_killed_between): Likewise for param "target_insn".
25386 (all_uses_available_at): Likewise for param "target_insn" and
25387 local "next".
25388 (update_df_init): Likewise for params "def_insn", "insn".
25389 (update_df): Likewise for param "insn".
25390 (try_fwprop_subst): Likewise for param "def_insn" and local
25391 "insn".
25392 (free_load_extend): Likewise for param "insn".
25393 (forward_propagate_subreg): Likewise for param "def_insn" and
25394 local "use_insn".
25395 (forward_propagate_asm): Likewise for param "def_insn" and local
25396 "use_insn".
25397 (forward_propagate_and_simplify): Likewise for param "def_insn"
25398 and local "use_insn".
25399 (forward_propagate_into): Likewise for locals "def_insn" and
25400 "use_insn".
25401
25402 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25403
25404 * function.c (emit_initial_value_sets): Strengthen local "seq"
25405 from rtx to rtx_insn *.
25406 (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
25407 local "seq".
25408 (instantiate_virtual_regs): Likewise for local "insn".
25409 (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
25410 (reorder_blocks_1): Likewise for param "insns" and local "insn".
25411 (expand_function_end): Likewise for locals "insn" and "seq".
25412 (epilogue_done): Likewise for local "insn".
25413 (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
25414 "last", "trial".
25415 (reposition_prologue_and_epilogue_notes): Likewise for locals
25416 "insn", "last", "note", "first".
25417 (match_asm_constraints_1): Likewise for param "insn" and local "insns".
25418 (pass_match_asm_constraints::execute): Likewise for local "insn".
25419
25420 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25421
25422 * output.h (final_scan_insn): Strengthen return type from rtx to
25423 rtx_insn *.
25424 (final_forward_branch_p): Likewise for param.
25425 (current_output_insn): Likewise for this global.
25426
25427 * final.c (rtx debug_insn): Likewise for this variable.
25428 (current_output_insn): Likewise.
25429 (get_attr_length_1): Rename param "insn" to "uncast_insn",
25430 adding "insn" back in as an rtx_insn * with a checked cast, so
25431 that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
25432 first param.
25433 (compute_alignments): Strengthen local "label" from rtx to
25434 rtx_insn *.
25435 (shorten_branches): Rename param from "first" to "uncast_first",
25436 introducing a new local rtx_insn * "first" using a checked cast to
25437 effectively strengthen "first" from rtx to rtx_insn * without
25438 affecting the type signature. Strengthen locals "insn", "seq",
25439 "next", "label" from rtx to rtx_insn *.
25440 (change_scope): Strengthen param "orig_insn" and local "insn" from
25441 rtx to rtx_insn *.
25442 (final_start_function): Rename param from "first" to "uncast_first",
25443 introducing a new local rtx_insn * "first" using a checked cast to
25444 effectively strengthen "first" from rtx to rtx_insn * without
25445 affecting the type signature. Strengthen local "insn" from rtx to
25446 rtx_insn *.
25447 (dump_basic_block_info): Strengthen param "insn" from rtx to
25448 rtx_insn *.
25449 (final): Rename param from "first" to "uncast_first",
25450 introducing a new local rtx_insn * "first" using a checked cast to
25451 effectively strengthen "first" from rtx to rtx_insn * without
25452 affecting the type signature. Strengthen locals "insn", "next"
25453 from rtx to rtx_insn *.
25454 (output_alternate_entry_point): Strengthen param "insn" from rtx to
25455 rtx_insn *.
25456 (call_from_call_insn): Strengthen param "insn" from rtx to
25457 rtx_call_insn *.
25458 (final_scan_insn): Rename param from "insn" to "uncast_insn",
25459 introducing a new local rtx_insn * "insn" using a checked cast to
25460 effectively strengthen "insn" from rtx to rtx_insn * without
25461 affecting the type signature. Strengthen return type and locals
25462 "next", "note", "prev", "new_rtx" from rtx to rtx_insn *. Remove
25463 now-redundant checked cast to rtx_insn * from both invocations of
25464 debug_hooks->var_location. Convert CALL_P into a dyn_cast,
25465 introducing a local "call_insn" for use when invoking
25466 call_from_call_insn.
25467 (notice_source_line): Strengthen param "insn" from rtx to
25468 rtx_insn *.
25469 (leaf_function_p): Likewise for local "insn".
25470 (final_forward_branch_p): Likewise.
25471 (leaf_renumber_regs): Likewise for param "first".
25472 (rest_of_clean_state): Likewise for locals "insn" and "next".
25473 (self_recursive_call_p): Likewise for param "insn".
25474 (collect_fn_hard_reg_usage): Likewise for local "insn".
25475 (get_call_fndecl): Likewise for param "insn".
25476 (get_call_cgraph_rtl_info): Likewise.
25477 (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
25478 introducing a new local rtx_insn * "insn" using a checked cast to
25479 effectively strengthen "insn" from rtx to rtx_insn * without
25480 affecting the type signature.
25481
25482 * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
25483 cast when assigning from param "insn" to current_output_insn.
25484 (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
25485 so that we can assign it back to current_output_insn.
25486
25487 2014-08-20 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
25488
25489 * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
25490 atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
25491 atmxt540s and atmxt540sreva devices.
25492 * config/avr/avr-tables.opt: Regenerate.
25493 * config/avr/t-multilib: Regenerate.
25494 * doc/avr-mmcu.texi: Regenerate.
25495
25496 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25497
25498 * expr.c (convert_move): Strengthen local "insns" from rtx to
25499 rtx_insn *.
25500 (emit_block_move_via_loop): Strengthen locals "cmp_label" and
25501 "top_label" from rtx to rtx_code_label *.
25502 (move_block_to_reg): Strengthen local "insn", "last" from rtx to
25503 rtx_insn *.
25504 (emit_single_push_insn): Likewise for locals "prev", "last".
25505 (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
25506 to rtx_code_label *.
25507 (store_constructor): Likewise for locals "loop_start", "loop_end".
25508 (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
25509 rtx_insn *.
25510 (expand_expr_real_2): Likewise.
25511 (expand_expr_real_1): Strengthen local "label" from rtx to
25512 rtx_code_label *.
25513
25514 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25515
25516 * expmed.c (store_bit_field_using_insv): Strengthen local "last"
25517 from rtx to rtx_insn *.
25518 (store_bit_field_1): Likewise.
25519 (extract_bit_field_1): Likewise.
25520 (expand_mult_const): Likewise for local "insns".
25521 (expmed_mult_highpart): Strengthen local "label" from rtx to
25522 rtx_code_label *.
25523 (expand_smod_pow2): Likewise.
25524 (expand_sdiv_pow2): Likewise.
25525 (expand_divmod): Strengthen locals "last", "insn" from rtx to
25526 rtx_insn *. Strengthen locals "label", "label1", "label2",
25527 "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
25528 (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
25529 (emit_store_flag): Likewise.
25530 (emit_store_flag_force): Strengthen local "label" from rtx to
25531 rtx_code_label *.
25532 (do_cmp_and_jump): Likewise for param "label".
25533
25534 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25535
25536 * explow.c (force_reg): Strengthen local "insn" from rtx to
25537 rtx_insn *.
25538 (adjust_stack_1): Likewise.
25539 (allocate_dynamic_stack_space): Likewise. Strengthen locals
25540 "final_label", "available_label", "space_available" from rtx to
25541 rtx_code_label *.
25542 (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
25543 (anti_adjust_stack_and_probe): Likewise.
25544
25545 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25546
25547 * except.h (sjlj_emit_function_exit_after): Strengthen param
25548 "after" from rtx to rtx_insn *. This is only called with
25549 result of get_last_insn (in function.c) so type-change should be
25550 self-contained.
25551
25552 * function.h (struct rtl_eh): Strengthen field "ehr_label" from
25553 rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
25554 to rtx_insn *. These fields are only used from except.c so this
25555 type-change should be self-contained to this patch.
25556
25557 * except.c (emit_to_new_bb_before): Strengthen param "seq" and
25558 local "last" from rtx to rtx_insn *.
25559 (dw2_build_landing_pads): Likewise for local "seq".
25560 (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
25561 (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
25562 rtx to rtx_code_label *. Strengthen locals "fn_begin", "seq" from
25563 rtx to rtx_insn *.
25564 (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
25565 to rtx_insn *.
25566 (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
25567 (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
25568 (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
25569 referring to an insn. Strengthen local "dispatch_label" from
25570 rtx to rtx_code_label *.
25571 (set_nothrow_function_flags): Strengthen local "insn" from rtx to
25572 rtx_insn *.
25573 (expand_eh_return): Strengthen local "around_label" from
25574 rtx to rtx_code_label *.
25575 (convert_to_eh_region_ranges): Strengthen locals "iter",
25576 "last_action_insn", "first_no_action_insn",
25577 "first_no_action_insn_before_switch",
25578 "last_no_action_insn_before_switch", from rtx to rtx_insn *.
25579
25580 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25581
25582 * dwarf2out.c (last_var_location_insn): Strengthen this variable
25583 from rtx to rtx_insn *.
25584 (cached_next_real_insn): Likewise.
25585 (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
25586 working with insns.
25587 (dwarf2out_var_location): Strengthen locals "next_real",
25588 "next_note", "expected_next_loc_note", "last_start", "insn" from
25589 rtx to rtx_insn *.
25590
25591 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25592
25593 * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
25594 from rtx to rtx_insn *.
25595 (create_pseudo_cfg): Likewise for local "insn".
25596
25597 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25598
25599 * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
25600 from rtx to rtx_insn *.
25601 (df_bb_regno_last_def_find): Likewise.
25602
25603 * df-problems.c (df_rd_bb_local_compute): Likewise.
25604 (df_lr_bb_local_compute): Likewise.
25605 (df_live_bb_local_compute): Likewise.
25606 (df_chain_remove_problem): Likewise.
25607 (df_chain_create_bb): Likewise.
25608 (df_word_lr_bb_local_compute): Likewise.
25609 (df_remove_dead_eq_notes): Likewise for param "insn".
25610 (df_note_bb_compute): Likewise for local "insn".
25611 (simulate_backwards_to_point): Likewise.
25612 (df_md_bb_local_compute): Likewise.
25613
25614 * df-scan.c (df_scan_free_bb_info): Likewise.
25615 (df_scan_start_dump): Likewise.
25616 (df_scan_start_block): Likewise.
25617 (df_install_ref_incremental): Likewise for local "insn".
25618 (df_insn_rescan_all): Likewise.
25619 (df_reorganize_refs_by_reg_by_insn): Likewise.
25620 (df_reorganize_refs_by_insn_bb): Likewise.
25621 (df_recompute_luids): Likewise.
25622 (df_bb_refs_record): Likewise.
25623 (df_update_entry_exit_and_calls): Likewise.
25624 (df_bb_verify): Likewise.
25625
25626 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25627
25628 * ddg.h (struct ddg_node): Strengthen fields "insn" and
25629 "first_note" from rtx to rtx_insn *.
25630 (get_node_of_insn): Likewise for param 2 "insn".
25631 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
25632
25633 * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
25634 rtx_insn *.
25635 (mem_write_insn_p): Likewise.
25636 (mem_access_insn_p): Likewise.
25637 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
25638 (def_has_ccmode_p): Likewise for param "insn".
25639 (add_cross_iteration_register_deps): Likewise for locals
25640 "def_insn" and "use_insn".
25641 (insns_may_alias_p): Likewise for params "insn1" and "insn2".
25642 (build_intra_loop_deps): Likewise for local "src_insn".
25643 (create_ddg): Strengthen locals "insn" and "first_note" from rtx
25644 to rtx_insn *.
25645 (get_node_of_insn): Likewise for param "insn".
25646
25647 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25648
25649 * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
25650 (deletable_insn_p): Strengthen param "insn" from rtx to
25651 rtx_insn *. Add checked cast to rtx_call_insn when invoking
25652 find_call_stack_args, since this is guarded by CALL_P (insn).
25653 (marked_insn_p): Strengthen param "insn" from rtx to
25654 rtx_insn *.
25655 (mark_insn): Likewise. Add checked cast to rtx_call_insn when
25656 invoking find_call_stack_args, since this is guarded by
25657 CALL_P (insn).
25658 (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
25659 rtx_insn *; we know this is an insn since this was called by
25660 mark_nonreg_stores.
25661 (mark_nonreg_stores_2): Likewise.
25662 (mark_nonreg_stores): Strengthen param "insn" from rtx to
25663 rtx_insn *.
25664 (find_call_stack_args): Strengthen param "call_insn" from rtx to
25665 rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
25666 to rtx_insn *.
25667 (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
25668 from rtx to rtx_insn *.
25669 (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
25670 "next", "ref_insn".
25671 (delete_unmarked_insns): Likewise for locals "insn", "next".
25672 (prescan_insns_for_dce): Likewise for locals "insn", "prev".
25673 (mark_reg_dependencies): Likewise for param "insn".
25674 (rest_of_handle_ud_dce): Likewise for local "insn".
25675 (word_dce_process_block): Likewise.
25676 (dce_process_block): Likewise.
25677
25678 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25679
25680 * cse.c (struct qty_table_elem): Strengthen field "const_insn"
25681 from rtx to rtx_insn *.
25682 (struct change_cc_mode_args): Likewise for field "insn".
25683 (this_insn): Strengthen from rtx to rtx_insn *.
25684 (make_new_qty): Replace use of NULL_RTX with NULL when dealing
25685 with insn.
25686 (validate_canon_reg): Strengthen param "insn" from rtx to
25687 rtx_insn *.
25688 (canon_reg): Likewise.
25689 (fold_rtx): Likewise. Replace use of NULL_RTX with NULL when
25690 dealing with insn.
25691 (record_jump_equiv): Strengthen param "insn" from rtx to
25692 rtx_insn *.
25693 (try_back_substitute_reg): Likewise, also for locals "prev",
25694 "bb_head".
25695 (find_sets_in_insn): Likewise for param "insn".
25696 (canonicalize_insn): Likewise.
25697 (cse_insn): Likewise. Add a checked cast.
25698 (invalidate_from_clobbers): Likewise for param "insn".
25699 (invalidate_from_sets_and_clobbers): Likewise.
25700 (cse_process_notes_1): Replace use of NULL_RTX with NULL when
25701 dealing with insn.
25702 (cse_prescan_path): Strengthen local "insn" from rtx to
25703 rtx_insn *.
25704 (cse_extended_basic_block): Likewise for locals "insn" and
25705 "prev_insn".
25706 (cse_main): Likewise for param "f".
25707 (check_for_label_ref): Likewise for local "insn".
25708 (set_live_p): Likewise for second param ("insn").
25709 (insn_live_p): Likewise for first param ("insn") and for local
25710 "next".
25711 (cse_change_cc_mode_insn): Likewise for first param "insn".
25712 (cse_change_cc_mode_insns): Likewise for first and second params
25713 "start" and "end".
25714 (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
25715 and "end".
25716 (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
25717 "cc_src_insn".
25718
25719 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
25720 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
25721 Anna Tikhonova <anna.tikhonova@intel.com>
25722 Ilya Tocar <ilya.tocar@intel.com>
25723 Andrey Turetskiy <andrey.turetskiy@intel.com>
25724 Ilya Verbin <ilya.verbin@intel.com>
25725 Kirill Yukhin <kirill.yukhin@intel.com>
25726 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
25727
25728 * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
25729 New.
25730 * config/i386/sse.md
25731 (define_mode_iterator VI248_AVX2): Delete.
25732 (define_mode_iterator VI2_AVX2_AVX512BW): New.
25733 (define_mode_iterator VI48_AVX2): Ditto.
25734 (define_insn <shift_insn><mode>3): Delete.
25735 (define_insn "<shift_insn><mode>3<mask_name>" with
25736 VI2_AVX2_AVX512BW): New.
25737 (define_insn "<shift_insn><mode>3<mask_name>" with
25738 VI48_AVX2): Ditto.
25739
25740 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
25741 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
25742 Anna Tikhonova <anna.tikhonova@intel.com>
25743 Ilya Tocar <ilya.tocar@intel.com>
25744 Andrey Turetskiy <andrey.turetskiy@intel.com>
25745 Ilya Verbin <ilya.verbin@intel.com>
25746 Kirill Yukhin <kirill.yukhin@intel.com>
25747 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
25748
25749 * config/i386/sse.md
25750 (define_mode_iterator VI4F_BRCST32x2): New.
25751 (define_mode_attr 64x2_mode): Ditto.
25752 (define_mode_attr 32x2mode): Ditto.
25753 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
25754 with VI4F_BRCST32x2): Ditto.
25755 (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
25756 with V16FI mode iterator): Ditto.
25757 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
25758 with V16FI): Ditto.
25759 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
25760 with VI8F_BRCST64x2): Ditto.
25761
25762 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
25763 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
25764 Anna Tikhonova <anna.tikhonova@intel.com>
25765 Ilya Tocar <ilya.tocar@intel.com>
25766 Andrey Turetskiy <andrey.turetskiy@intel.com>
25767 Ilya Verbin <ilya.verbin@intel.com>
25768 Kirill Yukhin <kirill.yukhin@intel.com>
25769 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
25770
25771 * config/i386/sse.md
25772 (define_mode_iterator VI8_AVX512VL): New.
25773 (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
25774
25775 2014-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
25776
25777 * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
25778 (define_mode_iterator V48_AVX512VL): New.
25779 (define_mode_iterator V12_AVX512VL): Ditto.
25780 (define_insn <avx512>_load<mode>_mask): Split into two similar
25781 patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
25782 Refactor output template.
25783 (define_insn "<avx512>_store<mode>_mask"): Ditto.
25784
25785 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25786
25787 * cprop.c (struct occr): Strengthen field "insn" from rtx to
25788 rtx_insn *.
25789 (reg_available_p): Likewise for param "insn".
25790 (insert_set_in_table): Likewise.
25791 (hash_scan_set): Likewise.
25792 (hash_scan_insn): Likewise.
25793 (make_set_regs_unavailable): Likewise.
25794 (compute_hash_table_work): Likewise for local "insn".
25795 (reg_not_set_p): Strengthen param "insn" from const_rtx to
25796 const rtx_insn *.
25797 (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
25798 (try_replace_reg): Likewise.
25799 (find_avail_set): Likewise.
25800 (cprop_jump): Likewise for params "setcc", "jump".
25801 (constprop_register): Likewise for param "insn".
25802 (cprop_insn): Likewise.
25803 (do_local_cprop): Likewise.
25804 (local_cprop_pass): Likewise for local "insn".
25805 (bypass_block): Likewise for params "setcc" and "jump".
25806 (bypass_conditional_jumps): Likewise for locals "setcc" and
25807 "insn".
25808 (one_cprop_pass): Likewise for local "insn".
25809
25810 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25811
25812 * compare-elim.c (struct comparison_use): Strengthen field "insn"
25813 from rtx to rtx_insn *.
25814 (struct comparison): Likewise, also for field "prev_clobber".
25815 (conforming_compare): Likewise for param "insn".
25816 (arithmetic_flags_clobber_p): Likewise.
25817 (find_flags_uses_in_insn): Likewise.
25818 (find_comparison_dom_walker::before_dom_children): Likewise for
25819 locals "insn", "next", "last_clobber".
25820 (try_eliminate_compare): Likewise for locals "insn", "bb_head".
25821
25822 2014-08-22 David Malcolm <dmalcolm@redhat.com>
25823
25824 * combine-stack-adj.c (struct csa_reflist): Strengthen field
25825 "insn" from rtx to rtx_insn *.
25826 (single_set_for_csa): Likewise for param "insn".
25827 (record_one_stack_ref): Likewise.
25828 (try_apply_stack_adjustment): Likewise.
25829 (struct record_stack_refs_data): Likewise for field "insn".
25830 (maybe_move_args_size_note): Likewise for params "last" and "insn".
25831 (prev_active_insn_bb): Likewise for return type and param "insn".
25832 (next_active_insn_bb): Likewise.
25833 (force_move_args_size_note): Likewise for params "prev" and "last"
25834 and locals "test", "next_candidate", "prev_candidate".
25835 (combine_stack_adjustments_for_block): Strengthen locals
25836 "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
25837 rtx_insn *.
25838
25839 2014-08-21 David Malcolm <dmalcolm@redhat.com>
25840
25841 * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
25842 (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
25843 (subst_insn): Likewise for this variable.
25844 (added_links_insn): Likewise.
25845 (struct insn_link): Likewise for field "insn".
25846 (alloc_insn_link): Likewise for param "insn".
25847 (struct undobuf): Likewise for field "other_insn".
25848 (find_single_use): Likewise for param "insn" and local "next".
25849 (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
25850 (delete_noop_moves): Likewise for locals "insn", "next".
25851 (create_log_links): Likewise for locals "insn", "use_insn".
25852 Strengthen local "next_use" from rtx * to rtx_insn **.
25853 (insn_a_feeds_b): Likewise for params "a", "b".
25854 (combine_instructions): Likewise for param "f" and locals "insn",
25855 "next", "prev", "first", "last_combined_insn", "link", "link1",
25856 "temp". Replace use of NULL_RTX with NULL when referring to
25857 insns.
25858 (setup_incoming_promotions): Likewise for param "first"
25859 (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
25860 (can_combine_p): Likewise for params "insn", "i3", "pred",
25861 "pred2", "succ", "succ2" and for local "p".
25862 (combinable_i3pat): Likewise for param "i3".
25863 (cant_combine_insn_p): Likewise for param "insn".
25864 (likely_spilled_retval_p): Likewise.
25865 (adjust_for_new_dest): Likewise.
25866 (update_cfg_for_uncondjump): Likewise, also for local "insn".
25867 (try_combine): Likewise for return type and for params "i3", "i2",
25868 "i1", "i0", "last_combined_insn", and for locals "insn",
25869 "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
25870 "i0_insn". Eliminate local "tem" in favor of new locals
25871 "tem_note" and "tem_insn", the latter being an rtx_insn *. Add a
25872 checked cast for now to rtx_insn * on the return type of
25873 gen_rtx_INSN. Replace use of NULL_RTX with NULL when referring to
25874 insns.
25875 (find_split_point): Strengthen param "insn" from rtx to
25876 rtx_insn *.
25877 (simplify_set): Likewise for local "other_insn".
25878 (recog_for_combine): Likewise for param "insn".
25879 (record_value_for_reg): Likewise.
25880 (record_dead_and_set_regs_1): Likewise for local
25881 "record_dead_insn".
25882 (record_dead_and_set_regs): Likewise for param "insn".
25883 (record_promoted_value): Likewise.
25884 (check_promoted_subreg): Likewise.
25885 (get_last_value_validate): Likewise.
25886 (reg_dead_at_p): Likewise.
25887 (move_deaths): Likewise for param "to_insn".
25888 (distribute_notes): Likewise for params "from_insn", "i3", "i2"
25889 and locals "place", "place2", "cc0_setter". Eliminate local "tem
25890 in favor of new locals "tem_note" and "tem_insn", the latter being
25891 an rtx_insn *.
25892 (distribute_links): Strengthen locals "place", "insn" from rtx to
25893 rtx_insn *.
25894
25895 2014-08-21 David Malcolm <dmalcolm@redhat.com>
25896
25897 * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
25898 than a const_rtx.
25899 (can_delete_label_p): Require a const rtx_code_label * rather than
25900 a const_rtx.
25901 (delete_insn): Add checked cast to rtx_code_label * when we know
25902 we're dealing with LABEL_P (insn). Strengthen local "bb_note" from
25903 rtx to rtx_insn *.
25904 (delete_insn_chain): Strengthen locals "prev" and "current" from
25905 rtx to rtx_insn *. Add a checked cast when assigning from
25906 "finish" (strengthening the params will come later). Add a
25907 checked cast to rtx_note * in region where we know
25908 NOTE_P (current).
25909 (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
25910 rtx_insn *.
25911 (compute_bb_for_insn): Likewise.
25912 (free_bb_for_insn): Likewise for local "insn".
25913 (compute_bb_for_insn): Likewise.
25914 (update_bb_for_insn_chain): Strengthen params "begin", "end" and
25915 local "insn" from rtx to rtx_insn *
25916 (flow_active_insn_p): Require a const rtx_insn * rather than a
25917 const_rtx.
25918 (contains_no_active_insn_p): Strengthen local "insn" from rtx to
25919 rtx_insn *.
25920 (can_fallthru): Likewise for locals "insn" and "insn2".
25921 (bb_note): Likewise for local "note".
25922 (first_insn_after_basic_block_note): Likewise for local "note" and
25923 for return type.
25924 (rtl_split_block): Likewise for locals "insn" and "next".
25925 (unique_locus_on_edge_between_p): Likewise for locals "insn" and
25926 "end".
25927 (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
25928 "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
25929 "prev", "tmp".
25930 (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
25931 them), "kill_from", "barrier", "new_insn".
25932 (patch_jump_insn): Likewise for params "insn", "old_label".
25933 (redirect_branch_edge): Likewise for locals "old_label", "insn".
25934 (force_nonfallthru_and_redirect): Likewise for locals "insn",
25935 "old_label", "new_label".
25936 (rtl_tidy_fallthru_edge): Likewise for local "q".
25937 (rtl_split_edge): Likewise for locals "before", "last".
25938 (commit_one_edge_insertion): Likewise for locals "before",
25939 "after", "insns", "tmp", "last", adding a checked cast where
25940 currently necessary.
25941 (commit_edge_insertions): Likewise.
25942 (rtl_dump_bb): Likewise for locals "insn", "last".
25943 (print_rtl_with_bb): Likewise for local "x".
25944 (rtl_verify_bb_insns): Likewise for local "x".
25945 (rtl_verify_bb_pointers): Likewise for local "insn".
25946 (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
25947 "head", "end".
25948 (rtl_verify_fallthru): Likewise for local "insn".
25949 (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
25950 (purge_dead_edges): Likewise for local "insn".
25951 (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
25952 (skip_insns_after_block): Likewise for return type and for locals
25953 "insn", "last_insn", "next_head", "prev".
25954 (record_effective_endpoints): Likewise for locals "next_insn",
25955 "insn", "end".
25956 (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
25957 (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
25958 (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
25959 (duplicate_insn_chain): For now, add checked cast from rtx to
25960 rtx_insn * when returning insn.
25961 (cfg_layout_duplicate_bb): Likewise for local "insn".
25962 (cfg_layout_delete_block): Likewise for locals "insn", "next",
25963 "prev", "remaints".
25964 (cfg_layout_merge_blocks): Likewise for local "insn", "last".
25965 (rtl_block_empty_p): Likewise.
25966 (rtl_split_block_before_cond_jump): Likewise for locals "insn",
25967 "split_point", "last".
25968 (rtl_block_ends_with_call_p): Likewise for local "insn".
25969 (need_fake_edge_p): Strengthen param "insn" from const_rtx to
25970 const rtx_insn *.
25971 (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
25972 "split_at_insn" from rtx to rtx_insn *.
25973 (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
25974 (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
25975 to const rtx_insn *.
25976 (rtl_account_profile_record): Likewise.
25977
25978 2014-08-21 David Malcolm <dmalcolm@redhat.com>
25979
25980 * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
25981 rtx to rtx_insn *.
25982 (average_num_loop_insns): Likewise.
25983 (init_set_costs): Likewise for local "seq".
25984 (seq_cost): Likewise for param "seq", from const_rtx to const
25985 rtx_insn *.
25986
25987 2014-08-21 David Malcolm <dmalcolm@redhat.com>
25988
25989 * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
25990 rtx to rtx_insn *.
25991
25992 2014-08-21 David Malcolm <dmalcolm@redhat.com>
25993
25994 * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
25995 "f1" and "f2" from rtx * to rtx_insn **.
25996 (flow_find_head_matching_sequence): Likewise.
25997
25998 * cfgcleanup.c (try_simplify_condjump): Strengthen local
25999 "cbranch_insn" from rtx to rtx_insn *.
26000 (thread_jump): Likewise for local "insn".
26001 (try_forward_edges): Likewise for local "last".
26002 (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
26003 (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
26004 "real_b_end".
26005 (can_replace_by): Likewise for params "i1", "i2".
26006 (old_insns_match_p): Likewise.
26007 (merge_notes): Likewise.
26008 (walk_to_nondebug_insn): Likewise for param "i1".
26009 (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
26010 to rtx_insn **. Strengthen locals "i1", "i2", "last1", "last2",
26011 "afterlast1", "afterlast2" from rtx to rtx_insn *.
26012 (flow_find_head_matching_sequence): Strengthen params "f1" and
26013 "f2" from rtx * to rtx_insn **. Strengthen locals "i1", "i2",
26014 "last1", "last2", "beforelast1", "beforelast2" from rtx to
26015 rtx_insn *.
26016 (outgoing_edges_match): Likewise for locals "last1", "last2".
26017 (try_crossjump_to_edge): Likewise for local "insn".
26018 Replace call to for_each_rtx with for_each_rtx_in_insn.
26019
26020 (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
26021 (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
26022 "e0_last", "e_last", "head", "curr", "insn". Strengthen locals
26023 "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
26024 (try_optimize_cfg): Strengthen local "last" from rtx to
26025 rtx_insn *.
26026 (delete_dead_jumptables): Likewise for locals "insn", "next",
26027 "label".
26028
26029 * ifcvt.c (cond_exec_process_if_block): Likewise for locals
26030 "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
26031 "rtx else_first_tail", to reflect the basic-block.h changes above.
26032
26033 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26034
26035 * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
26036 rtx_insn *.
26037 (purge_dead_tablejump_edges): Likewise.
26038 (find_bb_boundaries): Likewise for locals "insn", "end",
26039 "flow_transfer_insn".
26040
26041 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26042
26043 * caller-save.c (save_call_clobbered_regs): Strengthen locals
26044 "ins" and "prev" from rtx to rtx_insn *.
26045
26046 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26047
26048 * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
26049 rtx_insn *.
26050 (internal_arg_pointer_exp_state): Likewise for field "scan_start".
26051 (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
26052 "scan_start".
26053 (load_register_parameters): Likewise for local "before_arg".
26054 (check_sibcall_argument_overlap): Likewise for param "insn".
26055 (expand_call): Likewise for locals "normal_call_insns",
26056 "tail_call_insns", "insns", "before_call", "after_args",
26057 "before_arg", "last", "prev". Strengthen one of the "last" from
26058 rtx to rtx_call_insn *.
26059 (fixup_tail_calls): Strengthen local "insn" from rtx to
26060 rtx_insn *.
26061 (emit_library_call_value_1): Likewise for locals "before_call" and
26062 "last".
26063
26064 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26065
26066 * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
26067 and "last" from rtx to rtx_insn *.
26068 (expand_builtin_nonlocal_goto): Likewise for local "insn".
26069 (expand_builtin_apply): Strengthen local "call_insn" from rtx to
26070 rtx_call_insn *.
26071 (expand_errno_check): Strengthen local "lab" from rtx to
26072 rtx_code_label *.
26073 (expand_builtin_mathfn): Strengthen local "insns" from rtx to
26074 rtx_insn *.
26075 (expand_builtin_mathfn_2): Likewise.
26076 (expand_builtin_mathfn_ternary): Likewise.
26077 (expand_builtin_mathfn_3): Likewise.
26078 (expand_builtin_interclass_mathfn): Likewise for local "last".
26079 (expand_builtin_int_roundingfn): Likewise for local "insns".
26080 (expand_builtin_int_roundingfn_2): Likewise.
26081 (expand_builtin_strlen): Likewise for local "before_strlen".
26082 (expand_builtin_strncmp): Likewise for local "seq".
26083 (expand_builtin_signbit): Likewise for local "last".
26084 (expand_builtin_atomic_compare_exchange): Strengthen local "label"
26085 from rtx to rtx_code_label *.
26086 (expand_stack_restore): Strengthen local "prev" from rtx to
26087 rtx_insn *.
26088
26089 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26090
26091 * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
26092 to rtx_insn *.
26093 (struct btr_def_s): Likewise.
26094 (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
26095 const rtx_insn *.
26096 (add_btr_def): Likewise.
26097 (new_btr_user): Likewise.
26098 (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
26099 rtx to rtx_insn *.
26100 (link_btr_uses): Likewise.
26101 (move_btr_def): Likewise for locals "insp", "old_insn",
26102 "new_insn". Add checked cast to rtx_insn * for now on result of
26103 gen_move_insn.
26104 (can_move_up): Strengthen param "insn" from const_rtx to
26105 const rtx_insn *.
26106
26107 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26108
26109 * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
26110 rtx_insn *.
26111 (get_uncond_jump_length): Likewise for locals "label", "jump".
26112 (fix_up_crossing_landing_pad): Likewise for locals "new_label",
26113 "jump", "insn".
26114 (add_labels_and_missing_jumps): Likewise for local "new_jump".
26115 (fix_up_fall_thru_edges): Likewise for local "old_jump".
26116 (find_jump_block): Likewise for local "insn".
26117 (fix_crossing_conditional_branches): Likewise for locals
26118 "old_jump", "new_jump".
26119 (fix_crossing_unconditional_branches): Likewise for locals
26120 "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
26121 (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
26122
26123 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26124
26125 * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
26126 rtx to rtx_insn *.
26127 (struct mem_insn): Likewise for field "insn".
26128 (reg_next_use): Strengthen from rtx * to rtx_insn **.
26129 (reg_next_inc_use): Likewise.
26130 (reg_next_def): Likewise.
26131 (move_dead_notes): Strengthen params "to_insn" and "from_insn"
26132 from rtx to rtx_insn *.
26133 (move_insn_before): Likewise for param "next_insn" and local "insns".
26134 (attempt_change): Likewise for local "mov_insn".
26135 (try_merge): Likewise for param "last_insn".
26136 (get_next_ref): Likewise for return type and local "insn".
26137 Strengthen param "next_array" from rtx * to rtx_insn **.
26138 (parse_add_or_inc): Strengthen param "insn" from rtx to
26139 rtx_insn *.
26140 (find_inc): Likewise for locals "insn" and "other_insn" (three of
26141 the latter).
26142 (merge_in_block): Likewise for locals "insn", "curr",
26143 "other_insn".
26144 (pass_inc_dec::execute): Update allocations of the arrays to
26145 reflect the stronger types.
26146
26147 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26148
26149 * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
26150 and "jump" from rtx to rtx_insn *. Strengthen local "top_label"
26151 from rtx to rtx_code_label *.
26152
26153 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26154
26155 * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
26156 to rtx_insn *.
26157
26158 2014-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
26159
26160 * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
26161 generated a warning and prevented bootstrapping the compiler.
26162
26163 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26164
26165 * rtl.h (delete_related_insns): Strengthen return type from rtx to
26166 rtx_insn *.
26167
26168 * jump.c (delete_related_insns): Likewise, also for locals "next"
26169 and "prev".
26170
26171 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26172
26173 * genautomata.c (output_internal_insn_latency_func): When writing
26174 the function "internal_insn_latency" to insn-automata.c,
26175 strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
26176 allowing the optional guard function of (define_bypass) clauses to
26177 expect a pair of rtx_insn *, rather than a pair of rtx.
26178 (output_insn_latency_func): When writing the function
26179 "insn_latency", add an "uncast_" prefix to params "insn" and
26180 "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
26181 using checked casts from the params, thus enabling the above
26182 change to the generated "internal_insn_latency" function.
26183
26184 2014-08-21 Jan Hubicka <hubicka@ucw.cz>
26185
26186 PR tree-optimization/62091
26187 * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
26188 handle correctly arrays.
26189 (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
26190 inheritance binfos.
26191 (record_known_type): Walk into inner type.
26192 (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
26193 condition on no type changes.
26194
26195 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26196
26197 * genattrtab.c (write_attr_get): Within the generated get_attr_
26198 functions, rename param "insn" to "uncast_insn" and reintroduce
26199 "insn" as an local rtx_insn * using a checked cast, so that "insn"
26200 is an rtx_insn * within insn-attrtab.c
26201
26202 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26203
26204 * output.h (peephole): Strengthen return type from rtx to
26205 rtx_insn *.
26206 * rtl.h (delete_for_peephole): Likewise for both params.
26207 * genpeep.c (main): In generated "peephole" function, strengthen
26208 return type and local "insn" from rtx to rtx_insn *. For now,
26209 rename param "ins1" to "uncast_ins1", adding "ins1" back as an
26210 rtx_insn *, with a checked cast.
26211 * jump.c (delete_for_peephole): Strengthen params "from", "to" and
26212 locals "insn", "next", "prev" from rtx to rtx_insn *.
26213
26214 2014-08-21 Marc Glisse <marc.glisse@inria.fr>
26215
26216 PR tree-optimization/62112
26217 * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
26218 * gimple-iterator.h (gsi_replace): Return bool.
26219 * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
26220 moved from ref_may_alias_global_p.
26221 (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
26222 New overloads.
26223 (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
26224 (stmt_kills_ref_p_1): Rename...
26225 (stmt_kills_ref_p): ... to this.
26226 * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
26227 stmt_kills_ref_p): Declare.
26228 * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
26229 Move the self-assignment case...
26230 (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
26231
26232 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26233
26234 * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
26235
26236 * emit-rtl.c (try_split): Likewise, also for locals "before" and
26237 "after". For now, don't strengthen param "trial", which requires
26238 adding checked casts when returning it.
26239
26240 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26241
26242 * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
26243 "label" from rtx to rtx_code_label *. Strengthen param 1 of
26244 "var_location" hook from rtx to rtx_insn *.
26245 (debug_nothing_rtx): Delete in favor of...
26246 (debug_nothing_rtx_code_label): New prototype.
26247 (debug_nothing_rtx_rtx): Delete unused prototype.
26248 (debug_nothing_rtx_insn): New prototype.
26249
26250 * final.c (final_scan_insn): Add checked cast to rtx_insn * when
26251 invoking debug_hooks->var_location (in two places, one in a NOTE
26252 case of a switch statement, the other guarded by a CALL_P
26253 conditional. Add checked cast to rtx_code_label * when invoking
26254 debug_hooks->label (within CODE_LABEL case of switch statement).
26255
26256 * dbxout.c (dbx_debug_hooks): Update "label" hook from
26257 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
26258 "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
26259 (xcoff_debug_hooks): Likewise.
26260 * debug.c (do_nothing_debug_hooks): Likewise.
26261 (debug_nothing_rtx): Delete in favor of...
26262 (debug_nothing_rtx_insn): New function.
26263 (debug_nothing_rtx_rtx): Delete unused function.
26264 (debug_nothing_rtx_code_label): New function.
26265 * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
26266 debug_nothing_rtx to debug_nothing_rtx_code_label.
26267 (dwarf2out_var_location): Strengthen param "loc_note" from rtx
26268 to rtx_insn *.
26269 * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
26270 debug_nothing_rtx to debug_nothing_rtx_insn.
26271 (sdbout_label): Strengthen param "insn" from rtx to
26272 rtx_code_label *.
26273 * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
26274 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
26275 "var_location" hook from debug_nothing_rtx to
26276 debug_nothing_rtx_insn.
26277
26278 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26279
26280 * recog.h (insn_output_fn): Update this function typedef to match
26281 the changes below to the generated output functions, strengthening
26282 the 2nd param from rtx to rtx_insn *.
26283
26284 * final.c (get_insn_template): Add a checked cast to rtx_insn * on
26285 insn when invoking an output function, to match the new signature
26286 of insn_output_fn with a stronger second param.
26287
26288 * genconditions.c (write_header): In the generated code for
26289 gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
26290 to match the other changes in this patch.
26291
26292 * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
26293 the generated "gen_" functions from rtx to rtx_insn * within their
26294 implementations.
26295
26296 * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
26297 the subfunctions within the generated "recog_", "split", "peephole2"
26298 function trees from rtx to rtx_insn *. For now, the top-level
26299 generated functions ("recog", "split", "peephole2") continue to
26300 take a plain rtx for "insn", to avoid introducing dependencies on
26301 other patches. Rename this 2nd param from "insn" to
26302 "uncast_insn", and reintroduce "insn" as a local variable of type
26303 rtx_insn *, initialized at the top of the generated function with
26304 a checked cast on "uncast_insn".
26305 (make_insn_sequence): Strengthen the 1st param "curr_insn" of
26306 the generated "gen_" functions from rtx to rtx_insn * within their
26307 prototypes.
26308
26309 * genoutput.c (process_template): Strengthen the 2nd param within
26310 the generated "output_" functions "insn" from rtx to rtx_insn *.
26311
26312 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
26313
26314 * tree-profile.c (tree_profiling): Skip external functions
26315 when doing coverage instrumentation.
26316 * cgraphunit.c (compile): Do not assert that all nodes are reachable.
26317
26318 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26319
26320 * config/rs6000/altivec.h (vec_cpsgn): New #define.
26321 (vec_mergee): Likewise.
26322 (vec_mergeo): Likewise.
26323 (vec_cntlz): Likewise.
26324 * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
26325 entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
26326 VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
26327 VMRGEW, and VMRGOW.
26328 * doc/extend.texi: Document various forms of vec_cpsgn,
26329 vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
26330 vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
26331 vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
26332 vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
26333 vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
26334
26335 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26336
26337 * config/rs6000/rs6000.c (context.h): New include.
26338 (tree-pass.h): Likewise.
26339 (make_pass_analyze_swaps): New decl.
26340 (rs6000_option_override): Register pass_analyze_swaps.
26341 (swap_web_entry): New subsclass of web_entry_base (df.h).
26342 (special_handling_values): New enum.
26343 (union_defs): New function.
26344 (union_uses): Likewise.
26345 (insn_is_load_p): Likewise.
26346 (insn_is_store_p): Likewise.
26347 (insn_is_swap_p): Likewise.
26348 (rtx_is_swappable_p): Likewise.
26349 (insn_is_swappable_p): Likewise.
26350 (chain_purpose): New enum.
26351 (chain_contains_only_swaps): New function.
26352 (mark_swaps_for_removal): Likewise.
26353 (swap_const_vector_halves): Likewise.
26354 (adjust_subreg_index): Likewise.
26355 (permute_load): Likewise.
26356 (permute_store): Likewise.
26357 (handle_special_swappables): Likewise.
26358 (replace_swap_with_copy): Likewise.
26359 (dump_swap_insn_table): Likewise.
26360 (rs6000_analyze_swaps): Likewise.
26361 (pass_data_analyze_swaps): New pass_data.
26362 (pass_analyze_swaps): New rtl_opt_pass.
26363 (make_pass_analyze_swaps): New function.
26364 * config/rs6000/rs6000.opt (moptimize-swaps): New option.
26365
26366 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26367
26368 * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
26369 type from rtx to rtx_insn *.
26370 (create_copy_of_insn_rtx): Likewise.
26371 * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
26372 (create_copy_of_insn_rtx): Likewise, also for local "res".
26373
26374 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26375
26376 * rtl.h (find_first_parameter_load): Strengthen return type from
26377 rtx to rtx_insn *.
26378 * rtlanal.c (find_first_parameter_load): Strengthen return type
26379 from rtx to rtx_insn *. Add checked cast for now, to postpone
26380 strengthening the params.
26381
26382 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
26383
26384 PR fortran/44054
26385 * diagnostic.c: Set default caret.
26386 (diagnostic_show_locus): Use it. Tell pretty-printer that a new
26387 line is needed.
26388 * diagnostic.h (struct diagnostic_context):
26389
26390 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26391
26392 * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
26393 (sel_bb_head): Strengthen return type insn_t (currently just an
26394 rtx) to rtx_insn *.
26395 (sel_bb_end): Likewise.
26396
26397 * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
26398 (sel_bb_head): Strengthen return type and local "head" from
26399 insn_t (currently just an rtx) to rtx_insn *.
26400 (sel_bb_end): Likewise for return type.
26401 (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
26402 working with insn.
26403
26404 2014-08-21 David Malcolm <dmalcolm@redhat.com>
26405
26406 * basic-block.h (get_last_bb_insn): Strengthen return type from
26407 rtx to rtx_insn *.
26408 * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
26409 end".
26410
26411 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
26412
26413 PR fortran/44054
26414 * diagnostic.c (default_diagnostic_finalizer): Move caret printing
26415 to here ...
26416 (diagnostic_report_diagnostic): ... from here.
26417 * toplev.c (general_init): Move code to c-family.
26418
26419 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26420
26421 * df.h (web_entry_base): Replace existing struct web_entry with a
26422 new class web_entry_base with only the predecessor member.
26423 (unionfind_root): Remove declaration and move to class member.
26424 (unionfind_union): Remove declaration and move to friend
26425 function.
26426 (union_defs): Remove declaration.
26427 * web.c (web_entry_base::unionfind_root): Modify to be member
26428 function and adjust accessors.
26429 (unionfind_union): Modify to be friend function and adjust
26430 accessors.
26431 (web_entry): New subclass of web_entry_base containing the reg
26432 member.
26433 (union_match_dups): Modify for struct -> class changes.
26434 (union_defs): Likewise.
26435 (entry_register): Likewise.
26436 (pass_web::execute): Likewise.
26437
26438 2014-08-20 Bill Schmidt <wschmidt@vnet.ibm.com>
26439
26440 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
26441 builtin define __VEC_ELEMENT_REG_ORDER__.
26442
26443 2014-08-20 Martin Jambor <mjambor@suse.cz>
26444 Wei Mi <wmi@google.com>
26445
26446 PR ipa/60449
26447 PR middle-end/61776
26448 * tree-ssa-operands.c (update_stmt_operands): Remove
26449 MODIFIED_NORETURN_CALLS.
26450 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
26451 (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
26452 (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
26453 (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
26454 * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
26455 * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
26456 (gimple_call_set_ctrl_altering): New func.
26457 (gimple_call_ctrl_altering_p): Ditto.
26458 * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
26459 (make_blocks): Use gimple_call_initialize_ctrl_altering.
26460 (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
26461 (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
26462 remove MODIFIED_NORETURN_CALLS.
26463
26464 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
26465
26466 * coverage.c (coverage_compute_profile_id): Return non-0;
26467 also handle symbols with unique name.
26468 (coverage_end_function): Do not skip DECL_EXTERNAL functions.
26469
26470 2014-08-20 Steve Ellcey <sellcey@mips.com>
26471
26472 PR middle-end/49191
26473 * doc/sourcebuild.texi (non_strict_align): New.
26474
26475 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
26476
26477 * cgraphunit.c (ipa_passes, compile): Reshedule
26478 symtab_remove_unreachable_nodes passes; update comments.
26479 * ipa-inline.c (pass_data_ipa_inline): Do not schedule
26480 TODO_remove_functions before the pass; the functions ought to be
26481 already removed.
26482 * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
26483 TODO_remove_functions.
26484 * passes.c (pass_data_early_local_passes): Do not schedule function
26485 removal.
26486 (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
26487
26488 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
26489
26490 PR c/59304
26491 * opts-common.c (set_option): Call diagnostic_classify_diagnostic
26492 before setting the option.
26493 * diagnostic.c (diagnostic_classify_diagnostic): Record
26494 command-line status.
26495
26496 2014-08-20 Richard Biener <rguenther@suse.de>
26497
26498 PR lto/62190
26499 * tree.c (build_common_tree_nodes): Use make_or_reuse_type
26500 to build uint{16,32,64}_type_node.
26501
26502 2014-08-20 Terry Guo <terry.guo@arm.com>
26503
26504 * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
26505 with immediate_operand.
26506
26507 2014-08-20 David Malcolm <dmalcolm@redhat.com>
26508
26509 * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
26510 "insn" from an as_a to a safe_as_a, for the case when "insn" is
26511 NULL.
26512
26513 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
26514
26515 PR preprocessor/51303
26516 * incpath.c (remove_duplicates): Use cpp_warning.
26517
26518 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
26519
26520 PR c/60975
26521 PR c/53063
26522 * doc/options.texi (CPP): Document it.
26523 * doc/invoke.texi (Wvariadic-macros): Fix documentation.
26524 * optc-gen.awk: Handle CPP.
26525 * opth-gen.awk: Likewise.
26526
26527 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26528
26529 * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
26530 rtx_insn *.
26531 (duplicate_insn_chain): Likewise.
26532 * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
26533 rtx_insn *, also for locals "prevfirst" and "nextlast". Add a
26534 checked cast for now (until we can strengthen the params in the
26535 same way).
26536 (duplicate_insn_chain): Likewise.
26537
26538 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26539
26540 * rtl.h (next_cc0_user): Strengthen return type from rtx to
26541 rtx_insn *.
26542 (prev_cc0_setter): Likewise.
26543
26544 * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
26545 rtx_insn *, adding checked casts for now as necessary.
26546 (prev_cc0_setter): Likewise.
26547
26548 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26549
26550 * expr.h (emit_move_insn): Strengthen return type from rtx to
26551 rtx_insn *.
26552 (emit_move_insn_1): Likewise.
26553 (emit_move_complex_push): Likewise.
26554 (emit_move_complex_parts): Likewise.
26555
26556 * expr.c (emit_move_via_integer): Strengthen return type from rtx
26557 to rtx_insn *. Replace use of NULL_RTX with NULL when working
26558 with insns.
26559 (emit_move_complex_push): Strengthen return type from rtx to
26560 rtx_insn *.
26561 (emit_move_complex): Likewise, also for local "ret".
26562 (emit_move_ccmode): Likewise.
26563 (emit_move_multi_word): Likewise for return type and locals
26564 "last_insn", "seq".
26565 (emit_move_insn_1): Likewise for return type and locals "result",
26566 "ret".
26567 (emit_move_insn): Likewise for return type and local "last_insn".
26568 (compress_float_constant): Likewise.
26569
26570 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26571
26572 * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
26573 from rtx to rtx_insn *.
26574
26575 * rtl.h (emit_insn_before): Likewise.
26576 (emit_insn_before_noloc): Likewise.
26577 (emit_insn_before_setloc): Likewise.
26578 (emit_jump_insn_before): Likewise.
26579 (emit_jump_insn_before_noloc): Likewise.
26580 (emit_jump_insn_before_setloc): Likewise.
26581 (emit_call_insn_before): Likewise.
26582 (emit_call_insn_before_noloc): Likewise.
26583 (emit_call_insn_before_setloc): Likewise.
26584 (emit_debug_insn_before): Likewise.
26585 (emit_debug_insn_before_noloc): Likewise.
26586 (emit_debug_insn_before_setloc): Likewise.
26587 (emit_label_before): Likewise.
26588 (emit_insn_after): Likewise.
26589 (emit_insn_after_noloc): Likewise.
26590 (emit_insn_after_setloc): Likewise.
26591 (emit_jump_insn_after): Likewise.
26592 (emit_jump_insn_after_noloc): Likewise.
26593 (emit_jump_insn_after_setloc): Likewise.
26594 (emit_call_insn_after): Likewise.
26595 (emit_call_insn_after_noloc): Likewise.
26596 (emit_call_insn_after_setloc): Likewise.
26597 (emit_debug_insn_after): Likewise.
26598 (emit_debug_insn_after_noloc): Likewise.
26599 (emit_debug_insn_after_setloc): Likewise.
26600 (emit_label_after): Likewise.
26601 (emit_insn): Likewise.
26602 (emit_debug_insn): Likewise.
26603 (emit_jump_insn): Likewise.
26604 (emit_call_insn): Likewise.
26605 (emit_label): Likewise.
26606 (gen_clobber): Likewise.
26607 (emit_clobber): Likewise.
26608 (gen_use): Likewise.
26609 (emit_use): Likewise.
26610 (emit): Likewise.
26611
26612 (emit_barrier_before): Strengthen return type from rtx to
26613 rtx_barrier *.
26614 (emit_barrier_after): Likewise.
26615 (emit_barrier): Likewise.
26616
26617 * emit-rtl.c (emit_pattern_before_noloc): Strengthen return type
26618 from rtx to rtx_insn *. Add checked casts for now when converting
26619 "last" from rtx to rtx_insn *.
26620 (emit_insn_before_noloc): Likewise for return type.
26621 (emit_jump_insn_before_noloc): Likewise.
26622 (emit_call_insn_before_noloc): Likewise.
26623 (emit_debug_insn_before_noloc): Likewise.
26624 (emit_barrier_before): Strengthen return type and local "insn"
26625 from rtx to rtx_barrier *.
26626 (emit_label_before): Strengthen return type from rtx to
26627 rtx_insn *. Add checked cast for now when returning param
26628 (emit_pattern_after_noloc): Strengthen return type from rtx to
26629 rtx_insn *. Add checked casts for now when converting "last" from
26630 rtx to rtx_insn *.
26631 (emit_insn_after_noloc): Strengthen return type from rtx to
26632 rtx_insn *.
26633 (emit_jump_insn_after_noloc): Likewise.
26634 (emit_call_insn_after_noloc): Likewise.
26635 (emit_debug_insn_after_noloc): Likewise.
26636 (emit_barrier_after): Strengthen return type from rtx to
26637 rtx_barrier *.
26638 (emit_label_after): Strengthen return type from rtx to rtx_insn *.
26639 Add checked cast for now when converting "label" from rtx to
26640 rtx_insn *.
26641 (emit_pattern_after_setloc): Strengthen return type from rtx to
26642 rtx_insn *. Add checked casts for now when converting "last" from
26643 rtx to rtx_insn *.
26644 (emit_pattern_after): Strengthen return type from rtx to
26645 rtx_insn *.
26646 (emit_insn_after_setloc): Likewise.
26647 (emit_insn_after): Likewise.
26648 (emit_jump_insn_after_setloc): Likewise.
26649 (emit_jump_insn_after): Likewise.
26650 (emit_call_insn_after_setloc): Likewise.
26651 (emit_call_insn_after): Likewise.
26652 (emit_debug_insn_after_setloc): Likewise.
26653 (emit_debug_insn_after): Likewise.
26654 (emit_pattern_before_setloc): Likewise. Add checked casts for now
26655 when converting "last" from rtx to rtx_insn *.
26656 (emit_pattern_before): Strengthen return type from rtx to
26657 rtx_insn *.
26658 (emit_insn_before_setloc): Likewise.
26659 (emit_insn_before): Likewise.
26660 (emit_jump_insn_before_setloc): Likewise.
26661 (emit_jump_insn_before): Likewise.
26662 (emit_call_insn_before_setloc): Likewise.
26663 (emit_call_insn_before): Likewise.
26664 (emit_debug_insn_before_setloc): Likewise.
26665 (emit_debug_insn_before): Likewise.
26666 (emit_insn): Strengthen return type and locals "last", "insn",
26667 "next" from rtx to rtx_insn *. Add checked cast to rtx_insn
26668 within cases where we know we have an insn.
26669 (emit_debug_insn): Likewise.
26670 (emit_jump_insn): Likewise.
26671 (emit_call_insn): Strengthen return type and local "insn" from rtx
26672 to rtx_insn *.
26673 (emit_label): Strengthen return type from rtx to rtx_insn *. Add
26674 a checked cast to rtx_insn * for now on "label".
26675 (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
26676 (emit_clobber): Strengthen return type from rtx to rtx_insn *.
26677 (emit_use): Likewise.
26678 (gen_use): Likewise, also for local "seq".
26679 (emit): Likewise for return type and local "insn".
26680 (rtx_insn): Likewise for return type and local "new_rtx".
26681
26682 * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
26683 from rtx to rtx_barrier *.
26684
26685 * config/sh/sh.c (output_stack_adjust): Since emit_insn has
26686 changed return type from rtx to rtx_insn *, we must update
26687 "emit_fn" type, and this in turn means updating...
26688 (frame_insn): ...this. Strengthen return type from rtx to
26689 rtx_insn *. Introduce a new local "insn" of the appropriate type.
26690
26691 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26692
26693 * emit-rtl.c (emit_jump_table_data): Strengthen return type from
26694 rtx to rtx_jump_table_data *. Also for local.
26695 * rtl.h (emit_jump_table_data): Likewise.
26696
26697 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26698
26699 * basic-block.h (create_basic_block_structure): Strengthen third
26700 param "bb_note" from rtx to rtx_note *.
26701 * rtl.h (emit_note_before): Strengthen return type from rtx to
26702 rtx_note *.
26703 (emit_note_after): Likewise.
26704 (emit_note): Likewise.
26705 (emit_note_copy): Likewise. Also, strengthen param similarly.
26706 * function.h (struct rtl_data): Strengthen field
26707 "x_stack_check_probe_note" from rtx to rtx_note *.
26708
26709 * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
26710 from rtx to rtx_note *.
26711 * cfgrtl.c (create_basic_block_structure): Strengthen third param
26712 "bb_note" from rtx to rtx_note *.
26713 (duplicate_insn_chain): Likewise for local "last". Add a checked cast
26714 when calling emit_note_copy.
26715 * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
26716 rtx_note *.
26717 (emit_note_after): Likewise.
26718 (emit_note_before): Likewise.
26719 (emit_note_copy): Likewise. Also, strengthen param similarly.
26720 (emit_note): Likewise.
26721 * except.c (emit_note_eh_region_end): Likewise for return type.
26722 Strengthen local "next" from rtx to rtx_insn *.
26723 (convert_to_eh_region_ranges): Strengthen local "note"
26724 from rtx to rtx_note *.
26725 * final.c (change_scope): Likewise.
26726 (reemit_insn_block_notes): Likewise, for both locals named "note".
26727 Also, strengthen local "insn" from rtx to rtx_insn *.
26728 * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
26729 rtx to rtx_note *.
26730 * reg-stack.c (compensate_edge): Likewise for local "after". Also,
26731 strengthen local "seq" from rtx to rtx_insn *.
26732 * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
26733 to rtx_note *.
26734 * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
26735 vec<rtx_note *>.
26736 (get_bb_note_from_pool): Strengthen return type from rtx to
26737 rtx_note *.
26738 (sel_create_basic_block): Strengthen local "new_bb_note" from
26739 insn_t to rtx_note *.
26740 * var-tracking.c (emit_note_insn_var_location): Strengthen local
26741 "note" from rtx to rtx_note *.
26742 (emit_notes_in_bb): Likewise.
26743
26744 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26745
26746 * function.h (struct rtl_data): Strengthen field
26747 "x_parm_birth_insn" from rtx to rtx_insn *.
26748 * function.c (struct assign_parm_data_all): Strengthen fields
26749 "first_conversion_insn" and "last_conversion_insn" from rtx to
26750 rtx_insn *.
26751
26752 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26753
26754 * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
26755 to rtx_insn *; also for local "var_end_seq".
26756 (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
26757 (maybe_cleanup_end_of_block): Likewise for param "last" and local
26758 "insn".
26759 (expand_gimple_cond): Likewise for locals "last2" and "last".
26760 (mark_transaction_restart_calls): Likewise for local "insn".
26761 (expand_gimple_stmt): Likewise for return type and locals "last"
26762 and "insn".
26763 (expand_gimple_tailcall): Likewise for locals "last2" and "last".
26764 (avoid_complex_debug_insns): Likewise for param "insn".
26765 (expand_debug_locations): Likewise for locals "insn", "last",
26766 "prev_insn" and "insn2".
26767 (expand_gimple_basic_block): Likewise for local "last".
26768 (construct_exit_block): Likewise for locals "head", "end",
26769 "orig_end".
26770 (pass_expand::execute): Likewise for locals "var_seq",
26771 "var_ret_seq", "next".
26772
26773 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26774
26775 * asan.h (asan_emit_stack_protection): Strengthen return type from
26776 rtx to rtx_insn *.
26777 * asan.c (asan_emit_stack_protection): Likewise. Add local
26778 "insns" to hold the return value.
26779
26780 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26781
26782 * basic-block.h (bb_note): Strengthen return type from rtx to
26783 rtx_note *.
26784 * sched-int.h (bb_note): Likewise.
26785 * cfgrtl.c (bb_note): Likewise. Add a checked cast to rtx_note *.
26786
26787 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26788
26789 * rtl.h (make_insn_raw): Strengthen return type from rtx to
26790 rtx_insn *.
26791
26792 * emit-rtl.c (make_insn_raw): Strengthen return type and local
26793 "insn" from rtx to rtx_insn *.
26794 (make_debug_insn_raw): Strengthen return type from rtx to
26795 rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
26796 (make_jump_insn_raw): Strengthen return type from rtx to
26797 rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
26798 (make_call_insn_raw): Strengthen return type from rtx to
26799 rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
26800 (emit_pattern_before_noloc): Strengthen return type of "make_raw"
26801 callback from rtx to rtx_insn *; likewise for local "insn" and
26802 "next", adding a checked cast to rtx_insn in the relevant cases of
26803 the switch statement.
26804 (emit_pattern_after_noloc): Strengthen return type of "make_raw"
26805 callback from rtx to rtx_insn *.
26806 (emit_pattern_after_setloc): Likewise.
26807 (emit_pattern_after): Likewise.
26808 (emit_pattern_before_setloc): Likewise.
26809 (emit_pattern_before): Likewise.
26810
26811 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26812
26813 * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
26814 rtx_call_insn *.
26815 * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
26816 accepting an rtx_insn *.
26817 (last_call_insn): Strengthen return type from rtx to
26818 rtx_call_insn *.
26819
26820 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26821
26822 * rtl.h (delete_trivially_dead_insns): Strengthen initial param
26823 "insns" from rtx to rtx_insn *.
26824 * cse.c (delete_trivially_dead_insns): Likewise, also do it for
26825 locals "insn" and "prev".
26826
26827 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26828
26829 * rtl.h (tablejump_p): Strengthen third param from rtx * to
26830 rtx_jump_table_data **.
26831
26832 * cfgbuild.c (make_edges): Introduce local "table", using it in
26833 place of "tmp" for jump table data.
26834 (find_bb_boundaries): Strengthen local "table" from rtx to
26835 rtx_jump_table_data *.
26836 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
26837 (outgoing_edges_match): Likewise for locals "table1" and "table2".
26838 (try_crossjump_to_edge): Likewise.
26839 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
26840 "table".
26841 (patch_jump_insn): Introduce local "table", using it in place of
26842 "tmp" for jump table data.
26843 (force_nonfallthru_and_redirect): Introduce local "table", so that
26844 call to tablejump_p can receive an rtx_jump_table_data **. Update
26845 logic around the call to overwrite "note" appropriately if
26846 tablejump_p returns non-zero.
26847 (get_last_bb_insn): Introduce local "table", using it in place of
26848 "tmp" for jump table data.
26849 * dwarf2cfi.c (create_trace_edges): Likewise.
26850
26851 * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
26852 from rtx to rtx_jump_table_data *.
26853 (create_fix_barrier): Strengthen local "tmp" from rtx to
26854 rtx_jump_table_data *.
26855 (arm_reorg): Likewise for local "table".
26856
26857 * config/s390/s390.c (s390_chunkify_start): Likewise.
26858
26859 * config/spu/spu.c (spu_emit_branch_hint): Likewise.
26860
26861 * jump.c (delete_related_insns): Strengthen local "lab_next" from
26862 rtx to rtx_jump_table_data *.
26863
26864 * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
26865 rtx_jump_table_data **. Add a checked cast when writing through
26866 the pointer: we know there that local "table" is non-NULL and that
26867 JUMP_TABLE_DATA_P (table) holds.
26868 (label_is_jump_target_p): Introduce local "table", using it in
26869 place of "tmp" for jump table data.
26870
26871 2014-08-19 Marek Polacek <polacek@redhat.com>
26872
26873 PR c++/62153
26874 * doc/invoke.texi: Document -Wbool-compare.
26875
26876 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26877
26878 * rtl.h (entry_of_function): Strengthen return type from rtx to
26879 rtx_insn *.
26880 * cfgrtl.c (entry_of_function): Likewise.
26881
26882 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26883
26884 * emit-rtl.h (get_insns): Strengthen return type from rtx to
26885 rtx_insn *, adding a checked cast for now.
26886 (get_last_insn): Likewise.
26887
26888 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26889
26890 * rtl.h (gen_label_rtx): Strengthen return type from rtx to
26891 rtx_code_label *.
26892
26893 * emit-rtl.c (gen_label_rtx): Likewise.
26894
26895 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26896
26897 * rtl.h (previous_insn): Strengthen return type from rtx to
26898 rtx_insn *.
26899 (next_insn): Likewise.
26900 (prev_nonnote_insn): Likewise.
26901 (prev_nonnote_insn_bb): Likewise.
26902 (next_nonnote_insn): Likewise.
26903 (next_nonnote_insn_bb): Likewise.
26904 (prev_nondebug_insn): Likewise.
26905 (next_nondebug_insn): Likewise.
26906 (prev_nonnote_nondebug_insn): Likewise.
26907 (next_nonnote_nondebug_insn): Likewise.
26908 (prev_real_insn): Likewise.
26909 (next_real_insn): Likewise.
26910 (prev_active_insn): Likewise.
26911 (next_active_insn): Likewise.
26912
26913 * emit-rtl.c (next_insn): Strengthen return type from rtx to
26914 rtx_insn *, adding a checked cast.
26915 (previous_insn): Likewise.
26916 (next_nonnote_insn): Likewise.
26917 (next_nonnote_insn_bb): Likewise.
26918 (prev_nonnote_insn): Likewise.
26919 (prev_nonnote_insn_bb): Likewise.
26920 (next_nondebug_insn): Likewise.
26921 (prev_nondebug_insn): Likewise.
26922 (next_nonnote_nondebug_insn): Likewise.
26923 (prev_nonnote_nondebug_insn): Likewise.
26924 (next_real_insn): Likewise.
26925 (prev_real_insn): Likewise.
26926 (next_active_insn): Likewise.
26927 (prev_active_insn): Likewise.
26928
26929 * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
26930 param "stepfunc" so that it returns an rtx_insn * rather than an
26931 rtx, to track the change to prev_nonnote_insn_bb, which is the
26932 only function this is called with.
26933 * config/sh/sh.c (sh_find_set_of_reg): Likewise.
26934
26935 2014-08-19 Jan Hubicka <hubicka@ucw.cz>
26936
26937 * ipa-visibility.c (update_visibility_by_resolution_info): Fix
26938 assert.
26939
26940 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26941
26942 * coretypes.h (class rtx_debug_insn): Add forward declaration.
26943 (class rtx_nonjump_insn): Likewise.
26944 (class rtx_jump_insn): Likewise.
26945 (class rtx_call_insn): Likewise.
26946 (class rtx_jump_table_data): Likewise.
26947 (class rtx_barrier): Likewise.
26948 (class rtx_code_label): Likewise.
26949 (class rtx_note): Likewise.
26950
26951 * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
26952 adding the invariant DEBUG_INSN_P (X).
26953 (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
26954 the invariant NONJUMP_INSN_P (X).
26955 (class rtx_jump_insn): New, a subclass of rtx_insn, adding
26956 the invariant JUMP_P (X).
26957 (class rtx_call_insn): New, a subclass of rtx_insn, adding
26958 the invariant CALL_P (X).
26959 (class rtx_jump_table): New, a subclass of rtx_insn, adding the
26960 invariant JUMP_TABLE_DATA_P (X).
26961 (class rtx_barrier): New, a subclass of rtx_insn, adding the
26962 invariant BARRIER_P (X).
26963 (class rtx_code_label): New, a subclass of rtx_insn, adding
26964 the invariant LABEL_P (X).
26965 (class rtx_note): New, a subclass of rtx_insn, adding
26966 the invariant NOTE_P(X).
26967 (is_a_helper <rtx_debug_insn *>::test): New.
26968 (is_a_helper <rtx_nonjump_insn *>::test): New.
26969 (is_a_helper <rtx_jump_insn *>::test): New.
26970 (is_a_helper <rtx_call_insn *>::test): New.
26971 (is_a_helper <rtx_jump_table_data *>::test): New functions,
26972 overloaded for both rtx and rtx_insn *.
26973 (is_a_helper <rtx_barrier *>::test): New.
26974 (is_a_helper <rtx_code_label *>::test): New functions, overloaded
26975 for both rtx and rtx_insn *.
26976 (is_a_helper <rtx_note *>::test): New.
26977
26978 2014-08-19 Marek Polacek <polacek@redhat.com>
26979
26980 * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
26981 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
26982 * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
26983 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
26984
26985 2014-08-19 David Malcolm <dmalcolm@redhat.com>
26986
26987 * sel-sched-ir.h (BND_TO): insn_t will eventually be an
26988 rtx_insn *. To help with transition, for now, convert from an
26989 access macro into a pair of functions: BND_TO, returning an
26990 rtx_insn *, and...
26991 (SET_BND_TO): New function, for use where BND_TO is used as an
26992 lvalue.
26993
26994 * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
26995 SET_BND_TO.
26996 (BND_TO): New function, adding a checked cast.
26997 (SET_BND_TO): New function.
26998
26999 * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
27000 SET_BND_TO.
27001 (compute_av_set_on_boundaries): Likewise.
27002
27003 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
27004
27005 * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
27006 destination if it is used in source.
27007 (*clz<mode>2_lzcnt_falsedep_1): Likewise.
27008 (*popcount<mode>2_falsedep_1): Likewise.
27009
27010 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
27011
27012 PR other/62168
27013 * configure.ac: Set install_gold_as_default to no first.
27014 * configure: Regenerated.
27015
27016 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27017
27018 * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
27019 "note_list" field will eventually be an rtx_insn *. To help with
27020 transition, for now, convert from an access macro into a pair of
27021 functions: BB_NOTE_LIST, returning an rtx_insn *, and...
27022 (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
27023 used as an lvalue.
27024
27025 * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
27026 of BB_NOTE_LIST to SET_BB_NOTE_LIST.
27027
27028 * sel-sched-ir.c (init_bb): Likewise.
27029 (sel_restore_notes): Likewise.
27030 (move_bb_info): Likewise.
27031 (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
27032 (SET_BB_NOTE_LIST): New function.
27033
27034 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27035
27036 * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
27037 field will eventually be an rtx_insn *. To help with transition,
27038 for now, convert from an access macro into a pair of functions:
27039 VINSN_INSN_RTX, returning an rtx_insn *, and...
27040 (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
27041 is used as an lvalue.
27042
27043 * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
27044 SET_VINSN_INSN_RTX where it's used as an lvalue.
27045 (VINSN_INSN_RTX): New function.
27046 (SET_VINSN_INSN_RTX): New function.
27047
27048 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27049
27050 * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
27051 eventually be rtx_insn *, but to help with transition, for now,
27052 convert from an access macro into a pair of functions: DEP_PRO
27053 returning an rtx_insn * and...
27054 (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
27055 lvalue, returning an rtx&.
27056 (DEP_CON): Analogous changes to DEP_PRO above.
27057 (SET_DEP_CON): Likewise.
27058
27059 * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
27060 an lvalue to SET_DEP_CON.
27061 * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
27062 (sd_copy_back_deps): Likewise for DEP_CON.
27063 (DEP_PRO): New function, adding a checked cast for now.
27064 (DEP_CON): Likewise.
27065 (SET_DEP_PRO): New function.
27066 (SET_DEP_CON): Likewise.
27067
27068 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
27069
27070 * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
27071 (extra_options): Add i386/cygwin.opt.
27072 * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
27073 (CPP_SPEC): Accept -pthread.
27074 (LINK_SPEC): Ditto.
27075 (GOMP_SELF_SPECS): Update comment.
27076 * config/i386/cygwin.opt: New file for -pthread flag.
27077
27078 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27079
27080 * df-core.c (DF_REF_INSN): New, using a checked cast for now.
27081 * df.h (DF_REF_INSN): Convert from a macro to a function, so
27082 that we can return an rtx_insn *.
27083
27084 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
27085
27086 * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
27087 when building executables, not DLLs. Add --large-address-aware
27088 under the same conditions.
27089 * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
27090 when building executables, not DLLs. Add --large-address-aware
27091 under the same conditions when using -m32.
27092
27093 * config/i386/cygwin-stdint.h: Throughout, make type
27094 definitions dependent on target architecture, not host.
27095
27096 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27097
27098 * rtl.h (PREV_INSN): Convert to an inline function. Strengthen
27099 the return type from rtx to rtx_insn *, which will enable various
27100 conversions in followup patches. For now this is is done by a
27101 checked cast.
27102 (NEXT_INSN): Likewise.
27103 (SET_PREV_INSN): Convert to an inline function. This is intended
27104 for use as an lvalue, and so returns an rtx& to allow in-place
27105 modification.
27106 (SET_NEXT_INSN): Likewise.
27107
27108 2014-07-08 Mark Wielaard <mjw@redhat.com>
27109
27110 PR debug/59051
27111 * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
27112
27113 2014-08-19 Marek Polacek <polacek@redhat.com>
27114
27115 PR c/61271
27116 * cgraphunit.c (handle_alias_pairs): Fix condition.
27117
27118 2014-08-19 Richard Biener <rguenther@suse.de>
27119
27120 * gimple-fold.c (fold_gimple_assign): Properly build a
27121 null-pointer constant when devirtualizing addresses.
27122
27123 2014-07-07 Mark Wielaard <mjw@redhat.com>
27124
27125 * dwarf2out.c (decl_quals): New function.
27126 (modified_type_die): Take one cv_quals argument instead of two,
27127 one for const and one for volatile.
27128 (add_type_attribute): Likewise.
27129 (generic_parameter_die): Call add_type_attribute with one modifier
27130 argument.
27131 (base_type_for_mode): Likewise.
27132 (add_bounds_info): Likewise.
27133 (add_subscript_info): Likewise.
27134 (gen_array_type_die): Likewise.
27135 (gen_descr_array_type_die): Likewise.
27136 (gen_entry_point_die): Likewise.
27137 (gen_enumeration_type_die): Likewise.
27138 (gen_formal_parameter_die): Likewise.
27139 (gen_subprogram_die): Likewise.
27140 (gen_variable_die): Likewise.
27141 (gen_const_die): Likewise.
27142 (gen_field_die): Likewise.
27143 (gen_pointer_type_die): Likewise.
27144 (gen_reference_type_die): Likewise.
27145 (gen_ptr_to_mbr_type_die): Likewise.
27146 (gen_inheritance_die): Likewise.
27147 (gen_subroutine_type_die): Likewise.
27148 (gen_typedef_die): Likewise.
27149 (force_type_die): Likewise.
27150
27151 2014-08-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27152
27153 * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
27154 if unset.
27155 * configure: Regenerate.
27156
27157 2014-08-19 Richard Biener <rguenther@suse.de>
27158
27159 * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
27160 DECL_EXTERNALs in BLOCKs as non-references.
27161 * tree-streamer-out.c (streamer_write_chain): Likewise.
27162
27163 2014-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
27164 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27165 Anna Tikhonova <anna.tikhonova@intel.com>
27166 Ilya Tocar <ilya.tocar@intel.com>
27167 Andrey Turetskiy <andrey.turetskiy@intel.com>
27168 Ilya Verbin <ilya.verbin@intel.com>
27169 Kirill Yukhin <kirill.yukhin@intel.com>
27170 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27171
27172 * config/i386/sse.md
27173 (define_mode_iterator VI48_AVX512F): Delete.
27174 (define_mode_iterator VI48_AVX512F_AVX512VL): New.
27175 (define_mode_iterator VI2_AVX512VL): Ditto.
27176 (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
27177 Delete.
27178 (define_insn
27179 ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
27180 New.
27181 (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
27182 (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
27183 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
27184 with VI48_AVX512F_AVX512VL): New.
27185 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
27186 with VI2_AVX512VL): Ditto.
27187
27188 2014-08-19 Marek Polacek <polacek@redhat.com>
27189
27190 * doc/invoke.texi: Document -Wc99-c11-compat.
27191
27192 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27193
27194 * rtl.h (PREV_INSN): Split macro in two: the existing one,
27195 for rvalues, and...
27196 (SET_PREV_INSN): New macro, for use as an lvalue.
27197 (NEXT_INSN, SET_NEXT_INSN): Likewise.
27198
27199 * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
27200 PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
27201 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
27202 (fixup_abnormal_edges): Likewise.
27203 (unlink_insn_chain): Likewise.
27204 (fixup_reorder_chain): Likewise.
27205 (cfg_layout_delete_block): Likewise.
27206 (cfg_layout_merge_blocks): Likewise.
27207 * combine.c (update_cfg_for_uncondjump): Likewise.
27208 * emit-rtl.c (link_insn_into_chain): Likewise.
27209 (remove_insn): Likewise.
27210 (delete_insns_since): Likewise.
27211 (reorder_insns_nobb): Likewise.
27212 (emit_insn_after_1): Likewise.
27213 * final.c (rest_of_clean_state): Likewise.
27214 (final_scan_insn): Likewise.
27215 * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
27216 * haifa-sched.c (concat_note_lists): Likewise.
27217 (remove_notes): Likewise.
27218 (restore_other_notes): Likewise.
27219 (move_insn): Likewise.
27220 (unlink_bb_notes): Likewise.
27221 (restore_bb_notes): Likewise.
27222 * jump.c (delete_for_peephole): Likewise.
27223 * optabs.c (emit_libcall_block_1): Likewise.
27224 * reorg.c (emit_delay_sequence): Likewise.
27225 (fill_simple_delay_slots): Likewise.
27226 * sel-sched-ir.c (sel_move_insn): Likewise.
27227 (sel_remove_insn): Likewise.
27228 (get_bb_note_from_pool): Likewise.
27229 * sel-sched.c (move_nop_to_previous_block): Likewise.
27230
27231 * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
27232 * config/c6x/c6x.c (gen_one_bundle): Likewise.
27233 (c6x_gen_bundles): Likewise.
27234 (hwloop_optimize): Likewise.
27235 * config/frv/frv.c (frv_function_prologue): Likewise.
27236 (frv_register_nop): Likewise.
27237 * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
27238 (ia64_reorg): Likewise.
27239 * config/mep/mep.c (mep_reorg_addcombine): Likewise.
27240 (mep_make_bundle): Likewise.
27241 (mep_bundle_insns): Likewise.
27242 * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
27243 * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
27244 * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
27245
27246 2014-08-19 David Malcolm <dmalcolm@redhat.com>
27247
27248 * basic-block.h (BB_HEAD): Convert to a function. Strengthen the
27249 return type from rtx to rtx_insn *.
27250 (BB_END): Likewise.
27251 (BB_HEADER): Likewise.
27252 (BB_FOOTER): Likewise.
27253 (SET_BB_HEAD): Convert to a function.
27254 (SET_BB_END): Likewise.
27255 (SET_BB_HEADER): Likewise.
27256 (SET_BB_FOOTER): Likewise.
27257
27258 * cfgrtl.c (BB_HEAD): New function, from macro of same name.
27259 Strengthen the return type from rtx to rtx_insn *. For now, this
27260 is done by adding a checked cast, but this will eventually
27261 become a field lookup.
27262 (BB_END): Likewise.
27263 (BB_HEADER): Likewise.
27264 (BB_FOOTER): Likewise.
27265 (SET_BB_HEAD): New function, from macro of same name. This is
27266 intended for use as an lvalue, and so returns an rtx& to allow
27267 in-place modification.
27268 (SET_BB_END): Likewise.
27269 (SET_BB_HEADER): Likewise.
27270 (SET_BB_FOOTER): Likewise.
27271
27272 2014-08-18 David Malcolm <dmalcolm@redhat.com>
27273
27274 * basic-block.h (BB_HEAD): Split macro in two: the existing one,
27275 for rvalues, and...
27276 (SET_BB_HEAD): New macro, for use as a lvalue.
27277 (BB_END, SET_BB_END): Likewise.
27278 (BB_HEADER, SET_BB_HEADER): Likewise.
27279 (BB_FOOTER, SET_BB_FOOTER): Likewise.
27280
27281 * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
27282 of BB_* macros into SET_BB_* macros.
27283 (fix_crossing_unconditional_branches): Likewise.
27284 * caller-save.c (save_call_clobbered_regs): Likewise.
27285 (insert_one_insn): Likewise.
27286 * cfgbuild.c (find_bb_boundaries): Likewise.
27287 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
27288 (outgoing_edges_match): Likewise.
27289 (try_optimize_cfg): Likewise.
27290 * cfgexpand.c (expand_gimple_cond): Likewise.
27291 (expand_gimple_tailcall): Likewise.
27292 (expand_gimple_basic_block): Likewise.
27293 (construct_exit_block): Likewise.
27294 * cfgrtl.c (delete_insn): Likewise.
27295 (create_basic_block_structure): Likewise.
27296 (rtl_delete_block): Likewise.
27297 (rtl_split_block): Likewise.
27298 (emit_nop_for_unique_locus_between): Likewise.
27299 (rtl_merge_blocks): Likewise.
27300 (block_label): Likewise.
27301 (try_redirect_by_replacing_jump): Likewise.
27302 (emit_barrier_after_bb): Likewise.
27303 (fixup_abnormal_edges): Likewise.
27304 (record_effective_endpoints): Likewise.
27305 (relink_block_chain): Likewise.
27306 (fixup_reorder_chain): Likewise.
27307 (fixup_fallthru_exit_predecessor): Likewise.
27308 (cfg_layout_duplicate_bb): Likewise.
27309 (cfg_layout_split_block): Likewise.
27310 (cfg_layout_delete_block): Likewise.
27311 (cfg_layout_merge_blocks): Likewise.
27312 * combine.c (update_cfg_for_uncondjump): Likewise.
27313 * emit-rtl.c (add_insn_after): Likewise.
27314 (remove_insn): Likewise.
27315 (reorder_insns): Likewise.
27316 (emit_insn_after_1): Likewise.
27317 * haifa-sched.c (get_ebb_head_tail): Likewise.
27318 (restore_other_notes): Likewise.
27319 (move_insn): Likewise.
27320 (sched_extend_bb): Likewise.
27321 (fix_jump_move): Likewise.
27322 * ifcvt.c (noce_process_if_block): Likewise.
27323 (dead_or_predicable): Likewise.
27324 * ira.c (update_equiv_regs): Likewise.
27325 * reg-stack.c (change_stack): Likewise.
27326 * sel-sched-ir.c (sel_move_insn): Likewise.
27327 * sel-sched.c (move_nop_to_previous_block): Likewise.
27328
27329 * config/c6x/c6x.c (hwloop_optimize): Likewise.
27330 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
27331
27332 2014-08-18 David Malcolm <dmalcolm@redhat.com>
27333
27334 * rtl.h (for_each_rtx_in_insn): New function.
27335 * rtlanal.c (for_each_rtx_in_insn): Likewise.
27336
27337 2014-08-18 David Malcolm <dmalcolm@redhat.com>
27338
27339 * coretypes.h (class rtx_insn): Add forward declaration.
27340
27341 * rtl.h: Include is-a.h.
27342 (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
27343 workaround to ensure gengtype knows inheritance is occurring,
27344 whilst continuing to use the pre-existing special-casing for
27345 rtx_def.
27346 (class rtx_insn): New subclass of rtx_def, adding the
27347 invariant that we're dealing with something we can sanely use
27348 INSN_UID, NEXT_INSN, PREV_INSN on.
27349 (is_a_helper <rtx_insn *>::test): New.
27350 (is_a_helper <const rtx_insn *>::test): New.
27351
27352 2014-08-18 David Malcolm <dmalcolm@redhat.com>
27353
27354 * is-a.h (template<T, U> safe_as_a <U *p>) New function.
27355
27356 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
27357
27358 * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
27359 comdats as extern.
27360
27361 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
27362
27363 * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
27364 to BUILT_IN_UNREACHABLE.
27365
27366 2014-08-18 Uros Bizjak <ubizjak@gmail.com>
27367
27368 PR target/62011
27369 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
27370 New tune flag.
27371 * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
27372 * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
27373 (ffs<mode>2): Do not expand with tzcnt for
27374 TARGET_AVOID_FALSE_DEP_FOR_BMI.
27375 (ffssi2_no_cmove): Ditto.
27376 (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
27377 (ctz<mode>2): New expander.
27378 (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
27379 (*ctz<mode>2_falsedep): New insn.
27380 (*ctz<mode>2): Rename from ctz<mode>2.
27381 (clz<mode>2_lzcnt): New expander.
27382 (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
27383 (*clz<mode>2_lzcnt_falsedep): New insn.
27384 (*clz<mode>2): Rename from ctz<mode>2.
27385 (popcount<mode>2): New expander.
27386 (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
27387 (*popcount<mode>2_falsedep): New insn.
27388 (*popcount<mode>2): Rename from ctz<mode>2.
27389 (*popcount<mode>2_cmp): Remove.
27390 (*popcountsi2_cmp_zext): Ditto.
27391
27392 2014-08-18 Ajit Agarwal <ajitkum@xilinx.com>
27393
27394 * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
27395 (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
27396 * config/microblaze/microblaze.h
27397 (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
27398
27399 2014-08-18 H.J. Lu <hongjiu.lu@intel.com>
27400
27401 PR other/62168
27402 * configure.ac: Set install_gold_as_default to no for
27403 --enable-gold=no.
27404 * configure: Regenerated.
27405
27406 2014-08-18 Roman Gareev <gareevroman@gmail.com>
27407
27408 * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
27409 * config.in: Add undef of HAVE_isl.
27410 * configure: Regenerate.
27411 * configure.ac: Add definition of HAVE_isl.
27412 * graphite-blocking.c: Add checking of HAVE_isl.
27413 * graphite-dependences.c: Likewise.
27414 * graphite-interchange.c: Likewise.
27415 * graphite-isl-ast-to-gimple.c: Likewise.
27416 * graphite-optimize-isl.c: Likewise.
27417 * graphite-poly.c: Likewise.
27418 * graphite-scop-detection.c: Likewise.
27419 * graphite-sese-to-poly.c: Likewise.
27420 * graphite.c: Likewise.
27421 * toplev.c: Replace the checking of HAVE_cloog with the checking
27422 of HAVE_isl.
27423
27424 2014-08-18 Richard Biener <rguenther@suse.de>
27425
27426 PR tree-optimization/62090
27427 * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
27428 (fold_builtin_3): Do not fold snprintf.
27429 (fold_builtin_4): Likewise.
27430 * gimple-fold.c (gimple_fold_builtin_snprintf): New function
27431 moved from builtins.c.
27432 (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
27433 (gimple_fold_builtin): Do not fold sprintf here.
27434
27435 2014-08-18 Richard Biener <rguenther@suse.de>
27436
27437 * gimple-fold.c (maybe_fold_reference): Move re-gimplification
27438 code to ...
27439 (maybe_canonicalize_mem_ref_addr): ... this function.
27440 (fold_stmt_1): Apply it here before all simplification.
27441
27442 2014-08-18 Ilya Enkovich <ilya.enkovich@intel.com>
27443
27444 PR ipa/61800
27445 * cgraph.h (cgraph_node::create_indirect_edge): Add
27446 compute_indirect_info param.
27447 * cgraph.c (cgraph_node::create_indirect_edge): Compute
27448 indirect_info only when it is required.
27449 * cgraphclones.c (cgraph_clone_edge): Do not recompute
27450 indirect_info fore cloned indirect edge.
27451
27452 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
27453 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27454 Anna Tikhonova <anna.tikhonova@intel.com>
27455 Ilya Tocar <ilya.tocar@intel.com>
27456 Andrey Turetskiy <andrey.turetskiy@intel.com>
27457 Ilya Verbin <ilya.verbin@intel.com>
27458 Kirill Yukhin <kirill.yukhin@intel.com>
27459 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27460
27461 * config/i386/sse.md
27462 (define_mode_iterator VI8_AVX2_AVX512BW): New.
27463 (define_insn "<sse2_avx2>_psadbw"): Add evex version.
27464
27465 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
27466 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27467 Anna Tikhonova <anna.tikhonova@intel.com>
27468 Ilya Tocar <ilya.tocar@intel.com>
27469 Andrey Turetskiy <andrey.turetskiy@intel.com>
27470 Ilya Verbin <ilya.verbin@intel.com>
27471 Kirill Yukhin <kirill.yukhin@intel.com>
27472 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27473
27474 * config/i386/sse.md
27475 (define_mode_iterator VF1_AVX512VL): New.
27476 (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
27477 (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
27478 New.
27479
27480 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
27481 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27482 Anna Tikhonova <anna.tikhonova@intel.com>
27483 Ilya Tocar <ilya.tocar@intel.com>
27484 Andrey Turetskiy <andrey.turetskiy@intel.com>
27485 Ilya Verbin <ilya.verbin@intel.com>
27486 Kirill Yukhin <kirill.yukhin@intel.com>
27487 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27488
27489 * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
27490 * config/i386/i386.md
27491 (define_code_iterator any_float): New.
27492 (define_code_attr floatsuffix): New.
27493 * config/i386/sse.md
27494 (define_mode_iterator VF1_128_256VL): New.
27495 (define_mode_iterator VF2_512_256VL): New.
27496 (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
27497 TARGET check.
27498 (define_insn "ufloatv8siv8df<mask_name>"): Delete.
27499 (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
27500 New.
27501 (define_mode_attr qq2pssuff): New.
27502 (define_mode_attr sselongvecmode): New.
27503 (define_mode_attr sselongvecmodelower): New.
27504 (define_mode_attr sseintvecmode3): New.
27505 (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
27506 New.
27507 (define_insn "*<floatsuffix>floatv2div2sf2"): New.
27508 (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
27509 (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
27510 (define_insn "ufloatv2siv2df2<mask_name>"): New.
27511
27512 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
27513 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27514 Anna Tikhonova <anna.tikhonova@intel.com>
27515 Ilya Tocar <ilya.tocar@intel.com>
27516 Andrey Turetskiy <andrey.turetskiy@intel.com>
27517 Ilya Verbin <ilya.verbin@intel.com>
27518 Kirill Yukhin <kirill.yukhin@intel.com>
27519 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27520
27521 * config/i386/sse.md
27522 (define_mode_iterator VF2_AVX512VL): New.
27523 (define_mode_attr sseintvecmode2): New.
27524 (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
27525 (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
27526 (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
27527 (define_insn
27528 "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
27529 Ditto.
27530 (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
27531 Ditto.
27532 (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
27533 Ditto.
27534
27535 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
27536 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27537 Anna Tikhonova <anna.tikhonova@intel.com>
27538 Ilya Tocar <ilya.tocar@intel.com>
27539 Andrey Turetskiy <andrey.turetskiy@intel.com>
27540 Ilya Verbin <ilya.verbin@intel.com>
27541 Kirill Yukhin <kirill.yukhin@intel.com>
27542 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27543
27544 * config/i386/i386.md
27545 (define_insn "*movoi_internal_avx"): Add evex version.
27546 (define_insn "*movti_internal"): Ditto.
27547
27548 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
27549 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27550 Anna Tikhonova <anna.tikhonova@intel.com>
27551 Ilya Tocar <ilya.tocar@intel.com>
27552 Andrey Turetskiy <andrey.turetskiy@intel.com>
27553 Ilya Verbin <ilya.verbin@intel.com>
27554 Kirill Yukhin <kirill.yukhin@intel.com>
27555 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27556
27557 * config/i386/i386.md
27558 (define_attr "isa"): Add avx512dq, noavx512dq.
27559 (define_attr "enabled"): Ditto.
27560 * config/i386/sse.md
27561 (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
27562
27563 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
27564 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27565 Anna Tikhonova <anna.tikhonova@intel.com>
27566 Ilya Tocar <ilya.tocar@intel.com>
27567 Andrey Turetskiy <andrey.turetskiy@intel.com>
27568 Ilya Verbin <ilya.verbin@intel.com>
27569 Kirill Yukhin <kirill.yukhin@intel.com>
27570 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27571
27572 * config/i386/i386.c
27573 (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
27574 avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
27575 avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
27576 avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
27577 avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
27578 avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
27579 avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
27580 avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
27581 * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
27582 * config/i386/sse.md
27583 (define_mode_iterator VMOVE): Allow V4TI mode.
27584 (define_mode_iterator V_AVX512VL): New.
27585 (define_mode_iterator V): New handling for AVX512VL.
27586 (define_insn "avx512f_load<mode>_mask"): Delete.
27587 (define_insn "<avx512>_load<mode>_mask"): New.
27588 (define_insn "avx512f_store<mode>_mask"): Delete.
27589 (define_insn "<avx512>_store<mode>_mask"): New.
27590
27591
27592 2014-08-18 Yury Gribov <y.gribov@samsung.com>
27593
27594 PR sanitizer/62089
27595 * asan.c (instrument_derefs): Fix bitfield check.
27596
27597 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
27598
27599 * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
27600 * config/rs6000/htm.md (ttest): Remove clobber.
27601 * config/rs6000/predicates.md (any_mask_operand): New predicate.
27602 (and_operand): Reformat.
27603 (and_2rld_operand): New predicate.
27604 * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
27605 parameter.
27606 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
27607 parameter. Handle AND directly.
27608 (rs6000_split_logical_di): Remove last parameter.
27609 (rs6000_split_logical): Remove last parameter. Remove obsolete
27610 comment.
27611 * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
27612 (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
27613 (ctz<mode>2, ffs<mode>2): Delete clobber. Reformat.
27614 (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
27615 *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
27616 and 5 anonymous splitters): Delete.
27617 (and<mode>3): New expander.
27618 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
27619 (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
27620 (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
27621 (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
27622 (floatdisf2_internal1): Remove clobbers.
27623 (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
27624 *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
27625 (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
27626 (and<mode>3 for BOOL_128): Remove clobber.
27627 (*and<mode>3_internal for BOOL_128): Remove clobber. Adjust call of
27628 rs6000_split_logical.
27629 (*bool<mode>3_internal for BOOL_128): Adjust call of
27630 rs6000_split_logical.
27631 (*boolc<mode>3_internal1 for BOOL_128,
27632 *boolc<mode>3_internal2 for BOOL_128,
27633 *boolcc<mode>3_internal1 for BOOL_128,
27634 *boolcc<mode>3_internal2 for BOOL_128,
27635 *eqv<mode>3_internal1 for BOOL_128,
27636 *eqv<mode>3_internal2 for BOOL_128,
27637 *one_cmpl<mode>3_internal for BOOL_128): Ditto.
27638 * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
27639 clobber.
27640 (*vec_reload_and_reg_<mptrsize>): Delete.
27641
27642 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
27643
27644 * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
27645 and split, *boolccsi3_internal3 and split): Delete.
27646 (*boolccdi3_internal1, *boolccdi3_internal2 and split,
27647 *boolccdi3_internal3 and split): Delete.
27648 (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
27649 (*eqv<mode>3): Move. Add TODO comment. Fix attributes.
27650
27651 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
27652
27653 * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
27654 and split, *boolcsi3_internal3 and split): Delete.
27655 (*boolcdi3_internal1, *boolcdi3_internal2 and split,
27656 *boolcdi3_internal3 and split): Delete.
27657 (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
27658
27659 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
27660
27661 * config/rs6000/rs6000.c (print_operand) <'e'>: New.
27662 <'u'>: Also support printing the low-order 16 bits.
27663 * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
27664 *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
27665 (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
27666 *booldi3_internal3 and split): Delete.
27667 (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
27668 *bool<mode>3_dot2): New.
27669 (two anonymous define_splits for non_logical_cint_operand): Merge.
27670
27671 2014-08-17 Marek Polacek <polacek@redhat.com>
27672 Manuel López-Ibáñez <manu@gcc.gnu.org>
27673
27674 PR c/62059
27675 * diagnostic.c (adjust_line): Add gcc_checking_assert.
27676 (diagnostic_show_locus): Don't print caret diagnostic
27677 if a column is larger than the line_width.
27678
27679 2014-08-17 Roman Gareev <gareevroman@gmail.com>
27680
27681 * common.opt: Make the ISL AST generator to be the main code generator
27682 of Graphite.
27683
27684 2014-08-16 Gerald Pfeifer <gerald@pfeifer.com>
27685
27686 * wide-int.h (generic_wide_int): Declare as class instead of struct.
27687
27688 2014-08-16 John David Anglin <danglin@gcc.gnu.org>
27689
27690 PR target/61641
27691 * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
27692 Declare.
27693 * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
27694 (pa_output_addr_vec, pa_output_addr_diff_vec): New.
27695 * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
27696 Define.
27697 * config/pa/pa.md (begin_brtab): Delete insn.
27698 (end_brtab): Likewise.
27699
27700 2014-08-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
27701
27702 * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
27703
27704 2014-08-15 Jan Hubicka <hubicka@ucw.cz>
27705
27706 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
27707 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
27708 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
27709 (get_dynamic_type): Remove.
27710 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
27711 (clear_speculation): Bring to ipa-deivrt.h
27712 (get_class_context): Rename to ...
27713 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
27714 (contains_type_p): Update.
27715 (get_dynamic_type): Rename to ...
27716 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
27717 (possible_polymorphic_call_targets): UPdate.
27718 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
27719 * ipa-prop.c (ipa_analyze_call_uses): Update.
27720
27721 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
27722
27723 * doc/invoke.texi (SH options): Document missing processor variant
27724 options. Remove references to Hitachi. Undocument deprecated mspace
27725 option.
27726
27727 2014-08-15 Jason Merrill <jason@redhat.com>
27728
27729 * tree.c (type_hash_canon): Uncomment assert.
27730
27731 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
27732
27733 * input.h (in_system_header_at): Add comment.
27734
27735 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
27736
27737 PR fortran/44054
27738 * diagnostic.c (build_message_string): Make it extern.
27739 * diagnostic.h (build_message_string): Make it extern.
27740
27741 2014-08-15 Vladimir Makarov <vmakarov@redhat.com>
27742
27743 * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
27744 load/store from/to non-floating class pseudo.
27745
27746 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
27747
27748 * input.c (diagnostic_file_cache_fini): Fix typo in comment.
27749
27750 2014-08-15 Richard Biener <rguenther@suse.de>
27751
27752 * tree-ssa-structalias.c (readonly_id): Rename to string_id.
27753 (get_constraint_for_ssa_var): Remove dead code.
27754 (get_constraint_for_1): Adjust.
27755 (find_what_var_points_to): Likewise.
27756 (init_base_vars): Likewise. STRING_CSTs do not contain pointers.
27757
27758 2014-08-15 Ilya Tocar <tocarip@gmail.com>
27759
27760 PR target/61878
27761 * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
27762 (_mm512_mask_cmpge_epu32_mask): Ditto.
27763 (_mm512_cmpge_epu32_mask): Ditto.
27764 (_mm512_mask_cmpge_epi64_mask): Ditto.
27765 (_mm512_cmpge_epi64_mask): Ditto.
27766 (_mm512_mask_cmpge_epu64_mask): Ditto.
27767 (_mm512_cmpge_epu64_mask): Ditto.
27768 (_mm512_mask_cmple_epi32_mask): Ditto.
27769 (_mm512_cmple_epi32_mask): Ditto.
27770 (_mm512_mask_cmple_epu32_mask): Ditto.
27771 (_mm512_cmple_epu32_mask): Ditto.
27772 (_mm512_mask_cmple_epi64_mask): Ditto.
27773 (_mm512_cmple_epi64_mask): Ditto.
27774 (_mm512_mask_cmple_epu64_mask): Ditto.
27775 (_mm512_cmple_epu64_mask): Ditto.
27776 (_mm512_mask_cmplt_epi32_mask): Ditto.
27777 (_mm512_cmplt_epi32_mask): Ditto.
27778 (_mm512_mask_cmplt_epu32_mask): Ditto.
27779 (_mm512_cmplt_epu32_mask): Ditto.
27780 (_mm512_mask_cmplt_epi64_mask): Ditto.
27781 (_mm512_cmplt_epi64_mask): Ditto.
27782 (_mm512_mask_cmplt_epu64_mask): Ditto.
27783 (_mm512_cmplt_epu64_mask): Ditto.
27784 (_mm512_mask_cmpneq_epi32_mask): Ditto.
27785 (_mm512_mask_cmpneq_epu32_mask): Ditto.
27786 (_mm512_cmpneq_epu32_mask): Ditto.
27787 (_mm512_mask_cmpneq_epi64_mask): Ditto.
27788 (_mm512_cmpneq_epi64_mask): Ditto.
27789 (_mm512_mask_cmpneq_epu64_mask): Ditto.
27790 (_mm512_cmpneq_epu64_mask): Ditto.
27791 (_mm512_castpd_ps): Ditto.
27792 (_mm512_castpd_si512): Ditto.
27793 (_mm512_castps_pd): Ditto.
27794 (_mm512_castps_si512): Ditto.
27795 (_mm512_castsi512_ps): Ditto.
27796 (_mm512_castsi512_pd): Ditto.
27797 (_mm512_castpd512_pd128): Ditto.
27798 (_mm512_castps512_ps128): Ditto.
27799 (_mm512_castsi512_si128): Ditto.
27800 (_mm512_castpd512_pd256): Ditto.
27801 (_mm512_castps512_ps256): Ditto.
27802 (_mm512_castsi512_si256): Ditto.
27803 (_mm512_castpd128_pd512): Ditto.
27804 (_mm512_castps128_ps512): Ditto.
27805 (_mm512_castsi128_si512): Ditto.
27806 (_mm512_castpd256_pd512): Ditto.
27807 (_mm512_castps256_ps512): Ditto.
27808 (_mm512_castsi256_si512): Ditto.
27809 (_mm512_cmpeq_epu32_mask): Ditto.
27810 (_mm512_mask_cmpeq_epu32_mask): Ditto.
27811 (_mm512_mask_cmpeq_epu64_mask): Ditto.
27812 (_mm512_cmpeq_epu64_mask): Ditto.
27813 (_mm512_cmpgt_epu32_mask): Ditto.
27814 (_mm512_mask_cmpgt_epu32_mask): Ditto.
27815 (_mm512_mask_cmpgt_epu64_mask): Ditto.
27816 (_mm512_cmpgt_epu64_mask): Ditto.
27817 * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
27818 V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
27819 * config/i386/i386.c (enum ix86_builtins): Add
27820 IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
27821 IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
27822 IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
27823 (bdesc_args): Add __builtin_ia32_si512_256si,
27824 __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
27825 __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
27826 __builtin_ia32_pd512_pd.
27827 (ix86_expand_args_builtin): Handle new FTYPEs.
27828 * config/i386/sse.md (castmode): Add 512-bit modes.
27829 (AVX512MODE2P): New.
27830 (avx512f_<castmode><avxsizesuffix>_<castmode): New.
27831 (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
27832
27833 2014-08-15 Richard Biener <rguenther@suse.de>
27834
27835 * fold-const.c (tree_swap_operands_p): Put all constants
27836 last, also strip sign-changing NOPs when considering further
27837 canonicalization. Canonicalize also when optimizing for size.
27838
27839 2014-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27840
27841 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
27842 one_match > zero_match case to just before simple_sequence.
27843
27844 2014-08-15 Richard Biener <rguenther@suse.de>
27845
27846 * data-streamer.h (streamer_string_index, string_for_index):
27847 Remove.
27848 * data-streamer-out.c (streamer_string_index): Make static.
27849 * data-streamer-in.c (string_for_index): Likewise.
27850 * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
27851 * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
27852
27853 2014-08-15 Richard Biener <rguenther@suse.de>
27854
27855 PR tree-optimization/62031
27856 * tree-data-ref.c (dr_analyze_indices): Do not set
27857 DR_UNCONSTRAINED_BASE.
27858 (dr_may_alias_p): All indirect accesses have to go the
27859 formerly DR_UNCONSTRAINED_BASE path.
27860 * tree-data-ref.h (struct indices): Remove
27861 unconstrained_base member.
27862 (DR_UNCONSTRAINED_BASE): Remove.
27863
27864 2014-08-15 Jakub Jelinek <jakub@redhat.com>
27865
27866 PR middle-end/62092
27867 * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
27868 OMP_CLAUSE_SHARED for global vars if the global var is mentioned
27869 in OMP_CLAUSE_MAP in some outer target region.
27870
27871 2014-08-15 Bin Cheng <bin.cheng@arm.com>
27872
27873 * tree-ssa-loop-ivopts.c (ivopts_data): New field
27874 name_expansion_cache.
27875 (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
27876 (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
27877 (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
27878 (difference_cannot_overflow_p): New parameter. Use affine
27879 expansion for equality check.
27880 (iv_elimination_compare_lt): Pass new argument.
27881
27882 2014-08-14 DJ Delorie <dj@redhat.com>
27883
27884 * config/rl78/rl78-real.md (addqi3_real): Allow adding global
27885 variables to the accumulator.
27886
27887 * config/rl78/predicates.md (rl78_near_mem_operand): New.
27888 * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
27889 (movhi_virt_mm): Split out near mem-mem moves to avoid problems
27890 with far-far moves.
27891
27892 * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
27893 * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
27894 (umulqihi3_virt): Likewise.
27895 * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
27896 (umulqihi3_real): Likewise.
27897
27898 * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
27899
27900 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
27901
27902 PR tree-optimization/62091
27903 * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
27904 function_entry_reached.
27905 (walk_aliased_vdefs): Clear it here.
27906 * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
27907
27908 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
27909
27910 * ipa-utils.h (compare_virtual_tables): Declare.
27911 * ipa-devirt.c (odr_subtypes_equivalent_p): New function
27912
27913 2014-08-14 Marek Polacek <polacek@redhat.com>
27914
27915 DR 458
27916 * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
27917 (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
27918
27919 2014-08-14 Tom de Vries <tom@codesourcery.com>
27920
27921 * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
27922
27923 2014-08-14 Tom de Vries <tom@codesourcery.com>
27924
27925 PR rtl-optimization/62004
27926 PR rtl-optimization/62030
27927 * ifcvt.c (rtx_interchangeable_p): New function.
27928 (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
27929 * emit-rtl.h (mem_attrs_eq_p): Declare.
27930
27931 2014-08-14 Roman Gareev <gareevroman@gmail.com>
27932
27933 * graphite-scop-detection.c:
27934 Add inclusion of cp-tree.h.
27935 (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
27936 in case they are pointers to object types
27937
27938 2014-08-14 Richard Biener <rguenther@suse.de>
27939
27940 * BASE-VER: Change to 5.0.0
27941
27942 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
27943 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27944 Anna Tikhonova <anna.tikhonova@intel.com>
27945 Ilya Tocar <ilya.tocar@intel.com>
27946 Andrey Turetskiy <andrey.turetskiy@intel.com>
27947 Ilya Verbin <ilya.verbin@intel.com>
27948 Kirill Yukhin <kirill.yukhin@intel.com>
27949 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27950
27951 * config/i386/sse.md (define_mode_attr avx512): New.
27952 (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
27953 V4DI modes.
27954 (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
27955 (define_mode_attr ssse3_avx2): Ditto.
27956 (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
27957 (define_mode_attr avx2_avx512bw): New.
27958 (define_mode_attr ssedoublemodelower): New.
27959 (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
27960 V32HI, V64QI modes.
27961 (define_mode_attr ssebytemode): Allow V8DI modes.
27962 (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
27963 (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
27964 (define_mode_attr ssePSmode2): New.
27965 (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
27966 V16HI, V32HI modes.
27967 (define_mode_attr dbpsadbwmode): New.
27968 (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
27969 V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
27970 (vi8_sse4_1_avx2_avx512): New.
27971 (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
27972 mode attribute.
27973 (define_mode_attr blendbits): Move before its immediate use.
27974
27975 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
27976 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
27977 Anna Tikhonova <anna.tikhonova@intel.com>
27978 Ilya Tocar <ilya.tocar@intel.com>
27979 Andrey Turetskiy <andrey.turetskiy@intel.com>
27980 Ilya Verbin <ilya.verbin@intel.com>
27981 Kirill Yukhin <kirill.yukhin@intel.com>
27982 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
27983
27984 * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
27985 * config/i386/subst.md
27986 (define_mode_iterator SUBST_V): Update.
27987 (define_mode_iterator SUBST_A): Ditto.
27988 (define_subst_attr "mask_operand7"): New.
27989 (define_subst_attr "mask_operand10"): New.
27990 (define_subst_attr "mask_operand_arg34") : New.
27991 (define_subst_attr "mask_expand_op3"): New.
27992 (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
27993 (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
27994 (define_subst_attr "mask_avx512vl_condition"): New.
27995 (define_subst_attr "round_mask_operand4"): Ditto.
27996 (define_subst_attr "round_mask_scalar_op3"): Delete.
27997 (define_subst_attr "round_mask_op4"): New.
27998 (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
27999 V16SImode.
28000 (define_subst_attr "round_modev8sf_condition"): New.
28001 (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
28002 <MODE>mode.
28003 (define_subst_attr "round_saeonly_mask_operand4"): New.
28004 (define_subst_attr "round_saeonly_mask_op4"): New.
28005 (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
28006 V8DImode, V16SImode.
28007 (define_subst_attr "round_saeonly_modev8sf_condition"): New.
28008 (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
28009 (define_subst_attr "mask_expand4_args"): New.
28010 (define_subst "mask_expand4"): New.
28011
28012 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
28013 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
28014 Anna Tikhonova <anna.tikhonova@intel.com>
28015 Ilya Tocar <ilya.tocar@intel.com>
28016 Andrey Turetskiy <andrey.turetskiy@intel.com>
28017 Ilya Verbin <ilya.verbin@intel.com>
28018 Kirill Yukhin <kirill.yukhin@intel.com>
28019 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
28020
28021 * config/i386/i386.md
28022 (define_attr "isa"): Add avx512bw,noavx512bw.
28023 (define_attr "enabled"): Ditto.
28024 (define_split): Add 32/64-bit mask logic.
28025 (define_insn "*k<logic>qi"): New.
28026 (define_insn "*k<logic>hi"): New.
28027 (define_insn "*anddi_1"): Add mask version.
28028 (define_insn "*andsi_1"): Ditto.
28029 (define_insn "*<code><mode>_1"): Ditto.
28030 (define_insn "*<code>hi_1"): Ditto.
28031 (define_insn "kxnor<mode>"): New.
28032 (define_insn "kunpcksi"): New.
28033 (define_insn "kunpckdi"): New.
28034 (define_insn "*one_cmpl<mode>2_1"): Add mask version.
28035 (define_insn "*one_cmplhi2_1"): Ditto.
28036
28037 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
28038 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
28039 Anna Tikhonova <anna.tikhonova@intel.com>
28040 Ilya Tocar <ilya.tocar@intel.com>
28041 Andrey Turetskiy <andrey.turetskiy@intel.com>
28042 Ilya Verbin <ilya.verbin@intel.com>
28043 Kirill Yukhin <kirill.yukhin@intel.com>
28044 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
28045
28046 * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
28047 V32HImode.
28048
28049 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
28050 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
28051 Anna Tikhonova <anna.tikhonova@intel.com>
28052 Ilya Tocar <ilya.tocar@intel.com>
28053 Andrey Turetskiy <andrey.turetskiy@intel.com>
28054 Ilya Verbin <ilya.verbin@intel.com>
28055 Kirill Yukhin <kirill.yukhin@intel.com>
28056 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
28057
28058 * config/i386/i386.c (print_reg): Сorrectly print 64-bit mask
28059 registers.
28060 (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
28061 (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
28062 xmm/ymm16+ when availble.
28063 * config/i386/i386.h
28064 (HARD_REGNO_NREGS): Add mask regs.
28065 (VALID_AVX512F_REG_MODE): Ditto.
28066 (VALID_AVX512F_REG_MODE) : Define.
28067 (VALID_MASK_AVX512BW_MODE): Ditto.
28068 (reg_class) (MASK_REG_P(X)): Define.
28069 * config/i386/i386.md: Do not split long moves with mask register,
28070 use kmovb if avx512bw is availible.
28071 (movdi_internal): Handle mask registers.
28072
28073 2014-08-14 Richard Biener <rguenther@suse.de>
28074
28075 PR tree-optimization/62081
28076 * tree-ssa-loop.c (pass_fix_loops): New pass.
28077 (pass_tree_loop::gate): Do not fixup loops here.
28078 * tree-pass.h (make_pass_fix_loops): Declare.
28079 * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
28080
28081 2014-08-14 Richard Biener <rguenther@suse.de>
28082
28083 * tree.c (type_hash_lookup, type_hash_add): Merge into ...
28084 (type_hash_canon): ... this and avoid 2nd lookup for the add.
28085
28086 2014-08-14 Richard Biener <rguenther@suse.de>
28087
28088 PR tree-optimization/62090
28089 * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
28090 (fold_builtin_2): Do not fold sprintf.
28091 (fold_builtin_3): Likewise.
28092 * gimple-fold.c (gimple_fold_builtin_sprintf): New function
28093 moved from builtins.c.
28094 (gimple_fold_builtin): Fold sprintf.
28095
28096 2014-08-14 Richard Biener <rguenther@suse.de>
28097
28098 PR rtl-optimization/62079
28099 * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
28100 run cleanup_cfg.
28101
28102 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
28103
28104 * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
28105 current_function_decl.
28106
28107 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
28108
28109 * cgraph.c (cgraph_node::function_symbol): Fix wrong
28110 cgraph_function_node to cgraph_node::function_symbol
28111 refactoring.
28112
28113 2014-08-14 Zhenqiang Chen <zhenqiang.chen@arm.com>
28114
28115 * config/arm/arm.c (arm_option_override): Set max_insns_skipped
28116 to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
28117
28118 2014-08-13 Chen Gang gang.chen.5i5j@gmail.com
28119
28120 * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
28121 warning.
28122
28123 2014-08-13 Roman Gareev <gareevroman@gmail.com>
28124
28125 * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
28126 generator.
28127
28128 2014-08-12 Jakub Jelinek <jakub@redhat.com>
28129
28130 PR target/62025
28131 * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
28132 any registers that are used in mem_insn.
28133
28134 2014-08-12 Steve Ellcey <sellcey@mips.com>
28135
28136 * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
28137
28138 2014-08-12 Steve Ellcey <sellcey@mips.com>
28139
28140 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
28141 (MULTILIB_DIRNAMES): Ditto.
28142 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
28143 * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
28144 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
28145 * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
28146 * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
28147 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
28148
28149 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28150
28151 PR target/61413
28152 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
28153 of __ARM_SIZEOF_WCHAR_T.
28154
28155 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28156
28157 PR target/62098
28158 * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
28159 Remove unnecessary attributes.
28160
28161 2014-08-12 Yury Gribov <y.gribov@samsung.com>
28162
28163 * internal-fn.c (init_internal_fns): Fix off-by-one.
28164
28165 2014-08-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
28166 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
28167 Anna Tikhonova <anna.tikhonova@intel.com>
28168 Ilya Tocar <ilya.tocar@intel.com>
28169 Andrey Turetskiy <andrey.turetskiy@intel.com>
28170 Ilya Verbin <ilya.verbin@intel.com>
28171 Kirill Yukhin <kirill.yukhin@intel.com>
28172 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
28173
28174 * config/i386/i386.c (standard_sse_constant_opcode): Use
28175 vpxord/vpternlog if avx512 is availible.
28176
28177 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
28178
28179 PR middle-end/62103
28180 * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
28181 bitfields, that is when size doesn't match the size of type or the
28182 size of the constructor.
28183
28184 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com>
28185
28186 * config/rs6000/constraints.md (wh constraint): New constraint,
28187 for FP registers if direct move is available.
28188 (wi constraint): New constraint, for VSX/FP registers that can
28189 handle 64-bit integers.
28190 (wj constraint): New constraint for VSX/FP registers that can
28191 handle 64-bit integers for direct moves.
28192 (wk constraint): New constraint for VSX/FP registers that can
28193 handle 64-bit doubles for direct moves.
28194 (wy constraint): Make documentation match implementation.
28195
28196 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
28197 scalar_in_vmx_p field to simplify tests of whether SFmode or
28198 DFmode can go in the Altivec registers.
28199 (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
28200 (rs6000_setup_reg_addr_masks): Likewise.
28201 (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
28202 field, and wh/wi/wj/wk constraints.
28203 (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
28204 the wh/wi/wj/wk constraints.
28205 (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
28206 upper registers, prefer VSX registers unless the operation is a
28207 memory operation with REG+OFFSET addressing.
28208
28209 * config/rs6000/vsx.md (VSr mode attribute): Add support for
28210 DImode. Change SFmode to use ww constraint instead of d to allow
28211 SF registers in the upper registers.
28212 (VSr2): Likewise.
28213 (VSr3): Likewise.
28214 (VSr5): Fix thinko in comment.
28215 (VSa): New mode attribute that is an alternative to wa, that
28216 returns the VSX register class that a mode can go in, but may not
28217 be the preferred register class.
28218 (VS_64dm): New mode attribute for appropriate register classes for
28219 referencing 64-bit elements of vectors for direct moves and normal
28220 moves.
28221 (VS_64reg): Likewise.
28222 (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
28223 register allocator to only registers the data type can handle.
28224 (vsx_le_perm_load_<mode>): Likewise.
28225 (vsx_le_perm_store_<mode>): Likewise.
28226 (vsx_xxpermdi2_le_<mode>): Likewise.
28227 (vsx_xxpermdi4_le_<mode>): Likewise.
28228 (vsx_lxvd2x2_le_<mode>): Likewise.
28229 (vsx_lxvd2x4_le_<mode>): Likewise.
28230 (vsx_stxvd2x2_le_<mode>): Likewise.
28231 (vsx_add<mode>3): Likewise.
28232 (vsx_sub<mode>3): Likewise.
28233 (vsx_mul<mode>3): Likewise.
28234 (vsx_div<mode>3): Likewise.
28235 (vsx_tdiv<mode>3_internal): Likewise.
28236 (vsx_fre<mode>2): Likewise.
28237 (vsx_neg<mode>2): Likewise.
28238 (vsx_abs<mode>2): Likewise.
28239 (vsx_nabs<mode>2): Likewise.
28240 (vsx_smax<mode>3): Likewise.
28241 (vsx_smin<mode>3): Likewise.
28242 (vsx_sqrt<mode>2): Likewise.
28243 (vsx_rsqrte<mode>2): Likewise.
28244 (vsx_tsqrt<mode>2_internal): Likewise.
28245 (vsx_fms<mode>4): Likewise.
28246 (vsx_nfma<mode>4): Likewise.
28247 (vsx_eq<mode>): Likewise.
28248 (vsx_gt<mode>): Likewise.
28249 (vsx_ge<mode>): Likewise.
28250 (vsx_eq<mode>_p): Likewise.
28251 (vsx_gt<mode>_p): Likewise.
28252 (vsx_ge<mode>_p): Likewise.
28253 (vsx_xxsel<mode>): Likewise.
28254 (vsx_xxsel<mode>_uns): Likewise.
28255 (vsx_copysign<mode>3): Likewise.
28256 (vsx_float<VSi><mode>2): Likewise.
28257 (vsx_floatuns<VSi><mode>2): Likewise.
28258 (vsx_fix_trunc<mode><VSi>2): Likewise.
28259 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
28260 (vsx_x<VSv>r<VSs>i): Likewise.
28261 (vsx_x<VSv>r<VSs>ic): Likewise.
28262 (vsx_btrunc<mode>2): Likewise.
28263 (vsx_b2trunc<mode>2): Likewise.
28264 (vsx_floor<mode>2): Likewise.
28265 (vsx_ceil<mode>2): Likewise.
28266 (vsx_<VS_spdp_insn>): Likewise.
28267 (vsx_xscvspdp): Likewise.
28268 (vsx_xvcvspuxds): Likewise.
28269 (vsx_float_fix_<mode>2): Likewise.
28270 (vsx_set_<mode>): Likewise.
28271 (vsx_extract_<mode>_internal1): Likewise.
28272 (vsx_extract_<mode>_internal2): Likewise.
28273 (vsx_extract_<mode>_load): Likewise.
28274 (vsx_extract_<mode>_store): Likewise.
28275 (vsx_splat_<mode>): Likewise.
28276 (vsx_xxspltw_<mode>): Likewise.
28277 (vsx_xxspltw_<mode>_direct): Likewise.
28278 (vsx_xxmrghw_<mode>): Likewise.
28279 (vsx_xxmrglw_<mode>): Likewise.
28280 (vsx_xxsldwi_<mode>): Likewise.
28281 (vsx_xscvdpspn): Tighten constraints to only use register classes
28282 the types use.
28283 (vsx_xscvspdpn): Likewise.
28284 (vsx_xscvdpspn_scalar): Likewise.
28285
28286 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
28287 wj, and wk constraints.
28288 (GPR_REG_CLASS_P): New helper macro for register classes targeting
28289 general purpose registers.
28290
28291 * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
28292 direct moves.
28293 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
28294 DImode instead of wm. Use wk constraint for direct move of DFmode
28295 instead of wm.
28296 (extendsidi2_lfiwax): Likewise.
28297 (lfiwax): Likewise.
28298 (lfiwzx): Likewise.
28299 (movdi_internal64): Likewise.
28300
28301 * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
28302 wk constraints. Make the wy constraint documentation match them
28303 implementation.
28304
28305 2014-08-11 Mircea Namolaru <mircea.namolaru@inria.fr>
28306
28307 Replacement of isl_int by isl_val
28308 * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
28309 (compute_bounds_for_param): use isl_val instead of isl_int
28310 (compute_bounds_for_loop): likewise
28311 * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
28312 (build_linearized_memory_access): use isl_val instead of isl_int
28313 (pdr_stride_in_loop): likewise
28314 * graphite-optimize-isl.c:
28315 (getPrevectorMap): use isl_val instead of isl_int
28316 * graphite-poly.c:
28317 (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
28318 graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
28319 (extern the_isl_ctx): declare
28320 (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
28321 (extract_affine_gmp): likewise
28322 (wrap): likewise
28323 (build_loop_iteration_domains): likewise
28324 (add_param_constraints): likewise
28325
28326 2014-08-11 Richard Biener <rguenther@suse.de>
28327
28328 PR tree-optimization/62075
28329 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
28330 handle uses in patterns.
28331
28332 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
28333 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
28334 Anna Tikhonova <anna.tikhonova@intel.com>
28335 Ilya Tocar <ilya.tocar@intel.com>
28336 Andrey Turetskiy <andrey.turetskiy@intel.com>
28337 Ilya Verbin <ilya.verbin@intel.com>
28338 Kirill Yukhin <kirill.yukhin@intel.com>
28339 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
28340
28341 * common/config/i386/i386-common.c
28342 (OPTION_MASK_ISA_AVX512VL_SET): Define.
28343 (OPTION_MASK_ISA_AVX512F_UNSET): Update.
28344 (ix86_handle_option): Handle OPT_mavx512vl.
28345 * config/i386/cpuid.h (bit_AVX512VL): Define.
28346 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
28347 set -mavx512vl accordingly.
28348 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28349 OPTION_MASK_ISA_AVX512VL.
28350 * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
28351 (ix86_option_override_internal): Define PTA_AVX512VL, handle
28352 PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
28353 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
28354 * config/i386/i386.h (TARGET_AVX512VL): Define.
28355 (TARGET_AVX512VL_P(x)): Ditto.
28356 * config/i386/i386.opt: Add mavx512vl.
28357
28358 2014-08-11 Felix Yang <fei.yang0953@gmail.com>
28359
28360 PR tree-optimization/62073
28361 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
28362 a basic block.
28363
28364 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
28365 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
28366 Anna Tikhonova <anna.tikhonova@intel.com>
28367 Ilya Tocar <ilya.tocar@intel.com>
28368 Andrey Turetskiy <andrey.turetskiy@intel.com>
28369 Ilya Verbin <ilya.verbin@intel.com>
28370 Kirill Yukhin <kirill.yukhin@intel.com>
28371 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
28372
28373 * common/config/i386/i386-common.c
28374 (OPTION_MASK_ISA_AVX512BW_SET) : Define.
28375 (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
28376 (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
28377 (ix86_handle_option): Handle OPT_mavx512bw.
28378 * config/i386/cpuid.h (bit_AVX512BW): Define.
28379 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
28380 set -mavx512bw accordingly.
28381 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28382 OPTION_MASK_ISA_AVX512BW.
28383 * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
28384 (ix86_option_override_internal): Define PTA_AVX512BW, handle
28385 PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
28386 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
28387 * config/i386/i386.h (TARGET_AVX512BW): Define.
28388 (TARGET_AVX512BW_P(x)): Ditto.
28389 * config/i386/i386.opt: Add mavx512bw.
28390
28391 2014-08-11 Richard Biener <rguenther@suse.de>
28392
28393 PR tree-optimization/62070
28394 * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
28395 Remove SSA checking.
28396
28397 2014-08-11 Yury Gribov <y.gribov@samsung.com>
28398
28399 * asan.c (asan_check_flags): New enum.
28400 (build_check_stmt_with_calls): Removed function.
28401 (build_check_stmt): Split inlining logic to
28402 asan_expand_check_ifn.
28403 (instrument_derefs): Rename parameter.
28404 (instrument_mem_region_access): Rename parameter.
28405 (instrument_strlen_call): Likewise.
28406 (asan_expand_check_ifn): New function.
28407 (asan_instrument): Remove old code.
28408 (pass_sanopt::execute): Change handling of
28409 asan-instrumentation-with-call-threshold.
28410 (asan_clear_shadow): Fix formatting.
28411 (asan_function_start): Likewise.
28412 (asan_emit_stack_protection): Likewise.
28413 * doc/invoke.texi (asan-instrumentation-with-call-threshold):
28414 Update description.
28415 * internal-fn.c (expand_ASAN_CHECK): New function.
28416 * internal-fn.def (ASAN_CHECK): New internal function.
28417 * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
28418 Update description.
28419 (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
28420 * tree.c: Small comment fix.
28421
28422 2014-08-11 Yury Gribov <y.gribov@samsung.com>
28423
28424 * gimple.c (gimple_call_fnspec): Support internal functions.
28425 (gimple_call_return_flags): Use const.
28426 * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
28427 * internal-fn.def: Add fnspec information.
28428 * internal-fn.h (internal_fn_fnspec): New function.
28429 (init_internal_fns): Declare new function.
28430 * internal-fn.c (internal_fn_fnspec_array): New global variable.
28431 (init_internal_fns): New function.
28432 * tree-core.h: Update macro call.
28433 * tree.c (build_common_builtin_nodes): Initialize internal fns.
28434
28435 2014-08-10 Gerald Pfeifer <gerald@pfeifer.com>
28436
28437 * lto-streamer.h (struct output_block::symbol): Change from
28438 struct symtab_node to plain symtab_node.
28439 (referenced_from_this_partition_p): Change first parameter
28440 from struct symtab_node to plain symtab_node.
28441
28442 2014-08-10 Marek Polacek <polacek@redhat.com>
28443
28444 PR c/51849
28445 * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
28446
28447 2014-08-09 Jan Hubicka <hubicka@ucw.cz>
28448
28449 * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
28450 DECL correctly; do not give up on types in static storage.
28451
28452 2014-08-09 Paolo Carlini <paolo.carlini@oracle.com>
28453
28454 * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
28455
28456 2014-08-09 Roman Gareev <gareevroman@gmail.com>
28457
28458 * graphite-isl-ast-to-gimple.c:
28459 (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
28460
28461 * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
28462
28463 2014-08-08 Guozhi Wei <carrot@google.com>
28464
28465 * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
28466
28467 2014-08-08 Cary Coutant <ccoutant@google.com>
28468
28469 * dwarf2out.c (get_skeleton_type_unit): Remove.
28470 (output_skeleton_debug_sections): Remove skeleton type units.
28471 (output_comdat_type_unit): Likewise.
28472 (dwarf2out_finish): Likewise.
28473
28474 2014-08-07 Yi Yang <ahyangyi@google.com>
28475
28476 * predict.c (expr_expected_value_1): Remove the redundant assignment.
28477
28478 2014-08-08 Richard Biener <rguenther@suse.de>
28479
28480 * lto-streamer.h (struct lto_input_block): Make it a class
28481 with a constructor.
28482 (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
28483 (struct lto_function_header, struct lto_simple_header,
28484 struct lto_simple_header_with_strings,
28485 struct lto_decl_header, struct lto_function_header): Make
28486 a simple inheritance hieararchy. Remove unused fields.
28487 (struct lto_asm_header): Remove.
28488 * lto-streamer-out.c (produce_asm): Adjust.
28489 (lto_output_toplevel_asms): Likewise.
28490 (produce_asm_for_decls): Likewise.
28491 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
28492 * data-streamer-in.c (string_for_index): Likewise.
28493 * ipa-inline-analysis.c (inline_read_section): Likewise.
28494 * ipa-prop.c (ipa_prop_read_section): Likewise.
28495 (read_replacements_section): Likewise.
28496 * lto-cgraph.c (input_cgraph_opt_section): Likewise.
28497 * lto-section-in.c (lto_create_simple_input_block): Likewise.
28498 (lto_destroy_simple_input_block): Likewise.
28499 * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
28500 (lto_input_toplevel_asms): Likewise.
28501
28502 2014-08-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
28503 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
28504 Anna Tikhonova <anna.tikhonova@intel.com>
28505 Ilya Tocar <ilya.tocar@intel.com>
28506 Andrey Turetskiy <andrey.turetskiy@intel.com>
28507 Ilya Verbin <ilya.verbin@intel.com>
28508 Kirill Yukhin <kirill.yukhin@intel.com>
28509 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
28510
28511 * common/config/i386/i386-common.c
28512 (OPTION_MASK_ISA_AVX512DQ_SET): Define.
28513 (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
28514 (ix86_handle_option): Handle OPT_mavx512dq.
28515 * config/i386/cpuid.h (bit_AVX512DQ): Define.
28516 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
28517 set -mavx512dq accordingly.
28518 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28519 OPTION_MASK_ISA_AVX512DQ.
28520 * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
28521 (ix86_option_override_internal): Define PTA_AVX512DQ, handle
28522 PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
28523 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
28524 * config/i386/i386.h (TARGET_AVX512DQ): Define.
28525 (TARGET_AVX512DQ_P(x)): Ditto.
28526 * config/i386/i386.opt: Add mavx512dq.
28527
28528 2014-08-08 Richard Biener <rguenther@suse.de>
28529
28530 * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
28531 target_percent, target_percent_s): Export.
28532 (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
28533 fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
28534 fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
28535 fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
28536 fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
28537 Move to gimple-fold.c.
28538 (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
28539 strcat and strcpy.
28540 (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
28541 mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
28542 (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
28543 memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
28544 (rewrite_call_expr_array): Remove.
28545 (fold_builtin_sprintf_chk): Likewise.
28546 (fold_builtin_snprintf_chk): Likewise.
28547 (fold_builtin_varargs): Remove handling of sprintf_chk,
28548 vsprintf_chk, snprintf_chk and vsnprintf_chk.
28549 (gimple_fold_builtin_sprintf_chk): Remove.
28550 (gimple_fold_builtin_snprintf_chk): Likewise.
28551 (gimple_fold_builtin_varargs): Likewise.
28552 (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
28553 * predict.c (optimize_bb_for_size_p): Handle NULL bb.
28554 * gimple.c (gimple_seq_add_seq_without_update): New function.
28555 * gimple.h (gimple_seq_add_seq_without_update): Declare.
28556 * gimple-fold.c: Include output.h.
28557 (gsi_replace_with_seq_vops): New function, split out from ...
28558 (gimplify_and_update_call_from_tree): ... here.
28559 (replace_call_with_value): New function.
28560 (replace_call_with_call_and_fold): Likewise.
28561 (var_decl_component_p): Moved from builtins.c.
28562 (gimple_fold_builtin_memory_op): Moved from builtins.c
28563 fold_builtin_memory_op and rewritten to GIMPLE.
28564 (gimple_fold_builtin_memset): Likewise.
28565 (gimple_fold_builtin_strcpy): Likewise.
28566 (gimple_fold_builtin_strncpy): Likewise.
28567 (gimple_fold_builtin_strcat): Likewise.
28568 (gimple_fold_builtin_fputs): Likewise.
28569 (gimple_fold_builtin_memory_chk): Likewise.
28570 (gimple_fold_builtin_stxcpy_chk): Likewise.
28571 (gimple_fold_builtin_stxncpy_chk): Likewise.
28572 (gimple_fold_builtin_snprintf_chk): Likewise.
28573 (gimple_fold_builtin_sprintf_chk): Likewise.
28574 (gimple_fold_builtin_strlen): New function.
28575 (gimple_fold_builtin_with_strlen): New function split out from
28576 gimple_fold_builtin.
28577 (gimple_fold_builtin): Change signature and handle
28578 bzero, memset, bcopy, memcpy, mempcpy and memmove folding
28579 here. Call gimple_fold_builtin_with_strlen.
28580 (gimple_fold_call): Adjust.
28581
28582 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
28583
28584 * calls.c (precompute_arguments): Check
28585 promoted_for_signed_and_unsigned_p and set the promoted mode.
28586 (promoted_for_signed_and_unsigned_p): New function.
28587 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
28588 and set the promoted mode.
28589 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
28590 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
28591 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
28592
28593
28594 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
28595
28596 * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
28597 instead of SUBREG_PROMOTED_UNSIGNED_SET.
28598 (expand_call): Likewise.
28599 * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
28600 to get promoted mode.
28601 * combine.c (record_promoted_value): Skip > 0 comparison with
28602 SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
28603 * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
28604 of SUBREG_PROMOTED_UNSIGNED_P.
28605 (convert_modes): Likewise.
28606 (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
28607 Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
28608 (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
28609 SUBREG_PROMOTED_UNSIGNED_SET.
28610 * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
28611 instead of SUBREG_PROMOTED_UNSIGNED_SET.
28612 * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
28613 SUBREG_PROMOTED_SET.
28614 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
28615 SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
28616 * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
28617 of SUBREG_PROMOTED_UNSIGNED_P.
28618 * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
28619 (SUBREG_PROMOTED_SET): New define.
28620 (SUBREG_PROMOTED_GET): Likewise.
28621 (SUBREG_PROMOTED_SIGN): Likewise.
28622 (SUBREG_PROMOTED_SIGNED_P): Likewise.
28623 (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
28624 (SUBREG_PROMOTED_UNSIGNED_P): Updated.
28625 * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
28626 instead of SUBREG_PROMOTED_UNSIGNED_GET.
28627 (nonzero_bits1): Skip > 0 comparison with the results as
28628 SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
28629 (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
28630 of !SUBREG_PROMOTED_UNSIGNED_P.
28631 * simplify-rtx.c (simplify_unary_operation_1): Use new
28632 SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
28633 (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
28634 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
28635 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
28636
28637 2014-08-07 Jan Hubicka <hubicka@ucw.cz>
28638
28639 * ipa-devirt.c: Include gimple-pretty-print.h
28640 (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
28641 further tests.
28642 (decl_maybe_in_construction_p): Fix conditional on cdtor check
28643 (get_polymorphic_call_info): Fix return value
28644 (type_change_info): New sturcture based on ipa-prop
28645 variant.
28646 (noncall_stmt_may_be_vtbl_ptr_store): New predicate
28647 based on ipa-prop variant.
28648 (extr_type_from_vtbl_ptr_store): New function
28649 based on ipa-prop variant.
28650 (record_known_type): New function.
28651 (check_stmt_for_type_change): New function.
28652 (get_dynamic_type): New function.
28653 * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
28654 * tree-ssa-pre.c: ipa-utils.h
28655 (eliminate_dom_walker::before_dom_children): Use ipa-devirt
28656 machinery; sanity check with ipa-prop devirtualization.
28657 * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
28658 polymorphic flag.
28659
28660 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
28661
28662 * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
28663 * alias.c, cfgexpand.c, cgraphbuild.c,
28664 config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
28665 config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
28666 config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
28667 config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
28668 config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
28669 config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
28670 config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
28671 dse.c, except.c, gengtype.c, gimple-expr.c,
28672 gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
28673 ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
28674 tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
28675 tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
28676 tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
28677 tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
28678 pointer-set.h.
28679 * pointer-set.c: Remove file.
28680 * pointer-set.h: Remove file.
28681
28682 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28683
28684 * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
28685 * config/arm/types.md (f_sels, f_seld): Delete.
28686
28687 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28688
28689 * config/aarch64/aarch64.md (absdi2): Set simd attribute.
28690 (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
28691 (aarch64_movdi_<mode>high): Likewise.
28692 (aarch64_mov<mode>high_di): Likewise.
28693 (aarch64_movdi_<mode>low): Likewise.
28694 (aarch64_mov<mode>low_di): Likewise.
28695 (aarch64_movtilow_tilow): Likewise.
28696 Add comment explaining usage of fp,simd attributes and of
28697 TARGET_FLOAT and TARGET_SIMD.
28698
28699 2014-08-07 Ian Bolton <ian.bolton@arm.com>
28700 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28701
28702 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
28703 Use MOVN when one of the half-words is 0xffff.
28704
28705 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
28706
28707 * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
28708
28709 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
28710
28711 * haifa-sched.c (SCHED_SORT): Delete. Macro used exactly once.
28712 (enum rfs_decition:RFS_*): New constants wrapped in an enum.
28713 (rfs_str): String corresponding to RFS_* constants.
28714 (rank_for_schedule_stats_t): New typedef.
28715 (rank_for_schedule_stats): New static variable.
28716 (rfs_result): New static function.
28717 (rank_for_schedule): Track statistics for deciding heuristics.
28718 (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
28719 static functions.
28720 (ready_sort): Use them for debug printouts.
28721 (schedule_block): Init statistics state. Print statistics on
28722 rank_for_schedule decisions.
28723
28724 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
28725
28726 * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
28727
28728 2014-08-07 Ilya Tocar <ilya.tocar@intel.com>
28729
28730 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
28731 constraint.
28732
28733 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
28734
28735 * hash-map.h (default_hashmap_traits): Adjust overloads of hash
28736 function to not conflict.
28737 * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
28738 gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
28739 lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
28740 tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
28741 tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
28742 of pointer_map.
28743
28744 2014-08-07 Marek Polacek <polacek@redhat.com>
28745
28746 * fold-const.c (fold_binary_loc): Add folding of
28747 (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
28748
28749 2013-08-07 Ilya Enkovich <ilya.enkovich@intel.com>
28750
28751 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
28752 instead of type size.
28753 (ASM_FINISH_DECLARE_OBJECT): Likewise.
28754
28755 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
28756
28757 * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
28758 (*thumb1_movqi_insn): Likewise.
28759 * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
28760
28761 2014-08-07 Tom de Vries <tom@codesourcery.com>
28762
28763 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
28764 (glibc_2_11_or_earlier): Remove effective-target keywords.
28765
28766 2014-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
28767
28768 * config/arm/arm.c (bdesc_2arg): Fix typo.
28769 (arm_atomic_assign_expand_fenv): Remove The default implementation.
28770
28771 2014-08-07 Zhenqiang Chen <zhenqiang.chen@arm.com>
28772
28773 * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
28774
28775 2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
28776
28777 PR debug/61923
28778 * haifa-sched.c (advance_one_cycle): Fix dump.
28779 (schedule_block): Don't advance cycle if we are already at the
28780 beginning of the cycle.
28781
28782 2014-08-06 Martin Jambor <mjambor@suse.cz>
28783
28784 PR ipa/61393
28785 * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
28786
28787 2014-08-06 Richard Biener <rguenther@suse.de>
28788
28789 PR lto/62034
28790 * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
28791 SCCs here.
28792 (lto_input_tree): Pop SCCs here.
28793
28794 2014-08-06 Richard Biener <rguenther@suse.de>
28795
28796 PR tree-optimization/61320
28797 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
28798 handle misaligned loads.
28799
28800 2014-08-06 Alan Lawrence <alan.lawrence@arm.com>
28801
28802 * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
28803 (aarch64_expand_vec_perm_const): Check for dup before zip.
28804
28805 2014-08-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28806
28807 * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
28808 CONST_INT_P instead of GET_CODE and compare.
28809 (aarch64_select_cc_mode): Likewise.
28810 (aarch64_print_operand): Likewise.
28811 (aarch64_rtx_costs): Likewise.
28812 (aarch64_simd_valid_immediate): Likewise.
28813 (aarch64_simd_check_vect_par_cnst_half): Likewise.
28814 (aarch64_simd_emit_pair_result_insn): Likewise.
28815
28816 2014-08-05 David Malcolm <dmalcolm@redhat.com>
28817
28818 * gdbhooks.py (find_gcc_source_dir): New helper function.
28819 (class PassNames): New class, locating and parsing passes.def.
28820 (class BreakOnPass): New command "break-on-pass".
28821
28822 2014-08-05 Trevor Saunders <tsaunders@mozilla.com>
28823
28824 * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
28825 getting olde.
28826
28827 2014-08-05 Richard Biener <rguenther@suse.de>
28828
28829 PR rtl-optimization/61672
28830 * emit-rtl.h (mem_attrs_eq_p): Declare.
28831 * emit-rtl.c (mem_attrs_eq_p): Export. Handle NULL mem-attrs.
28832 * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
28833 * cfgcleanup.c (merge_memattrs): Likewise.
28834 Include emit-rtl.h.
28835
28836 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28837
28838 * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
28839 rather than singleton vectors.
28840 (vqdmlsls_lane_s32): Likewise.
28841
28842 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28843
28844 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
28845 Use VSDQ_HSI mode iterator.
28846 (aarch64_sqrdmulh_laneq<mode>): Likewise.
28847 (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
28848 * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
28849 Use BUILTIN_VDQHS macro.
28850 (sqrdmulh_laneq): Likewise.
28851 * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
28852 (vqdmlals_laneq_s32): Likewise.
28853 (vqdmlslh_laneq_s16): Likewise.
28854 (vqdmlsls_laneq_s32): Likewise.
28855 (vqdmulhh_laneq_s16): Likewise.
28856 (vqdmulhs_laneq_s32): Likewise.
28857 (vqrdmulhh_laneq_s16): Likewise.
28858 (vqrdmulhs_laneq_s32): Likewise.
28859
28860 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28861
28862 * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
28863 (vmuld_laneq_f64): Likewise.
28864 (vmuls_laneq_f32): Likewise.
28865 (vmul_n_f64): Likewise.
28866 (vmuld_lane_f64): Reimplement in C.
28867 (vmuls_lane_f32): Likewise.
28868
28869 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28870
28871 * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
28872 to reservation.
28873 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
28874
28875 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28876
28877 * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
28878 (rbitsi2): Likewise.
28879 (*arm_rev): Set predicable and predicable_short_it attributes.
28880
28881 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28882
28883 * convert.c (convert_to_integer): Guard transformation to lrint by
28884 -fno-math-errno.
28885
28886 2014-08-05 James Greenhalgh <james.greenhalgh@arm.com>
28887
28888 * config/aarch64/aarch64-builtins.c
28889 (aarch64_simd_builtin_type_mode): Delete.
28890 (v8qi_UP): Remap to V8QImode.
28891 (v4hi_UP): Remap to V4HImode.
28892 (v2si_UP): Remap to V2SImode.
28893 (v2sf_UP): Remap to V2SFmode.
28894 (v1df_UP): Remap to V1DFmode.
28895 (di_UP): Remap to DImode.
28896 (df_UP): Remap to DFmode.
28897 (v16qi_UP):V16QImode.
28898 (v8hi_UP): Remap to V8HImode.
28899 (v4si_UP): Remap to V4SImode.
28900 (v4sf_UP): Remap to V4SFmode.
28901 (v2di_UP): Remap to V2DImode.
28902 (v2df_UP): Remap to V2DFmode.
28903 (ti_UP): Remap to TImode.
28904 (ei_UP): Remap to EImode.
28905 (oi_UP): Remap to OImode.
28906 (ci_UP): Map to CImode.
28907 (xi_UP): Remap to XImode.
28908 (si_UP): Remap to SImode.
28909 (sf_UP): Remap to SFmode.
28910 (hi_UP): Remap to HImode.
28911 (qi_UP): Remap to QImode.
28912 (aarch64_simd_builtin_datum): Make mode a machine_mode.
28913 (VAR1): Build builtin name.
28914 (aarch64_init_simd_builtins): Remove dead code.
28915
28916 2014-08-05 Roman Gareev <gareevroman@gmail.com>
28917
28918 * graphite-isl-ast-to-gimple.c:
28919 (set_options): New function.
28920 (scop_to_isl_ast): Add calling of set_options.
28921
28922 2014-08-05 Jakub Jelinek <jakub@redhat.com>
28923
28924 * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
28925 (analyze_iv_to_split_insn): Don't initialize them.
28926 (get_ivts_expr): Removed.
28927 (allocate_basic_variable, insert_base_initialization): Use
28928 SET_SRC instead of *get_ivts_expr.
28929 (split_iv): Use &SET_SRC instead of get_ivts_expr.
28930
28931 2014-08-05 Roman Gareev <gareevroman@gmail.com>
28932
28933 * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
28934 (translate_isl_ast_for_loop): Add checking of the
28935 flag_loop_parallelize_all.
28936 (ast_build_before_for): New function.
28937 (scop_to_isl_ast): Add checking of the
28938 flag_loop_parallelize_all.
28939 * graphite-dependences.c: Move the defenition of the
28940 scop_get_dependences from graphite-optimize-isl.c to this file.
28941 (apply_schedule_on_deps): Add checking of the ux's emptiness.
28942 (carries_deps): Add checking of the x's value.
28943 * graphite-optimize-isl.c: Move the defenition of the
28944 scop_get_dependences to graphite-dependences.c.
28945 * graphite-poly.h: Add declarations of scop_get_dependences
28946 and carries_deps.
28947
28948 2014-08-04 Rohit <rohitarulraj@freescale.com>
28949
28950 PR target/60102
28951 * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
28952 names.
28953 (alt_reg_names): Likewise.
28954 (rs6000_dwarf_register_span): For SPE high registers, replace
28955 dwarf register numbers with GCC hard register numbers.
28956 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
28957 (rs6000_dbx_register_number): For SPE high registers, return dwarf
28958 register number for the corresponding GCC hard register number.
28959 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
28960 newly added GCC hard register numbers for SPE high registers.
28961 (DWARF_FRAME_REGISTERS): Likewise.
28962 (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
28963 (DWARF_FRAME_REGNUM): Likewise.
28964 (FIXED_REGISTERS): Likewise.
28965 (CALL_USED_REGISTERS): Likewise.
28966 (CALL_REALLY_USED_REGISTERS): Likewise.
28967 (REG_ALLOC_ORDER): Likewise.
28968 (enum reg_class): Likewise.
28969 (REG_CLASS_NAMES): Likewise.
28970 (REG_CLASS_CONTENTS): Likewise.
28971 (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
28972
28973 2014-08-04 Richard Biener <rguenther@suse.de>
28974
28975 * gimple-fold.h (gimple_fold_builtin): Remove.
28976 * gimple-fold.c (gimple_fold_builtin): Make static.
28977 * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
28978 fold_stmt, not gimple_fold_builtin.
28979
28980 2014-08-04 Martin Liska <mliska@suse.cz>
28981
28982 * cgraph.h (csi_end_p): Removed.
28983 (csi_next): Likewise.
28984 (csi_node): Likewise.
28985 (csi_start): Likewise.
28986 (cgraph_node_in_set_p): Likewise.
28987 (cgraph_node_set_size): Likewise.
28988 (vsi_end_p): Likewise.
28989 (vsi_next): Likewise.
28990 (vsi_node): Likewise.
28991 (vsi_start): Likewise.
28992 (varpool_node_set_size): Likewise.
28993 (cgraph_node_set_nonempty_p): Likewise.
28994 (varpool_node_set_nonempty_p): Likewise.
28995 * cgraphunit.c (cgraph_process_new_functions): vec replaces
28996 cgraph_node_set.
28997 * ipa-inline-transform.c: Likewise.
28998 * ipa-utils.c (cgraph_node_set_new): Removed.
28999 (cgraph_node_set_add): Likewise.
29000 (cgraph_node_set_remove): Likewise.
29001 (cgraph_node_set_find): Likewise.
29002 (dump_cgraph_node_set): Likewise.
29003 (debug_cgraph_node_set): Likewise.
29004 (free_cgraph_node_set): Likewise.
29005 (varpool_node_set_new): Likewise.
29006 (varpool_node_set_add): Likewise.
29007 (varpool_node_set_remove): Likewise.
29008 (varpool_node_set_find): Likewise.
29009 (dump_varpool_node_set): Likewise.
29010 (free_varpool_node_set): Likewise.
29011 (debug_varpool_node_set): Likewise.
29012 * tree-emutls.c (struct tls_var_data):
29013 (emutls_index): Removed.
29014 (emutls_decl): Likewise.
29015 (gen_emutls_addr): Function implementation uses newly added
29016 hash_map<varpool_node *, tls_var_data>.
29017 (clear_access_vars): Likewise.
29018 (create_emultls_var): Likewise.
29019 (ipa_lower_emutls): Likewise.
29020 (reset_access): New function.
29021
29022 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
29023
29024 * config/i386/i386.c (ix86_option_override_internal): Add
29025 PTA_RDRND and PTA_MOVBE for bdver4.
29026
29027 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29028 James Greenhalgh <james.greenhalgh@arm.com>
29029
29030 * doc/md.texi (clrsb): Document.
29031 (clz): Change reference to x into operand 1.
29032 (ctz): Likewise.
29033 (popcount): Likewise.
29034
29035 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29036
29037 PR target/61713
29038 * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
29039 move to subtarget in serial version if result is ignored.
29040
29041 2014-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29042 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29043
29044 * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
29045 to any two insns. Update comment. Rename to sched_macro_fuse_insns.
29046 (sched_analyze_insn): Update use of try_group_insn to
29047 sched_macro_fuse_insns.
29048 * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
29049 arguments that are not conditional jumps.
29050
29051 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
29052
29053 * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
29054 family information. Handle BTVER2 cpu with cpuid family value.
29055
29056 2014-08-04 Tom de Vries <tom@codesourcery.com>
29057
29058 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
29059 (glibc_2_11_or_earlier): Document effective-target keywords.
29060
29061 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
29062
29063 * ipa-devirt.c (odr_type_warn_count): Add type.
29064 (possible_polymorphic_call_targets): Set it.
29065 (ipa_devirt): Use it.
29066
29067 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
29068
29069 * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
29070 Document.
29071 * ipa-devirt.c: Include hash-map.h
29072 (struct polymorphic_call_target_d): Add type_warning and decl_warning.
29073 (clear_speculation): Break out of ...
29074 (get_class_context): ... here; speed up handling obviously useless
29075 speculations.
29076 (odr_type_warn_count, decl_warn_count): New structures.
29077 (final_warning_record): New structure.
29078 (final_warning_records): New static variable.
29079 (possible_polymorphic_call_targets): Cleanup handling of
29080 speculative info; do not build speculation when user do not care;
29081 record info about warnings when asked for.
29082 (add_decl_warning): New function.
29083 (type_warning_cmp): New function.
29084 (decl_warning_cmp): New function.
29085 (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
29086 (gate): Enable pass when warnings are requested.
29087 * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
29088 options.
29089
29090 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
29091
29092 * hash-map.h (default_hashmap_traits::mark_key_deleted):
29093 Fix cast.
29094 (hash_map::remove): New method.
29095 (hash_map::traverse): New method.
29096 * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
29097 ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
29098 tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
29099 tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
29100 tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
29101 tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
29102 pointer_map.
29103
29104 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
29105
29106 * hash-set.h: new File.
29107 * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
29108 cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
29109 ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
29110 lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
29111 tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
29112 tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
29113 tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
29114 varpool.c: Use hash_set instead of pointer_set.
29115
29116 2014-08-01 Alan Lawrence <alan.lawrence@arm.com>
29117
29118 * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
29119
29120 2014-08-01 Jiong Wang <jiong.wang@arm.com>
29121
29122 * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
29123 for frame access when strict_p is false.
29124
29125 2014-08-01 Renlin Li <renlin.li@arm.com>
29126 2014-08-01 Jiong Wang <jiong.wang@arm.com>
29127
29128 * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
29129 aarch64_offset_7bit_signed_scaled_p, remove static and use it.
29130 * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
29131 Declaration.
29132 * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
29133 predicate.
29134 * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
29135 aarch64_mem_pair_offset.
29136
29137 2014-08-01 Jiong Wang <jiong.wang@arm.com>
29138
29139 * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
29140 offset.
29141 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
29142 * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
29143
29144 2014-08-01 Matthew Fortune <matthew.fortune@imgtec.com>
29145
29146 * config/mips/mips.h (REGISTER_PREFIX): Define macro.
29147
29148 2014-08-01 James Greenhalgh <james.greenhalgh@arm.com>
29149
29150 PR regression/61510
29151 * cgraphunit.c (analyze_functions): Use get_create rather than get
29152 for decls which are clones of abstract functions.
29153
29154 2014-08-01 Martin Liska <mliska@suse.cz>
29155
29156 * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
29157 * ipa-prop.h (count_formal_params): Global function created from static.
29158 * ipa-prop.c (count_formal_params): Likewise.
29159 * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
29160 profiles for semantically equivalent functions.
29161 * passes.c (do_per_function): If we load body of a function
29162 during WPA, this condition should behave same.
29163 * varpool.c (ctor_for_folding): More tolerant assert for variable
29164 aliases created during WPA.
29165
29166 2014-08-01 Martin Liska <mliska@suse.cz>
29167
29168 * doc/invoke.texi (Options That Control Optimization): Documentation
29169 for -foptimize-strlen introduced. Optimization levels default options
29170 fixed.
29171
29172 2014-08-01 Jakub Jelinek <jakub@redhat.com>
29173
29174 * opts.c (common_handle_option): Handle -fsanitize=alignment.
29175 * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
29176 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
29177 type to bool.
29178 * stor-layout.h (min_align_of_type): New prototype.
29179 * asan.c (pass_sanopt::execute): Don't perform gsi_next if
29180 ubsan_expand* told us not to do it. Remove the extra gsi_end_p
29181 check.
29182 * ubsan.c: Include builtins.h.
29183 (ubsan_expand_bounds_ifn): Change return type to bool,
29184 always return true.
29185 (ubsan_expand_null_ifn): Change return type to bool, change
29186 argument to gimple_stmt_iterator *. Handle both null and alignment
29187 sanitization, take type from ckind argument's type rather than
29188 first argument.
29189 (instrument_member_call): Removed.
29190 (instrument_mem_ref): Remove t argument, add mem and base arguments.
29191 Handle both null and alignment sanitization, don't say whole
29192 struct access is member access. Build 3 argument IFN_UBSAN_NULL
29193 call instead of 2 argument.
29194 (instrument_null): Adjust instrument_mem_ref caller. Don't
29195 instrument calls here.
29196 (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
29197 like SANITIZE_NULL.
29198 * stor-layout.c (min_align_of_type): New function.
29199 * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
29200 Or it into SANITIZE_UNDEFINED.
29201 * doc/invoke.texi (-fsanitize=alignment): Document.
29202
29203 2014-07-31 Andi Kleen <ak@linux.intel.com>
29204
29205 * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
29206
29207 2014-07-31 Andi Kleen <ak@linux.intel.com>
29208
29209 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
29210 inchash.
29211 (vn_reference_compute_hash): Dito.
29212 (vn_nary_op_compute_hash): Dito.
29213 (vn_phi_compute_hash): Dito.
29214 * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
29215
29216 2014-07-31 Andi Kleen <ak@linux.intel.com>
29217
29218 * tree-ssa-dom.c (iterative_hash_exprs_commutative):
29219 Rename to inchash:add_expr_commutative. Convert to inchash.
29220 (iterative_hash_hashable_expr): Rename to
29221 inchash:add_hashable_expr. Convert to inchash.
29222 (avail_expr_hash): Dito.
29223
29224 2014-07-31 Andi Kleen <ak@linux.intel.com>
29225
29226 * ipa-devirt.c (polymorphic_call_target_hasher::hash):
29227 Convert to inchash.
29228
29229 2014-07-31 Andi Kleen <ak@linux.intel.com>
29230
29231 * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
29232
29233 2014-07-31 Andi Kleen <ak@linux.intel.com>
29234
29235 * Makefile.in (OBJS): Add rtlhash.o
29236 * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
29237 (loc_checksum): Dito.
29238 (loc_checksum_ordered): Dito.
29239 (hash_loc_operands): Dito.
29240 (hash_locs): Dito.
29241 (hash_loc_list): Dito.
29242 * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
29243 * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
29244 * rtlhash.c: New file.
29245 * rtlhash.h: New file.
29246
29247 2014-07-31 Andi Kleen <ak@linux.intel.com>
29248
29249 * inchash.h (inchash): Change inchash class to namespace.
29250 (class hash): ... Rename from inchash.
29251 (add_object): Move from macro to class template.
29252 * lto-streamer-out.c (hash_tree): Change inchash
29253 to inchash::hash.
29254 * tree.c (build_type_attribute_qual_variant): Dito.
29255 (type_hash_list): Dito.
29256 (attribute_hash_list): Dito.
29257 (iterative_hstate_expr): Rename to inchash::add_expr
29258 (build_range_type_1): Change inchash to inchash::hash
29259 and use hash::add_expr.
29260 (build_array_type_1): Dito.
29261 (build_function_type): Dito
29262 (build_method_type_directly): Dito.
29263 (build_offset_type): Dito.
29264 (build_complex_type): Dito.
29265 (make_vector_type): Dito.
29266 * tree.h (iterative_hash_expr): Dito.
29267
29268 2014-07-31 Chen Gang <gang.chen.5i5j@gmail.com>
29269
29270 * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
29271
29272 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
29273
29274 * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
29275 correct alphabetical position.
29276 (vpaddd_f64): Rewrite using builtins.
29277 (vpaddd_s64): Move to correct alphabetical position.
29278 (vpaddd_u64): New.
29279
29280 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
29281
29282 PR target/61844
29283 * config/sh/sh.c (sh_legitimate_address_p,
29284 sh_legitimize_reload_address): Handle reg+reg address modes when
29285 ALLOW_INDEXED_ADDRESS is false.
29286 * config/sh/predicates.md (general_movsrc_operand,
29287 general_movdst_operand): Likewise.
29288
29289 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
29290
29291 * config/aarch64/aarch64-builtins.c
29292 (aarch64_gimple_fold_builtin): Don't fold reduction operations for
29293 BYTES_BIG_ENDIAN.
29294
29295 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
29296
29297 * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
29298 the generated mask based on BYTES_BIG_ENDIAN.
29299 (aarch64_simd_check_vect_par_cnst_half): New.
29300 * config/aarch64/aarch64-protos.h
29301 (aarch64_simd_check_vect_par_cnst_half): New.
29302 * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
29303 the check out to aarch64_simd_check_vect_par_cnst_half.
29304 (vect_par_cnst_lo_half): Likewise.
29305 * config/aarch64/aarch64-simd.md
29306 (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
29307 (move_hi_quad_<mode>): Always generate a low mask.
29308
29309 2014-07-30 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
29310
29311 * doc/invoke.texi (AVR Options): Add documentation about
29312 __AVR_DEVICE_NAME__ built-in macro.
29313
29314 2014-07-31 Charles Baylis <charles.baylis@linaro.org>
29315
29316 PR target/61948
29317 * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
29318 constraints are satisfied.
29319 (<shift>di3_neon): Likewise.
29320
29321 2014-07-31 Richard Biener <rguenther@suse.de>
29322
29323 PR tree-optimization/61964
29324 * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
29325 by structural equality.
29326
29327 2014-07-31 Yury Gribov <y.gribov@samsung.com>
29328
29329 * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
29330 * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
29331 * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
29332 New enums.
29333 * gcc.c (sanitize_spec_function): Support new option.
29334 (SANITIZER_SPEC): Remove now redundant check.
29335 * opts.c (common_handle_option): Support new option.
29336 (finish_options): Check for incompatibilities.
29337 * toplev.c (process_options): Split userspace-specific checks.
29338
29339 2014-07-31 Richard Biener <rguenther@suse.de>
29340
29341 * lto-streamer.h (struct output_block): Remove global.
29342 (struct data_in): Remove labels, num_named_labels and
29343 num_unnamed_labels.
29344 * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
29345 * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
29346
29347 2014-07-31 Marc Glisse <marc.glisse@inria.fr>
29348
29349 PR c++/60517
29350 * common.opt (-Wreturn-local-addr): Moved from c.opt.
29351 * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
29352 (isolate_path): New argument to avoid inserting a trap.
29353 (find_implicit_erroneous_behaviour): Handle returning the address
29354 of a local variable.
29355 (find_explicit_erroneous_behaviour): Likewise.
29356
29357 2014-07-31 Bingfeng Mei <bmei@broadcom.com>
29358
29359 PR lto/61868
29360 * toplev.c (init_random_seed): Move piece of code never called to
29361 set_random_seed.
29362 (set_random_seed): see above.
29363
29364 2014-07-31 Tom de Vries <tom@codesourcery.com>
29365
29366 * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
29367
29368 2014-07-31 Richard Sandiford <rdsandiford@googlemail.com>
29369
29370 * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
29371 (compute_regs_asm_clobbered): Use extract_asm_operands instead.
29372
29373 2014-07-31 Richard Biener <rguenther@suse.de>
29374
29375 * data-streamer.h (streamer_write_data_stream): Declare here,
29376 renamed from ...
29377 * lto-streamer.h (lto_output_data_stream): ... this. Remove.
29378 * lto-cgraph.c (lto_output_node): Adjust.
29379 (lto_output_varpool_node): Likewise.
29380 * data-streamer-out.c (streamer_string_index): Likewise.
29381 (streamer_write_data_stream, lto_append_block): Move from ...
29382 * lto-section-out.c (lto_output_data_stream,
29383 lto_append_block): ... here.
29384
29385 2014-07-30 Mike Stump <mikestump@comcast.net>
29386
29387 * configure.ac: Also check for popen.
29388 * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
29389 * configure: Regenerate.
29390 * config.in: Regenerate.
29391
29392 2014-07-30 Martin Jambor <mjambor@suse.cz>
29393
29394 * tree-sra.c (sra_ipa_modify_assign): Change type of the first
29395 parameter to gimple.
29396
29397 2014-07-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
29398
29399 * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
29400 address as second parameter to __tpf_eh_return routine.
29401
29402 2014-07-30 Jiong Wang <jiong.wang@arm.com>
29403
29404 * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
29405 Thumb2.
29406
29407 2014-07-30 Tom Tromey <tromey@redhat.com>
29408
29409 PR c/59855
29410 * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
29411 * doc/extend.texi (Type Attributes): Document designated_init
29412 attribute.
29413
29414 2014-07-30 Roman Gareev <gareevroman@gmail.com>
29415
29416 * graphite-isl-ast-to-gimple.c:
29417 (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
29418 (gcc_expression_from_isl_expression): Pass type to
29419 gcc_expression_from_isl_ast_expr_id.
29420
29421 2014-07-30 Richard Biener <rguenther@suse.de>
29422
29423 * lto-streamer.h (lto_write_data): New function.
29424 * langhooks.c (lhd_append_data): Do not free block.
29425 * lto-section-out.c (lto_write_data): New function writing
29426 raw data to the current section.
29427 (lto_write_stream): Adjust for langhook semantic change.
29428 (lto_destroy_simple_output_block): Write header directly.
29429 * lto-opts.c (lto_write_options): Write options directly.
29430 * lto-streamer-out.c (produce_asm): Write heaeder directly.
29431 (lto_output_toplevel_asms): Likewise.
29432 (copy_function_or_variable): Copy data directly.
29433 (write_global_references): Output index table directly.
29434 (lto_output_decl_state_refs): Likewise.
29435 (write_symbol): Write data directly.
29436 (produce_symtab): Adjust.
29437 (produce_asm_for_decls): Output header and refs directly.
29438
29439 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
29440
29441 * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
29442 to speculative_targets
29443 (get_class_context): Fix handling of contextes without outer type;
29444 avoid matching non-polymorphic types in LTO.
29445 (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
29446 parameter to speculative_targetsp; handle speculation.
29447 (dump_possible_polymorphic_call_targets): Update dumping.
29448
29449 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
29450
29451 * common.opt (Wodr): Enable by default.
29452
29453 2014-07-29 Olivier Hainque <hainque@adacore.com>
29454
29455 * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
29456
29457 2014-07-29 H.J. Lu <hongjiu.lu@intel.com>
29458
29459 PR bootstrap/61914
29460 * gengtype.c (strtoken): New function.
29461 (create_user_defined_type): Replace strtok with strtoken.
29462
29463 2014-07-29 Nathan Sidwell <nathan@acm.org>
29464
29465 * gcov-io.c (gcov_var): Make hidden.
29466 * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
29467 (gcov_do_dump): Declare.
29468 (gcov_output_files): Call gcov_do_dump, not gcov_exit).
29469
29470 2014-07-29 Martin Jambor <mjambor@suse.cz>
29471
29472 * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
29473 parameter to gimple.
29474 (sra_modify_assign): Likewise.
29475
29476 2014-07-29 Richard Biener <rguenther@suse.de>
29477
29478 PR middle-end/52478
29479 * expr.c (expand_expr_real_2): Revert last change.
29480
29481 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
29482
29483 * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
29484 * cgraph.h (cgraph_indirect_call_info): Add speculative data.
29485 * gimple-fold.c (fold_gimple_assign): Fix check for virtual
29486 call.
29487 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
29488 (contains_type_p): Forward declare.
29489 (polymorphic_call_target_hasher::hash): Hash speculative info.
29490 (polymorphic_call_target_hasher::equal): Compare speculative info.
29491 (get_class_context): Handle speuclation.
29492 (contains_type_p): Update.
29493 (get_polymorphic_call_info_for_decl): Update.
29494 (walk_ssa_copies): Break out from ...
29495 (get_polymorphic_call_info): ... here; set speculative context
29496 before giving up.
29497 * ipa-prop.c (ipa_write_indirect_edge_info,
29498 ipa_read_indirect_edge_info): Stream speculative context.
29499 * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
29500 (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
29501 SPECULATIVE_MAYBE_DERIVED_TYPE).
29502 (possible_polymorphic_call_targets overriders): Update.
29503 (dump_possible_polymorphic_call_targets overriders): Update.
29504 (dump_possible_polymorphic_call_target_p overriders): Update.
29505
29506 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
29507
29508 * gimple-fold.c (fold_gimple_assign): Fix condition guarding
29509 ipa-devirt path; fix thinko there.
29510
29511 2014-07-28 Trevor Saunders <tsaunders@mozilla.com>
29512
29513 * config/i386/i386.c (ix86_return_in_memory): Replace one
29514 ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
29515
29516 2014-07-28 Marek Polacek <polacek@redhat.com>
29517
29518 * doc/invoke.texi (-Wno-odr): Fix @item entry. Tweak wording.
29519
29520 2014-07-28 Peter Bergner <bergner@vnet.ibm.com>
29521
29522 * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
29523 * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
29524 * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
29525 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
29526 (USE_LD_AS_NEEDED): Likewise.
29527 (ASM_APP_ON): Likewise.
29528 (ASM_APP_OFF): Likewise.
29529 (TARGET_POSIX_IO): Likewise.
29530 * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
29531 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
29532 (USE_LD_AS_NEEDED): Likewise.
29533 (ASM_APP_ON): Likewise.
29534 (ASM_APP_OFF): Likewise.
29535 (TARGET_POSIX_IO): Likewise.
29536
29537 2014-07-28 Eric Botcazou <ebotcazou@adacore.com>
29538
29539 PR middle-end/61734
29540 * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
29541 operators other than the equality operators.
29542
29543 2014-07-28 Richard Biener <rguenther@suse.de>
29544
29545 PR middle-end/52478
29546 * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
29547 sure to register SImode ones, not only >= word_mode ones.
29548 * expr.c (expand_expr_real_2): When expanding -ftrapv
29549 binops do not use OPTAB_LIB_WIDEN.
29550
29551 2014-07-28 Richard Sandiford <rdsandiford@googlemail.com>
29552
29553 PR middle-end/61919
29554 * tree-outof-ssa.c (insert_partition_copy_on_edge)
29555 (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
29556 (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
29557 inserting them in the insn stream.
29558
29559 2014-07-28 Marek Polacek <polacek@redhat.com>
29560
29561 PR middle-end/61913
29562 * common.opt (Wodr): Add Var.
29563
29564 2014-07-28 Richard Biener <rguenther@suse.de>
29565
29566 PR tree-optimization/61921
29567 * tree-ssa-structalias.c (create_variable_info_for_1): Check
29568 if there is a varpool node before dereferencing it.
29569
29570 2014-07-28 Roman Gareev <gareevroman@gmail.com>
29571
29572 * graphite-sese-to-poly.c:
29573 (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
29574 id of the pbb), which contains pointer to the pbb1.
29575
29576 * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
29577
29578 2014-07-28 Roman Gareev <gareevroman@gmail.com>
29579
29580 * graphite-isl-ast-to-gimple.c:
29581 (graphite_create_new_guard): New function.
29582 (translate_isl_ast_node_if): New function.
29583 (translate_isl_ast): Add calling of translate_isl_ast_node_if.
29584
29585 * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
29586
29587 2014-07-27 Anthony Green <green@moxielogic.com>
29588
29589 * config.gcc: Add moxie-*-moxiebox* configuration.
29590 * config/moxie/moxiebox.h: New file.
29591
29592 2014-07-26 Andrew Pinski <apinski@cavium.com>
29593
29594 * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
29595 from the read only register.
29596
29597 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
29598
29599 * ira-costs.c (find_costs_and_classes): For -O0, use the best class
29600 as the allocation class if it isn't likely to be spilled.
29601
29602 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
29603
29604 * rtl.h (tls_referenced_p): Declare.
29605 * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
29606 * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
29607 (mips_cannot_force_const_mem): Use tls_referenced_p.
29608 * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
29609 * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
29610 instead of pa_tls_referenced_p.
29611 * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
29612 (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
29613 (pa_legitimate_constant_p): Likewise.
29614 (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
29615 * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
29616 (rs6000_cannot_force_const_mem, rs6000_emit_move)
29617 (rs6000_address_for_altivec): Use tls_referenced_p instead of
29618 rs6000_tls_referenced_p.
29619 (rs6000_tls_symbol_ref_1): Delete.
29620
29621 2014-07-26 Marc Glisse <marc.glisse@inria.fr>
29622
29623 PR target/44551
29624 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
29625 Optimize inverse of a VEC_CONCAT.
29626
29627 2014-07-25 Xinliang David Li <davidxl@google.com>
29628
29629 * params.def: New parameter.
29630 * coverage.c (get_coverage_counts): Check new flag.
29631 (coverage_compute_profile_id): Check new flag.
29632 (coverage_begin_function): Check new flag.
29633 (coverage_end_function): Check new flag.
29634 * value-prof.c (coverage_node_map_initialized_p): New function.
29635 (init_node_map): Populate map with all functions.
29636 * doc/invoke.texi: Document new parameter.
29637
29638 2014-07-25 Jan Hubicka <hubicka@ucw.cz>
29639 Richard Biener <rguenther@suse.de>
29640
29641 * lto-streamer-out.c (struct sccs): Turn to ...
29642 (class DFS): ... this one; refactor the DFS walk so it can
29643 be re-done on per-SCC basis.
29644 (DFS::DFS): New constructor.
29645 (DFS::~DFS): New destructor.
29646 (hash_tree): Add new MAP argument holding in-SCC hash values;
29647 remove POINTER_TYPE hashing hack.
29648 (scc_entry_compare): Rename to ...
29649 (DFS::scc_entry_compare): ... this one.
29650 (hash_scc): Rename to ...
29651 (DFS::hash_scc): ... this one; pass output_block instead
29652 of streamer_cache; work harder to get unique and stable SCC
29653 hashes.
29654 (DFS_write_tree): Rename to ...
29655 (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
29656 (lto_output_tree): Update.
29657
29658 2014-07-25 Andi Kleen <ak@linux.intel.com>
29659
29660 * lto-streamer-out.c (hash_tree): Convert to inchash.
29661
29662 2014-07-25 Andi Kleen <ak@linux.intel.com>
29663
29664 * tree.c (build_type_attribute_qual_variant): Use inchash.
29665 (type_hash_list): Dito.
29666 (attribute_hash_list): Dito
29667 (iterative_hstate_expr): Dito.
29668 (iterative_hash_expr): Dito.
29669 (build_range_type_1): Dito.
29670 (build_array_type_1): Dito.
29671 (build_function_type): Dito.
29672 (build_method_type_directly): Dito.
29673 (build_offset_type): Dito.
29674 (build_complex_type): Dito.
29675 (make_vector_type): Dito.
29676 * tree.h (iterative_hash_expr): Add compat wrapper.
29677 (iterative_hstate_expr): Add.
29678
29679 2014-07-25 Andi Kleen <ak@linux.intel.com>
29680
29681 * Makefile.in (OBJS): Add inchash.o.
29682 (PLUGIN_HEADERS): Add inchash.h.
29683 * ipa-devirt.c: Include inchash.h.
29684 * lto-streamer-out.c: Dito.
29685 * tree-ssa-dom.c: Dito.
29686 * tree-ssa-pre.c: Dito.
29687 * tree-ssa-sccvn.c: Dito.
29688 * tree-ssa-tail-merge.c: Dito.
29689 * asan.c: Dito.
29690 * tree.c (iterative_hash_hashval_t): Move to ...
29691 (iterative_hash_host_wide_int): Move to ...
29692 * inchash.c: Here. New file.
29693 * tree.h (iterative_hash_hashval_t): Move to ...
29694 (iterative_hash_host_wide_int): Move to ...
29695 * inchash.h: Here. New file.
29696
29697 2014-07-25 Richard Biener <rguenther@suse.de>
29698
29699 PR middle-end/61762
29700 PR middle-end/61894
29701 * fold-const.c (native_encode_int): Add and handle offset
29702 parameter to do partial encodings of expr.
29703 (native_encode_fixed): Likewise.
29704 (native_encode_real): Likewise.
29705 (native_encode_complex): Likewise.
29706 (native_encode_vector): Likewise.
29707 (native_encode_string): Likewise.
29708 (native_encode_expr): Likewise.
29709 * fold-const.c (native_encode_expr): Add offset parameter
29710 defaulting to -1.
29711 * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
29712 (fold_ctor_reference): Handle all reads from tcc_constant
29713 ctors.
29714
29715 2014-07-25 Richard Biener <rguenther@suse.de>
29716
29717 * tree-inline.c (estimate_move_cost): Mark speed_p argument
29718 as possibly unused.
29719
29720 2014-07-23 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
29721
29722 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
29723
29724 2014-07-24 Kyle McMartin <kyle@redhat.com>
29725
29726 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
29727
29728 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
29729
29730 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
29731 Add prototype.
29732 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
29733 function.
29734 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
29735 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
29736 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
29737
29738 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
29739
29740 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
29741 and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
29742 aggregate types. Instead, *all* aggregate types, except for single-
29743 element or homogeneous float/vector aggregates, are quadword-aligned
29744 if required by their type alignment. Issue -Wpsabi note when a type
29745 is now treated differently than before.
29746
29747 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
29748
29749 * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
29750 does not fit fully into floating-point registers, and there is still
29751 space in the register parameter area, use GPRs to pass those parts
29752 of the argument. Issue -Wpsabi note if any parameter is now treated
29753 differently than before.
29754 (rs6000_arg_partial_bytes): Update.
29755
29756 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
29757
29758 * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
29759
29760 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
29761
29762 * rtl.h (target_rtl): Remove lang_dependent_initialized.
29763 * toplev.c (initialize_rtl): Don't use it. Move previously
29764 "language-dependent" calls to...
29765 (backend_init): ...here.
29766 (lang_dependent_init_target): Don't set lang_dependent_initialized.
29767 Assert that RTL initialization hasn't happend yet.
29768
29769 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
29770
29771 PR rtl-optimization/61629
29772 * reginfo.c (reinit_regs): Only call ira_init and recog_init if
29773 they have already been initialized.
29774
29775 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
29776
29777 PR middle-end/61268
29778 * function.c (assign_parm_setup_reg): Prevent invalid sharing of
29779 DECL_INCOMING_RTL and entry_parm.
29780 (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
29781 * calls.c (load_register_parameters): Likewise argument values.
29782 (emit_library_call_value_1, store_one_arg): Likewise argument
29783 save areas.
29784 * config/i386/i386.c (assign_386_stack_local): Likewise the local
29785 stack slot.
29786 * explow.c (validize_mem): Modify the argument in-place.
29787
29788 2014-07-24 Jiong Wang <jiong.wang@arm.com>
29789
29790 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
29791 (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
29792
29793 2014-07-24 Jiong Wang <jiong.wang@arm.com>
29794
29795 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
29796 (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
29797
29798 2014-07-24 Jiong Wang <jiong.wang@arm.com>
29799
29800 * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
29801 (aarch64_save_callee_saves): New parameter "skip_wb".
29802 (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
29803
29804 2014-07-24 Jiong Wang <jiong.wang@arm.com>
29805
29806 * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
29807 "wb_candidate2".
29808 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
29809
29810 2014-07-24 Roman Gareev <gareevroman@gmail.com>
29811
29812 * graphite-isl-ast-to-gimple.c:
29813 (graphite_create_new_loop): Add calling of isl_id_free to properly
29814 decrement reference counts.
29815
29816 * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
29817
29818 2014-07-24 Martin Liska <mliska@suse.cz>
29819 * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
29820 function used.
29821 * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
29822 (rs6000_code_end): Likewise.
29823
29824 2014-07-24 Martin Liska <mliska@suse.cz>
29825
29826 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
29827 symtab_node funtion used.
29828 (rs6000_xcoff_declare_object_name): Likewise.
29829
29830 2014-07-24 Martin Liska <mliska@suse.cz>
29831
29832 * cgraphunit.c (compile): Correct function used.
29833
29834 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
29835
29836 * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
29837 as non-indexable.
29838
29839 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
29840
29841 PR lto/61802
29842 * varasm.c (bss_initializer_p): Handle offlined ctors.
29843 (align_variable, get_variable_align): Likewise.
29844 (make_decl_one_only): Likewise.
29845 (default_binds_local_p_1): Likewise.
29846 (decl_binds_to_current_def_p): Likewise.
29847 (get_variable_section): Get constructor if it is offlined.
29848 (assemble_variable_contents): Sanity check that the caller
29849 streamed in the ctor in LTO.
29850
29851 2014-07-24 Roman Gareev <gareevroman@gmail.com>
29852
29853 * graphite-isl-ast-to-gimple.c:
29854 (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
29855 (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
29856 isl_ast_op_pdiv_r to the different case.
29857
29858 * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
29859
29860 2014-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29861
29862 PR middle-end/61876
29863 * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
29864 when flag_errno_math is on.
29865
29866 2014-07-24 Martin Liska <mliska@suse.cz>
29867
29868 * cgraph.h (varpool_node):
29869 (availability get_availability (void)):
29870 created from cgraph_variable_initializer_availability
29871 (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
29872 created from: cgraph_variable_initializer_availability
29873 (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
29874 (void finalize_named_section_flags (void)):
29875 created from varpool_finalize_named_section_flags
29876 (bool assemble_decl (void)): created from varpool_assemble_decl
29877 (void analyze (void)): created from varpool_analyze_node
29878 (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
29879 void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
29880 (void remove_initializer (void)): created from varpool_remove_initializer
29881 (tree get_constructor (void)): created from varpool_get_constructor
29882 (bool externally_visible_p (void)): created from varpool_externally_visible_p
29883 (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
29884 (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
29885 (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
29886 (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
29887 (static void finalize_decl (tree decl)): created from varpool_finalize_decl
29888 (static bool output_variables (void)): created from varpool_output_variables
29889 (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
29890 created from varpool_extra_name_alias
29891 (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
29892 (static void dump_varpool (FILE *f)): created from dump_varpool
29893 (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
29894 (static varpool_node *create_empty (void)): created from varpool_create_empty_node
29895 (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
29896 (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
29897 (void assemble_aliases (void)): created from assemble_aliases
29898
29899 2014-07-24 Martin Liska <mliska@suse.cz>
29900
29901 * cgraph.h (symtab_node):
29902 (void register_symbol (void)): created from symtab_register_node
29903 (void remove (void)): created from symtab_remove_node
29904 (void dump (FILE *f)): created from dump_symtab_node
29905 (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
29906 (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
29907 (struct ipa_ref *add_reference (symtab_node *referred_node,
29908 enum ipa_ref_use use_type)): created from add_reference
29909 (struct ipa_ref *add_reference (symtab_node *referred_node,
29910 enum ipa_ref_use use_type, gimple stmt)): created from add_reference
29911 (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
29912 gimple stmt)): created from maybe_add_reference
29913 (bool semantically_equivalent_p (symtab_node *target)): created from
29914 symtab_semantically_equivalent_p
29915 (void remove_from_same_comdat_group (void)): created from
29916 remove_from_same_comdat_group
29917 (void add_to_same_comdat_group (symtab_node *old_node)): created from
29918 symtab_add_to_same_comdat_group
29919 (void dissolve_same_comdat_group_list (void)): created from
29920 symtab_dissolve_same_comdat_group_list
29921 (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
29922 (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
29923 created from symtab_alias_ultimate_target
29924 (inline symtab_node *next_defined_symbol (void)): created from
29925 symtab_next_defined_symbol
29926 (bool resolve_alias (symtab_node *target)): created from
29927 symtab_resolve_alias
29928 (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
29929 void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
29930 (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
29931 (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
29932 (void set_section (const char *section)): created from set_section_1
29933 (enum availability get_availability (void)): created from symtab_node_availability
29934 (void make_decl_local (void)): created from symtab_make_decl_local
29935 (bool real_symbol_p (void)): created from symtab_read_node
29936 (can_be_discarded_p (void)): created from symtab_can_be_discarded
29937 (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
29938 (inline bool in_same_comdat_group_p (symtab_node *target)): created from
29939 symtab_in_same_comdat_p;
29940 (bool address_taken_from_non_vtable_p (void)): created from
29941 address_taken_from_non_vtable_p
29942 (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
29943 (static void dump_table (FILE *)): created from dump_symtab
29944 (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
29945 (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
29946 (static bool used_from_object_file_p_worker (symtab_node *node)): created from
29947 symtab_used_from_object_file_p
29948 (void dump_base (FILE *)): created from dump_symtab_base
29949 (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
29950 (void unregister (void)): created from symtab_unregister_node
29951 (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
29952 (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
29953 (static bool noninterposable_alias (symtab_node *node, void *data)): created from
29954 symtab_nonoverwritable_alias_1
29955 * cgraph.h (cgraph_node):
29956 (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
29957 created from cgraph_remove_node_and_inline_clones
29958 (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
29959 (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
29960 bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
29961 (cgraph_node *function_symbol (enum availability *avail = NULL)):
29962 created from cgraph_function_node
29963 (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
29964 vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
29965 struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
29966 created from cgraph_create_clone
29967 (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
29968 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
29969 created from cgraph_create_virtual_clone
29970 (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
29971 (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
29972 bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
29973 (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
29974 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
29975 bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
29976 created from cgraph_function_version_info
29977 (struct cgraph_function_version_info *insert_new_function_version (void)):
29978 created from insert_new_cgraph_node_version
29979 (struct cgraph_function_version_info *function_version (void)): created from
29980 get_cgraph_node_version
29981 (void analyze (void)): created from analyze_function
29982 (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
29983 HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
29984 tree real_alias) cgraph_add_thunk
29985 (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
29986 (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
29987 created from cgraph_function_or_thunk_node
29988 (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
29989 created from expand_thunk
29990 (void reset (void)): created from cgraph_reset_node
29991 (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
29992 (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
29993 (void remove (void)): created from cgraph_remove_node
29994 (void dump (FILE *f)): created from dump_cgraph_node
29995 (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
29996 (bool get_body (void)): created from cgraph_get_body
29997 (void release_body (void)): created from cgraph_release_function_body
29998 (void unnest (void)): created from cgraph_unnest_node
29999 (void make_local (void)): created from cgraph_make_node_local
30000 (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
30001 (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
30002 gcov_type count, int freq)): created from cgraph_create_edge
30003 (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
30004 gcov_type count, int freq)): created from cgraph_create_indirect_edge
30005 (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
30006 gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
30007 created from cgraph_create_edge_including_clones
30008 (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
30009 (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
30010 (void remove_callers (void)): created from cgraph_node_remove_callers
30011 (void remove_callees (void)): created from cgraph_node_remove_callees
30012 (enum availability get_availability (void)): created from cgraph_function_body_availability
30013 (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
30014 (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
30015 (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
30016 (void call_duplication_hooks (cgraph_node *node2)): created from
30017 cgraph_call_node_duplication_hooks
30018 (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
30019 void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
30020 (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
30021 void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
30022 (void call_function_insertion_hooks (void)):
30023 created from cgraph_call_function_insertion_hooks
30024 (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
30025 (bool local_p (void)): created from cgraph_local_node
30026 (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
30027 (bool cannot_return_p (void)): created from cgraph_node_cannot_return
30028 (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
30029 (inline bool only_called_directly_or_aliased_p (void)):
30030 created from cgraph_only_called_directly_or_aliased_p
30031 (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
30032 created from cgraph_will_be_removed_from_program_if_no_direct_calls
30033 (bool can_remove_if_no_direct_calls_and_refs_p (void)):
30034 created from cgraph_can_remove_if_no_direct_calls_and_refs_p
30035 (bool can_remove_if_no_direct_calls_p (void)):
30036 created from cgraph_can_remove_if_no_direct_calls_p
30037 (inline bool has_gimple_body_p (void)):
30038 created from cgraph_function_with_gimple_body_p
30039 (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
30040 (static void dump_cgraph (FILE *f)): created from dump_cgraph
30041 (static inline void debug_cgraph (void)): created from debug_cgraph
30042 (static void record_function_versions (tree decl1, tree decl2)):
30043 created from record_function_versions
30044 (static void delete_function_version (tree decl)):
30045 created from delete_function_version
30046 (static void add_new_function (tree fndecl, bool lowered)):
30047 created from cgraph_add_new_function
30048 (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
30049 (static cgraph_node * create (tree decl)): created from cgraph_create_node
30050 (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
30051 (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
30052 (static cgraph_node *get_for_asmname (tree asmname)):
30053 created from cgraph_node_for_asm
30054 (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
30055 created from cgraph_same_body_alias
30056 (static bool used_from_object_file_p_worker (cgraph_node *node,
30057 void *): new function
30058 (static bool non_local_p (cgraph_node *node, void *)):
30059 created from cgraph_non_local_node_p_1
30060 (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
30061 created from verify_cgraph
30062 (static bool make_local (cgraph_node *node, void *)):
30063 created from cgraph_make_node_local
30064 (static cgraph_node *create_alias (tree alias, tree target)):
30065 created from cgraph_create_function_alias
30066 (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
30067 gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
30068 created from cgraph_create_edge_1
30069 * cgraph.h (varpool_node):
30070 (void remove (void)): created from varpool_remove_node
30071 (void dump (FILE *f)): created from dump_varpool_node
30072
30073 2014-07-24 Richard Biener <rguenther@suse.de>
30074
30075 PR ipa/61823
30076 * tree-ssa-structalias.c (create_variable_info_for_1):
30077 Use varpool_get_constructor.
30078 (create_variable_info_for): Likewise.
30079
30080 2014-07-24 Jiong Wang <jiong.wang@arm.com>
30081
30082 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
30083 subtract outgoing area size when restoring stack_pointer_rtx.
30084
30085 2014-07-24 Nick Clifton <nickc@redhat.com>
30086
30087 * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
30088 that operations are taking place in parallel.
30089 * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
30090
30091 2014-07-24 Thomas Schwinge <thomas@codesourcery.com>
30092
30093 * omp-low.c (extract_omp_for_data): Add missing break statement.
30094
30095 2014-07-24 Richard Biener <rguenther@suse.de>
30096
30097 * tree-inline.h (estimate_move_cost): Add speed_p parameter.
30098 * tree-inline.c (estimate_move_cost): Add speed_p parameter
30099 and adjust MOVE_RATIO query accordingly.
30100 (estimate_num_insns): Adjust callers.
30101 * ipa-prop.c (ipa_populate_param_decls): Likewise.
30102 * ipa-cp.c (gather_context_independent_values,
30103 estimate_local_effects): Likewise.
30104 * ipa-split.c (consider_split): Likewise.
30105
30106 2014-07-24 Trevor Saunders <tsaunders@mozilla.com>
30107
30108 * config/i386/driver-i386.c: Remove names of unused arguments and
30109 unnecessary unused attributes.
30110 * config/i386/host-mingw32.c: Likewise.
30111 * config/i386/i386.c: Likewise.
30112 * config/i386/winnt-stubs.c: Likewise.
30113 * config/i386/winnt.c: Likewise.
30114
30115 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30116
30117 * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
30118 (aarch64_gen_loadwb_pair): New helper function.
30119 (aarch64_expand_epilogue): Simplify code using new helper functions.
30120 * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
30121
30122 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30123
30124 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
30125 (aarch64_gen_storewb_pair): New helper function.
30126 (aarch64_expand_prologue): Simplify code using new helper functions.
30127 * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
30128
30129 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30130
30131 * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
30132 Rename to aarch64_save_callee_saves, remove restore code.
30133 (aarch64_restore_callee_saves): New function.
30134
30135 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30136
30137 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
30138 (aarch64_save_callee_saves): New function to handle reg save
30139 for both core and vectore regs.
30140
30141 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30142
30143 * config/aarch64/aarch64.c (aarch64_gen_load_pair)
30144 (aarch64_gen_store_pair): New helper function.
30145 (aarch64_save_or_restore_callee_save_registers)
30146 (aarch64_save_or_restore_fprs): Use new helper functions.
30147
30148 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30149
30150 * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
30151 (aarch64_save_or_restore_callee_save_registers)
30152 (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
30153
30154 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30155
30156 * config/aarch64/aarch64.c
30157 (aarch64_save_or_restore_callee_save_registers)
30158 (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
30159
30160 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30161
30162 * config/aarch64/aarch64.c
30163 (aarch64_save_or_restore_callee_save_registers)
30164 (aarch64_save_or_restore_fprs): Remove 'increment'.
30165
30166 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30167
30168 * config/aarch64/aarch64.c
30169 (aarch64_save_or_restore_callee_save_registers)
30170 (aarch64_save_or_restore_fprs): Use register offset in
30171 cfun->machine->frame.reg_offset.
30172
30173 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30174
30175 * config/aarch64/aarch64.c
30176 (aarch64_save_or_restore_callee_save_registers)
30177 (aarch64_save_or_restore_fprs): Remove base_rtx.
30178
30179 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30180
30181 * config/aarch64/aarch64.c
30182 (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
30183 to 'start_offset'. Remove local variable 'start_offset'.
30184
30185 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30186
30187 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
30188 type to HOST_WIDE_INT.
30189
30190 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30191
30192 * config/aarch64/aarch64.c (aarch64_expand_prologue)
30193 (aarch64_save_or_restore_fprs)
30194 (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
30195
30196 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
30197
30198 * config/arm/t-rtems-eabi: Add
30199 mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
30200 mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
30201 mbig-endian/mthumb/march=armv7-r, and
30202 mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
30203 multilibs.
30204
30205 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
30206 Chris Johns <chrisj@rtems.org>
30207 Joel Sherrill <joel.sherrill@oarcorp.com>
30208
30209 * config.gcc: Add nios2-*-rtems*.
30210 * config/nios2/rtems.h: New file.
30211 * gcc/config/nios2/t-rtems: New file.
30212
30213 2014-07-23 Segher Boessenkool <segher@kernel.crashing.org>
30214
30215 PR target/61396
30216 * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
30217 constant numbers, not general constants.
30218 (rs6000_expand_vector_init): Ditto.
30219
30220 2014-07-23 Nathan Sidwell <nathan@acm.org>
30221
30222 * gcov-tool.c (gcov_list): Declare here.
30223 (set_gcov_list): Remove.
30224 (gcov_output_files): Set gcov_list directly.
30225
30226 2014-07-23 Host Schirmeier <horst@schirmeier.com>
30227
30228 * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
30229
30230 2014-07-23 Jiong Wang <jiong.wang@arm.com>
30231
30232 * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
30233 callee-saved registers are available for padding purpose
30234 and r3 is not mandatory, then prefer use those callee-saved
30235 instead of r3.
30236
30237 2014-07-23 Richard Biener <rguenther@suse.de>
30238
30239 * params.def (PARAM_MAX_COMBINE_INSNS): New.
30240 * combine.c: Include statistics.h and params.h.
30241 (combine_instructions): Guard three and four insn combines
30242 with max-combine-insns value. Record statistics for combines
30243 performed.
30244 * doc/invoke.texi (max-combine-insns): Document new param.
30245
30246 2014-07-23 Roman Gareev <gareevroman@gmail.com>
30247
30248 * graphite-isl-ast-to-gimple.c:
30249 (translate_isl_ast_node_block): New function.
30250 (translate_isl_ast): Add calling of translate_isl_ast_node_block.
30251
30252 * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
30253 * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
30254
30255 2014-07-23 Roman Gareev <gareevroman@gmail.com>
30256
30257 * graphite-isl-ast-to-gimple.c:
30258 (get_max_schedule_dimensions): New function.
30259 (extend_schedule): Likewise.
30260 (generate_isl_schedule): Add calling of extend_schedule and
30261 get_max_schedule_dimensions.
30262
30263 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30264
30265 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
30266 (case UNSPEC): Handle UNSPEC_RBIT.
30267
30268 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30269
30270 * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
30271 (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
30272
30273 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30274
30275 * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
30276
30277 2014-07-22 Roman Gareev <gareevroman@gmail.com>
30278
30279 * graphite-isl-ast-to-gimple.c:
30280 Add inclusion of gimple-ssa.h, tree-into-ssa.h.
30281 (ivs_params_clear):
30282 (build_iv_mapping): New function.
30283 (translate_isl_ast_node_user): Likewise.
30284 (translate_isl_ast): Add calling of translate_isl_ast_node_user.
30285
30286 * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
30287 * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
30288 * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
30289
30290 2014-07-21 Bin Cheng <bin.cheng@arm.com>
30291
30292 PR target/55701
30293 * config/arm/arm.md (setmem): New pattern.
30294 * config/arm/arm-protos.h (struct tune_params): New fields.
30295 (arm_gen_setmem): New prototype.
30296 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
30297 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
30298 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
30299 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
30300 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
30301 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
30302 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
30303 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
30304 (arm_const_inline_cost): New function.
30305 (arm_block_set_max_insns): New function.
30306 (arm_block_set_non_vect_profit_p): New function.
30307 (arm_block_set_vect_profit_p): New function.
30308 (arm_block_set_unaligned_vect): New function.
30309 (arm_block_set_aligned_vect): New function.
30310 (arm_block_set_unaligned_non_vect): New function.
30311 (arm_block_set_aligned_non_vect): New function.
30312 (arm_block_set_vect, arm_gen_setmem): New functions.
30313
30314 2014-07-21 Bin Cheng <bin.cheng@arm.com>
30315
30316 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
30317
30318 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
30319
30320 PR target/61855
30321 * config/i386/avx512fintrin.h: Move constants for mantissa extraction
30322 out of #ifdef __OPTIMIZE__.
30323
30324 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
30325
30326 * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
30327 different trapping status if -fnon-call-exceptions is enabled.
30328
30329 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
30330
30331 * expr.c (store_field): Handle VOIDmode for calls that return values
30332 in multiple locations.
30333
30334 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30335
30336 * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI.
30337 (altivec_vsldoi_<mode>): Likewise.
30338
30339 2014-07-20 Roman Gareev <gareevroman@gmail.com>
30340
30341 * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
30342 to the number of characters in the line.
30343
30344 2014-07-20 Roman Gareev <gareevroman@gmail.com>
30345
30346 * graphite-isl-ast-to-gimple.c: Add using of
30347 build_nonstandard_integer_type instead of int128_integer_type_node.
30348
30349 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
30350
30351 * toplev.c (output_stack_usage): Adjust the location of the warning.
30352
30353 2014-07-19 Daniel Cederman <cederman@gaisler.com>
30354
30355 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
30356 (*membar_storeload): Disable for LEON3.
30357
30358 2014-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
30359
30360 PR rtl-optimization/61461
30361 * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
30362
30363 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
30364
30365 PR target/61794
30366 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
30367 Fix instruction constraint.
30368 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
30369
30370 2014-07-18 Jonathan Wakely <jwakely@redhat.com>
30371
30372 * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
30373
30374 2014-07-18 Chung-Ju Wu <jasonwucj@gmail.com>
30375
30376 * config/nds32/nds32.c (nds32_can_eliminate): Follow the
30377 GNU coding standards.
30378 (nds32_register_move_cost): Likewise.
30379 (nds32_memory_move_cost): Likewise.
30380 (nds32_address_cost): Likewise.
30381
30382 2014-07-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
30383
30384 * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
30385
30386 2014-07-17 John David Anglin <danglin@gcc.gnu.org>
30387
30388 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
30389 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
30390 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
30391 (HAVE_sync_compare_and_swapqi): Define.
30392 (HAVE_sync_compare_and_swaphi): Likewise.
30393 (HAVE_sync_compare_and_swapsi): Likewise.
30394
30395 2014-07-17 Richard Sandiford <rdsandiford@googlemail.com>
30396
30397 * config/mips/p5600.md: Add missing cpu tests.
30398
30399 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30400
30401 * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
30402 (vmla_f64): Likewise.
30403 (vfms_f64): Likewise.
30404 (vmls_f64): Likewise.
30405
30406 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30407
30408 * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
30409 (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
30410
30411 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30412
30413 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
30414 (vmlal_high_lane_s32): Likewise.
30415 (vmlal_high_lane_u16): Likewise.
30416 (vmlal_high_lane_u32): Likewise.
30417 (vmlsl_high_lane_s16): Likewise.
30418 (vmlsl_high_lane_s32): Likewise.
30419 (vmlsl_high_lane_u16): Likewise.
30420 (vmlsl_high_lane_u32): Likewise.
30421
30422 2014-07-17 Terry Guo <terry.guo@arm.com>
30423
30424 * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
30425 (alus_reg): Renamed to alus_sreg.
30426 * config/arm/arm-fixed.md: Change type of non-dsp instructions
30427 from alu_reg to alu_sreg. Change type of dsp instructions from
30428 alu_reg to alu_dsp_reg.
30429 * config/arm/thumb1.md: Likewise.
30430 * config/arm/thumb2.md: Likewise.
30431 * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
30432 * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
30433 with alu_sreg and alus_sreg.
30434 * config/arm/arm1026ejs.md (alu_op): Likewise.
30435 * config/arm/arm1136jfs.md (11_alu_op): Likewise.
30436 * config/arm/arm926ejs.md (9_alu_op): Likewise.
30437 * config/arm/fa526.md (526_alu_op): Likewise.
30438 * config/arm/fa606te.md (606te_alu_op): Likewise.
30439 * config/arm/fa626te.md (626te_alu_op): Likewise.
30440 * config/arm/fa726te.md (726te_alu_op): Likewise.
30441 * config/arm/fmp626.md (mp626_alu_op): Likewise.
30442 * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
30443 alu_sreg, alu_dsp_reg and alus_sreg.
30444 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
30445 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
30446 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
30447 * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
30448 * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
30449 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
30450 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
30451 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
30452 * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
30453 * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
30454 subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
30455 *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
30456 (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
30457 sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
30458 subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
30459 alus_reg to alus_sreg.
30460
30461 2014-07-17 Andreas Schwab <schwab@linux-m68k.org>
30462
30463 * real.c (encode_ieee_extended_motorola): Clear integer bit in the
30464 infinity format.
30465
30466 2014-07-17 Richard Biener <rguenther@suse.de>
30467
30468 PR rtl-optimization/61801
30469 * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
30470 don't set reg_pending_barrier if it appears in a debug-insn.
30471
30472 2014-07-16 DJ Delorie <dj@redhat.com>
30473
30474 * config/rx/rx.c (rx_option_override): Fix alignment values.
30475 (rx_align_for_label): Likewise.
30476
30477 2014-07-17 Hans-Peter Nilsson <hp@axis.com>
30478
30479 PR target/61737.
30480 * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
30481 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
30482 (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
30483 functions.
30484 (cris_print_index, cris_print_operand, cris_constant_index_p)
30485 (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
30486 (cris_address_cost): Ditto last CONSTANT_P.
30487 (cris_symbol_type_of): Rename from cris_pic_symbol_type_of. All
30488 callers changed. Yield cris_offsettable_symbol for non-PIC
30489 constant symbolic expressions including labels. Yield cris_unspec
30490 for all unspecs.
30491 (cris_expand_pic_call_address): New parameter MARKERP. Set its
30492 target to pic_offset_table_rtx for calls that will likely go
30493 through PLT, const0_rtx when they can't. All callers changed.
30494 Assert flag_pic. Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
30495 symbolic expressions to be PICified. Remove second, redundant,
30496 assert on can_create_pseudo_p returning non-zero. Use
30497 replace_equiv_address_nv, not replace_equiv_address, for final
30498 operand update.
30499 * config/cris/cris.md ("movsi"): Move variable t to pattern
30500 toplevel. Adjust assert for new cris_symbol_type member. Use
30501 CONSTANT_P instead of CONSTANT_ADDRESS_P.
30502 ("*movsi_internal") <case 9>: Make check for valid unspec operands
30503 for lapc stricter.
30504 <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
30505 ("call", "call_value"): Use second incoming operand as a marker
30506 for pic-offset-table-register being used.
30507 ("*expanded_call_non_v32", "*expanded_call_v32")
30508 ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
30509 second incoming operand to CALL, match cris_call_type_marker.
30510 ("*expanded_call_value_side"): Ditto. Disable before reload_completed.
30511 ("*expanded_call_side"): Ditto. Fix typo in comment.
30512 (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
30513 CONSTANT_P.
30514 * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
30515 * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
30516 (enum cris_symbol_type): Rename from cris_pic_symbol_type. All
30517 users changed. Add members cris_offsettable_symbol and cris_unspec.
30518 (cris_symbol_type): Rename from cris_pic_symbol_type.
30519 * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
30520 just CONSTANT_P.
30521 * config/cris/cris-protos.h (cris_symbol_type_of,
30522 cris_expand_pic_call_address): Adjust prototypes.
30523 (cris_legitimate_constant_p): New prototype.
30524
30525 * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
30526 an existing tmake_file. Don't add t-slibgcc and t-linux.
30527
30528 2014-07-17 Jason Merrill <jason@redhat.com>
30529
30530 PR c++/61623
30531 * symtab.c (symtab_remove_from_same_comdat_group): Also
30532 set_comdat_group to NULL_TREE.
30533 (verify_symtab): Fix diagnostic.
30534
30535 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com>
30536
30537 PR target/61662
30538 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
30539
30540 2014-07-16 Dodji Seketeli <dodji@redhat.com>
30541
30542 Support location tracking for built-in macro tokens
30543 * input.h (is_location_from_builtin_token): New function declaration.
30544 * input.c (is_location_from_builtin_token): New function definition.
30545 * toplev.c (general_init): Tell libcpp what the pre-defined
30546 spelling location for built-in tokens is.
30547
30548 2014-07-16 Jakub Jelinek <jakub@redhat.com>
30549
30550 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
30551 on the FUNCTION_DECL.
30552
30553 2014-07-16 Richard Biener <rguenther@suse.de>
30554
30555 PR other/61782
30556 * doc/extend.texi (always_inline): Clarify.
30557
30558 2014-07-15 Eric Christopher <echristo@gmail.com>
30559
30560 * doc/invoke.texi (Link Options): Document -z option.
30561
30562 2014-07-15 Uros Bizjak <ubizjak@gmail.com>
30563
30564 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
30565 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
30566
30567 2014-07-15 Jan Hubicka <hubicka@ucw.cz>
30568
30569 * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
30570
30571 2014-07-15 Bernd Schmidt <bernds@codesourcery.com>
30572
30573 * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
30574 varpool_assemble_decl.
30575 * varpool.c (varpool_assemble_decl): Assert that node->definition is
30576 true.
30577
30578 2014-07-15 Michael Matz <matz@suse.de>
30579
30580 PR rtl-optimization/61772
30581 * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
30582
30583 2014-07-15 Richard Biener <rguenther@suse.de>
30584
30585 * opts.c (default_options_table): Disable bit-ccp at -Og.
30586
30587 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
30588
30589 * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
30590
30591 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
30592
30593 * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
30594 NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
30595 call langhook for unknown declaration.
30596 (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
30597 * tree.h (DECL_ARGUMENTS): Update.
30598 * print-tree.c (print_node): Update.
30599 * tree-core.h (tree_decl_non_common): Remove arguments.
30600 (tree_function_decl): Add arguments.
30601
30602 2014-07-14 Richard Earnshaw <rearnsha@arm.com>
30603
30604 * aarch64.md (add_losym_<mode>): Set type to alu_imm.
30605
30606 2014-07-14 Richard Biener <rguenther@suse.de>
30607
30608 PR tree-optimization/61779
30609 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
30610 simplifying a condition.
30611
30612 2014-07-14 Richard Biener <rguenther@suse.de>
30613
30614 * builtins.c (c_strlen): Make only_value == 2 really only
30615 affect warning generation.
30616
30617 2014-07-14 Richard Biener <rguenther@suse.de>
30618
30619 PR tree-optimization/61757
30620 PR tree-optimization/61783
30621 PR tree-optimization/61787
30622 * tree-ssa-dom.c (record_equality): Revert canonicalization
30623 change and add comment.
30624 (propagate_rhs_into_lhs): Revert previous fix, removing
30625 loop depth restriction again.
30626
30627 2014-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30628
30629 * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
30630 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
30631 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
30632 * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
30633 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
30634 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
30635 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
30636
30637 2014-07-14 Richard Biener <rguenther@suse.de>
30638
30639 * cgraph.h (decl_in_symtab_p): Make inline.
30640
30641 2014-07-14 Jakub Jelinek <jakub@redhat.com>
30642
30643 PR middle-end/61294
30644 * doc/invoke.texi (-Wmemset-transposed-args): Document.
30645
30646 PR target/61656
30647 * config/i386/i386.c (classify_argument): Don't merge classes above
30648 number of words.
30649
30650 2014-07-13 Jan Hubicka <hubicka@ucw.cz>
30651
30652 * cgraph.h (symtab_node): Add nonzero_address.
30653 (decl_in_symtab_p): Break out from ...
30654 (symtab_get_node): ... here.
30655 * fold-const.c: Include cgraph.h
30656 (tree_single_nonzero_warnv_p): Use symtab to determine
30657 if symbol is non-zero.
30658 * symtab.c (symtab_node::nonzero_address): New method.
30659
30660 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
30661
30662 * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
30663 forgotten in previous commit.
30664
30665 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
30666
30667 * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
30668 on builtin types.
30669 * ipa-devirt.c: Include stor-layout.h and intl.h
30670 (odr_subtypes_equivalent_p): New function.
30671 (warn_odr): New function.
30672 (warn_type_mismatch): New function.
30673 (odr_types_equivalent_p): New function.
30674 (add_type_duplicate): Use it.
30675 * common.opt (Wodr): New flag.
30676 * doc/invoke.texi (Wodr): Document new warning.
30677
30678 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
30679
30680 * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
30681 (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
30682 * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
30683 (varpool_get_constructor): Push CTORS_IN timevar.
30684 * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
30685
30686 2014-07-12 Uros Bizjak <ubizjak@gmail.com>
30687
30688 * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
30689 Remove VOID_FTYPE_PUSHORT.
30690 * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
30691 Change code to USHORT_FTYPE_VOID.
30692 (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
30693 (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
30694 (ix86_atomic_assign_expand_fenv): Update for
30695 __builtin_ia32_fnstsw changes.
30696 * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
30697 (fnstsw): Change operand 0 to nonimmediate operand.
30698
30699 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
30700
30701 * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
30702 (varpool_get_constructor): New function.
30703 (varpool_ctor_useable_for_folding_p): Break out from ...
30704 (ctor_for_folding): ... here; use varpool_get_constructor.
30705 (varpool_assemble_decl): Likewise.
30706 * lto-streamer.h (struct output_block): Turn cgraph_node
30707 to symbol filed.
30708 (lto_input_variable_constructor): Declare.
30709 * ipa-visibility.c (function_and_variable_visibility): Use
30710 varpool_get_constructor.
30711 * cgraph.h (varpool_get_constructor): Declare.
30712 (varpool_ctor_useable_for_folding_p): New function.
30713 * lto-streamer-out.c (get_symbol_initial_value): Take encoder
30714 parameter; return error_mark_node for non-trivial constructors.
30715 (lto_write_tree_1, DFS_write_tree): Update use of
30716 get_symbol_initial_value.
30717 (output_function): Update initialization of symbol.
30718 (output_constructor): New function.
30719 (copy_function): Rename to ..
30720 (copy_function_or_variable): ... this one; handle vars too.
30721 (lto_output): Output variable sections.
30722 * lto-streamer-in.c (input_constructor): New function.
30723 (lto_read_body): Rename from ...
30724 (lto_read_body_or_constructor): ... this one; handle vars too.
30725 (lto_input_variable_constructor): New function.
30726 * ipa-prop.c (ipa_prop_write_jump_functions,
30727 ipa_prop_write_all_agg_replacement): Update.
30728 * lto-cgraph.c (compute_ltrans_boundary): Use it.
30729 (output_cgraph_opt_summary): Set symbol to NULL.
30730
30731 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
30732
30733 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
30734 non-polymorphic types.
30735 * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
30736 * ipa-devirt.c (types_same_for_odr): Do not explode when one
30737 of types is not polymorphic.
30738
30739 2014-07-11 Vladimir Makarov <vmakarov@redhat.com>
30740
30741 * lra-constraints.c (remove_inheritance_pseudos): Process
30742 destination pseudo too.
30743
30744 2014-07-11 Rong Xu <xur@google.com>
30745
30746 * gcov-tool.c (gcov_output_files): Fix build error introduced in
30747 commit r212448.
30748
30749 2014-07-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
30750
30751 * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
30752 * config/avr/avr-devices.c (AVR_MCU): Same.
30753 (avr_mcu_types): add text start value to end of device list.
30754 * config/avr/avr-mcus.def: Add text section start for all devices.
30755 (ata5782): Add new avr5 device.
30756 (ata5831): Same.
30757 * config/avr/avr-tables.opt: Regenerate.
30758 * config/avr/avr.h: Add declaration for text section start handler.
30759 (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
30760 SPEC functions.
30761 (LINK_SPEC): Include text section start handler to linker spec.
30762 * config/avr/driver-avr.c (avr_device_to_text_start): New function to
30763 pass -Ttext option to linker if the text section start for the device
30764 is not zero.
30765 * config/avr/t-multilib: Regenerate.
30766 * doc/avr-mmcu.texi: Regenerate.
30767
30768 2014-07-11 David Edelsohn <dje.gcc@gmail.com>
30769
30770 * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
30771 * config/rs6000/aix52.h (LINK_SPEC): Same.
30772 * config/rs6000/aix53.h (LINK_SPEC): Same.
30773 * config/rs6000/aix61.h (LINK_SPEC): Same.
30774 * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
30775
30776 2014-07-11 Roman Gareev <gareevroman@gmail.com>
30777
30778 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
30779 (graphite_verify): New function.
30780 (ivs_params_clear): New function.
30781 (gcc_expression_from_isl_ast_expr_id): New function.
30782 (gcc_expression_from_isl_expr_int): New function.
30783 (binary_op_to_tree): New function.
30784 (ternary_op_to_tree): New function.
30785 (unary_op_to_tree): New function.
30786 (nary_op_to_tree): New function.
30787 (gcc_expression_from_isl_expr_op): New function.
30788 (gcc_expression_from_isl_expression): New function.
30789 (graphite_create_new_loop): New function.
30790 (translate_isl_ast_for_loop): New function.
30791 (get_upper_bound): New function.
30792 (graphite_create_new_loop_guard): New function.
30793 (translate_isl_ast_node_for): New function.
30794 (translate_isl_ast): New function.
30795 (add_parameters_to_ivs_params): New function.
30796 (scop_to_isl_ast): New parameter ip.
30797 (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
30798
30799 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
30800
30801 * config/xtensa/predicates.md (call expander): Update for
30802 DECL_SECTION_NAME being string.
30803
30804 2014-07-11 Richard Biener <rguenther@suse.de>
30805
30806 PR middle-end/61473
30807 * builtins.c (fold_builtin_memory_op): Inline memory moves that
30808 can be implemented with a single load followed by a single store.
30809 (c_strlen): Only warn when only_value is not 2.
30810
30811 2014-07-11 Evgeny Stupachenko <evstupac@gmail.com>
30812
30813 * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
30814
30815 2014-07-11 Marat Zakirov <m.zakirov@samsung.com>
30816
30817 PR target/61561
30818 * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
30819 (*movhi_bytes): Likewise.
30820 (*arm_movqi_insn): Likewise.
30821
30822 2014-07-11 Uros Bizjak <ubizjak@gmail.com>
30823
30824 PR target/56858
30825 * config/alpha/alpha.c: Include tree-pass.h, context.h
30826 and pass_manager.h.
30827 (pass_data_handle_trap_shadows): New pass.
30828 (pass_handle_trap_shadows::gate): New pass gate function.
30829 (make_pass_handle_trap_shadows): New function.
30830 (rest_of_handle_trap_shadows): Ditto.
30831
30832 (alpha_align_insns_1): Rename from alpha_align_insns.
30833 (pass_data_align_insns): New pass.
30834 (pass_align_insns::gate): New pass gate function.
30835 (make_pass_aling_insns): New function.
30836 (rest_of_align_insns): Ditto.
30837 (alpha_align_insns): Ditto.
30838
30839 (alpha_option_override): Declare handle_trap_shadows info
30840 and align_insns_info. Register handle_trap_shadows and align_insns
30841 passes here.
30842 (alpha_reorg): Do not call alpha_trap_shadows and
30843 alpha_align_insn from here.
30844
30845 (alpha_pad_function_end): Do not skip BARRIERs.
30846
30847 2014-07-10 Rong Xu <xur@google.com>
30848
30849 Add gcov-tool: an offline gcda profile processing tool support.
30850 * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
30851 (gcov_is_error): Ditto.
30852 (gcov_read_string): Ditto.
30853 (gcov_read_sync): Ditto.
30854 * gcov-io.h: Move counter defines to gcov-counter.def.
30855 * gcov-dump.c (tag_counters): Use gcov-counter.def.
30856 * coverage.c: Ditto.
30857 * gcov-tool.c: Offline gcda profile processing tool.
30858 (unlink_gcda_file): Remove one gcda file.
30859 (unlink_profile_dir): Remove gcda files from the profile path.
30860 (gcov_output_files): Output gcda files to an output dir.
30861 (profile_merge): Merge two profiles in directory.
30862 (print_merge_usage_message): Print merge usage.
30863 (merge_usage): Print merge usage and exit.
30864 (do_merge): Driver for profile merge sub-command.
30865 (profile_rewrite): Rewrite profile.
30866 (print_rewrite_usage_message): Print rewrite usage.
30867 (rewrite_usage): Print rewrite usage and exit.
30868 (do_rewrite): Driver for profile rewrite sub-command.
30869 (print_usage): Print gcov-info usage and exit.
30870 (print_version): Print gcov-info version.
30871 (process_args): Process arguments.
30872 (main): Main routine for gcov-tool.
30873 * Makefile.in: Build and install gcov-tool.
30874 * gcov-counter.def: New file split from gcov-io.h.
30875 * doc/gcc.texi: Include gcov-tool.texi.
30876 * doc/gcov-tool.texi: Document for gcov-tool.
30877
30878 2014-07-10 Richard Biener <rguenther@suse.de>
30879
30880 PR tree-optimization/61757
30881 * tree-ssa-dom.c (loop_depth_of_name): Restore.
30882 (propagate_rhs_into_lhs): Revert part of last change.
30883
30884 2014-07-10 Thomas Schwinge <thomas@codesourcery.com>
30885
30886 * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
30887 FUNCTION_DECLs.
30888
30889 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
30890
30891 PR middle-end/53590
30892 * function.c (allocate_struct_function): Revert r188667 change.
30893
30894 * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
30895
30896 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
30897
30898 * doc/install.texi: Remove links to defunct package providers for
30899 Solaris.
30900
30901 2014-07-09 Tom de Vries <tom@codesourcery.com>
30902
30903 * final.c (get_call_fndecl): Declare.
30904 (self_recursive_call_p): New function.
30905 (collect_fn_hard_reg_usage): Handle self-recursive function calls.
30906
30907 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
30908
30909 * ipa-devirt.c (record_node): Walk through aliases.
30910
30911 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
30912
30913 * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
30914
30915 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
30916
30917 Revert:
30918 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
30919
30920 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
30921
30922 * ipa-visibility.c (function_and_variable_visibility): Remove
30923 temporary hack disabling local aliases on AIX.
30924
30925 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
30926
30927 * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
30928 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
30929
30930 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
30931
30932 * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
30933 * rs6000/rs6000.c: Inline output of .set instruction.
30934 (declare_alias_data): New struct.
30935 (rs6000_declare_alias): New function.
30936 (rs6000_xcoff_declare_function_name): Use it.
30937 (rs6000_xcoff_declare_object_name): New function.
30938 * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
30939 (ASM_OUTPUT_DEF): Turn to empty definition.
30940
30941 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
30942
30943 PR bootstrap/61679
30944 * hash-table.h: use hash_table::value_type instead of
30945 Descriptor::value_type in the return types of several methods.
30946
30947 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
30948
30949 * tree-pass.h (pass_data): Remove has_execute member.
30950 * passes.c (execute_one_pass): Don't check pass->has_execute.
30951 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
30952 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
30953 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
30954 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
30955 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
30956 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
30957 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
30958 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
30959 gimple-low.c, gimple-ssa-isolate-paths.c,
30960 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
30961 ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
30962 ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
30963 ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
30964 lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
30965 postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
30966 reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
30967 stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
30968 tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
30969 tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
30970 tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
30971 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
30972 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
30973 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
30974 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
30975 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
30976 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
30977 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
30978 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
30979 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
30980 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
30981 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
30982 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
30983 web.c: Remove initializer for pass_data::has_execute.
30984
30985 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
30986
30987 * graphite-htab.h: Use hash_map instead of hash_table.
30988 * graphite-clast-to-gimple.c: Adjust.
30989 * passes.c: Use hash_map instead of hash_table.
30990 * sese.c: Likewise.
30991 * sese.h: Remove now unused code.
30992
30993 2014-07-08 Sriraman Tallam <tmsriram@google.com>
30994
30995 PR target/61599
30996 * config/i386/i386.c (ix86_in_large_data_p): Check for size less
30997 than zero.
30998
30999 2014-07-08 Jakub Jelinek <jakub@redhat.com>
31000
31001 PR rtl-optimization/61673
31002 * combine.c (simplify_comparison): Test just mode's sign bit
31003 in tmode rather than the sign bit and any bits above it.
31004
31005 2014-07-08 Roman Gareev <gareevroman@gmail.com>
31006
31007 * graphite-isl-ast-to-gimple.c (generate_isl_context):
31008 Add __isl_give to the declaration.
31009 (generate_isl_schedule): Likewise.
31010 (scop_to_isl_ast): Likewise.
31011
31012 2014-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31013
31014 * config/arm/arm.c (cortexa5_extra_costs): New table.
31015 (arm_cortex_a5_tune): Use cortexa5_extra_costs.
31016
31017 2014-07-08 Jakub Jelinek <jakub@redhat.com>
31018
31019 PR tree-optimization/61725
31020 * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
31021 range, use range_includes_zerop_p instead of integer_zerop on
31022 vr0->min, only use log2 of max if min is not negative.
31023
31024 2014-07-08 Richard Biener <rguenther@suse.de>
31025
31026 * tree-ssa-dom.h (loop_depth_of_name): Remove.
31027 * tree-ssa-dom.c (record_equivalences_from_phis): Remove
31028 restriction on loop depth difference.
31029 (record_equality): Likewise.
31030 (propagate_rhs_into_lhs): Likewise. Simplify condition.
31031 (loop_depth_of_name): Remove.
31032 * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
31033 restriction on loop depth difference.
31034 (init_copy_prop): Likewise.
31035
31036 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
31037
31038 * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
31039 parameter.
31040 (walk_aliased_vdefs): Likewise.
31041 * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
31042 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
31043 (detect_type_change_from_memory_writes): Check if entry was reached.
31044
31045 2014-07-08 Richard Biener <rguenther@suse.de>
31046
31047 PR tree-optimization/61681
31048 * tree-ssa-structalias.c (find_what_var_points_to): Expand
31049 NONLOCAL inside ESCAPED.
31050
31051 2014-07-08 Richard Biener <rguenther@suse.de>
31052
31053 PR tree-optimization/61680
31054 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31055 Handle properly all read-write dependences with group accesses.
31056
31057 2014-07-08 Yuri Rumyantsev <ysrumyan@gmail.com>
31058
31059 PR tree-optimization/61576
31060 * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
31061 block containing reduction statement is predecessor of phi basi block.
31062
31063 2014-07-08 Marek Polacek <polacek@redhat.com>
31064
31065 PR c/60226
31066 * fold-const.c (round_up_loc): Change the parameter type.
31067 Remove assert.
31068 * fold-const.h (round_up_loc): Adjust declaration.
31069 * stor-layout.c (finalize_record_size): Check for too large types.
31070
31071 2014-07-07 Jan Hubicka <hubicka@ucw.cz>
31072
31073 * symtab.c: Include calls.h.
31074 (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
31075
31076 2014-07-07 Maciej W. Rozycki <macro@codesourcery.com>
31077
31078 * config/rs6000/rs6000.c (output_vec_const_move): Handle
31079 little-endian code generation.
31080 * config/rs6000/spe.md (spe_evmergehi): Rename to...
31081 (vec_perm00_v2si): ... this. Handle little-endian code generation.
31082 (spe_evmergehilo): Rename to...
31083 (vec_perm01_v2si): ... this. Handle little-endian code generation.
31084 (spe_evmergelo): Rename to...
31085 (vec_perm11_v2si): ... this. Handle little-endian code generation.
31086 (spe_evmergelohi): Rename to...
31087 (vec_perm10_v2si): ... this. Handle little-endian code generation.
31088 (spe_evmergehi, spe_evmergehilo): New expanders.
31089 (spe_evmergelo, spe_evmergelohi): Likewise.
31090 (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
31091 (*frob_tf_ti): Likewise.
31092 (*frob_<mode>_di_2): Likewise.
31093 (*frob_tf_di_8_2): Likewise.
31094 (*frob_di_<mode>): Likewise.
31095 (*frob_ti_tf): Likewise.
31096 (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
31097 (*frob_ti_<mode>_8_2): Likewise.
31098 (*frob_ti_tf_2): Likewise.
31099 (mov_si<mode>_e500_subreg0): Rename to...
31100 (mov_si<mode>_e500_subreg0_be): ... this. Restrict to the big
31101 endianness only.
31102 (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
31103 (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
31104 (*mov_si<mode>_e500_subreg0_elf_low_be): ... this. Restrict to
31105 the big endianness only.
31106 (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
31107 (*mov_si<mode>_e500_subreg0_2): Rename to...
31108 (*mov_si<mode>_e500_subreg0_2_be): ... this. Restrict to the
31109 big big endianness only.
31110 (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
31111 (*mov_si<mode>_e500_subreg4): Rename to...
31112 (*mov_si<mode>_e500_subreg4_be): ... this. Restrict to the big
31113 endianness only.
31114 (mov_si<mode>_e500_subreg4_le): New instruction pattern.
31115 (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
31116 (*mov_si<mode>_e500_subreg4_elf_low_be): ... this. Restrict to
31117 the big endianness only.
31118 (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
31119 pattern.
31120 (*mov_si<mode>_e500_subreg4_2): Rename to...
31121 (*mov_si<mode>_e500_subreg4_2_be): ... this. Restrict to the big
31122 endianness only.
31123 (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
31124 (*mov_sitf_e500_subreg8): Rename to...
31125 (*mov_sitf_e500_subreg8_be): ... this. Restrict to the big
31126 endianness only.
31127 (*mov_sitf_e500_subreg8_le): New instruction pattern.
31128 (*mov_sitf_e500_subreg8_2): Rename to...
31129 (*mov_sitf_e500_subreg8_2_be): ... this. Restrict to the big
31130 endianness only.
31131 (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
31132 (*mov_sitf_e500_subreg12): Rename to...
31133 (*mov_sitf_e500_subreg12_be): ... this. Restrict to the big
31134 endianness only.
31135 (*mov_sitf_e500_subreg12_le): New instruction pattern.
31136 (*mov_sitf_e500_subreg12_2): Rename to...
31137 (*mov_sitf_e500_subreg12_2_be): ... this. Restrict to the big
31138 endianness only.
31139 (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
31140
31141 2014-07-07 Max Ostapenko <m.ostapenko@partner.samsung.com>
31142
31143 * asan.c (instrument_strlen_call): Do not instrument first byte
31144 in strlen if already instrumented.
31145
31146 2014-07-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31147
31148 * config/arm/arm.opt (mwords-little-endian): Delete.
31149 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
31150 of TARGET_LITTLE_WORDS.
31151 (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
31152 * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
31153 warning.
31154 * doc/invoke.texi: Remove references to -mwords-little-endian.
31155
31156 2014-07-07 Jakub Jelinek <jakub@redhat.com>
31157
31158 * expmed.c (struct init_expmed_rtl): Change all fields but
31159 pow2 and cint from struct rtx_def to rtx.
31160 (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
31161 (init_expmed): Likewise. Allocate all the 18 rtxes and ggc_free them
31162 at the end again.
31163
31164 2014-07-06 Marek Polacek <polacek@redhat.com>
31165
31166 PR c/6940
31167 * doc/invoke.texi: Document -Wsizeof-array-argument.
31168
31169 2014-07-05 Gerald Pfeifer <gerald@pfeifer.com>
31170
31171 * wide-int.h (wide_int_storage): Change declaration from struct
31172 to class.
31173
31174 2014-07-05 Jan Hubicka <hubicka@ucw.cz>
31175
31176 * cgraph.c (cgraph_create_indirect_edge): Update call of
31177 get_polymorphic_call_info.
31178 * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
31179 (possible_polymorphic_call_targets): Add parameter call.
31180 (decl_maybe_in_construction_p): New predicate.
31181 (get_polymorphic_call_info): Add parameter call;
31182 use decl_maybe_in_construction_p.
31183 * gimple-fold.c (fold_gimple_assign): Update use of
31184 possible_polymorphic_call_targets.
31185 (gimple_fold_call): Likewise.
31186 * ipa-prop.c: Inlcude calls.h
31187 (ipa_binfo_from_known_type_jfunc): Check that known type is record.
31188 (param_type_may_change_p): New predicate.
31189 (detect_type_change_from_memory_writes): Break out from ...
31190 (detect_type_change): ... this one; use param_type_may_change_p.
31191 (detect_type_change_ssa): Use param_type_may_change_p.
31192 (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
31193
31194 2014-07-05 Charles Baylis <charles.baylis@linaro.org>
31195
31196 PR target/49423
31197 * config/arm/arm-protos.h (arm_legitimate_address_p,
31198 arm_is_constant_pool_ref): Add prototypes.
31199 * config/arm/arm.c (arm_legitimate_address_p): Remove static.
31200 (arm_is_constant_pool_ref) New function.
31201 * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
31202 arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
31203 (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
31204 operand. Remove pool_range and neg_pool_range attributes.
31205 (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
31206 pool_range and neg_pool_range attributes.
31207 * config/arm/constraints.md (Uh): New constraint.
31208 (Uq): Don't allow constant pool references.
31209
31210 2014-07-04 James Greenhalgh <james.greenhalgh@arm.com>
31211
31212 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
31213 (move_lo_quad_internal_be_<mode>): Likewise.
31214 (move_lo_quad_<mode>): Convert to define_expand.
31215 (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
31216 (aarch64_simd_move_hi_quad_be_<mode>): New.
31217 (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
31218 (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
31219 (aarch64_combinez_be<mode>): New.
31220 (aarch64_combine<mode>): Convert to define_expand.
31221 (aarch64_combine_internal<mode>): New.
31222 (aarch64_simd_combine<mode>): Remove bogus RTL description.
31223
31224 2014-07-04 Tom de Vries <tom@codesourcery.com>
31225
31226 * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
31227 combination of earlyclobber and read/write modifiers.
31228
31229 2014-07-04 Tom de Vries <tom@codesourcery.com>
31230
31231 * config/aarch64/aarch64-simd.md
31232 (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
31233
31234 2014-07-04 Richard Earnshaw <rearnsha@arm.com>
31235
31236 PR target/61714
31237 * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
31238
31239 2014-07-04 Jakub Jelinek <jakub@redhat.com>
31240
31241 PR middle-end/61654
31242 * cgraphunit.c (expand_thunk): Call free_dominance_info.
31243
31244 PR tree-optimization/61684
31245 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
31246 rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
31247
31248 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31249 Kito Cheng <kito@0xlab.org>
31250 Monk Chiang <sh.chiang04@gmail.com>
31251
31252 * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
31253 (nds32_symbol_load_store_p): Move to ...
31254 (nds32_fp_as_gp_check_available): Move to ...
31255 * config/nds32/nds32-fp-as-gp.c: ... here.
31256 * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
31257 extern declaration.
31258
31259 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31260 Kito Cheng <kito@0xlab.org>
31261 Monk Chiang <sh.chiang04@gmail.com>
31262
31263 * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
31264 (nds32_expand_store_multiple): Move to ...
31265 (nds32_expand_movmemqi): Move to ...
31266 * config/nds32/nds32-memory-manipulation.c: ... here.
31267
31268 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31269 Kito Cheng <kito@0xlab.org>
31270 Monk Chiang <sh.chiang04@gmail.com>
31271
31272 * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
31273 (nds32_output_casesi_pc_relative): Move to ...
31274 (nds32_output_casesi): Move to ...
31275 (nds32_mem_format): Move to ...
31276 (nds32_output_16bit_store): Move to ...
31277 (nds32_output_16bit_load): Move to ...
31278 (nds32_output_32bit_store): Move to ...
31279 (nds32_output_32bit_load): Move to ...
31280 (nds32_output_32bit_load_s): Move to ...
31281 (nds32_output_stack_push): Move to ...
31282 (nds32_output_stack_pop): Move to ...
31283 * config/nds32/nds32-md-auxiliary.c: ... here.
31284
31285 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31286 Ling-Hua Tseng <uranus@tinlans.org>
31287
31288 * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
31289 the purpose of this file.
31290
31291 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31292 Kito Cheng <kito@0xlab.org>
31293 Monk Chiang <sh.chiang04@gmail.com>
31294
31295 * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
31296 (nds32_address_cost): Move implementation to ...
31297 * config/nds32/nds32-cost.c: ... here.
31298 * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
31299 (nds32_address_cost_impl): Declare.
31300
31301 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31302 Kito Cheng <kito@0xlab.org>
31303 Monk Chiang <sh.chiang04@gmail.com>
31304
31305 * config/nds32/nds32.c
31306 (nds32_consecutive_registers_load_store_p): Move to ...
31307 (nds32_valid_multiple_load_store): Move to ...
31308 (nds32_valid_stack_push_pop): Move to ...
31309 (nds32_can_use_bclr_p): Move to ...
31310 (nds32_can_use_bset_p): Move to ...
31311 (nds32_can_use_btgl_p): Move to ...
31312 (nds32_can_use_bitci_p): Move to ...
31313 * config/nds32/nds32-predicates.c: ... here.
31314
31315 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31316 Kito Cheng <kito@0xlab.org>
31317 Monk Chiang <sh.chiang04@gmail.com>
31318
31319 * config/nds32/nds32.c
31320 (nds32_expand_builtin_null_ftype_reg): Move to ...
31321 (nds32_expand_builtin_reg_ftype_imm): Move to ...
31322 (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
31323 (nds32_init_builtins): Move implementation to ...
31324 (nds32_expand_builtin): Move implementation to ...
31325 * config/nds32/nds32-intrinsic.c: ... here.
31326 * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
31327 (nds32_expand_builtin_impl): Declare.
31328
31329 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31330 Kito Cheng <kito@0xlab.org>
31331 Monk Chiang <sh.chiang04@gmail.com>
31332
31333 * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
31334 (nds32_emit_section_tail_template): Move to ...
31335 (nds32_emit_isr_jmptbl_section): Move to ...
31336 (nds32_emit_isr_vector_section): Move to ...
31337 (nds32_emit_isr_reset_conten): Move to ...
31338 (nds32_check_isr_attrs_conflict): Move to ...
31339 (nds32_construct_isr_vectors_information): Move to ...
31340 (nds32_asm_file_start): Move implementation to ...
31341 (nds32_asm_file_end): Move implementation to ...
31342 * config/nds32/nds32-isr.c: ... here.
31343 * config/nds32/nds32-protos.h
31344 (nds32_check_isr_attrs_conflict): Declare.
31345 (nds32_construct_isr_vectors_information): Declare.
31346 (nds32_asm_file_start_for_isr): Declare.
31347 (nds32_asm_file_end_for_isr): Declare.
31348
31349 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
31350 Kito Cheng <kito@0xlab.org>
31351 Monk Chiang <sh.chiang04@gmail.com>
31352
31353 * config.gcc (nds32*): Add new modules to extra_objs.
31354 (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
31355 (nds32be-*-*): Likewise.
31356 * config/nds32/nds32-cost.c: New file.
31357 * config/nds32/nds32-fp-as-gp.c: New file.
31358 * config/nds32/nds32-intrinsic.c: New file.
31359 * config/nds32/nds32-isr.c: New file.
31360 * config/nds32/nds32-md-auxiliary.c: New file.
31361 * config/nds32/nds32-memory-manipulation.c: New file.
31362 * config/nds32/nds32-pipelines-auxiliary.c: New file.
31363 * config/nds32/nds32-predicates.c: New file.
31364 * config/nds32/t-nds32: New file.
31365
31366 2014-07-03 Jakub Jelinek <jakub@redhat.com>
31367
31368 PR tree-optimization/61682
31369 * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
31370 using cases and when one of the operands is equal to 1.
31371
31372 2014-07-03 Segher Boessenkool <segher@kernel.crashing.org>
31373
31374 * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
31375 ashr<mode>3): Correct mode of operands[2].
31376 (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
31377 lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
31378 Correct mode of operands[2]. Fix split condition.
31379
31380 2014-07-03 Richard Earnshaw <rearnsha@arm.com>
31381
31382 * arm.md (arch): Add armv6_or_vfpv3.
31383 (arch_enabled): Add test for the above.
31384 * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
31385 on VFP9.
31386 (sqrtsf_vfp, sqrtdf_vfp): Likewise.
31387
31388 2014-07-03 Jakub Jelinek <jakub@redhat.com>
31389
31390 * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
31391 * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
31392 HWI 1 and negate the unsigned value.
31393 * expmed.c (expand_sdiv_pow2): For modes wider than word always
31394 use AND instead of shift.
31395 * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
31396
31397 2014-07-03 Marek Polacek <polacek@redhat.com>
31398
31399 * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
31400 (-fsanitize=float-divide-by-zero): Move to the table with
31401 -fsanitize=undefined suboptions.
31402 (-fsanitize=float-cast-overflow): Likewise.
31403
31404 2014-07-03 Maciej W. Rozycki <macro@codesourcery.com>
31405
31406 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
31407 BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
31408 endianness.
31409
31410 2014-07-03 Zhenqiang Chen <zhenqiang.chen@linaro.org>
31411
31412 * loop-invariant.c (struct invariant): Add a new member: eqno;
31413 (find_identical_invariants): Update eqno;
31414 (create_new_invariant): Init eqno;
31415 (get_inv_cost): Compute comp_cost with eqno;
31416
31417 2014-07-02 Segher Boessenkool <segher@kernel.crashing.org>
31418
31419 * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
31420 (walk_insn_part) <ROTATE, ROTATERT>: New cases.
31421 (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
31422 * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
31423 Only do the transformation if both HAVE_rotate and HAVE_rotatert.
31424
31425 2014-07-02 Christian Bruel <christian.bruel@st.com>
31426
31427 PR target/29349
31428 PR target/53513
31429 * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
31430 (make_preds_opaque): Delete.
31431 (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
31432 (commit_mode_sets): New function.
31433 (optimize_mode_switching): Handle current_mode to mode_switching_emit.
31434 Process all modes at once.
31435 * basic-block.h (pre_edge_lcm_avs): Declare.
31436 * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
31437 Call clear_aux_for_edges. Fix comments.
31438 (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
31439 (pre_edge_rev_lcm): Idem.
31440 * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
31441 parameter.
31442 * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
31443 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
31444 Idem.
31445 * config/i386/i386.c (x96_emit_mode_set): Idem.
31446 * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
31447 * config/sh/sh.md (toggle_pr): Defined if TARGET_FPU_SINGLE.
31448 (fpscr_toggle) Disallow from delay slot.
31449 * target.def (emit_mode_set): Add prev_mode parameter.
31450 * doc/tm.texi: Regenerate.
31451
31452 2014-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31453
31454 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
31455 variable i.
31456
31457 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
31458
31459 * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
31460 vtable_pointer_value_to_vtable): Constify.
31461 (contains_polymorphic_type_p): Declare.
31462 * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
31463 vtable_pointer_value_to_vtable): Constify.
31464 (contains_polymorphic_type_p): New predicate.
31465 * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
31466 polymorphic types.
31467 (ipa_set_ancestor_jf): Likewise.
31468 (detect_type_change): Return false in easy cases.
31469 (compute_complex_assign_jump_func): Require type to contain
31470 polymorphic type.
31471 (compute_known_type_jump_func): Likewise.
31472
31473 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
31474
31475 * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
31476 Remove.
31477 (type_in_anonymous_namespace_p): Constify argument.
31478 * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
31479 * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
31480 (main_odr_variant): New function.
31481 (hash_type_name): Make static; update assert; do not ICE on
31482 non-records.
31483 (types_same_for_odr): Bring here from tree.c; simplify and remove
31484 old structural comparing code that doesn't work for templates.
31485 (odr_hasher::equal): Update assert.
31486 (add_type_duplicate): Return true when bases should be computed;
31487 replace incomplete loader by complete; do not output duplicated
31488 warnings; do not ICE on non-records; set odr_violated flag.
31489 (get_odr_type): Be ready to replace incomplete type by complete
31490 one; work on ODR variants instead of main variants; reorder item
31491 in array so bases have still smaller indexes.
31492 (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
31493 (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
31494
31495 2014-07-01 Cary Coutant <ccoutant@google.com>
31496
31497 * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
31498 lookup.
31499 (resolve_addr_in_expr): When replacing the rtx in a location list
31500 entry, get a new address table entry.
31501 (dwarf2out_finish): Call index_location_lists even if there are no
31502 addr_index_table entries yet.
31503
31504 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
31505
31506 * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
31507 change for not being obvious.
31508
31509 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
31510
31511 * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
31512 unused argument.
31513
31514 2014-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31515
31516 * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
31517 (vcagt_f64): Likewise.
31518 (vcale_f64): Likewise.
31519 (vcaled_f64): Likewise.
31520 (vcales_f32): Likewise.
31521 (vcalt_f64): Likewise.
31522 (vcaltd_f64): Likewise.
31523 (vcalts_f32): Likewise.
31524
31525 2014-07-01 Marek Polacek <polacek@redhat.com>
31526
31527 * doc/invoke.texi: Document -Wint-conversion.
31528
31529 2014-07-01 Marek Polacek <polacek@redhat.com>
31530
31531 PR c/58286
31532 * doc/invoke.texi: Document -Wincompatible-pointer-types.
31533
31534 2014-07-01 Martin Liska <mliska@suse.cz>
31535
31536 IPA REF alias refactoring
31537 * cgraph.h (iterate_direct_aliases): New function.
31538 (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
31539 * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
31540 FOR_EACH_ALIAS added.
31541 (cgraph_for_node_and_aliases): Likewise.
31542 * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
31543 * ipa-inline.c (reset_edge_caches): Likewise.
31544 (update_caller_keys): Likewise.
31545 * trans-mem.c (ipa_tm_execute): Likewise.
31546 *varpool.c (varpool_analyze_node): Likewise.
31547 (varpool_for_node_and_aliases): Likewise.
31548 * ipa-ref.h (first_alias): New function.
31549 (last_alias): Likewise.
31550 (has_aliases_p): Likewise.
31551 * ipa-ref.c (ipa_ref::remove_reference): Removal function
31552 is sensitive to IPA_REF_ALIASes.
31553 * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
31554 are put at the beginning of the list.
31555 (symtab_node::iterate_direct_aliases): New function.
31556
31557 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
31558
31559 Revert:
31560 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
31561 type is complete.
31562 (write_ts_type_common_tree_pointers): Do not stream fields not set
31563 for incomplete types; do not stream duplicated fields for variants;
31564 sanity check that variant and type match.
31565 (write_ts_type_non_common_tree_pointers): Likewise.
31566 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
31567 TYPE_SIZE whether type is complete.
31568 (lto_input_ts_type_common_tree_pointers): Do same changes as in
31569 write_ts_type_common_tree_pointers
31570 (lto_input_ts_type_non_common_tree_pointers): Likewise.
31571
31572 2014-06-30 Joseph Myers <joseph@codesourcery.com>
31573
31574 * var-tracking.c (add_stores): Return instead of asserting if old
31575 and new values for conditional store are the same.
31576
31577 2014-06-30 Richard Henderson <rth@redhat.com>
31578
31579 PR rtl-opt/61608
31580 PR target/39284
31581 * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
31582 the cfg if there were any changes.
31583 * passes.def: Revert move of peephole2 after reorder_blocks;
31584 move duplicate_computed_gotos before peephole2.
31585
31586 2014-06-30 Uros Bizjak <ubizjak@gmail.com>
31587
31588 * except.c (emit_note_eh_region_end): New helper function.
31589 (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
31590 emit EH_REGION_END note.
31591 * jump.c (cleanup_barriers): Do not split a call and its
31592 corresponding CALL_ARG_LOCATION note.
31593
31594 2014-06-30 Jeff Law <law@redhat.com>
31595
31596 PR tree-optimization/61607
31597 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
31598 deeper into the SSA_NAME_VALUE chain.
31599
31600 2014-06-30 Marek Polacek <polacek@redhat.com>
31601
31602 * convert.c (convert_to_integer): Don't instrument conversions if the
31603 function has no_sanitize_undefined attribute.
31604 * ubsan.c: Don't run the ubsan pass if the function has
31605 no_sanitize_undefined attribute.
31606
31607 2014-06-30 Jakub Jelinek <jakub@redhat.com>
31608
31609 * doc/invoke.texi (-fsanitize=bounds): Move to the table with
31610 -fsanitize=undefined suboptions.
31611
31612 2014-06-30 Alan Lawrence <alan.lawrence@arm.com>
31613
31614 * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
31615 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
31616 against bigendian and adjust indices.
31617
31618 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
31619
31620 * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit.
31621
31622 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
31623
31624 PR target/61633
31625 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
31626 Add alternative; make early clobber. Adjust both split patterns
31627 to use operand 0 as the working register.
31628
31629 2014-06-30 Jakub Jelinek <jakub@redhat.com>
31630
31631 * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
31632 as ira_object_id_map might be NULL, or 1.
31633
31634 2014-06-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
31635
31636 * loop-invariant.c (get_inv_cost): Handle register class.
31637 (gain_for_invariant): Check the register pressure of the inv
31638 and its overlapped register class, other than all.
31639
31640 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
31641
31642 * doc/invoke.texi (Optimize Options): Fix descriptions of
31643 ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
31644
31645 2014-06-29 David Wohlferd <dw@LimeGreenSocks.com>
31646
31647 * doc/extend.texi (Function Attributes): Update 'naked' attribute
31648 documentation.
31649
31650 2014-06-29 Tobias Grosser <tobias@grosser.es>
31651
31652 PR bootstrap/61650
31653 * graphite-isl-ast-to-gimple.c: Add missing guards.
31654
31655 2014-06-29 Roman Gareev <gareevroman@gmail.com>
31656
31657 * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
31658 * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
31659 * flag-types.h: Add new enum fgraphite_generator.
31660 * graphite-isl-ast-to-gimple.c: New.
31661 * graphite-isl-ast-to-gimple.h: New.
31662 * graphite.c (graphite_transform_loops): Add choice of Graphite
31663 code generator, which depends on flag_graphite_code_gen.
31664
31665 2014-06-29 Roman Gareev <gareevroman@gmail.com>
31666
31667 * graphite-dependences.c (subtract_commutative_associative_deps):
31668 Add NULL checking of the following variables: must_raw_no_source,
31669 may_raw_no_source, must_war_no_source, may_war_no_source,
31670 must_waw_no_source, may_waw_no_source, must_raw, may_raw,
31671 must_war, may_war, must_waw, may_waw.
31672
31673 2014-06-29 Roman Gareev <gareevroman@gmail.com>
31674
31675 * graphite-clast-to-gimple.c: gloog is renamed to
31676 graphite_regenerate_ast_cloog. gloog_error is renamed to
31677 graphite_regenerate_error.
31678 * graphite-clast-to-gimple.h: The definition of the struct
31679 bb_pbb_def is moved to graphite-htab.h.
31680 Add inclusion of the hash-table.h.
31681 * graphite-htab.h: The declaration of the function gloog is moved
31682 to graphite-clast-to-gimple.h and renamed to
31683 graphite_regenerate_ast_cloog.
31684 * graphite.c (graphite_transform_loops): gloog is renamed
31685 to graphite_regenerate_ast_cloog.
31686
31687 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
31688
31689 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
31690 type is complete.
31691 (write_ts_type_common_tree_pointers): Do not stream fields not set
31692 for incomplete types; do not stream duplicated fields for variants;
31693 sanity check that variant and type match.
31694 (write_ts_type_non_common_tree_pointers): Likewise.
31695 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
31696 TYPE_SIZE whether type is complete.
31697 (lto_input_ts_type_common_tree_pointers): Do same changes as in
31698 write_ts_type_common_tree_pointers
31699 (lto_input_ts_type_non_common_tree_pointers): Likewise.
31700
31701 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
31702
31703 * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
31704
31705 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
31706
31707 * tree-inline.c (remap_type_1): Do not duplicate fields
31708 that are shared in between type and its main variant.
31709
31710 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
31711
31712 * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
31713 of the type.
31714 (ipa_set_ancestor_jf) Likewise.
31715 (check_stmt_for_type_change): Check that we work on main variant.
31716 (detect_type_change): Look into main variant.
31717 (compute_known_type_jump_func): Check that main variant has BINFO.
31718
31719 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
31720
31721 * ipa-devirt.c (set_type_binfo): New function.
31722 (add_type_duplicate): Use it.
31723 (get_odr_type): Sanity check that binfos points to main variants.
31724 (get_class_context): Be sure the context's outer_type is main variant.
31725 (contains_type_p): Walk main variant.
31726 (get_polymorphic_call_info_for_decl): Set outer_type to be
31727 main variant.
31728 (get_polymorphic_call_info): Likewise.
31729 (possible_polymorphic_call_targets): Sanity check that we operate
31730 on main variant.
31731
31732 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
31733
31734 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
31735
31736 2014-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
31737
31738 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
31739 accidental change due to wide-int branch merge.
31740
31741 2014-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31742
31743 * configure.ac (gcc_cv_as_compress_debug): Check for assembler
31744 compressed debug support.
31745 (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
31746 * configure: Regenerate.
31747 * config.in: Regenerate.
31748 * common.opt (compressed_debug_sections): New enum.
31749 (gz, gz=): New options.
31750 * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
31751 (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
31752 (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
31753 * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
31754 LINK_COMPRESS_DEBUG_SPEC.
31755 * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
31756 * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
31757 * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
31758 (Debugging Options): Document -gz[=type].
31759
31760 2014-06-27 Martin Jambor <mjambor@suse.cz>
31761
31762 PR ipa/61160
31763 * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
31764 args_to_skip, use those from node instead. Copy args_to_skip and
31765 combined_args_to_skip from node to the new thunk.
31766 (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
31767 (cgraph_create_virtual_clone): Moved computation of
31768 combined_args_to_skip...
31769 (cgraph_clone_node): ...here, simplify it to bitmap_ior..
31770
31771 2014-06-27 trevor Saunders <tsaunders@mozilla.com>
31772
31773 * config/i386/winnt.c (i386_pe_section_type_flags): Remove
31774 redundant diagnostic machinary.
31775
31776 2014-06-27 Richard Biener <rguenther@suse.de>
31777
31778 * tree-ssa-math-opts.c (bswap_replace): Fix
31779 SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
31780
31781 2014-06-27 Martin Liska <mliska@suse.cz>
31782
31783 * gimple.h (gimple_location_safe): New function introduced.
31784 * cgraphunit.c (walk_polymorphic_call_targets): Usage
31785 of gimple_location_safe replaces gimple_location.
31786 (gimple_fold_call): Likewise.
31787 * ipa-devirt.c (ipa_devirt): Likewise.
31788 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
31789 * ipa.c (walk_polymorphic_call_targets): Likewise.
31790 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
31791
31792 2014-06-27 Jakub Jelinek <jakub@redhat.com>
31793
31794 PR tree-optimization/57233
31795 PR tree-optimization/61299
31796 * tree-vect-generic.c (get_compute_type, count_type_subparts): New
31797 functions.
31798 (expand_vector_operations_1): Use them. If {L,R}ROTATE_EXPR
31799 would be lowered to scalar shifts, check if corresponding
31800 shifts and vector BIT_IOR_EXPR are supported and don't lower
31801 or lower just to narrower vector type in that case.
31802 * expmed.c (expand_shift_1): Fix up handling of vector
31803 shifts and rotates.
31804
31805 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
31806
31807 PR target/61586
31808 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
31809
31810 2014-06-26 Jan Hubicka <hubicka@ucw.cz>
31811
31812 * doc/invoke.texi (-fsemantic-interposition): Document.
31813 * common.opt (fsemantic-interposition): New flag.
31814 * varasm.c (decl_replaceable_p): Use it.
31815
31816 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31817
31818 PR target/61542
31819 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
31820 extraction other than index 3.
31821
31822 2014-06-26 Teresa Johnson <tejohnson@google.com>
31823
31824 * doc/invoke.texi: Fix typo.
31825 * dumpfile.c: Add support for documented -fdump-* options
31826 optimized/missed/note/optall.
31827
31828 2014-06-26 Martin Jambor <mjambor@suse.cz>
31829
31830 * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
31831 (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
31832 (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
31833 (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
31834 * opts.c (default_options_optimization): Set
31835 PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
31836 * doc/invoke.texi (allow-load-data-races)
31837 (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
31838 (allow-store-data-races): Document the new default.
31839
31840 2014-06-26 Martin Jambor <mjambor@suse.cz>
31841
31842 * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
31843 renamed to ipa_impossible_devirt_target. Fix typo.
31844 * ipa-prop.h (ipa_impossible_devirt_target): Declare.
31845 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
31846 ipa_impossible_devirt_target.
31847
31848 2014-06-26 Richard Biener <rguenther@suse.de>
31849
31850 PR tree-optimization/61607
31851 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
31852 explaining why we restrict copies on loop depth.
31853 * tree-ssa-dom.c (cprop_operand): Remove restriction on
31854 on loop depth.
31855 (record_equivalences_from_phis): Instead add it here.
31856
31857 2014-06-26 Bernd Schmidt <bernds@codesourcery.com>
31858
31859 * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
31860 (LTO_WRAPPER_OBJS): New variable.
31861 (lto-wrapper$(exeext)): Use it.
31862 * collect2.c: Include "collect-utils.h".
31863 (verbose, debug): Remove variables.
31864 (at_file_supplied): No longer static.
31865 (tool_name): New variable.
31866 (do_wait, fork_execute, maybe_unlink): Don't declare.
31867 (tool_cleanup): No longer static.
31868 (notice): Remove function.
31869 (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
31870 fork_execute calls.
31871 (collect_wait, do_wait, collect_execute): Remove functions.
31872 (maybe_unlink): No longer static.
31873 * collect2.h (verbose, debug): Don't declare.
31874 (at_file_supplied): Declare.
31875 * collect-utils.c (utils_cleanup): New arg from_signal. All callers
31876 changed.
31877 (collect_execute): Replace with implementation from collect2, plus a
31878 new arg use_atfile. All callers changed.
31879 (collect_wait): Replace with implementation from collect2.
31880 (maybe_unlink_file): Remove function.
31881 (fork_execute): Replace with implementation from collect2, plus a
31882 new arg use_atfile. All callers changed.
31883 (do_wait): Add call to utils_cleanup to the error path.
31884 * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
31885 (tool_cleanup): Adjust declarations.
31886 * lto-wrapper.c (tool_cleanup): Add unused bool argument.
31887 * tlink.c: Include "collect-utils.h".
31888 (tlink_execute): New arg use_atfile. All callers changed.
31889 (tlink_init, tlink_execute): Remove declarations.
31890
31891 * collect-utils.c (save_temps): New variable.
31892 (do_wait): Use it instead of debug. Use fatal_error.
31893 * collect-utils.h (save_temps): Declare.
31894 * collect2.c (verbose): Rename from vflag. All uses changed.
31895 (tool_cleanup): New function, copied from collect_atexit.
31896 (collect_atexit, handler): Just call it.
31897 * collect2.h (verbose): Declaration renamed from vflag.
31898 * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
31899 debug.
31900
31901 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
31902 (lto-wrapper$(exeext)): Link with collect-utils.o.
31903 * collect-utils.c: New file.
31904 * collect-utils.h: New file.
31905 * lto-wrapper.c: Include "collect-utils.h".
31906 (args_name): Delete variable.
31907 (tool_name): New variable.
31908 (tool_cleanup): New function.
31909 (maybe_unlink): Renamed from maybe_unlink_file. All callers changed.
31910 (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
31911 (fork_execute): Remove functions.
31912
31913 2014-06-26 Nick Clifton <nickc@redhat.com>
31914
31915 * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
31916
31917 * doc/extend.texi (Function Attributes): Fix typo in description
31918 of RX vector attribute.
31919
31920 2014-06-26 James Greenhalgh <james.greenhalgh@arm.com>
31921
31922 * config.gcc (supported_defaults): Error when passing either
31923 --with-tune or --with-arch in conjunction with --with-cpu for ARM.
31924
31925 2014-06-26 Richard Biener <rguenther@suse.de>
31926
31927 * tree-ssa-dom.c (cprop_operand): Remove restriction on
31928 propagating volatile pointers.
31929
31930 2014-06-26 Richard Biener <rguenther@suse.de>
31931
31932 PR tree-optimization/61607
31933 * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
31934 loop if we redirected its latch edge.
31935 (thread_block_1): Do not cancel loops prematurely.
31936
31937 2014-06-25 Jan Hubicka <hubicka@ucw.cz>
31938
31939 * toplev.c (backend_init_target): Move init_emit_regs and
31940 init_regs to...
31941 (backend_init) ... here; skip ira_init_once and backend_init_target.
31942 (target_reinit) ... and here; clear
31943 this_target_rtl->lang_dependent_initialized.
31944 (lang_dependent_init_target): Clear
31945 this_target_rtl->lang_dependent_initialized;
31946 break out rtl initialization to ...
31947 (initialize_rtl): ... here; call also backend_init_target
31948 and ira_init_once.
31949 * toplev.h (initialize_rtl): New function.
31950 * function.c: Include toplev.h
31951 (init_function_start): Call initialize_rtl.
31952 * rtl.h (target_rtl): Add target_specific_initialized,
31953 lang_dependent_initialized.
31954
31955 2014-06-25 Paul Gortmaker <paul.gortmaker@windriver.com>
31956 Jakub Jelinek <jakub@redhat.com>
31957
31958 * gcc.c (set_multilib_dir): Malloc "." pointer as well.
31959
31960 2014-06-25 Tom de Vries <tom@codesourcery.com>
31961
31962 * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
31963
31964 2014-06-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
31965
31966 * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
31967 check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
31968 Issue a strict overflow warning if appropriate.
31969
31970 2014-06-25 Martin Liska <mliska@suse.cz>
31971
31972 IPA REF refactoring
31973 * Makefile.in: Removed header file (ipa-ref-inline.h).
31974 * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
31975 called.
31976 (cgraph_speculative_call_info): Likewise.
31977 (cgraph_for_node_thunks_and_aliases): Likewise.
31978 (cgraph_for_node_and_aliases): Likewise.
31979 (verify_cgraph_node): Likewise.
31980 * cgraph.h: Batch of IPA REF functions become member functions of
31981 symtab_node: add_reference, maybe_add_reference, clone_references,
31982 clone_referring, clone_reference, find_reference,
31983 remove_stmt_references, remove_all_references,
31984 remove_all_referring, dump_references, dump_referring,
31985 has_alias_p, iterate_reference, iterate_referring.
31986 * cgraphbuild.c (record_reference): New IPA REF function used.
31987 (record_type_list): Likewise.
31988 (record_eh_tables): Likewise.
31989 (mark_address): Likewise.
31990 (mark_load): Likewise.
31991 (mark_store): Likewise.
31992 (pass_build_cgraph_edges): Likewise.
31993 (rebuild_cgraph_edge): Likewise.
31994 (cgraph_rebuild_references): Likewise.
31995 (pass_remove_cgraph_callee_edges): Likewise.
31996 * cgraphclones.c (cgraph_clone_node): Likewise.
31997 (cgraph_create_virtual_clone): Likewise.
31998 (cgraph_materialize_clone): Likewise.
31999 (cgraph_materialize_all_clones): Likewise.
32000 * cgraphunit.c (cgraph_reset_node): Likewise.
32001 (cgraph_reset_node): Likewise.
32002 (analyze_function): Likewise.
32003 (assemble_thunks_and_aliases): Likewise.
32004 (expand_function): Likewise.
32005 * ipa-comdats.c (propagate_comdat_group): Likewise.
32006 (enqueue_references): Likewise.
32007 * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
32008 (create_specialized_node): Likewise.
32009 * ipa-devirt.c (referenced_from_vtable_p): Likewise.
32010 * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
32011 * ipa-inline.c (reset_edge_caches): Likewise.
32012 (update_caller_keys): Likewise.
32013 (execute): Likewise.
32014 * ipa-prop.c (remove_described_reference): Likewise.
32015 (propagate_controlled_uses): Likewise.
32016 (ipa_edge_duplication_hook): Likewise.
32017 (ipa_modify_call_arguments): Likewise.
32018 * ipa-pure-const.c (propagate_pure_const): Likewise.
32019 * ipa-ref-inline.h: Header file removed, functions moved
32020 to symtab_node class.
32021 * ipa-ref.c (remove_reference): New class member function.
32022 (cannot_lead_to_return): New class member function.
32023 (referring_ref_list): Likewise.
32024 (referred_ref_list): Likewise.
32025 Rest of functions moved to symtab_node class.
32026 * ipa-ref.h: New member functions remove_reference,
32027 cannot_lead_to_return, referring_ref_list, referred_ref_list added
32028 to ipa_ref class.
32029 ipa_ref_list class has new member functions: first_reference,
32030 first_referring, clear, nreferences.
32031 * ipa-reference.c (analyze_function): New IPA REF function used.
32032 (write_node_summary_p): Likewise.
32033 (ipa_reference_write_optimization_summary): Likewise.
32034 * ipa-split.c (split_function): Likewise.
32035 * ipa-utils.c (ipa_reverse_postorder): Likewise.
32036 * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
32037 (function_and_variable_visibility): Likewise.
32038 * ipa.c (has_addr_references_p): Likewise.
32039 (process_references): Argument type changed.
32040 (symtab_remove_unreachable_nodes): New IPA REF function used.
32041 (process_references): Likewise.
32042 (set_writeonly_bit): Likewise.
32043 * lto-cgraph.c: Implementation of new symtab_node member functions
32044 that uses new IPA REF functions.
32045 * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
32046 function used.
32047 * lto-streamer-out.c (output_symbol_p): Likewise.
32048 * lto-streamer.h (referenced_from_this_partition_p): Argument type
32049 changed.
32050 * symtab.c: Implementation of new IPA REF API.
32051 * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
32052 (ipa_tm_create_version): Likewise.
32053 (ipa_tm_execute): Likewise.
32054 * tree-emutls.c (gen_emutls_addr): Likewise.
32055 * tree-inline.c (copy_bb): Likewise.
32056 (delete_unreachable_blocks_update_callgraph): Likewise.
32057 * varpool.c (varpool_remove_unreferenced_decls): Likewise.
32058 (varpool_for_node_and_aliases): Likewise.
32059
32060 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
32061
32062 * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
32063
32064 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
32065
32066 PR bootstrap/61598
32067 * fold-const.c (fold_checksum_tree): Use a hash_table of const
32068 tree_node * instead of tree_node *.
32069 (fold): Adjust.
32070 (print_fold_checksum): Likewise.
32071 (fold_check_failed): Likewise.
32072 (debug_fold_checksum): Likewise.
32073 (fold_build1_stat_loc): Likewise.
32074 (fold_build2_stat_loc): Likewise.
32075 (fold_build3_stat_loc): Likewise.
32076 (fold_build_call_array_loc): Likewise.
32077
32078 2014-06-25 David Edelsohn <dje.gcc@gmail.com>
32079
32080 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
32081 implementation with call to...
32082 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
32083 function.
32084 * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
32085 Declare.
32086
32087 2014-06-25 Marc Glisse <marc.glisse@inria.fr>
32088
32089 PR tree-optimization/57742
32090 * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
32091 after replacing the statement.
32092
32093 2014-06-25 Nick Clifton <nickc@redhat.com>
32094
32095 * config/v850/v850.c (GHS_default_section_names): Change to const
32096 char * type.
32097 (GHS_current_section_names): Likewise.
32098 (v850_insert_attributes): Do not build strings, just assign the
32099 names directly. Change the type of 'chosen_section' to const
32100 char*.
32101 * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
32102 directly to the array entry.
32103 * config/v850/v850.h (GHS_default_section_names): Change to const
32104 char * type.
32105 (GHS_current_section_names): Likewise.
32106
32107 2014-06-25 Jakub Jelinek <jakub@redhat.com>
32108
32109 * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
32110 (LANG_HOOKS_DECLS): Add it.
32111 * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
32112 has correct type.
32113 * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
32114 * langhooks.h (struct lang_hooks_for_decls): Add
32115 omp_clause_linear_ctor hook.
32116 * omp-low.c (lower_rec_input_clauses): Set max_vf even if
32117 OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert
32118 OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in
32119 combined simd loop use omp_clause_linear_ctor hook.
32120
32121 2014-06-24 Cong Hou <congh@google.com>
32122
32123 * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
32124 pattern recognition.
32125 (type_conversion_p): PROMOTION is true if it's a type promotion
32126 conversion, and false otherwise. Return true if the given expression
32127 is a type conversion one.
32128 * tree-vectorizer.h: Adjust the number of patterns.
32129 * tree.def: Add SAD_EXPR.
32130 * optabs.def: Add sad_optab.
32131 * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
32132 * expr.c (expand_expr_real_2): Likewise.
32133 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
32134 * gimple.c (get_gimple_rhs_num_ops): Likewise.
32135 * optabs.c (optab_for_tree_code): Likewise.
32136 * tree-cfg.c (estimate_operator_cost): Likewise.
32137 * tree-ssa-operands.c (get_expr_operands): Likewise.
32138 * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
32139 * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
32140 * doc/generic.texi: Add document for SAD_EXPR.
32141 * doc/md.texi: Add document for ssad and usad.
32142
32143 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
32144
32145 * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
32146 qualification in cast.
32147
32148 2014-06-24 Jan Hubicka <hubicka@ucw.cz>
32149
32150 * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
32151 * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
32152 * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
32153 (tree_function_decl): ... here.
32154 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
32155 streaming of vindex to ...
32156 (write_ts_function_decl_tree_pointers): ... here.
32157 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
32158 Do not stream DECL_VINDEX.
32159 (lto_input_ts_function_decl_tree_pointers): Stream it here.
32160
32161 2014-06-24 Catherine Moore <clm@codesourcery.com>
32162 Sandra Loosemore <sandra@codesourcery.com>
32163
32164 * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
32165 * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
32166 * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
32167
32168 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
32169
32170 * doc/invoke.texi (Warning Options): Remove duplicated
32171 -Wmaybe-uninitialized.
32172
32173 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
32174
32175 PR tree-optimization/57742
32176 * tree-ssa-strlen.c (get_string_length): Ignore malloc.
32177 (handle_builtin_malloc, handle_builtin_memset): New functions.
32178 (strlen_optimize_stmt): Call them.
32179 * passes.def: Move strlen after loop+dom but before vrp.
32180
32181 2014-06-24 Jakub Jelinek <jakub@redhat.com>
32182
32183 PR target/61570
32184 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
32185 model family 6 CPU with has_longmode never use a CPU without
32186 64-bit support.
32187
32188 2014-06-24 H.J. Lu <hongjiu.lu@intel.com>
32189
32190 PR target/61570
32191 * config/i386/driver-i386.c (host_detect_local_cpu): Revert
32192 the last change.
32193
32194 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
32195
32196 * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
32197 * dominance.c (iterate_fix_dominators): Use hash_map instead of
32198 pointer_map.
32199 * hash-map.h: New file.
32200 * ipa-comdats.c: Use hash_map instead of pointer_map.
32201 * ipa.c: Likewise.
32202 * lto-section-out.c: Adjust.
32203 * lto-streamer.h: Replace pointer_map with hash_map.
32204 * symtab.c (verify_symtab): Likewise.
32205 * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
32206 * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
32207 * tree-streamer.h: Likewise.
32208 * tree-streamer.c: Adjust.
32209 * pointer-set.h: Remove pointer_map.
32210
32211 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
32212
32213 * hash-table.h: Add a template arg to choose between storing values
32214 and storing pointers to values, and then provide partial
32215 specializations for both.
32216 * tree-browser.c (tree_upper_hasher): Provide the type the hash table
32217 should store, not the type values should point to.
32218 * tree-into-ssa.c (var_info_hasher): Likewise.
32219 * tree-ssa-dom.c (expr_elt_hasher): Likewise.
32220 * tree-complex.c: Adjust.
32221 * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
32222 table instead of int_tree_map *.
32223 * tree-parloops.c: Adjust.
32224 * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
32225 type is being stored.
32226 * tree-vectorizer.c: Adjust.
32227
32228 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
32229
32230 * hash-table.h: Remove a layer of indirection from hash_table so that
32231 it contains the hash table's data instead of a pointer to the data.
32232 * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
32233 config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
32234 config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
32235 data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
32236 fold-const.c, gcse.c, ggc-common.c,
32237 gimple-ssa-strength-reduction.c, gimplify.c,
32238 graphite-clast-to-gimple.c, graphite-dependences.c,
32239 graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
32240 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
32241 loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
32242 lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
32243 postreload-gcse.c, sese.c, statistics.c, store-motion.c,
32244 trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
32245 tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
32246 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
32247 tree-ssa-live.c, tree-ssa-loop-im.c,
32248 tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
32249 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
32250 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
32251 tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
32252 tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
32253 tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
32254 vtable-verify.c, vtable-verify.h: Adjust.
32255
32256 2014-06-24 Richard Biener <rguenther@suse.de>
32257
32258 PR tree-optimization/61572
32259 * tree-ssa-sink.c (statement_sink_location): Do not sink
32260 loads from hard registers.
32261
32262 2014-06-24 Jakub Jelinek <jakub@redhat.com>
32263
32264 * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
32265 not mentioned in clauses use private clause if the iterator is
32266 declared in #pragma omp for simd, and when adding lastprivate
32267 instead, add it to the outer #pragma omp for too. Diagnose
32268 if the variable is private in outer context. For simd collapse > 1
32269 loops, replace all iterators with temporaries.
32270 * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
32271 same even in collapse > 1 loops.
32272
32273 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
32274 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
32275 non-NULL.
32276 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
32277 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
32278 non-NULL.
32279 (gimplify_adjust_omp_clauses): Likewise.
32280 * omp-low.c (lower_rec_simd_input_clauses,
32281 lower_rec_input_clauses, expand_omp_simd): Handle non-constant
32282 safelen the same as safelen(1).
32283 * tree-nested.c (convert_nonlocal_omp_clauses,
32284 convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
32285 OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
32286 (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
32287 Fixup handling of GIMPLE_OMP_TARGET.
32288 (convert_tramp_reference_stmt, convert_gimple_call): Handle
32289 GIMPLE_OMP_TARGET.
32290
32291 2014-06-24 Chung-Lin Tang <cltang@codesourcery.com>
32292
32293 PR tree-optimization/61554
32294 * tree-ssa-propagate.c: Include "bitmap.h".
32295 (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
32296 properly update constructor/destructor.
32297 (substitute_and_fold_dom_walker::before_dom_children):
32298 Remove call to gimple_purge_dead_eh_edges, add bb->index to
32299 need_eh_cleaup instead.
32300 (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
32301 need_eh_cleanup.
32302
32303 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
32304
32305 * varpool.c (dump_varpool_node): Dump used_by_single_function.
32306 * tree-pass.h (make_pass_ipa_single_use): New pass.
32307 * cgraph.h (used_by_single_function): New flag.
32308 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
32309 Stream it.
32310 * passes.def (pass_ipa_single_use): Scedule.
32311 * ipa.c (BOTTOM): New macro.
32312 (meet): New function
32313 (propagate_single_user): New function.
32314 (ipa_single_use): New function.
32315 (pass_data_ipa_single_use): New pass.
32316 (pass_ipa_single_use): New pass.
32317 (pass_ipa_single_use::gate): New gate.
32318 (make_pass_ipa_single_use): New function.
32319
32320 2014-06-23 Kai Tietz <ktietz@redhat.com>
32321
32322 PR target/39284
32323 * passes.def (peephole2): Move peephole2 pass before sched2 pass.
32324 * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
32325
32326 2014-06-23 Richard Biener <rguenther@suse.de>
32327
32328 * tree-ssa-loop.c (gate_loop): New function.
32329 (pass_tree_loop::gate): Call it.
32330 (pass_data_tree_no_loop, pass_tree_no_loop,
32331 make_pass_tree_no_loop): New.
32332 * tree-vectorizer.c: Include tree-scalar-evolution.c
32333 (pass_slp_vectorize::execute): Initialize loops and SCEV if
32334 required.
32335 (pass_slp_vectorize::clone): New method.
32336 * timevar.def (TV_TREE_NOLOOP): New.
32337 * tree-pass.h (make_pass_tree_no_loop): Declare.
32338 * passes.def (pass_tree_no_loop): New pass group with
32339 SLP vectorizer.
32340
32341 2014-06-23 H.J. Lu <hongjiu.lu@intel.com>
32342
32343 PR target/61570
32344 * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
32345 to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
32346
32347 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
32348
32349 * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
32350 "yes" where needed.
32351
32352 2014-06-23 Alan Modra <amodra@gmail.com>
32353
32354 PR bootstrap/61583
32355 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
32356 to zero on debug statements.
32357
32358 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
32359
32360 PR target/60825
32361 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
32362 Ignore third operand if present by marking qualifier_internal.
32363
32364 * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
32365
32366 * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
32367 vector extension.
32368 (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
32369 arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
32370 (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
32371 vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
32372 vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
32373 vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
32374 vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
32375 vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
32376 vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
32377 vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
32378 vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
32379 vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
32380 vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
32381 vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
32382 vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
32383 vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
32384 logic in GCC vector extensions
32385
32386 (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
32387 vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
32388 vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
32389 vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
32390 vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
32391 vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
32392 vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
32393 vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
32394 vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
32395 vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
32396
32397 (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
32398
32399 (vget_high_s64, vget_high_u64): Reimplement with GCC vector
32400 extensions.
32401
32402 (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
32403 (vget_low_s64): Use __GET_LOW macro.
32404 (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
32405 gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
32406 (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
32407 (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
32408 __builtin_aarch64_lane_boundsi, use GCC vector extensions.
32409
32410 (vcombine_s64): Use GCC vector extensions; remove cast.
32411 (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
32412 vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
32413 vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
32414 Fix type signature; remove cast.
32415
32416 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
32417
32418 PR target/60825
32419 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
32420 V1DFmode.
32421 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
32422 add V1DFmode
32423 (BUILTIN_VD1): New.
32424 (BUILTIN_VD_RE): Remove.
32425 (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
32426 (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
32427 * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
32428 variant but not df.
32429 (vreinterpretv1df*, vreinterpret*v1df): New.
32430 (vreinterpretdf*, vreinterpret*df): Remove.
32431 * config/aarch64/aarch64-simd.md (aarch64_create,
32432 aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
32433 * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
32434 (VD1): New.
32435 * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
32436 (vcreate_f64): Remove cast, use v1df builtin.
32437 (vcombine_f64): Remove cast, get elements with gcc vector extensions.
32438 (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
32439 vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
32440 vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
32441 vmov_n_f64, vst1_f64): Use gcc vector extensions.
32442 (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
32443 add range check using __builtin_aarch64_im_lane_boundsi.
32444 (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
32445 vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
32446 type signature, use gcc vector extensions.
32447 (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
32448 vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
32449 vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
32450 vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
32451 vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
32452 vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
32453 vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
32454 vreinterpret_u64_f64): Use v1df builtin not df.
32455
32456 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
32457
32458 * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
32459 vector registers.
32460
32461 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
32462
32463 * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
32464 priority directly.
32465
32466 2014-06-23 Zhenqiang Chen <zhenqiang.chen@linaro.org>
32467
32468 * loop-invariant.c (pre_check_invariant_p): New function.
32469 (find_invariant_insn): Call pre_check_invariant_p.
32470
32471 2014-06-22 Richard Henderson <rth@redhat.com>
32472
32473 PR target/61565
32474 * compare-elim.c (struct comparison): Add eh_note.
32475 (find_comparison_dom_walker::before_dom_children): Don't eliminate
32476 a redundant comparison in a different EH region. Purge EH edges if
32477 necessary.
32478
32479 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
32480
32481 * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
32482 (var_shift): Use it.
32483 (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
32484 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
32485 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
32486 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
32487 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
32488 *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
32489 *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
32490 *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
32491 *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
32492 *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
32493 *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
32494 *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
32495 *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
32496 *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
32497 *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
32498 *rotldi3_internal15be): Use the new attribute. Merge register and
32499 integer alternatives.
32500
32501 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
32502
32503 * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
32504 define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
32505 split, *ashrdi3_internal3 and split): Delete, merge into...
32506 (ashr<mode>3): New expander.
32507 (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
32508 (*ashrsi3_64): Fix formatting. Replace "i" by "n".
32509
32510 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
32511
32512 * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
32513 *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
32514 *rotldi3_internal3 and split): Delete, merge into...
32515 (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
32516 (*rotlsi3_64): Fix formatting. Fix condition. Replace "i" by "n".
32517 Use "rotlw" extended mnemonic.
32518
32519 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
32520
32521 * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
32522 and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
32523 and split, *ashldi3_internal3 and split): Delete, merge into...
32524 (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
32525 (*ashlsi3_64): Fix formatting. Replace "i" by "n".
32526
32527 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
32528
32529 * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
32530 (lshrsi3, two anonymous define_insns and define_splits,
32531 lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
32532 *lshrdi3_internal3 and split): Delete, merge into...
32533 (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
32534 (*lshrsi3_64): Fix formatting. Replace "i" by "n".
32535
32536 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
32537
32538 * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
32539 Remove "O" alternative.
32540
32541 2014-06-22 Richard Sandiford <rdsandiford@googlemail.com>
32542
32543 * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
32544 (mips_move_from_gpr_cost): Likewise.
32545 (mips_register_move_cost): Update accordingly.
32546 (mips_secondary_reload_class): Remove name of in_p.
32547
32548 2014-06-22 Marc Glisse <marc.glisse@inria.fr>
32549
32550 PR target/61503
32551 * config/i386/i386.md (x86_64_shrd, x86_shrd,
32552 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
32553
32554 2014-06-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
32555
32556 * config/nios2/nios2.c: Include "builtins.h".
32557
32558 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
32559
32560 * cgraph.h (tls_model_names): New variable.
32561 * print-tree.c (print_node): Simplify.
32562 * varpool.c (tls_model_names): New variable.
32563 (dump_varpool_node): Output tls model.
32564
32565 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
32566
32567 * ipa-visibility.c (function_and_variable_visibility): Disable
32568 temporarily local aliases for some targets.
32569
32570 2014-06-20 Marek Polacek <polacek@redhat.com>
32571
32572 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
32573 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
32574 into SANITIZE_UNDEFINED.
32575 * doc/invoke.texi: Describe -fsanitize=bounds.
32576 * gimplify.c (gimplify_call_expr): Add gimplification of internal
32577 functions created in the FEs.
32578 * internal-fn.c: Move "internal-fn.h" after "tree.h".
32579 (expand_UBSAN_BOUNDS): New function.
32580 * internal-fn.def (UBSAN_BOUNDS): New internal function.
32581 * internal-fn.h: Don't define internal functions here.
32582 * opts.c (common_handle_option): Add -fsanitize=bounds.
32583 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
32584 BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
32585 * tree-core.h: Define internal functions here.
32586 (struct tree_base): Add ifn field.
32587 * tree-pretty-print.c: Include "internal-fn.h".
32588 (dump_generic_node): Handle functions without CALL_EXPR_FN.
32589 * tree.c (get_callee_fndecl): Likewise.
32590 (build_call_expr_internal_loc): New function.
32591 * tree.def (CALL_EXPR): Update description.
32592 * tree.h (CALL_EXPR_IFN): Define.
32593 (build_call_expr_internal_loc): Declare.
32594 * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
32595 types.
32596 (ubsan_type_descriptor): Change bool parameter to enum
32597 ubsan_print_style. Adjust the code. Add handling of
32598 UBSAN_PRINT_ARRAY.
32599 (ubsan_expand_bounds_ifn): New function.
32600 (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
32601 (ubsan_build_overflow_builtin): Likewise.
32602 (instrument_bool_enum_load): Likewise.
32603 (ubsan_instrument_float_cast): Likewise.
32604 * ubsan.h (enum ubsan_print_style): New enum.
32605 (ubsan_expand_bounds_ifn): Declare.
32606 (ubsan_type_descriptor): Adjust declaration. Use a default parameter.
32607
32608 2014-06-20 Maciej W. Rozycki <macro@codesourcery.com>
32609
32610 * config/rs6000/rs6000.md: Append `DONE' to preparation
32611 statements of `bswap' pattern splitters.
32612
32613 2014-06-20 Tom de Vries <tom@codesourcery.com>
32614
32615 * target.def (call_fusage_contains_non_callee_clobbers): Update
32616 definition.
32617 * doc/tm.texi: Regenerate.
32618
32619 2014-06-20 Yury Gribov <y.gribov@samsung.com>
32620 Max Ostapenko <m.ostapenko@partner.samsung.com>
32621
32622 PR sanitizer/61547
32623 * asan.c (instrument_strlen_call): Fixed instrumentation of
32624 trailing byte.
32625
32626 2014-06-20 Martin Jambor <mjambor@suse.cz>
32627
32628 PR ipa/61540
32629 * ipa-prop.c (impossible_devirt_target): New function.
32630 (try_make_edge_direct_virtual_call): Use it, also instead of
32631 asserting.
32632
32633 2014-06-20 Yury Gribov <y.gribov@samsung.com>
32634 Max Ostapenko <m.ostapenko@partner.samsung.com>
32635
32636 PR sanitizer/61530
32637 * asan.c (build_check_stmt): Add condition.
32638
32639 2014-06-20 Martin Jambor <mjambor@suse.cz>
32640
32641 PR ipa/61211
32642 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
32643 expanded clones.
32644
32645 2014-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32646
32647 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
32648 Update comments.
32649 (VCONQ): Make comment more helpful.
32650 (VCON): Delete.
32651 * config/aarch64/aarch64-simd.md
32652 (aarch64_sqdmulh_lane<mode>):
32653 Use VCOND for operands 2. Update lane checking and flipping logic.
32654 (aarch64_sqrdmulh_lane<mode>): Likewise.
32655 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
32656 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
32657 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
32658 attribute of operand 3 to VCOND.
32659 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
32660 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
32661 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
32662 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
32663 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
32664 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
32665 define_insn.
32666 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
32667 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
32668 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
32669 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
32670 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
32671 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
32672 operand to VCOND. Update lane flipping and bounds checking logic.
32673 (aarch64_sqdmlal2_lane<mode>): Likewise.
32674 (aarch64_sqdmlsl_lane<mode>): Likewise.
32675 (aarch64_sqdmull_lane<mode>): Likewise.
32676 (aarch64_sqdmull2_lane<mode>): Likewise.
32677 (aarch64_sqdmlal_laneq<mode>):
32678 Replace VCON usage with VCONQ.
32679 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
32680 (aarch64_sqdmlal2_laneq<mode>): Emit
32681 aarch64_sqdmlal2_laneq<mode>_internal insn.
32682 Replace VCON with VCONQ.
32683 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
32684 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
32685 (aarch64_sqdmull_laneq<mode>): Emit
32686 aarch64_sqdmull_laneq<mode>_internal insn.
32687 Replace VCON with VCONQ.
32688 (aarch64_sqdmull2_laneq<mode>): Emit
32689 aarch64_sqdmull2_laneq<mode>_internal insn.
32690 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
32691 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
32692 of 3rd argument to int16x4_t.
32693 (vqdmlalh_lane_s16): Likewise.
32694 (vqdmlslh_lane_s16): Likewise.
32695 (vqdmull_high_lane_s16): Likewise.
32696 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
32697 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
32698 (vqdmlsl_lane_s16): Likewise.
32699 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
32700 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
32701 (vqdmlals_lane_s32): Likewise.
32702 (vqdmlsls_lane_s32): Likewise.
32703 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
32704 (vqdmulls_lane_s32): Likewise.
32705 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
32706 (vqdmlsl_lane_s32): Likewise.
32707 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
32708 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
32709 (vqrdmulhh_lane_s16): Likewise.
32710 (vqdmlsl_high_lane_s16): Likewise.
32711 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
32712 (vqdmlsl_high_lane_s32): Likewise.
32713 (vqrdmulhs_lane_s32): Likewise.
32714
32715 2014-06-20 Tom de Vries <tom@codesourcery.com>
32716
32717 * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
32718 get_call_reg_set_usage.
32719
32720 2014-06-20 Tom de Vries <tom@codesourcery.com>
32721
32722 * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
32723 it contains all call_used_regs.
32724
32725 2014-06-20 Tom de Vries <tom@codesourcery.com>
32726
32727 * final.c (collect_fn_hard_reg_usage): Add and use variable
32728 function_used_regs.
32729
32730 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
32731
32732 * cgraph.h (struct symtab_node): Add field in_init_priority_hash
32733 (set_init_priority, get_init_priority, set_fini_priority,
32734 get_fini_priority): New methods.
32735 * tree.c (init_priority_for_decl): Remove.
32736 (init_ttree): Do not initialize init priority.
32737 (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
32738 (decl_priority_info): Remove.
32739 (decl_init_priority_insert): Rewrite.
32740 (decl_fini_priority_insert): Rewrite.
32741 * tree.h (tree_priority_map_eq, tree_priority_map_hash,
32742 tree_priority_map_marked_p): Remove.
32743 * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
32744 * lto-streamer-out.c (hash_tree): Do not hash priorities.
32745 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
32746 not output priorities.
32747 (pack_ts_function_decl_value_fields): Likewise.
32748 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
32749 not input priorities.
32750 (unpack_ts_function_decl_value_fields): Likewise.
32751 * symtab.c (symbol_priority_map): Declare.
32752 (init_priority_hash): Declare.
32753 (symtab_unregister_node): Unregister from priority hash, too.
32754 (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
32755 New methods.
32756 (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
32757 (symbol_priority_info): New function.
32758 (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
32759 New methods.
32760 * tree-core.h (tree_priority_map): Remove.
32761
32762 2014-06-20 Jakub Jelinek <jakub@redhat.com>
32763
32764 * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
32765 0xff to uint64_t before shifting it up.
32766
32767 2014-06-20 Julian Brown <julian@codesourcery.com>
32768 Chung-Lin Tang <cltang@codesourcery.com>
32769
32770 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
32771 TARGET_THUMB1_ONLY. Add comments.
32772
32773 2014-06-19 Tom de Vries <tom@codesourcery.com>
32774
32775 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
32776 return type to void.
32777 * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
32778
32779 2014-06-19 Zhenqiang Chen <zhenqiang.chen@linaro.org>
32780
32781 * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
32782 as "move", from depends_on.
32783
32784 2014-06-19 Terry Guo <terry.guo@arm.com>
32785
32786 * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
32787 stage.
32788
32789 2014-06-18 Segher Boessenkool <segher@kernel.crashing.org>
32790
32791 * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
32792 Remove cr5.
32793 (REG_ALLOC_ORDER): Update comment. Move cr5 earlier.
32794
32795 2014-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
32796
32797 PR target/61550
32798 * config/sh/sh.c (prepare_move_operands): Don't process TLS
32799 addresses here if reload in progress or completed.
32800
32801 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
32802
32803 * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
32804 "TARGET_MIPS16 ? M16_REGS : GR_REGS".
32805 * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
32806 (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
32807 (mips_register_priority): New function that implements the target
32808 hook TARGET_REGISTER_PRIORITY.
32809 (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
32810 (mips_lra_p): Likewise for TARGET_LRA_P.
32811 (TARGET_REGISTER_PRIORITY): Define macro.
32812 (TARGET_SPILL_CLASS): Likewise.
32813 (TARGET_LRA_P): Likewise.
32814 * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
32815 classes.
32816 (REG_CLASS_NAMES): Likewise.
32817 (REG_CLASS_CONTENTS): Likewise.
32818 (BASE_REG_CLASS): Use M16_SP_REGS.
32819 * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
32820 New set attribute to enable alternatives depending on the register
32821 allocator used.
32822 (*mul_acc_si_r3900, *mul_sub_si): Likewise.
32823 (*lea64): Disable pattern for MIPS16.
32824 * config/mips/mips.opt (mlra): New option.
32825
32826 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
32827
32828 * lra-constraints.c (base_to_reg): New function.
32829 (process_address): Use new function.
32830
32831 2014-06-18 Tom de Vries <tom@codesourcery.com>
32832
32833 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
32834 * config/aarch64/aarch64.c
32835 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
32836 (aarch64_emit_call_insn): New function.
32837 (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
32838 of emit_call_insn.
32839 * config/aarch64/aarch64.md (define_expand "call_internal")
32840 (define_expand "call_value_internal", define_expand "sibcall_internal")
32841 (define_expand "sibcall_value_internal"): New.
32842 (define_expand "call", define_expand "call_value")
32843 (define_expand "sibcall", define_expand "sibcall_value"): Use internal
32844 expand variant and aarch64_emit_call_insn.
32845
32846 2014-06-18 Radovan Obradovic <robradovic@mips.com>
32847 Tom de Vries <tom@codesourcery.com>
32848
32849 * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
32850 * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
32851 Redefine to true.
32852 (arm_emit_call_insn): Add and use sibcall parameter. Add IP and CC
32853 clobbers to CALL_INSN_FUNCTION_USAGE.
32854 (define_expand "sibcall_internal")
32855 (define_expand "sibcall_value_internal"): New.
32856 (define_expand "call", define_expand "call_value"): Add argument to
32857 arm_emit_call_insn.
32858 (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
32859 (define_expand "sibcall_value"): Use sibcall_value_internal and
32860 arm_emit_call_insn.
32861
32862 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
32863
32864 * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
32865
32866 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
32867
32868 * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
32869 __udivmoddi4.
32870
32871 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
32872
32873 * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
32874 push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
32875 annotations. Fix DWARF information.
32876
32877 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
32878
32879 * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
32880 __udivmoddi4, and fixups for negative operands.
32881
32882 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
32883
32884 * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
32885
32886 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
32887
32888 * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
32889 to __udivmoddi4.
32890
32891 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
32892
32893 * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
32894 manipulation.
32895
32896 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
32897
32898 * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
32899 describing register usage on function entry and exit.
32900
32901 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
32902
32903 * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
32904 (__aeabi_ldivmod): Fix whitespace.
32905
32906 2014-06-18 Andreas Schwab <schwab@suse.de>
32907
32908 * doc/md.texi (Standard Names): Use @itemx for grouped items.
32909 Remove blank line after @item.
32910
32911 2014-06-18 Richard Henderson <rth@redhat.com>
32912
32913 PR target/61545
32914 * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
32915
32916 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
32917
32918 * config/arm/arm.c (neon_vector_mem_operand): Allow register
32919 POST_MODIFY for neon loads and stores.
32920 (arm_print_operand): Output post-index register for neon loads and
32921 stores.
32922
32923 2014-06-18 Richard Biener <rguenther@suse.de>
32924
32925 * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
32926
32927 2014-06-18 Richard Biener <rguenther@suse.de>
32928
32929 * tree-pass.h (make_pass_dce_loop): Remove.
32930 * passes.def: Replace pass_dce_loop with pass_dce.
32931 * tree-ssa-dce.c (perform_tree_ssa_dce): If something
32932 changed free niter estimates and reset the scev cache.
32933 (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
32934 make_pass_dce_loop): Remove.
32935 * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
32936 (fini_copy_prop): Return whether something changed. Always
32937 let substitute_and_fold perform DCE and free niter estimates
32938 and reset the scev cache if so.
32939 (execute_copy_prop): If sth changed schedule cleanup-cfg.
32940 (pass_data_copy_prop): Do not unconditionally schedule
32941 cleanup-cfg or update-ssa.
32942
32943 2014-06-18 Yuri Rumyantsev <ysrumyan@gmail.com>
32944
32945 PR tree-optimization/61518
32946 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
32947 reduction var is used in reduction stmt or phi-function only.
32948
32949 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32950
32951 * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
32952
32953 2014-06-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
32954
32955 PR tree-optimization/61517
32956 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
32957 whose rhs's first tree is the source expression instead of the
32958 expression itself.
32959 (find_bswap_or_nop): Likewise.
32960 (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
32961 gimple stmt whose rhs's first tree is the source. In the memory source
32962 case, move the stmt to be replaced close to one of the original load to
32963 avoid the problem of a store between the load and the stmt's original
32964 location.
32965 (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
32966 signature.
32967
32968 2014-06-18 Andreas Schwab <schwab@suse.de>
32969
32970 PR rtl-optimization/54555
32971 * postreload.c (move2add_use_add2_insn): Substitute
32972 STRICT_LOW_PART only if it is cheaper.
32973
32974 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
32975
32976 * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
32977 Do not use unspec as call operand. Use memory_operand instead of
32978 memory_nox32_operand and add "m" operand constraint. Disable
32979 pattern for TARGET_X32.
32980 (*sibcall_pop_memory): Ditto.
32981 (*sibcall_value_memory): Ditto.
32982 (*sibcall_value_pop_memory): Ditto.
32983 (sibcall peepholes): Merge SImode and DImode patterns using
32984 W mode iterator. Use memory_operand instead of memory_nox32_operand.
32985 Disable pattern for TARGET_X32. Check if eliminated register is
32986 really dead after call insn. Generate call RTX without unspec operand.
32987 (sibcall_value peepholes): Ditto.
32988 (sibcall_pop peepholes): Fix call insn RTXes. Use memory_operand
32989 instead of memory_nox32_operand. Check if eliminated register is
32990 really dead after call insn. Generate call RTX without unspec operand.
32991 (sibcall_value_pop peepholes): Ditto.
32992 * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
32993
32994 2014-06-18 Terry Guo <terry.guo@arm.com>
32995
32996 PR target/61544
32997 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
32998 reach the head.
32999
33000 2014-06-18 Olivier Hainque <hainque@adacore.com>
33001
33002 * tree-core.h (tree_block): Add an "end_locus" field, allowing
33003 memorization of the end of block source location.
33004 * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
33005 * gimplify.c (gimplify_bind_expr): Propagate the block start and
33006 end source location info we have on the block entry/exit code we
33007 generate.
33008
33009 2014-06-18 Richard Biener <rguenther@suse.de>
33010
33011 * common.opt (fssa-phiopt): New option.
33012 * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
33013 but not with -Og.
33014 * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
33015 * doc/invoke.texi (-fssa-phiopt): Document.
33016
33017 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33018
33019 * genattrtab.c (n_bypassed): New variable.
33020 (process_bypasses): Initialise n_bypassed.
33021 Count number of bypassed reservations.
33022 (make_automaton_attrs): Allocate space for bypassed reservations
33023 rather than number of bypasses.
33024
33025 2014-06-18 Richard Biener <rguenther@suse.de>
33026
33027 * tree-ssa-propagate.c (replace_phi_args_in): Return whether
33028 we propagated anything.
33029 (substitute_and_fold_dom_walker::before_dom_children): Something
33030 changed if we propagated into PHI arguments.
33031 * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
33032 we removed a stmt.
33033
33034 2014-06-18 Evgeny Stupachenko <evstupac@gmail.com>
33035
33036 * config/i386/i386.c (ix86_reassociation_width): Add alternative for
33037 vector case.
33038 * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
33039 * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
33040 * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
33041 Introduces alternative way of loads group permutaions.
33042 (vect_transform_grouped_load): Try alternative way of permutations.
33043
33044 2014-06-18 Jakub Jelinek <jakub@redhat.com>
33045
33046 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
33047 changed in ORT_TARGET region, don't jump to do_outer.
33048 (struct gimplify_adjust_omp_clauses_data): New type.
33049 (gimplify_adjust_omp_clauses_1): Adjust for data being
33050 a struct gimplify_adjust_omp_clauses_data pointer instead
33051 of tree *. Pass pre_p as a new argument to
33052 lang_hooks.decls.omp_finish_clause hook.
33053 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
33054 splay_tree_foreach to pass both list_p and pre_p.
33055 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
33056 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
33057 gimplify_adjust_omp_clauses callers.
33058 * langhooks.c (lhd_omp_finish_clause): New function.
33059 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
33060 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
33061 * langhooks.h (struct lang_hooks_for_decls): Add a new
33062 gimple_seq * argument to omp_finish_clause hook.
33063 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
33064 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
33065 (scan_omp_parallel, lower_omp_for): When adding
33066 _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
33067 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
33068 * tree-nested.c (convert_nonlocal_omp_clauses,
33069 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
33070 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
33071
33072 2014-06-17 Andrew MacLeod <amacleod@redhat.com>
33073
33074 * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
33075 * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
33076
33077 2014-06-17 Xinliang David Li <davidxl@google.com>
33078
33079 * tree-pretty-print.c (dump_function_header): Print cgraph uid.
33080 * passes.c (pass_init_dump_file): Do not set initialize
33081 flag to false unconditionally.
33082
33083 2014-06-17 Richard Biener <rguenther@suse.de>
33084
33085 * genopinit.c (main): Use vec<>::qsort method.
33086 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
33087 Likewise.
33088 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
33089
33090 2014-06-17 Matthew Fortune <matthew.fortune@imgtec.com>
33091
33092 * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
33093 * config/mips/mips.c (mips_expand_fcc_reload): Remove.
33094 (mips_move_to_gpr_cost): Remove ST_REGS case.
33095 (mips_move_from_gpr_cost): Likewise.
33096 (mips_register_move_cost): Likewise.
33097 (mips_secondary_reload_class): Likewise.
33098
33099 2014-06-17 Richard Biener <rguenther@suse.de>
33100
33101 * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
33102 (pass_all_optimizations): Move 3rd copy-prop pass from after
33103 fre to before ifcombine/phiopt.
33104
33105 2014-06-17 Richard Biener <rguenther@suse.de>
33106
33107 * tree-switch-conversion.c (collect_switch_conv_info): Simplify
33108 and allow all blocks to be forwarders.
33109
33110 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
33111
33112 PR target/61483
33113 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
33114 variable 'size'; calculate 'size' right in the front; use
33115 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
33116 pcum->aapcs_stack_words.
33117
33118 2014-06-17 Nick Clifton <nickc@redhat.com>
33119
33120 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
33121 (umulhi3, mulsidi3, umulsidi3): Likewise.
33122
33123 2014-06-17 Thomas Schwinge <thomas@codesourcery.com>
33124
33125 PR middle-end/61508
33126 * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
33127 check for section name.
33128
33129 2014-06-17 Richard Biener <rguenther@suse.de>
33130
33131 * tree-ssa-propagate.c: Include domwalk.h.
33132 (substitute_and_fold): Outline main worker into a domwalker ...
33133 (substitute_and_fold_dom_walker::before_dom_children): ... here.
33134 Schedule stmts we can fully propagate for removal. Remove
33135 poor-mans DCE.
33136 (substitute_and_fold): Apply a dominator walk to perform
33137 substitution. Process stmts scheduled for removal here.
33138
33139 2014-06-17 Richard Biener <rguenther@suse.de>
33140
33141 * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
33142 of PHI node moving.
33143
33144 2014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
33145
33146 * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
33147 default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
33148 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
33149 __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
33150 * config/arm/vfp.md (set_fpscr): Make pattern conditional on
33151 TARGET_HARD_FLOAT.
33152 (get_fpscr) : Likewise.
33153
33154 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
33155
33156 PR rtl-optimization/61325
33157 * lra-constraints.c (valid_address_p): Add forward declaration.
33158 (simplify_operand_subreg): Check address validity before and after
33159 alter_reg of memory subreg.
33160
33161 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
33162
33163 * config/i386/i386.c (decide_alg): Correctly handle
33164 maximum size of stringop algorithm.
33165
33166 2014-06-16 Yury Gribov <y.gribov@samsung.com>
33167
33168 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
33169
33170 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
33171
33172 PR rtl-optimization/61522
33173 * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
33174
33175 2014-06-16 Jan Hubicka <hubicka@ucw.cz>
33176
33177 Revert:
33178 * symtab.c (symtab_node::reset_section): New method.
33179 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
33180 for localization.
33181 * cgraph.h (reset_section): Declare.
33182 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
33183 do not consider comdat locals.
33184 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
33185 for new symbol.
33186 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
33187 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
33188 reset sections of symbols dragged out of the comdats.
33189 (function_and_variable_visibility): Reset sections of
33190 localized symbols.
33191
33192 2014-06-16 Richard Biener <rguenther@suse.de>
33193
33194 PR tree-optimization/61482
33195 * tree-vrp.c (adjust_range_with_scev): Avoid setting of
33196 [-INF(OVF), +INF(OVF)] range.
33197
33198 2014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
33199
33200 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
33201 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
33202 handling 32-bit multiplication.
33203
33204 2014-06-16 Chung-Lin Tang <cltang@codesourcery.com>
33205
33206 PR middle-end/61430
33207 * lra-lives.c (process_bb_lives): Skip creating copy during
33208 insn scan when src/dest has constrained to same regno.
33209
33210 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
33211
33212 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
33213 DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
33214
33215 2014-06-16 Yury Gribov <y.gribov@samsung.com>
33216
33217 * asan.c (check_func): New function.
33218 (maybe_create_ssa_name): Likewise.
33219 (build_check_stmt_with_calls): Likewise.
33220 (use_calls_p): Likewise.
33221 (report_error_func): Change interface.
33222 (build_check_stmt): Allow non-integer lengths; add support
33223 for new parameter.
33224 (asan_instrument): Likewise.
33225 (instrument_mem_region_access): Moved code to build_check_stmt.
33226 (instrument_derefs): Likewise.
33227 (instrument_strlen_call): Likewise.
33228 * cfgcleanup.c (old_insns_match_p): Add support for new functions.
33229 * doc/invoke.texi: Describe new parameter.
33230 * params.def: Define new parameter.
33231 * params.h: Likewise.
33232 * sanitizer.def: Describe new builtins.
33233
33234 2014-06-16 Richard Biener <rguenther@suse.de>
33235
33236 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
33237 Make all defs available at the end.
33238 (eliminate): If we remove a PHI node schedule cfg-cleanup.
33239
33240 2014-06-18 Jakub Jelinek <jakub@redhat.com>
33241
33242 PR plugins/45078
33243 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
33244
33245 2014-06-16 Richard Sandiford <rdsandiford@googlemail.com>
33246
33247 PR bootstrap/61516
33248 * auto-inc-dec.c (merge_in_block): Fix location of insn_info
33249 initialization. Replace remaining use of uid.
33250
33251 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
33252
33253 * c-family/c-common.c (handle_tls_model_attribute): Use
33254 set_decl_tls_model.
33255 * c-family/c-common.c (handle_tls_model_attribute): Use
33256 set_decl_tls_model.
33257 * cgraph.h (struct varpool_node): Add tls_model.
33258 * tree.c (decl_tls_model, set_decl_tls_model): New functions.
33259 * tree.h (DECL_TLS_MODEL): Update.
33260 (DECL_THREAD_LOCAL_P): Check that variable is static.
33261 (decl_tls_model): Declare.
33262 (set_decl_tls_model): Declare.
33263 * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
33264 set symbol prorperties.
33265 (get_emutls_init_templ_addr): Cleanup.
33266 (new_emutls_decl): Update.
33267 * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
33268 (lto_input_varpool_node): Likewise.
33269 * lto-streamer-out.c (hash_tree): Likewise.
33270 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
33271 not stream DECL_TLS_MODEL.
33272 * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
33273 * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
33274
33275 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
33276
33277 * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
33278
33279 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
33280
33281 * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
33282 (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
33283 lists.
33284 (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
33285 (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
33286 (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
33287 (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
33288 (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
33289 (df_get_artificial_defs, df_get_artificial_uses)
33290 (df_single_def, df_single_use): Update accordingly.
33291 (df_refs_chain_dump): Take the first element in a linked list as
33292 parameter, rather than a pointer to an array of pointers.
33293 * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
33294 * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
33295 (df_chain_create_bb_process_use): Likewise.
33296 (df_md_bb_local_compute_process_def): Likewise.
33297 * fwprop.c (process_defs, process_uses): Likewise.
33298 (register_active_defs, update_uses): Likewise.
33299 (forward_propagate_asm): Update for new df_ref linking.
33300 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
33301 (df_null_ref_rec, df_null_mw_rec): Likewise.
33302 (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
33303 explicitly.
33304 (df_scan_free_bb_info): Remove check for null artificial_defs.
33305 (df_install_ref_incremental): Adjust for new df_ref linking.
33306 Use a single-element insertion rather than a full sort.
33307 (df_ref_chain_delete_du_chain): Take the first element
33308 in a linked list as parameter, rather than a pointer to an array of
33309 pointers.
33310 (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
33311 (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
33312 (df_insn_info_delete): Remove check for null defs and call to
33313 df_scan_free_mws_vec.
33314 (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
33315 null rather than df_null_*_rec.
33316 (df_insn_rescan_debug_internal): Likewise, and update null
33317 checks in the same way. Remove check for null defs.
33318 (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
33319 Move a single element rather doing a full sort.
33320 (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
33321 linking.
33322 (df_notes_rescan): Likewise. Use a merge rather than a full sort.
33323 Initialize df_ref and df_mw_hardreg lists to null rather than
33324 df_null_*_rec.
33325 (df_ref_compare): Take df_refs as parameter, transferring the
33326 old interface to...
33327 (df_ref_ptr_compare): ...this new function.
33328 (df_sort_and_compress_refs): Update accordingly.
33329 (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
33330 old interface to...
33331 (df_mw_ptr_compare): ...this new function.
33332 (df_sort_and_compress_mws): Update accordingly.
33333 (df_install_refs, df_install_mws): Return a linked list rather than
33334 an array of pointers.
33335 (df_refs_add_to_chains): Assert that old lists are empty rather
33336 than freeing them.
33337 (df_insn_refs_verify): Don't handle null defs speciailly.
33338 * web.c (union_match_dups): Update for new df_ref linking.
33339
33340 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
33341
33342 * df.h (df_ref_create, df_ref_remove): Delete.
33343 * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
33344 (df_ref_remove): Likewise.
33345
33346 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
33347
33348 * df.h (df_single_def, df_single_use): New functions.
33349 * ira.c (find_moveable_pseudos): Use them.
33350
33351 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
33352
33353 * df.h (FOR_EACH_INSN_INFO_MW): New macro.
33354 * df-problems.c (df_note_bb_compute): Use it.
33355 * regstat.c (regstat_bb_compute_ri): Likewise.
33356
33357 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
33358
33359 * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
33360 * cse.c (cse_extended_basic_block): Use them.
33361 * dce.c (mark_artificial_use): Likewise.
33362 * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
33363 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
33364 (df_chain_remove_problem, df_chain_bb_dump): Likewise.
33365 (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
33366 (df_simulate_initialize_backwards): Likewise.
33367 (df_simulate_finalize_backwards): Likewise.
33368 (df_simulate_initialize_forwards): Likewise.
33369 (df_md_simulate_artificial_defs_at_top): Likewise.
33370 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
33371 * regrename.c (init_rename_info): Likewise.
33372 * regstat.c (regstat_bb_compute_ri): Likewise.
33373 (regstat_bb_compute_calls_crossed): Likewise.
33374
33375 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
33376
33377 * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
33378 (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
33379 (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
33380 * auto-inc-dec.c (find_inc, merge_in_block): Use them.
33381 * combine.c (create_log_links): Likewise.
33382 * compare-elim.c (find_flags_uses_in_insn): Likewise.
33383 (try_eliminate_compare): Likewise.
33384 * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
33385 * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
33386 (remove_reg_equal_equiv_notes_for_defs): Likewise.
33387 (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
33388 (word_dce_process_block, dce_process_block): Likewise.
33389 * ddg.c (def_has_ccmode_p): Likewise.
33390 * df-core.c (df_bb_regno_first_def_find): Likewise.
33391 (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
33392 * df-problems.c (df_rd_simulate_one_insn): Likewise.
33393 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
33394 (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
33395 (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
33396 (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
33397 (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
33398 (df_simulate_find_defs, df_simulate_find_uses): Likewise.
33399 (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
33400 (df_simulate_uses, df_md_simulate_one_insn): Likewise.
33401 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
33402 * fwprop.c (local_ref_killed_between_p): Likewise.
33403 (all_uses_available_at, free_load_extend): Likewise.
33404 * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
33405 * hw-doloop.c (scan_loop): Likewise.
33406 * ifcvt.c (dead_or_predicable): Likewise.
33407 * init-regs.c (initialize_uninitialized_regs): Likewise.
33408 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
33409 (process_bb_node_lives): Likewise.
33410 * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
33411 (find_moveable_pseudos): Likewise.
33412 * loop-invariant.c (check_dependencies, record_uses): Likewise.
33413 * recog.c (peep2_find_free_register): Likewise.
33414 * ree.c (get_defs): Likewise.
33415 * regstat.c (regstat_bb_compute_ri): Likewise.
33416 (regstat_bb_compute_calls_crossed): Likewise.
33417 * sched-deps.c (find_inc, find_mem): Likewise.
33418 * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
33419 (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
33420 * shrink-wrap.c (requires_stack_frame_p): Likewise.
33421 (prepare_shrink_wrap): Likewise.
33422 * store-motion.c (compute_store_table, build_store_vectors): Likewise.
33423 * web.c (union_defs, pass_web::execute): Likewise.
33424 * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
33425 (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
33426
33427 2014-06-13 Vladimir Makarov <vmakarov@redhat.com>
33428
33429 * lra-assign.c (assign_by_spills): Add code to assign vector regs
33430 to inheritance pseudos.
33431 * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
33432
33433 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
33434
33435 PR target/61415
33436 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
33437 (BU_MISC_2): Rename to ...
33438 (BU_LDBL128_2): ... this.
33439 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
33440 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
33441 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
33442 RS6000_BTM_LDBL128.
33443 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
33444 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
33445 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
33446 (unpacktf_1): Likewise.
33447 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
33448 (__builtin_longdouble_dw1): Likewise.
33449 * doc/sourcebuild.texi (longdouble128): Document.
33450
33451 2014-06-13 Jeff Law <law@redhat.com>
33452
33453 PR rtl-optimization/61094
33454 PR rtl-optimization/61446
33455 * ree.c (combine_reaching_defs): Get the mode for the copy from
33456 the extension insn rather than the defining insn.
33457
33458 2014-06-13 Dehao Chen <dehao@google.com>
33459
33460 * dwarf2out.c (add_linkage_name): Emit more linkage name.
33461
33462 2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
33463
33464 * doc/install.texi (--enable-linker-plugin-configure-flags)
33465 (--enable-linker-plugin-flags): Document new flags.
33466
33467 2014-06-13 Martin Jambor <mjambor@suse.cz>
33468
33469 PR ipa/61186
33470 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
33471 cache_token if returning early.
33472
33473 2014-06-13 Nick Clifton <nickc@redhat.com>
33474
33475 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
33476 requested alignment is active.
33477 (LABEL_ALIGN): Likewise.
33478 (LOOP_ALIGN): Likewise.
33479
33480 2014-06-13 Richard Biener <rguenther@suse.de>
33481
33482 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
33483 Rewrite to propagate the VN result into all uses where
33484 possible and to remove stmts becoming dead because of that.
33485 (eliminate): Generalize stmt removal handling, remove in
33486 reverse dominator order to support proper debug stmt
33487 generation. Update stmts before removing stmts.
33488 * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
33489
33490 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
33491
33492 PR tree-optimization/61375
33493 * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
33494 symbolic number cannot be represented in an uint64_t.
33495 (find_bswap_or_nop_1): Likewise.
33496
33497 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
33498
33499 * symtab.c (symtab_node::reset_section): New method.
33500 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
33501 for localization.
33502 * cgraph.h (reset_section): Declare.
33503 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
33504 do not consider comdat locals.
33505 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
33506 for new symbol.
33507 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
33508 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
33509 reset sections of symbols dragged out of the comdats.
33510 (function_and_variable_visibility): Reset sections of
33511 localized symbols.
33512
33513 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
33514
33515 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
33516 to use symtab and decl_binds_to_current_def_p
33517 * tree-vectorizer.c (increase_alignment): Increase alignment
33518 of alias target, too.
33519
33520 2014-06-12 Jakub Jelinek <jakub@redhat.com>
33521
33522 PR middle-end/61486
33523 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
33524 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
33525 if outer combined construct is distribute.
33526 (gimplify_omp_for): For OMP_DISTRIBUTE set
33527 gimplify_omp_ctxp->distribute.
33528 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
33529 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
33530 mapping into decl map.
33531
33532 2014-06-12 Jason Merrill <jason@redhat.com>
33533
33534 * common.opt (fabi-version): Change default to 0.
33535
33536 2014-06-12 Jason Merrill <jason@redhat.com>
33537
33538 * toplev.c (process_options): Reject -fabi-version=1.
33539
33540 2014-06-12 Jeff Law <law@redhat.com>
33541
33542 PR tree-optimization/61009
33543 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
33544 value when we stop processing a block due to problematic PHIs.
33545
33546 2014-06-12 Alan Lawrence <alan.lawrence@arm.com>
33547
33548 * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
33549 vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
33550 vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
33551 vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
33552 vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
33553 vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
33554 vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
33555 are not in the spec.
33556
33557 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
33558
33559 PR target/59843
33560 * config/aarch64/aarch64-modes.def: Add V1DFmode.
33561 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
33562 Support V1DFmode.
33563
33564 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
33565
33566 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
33567
33568 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
33569
33570 PR target/61443
33571 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
33572 loading from address spaces.
33573
33574 2014-06-12 Martin Liska <mliska@suse.cz>
33575
33576 PR ipa/61462
33577 * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
33578 statement is reachable.
33579
33580 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
33581
33582 * symtab.c (section_hash): New hash.
33583 (symtab_unregister_node): Clear section before freeing.
33584 (hash_section_hash_entry): New haser.
33585 (eq_sections): New function.
33586 (symtab_node::set_section_for_node): New method.
33587 (set_section_1): Update.
33588 (symtab_node::set_section): Take string instead of tree as parameter.
33589 (symtab_resolve_alias): Update.
33590 * cgraph.h (section_hash_entry_d): New structure.
33591 (section_hash_entry): New typedef.
33592 (cgraph_node): Change comdat_group_ to x_comdat_group,
33593 change section_ to x_section and turn into section_hash_entry;
33594 update accestors; put set_section_for_node offline.
33595 * tree.c (decl_section_name): Turn into string.
33596 (set_decl_section_name): Change parameter to be string.
33597 * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
33598 * sdbout.c (sdbout_one_type): Update.
33599 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
33600 * varasm.c (IN_NAMED_SECTION, get_named_section,
33601 resolve_unique_section, hot_function_section, get_named_text_section,
33602 USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
33603 make_decl_rtl, default_unique_section): Update.
33604 * config/c6x/c6x.c (c6x_in_small_data_p): Update.
33605 (c6x_elf_unique_section): Update.
33606 * config/nios2/nios2.c (nios2_in_small_data_p): Update.
33607 * config/pa/pa.c (pa_function_section): Update.
33608 * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
33609 * config/ia64/ia64.c (ia64_in_small_data_p): Update.
33610 * config/arc/arc.c (arc_in_small_data_p): Update.
33611 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
33612 * config/mcore/mcore.c (mcore_unique_section): Update.
33613 * config/mips/mips.c (mips16_build_function_stub): Update.
33614 (mips16_build_call_stub): Update.
33615 (mips_function_rodata_section): Update.
33616 (mips_in_small_data_p): Update.
33617 * config/score/score.c (score_in_small_data_p): Update.
33618 * config/rx/rx.c (rx_in_small_data): Update.
33619 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
33620 (rs6000_xcoff_asm_named_section): Update.
33621 (rs6000_xcoff_unique_section): Update.
33622 * config/frv/frv.c (frv_string_begins_with): Update.
33623 (frv_in_small_data_p): Update.
33624 * config/v850/v850.c (v850_encode_data_area): Update.
33625 * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
33626 (bfin_handle_l1_data_attribute): Update.
33627 (bfin_handle_l2_attribute): Update.
33628 * config/mep/mep.c (mep_unique_section): Update.
33629 * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
33630 Update.
33631 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
33632 (h8300_handle_tiny_data_attribute): Update.
33633 * config/m32r/m32r.c (m32r_in_small_data_p): Update.
33634 (m32r_in_small_data_p): Update.
33635 * config/alpha/alpha.c (alpha_in_small_data_p): Update.
33636 * config/i386/i386.c (ix86_in_large_data_p): Update.
33637 * config/i386/winnt.c (i386_pe_unique_section): Update.
33638 * config/darwin.c (darwin_function_section): Update.
33639 * config/lm32/lm32.c (lm32_in_small_data_p): Update.
33640 * tree-emutls.c (get_emutls_init_templ_addr): Update.
33641 (new_emutls_decl): Update.
33642 * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
33643 input_varpool_node): Update.
33644 (ead_string_cst): Turn to ...
33645 (read_string): ... this one.
33646 * dwarf2out.c (secname_for_decl): Update.
33647 * asan.c (asan_protect_global): Update.
33648
33649 2014-06-11 DJ Delorie <dj@redhat.com>
33650
33651 * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
33652 cache lines.
33653 * config/rx/rx.c (rx_option_override): Likewise.
33654 (rx_align_for_label): Likewise.
33655
33656 * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
33657
33658 2014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
33659
33660 * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
33661 prototype.
33662
33663 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
33664
33665 * common.md: New file.
33666 * doc/md.texi: Update description of generic, machine-independent
33667 constraints.
33668 * config/s390/constraints.md (e): Delete.
33669 * Makefile.in (md_file): Include common.md.
33670 * config/m32c/t-m32c (md_file): Likewise.
33671 * genpreds.c (general_mem): New array.
33672 (generic_constraint_letters): Remove constraints now defined by
33673 common.md.
33674 (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
33675 Allow the first character to be '<' or '>' as well.
33676 * genoutput.c (general_mem): New array.
33677 (indep_constraints): Remove constraints now defined by common.md.
33678 (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
33679 Remove special handling of 'm'.
33680 * ira-costs.c (record_reg_classes): Remove special handling of
33681 constraints now defined by common.md.
33682 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
33683 * ira-lives.c (single_reg_class): Likewise.
33684 (ira_implicitly_set_insn_hard_regs): Likewise.
33685 * lra-constraints.c (reg_class_from_constraints): Likewise.
33686 (process_alt_operands, process_address, curr_insn_transform): Likewise.
33687 * postreload.c (reload_cse_simplify_operands): Likewise.
33688 * reload.c (push_secondary_reload, scratch_reload_class)
33689 (find_reloads, alternative_allows_const_pool_ref): Likewise.
33690 * reload1.c (maybe_fix_stack_asms): Likewise.
33691 * targhooks.c (default_secondary_reload): Likewise.
33692 * stmt.c (parse_output_constraint): Likewise.
33693 * recog.c (preprocess_constraints): Likewise.
33694 (constrain_operands, peep2_find_free_register): Likewise.
33695 (asm_operand_ok): Likewise, but add a comment saying why 'o'
33696 must be handled specially.
33697
33698 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
33699
33700 * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
33701 * genpreds.c (have_const_dbl_constraints): Delete.
33702 (add_constraint): Don't set it.
33703 (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
33704 * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
33705 constraints using the lookup_constraint logic.
33706 * ira-lives.c (single_reg_class): Likewise.
33707 * ira.c (ira_setup_alts): Likewise.
33708 * lra-constraints.c (process_alt_operands): Likewise.
33709 * recog.c (asm_operand_ok, constrain_operands): Likewise.
33710 * reload.c (find_reloads): Likewise.
33711
33712 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
33713
33714 * genpreds.c (const_int_start, const_int_end): New variables.
33715 (choose_enum_order): Output CONST_INT constraints before memory
33716 constraints.
33717 (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
33718 Add CT_CONST_INT.
33719 * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
33720 * ira.c (ira_setup_alts): Likewise.
33721 * lra-constraints.c (process_alt_operands): Likewise.
33722 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
33723 * reload.c (find_reloads): Likewise.
33724
33725 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
33726
33727 * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
33728 decmem_ok and incmem_ok. Reformat other bitfields for consistency.
33729 * recog.c (preprocess_constraints): Update accordingly.
33730
33731 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
33732
33733 * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
33734 (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
33735 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
33736 * genpreds.c (print_type_tree): New function.
33737 (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
33738 REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
33739 EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
33740 Write out enum constraint_type and get_constraint_type.
33741 * lra-constraints.c (satisfies_memory_constraint_p): Take a
33742 constraint_num rather than a constraint string.
33743 (satisfies_address_constraint_p): Likewise.
33744 (reg_class_from_constraints): Avoid old constraint macros.
33745 (process_alt_operands, process_address_1): Likewise.
33746 (curr_insn_transform): Likewise.
33747 * ira-costs.c (record_reg_classes): Likewise.
33748 (record_operand_costs): Likewise.
33749 * ira-lives.c (single_reg_class): Likewise.
33750 (ira_implicitly_set_insn_hard_regs): Likewise.
33751 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
33752 * postreload.c (reload_cse_simplify_operands): Likewise.
33753 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
33754 (constrain_operands, peep2_find_free_register): Likewise.
33755 * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
33756 (find_reloads, alternative_allows_const_pool_ref): Likewise.
33757 * reload1.c (maybe_fix_stack_asms): Likewise.
33758 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
33759 * targhooks.c (default_secondary_reload): Likewise.
33760 * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
33761 to EXTRA_CONSTRAINT_STR.
33762 * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
33763
33764 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
33765
33766 * genpreds.c (write_constraint_satisfied_p_1): Replace with...
33767 (write_constraint_satisfied_p_array): ...this new function.
33768 (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
33769 an array.
33770 (write_insn_preds_c): Update accordingly.
33771
33772 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
33773
33774 * genpreds.c (write_lookup_constraint): Rename to...
33775 (write_lookup_constraint_1): ...this.
33776 (write_lookup_constraint_array): New function.
33777 (write_tm_preds_h): Define lookup_constraint as an inline function
33778 that uses write_lookup_constraint_array where possible.
33779 (write_insn_preds_c): Update for the changes above.
33780
33781 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
33782
33783 * doc/md.texi (regclass_for_constraint): Rename to...
33784 (reg_class_for_constraint): ...this.
33785 * genpreds.c (num_constraints, enum_order, register_start)
33786 (register_end, satisfied_start, memory_start, memory_end)
33787 (address_start, address_end): New variables.
33788 (add_constraint): Count the number of constraints.
33789 (choose_enum_order): New function.
33790 (write_enum_constraint_num): Iterate over enum_order.
33791 (write_regclass_for_constraint): Rename to...
33792 (write_reg_class_for_constraint_1): ...this and update output
33793 accordingly.
33794 (write_constraint_satisfied_p): Rename to...
33795 (write_constraint_satisfied_p_1): ...this and update output
33796 accordingly. Do nothing if all extra constraints are register
33797 constraints.
33798 (write_insn_extra_memory_constraint): Delete.
33799 (write_insn_extra_address_constraint): Delete.
33800 (write_range_function): New function.
33801 (write_tm_preds_h): Define constraint_satisfied_p and
33802 reg_class_for_constraint as inline functions that do a range check
33803 before calling the out-of-line function. Use write_range_function
33804 to implement insn_extra_{register,memory,address}_constraint,
33805 the first of which is new.
33806 (write_insn_preds_c): Update after above changes to write_* functions.
33807 (main): Call choose_enum_order.
33808
33809 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
33810
33811 PR tree-optimization/61306
33812 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
33813 expression instead of its size.
33814 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
33815 false to prevent optimization when the result is unpredictable due to
33816 arithmetic right shift of signed type with highest byte is set.
33817 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
33818 (init_symbolic_number): Likewise.
33819 (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
33820 when the result is unpredictable due to sign extension.
33821
33822 2014-06-11 Terry Guo <terry.guo@arm.com>
33823
33824 * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
33825 (*thumb1_addsi3): Ditto.
33826 (*thumb_subdi3): Ditto.
33827 (thumb1_subsi3_insn): Ditto.
33828 (*thumb_mulsi3): Ditto.
33829 (*thumb_mulsi3_v6): Ditto.
33830 (*thumb1_andsi3_insn): Ditto.
33831 (thumb1_bicsi3): Ditto.
33832 (*thumb1_iorsi3_insn): Ditto.
33833 (*thumb1_xorsi3_insn): Ditto.
33834 (*thumb1_ashlsi3): Ditto.
33835 (*thumb1_ashrsi3): Ditto.
33836 (*thumb1_lshrsi3): Ditto.
33837 (*thumb1_rotrsi3): Ditto.
33838 (*thumb1_negdi2): Ditto.
33839 (*thumb1_negsi2): Ditto.
33840 (*thumb1_abssi2): Ditto.
33841 (*thumb1_neg_abssi2): Ditto.
33842 (*thumb1_one_cmplsi2): Ditto.
33843 (*thumb1_zero_extendhisi2): Ditto.
33844 (*thumb1_zero_extendqisi2): Ditto.
33845 (*thumb1_zero_extendqisi2_v6): Ditto.
33846 (thumb1_extendhisi2): Ditto.
33847 (thumb1_extendqisi2): Ditto.
33848 (*thumb1_movdi_insn): Ditto.
33849 (*thumb1_movsi_insn): Ditto.
33850 (*thumb1_movhi_insn): Ditto.
33851 (thumb_movhi_clobber): Ditto.
33852 (*thumb1_movqi_insn): Ditto.
33853 (*thumb1_movhf): Ditto.
33854 (*thumb1_movsf_insn): Ditto.
33855 (*thumb_movdf_insn): Ditto.
33856 (movmem12b): Ditto.
33857 (movmem8b): Ditto.
33858 (cbranchqi4): Ditto.
33859 (cbranchsi4_insn): Ditto.
33860 (cbranchsi4_scratch): Ditto.
33861 (*negated_cbranchsi4): Ditto.
33862 (*tbit_cbranch): Ditto.
33863 (*tlobits_cbranch): Ditto.
33864 (*tstsi3_cbranch): Ditto.
33865 (*cbranchne_decr1): Ditto.
33866 (*addsi3_cbranch): Ditto.
33867 (*addsi3_cbranch_scratch): Ditto.
33868 (*thumb_cmpdi_zero): Ditto.
33869 (cstoresi_eq0_thumb1): Ditto.
33870 (cstoresi_ne0_thumb1): Ditto.
33871 (*cstoresi_eq0_thumb1_insn): Ditto.
33872 (*cstoresi_ne0_thumb1_insn): Ditto.
33873 (cstoresi_nltu_thumb1): Ditto.
33874 (cstoresi_ltu_thumb1): Ditto.
33875 (thumb1_addsi3_addgeu): Ditto.
33876 (*thumb_jump): Ditto.
33877 (*call_reg_thumb1_v5): Ditto.
33878 (*call_reg_thumb1): Ditto.
33879 (*call_value_reg_thumb1_v5): Ditto.
33880 (*call_value_reg_thumb1): Ditto.
33881 (*call_insn): Ditto.
33882 (*call_value_insn): Ditto.
33883 (thumb1_casesi_internal_pic): Ditto.
33884 (thumb1_casesi_dispatch): Ditto.
33885 (*thumb1_indirect_jump): Ditto.
33886 (prologue_thumb1_interwork): Ditto.
33887 (*epilogue_insns): Ditto.
33888 (consttable_1): Ditto.
33889 (consttable_2): Ditto.
33890 (tablejump): Ditto.
33891 (*thumb1_tablejump): Ditto.
33892 (thumb_eh_return): Ditto.
33893 (define_peephole2): Two of them are thumb1 only and got moved into
33894 new file thumb1.md.
33895 (define_split): Six of them are thumb1 only and got moved into new
33896 file thumb1.md.
33897 * config/arm/thumb1.md: New file comprised of above thumb1 only
33898 patterns.
33899
33900 2014-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33901
33902 * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
33903 * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
33904 dependencies.
33905 * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
33906 (aarch64_crc_builtin_datum): New struct.
33907 (aarch64_crc_builtin_data): New.
33908 (aarch64_init_crc32_builtins): New function.
33909 (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
33910 (aarch64_crc32_expand_builtin): New.
33911 (aarch64_expand_builtin): Add CRC32 builtin expansion case.
33912 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
33913 __ARM_FEATURE_CRC32 when appropriate.
33914 (TARGET_CRC32): Define.
33915 * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
33916 UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
33917 UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
33918 (aarch64_<crc_variant>): New pattern.
33919 * config/aarch64/arm_acle.h: New file.
33920 * config/aarch64/iterators.md (CRC): New int iterator.
33921 (crc_variant, crc_mode): New int attributes.
33922 * doc/aarch64-acle-intrinsics.texi: New file.
33923 * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
33924 Include aarch64-acle-intrinsics.texi.
33925
33926 2014-06-11 Evgeny Stupachenko <evstupac@gmail.com>
33927
33928 * tree-vect-data-refs.c (vect_grouped_store_supported): New
33929 check for stores group of length 3.
33930 (vect_permute_store_chain): New permutations for stores group of
33931 length 3.
33932 * tree-vect-stmts.c (vect_model_store_cost): Change cost
33933 of vec_perm_shuffle for the new permutations.
33934
33935 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
33936
33937 * ipa-visibility.c (function_and_variable_visibility): Disable virtual
33938 table rewriting temporarily on targets not supporting ONE_ONLY.
33939
33940 2014-06-11 Richard Biener <rguenther@suse.de>
33941
33942 PR middle-end/61437
33943 Revert
33944 2014-06-04 Richard Biener <rguenther@suse.de>
33945
33946 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
33947 TREE_PUBLIC and DECL_EXTERNAL decls.
33948
33949 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
33950
33951 * varasm.c (set_implicit_section): New function.
33952 (resolve_unique_section): Use it to set implicit section
33953 for aliases, too.
33954 (get_named_text_section): Use symtab_get_node (decl)->implicit_section
33955 (default_function_section): Likewise.
33956 (decl_binds_to_current_def_p): Constify argument.
33957 * varasm.h (decl_binds_to_current_def_p): Update prototype.
33958 * asan.c (asan_protect_global): Use
33959 symtab_get_node (decl)->implicit_section.
33960 * symtab.c (dump_symtab_base): Dump implicit sections.
33961 (verify_symtab_base): Verify sanity of sectoins and comdats.
33962 (symtab_resolve_alias): Alias share the section of its target.
33963 (set_section_1): New function.
33964 (symtab_node::set_section): Move here, recurse to aliases.
33965 (verify_symtab): Check for duplicated symtab lists.
33966 * tree-core.h (implicit_section_name_p): Remove.
33967 * tree-vect-data-refs.c: Include varasm.h.
33968 (vect_can_force_dr_alignment_p): Fix conditional on when
33969 decl bints to current definition; use
33970 symtab_get_node (decl)->implicit_section.
33971 * cgraph.c (cgraph_make_node_local_1): Fix section set.
33972 * cgraph.h (struct symtab_node): Add implicit_section.
33973 (set_section): Rename to ...
33974 (set_section_for_node): ... this one.
33975 (set_section): Declare.
33976 * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
33977 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
33978 input_overwrite_node, input_varpool_node): Stream implicit_section.
33979 * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
33980 removal; it will fail in LTO.
33981
33982 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33983
33984 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
33985 Change second alternative type to f_mcr.
33986 * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
33987 and 12th alternatives' types to f_mcr and f_mrc.
33988 (*movdi_aarch64): Same for 12th and 13th alternatives.
33989 (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
33990 (aarch64_movtilow_tilow): Change type to fmov.
33991
33992 2014-06-10 Jiong Wang <jiong.wang@arm.com>
33993
33994 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
33995 (aarch64_save_or_restore_callee_save_registers): Fix layout.
33996
33997 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33998
33999 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
34000 New expander.
34001 (aarch64_sqrdmulh_lane<mode>): Likewise.
34002 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
34003 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
34004 (aarch64_sqdmulh_laneq<mode>): New expander.
34005 (aarch64_sqrdmulh_laneq<mode>): Likewise.
34006 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
34007 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
34008 (aarch64_sqdmulh_lane<mode>): New expander.
34009 (aarch64_sqrdmulh_lane<mode>): Likewise.
34010 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
34011 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
34012 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
34013 (aarch64_sqdmlal_laneq<mode>): Likewise.
34014 (aarch64_sqdmlsl_lane<mode>): Likewise.
34015 (aarch64_sqdmlsl_laneq<mode>): Likewise.
34016 (aarch64_sqdmlal2_lane<mode>): Likewise.
34017 (aarch64_sqdmlal2_laneq<mode>): Likewise.
34018 (aarch64_sqdmlsl2_lane<mode>): Likewise.
34019 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
34020 (aarch64_sqdmull_lane<mode>): Likewise.
34021 (aarch64_sqdmull_laneq<mode>): Likewise.
34022 (aarch64_sqdmull2_lane<mode>): Likewise.
34023 (aarch64_sqdmull2_laneq<mode>): Likewise.
34024
34025 2014-06-10 Richard Biener <rguenther@suse.de>
34026
34027 PR tree-optimization/61438
34028 * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
34029 (eliminate_dom_walker::before_dom_children): Only try to inhibit
34030 insertion of IVs if running PRE.
34031 (eliminate): Adjust.
34032 (pass_pre::execute): Likewise.
34033 (pass_fre::execute): Likewise.
34034
34035 2014-06-10 Richard Biener <rguenther@suse.de>
34036
34037 PR middle-end/61456
34038 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
34039 Do not use the main variant for the type comparison.
34040 (ncr_compar): Likewise.
34041 (nonoverlapping_component_refs_p): Likewise.
34042
34043 2014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
34044
34045 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
34046 REG_CFA_RESTORE mode.
34047
34048 2014-06-10 Evgeny Stupachenko <evstupac@gmail.com>
34049
34050 * config/i386/i386.c (expand_vec_perm_pblendv): New.
34051 * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
34052 expand_vec_perm_pblendv.
34053
34054 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34055
34056 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
34057 available.
34058 Simplify description of __crc32d and __crc32cd intrinsics.
34059 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
34060 availability.
34061
34062 2014-06-10 Thomas Schwinge <thomas@codesourcery.com>
34063
34064 PR lto/61334
34065 * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
34066 * config.in: Regenerate.
34067 * configure: Likewise.
34068
34069 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
34070
34071 * ipa-reference.c (is_proper_for_analysis): Exclude addressable
34072 and public vars.
34073 (intersect_static_var_sets): Remove.
34074 (propagate): Do not prune local statics.
34075
34076 2014-06-10 Jakub Jelinek <jakub@redhat.com>
34077
34078 PR fortran/60928
34079 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
34080 Set lastprivate_firstprivate even if omp_private_outer_ref
34081 langhook returns true.
34082 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
34083 langhook, call unshare_expr on new_var and call
34084 build_outer_var_ref to get the last argument.
34085
34086 2014-06-10 Marek Polacek <polacek@redhat.com>
34087
34088 PR c/60988
34089 * doc/extend.texi: Add cindex for transparent_union.
34090
34091 2014-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
34092
34093 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
34094 init_symbolic_number ().
34095
34096 2014-05-18 John David Anglin <danglin@gcc.gnu.org>
34097
34098 PR middle-end/61141
34099 * emit-rtl.c (reset_all_used_flags): In a sequence, check that
34100 XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
34101 (verify_rtl_sharing): Likewise.
34102
34103 2014-06-09 Marc Glisse <marc.glisse@inria.fr>
34104
34105 PR c++/54442
34106 * tree.c (build_qualified_type): Use a canonical type for
34107 TYPE_CANONICAL.
34108
34109 2014-06-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
34110
34111 * config/arm/arm-modes.def: Remove XFmode.
34112
34113 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
34114
34115 PR target/61062
34116 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
34117 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
34118 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
34119 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
34120 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
34121 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
34122 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
34123 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
34124 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
34125
34126 2014-06-09 Jan Hubicka <hubicka@ucw.cz>
34127
34128 * tree-core.h (tree_decl_with_vis): Remove section_name.
34129
34130 2014-06-09 Kito Cheng <kito@0xlab.org>
34131
34132 * ira.c (ira): Don't call init_caller_save if LRA enabled
34133 since LRA use its own infrastructure to handle that.
34134
34135 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
34136
34137 * symtab.c (dump_symtab_base): Update dumping.
34138 (symtab_make_decl_local): Clear only DECL_COMDAT.
34139 * tree-vect-data-refs.c (Check that variable is static before
34140 tampering with sections.
34141 * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
34142 (cgraph_create_virtual_clone): Likewise.
34143 * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
34144 (decl_section_name, set_decl_section_name): New accessors.
34145 (find_decls_types_r): Do not walk section name
34146 * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
34147 (decl_comdat_group, decl_comdat_group_id): Constify.
34148 (decl_section_name, set_decl_section_name): Update.
34149 * varpool.c (varpool_finalize_named_section_flags): Use get_section.
34150 * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
34151 (cgraph_make_node_local_1): Clear section and comdat group.
34152 * cgraph.h (set_comdat_group): Sanity check.
34153 (get_section, set_section): New.
34154 * ipa-comdats.c (ipa_comdats): Use get_section.
34155 * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
34156 * lto-streamer-out.c: Do not follow section names.
34157 * c-family/c-common.c (handle_section_attribute): Update.
34158 * lto-cgraph.c (lto_output_node): Output section.
34159 (lto_output_varpool_node): Likewise.
34160 (read_comdat_group): Rename to ...
34161 (read_identifier): ... this one.
34162 (read_string_cst): New function.
34163 (input_node, input_varpool_node): Input section names.
34164 * tree-emutls.c (get_emutls_init_templ_addr): Update.
34165 (new_emutls_decl): Update.
34166 (secname_for_decl): Check section names only of static vars.
34167 * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
34168 * config/i386/winnt.c (i386_pe_unique_section): Likewise.
34169 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
34170 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
34171 * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
34172 * config/mcore/mcore.c (mcore_unique_section): Likewise.
34173 * config/mips/mips.c (mips16_build_function_stub): Likewise.
34174 * config/v850/v850.c (v850_insert_attributes): Likewise.
34175 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
34176 Likewise.
34177 (h8300_handle_tiny_data_attribute): Likewise.
34178 * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
34179 (bfin_handle_l2_attribute): Likewise.
34180
34181 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
34182
34183 * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
34184 remove static initializer.
34185
34186 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
34187
34188 * varasm.c (use_blocks_for_decl_p): Check symbol table
34189 instead of alias attribute.
34190 (place_block_symbol): Recurse on aliases.
34191
34192 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
34193
34194 * ipa-visibility.c: Include varasm.h
34195 (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
34196
34197 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
34198
34199 * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
34200 outputting aliases.
34201
34202 2014-06-07 Steven Bosscher <steven@gcc.gnu.org>
34203
34204 * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
34205 from test_insn into GGC space escape via SET_SRC.
34206
34207 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
34208
34209 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
34210 call statement, if any.
34211 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
34212 statements, if any. Tidy up.
34213
34214 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
34215
34216 PR target/61431
34217 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
34218 iterators, VSX_D that handles 64-bit types, and VSX_LE that
34219 handles swapping the two 64-bit double words on little endian
34220 systems. Include V1TImode and optionally TImode in VSX_LE so that
34221 these types are properly swapped. Change all of the insns and
34222 splits that do the 64-bit swaps to use VSX_LE.
34223 (vsx_le_perm_load_<mode>): Likewise.
34224 (vsx_le_perm_store_<mode>): Likewise.
34225 (splitters for little endian memory operations): Likewise.
34226 (vsx_xxpermdi2_le_<mode>): Likewise.
34227 (vsx_lxvd2x2_le_<mode>): Likewise.
34228 (vsx_stxvd2x2_le_<mode>): Likewise.
34229
34230 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
34231
34232 PR target/61423
34233 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
34234 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
34235 and corresponding splitters. Zero extend general register
34236 or memory input operand to XMM temporary. Enable for
34237 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
34238 (floatunssi<mode>2): Update expander predicate.
34239
34240 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
34241
34242 PR rtl-optimization/61325
34243 * lra-constraints.c (process_address_1): Check scale equal to one
34244 to prevent transformation: base + scale * index => base + new_reg.
34245
34246 2014-06-06 Richard Biener <rguenther@suse.de>
34247
34248 PR tree-optimization/59299
34249 * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
34250 a def operand.
34251 (nearest_common_dominator_of_uses): Likewise.
34252 (statement_sink_location): Adjust. Support sinking loads.
34253
34254 2014-06-06 Martin Jambor <mjambor@suse.cz>
34255
34256 * ipa-prop.c (get_place_in_agg_contents_list): New function.
34257 (build_agg_jump_func_from_list): Likewise.
34258 (determine_known_aggregate_parts): Renamed to
34259 determine_locally_known_aggregate_parts. Moved some functionality
34260 to the two functions above, removed bound checks.
34261
34262 2014-06-06 James Greenhalgh <james.greenhalgh@arm.com>
34263
34264 * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
34265 * config/aarch64/aarch64.c (aarch64_move_pointer): New.
34266 (aarch64_progress_pointer): Likewise.
34267 (aarch64_copy_one_part_and_move_pointers): Likewise.
34268 (aarch64_expand_movmen): Likewise.
34269 * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
34270 * config/aarch64/aarch64.md (movmem<mode>): New.
34271
34272 2014-06-06 Bingfeng Mei <bmei@broadcom.com>
34273
34274 * targhooks.c (default_add_stmt_cost): Call target specific
34275 hook instead of default one.
34276
34277 2014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
34278
34279 * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
34280 endianness instead of host endianness.
34281 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
34282 comments.
34283
34284 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
34285
34286 PR debug/53927
34287 * function.c (instantiate_decls): Process the saved static chain.
34288 (expand_function_start): If not optimizing, save the static chain
34289 onto the stack.
34290 * tree-nested.c (convert_all_function_calls): Always create the static
34291 chain for nested functions if not optimizing.
34292
34293 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
34294
34295 * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
34296
34297 2014-06-06 Richard Biener <rguenther@suse.de>
34298
34299 * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
34300 (construct_init_block): Likewise.
34301 (construct_exit_block): Likewise.
34302 (pass_expand::execute): Likewise.
34303 * graphite.c (graphite_transforms): Replace check for current_loops
34304 with a check for > 1 loops.
34305 (pass_graphite_transforms::execute): Adjust.
34306 * ipa-split.c (split_function): Remove check for current_loops.
34307 * omp-low.c (expand_parallel_call): Likewise.
34308 (expand_omp_for_init_counts): Likewise.
34309 (extract_omp_for_update_vars): Likewise.
34310 (expand_omp_for_generic): Likewise.
34311 (expand_omp_sections): Likewise.
34312 (expand_omp_target): Likewise.
34313 * tracer.c (tail_duplicate): Likewise.
34314 (pass_tracer::execute): Likewise.
34315 * trans-mem.c (expand_transaction): Likewise.
34316 * tree-complex.c (expand_complex_div_wide): Likewise.
34317 * tree-eh.c (lower_resx): Likewise.
34318 (cleanup_empty_eh_merge_phis): Likewise.
34319 * tree-predcom.c (run_tree_predictive_commoning): Replace check for
34320 current_loops with a check for > 1 loops.
34321 (pass_predcom::execute): Adjust.
34322 * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
34323 * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
34324 * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
34325 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
34326 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
34327 * tree-switch-conversion.c (process_switch): Likewise.
34328 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
34329 * tree-vrp.c (vrp_visit_phi_node): Likewise.
34330 (execute_vrp): Likewise.
34331 * ubsan.c (ubsan_expand_null_ifn): Likewise.
34332
34333 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
34334
34335 * rtl.h (insn_location): Declare.
34336 * cfgcleanup.c (try_forward_edges): Compare the locus of locations
34337 with UNKNOWN_LOCATION.
34338 * emit-rtl.c (insn_location): New function.
34339 * final.c (notice_source_line): Check that the instruction has a
34340 location before retrieving it and use insn_location.
34341 * modulo-sched.c (loop_single_full_bb_p): Likewise.
34342 * print-rtl.c (print_rtx): Likewise.
34343
34344 2014-06-06 Richard Biener <rguenther@suse.de>
34345
34346 * passes.def: Move 2nd VRP pass before phi-only-cprop.
34347
34348 2014-06-06 Christian Bruel <christian.bruel@st.com>
34349
34350 PR tree-optimization/43934
34351 * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
34352 cost.
34353
34354 2014-06-06 Richard Sandiford <rdsandiford@googlemail.com>
34355
34356 * ira-lives.c (single_reg_class): Add missing break. Explicitly
34357 return NO_REGS for extra address and memory constraints. Handle
34358 operands that match (or are equivalent to something that matches)
34359 extra constant constraints. Ignore other non-register operands.
34360
34361 2014-06-06 Alan Modra <amodra@gmail.com>
34362
34363 PR target/61300
34364 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
34365 * doc/tm.texi: Regenerate.
34366 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
34367 Use throughout in place of REG_PARM_STACK_SPACE.
34368 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
34369 "incoming" param. Pass to rs6000_function_parms_need_stack.
34370 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
34371 prototype_p when incoming. Use function decl when incoming
34372 to handle K&R style functions.
34373 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
34374 (INCOMING_REG_PARM_STACK_SPACE): Define.
34375
34376 2014-06-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
34377
34378 PR target/52472
34379 * cfgexpand.c (expand_debug_expr): Use address space of nested
34380 TREE_TYPE for ADDR_EXPR and MEM_REF.
34381
34382 2014-06-05 Jeff Law <law@redhat.com>
34383
34384 PR tree-optimization/61289
34385 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
34386 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
34387 looking for those which match LHS. All callers changed.
34388 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
34389 parameters and code which manipulated them. All callers changed.
34390 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
34391 and DST_MAP parameters. Simplify invalidation code by just calling
34392 invalidate_equivalences. All callers changed.
34393 (thread_across_edge): Simplify now that we don't need to maintain
34394 the map of equivalences to invalidate.
34395
34396 2014-06-05 Kai Tietz <ktietz@redhat.com>
34397 Richard Henderson <rth@redhat.com>
34398
34399 PR target/46219
34400 * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
34401 checking for !TARGET_X32.
34402 * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
34403 (sibcall_intern): New define_insn, plus required peepholes.
34404 (sibcall_pop_intern): Likewise.
34405 (sibcall_value_intern): Likewise.
34406 (sibcall_value_pop_intern): Likewise.
34407
34408 2014-06-05 Ilya Enkovich <ilya.enkovich@intel.com>
34409
34410 * tree-inline.c (tree_function_versioning): Check DF info existence
34411 before accessing it.
34412
34413 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
34414
34415 * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
34416 frame_size.
34417 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
34418 aarch64_frame hard_fp_offset and frame_size.
34419 (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
34420 frame_size; remove original_frame_size.
34421 (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
34422 (aarch64_initial_elimination_offset): Remove frame_size and
34423 offset. Use aarch64_frame frame_size.
34424
34425 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
34426 Jiong Wang <jiong.wang@arm.com>
34427 Renlin <renlin.li@arm.com>
34428
34429 * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
34430 initialization of R30 offset. Update offset. Iterate core
34431 regisers upto X30. Remove X29, X30 specific code.
34432
34433 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
34434 Jiong Wang <jiong.wang@arm.com>
34435
34436 * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
34437 (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
34438 (aarch64_register_saved_on_entry): Adjust test.
34439
34440 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
34441
34442 * config/aarch64/aarch64.h (machine_function): Move
34443 saved_varargs_size from here...
34444 (aarch64_frame): ... to here.
34445
34446 * config/aarch64/aarch64.c (aarch64_expand_prologue)
34447 (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
34448 (aarch64_initial_elimination_offset)
34449 (aarch64_setup_incoming_varargs): Adjust location of
34450 saved_varargs_size.
34451
34452 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
34453
34454 * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
34455 layout comment.
34456
34457 2014-06-05 Jaydeep Patil <Jaydeep.Patil@imgtec.com>
34458 Prachi Godbole <Prachi.Godbole@imgtec.com>
34459
34460 * config/mips/mips-cpus.def: Add definition for p5600. Updated
34461 mips32r5 entry to use PROCESSOR_P5600.
34462 * config/mips/mips-tables.opt: Regenerate.
34463 * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
34464 * config/mips/mips.c (mips_fmadd_bypass): New function.
34465 (mips_rtx_cost_data): Add costs for p5600.
34466 (mips_issue_rate): Add support for p5600.
34467 (mips_multipass_dfa_lookahead): Likewise.
34468 * config/mips/mips.h (TUNE_P5600): New define.
34469 (TUNE_MACC_CHAINS): Add TUNE_P5600.
34470 (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
34471 * config/mips/mips.md: Include p5600.md.
34472 (processor): Add p5600.
34473 * config/mips/p5600.md: New file.
34474
34475 2014-06-05 Evgeny Stupachenko <evstupac@gmail.com>
34476
34477 * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
34478 * config/i386/predicates.md (palignr_operand): New.
34479 Indicates if permutation is suitable for palignr instruction.
34480
34481 2014-06-05 Yuri Rumyantsev <ysrumyan@gmail.com>
34482
34483 PR tree-optimization/61319
34484 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
34485 stmt belongs to loop.
34486
34487 2014-06-05 Richard Biener <rguenther@suse.de>
34488
34489 * gimplify.c (create_tmp_from_val): Remove is_formal parameter
34490 and set DECL_GIMPLE_REG_P unconditionally if appropriate.
34491 (lookup_tmp_var): Adjust.
34492 (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
34493
34494 2014-06-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
34495
34496 * config/arm/arm.md (enabled): Disable opt_enabled attribute.
34497
34498 2014-06-05 Marek Polacek <polacek@redhat.com>
34499
34500 PR c/49706
34501 * doc/invoke.texi: Document -Wlogical-not-parentheses.
34502
34503 2014-06-04 Tom de Vries <tom@codesourcery.com>
34504
34505 * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
34506 CONST_INT.
34507
34508 2014-06-04 Marc Glisse <marc.glisse@inria.fr>
34509
34510 PR tree-optimization/61385
34511 * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
34512
34513 2014-06-04 Bernd Schmidt <bernds@codesourcery.com>
34514
34515 * lto-wrapper.c (fatal, fatal_perror): Remove functions. All callers
34516 changed to use fatal_error.
34517 (main): Ensure lto_wrapper_cleanup is run atexit.
34518
34519 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
34520
34521 * lra-constraints.c (valid_address_p): Move earlier in file.
34522 (address_eliminator): New structure.
34523 (satisfies_memory_constraint_p): New function.
34524 (satisfies_address_constraint_p): Likewise.
34525 (process_alt_operands, process_address, curr_insn_transform): Use them.
34526
34527 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
34528
34529 * lra-int.h (lra_static_insn_data): Make operand_alternative a
34530 const pointer.
34531 (target_lra_int, default_target_lra_int, this_target_lra_int)
34532 (op_alt_data): Delete.
34533 * lra.h (lra_init): Delete.
34534 * lra.c (default_target_lra_int, this_target_lra_int): Delete.
34535 (init_insn_code_data_once): Remove op_alt_data handling.
34536 (finish_insn_code_data_once): Likewise.
34537 (init_op_alt_data): Delete.
34538 (get_static_insn_data): Initialize operand_alternative to null.
34539 (free_insn_recog_data): Cast operand_alternative before freeing it.
34540 (setup_operand_alternative): Take the operand_alternative as
34541 parameter and assume it isn't already cached in the static
34542 insn data.
34543 (lra_set_insn_recog_data): Update accordingly.
34544 (lra_init): Delete.
34545 * ira.c (ira_init): Don't call lra_init.
34546 * target-globals.h (this_target_lra_int): Declare.
34547 (target_globals): Remove lra_int.
34548 (restore_target_globals): Update accordingly.
34549 * target-globals.c: Don't include lra-int.h.
34550 (default_target_globals, save_target_globals): Remove lra_int.
34551
34552 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
34553
34554 * recog.h (operand_alternative): Convert reg_class, reject,
34555 matched and matches into bitfields.
34556 (preprocess_constraints): New overload.
34557 (preprocess_insn_constraints): New function.
34558 (preprocess_constraints): Take the insn as parameter.
34559 (recog_op_alt): Change into a pointer.
34560 (target_recog): Add x_op_alt.
34561 * recog.c (asm_op_alt): New variable.
34562 (recog_op_alt): Change into a pointer.
34563 (preprocess_constraints): New overload, replacing the old function
34564 definition with one that doesn't use global state.
34565 (preprocess_insn_constraints): New function.
34566 (preprocess_constraints): Use them. Take the insn as parameter.
34567 Use asm_op_alt for asms.
34568 (recog_init): Free existing x_op_alt entries.
34569 * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
34570 pointer const.
34571 (make_early_clobber_and_input_conflicts): Likewise.
34572 (process_bb_node_lives): Pass the insn to process_constraints.
34573 * reg-stack.c (check_asm_stack_operands): Likewise.
34574 (subst_asm_stack_regs): Likewise.
34575 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
34576 * regrename.c (build_def_use): Likewise.
34577 * sched-deps.c (sched_analyze_insn): Likewise.
34578 * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
34579 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
34580 (note_invalid_constants): Likewise.
34581 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34582 (ix86_legitimate_combined_insn): Make operand_alternative pointer
34583 const.
34584
34585 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
34586
34587 * recog.c (preprocess_constraints): Don't skip disabled alternatives.
34588 * ira-lives.c (check_and_make_def_conflict): Check for disabled
34589 alternatives.
34590 (make_early_clobber_and_input_conflicts): Likewise.
34591 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34592
34593 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
34594
34595 * recog.h (alternative_class): New function.
34596 (which_op_alt): Return a const recog_op_alt.
34597 * reg-stack.c (check_asm_stack_operands): Update type accordingly.
34598 (subst_asm_stack_regs): Likewise.
34599 * config/arm/arm.c (note_invalid_constants): Likewise.
34600 * regcprop.c (copyprop_hardreg_forward_1): Likewise. Don't modify
34601 the operand_alternative; use alternative class instead.
34602 * sel-sched.c (get_reg_class): Likewise.
34603 * regrename.c (build_def_use): Likewise.
34604 (hide_operands, restore_operands, record_out_operands): Update type
34605 accordingly.
34606
34607 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
34608
34609 * recog.h (recog_op_alt): Convert to a flat array.
34610 (which_op_alt): New function.
34611 * recog.c (recog_op_alt): Convert to a flat array.
34612 (preprocess_constraints): Update accordingly, grouping all
34613 operands of the same alternative together, rather than the
34614 other way around.
34615 * ira-lives.c (check_and_make_def_conflict): Likewise.
34616 (make_early_clobber_and_input_conflicts): Likewise.
34617 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34618 * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
34619 (subst_asm_stack_regs): Likewise.
34620 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
34621 * regrename.c (hide_operands, record_out_operands): Likewise.
34622 (build_def_use): Likewise.
34623 * sel-sched.c (get_reg_class): Likewise.
34624 * config/arm/arm.c (note_invalid_constants): Likewise.
34625
34626 2014-06-04 Jason Merrill <jason@redhat.com>
34627
34628 PR c++/51253
34629 PR c++/61382
34630 * gimplify.c (gimplify_arg): Non-static.
34631 * gimplify.h: Declare it.
34632
34633 2014-06-04 Richard Biener <rguenther@suse.de>
34634
34635 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
34636 TREE_PUBLIC and DECL_EXTERNAL decls.
34637
34638 2014-06-04 Matthew Fortune <matthew.fortune@imgtec.com>
34639
34640 * regcprop.c (copyprop_hardreg_forward_1): Account for
34641 HARD_REGNO_CALL_PART_CLOBBERED.
34642
34643 2014-06-04 Richard Biener <rguenther@suse.de>
34644
34645 * configure.ac: Check whether the underlying type of int64_t
34646 is long or long long.
34647 * configure: Regenerate.
34648 * config.in: Likewise.
34649 * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
34650 (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
34651
34652 2014-06-04 Richard Biener <rguenther@suse.de>
34653
34654 PR tree-optimization/60098
34655 * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
34656 we hit a kill.
34657 (dse_optimize_stmt): Simplify, now that we found a kill
34658 earlier.
34659
34660 2014-06-04 Richard Biener <rguenther@suse.de>
34661
34662 * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
34663 of accesses with non-invariant address.
34664
34665 2014-06-04 Martin Liska <mliska@suse.cz>
34666
34667 * cgraph.h (cgraph_make_wrapper): New function introduced.
34668 * cgraphunit.c (cgraph_make_wrapper): The function implementation.
34669 * ipa-inline.h (inline_analyze_function): The function is global.
34670 * ipa-inline-analysis.c (inline_analyze_function): Likewise.
34671
34672 2014-06-04 Martin Liska <mliska@suse.cz>
34673
34674 * tree.h (private_lookup_attribute_starting): New function.
34675 (lookup_attribute_starting): Likewise.
34676 * tree.c (private_lookup_attribute_starting): Likewise.
34677
34678 2014-06-04 Martin Liska <mliska@suse.cz>
34679
34680 * cgraph.h (expand_thunk): New argument added.
34681 (address_taken_from_non_vtable_p): New global function.
34682 * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
34683 * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
34684 * cgraphunit.c (analyze_function): Likewise.
34685 (assemble_thunks_and_aliases): Argument added to call.
34686 (expand_thunk): New argument forces to produce GIMPLE thunk.
34687
34688 2014-06-04 Martin Liska <mliska@suse.cz>
34689
34690 * coverage.h (coverage_compute_cfg_checksum): Argument added.
34691 * coverage.c (coverage_compute_cfg_checksum): Likewise.
34692 * profile.c (branch_prob): Likewise.
34693
34694 2014-06-04 Martin Jambor <mjambor@suse.cz>
34695
34696 PR ipa/61340
34697 * ipa-pure-const.c (propagate_pure_const): Add unreachable default
34698 handler for switch on an ipa_ref_use enum.
34699 * ipa-reference.c (analyze_function): Likewise.
34700
34701 2014-06-04 Kai Tietz <ktietz@redhat.com>
34702
34703 * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
34704 from old call-instruction.
34705
34706 2014-06-04 Bin Cheng <bin.cheng@arm.com>
34707
34708 * config/aarch64/aarch64.c (aarch64_classify_address)
34709 (aarch64_legitimize_reload_address): Support full addressing modes
34710 for vector modes.
34711 * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
34712 (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
34713
34714 2014-06-03 Andrew Pinski <apinski@cavium.com>
34715
34716 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
34717 for OP0.
34718
34719 2014-06-03 Andrew Pinski <apinski@cavium.com>
34720
34721 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
34722 (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
34723
34724 2014-06-03 Kai Tietz <ktietz@redhat.com>
34725
34726 * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
34727 for 64-bit ms-abi.
34728
34729 2014-06-03 Dehao Chen <dehao@google.com>
34730
34731 * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
34732 the same loop.
34733
34734 2014-06-03 Marek Polacek <polacek@redhat.com>
34735
34736 PR c/60439
34737 * doc/invoke.texi: Document -Wswitch-bool.
34738 * function.c (stack_protect_epilogue): Cast controlling expression of
34739 the switch to int.
34740 * gengtype.c (walk_type): Generate switch expression with its
34741 controlling expression cast to int.
34742
34743 2014-06-03 Vishnu K S <Vishnu.k_s@atmel.com>
34744
34745 * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
34746 and attiny841.
34747 * config/avr/avr-tables.opt: Regenerate.
34748 * config/avr/t-multilib: Regenerate.
34749 * doc/avr-mmcu.texi: Regenerate.
34750
34751 2014-06-03 Vishnu K S <vishnu.k_s@atmel.com>
34752 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
34753
34754 * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
34755 (ata6617c, ata664251): Add new avr35 devices.
34756 (ata6612c): Add new avr4 device.
34757 (ata6613c, ata6614q): Add new avr5 devices.
34758 * config/avr/avr-tables.opt: Regenerate.
34759 * config/avr/t-multilib: Regenerate.
34760 * doc/avr-mmcu.texi: Regenerate.
34761
34762 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
34763
34764 * gcc/config/aarch64/aarch64-builtins.c
34765 (aarch64_types_binop_ssu_qualifiers): New static data.
34766 (TYPES_BINOP_SSU): Define.
34767 * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
34768 urshr_n, ushll_n): Use appropriate unsigned qualifiers.
34769 * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
34770 vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
34771 vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
34772 vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
34773 vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
34774 vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
34775 vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
34776 suffix to builtin function name, remove cast.
34777 (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
34778 vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
34779 vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
34780
34781 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
34782
34783 * gcc/config/aarch64/aarch64-builtins.c
34784 (aarch64_types_binop_uus_qualifiers,
34785 aarch64_types_shift_to_unsigned_qualifiers,
34786 aarch64_types_unsigned_shiftacc_qualifiers): Define.
34787 * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
34788 uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
34789 sqshlu_n, uqshl_n): Update qualifiers.
34790 * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
34791 vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
34792 vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
34793 vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
34794 vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
34795 vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
34796 vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
34797 vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
34798 vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
34799 vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
34800 vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
34801 vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
34802 vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
34803 vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
34804 vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
34805 vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
34806 vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
34807 vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
34808 vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
34809 vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
34810 vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
34811 vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
34812 vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
34813 vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
34814 vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
34815 vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
34816 vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
34817
34818 2014-06-03 Teresa Johnson <tejohnson@google.com>
34819
34820 * tree-sra.c (modify_function): Record caller nodes after rebuild.
34821
34822 2014-06-02 Jason Merrill <jason@redhat.com>
34823
34824 PR c++/61020
34825 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
34826
34827 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
34828
34829 * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
34830 location == 0.
34831
34832 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
34833
34834 * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
34835 New pattern.
34836 * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
34837 (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
34838 * config/aarch64/iterators.md (REVERSE): New iterator.
34839 (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
34840 (rev_op): New int_attribute.
34841 * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
34842 vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
34843 vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
34844 vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
34845 vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
34846 vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
34847 vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
34848 Replace temporary __asm__ with __builtin_shuffle.
34849
34850 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
34851
34852 * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
34853 mips64r5.
34854 * config/mips/mips-tables.opt: Regenerate.
34855 * config/mips/mips.c (mips_compute_frame_info): Changed if statement
34856 to use mips_isa_rev rather than ISA_MIPS32R2.
34857 * config/mips/mips.h (ISA_MIPS32R3): New define.
34858 (ISA_MIPS32R5): New define.
34859 (ISA_MIPS64R3): New define.
34860 (ISA_MIPS64R5): New define.
34861 (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
34862 ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
34863 (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
34864 and mips64r5.
34865 (MIPS_ISA_SYNCI_SPEC): Likewise.
34866 (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
34867 (LINK_SPEC): Added mips32r3 and mips32r5.
34868 * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
34869 to mips32r2; and mips64r3 and mips64r5 to mips64r2.
34870 * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
34871 * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
34872 * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
34873 * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
34874 * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
34875
34876 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
34877
34878 * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
34879 options.
34880 * config/mips/mips.opt (mxpa): New option.
34881 * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
34882 assembler.
34883
34884 2014-06-03 Martin Jambor <mjambor@suse.cz>
34885
34886 PR ipa/61160
34887 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
34888 thunks.
34889
34890 2014-06-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
34891
34892 PR tree-optimization/61328
34893 * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
34894 initialization from find_bswap_or_nop_1.
34895 (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
34896 in source_expr2 before using the size value the function sets. Also
34897 make use of init_symbolic_number () in both the old place and
34898 find_bswap_or_nop_load () to avoid reading uninitialized memory when
34899 doing recursion in the GIMPLE_BINARY_RHS case.
34900
34901 2014-06-03 Richard Biener <rguenther@suse.de>
34902
34903 PR tree-optimization/61383
34904 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
34905 stmts can't trap.
34906
34907 2014-06-03 Richard Sandiford <rdsandiford@googlemail.com>
34908
34909 * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
34910 (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
34911 (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
34912 (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
34913 in this file.
34914 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
34915 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
34916 * system.h: ...here and make it unconditional.
34917 * target.def (conditional_register_usage): Mention
34918 define_register_constraint instead of old-style constraint macros.
34919 * doc/tm.texi.in: Remove documentation for old-style constraint macros.
34920 * doc/tm.texi: Regenerate.
34921 * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
34922 protected by !USE_MD_CONSTRAINTS.
34923 * config/frv/frv.md: Remove quote from old version of documentation.
34924 * config/frv/frv.c (frv_conditional_register_usage): Likewise.
34925 * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
34926 CONST_DOUBLE_OK_FOR_LETTER.
34927 * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
34928
34929 2014-06-02 Andrew Pinski <apinski@cavium.com>
34930
34931 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
34932 /lib/ld-linux32-aarch64.so.1 is used for ILP32.
34933 (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
34934 file whose name depends on -mabi= and -mbig-endian.
34935 * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
34936 Handle LP64 better and handle ilp32 too.
34937 (MULTILIB_OPTIONS): Delete.
34938 (MULTILIB_DIRNAMES): Delete.
34939
34940 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
34941
34942 * expr.h: Remove prototypes of functions defined in builtins.c.
34943 * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
34944 Remove prototypes of functions defined in builtins.c.
34945 * builtins.h: Update prototype list to include all exported functions.
34946 * builtins.c: (default_libc_has_function, gnu_libc_has_function,
34947 no_c99_libc_has_function): Move to targhooks.c
34948 (build_string_literal, build_call_expr_loc_array,
34949 build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
34950 to tree.c.
34951 (expand_builtin_object_size, fold_builtin_object_size): Make static.
34952 * targhooks.c (default_libc_has_function, gnu_libc_has_function,
34953 no_c99_libc_has_function): Relocate from builtins.c.
34954 * tree.c: Include builtins.h.
34955 (build_call_expr_loc_array, build_call_expr_loc_vec,
34956 build_call_expr_loc, build_call_expr, build_string_literal): Relocate
34957 from builtins.c.
34958 * fold-const.h (fold_fma): Move prototype to builtins.h.
34959 * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
34960 * asan.c: Include builtins.h.
34961 * cfgexpand.c: Likewise.
34962 * convert.c: Likewise.
34963 * emit-rtl.c: Likewise.
34964 * except.c: Likewise.
34965 * expr.c: Likewise.
34966 * fold-const.c: Likewise.
34967 * gimple-fold.c: Likewise.
34968 * gimple-ssa-strength-reduction.c: Likewise.
34969 * gimplify.c: Likewise.
34970 * ipa-inline.c: Likewise.
34971 * ipa-prop.c: Likewise.
34972 * lto-streamer-out.c: Likewise.
34973 * stmt.c: Likewise.
34974 * tree-inline.c: Likewise.
34975 * tree-object-size.c: Likewise.
34976 * tree-sra.c: Likewise.
34977 * tree-ssa-ccp.c: Likewise.
34978 * tree-ssa-forwprop.c: Likewise.
34979 * tree-ssa-loop-ivcanon.c: Likewise.
34980 * tree-ssa-loop-ivopts.c: Likewise.
34981 * tree-ssa-math-opts.c: Likewise.
34982 * tree-ssa-reassoc.c: Likewise.
34983 * tree-ssa-threadedge.c: Likewise.
34984 * tree-streamer-in.c: Likewise.
34985 * tree-vect-data-refs.c: Likewise.
34986 * tree-vect-patterns.c: Likewise.
34987 * tree-vect-stmts.c: Likewise.
34988 * config/aarch64/aarch64.c: Likewise.
34989 * config/alpha/alpha.c: Likewise.
34990 * config/arc/arc.c: Likewise.
34991 * config/arm/arm.c: Likewise.
34992 * config/avr/avr.c: Likewise.
34993 * config/bfin/bfin.c: Likewise.
34994 * config/c6x/c6x.c: Likewise.
34995 * config/cr16/cr16.c: Likewise.
34996 * config/cris/cris.c: Likewise.
34997 * config/epiphany/epiphany.c: Likewise.
34998 * config/fr30/fr30.c: Likewise.
34999 * config/frv/frv.c: Likewise.
35000 * config/h8300/h8300.c: Likewise.
35001 * config/i386/i386.c: Likewise.
35002 * config/i386/winnt.c: Likewise.
35003 * config/ia64/ia64.c: Likewise.
35004 * config/iq2000/iq2000.c: Likewise.
35005 * config/lm32/lm32.c: Likewise.
35006 * config/m32c/m32c.c: Likewise.
35007 * config/m32r/m32r.c: Likewise.
35008 * config/m68k/m68k.c: Likewise.
35009 * config/mcore/mcore.c: Likewise.
35010 * config/mep/mep.c: Likewise.
35011 * config/microblaze/microblaze.c: Likewise.
35012 * config/mips/mips.c: Likewise.
35013 * config/mmix/mmix.c: Likewise.
35014 * config/mn10300/mn10300.c: Likewise.
35015 * config/moxie/moxie.c: Likewise.
35016 * config/msp430/msp430.c: Likewise.
35017 * config/nds32/nds32.c: Likewise.
35018 * config/pa/pa.c: Likewise.
35019 * config/pdp11/pdp11.c: Likewise.
35020 * config/picochip/picochip.c: Likewise.
35021 * config/rl78/rl78.c: Likewise.
35022 * config/rs6000/rs6000.c: Likewise.
35023 * config/rx/rx.c: Likewise.
35024 * config/s390/s390.c: Likewise.
35025 * config/score/score.c: Likewise.
35026 * config/sh/sh.c: Likewise.
35027 * config/sparc/sparc.c: Likewise.
35028 * config/spu/spu.c: Likewise.
35029 * config/stormy16/stormy16.c: Likewise.
35030 * config/tilegx/tilegx.c: Likewise.
35031 * config/tilepro/tilepro.c: Likewise.
35032 * config/v850/v850.c: Likewise.
35033 * config/vax/vax.c: Likewise.
35034 * config/xtensa/xtensa.c: Likewise.
35035
35036 2014-06-02 Jeff Law <law@redhat.com>
35037
35038 PR rtl-optimization/61094
35039 * ree.c (combine_reaching_defs): Do not reextend an insn if it
35040 was marked as do_no_reextend. If a copy is needed to eliminate
35041 an extension, then mark it as do_not_reextend.
35042
35043 2014-06-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
35044
35045 * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
35046
35047 2014-06-02 Richard Henderson <rth@redhat.com>
35048
35049 PR target/61336
35050 * config/alpha/alpha.c (print_operand_address): Allow symbolic
35051 addresses inside asms. Use output_operand_lossage instead of
35052 gcc_unreachable.
35053
35054 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
35055
35056 PR target/61239
35057 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
35058 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
35059
35060 2014-06-02 Tom de Vries <tom@codesourcery.com>
35061
35062 * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
35063 case that x has VOIDmode.
35064
35065 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
35066
35067 * varasm.c (copy_constant): Delete function.
35068 (build_constant_desc): Don't call it.
35069
35070 2014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
35071
35072 PR target/61154
35073 * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
35074 * config/arm/arm.md (mov64 splitter): Replace const_double_operand
35075 with immediate_operand.
35076
35077 2014-06-02 Andreas Schwab <schwab@suse.de>
35078
35079 * config/ia64/ia64.c
35080 (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
35081 pending_data_specs first.
35082
35083 2014-06-02 Richard Biener <rguenther@suse.de>
35084
35085 PR tree-optimization/61378
35086 * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
35087 valueized_anything.
35088
35089 2014-06-01 Uros Bizjak <ubizjak@gmail.com>
35090
35091 * config/i386/constraints.md (Bw): Rename from 'w'.
35092 (Bz): Rename from 'z'.
35093 * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
35094
35095 2014-06-01 Kai Tietz <ktietz@redhat.com>
35096
35097 PR target/61377
35098 * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
35099 * config/i386/i386.md (sibcall_insn_operand): Use Bs
35100 instead of m constraint.
35101
35102 2014-05-31 Andreas Schwab <schwab@linux-m68k.org>
35103
35104 * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
35105 a separate alternative where the scratch operand 2 is marked as
35106 early clobber.
35107
35108 2014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
35109
35110 * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
35111 (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
35112 (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
35113 and __builtins_arm_get_fpscr.
35114 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
35115 __builtins_arm_get_fpscr.
35116 (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
35117 __builtins_arm_ldfpscr.
35118 (arm_atomic_assign_expand_fenv): New function.
35119 * config/arm/vfp.md (set_fpscr): New pattern.
35120 (get_fpscr) : Likewise.
35121 * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
35122 VUNSPEC_SET_FPSCR.
35123 * doc/extend.texi (AARCH64 Built-in Functions) : Document
35124 __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
35125
35126 2014-05-30 Jakub Jelinek <jakub@redhat.com>
35127
35128 * asan.c (report_error_func): Add SLOW_P argument, use
35129 BUILT_IN_ASAN_*_N if set.
35130 (build_check_stmt): Likewise.
35131 (instrument_derefs): If T has insufficient alignment,
35132 force same handling as for odd sizes.
35133
35134 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
35135 BUILT_IN_ASAN_REPORT_STORE_N): New.
35136 * asan.c (struct asan_mem_ref): Change access_size type to
35137 HOST_WIDE_INT.
35138 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
35139 update_mem_ref_hash_table): Likewise.
35140 (asan_mem_ref_hasher::hash): Hash in a HWI.
35141 (report_error_func): Change size_in_bytes argument to HWI.
35142 Use *_N builtins if size_in_bytes is larger than 16 or not power of
35143 two.
35144 (build_shadow_mem_access): New function.
35145 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
35146 Handle size_in_bytes not power of two or larger than 16.
35147 (instrument_derefs): Don't give up if size_in_bytes is not
35148 power of two or is larger than 16.
35149
35150 2014-05-30 Kai Tietz <ktietz@redhat.com>
35151
35152 PR target/60104
35153 * config/i386/i386.c (x86_output_mi_thunk): Add memory case
35154 for sibling-tail-calls.
35155 * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
35156 to its use.
35157 * config/i386/predicates.md (sibcall_memory_operand): New predicate.
35158 (sibcall_insn_operand): Add check for sibcall_memory_operand.
35159
35160 2014-05-30 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
35161
35162 * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
35163 * config/avr/avr-tables.opt: Regenerate.
35164 * config/avr/t-multilib: Regenerate.
35165 * doc/avr-mmcu.texi: Regenerate.
35166
35167 2014-05-30 Ian Lance Taylor <iant@google.com>
35168
35169 * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
35170 target("sse").
35171
35172 2014-05-30 Tom de Vries <tom@codesourcery.com>
35173
35174 * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
35175 Redefine as true.
35176
35177 2014-05-30 Tom de Vries <tom@codesourcery.com>
35178
35179 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35180 * lra.c (initialize_lra_reg_info_element): Add init of
35181 actual_call_used_reg_set field.
35182 (lra): Call lra_create_live_ranges before lra_inheritance for
35183 -fuse-caller-save.
35184 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35185 -fuse-caller-save.
35186 * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
35187 instead of call_used_reg_set for -fuse-caller-save.
35188 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35189
35190 2014-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35191
35192 * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
35193 to mov_imm.
35194 * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
35195
35196 2014-05-30 Richard Sandiford <rdsandiford@googlemail.com>
35197
35198 * ira.c (ira_get_dup_out_num): Check for output operands at
35199 the start of the loop. Handle cases where an included alternative
35200 follows an excluded one.
35201
35202 2014-05-29 Mike Stump <mikestump@comcast.net>
35203
35204 PR debug/61352
35205 * collect2.c (maybe_run_lto_and_relink): Be sure to always run
35206 post ld passes when lto is used.
35207
35208 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
35209
35210 PR rtl-optimization/61325
35211 * lra-constraints.c (process_address): Rename to process_address_1.
35212 (process_address): New function.
35213
35214 2014-05-29 Alan Lawrence <alan.lawrence@arm.com>
35215
35216 * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
35217 TYPES_BINOPV): New static data.
35218 * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
35219 New builtin.
35220 * config/aarch64/aarch64-simd.md (aarch64_ext,
35221 aarch64_im_lane_boundsi): New patterns.
35222 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
35223 patterns for EXT.
35224 (aarch64_evpc_ext): New function.
35225
35226 * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
35227
35228 * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
35229 vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
35230 vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
35231 vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
35232 vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
35233
35234 2014-05-29 Tom de Vries <tom@codesourcery.com>
35235
35236 * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
35237
35238 2014-05-29 Richard Earnshaw <rearnsha@arm.com>
35239 Richard Sandiford <rdsandiford@googlemail.com>
35240
35241 * arm/iterators.md (shiftable_ops): New code iterator.
35242 (t2_binop0, arith_shift_insn): New code attributes.
35243 * arm/predicates.md (shift_nomul_operator): New predicate.
35244 * arm/arm.md (insn_enabled): Delete.
35245 (enabled): Remove insn_enabled test.
35246 (*arith_shiftsi): Delete. Replace with ...
35247 (*<arith_shift_insn>_multsi): ... new pattern.
35248 (*<arith_shift_insn>_shiftsi): ... new pattern.
35249 * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
35250
35251 2014-05-29 Radovan Obradovic <robradovic@mips.com>
35252 Tom de Vries <tom@codesourcery.com>
35253
35254 * config/mips/mips.h (POST_CALL_TMP_REG): Define.
35255 * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
35256 clobber.
35257 (mips_split_call): Use POST_CALL_TMP_REG.
35258 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
35259
35260 2014-05-29 Tom de Vries <tom@codesourcery.com>
35261
35262 * final.c (collect_fn_hard_reg_usage): Guard variable declaration
35263 with #ifdef STACK_REGS.
35264
35265 2014-05-28 Jan Hubicka <hubicka@ucw.cz>
35266
35267 * varasm.c (get_variable_section): Walk aliases.
35268 (place_block_symbol): Walk aliases.
35269
35270 2014-05-28 Tom de Vries <tom@codesourcery.com>
35271
35272 Revert:
35273 2014-05-28 Tom de Vries <tom@codesourcery.com>
35274
35275 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35276 * lra.c (initialize_lra_reg_info_element): Add init of
35277 actual_call_used_reg_set field.
35278 (lra): Call lra_create_live_ranges before lra_inheritance for
35279 -fuse-caller-save.
35280 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35281 -fuse-caller-save.
35282 * lra-constraints.c (need_for_call_save_p): Use
35283 actual_call_used_reg_set instead of call_used_reg_set for
35284 -fuse-caller-save.
35285 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35286
35287 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
35288
35289 * doc/md.texi: Document that the % constraint character must
35290 be at the beginning of the string.
35291 * genoutput.c (validate_insn_alternatives): Check that '=',
35292 '+' and '%' only appear at the beginning of a constraint.
35293 * ira.c (commutative_constraint_p): Delete.
35294 (ira_get_dup_out_num): Expect the '%' commutativity marker to be
35295 at the start of the string.
35296 * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
35297 duplicate '='s.
35298 * config/arm/neon.md (bicdi3_neon): Likewise.
35299 * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
35300 (slt_si, sltu_si): Likewise.
35301 * config/vax/vax.md (sbcdi3): Likewise.
35302 * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
35303 * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
35304 (mul64): Move '%' to beginning of constraint.
35305 * config/arm/arm.md (*xordi3_insn): Likewise.
35306 * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
35307 (xorsi3): Likewise.
35308
35309 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
35310
35311 * doc/md.texi: Document the restrictions on the "enabled" attribute.
35312
35313 2014-05-28 Jason Merrill <jason@redhat.com>
35314
35315 PR c++/47202
35316 * cgraph.h (symtab_node::get_comdat_group_id): New.
35317 * cgraphunit.c (analyze_functions): Call it.
35318 * symtab.c (dump_symtab_node): Likewise.
35319 * tree.c (decl_comdat_group_id): New.
35320 * tree.h: Declare it.
35321 * lto-streamer-out.c (write_symbol): Use it.
35322 * trans-mem.c (ipa_tm_create_version_alias): Likewise.
35323
35324 2014-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
35325
35326 PR bootstrap/PR61146
35327 * wide-int.cc: Do not include longlong.h when compiling with clang.
35328
35329 2014-05-28 Richard Biener <rguenther@suse.de>
35330
35331 * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
35332 * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
35333 (vrp_visit_assignment_or_call): Print less vertical space.
35334 (vrp_visit_stmt): Likewise.
35335 (vrp_visit_phi_node): Likewise. For a PHI argument with
35336 VR_VARYING range consider recording it as copy.
35337
35338 2014-05-28 Richard Biener <rguenther@suse.de>
35339
35340 Revert
35341 2014-05-28 Richard Biener <rguenther@suse.de>
35342
35343 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
35344
35345 2014-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
35346
35347 * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
35348 sufficiently aligned and an offset is used at the same time.
35349 (expand_expr_real_1): Likewise.
35350
35351 2014-05-28 Richard Biener <rguenther@suse.de>
35352
35353 PR middle-end/61045
35354 * fold-const.c (fold_comparison): When folding
35355 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
35356 the sign of the remaining constant operand stays the same.
35357
35358 2014-05-28 Kaushik Phatak <kaushik.phatak@kpit.com>
35359
35360 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
35361 __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
35362 (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
35363 to the assembler.
35364 (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
35365 * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
35366 (m32bit-doubles) Likewise.
35367 * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
35368 * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
35369 option for RL78.
35370
35371 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
35372
35373 * configure.ac ($gcc_cv_ld_clearcap): New test.
35374 * configure: Regenerate.
35375 * config.in: Regenerate.
35376 * config/sol2.opt (mclear-hwcap): New option.
35377 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
35378 * config/sol2-clearcap.map: Moved here from
35379 testsuite/gcc.target/i386/clearcap.map.
35380 * config/sol2-clearcapv2.map: Move here from
35381 gcc.target/i386/clearcapv2.map.
35382 * config/t-sol2 (install): Depend on install-clearcap-map.
35383 (install-clearcap-map): New target.
35384 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
35385 -mclear-hwcap.
35386
35387 2014-05-28 Richard Biener <rguenther@suse.de>
35388
35389 * hwint.h (*_HALF_WIDE_INT*): Move to ...
35390 * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
35391 ... here and remove the rest.
35392 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
35393
35394 2014-05-28 Richard Biener <rguenther@suse.de>
35395
35396 PR tree-optimization/61335
35397 * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
35398 new range fails, drop to varying.
35399
35400 2014-05-28 Olivier Hainque <hainque@adacore.com>
35401
35402 * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
35403 (CPP_SPEC): Add entry for -mcpu=8548.
35404 * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
35405 * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
35406
35407 2014-05-28 Tom de Vries <tom@codesourcery.com>
35408
35409 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35410 * lra.c (initialize_lra_reg_info_element): Add init of
35411 actual_call_used_reg_set field.
35412 (lra): Call lra_create_live_ranges before lra_inheritance for
35413 -fuse-caller-save.
35414 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35415 -fuse-caller-save.
35416 * lra-constraints.c (need_for_call_save_p): Use
35417 actual_call_used_reg_set instead of call_used_reg_set for
35418 -fuse-caller-save.
35419 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35420
35421 2014-05-28 Radovan Obradovic <robradovic@mips.com>
35422 Tom de Vries <tom@codesourcery.com>
35423
35424 * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
35425 to gccoptlist.
35426 (@item -fuse-caller-save): New item.
35427
35428 2014-05-28 Radovan Obradovic <robradovic@mips.com>
35429 Tom de Vries <tom@codesourcery.com>
35430
35431 * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
35432 OPT_fuse_caller_save.
35433
35434 2014-05-28 Radovan Obradovic <robradovic@mips.com>
35435 Tom de Vries <tom@codesourcery.com>
35436
35437 * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
35438 * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
35439 get_call_reg_set_usage.
35440 * resource.c (mark_set_resources, mark_target_live_regs): Use
35441 get_call_reg_set_usage.
35442 * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
35443 field.
35444 (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
35445 * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
35446 Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35447 * ira-build.c (ira_create_allocno): Init
35448 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35449 (create_cap_allocno, propagate_allocno_info)
35450 (propagate_some_info_from_allocno)
35451 (copy_info_to_removed_store_destinations): Handle
35452 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35453 * ira-costs.c (ira_tune_allocno_costs): Use
35454 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
35455
35456 2014-05-28 Radovan Obradovic <robradovic@mips.com>
35457 Tom de Vries <tom@codesourcery.com>
35458
35459 * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
35460 and function_used_regs_valid fields.
35461 * final.c: Move include of hard-reg-set.h to before rtl.h to declare
35462 find_all_hard_reg_sets.
35463 (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
35464 (get_call_reg_set_usage): New function.
35465 (rest_of_handle_final): Use collect_fn_hard_reg_usage.
35466 * regs.h (get_call_reg_set_usage): Declare.
35467
35468 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
35469
35470 PR libgcc/61152
35471 * config/dbx.h (License): Add Runtime Library Exception.
35472 * config/newlib-stdint.h (License): Same.
35473 * config/rtems.h (License): Same
35474 * config/initfini-array.h (License): Same
35475 * config/v850/v850.h (License): Same.
35476 * config/v850/v850-opts.h (License): Same
35477 * config/v850/rtems.h (License): Same.
35478
35479 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
35480
35481 PR target/61044
35482 * doc/extend.texi (Local Labels): Note that label differences are
35483 not supported for AVR.
35484
35485 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
35486 Olivier Hainque <hainque@adacore.com>
35487
35488 * rtl.h (set_for_reg_notes): Declare.
35489 * emit-rtl.c (set_for_reg_notes): New function.
35490 (set_unique_reg_note): Use it.
35491 * optabs.c (add_equal_note): Likewise
35492
35493 2014-05-27 Andrew Pinski <apinski@cavium.com>
35494
35495 * config/aarch64/aarch64.md (stack_protect_set_<mode>):
35496 Use <w> for the register in assembly template.
35497 (stack_protect_test): Use the mode of operands[0] for the result.
35498 (stack_protect_test_<mode>): Use <w> for the register
35499 in assembly template.
35500
35501 2014-05-27 DJ Delorie <dj@redhat.com>
35502
35503 * config/rx/rx.c (add_vector_labels): New.
35504 (rx_output_function_prologue): Call it.
35505 (rx_handle_func_attribute): Don't require empty arguments.
35506 (rx_handle_vector_attribute): New.
35507 (rx_attribute_table): Add "vector" attribute.
35508 * doc/extend.texi (interrupt, vector): Document new/changed
35509 RX-specific attributes.
35510
35511 * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
35512
35513 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
35514
35515 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
35516 predicate to detect a negative quotient.
35517
35518 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
35519
35520 * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
35521 to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
35522 Add X - Y CMP 0 to X CMP Y transformation.
35523 (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
35524
35525 2014-05-27 Segher Boessenkool <segher@kernel.crashing.org>
35526
35527 * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
35528 before printing.
35529
35530 2014-05-27 Steve Ellcey <sellcey@mips.com>
35531
35532 * config/mips/mips.c: Add include of cgraph.h.
35533
35534 2014-05-27 Richard Biener <rguenther@suse.de>
35535
35536 * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
35537
35538 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
35539
35540 PR libgcc/61152
35541 * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
35542 * config/arm/arm-cores.def (License): Same.
35543 * config/arm/arm-opts.h (License): Same.
35544 * config/arm/aout.h (License): Same.
35545 * config/arm/bpabi.h (License): Same.
35546 * config/arm/elf.h (License): Same.
35547 * config/arm/linux-elf.h (License): Same.
35548 * config/arm/linux-gas.h (License): Same.
35549 * config/arm/netbsd-elf.h (License): Same.
35550 * config/arm/uclinux-eabi.h (License): Same.
35551 * config/arm/uclinux-elf.h (License): Same.
35552 * config/arm/vxworks.h (License): Same.
35553
35554 2014-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35555
35556 * config/arm/neon.md (neon_bswap<mode>): New pattern.
35557 * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
35558 (arm_init_neon_builtins): Handle NEON_BSWAP.
35559 Define required type nodes.
35560 (arm_expand_neon_builtin): Handle NEON_BSWAP.
35561 (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
35562 * config/arm/arm_neon_builtins.def (bswap): Define builtins.
35563 * config/arm/iterators.md (VDQHSD): New mode iterator.
35564
35565 2014-05-27 Richard Biener <rguenther@suse.de>
35566
35567 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
35568 Try using literal operands when comparing value-ranges failed.
35569
35570 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
35571
35572 * ira.c (commutative_operand): Adjust for change to recog_data.
35573 [Missing from previous commit.]
35574
35575 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
35576
35577 * system.h (TEST_BIT): New macro.
35578 * recog.h (alternative_mask): New type.
35579 (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
35580 (recog_data_d): Replace alternative_enabled_p array with
35581 enabled_alternatives.
35582 (target_recog): New structure.
35583 (default_target_recog, this_target_recog): Declare.
35584 (get_enabled_alternatives, recog_init): Likewise.
35585 * recog.c (default_target_recog, this_target_recog): New variables.
35586 (get_enabled_alternatives): New function.
35587 (extract_insn): Use it.
35588 (recog_init): New function.
35589 (preprocess_constraints, constrain_operands): Adjust for change to
35590 recog_data.
35591 * postreload.c (reload_cse_simplify_operands): Likewise.
35592 * reload.c (find_reloads): Likewise.
35593 * ira-costs.c (record_reg_classes): Likewise.
35594 * ira-lives.c (single_reg_class): Likewise. Fix bug in which
35595 all alternatives after a disabled one would be skipped.
35596 (ira_implicitly_set_insn_hard_regs): Likewise.
35597 * ira.c (ira_setup_alts): Adjust for change to recog_data.
35598 * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
35599 with enabled_alternatives.
35600 * lra.c (free_insn_recog_data): Update accordingly.
35601 (lra_update_insn_recog_data): Likewise.
35602 (lra_set_insn_recog_data): Likewise. Use get_enabled_alternatives.
35603 * lra-constraints.c (process_alt_operands): Likewise. Handle
35604 only_alternative as part of the enabled mask.
35605 * target-globals.h (this_target_recog): Declare.
35606 (target_globals): Add a recog field.
35607 (restore_target_globals): Restore this_target_recog.
35608 * target-globals.c: Include recog.h.
35609 (default_target_globals): Initialize recog field.
35610 (save_target_globals): Likewise.
35611 * reginfo.c (reinit_regs): Call recog_init.
35612 * toplev.c (backend_init_target): Likewise.
35613
35614 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
35615
35616 * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
35617 rather than any named insn's code.
35618
35619 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
35620
35621 PR libgcc/61152
35622 * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
35623 * config/arm/arm-cores.def (License): Same.
35624
35625 2014-05-26 Jan Hubicka <hubicka@ucw.cz>
35626
35627 * tree.h (decl_comdat_group): Declare.
35628 * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
35629 * tree.c (decl_comdat_group): Here.
35630
35631 2014-05-26 Richard Sandiford <r.sandiford@uk.ibm.com>
35632
35633 PR rtl-optimization/61222
35634 * combine.c (simplify_shift_const_1): When moving a PLUS outside
35635 the shift, truncate the PLUS operand to the result mode.
35636
35637 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
35638
35639 PR target/61271
35640 * config/i386/i386.c (ix86_rtx_costs)
35641 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
35642 Fix condition.
35643
35644 2014-05-26 Martin Jambor <mjambor@suse.cz>
35645
35646 * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
35647 subreg uses.
35648
35649 2014-05-26 Richard Biener <rguenther@suse.de>
35650
35651 * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
35652 wi::int_traits <long long>, wi::int_traits <unsigned long long>):
35653 Provide specializations.
35654 (wi::int_traits <HOST_WIDE_INT>,
35655 wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
35656
35657 2014-05-26 Alan Modra <amodra@gmail.com>
35658
35659 PR target/61098
35660 * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
35661 params and return a bool. Remove dead code. Update comment.
35662 Assert we have a const_int source. Remove bogus code from
35663 32-bit HWI days. Move !TARGET_POWERPC64 handling, and correct
35664 handling of constants > 2G and reg_equal note, from..
35665 (rs6000_emit_set_long_const): ..here. Remove unneeded param and
35666 return value. Update comment. If we can, use a new pseudo
35667 for intermediate calculations.
35668 * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
35669 prototype.
35670 * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
35671 call to rs6000_emit_set_const in splitter.
35672 (movdi_internal64+2, +3): Likewise.
35673
35674 2014-05-26 Richard Biener <rguenther@suse.de>
35675
35676 * system.h: Define __STDC_FORMAT_MACROS before
35677 including inttypes.h.
35678 * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
35679 HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
35680 HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
35681 HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
35682 HOST_WIDEST_INT_C): Remove.
35683 (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
35684 if C99 inttypes.h is not available.
35685 * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
35686 * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
35687 * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
35688 * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
35689 * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
35690 (struct output_info): Likewise.
35691 (print_statistics): Adjust.
35692 (dump_bitmap_statistics): Likewise.
35693 * bt-load.c (migrate_btr_defs): Print with PRId64.
35694 * cfg.c (dump_edge_info, dump_bb_info): Likewise.
35695 (MAX_SAFE_MULTIPLIER): Adjust.
35696 * cfghooks.c (dump_bb_for_graph): Print with PRId64.
35697 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
35698 dump_cgraph_node): Likewise.
35699 * final.c (dump_basic_block_info): Likewise.
35700 * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
35701 * gcov.c (format_gcov): Likewise.
35702 * ipa-cp.c (good_cloning_opportunity_p): Likewise. Use int64_t
35703 for calculation.
35704 (get_clone_agg_value): Use HOST_WIDE_INT for offset.
35705 * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
35706 (inline_small_functions, dump_overall_stats, dump_inline_stats):
35707 Use PRId64 for dumping.
35708 * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
35709 * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
35710 (add_allocno_hard_regs): Adjust.
35711 * loop-doloop.c (doloop_modify): Print using PRId64.
35712 * loop-iv.c (inverse): Compute in uint64_t.
35713 (determine_max_iter, iv_number_of_iterations): Likewise.
35714 * loop-unroll.c (decide_peel_completely, decide_peel_simple):
35715 Print using PRId64.
35716 * lto-streamer-out.c (write_symbol): Use uint64_t.
35717 * mcf.c (CAP_INFINITY): Use int64_t maximum.
35718 (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
35719 find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
35720 * modulo-sched.c (const_iteration_count): Use int64_t.
35721 (sms_schedule): Dump using PRId64.
35722 * predict.c (dump_prediction): Likewise.
35723 * pretty-print.h (pp_widest_integer): Remove.
35724 * profile.c (get_working_sets, is_edge_inconsistent,
35725 is_inconsistent, read_profile_edge_counts): Dump using PRId64.
35726 * tree-pretty-print.c (pp_double_int): Remove case handling
35727 HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
35728 * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
35729 and adjust users.
35730 (pass_optimize_bswap::execute): Remove restriction on hosts.
35731 * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
35732 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
35733 * tree.c (widest_int_cst_value): Remove.
35734 * tree.h (widest_int_cst_value): Likewise.
35735 * value-prof.c (dump_histogram_value): Print using PRId64.
35736 * gengtype.c (main): Also inject int64_t.
35737 * ggc-page.c (struct max_alignment): Use int64_t.
35738 * alloc-pool.c (struct allocation_object_def): Likewise.
35739 * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
35740 for computation.
35741 * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
35742 * doc/tm.texi: Regenerated.
35743 * gengtype-lex.l (IWORD): Handle [u]int64_t.
35744 * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
35745 * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
35746 mmix_output_register_setting): Use [u]int64_t in prototypes.
35747 * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
35748 mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
35749 mmix_output_octa, mmix_output_shifted_value): Adjust.
35750 (mmix_intval): Adjust. Remove unreachable case.
35751 * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
35752
35753 2014-05-26 Richard Biener <rguenther@suse.de>
35754
35755 * configure.ac: Drop __int64 type check. Insist that we
35756 found uint64_t and int64_t.
35757 * hwint.h (HOST_BITS_PER___INT64): Remove.
35758 (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
35759 (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
35760 (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
35761 (HOST_WIDEST_FAST_INT): Remove __int64 case.
35762 * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
35763 for dst_q_src_df_rms_cdt.
35764 * configure: Regenerate.
35765 * config.in: Likewise.
35766
35767 2014-05-26 Michael Tautschnig <mt@debian.org>
35768
35769 PR target/61249
35770 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
35771 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
35772
35773 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
35774
35775 PR rtl-optimization/61278
35776 * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
35777
35778 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
35779
35780 PR rtl-optimization/61220
35781 Part of PR rtl-optimization/61225
35782 * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
35783 insn; skip split_edge for a block with only one successor.
35784
35785 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
35786
35787 * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
35788 for variables.
35789
35790 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
35791
35792 * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
35793 (update_vtable_references): New function.
35794 (function_and_variable_visibility): Rewrite also vtable initializers.
35795 * varpool.c (cgraph_variable_initializer_availability): Remove assert.
35796
35797 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
35798
35799 * ggc.h (ggc_grow): New function.
35800 * ggc-none.c (ggc_grow): New function.
35801 * ggc-page.c (ggc_grow): Likewise.
35802
35803 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
35804
35805 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
35806 address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
35807 comdat_can_be_unshared_p, cgraph_externally_visible_p,
35808 varpool_externally_visible_p, can_replace_by_local_alias,
35809 update_visibility_by_resolution_info, function_and_variable_visibility,
35810 pass_data_ipa_function_and_variable_visibility,
35811 make_pass_ipa_function_and_variable_visibility,
35812 whole_program_function_and_variable_visibility,
35813 pass_data_ipa_whole_program_visibility,
35814 make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
35815 * cgraph.h (cgraph_local_node_p): Declare.
35816 * ipa-visibility.c: New file.
35817 * Makefile.in (OBJS): Add ipa-visiblity.o
35818
35819 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
35820
35821 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
35822 that var decl is available.
35823
35824 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
35825
35826 * tree-core.h (tree_decl_with_vis): Replace comdat_group by
35827 symtab_node pointer.
35828 * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
35829 (find_decls_types_r): Do not walk COMDAT_GROUP.
35830 * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
35831 * varasm.c (make_decl_one_only): Use set_comdat_group;
35832 create node if needed.
35833 * ipa-inline-transform.c (save_inline_function_body): Update
35834 way we decl->symtab mapping.
35835 * symtab.c (symtab_hash, hash_node, eq_node
35836 symtab_insert_node_to_hashtable): Remove.
35837 (symtab_register_node): Update.
35838 (symtab_unregister_node): Update.
35839 (symtab_get_node): Reimplement as inline function.
35840 (symtab_add_to_same_comdat_group): Update.
35841 (symtab_dissolve_same_comdat_group_list): Update.
35842 (dump_symtab_base): Update.
35843 (verify_symtab_base): Update.
35844 (symtab_make_decl_local): Update.
35845 (fixup_same_cpp_alias_visibility): Update.
35846 (symtab_nonoverwritable_alias): Update.
35847 * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
35848 * ipa.c (update_visibility_by_resolution_info): UPdate.
35849 * bb-reorder.c: Include cgraph.h
35850 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
35851 with comdat groups.
35852 * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
35853 * cgraph.c (cgraph_get_create_node): Update.
35854 * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
35855 and comdat_group_.
35856 (symtab_get_node): Make inline.
35857 (symtab_insert_node_to_hashtable): Remove.
35858 (symtab_can_be_discarded): Update.
35859 (decl_comdat_group): New function.
35860 * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
35861 Update.
35862 * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
35863 comdat group name.
35864 (read_comdat_group): New function.
35865 (input_node, input_varpool_node): Use it.
35866 * trans-mem.c (ipa_tm_create_version_alias): Update code creating
35867 comdat groups.
35868 * mips.c (mips_start_unique_function): Likewise.
35869 (ix86_code_end): Likewise.
35870 (rs6000_code_end): Likweise.
35871 * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
35872
35873 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
35874
35875 * gengtype-state.c (fatal_reading_state): Bring offline.
35876 * optabs.c (widening_optab_handler): Bring offline.
35877 * optabs.h (widening_optab_handler): Likewise.
35878 * final.c (get_attr_length_1): Likewise.
35879
35880 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
35881
35882 * sched-int.h (sd_iterator_cond): Manually tail recurse.
35883
35884 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
35885
35886 * config/rs6000/440.md (ppc440-integer): Include shift without dot.
35887 (ppc440-compare): Include shift with dot.
35888 * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
35889 * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
35890 without dot.
35891 * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
35892 without dot.
35893 (e6500_sfx2): Include it.
35894 * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
35895 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
35896 *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
35897 andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
35898 *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
35899 *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
35900 *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
35901 *lshiftrt_internal1le, *lshiftrt_internal1be,
35902 *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
35903 *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
35904 *rotldi3_internal10le, *rotldi3_internal10be,
35905 *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
35906 ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
35907 ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
35908 *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
35909 define_insns): Use type "shift" in the appropriate alternatives.
35910
35911 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
35912
35913 * config/rs6000/rs6000.md (type): Add "logical". Delete
35914 "fast_compare".
35915 (dot): Adjust comment.
35916 (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
35917 *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
35918 *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
35919 anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
35920 *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
35921 *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
35922 *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
35923 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
35924
35925 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
35926 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
35927 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
35928 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
35929 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
35930 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
35931 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
35932 * config/rs6000/8540.md (ppc8540_su): Adjust.
35933 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
35934 cell-cmp-microcoded): Adjust.
35935 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
35936 * config/rs6000/e500mc.md (e500mc_su): Adjust.
35937 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
35938 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
35939 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
35940 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
35941 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
35942 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
35943 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
35944 Adjust.
35945 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
35946 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
35947 Adjust. Adjust comment.
35948 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
35949 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
35950
35951 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
35952
35953 * config/rs6000/rs6000.md (type): Add "add".
35954 (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
35955 *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
35956 define_insns): Use it.
35957 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
35958
35959 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
35960 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
35961 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
35962 * config/rs6000/601.md (ppc601-integer): Adjust.
35963 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
35964 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
35965 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
35966 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
35967 * config/rs6000/8540.md (ppc8540_su): Adjust.
35968 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
35969 cell-cmp-microcoded): Adjust.
35970 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
35971 * config/rs6000/e500mc.md (e500mc_su): Adjust.
35972 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
35973 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
35974 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
35975 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
35976 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
35977 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
35978 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
35979 Adjust.
35980 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
35981 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
35982 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
35983 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
35984
35985 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
35986
35987 * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
35988 "delayed_compare", "var_delayed_compare".
35989 (var_shift): New attribute.
35990 (cell_micro): Adjust.
35991 (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
35992 *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
35993 rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
35994 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
35995 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
35996 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
35997 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
35998 *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
35999 *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
36000 *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
36001 *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
36002 rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
36003 *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
36004 *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
36005 *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
36006 *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
36007 *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
36008 *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
36009 *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
36010 *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
36011 *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
36012 *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
36013 *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
36014 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36015 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36016
36017 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36018 * config/rs6000/440.md (ppc440-integer): Adjust.
36019 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36020 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
36021 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36022 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36023 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36024 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36025 * config/rs6000/8540.md (ppc8540_su): Adjust.
36026 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36027 cell-cmp-microcoded): Adjust.
36028 * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
36029 * config/rs6000/e500mc.md (e500mc_su): Adjust.
36030 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
36031 e500mc64_delayed): Adjust.
36032 * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
36033 * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
36034 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36035 * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
36036 * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
36037 * config/rs6000/power6.md (power6-shift, power6-var-rotate,
36038 power6-delayed-compare, power6-var-delayed-compare): Adjust.
36039 * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
36040 * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
36041 Adjust comment.
36042 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36043 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
36044
36045 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
36046
36047 * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv". Add "div".
36048 (bits): New mode_attr.
36049 (idiv_ldiv): Delete mode_attr.
36050 (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
36051 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36052 rs6000_adjust_priority, is_nonpipeline_insn,
36053 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36054
36055 * config/rs6000/40x.md (ppc403-idiv): Adjust.
36056 * config/rs6000/440.md (ppc440-idiv): Adjust.
36057 * config/rs6000/476.md (ppc476-idiv): Adjust.
36058 * config/rs6000/601.md (ppc601-idiv): Adjust.
36059 * config/rs6000/603.md (ppc603-idiv): Adjust.
36060 * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
36061 ppc620-ldiv): Adjust.
36062 * config/rs6000/7450.md (ppc7450-idiv): Adjust.
36063 * config/rs6000/7xx.md (ppc750-idiv): Adjust.
36064 * config/rs6000/8540.md (ppc8540_divide): Adjust.
36065 * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
36066 * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
36067 * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
36068 * config/rs6000/e500mc.md (e500mc_divide): Adjust.
36069 * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
36070 * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
36071 * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
36072 * config/rs6000/mpc.md (mpccore-idiv): Adjust.
36073 * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
36074 * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
36075 * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
36076 * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
36077 * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
36078 * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
36079 * config/rs6000/titan.md (titan_fxu_div): Adjust.
36080
36081 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
36082
36083 * config/rs6000/rs6000.md (type): Delete "insert_word",
36084 "insert_dword". Add "insert".
36085 (size): Update comment.
36086 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36087 insn_must_be_first_in_group): Adjust.
36088 (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
36089 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
36090 *insvsi_internal6, insvdi_internal): Adjust.
36091
36092 * config/rs6000/40x.md (ppc403-integer): Adjust.
36093 * config/rs6000/440.md (ppc440-integer): Adjust.
36094 * config/rs6000/476.md (ppc476-simple-integer): Adjust.
36095 * config/rs6000/601.md (ppc601-integer): Adjust.
36096 * config/rs6000/603.md (ppc603-integer): Adjust.
36097 * config/rs6000/6xx.md (ppc604-integer): Adjust.
36098 * config/rs6000/7450.md (ppc7450-integer): Adjust.
36099 * config/rs6000/7xx.md (ppc750-integer): Adjust.
36100 * config/rs6000/8540.md (ppc8540_su): Adjust.
36101 * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
36102 * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
36103 * config/rs6000/e500mc.md (e500mc_su): Adjust.
36104 * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
36105 * config/rs6000/e5500.md (e5500_sfx): Adjust.
36106 * config/rs6000/e6500.md (e6500_sfx): Adjust.
36107 * config/rs6000/mpc.md (mpccore-integer): Adjust.
36108 * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
36109 * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
36110 * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
36111 * config/rs6000/power7.md (power7-integer): Adjust.
36112 * config/rs6000/power8.md (power8-1cyc): Adjust.
36113 * config/rs6000/rs64.md (rs64a-integer): Adjust.
36114 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
36115
36116 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
36117
36118 * config/rs6000/rs6000.md (type): Add "mul". Delete "imul",
36119 "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
36120 (size): New attribute.
36121 (dot): New attribute.
36122 (cell_micro): Adjust.
36123 (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
36124 umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
36125 *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
36126 umuldi3_highpart): Adjust.
36127 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36128 rs6000_adjust_priority, is_nonpipeline_insn,
36129 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36130
36131 * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
36132 ppc405-imul3): Adjust.
36133 * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
36134 * config/rs6000/476.md (ppc476-imul): Adjust.
36135 * config/rs6000/601.md (ppc601-imul): Adjust.
36136 * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
36137 * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
36138 ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
36139 * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
36140 * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
36141 Adjust.
36142 * config/rs6000/8540.md (ppc8540_multiply): Adjust.
36143 * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
36144 * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
36145 cell-imul): Adjust.
36146 * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
36147 * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
36148 * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
36149 * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
36150 * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
36151 * config/rs6000/mpc.md (mpccore-imul): Adjust.
36152 * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
36153 power4-lmul, power4-imul, power4-imul3): Adjust.
36154 * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
36155 power5-lmul, power5-imul, power5-imul3): Adjust.
36156 * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
36157 power6-lmul, power6-imul, power6-imul3): Adjust.
36158 * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
36159 * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
36160
36161 * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
36162 rs64a-lmul): Adjust.
36163 * config/rs6000/titan.md (titan_imul): Adjust.
36164
36165 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
36166
36167 * config/rs6000/rs6000.md (type): Add new value "halfmul".
36168 (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
36169 *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
36170 *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
36171 *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
36172 *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
36173 * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
36174 * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
36175 * config/rs6000/476.md (ppc476-imul): Add type halfmul.
36176 * config/rs6000/titan.md: Delete nonsensical comment.
36177 (titan_imul): Add type imul3.
36178 (titan_mulhw): Remove type imul3; add type halfmul.
36179
36180 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
36181
36182 * config/rs6000/rs6000.md (type): Reorder, reformat.
36183
36184 2014-05-23 Martin Jambor <mjambor@suse.cz>
36185
36186 PR tree-optimization/53787
36187 * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
36188 * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
36189 analysis_done, update all uses.
36190 * ipa-prop.c: Include domwalk.h
36191 (param_analysis_info): Removed.
36192 (param_aa_status): New type.
36193 (ipa_bb_info): Likewise.
36194 (func_body_info): Likewise.
36195 (ipa_get_bb_info): New function.
36196 (aa_overwalked): Likewise.
36197 (find_dominating_aa_status): Likewise.
36198 (parm_bb_aa_status_for_bb): Likewise.
36199 (parm_preserved_before_stmt_p): Changed to use new param AA info.
36200 (load_from_unmodified_param): Accept func_body_info as a parameter
36201 instead of parms_ainfo.
36202 (parm_ref_data_preserved_p): Changed to use new param AA info.
36203 (parm_ref_data_pass_through_p): Likewise.
36204 (ipa_load_from_parm_agg_1): Likewise. Update callers.
36205 (compute_complex_assign_jump_func): Changed to use new param AA info.
36206 (compute_complex_ancestor_jump_func): Likewise.
36207 (ipa_compute_jump_functions_for_edge): Likewise.
36208 (ipa_compute_jump_functions): Removed.
36209 (ipa_compute_jump_functions_for_bb): New function.
36210 (ipa_analyze_indirect_call_uses): Likewise, moved variable
36211 declarations down.
36212 (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
36213 and info, moved variable declarations down.
36214 (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
36215 node and info.
36216 (ipa_analyze_stmt_uses): Likewise.
36217 (ipa_analyze_params_uses): Removed.
36218 (ipa_analyze_params_uses_in_bb): New function.
36219 (ipa_analyze_controlled_uses): Likewise.
36220 (free_ipa_bb_info): Likewise.
36221 (analysis_dom_walker): New class.
36222 (ipa_analyze_node): Handle node-specific forbidden analysis,
36223 initialize and free func_body_info, use dominator walker.
36224 (ipcp_modif_dom_walker): New class.
36225 (ipcp_transform_function): Create and free func_body_info, use
36226 ipcp_modif_dom_walker, moved a lot of functionality there.
36227
36228 2014-05-23 Marek Polacek <polacek@redhat.com>
36229 Jakub Jelinek <jakub@redhat.com>
36230
36231 * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
36232 * gcc.c (sanitize_spec_function): Likewise.
36233 * convert.c (convert_to_integer): Include "ubsan.h". Add
36234 floating-point to integer instrumentation.
36235 * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
36236 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
36237 SANITIZE_NONDEFAULT.
36238 * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
36239 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
36240 BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
36241 * ubsan.c: Include "realmpfr.h" and "dfp.h".
36242 (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
36243 (ubsan_type_descriptor): Set tkind to 0xffff for types other than
36244 float/double/long double.
36245 (ubsan_instrument_float_cast): New function.
36246 * ubsan.h (ubsan_instrument_float_cast): Declare.
36247
36248 2014-05-23 Jiong Wang <jiong.wang@arm.com>
36249
36250 * config/aarch64/predicates.md (aarch64_call_insn_operand): New
36251 predicate.
36252 * config/aarch64/constraints.md ("Ucs", "Usf"): New constraints.
36253 * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
36254 Adjust for tailcalling through registers.
36255 * config/aarch64/aarch64.h (enum reg_class): New caller save
36256 register class.
36257 (REG_CLASS_NAMES): Likewise.
36258 (REG_CLASS_CONTENTS): Likewise.
36259 * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
36260 Allow tailcalling without decls.
36261
36262 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
36263
36264 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
36265 Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
36266
36267 * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
36268 gsi, and variables v_* to v*.
36269
36270 2014-05-23 Eric Botcazou <ebotcazou@adacore.com>
36271
36272 * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
36273
36274 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
36275
36276 * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
36277 * omp-low.c: Update accordingly.
36278
36279 * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
36280 for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
36281 GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
36282 GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
36283 GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
36284 GF_OMP_TARGET_KIND_UPDATE.
36285
36286 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
36287 Explicitly enumerate the expected region types.
36288
36289 2014-05-23 Paul Eggert <eggert@cs.ucla.edu>
36290
36291 PR other/56955
36292 * doc/extend.texi (Function Attributes): Fix __attribute__ ((malloc))
36293 documentation; the old documentation didn't clearly state the
36294 constraints on the contents of the pointed-to storage.
36295
36296 2014-05-23 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
36297
36298 Fix bootstrap error on ia64
36299 * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
36300 Return default value.
36301
36302 2014-05-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
36303
36304 PR tree-optimization/54733
36305 * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
36306 (CMPNOP): Define.
36307 (find_bswap_or_nop_load): New.
36308 (find_bswap_1): Renamed to ...
36309 (find_bswap_or_nop_1): This. Also add support for memory source.
36310 (find_bswap): Renamed to ...
36311 (find_bswap_or_nop): This. Also add support for memory source and
36312 detection of bitwise operations equivalent to load in target
36313 endianness.
36314 (execute_optimize_bswap): Likewise. Also move its leading comment back
36315 in place and split statement transformation into ...
36316 (bswap_replace): This.
36317
36318 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
36319
36320 PR rtl-optimization/61215
36321 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
36322 simplify_gen_subreg until final substitution.
36323
36324 2014-05-23 Alan Modra <amodra@gmail.com>
36325
36326 PR target/61231
36327 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
36328 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
36329 Use "Y" constraint rather than "m".
36330
36331 2014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
36332
36333 * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
36334 define.
36335 * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
36336 New function declaration.
36337 * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
36338 AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
36339 AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
36340 (aarch64_init_builtins) : Initialize builtins
36341 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
36342 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
36343 (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
36344 __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
36345 and __builtins_aarch64_set_fpsr.
36346 (aarch64_atomic_assign_expand_fenv): New function.
36347 * config/aarch64/aarch64.md (set_fpcr): New pattern.
36348 (get_fpcr) : Likewise.
36349 (set_fpsr) : Likewise.
36350 (get_fpsr) : Likewise.
36351 (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
36352 and UNSPECV_SET_FPSR.
36353 * doc/extend.texi (AARCH64 Built-in Functions) : Document
36354 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
36355 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
36356
36357 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
36358
36359 PR rtl-optimization/60969
36360 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
36361 constraints. Set up mem cost for NO_REGS case.
36362
36363 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
36364
36365 * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
36366
36367 2012-05-22 Bernd Schmidt <bernds@codesourcery.com>
36368
36369 * config/darwin.c: Include "lto-section-names.h".
36370 (LTO_SEGMENT_NAME): Don't define.
36371 * config/i386/winnt.c: Include "lto-section-names.h".
36372 * lto-streamer.c: Include "lto-section-names.h".
36373 * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
36374 * lto-wrapper.c: Include "lto-section-names.h".
36375 (LTO_SECTION_NAME_PREFIX): Don't define.
36376 * lto-section-names.h: New file.
36377 * cgraphunit.c: Include "lto-section-names.h".
36378
36379 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
36380
36381 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
36382
36383 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
36384
36385 PR target/61208
36386 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
36387
36388 2014-05-22 Nick Clifton <nickc@redhat.com>
36389
36390 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
36391
36392 2014-05-22 Eric Botcazou <ebotcazou@adacore.com>
36393
36394 * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
36395 -> (T)A transformation to integer types.
36396
36397 2014-05-22 Teresa Johnson <tejohnson@google.com>
36398
36399 * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
36400 (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
36401 (gcov_rewrite): Use gcov_nonruntime_assert.
36402 (gcov_open): Ditto.
36403 (gcov_write_words): Ditto.
36404 (gcov_write_length): Ditto.
36405 (gcov_read_words): Use gcov_nonruntime_assert, and remove
36406 gcc_assert from IN_LIBGCOV code.
36407 (gcov_read_summary): Use gcov_error to flag profile corruption.
36408 (gcov_sync): Use gcov_nonruntime_assert.
36409 (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
36410 (gcov_histo_index): Use gcov_nonruntime_assert.
36411 (static void gcov_histogram_merge): Ditto.
36412 (compute_working_sets): Ditto.
36413 * gcov-io.h (gcov_nonruntime_assert): Define.
36414 (gcov_error): Define for !IN_LIBGCOV
36415
36416 2014-05-22 Richard Biener <rguenther@suse.de>
36417
36418 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
36419 BUILT_IN_REALLOC like BUILT_IN_STRDUP.
36420 (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
36421 and deallocation site.
36422 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
36423 Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
36424 passing through the incoming points-to set.
36425 (handle_lhs_call): Use flags argument instead of recomputing it.
36426 (find_func_aliases_for_call): Call handle_lhs_call with proper
36427 call return flags.
36428
36429 2014-05-22 Jakub Jelinek <jakub@redhat.com>
36430
36431 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
36432 all padding bits in REAL_VALUE_TYPE are cleared.
36433
36434 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
36435
36436 Cleanup and improve multipass_dfa_lookahead_guard
36437 * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
36438 (core2i7_first_cycle_multipass_begin,)
36439 (core2i7_first_cycle_multipass_issue,)
36440 (core2i7_first_cycle_multipass_backtrack): Update signature.
36441 * config/ia64/ia64.c
36442 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
36443 (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
36444 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
36445 hook definition.
36446 (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
36447 ia64_first_cycle_multipass_dfa_lookahead_guard_spec. Update return
36448 values.
36449 * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
36450 return values.
36451 * doc/tm.texi: Regenerate.
36452 * doc/tm.texi.in
36453 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
36454 * haifa-sched.c (ready_try): Make signed to allow negative values.
36455 (rebug_ready_list_1): Update.
36456 (choose_ready): Simplify.
36457 (sched_extend_ready_list): Update.
36458
36459 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
36460
36461 Remove IA64 speculation tweaking flags
36462 * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
36463 speculation tuning flags.
36464 (msched-prefer-non-data-spec-insns,)
36465 (msched-prefer-non-control-spec-insns): Obsolete options.
36466 * haifa-sched.c (choose_ready): Remove handling of
36467 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
36468 * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
36469 and PREFER_NON_DATA_SPEC.
36470 * sel-sched.c (process_spec_exprs): Remove handling of
36471 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
36472
36473 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
36474
36475 Improve scheduling debug output
36476 * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
36477 (advance_one_cycle): Update.
36478 (schedule_insn, queue_to_ready): Add debug printouts.
36479 (debug_ready_list_1): New static function.
36480 (debug_ready_list): Update.
36481 (max_issue): Add debug printouts.
36482 (dump_insn_stream): New static function.
36483 (schedule_block): Use it. Also better indent printouts.
36484
36485 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
36486
36487 Fix sched_insn debug counter
36488 * haifa-sched.c (schedule_insn): Update.
36489 (struct haifa_saved_data): Add nonscheduled_insns_begin.
36490 (save_backtrack_point, restore_backtrack_point): Update.
36491 (first_nonscheduled_insn): New static function.
36492 (queue_to_ready, choose_ready): Use it.
36493 (schedule_block): Init nonscheduled_insns_begin.
36494 (sched_emit_insn): Update.
36495
36496
36497 2014-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
36498
36499 * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
36500 to GENERAL_REGS.
36501 (aarch64_secondary_reload) : LikeWise.
36502 (aarch64_class_max_nregs) : Remove CORE_REGS.
36503 * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
36504 (REG_CLASS_NAMES) : Likewise.
36505 (REG_CLASS_CONTENTS) : LikeWise.
36506 (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
36507
36508 2014-05-21 Guozhi Wei <carrot@google.com>
36509
36510 PR target/61202
36511 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
36512 constraint.
36513 (vqdmulhq_n_s16): Likewise.
36514
36515 2014-05-21 Segher Boessenkool <segher@kernel.crashing.org>
36516
36517 * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
36518
36519 2014-05-21 Marek Polacek <polacek@redhat.com>
36520
36521 PR sanitizer/61272
36522 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
36523
36524 2014-05-21 Martin Jambor <mjambor@suse.cz>
36525
36526 * doc/invoke.texi (Optimize Options): Document parameters
36527 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
36528 ipa-cp-array-index-hint-bonus.
36529
36530 2014-05-21 Mark Wielaard <mjw@redhat.com>
36531
36532 PR debug/16063
36533 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
36534 version >= 3 or not strict DWARF.
36535 * langhooks.h (struct lang_hooks_for_types): Add
36536 enum_underlying_base_type.
36537 * langhooks.c (lhd_enum_underlying_base_type): New function.
36538 * gcc/langhooks.h (struct lang_hooks_for_types): Add
36539 enum_underlying_base_type.
36540 * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
36541 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
36542 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
36543
36544 2014-05-21 Richard Biener <rguenther@suse.de>
36545
36546 * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
36547
36548 2014-05-21 John Marino <gnugcc@marino.st>
36549
36550 * config.gcc (*-*-dragonfly*): New target.
36551 * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
36552 * configure: Regenerate.
36553 * config/dragonfly-stdint.h: New.
36554 * config/dragonfly.h: New.
36555 * config/dragonfly.opt: New.
36556 * config/i386/dragonfly.h: New.
36557 * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
36558
36559 2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
36560
36561 * tree.def (VOID_CST): New.
36562 * tree-core.h (TI_VOID): New.
36563 * tree.h (void_node): New.
36564 * tree.c (tree_node_structure_for_code, tree_code_size)
36565 (iterative_hash_expr): Handle VOID_CST.
36566 (build_common_tree_nodes): Initialize void_node.
36567
36568 2014-05-21 Bernd Schmidt <bernds@codesourcery.com>
36569
36570 * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
36571 functions.
36572 (reload, calculate_needs_all_insns, reload_as_needed): Use them.
36573
36574 * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
36575 more places.
36576
36577 * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
36578 flag_reorder_blocks_and_partition.
36579 * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
36580
36581 2014-05-21 Oleg Endo <olegendo@gcc.gnu.org>
36582
36583 PR target/54236
36584 * config/sh/sh.md (*addc_r_1): Rename to addc_t_r. Remove empty
36585 constraints.
36586 (*addc_r_t): Add new insn_and_split.
36587
36588 2014-05-21 Jakub Jelinek <jakub@redhat.com>
36589
36590 PR middle-end/61252
36591 * omp-low.c (handle_simd_reference): New function.
36592 (lower_rec_input_clauses): Use it. Defer adding reference
36593 initialization even for reduction without placeholder if in simd,
36594 handle it properly later on.
36595
36596 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
36597
36598 PR tree-optimization/60899
36599 * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
36600 assume all static symbols will have definition wile parsing and
36601 check the do have definition later in compilation; check that
36602 variable referring symbol will be output before concluding that
36603 reference is safe; be conservative for referring local statics;
36604 be more precise about when comdat is output in other partition.
36605
36606 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
36607
36608 PR bootstrap/60984
36609 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
36610 parameter.
36611 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
36612 (ipa_inline): Loop inline_to_all_callers until no more aliases
36613 are removed.
36614
36615 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
36616
36617 * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
36618 set writeonly flag only for vars actually written to.
36619
36620 2014-05-20 Dehao Chen <dehao@google.com>
36621
36622 * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
36623 and callee count to get clone count.
36624 * tree-inline.c (expand_call_inline): Use callee count instead of bb
36625 count in copy_body.
36626
36627 2014-05-20 Richard Sandiford <rdsandiford@googlemail.com>
36628
36629 PR rtl-optimization/61243
36630 * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
36631
36632 2014-05-20 Xinliang David Li <davidxl@google.com>
36633
36634 * cgraphunit.c (walk_polymorphic_call_targets): Add
36635 dbgcnt and fopt-info support.
36636 * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
36637 * ipa-devirt.c (ipa_devirt): Ditto.
36638 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
36639 * ipa.c (walk_polymorphic_call_targets): Ditto.
36640 * gimple-fold.c (fold_gimple_assign): Ditto.
36641 (gimple_fold_call): Ditto.
36642 * dbgcnt.def: New counter.
36643
36644 2014-05-20 DJ Delorie <dj@redhat.com>
36645
36646 * config/msp430/msp430.md (split): Don't allow subregs when
36647 splitting SImode adds.
36648 (andneghi): Fix subtraction logic.
36649 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
36650
36651 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
36652
36653 * tree.h (DECL_ONE_ONLY): Return true only for externally visible
36654 symbols.
36655 * except.c (switch_to_exception_section, resolve_unique_section,
36656 get_named_text_section, default_function_rodata_section,
36657 align_variable, get_block_for_decl, default_section_type_flags):
36658 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
36659 * symtab.c (symtab_add_to_same_comdat_group,
36660 symtab_make_decl_local, fixup_same_cpp_alias_visibility,
36661 symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
36662 Likewise.
36663 * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
36664 * bb-reorder.c (pass_partition_blocks::gate): Likewise.
36665 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
36666 (c6x_function_in_section_p): Likewise.
36667 * config/darwin.c (machopic_select_section): Likewise.
36668 * config/arm/arm.c (arm_function_in_section_p): Likewise.
36669 * config/mips/mips.c (mips_function_rodata_section): Likewise.
36670 * config/mep/mep.c (mep_select_section): LIkewise.
36671 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
36672
36673 2014-05-20 Eric Botcazou <ebotcazou@adacore.com>
36674
36675 * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
36676 EH region of calls to pure functions that can throw an exception.
36677 * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
36678 (copy_reference_ops_from_call): Also copy the EH region of the call if
36679 it can throw an exception.
36680
36681 2014-05-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36682
36683 * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
36684 nested VEC_SELECTs that are inverses of each other.
36685
36686 2014-05-20 Richard Biener <rguenther@suse.de>
36687
36688 * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
36689 (extract_and_process_scc_for_name): not here.
36690 (cond_dom_walker::before_dom_children): Only process
36691 stmts that end the BB in interesting ways.
36692 (run_scc_vn): Mark param uses as visited.
36693
36694 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36695
36696 * config/arm/arm.md (arith_shiftsi): Do not predicate for
36697 arm_restrict_it.
36698
36699 2014-05-20 Nick Clifton <nickc@redhat.com>
36700
36701 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
36702 (msp430_gimplify_va_arg_expr): New function.
36703 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
36704
36705 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
36706 operand 0 in order to prevent confusion about the number of
36707 registers involved.
36708
36709 2014-05-20 Richard Biener <rguenther@suse.de>
36710
36711 PR tree-optimization/61221
36712 * tree-ssa-pre.c (el_to_update): Remove.
36713 (eliminate_dom_walker::before_dom_children): Handle released
36714 VDEFs by value-numbering them to the associated VUSE. Update
36715 stmt immediately for substituted call address.
36716 (eliminate): Remove delayed stmt updating code.
36717 * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
36718 possibly late re-numbered vuses.
36719 (vn_reference_lookup_2): Adjust.
36720 (vn_reference_lookup_pieces): Likewise.
36721 (vn_reference_lookup): Likewise.
36722
36723 2014-05-20 Richard Biener <rguenther@suse.de>
36724
36725 * config.gcc: Remove need_64bit_hwint.
36726 * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
36727 * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
36728 it to be true.
36729 * config.in: Regenerate.
36730 * configure: Likewise.
36731
36732 2014-05-19 David Wohlferd <dw@LimeGreenSocks.com>
36733
36734 * doc/extend.texi: Create Label Attributes section,
36735 move all label attributes into it and reference it.
36736
36737 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
36738
36739 * arm.c (thumb1_reorg): When scanning backwards skip anything
36740 that's not a proper insn.
36741
36742 2014-05-19 Richard Biener <rguenther@suse.de>
36743
36744 PR tree-optimization/61221
36745 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
36746 Do nothing for unreachable blocks.
36747 * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
36748 Improve unreachability detection.
36749
36750 2014-05-19 Richard Biener <rguenther@suse.de>
36751
36752 PR tree-optimization/61209
36753 * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
36754
36755 2014-05-19 Nick Clifton <nickc@redhat.com>
36756
36757 * except.c (init_eh): Fix computation of builtin setjmp buffer
36758 size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
36759
36760 2014-05-19 Richard Biener <rguenther@suse.de>
36761
36762 PR tree-optimization/61184
36763 * tree-vrp.c (is_negative_overflow_infinity): Use
36764 TREE_OVERFLOW_P and do that check first.
36765 (is_positive_overflow_infinity): Likewise.
36766 (is_overflow_infinity): Likewise.
36767 (vrp_operand_equal_p): Properly treat operands with
36768 differing overflow as not equal.
36769
36770 2014-05-19 Bernd Schmidt <bernds@codesourcery.com>
36771
36772 * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
36773 shift simplification where it was intended.
36774
36775 2014-05-19 Christian Bruel <christian.bruel@st.com>
36776
36777 PR target/61195
36778 * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
36779
36780 2014-05-19 Richard Sandiford <r.sandiford@uk.ibm.com>
36781
36782 PR target/61084
36783 * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
36784 than wide_int.
36785
36786 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
36787
36788 * reg-notes.def (CROSSING_JUMP): Likewise.
36789 * rtl.h (rtx_def): Update comment for jump flag.
36790 (CROSSING_JUMP_P): Define.
36791 * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
36792 of a REG_CROSSING_JUMP note.
36793 * cfghooks.c (tidy_fallthru_edges): Likewise.
36794 * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
36795 * emit-rtl.c (try_split): Likewise.
36796 * haifa-sched.c (sched_create_recovery_edges): Likewise.
36797 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
36798 * jump.c (redirect_jump_2): Likewise.
36799 * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
36800 (relax_delay_slots): Likewise.
36801 * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
36802 (bbit_di): Likewise.
36803 * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
36804 * config/sh/sh.md (jump_compact): Likewise.
36805 * bb-reorder.c (rotate_loop): Likewise.
36806 (pass_duplicate_computed_gotos::execute): Likewise.
36807 (add_reg_crossing_jump_notes): Rename to...
36808 (update_crossing_jump_flags): ...this.
36809 (pass_partition_blocks::execute): Update accordingly.
36810
36811 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
36812
36813 * tree.h: Remove extraneous template <>.
36814
36815 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
36816
36817 * ipa.c (symtab_remove_unreachable_nodes): Remove
36818 symbol from comdat group if its body was eliminated.
36819 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
36820 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
36821 (symtab_unregister_node): ... this one.
36822 (verify_symtab_base): More strict checking of comdats.
36823 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
36824
36825 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
36826
36827 * tree-pass.h (make_pass_ipa_comdats): New pass.
36828 * timevar.def (TV_IPA_COMDATS): New timevar.
36829 * passes.def (pass_ipa_comdats): Add.
36830 * Makefile.in (OBJS): Add ipa-comdats.o
36831 * ipa-comdats.c: New file.
36832
36833 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
36834
36835 * ipa.c (update_visibility_by_resolution_info): New function.
36836 (function_and_variable_visibility): Use it.
36837
36838 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
36839
36840 * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
36841 New functions.
36842 (FOR_EACH_DEFINED_SYMBOL): New macro.
36843 (varpool_first_static_initializer, varpool_next_static_initializer,
36844 varpool_first_defined_variable, varpool_next_defined_variable):
36845 Fix comments.
36846 (symtab_in_same_comdat_p): Correctly deal with inline functions.
36847
36848 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
36849
36850 * ggc-page.c (ggc_handle_finalizers): Add comment.
36851
36852 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
36853
36854 * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
36855 * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
36856 (ggc_internal_cleared_alloc): Likewise.
36857 * ggc-page.c (finalizer): New class.
36858 (vec_finalizer): Likewise.
36859 (globals::finalizers): New member.
36860 (globals::vec_finalizers): Likewise.
36861 (ggc_internal_alloc): Record the finalizer if any for the block being
36862 allocated.
36863 (ggc_handle_finalizers): New function.
36864 (ggc_collect): Call ggc_handle_finalizers.
36865 * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
36866 finalizer.
36867 (ggc_internal_cleared_alloc): Likewise.
36868 (finalize): New function.
36869 (need_finalization_p): Likewise.
36870 (ggc_alloc): Install the type's destructor as the finalizer if it
36871 might do something.
36872 (ggc_cleared_alloc): Likewise.
36873 (ggc_vec_alloc): Likewise.
36874 (ggc_cleared_vec_alloc): Likewise.
36875
36876 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
36877
36878 * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
36879
36880 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
36881
36882 * alias.c (record_alias_subset): Adjust.
36883 * bitmap.c (bitmap_element_allocate): Likewise.
36884 (bitmap_gc_alloc_stat): Likewise.
36885 * cfg.c (init_flow): Likewise.
36886 (alloc_block): Likewise.
36887 (unchecked_make_edge): Likewise.
36888 * cfgloop.c (alloc_loop): Likewise.
36889 (flow_loops_find): Likewise.
36890 (rescan_loop_exit): Likewise.
36891 * cfgrtl.c (init_rtl_bb_info): Likewise.
36892 * cgraph.c (insert_new_cgraph_node_version): Likewise.
36893 (cgraph_allocate_node): Likewise.
36894 (cgraph_create_edge_1): Likewise.
36895 (cgraph_allocate_init_indirect_info): Likewise.
36896 * cgraphclones.c (cgraph_clone_edge): Likewise.
36897 * cgraphunit.c (add_asm_node): Likewise.
36898 (init_lowered_empty_function): Likewise.
36899 * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
36900 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
36901 (alpha_use_linkage): Likewise.
36902 * config/arc/arc.c (arc_init_machine_status): Likewise.
36903 * config/arm/arm.c (arm_init_machine_status): Likewise.
36904 * config/avr/avr.c (avr_init_machine_status): Likewise.
36905 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
36906 * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
36907 * config/cris/cris.c (cris_init_machine_status): Likewise.
36908 * config/darwin.c (machopic_indirection_name): Likewise.
36909 (darwin_build_constant_cfstring): Likewise.
36910 (darwin_enter_string_into_cfstring_table): Likewise.
36911 * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
36912 * config/frv/frv.c (frv_init_machine_status): Likewise.
36913 * config/i386/i386.c (get_dllimport_decl): Likewise.
36914 (ix86_init_machine_status): Likewise.
36915 (assign_386_stack_local): Likewise.
36916 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
36917 (i386_pe_maybe_record_exported_symbol): Likewise.
36918 (i386_pe_record_stub): Likewise.
36919 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
36920 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
36921 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
36922 (m32c_note_pragma_address): Likewise.
36923 * config/mep/mep.c (mep_init_machine_status): Likewise.
36924 (mep_note_pragma_flag): Likewise.
36925 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
36926 (mips16_local_alias): Likewise.
36927 (mips_init_machine_status): Likewise.
36928 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
36929 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
36930 * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
36931 * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
36932 * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
36933 * config/pa/pa.c (pa_init_machine_status): Likewise.
36934 (pa_get_deferred_plabel): Likewise.
36935 * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
36936 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
36937 (rs6000_init_machine_status): Likewise.
36938 (output_toc): Likewise.
36939 * config/s390/s390.c (s390_init_machine_status): Likewise.
36940 * config/score/score.c (score_output_external): Likewise.
36941 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
36942 * config/spu/spu.c (spu_init_machine_status): Likewise.
36943 * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
36944 * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
36945 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
36946 * coverage.c (coverage_end_function): Likewise.
36947 * dbxout.c (dbxout_init): Likewise.
36948 * doc/gty.texi: Don't mention variable_size attribute.
36949 * dwarf2cfi.c (new_cfi): Adjust.
36950 (new_cfi_row): Likewise.
36951 (copy_cfi_row): Likewise.
36952 (create_cie_data): Likewise.
36953 * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
36954 (new_loc_descr): Likewise.
36955 (find_AT_string_in_table): Likewise.
36956 (add_addr_table_entry): Likewise.
36957 (new_die): Likewise.
36958 (add_var_loc_to_decl): Likewise.
36959 (clone_die): Likewise.
36960 (clone_as_declaration): Likewise.
36961 (break_out_comdat_types): Likewise.
36962 (new_loc_list): Likewise.
36963 (add_loc_descr_to_each): Likewise.
36964 (add_location_or_const_value_attribute): Likewise.
36965 (add_linkage_name): Likewise.
36966 (lookup_filename): Likewise.
36967 (dwarf2out_var_location): Likewise.
36968 (new_line_info_table): Likewise.
36969 (dwarf2out_init): Likewise.
36970 (mem_loc_descriptor): Likewise.
36971 (loc_descriptor): Likewise.
36972 (add_const_value_attribute): Likewise.
36973 (tree_add_const_value_attribute): Likewise.
36974 (comp_dir_string): Likewise.
36975 (dwarf2out_vms_debug_main_pointer): Likewise.
36976 (string_cst_pool_decl): Likewise.
36977 * emit-rtl.c (set_mem_attrs): Likewise.
36978 (get_reg_attrs): Likewise.
36979 (start_sequence): Likewise.
36980 (init_emit): Likewise.
36981 (init_emit_regs): Likewise.
36982 * except.c (init_eh_for_function): Likewise.
36983 (gen_eh_region): Likewise.
36984 (gen_eh_region_catch): Likewise.
36985 (gen_eh_landing_pad): Likewise.
36986 (add_call_site): Likewise.
36987 * function.c (add_frame_space): Likewise.
36988 (insert_temp_slot_address): Likewise.
36989 (assign_stack_temp_for_type): Likewise.
36990 (get_hard_reg_initial_val): Likewise.
36991 (allocate_struct_function): Likewise.
36992 (prepare_function_start): Likewise.
36993 (types_used_by_var_decl_insert): Likewise.
36994 * gengtype.c (variable_size_p): Remove function.
36995 (enum alloc_quantity): Remove enum.
36996 (write_typed_alloc_def): Remove function.
36997 (write_typed_struct_alloc_def): Likewise.
36998 (write_typed_typedef_alloc_def): Likewise.
36999 (write_typed_alloc_defns): Likewise.
37000 (main): Adjust.
37001 * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
37002 (ggc_cleared_alloc_ptr_array_two_args): Likewise.
37003 * ggc.h (ggc_alloc): new function.
37004 (ggc_cleared_alloc): Likewise.
37005 (ggc_vec_alloc): Template on type of vector element, and remove
37006 element size argument.
37007 (ggc_cleared_vec_alloc): Likewise.
37008 * gimple.c (gimple_build_omp_for): Adjust.
37009 (gimple_copy): Likewise.
37010 * ipa-cp.c (get_replacement_map): Likewise.
37011 (find_aggregate_values_for_callers_subset): Likewise.
37012 (known_aggs_to_agg_replacement_list): Likewise.
37013 * ipa-devirt.c (get_odr_type): Likewise.
37014 * ipa-prop.c (ipa_node_duplication_hook): Likewise.
37015 (read_agg_replacement_chain): Likewise.
37016 * loop-iv.c (get_simple_loop_desc): Likewise.
37017 * lto-cgraph.c (input_node_opt_summary): Likewise.
37018 * lto-section-in.c (lto_new_in_decl_state): Likewise.
37019 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
37020 (input_eh_region): Likewise.
37021 (input_eh_lp): Likewise.
37022 (input_cfg): Likewise.
37023 * optabs.c (set_optab_libfunc): Likewise.
37024 (init_tree_optimization_optabs): Likewise.
37025 (set_conv_libfunc): Likewise.
37026 * passes.c (do_per_function_toporder): Likewise.
37027 * rtl.h: Don't use variable_size gty attribute.
37028 * sese.c (if_region_set_false_region): Adjust.
37029 * stringpool.c (gt_pch_save_stringpool): Likewise.
37030 * target-globals.c (save_target_globals): Likewise.
37031 * toplev.c (general_init): Likewise.
37032 * trans-mem.c (record_tm_replacement): Likewise.
37033 (split_bb_make_tm_edge): Likewise.
37034 * tree-cfg.c (move_sese_region_to_fn): Likewise.
37035 * tree-data-ref.h (lambda_vector_new): Likewise.
37036 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
37037 * tree-iterator.c (tsi_link_before): Likewise.
37038 (tsi_link_after): Likewise.
37039 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
37040 * tree-ssa-loop-niter.c (record_estimate): Likewise.
37041 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
37042 * tree-ssa-operands.h: Don't use variable_size gty attribute.
37043 * tree-ssa.c (init_tree_ssa): Adjust.
37044 * tree-ssanames.c (set_range_info): Likewise.
37045 (get_ptr_info): Likewise.
37046 (duplicate_ssa_name_ptr_info): Likewise.
37047 (duplicate_ssa_name_range_info): Likewise.
37048 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
37049 (unpack_ts_fixed_cst_value_fields): Likewise.
37050 * tree.c (build_fixed): Likewise.
37051 (build_real): Likewise.
37052 (build_string): Likewise.
37053 (decl_priority_info): Likewise.
37054 (decl_debug_expr_insert): Likewise.
37055 (decl_value_expr_insert): Likewise.
37056 (decl_debug_args_insert): Likewise.
37057 (type_hash_add): Likewise.
37058 (build_omp_clause): Likewise.
37059 * ubsan.c (decl_for_type_insert): Likewise.
37060 * varasm.c (get_unnamed_section): Likewise.
37061 (get_noswitch_section): Likewise.
37062 (get_section): Likewise.
37063 (get_block_for_section): Likewise.
37064 (create_block_symbol): Likewise.
37065 (build_constant_desc): Likewise.
37066 (create_constant_pool): Likewise.
37067 (force_const_mem): Likewise.
37068 (record_tm_clone_pair): Likewise.
37069 * varpool.c (varpool_create_empty_node): Likewise.
37070
37071 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
37072
37073 * dwarf2out.c (tree_add_const_value_attribute): Call
37074 ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
37075 * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
37076 instead of ggc_internal_<x>alloc_stat.
37077 * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
37078 (ggc_realloc): Likewise.
37079 * ggc-none.c (ggc_internal_alloc): Likewise.
37080 (ggc_internal_cleared_alloc): Likewise.
37081 * ggc-page.c: Likewise.
37082 * ggc.h (ggc_internal_alloc_stat): Likewise.
37083 (ggc_internal_alloc): Remove macro.
37084 (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
37085 (ggc_internal_cleared_alloc): Remove macro.
37086 (GGC_RESIZEVEC): Adjust.
37087 (ggc_resizevar): Remove macro.
37088 (ggc_internal_vec_alloc_stat): Drop _stat suffix.
37089 (ggc_internal_cleared_vec_alloc_stat): Likewise.
37090 (ggc_internal_vec_cleared_alloc): Remove macro.
37091 (ggc_alloc_atomic_stat): Drop _stat suffix.
37092 (ggc_alloc_atomic): Remove macro.
37093 (ggc_alloc_cleared_atomic): Remove macro.
37094 (ggc_alloc_string_stat): Drop _stat suffix.
37095 (ggc_alloc_string): Remove macro.
37096 (ggc_alloc_rtx_def_stat): Adjust.
37097 (ggc_alloc_tree_node_stat): Likewise.
37098 (ggc_alloc_cleared_tree_node_stat): Likewise.
37099 (ggc_alloc_cleared_gimple_statement_stat): Likewise.
37100 (ggc_alloc_cleared_simd_clone_stat): Likewise.
37101 * gimple.c (gimple_build_omp_for): Likewise.
37102 (gimple_copy): Likewise.
37103 * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
37104 * toplev.c (realloc_for_line_map): Adjust.
37105 * tree-data-ref.h (lambda_vector_new): Likewise.
37106 * tree-phinodes.c (allocate_phi_node): Likewise.
37107 * tree.c (grow_tree_vec_stat): Likewise.
37108 * vec.h (va_gc::reserve): Adjust.
37109
37110 2014-05-17 Ajit Agarwal <ajitkum@xilinx.com>
37111
37112 * config/microblaze/microblaze.c (break_handler): New Declaration.
37113 (microblaze_break_function_p,microblaze_is_break_handler): New.
37114 (compute_frame_size): Use microblaze_break_function_p.
37115 Add the test of break_handler.
37116 (microblaze_function_prologue) : Add the test of variable
37117 break_handler. Check the fnname by BREAK_HANDLER_NAME.
37118 (microblaze_function_epilogue) : Add the test of break_handler.
37119 (microblaze_globalize_label) : Add the test of break_handler.
37120 Check the name by BREAK_HANDLER_NAME.
37121
37122 * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
37123
37124 * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
37125 microblaze_is_break_handler test.
37126 (call_internal1,call_value_intern): Use microblaze_break_function_p.
37127 Use SYMBOL_REF_DECL.
37128
37129 * config/microblaze/microblaze-protos.h
37130 (microblaze_break_function_p,microblaze_is_break_handler):
37131 New Declaration.
37132
37133 * doc/extend.texi (MicroBlaze break_handler Functions): Document
37134 new MicroBlaze break_handler functions.
37135
37136 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
37137
37138 * doc/extend.texi (Size of an asm): Move node text according
37139 to its @menu entry position.
37140
37141 2014-05-17 Marc Glisse <marc.glisse@inria.fr>
37142
37143 PR tree-optimization/61140
37144 PR tree-optimization/61150
37145 PR tree-optimization/61197
37146 * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
37147
37148 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
37149
37150 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
37151
37152 2014-05-17 Richard Sandiford <r.sandiford@uk.ibm.com>
37153
37154 * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
37155 __SIZEOF_INT128__ is defined.
37156
37157 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
37158
37159 * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
37160 (rs6000_delegitimize_address): Use it.
37161
37162 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
37163
37164 * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
37165 inplace argument. Store the new address in the original MEM when true.
37166 * emit-rtl.c (change_address_1): Likewise.
37167 (adjust_address_1, adjust_automodify_address_1, offset_address):
37168 Update accordingly.
37169 * rtl.h (plus_constant): Add an inplace argument.
37170 * explow.c (plus_constant): Likewise. Try to reuse the original PLUS
37171 when true. Avoid generating (plus X (const_int 0)).
37172 * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
37173 in-place. Pass true to plus_constant.
37174 (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
37175
37176 2014-05-16 Dehao Chen <dehao@google.com>
37177
37178 * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
37179
37180 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
37181
37182 PR target/54089
37183 * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
37184 patterns.
37185 * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
37186
37187 2014-05-16 Dehao Chen <dehao@google.com>
37188
37189 * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
37190 optimize_function_for_size_p.
37191 * regs.h (REG_FREQ_FROM_BB): Likewise.
37192
37193 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
37194
37195 PR target/51244
37196 * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
37197 negt_reg_operand cases.
37198 * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
37199 predicate.
37200 * config/sh/predicates.md (cbranch_treg_value): Simplify.
37201
37202 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
37203
37204 * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
37205 target variants.
37206
37207 2014-05-16 David Malcolm <dmalcolm@redhat.com>
37208
37209 Revert:
37210 2014-04-29 David Malcolm <dmalcolm@redhat.com>
37211
37212 * tree-cfg.c (dump_function_to_file): Dump the return type of
37213 functions, in a line to itself before the function body, mimicking
37214 the layout of a C function.
37215
37216 2014-05-16 Dehao Chen <dehao@google.com>
37217
37218 * cfghooks.c (make_forwarder_block): Use direct computation to
37219 get fall-through edge's count and frequency.
37220
37221 2014-05-16 Benno Schulenberg <bensberg@justemail.net>
37222
37223 * config/arc/arc.c (arc_init): Fix typo in error message.
37224 * config/i386/i386.c (ix86_expand_builtin): Likewise.
37225 (split_stack_prologue_scratch_regno): Likewise.
37226 * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
37227 word from error message.
37228
37229 2014-05-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
37230
37231 * ira-costs.c: Fix typo in comment.
37232
37233 2014-05-16 David Wohlferd <dw@LimeGreenSocks.com>
37234
37235 * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
37236
37237 2014-05-16 Jan Hubicka <hubicka@ucw.cz>
37238
37239 * varpool.c (dump_varpool_node): Dump write-only flag.
37240 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
37241 write-only flag.
37242 * tree-cfg.c (execute_fixup_cfg): Remove statements setting
37243 write-only variables.
37244 * ipa.c (process_references): New function.
37245 (set_readonly_bit): New function.
37246 (set_writeonly_bit): New function.
37247 (clear_addressable_bit): New function.
37248 (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
37249 fix handling of aliases.
37250 * cgraph.h (struct varpool_node): Add writeonly flag.
37251
37252 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
37253
37254 PR rtl-optimization/60969
37255 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
37256 Calculate costs for this case.
37257
37258 2014-05-16 Eric Botcazou <ebotcazou@adacore.com>
37259
37260 * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
37261 <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
37262
37263 2014-05-16 Richard Biener <rguenther@suse.de>
37264
37265 PR tree-optimization/61194
37266 * tree-vect-patterns.c (adjust_bool_pattern): Also handle
37267 bool patterns ending in a COND_EXPR.
37268
37269 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37270
37271 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
37272
37273 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37274
37275 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
37276 where we were unable to cost an RTX.
37277
37278 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37279
37280 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
37281 HIGH, LO_SUM.
37282
37283 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37284 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37285
37286 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
37287
37288 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37289 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37290
37291 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
37292 FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
37293
37294 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37295 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37296
37297 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
37298 operators.
37299
37300 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37301 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37302
37303 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
37304 DIV/MOD.
37305
37306 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37307 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37308
37309 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
37310 (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
37311
37312 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37313 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37314
37315 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
37316 rotates and shifts.
37317
37318 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37319 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37320
37321 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
37322 ZERO_EXTEND and SIGN_EXTEND better.
37323
37324 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37325 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37326
37327 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
37328 logical operations.
37329
37330 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37331 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37332
37333 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
37334 costs when costing loads and stores to memory.
37335
37336 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37337 Philip Tomsich <philipp.tomsich@theobroma-systems.com>
37338
37339 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
37340 for SET RTX.
37341
37342 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37343
37344 * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
37345
37346 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37347 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37348
37349 * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
37350 to...
37351 (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
37352 well formed.
37353 (aarch64_rtx_mult_cost): New.
37354 (aarch64_rtx_costs): Use it, refactor as appropriate.
37355
37356 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37357 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
37358
37359 * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
37360 emit instructions, return number of instructions which would
37361 be emitted.
37362 (aarch64_add_constant): Update call to aarch64_build_constant.
37363 (aarch64_output_mi_thunk): Likewise.
37364 (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
37365 a CONST_DOUBLE.
37366
37367 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37368
37369 * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
37370 (TARGET_RTX_COSTS): Call it.
37371
37372 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37373
37374 * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
37375 (cortexa57_vector_cost): Likewise.
37376 (cortexa57_tunings): Use them.
37377
37378 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
37379
37380 * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
37381 (cpu_addrcost_table): Use it.
37382 * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
37383 (aarch64_address_cost): Rewrite using aarch64_classify_address,
37384 move it.
37385
37386 2014-05-16 Richard Biener <rguenther@suse.de>
37387
37388 * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
37389 (set_ssa_val_to): Handle unexpected sets to VN_TOP.
37390 (visit_phi): Ignore edges marked as not executable.
37391 (class cond_dom_walker): New.
37392 (cond_dom_walker::before_dom_children): Value-number
37393 control statements and mark successor edges as not
37394 executable if possible.
37395 (run_scc_vn): First walk all control statements in
37396 dominator order, marking edges as not executable.
37397 * tree-inline.c (copy_edges_for_bb): Be not confused
37398 about random edge flags.
37399
37400 2014-05-16 Richard Biener <rguenther@suse.de>
37401
37402 * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
37403
37404 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
37405
37406 PR target/61193
37407 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
37408 (__TM_simple_begin): Use it.
37409 (__TM_begin): Likewise.
37410
37411 2014-05-15 Martin Jambor <mjambor@suse.cz>
37412
37413 PR ipa/61085
37414 * ipa-prop.c (update_indirect_edges_after_inlining): Check
37415 type_preserved flag when the indirect edge is polymorphic.
37416
37417 2014-05-15 Martin Jambor <mjambor@suse.cz>
37418
37419 PR tree-optimization/61090
37420 * tree-sra.c (sra_modify_expr): Pass the current gsi to
37421 build_ref_for_model.
37422
37423 2014-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37424
37425 * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
37426 enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
37427
37428 2014-05-15 Jakub Jelinek <jakub@redhat.com>
37429
37430 PR tree-optimization/61158
37431 * fold-const.c (fold_binary_loc): If X is zero-extended and
37432 shiftc >= prec, make sure zerobits is all ones instead of
37433 invoking undefined behavior.
37434
37435 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
37436
37437 * regcprop.h: New file.
37438 * regcprop.c (skip_debug_insn_p): New decl.
37439 (replace_oldest_value_reg): Check skip_debug_insn_p.
37440 (copyprop_hardreg_forward_bb_without_debug_insn): New function.
37441 * shrink-wrap.c: Include regcprop.h.
37442 (prepare_shrink_wrap): Call
37443 copyprop_hardreg_forward_bb_without_debug_insn.
37444
37445 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
37446
37447 * shrink-wrap.h: Update comment.
37448 * shrink-wrap.c: Update comment.
37449 (next_block_for_reg): Rename to live_edge_for_reg.
37450 (live_edge_for_reg): Allow live_edge->dest has two predecessors.
37451 (move_insn_for_shrink_wrap): Split live_edge.
37452 (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
37453
37454 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
37455
37456 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
37457 Delete.
37458 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
37459 * config/sparc/sparc.md (fptype_ut699): New attribute.
37460 (in_branch_delay): Return false if -mfix-ut699 is specified and
37461 fptype_ut699 is set to single.
37462 (truncdfsf2): Add fptype_ut699 attribute.
37463 (fix_truncdfsi2): Likewise.
37464 (floatsisf2): Change fptype attribute.
37465 (fix_truncsfsi2): Likewise.
37466 (negtf2_notv9): Delete.
37467 (negtf2_v9): Likewise.
37468 (negtf2_hq): New instruction.
37469 (negtf2): New instruction and splitter.
37470 (negdf2_notv9): Rewrite.
37471 (abstf2_notv9): Delete.
37472 (abstf2_hq_v9): Likewise.
37473 (abstf2_v9): Likewise.
37474 (abstf2_hq): New instruction.
37475 (abstf2): New instruction and splitter.
37476 (absdf2_notv9): Rewrite.
37477
37478 2014-05-14 Cary Coutant <ccoutant@google.com>
37479
37480 PR debug/61013
37481 * opts.c (common_handle_option): Don't special-case "-g".
37482 (set_debug_level): Default to at least level 2 with "-g".
37483
37484 2014-05-14 DJ Delorie <dj@redhat.com>
37485
37486 * config/msp430/msp430.c (msp430_builtin): Add
37487 MSP430_BUILTIN_DELAY_CYCLES.
37488 (msp430_init_builtins): Register void __delay_cycles(long long).
37489 (msp430_builtin_decl): Add it.
37490 (cg_magic_constant): New.
37491 (msp430_expand_delay_cycles): New.
37492 (msp430_expand_builtin): Call it.
37493 (msp430_print_operand_raw): Change integer printing from "int" to
37494 HOST_WIDE_INT.
37495 * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
37496 (delay_cycles_start): New.
37497 (delay_cycles_end): New.
37498 (delay_cycles_32): New.
37499 (delay_cycles_32x): New.
37500 (delay_cycles_16): New.
37501 (delay_cycles_16x): New.
37502 (delay_cycles_2): New.
37503 (delay_cycles_1): New.
37504 * doc/extend.texi: Document __delay_cycles().
37505
37506 2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
37507
37508 * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
37509 length attribute computation.
37510
37511 2014-05-14 Richard Sandiford <rdsandiford@googlemail.com>
37512
37513 PR debug/61188
37514 * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
37515
37516 2014-05-14 Richard Sandiford <r.sandiford@uk.ibm.com>
37517
37518 PR target/61084
37519 * config/sparc/sparc.md: Fix types of low and high in DI constant
37520 splitter. Use gen_int_mode in some other splitters.
37521
37522 2014-05-14 Martin Jambor <mjambor@suse.cz>
37523
37524 PR ipa/60897
37525 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
37526
37527 2014-05-14 James Norris <jnorris@codesourcery.com>
37528
37529 * omp-low.c (expand_parallel_call): Remove shadow variable.
37530 (expand_omp_taskreg): Likewise.
37531
37532 2014-05-14 Ilya Tocar <ilya.tocar@intel.com>
37533
37534 * common/config/i386/i386-common.c
37535 (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
37536 (OPTION_MASK_ISA_XSAVES_SET): Ditto.
37537 (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
37538 (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
37539 (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
37540 (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
37541 (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
37542 * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
37543 xsavecintrin.h, xsavesintrin.h.
37544 (x86_64-*-*): Ditto.
37545 * config/i386/clflushoptintrin.h: New.
37546 * config/i386/xsavecintrin.h: Ditto.
37547 * config/i386/xsavesintrin.h: Ditto.
37548 * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
37549 (bit_XSAVES): Ditto.
37550 (bit_XSAVES): Ditto.
37551 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
37552 -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
37553 -mno-clflushopt.
37554 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
37555 OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
37556 OPTION_MASK_ISA_XSAVES.
37557 * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
37558 -mxsavec, -mxsaves.
37559 (PTA_CLFLUSHOPT) Define.
37560 (PTA_XSAVEC): Ditto.
37561 (PTA_XSAVES): Ditto.
37562 (ix86_option_override_internal): Handle new options.
37563 (ix86_valid_target_attribute_inner_p): Ditto.
37564 (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
37565 IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
37566 IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
37567 (bdesc_special_args): Add __builtin_ia32_xsaves,
37568 __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
37569 __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
37570 (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
37571 (ix86_expand_builtin): Handle new builtins.
37572 * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
37573 (TARGET_CLFLUSHOPT_P): Ditto.
37574 (TARGET_XSAVEC): Ditto.
37575 (TARGET_XSAVEC_P): Ditto.
37576 (TARGET_XSAVES): Ditto.
37577 (TARGET_XSAVES_P): Ditto.
37578 * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
37579 (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
37580 (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
37581 (ANY_XRSTOR): New.
37582 (ANY_XRSTOR64): Ditto.
37583 (xrstor): Ditto.
37584 (xrstor): Change into <xrstor>.
37585 (xrstor_rex64): Change into <xrstor>_rex64.
37586 (xrstor64): Change into <xrstor>64
37587 (clflushopt): New.
37588 * config/i386/i386.opt (mclflushopt): New.
37589 (mxsavec): Ditto.
37590 (mxsaves): Ditto.
37591 * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
37592 xsavecintrin.h.
37593 * doc/invoke.texi: Document new options.
37594
37595 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
37596
37597 PR rtl-optimization/60866
37598 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
37599 Default it to -1. Pass it down to init_simplejump_data.
37600 (init_simplejump_data): New parameter old_seqno. Pass it down
37601 to get_seqno_for_a_jump.
37602 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
37603 initializing new jump seqno as a last resort. Add comment.
37604 (sel_redirect_edge_and_branch): Save old seqno of the conditional
37605 jump and pass it down to sel_init_new_insn.
37606 (sel_redirect_edge_and_branch_force): Likewise.
37607
37608 2014-05-14 Georg-Johann Lay <avr@gjlay.de>
37609
37610 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
37611 shifted values to avoid build warning.
37612
37613 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
37614
37615 * cfgcleanup.c (try_forward_edges): Use location_t for locations.
37616 * cfgrtl.c (rtl_merge_blocks): Fix comment.
37617 (cfg_layout_merge_blocks): Likewise.
37618 * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
37619
37620 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
37621
37622 PR rtl-optimization/60901
37623 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
37624 bb predecessor belongs to the same scheduling region. Adjust comment.
37625
37626 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
37627
37628 * doc/sourcebuild.texi: (dfp_hw): Document.
37629 (p8vector_hw): Likewise.
37630 (powerpc_eabi_ok): Likewise.
37631 (powerpc_elfv2): Likewise.
37632 (powerpc_htm_ok): Likewise.
37633 (ppc_recip_hw): Likewise.
37634 (vsx_hw): Likewise.
37635
37636 2014-05-13 Cary Coutant <ccoutant@google.com>
37637
37638 * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
37639
37640 2014-05-13 David Malcolm <dmalcolm@redhat.com>
37641
37642 * gengtype-parse.c (require3): Eliminate in favor of...
37643 (require4): New.
37644 (require_template_declaration): Update to support optional single *
37645 on a type.
37646
37647 * gengtype.c (get_ultimate_base_class): Add a non-const overload.
37648 (create_user_defined_type): Handle a single level of explicit
37649 pointerness within template arguments.
37650 (struct write_types_data): Add field "kind".
37651 (filter_type_name): Handle "*" character.
37652 (write_user_func_for_structure_ptr): Require a write_types_data
37653 rather than just a prefix string, so that we can look up the kind
37654 of the wtd and use it as an index into wrote_user_func_for_ptr,
37655 ensuring that such functions are written at most once. Support
37656 subclasses by invoking the marking function of the ultimate base class.
37657 (write_user_func_for_structure_body): Require a write_types_data
37658 rather than just a prefix string, so that we can pass this to
37659 write_user_func_for_structure_ptr.
37660 (write_func_for_structure): Likewise.
37661 (ggc_wtd): Add initializer of new "kind" field.
37662 (pch_wtd): Likewise.
37663
37664 * gengtype.h (enum write_types_kinds): New.
37665 (struct type): Add field wrote_user_func_for_ptr to the "s"
37666 union member.
37667
37668 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
37669
37670 * fold-const.c (optimize_bit_field_compare): Use wi:: operations
37671 instead of const_binop.
37672 (fold_binary_loc): Likewise.
37673
37674 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
37675
37676 * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
37677 calculation to match get_ref_base_and_extent.
37678
37679 2014-05-13 Catherine Moore <clm@codesourcery.com>
37680 Sandra Loosemore <sandra@codesourcery.com>
37681
37682 * configure.ac: Fix assembly for explicit JALR relocation check.
37683 * configure: Regenerate.
37684
37685 2014-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37686
37687 * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
37688 (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
37689 Remove associated type declarations and initialisations.
37690 (arm_expand_neon_builtin): Likewise.
37691 (neon_emit_pair_result_insn): Delete.
37692 * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
37693 * config/arm/neon.md (neon_vtrn<mode>): Delete.
37694 (neon_vzip<mode>): Likewise.
37695 (neon_vuzp<mode>): Likewise.
37696
37697 2014-05-13 Richard Biener <rguenther@suse.de>
37698
37699 PR ipa/60973
37700 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
37701 it needs revisiting whether the call still may be tail-called.
37702
37703 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
37704
37705 * rtl.def (SYMBOL_REF): Remove middle "0" field.
37706 * rtl.h (block_symbol): Reduce number of fields to 2.
37707 (rtx_def): Add u2.symbol_ref_flags.
37708 (SYMBOL_REF_FLAGS): Use it.
37709 (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
37710 (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
37711 * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
37712 Lower index of SYMBOL_REF_DATA.
37713 * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
37714 Print SYMBOL_REF_FLAGS at the same time.
37715 * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
37716
37717 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
37718
37719 * rtl.def (VAR_LOCATION): Remove "i" field.
37720 * rtl.h (rtx_def): Add u2.var_location_status.
37721 (PAT_VAR_LOCATION_STATUS): Use it.
37722 (gen_rtx_VAR_LOCATION): Declare.
37723 * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
37724 * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
37725 * var-tracking.c (emit_note_insn_var_location): Remove casts.
37726
37727 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
37728
37729 * rtl.def (scratch): Fix outdated comment and remove "0" field.
37730 * gengtype.c (adjust_field_rtx_def): Update accordingly.
37731
37732 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
37733
37734 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
37735 (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
37736 * rtl.h (rtx_def): Add insn_uid to u2 field.
37737 (RTX_FLAG_CHECK8): Delete in favor of...
37738 (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
37739 (INSN_DELETED_P): Update accordingly.
37740 (INSN_UID): Use u2.insn_uid.
37741 (INSN_CHAIN_CODE_P): Define.
37742 (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
37743 (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
37744 (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
37745 (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
37746 (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
37747 indices accordingly.
37748 * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
37749 Update indices for insn-chain rtxes.
37750 * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
37751 (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
37752 * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
37753 * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
37754 * combine.c (try_combine): Likewise.
37755 * ira.c (setup_prohibited_mode_move_regs): Likewise.
37756
37757 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
37758
37759 * rtl.def (REG): Remove middle field.
37760 * rtl.h (rtx_def): Add orignal_regno to u2.
37761 (ORIGINAL_REGNO): Use it instead of field 1.
37762 (REG_ATTRS): Lower field index accordingly.
37763 * gengtype.c (adjust_field_rtx_def): Remove handling of
37764 ORIGINAL_REGNO. Move REG_ATTRS index down.
37765 * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
37766 code that prints the REGNO.
37767
37768 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
37769
37770 * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
37771 GENERATOR_FILE.
37772
37773 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
37774
37775 * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
37776
37777 2014-05-13 Bin Cheng <bin.cheng@arm.com>
37778
37779 * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
37780 (alloc_iv): Lower base expressions containing ADDR_EXPR.
37781
37782 2014-05-13 Ian Bolton <ian.bolton@arm.com>
37783
37784 * config/aarch64/aarch64-protos.h
37785 (aarch64_hard_regno_caller_save_mode): New prototype.
37786 * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
37787 New function.
37788 * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
37789
37790 2014-05-13 Christian Bruel <christian.bruel@st.com>
37791
37792 * target.def (mode_switching): New hook vector.
37793 (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
37794 (mode_exit, modepriority_to_mode): Likewise.
37795 * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
37796 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
37797 * target.h: Include tm.h and hard-reg-set.h.
37798 * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
37799 (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
37800 * doc/tm.texi Regenerate.
37801 * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
37802 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
37803 * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
37804 (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
37805 * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
37806 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
37807 * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
37808 (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
37809 * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
37810 (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
37811 (ix86_emit_mode_set): Hookify.
37812 * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
37813 Delete.
37814 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
37815 * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
37816 (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
37817 (epiphany_mode_priority_to_mode): Remove declaration.
37818 * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
37819 (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
37820 (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
37821 Likewise.
37822 (epiphany_mode_priority_to_mode): Change priority type. Hookify.
37823 (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
37824 (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
37825
37826 2014-05-13 Jakub Jelinek <jakub@redhat.com>
37827
37828 PR target/61060
37829 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
37830 is const0_rtx, return immediately. Don't test count == 0 when
37831 it is always true.
37832
37833 2014-05-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
37834
37835 * Makefile.in: add shrink-wrap.o.
37836 * config/i386/i386.c: include "shrink-wrap.h"
37837 * function.c: Likewise.
37838 (requires_stack_frame_p, next_block_for_reg,
37839 move_insn_for_shrink_wrap, prepare_shrink_wrap,
37840 dup_block_and_redirect): Move to shrink-wrap.c
37841 (thread_prologue_and_epilogue_insns): Extract three code segments
37842 as functions in shrink-wrap.c
37843 * function.h: Move #ifdef HAVE_simple_return ... #endif block to
37844 shrink-wrap.h
37845 * shrink-wrap.c: New file.
37846 * shrink-wrap.h: New file.
37847
37848 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
37849
37850 * doc/extend.texi: Reflect current numbers of pragmas. Remove
37851 reference to Solaris.
37852
37853 2014-05-12 Mike Stump <mikestump@comcast.net>
37854
37855 PR other/31778
37856 * genattrtab.c (filename): Add.
37857 (convert_set_attr_alternative): Improve error message.
37858 (check_defs): Restore read_md_filename for error messages.
37859 (gen_insn): Save filename.
37860
37861 2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
37862
37863 * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
37864 -fno-local-ivars and -fivar-visibility.
37865 * c-family/c.opt: Make -Wshadow also implicitly enable
37866 -Wshadow-ivar.
37867
37868 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
37869
37870 * doc/tm.texi: Remove reference to deleted macro.
37871 * doc/tm.texi.in: Likewise.
37872
37873 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
37874
37875 PR target/60991
37876 * config/avr/avr.c (avr_out_store_psi): Use correct constant
37877 to restore Y.
37878
37879 2014-05-12 Georg-Johann Lay <avr@gjlay.de>
37880
37881 PR libgcc/61152
37882 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
37883 * config/arm/aout.h (License): Same.
37884 * config/arm/bpabi.h (License): Same.
37885 * config/arm/elf.h (License): Same.
37886 * config/arm/linux-elf.h (License): Same.
37887 * config/arm/linux-gas.h (License): Same.
37888 * config/arm/netbsd-elf.h (License): Same.
37889 * config/arm/uclinux-eabi.h (License): Same.
37890 * config/arm/uclinux-elf.h (License): Same.
37891 * config/arm/vxworks.h (License): Same.
37892
37893 2014-05-11 Jakub Jelinek <jakub@redhat.com>
37894
37895 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
37896 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
37897 number of operands to 3.
37898 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
37899 * tree-nested.c (convert_nonlocal_omp_clauses,
37900 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
37901 * gimplify.c (gimplify_scan_omp_clauses): Handle
37902 OMP_CLAUSE_LINEAR_STMT.
37903 * omp-low.c (lower_rec_input_clauses): Fix typo.
37904 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
37905 cast between Fortran boolean_type_node and C _Bool if
37906 needed.
37907
37908 2014-05-11 Richard Sandiford <rdsandiford@googlemail.com>
37909
37910 PR tree-optimization/61136
37911 * wide-int.h (multiple_of_p): Define a version that doesn't return
37912 the quotient.
37913 * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
37914 integer_zerop/const_binop pair.
37915 (multiple_of_p): Likewise, converting both operands to widest_int
37916 precision.
37917
37918 2014-05-09 Teresa Johnson <tejohnson@google.com>
37919
37920 * cgraphunit.c (analyze_functions): Use correct dump file.
37921
37922 2014-05-09 Florian Weimer <fweimer@redhat.com>
37923
37924 * cfgexpand.c (stack_protect_decl_p): New function, extracted from
37925 expand_used_vars.
37926 (stack_protect_return_slot_p): New function.
37927 (expand_used_vars): Call stack_protect_decl_p and
37928 stack_protect_return_slot_p for -fstack-protector-strong.
37929
37930 2014-05-09 David Wohlferd <LimeGreenSocks@yahoo.com>
37931 Andrew Haley <aph@redhat.com>
37932 Richard Sandiford <rdsandiford@googlemail.com>
37933
37934 * doc/extend.texi: Rewrite inline asm page / re-org asm-related
37935 pages.
37936
37937 2014-05-09 Kenneth Zadeck <zadeck@naturalbridge.com>
37938
37939 PR middle-end/61111
37940 * fold-const.c (fold_binary_loc): Changed width of mask.
37941
37942 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
37943
37944 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
37945 unsigned int initializers for regno_in, regno_out.
37946
37947 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
37948
37949 PR target/61055
37950 * config/avr/avr.md (cc): Add new attribute set_vzn.
37951 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
37952 Set cc insn attribute to set_vzn instead of set_zn for alternatives
37953 with INC, DEC or NEG.
37954 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
37955 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
37956 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
37957
37958 2014-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
37959
37960 Revert:
37961 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
37962
37963 * wide-int.cc (UTItype): Define.
37964 (UDWtype): Define for appropriate W_TYPE_SIZE.
37965
37966 2014-05-09 Richard Biener <rguenther@suse.de>
37967
37968 * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
37969 * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
37970 (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
37971 (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
37972 ssa_propagate): Adjust.
37973
37974 2014-05-08 Jeff Law <law@redhat.com>
37975
37976 PR tree-optimization/61009
37977 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
37978 tri-state rather than a boolean. When a block is too big to
37979 thread through, inform caller via negative return value.
37980 (thread_across_edge): If a block was too big for normal threading,
37981 then it's too big for a joiner too, so remove temporary equivalences
37982 and return immediately.
37983
37984 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
37985 Matthias Klose <doko@ubuntu.com>
37986
37987 PR driver/61106
37988 * optc-gen.awk: Fix option handling for -Wunused-parameter.
37989
37990 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
37991
37992 PR target/59952
37993 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
37994
37995 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
37996
37997 PR target/61092
37998 * config/alpha/alpha.c: Include gimple-iterator.h.
37999 (alpha_gimple_fold_builtin): New function. Move
38000 ALPHA_BUILTIN_UMULH folding from ...
38001 (alpha_fold_builtin): ... here.
38002 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
38003
38004 2014-05-08 Wei Mi <wmi@google.com>
38005
38006 PR target/58066
38007 * config/i386/i386.c (ix86_compute_frame_layout): Update
38008 preferred_stack_boundary for call, expanded from tls descriptor.
38009 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
38010 to depend on SP register.
38011 (*tls_local_dynamic_base_32_gnu): Ditto.
38012 (*tls_local_dynamic_32_once): Ditto.
38013 (tls_global_dynamic_64_<mode>): Set
38014 ix86_tls_descriptor_calls_expanded_in_cfun.
38015 (tls_local_dynamic_base_64_<mode>): Ditto.
38016 (tls_global_dynamic_32): Set
38017 ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
38018 to depend on SP register.
38019 (tls_local_dynamic_base_32): Ditto.
38020
38021 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
38022
38023 * config/arm/arm_neon.h: Update comment.
38024 * config/arm/neon-docgen.ml: Delete.
38025 * config/arm/neon-gen.ml: Delete.
38026 * doc/arm-neon-intrinsics.texi: Update comment.
38027
38028 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
38029
38030 * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
38031 and v4sf versions.
38032 (vand, vorr, veor, vorn, vbic): Remove.
38033 * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
38034 iterator.
38035 (neon_vsub_unspec): Likewise.
38036 (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
38037
38038 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
38039
38040 * config/arm/arm_neon.h (vadd_s8): GNU C implementation
38041 (vadd_s16): Likewise.
38042 (vadd_s32): Likewise.
38043 (vadd_f32): Likewise.
38044 (vadd_u8): Likewise.
38045 (vadd_u16): Likewise.
38046 (vadd_u32): Likewise.
38047 (vadd_s64): Likewise.
38048 (vadd_u64): Likewise.
38049 (vaddq_s8): Likewise.
38050 (vaddq_s16): Likewise.
38051 (vaddq_s32): Likewise.
38052 (vaddq_s64): Likewise.
38053 (vaddq_f32): Likewise.
38054 (vaddq_u8): Likewise.
38055 (vaddq_u16): Likewise.
38056 (vaddq_u32): Likewise.
38057 (vaddq_u64): Likewise.
38058 (vmul_s8): Likewise.
38059 (vmul_s16): Likewise.
38060 (vmul_s32): Likewise.
38061 (vmul_f32): Likewise.
38062 (vmul_u8): Likewise.
38063 (vmul_u16): Likewise.
38064 (vmul_u32): Likewise.
38065 (vmul_p8): Likewise.
38066 (vmulq_s8): Likewise.
38067 (vmulq_s16): Likewise.
38068 (vmulq_s32): Likewise.
38069 (vmulq_f32): Likewise.
38070 (vmulq_u8): Likewise.
38071 (vmulq_u16): Likewise.
38072 (vmulq_u32): Likewise.
38073 (vsub_s8): Likewise.
38074 (vsub_s16): Likewise.
38075 (vsub_s32): Likewise.
38076 (vsub_f32): Likewise.
38077 (vsub_u8): Likewise.
38078 (vsub_u16): Likewise.
38079 (vsub_u32): Likewise.
38080 (vsub_s64): Likewise.
38081 (vsub_u64): Likewise.
38082 (vsubq_s8): Likewise.
38083 (vsubq_s16): Likewise.
38084 (vsubq_s32): Likewise.
38085 (vsubq_s64): Likewise.
38086 (vsubq_f32): Likewise.
38087 (vsubq_u8): Likewise.
38088 (vsubq_u16): Likewise.
38089 (vsubq_u32): Likewise.
38090 (vsubq_u64): Likewise.
38091 (vand_s8): Likewise.
38092 (vand_s16): Likewise.
38093 (vand_s32): Likewise.
38094 (vand_u8): Likewise.
38095 (vand_u16): Likewise.
38096 (vand_u32): Likewise.
38097 (vand_s64): Likewise.
38098 (vand_u64): Likewise.
38099 (vandq_s8): Likewise.
38100 (vandq_s16): Likewise.
38101 (vandq_s32): Likewise.
38102 (vandq_s64): Likewise.
38103 (vandq_u8): Likewise.
38104 (vandq_u16): Likewise.
38105 (vandq_u32): Likewise.
38106 (vandq_u64): Likewise.
38107 (vorr_s8): Likewise.
38108 (vorr_s16): Likewise.
38109 (vorr_s32): Likewise.
38110 (vorr_u8): Likewise.
38111 (vorr_u16): Likewise.
38112 (vorr_u32): Likewise.
38113 (vorr_s64): Likewise.
38114 (vorr_u64): Likewise.
38115 (vorrq_s8): Likewise.
38116 (vorrq_s16): Likewise.
38117 (vorrq_s32): Likewise.
38118 (vorrq_s64): Likewise.
38119 (vorrq_u8): Likewise.
38120 (vorrq_u16): Likewise.
38121 (vorrq_u32): Likewise.
38122 (vorrq_u64): Likewise.
38123 (veor_s8): Likewise.
38124 (veor_s16): Likewise.
38125 (veor_s32): Likewise.
38126 (veor_u8): Likewise.
38127 (veor_u16): Likewise.
38128 (veor_u32): Likewise.
38129 (veor_s64): Likewise.
38130 (veor_u64): Likewise.
38131 (veorq_s8): Likewise.
38132 (veorq_s16): Likewise.
38133 (veorq_s32): Likewise.
38134 (veorq_s64): Likewise.
38135 (veorq_u8): Likewise.
38136 (veorq_u16): Likewise.
38137 (veorq_u32): Likewise.
38138 (veorq_u64): Likewise.
38139 (vbic_s8): Likewise.
38140 (vbic_s16): Likewise.
38141 (vbic_s32): Likewise.
38142 (vbic_u8): Likewise.
38143 (vbic_u16): Likewise.
38144 (vbic_u32): Likewise.
38145 (vbic_s64): Likewise.
38146 (vbic_u64): Likewise.
38147 (vbicq_s8): Likewise.
38148 (vbicq_s16): Likewise.
38149 (vbicq_s32): Likewise.
38150 (vbicq_s64): Likewise.
38151 (vbicq_u8): Likewise.
38152 (vbicq_u16): Likewise.
38153 (vbicq_u32): Likewise.
38154 (vbicq_u64): Likewise.
38155 (vorn_s8): Likewise.
38156 (vorn_s16): Likewise.
38157 (vorn_s32): Likewise.
38158 (vorn_u8): Likewise.
38159 (vorn_u16): Likewise.
38160 (vorn_u32): Likewise.
38161 (vorn_s64): Likewise.
38162 (vorn_u64): Likewise.
38163 (vornq_s8): Likewise.
38164 (vornq_s16): Likewise.
38165 (vornq_s32): Likewise.
38166 (vornq_s64): Likewise.
38167 (vornq_u8): Likewise.
38168 (vornq_u16): Likewise.
38169 (vornq_u32): Likewise.
38170 (vornq_u64): Likewise.
38171
38172 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
38173
38174 * wide-int.cc (UTItype): Define.
38175 (UDWtype): Define for appropriate W_TYPE_SIZE.
38176
38177 2014-05-08 Marc Glisse <marc.glisse@inria.fr>
38178
38179 PR tree-optimization/59100
38180 * tree-ssa-phiopt.c: Include tree-inline.h.
38181 (neutral_element_p, absorbing_element_p): New functions.
38182 (value_replacement): Handle conditional binary operations with a
38183 neutral or absorbing element.
38184
38185 2014-05-08 Richard Biener <rguenther@suse.de>
38186
38187 * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
38188 folding the expression.
38189 (valueize_expr): Remove.
38190 (visit_reference_op_load): Do not valueize the result of
38191 vn_get_expr_for.
38192 (simplify_binary_expression): Likewise.
38193 (simplify_unary_expression): Likewise.
38194
38195 2014-05-08 Richard Biener <rguenther@suse.de>
38196
38197 * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
38198 looking at TYPE_ARG_TYPES.
38199
38200 2014-05-08 Richard Biener <rguenther@suse.de>
38201
38202 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
38203 pointer propagation special-case.
38204
38205 2014-05-08 Bin Cheng <bin.cheng@arm.com>
38206
38207 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
38208 core part of address expressions.
38209
38210 2014-05-08 Alan Modra <amodra@gmail.com>
38211
38212 PR target/60737
38213 * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
38214 loads and stores when -mno-strict-align at any alignment.
38215 (expand_block_clear): Similarly. Also correct calculation of
38216 instruction count.
38217
38218 2014-05-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
38219
38220 PR middle-end/39246
38221 * tree-complex.c (expand_complex_move): Keep line info when expanding
38222 complex move.
38223 * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
38224 of complex expression. Use new argument to display correct location
38225 for values coming from phi statement.
38226 (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
38227 (warn_uninitialized_phi): Pass location of phi argument to
38228 warn_uninit.
38229 * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
38230 COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
38231
38232 2014-05-07 Segher Boessenkool <segher@kernel.crashing.org>
38233
38234 * config/rs6000/predicates.md (indexed_address_mem): New.
38235 * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
38236 load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
38237 fpstore_ux, fpstore_u.
38238 (sign_extend, indexed, update): New.
38239 (cell_micro): Adjust.
38240 (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
38241 *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
38242 *movsi_internal1, *movsi_internal1_single, *movhi_internal,
38243 *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
38244 *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
38245 *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
38246 *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
38247 *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
38248 *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
38249 *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
38250 *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
38251 *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
38252 *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
38253 *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
38254 *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
38255
38256 * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
38257 * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
38258 *vsx_extract_<mode>_store): Adjust.
38259 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
38260 is_cracked_insn, insn_must_be_first_in_group,
38261 insn_must_be_last_in_group): Adjust.
38262
38263 * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
38264 Adjust.
38265 * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
38266 ppc440-fpstore): Adjust.
38267 * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
38268 ppc476-fpstore): Adjust.
38269 * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
38270 ppc601-fpstore): Adjust.
38271 * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
38272 Adjust.
38273 * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
38274 Adjust.
38275 * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
38276 ppc7450-fpstore): Adjust.
38277 * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
38278 * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
38279 * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
38280 Adjust.
38281 * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
38282 cell-fpload, cell-fpload-update, cell-store, cell-store-update,
38283 cell-fpstore, cell-fpstore-update): Adjust.
38284 * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
38285 ppce300c3_store, ppce300c3_fpstore): Adjust.
38286 * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
38287 e500mc_fpstore): Adjust.
38288 * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
38289 e500mc64_store, e500mc64_fpstore): Adjust.
38290 * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
38291 e5500_fpstore): Adjust.
38292 * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
38293 e6500_fpstore): Adjust.
38294 * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
38295 Adjust.
38296 * config/rs6000/power4.md (power4-load, power4-load-ext,
38297 power4-load-ext-update, power4-load-ext-update-indexed,
38298 power4-load-update-indexed, power4-load-update, power4-fpload,
38299 power4-fpload-update, power4-store, power4-store-update,
38300 power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
38301 Adjust.
38302 * config/rs6000/power5.md (power5-load, power5-load-ext,
38303 power5-load-ext-update, power5-load-ext-update-indexed,
38304 power5-load-update-indexed, power5-load-update, power5-fpload,
38305 power5-fpload-update, power5-store, power5-store-update,
38306 power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
38307 Adjust.
38308 * config/rs6000/power6.md (power6-load, power6-load-ext,
38309 power6-load-update, power6-load-update-indexed,
38310 power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
38311 power6-fpload-update, power6-store, power6-store-update,
38312 power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
38313 Adjust.
38314 * config/rs6000/power7.md (power7-load, power7-load-ext,
38315 power7-load-update, power7-load-update-indexed,
38316 power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
38317 power7-fpload-update, power7-store, power7-store-update,
38318 power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
38319 Adjust.
38320 * config/rs6000/power8.md (power8-load, power8-load-update,
38321 power8-load-ext, power8-load-ext-update, power8-fpload,
38322 power8-fpload-update, power8-store, power8-store-update-indexed,
38323 power8-fpstore, power8-fpstore-update): Adjust.
38324 * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
38325 Adjust.
38326 * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
38327 titan_lsu_store, titan_lsu_fpstore): Adjust.
38328 * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
38329
38330 2014-05-07 Oleg Endo <olegendo@gcc.gnu.org>
38331
38332 PR target/60884
38333 * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
38334 unrolled byte insns. Emit address increments after move insns.
38335
38336 2014-05-07 David Malcolm <dmalcolm@redhat.com>
38337
38338 * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
38339 const_gimple, rather than a gimple.
38340 (gimple_call_builtin_p): Likewise, for the three variants.
38341
38342 * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
38343 (gimple_call_builtin_p): Likewise, for the three variants.
38344
38345 2014-05-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
38346
38347 PR tree-optimization/61095
38348 * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
38349
38350 2014-05-07 Richard Biener <rguenther@suse.de>
38351
38352 PR tree-optimization/61034
38353 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
38354 (maybe_skip_until): Use translate to take into account
38355 lattices when trying to do disambiguations.
38356 (get_continuation_for_phi_1): Likewise.
38357 (get_continuation_for_phi): Adjust for added translate arguments.
38358 (walk_non_aliased_vuses): Likewise.
38359 * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
38360 (walk_non_aliased_vuses): Likewise.
38361 (call_may_clobber_ref_p_1): Declare.
38362 * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
38363 calls. Stop early if we are only supposed to disambiguate.
38364 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
38365
38366 2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
38367
38368 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
38369 Emit an error when the function has arguments.
38370
38371 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
38372
38373 * cfgloop.h (unswitch_loops): Remove.
38374 * doc/passes.texi: Remove references to loop-unswitch.c
38375 * timevar.def (TV_LOOP_UNSWITCH): Remove.
38376
38377 2014-05-07 Evgeny Stupachenko <evstupac@gmail.com>
38378
38379 * tree-vect-data-refs.c (vect_grouped_load_supported): New
38380 check for loads group of length 3.
38381 (vect_permute_load_chain): New permutations for loads group of
38382 length 3.
38383 * tree-vect-stmts.c (vect_model_load_cost): Change cost
38384 of vec_perm_shuffle for the new permutations.
38385
38386 2014-05-07 Alan Lawrence <alan.lawrence@arm.com>
38387
38388 * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
38389 vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
38390 vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
38391 vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
38392 vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
38393 vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
38394 vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
38395 vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
38396
38397 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
38398
38399 * loop-unswitch.c: Delete.
38400
38401 2014-05-07 Richard Biener <rguenther@suse.de>
38402
38403 * config.gcc: Always set need_64bit_hwint to yes.
38404
38405 2014-05-07 Chung-Ju Wu <jasonwucj@gmail.com>
38406
38407 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
38408 of using optimize_size.
38409
38410 2014-05-06 Mike Stump <mikestump@comcast.net>
38411
38412 * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
38413
38414 2014-05-06 Joseph Myers <joseph@codesourcery.com>
38415
38416 * config/i386/sse.md (*mov<mode>_internal)
38417 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
38418 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
38419 (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
38420 (*<code><mode>3, *andnot<mode>3<mask_name>)
38421 (<mask_codefor><code><mode>3<mask_name>): Only consider
38422 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
38423
38424 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
38425
38426 Revert:
38427 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
38428
38429 * lra-constraints.c (valid_address_p): Move earlier in file.
38430 Add a constraint argument to the address_info version.
38431 (satisfies_memory_constraint_p): New function.
38432 (satisfies_address_constraint_p): Likewise.
38433 (process_alt_operands, curr_insn_transform): Use them.
38434 (process_address): Pass the constraint to valid_address_p when
38435 checking address operands.
38436
38437 2014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
38438
38439 * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
38440 to their respective blocks. Fix inadvertent use of "node".
38441
38442 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
38443
38444 * emit-rtl.c (init_derived_machine_modes): New functionm, split
38445 out from...
38446 (init_emit_once): ...here.
38447 * rtl.h (init_derived_machine_modes): Declare.
38448 * toplev.c (do_compile): Call it even if no_backend.
38449
38450 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
38451 Mike Stump <mikestump@comcast.net>
38452 Richard Sandiford <rdsandiford@googlemail.com>
38453 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
38454
38455 * alias.c (ao_ref_from_mem): Use wide-int interfaces.
38456 (rtx_equal_for_memref_p): Update comment.
38457 (adjust_offset_for_component_ref): Use wide-int interfaces.
38458 * builtins.c (get_object_alignment_2): Likewise.
38459 (c_readstr): Likewise.
38460 (target_char_cast): Add comment.
38461 (determine_block_size): Use wide-int interfaces.
38462 (expand_builtin_signbit): Likewise.
38463 (fold_builtin_int_roundingfn): Likewise.
38464 (fold_builtin_bitop): Likewise.
38465 (fold_builtin_bswap): Likewise.
38466 (fold_builtin_logarithm): Use signop.
38467 (fold_builtin_pow): Likewise.
38468 (fold_builtin_memory_op): Use wide-int interfaces.
38469 (fold_builtin_object_size): Likewise.
38470 * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
38471 nb_iterations_estimate.
38472 (record_niter_bound): Use wide-int interfaces.
38473 (get_estimated_loop_iterations_int): Likewise.
38474 (get_estimated_loop_iterations): Likewise.
38475 (get_max_loop_iterations): Likewise.
38476 * cfgloop.h: Include wide-int.h.
38477 (struct nb_iter_bound): Change bound to widest_int.
38478 (struct loop): Change nb_iterations_upper_bound and
38479 nb_iterations_estimate to widest_int.
38480 (record_niter_bound): Switch to use widest_int.
38481 (get_estimated_loop_iterations): Likewise.
38482 (get_max_loop_iterations): Likewise.
38483 (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
38484 update for wide-int.
38485 * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
38486 * combine.c (try_combine): Likewise.
38487 (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
38488 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
38489 interfaces.
38490 (aarch64_float_const_representable_p): Likewise.
38491 * config/arc/arc.c: Include wide-int.h.
38492 (arc_can_use_doloop_p): Use wide-int interfaces.
38493 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
38494 (vfp3_const_double_index): Likewise.
38495 * config/avr/avr.c (avr_out_round): Likewise.
38496 (avr_fold_builtin): Likewise.
38497 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
38498 (bfin_can_use_doloop_p): Likewise.
38499 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
38500 (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
38501 * config/i386/i386.c: Include wide-int.h.
38502 (ix86_data_alignment): Use wide-int interfaces.
38503 (ix86_local_alignment): Likewise.
38504 (ix86_emit_swsqrtsf): Update real_from_integer.
38505 * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
38506 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
38507 * config/rs6000/predicates.md (any_operand): Add const_wide_int.
38508 (zero_constant): Likewise.
38509 (input_operand): Likewise.
38510 (splat_input_operand): Likewise.
38511 (non_logical_cint_operand): Change const_double to const_wide_int.
38512 * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
38513 (easy_altivec_constant): Remove comment.
38514 (paired_expand_vector_init): Use CONSTANT_P.
38515 (rs6000_legitimize_address): Handle CONST_WIDE_INT.
38516 (rs6000_emit_move): Update checks.
38517 (rs6000_aggregate_candidate): Use wide-int interfaces.
38518 (rs6000_expand_ternop_builtin): Likewise.
38519 (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
38520 (rs6000_assemble_integer): Likewise.
38521 (rs6000_hash_constant): Likewise.
38522 (output_toc): Likewise.
38523 (rs6000_rtx_costs): Likewise.
38524 (rs6000_emit_swrsqrt); Update call to real_from_integer.
38525 * config/rs6000/rs6000-c.c: Include wide-int.h.
38526 (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
38527 * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
38528 * config/rs6000/rs6000.md: Use const_scalar_int_operand.
38529 Handle CONST_WIDE_INT.
38530 * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
38531 Use tree_fits_uhwi_p.
38532 * config/sparc/sparc.c: Include wide-int.h.
38533 (sparc_fold_builtin): Use wide-int interfaces.
38534 * config/vax/vax.c: Include wide-int.h.
38535 (vax_float_literal): Use real_from_integer.
38536 * coretypes.h (struct hwivec_def): New.
38537 (hwivec): New.
38538 (const_hwivec): New.
38539 * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
38540 (equiv_constant): Handle CONST_WIDE_INT.
38541 * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
38542 (cselib_hash_rtx): Handle CONST_WIDE_INT.
38543 * dbxout.c (stabstr_U): Use wide-int interfaces.
38544 (dbxout_type): Update to use cst_fits_shwi_p.
38545 * defaults.h (LOG2_BITS_PER_UNIT): Define.
38546 (TARGET_SUPPORTS_WIDE_INT): Add default.
38547 * dfp.c: Include wide-int.h.
38548 (decimal_real_to_integer2): Use wide-int interfaces and rename to
38549 decimal_real_to_integer.
38550 * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
38551 decimal_real_to_integer.
38552 * doc/generic.texi (Constant expressions): Update for wide_int.
38553 * doc/rtl.texi (const_double): Likewise.
38554 (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
38555 (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
38556 * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
38557 (REAL_VALUE_FROM_INT): Remove.
38558 (TARGET_SUPPORTS_WIDE_INT): New.
38559 * doc/tm.texi: Regenerate.
38560 * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
38561 * double-int.h: Include wide-int.h.
38562 (struct wi::int_traits): New.
38563 * dwarf2out.c (get_full_len): New.
38564 (dw_val_equal_p): Add case dw_val_class_wide_int.
38565 (size_of_loc_descr): Likewise.
38566 (output_loc_operands): Likewise.
38567 (insert_double): Remove.
38568 (insert_wide_int): New.
38569 (add_AT_wide): New.
38570 (print_die): Add case dw_val_class_wide_int.
38571 (attr_checksum): Likewise.
38572 (attr_checksum_ordered): Likewise.
38573 (same_dw_val_p): Likewise.
38574 (size_of_die): Likewise.
38575 (value_format): Likewise.
38576 (output_die): Likewise.
38577 (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
38578 Use wide-int.
38579 (clz_loc_descriptor): Use wide-int interfaces.
38580 (mem_loc_descriptor): Likewise. Handle CONST_WIDE_INT.
38581 (loc_descriptor): Use wide-int interfaces. Handle CONST_WIDE_INT.
38582 (round_up_to_align): Use wide-int interfaces.
38583 (field_byte_offset): Likewise.
38584 (insert_double): Rename to insert_wide_int. Use wide-int interfaces.
38585 (add_const_value_attribute): Handle CONST_WIDE_INT. Update
38586 CONST_DOUBLE handling. Use wide-int interfaces.
38587 (add_bound_info): Use tree_fits_uhwi_p. Use wide-int interfaces.
38588 (gen_enumeration_type_die): Use add_AT_wide.
38589 (hash_loc_operands): Add case dw_val_class_wide_int.
38590 (compare_loc_operands): Likewise.
38591 * dwarf2out.h: Include wide-int.h.
38592 (wide_int_ptr): New.
38593 (enum dw_val_class): Add dw_val_class_wide_int.
38594 (struct dw_val_struct): Add val_wide.
38595 * emit-rtl.c (const_wide_int_htab): New.
38596 (const_wide_int_htab_hash): New.
38597 (const_wide_int_htab_eq): New.
38598 (lookup_const_wide_int): New.
38599 (const_double_htab_hash): Use wide-int interfaces.
38600 (const_double_htab_eq): Likewise.
38601 (rtx_to_double_int): Conditionally compile for wide-int.
38602 (immed_double_int_const): Rename to immed_wide_int_const and
38603 update for wide-int.
38604 (immed_double_const): Conditionally compile for wide-int.
38605 (init_emit_once): Use wide-int interfaces.
38606 * explow.c (plus_constant): Likewise.
38607 * expmed.c (mask_rtx): Move further up file. Use wide-int interfaces.
38608 (lshift_value): Use wide-int interfaces.
38609 (expand_mult): Likewise.
38610 (choose_multiplier): Likewise.
38611 (expand_smod_pow2): Likewise.
38612 (make_tree): Likewise.
38613 * expr.c (convert_modes): Consolidate handling of constants.
38614 Use wide-int interfaces.
38615 (emit_group_load_1): Add note.
38616 (store_expr): Update comment.
38617 (get_inner_reference): Use wide-int interfaces.
38618 (expand_constructor): Update comment.
38619 (expand_expr_real_2): Use wide-int interfaces.
38620 (expand_expr_real_1): Likewise.
38621 (reduce_to_bit_field_precision): Likewise.
38622 (const_vector_from_tree): Likewise.
38623 * final.c: Include wide-int-print.h.
38624 (output_addr_const): Handle CONST_WIDE_INT. Use CONST_DOUBLE_AS_INT_P.
38625 * fixed-value.c: Include wide-int.h.
38626 (fixed_from_string): Use wide-int interfaces.
38627 (fixed_to_decimal): Likewise.
38628 (fixed_convert_from_real): Likewise.
38629 (real_convert_from_fixed): Likewise.
38630 * fold-const.h (mem_ref_offset): Return an offset_int.
38631 (div_if_zero_remainder): Remove code parameter.
38632 * fold-const.c (div_if_zero_remainder): Remove code parameter.
38633 Use wide-int interfaces.
38634 (may_negate_without_overflow_p): Use wide-int interfaces.
38635 (negate_expr_p): Likewise.
38636 (fold_negate_expr): Likewise.
38637 (int_const_binop_1): Likewise.
38638 (const_binop): Likewise.
38639 (fold_convert_const_int_from_int): Likewise.
38640 (fold_convert_const_int_from_real): Likewise.
38641 (fold_convert_const_int_from_fixed): Likewise.
38642 (fold_convert_const_fixed_from_int): Likewise.
38643 (all_ones_mask_p): Take an unsigned size. Use wide-int interfaces.
38644 (sign_bit_p): Use wide-int interfaces.
38645 (make_range_step): Likewise.
38646 (build_range_check): Likewise. Pass an integer of the correct type
38647 instead of using integer_one_node.
38648 (range_predecessor): Pass an integer of the correct type instead
38649 of using integer_one_node.
38650 (range_successor): Likewise.
38651 (merge_ranges): Likewise.
38652 (unextend): Use wide-int interfaces.
38653 (extract_muldiv_1): Likewise.
38654 (fold_div_compare): Likewise.
38655 (fold_single_bit_test): Likewise.
38656 (fold_sign_changed_comparison): Likewise.
38657 (try_move_mult_to_index): Update calls to div_if_zero_remainder.
38658 (fold_plusminus_mult_expr): Use wide-int interfaces.
38659 (native_encode_int): Likewise.
38660 (native_interpret_int): Likewise.
38661 (fold_unary_loc): Likewise.
38662 (pointer_may_wrap_p): Likewise.
38663 (size_low_cst): Likewise.
38664 (mask_with_tz): Likewise.
38665 (fold_binary_loc): Likewise.
38666 (fold_ternary_loc): Likewise.
38667 (multiple_of_p): Likewise.
38668 (tree_call_nonnegative_warnv_p): Update calls to
38669 tree_int_cst_min_precision and real_from_integer.
38670 (fold_negate_const): Use wide-int interfaces.
38671 (fold_abs_const): Likewise.
38672 (fold_relational_const): Use tree_int_cst_lt.
38673 (round_up_loc): Use wide-int interfaces.
38674 * genemit.c (gen_exp): Add CONST_WIDE_INT case.
38675 * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
38676 * gengtype.c: Remove include of double-int.h.
38677 (do_typedef): Use wide-int interfaces.
38678 (open_base_files): Add wide-int.h.
38679 (main): Add offset_int and widest_int typedefs.
38680 * gengtype-lex.l: Handle "^".
38681 (CXX_KEYWORD): Add "static".
38682 * gengtype-parse.c (require3): New.
38683 (require_template_declaration): Handle constant template arguments
38684 and nested templates.
38685 * gengtype-state.c: Don't include "double-int.h".
38686 * genpreds.c (write_one_predicate_function): Update comment.
38687 (write_tm_constrs_h): Add check for hval and lval use in
38688 CONST_WIDE_INT.
38689 * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
38690 (add_to_sequence): Likewise.
38691 * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
38692 and const_double_operand.
38693 * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
38694 interfaces.
38695 * gimple-fold.c (get_base_constructor): Likewise.
38696 (fold_array_ctor_reference): Likewise.
38697 (fold_nonarray_ctor_reference): Likewise.
38698 (fold_const_aggregate_ref_1): Likewise.
38699 (gimple_val_nonnegative_real_p): Likewise.
38700 (gimple_fold_indirect_ref): Likewise.
38701 * gimple-pretty-print.c (dump_ssaname_info): Likewise.
38702 * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
38703 (struct slsr_cand_d): Change index to be widest_int.
38704 (struct incr_info_d): Change incr to be widest_int.
38705 (alloc_cand_and_find_basis): Use wide-int interfaces.
38706 (slsr_process_phi): Likewise.
38707 (backtrace_base_for_ref): Likewise. Return a widest_int.
38708 (restructure_reference): Take a widest_int instead of a double_int.
38709 (slsr_process_ref): Use wide-int interfaces.
38710 (create_mul_ssa_cand): Likewise.
38711 (create_mul_imm_cand): Likewise.
38712 (create_add_ssa_cand): Likewise.
38713 (create_add_imm_cand): Take a widest_int instead of a double_int.
38714 (slsr_process_add): Use wide-int interfaces.
38715 (slsr_process_cast): Likewise.
38716 (slsr_process_copy): Likewise.
38717 (dump_candidate): Likewise.
38718 (dump_incr_vec): Likewise.
38719 (replace_ref): Likewise.
38720 (cand_increment): Likewise. Return a widest_int.
38721 (cand_abs_increment): Likewise.
38722 (replace_mult_candidate): Take a widest_int instead of a double_int.
38723 (replace_unconditional_candidate): Use wide-int interfaces.
38724 (incr_vec_index): Take a widest_int instead of a double_int.
38725 (create_add_on_incoming_edge): Likewise.
38726 (create_phi_basis): Use wide-int interfaces.
38727 (replace_conditional_candidate): Likewise.
38728 (record_increment): Take a widest_int instead of a double_int.
38729 (record_phi_increments): Use wide-int interfaces.
38730 (phi_incr_cost): Take a widest_int instead of a double_int.
38731 (lowest_cost_path): Likewise.
38732 (total_savings): Likewise.
38733 (analyze_increments): Use wide-int interfaces.
38734 (ncd_with_phi): Take a widest_int instead of a double_int.
38735 (ncd_of_cand_and_phis): Likewise.
38736 (nearest_common_dominator_for_cands): Likewise.
38737 (insert_initializers): Use wide-int interfaces.
38738 (all_phi_incrs_profitable): Likewise.
38739 (replace_one_candidate): Likewise.
38740 (replace_profitable_candidates): Likewise.
38741 * godump.c: Include wide-int-print.h.
38742 (go_output_typedef): Use wide-int interfaces.
38743 * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
38744 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
38745 (build_loop_iteration_domains): Likewise.
38746 * hooks.h: Include wide-int.h rather than double-int.h.
38747 (hook_bool_dint_dint_uint_bool_true): Delete.
38748 (hook_bool_wint_wint_uint_bool_true): Declare.
38749 * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
38750 (hook_bool_wint_wint_uint_bool_true): New.
38751 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
38752 interfaces.
38753 (ubsan_expand_si_overflow_mul_check): Likewise.
38754 * ipa-devirt.c (get_polymorphic_call_info): Likewise.
38755 * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
38756 (get_ancestor_addr_info): Likewise.
38757 (ipa_modify_call_arguments): Likewise.
38758 * loop-doloop.c (doloop_modify): Likewise.
38759 (doloop_optimize): Likewise.
38760 * loop-iv.c (iv_number_of_iterations): Likewise.
38761 * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
38762 (unroll_loop_constant_iterations): Likewise.
38763 (decide_unroll_runtime_iterations): Likewise.
38764 (unroll_loop_runtime_iterations): Likewise.
38765 (decide_peel_simple): Likewise.
38766 (decide_unroll_stupid): Likewise.
38767 * lto-streamer-in.c (streamer_read_wi): Add.
38768 (input_cfg): Use wide-int interfaces.
38769 (lto_input_tree_1): Likewise.
38770 * lto-streamer-out.c (streamer_write_wi): Add.
38771 (hash_tree): Use wide-int interfaces.
38772 (output_cfg): Likewise.
38773 * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
38774 (GTFILES): Add wide-int.h and signop.h.
38775 (TAGS): Look for .cc files too.
38776 * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
38777 * optabs.c (expand_subword_shift): Likewise.
38778 (expand_doubleword_shift): Likewise.
38779 (expand_absneg_bit): Likewise.
38780 (expand_copysign_absneg): Likewise.
38781 (expand_copysign_bit): Likewise.
38782 * postreload.c (reload_cse_simplify_set): Likewise.
38783 * predict.c (predict_iv_comparison): Likewise.
38784 * pretty-print.h: Include wide-int-print.h.
38785 (pp_wide_int) New.
38786 * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
38787 * print-tree.c: Include wide-int-print.h.
38788 (print_node_brief): Use wide-int interfaces.
38789 (print_node): Likewise.
38790 * read-rtl.c (validate_const_wide_int): New.
38791 (read_rtx_code): Add CONST_WIDE_INT case.
38792 * real.c: Include wide-int.h.
38793 (real_to_integer2): Delete.
38794 (real_to_integer): New function, returning a wide_int.
38795 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
38796 (ten_to_ptwo): Update call to real_from_integer.
38797 (real_digit): Likewise.
38798 * real.h: Include signop.h, wide-int.h and insn-modes.h.
38799 (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
38800 (REAL_VALUE_TO_INT): Delete.
38801 (real_to_integer): Declare a wide-int form.
38802 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
38803 * recog.c (const_int_operand): Improve comment.
38804 (const_scalar_int_operand): New.
38805 (const_double_operand): Add a separate definition for CONST_WIDE_INT.
38806 * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
38807 (split_double): Likewise.
38808 * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
38809 (rtx_size): Likewise.
38810 (rtx_alloc_stat_v): New.
38811 (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
38812 (cwi_output_hex): New.
38813 (iterative_hash_rtx): Handle CONST_WIDE_INT.
38814 (cwi_check_failed_bounds): New.
38815 * rtl.def (CONST_WIDE_INT): New.
38816 * rtl.h: Include <utility> and wide-int.h.
38817 (struct hwivec_def): New.
38818 (CWI_GET_NUM_ELEM): New.
38819 (CWI_PUT_NUM_ELEM): New.
38820 (struct rtx_def): Add num_elem and hwiv.
38821 (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
38822 (CASE_CONST_UNIQUE): Likewise.
38823 (CASE_CONST_ANY): Likewise.
38824 (CONST_SCALAR_INT_P): Likewise.
38825 (CONST_WIDE_INT_P): New.
38826 (CWI_ELT): New.
38827 (HWIVEC_CHECK): New.
38828 (cwi_check_failed_bounds): New.
38829 (CWI_ELT): New.
38830 (HWIVEC_CHECK): New.
38831 (CONST_WIDE_INT_VEC) New.
38832 (CONST_WIDE_INT_NUNITS) New.
38833 (CONST_WIDE_INT_ELT) New.
38834 (rtx_mode_t): New type.
38835 (wi::int_traits <rtx_mode_t>): New.
38836 (wi::shwi): New.
38837 (wi::min_value): New.
38838 (wi::max_value): New.
38839 (rtx_alloc_v) New.
38840 (const_wide_int_alloc): New.
38841 (immed_wide_int_const): New.
38842 * sched-vis.c (print_value): Handle CONST_WIDE_INT.
38843 * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
38844 * signop.h: New file.
38845 * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
38846 (simplify_const_unary_operation): Use wide-int interfaces.
38847 (simplify_binary_operation_1): Likewise.
38848 (simplify_const_binary_operation): Likewise.
38849 (simplify_const_relational_operation): Likewise.
38850 (simplify_immed_subreg): Likewise.
38851 * stmt.c (expand_case): Likewise.
38852 * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
38853 signop rather than a bool.
38854 * stor-layout.c (layout_type): Use wide-int interfaces.
38855 (initialize_sizetypes): Update calls to
38856 set_min_and_max_values_for_integral_type.
38857 (set_min_and_max_values_for_integral_type): Take a signop rather
38858 than a bool. Use wide-int interfaces.
38859 (fixup_signed_type): Update accordingly. Remove
38860 HOST_BITS_PER_DOUBLE_INT limit.
38861 (fixup_unsigned_type): Likewise.
38862 * system.h (STATIC_CONSTANT_P): New.
38863 (STATIC_ASSERT): New.
38864 * target.def (can_use_doloop_p): Take widest_ints rather than
38865 double_ints.
38866 * target.h: Include wide-int.h rather than double-int.h.
38867 * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
38868 than double_ints.
38869 * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
38870 rather than INT_CST_LT_UNSIGNED.
38871 (can_use_doloop_if_innermost): Take widest_ints rather than
38872 double_ints.
38873 * tree-affine.c: Include wide-int-print.h.
38874 (double_int_ext_for_comb): Delete.
38875 (wide_int_ext_for_comb): New.
38876 (aff_combination_zero): Use wide-int interfaces.
38877 (aff_combination_const): Take a widest_int instead of a double_int.
38878 (aff_combination_elt): Use wide-int interfaces.
38879 (aff_combination_scale): Take a widest_int instead of a double_int.
38880 (aff_combination_add_elt): Likewise.
38881 (aff_combination_add_cst): Likewise.
38882 (aff_combination_add): Use wide-int interfaces.
38883 (aff_combination_convert): Likewise.
38884 (tree_to_aff_combination): Likewise.
38885 (add_elt_to_tree): Take a widest_int instead of a double_int.
38886 (aff_combination_to_tree): Use wide-int interfaces.
38887 (aff_combination_remove_elt): Likewise.
38888 (aff_combination_add_product): Take a widest_int instead of
38889 a double_int.
38890 (aff_combination_mult): Use wide-int interfaces.
38891 (aff_combination_expand): Likewise.
38892 (double_int_constant_multiple_p): Delete.
38893 (wide_int_constant_multiple_p): New.
38894 (aff_combination_constant_multiple_p): Take a widest_int pointer
38895 instead of a double_int pointer.
38896 (print_aff): Use wide-int interfaces.
38897 (get_inner_reference_aff): Take a widest_int pointer
38898 instead of a double_int pointer.
38899 (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
38900 * tree-affine.h: Include wide-int.h.
38901 (struct aff_comb_elt): Change type of coef to widest_int.
38902 (struct affine_tree_combination): Change type of offset to widest_int.
38903 (double_int_ext_for_comb): Delete.
38904 (wide_int_ext_for_comb): New.
38905 (aff_combination_const): Use widest_int instead of double_int.
38906 (aff_combination_scale): Likewise.
38907 (aff_combination_add_elt): Likewise.
38908 (aff_combination_constant_multiple_p): Likewise.
38909 (get_inner_reference_aff): Likewise.
38910 (aff_comb_cannot_overlap_p): Likewise.
38911 (aff_combination_zero_p): Use wide-int interfaces.
38912 * tree.c: Include tree.h.
38913 (init_ttree): Use make_int_cst.
38914 (tree_code_size): Removed code for INTEGER_CST case.
38915 (tree_size): Add INTEGER_CST case.
38916 (make_node_stat): Update comment.
38917 (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
38918 (build_int_cst_type): Use wide-int interfaces.
38919 (double_int_to_tree): Likewise.
38920 (double_int_fits_to_tree_p): Delete.
38921 (force_fit_type_double): Delete.
38922 (force_fit_type): New.
38923 (int_cst_hash_hash): Use wide-int interfaces.
38924 (int_cst_hash_eq): Likewise.
38925 (build_int_cst_wide): Delete.
38926 (wide_int_to_tree): New.
38927 (cache_integer_cst): Use wide-int interfaces.
38928 (build_low_bits_mask): Likewise.
38929 (cst_and_fits_in_hwi): Likewise.
38930 (real_value_from_int_cst): Likewise.
38931 (make_int_cst_stat): New.
38932 (integer_zerop): Use wide_int interfaces.
38933 (integer_onep): Likewise.
38934 (integer_all_onesp): Likewise.
38935 (integer_pow2p): Likewise.
38936 (integer_nonzerop): Likewise.
38937 (tree_log2): Likewise.
38938 (tree_floor_log2): Likewise.
38939 (tree_ctz): Likewise.
38940 (int_size_in_bytes): Likewise.
38941 (mem_ref_offset): Return an offset_int rather than a double_int.
38942 (build_type_attribute_qual_variant): Use wide_int interfaces.
38943 (type_hash_eq): Likewise
38944 (tree_int_cst_equal): Likewise.
38945 (tree_int_cst_lt): Delete.
38946 (tree_int_cst_compare): Likewise.
38947 (tree_fits_shwi_p): Use wide_int interfaces.
38948 (tree_fits_uhwi_p): Likewise.
38949 (tree_int_cst_sign_bit): Likewise.
38950 (tree_int_cst_sgn): Likewise.
38951 (tree_int_cst_min_precision): Take a signop rather than a bool.
38952 (simple_cst_equal): Use wide_int interfaces.
38953 (compare_tree_int): Likewise.
38954 (iterative_hash_expr): Likewise.
38955 (int_fits_type_p): Likewise. Use tree_int_cst_lt rather than
38956 INT_CST_LT.
38957 (get_type_static_bounds): Use wide_int interfaces.
38958 (tree_int_cst_elt_check_failed): New.
38959 (build_common_tree_nodes): Reordered to set prec before filling in
38960 value.
38961 (int_cst_value): Check cst_and_fits_in_hwi.
38962 (widest_int_cst_value): Use wide_int interfaces.
38963 (upper_bound_in_type): Likewise.
38964 (lower_bound_in_type): Likewise.
38965 (num_ending_zeros): Likewise.
38966 (drop_tree_overflow): Likewise.
38967 * tree-call-cdce.c (check_pow): Update call to real_from_integer.
38968 (gen_conditions_for_pow_cst_base): Likewise.
38969 * tree-cfg.c: Include wide-int.h and wide-int-print.h.
38970 (group_case_labels_stmt): Use wide-int interfaces.
38971 (verify_gimple_assign_binary): Likewise.
38972 (print_loop): Likewise.
38973 * tree-chrec.c (tree_fold_binomial): Likewise.
38974 * tree-core.h (struct tree_base): Add int_length.
38975 (struct tree_int_cst): Change rep of value.
38976 * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
38977 (dr_may_alias_p): Likewise.
38978 (max_stmt_executions_tree): Likewise.
38979 * tree.def (INTEGER_CST): Update comment.
38980 * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
38981 * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
38982 * tree-dump.c: Include wide-int.h and wide-int-print.h.
38983 (dequeue_and_dump): Use wide-int interfaces.
38984 * tree.h: Include wide-int.h.
38985 (NULL_TREE): Moved to earlier loc in file.
38986 (TREE_INT_CST_ELT_CHECK): New.
38987 (tree_int_cst_elt_check_failed): New.
38988 (TYPE_SIGN): New.
38989 (TREE_INT_CST): Delete.
38990 (TREE_INT_CST_LOW): Use wide-int interfaces.
38991 (TREE_INT_CST_HIGH): Delete.
38992 (TREE_INT_CST_NUNITS): New.
38993 (TREE_INT_CST_EXT_NUNITS): Likewise.
38994 (TREE_INT_CST_OFFSET_NUNITS): Likewise.
38995 (TREE_INT_CST_ELT): Likewise.
38996 (INT_CST_LT): Delete.
38997 (tree_int_cst_elt_check): New (two forms).
38998 (type_code_size): Update comment.
38999 (make_int_cst_stat, make_int_cst): New.
39000 (tree_to_double_int): Delete.
39001 (double_int_fits_to_tree_p): Delete.
39002 (force_fit_type_double): Delete.
39003 (build_int_cstu): Replace with out-of-line function.
39004 (build_int_cst_wide): Delete.
39005 (tree_int_cst_lt): Define inline.
39006 (tree_int_cst_le): New.
39007 (tree_int_cst_compare): Define inline.
39008 (tree_int_cst_min_precision): Take a signop rather than a bool.
39009 (wi::int_traits <const_tree>): New.
39010 (wi::int_traits <tree>): New.
39011 (wi::extended_tree): New.
39012 (wi::int_traits <wi::extended_tree>): New.
39013 (wi::to_widest): New.
39014 (wi::to_offset): New.
39015 (wi::fits_to_tree_p): New.
39016 (wi::min_value): New.
39017 (wi::max_value): New.
39018 * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
39019 (copy_tree_body_r): Likewise.
39020 * tree-object-size.c (compute_object_offset): Likewise.
39021 (addr_object_size): Likewise.
39022 * tree-predcom.c: Include wide-int-print.h.
39023 (struct dref_d): Change type of offset to widest_int.
39024 (dump_dref): Call wide-int printer.
39025 (aff_combination_dr_offset): Use wide-int interfaces.
39026 (determine_offset): Take a widest_int pointer rather than a
39027 double_int pointer.
39028 (split_data_refs_to_components): Use wide-int interfaces.
39029 (suitable_component_p): Likewise.
39030 (order_drefs): Likewise.
39031 (add_ref_to_chain): Likewise.
39032 (valid_initializer_p): Likewise.
39033 (determine_roots_comp): Likewise.
39034 * tree-pretty-print.c: Include wide-int-print.h.
39035 (dump_generic_node): Use wide-int interfaces.
39036 * tree-sra.c (sra_ipa_modify_expr): Likewise.
39037 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
39038 (move_fixed_address_to_symbol): Likewise.
39039 (move_hint_to_base): Likewise.
39040 (move_pointer_to_base): Likewise.
39041 (move_variant_to_index): Likewise.
39042 (most_expensive_mult_to_index): Likewise.
39043 (addr_to_parts): Likewise.
39044 (copy_ref_info): Likewise.
39045 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
39046 (indirect_refs_may_alias_p): Likewise.
39047 (stmt_kills_ref_p_1): Likewise.
39048 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
39049 * tree-ssa-ccp.c: Update comment at top of file. Include
39050 wide-int-print.h.
39051 (struct prop_value_d): Change type of mask to widest_int.
39052 (extend_mask): New function.
39053 (dump_lattice_value): Use wide-int interfaces.
39054 (get_default_value): Likewise.
39055 (set_constant_value): Likewise.
39056 (set_value_varying): Likewise.
39057 (valid_lattice_transition): Likewise.
39058 (set_lattice_value): Likewise.
39059 (value_to_double_int): Delete.
39060 (value_to_wide_int): New.
39061 (get_value_from_alignment): Use wide-int interfaces.
39062 (get_value_for_expr): Likewise.
39063 (do_dbg_cnt): Likewise.
39064 (ccp_finalize): Likewise.
39065 (ccp_lattice_meet): Likewise.
39066 (bit_value_unop_1): Use widest_ints rather than double_ints.
39067 (bit_value_binop_1): Likewise.
39068 (bit_value_unop): Use wide-int interfaces.
39069 (bit_value_binop): Likewise.
39070 (bit_value_assume_aligned): Likewise.
39071 (evaluate_stmt): Likewise.
39072 (ccp_fold_stmt): Likewise.
39073 (visit_cond_stmt): Likewise.
39074 (ccp_visit_stmt): Likewise.
39075 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
39076 (constant_pointer_difference): Likewise.
39077 (associate_pointerplus): Likewise.
39078 (combine_conversions): Likewise.
39079 * tree-ssa-loop.h: Include wide-int.h.
39080 (struct tree_niter_desc): Change type of max to widest_int.
39081 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
39082 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
39083 (remove_redundant_iv_tests): Likewise.
39084 (canonicalize_loop_induction_variables): Likewise.
39085 * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
39086 (constant_multiple_of): Take a widest_int pointer instead of
39087 a double_int pointer.
39088 (get_computation_aff): Use wide-int interfaces.
39089 (ptr_difference_cost): Likewise.
39090 (difference_cost): Likewise.
39091 (get_loop_invariant_expr_id): Likewise.
39092 (get_computation_cost_at): Likewise.
39093 (iv_elimination_compare_lt): Likewise.
39094 (may_eliminate_iv): Likewise.
39095 * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
39096 instead of double_int.
39097 (max_loop_iterations): Likewise.
39098 (max_stmt_executions): Likewise.
39099 (estimated_stmt_executions): Likewise.
39100 * tree-ssa-loop-niter.c: Include wide-int-print.h.
39101 (split_to_var_and_offset): Use wide-int interfaces.
39102 (determine_value_range): Likewise.
39103 (bound_difference_of_offsetted_base): Likewise.
39104 (bounds_add): Take a widest_int instead of a double_int.
39105 (number_of_iterations_ne_max): Use wide-int interfaces.
39106 (number_of_iterations_ne): Likewise.
39107 (number_of_iterations_lt_to_ne): Likewise.
39108 (assert_loop_rolls_lt): Likewise.
39109 (number_of_iterations_lt): Likewise.
39110 (number_of_iterations_le): Likewise.
39111 (number_of_iterations_cond): Likewise.
39112 (number_of_iterations_exit): Likewise.
39113 (finite_loop_p): Likewise.
39114 (derive_constant_upper_bound_assign): Likewise.
39115 (derive_constant_upper_bound): Return a widest_int.
39116 (derive_constant_upper_bound_ops): Likewise.
39117 (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
39118 (record_estimate): Take a widest_int rather than a double_int.
39119 (record_nonwrapping_iv): Use wide-int interfaces.
39120 (double_int_cmp): Delete.
39121 (wide_int_cmp): New.
39122 (bound_index): Take a widest_int rather than a double_int.
39123 (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
39124 (maybe_lower_iteration_bound): Likewise.
39125 (estimate_numbers_of_iterations_loop): Likewise.
39126 (estimated_loop_iterations): Take a widest_int pointer than than
39127 a double_int pointer.
39128 (estimated_loop_iterations_int): Use wide-int interfaces.
39129 (max_loop_iterations): Take a widest_int pointer than than
39130 a double_int pointer.
39131 (max_loop_iterations_int): Use wide-int interfaces.
39132 (max_stmt_executions): Take a widest_int pointer than than
39133 a double_int pointer.
39134 (estimated_stmt_executions): Likewise.
39135 (n_of_executions_at_most): Use wide-int interfaces.
39136 (scev_probably_wraps_p): Likewise.
39137 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
39138 to real_to_integer.
39139 * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
39140 interfaces.
39141 * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
39142 double_ints. Adjust for trailing_wide_ints <3> representation.
39143 (set_nonzero_bits): Likewise.
39144 (get_range_info): Return wide_ints rather than double_ints.
39145 Adjust for trailing_wide_ints <3> representation.
39146 (get_nonzero_bits): Likewise.
39147 (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
39148 representation.
39149 * tree-ssanames.h (struct range_info_def): Replace min, max and
39150 nonzero_bits with a trailing_wide_ints <3>.
39151 (set_range_info): Use wide_int_refs rather than double_ints.
39152 (set_nonzero_bits): Likewise.
39153 (get_range_info): Return wide_ints rather than double_ints.
39154 (get_nonzero_bits): Likewise.
39155 * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
39156 * tree-ssa-pre.c (phi_translate_1): Likewise.
39157 * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
39158 (acceptable_pow_call): Likewise.
39159 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
39160 interfaces.
39161 (vn_reference_fold_indirect): Likewise.
39162 (vn_reference_maybe_forwprop_address): Likewise.
39163 (valueize_refs_1): Likewise.
39164 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
39165 * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
39166 tree_int_cst_lt and tree_int_cst_le.
39167 * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
39168 interfaces.
39169 (streamer_alloc_tree): Likewise.
39170 * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
39171 (streamer_write_tree_header): Likewise.
39172 (streamer_write_integer_cst): Likewise.
39173 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
39174 (build_constructors): Likewise.
39175 (array_value_type): Likewise.
39176 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
39177 (vect_check_gather): Likewise.
39178 * tree-vect-generic.c (build_replicated_const): Likewise.
39179 (expand_vector_divmod): Likewise.
39180 * tree-vect-loop.c (vect_transform_loop): Likewise.
39181 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
39182 (vect_do_peeling_for_alignment): Likewise.
39183 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
39184 * tree-vrp.c: Include wide-int.h.
39185 (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
39186 (extract_range_from_assert): Use wide-int interfaces.
39187 (vrp_int_const_binop): Likewise.
39188 (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
39189 double_int pointers.
39190 (ranges_from_anti_range): Use wide-int interfaces.
39191 (quad_int_cmp): Delete.
39192 (quad_int_pair_sort): Likewise.
39193 (extract_range_from_binary_expr_1): Use wide-int interfaces.
39194 (extract_range_from_unary_expr_1): Likewise.
39195 (adjust_range_with_scev): Likewise.
39196 (masked_increment): Take and return wide_ints rather than double_ints.
39197 (register_edge_assert_for_2): Use wide-int interfaces.
39198 (check_array_ref): Likewise.
39199 (search_for_addr_array): Likewise.
39200 (maybe_set_nonzero_bits): Likewise.
39201 (union_ranges): Pass an integer of the correct type instead of
39202 using integer_one_node.
39203 (intersect_ranges): Likewise.
39204 (simplify_truth_ops_using_ranges): Likewise.
39205 (simplify_bit_ops_using_ranges): Use wide-int interfaces.
39206 (range_fits_type_p): Likewise.
39207 (simplify_cond_using_ranges): Likewise. Take a signop rather than
39208 a bool.
39209 (simplify_conversion_using_ranges): Use wide-int interfaces.
39210 (simplify_float_conversion_using_ranges): Likewise.
39211 (vrp_finalize): Likewise.
39212 * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
39213 (gimple_stringops_transform): Likewise.
39214 * varasm.c (decode_addr_const): Likewise.
39215 (const_hash_1): Likewise.
39216 (const_rtx_hash_1): Likewise
39217 (output_constant): Likewise.
39218 (array_size_for_constructor): Likewise.
39219 (output_constructor_regular_field): Likewise.
39220 (output_constructor_bitfield): Likewise.
39221 * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
39222 * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
39223 GENERATOR_FILEs.
39224 * gencheck.c: Define BITS_PER_UNIT.
39225 * wide-int.cc: New.
39226 * wide-int.h: New.
39227 * wide-int-print.cc: New.
39228 * wide-int-print.h: New.
39229
39230 2014-05-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
39231
39232 * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
39233
39234 2014-05-06 Richard Biener <rguenther@suse.de>
39235
39236 * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
39237 TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
39238 (TODO_verify_all): Adjust.
39239 * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
39240 TODO_verify_stmts and TODO_verify_rtl_sharing.
39241 * bb-reorder.c: Likewise.
39242 * cfgexpand.c: Likewise.
39243 * cprop.c: Likewise.
39244 * cse.c: Likewise.
39245 * function.c: Likewise.
39246 * fwprop.c: Likewise.
39247 * gcse.c: Likewise.
39248 * gimple-ssa-isolate-paths.c: Likewise.
39249 * gimple-ssa-strength-reduction.c: Likewise.
39250 * ipa-split.c: Likewise.
39251 * loop-init.c: Likewise.
39252 * loop-unroll.c: Likewise.
39253 * lower-subreg.c: Likewise.
39254 * modulo-sched.c: Likewise.
39255 * postreload-gcse.c: Likewise.
39256 * predict.c: Likewise.
39257 * recog.c: Likewise.
39258 * sched-rgn.c: Likewise.
39259 * store-motion.c: Likewise.
39260 * tracer.c: Likewise.
39261 * trans-mem.c: Likewise.
39262 * tree-call-cdce.c: Likewise.
39263 * tree-cfg.c: Likewise.
39264 * tree-cfgcleanup.c: Likewise.
39265 * tree-complex.c: Likewise.
39266 * tree-eh.c: Likewise.
39267 * tree-emutls.c: Likewise.
39268 * tree-if-conv.c: Likewise.
39269 * tree-into-ssa.c: Likewise.
39270 * tree-loop-distribution.c: Likewise.
39271 * tree-object-size.c: Likewise.
39272 * tree-parloops.c: Likewise.
39273 * tree-pass.h: Likewise.
39274 * tree-sra.c: Likewise.
39275 * tree-ssa-ccp.c: Likewise.
39276 * tree-ssa-copy.c: Likewise.
39277 * tree-ssa-copyrename.c: Likewise.
39278 * tree-ssa-dce.c: Likewise.
39279 * tree-ssa-dom.c: Likewise.
39280 * tree-ssa-dse.c: Likewise.
39281 * tree-ssa-forwprop.c: Likewise.
39282 * tree-ssa-ifcombine.c: Likewise.
39283 * tree-ssa-loop-ch.c: Likewise.
39284 * tree-ssa-loop-ivcanon.c: Likewise.
39285 * tree-ssa-loop.c: Likewise.
39286 * tree-ssa-math-opts.c: Likewise.
39287 * tree-ssa-phiopt.c: Likewise.
39288 * tree-ssa-phiprop.c: Likewise.
39289 * tree-ssa-pre.c: Likewise.
39290 * tree-ssa-reassoc.c: Likewise.
39291 * tree-ssa-sink.c: Likewise.
39292 * tree-ssa-strlen.c: Likewise.
39293 * tree-ssa-tail-merge.c: Likewise.
39294 * tree-ssa-uncprop.c: Likewise.
39295 * tree-switch-conversion.c: Likewise.
39296 * tree-tailcall.c: Likewise.
39297 * tree-vect-generic.c: Likewise.
39298 * tree-vectorizer.c: Likewise.
39299 * tree-vrp.c: Likewise.
39300 * tsan.c: Likewise.
39301 * var-tracking.c: Likewise.
39302 * bt-load.c: Likewise.
39303 * cfgcleanup.c: Likewise.
39304 * combine-stack-adj.c: Likewise.
39305 * combine.c: Likewise.
39306 * compare-elim.c: Likewise.
39307 * config/epiphany/resolve-sw-modes.c: Likewise.
39308 * config/i386/i386.c: Likewise.
39309 * config/mips/mips.c: Likewise.
39310 * config/s390/s390.c: Likewise.
39311 * config/sh/sh_treg_combine.cc: Likewise.
39312 * config/sparc/sparc.c: Likewise.
39313 * dce.c: Likewise.
39314 * dse.c: Likewise.
39315 * final.c: Likewise.
39316 * ifcvt.c: Likewise.
39317 * mode-switching.c: Likewise.
39318 * passes.c: Likewise.
39319 * postreload.c: Likewise.
39320 * ree.c: Likewise.
39321 * reg-stack.c: Likewise.
39322 * regcprop.c: Likewise.
39323 * regrename.c: Likewise.
39324 * web.c: Likewise.
39325
39326 2014-05-06 Richard Biener <rguenther@suse.de>
39327
39328 PR middle-end/61070
39329 * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
39330 * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
39331
39332 2014-05-05 Jan Hubicka <hubicka@ucw.cz>
39333
39334 PR ipa/60965
39335 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
39336
39337 2014-05-05 Radovan Obradovic <robradovic@mips.com>
39338 Tom de Vries <tom@codesourcery.com>
39339
39340 * target.def (call_fusage_contains_non_callee_clobbers): New
39341 DEFHOOKPOD.
39342 * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
39343 Hooks to @menu.
39344 (@node Miscellaneous Register Hooks): New node.
39345 (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
39346 * doc/tm.texi: Regenerate.
39347
39348 2014-05-05 Marek Polacek <polacek@redhat.com>
39349
39350 PR driver/61065
39351 * opts.c (common_handle_option): Call error_at instead of warning_at.
39352
39353 2014-05-05 Richard Biener <rguenther@suse.de>
39354
39355 * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
39356 from last_verified if update_ssa ran. Move TODO_verify_rtl_sharing
39357 under the TODO_verify_il umbrella.
39358
39359 2014-05-05 Richard Biener <rguenther@suse.de>
39360
39361 * passes.c (execute_function_todo): Move TODO_verify_flow under
39362 the TODO_verify_ul umbrella.
39363
39364 2014-05-05 Richard Biener <rguenther@suse.de>
39365
39366 PR middle-end/61010
39367 * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
39368 X & CST away from a CST that is the mask of a mode.
39369
39370 2014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
39371
39372 * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
39373 int argument to enum machine_mode.
39374 (picochip_class_max_nregs): Ditto.
39375 * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
39376 (picochip_class_max_nregs): Ditto.
39377
39378 2014-05-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
39379
39380 * target.def: Add new target hook.
39381 * doc/tm.texi: Regenerate.
39382 * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
39383 * targhooks.c (default_keep_leaf_when_profiled): New function.
39384
39385 * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
39386 (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
39387
39388 2014-05-05 Bin Cheng <bin.cheng@arm.com>
39389
39390 PR tree-optimization/60363
39391 * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
39392 (copy_phi_args): New parameters. Call get_value_locus_in_path.
39393 (update_destination_phis): New parameter.
39394 (create_edge_and_update_destination_phis): Ditto.
39395 (ssa_fix_duplicate_block_edges): Pass new arguments.
39396 (thread_single_edge): Ditto.
39397
39398 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
39399
39400 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
39401 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
39402 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
39403 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
39404 Use RS6000_BTM_HARD_FLOAT.
39405 (BU_MISC_2): Likewise.
39406 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
39407 RS6000_BTM_HARD_FLOAT.
39408 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
39409 is explicitly used.
39410 (rs6000_invalid_builtin): Add hard floating builtin support.
39411 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
39412 hard float builtins.
39413 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
39414
39415 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
39416
39417 * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
39418 Add missing function* argument.
39419
39420 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
39421
39422 * lra-constraints.c (valid_address_p): Move earlier in file.
39423 Add a constraint argument to the address_info version.
39424 (satisfies_memory_constraint_p): New function.
39425 (satisfies_address_constraint_p): Likewise.
39426 (process_alt_operands, curr_insn_transform): Use them.
39427 (process_address): Pass the constraint to valid_address_p when
39428 checking address operands.
39429
39430 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
39431
39432 * config/mips/mips.c (mips_isa_rev): New variable.
39433 (mips_set_architecture): Set it.
39434 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
39435 from mips_isa_rev.
39436 (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
39437 (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
39438 (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
39439 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
39440 (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
39441 conditions in terms of mips_isa_rev.
39442 (mips_isa_rev): Declare.
39443
39444 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
39445
39446 * config/sh/sh-mem.cc: Use tabs instead of spaces.
39447 (prob_unlikely, prob_likely): Make variables const.
39448
39449 2014-05-03 Denis Chertykov <chertykov@gmail.com>
39450
39451 * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
39452
39453 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
39454
39455 * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
39456
39457 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
39458
39459 * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
39460 (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
39461 * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
39462 functions.
39463 (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
39464 sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
39465 sh_pass_in_reg_p.
39466 Replace usage of ROUND_REG with sh_round_reg.
39467 Use CEIL instead of ROUND_ADVANCE.
39468
39469 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
39470
39471 PR target/61026
39472 * config/sh/sh.c: Include stdlib headers before everything else.
39473
39474 2014-05-02 Jakub Jelinek <jakub@redhat.com>
39475
39476 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
39477 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
39478 (gimplify_adjust_omp_clauses): Simd region is never
39479 directly nested in combined parallel. Instead, for linear
39480 with copyin/copyout, if in combined for simd loop, make decl
39481 firstprivate/lastprivate on OMP_FOR.
39482 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
39483 expand_omp_for_static_chunk): When setting endvar, also set
39484 fd->loop.v to the same value.
39485
39486 2014-05-02 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
39487
39488 * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
39489
39490 2014-05-02 Alan Lawrence <alan.lawrence@arm.com>
39491
39492 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
39493 expression.
39494
39495 2014-05-02 Marek Polacek <polacek@redhat.com>
39496
39497 * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
39498
39499 2014-05-02 Kito Cheng <kito@0xlab.org>
39500
39501 * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
39502 to a C expression marco.
39503 * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
39504 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
39505 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
39506 * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
39507 HONOR_REG_ALLOC_ORDER.
39508 * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
39509
39510 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
39511
39512 * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
39513
39514 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
39515
39516 * config/arc/arc.c (arc_select_cc_mode): Fix typo.
39517
39518 2014-05-01 Yuri Rumyantsev <ysrumyan@gmail.com>
39519
39520 * tree-if-conv.c (is_cond_scalar_reduction): New function.
39521 (convert_scalar_cond_reduction): Likewise.
39522 (predicate_scalar_phi): Add recognition and transformation
39523 of simple conditioanl reduction to be vectorizable.
39524
39525 2014-05-01 Marek Polacek <polacek@redhat.com>
39526
39527 PR c/43245
39528 * doc/invoke.texi: Document -Wdiscarded-qualifiers.
39529
39530 2014-04-30 Alan Lawrence <alan.lawrence@arm.com>
39531
39532 * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
39533 vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
39534 vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
39535 vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
39536 vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
39537 vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
39538 vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
39539 vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
39540
39541 2014-04-30 Joern Rennecke <joern.rennecke@embecosm.com>
39542
39543 * config/arc/arc.opt (mlra): Move comment above option name
39544 to avoid mis-parsing as language options.
39545
39546 2014-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
39547
39548 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
39549 * config/sol2.h: ... here.
39550 * config/sol2-10.h: Remove.
39551
39552 * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
39553 (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
39554 (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
39555 (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
39556 (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
39557 * config/sol2.h: ... here.
39558 (SECTION_NAME_FORMAT): Don't redefine.
39559 (STARTFILE_ARCH32_SPEC): Rename to ...
39560 (STARTFILE_ARCH_SPEC): ... this.
39561 (ASM_OUTPUT_ALIGNED_COMMON): Move ...
39562 * config/sparc/sol2.h: ... here.
39563 (SECTION_NAME_FORMAT): Don't undef.
39564 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
39565 (SUBTARGET_EXTRA_SPECS): Remove.
39566 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
39567
39568 * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
39569 (MD_STARTFILE_PREFIX): Remove.
39570 (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
39571 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
39572 (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
39573 (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
39574 (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
39575 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
39576 * config/i386/sol2.h: ... here.
39577 (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
39578 * config/i386/sol2-bi.h: Remove.
39579 * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
39580 (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
39581
39582 * config/i386/t-sol2-64: Rename to ...
39583 * config/i386/t-sol2: ... this.
39584 * config/sparc/t-sol2-64: Rename to ...
39585 * config/sparc/t-sol2: ... this.
39586
39587 * config.gcc (*-*-solaris2*): Split sol2_tm_file into
39588 sol2_tm_file_head, sol2_tm_file_tail.
39589 Include ${cpu_type}/sol2.h before sol2.h.
39590 Remove sol2-10.h.
39591 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
39592 i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
39593 Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
39594 Reflect i386/t-sol2-64 renaming.
39595 (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
39596 Reflect sparc/t-sol2-64 renaming.
39597
39598 2014-04-30 Richard Biener <rguenther@suse.de>
39599
39600 * passes.c (execute_function_todo): Move TODO_verify_stmts
39601 and TODO_verify_ssa under the TODO_verify_il umbrella.
39602 * tree-ssa.h (verify_ssa): Adjust prototype.
39603 * tree-ssa.c (verify_ssa): Add parameter to tell whether
39604 we should verify SSA operands.
39605 * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
39606 * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
39607 whether we should verify whether not throwing stmts have EH info.
39608 * graphite-scop-detection.c (create_sese_edges): Adjust.
39609 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
39610 * tree-eh.c (lower_try_finally_switch): Do not add the
39611 default case label twice.
39612
39613 2014-04-30 Marek Polacek <polacek@redhat.com>
39614
39615 * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
39616 * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
39617 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
39618 * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
39619
39620 2014-04-29 Alan Lawrence <alan.lawrence@arm.com>
39621
39622 * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
39623 vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
39624 vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
39625 vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
39626 vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
39627 vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
39628 vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
39629 vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
39630
39631 2014-04-29 David Malcolm <dmalcolm@redhat.com>
39632
39633 * tree-cfg.c (dump_function_to_file): Dump the return type of
39634 functions, in a line to itself before the function body, mimicking
39635 the layout of a C function.
39636
39637 2014-04-29 Jakub Jelinek <jakub@redhat.com>
39638
39639 PR tree-optimization/60971
39640 * tree-tailcall.c (process_assignment): Reject conversions which
39641 reduce precision.
39642
39643 2014-04-29 James Greenhalgh <james.greenhalgh@arm.com>
39644
39645 * calls.c (initialize_argument_information): Always treat
39646 PUSH_ARGS_REVERSED as 1, simplify code accordingly.
39647 (expand_call): Likewise.
39648 (emit_library_call_calue_1): Likewise.
39649 * expr.c (PUSH_ARGS_REVERSED): Do not define.
39650 (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
39651 code accordingly.
39652
39653 2014-04-29 Nick Clifton <nickc@redhat.com>
39654
39655 * config/msp430/msp430.md (umulsidi): Fix typo.
39656 (mulhisi3): Enable even inside interrupt handlers.
39657 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
39658 bigger return address pushed in large mode.
39659
39660 2014-04-29 Nick Clifton <nickc@redhat.com>
39661
39662 * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
39663 (arc_init_reg_tables): Use a machine_mode enum to iterate over
39664 available modes.
39665 * config/m32r/m32r.c (init_reg_tables): Likewise.
39666 * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
39667 enum to hold the modes.
39668
39669 2014-04-29 Richard Biener <rguenther@suse.de>
39670
39671 * dominance.c (free_dominance_info): Add overload with
39672 function parameter.
39673 (dom_info_state): Likewise.
39674 (dom_info_available_p): Likewise.
39675 * basic-block.h (free_dominance_info, dom_info_state,
39676 dom_info_available_p): Declare overloads.
39677 * passes.c (execute_function_todo): Verify that verifiers
39678 don't change dominator info state. Drop dominator info
39679 for IPA pass invocations.
39680 * cgraph.c (release_function_body): Restore asserts that
39681 dominator information is released.
39682
39683 2014-04-29 Patrick Palka <patrick@parcs.ath.cx>
39684
39685 * doc/invoke.texi: Fix typo.
39686 * tree-vrp.c: Fix typos.
39687 * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
39688
39689 2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
39690
39691 * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
39692
39693 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
39694
39695 * config/aarch64/aarch64-builtins.c
39696 (aarch64_types_storestruct_lane_qualifiers): New.
39697 (TYPES_STORESTRUCT_LANE): Likewise.
39698 * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
39699 (st3_lane): Likewise.
39700 (st4_lane): Likewise.
39701 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
39702 (vec_store_lanesci_lane<mode>): Likewise.
39703 (vec_store_lanesxi_lane<mode>): Likewise.
39704 (aarch64_st2_lane<VQ:mode>): Likewise.
39705 (aarch64_st3_lane<VQ:mode>): Likewise.
39706 (aarch64_st4_lane<VQ:mode>): Likewise.
39707 * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
39708 * config/aarch64/arm_neon.h
39709 (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
39710 use new macro arguments.
39711 (__ST3_LANE_FUNC): Likewise.
39712 (__ST4_LANE_FUNC): Likewise.
39713 * config/aarch64/iterators.md (V_TWO_ELEM): New.
39714 (V_THREE_ELEM): Likewise.
39715 (V_FOUR_ELEM): Likewise.
39716
39717 2014-04-28 David Malcolm <dmalcolm@redhat.com>
39718
39719 * doc/gimple.texi: Replace the description of the now-defunct
39720 union gimple_statement_d with a diagram showing the
39721 gimple_statement_base class hierarchy and its relationships to
39722 the GSS_ and GIMPLE_ enums.
39723
39724 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
39725
39726 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
39727 * config/aarch64/aarch64.c
39728 (aarch64_cannot_change_mode_class): Weaken conditions.
39729 (aarch64_modes_tieable_p): New.
39730 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
39731
39732 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
39733
39734 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
39735 (loadsync_<mode>): Change mode.
39736 (load_quadpti, store_quadpti): New.
39737 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
39738 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
39739
39740 2014-04-28 Martin Jambor <mjambor@suse.cz>
39741
39742 * tree-sra.c (sra_modify_expr): Generate new memory accesses with
39743 same alias type as the original statement.
39744 (subreplacement_assignment_data): New type.
39745 (handle_unscalarized_data_in_subtree): New type of parameter,
39746 generate new memory accesses with same alias type as the original
39747 statement.
39748 (load_assign_lhs_subreplacements): Likewise.
39749 (sra_modify_constructor_assign): Generate new memory accesses with
39750 same alias type as the original statement.
39751
39752 2014-04-28 Richard Biener <rguenther@suse.de>
39753
39754 * tree-pass.h (TODO_verify_il): Define.
39755 (TODO_verify_all): Complete properly.
39756 * passes.c (execute_function_todo): Move existing loop-closed
39757 SSA verification under TODO_verify_il.
39758 (execute_one_pass): Trigger TODO_verify_il at todo-after time.
39759 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
39760 Fix tree sharing issue.
39761
39762 2014-04-28 Richard Biener <rguenther@suse.de>
39763
39764 PR middle-end/60092
39765 * builtins.def (DEF_C11_BUILTIN): Add.
39766 (BUILT_IN_ALIGNED_ALLOC): Likewise.
39767 * coretypes.h (enum function_class): Add function_c11_misc.
39768 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
39769 BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
39770 (call_may_clobber_ref_p_1): Likewise.
39771 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
39772 (mark_all_reaching_defs_necessary_1): Likewise.
39773 (propagate_necessity): Likewise.
39774 (eliminate_unnecessary_stmts): Likewise.
39775 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
39776
39777 2014-04-28 Richard Biener <rguenther@suse.de>
39778
39779 * tree-vrp.c (vrp_var_may_overflow): Remove.
39780 (vrp_visit_phi_node): Rather than bumping to +-INF possibly
39781 with overflow immediately bump to one before that value and
39782 let iteration figure out overflow status.
39783
39784 2014-04-28 Richard Biener <rguenther@suse.de>
39785
39786 * configure.ac: Do valgrind header checks unconditionally.
39787 Add --enable-valgrind-annotations.
39788 * system.h: Guard valgrind header inclusion with
39789 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
39790 * alloc-pool.c (pool_alloc, pool_free): Use
39791 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
39792 to guard possibly dead code.
39793 * config.in: Regenerated.
39794 * configure: Likewise.
39795
39796 2014-04-28 Jeff Law <law@redhat.com>
39797
39798 PR tree-optimization/60902
39799 * tree-ssa-threadedge.c
39800 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
39801 over real defs when invalidating outputs from statements that do not
39802 produce useful outputs for threading.
39803
39804 2014-04-28 Richard Biener <rguenther@suse.de>
39805
39806 PR tree-optimization/60979
39807 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
39808 SCOPs that end in a block with a successor with abnormal
39809 predecessors.
39810
39811 2014-04-28 Richard Biener <rguenther@suse.de>
39812
39813 * tree-pass.h (execute_pass_list): Adjust prototype.
39814 * passes.c (pass_manager::execute_early_local_passes): Adjust.
39815 (do_per_function): Change callback signature, push all actual
39816 work to the callbals.
39817 (do_per_function_toporder): Likewise.
39818 (execute_function_dump): Adjust.
39819 (execute_function_todo): Likewise.
39820 (clear_last_verified): Likewise.
39821 (verify_curr_properties): Likewise.
39822 (update_properties_after_pass): Likewise.
39823 (execute_pass_list_1): Split out from ...
39824 (execute_pass_list): ... here. Adjust.
39825 (execute_ipa_pass_list): Likewise.
39826 * cgraphunit.c (cgraph_add_new_function): Adjust.
39827 (analyze_function): Likewise.
39828 (expand_function): Likewise.
39829 * cgraph.c (release_function_body): Free dominance info
39830 here instead of asserting it was magically freed elsewhere.
39831
39832 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
39833
39834 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
39835 * configure: Regenerate.
39836 * config/sparc/sparc.opt (muser-mode): New option.
39837 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
39838 for LEON3.
39839 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
39840 * doc/invoke.texi (SPARC options): Document -muser-mode.
39841
39842 2014-04-27 Richard Sandiford <rdsandiford@googlemail.com>
39843
39844 * cselib.c (find_slot_memmode): Delete.
39845 (cselib_hasher): Change compare_type to a struct.
39846 (cselib_hasher::equal): Update accordingly. Don't expect wrapped
39847 constants.
39848 (preserve_constants_and_equivs): Adjust for new compare_type.
39849 (cselib_find_slot): Likewise. Take the mode of the rtx as argument.
39850 (wrap_constant): Delete.
39851 (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
39852
39853 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
39854
39855 * doc/install.texi (Building with profile feedback): Remove
39856 outdated sentence.
39857
39858 2014-04-26 Tom de Vries <tom@codesourcery.com>
39859
39860 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
39861 array accesses.
39862
39863 2014-04-25 Cary Coutant <ccoutant@google.com>
39864
39865 PR debug/60929
39866 * dwarf2out.c (should_move_die_to_comdat): A type definition
39867 can contain a subprogram definition, but don't move it to a
39868 comdat unit.
39869 (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
39870 (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
39871 from original DIE.
39872 (clone_tree_hash): Rename to...
39873 (clone_tree_partial): ...this; change callers. Copy
39874 DW_TAG_subprogram DIEs as declarations.
39875 (copy_decls_walk): Don't copy children of a declaration into a
39876 type unit.
39877
39878 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
39879
39880 PR target/60969
39881 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
39882 alternative 12.
39883
39884 2014-04-25 Jiong Wang <jiong.wang@arm.com>
39885
39886 * config/arm/predicates.md (call_insn_operand): Add long_call check.
39887 * config/arm/arm.md (sibcall, sibcall_value): Force the address to
39888 reg for long_call.
39889 * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
39890 restriction.
39891
39892 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
39893
39894 * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
39895
39896 2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
39897
39898 PR tree-optimization/60930
39899 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
39900 creating a multiply candidate by folding two constant
39901 multiplicands when the result overflows.
39902
39903 2014-04-25 Jakub Jelinek <jakub@redhat.com>
39904
39905 PR tree-optimization/60960
39906 * tree-vect-generic.c (expand_vector_operation): Only call
39907 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
39908
39909 2014-04-25 Tom de Vries <tom@codesourcery.com>
39910
39911 * expr.c (clobber_reg_mode): New function.
39912 * expr.h (clobber_reg): New function.
39913
39914 2014-04-25 Tom de Vries <tom@codesourcery.com>
39915
39916 * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
39917 clobbers.
39918
39919 2014-04-25 Radovan Obradovic <robradovic@mips.com>
39920 Tom de Vries <tom@codesourcery.com>
39921
39922 * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
39923 handle.
39924 * rtl.h (find_all_hard_reg_sets): Add bool parameter.
39925 * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
39926 new argument to find_all_hard_reg_sets call.
39927
39928 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
39929
39930 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
39931 Use HOST_WIDE_INT_C for mask literal.
39932 (aarch_rev16_shleft_mask_imm_p): Likewise.
39933
39934 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
39935
39936 PR target/60941
39937 * config/sparc/sparc.md (ashlsi3_extend): Delete.
39938
39939 2014-04-25 Marc Glisse <marc.glisse@inria.fr>
39940
39941 PR preprocessor/56540
39942 * config/i386/i386-c.c (ix86_target_macros): Define
39943 __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
39944
39945 2014-04-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
39946
39947 * configure.ac (tga_func): Remove.
39948 (LIB_TLS_SPEC): Remove.
39949 * configure: Regenerate.
39950 * config.in: Regenerate.
39951 * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
39952
39953 2014-04-25 Richard Biener <rguenther@suse.de>
39954
39955 PR ipa/60912
39956 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
39957 call stmt use/clobber sets during stmt walk instead of
39958 walking the possibly incomplete set of caller edges.
39959
39960 2014-04-25 Richard Biener <rguenther@suse.de>
39961
39962 PR ipa/60911
39963 * passes.c (apply_ipa_transforms): Inline into only caller ...
39964 (execute_one_pass): ... here. Properly bring in function
39965 bodies for nodes we want to apply IPA transforms to.
39966
39967 2014-04-24 Cong Hou <congh@google.com>
39968
39969 PR tree-optimization/60896
39970 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
39971 all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
39972 (vect_mark_pattern_stmts): Set the def type of all statements in
39973 PATTERN_DEF_SEQ as vect_internal_def.
39974
39975 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
39976
39977 * doc/extend.texi (PowerPC Built-in Functions): Document new
39978 powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
39979 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
39980
39981 * config/rs6000/predicates.md (const_0_to_3_operand): New
39982 predicate to match 0..3 integer constants.
39983
39984 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
39985 to support adding miscellaneous builtin functions.
39986 (BU_DFP_MISC_2): Likewise.
39987 (BU_P7_MISC_1): Likewise.
39988 (BU_P7_MISC_2): Likewise.
39989 (BU_P8V_MISC_3): Likewise.
39990 (BU_MISC_1): Likewise.
39991 (BU_MISC_2): Likewise.
39992 (DIVWE): Add extended divide builtin functions.
39993 (DIVWEO): Likewise.
39994 (DIVWEU): Likewise.
39995 (DIVWEUO): Likewise.
39996 (DIVDE): Likewise.
39997 (DIVDEO): Likewise.
39998 (DIVDEU): Likewise.
39999 (DIVDEUO): Likewise.
40000 (DXEX): Add decimal floating-point builtin functions.
40001 (DXEXQ): Likewise.
40002 (DDEDPD): Likewise.
40003 (DDEDPDQ): Likewise.
40004 (DENBCD): Likewise.
40005 (DENBCDQ): Likewise.
40006 (DIEX): Likewise.
40007 (DIEXQ): Likewise.
40008 (DSCLI): Likewise.
40009 (DSCLIQ): Likewise.
40010 (DSCRI): Likewise.
40011 (DSCRIQ): Likewise.
40012 (CDTBCD): Add new BCD builtin functions.
40013 (CBCDTD): Likewise.
40014 (ADDG6S): Likewise.
40015 (BCDADD): Likewise.
40016 (BCDADD_LT): Likewise.
40017 (BCDADD_EQ): Likewise.
40018 (BCDADD_GT): Likewise.
40019 (BCDADD_OV): Likewise.
40020 (BCDSUB): Likewise.
40021 (BCDSUB_LT): Likewise.
40022 (BCDSUB_EQ): Likewise.
40023 (BCDSUB_GT): Likewise.
40024 (BCDSUB_OV): Likewise.
40025 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
40026 (UNPACK_TD): Likewise.
40027 (PACK_TF): Likewise.
40028 (UNPACK_TF): Likewise.
40029 (UNPACK_TF_0): Likewise.
40030 (UNPACK_TF_1): Likewise.
40031 (PACK_V1TI): Likewise.
40032 (UNPACK_V1TI): Likewise.
40033
40034 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
40035 support for decimal floating point builtin functions.
40036 (rs6000_expand_ternop_builtin): Add checks for the new builtin
40037 functions that take constant arguments.
40038 (rs6000_invalid_builtin): Add decimal floating point builtin support.
40039 (rs6000_init_builtins): Setup long double, _Decimal64, and
40040 _Decimal128 types for new builtin functions.
40041 (builtin_function_type): Set the unsigned flags appropriately for
40042 the new builtin functions.
40043 (rs6000_opt_masks): Add support for decimal floating point builtin
40044 functions.
40045
40046 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
40047 floating point builtin functions.
40048 (RS6000_BTM_COMMON): Likewise.
40049 (RS6000_BTI_long_double): Likewise.
40050 (RS6000_BTI_dfloat64): Likewise.
40051 (RS6000_BTI_dfloat128): Likewise.
40052 (long_double_type_internal_node): Likewise.
40053 (dfloat64_type_internal_node): Likewise.
40054 (dfloat128_type_internal_node): Likewise.
40055
40056 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
40057 2.07 bcd arithmetic instructions.
40058 (UNSPEC_BCDSUB): Likewise.
40059 (UNSPEC_BCD_OVERFLOW): Likewise.
40060 (UNSPEC_BCD_ADD_SUB): Likewise.
40061 (bcd_add_sub): Likewise.
40062 (BCD_TEST): Likewise.
40063 (bcd<bcd_add_sub>): Likewise.
40064 (bcd<bcd_add_sub>_test): Likewise.
40065 (bcd<bcd_add_sub>_test2): Likewise.
40066 (bcd<bcd_add_sub>_<code>): Likewise.
40067 (peephole2 for combined bcd ops): Likewise.
40068
40069 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
40070 decimal floating point builtin functions.
40071 (UNSPEC_DENBCD): Likewise.
40072 (UNSPEC_DXEX): Likewise.
40073 (UNSPEC_DIEX): Likewise.
40074 (UNSPEC_DSCLI): Likewise.
40075 (UNSPEC_DSCRI): Likewise.
40076 (D64_D128): Likewise.
40077 (dfp_suffix): Likewise.
40078 (dfp_ddedpd_<mode>): Likewise.
40079 (dfp_denbcd_<mode>): Likewise.
40080 (dfp_dxex_<mode>): Likewise.
40081 (dfp_diex_<mode>): Likewise.
40082 (dfp_dscli_<mode>): Likewise.
40083 (dfp_dscri_<mode>): Likewise.
40084
40085 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
40086 builtin functions.
40087 (UNSPEC_CDTBCD): Likewise.
40088 (UNSPEC_CBCDTD): Likewise.
40089 (UNSPEC_DIVE): Add support for new extended divide builtin functions.
40090 (UNSPEC_DIVEO): Likewise.
40091 (UNSPEC_DIVEU): Likewise.
40092 (UNSPEC_DIVEUO): Likewise.
40093 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
40094 pack/unpack 128-bit types.
40095 (UNSPEC_PACK_128BIT): Likewise.
40096 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
40097 (udiv<mode>3): Use idiv_ldiv mode attribute.
40098 (div<mode>3): Likewise.
40099 (addg6s): Add new BCD builtin functions.
40100 (cdtbcd): Likewise.
40101 (cbcdtd): Likewise.
40102 (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
40103 (div_extend): Likewise.
40104 (div<div_extend>_<mode>"): Likewise.
40105 (FP128_64): Add support for new builtin functions to pack/unpack
40106 128-bit types.
40107 (unpack<mode>): Likewise.
40108 (unpacktf_0): Likewise.
40109 (unpacktf_1): Likewise.
40110 (unpack<mode>_dm): Likewise.
40111 (unpack<mode>_nodm): Likewise.
40112 (pack<mode>): Likewise.
40113 (unpackv1ti): Likewise.
40114 (packv1ti): Likewise.
40115
40116 2014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
40117
40118 * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
40119 is disabled.
40120
40121 2014-04-24 Jakub Jelinek <jakub@redhat.com>
40122
40123 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
40124 * gimplify.c (omp_is_private): Change last argument's type to int.
40125 Only diagnose lastprivate if the simd argument is 1, only diagnose
40126 linear if the simd argument is 2.
40127 (gimplify_omp_for): Adjust omp_is_private callers. When adding
40128 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
40129 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
40130 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
40131 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
40132 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
40133 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
40134 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
40135 * tree-nested.c (convert_nonlocal_omp_clauses,
40136 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
40137
40138 2014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
40139
40140 PR target/60822
40141 * config/m68k/m68k.md (extendplussidi): Don't allow memory for
40142 operand 1.
40143
40144 2014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
40145
40146 * flag-types.h (enum ivar_visibility): Add.
40147
40148 2014-04-24 Trevor Saunders <tsaunders@mozilla.com>
40149
40150 * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
40151 function * argument.
40152
40153 2014-04-24 Alan Lawrence <alan.lawrence@arm.com>
40154
40155 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
40156
40157 2014-04-24 Radovan Obradovic <robradovic@mips.com>
40158 Tom de Vries <tom@codesourcery.com>
40159
40160 * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
40161 * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
40162 reg-note.
40163 * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
40164 * emit-rtl.c (try_split): Same.
40165
40166 2014-04-24 Radovan Obradovic <robradovic@mips.com>
40167 Tom de Vries <tom@codesourcery.com>
40168
40169 * common.opt (fuse-caller-save): New option.
40170
40171 2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
40172
40173 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
40174 elements for big-endian.
40175
40176 2014-04-24 Richard Biener <rguenther@suse.de>
40177
40178 * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
40179 during TER and instead use the sepops interface for expanding
40180 non-GIMPLE_SINGLE_RHS.
40181
40182 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
40183
40184 * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
40185 if not HAVE_AS_IX86_DIFF_SECT_DELTA.
40186
40187 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
40188
40189 * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
40190 assembler 64-bit option.
40191 * configure: Regenerate.
40192
40193 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40194
40195 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
40196 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
40197 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
40198 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
40199 (TARGET_CRYPTO): Take TARGET_SIMD into account.
40200
40201 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40202
40203 * config/aarch64/aarch64-builtins.c
40204 (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
40205 BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
40206 * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
40207 * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
40208 builtins.
40209 * config/aarch64/iterator.md (VDQHSD): New mode iterator.
40210 (Vrevsuff): New mode attribute.
40211
40212 2014-04-24 Terry Guo <terry.guo@arm.com>
40213
40214 * config/arm/arm.h (machine_function): Define variable
40215 after_arm_reorg here.
40216 * config/arm/arm.c (after_arm_reorg): Remove the definition.
40217 (arm_split_constant): Update the way to access variable
40218 after_arm_reorg.
40219 (arm_reorg): Ditto.
40220 (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
40221
40222 2014-04-23 Tom de Vries <tom@codesourcery.com>
40223
40224 * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
40225
40226 2014-04-23 David Malcolm <dmalcolm@redhat.com>
40227
40228 * is-a.h: Update comments to reflect the following changes to the
40229 "pointerness" of the API, making the template parameter match the
40230 return type, allowing use of is-a.h with typedefs of pointers.
40231 (is_a_helper::cast): Return a T rather then a pointer to a T, so
40232 that the return type matches the parameter to the is_a_helper.
40233 (as_a): Likewise.
40234 (dyn_cast): Likewise.
40235
40236 * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
40237 pointer from the is-a.h API.
40238
40239 * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
40240 (is_a_helper <cgraph_node *>::test): ...this, matching change to
40241 is-a.h API.
40242 (is_a_helper <varpool_node>::test): Likewise, convert to...
40243 (is_a_helper <varpool_node *>::test): ...this.
40244
40245 (varpool_first_variable): Update for removal of implicit pointer
40246 from the is-a.h API.
40247 (varpool_next_variable): Likewise.
40248 (varpool_first_static_initializer): Likewise.
40249 (varpool_next_static_initializer): Likewise.
40250 (varpool_first_defined_variable): Likewise.
40251 (varpool_next_defined_variable): Likewise.
40252 (cgraph_first_defined_function): Likewise.
40253 (cgraph_next_defined_function): Likewise.
40254 (cgraph_first_function): Likewise.
40255 (cgraph_next_function): Likewise.
40256 (cgraph_first_function_with_gimple_body): Likewise.
40257 (cgraph_next_function_with_gimple_body): Likewise.
40258 (cgraph_alias_target): Likewise.
40259 (varpool_alias_target): Likewise.
40260 (cgraph_function_or_thunk_node): Likewise.
40261 (varpool_variable_node): Likewise.
40262 (symtab_real_symbol_p): Likewise.
40263 * cgraphunit.c (referred_to_p): Likewise.
40264 (analyze_functions): Likewise.
40265 (handle_alias_pairs): Likewise.
40266 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
40267 * gimple-ssa.h (gimple_vuse_op): Likewise.
40268 (gimple_vdef_op): Likewise.
40269 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
40270 * gimple.c (gimple_build_asm_1): Likewise.
40271 (gimple_build_try): Likewise.
40272 (gimple_build_resx): Likewise.
40273 (gimple_build_eh_dispatch): Likewise.
40274 (gimple_build_omp_for): Likewise.
40275 (gimple_omp_for_set_clauses): Likewise.
40276
40277 * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
40278 (is_a_helper <gimple_statement_asm *>::test): ...this.
40279 (is_a_helper <gimple_statement_bind>::test): Convert to...
40280 (is_a_helper <gimple_statement_bind *>::test): ...this.
40281 (is_a_helper <gimple_statement_call>::test): Convert to...
40282 (is_a_helper <gimple_statement_call *>::test): ...this.
40283 (is_a_helper <gimple_statement_catch>::test): Convert to...
40284 (is_a_helper <gimple_statement_catch *>::test): ...this.
40285 (is_a_helper <gimple_statement_resx>::test): Convert to...
40286 (is_a_helper <gimple_statement_resx *>::test): ...this.
40287 (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
40288 (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
40289 (is_a_helper <gimple_statement_eh_else>::test): Convert to...
40290 (is_a_helper <gimple_statement_eh_else *>::test): ...this.
40291 (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
40292 (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
40293 (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
40294 (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
40295 (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
40296 (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
40297 (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
40298 (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
40299 (is_a_helper <gimple_statement_omp_return>::test): Convert to...
40300 (is_a_helper <gimple_statement_omp_return *>::test): ...this.
40301 (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
40302 (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
40303 (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
40304 (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
40305 (is_a_helper <gimple_statement_omp_for>::test): Convert to...
40306 (is_a_helper <gimple_statement_omp_for *>::test): ...this.
40307 (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
40308 (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
40309 (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
40310 (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
40311 (is_a_helper <gimple_statement_omp_target>::test): Convert to...
40312 (is_a_helper <gimple_statement_omp_target *>::test): ...this.
40313 (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
40314 (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
40315 (is_a_helper <gimple_statement_omp_single>::test): Convert to...
40316 (is_a_helper <gimple_statement_omp_single *>::test): ...this.
40317 (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
40318 (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
40319 (is_a_helper <gimple_statement_omp_task>::test): Convert to...
40320 (is_a_helper <gimple_statement_omp_task *>::test): ...this.
40321 (is_a_helper <gimple_statement_phi>::test): Convert to...
40322 (is_a_helper <gimple_statement_phi *>::test): ...this.
40323 (is_a_helper <gimple_statement_transaction>::test): Convert to...
40324 (is_a_helper <gimple_statement_transaction *>::test): ...this.
40325 (is_a_helper <gimple_statement_try>::test): Convert to...
40326 (is_a_helper <gimple_statement_try *>::test): ...this.
40327 (is_a_helper <gimple_statement_wce>::test): Convert to...
40328 (is_a_helper <gimple_statement_wce *>::test): ...this.
40329 (is_a_helper <const gimple_statement_asm>::test): Convert to...
40330 (is_a_helper <const gimple_statement_asm *>::test): ...this.
40331 (is_a_helper <const gimple_statement_bind>::test): Convert to...
40332 (is_a_helper <const gimple_statement_bind *>::test): ...this.
40333 (is_a_helper <const gimple_statement_call>::test): Convert to...
40334 (is_a_helper <const gimple_statement_call *>::test): ...this.
40335 (is_a_helper <const gimple_statement_catch>::test): Convert to...
40336 (is_a_helper <const gimple_statement_catch *>::test): ...this.
40337 (is_a_helper <const gimple_statement_resx>::test): Convert to...
40338 (is_a_helper <const gimple_statement_resx *>::test): ...this.
40339 (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
40340 (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
40341 (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
40342 (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
40343 (is_a_helper <const gimple_statement_omp_atomic_load>::test):
40344 Convert to...
40345 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
40346 ...this.
40347 (is_a_helper <const gimple_statement_omp_atomic_store>::test):
40348 Convert to...
40349 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
40350 ...this.
40351 (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
40352 (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
40353 (is_a_helper <const gimple_statement_omp_continue>::test): Convert
40354 to...
40355 (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
40356 (is_a_helper <const gimple_statement_omp_critical>::test): Convert
40357 to...
40358 (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
40359 (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
40360 (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
40361 (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
40362 (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
40363 (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
40364 to...
40365 (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
40366 (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
40367 (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
40368 (is_a_helper <const gimple_statement_omp_sections>::test): Convert
40369 to...
40370 (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
40371 (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
40372 (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
40373 (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
40374 (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
40375 (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
40376 (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
40377 (is_a_helper <const gimple_statement_phi>::test): Convert to...
40378 (is_a_helper <const gimple_statement_phi *>::test): ...this.
40379 (is_a_helper <const gimple_statement_transaction>::test): Convert to...
40380 (is_a_helper <const gimple_statement_transaction *>::test): ...this.
40381 (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
40382 (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
40383 (is_a_helper <gimple_statement_with_ops>::test): Convert to...
40384 (is_a_helper <gimple_statement_with_ops *>::test): ...this.
40385 (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
40386 to...
40387 (is_a_helper <const gimple_statement_with_memory_ops *>::test):
40388 ...this.
40389 (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
40390 (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
40391
40392 (gimple_use_ops): Update for removal of implicit pointer from the
40393 is-a.h API.
40394 (gimple_set_use_ops): Likewise.
40395 (gimple_vuse): Likewise.
40396 (gimple_vdef): Likewise.
40397 (gimple_vuse_ptr): Likewise.
40398 (gimple_vdef_ptr): Likewise.
40399 (gimple_set_vuse): Likewise.
40400 (gimple_set_vdef): Likewise.
40401 (gimple_omp_return_set_lhs): Likewise.
40402 (gimple_omp_return_lhs): Likewise.
40403 (gimple_omp_return_lhs_ptr): Likewise.
40404 (gimple_call_fntype): Likewise.
40405 (gimple_call_set_fntype): Likewise.
40406 (gimple_call_set_internal_fn): Likewise.
40407 (gimple_call_use_set): Likewise.
40408 (gimple_call_clobber_set): Likewise.
40409 (gimple_bind_vars): Likewise.
40410 (gimple_bind_set_vars): Likewise.
40411 (gimple_bind_body_ptr): Likewise.
40412 (gimple_bind_set_body): Likewise.
40413 (gimple_bind_add_stmt): Likewise.
40414 (gimple_bind_block): Likewise.
40415 (gimple_bind_set_block): Likewise.
40416 (gimple_asm_ninputs): Likewise.
40417 (gimple_asm_noutputs): Likewise.
40418 (gimple_asm_nclobbers): Likewise.
40419 (gimple_asm_nlabels): Likewise.
40420 (gimple_asm_input_op): Likewise.
40421 (gimple_asm_input_op_ptr): Likewise.
40422 (gimple_asm_output_op): Likewise.
40423 (gimple_asm_output_op_ptr): Likewise.
40424 (gimple_asm_set_output_op): Likewise.
40425 (gimple_asm_clobber_op): Likewise.
40426 (gimple_asm_set_clobber_op): Likewise.
40427 (gimple_asm_label_op): Likewise.
40428 (gimple_asm_set_label_op): Likewise.
40429 (gimple_asm_string): Likewise.
40430 (gimple_catch_types): Likewise.
40431 (gimple_catch_types_ptr): Likewise.
40432 (gimple_catch_handler_ptr): Likewise.
40433 (gimple_catch_set_types): Likewise.
40434 (gimple_catch_set_handler): Likewise.
40435 (gimple_eh_filter_types): Likewise.
40436 (gimple_eh_filter_types_ptr): Likewise.
40437 (gimple_eh_filter_failure_ptr): Likewise.
40438 (gimple_eh_filter_set_types): Likewise.
40439 (gimple_eh_filter_set_failure): Likewise.
40440 (gimple_eh_must_not_throw_fndecl): Likewise.
40441 (gimple_eh_must_not_throw_set_fndecl): Likewise.
40442 (gimple_eh_else_n_body_ptr): Likewise.
40443 (gimple_eh_else_e_body_ptr): Likewise.
40444 (gimple_eh_else_set_n_body): Likewise.
40445 (gimple_eh_else_set_e_body): Likewise.
40446 (gimple_try_eval_ptr): Likewise.
40447 (gimple_try_cleanup_ptr): Likewise.
40448 (gimple_try_set_eval): Likewise.
40449 (gimple_try_set_cleanup): Likewise.
40450 (gimple_wce_cleanup_ptr): Likewise.
40451 (gimple_wce_set_cleanup): Likewise.
40452 (gimple_phi_capacity): Likewise.
40453 (gimple_phi_num_args): Likewise.
40454 (gimple_phi_result): Likewise.
40455 (gimple_phi_result_ptr): Likewise.
40456 (gimple_phi_set_result): Likewise.
40457 (gimple_phi_arg): Likewise.
40458 (gimple_phi_set_arg): Likewise.
40459 (gimple_resx_region): Likewise.
40460 (gimple_resx_set_region): Likewise.
40461 (gimple_eh_dispatch_region): Likewise.
40462 (gimple_eh_dispatch_set_region): Likewise.
40463 (gimple_omp_critical_name): Likewise.
40464 (gimple_omp_critical_name_ptr): Likewise.
40465 (gimple_omp_critical_set_name): Likewise.
40466 (gimple_omp_for_clauses): Likewise.
40467 (gimple_omp_for_clauses_ptr): Likewise.
40468 (gimple_omp_for_set_clauses): Likewise.
40469 (gimple_omp_for_collapse): Likewise.
40470 (gimple_omp_for_index): Likewise.
40471 (gimple_omp_for_index_ptr): Likewise.
40472 (gimple_omp_for_set_index): Likewise.
40473 (gimple_omp_for_initial): Likewise.
40474 (gimple_omp_for_initial_ptr): Likewise.
40475 (gimple_omp_for_set_initial): Likewise.
40476 (gimple_omp_for_final): Likewise.
40477 (gimple_omp_for_final_ptr): Likewise.
40478 (gimple_omp_for_set_final): Likewise.
40479 (gimple_omp_for_incr): Likewise.
40480 (gimple_omp_for_incr_ptr): Likewise.
40481 (gimple_omp_for_set_incr): Likewise.
40482 (gimple_omp_for_pre_body_ptr): Likewise.
40483 (gimple_omp_for_set_pre_body): Likewise.
40484 (gimple_omp_parallel_clauses): Likewise.
40485 (gimple_omp_parallel_clauses_ptr): Likewise.
40486 (gimple_omp_parallel_set_clauses): Likewise.
40487 (gimple_omp_parallel_child_fn): Likewise.
40488 (gimple_omp_parallel_child_fn_ptr): Likewise.
40489 (gimple_omp_parallel_set_child_fn): Likewise.
40490 (gimple_omp_parallel_data_arg): Likewise.
40491 (gimple_omp_parallel_data_arg_ptr): Likewise.
40492 (gimple_omp_parallel_set_data_arg): Likewise.
40493 (gimple_omp_task_clauses): Likewise.
40494 (gimple_omp_task_clauses_ptr): Likewise.
40495 (gimple_omp_task_set_clauses): Likewise.
40496 (gimple_omp_task_child_fn): Likewise.
40497 (gimple_omp_task_child_fn_ptr): Likewise.
40498 (gimple_omp_task_set_child_fn): Likewise.
40499 (gimple_omp_task_data_arg): Likewise.
40500 (gimple_omp_task_data_arg_ptr): Likewise.
40501 (gimple_omp_task_set_data_arg): Likewise.
40502 (gimple_omp_taskreg_clauses): Likewise.
40503 (gimple_omp_taskreg_clauses_ptr): Likewise.
40504 (gimple_omp_taskreg_set_clauses): Likewise.
40505 (gimple_omp_taskreg_child_fn): Likewise.
40506 (gimple_omp_taskreg_child_fn_ptr): Likewise.
40507 (gimple_omp_taskreg_set_child_fn): Likewise.
40508 (gimple_omp_taskreg_data_arg): Likewise.
40509 (gimple_omp_taskreg_data_arg_ptr): Likewise.
40510 (gimple_omp_taskreg_set_data_arg): Likewise.
40511 (gimple_omp_task_copy_fn): Likewise.
40512 (gimple_omp_task_copy_fn_ptr): Likewise.
40513 (gimple_omp_task_set_copy_fn): Likewise.
40514 (gimple_omp_task_arg_size): Likewise.
40515 (gimple_omp_task_arg_size_ptr): Likewise.
40516 (gimple_omp_task_set_arg_size): Likewise.
40517 (gimple_omp_task_arg_align): Likewise.
40518 (gimple_omp_task_arg_align_ptr): Likewise.
40519 (gimple_omp_task_set_arg_align): Likewise.
40520 (gimple_omp_single_clauses): Likewise.
40521 (gimple_omp_single_clauses_ptr): Likewise.
40522 (gimple_omp_single_set_clauses): Likewise.
40523 (gimple_omp_target_clauses): Likewise.
40524 (gimple_omp_target_clauses_ptr): Likewise.
40525 (gimple_omp_target_set_clauses): Likewise.
40526 (gimple_omp_target_child_fn): Likewise.
40527 (gimple_omp_target_child_fn_ptr): Likewise.
40528 (gimple_omp_target_set_child_fn): Likewise.
40529 (gimple_omp_target_data_arg): Likewise.
40530 (gimple_omp_target_data_arg_ptr): Likewise.
40531 (gimple_omp_target_set_data_arg): Likewise.
40532 (gimple_omp_teams_clauses): Likewise.
40533 (gimple_omp_teams_clauses_ptr): Likewise.
40534 (gimple_omp_teams_set_clauses): Likewise.
40535 (gimple_omp_sections_clauses): Likewise.
40536 (gimple_omp_sections_clauses_ptr): Likewise.
40537 (gimple_omp_sections_set_clauses): Likewise.
40538 (gimple_omp_sections_control): Likewise.
40539 (gimple_omp_sections_control_ptr): Likewise.
40540 (gimple_omp_sections_set_control): Likewise.
40541 (gimple_omp_for_set_cond): Likewise.
40542 (gimple_omp_for_cond): Likewise.
40543 (gimple_omp_atomic_store_set_val): Likewise.
40544 (gimple_omp_atomic_store_val): Likewise.
40545 (gimple_omp_atomic_store_val_ptr): Likewise.
40546 (gimple_omp_atomic_load_set_lhs): Likewise.
40547 (gimple_omp_atomic_load_lhs): Likewise.
40548 (gimple_omp_atomic_load_lhs_ptr): Likewise.
40549 (gimple_omp_atomic_load_set_rhs): Likewise.
40550 (gimple_omp_atomic_load_rhs): Likewise.
40551 (gimple_omp_atomic_load_rhs_ptr): Likewise.
40552 (gimple_omp_continue_control_def): Likewise.
40553 (gimple_omp_continue_control_def_ptr): Likewise.
40554 (gimple_omp_continue_set_control_def): Likewise.
40555 (gimple_omp_continue_control_use): Likewise.
40556 (gimple_omp_continue_control_use_ptr): Likewise.
40557 (gimple_omp_continue_set_control_use): Likewise.
40558 (gimple_transaction_body_ptr): Likewise.
40559 (gimple_transaction_label): Likewise.
40560 (gimple_transaction_label_ptr): Likewise.
40561 (gimple_transaction_set_body): Likewise.
40562 (gimple_transaction_set_label): Likewise.
40563
40564 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
40565 * ipa-inline-analysis.c (inline_write_summary): Likewise.
40566 * ipa-ref.c (ipa_record_reference): Likewise.
40567 * ipa-reference.c (analyze_function): Likewise.
40568 (ipa_reference_write_optimization_summary): Likewise.
40569 * ipa.c (symtab_remove_unreachable_nodes): Likewise.
40570 (address_taken_from_non_vtable_p): Likewise.
40571 (comdat_can_be_unshared_p_1): Likewise.
40572 * lto-cgraph.c (lto_output_ref): Likewise.
40573 (add_references): Likewise.
40574 (compute_ltrans_boundary): Likewise.
40575 (output_symtab): Likewise.
40576 (input_ref): Likewise.
40577 (input_cgraph_1): Likewise.
40578 (output_cgraph_opt_summary): Likewise.
40579 * lto-streamer-out.c (lto_output): Likewise.
40580 (output_symbol_p): Likewise.
40581 * lto-streamer.h (lsei_next_function_in_partition): Likewise.
40582 (lsei_start_function_in_partition): Likewise.
40583 (lsei_next_variable_in_partition): Likewise.
40584 (lsei_start_variable_in_partition): Likewise.
40585 * symtab.c (insert_to_assembler_name_hash): Likewise.
40586 (unlink_from_assembler_name_hash): Likewise.
40587 (symtab_unregister_node): Likewise.
40588 (symtab_remove_node): Likewise.
40589 (dump_symtab_node): Likewise.
40590 (verify_symtab_base): Likewise.
40591 (verify_symtab_node): Likewise.
40592 (symtab_make_decl_local): Likewise.
40593 (symtab_alias_ultimate_target): Likewise.
40594 (symtab_resolve_alias): Likewise.
40595 (symtab_get_symbol_partitioning_class): Likewise.
40596 * tree-phinodes.c (allocate_phi_node): Likewise.
40597 (reserve_phi_args_for_new_edge): Likewise.
40598 (remove_phi_args): Likewise.
40599 * varpool.c (varpool_node_for_asm): Likewise.
40600 (varpool_remove_unreferenced_decls): Likewise.
40601
40602 2014-04-23 Jeff Law <law@redhat.com>
40603
40604 PR tree-optimization/60902
40605 * tree-ssa-threadedge.c
40606 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
40607 invalidate outputs from statements that do not produce useful
40608 outputs for threading.
40609
40610 2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
40611
40612 * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
40613 (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
40614 machine descriptions for Stack Smashing Protector.
40615
40616 2014-04-23 Richard Earnshaw <rearnsha@arm.com>
40617
40618 * aarch64.md (<optab>_rol<mode>3): New pattern.
40619 (<optab>_rolsi3_uxtw): Likewise.
40620 * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
40621
40622 2014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
40623
40624 * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
40625 (arm_cortex_a12_tune): Likewise.
40626
40627 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40628
40629 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
40630
40631 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40632
40633 * config/arm/arm.md (arm_rev16si2): New pattern.
40634 (arm_rev16si2_alt): Likewise.
40635 * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
40636
40637 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40638
40639 * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
40640 (rev16<mode>2_alt): Likewise.
40641 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
40642 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
40643 (aarch_rev16_shleft_mask_imm_p): Likewise.
40644 (aarch_rev16_p_1): Likewise.
40645 (aarch_rev16_p): Likewise.
40646 * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
40647 (aarch_rev16_shright_mask_imm_p): Likewise.
40648 (aarch_rev16_shleft_mask_imm_p): Likewise.
40649
40650 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40651
40652 * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
40653 * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
40654 rev cost.
40655 (cortex_a53_extra_costs): Likewise.
40656 (cortex_a57_extra_costs): Likewise.
40657 * config/arm/arm.c (cortexa9_extra_costs): Likewise.
40658 (cortexa7_extra_costs): Likewise.
40659 (cortexa8_extra_costs): Likewise.
40660 (cortexa12_extra_costs): Likewise.
40661 (cortexa15_extra_costs): Likewise.
40662 (v7m_extra_costs): Likewise.
40663 (arm_new_rtx_costs): Handle BSWAP.
40664
40665 2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40666
40667 * config/arm/arm.c (cortexa8_extra_costs): New table.
40668 (arm_cortex_a8_tune): New tuning struct.
40669 * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
40670
40671 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40672
40673 * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
40674
40675 2014-04-23 Richard Biener <rguenther@suse.de>
40676
40677 * Makefile.in (OBJS): Remove loop-unswitch.o.
40678 * tree-pass.h (make_pass_rtl_unswitch): Remove.
40679 * passes.def (pass_rtl_unswitch): Likewise.
40680 * loop-init.c (gate_rtl_unswitch): Likewise.
40681 (rtl_unswitch): Likewise.
40682 (pass_data_rtl_unswitch): Likewise.
40683 (pass_rtl_unswitch): Likewise.
40684 (make_pass_rtl_unswitch): Likewise.
40685 * rtl.h (reversed_condition): Likewise.
40686 (compare_and_jump_seq): Likewise.
40687 * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
40688 and make static.
40689 * loop-unroll.c (compare_and_jump_seq): Likewise.
40690
40691 2014-04-23 Richard Biener <rguenther@suse.de>
40692
40693 PR tree-optimization/60903
40694 * tree-ssa-loop-im.c (analyze_memory_references): Remove
40695 commented code block.
40696 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
40697 loop flags to newly created BBs and edges.
40698
40699 2014-04-23 Nick Clifton <nickc@redhat.com>
40700
40701 * config/msp430/msp430.c (msp430_handle_option): Move function
40702 to msp430-common.c
40703 (msp430_option_override): Simplify mcu and mcpu option handling.
40704 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
40705 support for -mhwmult command line option.
40706 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
40707 -mhwmult command line option.
40708 (msp430_hwmult_enabled): Delete.
40709 (msp43o_output_labelref): Add support for -mhwmult command line option.
40710 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
40711 (umulsidi3): Likewise.
40712 * config/msp430/msp430.opt (mmcu): Add Report attribute.
40713 (mcpu, mlarge, msmall): Likewise.
40714 (mhwmult): New option.
40715 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
40716 prototype.
40717 (msp430_is_f5_mcu): Remove prototype.
40718 (msp430_use_f5_series_hwmult): Add prototype.
40719 * config/msp430/msp430-opts.h: New file.
40720 * common/config/msp430: New directory.
40721 * common/config/msp430/msp430-common.c: New file.
40722 * config.gcc (msp430): Remove target_has_targetm_common.
40723 * doc/invoke.texi: Document -mhwmult command line option.
40724
40725 2014-04-23 Nick Clifton <nickc@redhat.com>
40726
40727 * config/i386/cygwin.h (ENDFILE_SPEC): Include
40728 default-manifest.o if it can be found in the search path.
40729 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
40730
40731 2014-04-23 Terry Guo <terry.guo@arm.com>
40732
40733 * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
40734
40735 2014-04-23 Richard Biener <rguenther@suse.de>
40736
40737 PR middle-end/60895
40738 * tree-inline.c (declare_return_variable): Use mark_addressable.
40739
40740 2014-04-23 Richard Biener <rguenther@suse.de>
40741
40742 PR middle-end/60891
40743 * loop-init.c (loop_optimizer_init): Make sure to apply
40744 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
40745
40746 2014-04-22 Jakub Jelinek <jakub@redhat.com>
40747
40748 PR sanitizer/60275
40749 * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
40750 New options.
40751 * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
40752 if flag_sanitize_undefined_trap_on_error.
40753 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
40754 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
40755 BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
40756 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
40757 BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
40758 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
40759 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
40760 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
40761 BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
40762 * ubsan.c (ubsan_instrument_unreachable): Return
40763 __builtin_trap () if flag_sanitize_undefined_trap_on_error.
40764 (ubsan_expand_null_ifn): Emit __builtin_trap ()
40765 if flag_sanitize_undefined_trap_on_error and
40766 __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
40767 (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
40768 instrument_bool_enum_load): Emit __builtin_trap () if
40769 flag_sanitize_undefined_trap_on_error and
40770 __builtin_handle_*_abort () if !flag_sanitize_recover.
40771 * doc/invoke.texi (-fsanitize-recover,
40772 -fsanitize-undefined-trap-on-error): Document.
40773
40774 2014-04-22 Christian Bruel <christian.bruel@st.com>
40775
40776 * config/sh/sh.md (mov<mode>): Replace movQIHI.
40777 Force immediates to SImode.
40778
40779 2014-04-22 Sandra Loosemore <sandra@codesourcery.com>
40780
40781 * config/nios2/nios2.md (UNSPEC_ROUND): New.
40782 (lroundsfsi2): New.
40783 * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
40784 * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
40785 * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
40786 (nios2_fpu_insn): Add entry for round.
40787 (N2FPU_NO_ERRNO_P): Define.
40788 (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
40789 flag_errno_math.
40790 * doc/invoke.texi (Nios II Options): Document -mcustom-round.
40791
40792 2014-04-22 Richard Henderson <rth@redhat.com>
40793
40794 * config/aarch64/aarch64 (addti3, subti3): New expanders.
40795 (add<GPI>3_compare0): Remove leading * from name.
40796 (add<GPI>3_carryin): Likewise.
40797 (sub<GPI>3_compare0): Likewise.
40798 (sub<GPI>3_carryin): Likewise.
40799 (<su_optab>mulditi3): New expander.
40800 (multi3): New expander.
40801 (madd<GPI>): Remove leading * from name.
40802
40803 2014-04-22 Martin Jambor <mjambor@suse.cz>
40804
40805 * cgraphclones.c (cgraph_function_versioning): Copy
40806 ipa_transforms_to_apply instead of asserting it is empty.
40807
40808 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
40809
40810 PR target/60868
40811 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
40812 on count_exp to get mode.
40813
40814 2014-04-22 Andrew Pinski <apinski@cavium.com>
40815
40816 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
40817 Handle TLS for ILP32.
40818 * config/aarch64/aarch64.md (tlsie_small): Rename to ...
40819 (tlsie_small_<mode>): this and handle PTR.
40820 (tlsie_small_sidi): New pattern.
40821 (tlsle_small): Change to an expand to handle ILP32.
40822 (tlsle_small_<mode>): New pattern.
40823 (tlsdesc_small): Rename to ...
40824 (tlsdesc_small_<mode>): this and handle PTR.
40825
40826 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
40827
40828 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
40829
40830 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
40831
40832 * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
40833 (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
40834 (aarch64_types_signed_poly_qualifiers): Likewise.
40835 (aarch64_types_unsigned_signed_qualifiers): Likewise.
40836 (aarch64_types_poly_signed_qualifiers): Likewise.
40837 (TYPES_REINTERP_SS): Type macro added.
40838 (TYPES_REINTERP_SU): Likewise.
40839 (TYPES_REINTERP_SP): Likewise.
40840 (TYPES_REINTERP_US): Likewise.
40841 (TYPES_REINTERP_PS): Likewise.
40842 (aarch64_fold_builtin): New expression folding added.
40843 * config/aarch64/aarch64-simd-builtins.def (REINTERP):
40844 Declarations removed.
40845 (REINTERP_SS): Declarations added.
40846 (REINTERP_US): Likewise.
40847 (REINTERP_PS): Likewise.
40848 (REINTERP_SU): Likewise.
40849 (REINTERP_SP): Likewise.
40850 * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
40851 (vreinterpretq_p8_f64): Likewise.
40852 (vreinterpret_p16_f64): Likewise.
40853 (vreinterpretq_p16_f64): Likewise.
40854 (vreinterpret_f32_f64): Likewise.
40855 (vreinterpretq_f32_f64): Likewise.
40856 (vreinterpret_f64_f32): Likewise.
40857 (vreinterpret_f64_p8): Likewise.
40858 (vreinterpret_f64_p16): Likewise.
40859 (vreinterpret_f64_s8): Likewise.
40860 (vreinterpret_f64_s16): Likewise.
40861 (vreinterpret_f64_s32): Likewise.
40862 (vreinterpret_f64_s64): Likewise.
40863 (vreinterpret_f64_u8): Likewise.
40864 (vreinterpret_f64_u16): Likewise.
40865 (vreinterpret_f64_u32): Likewise.
40866 (vreinterpret_f64_u64): Likewise.
40867 (vreinterpretq_f64_f32): Likewise.
40868 (vreinterpretq_f64_p8): Likewise.
40869 (vreinterpretq_f64_p16): Likewise.
40870 (vreinterpretq_f64_s8): Likewise.
40871 (vreinterpretq_f64_s16): Likewise.
40872 (vreinterpretq_f64_s32): Likewise.
40873 (vreinterpretq_f64_s64): Likewise.
40874 (vreinterpretq_f64_u8): Likewise.
40875 (vreinterpretq_f64_u16): Likewise.
40876 (vreinterpretq_f64_u32): Likewise.
40877 (vreinterpretq_f64_u64): Likewise.
40878 (vreinterpret_s64_f64): Likewise.
40879 (vreinterpretq_s64_f64): Likewise.
40880 (vreinterpret_u64_f64): Likewise.
40881 (vreinterpretq_u64_f64): Likewise.
40882 (vreinterpret_s8_f64): Likewise.
40883 (vreinterpretq_s8_f64): Likewise.
40884 (vreinterpret_s16_f64): Likewise.
40885 (vreinterpretq_s16_f64): Likewise.
40886 (vreinterpret_s32_f64): Likewise.
40887 (vreinterpretq_s32_f64): Likewise.
40888 (vreinterpret_u8_f64): Likewise.
40889 (vreinterpretq_u8_f64): Likewise.
40890 (vreinterpret_u16_f64): Likewise.
40891 (vreinterpretq_u16_f64): Likewise.
40892 (vreinterpret_u32_f64): Likewise.
40893 (vreinterpretq_u32_f64): Likewise.
40894
40895 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
40896
40897 * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
40898 * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
40899 (vreinterpret_p8_s8): Likewise.
40900 * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
40901 (vreinterpret_p8_s16): Likewise.
40902 (vreinterpret_p8_s32): Likewise.
40903 (vreinterpret_p8_s64): Likewise.
40904 (vreinterpret_p8_f32): Likewise.
40905 (vreinterpret_p8_u8): Likewise.
40906 (vreinterpret_p8_u16): Likewise.
40907 (vreinterpret_p8_u32): Likewise.
40908 (vreinterpret_p8_u64): Likewise.
40909 (vreinterpret_p8_p16): Likewise.
40910 (vreinterpretq_p8_s8): Likewise.
40911 (vreinterpretq_p8_s16): Likewise.
40912 (vreinterpretq_p8_s32): Likewise.
40913 (vreinterpretq_p8_s64): Likewise.
40914 (vreinterpretq_p8_f32): Likewise.
40915 (vreinterpretq_p8_u8): Likewise.
40916 (vreinterpretq_p8_u16): Likewise.
40917 (vreinterpretq_p8_u32): Likewise.
40918 (vreinterpretq_p8_u64): Likewise.
40919 (vreinterpretq_p8_p16): Likewise.
40920 (vreinterpret_p16_s8): Likewise.
40921 (vreinterpret_p16_s16): Likewise.
40922 (vreinterpret_p16_s32): Likewise.
40923 (vreinterpret_p16_s64): Likewise.
40924 (vreinterpret_p16_f32): Likewise.
40925 (vreinterpret_p16_u8): Likewise.
40926 (vreinterpret_p16_u16): Likewise.
40927 (vreinterpret_p16_u32): Likewise.
40928 (vreinterpret_p16_u64): Likewise.
40929 (vreinterpret_p16_p8): Likewise.
40930 (vreinterpretq_p16_s8): Likewise.
40931 (vreinterpretq_p16_s16): Likewise.
40932 (vreinterpretq_p16_s32): Likewise.
40933 (vreinterpretq_p16_s64): Likewise.
40934 (vreinterpretq_p16_f32): Likewise.
40935 (vreinterpretq_p16_u8): Likewise.
40936 (vreinterpretq_p16_u16): Likewise.
40937 (vreinterpretq_p16_u32): Likewise.
40938 (vreinterpretq_p16_u64): Likewise.
40939 (vreinterpretq_p16_p8): Likewise.
40940 (vreinterpret_f32_s8): Likewise.
40941 (vreinterpret_f32_s16): Likewise.
40942 (vreinterpret_f32_s32): Likewise.
40943 (vreinterpret_f32_s64): Likewise.
40944 (vreinterpret_f32_u8): Likewise.
40945 (vreinterpret_f32_u16): Likewise.
40946 (vreinterpret_f32_u32): Likewise.
40947 (vreinterpret_f32_u64): Likewise.
40948 (vreinterpret_f32_p8): Likewise.
40949 (vreinterpret_f32_p16): Likewise.
40950 (vreinterpretq_f32_s8): Likewise.
40951 (vreinterpretq_f32_s16): Likewise.
40952 (vreinterpretq_f32_s32): Likewise.
40953 (vreinterpretq_f32_s64): Likewise.
40954 (vreinterpretq_f32_u8): Likewise.
40955 (vreinterpretq_f32_u16): Likewise.
40956 (vreinterpretq_f32_u32): Likewise.
40957 (vreinterpretq_f32_u64): Likewise.
40958 (vreinterpretq_f32_p8): Likewise.
40959 (vreinterpretq_f32_p16): Likewise.
40960 (vreinterpret_s64_s8): Likewise.
40961 (vreinterpret_s64_s16): Likewise.
40962 (vreinterpret_s64_s32): Likewise.
40963 (vreinterpret_s64_f32): Likewise.
40964 (vreinterpret_s64_u8): Likewise.
40965 (vreinterpret_s64_u16): Likewise.
40966 (vreinterpret_s64_u32): Likewise.
40967 (vreinterpret_s64_u64): Likewise.
40968 (vreinterpret_s64_p8): Likewise.
40969 (vreinterpret_s64_p16): Likewise.
40970 (vreinterpretq_s64_s8): Likewise.
40971 (vreinterpretq_s64_s16): Likewise.
40972 (vreinterpretq_s64_s32): Likewise.
40973 (vreinterpretq_s64_f32): Likewise.
40974 (vreinterpretq_s64_u8): Likewise.
40975 (vreinterpretq_s64_u16): Likewise.
40976 (vreinterpretq_s64_u32): Likewise.
40977 (vreinterpretq_s64_u64): Likewise.
40978 (vreinterpretq_s64_p8): Likewise.
40979 (vreinterpretq_s64_p16): Likewise.
40980 (vreinterpret_u64_s8): Likewise.
40981 (vreinterpret_u64_s16): Likewise.
40982 (vreinterpret_u64_s32): Likewise.
40983 (vreinterpret_u64_s64): Likewise.
40984 (vreinterpret_u64_f32): Likewise.
40985 (vreinterpret_u64_u8): Likewise.
40986 (vreinterpret_u64_u16): Likewise.
40987 (vreinterpret_u64_u32): Likewise.
40988 (vreinterpret_u64_p8): Likewise.
40989 (vreinterpret_u64_p16): Likewise.
40990 (vreinterpretq_u64_s8): Likewise.
40991 (vreinterpretq_u64_s16): Likewise.
40992 (vreinterpretq_u64_s32): Likewise.
40993 (vreinterpretq_u64_s64): Likewise.
40994 (vreinterpretq_u64_f32): Likewise.
40995 (vreinterpretq_u64_u8): Likewise.
40996 (vreinterpretq_u64_u16): Likewise.
40997 (vreinterpretq_u64_u32): Likewise.
40998 (vreinterpretq_u64_p8): Likewise.
40999 (vreinterpretq_u64_p16): Likewise.
41000 (vreinterpret_s8_s16): Likewise.
41001 (vreinterpret_s8_s32): Likewise.
41002 (vreinterpret_s8_s64): Likewise.
41003 (vreinterpret_s8_f32): Likewise.
41004 (vreinterpret_s8_u8): Likewise.
41005 (vreinterpret_s8_u16): Likewise.
41006 (vreinterpret_s8_u32): Likewise.
41007 (vreinterpret_s8_u64): Likewise.
41008 (vreinterpret_s8_p8): Likewise.
41009 (vreinterpret_s8_p16): Likewise.
41010 (vreinterpretq_s8_s16): Likewise.
41011 (vreinterpretq_s8_s32): Likewise.
41012 (vreinterpretq_s8_s64): Likewise.
41013 (vreinterpretq_s8_f32): Likewise.
41014 (vreinterpretq_s8_u8): Likewise.
41015 (vreinterpretq_s8_u16): Likewise.
41016 (vreinterpretq_s8_u32): Likewise.
41017 (vreinterpretq_s8_u64): Likewise.
41018 (vreinterpretq_s8_p8): Likewise.
41019 (vreinterpretq_s8_p16): Likewise.
41020 (vreinterpret_s16_s8): Likewise.
41021 (vreinterpret_s16_s32): Likewise.
41022 (vreinterpret_s16_s64): Likewise.
41023 (vreinterpret_s16_f32): Likewise.
41024 (vreinterpret_s16_u8): Likewise.
41025 (vreinterpret_s16_u16): Likewise.
41026 (vreinterpret_s16_u32): Likewise.
41027 (vreinterpret_s16_u64): Likewise.
41028 (vreinterpret_s16_p8): Likewise.
41029 (vreinterpret_s16_p16): Likewise.
41030 (vreinterpretq_s16_s8): Likewise.
41031 (vreinterpretq_s16_s32): Likewise.
41032 (vreinterpretq_s16_s64): Likewise.
41033 (vreinterpretq_s16_f32): Likewise.
41034 (vreinterpretq_s16_u8): Likewise.
41035 (vreinterpretq_s16_u16): Likewise.
41036 (vreinterpretq_s16_u32): Likewise.
41037 (vreinterpretq_s16_u64): Likewise.
41038 (vreinterpretq_s16_p8): Likewise.
41039 (vreinterpretq_s16_p16): Likewise.
41040 (vreinterpret_s32_s8): Likewise.
41041 (vreinterpret_s32_s16): Likewise.
41042 (vreinterpret_s32_s64): Likewise.
41043 (vreinterpret_s32_f32): Likewise.
41044 (vreinterpret_s32_u8): Likewise.
41045 (vreinterpret_s32_u16): Likewise.
41046 (vreinterpret_s32_u32): Likewise.
41047 (vreinterpret_s32_u64): Likewise.
41048 (vreinterpret_s32_p8): Likewise.
41049 (vreinterpret_s32_p16): Likewise.
41050 (vreinterpretq_s32_s8): Likewise.
41051 (vreinterpretq_s32_s16): Likewise.
41052 (vreinterpretq_s32_s64): Likewise.
41053 (vreinterpretq_s32_f32): Likewise.
41054 (vreinterpretq_s32_u8): Likewise.
41055 (vreinterpretq_s32_u16): Likewise.
41056 (vreinterpretq_s32_u32): Likewise.
41057 (vreinterpretq_s32_u64): Likewise.
41058 (vreinterpretq_s32_p8): Likewise.
41059 (vreinterpretq_s32_p16): Likewise.
41060 (vreinterpret_u8_s8): Likewise.
41061 (vreinterpret_u8_s16): Likewise.
41062 (vreinterpret_u8_s32): Likewise.
41063 (vreinterpret_u8_s64): Likewise.
41064 (vreinterpret_u8_f32): Likewise.
41065 (vreinterpret_u8_u16): Likewise.
41066 (vreinterpret_u8_u32): Likewise.
41067 (vreinterpret_u8_u64): Likewise.
41068 (vreinterpret_u8_p8): Likewise.
41069 (vreinterpret_u8_p16): Likewise.
41070 (vreinterpretq_u8_s8): Likewise.
41071 (vreinterpretq_u8_s16): Likewise.
41072 (vreinterpretq_u8_s32): Likewise.
41073 (vreinterpretq_u8_s64): Likewise.
41074 (vreinterpretq_u8_f32): Likewise.
41075 (vreinterpretq_u8_u16): Likewise.
41076 (vreinterpretq_u8_u32): Likewise.
41077 (vreinterpretq_u8_u64): Likewise.
41078 (vreinterpretq_u8_p8): Likewise.
41079 (vreinterpretq_u8_p16): Likewise.
41080 (vreinterpret_u16_s8): Likewise.
41081 (vreinterpret_u16_s16): Likewise.
41082 (vreinterpret_u16_s32): Likewise.
41083 (vreinterpret_u16_s64): Likewise.
41084 (vreinterpret_u16_f32): Likewise.
41085 (vreinterpret_u16_u8): Likewise.
41086 (vreinterpret_u16_u32): Likewise.
41087 (vreinterpret_u16_u64): Likewise.
41088 (vreinterpret_u16_p8): Likewise.
41089 (vreinterpret_u16_p16): Likewise.
41090 (vreinterpretq_u16_s8): Likewise.
41091 (vreinterpretq_u16_s16): Likewise.
41092 (vreinterpretq_u16_s32): Likewise.
41093 (vreinterpretq_u16_s64): Likewise.
41094 (vreinterpretq_u16_f32): Likewise.
41095 (vreinterpretq_u16_u8): Likewise.
41096 (vreinterpretq_u16_u32): Likewise.
41097 (vreinterpretq_u16_u64): Likewise.
41098 (vreinterpretq_u16_p8): Likewise.
41099 (vreinterpretq_u16_p16): Likewise.
41100 (vreinterpret_u32_s8): Likewise.
41101 (vreinterpret_u32_s16): Likewise.
41102 (vreinterpret_u32_s32): Likewise.
41103 (vreinterpret_u32_s64): Likewise.
41104 (vreinterpret_u32_f32): Likewise.
41105 (vreinterpret_u32_u8): Likewise.
41106 (vreinterpret_u32_u16): Likewise.
41107 (vreinterpret_u32_u64): Likewise.
41108 (vreinterpret_u32_p8): Likewise.
41109 (vreinterpret_u32_p16): Likewise.
41110 (vreinterpretq_u32_s8): Likewise.
41111 (vreinterpretq_u32_s16): Likewise.
41112 (vreinterpretq_u32_s32): Likewise.
41113 (vreinterpretq_u32_s64): Likewise.
41114 (vreinterpretq_u32_f32): Likewise.
41115 (vreinterpretq_u32_u8): Likewise.
41116 (vreinterpretq_u32_u16): Likewise.
41117 (vreinterpretq_u32_u64): Likewise.
41118 (vreinterpretq_u32_p8): Likewise.
41119 (vreinterpretq_u32_p16): Likewise.
41120
41121 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
41122
41123 * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
41124 Pattern extended.
41125 * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
41126 (sqabs): Likewise.
41127 * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
41128 (vqnegd_s64): Likewise.
41129 (vqabs_s64): Likewise.
41130 (vqabsd_s64): Likewise.
41131
41132 2014-04-22 Richard Henderson <rth@redhat.com>
41133
41134 * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
41135 computation to the top of the loop.
41136
41137 2014-04-22 Renlin <renlin.li@arm.com>
41138 Jiong Wang <jiong.wang@arm.com>
41139
41140 * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
41141 * config/aarch64/aarch64.c (aarch64_layout_frame)
41142 (aarch64_initial_elimination_offset): Likewise.
41143
41144 2014-04-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
41145
41146 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
41147 Fix indentation.
41148
41149 2014-04-22 Richard Sandiford <rdsandiford@googlemail.com>
41150
41151 * machmode.h (bitwise_mode_for_mode): Declare.
41152 * stor-layout.h (bitwise_type_for_mode): Likewise.
41153 * stor-layout.c (bitwise_mode_for_mode): New function.
41154 (bitwise_type_for_mode): Likewise.
41155 * builtins.c (fold_builtin_memory_op): Use it instead of
41156 int_mode_for_mode and build_nonstandard_integer_type.
41157
41158 2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
41159
41160 * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
41161 (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
41162 (*-*-solaris2*): Simplify.
41163 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
41164 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
41165 *-*-solaris2.9* handling.
41166
41167 * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
41168 as bug.
41169 (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
41170 (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
41171 handling, simplify.
41172 (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
41173 * configure: Regenerate.
41174
41175 * config/i386/sol2-9.h: Remove.
41176
41177 * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
41178 (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
41179 Remove Solaris 9 references.
41180
41181 2014-04-22 Vidya Praveen <vidyapraveen@arm.com>
41182
41183 * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
41184 (floatuns<GPI:mode><GPF:mode>2): Remove.
41185 (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
41186 and floatuns conversions.
41187 (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
41188 and floatuns conversions.
41189 * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
41190 (w1,w2): New mode attributes for inequal width conversions.
41191
41192 2014-04-22 Renlin Li <Renlin.Li@arm.com>
41193
41194 * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
41195 the output asm format.
41196
41197 2014-04-22 James Greenhalgh <james.greenhalgh@arm.com>
41198
41199 * config/aarch64/aarch64-simd.md
41200 (aarch64_cm<optab>di): Always split.
41201 (*aarch64_cm<optab>di): New.
41202 (aarch64_cmtstdi): Always split.
41203 (*aarch64_cmtstdi): New.
41204
41205 2014-04-22 Jakub Jelinek <jakub@redhat.com>
41206
41207 PR tree-optimization/60823
41208 * omp-low.c (ipa_simd_modify_function_body): Go through
41209 all SSA_NAMEs and for those refering to vector arguments
41210 which are going to be replaced adjust SSA_NAME_VAR and,
41211 if it is a default definition, change it into a non-default
41212 definition assigned at the beginning of function from new_decl.
41213 (ipa_simd_modify_stmt_ops): Rewritten.
41214 * tree-dfa.c (set_ssa_default_def): When removing default def,
41215 check for NULL loc instead of NULL *loc.
41216
41217 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
41218
41219 * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
41220 restrictions on core registers for DImode values in Thumb2.
41221
41222 2014-04-22 Ian Bolton <ian.bolton@arm.com>
41223
41224 * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
41225 * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
41226
41227 2014-04-22 Ian Bolton <ian.bolton@arm.com>
41228
41229 * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
41230 (*iordi_notzesidi_di): Likewise.
41231 (*iordi_notsesidi_di): Likewise.
41232
41233 2014-04-22 Ian Bolton <ian.bolton@arm.com>
41234
41235 * config/arm/arm-protos.h (tune_params): New struct members.
41236 * config/arm/arm.c: Initialise tune_params per processor.
41237 (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
41238 for speed, based on new tune_params.
41239
41240 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
41241
41242 * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
41243 * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
41244 * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
41245 * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
41246 * config/aarch64/arm_neon.h (vrnd_f64): Added.
41247 (vrnda_f64): Likewise.
41248 (vrndi_f64): Likewise.
41249 (vrndm_f64): Likewise.
41250 (vrndn_f64): Likewise.
41251 (vrndp_f64): Likewise.
41252 (vrndx_f64): Likewise.
41253
41254 2014-04-22 Zhenqiang Chen <zhenqiang.chen@linaro.org>
41255
41256 * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
41257 GET_MODE_SIZE argument is enum machine_mode.
41258
41259 2014-04-22 Jakub Jelinek <jakub@redhat.com>
41260
41261 PR target/60910
41262 * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
41263 value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
41264
41265 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
41266
41267 PR middle-end/60281
41268 * asan.c (asan_emit_stack_protection): Force the base to align to
41269 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
41270 appropriate bits if STRICT_ALIGNMENT.
41271 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
41272 when asan is on.
41273 (expand_used_vars): Leave a space in the stack frame for alignment
41274 if STRICT_ALIGNMENT.
41275
41276 2014-04-21 David Malcolm <dmalcolm@redhat.com>
41277
41278 * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
41279 than a gimple.
41280 (gimple_store_p): Likewise.
41281 (gimple_assign_load_p): Likewise.
41282 (gimple_assign_cast_p): Likewise.
41283 (gimple_clobber_p): Likewise.
41284
41285 * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
41286 rather than a gimple.
41287 (gimple_assign_cast_p): Likewise.
41288
41289 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
41290
41291 PR target/60735
41292 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
41293 If mode is DDmode and TARGET_E500_DOUBLE allow move.
41294
41295 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
41296 more debug information for E500 if -mdebug=reg.
41297
41298 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
41299
41300 PR target/60909
41301 * config/i386/i386.c (ix86_expand_builtin)
41302 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
41303 register for target RTX.
41304 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
41305
41306 2014-04-18 Cong Hou <congh@google.com>
41307
41308 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
41309 the widen-mult pattern by handling two operands with different sizes,
41310 and operands whose size is smaller than half of the result type.
41311
41312 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
41313
41314 * ipa-inline.h (INLINE_HINT_known_hot): New hint.
41315 * ipa-inline-analysis.c (dump_inline_hints): Dump it.
41316 (do_estimate_edge_time): Compute it.
41317 * ipa-inline.c (want_inline_small_function_p): Bypass
41318 INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
41319
41320 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
41321
41322 * ipa-inline.c (spec_rem): New static variable.
41323 (dump_overall_stats): New function.
41324 (dump_inline_stats): New function.
41325
41326 2014-04-18 Richard Henderson <rth@redhat.com>
41327
41328 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
41329 to GET_MODE_SIZE, not a reg_class_t.
41330
41331 2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
41332
41333 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
41334 (vsx_xxmrglw_<mode>): Likewise.
41335
41336 2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
41337
41338 PR target/60876
41339 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
41340 GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
41341 (rs6000_init_hard_regno_mode_ok): Likewise.
41342
41343 2014-04-17 Jan Hubicka <hubicka@ucw.cz>
41344
41345 * ipa-inline.c (inline_small_functions): Account only non-cold
41346 functions.
41347 * doc/invoke.texi (inline-unit-growth): Update documentation.
41348
41349 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
41350
41351 * config/rs6000/rs6000.md (addti3, subti3): New.
41352
41353 2014-04-17 H.J. Lu <hongjiu.lu@intel.com>
41354
41355 PR target/60863
41356 * config/i386/i386.c (ix86_expand_clear): Remove outdated
41357 comment. Check optimize_insn_for_size_p instead of
41358 optimize_insn_for_speed_p.
41359
41360 2014-04-17 Martin Jambor <mjambor@suse.cz>
41361
41362 * gimple-iterator.c (gsi_start_edge): New function.
41363 * gimple-iterator.h (gsi_start_edge): Declare.
41364 * tree-sra.c (single_non_eh_succ): New function.
41365 (disqualify_ops_if_throwing_stmt): Renamed to
41366 disqualify_if_bad_bb_terminating_stmt. Allow throwing statements
41367 having one non-EH successor BB.
41368 (sra_modify_expr): If stmt ends bb, use single non-EH successor to
41369 generate loads into replacements.
41370 (sra_modify_assign): Likewise and and also use the simple path for
41371 such statements.
41372 (sra_modify_function_body): Commit statements on edges.
41373
41374 2014-04-17 Richard Biener <rguenther@suse.de>
41375
41376 PR middle-end/60849
41377 * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
41378 comparison results and add clarifying comment.
41379
41380 2014-04-17 Jakub Jelinek <jakub@redhat.com>
41381
41382 * genmodes.c (struct mode_data): Add need_bytesize_adj field.
41383 (blank_mode): Initialize it.
41384 (emit_mode_size_inline, emit_mode_nunits_inline,
41385 emit_mode_inner_inline): New functions.
41386 (emit_insn_modes_h): Call them and surround their output with
41387 #if GCC_VERSION >= 4001 ... #endif.
41388 * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
41389 For GCC_VERSION >= 4001 use mode_*_inline routines instead of
41390 mode_* arrays if the argument is __builtin_constant_p.
41391 * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
41392 is enum machine_mode.
41393
41394 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
41395
41396 * passes.c (opt_pass::execute): Adjust.
41397 (pass_manager::execute_pass_mode_switching): Likewise.
41398 (early_local_passes::execute): Likewise.
41399 (execute_one_pass): Pass cfun to the pass's execute method.
41400 * tree-pass.h (opt_pass::execute): Add function * argument.
41401 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
41402 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
41403 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
41404 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41405 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
41406 config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
41407 except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
41408 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
41409 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
41410 ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
41411 ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
41412 lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
41413 postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
41414 reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
41415 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
41416 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
41417 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
41418 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
41419 tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
41420 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41421 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41422 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41423 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41424 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41425 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41426 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41427 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
41428 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
41429 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
41430 Adjust.
41431
41432 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
41433
41434 * passes.c (opt_pass::gate): Take function * argument.
41435 (gate_all_early_local_passes): Merge into
41436 (early_local_passes::gate): this.
41437 (gate_all_early_optimizations): Merge into
41438 (all_early_optimizations::gate): this.
41439 (gate_all_optimizations): Mege into
41440 (all_optimizations::gate): this.
41441 (gate_all_optimizations_g): Merge into
41442 (all_optimizations_g::gate): this.
41443 (gate_rest_of_compilation): Mege into
41444 (rest_of_compilation::gate): this.
41445 (gate_postreload): Merge into
41446 (postreload::gate): this.
41447 (dump_one_pass): Pass cfun to the pass's gate method.
41448 (execute_ipa_summary_passes): Likewise.
41449 (execute_one_pass): Likewise.
41450 (ipa_write_summaries_2): Likewise.
41451 (ipa_write_optimization_summaries_1): Likewise.
41452 (ipa_read_summaries_1): Likewise.
41453 (ipa_read_optimization_summaries_1): Likewise.
41454 (execute_ipa_stmt_fixups): Likewise.
41455 * tree-pass.h (opt_pass::gate): Add function * argument.
41456 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
41457 combine-stack-adj.c, combine.c, compare-elim.c,
41458 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41459 config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
41460 config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
41461 dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c, fwprop.c, gcse.c,
41462 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
41463 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
41464 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
41465 loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
41466 omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
41467 reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
41468 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
41469 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
41470 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
41471 tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
41472 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
41473 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41474 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41475 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41476 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41477 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41478 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41479 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41480 tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
41481 tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
41482 var-tracking.c, vtable-verify.c, web.c: Adjust.
41483
41484 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
41485
41486 * configure.ac: Check for -Woverloaded-virtual and enable it if found.
41487 * configure: Regenerate.
41488
41489 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
41490
41491 * passes.c (dump_one_pass): don't check pass->has_gate.
41492 (execute_ipa_summary_passes): Likewise.
41493 (execute_one_pass): Likewise.
41494 (ipa_write_summaries_2): Likewise.
41495 (ipa_write_optimization_summaries_1): Likewise.
41496 (ipa_read_optimization_summaries_1): Likewise.
41497 (execute_ipa_stmt_fixups): Likewise.
41498 * tree-pass.h (pass_data::has_gate): Remove.
41499 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
41500 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
41501 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
41502 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41503 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
41504 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
41505 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
41506 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
41507 gimple-low.c, gimple-ssa-isolate-paths.c,
41508 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
41509 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
41510 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
41511 ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
41512 modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
41513 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
41514 reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
41515 trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
41516 tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
41517 tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
41518 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
41519 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
41520 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41521 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41522 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41523 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41524 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41525 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41526 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41527 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
41528 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
41529 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
41530 Adjust.
41531
41532 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
41533
41534 * pass_manager.h (pass_manager::register_dump_files_1): Remove
41535 declaration.
41536 * passes.c (pass_manager::register_dump_files_1): Merge into
41537 (pass_manager::register_dump_files): this, and remove its handling of
41538 properties since the pass always has the properties anyway.
41539 (pass_manager::pass_manager): Adjust.
41540
41541 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
41542
41543 * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
41544 * passes.c (pass_manager::register_dump_files_1): Remove dead code
41545 dealing with properties.
41546 (pass_manager::register_dump_files): Adjust.
41547
41548 2014-03-20 Mark Wielaard <mjw@redhat.com>
41549
41550 * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
41551 then represent the bound as normal constant value.
41552
41553 2014-04-17 Jakub Jelinek <jakub@redhat.com>
41554
41555 PR target/60847
41556 Forward port from 4.8 branch
41557 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
41558
41559 * config/i386/bmiintrin.h (_blsi_u32): New.
41560 (_blsi_u64): Ditto.
41561 (_blsr_u32): Ditto.
41562 (_blsr_u64): Ditto.
41563 (_blsmsk_u32): Ditto.
41564 (_blsmsk_u64): Ditto.
41565 (_tzcnt_u32): Ditto.
41566 (_tzcnt_u64): Ditto.
41567
41568 2014-04-17 Kito Cheng <kito@0xlab.org>
41569
41570 * gcc.c (used_arg): Prevent out of bound access for multilib_options.
41571
41572 2014-04-17 Richard Biener <rguenther@suse.de>
41573
41574 PR middle-end/60849
41575 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
41576 boolean results for comparisons.
41577
41578 2014-04-17 Richard Biener <rguenther@suse.de>
41579
41580 PR tree-optimization/60836
41581 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
41582 initial PHI args to be gimple values.
41583
41584 2014-04-17 Richard Biener <rguenther@suse.de>
41585
41586 PR tree-optimization/60841
41587 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
41588 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
41589 of stmts to SLP build.
41590 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
41591 (vect_analyze_slp): Likewise.
41592 (vect_analyze_slp_instance): Likewise.
41593 (vect_build_slp_tree): Limit overall SLP tree growth.
41594 * tree-vectorizer.h (vect_analyze_data_refs,
41595 vect_analyze_slp): Adjust prototypes.
41596
41597 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
41598
41599 * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
41600 Silvermont.
41601
41602 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
41603
41604 * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
41605 * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
41606 * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
41607 for TARGET_SLOW_PSHUFB
41608
41609 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
41610
41611 * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
41612 * config/i386/i386.c (intel_cost): Ditto.
41613
41614 2014-04-17 Joey Ye <joey.ye@arm.com>
41615
41616 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
41617
41618 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
41619
41620 * opts.c (common_handle_option): Disable -fipa-reference coorectly
41621 with -fuse-profile.
41622
41623 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
41624
41625 * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
41626 (type_all_derivations_known_p): New predicate.
41627 (type_all_ctors_visible_p): New predicate.
41628 (type_possibly_instantiated_p): New predicate.
41629 (get_odr_type): Compute all_derivations_known.
41630 (dump_odr_type): Dump the flag.
41631 (maybe_record_type): Cleanup.
41632 (record_target_from_binfo): Add bases_to_consider array;
41633 record bases for types w/o instances and skip CXX destructor.
41634 (possible_polymorphic_call_targets_1): Add bases_to_consider
41635 and consider_construction parameters; check if type may have instance.
41636 (get_polymorphic_call_info): Set maybe_in_construction to true
41637 when we know nothing.
41638 (record_targets_from_bases): Skip CXX destructors; they are
41639 never called for types in construction.
41640 (possible_polymorphic_call_targets): Do not record target when
41641 type may not have instance.
41642
41643 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
41644
41645 PR ipa/60854
41646 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
41647 external aliases alive, too.
41648
41649 2014-04-16 Andrew Pinski <apinski@cavium.com>
41650
41651 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
41652 definition.
41653
41654 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
41655
41656 * final.c (compute_alignments): Do not apply loop alignment to a block
41657 falling through to the exit.
41658
41659 2014-04-16 Catherine Moore <clm@codesourcery.com>
41660
41661 * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
41662 Adjust constraints for microMIPS store patterns.
41663
41664 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
41665
41666 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
41667
41668 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
41669
41670 * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
41671 (append_use): Run at -O0.
41672 (append_vdef): Likewise.
41673 * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
41674 * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
41675
41676 2014-04-16 Jakub Jelinek <jakub@redhat.com>
41677
41678 PR tree-optimization/60844
41679 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
41680 (propagate_op_to_single_use, remove_visited_stmt_chain,
41681 linearize_expr, repropagate_negates, reassociate_bb): Use it
41682 instead of gsi_remove.
41683
41684 2014-04-16 Martin Jambor <mjambor@suse.cz>
41685
41686 * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
41687 ipa_transforms_to_apply.
41688 (cgraph_function_versioning): Assert that old_node has empty
41689 ipa_transforms_to_apply.
41690 * trans-mem.c (ipa_tm_create_version): Likewise.
41691 * tree-inline.c (tree_function_versioning): Do not duplicate
41692 ipa_transforms_to_apply.
41693
41694 2014-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
41695
41696 PR target/60817
41697 * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
41698 x86_64-*-* cases.
41699 Pass necessary as flags on 64-bit Solaris/x86.
41700 Use lowercase relocs for x86_64-*-*.
41701 * configure: Regenerate.
41702
41703 2014-04-15 Jan Hubicka <jh@suse.cz>
41704
41705 * ipa-devirt.c (referenced_from_vtable_p): New predicate.
41706 (maybe_record_node, likely_target_p): Use it.
41707
41708 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
41709
41710 PR target/60839
41711 Revert following patch
41712
41713 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
41714
41715 PR target/60735
41716 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
41717 software floating point or no floating point registers, do not
41718 allow any type in the FPRs. Eliminate a test for SPE SIMD types
41719 in GPRs that occurs after we tested for GPRs that would never be
41720 true.
41721
41722 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
41723 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
41724 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
41725 specifically allow DDmode, since that does not use the SPE SIMD
41726 instructions.
41727
41728 2014-03-21 Mark Wielaard <mjw@redhat.com>
41729
41730 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
41731 as unsigned or int depending on type and value used.
41732
41733 2014-04-15 Richard Biener <rguenther@suse.de>
41734
41735 PR rtl-optimization/56965
41736 * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
41737 * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
41738 ... here.
41739 * alias.c (true_dependence_1): Do not call
41740 nonoverlapping_component_refs_p.
41741 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
41742 nonoverlapping_component_refs_p.
41743 (indirect_refs_may_alias_p): Likewise.
41744
41745 2014-04-15 Teresa Johnson <tejohnson@google.com>
41746
41747 * cfg.c (dump_bb_info): Fix flags check.
41748 * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
41749
41750 2014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
41751
41752 PR rtl-optimization/60663
41753 * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
41754 avoid 0 cost.
41755
41756 2014-04-15 Richard Biener <rguenther@suse.de>
41757
41758 * lto-streamer.h (LTO_major_version): Bump to 4.
41759
41760 2014-04-15 Richard Biener <rguenther@suse.de>
41761
41762 * common.opt (lto_partition_model): New enum.
41763 (flto-partition=): Merge separate options with a single with argument,
41764 add -flto-partition=one support.
41765 * flag-types.h (enum lto_partition_model): Declare.
41766 * opts.c (finish_options): Remove duplicate -flto-partition=
41767 option check.
41768 * lto-wrapper.c (run_gcc): Adjust.
41769
41770 2014-04-15 Richard Biener <rguenther@suse.de>
41771
41772 * alias.c (ncr_compar): New function.
41773 (nonoverlapping_component_refs_p): Re-implement in O (n log n).
41774
41775 2014-04-15 Richard Biener <rguenther@suse.de>
41776
41777 * alias.c (record_component_aliases): Do not walk BINFOs.
41778
41779 2014-04-15 Richard Biener <rguenther@suse.de>
41780
41781 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
41782 Add struct function argument and adjust.
41783 (find_func_aliases_for_call): Likewise.
41784 (find_func_aliases): Likewise.
41785 (find_func_clobbers): Likewise.
41786 (intra_create_variable_infos): Likewise.
41787 (compute_points_to_sets): Likewise.
41788 (ipa_pta_execute): Adjust. Do not push/pop cfun.
41789
41790 2014-04-15 Richard Biener <rguenther@suse.de>
41791
41792 * tree.c (iterative_hash_expr): Use enum tree_code_class
41793 to store TREE_CODE_CLASS.
41794 (tree_block): Likewise.
41795 (tree_set_block): Likewise.
41796 * tree.h (fold_build_pointer_plus_loc): Use
41797 convert_to_ptrofftype_loc.
41798
41799 2014-04-15 Jakub Jelinek <jakub@redhat.com>
41800
41801 PR plugins/59335
41802 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
41803 added in 4.9.
41804
41805 2014-04-15 Eric Botcazou <ebotcazou@adacore.com>
41806
41807 * cfgloop.h (struct loop): Move force_vectorize down.
41808 * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
41809 (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
41810 * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
41811 * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
41812 * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
41813 * tree-core.h (enum annot_expr_kind): Add new kind values.
41814 * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
41815 * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
41816 kinds.
41817 * tree.def (ANNOTATE_EXPR): Tweak comment.
41818
41819 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
41820
41821 * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
41822 cxa_pure_virtual).
41823
41824 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
41825
41826 * tree.h (TYPE_IDENTIFIER): Declare.
41827 * tree.c (subrange_type_for_debug_p): Use it.
41828 * godump.c (go_format_type): Likewise.
41829 * dwarf2out.c (is_cxx_auto, modified_type_die,
41830 gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
41831 * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
41832
41833 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
41834
41835 PR lto/60820
41836 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
41837
41838 2014-04-14 Uros Bizjak <ubizjak@gmail.com>
41839
41840 * config/i386/i386.c (examine_argument): Return bool. Return true if
41841 parameter should be passed in memory.
41842 <case X86_64_COMPLEX_X87_CLASS>: Adjust.
41843 (construct_container): Update calls to examine_argument.
41844 (function_arg_advance_64): Ditto.
41845 (return_in_memory_32): Merge with ix86_return_in_memory.
41846 (return_in_memory_64): Ditto.
41847 (return_in_memory_ms_64): Ditto.
41848
41849 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
41850
41851 * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
41852 * coverage.c (coverage_compute_profile_id): Handle externally visible
41853 symbols.
41854
41855 2014-04-14 Martin Jambor <mjambor@suse.cz>
41856
41857 * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
41858 DECL_DISREGARD_INLINE_LIMITS functions.
41859
41860 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
41861
41862 PR target/60827
41863 * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
41864
41865 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
41866
41867 PR target/60827
41868 * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
41869 optimize_insn_for_speed_p instead of
41870 optimize_function_for_speed_p.
41871
41872 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
41873
41874 * doc/invoke.texi (free): Document AArch64.
41875
41876 2014-04-14 Richard Biener <rguenther@suse.de>
41877
41878 PR tree-optimization/60042
41879 * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
41880 (insert_into_preds_of_block): Do not prevent PHI insertion
41881 for REFERENCE exprs here ...
41882 (eliminate_dom_walker::before_dom_children): ... but prevent
41883 their use here under similar conditions when applied to the
41884 IL after PRE optimizations.
41885
41886 2014-04-14 Richard Biener <rguenther@suse.de>
41887
41888 * passes.def: Move early points-to after early SRA.
41889
41890 2014-04-14 Richard Biener <rguenther@suse.de>
41891
41892 * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
41893 check for which sign-changes we allow when forwarding
41894 a converted value into a switch.
41895
41896 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
41897
41898 * stor-layout.c (place_field): Finalize non-constant offset for the
41899 field, if any.
41900
41901 2014-04-14 Richard Biener <rguenther@suse.de>
41902
41903 * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
41904 as argument.
41905 (expand_switch_using_bit_tests_p): Likewise.
41906 (process_switch): Compute and pass on speed_p based on the
41907 switch stmt.
41908 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
41909 optimize_bb_for_speed_p.
41910
41911 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
41912
41913 * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
41914 * function.h (struct function): Rename has_force_vect_loops into
41915 has_force_vectorize_loops.
41916 * lto-streamer-in.c (input_cfg): Adjust for renaming.
41917 (input_struct_function_base): Likewise.
41918 * lto-streamer-out.c (output_cfg): Likewise.
41919 (output_struct_function_base): Likewise.
41920 * omp-low.c (expand_omp_simd): Likewise.
41921 * tree-cfg.c (move_sese_region_to_fn): Likewise.
41922 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
41923 (version_loop_for_if_conversion): Likewise.
41924 (tree_if_conversion): Likewise.
41925 (main_tree_if_conversion): Likewise.
41926 (gate_tree_if_conversion): Likewise.
41927 * tree-inline.c (copy_loops): Likewise.
41928 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
41929 * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
41930 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
41931 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
41932 * tree-vectorizer.c (vectorize_loops): Likewise.
41933 * tree-vectorizer.h (unlimited_cost_model): Likewise.
41934
41935 2014-04-14 Richard Biener <rguenther@suse.de>
41936
41937 PR lto/60720
41938 * lto-streamer-out.c (wrap_refs): New function.
41939 (lto_output): Wrap symbol references in global initializes in
41940 type-preserving MEM_REFs.
41941
41942 2014-04-14 Christian Bruel <christian.bruel@st.com>
41943
41944 * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
41945
41946 2014-04-14 Christian Bruel <christian.bruel@st.com>
41947
41948 * config/sh/sh.md (setmemqi): New expand pattern.
41949 * config/sh/sh.h (CLEAR_RATIO): Define.
41950 * config/sh/sh-mem.cc (sh_expand_setmem): Define.
41951 * config/sh/sh-protos.h (sh_expand_setmem): Declare.
41952
41953 2014-04-14 Richard Biener <rguenther@suse.de>
41954
41955 PR middle-end/55022
41956 * fold-const.c (negate_expr_p): Don't negate directional rounding
41957 division.
41958 (fold_negate_expr): Likewise.
41959
41960 2014-04-14 Richard Biener <rguenther@suse.de>
41961
41962 PR tree-optimization/59817
41963 PR tree-optimization/60453
41964 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
41965 recursion to catch all CHRECs in the scalar evolution and restrict
41966 the predicate for the remains appropriately.
41967
41968 2014-04-12 Catherine Moore <clm@codesourcery.com>
41969
41970 * config/mips/constraints.md: Add new register constraint "kb".
41971 * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
41972 (*movhi_internal): Likewise.
41973 (*movqi_internal): Likewise.
41974 * config/mips/mips.h (M16_STORE_REGS): New register class.
41975 (REG_CLASS_NAMES): Add M16_STORE_REGS.
41976 (REG_CLASS_CONTENTS): Likewise.
41977 * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
41978
41979 2014-04-11 Tobias Burnus <burnus@net-b.de>
41980
41981 PR c/60194
41982 * doc/invoke.texi (-Wformat-signedness): Document it.
41983 (Wformat=2): Mention that this enables -Wformat-signedness.
41984
41985 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
41986
41987 * common/config/epiphany/epiphany-common.c
41988 (epiphany_option_optimization_table): Enable section anchors by
41989 default at -O1 or higher.
41990 * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
41991 (TARGET_MIN_ANCHOR_OFFSET): Likewise.
41992 (epiphany_rtx_costs) <SET>: For binary operators, the set as such
41993 carries no extra cost.
41994 (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
41995 * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
41996 * config/epiphany/predicates.md (memclob_operand): New predicate.
41997 * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
41998 Use memclob_operand predicate and X constraint for operand 3.
41999
42000 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
42001
42002 * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
42003 with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
42004 its operands.
42005
42006 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
42007
42008 PR rtl-optimization/60651
42009 * mode-switching.c (optimize_mode_switching): Make sure to emit
42010 sets of a lower numbered entity before sets of a higher numbered
42011 entity to a mode of the same or lower priority.
42012 When creating a seginfo for a basic block that starts with a code
42013 label, move the insertion point past the code label.
42014 (new_seginfo): Document and enforce requirement that
42015 NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
42016 * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
42017 * doc/tm.texi: Regenerate.
42018
42019 2014-01-11 Joern Rennecke <joern.rennecke@embecosm.com>
42020
42021 PR target/60811
42022 * config/arc/arc.c (arc_save_restore): Fix assert typo.
42023
42024 2013-04-11 Jakub Jelinek <jakub@redhat.com>
42025
42026 * BASE-VER: Set to 4.10.0.
42027
42028 2014-04-11 Tobias Burnus <burnus@net-b.de>
42029
42030 PR other/59055
42031 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
42032 * doc/gcc.texi (Service): Update description in the @menu
42033 * doc/invoke.texi (Option Summary): Remove misplaced and
42034 duplicated @menu.
42035
42036 2014-04-11 Steve Ellcey <sellcey@mips.com>
42037 Jakub Jelinek <jakub@redhat.com>
42038
42039 PR middle-end/60556
42040 * expr.c (convert_move): Use emit_store_flag_force instead of
42041 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
42042 argument to it.
42043
42044 2014-04-11 Richard Biener <rguenther@suse.de>
42045
42046 PR middle-end/60797
42047 * varasm.c (assemble_alias): Avoid endless error reporting
42048 recursion by setting TREE_ASM_WRITTEN.
42049
42050 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
42051
42052 * config/s390/s390.md: Add a splitter for NOT rtx.
42053
42054 2014-04-11 Jakub Jelinek <jakub@redhat.com>
42055
42056 PR rtl-optimization/60663
42057 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
42058
42059 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
42060 Jakub Jelinek <jakub@redhat.com>
42061
42062 PR lto/60567
42063 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
42064 flag from decl_node to node.
42065
42066 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
42067
42068 PR debug/60655
42069 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
42070 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
42071 ameliorating the cases where it can be.
42072
42073 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
42074
42075 Revert
42076 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
42077
42078 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
42079 (loadsync_<mode>): Change mode.
42080 (load_quadpti, store_quadpti): New.
42081 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
42082 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
42083 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
42084
42085 2014-04-09 Cong Hou <congh@google.com>
42086
42087 PR testsuite/60773
42088 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
42089 documentation.
42090
42091 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
42092
42093 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
42094 instead of vnor to exploit possible fusion opportunity in the
42095 future.
42096 (altivec_expand_vec_perm_const_le): Likewise.
42097
42098 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
42099
42100 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
42101 (loadsync_<mode>): Change mode.
42102 (load_quadpti, store_quadpti): New.
42103 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
42104 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
42105
42106 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
42107
42108 PR target/60763
42109 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
42110 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
42111 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
42112
42113 2014-04-08 Richard Biener <rguenther@suse.de>
42114
42115 PR middle-end/60706
42116 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
42117 a 64bit widest int print double-int similar to on HWI64 hosts.
42118
42119 2014-04-08 Richard Biener <rguenther@suse.de>
42120
42121 PR tree-optimization/60785
42122 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
42123 default defs properly.
42124
42125 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
42126
42127 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
42128 (Weffc++): Likewise.
42129
42130 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
42131
42132 * ipa-devirt.c (maybe_record_node): When node is not recorded,
42133 set completep to false rather than true.
42134
42135 2014-04-07 Douglas B Rupp <rupp@adacore.com>
42136
42137 PR target/60504
42138 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
42139 ARM_TARGET2_DWARF_FORMAT.
42140
42141 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
42142
42143 PR target/60609
42144 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
42145 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
42146 ADDR_DIFF_VEC.
42147
42148 2014-04-07 Richard Biener <rguenther@suse.de>
42149
42150 PR tree-optimization/60766
42151 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
42152 (may_eliminate_iv): Convert cand_value_at result to desired type.
42153
42154 2014-04-07 Jason Merrill <jason@redhat.com>
42155
42156 PR c++/60731
42157 * common.opt (-fno-gnu-unique): Add.
42158 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
42159
42160 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42161
42162 * haifa-sched.c: Fix outdated function reference and minor
42163 grammar errors in introductory comment.
42164
42165 2014-04-07 Richard Biener <rguenther@suse.de>
42166
42167 PR middle-end/60750
42168 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
42169 for noreturn calls.
42170 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
42171
42172 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
42173
42174 PR debug/55794
42175 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
42176 size accounting for thunks.
42177 (pa_asm_output_mi_thunk): Use final_start_function() and
42178 final_end_function() to output function start and end directives.
42179
42180 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
42181
42182 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
42183 device specific ISA/ feature information. Remove short_sp and
42184 errata_skip ds. Add avr_device_specific_features enum to have device
42185 specific info.
42186 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
42187 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
42188 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
42189 updated device specific info.
42190 * config/avr/avr-mcus.def: Merge device specific details to
42191 dev_attribute field.
42192 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
42193 errata_skip.
42194 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
42195 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
42196 assembler if RMW isa supported by current device.
42197 * config/avr/genmultilib.awk: Update as device info structure changed.
42198 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
42199
42200 2014-04-04 Cong Hou <congh@google.com>
42201
42202 PR tree-optimization/60656
42203 * tree-vect-stmts.c (supportable_widening_operation):
42204 Fix a bug that elements in a vector with vect_used_by_reduction
42205 property are incorrectly reordered when the operation on it is not
42206 consistant with the one in reduction operation.
42207
42208 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
42209
42210 PR rtl-optimization/60155
42211 * gcse.c (record_set_data): New function.
42212 (single_set_gcse): New function.
42213 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
42214 (hoist_code): Likewise.
42215 (get_pressure_class_and_nregs): Likewise.
42216
42217 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
42218
42219 * explow.c (probe_stack_range): Emit a final optimization blockage.
42220
42221 2014-04-04 Anthony Green <green@moxielogic.com>
42222
42223 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
42224 typos.
42225
42226 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
42227
42228 PR ipa/59626
42229 * lto-cgraph.c (input_overwrite_node): Check that partitioning
42230 flags are set only during streaming.
42231 * ipa.c (process_references, walk_polymorphic_call_targets,
42232 symtab_remove_unreachable_nodes): Drop bodies of always inline
42233 after early inlining.
42234 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
42235
42236 2014-04-04 Jakub Jelinek <jakub@redhat.com>
42237 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
42238
42239 PR debug/60655
42240 * dwarf2out.c (const_ok_for_output_1): Reject expressions
42241 containing a NOT.
42242
42243 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42244
42245 PR bootstrap/60743
42246 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
42247 duration.
42248 (cortex_a53_fdivd): Likewise.
42249
42250 2014-04-04 Martin Jambor <mjambor@suse.cz>
42251
42252 PR ipa/60640
42253 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
42254 Adjust all callers.
42255 * cgraph.c (clone_of_p): Also return true if thunks match.
42256 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
42257 cgraph_function_or_thunk_node and an obsolete comment.
42258 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
42259 file.
42260 (build_function_decl_skip_args): Likewise.
42261 (set_new_clone_decl_and_node_flags): New function.
42262 (duplicate_thunk_for_node): Likewise.
42263 (redirect_edge_duplicating_thunks): Likewise.
42264 (cgraph_clone_node): New parameter args_to_skip, pass it to
42265 redirect_edge_duplicating_thunks which is called instead of
42266 cgraph_redirect_edge_callee.
42267 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
42268 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
42269
42270 2014-04-04 Jeff Law <law@redhat.com>
42271
42272 PR target/60657
42273 * config/arm/predicates.md (const_int_I_operand): New predicate.
42274 (const_int_M_operand): Similarly.
42275 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
42276 const_int_operand.
42277 (insv_t2, extv_reg, extzv_t2): Likewise.
42278 (load_multiple_with_writeback): Similarly for const_int_I_operand.
42279 (pop_multiple_with_writeback_and_return): Likewise.
42280 (vfp_pop_multiple_with_writeback): Likewise
42281
42282 2014-04-04 Richard Biener <rguenther@suse.de>
42283
42284 PR ipa/60746
42285 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
42286 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
42287 non-GIMPLE_LABELs.
42288 * gimplify.h (gimple_add_tmp_var_fn): Declare.
42289 * gimplify.c (gimple_add_tmp_var_fn): New function.
42290 * gimple-expr.h (create_tmp_reg_fn): Declare.
42291 * gimple-expr.c (create_tmp_reg_fn): New function.
42292 * gimple-low.c (record_vars_into): Don't change cfun.
42293 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
42294 code generation without cfun.
42295
42296 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
42297
42298 PR bootstrap/60719
42299 * Makefile.in (install-driver): Fix shell scripting.
42300
42301 2014-04-03 Cong Hou <congh@google.com>
42302
42303 PR tree-optimization/60505
42304 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
42305 threshold of number of iterations below which no vectorization
42306 will be done.
42307 * tree-vect-loop.c (new_loop_vec_info):
42308 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
42309 * tree-vect-loop.c (vect_analyze_loop_operations):
42310 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
42311 * tree-vect-loop.c (vect_transform_loop):
42312 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
42313 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
42314 of iterations of the loop and see if we should build the epilogue.
42315
42316 2014-04-03 Richard Biener <rguenther@suse.de>
42317
42318 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
42319 (streamer_tree_cache_create): Adjust.
42320 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
42321 to allow optional nodes array.
42322 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
42323 (streamer_tree_cache_append): Likewise.
42324 (streamer_tree_cache_create): Create nodes array optionally
42325 as specified by parameter.
42326 * lto-streamer-out.c (create_output_block): Avoid maintaining
42327 the node array in the writer cache.
42328 (DFS_write_tree): Remove assertion.
42329 (produce_asm_for_decls): Free the out decl state hash table early.
42330 * lto-streamer-in.c (lto_data_in_create): Adjust for
42331 streamer_tree_cache_create prototype change.
42332
42333 2014-04-03 Richard Biener <rguenther@suse.de>
42334
42335 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
42336 set TREE_CHAIN to NULL_TREE.
42337
42338 2014-04-03 Richard Biener <rguenther@suse.de>
42339
42340 PR tree-optimization/60740
42341 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
42342 over all GIMPLE_COND operands.
42343
42344 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
42345
42346 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
42347 (Weffc++): Remove Scott's numbering, merge lists and reference
42348 Wnon-virtual-dtor.
42349
42350 2014-04-03 Nick Clifton <nickc@redhat.com>
42351
42352 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
42353 properly.
42354
42355 2014-04-03 Martin Jambor <mjambor@suse.cz>
42356
42357 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
42358 mention gcc_unreachable before failing.
42359 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
42360 removed symbols.
42361
42362 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
42363
42364 PR ipa/60659
42365 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
42366 inconsistent code and instead mark the context inconsistent.
42367 (possible_polymorphic_call_targets): For inconsistent contexts
42368 return empty complete list.
42369
42370 2014-04-02 Anthony Green <green@moxielogic.com>
42371
42372 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
42373 (extendqisi2, extendhisi2): Define.
42374 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
42375 (WCHAR_TYPE): Change to unsigned int.
42376
42377 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
42378
42379 PR tree-optimization/60733
42380 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
42381 insertion point for PHI candidates to be the end of the feeding
42382 block for the PHI argument.
42383
42384 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
42385
42386 PR rtl-optimization/60650
42387 * lra-constraints.c (process_alt_operands): Decrease reject for
42388 earlyclobber matching.
42389
42390 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
42391
42392 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
42393
42394 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
42395
42396 * config/spu/spu.c (pad_bb): Do not crash when the last
42397 insn is CODE_FOR_blockage.
42398
42399 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
42400
42401 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
42402 lies outside the target mode.
42403
42404 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
42405
42406 PR target/60735
42407 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
42408 software floating point or no floating point registers, do not
42409 allow any type in the FPRs. Eliminate a test for SPE SIMD types
42410 in GPRs that occurs after we tested for GPRs that would never be
42411 true.
42412
42413 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
42414 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
42415 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
42416 specifically allow DDmode, since that does not use the SPE SIMD
42417 instructions.
42418
42419 2014-04-02 Richard Biener <rguenther@suse.de>
42420
42421 PR middle-end/60729
42422 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
42423 MODE_INTs. Properly use negv_optab.
42424 (expand_abs): Likewise.
42425
42426 2014-04-02 Richard Biener <rguenther@suse.de>
42427
42428 PR bootstrap/60719
42429 * Makefile.in (install-driver): Guard extra installs with special
42430 names properly.
42431
42432 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
42433
42434 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42435 Document vec_vgbbd.
42436
42437 2014-04-01 Richard Henderson <rth@redhat.com>
42438
42439 PR target/60704
42440 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
42441 alternative enabled before register allocation.
42442
42443 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
42444
42445 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
42446 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
42447 typo.
42448 (nios2_large_got_address): Remove unneeded 'sym' parameter.
42449 (nios2_got_address): Update nios2_large_got_address call site.
42450 (nios2_delegitimize_address): New function.
42451 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
42452 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
42453 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
42454
42455 2014-04-01 Martin Husemann <martin@duskware.de>
42456
42457 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
42458 for -mabi=32.
42459
42460 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
42461
42462 PR rtl-optimization/60604
42463 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
42464 check from register_operand.
42465 (register_operand): Redefine in terms of general_operand.
42466 (nonmemory_operand): Use register_operand for the non-constant cases.
42467
42468 2014-04-01 Richard Biener <rguenther@suse.de>
42469
42470 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
42471
42472 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
42473
42474 * doc/invoke.texi (mapp-regs): Clarify.
42475
42476 2014-03-31 Ulrich Drepper <drepper@gmail.com>
42477
42478 * config/i386/avx512fintrin.h (__v32hi): Define type.
42479 (__v64qi): Likewise.
42480 (_mm512_set1_epi8): Define.
42481 (_mm512_set1_epi16): Define.
42482 (_mm512_set4_epi32): Define.
42483 (_mm512_set4_epi64): Define.
42484 (_mm512_set4_pd): Define.
42485 (_mm512_set4_ps): Define.
42486 (_mm512_setr4_epi64): Define.
42487 (_mm512_setr4_epi32): Define.
42488 (_mm512_setr4_pd): Define.
42489 (_mm512_setr4_ps): Define.
42490 (_mm512_setzero_epi32): Define.
42491
42492 2014-03-31 Martin Jambor <mjambor@suse.cz>
42493
42494 PR middle-end/60647
42495 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
42496 callsite_arguments_match_p. Updated all callers. Also check types of
42497 corresponding formal parameters and actual arguments.
42498 (not_all_callers_have_enough_arguments_p) Renamed to
42499 some_callers_have_mismatched_arguments_p.
42500
42501 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
42502
42503 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
42504
42505 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
42506
42507 PR target/60034
42508 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
42509 section anchor.
42510
42511 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
42512
42513 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
42514 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
42515 Split out
42516 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
42517 Use FMAMODE_NOVF512 mode iterator.
42518 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
42519 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
42520 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
42521 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
42522 Split out
42523 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
42524 Use VF_128_256 mode iterator.
42525 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
42526 Ditto.
42527
42528 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
42529
42530 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
42531 static chain if needed.
42532
42533 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
42534
42535 PR target/60697
42536 * lra-constraints.c (index_part_to_reg): New.
42537 (process_address): Use it.
42538
42539 2014-03-27 Jeff Law <law@redhat.com>
42540 Jakub Jelinek <jakub@redhat.com>
42541
42542 PR target/60648
42543 * expr.c (do_tablejump): Use simplify_gen_binary rather than
42544 gen_rtx_{PLUS,MULT} to build up the address expression.
42545
42546 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
42547 creating non-canonical RTL.
42548
42549 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
42550
42551 PR ipa/60243
42552 * ipa-inline.c (want_inline_small_function_p): Short circuit large
42553 functions; reorganize to make cheap checks first.
42554 (inline_small_functions): Do not estimate growth when dumping;
42555 it is expensive.
42556 * ipa-inline.h (inline_summary): Add min_size.
42557 (growth_likely_positive): New function.
42558 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
42559 (set_cond_stmt_execution_predicate): Cleanup.
42560 (estimate_edge_size_and_time): Compute min_size.
42561 (estimate_calls_size_and_time): Likewise.
42562 (estimate_node_size_and_time): Likewise.
42563 (inline_update_overall_summary): Update min_size.
42564 (do_estimate_edge_time): Likewise.
42565 (do_estimate_edge_size): Update.
42566 (do_estimate_edge_hints): Update.
42567 (growth_likely_positive): New function.
42568
42569 2014-03-28 Jakub Jelinek <jakub@redhat.com>
42570
42571 PR target/60693
42572 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
42573 also if addr has VOIDmode.
42574
42575 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42576
42577 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
42578 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
42579 Declare extern.
42580 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
42581 instructions as well as AdvancedSIMD loads.
42582
42583 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42584
42585 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
42586 Use crypto_aese type.
42587 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
42588 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
42589 crypto_aese, crypto_aesmc. Move to types.md.
42590 * config/arm/types.md (crypto_aes): Split into crypto_aese,
42591 crypto_aesmc.
42592 * config/arm/iterators.md (crypto_type): Likewise.
42593
42594 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
42595
42596 * cgraph.c: Include expr.h and tree-dfa.h.
42597 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
42598 remove LHS.
42599
42600 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
42601
42602 PR target/60675
42603 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
42604 regs from checking multi-reg pseudos.
42605
42606 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
42607
42608 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
42609
42610 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
42611
42612 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
42613 if it would clobber the stack pointer, even temporarily.
42614
42615 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
42616
42617 * mode-switching.c: Make small adjustments to the top comment.
42618
42619 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
42620
42621 * config/rs6000/constraints.md (wD constraint): New constraint to
42622 match the constant integer to get the top DImode/DFmode out of a
42623 vector in a VSX register.
42624
42625 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
42626 match the constant integer to get the top DImode/DFmode out of a
42627 vector in a VSX register.
42628
42629 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
42630 for ISA 2.07.
42631
42632 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
42633 vbpermq builtins.
42634
42635 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
42636 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
42637
42638 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
42639 Optimize vec_extract of 64-bit values, where the value being
42640 extracted is in the top word, where we can use scalar
42641 instructions. Add direct move and store support. Combine the big
42642 endian/little endian vector select load support into a single insn.
42643 (vsx_extract_<mode>_internal1): Likewise.
42644 (vsx_extract_<mode>_internal2): Likewise.
42645 (vsx_extract_<mode>_load): Likewise.
42646 (vsx_extract_<mode>_store): Likewise.
42647 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
42648 combined into vsx_extract_<mode>_load.
42649 (vsx_extract_<mode>_one_le): Likewise.
42650
42651 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
42652 define the top 64-bit vector element.
42653
42654 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
42655 constraint.
42656
42657 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42658 Document vec_vbpermq builtin.
42659
42660 PR target/60672
42661 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
42662 enable use of xxsldwi and xxpermdi builtin functions.
42663 (vec_xxpermdi): Likewise.
42664
42665 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42666 Document use of vec_xxsldwi and vec_xxpermdi builtins.
42667
42668 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
42669
42670 PR rtl-optimization/60650
42671 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
42672 first_p. Use it.
42673 (find_spills_for): New.
42674 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
42675 Spill all pseudos on the second iteration.
42676
42677 2014-03-27 Marek Polacek <polacek@redhat.com>
42678
42679 PR c/50347
42680 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
42681 types.
42682
42683 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
42684
42685 * config/s390/s390.c (s390_can_use_return_insn): Check for
42686 call-saved FPRs on 31 bit.
42687
42688 2014-03-27 Jakub Jelinek <jakub@redhat.com>
42689
42690 PR middle-end/60682
42691 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
42692 if they need regimplification, just drop them instead of
42693 calling gimple_regimplify_operands on them.
42694
42695 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
42696
42697 PR target/60580
42698 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
42699 (aarch64_frame_pointer_required): Adjust logic.
42700 (aarch64_can_eliminate): Adjust logic.
42701 (aarch64_override_options_after_change): Adjust logic.
42702
42703 2014-03-27 Dehao Chen <dehao@google.com>
42704
42705 * ipa-inline.c (early_inliner): Update node's inline info.
42706
42707 2014-03-26 Dehao Chen <dehao@google.com>
42708
42709 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
42710 compiler inserted conditional jumps for NAN float check.
42711
42712 2014-03-26 Jakub Jelinek <jakub@redhat.com>
42713
42714 * ubsan.h (ubsan_create_data): Change second argument's type
42715 to const location_t *.
42716 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
42717 _("<unknown>").
42718 (ubsan_create_data): Change second argument to const location_t *PLOC.
42719 Create Loc field whenever PLOC is non-NULL.
42720 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
42721 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
42722 callers.
42723
42724 PR other/59545
42725 * real.c (real_to_integer2): Change type of low to UHWI.
42726
42727 2014-03-26 Tobias Burnus <burnus@net-b.de>
42728
42729 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
42730 (CILK_SELF_SPECS): New define.
42731 (driver_self_specs): Use it.
42732
42733 2014-03-26 Richard Biener <rguenther@suse.de>
42734
42735 * tree-pretty-print.c (percent_K_format): Implement special
42736 case for LTO and its stripped down BLOCK tree.
42737
42738 2014-03-26 Jakub Jelinek <jakub@redhat.com>
42739
42740 PR sanitizer/60636
42741 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
42742
42743 * tree-vrp.c (simplify_internal_call_using_ranges): If only
42744 one range is range_int_cst_p, but not both, at least optimize
42745 addition/subtraction of 0 and multiplication by 0 or 1.
42746 * gimple-fold.c (gimple_fold_call): Fold
42747 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
42748 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
42749 INTEGER_CSTs, try to fold at least x * 0 and y - y.
42750
42751 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
42752
42753 PR rtl-optimization/60452
42754 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
42755 <case REG>: Return 1 for invalid offsets from the frame pointer.
42756
42757 2014-03-26 Marek Polacek <polacek@redhat.com>
42758
42759 PR c/37428
42760 * doc/extend.texi (C Extensions): Mention variable-length arrays in
42761 a structure/union.
42762
42763 2014-03-26 Marek Polacek <polacek@redhat.com>
42764
42765 PR c/39525
42766 * doc/extend.texi (Designated Inits): Describe what happens to omitted
42767 field members.
42768
42769 2014-03-26 Marek Polacek <polacek@redhat.com>
42770
42771 PR other/59545
42772 * ira-color.c (update_conflict_hard_regno_costs): Perform the
42773 multiplication in unsigned type.
42774
42775 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
42776
42777 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
42778
42779 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
42780
42781 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
42782
42783 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
42784
42785 PR ipa/60315
42786 * cif-code.def (UNREACHABLE) New code.
42787 * ipa-inline.c (inline_small_functions): Skip edges to
42788 __builtlin_unreachable.
42789 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
42790 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
42791 predicate to __bulitin_unreachable.
42792 (set_cond_stmt_execution_predicate): Fix issue when
42793 invert_tree_comparison returns ERROR_MARK.
42794 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
42795 propagate to inline clones.
42796 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
42797 to unreachable.
42798 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
42799 * cgraphclones.c (cgraph_clone_node): If call destination is already
42800 ureachable, do not redirect it back.
42801 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
42802 unreachable.
42803
42804 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
42805
42806 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
42807 Do not modify inline clones.
42808
42809 2014-03-25 Jakub Jelinek <jakub@redhat.com>
42810
42811 * config/i386/i386.md (general_sext_operand): New mode attr.
42812 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
42813 don't generate (sign_extend (const_int)).
42814 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
42815 operands[2]. Use We constraint instead of <i> and
42816 <general_sext_operand> predicate instead of <general_operand>.
42817 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
42818 * config/i386/constraints.md (We): New constraint.
42819 * config/i386/predicates.md (x86_64_sext_operand,
42820 sext_operand): New predicates.
42821
42822 2014-03-25 Martin Jambor <mjambor@suse.cz>
42823
42824 PR ipa/60600
42825 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
42826 inconsistent devirtualizations to __builtin_unreachable.
42827
42828 2014-03-25 Marek Polacek <polacek@redhat.com>
42829
42830 PR c/35449
42831 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
42832
42833 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
42834
42835 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
42836 order of elements for big-endian.
42837
42838 2014-03-25 Richard Biener <rguenther@suse.de>
42839
42840 PR middle-end/60635
42841 * gimplify-me.c (gimple_regimplify_operands): Update the
42842 re-gimplifed stmt.
42843
42844 2014-03-25 Martin Jambor <mjambor@suse.cz>
42845
42846 PR ipa/59176
42847 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
42848 (lto_output_varpool_node): Likewise.
42849 (input_overwrite_node): Likewise.
42850 (input_varpool_node): Likewise.
42851
42852 2014-03-25 Richard Biener <rguenther@suse.de>
42853
42854 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
42855 (run_gcc): Likewise.
42856
42857 2014-03-25 Jakub Jelinek <jakub@redhat.com>
42858
42859 * combine.c (simplify_compare_const): Add MODE argument.
42860 Handle mode_width 0 as very large mode_width.
42861 (try_combine, simplify_comparison): Adjust callers.
42862
42863 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
42864 type to avoid signed integer overflow.
42865 * explow.c (plus_constant): Likewise.
42866
42867 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
42868
42869 * doc/generic.texi: Correct typos.
42870
42871 2014-03-24 Tobias Burnus <burnus@net-b.de>
42872
42873 * doc/invoke.texi (-flto): Expand section about
42874 using static libraries with LTO.
42875
42876 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
42877
42878 PR rtl-optimization/60501
42879 * optabs.def (addptr3_optab): New optab.
42880 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
42881 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
42882 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
42883
42884 * lra.c (emit_add3_insn): Use the addptr pattern if available.
42885
42886 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
42887
42888 2014-03-24 Ulrich Drepper <drepper@gmail.com>
42889
42890 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
42891 _mm512_set1_pd.
42892
42893 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
42894 (_mm256_undefined_ps): Define.
42895 (_mm256_undefined_pd): Define.
42896 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
42897 (_mm_undefined_pd): Define.
42898 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
42899 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
42900 (_mm512_undefined_ps): Define.
42901 (_mm512_undefined_pd): Define.
42902 Use _mm*_undefined_*.
42903 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
42904
42905 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
42906
42907 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
42908 (lshr_simd): DI mode added.
42909 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
42910 (aarch64_ushr_simddi): Likewise.
42911 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
42912 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
42913 (vshrd_n_u64): Likewise.
42914
42915 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
42916
42917 * Makefile.in (s-macro_list): Depend on cc1.
42918
42919 2014-03-23 Teresa Johnson <tejohnson@google.com>
42920
42921 * ipa-utils.c (ipa_print_order): Use specified dump file.
42922
42923 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
42924
42925 PR rtl-optimization/60601
42926 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
42927
42928 * gcc.c (eval_spec_function): Initialize save_growing_value.
42929
42930 2014-03-22 Jakub Jelinek <jakub@redhat.com>
42931
42932 PR sanitizer/60613
42933 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
42934 code == MINUS_EXPR, never swap op0 with op1.
42935
42936 * toplev.c (init_local_tick): Avoid signed integer multiplication
42937 overflow.
42938 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
42939 shift by first operand's bitsize.
42940
42941 2014-03-21 Jakub Jelinek <jakub@redhat.com>
42942
42943 PR target/60610
42944 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
42945 redefine to 1 or 0.
42946 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
42947 TARGET_ISA_64BIT_P(x).
42948
42949 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
42950
42951 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
42952 pattern for vector nor instead of subtract from splat(-1).
42953 (altivec_expand_vec_perm_const_le): Likewise.
42954
42955 2014-03-21 Richard Henderson <rth@twiddle.net>
42956
42957 PR target/60598
42958 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
42959 related insns after epilogue_completed.
42960
42961 2014-03-21 Martin Jambor <mjambor@suse.cz>
42962
42963 PR ipa/59176
42964 * cgraph.h (symtab_node): New flag body_removed.
42965 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
42966 when removing bodies.
42967 * symtab.c (dump_symtab_base): Dump body_removed flag.
42968 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
42969 had their bodies removed.
42970
42971 2014-03-21 Martin Jambor <mjambor@suse.cz>
42972
42973 PR ipa/60419
42974 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
42975 in the border.
42976
42977 2014-03-21 Richard Biener <rguenther@suse.de>
42978
42979 PR tree-optimization/60577
42980 * tree-core.h (struct tree_base): Document nothrow_flag use
42981 in DECL_NONALIASED.
42982 * tree.h (DECL_NONALIASED): New.
42983 (may_be_aliased): Adjust.
42984 * coverage.c (build_var): Set DECL_NONALIASED.
42985
42986 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
42987
42988 * expr.c (expand_expr_real_1): Remove outdated comment.
42989
42990 2014-03-20 Jakub Jelinek <jakub@redhat.com>
42991
42992 PR middle-end/60597
42993 * ira.c (adjust_cleared_regs): Call copy_rtx on
42994 *reg_equiv[REGNO (loc)].src_p before passing it to
42995 simplify_replace_fn_rtx.
42996
42997 PR target/60568
42998 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
42999 into CONST, put pic register as first operand of PLUS. Use
43000 gen_const_mem for both 32-bit and 64-bit PIC got loads.
43001
43002 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
43003
43004 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
43005
43006 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
43007
43008 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
43009 around for store forwarding issue in the FPU on the UT699.
43010 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
43011 loads and operations if -mfix-ut699 is specified.
43012 (divtf3_hq): Tweak attribute.
43013 (sqrttf2_hq): Likewise.
43014
43015 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
43016
43017 * calls.c (store_one_arg): Remove incorrect const qualification on the
43018 type of the temporary.
43019 * cfgexpand.c (expand_return): Likewise.
43020 * expr.c (expand_constructor): Likewise.
43021 (expand_expr_real_1): Likewise.
43022
43023 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
43024
43025 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
43026 of parts.
43027
43028 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
43029
43030 PR target/60039
43031 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
43032
43033 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
43034
43035 * config/arm/aarch-common-protos.h
43036 (alu_cost_table): Fix spelling of "extend".
43037 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
43038
43039 2014-03-19 Richard Biener <rguenther@suse.de>
43040
43041 PR middle-end/60553
43042 * tree-core.h (tree_type_common): Re-order pointer members
43043 to reduce recursion depth during GC walks.
43044
43045 2014-03-19 Marek Polacek <polacek@redhat.com>
43046
43047 PR sanitizer/60569
43048 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
43049 before accessing it.
43050
43051 2014-03-19 Richard Biener <rguenther@suse.de>
43052
43053 PR lto/59543
43054 * lto-streamer-in.c (input_function): In WPA stage do not drop
43055 debug stmts.
43056
43057 2014-03-19 Jakub Jelinek <jakub@redhat.com>
43058
43059 PR tree-optimization/60559
43060 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
43061 with build_zero_cst assignment.
43062
43063 2014-03-18 Kai Tietz <ktietz@redhat.com>
43064
43065 PR rtl-optimization/56356
43066 * sdbout.c (sdbout_parms): Verify that parms'
43067 incoming argument is valid.
43068 (sdbout_reg_parms): Likewise.
43069
43070 2014-03-18 Richard Henderson <rth@redhat.com>
43071
43072 PR target/60562
43073 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
43074 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
43075 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
43076
43077 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
43078
43079 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
43080 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
43081 Italicize plugin event names in description. Explain that
43082 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
43083 Remind that no GCC functions should be called after PLUGIN_FINISH.
43084 Explain what pragmas with expansion are.
43085
43086 2014-03-18 Martin Liska <mliska@suse.cz>
43087
43088 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
43089 gimple call statement is update.
43090 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
43091 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
43092
43093 2014-03-18 Jakub Jelinek <jakub@redhat.com>
43094
43095 PR sanitizer/60557
43096 * ubsan.c (ubsan_instrument_unreachable): Call
43097 initialize_sanitizer_builtins.
43098 (ubsan_pass): Likewise.
43099
43100 PR sanitizer/60535
43101 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
43102 varpool_finalize_decl instead of rest_of_decl_compilation.
43103
43104 2014-03-18 Richard Biener <rguenther@suse.de>
43105
43106 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
43107 by using bitmap_and_compl instead of bitmap_and_compl_into.
43108 (df_rd_transfer_function): Likewise.
43109
43110 2014-03-18 Richard Biener <rguenther@suse.de>
43111
43112 * doc/lto.texi (fresolution): Fix typo.
43113
43114 2014-03-18 Richard Biener <rguenther@suse.de>
43115
43116 * doc/invoke.texi (flto): Update for changes in 4.9.
43117
43118 2014-03-18 Richard Biener <rguenther@suse.de>
43119
43120 * doc/loop.texi: Remove section on the removed lambda framework.
43121 Update loop docs with recent changes in preserving loop structure.
43122
43123 2014-03-18 Richard Biener <rguenther@suse.de>
43124
43125 * doc/lto.texi (-fresolution): Document.
43126
43127 2014-03-18 Richard Biener <rguenther@suse.de>
43128
43129 * doc/contrib.texi: Adjust my name.
43130
43131 2014-03-18 Jakub Jelinek <jakub@redhat.com>
43132
43133 PR ipa/58721
43134 * internal-fn.c: Include diagnostic-core.h.
43135 (expand_BUILTIN_EXPECT): New function.
43136 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
43137 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
43138 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
43139 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
43140 IFN_BUILTIN_EXPECT.
43141 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
43142 Revert 3 argument __builtin_expect code.
43143 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
43144 * gimple-fold.c (gimple_fold_call): Likewise.
43145 * tree.h (fold_builtin_expect): New prototype.
43146 * builtins.c (build_builtin_expect_predicate): Add predictor
43147 argument, if non-NULL, create 3 argument __builtin_expect.
43148 (fold_builtin_expect): No longer static. Add ARG2 argument,
43149 pass it through to build_builtin_expect_predicate.
43150 (fold_builtin_2): Adjust caller.
43151 (fold_builtin_3): Handle BUILT_IN_EXPECT.
43152 * internal-fn.def (BUILTIN_EXPECT): New.
43153
43154 2014-03-18 Tobias Burnus <burnus@net-b.de>
43155
43156 PR ipa/58721
43157 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
43158 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
43159 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
43160
43161 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
43162
43163 PR ipa/58721
43164 * predict.c (combine_predictions_for_bb): Fix up formatting.
43165 (expr_expected_value_1, expr_expected_value): Add predictor argument,
43166 fill what it points to if non-NULL.
43167 (tree_predict_by_opcode): Adjust caller, use the predictor.
43168 * predict.def (PRED_COMPARE_AND_SWAP): Add.
43169
43170 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
43171
43172 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
43173 proper constant for the store mode.
43174
43175 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
43176
43177 * symtab.c (change_decl_assembler_name): Fix transparent alias
43178 chain construction.
43179
43180 2014-03-16 Renlin Li <Renlin.Li@arm.com>
43181
43182 * config/aarch64/aarch64.c: Correct the comments about the
43183 aarch64 stack layout.
43184
43185 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
43186
43187 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
43188 check for GF_OMP_FOR_KIND_FOR.
43189
43190 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
43191
43192 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
43193 ymm and zmm register names.
43194
43195 2014-03-17 Jakub Jelinek <jakub@redhat.com>
43196
43197 PR target/60516
43198 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
43199 note creation for the 2010-08-31 changes.
43200
43201 2014-03-17 Marek Polacek <polacek@redhat.com>
43202
43203 PR middle-end/60534
43204 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
43205 as -fno-tree-loop-vectorize.
43206 (expand_omp_simd): Likewise.
43207
43208 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
43209
43210 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
43211 (eligible_for_call_delay): New prototype.
43212 * config/sparc/sparc.c (tls_call_delay): Rename into...
43213 (eligible_for_call_delay): ...this. Return false if the instruction
43214 cannot be put in the delay slot of a branch.
43215 (eligible_for_restore_insn): Simplify.
43216 (eligible_for_return_delay): Return false if the instruction cannot be
43217 put in the delay slot of a branch and simplify.
43218 (eligible_for_sibcall_delay): Return false if the instruction cannot be
43219 put in the delay slot of a branch.
43220 * config/sparc/sparc.md (fix_ut699): New attribute.
43221 (tls_call_delay): Delete.
43222 (in_call_delay): Reimplement.
43223 (eligible_for_sibcall_delay): Rename into...
43224 (in_sibcall_delay): ...this.
43225 (eligible_for_return_delay): Rename into...
43226 (in_return_delay): ...this.
43227 (in_branch_delay): Reimplement.
43228 (in_uncond_branch_delay): Delete.
43229 (in_annul_branch_delay): Delete.
43230
43231 2014-03-14 Richard Henderson <rth@redhat.com>
43232
43233 PR target/60525
43234 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
43235 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
43236 (*floathi<X87MODEF>2_i387_with_temp): Remove.
43237 (floathi splitters): Remove.
43238 (float<SWI48x>xf2): New pattern.
43239 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
43240 code that tried to handle DImode for 32-bit, but which was excluded
43241 by the pattern's condition. Drop allocation of stack temporary.
43242 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
43243 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
43244 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
43245 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
43246 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
43247 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
43248 (*float<SWI48><MODEF>2_sse_interunit): Remove.
43249 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
43250 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
43251 (*float<SWI48x><X87MODEF>2_i387): Remove.
43252 (all float _with_temp splitters): Remove.
43253 (*float<SWI48x><MODEF>2_i387): New pattern.
43254 (*float<SWI48><MODEF>2_sse): New pattern.
43255 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
43256 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
43257
43258 2014-03-14 Jakub Jelinek <jakub@redhat.com>
43259 Marek Polacek <polacek@redhat.com>
43260
43261 PR middle-end/60484
43262 * common.opt (dump_base_name_prefixed): New Variable.
43263 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
43264 if x_dump_base_name_prefixed is already set, set it at the end.
43265
43266 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
43267
43268 PR rtl-optimization/60508
43269 * lra-constraints.c (get_reload_reg): Add new parameter
43270 in_subreg_p.
43271 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
43272 Pass the new parameter values.
43273
43274 2014-03-14 Richard Biener <rguenther@suse.de>
43275
43276 * common.opt: Revert unintented changes from r205065.
43277 * opts.c: Likewise.
43278
43279 2014-03-14 Richard Biener <rguenther@suse.de>
43280
43281 PR middle-end/60518
43282 * cfghooks.c (split_block): Properly adjust all loops the
43283 block was a latch of.
43284
43285 2014-03-14 Martin Jambor <mjambor@suse.cz>
43286
43287 PR lto/60461
43288 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
43289 and simplify it.
43290
43291 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
43292
43293 PR target/59396
43294 * config/avr/avr.c (avr_set_current_function): Pass function name
43295 through default_strip_name_encoding before sanity checking instead
43296 of skipping the first char of the assembler name.
43297
43298 2014-03-13 Richard Henderson <rth@redhat.com>
43299
43300 PR debug/60438
43301 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
43302 (ix86_force_to_memory, ix86_free_from_memory): Remove.
43303 * config/i386/i386-protos.h: Likewise.
43304 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
43305 in the expander instead of a splitter.
43306 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
43307 any possibility of requiring a memory.
43308 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
43309 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
43310 (fp branch splitters): Update for ix86_split_fp_branch.
43311 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
43312 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
43313 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
43314 (*fop_<MODEF>_2_i387): Remove f/r alternative.
43315 (*fop_<MODEF>_3_i387): Likewise.
43316 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
43317 (splitters for the fop_* register patterns): Remove.
43318 (fscalexf4_i387): Rename from *fscalexf4_i387.
43319 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
43320
43321 2014-03-13 Jakub Jelinek <jakub@redhat.com>
43322
43323 PR tree-optimization/59779
43324 * tree-dfa.c (get_ref_base_and_extent): Use double_int
43325 type for bitsize and maxsize instead of HOST_WIDE_INT.
43326
43327 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
43328
43329 PR rtl-optimization/57320
43330 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
43331 the CFG after thread_prologue_and_epilogue_insns.
43332
43333 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
43334
43335 PR rtl-optimization/57189
43336 * lra-constraints.c (process_alt_operands): Disfavor spilling
43337 vector pseudos.
43338
43339 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
43340
43341 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
43342
43343 2014-03-13 Jakub Jelinek <jakub@redhat.com>
43344
43345 PR tree-optimization/59025
43346 PR middle-end/60418
43347 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
43348 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
43349
43350 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
43351
43352 PR target/60486
43353 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
43354 calls of avr_out_plus_1.
43355
43356 2014-03-13 Bin Cheng <bin.cheng@arm.com>
43357
43358 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
43359 BB's single pred and update the father loop's latch info later.
43360
43361 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
43362
43363 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
43364 (VEC_M): Likewise.
43365 (VEC_N): Likewise.
43366 (VEC_R): Likewise.
43367 (VEC_base): Likewise.
43368 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
43369 registers, we need to swap double words in little endian mode.
43370
43371 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
43372 to be a container mode for 128-bit integer operations added in ISA
43373 2.07. Unlike TImode and PTImode, the preferred register set is
43374 the Altivec/VMX registers for the 128-bit operations.
43375
43376 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
43377 declarations.
43378 (rs6000_split_128bit_ok_p): Likewise.
43379
43380 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
43381 macros for creating ISA 2.07 normal and overloaded builtin
43382 functions with 3 arguments.
43383 (BU_P8V_OVERLOAD_3): Likewise.
43384 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
43385 for use as overloaded functions.
43386 (VPERM_1TI_UNS): Likewise.
43387 (VSEL_1TI): Likewise.
43388 (VSEL_1TI_UNS): Likewise.
43389 (ST_INTERNAL_1ti): Likewise.
43390 (LD_INTERNAL_1ti): Likewise.
43391 (XXSEL_1TI): Likewise.
43392 (XXSEL_1TI_UNS): Likewise.
43393 (VPERM_1TI): Likewise.
43394 (VPERM_1TI_UNS): Likewise.
43395 (XXPERMDI_1TI): Likewise.
43396 (SET_1TI): Likewise.
43397 (LXVD2X_V1TI): Likewise.
43398 (STXVD2X_V1TI): Likewise.
43399 (VEC_INIT_V1TI): Likewise.
43400 (VEC_SET_V1TI): Likewise.
43401 (VEC_EXT_V1TI): Likewise.
43402 (EQV_V1TI): Likewise.
43403 (NAND_V1TI): Likewise.
43404 (ORC_V1TI): Likewise.
43405 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
43406 added in ISA 2.07. Add both normal 'altivec' builtins, and the
43407 overloaded builtin.
43408 (VADDUQM): Likewise.
43409 (VSUBCUQ): Likewise.
43410 (VADDEUQM): Likewise.
43411 (VADDECUQ): Likewise.
43412 (VSUBEUQM): Likewise.
43413 (VSUBECUQ): Likewise.
43414
43415 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
43416 __int128_t and __uint128_t types.
43417 (__uint128_type): Likewise.
43418 (altivec_categorize_keyword): Add support for vector __int128_t,
43419 vector __uint128_t, vector __int128, and vector unsigned __int128
43420 as a container type for TImode operations that need to be done in
43421 VSX/Altivec registers.
43422 (rs6000_macro_to_expand): Likewise.
43423 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
43424 to support 128-bit integer instructions vaddcuq, vadduqm,
43425 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
43426 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
43427
43428 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
43429 for V1TImode, and set up preferences to use VSX/Altivec registers.
43430 Setup VSX reload handlers.
43431 (rs6000_debug_reg_global): Likewise.
43432 (rs6000_init_hard_regno_mode_ok): Likewise.
43433 (rs6000_preferred_simd_mode): Likewise.
43434 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
43435 (easy_altivec_constant): Likewise.
43436 (output_vec_const_move): Likewise.
43437 (rs6000_expand_vector_set): Convert V1TImode set and extract to
43438 simple move.
43439 (rs6000_expand_vector_extract): Likewise.
43440 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
43441 addressing.
43442 (rs6000_const_vec): Add support for V1TImode.
43443 (rs6000_emit_le_vsx_load): Swap double words when loading or
43444 storing TImode/V1TImode.
43445 (rs6000_emit_le_vsx_store): Likewise.
43446 (rs6000_emit_le_vsx_move): Likewise.
43447 (rs6000_emit_move): Add support for V1TImode.
43448 (altivec_expand_ld_builtin): Likewise.
43449 (altivec_expand_st_builtin): Likewise.
43450 (altivec_expand_vec_init_builtin): Likewise.
43451 (altivec_expand_builtin): Likewise.
43452 (rs6000_init_builtins): Add support for V1TImode type. Add
43453 support for ISA 2.07 128-bit integer builtins. Define type names
43454 for the VSX/Altivec vector types.
43455 (altivec_init_builtins): Add support for overloaded vector
43456 functions with V1TImode type.
43457 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
43458 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
43459 external function.
43460 (rs6000_split_128bit_ok_p): Likewise.
43461 (rs6000_handle_altivec_attribute): Create V1TImode from vector
43462 __int128_t and vector __uint128_t.
43463
43464 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
43465 and mode attributes.
43466 (VSX_M): Likewise.
43467 (VSX_M2): Likewise.
43468 (VSm): Likewise.
43469 (VSs): Likewise.
43470 (VSr): Likewise.
43471 (VSv): Likewise.
43472 (VS_scalar): Likewise.
43473 (VS_double): Likewise.
43474 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
43475
43476 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
43477 we support the ISA 2.07 128-bit integer arithmetic instructions.
43478 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
43479 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
43480 and TImode types for use with the builtin functions.
43481 (V1TI_type_node): Likewise.
43482 (unsigned_V1TI_type_node): Likewise.
43483 (intTI_type_internal_node): Likewise.
43484 (uintTI_type_internal_node): Likewise.
43485
43486 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
43487 128-bit builtin functions.
43488 (UNSPEC_VADDEUQM): Likewise.
43489 (UNSPEC_VADDECUQ): Likewise.
43490 (UNSPEC_VSUBCUQ): Likewise.
43491 (UNSPEC_VSUBEUQM): Likewise.
43492 (UNSPEC_VSUBECUQ): Likewise.
43493 (VM): Add V1TImode to vector mode iterators.
43494 (VM2): Likewise.
43495 (VI_unit): Likewise.
43496 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
43497 (altivec_vaddcuq): Likewise.
43498 (altivec_vsubuqm): Likewise.
43499 (altivec_vsubcuq): Likewise.
43500 (altivec_vaddeuqm): Likewise.
43501 (altivec_vaddecuq): Likewise.
43502 (altivec_vsubeuqm): Likewise.
43503 (altivec_vsubecuq): Likewise.
43504
43505 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
43506 mode iterators.
43507 (BOOL_128): Likewise.
43508 (BOOL_REGS_OUTPUT): Likewise.
43509 (BOOL_REGS_OP1): Likewise.
43510 (BOOL_REGS_OP2): Likewise.
43511 (BOOL_REGS_UNARY): Likewise.
43512 (BOOL_REGS_AND_CR0): Likewise.
43513
43514 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
43515 128-bit integer builtin support.
43516 (vec_vadduqm): Likewise.
43517 (vec_vaddecuq): Likewise.
43518 (vec_vaddeuqm): Likewise.
43519 (vec_vsubecuq): Likewise.
43520 (vec_vsubeuqm): Likewise.
43521 (vec_vsubcuq): Likewise.
43522 (vec_vsubuqm): Likewise.
43523
43524 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
43525 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
43526 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
43527 128-bit integer add/subtract to ISA 2.07.
43528
43529 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
43530
43531 * config/arc/arc.c (arc_predicate_delay_insns):
43532 Fix third argument passed to conditionalize_nonjump.
43533
43534 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
43535
43536 * config/aarch64/aarch64-builtins.c
43537 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
43538 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
43539 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
43540 instead of __builtin_lfloor.
43541 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
43542
43543 2014-03-12 Jakub Jelinek <jakub@redhat.com>
43544
43545 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
43546 (tree_ssa_ifcombine_bb_1): New function.
43547 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
43548 is an empty forwarder block to then_bb or vice versa and then_bb
43549 and else_bb are effectively swapped.
43550
43551 2014-03-12 Christian Bruel <christian.bruel@st.com>
43552
43553 PR target/60264
43554 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
43555 REG_CFA_DEF_CFA note.
43556 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
43557 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
43558
43559 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
43560
43561 PR tree-optimization/60454
43562 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
43563
43564 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
43565
43566 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
43567 Do not define target_cpu_default2 to generic.
43568 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
43569 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
43570 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
43571
43572 2014-03-12 Jakub Jelinek <jakub@redhat.com>
43573 Marc Glisse <marc.glisse@inria.fr>
43574
43575 PR tree-optimization/60502
43576 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
43577 instead of build_low_bits_mask.
43578
43579 2014-03-12 Jakub Jelinek <jakub@redhat.com>
43580
43581 PR middle-end/60482
43582 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
43583 if there are multiple uses, but op doesn't live on E edge.
43584 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
43585 clobber stmts before __builtin_unreachable.
43586
43587 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
43588
43589 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
43590 hard_frame_pointer_rtx.
43591 * cse.c (cse_insn): Remove volatile check.
43592 * cselib.c (cselib_process_insn): Likewise.
43593 * dse.c (scan_insn): Likewise.
43594
43595 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
43596
43597 * config/arc/arc.c (conditionalize_nonjump): New function,
43598 broken out of ...
43599 (arc_ifcvt): ... this.
43600 (arc_predicate_delay_insns): Use it.
43601
43602 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
43603
43604 * config/arc/predicates.md (extend_operand): During/after reload,
43605 allow const_int_operand.
43606 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
43607 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
43608 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
43609 to "i".
43610 (umulsi3_highpart_i): Likewise.
43611
43612 2014-03-11 Richard Biener <rguenther@suse.de>
43613
43614 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
43615 Add asserts to guard possible wrong-code bugs.
43616
43617 2014-03-11 Richard Biener <rguenther@suse.de>
43618
43619 PR tree-optimization/60429
43620 PR tree-optimization/60485
43621 * tree-ssa-structalias.c (set_union_with_increment): Properly
43622 take into account all fields that overlap the shifted vars.
43623 (do_sd_constraint): Likewise.
43624 (do_ds_constraint): Likewise.
43625 (get_constraint_for_ptr_offset): Likewise.
43626
43627 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
43628
43629 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
43630 (nios2_compute_frame_layout):
43631 Add calculation of cfun->machine->fp_save_offset.
43632 (nios2_expand_prologue): Correct setting of frame pointer register
43633 in prologue.
43634 (nios2_expand_epilogue): Update recovery of stack pointer from
43635 frame pointer accordingly.
43636 (nios2_initial_elimination_offset): Update calculation of offset
43637 for eliminating to HARD_FRAME_POINTER_REGNUM.
43638
43639 2014-03-10 Jakub Jelinek <jakub@redhat.com>
43640
43641 PR ipa/60457
43642 * ipa.c (symtab_remove_unreachable_nodes): Don't call
43643 cgraph_get_create_node on VAR_DECLs.
43644
43645 2014-03-10 Richard Biener <rguenther@suse.de>
43646
43647 PR middle-end/60474
43648 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
43649
43650 2014-03-08 Douglas B Rupp <rupp@gnat.com>
43651
43652 * config/vms/vms.opt (vms_float_format): New variable.
43653
43654 2014-03-08 Tobias Burnus <burnus@net-b.de>
43655
43656 * doc/invoke.texi (-fcilkplus): Update implementation status.
43657
43658 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
43659 Richard Biener <rguenther@suse.de>
43660
43661 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
43662 consistently accross all TUs.
43663 (run_gcc): Enable -fshort-double automatically at link at link-time
43664 and disallow override.
43665
43666 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
43667
43668 PR target/58271
43669 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
43670 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
43671 if they can't be used.
43672
43673 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
43674
43675 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
43676 for Solaris 11/x86 ld.
43677 * configure: Regenerate.
43678
43679 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
43680
43681 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
43682 (LIB_TLS_SPEC): Save as ld_tls_libs.
43683 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
43684 (HAVE_AS_IX86_TLSLDM): New test.
43685 * configure, config.in: Regenerate.
43686 * config/i386/i386.c (legitimize_tls_address): Fall back to
43687 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
43688 cannot support TLS_MODEL_LOCAL_DYNAMIC.
43689 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
43690 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
43691
43692 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
43693
43694 * common.opt (fira-loop-pressure): Mark as optimization.
43695
43696 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
43697
43698 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
43699 an OpenMP mappable type.
43700
43701 2014-03-06 Matthias Klose <doko@ubuntu.com>
43702
43703 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
43704 MULTILIB_OSDIRNAMES is not defined.
43705
43706 2014-03-06 Jakub Jelinek <jakub@redhat.com>
43707 Meador Inge <meadori@codesourcery.com>
43708
43709 PR target/58595
43710 * config/arm/arm.c (arm_tls_symbol_p): Remove.
43711 (arm_legitimize_address): Call legitimize_tls_address for any
43712 arm_tls_referenced_p expression, handle constant addend. Call it
43713 before testing for !TARGET_ARM.
43714 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
43715
43716 2014-03-06 Richard Biener <rguenther@suse.de>
43717
43718 PR middle-end/60445
43719 PR lto/60424
43720 PR lto/60427
43721 Revert
43722 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
43723
43724 * tree-streamer.c (record_common_node): Assert we don't record
43725 nodes with type double.
43726 (preload_common_node): Skip type double, complex double and double
43727 pointer since it is now frontend dependent due to fshort-double option.
43728
43729 2014-03-06 Richard Biener <rguenther@suse.de>
43730
43731 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
43732 or -fno-lto is specified and the linker has full plugin support.
43733 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
43734 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
43735 * lto-wrapper.c (merge_and_complain): Merge compile-time
43736 optimization levels.
43737 (run_gcc): And pass it through to the link options.
43738
43739 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
43740
43741 PR debug/60381
43742 Revert:
43743 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
43744 PR debug/59992
43745 * cselib.c (remove_useless_values): Skip to avoid quadratic
43746 behavior if the condition moved from...
43747 (cselib_process_insn): ... here holds.
43748
43749 2014-03-05 Jakub Jelinek <jakub@redhat.com>
43750
43751 PR plugins/59335
43752 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
43753 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
43754
43755 PR plugins/59335
43756 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
43757 (TM_H): Add x86-tune.def.
43758
43759 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
43760
43761 * config/aarch64/aarch64.c (generic_tunings):
43762 Use cortexa57_extra_costs.
43763
43764 2014-03-05 Jakub Jelinek <jakub@redhat.com>
43765
43766 PR lto/60404
43767 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
43768 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
43769 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
43770 cost for in_lto_p.
43771
43772 2014-03-04 Heiher <r@hev.cc>
43773
43774 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
43775 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
43776
43777 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
43778
43779 * config/i386/predicates.md (const2356_operand): Change to ...
43780 (const2367_operand): ... this.
43781 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
43782 const2367_operand.
43783 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
43784 (*avx512pf_scatterpf<mode>sf): Ditto.
43785 (avx512pf_scatterpf<mode>df): Ditto.
43786 (*avx512pf_scatterpf<mode>df_mask): Ditto.
43787 (*avx512pf_scatterpf<mode>df): Ditto.
43788 * config/i386/i386.c (ix86_expand_builtin): Update
43789 incorrect hint operand error message.
43790
43791 2014-03-04 Richard Biener <rguenther@suse.de>
43792
43793 * lto-section-in.c (lto_get_section_data): Fix const cast.
43794
43795 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
43796
43797 * tree-streamer.c (record_common_node): Assert we don't record
43798 nodes with type double.
43799 (preload_common_node): Skip type double, complex double and double
43800 pointer since it is now frontend dependent due to fshort-double option.
43801
43802 2014-03-04 Richard Biener <rguenther@suse.de>
43803
43804 PR lto/60405
43805 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
43806 (lto_input_toplevel_asms): Likewise.
43807 * lto-section-in.c (lto_get_section_data): Instead do it here
43808 for every section.
43809
43810 2014-03-04 Richard Biener <rguenther@suse.de>
43811
43812 PR tree-optimization/60382
43813 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
43814 dead PHIs a reduction.
43815
43816 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
43817
43818 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
43819 hint value.
43820 (_mm_prefetch): Move out of GCC target("sse") pragma.
43821 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
43822 GCC target("prfchw") pragma.
43823 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
43824 for locality <= 2.
43825 * config/i386/i386.c (ix86_option_override_internal): Enable
43826 -mprfchw with -mprefetchwt1.
43827
43828 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
43829
43830 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
43831 Mark as varying.
43832
43833 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
43834
43835 * opts.h (CL_PCH_IGNORE): Define.
43836 * targhooks.c (option_affects_pch_p):
43837 Return false for options that have CL_PCH_IGNORE set.
43838 * opt-functions.awk: Process PchIgnore.
43839 * doc/options.texi: Document PchIgnore.
43840
43841 * config/arc/arc.opt (misize): Add PchIgnore property.
43842
43843 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
43844
43845 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
43846 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
43847 constraint on constants to permit them being loaded into
43848 GENERAL_REGS or BASE_REGS.
43849
43850 2014-03-03 Nick Clifton <nickc@redhat.com>
43851
43852 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
43853 anti-cacnonical alternatives.
43854 (negandhi3_real): New pattern.
43855 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
43856
43857 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
43858
43859 * config/avr/avr-mcus.def: Remove atxmega16x1.
43860 * config/avr/avr-tables.opt: Regenerate.
43861 * config/avr/t-multilib: Regenerate.
43862 * doc/avr-mmcu.texi: Regenerate.
43863
43864 2014-03-03 Tobias Grosser <tobias@grosser.es>
43865 Mircea Namolaru <mircea.namolaru@inria.fr>
43866
43867 PR tree-optimization/58028
43868 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
43869 scalar dimensions.
43870
43871 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
43872
43873 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
43874 not handled by recognizers.
43875
43876 2014-03-03 Jakub Jelinek <jakub@redhat.com>
43877
43878 PR middle-end/60175
43879 * function.c (expand_function_end): Don't emit
43880 clobber_return_register sequence if clobber_after is a BARRIER.
43881 * cfgexpand.c (construct_exit_block): Append instructions before
43882 return_label to prev_bb.
43883
43884 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
43885
43886 * config/rs6000/constraints.md: Document reserved use of "wc".
43887
43888 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
43889
43890 PR ipa/60150
43891 * ipa.c (function_and_variable_visibility): When dissolving comdat
43892 group, also set all symbols to local.
43893
43894 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
43895
43896 PR ipa/60306
43897
43898 Revert:
43899 2013-12-14 Jan Hubicka <jh@suse.cz>
43900 PR middle-end/58477
43901 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
43902
43903 2014-03-02 Jon Beniston <jon@beniston.com>
43904
43905 PR bootstrap/48230
43906 PR bootstrap/50927
43907 PR bootstrap/52466
43908 PR target/46898
43909 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
43910 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
43911 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
43912 (simple_return, *simple_return): New patterns
43913 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
43914 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
43915
43916 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
43917
43918 * dwarf2out.c (gen_subprogram_die): Tidy.
43919
43920 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
43921
43922 PR target/60071
43923 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
43924 (*mov_t_msb_neg_negc): ... this new insn.
43925
43926 2014-02-28 Jason Merrill <jason@redhat.com>
43927
43928 PR c++/58678
43929 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
43930 function.
43931
43932 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
43933
43934 PR c++/60314
43935 * dwarf2out.c (decltype_auto_die): New static.
43936 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
43937 (gen_type_die_with_usage): Handle 'decltype(auto)'.
43938 (is_cxx_auto): Likewise.
43939
43940 2014-02-28 Ian Bolton <ian.bolton@arm.com>
43941
43942 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
43943 we are not using general regs only.
43944
43945 2014-02-28 Richard Biener <rguenther@suse.de>
43946
43947 PR target/60280
43948 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
43949 previous fix and only allow to remove trivial pre-headers
43950 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
43951 (remove_forwarder_block): Properly update the latch of a loop.
43952
43953 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
43954
43955 PR debug/59992
43956 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
43957 (cselib_preserved_hash_table): New.
43958 (preserve_constants_and_equivs): Move preserved vals to it.
43959 (cselib_find_slot): Look it up first.
43960 (cselib_init): Initialize it.
43961 (cselib_finish): Release it.
43962 (dump_cselib_table): Dump it.
43963
43964 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
43965
43966 PR debug/59992
43967 * cselib.c (remove_useless_values): Skip to avoid quadratic
43968 behavior if the condition moved from...
43969 (cselib_process_insn): ... here holds.
43970
43971 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
43972
43973 PR debug/57232
43974 * var-tracking.c (vt_initialize): Apply the same condition to
43975 preserve the CFA base value.
43976
43977 2014-02-28 Joey Ye <joey.ye@arm.com>
43978
43979 PR target/PR60169
43980 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
43981 if reload in progress or completed.
43982
43983 2014-02-28 Tobias Burnus <burnus@net-b.de>
43984
43985 PR middle-end/60147
43986 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
43987 NAMELIST_DECL.
43988
43989 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
43990
43991 * doc/tm.texi.in (Condition Code Status): Update documention for
43992 relative locations of cc0-setter and cc0-user.
43993
43994 2014-02-27 Jeff Law <law@redhat.com>
43995
43996 PR rtl-optimization/52714
43997 * combine.c (try_combine): When splitting an unrecognized PARALLEL
43998 into two independent simple sets, if I3 is a jump, ensure the
43999 pattern we place into I3 is a (set (pc) ...).
44000
44001 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
44002 Jeff Law <law@redhat.com>
44003
44004 PR rtl-optimization/49847
44005 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
44006 are in different blocks.
44007 * doc/tm.texi (Condition Code Status): Update documention for
44008 relative locations of cc0-setter and cc0-user.
44009
44010 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
44011
44012 PR target/59222
44013 * lra.c (lra_emit_add): Check SUBREG too.
44014
44015 2014-02-27 Andreas Schwab <schwab@suse.de>
44016
44017 * config/m68k/m68k.c (m68k_option_override): Disable
44018 -flive-range-shrinkage for classic m68k.
44019 (m68k_override_options_after_change): Likewise.
44020
44021 2014-02-27 Marek Polacek <polacek@redhat.com>
44022
44023 PR middle-end/59223
44024 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
44025 -Wmaybe-uninitialized.
44026
44027 2014-02-27 Alan Modra <amodra@gmail.com>
44028
44029 PR target/57936
44030 * reload1.c (emit_input_reload_insns): When reload_override_in,
44031 set old to rl->in_reg when rl->in_reg is a subreg.
44032
44033 2014-02-26 Richard Biener <rguenther@suse.de>
44034
44035 PR bootstrap/60343
44036 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
44037
44038 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
44039
44040 * common/config/i386/predicates.md (const1256_operand): Remove.
44041 (const2356_operand): New.
44042 (const_1_to_2_operand): Remove.
44043 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
44044 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
44045 (*avx512pf_gatherpf<mode>sf): Ditto.
44046 (avx512pf_gatherpf<mode>df): Ditto.
44047 (*avx512pf_gatherpf<mode>df_mask): Ditto.
44048 (*avx512pf_gatherpf<mode>df): Ditto.
44049 (avx512pf_scatterpf<mode>sf): Ditto.
44050 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
44051 (*avx512pf_scatterpf<mode>sf): Ditto.
44052 (avx512pf_scatterpf<mode>df): Ditto.
44053 (*avx512pf_scatterpf<mode>df_mask): Ditto.
44054 (*avx512pf_scatterpf<mode>df): Ditto.
44055 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
44056
44057 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
44058
44059 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
44060 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
44061 (_mm512_mask_testn_epi64_mask): Move to ...
44062 * config/i386/avx512cdintrin.h: Here.
44063 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
44064 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
44065 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
44066 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
44067 TARGET_AVX512F from TARGET_AVX512CD.
44068
44069 2014-02-26 Richard Biener <rguenther@suse.de>
44070
44071 PR ipa/60327
44072 * ipa.c (walk_polymorphic_call_targets): Properly guard
44073 call to inline_update_overall_summary.
44074
44075 2014-02-26 Bin Cheng <bin.cheng@arm.com>
44076
44077 PR target/60280
44078 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
44079 and latches only if requested. Fix latch if it is removed.
44080 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
44081 LOOPS_HAVE_PREHEADERS.
44082
44083 2014-02-25 Andrew Pinski <apinski@cavium.com>
44084
44085 * builtins.c (expand_builtin_thread_pointer): Create a new target
44086 when the target is NULL.
44087
44088 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
44089
44090 PR rtl-optimization/60317
44091 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
44092 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
44093 * lra-assigns.c: Include params.h.
44094 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
44095 other reload pseudos considerations.
44096
44097 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44098
44099 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
44100 to use canonical form for nor<mode>3.
44101
44102 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
44103
44104 PR target/55426
44105 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
44106 conversions.
44107
44108 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
44109
44110 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
44111 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
44112 (ix86_handle_option): Handle OPT_mprefetchwt1.
44113 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
44114 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
44115 PREFETCHWT1 CPUID.
44116 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
44117 OPTION_MASK_ISA_PREFETCHWT1.
44118 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
44119 (PTA_PREFETCHWT1): New.
44120 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
44121 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
44122 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
44123 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
44124 (*prefetch_avx512pf_<mode>_: Change into ...
44125 (*prefetch_prefetchwt1_<mode>: This.
44126 * config/i386/i386.opt (mprefetchwt1): New.
44127 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
44128 (_mm_prefetch): Handle intent to write.
44129 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
44130
44131 2014-02-25 Richard Biener <rguenther@suse.de>
44132
44133 PR middle-end/60291
44134 * emit-rtl.c (mem_attrs_htab): Remove.
44135 (mem_attrs_htab_hash): Likewise.
44136 (mem_attrs_htab_eq): Likewise.
44137 (set_mem_attrs): Always allocate new mem-attrs when something changed.
44138 (init_emit_once): Do not allocate mem_attrs_htab.
44139
44140 2014-02-25 Richard Biener <rguenther@suse.de>
44141
44142 PR lto/60319
44143 * lto-opts.c (lto_write_options): Output non-explicit conservative
44144 -fwrapv, -fno-trapv and -fno-strict-overflow.
44145 * lto-wrapper.c (merge_and_complain): Handle merging those options.
44146 (run_gcc): And pass them through.
44147
44148 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
44149
44150 * sel-sched.c (calculate_new_fences): New parameter ptime.
44151 Calculate it as a maximum over all fence cycles.
44152 (sel_sched_region_2): Adjust the call to calculate_new_fences.
44153 Print the final schedule timing when sched_verbose.
44154
44155 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
44156
44157 PR rtl-optimization/60292
44158 * sel-sched.c (fill_vec_av_set): Do not reset target availability
44159 bit fot the fence instruction.
44160
44161 2014-02-24 Alangi Derick <alangiderick@gmail.com>
44162
44163 * calls.h: Fix typo in comment.
44164
44165 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
44166
44167 * config/pa/pa.c (pa_output_move_double): Don't valididate when
44168 adjusting offsetable addresses.
44169
44170 2014-02-24 Guozhi Wei <carrot@google.com>
44171
44172 * sparseset.h (sparseset_pop): Fix the wrong index.
44173
44174 2014-02-24 Walter Lee <walt@tilera.com>
44175
44176 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
44177 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
44178 triplet.
44179 * common/config/tilegx/tilegx-common.c
44180 (TARGET_DEFAULT_TARGET_FLAGS): Define.
44181 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
44182 (LINK_SPEC): Ditto.
44183 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
44184 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
44185 (tilegx_gimplify_va_arg_expr): Handle big endian.
44186 (tilegx_expand_unaligned_load): Ditto.
44187 (tilegx_expand_unaligned_store): Ditto.
44188 (TARGET_RETURN_IN_MSB): New.
44189 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
44190 (TARGET_ENDIAN_DEFAULT): New.
44191 (TARGET_BIG_ENDIAN): Handle big endian.
44192 (BYTES_BIG_ENDIAN): Ditto.
44193 (WORDS_BIG_ENDIAN): Ditto.
44194 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
44195 (ENDIAN_SPEC): New.
44196 (EXTRA_SPECS): New.
44197 * config/tilegx/tilegx.md (extv): Handle big endian.
44198 (extzv): Ditto.
44199 (insn_st<n>): Ditto.
44200 (insn_st<n>_add<bitsuffix>): Ditto.
44201 (insn_stnt<n>): Ditto.
44202 (insn_stnt<n>_add<bitsuffix>):Ditto.
44203 (vec_interleave_highv8qi): Handle big endian.
44204 (vec_interleave_highv8qi_be): New.
44205 (vec_interleave_highv8qi_le): New.
44206 (insn_v1int_h): Handle big endian.
44207 (vec_interleave_lowv8qi): Handle big endian.
44208 (vec_interleave_lowv8qi_be): New.
44209 (vec_interleave_lowv8qi_le): New.
44210 (insn_v1int_l): Handle big endian.
44211 (vec_interleave_highv4hi): Handle big endian.
44212 (vec_interleave_highv4hi_be): New.
44213 (vec_interleave_highv4hi_le): New.
44214 (insn_v2int_h): Handle big endian.
44215 (vec_interleave_lowv4hi): Handle big endian.
44216 (vec_interleave_lowv4hi_be): New.
44217 (vec_interleave_lowv4hi_le): New.
44218 (insn_v2int_l): Handle big endian.
44219 (vec_interleave_highv2si): Handle big endian.
44220 (vec_interleave_highv2si_be): New.
44221 (vec_interleave_highv2si_le): New.
44222 (insn_v4int_h): Handle big endian.
44223 (vec_interleave_lowv2si): Handle big endian.
44224 (vec_interleave_lowv2si_be): New.
44225 (vec_interleave_lowv2si_le): New.
44226 (insn_v4int_l): Handle big endian.
44227 * config/tilegx/tilegx.opt (mbig-endian): New option.
44228 (mlittle-endian): New option.
44229 * doc/install.texi: Document tilegxbe-linux.
44230 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
44231
44232 2014-02-24 Martin Jambor <mjambor@suse.cz>
44233
44234 PR ipa/60266
44235 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
44236 there are no parameter descriptors.
44237
44238 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
44239
44240 PR rtl-optimization/60268
44241 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
44242 initialization to ...
44243 (sched_rgn_init): ... here.
44244 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
44245
44246 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
44247
44248 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
44249 names.
44250
44251 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
44252
44253 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
44254 definition.
44255
44256 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
44257
44258 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
44259 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
44260
44261 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
44262
44263 * config/microblaze/predicates.md: Add cmp_op predicate.
44264 * config/microblaze/microblaze.md: Add branch_compare instruction
44265 which uses cmp_op predicate and emits cmp insn before branch.
44266 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
44267 to microblaze_expand_conditional_branch and consolidate logic.
44268 (microblaze_expand_conditional_branch): emit branch_compare
44269 insn instead of handling cmp op separate from branch insn.
44270
44271 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44272
44273 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
44274 to permit subregs.
44275
44276 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44277
44278 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
44279 define_insn with define_expand and new define_insn
44280 *altivec_lve<VI_char>x_internal.
44281 (altivec_stve<VI_char>x): Replace define_insn with define_expand
44282 and new define_insn *altivec_stve<VI_char>x_internal.
44283 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
44284 prototype.
44285 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
44286 lve*x built-ins.
44287 (altivec_expand_stvex_be): New function.
44288
44289 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
44290
44291 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
44292 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
44293 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
44294 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
44295
44296 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
44297
44298 PR target/60298
44299 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
44300 instead of emit_move_insn.
44301
44302 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44303
44304 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
44305 vspltw with vsldoi.
44306 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
44307 gen_altivec_vsumsws.
44308
44309 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44310
44311 * config/rs6000/altivec.md (altivec_lvxl): Rename as
44312 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
44313 (altivec_lvxl_<mode>): New define_expand incorporating
44314 -maltivec=be semantics where needed.
44315 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
44316 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
44317 semantics where needed.
44318 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
44319 (altivec_stvx_<mode>): New define_expand incorporating
44320 -maltivec=be semantics where needed.
44321 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
44322 VM2 iterator instead of V4SI.
44323 (altivec_stvxl_<mode>): New define_expand incorporating
44324 -maltivec=be semantics where needed.
44325 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
44326 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
44327 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
44328 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
44329 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
44330 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
44331 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
44332 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
44333 ALTIVEC_BUILTIN_STVXL.
44334 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
44335 (altivec_expand_stvx_be): Likewise.
44336 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
44337 (altivec_expand_lvx_be): Likewise.
44338 (altivec_expand_stvx_be): Likewise.
44339 (altivec_expand_builtin): Add cases for
44340 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
44341 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
44342 (altivec_init_builtins): Add definitions for
44343 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
44344 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
44345
44346 2014-02-21 Catherine Moore <clm@codesourcery.com>
44347
44348 * doc/invoke.texi (mvirt, mno-virt): Document.
44349 * config/mips/mips.opt (mvirt): New option.
44350 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
44351
44352 2014-02-21 Richard Biener <rguenther@suse.de>
44353
44354 PR tree-optimization/60276
44355 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
44356 (STMT_VINFO_MIN_NEG_DIST): New macro.
44357 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
44358 STMT_VINFO_MIN_NEG_DIST.
44359 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
44360 made for negative dependence distances still hold.
44361
44362 2014-02-21 Richard Biener <rguenther@suse.de>
44363
44364 PR middle-end/60291
44365 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
44366 DECL_INITIAL for globals not in the current function context.
44367
44368 2014-02-21 Jakub Jelinek <jakub@redhat.com>
44369
44370 PR tree-optimization/56490
44371 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
44372 * tree-ssa-uninit.c: Include params.h.
44373 (compute_control_dep_chain): Add num_calls argument, return false
44374 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
44375 num_calls to recursive call.
44376 (find_predicates): Change dep_chain into normal array,
44377 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
44378 variable and adjust compute_control_dep_chain caller.
44379 (find_def_preds): Likewise.
44380
44381 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
44382
44383 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
44384 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
44385
44386 2014-02-21 Nick Clifton <nickc@redhat.com>
44387
44388 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
44389 (pushhi1): Likewise.
44390 (popqi1): Add mode to pre_dec.
44391 (pophi1): Likewise.
44392
44393 2014-02-21 Jakub Jelinek <jakub@redhat.com>
44394
44395 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
44396 mode for mask of V8SFmode permutation.
44397
44398 2014-02-20 Richard Henderson <rth@redhat.com>
44399
44400 PR c++/60272
44401 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
44402 a new pseudo for OLDVAL.
44403
44404 2014-02-20 Jakub Jelinek <jakub@redhat.com>
44405
44406 PR target/57896
44407 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
44408 gen_reg_rtx if d->testing_p.
44409 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
44410 if d->testing_p and we will certainly return true.
44411 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
44412 if d->testing_p.
44413
44414 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
44415
44416 * emit-rtl.c (gen_reg_rtx): Assert that
44417 crtl->emit.regno_pointer_align_length is non-zero.
44418
44419 2014-02-20 Richard Henderson <rth@redhat.com>
44420
44421 PR c++/60272
44422 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
44423 on failure the store back into EXPECT.
44424
44425 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
44426 Sandra Loosemore <sandra@codesourcery.com>
44427
44428 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
44429 * config/nios2/nios2.c (nios2_function_profiler): Add
44430 -fPIC (flag_pic == 2) support.
44431 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
44432 (nios2_large_offset_p): New function.
44433 (nios2_unspec_reloc_p): Move up position, update to use
44434 nios2_large_offset_p.
44435 (nios2_unspec_address): Remove function.
44436 (nios2_unspec_offset): New function.
44437 (nios2_large_got_address): New function.
44438 (nios2_got_address): Add large offset support.
44439 (nios2_legitimize_tls_address): Update usage of removed and new
44440 functions.
44441 (nios2_symbol_binds_local_p): New function.
44442 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
44443 (nios2_legitimize_address): Update to use nios2_large_offset_p.
44444 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
44445 (nios2_print_operand): Merge H/L processing, add hiadj/lo
44446 processing for (const (unspec ...)).
44447 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
44448
44449 2014-02-20 Richard Biener <rguenther@suse.de>
44450
44451 * tree-cfg.c (replace_uses_by): Mark altered BBs before
44452 doing the substitution.
44453 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
44454
44455 2014-02-20 Martin Jambor <mjambor@suse.cz>
44456
44457 PR ipa/55260
44458 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
44459 info when checking whether lattices are bottom.
44460
44461 2014-02-20 Richard Biener <rguenther@suse.de>
44462
44463 PR middle-end/60221
44464 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
44465 regions at -O0.
44466
44467 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
44468
44469 PR ipa/58555
44470 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
44471 parameter specifying the scaling.
44472 (inline_call): Update.
44473 (want_inline_recursively): Guard division by zero.
44474 (recursive_inlining): Update.
44475 * ipa-inline.h (clone_inlined_nodes): Update.
44476
44477 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
44478
44479 PR target/60204
44480 * config/i386/i386.c (classify_argument): Pass structures of size
44481 64 bytes or less in register.
44482
44483 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
44484 Kirill Yukhin <kirill.yukhin@intel.com>
44485
44486 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
44487 (_mm_rcp28_round_ss): Ditto.
44488 (_mm_rsqrt28_round_sd): Ditto.
44489 (_mm_rsqrt28_round_ss): Ditto.
44490 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
44491 (_mm_rcp14_round_ss): Ditto.
44492 (_mm_rsqrt14_round_sd): Ditto.
44493 (_mm_rsqrt14_round_ss): Ditto.
44494 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
44495 the first input operand, get rid of match_dup.
44496 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
44497 attribute to sse.
44498 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
44499 Ditto.
44500 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
44501 operand as the first input operand, set type attribute.
44502 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
44503 Set type attribute.
44504 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
44505 operand as the first input operand, set type attribute.
44506
44507 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44508
44509 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
44510 bit of zero.
44511
44512 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
44513
44514 PR target/60207
44515 * config/i386/i386.c (construct_container): Remove TFmode check
44516 for X86_64_INTEGER_CLASS.
44517
44518 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
44519
44520 PR target/59794
44521 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
44522 only when -Wpsabi is enabled.
44523
44524 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
44525
44526 PR target/59799
44527 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
44528 passing arrays in registers are the same as for structs, so remove the
44529 special case for them.
44530
44531 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
44532
44533 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
44534 destination type, extract only the valid bits if the source type is not
44535 integral and has a different mode.
44536
44537 2014-02-19 Richard Biener <rguenther@suse.de>
44538
44539 PR ipa/60243
44540 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
44541 for all calls.
44542
44543 2014-02-19 Richard Biener <rguenther@suse.de>
44544
44545 PR ipa/60243
44546 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
44547 (ipa_modify_call_arguments): Emit an argument load explicitely and
44548 preserve virtual SSA form there and for the replacement call.
44549 Do not update SSA form nor free dominance info.
44550
44551 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
44552
44553 * ipa.c (function_and_variable_visibility): Also clear WEAK
44554 flag when disolving COMDAT_GROUP.
44555
44556 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
44557
44558 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
44559 * ipa-prop.c (ipa_set_jf_known_type): Return early when
44560 not devirtualizing.
44561 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
44562 do more sanity checks.
44563 (detect_type_change): Return true when giving up early.
44564 (compute_complex_assign_jump_func): Fix type parameter of
44565 ipa_set_ancestor_jf.
44566 (compute_complex_ancestor_jump_func): Likewise.
44567 (update_jump_functions_after_inlining): Fix updating of
44568 ancestor function.
44569 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
44570
44571 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
44572
44573 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
44574 inline clones when edge disappears.
44575
44576 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
44577
44578 PR target/60203
44579 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
44580 Split 64-bit moves into 2 patterns. Do not allow the use of
44581 direct move for TDmode in little endian, since the decimal value
44582 has little endian bytes within a word, but the 64-bit pieces are
44583 ordered in a big endian fashion, and normal subreg's of TDmode are
44584 not allowed.
44585 (mov<mode>_64bit_dm): Likewise.
44586 (movtd_64bit_nodm): Likewise.
44587
44588 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
44589
44590 PR tree-optimization/60174
44591 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
44592 statement of an SSA_NAME that occurs in an abnormal PHI node.
44593
44594 2014-02-18 Jakub Jelinek <jakub@redhat.com>
44595
44596 PR sanitizer/60142
44597 * final.c (SEEN_BB): Remove.
44598 (SEEN_NOTE, SEEN_EMITTED): Renumber.
44599 (final_scan_insn): Don't force_source_line on second
44600 NOTE_INSN_BASIC_BLOCK.
44601
44602 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
44603
44604 PR target/60205
44605 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
44606 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
44607 (type_natural_mode): Warn ABI change when %zmm register is not
44608 available for AVX512F vector value passing.
44609
44610 2014-02-18 Kai Tietz <ktietz@redhat.com>
44611
44612 PR target/60193
44613 * config/i386/i386.c (ix86_expand_prologue): Use value in
44614 rax register as displacement when restoring %r10 or %rax.
44615 Fix wrong offset when restoring both registers.
44616
44617 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
44618
44619 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
44620 assertion with conditional return.
44621
44622 2014-02-18 Jakub Jelinek <jakub@redhat.com>
44623 Uros Bizjak <ubizjak@gmail.com>
44624
44625 PR driver/60233
44626 * config/i386/driver-i386.c (host_detect_local_cpu): If
44627 YMM state is not saved by the OS, also clear has_f16c. Move
44628 CPUID 0x80000001 handling before YMM state saving checking.
44629
44630 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
44631
44632 PR rtl-optimization/58960
44633 * haifa-sched.c (alloc_global_sched_pressure_data): New,
44634 factored out from ...
44635 (sched_init): ... here.
44636 (free_global_sched_pressure_data): New, factored out from ...
44637 (sched_finish): ... here.
44638 * sched-int.h (free_global_sched_pressure_data): Declare.
44639 * sched-rgn.c (nr_regions_initial): New static global.
44640 (haifa_find_rgns): Initialize it.
44641 (schedule_region): Disable sched-pressure for the newly
44642 generated regions.
44643
44644 2014-02-17 Richard Biener <rguenther@suse.de>
44645
44646 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
44647 release SSA defs of pattern stmts.
44648
44649 2014-02-17 Richard Biener <rguenther@suse.de>
44650
44651 * tree-inline.c (expand_call_inline): Release the virtual
44652 operand defined by the call we are about to inline.
44653
44654 2014-02-17 Richard Biener <rguenther@suse.de>
44655
44656 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
44657
44658 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
44659 Ilya Tocar <ilya.tocar@intel.com>
44660
44661 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
44662 arguments order in builtin.
44663 (_mm512_permutexvar_epi64): Ditto.
44664 (_mm512_mask_permutexvar_epi64): Ditto
44665 (_mm512_maskz_permutexvar_epi32): Ditto
44666 (_mm512_permutexvar_epi32): Ditto
44667 (_mm512_mask_permutexvar_epi32): Ditto
44668
44669 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44670
44671 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
44672 (p8_vmrgow): Likewise.
44673
44674 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
44675
44676 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
44677 endian targets.
44678
44679 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
44680
44681 PR target/60203
44682 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
44683 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
44684 into 64-bit and 32-bit moves. On 64-bit moves, add support for
44685 using direct move instructions on ISA 2.07. Also adjust
44686 instruction length for 64-bit.
44687 (mov<mode>_64bit, TFmode/TDmode): Likewise.
44688 (mov<mode>_32bit, TFmode/TDmode): Likewise.
44689
44690 2014-02-15 Alan Modra <amodra@gmail.com>
44691
44692 PR target/58675
44693 PR target/57935
44694 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
44695 find_replacement on parts of insn rtl that might be reloaded.
44696
44697 2014-02-15 Richard Biener <rguenther@suse.de>
44698
44699 PR tree-optimization/60183
44700 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
44701 (tree_ssa_phiprop): Calculate and free post-dominators.
44702
44703 2014-02-14 Jeff Law <law@redhat.com>
44704
44705 PR rtl-optimization/60131
44706 * ree.c (get_extended_src_reg): New function.
44707 (combine_reaching_defs): Use it rather than assuming location of REG.
44708 (find_and_remove_re): Verify first operand of extension is
44709 a REG before adding the insns to the copy list.
44710
44711 2014-02-14 Roland McGrath <mcgrathr@google.com>
44712
44713 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
44714 * configure: Regenerated.
44715 * config.in: Regenerated.
44716 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
44717 instead of ASM_SHORT.
44718
44719 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
44720 Richard Earnshaw <rearnsha@arm.com>
44721
44722 PR rtl-optimization/59535
44723 * lra-constraints.c (process_alt_operands): Encourage alternative
44724 when unassigned pseudo class is superset of the alternative class.
44725 (inherit_reload_reg): Don't inherit when optimizing for code size.
44726 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
44727 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
44728 modes not less than 4 for Thumb1.
44729
44730 2014-02-14 Kyle McMartin <kyle@redhat.com>
44731
44732 PR pch/60010
44733 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
44734
44735 2014-02-14 Richard Biener <rguenther@suse.de>
44736
44737 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
44738 (get_frame_arg): Drop the assert with langhook types_compatible_p.
44739 Do not strip INDIRECT_REFs.
44740
44741 2014-02-14 Richard Biener <rguenther@suse.de>
44742
44743 PR lto/60179
44744 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
44745 DECL_FUNCTION_SPECIFIC_TARGET.
44746 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
44747 * tree-streamer-out.c (pack_ts_target_option): Remove.
44748 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
44749 (write_ts_function_decl_tree_pointers): Do not stream
44750 DECL_FUNCTION_SPECIFIC_TARGET.
44751 * tree-streamer-in.c (unpack_ts_target_option): Remove.
44752 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
44753 (lto_input_ts_function_decl_tree_pointers): Do not stream
44754 DECL_FUNCTION_SPECIFIC_TARGET.
44755
44756 2014-02-14 Jakub Jelinek <jakub@redhat.com>
44757
44758 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
44759 (get_initial_def_for_induction, vectorizable_induction): Ignore
44760 debug stmts when looking for exit_phi.
44761 (vectorizable_live_operation): Fix up condition.
44762
44763 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
44764
44765 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
44766 nreverse() because it changes the content of original tree list.
44767
44768 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
44769
44770 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
44771 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
44772
44773 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
44774
44775 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
44776 GNU coding standards.
44777
44778 2014-02-13 Jakub Jelinek <jakub@redhat.com>
44779
44780 PR debug/60152
44781 * dwarf2out.c (gen_subprogram_die): Don't call
44782 add_calling_convention_attribute if subr_die is old_die.
44783
44784 2014-02-13 Sharad Singhai <singhai@google.com>
44785
44786 * doc/optinfo.texi: Fix order of nodes.
44787
44788 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
44789
44790 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
44791 operands[2], not operands[3].
44792
44793 2014-02-13 Richard Biener <rguenther@suse.de>
44794
44795 PR bootstrap/59878
44796 * doc/install.texi (ISL): Update recommended version to 0.12.2,
44797 mention the possibility of an in-tree build.
44798 (CLooG): Update recommended version to 0.18.1, mention the
44799 possibility of an in-tree build and clarify that the ISL
44800 bundled with CLooG does not work.
44801
44802 2014-02-13 Jakub Jelinek <jakub@redhat.com>
44803
44804 PR target/43546
44805 * expr.c (compress_float_constant): If x is a hard register,
44806 extend into a pseudo and then move to x.
44807
44808 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
44809
44810 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
44811 caused by bad second argument to warning_at() with -mhotpatch and
44812 nested functions (e.g. with gfortran).
44813
44814 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
44815
44816 * opts.c (option_name): Remove "enabled by default" rider.
44817
44818 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
44819
44820 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
44821
44822 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
44823 Uros Bizjak <ubizjak@gmail.com>
44824
44825 PR target/60151
44826 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
44827 * configure: Regenerated.
44828
44829 2014-02-12 Richard Biener <rguenther@suse.de>
44830
44831 * vec.c (vec_prefix::calculate_allocation): Move as
44832 inline variant to vec.h.
44833 (vec_prefix::calculate_allocation_1): New out-of-line version.
44834 * vec.h (vec_prefix::calculate_allocation_1): Declare.
44835 (vec_prefix::m_has_auto_buf): Rename to ...
44836 (vec_prefix::m_using_auto_storage): ... this.
44837 (vec_prefix::calculate_allocation): Inline the easy cases
44838 and dispatch to calculate_allocation_1 which doesn't need the
44839 prefix address.
44840 (va_heap::reserve): Use gcc_checking_assert.
44841 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
44842 m_using_auto_storage.
44843 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
44844 member and adjust.
44845 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
44846 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
44847 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
44848
44849 2014-02-12 Richard Biener <rguenther@suse.de>
44850
44851 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
44852 when we found a dependence.
44853
44854 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
44855
44856 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
44857 common code...
44858 (maybe_fold_stmt): ... into this new function.
44859 * omp-low.c (lower_omp): Update comment.
44860
44861 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
44862 last use.
44863
44864 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
44865 dereference.
44866
44867 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
44868
44869 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
44870 identifiers in comments.
44871 (cortexa53_extra_costs): Likewise.
44872 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
44873 (cortexa7_extra_costs): Likewise.
44874 (cortexa12_extra_costs): Likewise.
44875 (cortexa15_extra_costs): Likewise.
44876 (v7m_extra_costs): Likewise.
44877
44878 2014-02-12 Richard Biener <rguenther@suse.de>
44879
44880 PR middle-end/60092
44881 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
44882 of posix_memalign being successful.
44883 (lower_stmt): Restrict lowering of posix_memalign to when
44884 -ftree-bit-ccp is enabled.
44885
44886 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
44887
44888 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
44889 arg_loc.
44890 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
44891
44892 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
44893
44894 PR rtl-optimization/60116
44895 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
44896 other_insn once the combination has been validated.
44897
44898 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
44899
44900 PR lto/59468
44901 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
44902 and wrapper.
44903 * ipa-devirt.c: Include demangle.h
44904 (odr_violation_reported): New static variable.
44905 (add_type_duplicate): Update odr_violations.
44906 (maybe_record_node): Add completep parameter; update it.
44907 (record_target_from_binfo): Add COMPLETEP parameter;
44908 update it as needed.
44909 (possible_polymorphic_call_targets_1): Likewise.
44910 (struct polymorphic_call_target_d): Add nonconstruction_targets;
44911 rename FINAL to COMPLETE.
44912 (record_targets_from_bases): Sanity check we found the binfo;
44913 fix COMPLETEP updating.
44914 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
44915 parameter, fix computing of COMPLETEP.
44916 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
44917 at LTO time do demangling.
44918 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
44919 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
44920 parameter.
44921 (gimple_get_virt_method_for_binfo): Likewise.
44922 * gimple-fold.h (gimple_get_virt_method_for_binfo,
44923 gimple_get_virt_method_for_vtable): Update prototypes.
44924
44925 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
44926
44927 PR target/49008
44928 * genautomata.c (add_presence_absence): Fix typo with
44929 {final_}presence_list.
44930
44931 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
44932
44933 PR target/60137
44934 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
44935 for VSX/Altivec vectors that land in GPR registers.
44936
44937 2014-02-11 Richard Henderson <rth@redhat.com>
44938 Jakub Jelinek <jakub@redhat.com>
44939
44940 PR debug/59776
44941 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
44942 around drhs if type conversion to lacc->type is not useless.
44943
44944 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
44945
44946 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
44947 tuning struct.
44948 (cortex-a57.cortex-a53): Likewise.
44949 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
44950
44951 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
44952
44953 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
44954 arm_restrict_it.
44955
44956 2014-02-11 Renlin Li <Renlin.Li@arm.com>
44957
44958 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
44959 add_options_for_arm_vfp3.
44960
44961 2014-02-11 Jeff Law <law@redhat.com>
44962
44963 PR middle-end/54041
44964 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
44965 object with an undesirable mode.
44966
44967 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
44968
44969 PR libgomp/60107
44970 * config/i386/sol2-9.h: New file.
44971 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
44972 *-*-solaris2.9*): Use it.
44973
44974 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
44975
44976 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
44977 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
44978
44979 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
44980
44981 * config/microblaze/microblaze.c: Extend mcpu version format
44982
44983 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
44984
44985 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
44986
44987 2014-02-10 Richard Henderson <rth@redhat.com>
44988
44989 PR target/59927
44990 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
44991 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
44992 ms-abi vs -mno-accumulate-outgoing-args.
44993 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
44994 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
44995 respect to ms-abi.
44996
44997 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
44998
44999 PR middle-end/60080
45000 * cfgexpand.c (expand_asm_operands): Attach source location to
45001 ASM_INPUT rtx objects.
45002 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
45003
45004 2014-02-10 Nick Clifton <nickc@redhat.com>
45005
45006 * config/mn10300/mn10300.c (popcount): New function.
45007 (mn10300_expand_prologue): Include saved registers in stack usage
45008 count.
45009
45010 2014-02-10 Jeff Law <law@redhat.com>
45011
45012 PR middle-end/52306
45013 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
45014 when changing the SET_DEST of a prior insn to avoid an input reload.
45015
45016 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
45017
45018 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
45019 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
45020 -mcall-openbsd, or -mcall-linux.
45021 (CC1_ENDIAN_BIG_SPEC): Remove.
45022 (CC1_ENDIAN_LITTLE_SPEC): Remove.
45023 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
45024 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
45025 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
45026 and %cc1_endian_default.
45027 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
45028
45029 2014-02-10 Richard Biener <rguenther@suse.de>
45030
45031 PR tree-optimization/60115
45032 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
45033 MEM_REF handling. Properly verify that the accesses are not
45034 out of the objects bound.
45035
45036 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
45037
45038 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
45039 coretex to cortex.
45040
45041 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
45042
45043 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
45044 proper constants and fix formatting.
45045 (possible_polymorphic_call_targets): Fix formatting.
45046
45047 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
45048 Ilya Tocar <ilya.tocar@intel.com>
45049
45050 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
45051 (_mm512_loadu_epi32): Renamed into...
45052 (_mm512_loadu_si512): This.
45053 (_mm512_storeu_epi32): Renamed into...
45054 (_mm512_storeu_si512): This.
45055 (_mm512_maskz_ceil_ps): Removed.
45056 (_mm512_maskz_ceil_pd): Ditto.
45057 (_mm512_maskz_floor_ps): Ditto.
45058 (_mm512_maskz_floor_pd): Ditto.
45059 (_mm512_floor_round_ps): Ditto.
45060 (_mm512_floor_round_pd): Ditto.
45061 (_mm512_ceil_round_ps): Ditto.
45062 (_mm512_ceil_round_pd): Ditto.
45063 (_mm512_mask_floor_round_ps): Ditto.
45064 (_mm512_mask_floor_round_pd): Ditto.
45065 (_mm512_mask_ceil_round_ps): Ditto.
45066 (_mm512_mask_ceil_round_pd): Ditto.
45067 (_mm512_maskz_floor_round_ps): Ditto.
45068 (_mm512_maskz_floor_round_pd): Ditto.
45069 (_mm512_maskz_ceil_round_ps): Ditto.
45070 (_mm512_maskz_ceil_round_pd): Ditto.
45071 (_mm512_expand_pd): Ditto.
45072 (_mm512_expand_ps): Ditto.
45073 * config/i386/i386.c (ix86_builtins): Remove
45074 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
45075 (bdesc_args): Ditto.
45076 * config/i386/predicates.md (const1256_operand): New.
45077 (const_1_to_2_operand): Ditto.
45078 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
45079 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
45080 (*avx512pf_gatherpf<mode>sf): Ditto.
45081 (avx512pf_gatherpf<mode>df): Ditto.
45082 (*avx512pf_gatherpf<mode>df_mask): Ditto.
45083 (*avx512pf_gatherpf<mode>df): Ditto.
45084 (avx512pf_scatterpf<mode>sf): Ditto.
45085 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
45086 (*avx512pf_scatterpf<mode>sf): Ditto.
45087 (avx512pf_scatterpf<mode>df): Ditto.
45088 (*avx512pf_scatterpf<mode>df_mask): Ditto.
45089 (*avx512pf_scatterpf<mode>df): Ditto.
45090 (avx512f_expand<mode>): Removed.
45091 (<shift_insn><mode>3<mask_name>): Change predicate type.
45092
45093 2014-02-08 Jakub Jelinek <jakub@redhat.com>
45094
45095 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
45096 not at the end of datarefs vector use ordered_remove to avoid
45097 reordering datarefs vector.
45098
45099 PR c/59984
45100 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
45101 mark local addressable non-static vars as GOVD_PRIVATE
45102 instead of GOVD_LOCAL.
45103 * omp-low.c (lower_omp_for): Move gimple_bind_vars
45104 and BLOCK_VARS of gimple_bind_block to new_stmt rather
45105 than copying them.
45106
45107 PR middle-end/60092
45108 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
45109 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
45110 assume_aligned or alloc_align attributes.
45111 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
45112 arguments. Handle also assume_aligned and alloc_align attributes.
45113 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
45114 calls to functions with assume_aligned or alloc_align attributes.
45115 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
45116
45117 2014-02-08 Terry Guo <terry.guo@arm.com>
45118
45119 * doc/invoke.texi: Document ARM -march=armv7e-m.
45120
45121 2014-02-08 Jakub Jelinek <jakub@redhat.com>
45122
45123 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
45124 flag on __cilkrts_rethrow builtin.
45125
45126 PR ipa/60026
45127 * ipa-cp.c (determine_versionability): Fail at -O0
45128 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
45129 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
45130
45131 Revert:
45132 2014-02-04 Jakub Jelinek <jakub@redhat.com>
45133
45134 PR ipa/60026
45135 * tree-inline.c (copy_forbidden): Fail for
45136 __attribute__((optimize (0))) functions.
45137
45138 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
45139
45140 * varpool.c: Include pointer-set.h.
45141 (varpool_remove_unreferenced_decls): Variables in other partitions
45142 will not be output; be however careful to not lose information
45143 about partitioning.
45144
45145 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
45146
45147 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
45148 lookup in the vtable constructor.
45149
45150 2014-02-07 Jeff Law <law@redhat.com>
45151
45152 PR target/40977
45153 * config/m68k/m68k.md (ashldi_extsi): Turn into a
45154 define_insn_and_split.
45155
45156 * ipa-inline.c (inline_small_functions): Fix typos.
45157
45158 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
45159
45160 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
45161 (s390_can_use_return_insn): Declare.
45162 * config/s390/s390.h (EPILOGUE_USES): Define.
45163 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
45164 instructions.
45165 (s390_chunkify_start): Handle return JUMP_LABELs.
45166 (s390_early_mach): Emit a main_pool instruction on the entry edge.
45167 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
45168 (s390_can_use_return_insn): New functions.
45169 (s390_fix_long_loop_prediction): Handle conditional returns.
45170 (TARGET_SET_UP_BY_PROLOGUE): Define.
45171 * config/s390/s390.md (ANY_RETURN): New code iterator.
45172 (*creturn, *csimple_return, return, simple_return): New patterns.
45173
45174 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
45175
45176 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
45177 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
45178 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
45179 REG_CFA_RESTORE list when deciding not to restore a register.
45180
45181 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
45182
45183 * config/s390/s390.c: Include tree-pass.h and context.h.
45184 (s390_early_mach): New function, split out from...
45185 (s390_emit_prologue): ...here.
45186 (pass_data_s390_early_mach): New pass structure.
45187 (pass_s390_early_mach): New class.
45188 (s390_option_override): Create and register early_mach pass.
45189 Move to end of file.
45190
45191 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
45192
45193 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
45194 to match for the exit block.
45195
45196 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
45197
45198 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
45199 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
45200 Reject misaligned operands.
45201
45202 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
45203
45204 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
45205
45206 2014-02-07 Richard Biener <rguenther@suse.de>
45207
45208 PR middle-end/60092
45209 * gimple-low.c (lower_builtin_posix_memalign): New function.
45210 (lower_stmt): Call it to lower posix_memalign in a way
45211 to make alignment info accessible.
45212
45213 2014-02-07 Jakub Jelinek <jakub@redhat.com>
45214
45215 PR c++/60082
45216 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
45217 __builtin_setjmp_receiver.
45218
45219 2014-02-07 Richard Biener <rguenther@suse.de>
45220
45221 PR middle-end/60092
45222 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
45223 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
45224 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
45225 Handle BUILT_IN_POSIX_MEMALIGN.
45226 (find_func_clobbers): Likewise.
45227 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
45228 (call_may_clobber_ref_p_1): Likewise.
45229
45230 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
45231
45232 PR ipa/59918
45233 * ipa-devirt.c (record_target_from_binfo): Remove overactive
45234 sanity check.
45235
45236 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
45237
45238 PR ipa/59469
45239 * lto-cgraph.c (lto_output_node): Use
45240 symtab_get_symbol_partitioning_class.
45241 (lto_output_varpool_node): likewise.
45242 (symtab_get_symbol_partitioning_class): Move here from
45243 lto/lto-partition.c
45244 * cgraph.h (symbol_partitioning_class): Likewise.
45245 (symtab_get_symbol_partitioning_class): Declare.
45246
45247 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
45248
45249 * ggc.h (ggc_internal_cleared_alloc): New macro.
45250 * vec.h (vec_safe_copy): Handle memory stats.
45251 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
45252 * target-globals.c (save_target_globals): Likewise.
45253
45254 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
45255
45256 PR target/60077
45257 * expr.c (emit_move_resolve_push): Export; be bit more selective
45258 on when to clear alias set.
45259 * expr.h (emit_move_resolve_push): Declare.
45260 * function.h (struct function): Add tail_call_marked.
45261 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
45262 * config/i386/i386-protos.h (ix86_expand_push): Remove.
45263 * config/i386/i386.md (TImode move expander): De not call
45264 ix86_expand_push.
45265 (FP push expanders): Preserve memory attributes.
45266 * config/i386/sse.md (push<mode>1): Remove.
45267 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
45268 (ix86_expand_push): Remove.
45269 * config/i386/mmx.md (push<mode>1): Remove.
45270
45271 2014-02-06 Jakub Jelinek <jakub@redhat.com>
45272
45273 PR rtl-optimization/60030
45274 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
45275 lopart with paradoxical subreg before shifting it up by hprec.
45276
45277 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
45278
45279 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
45280 Remove extra newline at end of file.
45281 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
45282 (arm_issue_rate): Handle cortexa57.
45283 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
45284 (cortex-a57.cortex-a53): Likewise.
45285
45286 2014-02-06 Jakub Jelinek <jakub@redhat.com>
45287
45288 PR target/59575
45289 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
45290 don't record in REG_FRAME_RELATED_EXPR registers not set in that
45291 bitmask.
45292 (arm_expand_prologue): Adjust all callers.
45293 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
45294 info, registers also at the lowest numbered registers side. Use
45295 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
45296 XEXP.
45297
45298 PR debug/59992
45299 * var-tracking.c (adjust_mems): Before adding a SET to
45300 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
45301
45302 2014-02-06 Alan Modra <amodra@gmail.com>
45303
45304 PR target/60032
45305 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
45306 change SDmode to DDmode when lra_in_progress.
45307
45308 2014-02-06 Jakub Jelinek <jakub@redhat.com>
45309
45310 PR middle-end/59150
45311 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
45312 free_data_ref on the dr first, and before goto again also set dr
45313 to the next dr. For simd_lane_access, free old datarefs[i] before
45314 overwriting it. For get_vectype_for_scalar_type failure, don't
45315 free_data_ref if simd_lane_access.
45316
45317 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
45318
45319 PR target/60062
45320 * tree.h (opts_for_fn): New inline function.
45321 (opt_for_fn): Define.
45322 * config/i386/i386.c (ix86_function_regparm): Use
45323 opt_for_fn (decl, optimize) instead of optimize.
45324
45325 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
45326
45327 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
45328 for SYMBOL_REF in large memory model.
45329
45330 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
45331
45332 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
45333 and crypto support.
45334 (cortex-a57): Likewise.
45335 (cortex-a57.cortex-a53): Likewise.
45336
45337 2014-02-06 Yury Gribov <y.gribov@samsung.com>
45338 Kugan Vivekanandarajah <kuganv@linaro.org>
45339
45340 * config/arm/arm.c (arm_vector_alignment_reachable): Check
45341 unaligned_access.
45342 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
45343
45344 2014-02-06 Richard Biener <rguenther@suse.de>
45345
45346 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
45347 set_loop_copy and initialize_original_copy_tables.
45348
45349 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
45350
45351 * config/aarch64/aarch64-simd.md
45352 (aarch64_ashr_simddi): Change QI to SI.
45353
45354 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
45355 Jakub Jelinek <jakub@redhat.com>
45356
45357 PR middle-end/60013
45358 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
45359 of the dataflow.
45360
45361 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
45362
45363 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
45364 CODE_FOR_altivec_vpku[hw]um to
45365 CODE_FOR_altivec_vpku[hw]um_direct.
45366 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
45367 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
45368 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
45369 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
45370
45371 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
45372
45373 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
45374 generation for -maltivec=be.
45375 (altivec_vsumsws): Simplify redundant test.
45376
45377 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
45378
45379 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
45380 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
45381 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
45382 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
45383 gen_altivec_vpkuwum.
45384 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
45385 BYTES_BIG_ENDIAN.
45386 (altivec_vpks<VI_char>ss): Likewise.
45387 (altivec_vpks<VI_char>us): Likewise.
45388 (altivec_vpku<VI_char>us): Likewise.
45389 (altivec_vpku<VI_char>um): Likewise.
45390 (altivec_vpku<VI_char>um_direct): New (copy of
45391 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
45392 internal use).
45393 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
45394 target is little endian and -maltivec=be is not specified.
45395 (*altivec_vupkhs<VU_char>_direct): New (copy of
45396 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
45397 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
45398 target is little endian and -maltivec=be is not specified.
45399 (*altivec_vupkls<VU_char>_direct): New (copy of
45400 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
45401 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
45402 little endian and -maltivec=be is not specified.
45403 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
45404 little endian and -maltivec=be is not specified.
45405
45406 2014-02-05 Richard Henderson <rth@redhat.com>
45407
45408 PR debug/52727
45409 * combine-stack-adj.c: Revert r206943.
45410 * sched-int.h (struct deps_desc): Add last_args_size.
45411 * sched-deps.c (init_deps): Initialize it.
45412 (sched_analyze_insn): Add OUTPUT dependencies between insns that
45413 contain REG_ARGS_SIZE notes.
45414
45415 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
45416
45417 * lto-cgraph.c (asm_nodes_output): Make global.
45418 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
45419 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
45420 (driver_handle_option): Handle OPT_fwpa.
45421
45422 2014-02-05 Jakub Jelinek <jakub@redhat.com>
45423
45424 PR ipa/59947
45425 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
45426 a comment typo and formatting issue. If odr_hash hasn't been
45427 created, return vNULL and set *completep to false.
45428
45429 PR middle-end/57499
45430 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
45431 bb with no successors.
45432
45433 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
45434
45435 PR target/59718
45436 * doc/invoke.texi (-march): Clarify documentation for ARM.
45437 (-mtune): Likewise.
45438 (-mcpu): Likewise.
45439
45440 2014-02-05 Richard Biener <rguenther@suse.de>
45441
45442 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
45443 when not vectorizing because of too many alias checks.
45444 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
45445 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
45446
45447 2014-02-05 Nick Clifton <nickc@redhat.com>
45448
45449 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
45450 accept extended registers in any mode when compiling for the MN10300.
45451
45452 2014-02-05 Yury Gribov <y.gribov@samsung.com>
45453
45454 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
45455 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
45456 sanitization attributes.
45457 (can_inline_edge_p): Likewise.
45458 (sanitize_attrs_match_for_inline_p): New function.
45459
45460 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
45461
45462 * ipa-prop.c (detect_type_change): Shor circuit testing of
45463 type changes on THIS pointer.
45464
45465 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
45466
45467 PR target/59777
45468 * config/pa/pa.c (legitimize_tls_address): Return original address
45469 if not passed a SYMBOL_REF rtx.
45470 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
45471 addresses.
45472 (pa_emit_move_sequence): Simplify TLS source operands.
45473 (pa_legitimate_constant_p): Reject all TLS constants.
45474 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
45475 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
45476
45477 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
45478
45479 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
45480 groups when we know they are controlled by LTO.
45481 * varasm.c (default_binds_local_p_1): If object is in other partition,
45482 it will be resolved locally.
45483
45484 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
45485
45486 * config/host-linux.c (linux_gt_pch_use_address): Don't
45487 use SSIZE_MAX because it is not always defined.
45488
45489 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
45490
45491 PR bootstrap/59913
45492 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
45493 threshold for pseudo splitting.
45494 (update_ebb_live_info): Process call argument hard registers and
45495 hard registers from insn definition too.
45496 (max_small_class_regs_num): New constant.
45497 (inherit_in_ebb): Update live hard regs through EBBs. Update
45498 reloads_num only for small register classes. Don't split for
45499 outputs of jumps.
45500
45501 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
45502
45503 PR ipa/60058
45504 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
45505 is non-null.
45506
45507 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
45508
45509 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
45510 visibility is safe.
45511
45512 2014-02-04 Marek Polacek <polacek@redhat.com>
45513
45514 * gdbinit.in (pel): Define.
45515
45516 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
45517
45518 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
45519 behavior.
45520
45521 2014-02-04 Richard Biener <rguenther@suse.de>
45522
45523 PR lto/59723
45524 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
45525 in function context local.
45526 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
45527 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
45528 similar to LTO_imported_decl_ref.
45529
45530 2014-02-04 Jakub Jelinek <jakub@redhat.com>
45531
45532 PR tree-optimization/60002
45533 * cgraphclones.c (build_function_decl_skip_args): Clear
45534 DECL_LANG_SPECIFIC.
45535
45536 PR tree-optimization/60023
45537 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
45538 false to gsi_replace.
45539 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
45540 has been in some EH region and vec_stmt could throw, add
45541 vec_stmt into the same EH region.
45542 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
45543 has no lhs, ignore it.
45544 * internal-fn.c (expand_MASK_LOAD): Likewise.
45545
45546 PR ipa/60026
45547 * tree-inline.c (copy_forbidden): Fail for
45548 __attribute__((optimize (0))) functions.
45549
45550 PR other/58712
45551 * omp-low.c (simd_clone_struct_copy): If from->inbranch
45552 is set, copy one less argument.
45553 (expand_simd_clones): Don't subtract clone_info->inbranch
45554 from simd_clone_struct_alloc argument.
45555
45556 PR rtl-optimization/57915
45557 * recog.c (simplify_while_replacing): If all unary/binary/relational
45558 operation arguments are constant, attempt to simplify those.
45559
45560 PR middle-end/59261
45561 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
45562 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
45563
45564 2014-02-04 Richard Biener <rguenther@suse.de>
45565
45566 PR tree-optimization/60012
45567 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
45568 TBAA disambiguation to all DDRs.
45569
45570 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
45571
45572 PR target/59788
45573 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
45574 (LINK_SPEC): Use it for -shared, -shared-libgcc.
45575
45576 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
45577
45578 PR ipa/59882
45579 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
45580
45581 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
45582
45583 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
45584 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
45585
45586 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
45587
45588 PR ipa/59831
45589 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
45590 to figure out targets of polymorphic calls with known decl.
45591 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45592 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
45593 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
45594 (get_polymorphic_call_info): ... here.
45595 (get_polymorphic_call_info_from_invariant): New function.
45596
45597 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
45598
45599 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
45600 lookup via vtable pointer; check for type consistency
45601 and turn inconsitent facts into UNREACHABLE.
45602 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45603 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
45604 type inconsistent querries; return UNREACHABLE instead.
45605
45606 2014-02-03 Richard Henderson <rth@twiddle.net>
45607
45608 PR tree-opt/59924
45609 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
45610 already processed this node.
45611 (normalize_one_pred_1): Pass along mark_set.
45612 (normalize_one_pred): Create and destroy a pointer_set_t.
45613 (normalize_one_pred_chain): Likewise.
45614
45615 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
45616
45617 PR gcov-profile/58602
45618 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
45619
45620 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
45621
45622 PR ipa/59831
45623 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
45624 -fno-devirtualize; try to devirtualize by the knowledge of
45625 virtual table pointer given by aggregate propagation.
45626 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45627 (ipa_print_node_jump_functions): Dump also offset that
45628 is relevant for polymorphic calls.
45629 (determine_known_aggregate_parts): Add arg_type parameter; use it
45630 instead of determining the type from pointer type.
45631 (ipa_compute_jump_functions_for_edge): Update call of
45632 determine_known_aggregate_parts.
45633 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
45634 (gimple_get_virt_method_for_binfo): ... here; simplify using
45635 vtable_pointer_value_to_vtable.
45636 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
45637 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
45638 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
45639 (vtable_pointer_value_to_vtable): Break out from ...; handle also
45640 POINTER_PLUS_EXPR.
45641 (vtable_pointer_value_to_binfo): ... here.
45642 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
45643
45644 2014-02-03 Teresa Johnson <tejohnson@google.com>
45645
45646 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
45647 redef of outer loop index variable.
45648
45649 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
45650
45651 PR c++/53017
45652 PR c++/59211
45653 * doc/extend.texi (Function Attributes): Typo.
45654
45655 2014-02-03 Cong Hou <congh@google.com>
45656
45657 PR tree-optimization/60000
45658 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
45659 if the vectorized statement is a store. A store statement can only
45660 appear at the end of pattern statements.
45661
45662 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
45663
45664 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
45665 (ix86_option_override_internal): Default long double to 64-bit for
45666 32-bit Bionic and to 128-bit for 64-bit Bionic.
45667
45668 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
45669 TARGET_LONG_DOUBLE_128 is true.
45670 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
45671
45672 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
45673 (mlong-double-64): Negate -mlong-double-128.
45674 (mlong-double-128): New option.
45675
45676 * config/i386/i386-c.c (ix86_target_macros): Define
45677 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
45678
45679 * doc/invoke.texi: Document -mlong-double-128.
45680
45681 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
45682
45683 PR rtl-optimization/60024
45684 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
45685
45686 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
45687
45688 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
45689
45690 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
45691
45692 PR rtl-optimization/57662
45693 * sel-sched.c (code_motion_path_driver): Do not mark already not
45694 existing blocks in the visiting bitmap.
45695
45696 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
45697
45698 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
45699 on the insn being emitted.
45700
45701 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
45702 Will Deacon <will.deacon@arm.com>
45703
45704 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
45705
45706 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
45707
45708 * config/arm/arm-tables.opt: Regenerate.
45709
45710 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
45711
45712 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
45713 for vector types other than V16QImode.
45714 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
45715 define_expand, and call altivec_expand_vec_perm_le when producing
45716 code with little endian element order.
45717 (*altivec_vperm_<mode>_internal): New insn having previous
45718 behavior of altivec_vperm_<mode>.
45719 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
45720 altivec_expand_vec_perm_le when producing code with little endian
45721 element order.
45722 (*altivec_vperm_<mode>_uns_internal): New insn having previous
45723 behavior of altivec_vperm_<mode>_uns.
45724
45725 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
45726
45727 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
45728 (altivec_vsumsws): Add handling for -maltivec=be with a little
45729 endian target.
45730 (altivec_vsumsws_direct): New.
45731 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
45732 gen_altivec_vsumsws.
45733
45734 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
45735
45736 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
45737 vtable_pointer_value_to_binfo): New functions.
45738 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
45739 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
45740
45741 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
45742
45743 * config/nios2/nios2.md (load_got_register): Initialize GOT
45744 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
45745 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
45746
45747 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
45748
45749 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
45750 preserverd by passthrough, do not propagate the type.
45751
45752 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
45753
45754 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
45755 (mips_atomic_assign_expand_fenv): New function.
45756 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
45757
45758 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
45759
45760 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
45761 (__builtin_mips_set_fcsr): Likewise.
45762 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
45763 MIPS_USI_FTYPE_VOID.
45764 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
45765 (mips16_expand_set_fcsr): Likewise.
45766 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
45767 (mips16_set_fcsr_stub): Likewise.
45768 (mips16_get_fcsr_one_only_stub): New class.
45769 (mips16_set_fcsr_one_only_stub): Likewise.
45770 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
45771 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
45772 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
45773 (hard_float): New availability predicate.
45774 (mips_builtins): Add get_fcsr and set_fcsr.
45775 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
45776 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
45777 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
45778 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
45779 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
45780 patterns.
45781
45782 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
45783
45784 * config/mips/mips.c (mips_one_only_stub): New class.
45785 (mips_need_mips16_rdhwr_p): Replace with...
45786 (mips16_rdhwr_stub): ...this new variable.
45787 (mips16_stub_call_address): New function.
45788 (mips16_rdhwr_one_only_stub): New class.
45789 (mips_expand_thread_pointer): Use mips16_stub_call_address.
45790 (mips_output_mips16_rdhwr): Delete.
45791 (mips_finish_stub): New function.
45792 (mips_code_end): Use it to handle rdhwr stubs.
45793
45794 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
45795
45796 PR target/60017
45797 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
45798 when calculating size of integer atomic types.
45799
45800 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
45801
45802 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
45803
45804 2014-02-01 Jakub Jelinek <jakub@redhat.com>
45805
45806 PR tree-optimization/60003
45807 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
45808 * profile.c (branch_prob): Use gimple_call_builtin_p
45809 to check for BUILT_IN_SETJMP_RECEIVER.
45810 * tree-inline.c (copy_bb): Call notice_special_calls.
45811
45812 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
45813
45814 PR bootstrap/59985
45815 * lra-constraints.c (process_alt_operands): Update reload_sum only
45816 on the first pass.
45817
45818 2014-01-31 Richard Henderson <rth@redhat.com>
45819
45820 PR middle-end/60004
45821 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
45822 until after else_eh is processed.
45823
45824 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
45825
45826 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
45827 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
45828 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
45829 in smmintrin.h, remove them.
45830 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
45831 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
45832 * config/i386/i386.md (ROUND_SAE): Fix value.
45833 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
45834 (const48_operand): New.
45835 * config/i386/subst.md (round), (round_expand): Use
45836 const_4_or_8_to_11_operand.
45837 (round_saeonly), (round_saeonly_expand): Use const48_operand.
45838
45839 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
45840
45841 * config/i386/constraints.md (Yk): Swap meaning with k.
45842 * config/i386/i386.md (movhi_internal): Change Yk to k.
45843 (movqi_internal): Ditto.
45844 (*k<logic><mode>): Ditto.
45845 (*andhi_1): Ditto.
45846 (*andqi_1): Ditto.
45847 (kandn<mode>): Ditto.
45848 (*<code>hi_1): Ditto.
45849 (*<code>qi_1): Ditto.
45850 (kxnor<mode>): Ditto.
45851 (kortestzhi): Ditto.
45852 (kortestchi): Ditto.
45853 (kunpckhi): Ditto.
45854 (*one_cmplhi2_1): Ditto.
45855 (*one_cmplqi2_1): Ditto.
45856 * config/i386/sse.md (): Change k to Yk.
45857 (avx512f_load<mode>_mask): Ditto.
45858 (avx512f_blendm<mode>): Ditto.
45859 (avx512f_store<mode>_mask): Ditto.
45860 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
45861 (avx512f_storedqu<mode>_mask): Ditto.
45862 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
45863 Ditto.
45864 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
45865 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
45866 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
45867 (avx512f_maskcmp<mode>3): Ditto.
45868 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
45869 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
45870 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
45871 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
45872 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
45873 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
45874 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
45875 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
45876 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
45877 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
45878 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
45879 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
45880 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
45881 (vec_extract_lo_<mode>_maskm): Ditto.
45882 (vec_extract_hi_<mode>_maskm): Ditto.
45883 (avx512f_vternlog<mode>_mask): Ditto.
45884 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
45885 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
45886 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
45887 (avx512f_<code>v8div16qi2_mask): Ditto.
45888 (avx512f_<code>v8div16qi2_mask_store): Ditto.
45889 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
45890 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
45891 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
45892 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
45893 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
45894 (*avx512pf_gatherpf<mode>df_mask): Ditto.
45895 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
45896 (*avx512pf_scatterpf<mode>df_mask): Ditto.
45897 (avx512cd_maskb_vec_dupv8di): Ditto.
45898 (avx512cd_maskw_vec_dupv16si): Ditto.
45899 (avx512f_vpermi2var<mode>3_maskz): Ditto.
45900 (avx512f_vpermi2var<mode>3_mask): Ditto.
45901 (avx512f_vpermi2var<mode>3_mask): Ditto.
45902 (avx512f_vpermt2var<mode>3_maskz): Ditto.
45903 (*avx512f_gathersi<mode>): Ditto.
45904 (*avx512f_gathersi<mode>_2): Ditto.
45905 (*avx512f_gatherdi<mode>): Ditto.
45906 (*avx512f_gatherdi<mode>_2): Ditto.
45907 (*avx512f_scattersi<mode>): Ditto.
45908 (*avx512f_scatterdi<mode>): Ditto.
45909 (avx512f_compress<mode>_mask): Ditto.
45910 (avx512f_compressstore<mode>_mask): Ditto.
45911 (avx512f_expand<mode>_mask): Ditto.
45912 * config/i386/subst.md (mask): Change k to Yk.
45913 (mask_scalar_merge): Ditto.
45914 (sd): Ditto.
45915
45916 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
45917
45918 * doc/extend.texi (Vector Extensions): Document ?: in C++.
45919
45920 2014-01-31 Richard Biener <rguenther@suse.de>
45921
45922 PR middle-end/59990
45923 * builtins.c (fold_builtin_memory_op): Make sure to not
45924 use a floating-point mode or a boolean or enumeral type for
45925 the copy operation.
45926
45927 2014-01-30 DJ Delorie <dj@redhat.com>
45928
45929 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
45930 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
45931 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
45932 whenever main() has an epilogue.
45933
45934 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
45935
45936 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
45937 unused variable "field".
45938 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
45939 (vsx_mergeh_<mode>): Likewise.
45940 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
45941 (altivec_vmrghh): Likewise.
45942 (altivec_vmrghw): Likewise.
45943 (altivec_vmrglb): Likewise.
45944 (altivec_vmrglh): Likewise.
45945 (altivec_vmrglw): Likewise.
45946 (altivec_vspltb): Add missing uses.
45947 (altivec_vsplth): Likewise.
45948 (altivec_vspltw): Likewise.
45949 (altivec_vspltsf): Likewise.
45950
45951 2014-01-30 Jakub Jelinek <jakub@redhat.com>
45952
45953 PR target/59923
45954 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
45955 frame related instructions.
45956
45957 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
45958
45959 PR rtl-optimization/59959
45960 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
45961 any reload of register whose subreg is invalid.
45962
45963 2014-01-30 Jakub Jelinek <jakub@redhat.com>
45964
45965 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
45966 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
45967 Add missing return type - void.
45968
45969 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
45970
45971 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
45972 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
45973 remove element index adjustment for endian (now handled in vsx.md
45974 and altivec.md).
45975 (altivec_expand_vec_perm_const): Use
45976 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
45977 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
45978 (vsx_xxspltw_<mode>): Adjust element index for little endian.
45979 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
45980 define_expand and a new define_insn *altivec_vspltb_internal;
45981 adjust for -maltivec=be on a little endian target.
45982 (altivec_vspltb_direct): New.
45983 (altivec_vsplth): Divide into a define_expand and a new
45984 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
45985 little endian target.
45986 (altivec_vsplth_direct): New.
45987 (altivec_vspltw): Divide into a define_expand and a new
45988 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
45989 little endian target.
45990 (altivec_vspltw_direct): New.
45991 (altivec_vspltsf): Divide into a define_expand and a new
45992 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
45993 a little endian target.
45994
45995 2014-01-30 Richard Biener <rguenther@suse.de>
45996
45997 PR tree-optimization/59993
45998 * tree-ssa-forwprop.c (associate_pointerplus): Check we
45999 can propagate form the earlier stmt and avoid the transform
46000 when the intermediate result is needed.
46001
46002 2014-01-30 Alangi Derick <alangiderick@gmail.com>
46003
46004 * README.Portability: Fix typo.
46005
46006 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
46007
46008 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
46009 comparison_operator with ordered_comparison_operator.
46010
46011 2014-01-30 Nick Clifton <nickc@redhat.com>
46012
46013 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
46014 Rename to mn10300_store_multiple_regs.
46015 * config/mn10300/mn10300.c: Likewise.
46016 * config/mn10300/mn10300.md (store_movm): Fix typo: call
46017 store_multiple_regs.
46018 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
46019 Call mn10300_store_multiple_regs.
46020
46021 2014-01-30 Nick Clifton <nickc@redhat.com>
46022 DJ Delorie <dj@redhat.com>
46023
46024 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
46025 %fp 2 to keep registers after it properly word-aligned.
46026 (rl78_alloc_physical_registers_umul): Handle the case where both
46027 input operands are the same.
46028
46029 2014-01-30 Richard Biener <rguenther@suse.de>
46030
46031 PR tree-optimization/59903
46032 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
46033 check properly.
46034
46035 2014-01-30 Jason Merrill <jason@redhat.com>
46036
46037 PR c++/59633
46038 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
46039
46040 PR c++/59645
46041 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
46042
46043 2014-01-30 Richard Biener <rguenther@suse.de>
46044
46045 PR tree-optimization/59951
46046 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
46047
46048 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
46049
46050 PR target/59784
46051 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
46052 SFmode to DFmode case.
46053
46054 2014-01-29 DJ Delorie <dj@redhat.com>
46055
46056 * config/msp430/msp430.opt (-minrt): New.
46057 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
46058 if -minrt given.
46059 (ENDFILE_SPEC): Likewise.
46060
46061 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
46062
46063 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
46064 (estimate_function_body_sizes): Use it.
46065
46066 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
46067
46068 PR c++/58561
46069 * dwarf2out.c (is_cxx_auto): New.
46070 (is_base_type): Use it.
46071 (gen_type_die_with_usage): Likewise.
46072
46073 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
46074
46075 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
46076 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
46077 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
46078 -maltivec=be with LE targets.
46079 (vsx_mergeh_<mode>): Likewise.
46080 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
46081 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
46082 (altivec_vmrghb): Replace with define_expand and new
46083 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
46084 (altivec_vmrghb_direct): New define_insn.
46085 (altivec_vmrghh): Replace with define_expand and new
46086 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
46087 (altivec_vmrghh_direct): New define_insn.
46088 (altivec_vmrghw): Replace with define_expand and new
46089 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
46090 (altivec_vmrghw_direct): New define_insn.
46091 (*altivec_vmrghsf): Adjust for endianness.
46092 (altivec_vmrglb): Replace with define_expand and new
46093 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
46094 (altivec_vmrglb_direct): New define_insn.
46095 (altivec_vmrglh): Replace with define_expand and new
46096 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
46097 (altivec_vmrglh_direct): New define_insn.
46098 (altivec_vmrglw): Replace with define_expand and new
46099 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
46100 (altivec_vmrglw_direct): New define_insn.
46101 (*altivec_vmrglsf): Adjust for endianness.
46102 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
46103 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
46104 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
46105 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
46106 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
46107 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
46108 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
46109 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
46110
46111 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
46112
46113 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
46114 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
46115 whitespace.
46116
46117 2014-01-29 Richard Biener <rguenther@suse.de>
46118
46119 PR tree-optimization/58742
46120 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
46121 associate_pointerplus_align.
46122 (associate_pointerplus_diff): New function.
46123 (associate_pointerplus): Likewise. Call associate_pointerplus_align
46124 and associate_pointerplus_diff.
46125
46126 2014-01-29 Richard Biener <rguenther@suse.de>
46127
46128 * lto-streamer.h (LTO_major_version): Bump to 3.
46129 (LTO_minor_version): Reset to 0.
46130
46131 2014-01-29 Renlin Li <Renlin.Li@arm.com>
46132
46133 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
46134 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
46135 (arm_file_start): Generate correct asm header for armv7ve.
46136 * config/arm/bpabi.h: Add multilib support for armv7ve.
46137 * config/arm/driver-arm.c: Change the architectures of cortex-a7
46138 and cortex-a15 to armv7ve.
46139 * config/arm/t-aprofile: Add multilib support for armv7ve.
46140 * doc/invoke.texi: Document -march=armv7ve.
46141
46142 2014-01-29 Richard Biener <rguenther@suse.de>
46143
46144 PR tree-optimization/58742
46145 * tree-ssa-forwprop.c (associate_plusminus): Return true
46146 if we changed sth, defer EH cleanup to ...
46147 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
46148 (simplify_mult): New function.
46149
46150 2014-01-29 Jakub Jelinek <jakub@redhat.com>
46151
46152 PR middle-end/59917
46153 PR tree-optimization/59920
46154 * tree.c (build_common_builtin_nodes): Remove
46155 __builtin_setjmp_dispatcher initialization.
46156 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
46157 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
46158 instead of gsi_after_labels + manually skipping debug stmts.
46159 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
46160 ignore bbs with IFN_ABNORMAL_DISPATCHER.
46161 * tree-inline.c (copy_edges_for_bb): Remove
46162 can_make_abnormal_goto argument, instead add abnormal_goto_dest
46163 argument. Ignore computed_goto_p stmts. Don't call
46164 make_abnormal_goto_edges. If a call might need abnormal edges
46165 for non-local gotos, see if it already has an edge to
46166 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
46167 with true argument, don't do anything then, otherwise add
46168 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
46169 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
46170 caller.
46171 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
46172 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
46173 (lower_stmt): Don't set data->calls_builtin_setjmp.
46174 (lower_builtin_setjmp): Adjust comment.
46175 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
46176 * tree-cfg.c (found_computed_goto): Remove.
46177 (factor_computed_gotos): Remove.
46178 (make_goto_expr_edges): Return bool, true for computed gotos.
46179 Don't call make_abnormal_goto_edges.
46180 (build_gimple_cfg): Don't set found_computed_goto, don't call
46181 factor_computed_gotos.
46182 (computed_goto_p): No longer static.
46183 (make_blocks): Don't set found_computed_goto.
46184 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
46185 (make_edges): If make_goto_expr_edges returns true, push bb
46186 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
46187 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
46188 vector. Record mapping between bbs and OpenMP regions if there
46189 are any, adjust make_gimple_omp_edges caller. Call
46190 handle_abnormal_edges.
46191 (make_abnormal_goto_edges): Remove.
46192 * tree-cfg.h (make_abnormal_goto_edges): Remove.
46193 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
46194 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
46195 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
46196 * internal-fn.def (ABNORMAL_DISPATCHER): New.
46197 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
46198 filling *region also set *region_idx to (*region)->entry->index.
46199
46200 PR other/58712
46201 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
46202 For REGs set ORIGINAL_REGNO.
46203
46204 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
46205
46206 * doc/md.texi: Mention that a target shouldn't implement
46207 vec_widen_(s|u)mul_even/odd pair if it is less efficient
46208 than hi/lo pair.
46209
46210 2014-01-29 Jakub Jelinek <jakub@redhat.com>
46211
46212 PR tree-optimization/59594
46213 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
46214 a copy of the datarefs vector rather than the vector itself.
46215
46216 2014-01-28 Jason Merrill <jason@redhat.com>
46217
46218 PR c++/53756
46219 * dwarf2out.c (auto_die): New static.
46220 (gen_type_die_with_usage): Handle C++1y 'auto'.
46221 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
46222 on definition.
46223
46224 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
46225
46226 PR target/59672
46227 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
46228 (SPEC_X32): Likewise.
46229 (SPEC_64): Likewise.
46230 * config/i386/i386.c (ix86_option_override_internal): Turn off
46231 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
46232 for TARGET_16BIT.
46233 (x86_file_start): Output .code16gcc for TARGET_16BIT.
46234 * config/i386/i386.h (TARGET_16BIT): New macro.
46235 (TARGET_16BIT_P): Likewise.
46236 * config/i386/i386.opt: Add m16.
46237 * doc/invoke.texi: Document -m16.
46238
46239 2014-01-28 Jakub Jelinek <jakub@redhat.com>
46240
46241 PR preprocessor/59935
46242 * input.c (location_get_source_line): Bail out on when line number
46243 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
46244
46245 2014-01-28 Richard Biener <rguenther@suse.de>
46246
46247 PR tree-optimization/58742
46248 * tree-ssa-forwprop.c (associate_plusminus): Handle
46249 pointer subtraction of the form (T)(P + A) - (T)P.
46250
46251 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
46252
46253 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
46254 at const_int_cost.
46255
46256 2014-01-28 Richard Biener <rguenther@suse.de>
46257
46258 Revert
46259 2014-01-28 Richard Biener <rguenther@suse.de>
46260
46261 PR rtl-optimization/45364
46262 PR rtl-optimization/59890
46263 * var-tracking.c (local_get_addr_clear_given_value): Handle
46264 already cleared slot.
46265 (val_reset): Handle not allocated local_get_addr_cache.
46266 (vt_find_locations): Use post-order on the inverted CFG.
46267
46268 2014-01-28 Richard Biener <rguenther@suse.de>
46269
46270 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
46271
46272 2014-01-28 Richard Biener <rguenther@suse.de>
46273
46274 PR rtl-optimization/45364
46275 PR rtl-optimization/59890
46276 * var-tracking.c (local_get_addr_clear_given_value): Handle
46277 already cleared slot.
46278 (val_reset): Handle not allocated local_get_addr_cache.
46279 (vt_find_locations): Use post-order on the inverted CFG.
46280
46281 2014-01-28 Alan Modra <amodra@gmail.com>
46282
46283 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
46284 * configure.ac <recursive call for build != host>: Define
46285 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
46286 and LD_FOR_BUILD too.
46287 * configure: Regenerate.
46288
46289 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
46290
46291 * config/i386/i386.c (get_builtin_code_for_version): Separate
46292 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
46293 Broadwell from Haswell.
46294
46295 2014-01-27 Steve Ellcey <sellcey@mips.com>
46296
46297 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
46298 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
46299 * config/mips/mips.c (mips_option_override): Change setting
46300 of TARGET_DSP.
46301 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
46302 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
46303 Change from Mask to Var.
46304
46305 2014-01-27 Jeff Law <law@redhat.com>
46306
46307 * ipa-inline.c (inline_small_functions): Fix typo.
46308
46309 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
46310
46311 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
46312 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
46313 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
46314 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
46315 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
46316 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
46317 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
46318 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
46319 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
46320 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
46321 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
46322 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
46323 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
46324 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
46325 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
46326 (_mm512_storeu_epi64): Ditto.
46327 (_mm512_cmpge_epi32_mask): Ditto.
46328 (_mm512_cmpge_epu32_mask): Ditto.
46329 (_mm512_cmpge_epi64_mask): Ditto.
46330 (_mm512_cmpge_epu64_mask): Ditto.
46331 (_mm512_cmple_epi32_mask): Ditto.
46332 (_mm512_cmple_epu32_mask): Ditto.
46333 (_mm512_cmple_epi64_mask): Ditto.
46334 (_mm512_cmple_epu64_mask): Ditto.
46335 (_mm512_cmplt_epi32_mask): Ditto.
46336 (_mm512_cmplt_epu32_mask): Ditto.
46337 (_mm512_cmplt_epi64_mask): Ditto.
46338 (_mm512_cmplt_epu64_mask): Ditto.
46339 (_mm512_cmpneq_epi32_mask): Ditto.
46340 (_mm512_cmpneq_epu32_mask): Ditto.
46341 (_mm512_cmpneq_epi64_mask): Ditto.
46342 (_mm512_cmpneq_epu64_mask): Ditto.
46343 (_mm512_expand_pd): Ditto.
46344 (_mm512_expand_ps): Ditto.
46345 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
46346 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
46347 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
46348 * config/i386/i386.c (ix86_builtins): Add
46349 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
46350 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
46351 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
46352 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
46353 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
46354 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
46355 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
46356 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
46357 IX86_BUILTIN_PMOVUSQW512_MEM.
46358 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
46359 __builtin_ia32_pmovsqd512mem_mask,
46360 __builtin_ia32_pmovqd512mem_mask,
46361 __builtin_ia32_pmovusqw512mem_mask,
46362 __builtin_ia32_pmovsqw512mem_mask,
46363 __builtin_ia32_pmovqw512mem_mask,
46364 __builtin_ia32_pmovusdw512mem_mask,
46365 __builtin_ia32_pmovsdw512mem_mask,
46366 __builtin_ia32_pmovdw512mem_mask,
46367 __builtin_ia32_pmovqb512mem_mask,
46368 __builtin_ia32_pmovusqb512mem_mask,
46369 __builtin_ia32_pmovsqb512mem_mask,
46370 __builtin_ia32_pmovusdb512mem_mask,
46371 __builtin_ia32_pmovsdb512mem_mask,
46372 __builtin_ia32_pmovdb512mem_mask.
46373 (bdesc_args): Add __builtin_ia32_expanddf512,
46374 __builtin_ia32_expandsf512.
46375 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
46376 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
46377 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
46378 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
46379 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
46380 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
46381 (avx512f_<code>v8div16qi2_mask_store): This.
46382 (avx512f_expand<mode>): New.
46383
46384 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
46385
46386 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
46387 New.
46388 (_mm512_mask_prefetch_i64gather_pd): Ditto.
46389 (_mm512_prefetch_i32scatter_pd): Ditto.
46390 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
46391 (_mm512_prefetch_i64scatter_pd): Ditto.
46392 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
46393 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
46394 (_mm512_mask_prefetch_i64gather_ps): Ditto.
46395 (_mm512_prefetch_i32scatter_ps): Ditto.
46396 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
46397 (_mm512_prefetch_i64scatter_ps): Ditto.
46398 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
46399 * config/i386/i386-builtin-types.def: Define
46400 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
46401 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
46402 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
46403 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
46404 IX86_BUILTIN_SCATTERPFQPD.
46405 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
46406 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
46407 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
46408 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
46409 __builtin_ia32_scatterpfqps.
46410 (ix86_expand_builtin): Expand new built-ins.
46411 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
46412 fix memory access data type.
46413 (*avx512pf_gatherpf<mode>_mask): Ditto.
46414 (*avx512pf_gatherpf<mode>): Ditto.
46415 (avx512pf_scatterpf<mode>): Ditto.
46416 (*avx512pf_scatterpf<mode>_mask): Ditto.
46417 (*avx512pf_scatterpf<mode>): Ditto.
46418 (GATHER_SCATTER_SF_MEM_MODE): New.
46419 (avx512pf_gatherpf<mode>df): Ditto.
46420 (*avx512pf_gatherpf<mode>df_mask): Ditto.
46421 (*avx512pf_scatterpf<mode>df): Ditto.
46422
46423 2014-01-27 Jakub Jelinek <jakub@redhat.com>
46424
46425 PR bootstrap/59934
46426 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
46427 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
46428 reached.
46429
46430 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
46431
46432 * common/config/arm/arm-common.c
46433 (arm_rewrite_mcpu): Handle multiple names.
46434 * config/arm/arm.h
46435 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
46436
46437 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
46438
46439 * gimple-builder.h (create_gimple_tmp): Delete.
46440
46441 2014-01-27 Christian Bruel <christian.bruel@st.com>
46442
46443 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
46444 words comparisons.
46445
46446 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
46447
46448 * config/pa/pa.md (call): Generate indirect long calls to non-local
46449 functions when outputing 32-bit code.
46450 (call_value): Likewise except for special call to buggy powf function.
46451
46452 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
46453 portable runtime and PIC indirect calls.
46454 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
46455 and PIC call sequences. Use ldo instead of blr to set return register
46456 in PIC call sequence.
46457
46458 2014-01-25 Walter Lee <walt@tilera.com>
46459
46460 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
46461 avoid clobbering a live register.
46462
46463 2014-01-25 Walter Lee <walt@tilera.com>
46464
46465 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
46466 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
46467 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
46468 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
46469
46470 2014-01-25 Walter Lee <walt@tilera.com>
46471
46472 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
46473 arguments on even registers.
46474 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
46475 STACK_BOUNDARY.
46476 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
46477 (BIGGEST_ALIGNMENT): Ditto.
46478 (BIGGEST_FIELD_ALIGNMENT): Ditto.
46479
46480 2014-01-25 Walter Lee <walt@tilera.com>
46481
46482 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
46483 insns before bundling.
46484 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
46485
46486 2014-01-25 Walter Lee <walt@tilera.com>
46487
46488 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
46489 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
46490 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
46491
46492 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
46493
46494 * config/mips/constraints.md (kl): Delete.
46495 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
46496 define expands, using...
46497 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
46498 instructions for MIPS16.
46499 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
46500 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
46501
46502 2014-01-25 Walter Lee <walt@tilera.com>
46503
46504 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
46505 (clzdi2): Ditto.
46506 (ffsdi2): Ditto.
46507
46508 2014-01-25 Walter Lee <walt@tilera.com>
46509
46510 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
46511 (TARGET_EXPAND_TO_RTL_HOOK): Define.
46512
46513 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
46514
46515 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
46516 Handle XOR.
46517
46518 2014-01-25 Jakub Jelinek <jakub@redhat.com>
46519
46520 * print-rtl.c (in_call_function_usage): New var.
46521 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
46522 EXPR_LIST mode as mode and not as reg note name.
46523
46524 PR middle-end/59561
46525 * cfgloopmanip.c (copy_loop_info): If
46526 loop->warned_aggressive_loop_optimizations, make sure
46527 the flag is set in target loop too.
46528
46529 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
46530
46531 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
46532 flag_cilkplus.
46533 * builtins.def: Likewise.
46534 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
46535 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
46536 * ira.c (ira_setup_eliminable_regset): Likewise.
46537 * omp-low.c (gate_expand_omp): Likewise.
46538 (execute_lower_omp): Likewise.
46539 (diagnose_sb_0): Likewise.
46540 (gate_diagnose_omp_blocks): Likewise.
46541 (simd_clone_clauses_extract): Likewise.
46542 (gate): Likewise.
46543
46544 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
46545
46546 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
46547 correction for little endian...
46548 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
46549 here.
46550
46551 2014-01-24 Jeff Law <law@redhat.com>
46552
46553 PR tree-optimization/59919
46554 * tree-vrp.c (find_assert_locations_1): Do not register asserts
46555 for non-returning calls.
46556
46557 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
46558
46559 * common/config/aarch64/aarch64-common.c
46560 (aarch64_rewrite_mcpu): Handle multiple names.
46561 * config/aarch64/aarch64.h
46562 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
46563
46564 2014-01-24 Dodji Seketeli <dodji@redhat.com>
46565
46566 * input.c (add_file_to_cache_tab): Handle the case where fopen
46567 returns NULL.
46568
46569 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
46570
46571 PR target/59929
46572 * config/i386/i386.md (pushsf splitter): Get stack adjustment
46573 from push operand if code of push isn't PRE_DEC.
46574
46575 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
46576
46577 PR target/59909
46578 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
46579 -mquad-memory-atomic. Update -mquad-memory documentation to say
46580 it is only used for non-atomic loads/stores.
46581
46582 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
46583 -mquad-memory or -mquad-memory-atomic switches.
46584
46585 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
46586 -mquad-memory-atomic to ISA 2.07 support.
46587
46588 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
46589 to separate support of normal quad word memory operations (ldq, stq)
46590 from the atomic quad word memory operations.
46591
46592 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
46593 support to separate non-atomic quad word operations from atomic
46594 quad word operations. Disable non-atomic quad word operations in
46595 little endian mode so that we don't have to swap words after the
46596 load and before the store.
46597 (quad_load_store_p): Add comment about atomic quad word support.
46598 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
46599 options printed with -mdebug=reg.
46600
46601 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
46602 -mquad-memory-atomic as the test for whether we have quad word
46603 atomic instructions.
46604 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
46605 or -mp8-vector are used, allow byte/half-word atomic operations.
46606
46607 * config/rs6000/sync.md (load_lockedti): Insure that the address
46608 is a proper indexed or indirect address for the lqarx instruction.
46609 On little endian systems, swap the hi/lo registers after the lqarx
46610 instruction.
46611 (load_lockedpti): Use indexed_or_indirect_operand predicate to
46612 insure the address is valid for the lqarx instruction.
46613 (store_conditionalti): Insure that the address is a proper indexed
46614 or indirect address for the stqcrx. instruction. On little endian
46615 systems, swap the hi/lo registers before doing the stqcrx.
46616 instruction.
46617 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
46618 insure the address is valid for the stqcrx. instruction.
46619
46620 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
46621 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
46622 type of quad memory support is available.
46623
46624 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
46625
46626 PR regression/59915
46627 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
46628 there is a danger of looping.
46629
46630 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
46631
46632 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
46633 force flag_ira_loop_pressure if set via command line.
46634
46635 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
46636
46637 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
46638 (ashr_simd): New builtin handling DI mode.
46639 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
46640 (aarch64_sshr_simddi): New match pattern.
46641 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
46642 (vshrd_n_s64): Likewise.
46643 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
46644
46645 2014-01-23 Nick Clifton <nickc@redhat.com>
46646
46647 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
46648 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
46649 favour of mcu specific scripts.
46650 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
46651 430x multilibs.
46652
46653 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
46654 Alex Velenko <Alex.Velenko@arm.com>
46655
46656 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
46657 (vaddv_s16): Likewise.
46658 (vaddv_s32): Likewise.
46659 (vaddv_u8): Likewise.
46660 (vaddv_u16): Likewise.
46661 (vaddv_u32): Likewise.
46662 (vaddvq_s8): Likewise.
46663 (vaddvq_s16): Likewise.
46664 (vaddvq_s32): Likewise.
46665 (vaddvq_s64): Likewise.
46666 (vaddvq_u8): Likewise.
46667 (vaddvq_u16): Likewise.
46668 (vaddvq_u32): Likewise.
46669 (vaddvq_u64): Likewise.
46670 (vaddv_f32): Likewise.
46671 (vaddvq_f32): Likewise.
46672 (vaddvq_f64): Likewise.
46673 (vmaxv_f32): Likewise.
46674 (vmaxv_s8): Likewise.
46675 (vmaxv_s16): Likewise.
46676 (vmaxv_s32): Likewise.
46677 (vmaxv_u8): Likewise.
46678 (vmaxv_u16): Likewise.
46679 (vmaxv_u32): Likewise.
46680 (vmaxvq_f32): Likewise.
46681 (vmaxvq_f64): Likewise.
46682 (vmaxvq_s8): Likewise.
46683 (vmaxvq_s16): Likewise.
46684 (vmaxvq_s32): Likewise.
46685 (vmaxvq_u8): Likewise.
46686 (vmaxvq_u16): Likewise.
46687 (vmaxvq_u32): Likewise.
46688 (vmaxnmv_f32): Likewise.
46689 (vmaxnmvq_f32): Likewise.
46690 (vmaxnmvq_f64): Likewise.
46691 (vminv_f32): Likewise.
46692 (vminv_s8): Likewise.
46693 (vminv_s16): Likewise.
46694 (vminv_s32): Likewise.
46695 (vminv_u8): Likewise.
46696 (vminv_u16): Likewise.
46697 (vminv_u32): Likewise.
46698 (vminvq_f32): Likewise.
46699 (vminvq_f64): Likewise.
46700 (vminvq_s8): Likewise.
46701 (vminvq_s16): Likewise.
46702 (vminvq_s32): Likewise.
46703 (vminvq_u8): Likewise.
46704 (vminvq_u16): Likewise.
46705 (vminvq_u32): Likewise.
46706 (vminnmv_f32): Likewise.
46707 (vminnmvq_f32): Likewise.
46708 (vminnmvq_f64): Likewise.
46709
46710 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
46711
46712 * config/aarch64/aarch64-simd.md
46713 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
46714 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
46715 (*aarch64_mul3_elt<mode>): Likewise.
46716 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
46717 (*aarch64_mul3_elt_to_64v2df): Likewise.
46718 (*aarch64_mla_elt<mode>): Likewise.
46719 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
46720 (*aarch64_mls_elt<mode>): Likewise.
46721 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
46722 (*aarch64_fma4_elt<mode>): Likewise.
46723 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
46724 (*aarch64_fma4_elt_to_64v2df): Likewise.
46725 (*aarch64_fnma4_elt<mode>): Likewise.
46726 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
46727 (*aarch64_fnma4_elt_to_64v2df): Likewise.
46728 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
46729 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
46730 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
46731 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
46732 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
46733 (aarch64_sqdmull_lane<mode>_internal): Likewise.
46734 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
46735
46736 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
46737
46738 * config/aarch64/aarch64-simd.md
46739 (aarch64_be_checked_get_lane<mode>): New define_expand.
46740 * config/aarch64/aarch64-simd-builtins.def
46741 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
46742 New builtin definition.
46743 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
46744 Use new safe be builtin.
46745
46746 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
46747
46748 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
46749 New define_insn.
46750 (aarch64_be_st1<mode>): Likewise.
46751 (aarch_ld1<VALL:mode>): Define_expand modified.
46752 (aarch_st1<VALL:mode>): Likewise.
46753 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
46754 (UNSPEC_ST1): Likewise.
46755
46756 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
46757
46758 * config/microblaze/microblaze.md: Add trap insn and attribute
46759
46760 2014-01-23 Dodji Seketeli <dodji@redhat.com>
46761
46762 PR preprocessor/58580
46763 * input.h (location_get_source_line): Take an additional line_size
46764 parameter.
46765 (void diagnostics_file_cache_fini): Declare new function.
46766 * input.c (struct fcache): New type.
46767 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
46768 New static constants.
46769 (diagnostic_file_cache_init, total_lines_num)
46770 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
46771 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
46772 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
46773 (get_next_line, read_next_line, goto_next_line, read_line_num):
46774 New static function definitions.
46775 (diagnostic_file_cache_fini): New function.
46776 (location_get_source_line): Take an additional output line_len
46777 parameter. Re-write using lookup_or_add_file_to_cache_tab and
46778 read_line_num.
46779 * diagnostic.c (diagnostic_finish): Call
46780 diagnostic_file_cache_fini.
46781 (adjust_line): Take an additional input parameter for the length
46782 of the line, rather than calculating it with strlen.
46783 (diagnostic_show_locus): Adjust the use of
46784 location_get_source_line and adjust_line with respect to their new
46785 signature. While displaying a line now, do not stop at the first
46786 null byte. Rather, display the zero byte as a space and keep
46787 going until we reach the size of the line.
46788 * Makefile.in: Add vec.o to OBJS-libcommon
46789
46790 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
46791 Ilya Tocar <ilya.tocar@intel.com>
46792
46793 * config/i386/avx512fintrin.h (_mm512_kmov): New.
46794 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
46795 (__builtin_ia32_kmov16): Ditto.
46796 * config/i386/i386.md (UNSPEC_KMOV): New.
46797 (kmovw): Ditto.
46798
46799 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
46800
46801 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
46802 (_mm512_storeu_si512): Ditto.
46803
46804 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
46805
46806 PR target/52125
46807 * rtl.h (get_referenced_operands): Declare.
46808 * recog.c (get_referenced_operands): New function.
46809 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
46810 operands have been referenced when recording LO_SUM references.
46811
46812 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
46813
46814 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
46815
46816 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
46817
46818 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
46819 Enable for generic and recent AMD targets.
46820
46821 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
46822
46823 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
46824 ARG_SIZE note when adjustment was eliminated.
46825
46826 2014-01-22 Jeff Law <law@redhat.com>
46827
46828 PR tree-optimization/59597
46829 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
46830 in file. Accept new argument REGISTERING and use it to modify
46831 dump output appropriately.
46832 (register_jump_thread): Corresponding changes.
46833 (mark_threaded_blocks): Reinstate code to cancel unprofitable
46834 thread paths involving joiner blocks. Add code to dump cancelled
46835 jump threading paths.
46836
46837 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
46838
46839 PR rtl-optimization/59477
46840 * lra-constraints.c (inherit_in_ebb): Process call for living hard
46841 regs. Update reloads_num and potential_reload_hard_regs for all insns.
46842
46843 2014-01-22 Tom Tromey <tromey@redhat.com>
46844
46845 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
46846 PARAMS.
46847 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
46848
46849 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
46850
46851 PR rtl-optimization/59896
46852 * lra-constraints.c (process_alt_operands): Check unused note for
46853 matched operands of insn with no output reloads.
46854
46855 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
46856
46857 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
46858 (mips_move_from_gpr_cost): Likewise.
46859
46860 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
46861
46862 PR rtl-optimization/59858
46863 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
46864 ira_class_hard_regs_num.
46865 (process_alt_operands): Increase reject for dying matched operand.
46866
46867 2014-01-21 Jakub Jelinek <jakub@redhat.com>
46868
46869 PR target/59003
46870 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
46871 smaller than size, perform several stores or loads and stores
46872 at dst + count - size to store or copy all of size bytes, rather
46873 than just last modesize bytes.
46874
46875 2014-01-20 DJ Delorie <dj@redhat.com>
46876
46877 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
46878 that CLOBBERs are REGs before propogating their values.
46879
46880 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
46881
46882 PR middle-end/59789
46883 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
46884 (cgraph_inline_failed_type): New function.
46885 * cgraph.h (DEFCIFCODE): Add type.
46886 (cgraph_inline_failed_type_t): New enum.
46887 (cgraph_inline_failed_type): New prototype.
46888 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
46889 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
46890 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
46891 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
46892 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
46893 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
46894 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
46895 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
46896 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
46897 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
46898 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
46899 OPTIMIZATION_MISMATCH.
46900 * tree-inline.c (expand_call_inline): Emit errors during
46901 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
46902
46903 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
46904
46905 PR target/59685
46906 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
46907 mode attribute in insn output.
46908
46909 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
46910
46911 * output.h (output_constant): Delete.
46912 * varasm.c (output_constant): Make private.
46913
46914 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
46915
46916 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
46917
46918 2014-01-20 Jakub Jelinek <jakub@redhat.com>
46919
46920 PR middle-end/59860
46921 * tree.h (fold_builtin_strcat): New prototype.
46922 * builtins.c (fold_builtin_strcat): No longer static. Add len
46923 argument, if non-NULL, don't call c_strlen. Optimize
46924 directly into __builtin_memcpy instead of __builtin_strcpy.
46925 (fold_builtin_2): Adjust fold_builtin_strcat caller.
46926 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
46927
46928 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
46929
46930 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
46931 for SImode_address_operand operands, having only a REG argument.
46932
46933 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
46934
46935 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
46936 loader name using mbig-endian.
46937 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
46938
46939 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
46940
46941 * doc/invoke.texi (-march): Clarify documentation for AArch64.
46942 (-mtune): Likewise.
46943 (-mcpu): Likewise.
46944
46945 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
46946
46947 * config/aarch64/aarch64-protos.h
46948 (aarch64_cannot_change_mode_class_ptr): Declare.
46949 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
46950 aarch64_cannot_change_mode_class_ptr): New.
46951 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
46952 backend hook aarch64_cannot_change_mode_class.
46953
46954 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
46955
46956 * common/config/aarch64/aarch64-common.c
46957 (aarch64_handle_option): Don't handle any option order logic here.
46958 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
46959 selected_cpu, warn on architecture version mismatch.
46960 (aarch64_override_options): Fix parsing order for option strings.
46961
46962 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
46963 Iain Sandoe <iain@codesourcery.com>
46964
46965 PR bootstrap/59496
46966 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
46967 warning. Amend comment to reflect current functionality.
46968
46969 2014-01-20 Richard Biener <rguenther@suse.de>
46970
46971 PR middle-end/59860
46972 * builtins.c (fold_builtin_strcat): Remove case better handled
46973 by tree-ssa-strlen.c.
46974
46975 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
46976
46977 * config/aarch64/aarch64.opt
46978 (mcpu, march, mtune): Make case-insensitive.
46979
46980 2014-01-20 Jakub Jelinek <jakub@redhat.com>
46981
46982 PR target/59880
46983 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
46984 if operands[1] is a REG or ZERO_EXTEND of a REG.
46985
46986 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
46987
46988 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
46989
46990 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
46991
46992 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
46993 long non-pic millicode calls.
46994
46995 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
46996
46997 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
46998
46999 2014-01-19 Kito Cheng <kito@0xlab.org>
47000
47001 * builtins.c (expand_movstr): Check movstr expand done or fail.
47002
47003 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
47004 H.J. Lu <hongjiu.lu@intel.com>
47005
47006 PR target/59379
47007 * config/i386/i386.md (*lea<mode>): Zero-extend return register
47008 to DImode for zero-extended addresses.
47009
47010 2014-01-19 Jakub Jelinek <jakub@redhat.com>
47011
47012 PR rtl-optimization/57763
47013 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
47014 on the new indirect jump_insn and increment LABEL_NUSES (label).
47015
47016 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
47017
47018 PR bootstrap/59580
47019 PR bootstrap/59583
47020 * config.gcc (x86_archs): New variable.
47021 (x86_64_archs): Likewise.
47022 (x86_cpus): Likewise.
47023 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
47024 --with-arch/--with-cpu= options.
47025 Support --with-arch=/--with-cpu={nehalem,westmere,
47026 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
47027
47028 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
47029
47030 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
47031 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
47032
47033 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
47034
47035 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
47036
47037 2014-01-18 Jakub Jelinek <jakub@redhat.com>
47038
47039 PR target/58944
47040 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
47041 clear cpp_get_options (parse_in)->warn_unused_macros for
47042 ix86_target_macros_internal with cpp_define.
47043
47044 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
47045
47046 * jump.c (delete_related_insns): Keep (use (insn))s.
47047 * reorg.c (redundant_insn): Check for barriers too.
47048
47049 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
47050
47051 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
47052
47053 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
47054
47055 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
47056 call to $$dyncall when TARGET_LONG_CALLS is true.
47057
47058 2014-01-17 Jeff Law <law@redhat.com>
47059
47060 * ree.c (combine_set_extension): Temporarily disable test for
47061 changing number of hard registers.
47062
47063 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
47064
47065 PR middle-end/58125
47066 * ipa-inline-analysis.c (inline_free_summary):
47067 Do not free summary of aliases.
47068
47069 2014-01-17 Jakub Jelinek <jakub@redhat.com>
47070
47071 PR middle-end/59706
47072 * gimplify.c (gimplify_expr): Use create_tmp_var
47073 instead of create_tmp_var_raw. If cond doesn't have
47074 integral type, don't add the IFN_ANNOTATE builtin at all.
47075
47076 2014-01-17 Martin Jambor <mjambor@suse.cz>
47077
47078 PR ipa/59736
47079 * ipa-cp.c (prev_edge_clone): New variable.
47080 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
47081 Also resize prev_edge_clone vector.
47082 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
47083 (ipcp_edge_removal_hook): New function.
47084 (ipcp_driver): Register ipcp_edge_removal_hook.
47085
47086 2014-01-17 Andrew Pinski <apinski@cavium.com>
47087 Steve Ellcey <sellcey@mips.com>
47088
47089 PR target/59462
47090 * config/mips/mips.c (mips_print_operand): Check operand mode instead
47091 of operator mode.
47092
47093 2014-01-17 Jeff Law <law@redhat.com>
47094
47095 PR middle-end/57904
47096 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
47097 so that pass_ccp runs first.
47098
47099 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
47100
47101 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
47102 (ix86_adjust_cost): Use !TARGET_XXX.
47103 (do_reorder_for_imul): Likewise.
47104 (swap_top_of_ready_list): Likewise.
47105 (ix86_sched_reorder): Likewise.
47106
47107 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
47108
47109 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
47110 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
47111 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
47112 (intel_memset): New. Duplicate slm_memset.
47113 (intel_cost): New. Duplicate slm_cost.
47114 (m_INTEL): New macro.
47115 (processor_target_table): Add "intel".
47116 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
47117 with PROCESSOR_INTEL for "intel".
47118 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
47119 PROCESSOR_SILVERMONT.
47120 (ix86_issue_rate): Likewise.
47121 (ix86_adjust_cost): Likewise.
47122 (ia32_multipass_dfa_lookahead): Likewise.
47123 (swap_top_of_ready_list): Likewise.
47124 (ix86_sched_reorder): Likewise.
47125 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
47126 instead of TARGET_OPT_AGU.
47127 * config/i386/i386.h (TARGET_INTEL): New.
47128 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
47129 (processor_type): Add PROCESSOR_INTEL.
47130 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
47131 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
47132
47133 2014-01-17 Marek Polacek <polacek@redhat.com>
47134
47135 PR c/58346
47136 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
47137 size is zero.
47138
47139 2014-01-17 Richard Biener <rguenther@suse.de>
47140
47141 PR tree-optimization/46590
47142 * opts.c (default_options_table): Add entries for
47143 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
47144 all enabled at -O1 but not for -Og.
47145 * common.opt (fbranch-count-reg): Remove Init(1).
47146 (fmove-loop-invariants): Likewise.
47147 (ftree-pta): Likewise.
47148
47149 2014-01-17 Jakub Jelinek <jakub@redhat.com>
47150
47151 * config/i386/i386.c (ix86_data_alignment): For compatibility with
47152 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
47153 decls to at least the GCC 4.8 used alignments.
47154
47155 PR fortran/59440
47156 * tree-nested.c (convert_nonlocal_reference_stmt,
47157 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
47158 of GIMPLE_BIND stmts, adjust associated decls.
47159
47160 2014-01-17 Richard Biener <rguenther@suse.de>
47161
47162 PR tree-optimization/46590
47163 * vec.h (vec<>::bseach): New member function implementing
47164 binary search according to C89 bsearch.
47165 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
47166 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
47167 bitmap pointer again. Make accesses_in_loop a flat array.
47168 (mem_ref_obstack): New global.
47169 (outermost_indep_loop): Adjust for mem_ref->stored changes.
47170 (mark_ref_stored): Likewise.
47171 (ref_indep_loop_p_2): Likewise.
47172 (set_ref_stored_in_loop): New helper function.
47173 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
47174 (memref_free): Adjust.
47175 (record_mem_ref_loc): Simplify.
47176 (gather_mem_refs_stmt): Adjust.
47177 (sort_locs_in_loop_postorder_cmp): New function.
47178 (analyze_memory_references): Sort accesses_in_loop after
47179 loop postorder number.
47180 (find_ref_loc_in_loop_cmp): New function.
47181 (for_all_locs_in_loop): Find relevant cluster of locs in
47182 accesses_in_loop and iterate without recursion.
47183 (execute_sm): Avoid uninit warning.
47184 (struct ref_always_accessed): Simplify.
47185 (ref_always_accessed::operator ()): Likewise.
47186 (ref_always_accessed_p): Likewise.
47187 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
47188 loop postorder numbers here.
47189 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
47190 numbers.
47191
47192 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
47193
47194 PR c++/57945
47195 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
47196 on decls for which assemble_alias has been called.
47197
47198 2014-01-17 Nick Clifton <nickc@redhat.com>
47199
47200 * config/msp430/msp430.opt: (mcpu): New option.
47201 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
47202 (msp430_option_override): Parse target_cpu. If the MCU name
47203 matches a generic string, clear target_mcu.
47204 (msp430_attr): Allow numeric interrupt values up to 63.
47205 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
47206 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
47207 option.
47208 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
47209 Add mcpu matches.
47210 * config/msp430/msp430.md (popm): Use %J rather than %I.
47211 (addsi3): Use msp430_nonimmediate_operand for operand 2.
47212 (addhi_cy_i): Use immediate_operand for operand 2.
47213 * doc/invoke.texi: Document -mcpu option.
47214
47215 2014-01-17 Richard Biener <rguenther@suse.de>
47216
47217 PR rtl-optimization/38518
47218 * df.h (df_analyze_loop): Declare.
47219 * df-core.c: Include cfgloop.h.
47220 (df_analyze_1): Split out main part of df_analyze.
47221 (df_analyze): Adjust.
47222 (loop_inverted_post_order_compute): New function.
47223 (loop_post_order_compute): Likewise.
47224 (df_analyze_loop): New function avoiding whole-function
47225 postorder computes.
47226 * loop-invariant.c (find_defs): Use df_analyze_loop.
47227 (find_invariants): Adjust.
47228 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
47229
47230 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
47231
47232 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
47233 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
47234
47235 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
47236
47237 * ipa-ref.c (ipa_remove_stmt_references): Fix references
47238 traversal when removing references.
47239
47240 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
47241
47242 PR ipa/59775
47243 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
47244
47245 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
47246
47247 PR middle-end/56791
47248 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
47249 pushing a reload for an autoinc when we had previously reloaded an
47250 inner part of the address.
47251
47252 2014-01-16 Jakub Jelinek <jakub@redhat.com>
47253
47254 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
47255 field.
47256 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
47257 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
47258 when not giving up or versioning for alias only because of
47259 loop->safelen.
47260 (vect_analyze_data_ref_dependences): Set to true.
47261 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
47262 is a GIMPLE_PHI.
47263 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
47264 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
47265 to the condition.
47266
47267 PR middle-end/58344
47268 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
47269
47270 PR target/59839
47271 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
47272 operand 0 predicate for gathers, use a new pseudo as subtarget.
47273
47274 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
47275
47276 PR middle-end/59609
47277 * lra-constraints.c (process_alt_operands): Add printing debug info.
47278 Check absence of input/output reloads for matched operands too.
47279
47280 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
47281
47282 PR rtl-optimization/59835
47283 * ira.c (ira_init_register_move_cost): Increase cost for
47284 impossible modes.
47285
47286 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
47287
47288 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
47289
47290 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
47291
47292 PR target/59780
47293 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
47294 non-register objects. Use gen_(high/low)part more consistently.
47295 Fix assertions.
47296
47297 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
47298
47299 PR target/59844
47300 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
47301 endian support, remove tests for WORDS_BIG_ENDIAN.
47302 (p8_mfvsrd_3_<mode>): Likewise.
47303 (reload_gpr_from_vsx<mode>): Likewise.
47304 (reload_gpr_from_vsxsf): Likewise.
47305 (p8_mfvsrd_4_disf): Likewise.
47306
47307 2014-01-16 Richard Biener <rguenther@suse.de>
47308
47309 PR rtl-optimization/46590
47310 * lcm.c (compute_antinout_edge): Use postorder iteration.
47311 (compute_laterin): Use inverted postorder iteration.
47312
47313 2014-01-16 Nick Clifton <nickc@redhat.com>
47314
47315 PR middle-end/28865
47316 * varasm.c (output_constant): Return the number of bytes actually
47317 emitted.
47318 (output_constructor_array_range): Update the field size with the
47319 number of bytes emitted by output_constant.
47320 (output_constructor_regular_field): Likewise. Also do not
47321 complain if the total number of bytes emitted is now greater
47322 than the expected fieldpos.
47323 * output.h (output_constant): Update prototype and descriptive comment.
47324
47325 2014-01-16 Marek Polacek <polacek@redhat.com>
47326
47327 PR middle-end/59827
47328 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
47329 it is error_mark_node.
47330
47331 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
47332
47333 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
47334 VALID_AVX256_REG_OR_OI_MODE.
47335
47336 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
47337
47338 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
47339 current procedure should be profiled.
47340
47341 2014-01-15 Andrew Pinski <apinski@cavium.com>
47342
47343 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
47344 of moving from/to the STACK_REG register class.
47345
47346 2014-01-15 Richard Henderson <rth@redhat.com>
47347
47348 PR debug/54694
47349 * reginfo.c (global_regs_decl): Globalize.
47350 * rtl.h (global_regs_decl): Declare.
47351 * ira.c (do_reload): Diagnose frame_pointer_needed and it
47352 reserved via global_regs.
47353
47354 2014-01-15 Teresa Johnson <tejohnson@google.com>
47355
47356 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
47357
47358 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
47359
47360 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
47361 and vmulosh rather than call gen_vec_widen_smult_*.
47362 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
47363 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
47364 (vec_widen_smult_even_v16qi): Likewise.
47365 (vec_widen_umult_even_v8hi): Likewise.
47366 (vec_widen_smult_even_v8hi): Likewise.
47367 (vec_widen_umult_odd_v16qi): Likewise.
47368 (vec_widen_smult_odd_v16qi): Likewise.
47369 (vec_widen_umult_odd_v8hi): Likewise.
47370 (vec_widen_smult_odd_v8hi): Likewise.
47371 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
47372 vmuloub rather than call gen_vec_widen_umult_*.
47373 (vec_widen_umult_lo_v16qi): Likewise.
47374 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
47375 vmulosb rather than call gen_vec_widen_smult_*.
47376 (vec_widen_smult_lo_v16qi): Likewise.
47377 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
47378 rather than call gen_vec_widen_umult_*.
47379 (vec_widen_umult_lo_v8hi): Likewise.
47380 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
47381 rather than call gen_vec_widen_smult_*.
47382 (vec_widen_smult_lo_v8hi): Likewise.
47383
47384 2014-01-15 Jeff Law <law@redhat.com>
47385
47386 PR tree-optimization/59747
47387 * ree.c (find_and_remove_re): Properly handle case where a second
47388 eliminated extension requires widening a copy created for elimination
47389 of a prior extension.
47390 (combine_set_extension): Ensure that the number of hard regs needed
47391 for a destination register does not change when we widen it.
47392
47393 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
47394
47395 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
47396 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
47397 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
47398 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
47399 (avr-*-rtems*): Likewise.
47400 (bfin*-rtems*): Likewise.
47401 (moxie-*-rtems*): Likewise.
47402 (h8300-*-rtems*): Likewise.
47403 (i[34567]86-*-rtems*): Likewise.
47404 (lm32-*-rtems*): Likewise.
47405 (m32r-*-rtems*): Likewise.
47406 (m68k-*-rtems*): Likewise.
47407 (microblaze*-*-rtems*): Likewise.
47408 (mips*-*-rtems*): Likewise.
47409 (powerpc-*-rtems*): Likewise.
47410 (sh-*-rtems*): Likewise.
47411 (sparc-*-rtems*): Likewise.
47412 (sparc64-*-rtems*): Likewise.
47413 (v850-*-rtems*): Likewise.
47414 (m32c-*-rtems*): Likewise.
47415
47416 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
47417
47418 PR rtl-optimization/59511
47419 * ira.c (ira_init_register_move_cost): Use memory costs for some
47420 cases of register move cost calculations.
47421 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
47422 instead of BB frequency.
47423 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
47424 * lra-assigns.c (find_hard_regno_for): Ditto.
47425
47426 2014-01-15 Richard Biener <rguenther@suse.de>
47427
47428 PR tree-optimization/59822
47429 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
47430 (vectorizable_load): Use it to hoist defs of uses of invariant
47431 loads out of the loop.
47432
47433 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
47434 Kugan Vivekanandarajah <kuganv@linaro.org>
47435
47436 PR target/59695
47437 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
47438 truncation.
47439
47440 2014-01-15 Richard Biener <rguenther@suse.de>
47441
47442 PR rtl-optimization/59802
47443 * lcm.c (compute_available): Use inverted postorder to seed
47444 the initial worklist.
47445
47446 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
47447
47448 PR target/59803
47449 * config/s390/s390.c (s390_preferred_reload_class): Don't return
47450 ADDR_REGS for invalid symrefs in non-PIC code.
47451
47452 2014-01-15 Jakub Jelinek <jakub@redhat.com>
47453
47454 PR other/58712
47455 * builtins.c (determine_block_size): Initialize *probable_max_size
47456 even if len_rtx is CONST_INT.
47457
47458 2014-01-14 Andrew Pinski <apinski@cavium.com>
47459
47460 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
47461 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
47462 (cortexa53_tunings): Likewise.
47463 (aarch64_sched_issue_rate): New function.
47464 (TARGET_SCHED_ISSUE_RATE): Define.
47465
47466 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
47467
47468 * ira-costs.c (find_costs_and_classes): Add missed
47469 ira_init_register_move_cost_if_necessary.
47470
47471 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
47472
47473 PR target/59787
47474 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
47475
47476 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
47477
47478 PR target/59794
47479 * config/i386/i386.c (type_natural_mode): Add a bool parameter
47480 to indicate if type is used for function return value. Warn ABI
47481 change if the vector mode isn't available for function return value.
47482 (ix86_function_arg_advance): Pass false to type_natural_mode.
47483 (ix86_function_arg): Likewise.
47484 (ix86_gimplify_va_arg): Likewise.
47485 (function_arg_32): Don't warn ABI change.
47486 (ix86_function_value): Pass true to type_natural_mode.
47487 (ix86_return_in_memory): Likewise.
47488 (ix86_struct_value_rtx): Removed.
47489 (TARGET_STRUCT_VALUE_RTX): Likewise.
47490
47491 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
47492
47493 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
47494 converting a conditional jump into a conditional return.
47495
47496 2014-01-14 Richard Biener <rguenther@suse.de>
47497
47498 PR tree-optimization/58921
47499 PR tree-optimization/59006
47500 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
47501 hoisting invariant stmts.
47502 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
47503 invariant loads on the preheader edge if possible.
47504
47505 2014-01-14 Joey Ye <joey.ye@arm.com>
47506
47507 * doc/plugin.texi (Building GCC plugins): Update to C++.
47508
47509 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
47510
47511 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
47512 (_mm_rcp28_round_ss): Ditto.
47513 (_mm_rsqrt28_round_sd): Ditto.
47514 (_mm_rsqrt28_round_ss): Ditto.
47515 (_mm_rcp28_sd): Ditto.
47516 (_mm_rcp28_ss): Ditto.
47517 (_mm_rsqrt28_sd): Ditto.
47518 (_mm_rsqrt28_ss): Ditto.
47519 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
47520 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
47521 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
47522 (IX86_BUILTIN_RCP28SD): Ditto.
47523 (IX86_BUILTIN_RCP28SS): Ditto.
47524 (IX86_BUILTIN_RSQRT28SD): Ditto.
47525 (IX86_BUILTIN_RSQRT28SS): Ditto.
47526 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
47527 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
47528 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
47529 (ix86_expand_special_args_builtin): Expand new FTYPE.
47530 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
47531 (srcp14<mode>): Make insn unary.
47532 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
47533 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
47534 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
47535 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
47536 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
47537 Fix rounding: make it SAE only.
47538 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
47539 Ditto.
47540 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
47541 Ditto.
47542 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
47543 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
47544 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
47545 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
47546 (round_saeonly_mask_scalar_operand4): Ditto.
47547 (round_saeonly_mask_scalar_op3): Ditto.
47548 (round_saeonly_mask_scalar_op4): Ditto.
47549
47550 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
47551
47552 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
47553 Implement -maltivec=be for vec_insert and vec_extract.
47554
47555 2014-01-10 DJ Delorie <dj@redhat.com>
47556
47557 * config/msp430/msp430.md (call_internal): Don't allow memory
47558 references with SP as the base register.
47559 (call_value_internal): Likewise.
47560 * config/msp430/constraints.md (Yc): New. For memory references
47561 that don't use SP as a base register.
47562
47563 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
47564 "an integer without a # prefix"
47565 * config/msp430/msp430.md (epilogue_helper): Use it.
47566
47567 2014-01-13 Jakub Jelinek <jakub@redhat.com>
47568
47569 PR target/59617
47570 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
47571 AVX512F gather builtins.
47572 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
47573 on gather decls with INTEGER_TYPE masktype.
47574 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
47575 directly into the builtin rather than hoisting it before loop.
47576
47577 PR tree-optimization/59387
47578 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
47579 (scev_const_prop): If folded_casts and type has undefined overflow,
47580 use force_gimple_operand instead of force_gimple_operand_gsi and
47581 for each added stmt if it is assign with
47582 arith_code_with_undefined_signed_overflow, call
47583 rewrite_to_defined_overflow.
47584 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
47585 gimple-fold.h instead.
47586 (arith_code_with_undefined_signed_overflow,
47587 rewrite_to_defined_overflow): Moved to ...
47588 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
47589 rewrite_to_defined_overflow): ... here. No longer static.
47590 Include gimplify-me.h.
47591 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
47592 rewrite_to_defined_overflow): New prototypes.
47593
47594 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
47595
47596 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
47597
47598 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
47599
47600 * builtins.c (get_object_alignment_2): Minor tweak.
47601 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
47602
47603 2014-01-13 Christian Bruel <christian.bruel@st.com>
47604
47605 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
47606 optimized non constant lengths.
47607
47608 2014-01-13 Jakub Jelinek <jakub@redhat.com>
47609
47610 PR libgomp/59194
47611 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
47612 load as __atomic_load_N if possible.
47613
47614 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
47615
47616 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
47617 target parameter.
47618 (rs6000_expand_builtin): Adjust call.
47619
47620 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
47621
47622 PR target/58115
47623 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
47624 * config/rs6000/rs6000.c: Include target-globals.h.
47625 (rs6000_set_current_function): Instead of doing target_reinit
47626 unconditionally, use save_target_globals_default_opts and
47627 restore_target_globals.
47628
47629 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
47630 FPSCR.
47631 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
47632 (rs6000_expand_builtin): Handle mffs and mtfsf.
47633 (rs6000_init_builtins): Define mffs and mtfsf.
47634 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
47635 (rs6000_mffs): New pattern.
47636 (rs6000_mtfsf): New pattern.
47637
47638 2014-01-11 Bin Cheng <bin.cheng@arm.com>
47639
47640 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
47641 Start narrowing with START. Apply candidate-use pair
47642 and check overall cost in narrowing.
47643 (iv_ca_prune): Pass new argument.
47644
47645 2014-01-10 Jeff Law <law@redhat.com>
47646
47647 PR middle-end/59743
47648 * ree.c (combine_reaching_defs): Ensure the defining statement
47649 occurs before the extension when optimizing extensions with
47650 different source and destination hard registers.
47651
47652 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
47653
47654 PR ipa/58585
47655 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
47656 vtables into the type inheritance graph.
47657
47658 2014-01-10 Jakub Jelinek <jakub@redhat.com>
47659
47660 PR rtl-optimization/59754
47661 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
47662 modes in the REGNO != REGNO case.
47663
47664 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
47665
47666 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
47667
47668 2014-01-10 Jakub Jelinek <jakub@redhat.com>
47669
47670 PR tree-optimization/59745
47671 * tree-predcom.c (tree_predictive_commoning_loop): Call
47672 free_affine_expand_cache if giving up because components is NULL.
47673
47674 * target-globals.c (save_target_globals): Allocate < 4KB structs using
47675 GC in payload of target_globals struct instead of allocating them on
47676 the heap and the larger structs separately using GC.
47677 * target-globals.h (struct target_globals): Make regs, hard_regs,
47678 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
47679 of GTY((skip)) and change type to void *.
47680 (reset_target_globals): Cast loads from those fields to corresponding
47681 types.
47682
47683 2014-01-10 Steve Ellcey <sellcey@mips.com>
47684
47685 PR plugins/59335
47686 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
47687 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
47688 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
47689
47690 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
47691
47692 PR target/59744
47693 * aarch64-modes.def (CC_Zmode): New flags mode.
47694 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
47695 represents an equality.
47696 (aarch64_get_condition_code): Handle CC_Zmode.
47697 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
47698
47699 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
47700
47701 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
47702 extraction in good case.
47703
47704 2014-01-10 Richard Biener <rguenther@suse.de>
47705
47706 PR tree-optimization/59374
47707 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
47708 checking after SLP discovery. Mark stmts not participating
47709 in any SLP instance properly.
47710
47711 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
47712
47713 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
47714 when handling a SET rtx.
47715
47716 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
47717
47718 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
47719 (cortex-a57): Likewise.
47720 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
47721
47722 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
47723
47724 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
47725 non-iwmmxt builtins.
47726
47727 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
47728
47729 PR ipa/58252
47730 PR ipa/59226
47731 * ipa-devirt.c record_target_from_binfo): Take as argument
47732 stack of binfos and lookup matching one for virtual inheritance.
47733 (possible_polymorphic_call_targets_1): Update.
47734
47735 2014-01-10 Huacai Chen <chenhc@lemote.com>
47736
47737 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
47738 kernel strings for Loongson-2E/2F/3A.
47739
47740 2014-01-10 Jakub Jelinek <jakub@redhat.com>
47741
47742 PR middle-end/59670
47743 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
47744 is_gimple_call before calling gimple_call_internal_p.
47745
47746 2014-01-09 Steve Ellcey <sellcey@mips.com>
47747
47748 * Makefile.in (TREE_FLOW_H): Remove.
47749 (TREE_SSA_H): Add file names from tree-flow.h.
47750 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
47751 * tree.h: Remove tree-flow.h reference.
47752 * hash-table.h: Remove tree-flow.h reference.
47753 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
47754 reference with tree-ssa-loop.h.
47755
47756 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
47757
47758 * doc/invoke.texi: Add -maltivec={be,le} options, and document
47759 default element-order behavior for -maltivec.
47760 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
47761 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
47762 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
47763 when targeting big endian, at least for now.
47764 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
47765
47766 2014-01-09 Jakub Jelinek <jakub@redhat.com>
47767
47768 PR middle-end/47735
47769 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
47770 var satisfies use_register_for_decl, just take into account type
47771 alignment, rather than decl alignment.
47772
47773 PR tree-optimization/59622
47774 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
47775 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
47776 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
47777 Don't devirtualize for inplace at all. For targets.length () == 1,
47778 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
47779
47780 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
47781
47782 * config/i386/i386.md (cpu): Remove the unused btver1.
47783
47784 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
47785
47786 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
47787
47788 2014-01-09 Jakub Jelinek <jakub@redhat.com>
47789
47790 PR target/58115
47791 * tree-core.h (struct target_globals): New forward declaration.
47792 (struct tree_target_option): Add globals field.
47793 * tree.h (TREE_TARGET_GLOBALS): Define.
47794 (prepare_target_option_nodes_for_pch): New prototype.
47795 * target-globals.h (struct target_globals): Define even if
47796 !SWITCHABLE_TARGET.
47797 * tree.c (prepare_target_option_node_for_pch,
47798 prepare_target_option_nodes_for_pch): New functions.
47799 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
47800 * config/i386/i386.c: Include target-globals.h.
47801 (ix86_set_current_function): Instead of doing target_reinit
47802 unconditionally, use save_target_globals_default_opts and
47803 restore_target_globals.
47804
47805 2014-01-09 Richard Biener <rguenther@suse.de>
47806
47807 PR tree-optimization/59715
47808 * tree-cfg.h (split_critical_edges): Declare.
47809 * tree-cfg.c (split_critical_edges): Export.
47810 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
47811
47812 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
47813
47814 * cfgexpand.c (expand_stack_vars): Optionally disable
47815 asan stack protection.
47816 (expand_used_vars): Likewise.
47817 (partition_stack_vars): Likewise.
47818 * asan.c (asan_emit_stack_protection): Optionally disable
47819 after return stack usage.
47820 (instrument_derefs): Optionally disable memory access instrumentation.
47821 (instrument_builtin_call): Likewise.
47822 (instrument_strlen_call): Likewise.
47823 (asan_protect_global): Optionally disable global variables protection.
47824 * doc/invoke.texi: Added doc for new options.
47825 * params.def: Added new options.
47826 * params.h: Likewise.
47827
47828 2014-01-09 Jakub Jelinek <jakub@redhat.com>
47829
47830 PR rtl-optimization/59724
47831 * ifcvt.c (cond_exec_process_if_block): Don't call
47832 flow_find_head_matching_sequence with 0 longest_match.
47833 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
47834 non-active insns if !stop_after.
47835 (try_head_merge_bb): Revert 2014-01-07 changes.
47836
47837 2014-01-08 Jeff Law <law@redhat.com>
47838
47839 * ree.c (get_sub_rtx): New function, extracted from...
47840 (merge_def_and_ext): Here.
47841 (combine_reaching_defs): Use get_sub_rtx.
47842
47843 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
47844
47845 * cgraph.h (varpool_variable_node): Do not choke on null node.
47846
47847 2014-01-08 Catherine Moore <clm@codesourcery.com>
47848
47849 * config/mips/mips.md (simple_return): Attempt to use JRC
47850 for microMIPS.
47851 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
47852
47853 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
47854
47855 PR rtl-optimization/59137
47856 * reorg.c (steal_delay_list_from_target): Call update_block for
47857 elided insns.
47858 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
47859
47860 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
47861
47862 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
47863 two duplicate entries.
47864
47865 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
47866
47867 Revert:
47868 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
47869
47870 * config/mips/mips.c (mips_truncated_op_cost): New function.
47871 (mips_rtx_costs): Adjust test for BADDU.
47872 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
47873
47874 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
47875
47876 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
47877 (*baddu_si): ...this new pattern.
47878
47879 2014-01-08 Jakub Jelinek <jakub@redhat.com>
47880
47881 PR ipa/59722
47882 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
47883
47884 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
47885
47886 PR middle-end/57748
47887 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
47888 inner_reference_p.
47889 (expand_expr, expand_normal): Adjust.
47890 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
47891 inner_reference_p. Use inner_reference_p to expand inner references.
47892 (store_expr): Adjust.
47893 * cfgexpand.c (expand_call_stmt): Adjust.
47894
47895 2014-01-08 Rong Xu <xur@google.com>
47896
47897 * gcov-io.c (gcov_var): Move from gcov-io.h.
47898 (gcov_position): Ditto.
47899 (gcov_is_error): Ditto.
47900 (gcov_rewrite): Ditto.
47901 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
47902 only part to libgcc/libgcov.h.
47903
47904 2014-01-08 Marek Polacek <polacek@redhat.com>
47905
47906 PR middle-end/59669
47907 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
47908
47909 2014-01-08 Marek Polacek <polacek@redhat.com>
47910
47911 PR sanitizer/59667
47912 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
47913
47914 2014-01-08 Jakub Jelinek <jakub@redhat.com>
47915
47916 PR rtl-optimization/59649
47917 * stor-layout.c (get_mode_bounds): For BImode return
47918 0 and STORE_FLAG_VALUE.
47919
47920 2014-01-08 Richard Biener <rguenther@suse.de>
47921
47922 PR middle-end/59630
47923 * gimple.h (is_gimple_builtin_call): Remove.
47924 (gimple_builtin_call_types_compatible_p): New.
47925 (gimple_call_builtin_p): New overload.
47926 * gimple.c (is_gimple_builtin_call): Remove.
47927 (validate_call): Rename to ...
47928 (gimple_builtin_call_types_compatible_p): ... this and export. Also
47929 check return types.
47930 (validate_type): New static function.
47931 (gimple_call_builtin_p): New overload and adjust.
47932 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
47933 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
47934 (gimple_fold_stmt_to_constant_1): Likewise.
47935 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
47936
47937 2014-01-08 Richard Biener <rguenther@suse.de>
47938
47939 PR middle-end/59471
47940 * gimplify.c (gimplify_expr): Gimplify register-register type
47941 VIEW_CONVERT_EXPRs to separate stmts.
47942
47943 2014-01-07 Jeff Law <law@redhat.com>
47944
47945 PR middle-end/53623
47946 * ree.c (combine_set_extension): Handle case where source
47947 and destination registers in an extension insn are different.
47948 (combine_reaching_defs): Allow source and destination registers
47949 in extension to be different under limited circumstances.
47950 (add_removable_extension): Remove restriction that the
47951 source and destination registers in the extension are the same.
47952 (find_and_remove_re): Emit a copy from the extension's
47953 destination to its source after the defining insn if
47954 the source and destination registers are different.
47955
47956 PR middle-end/59285
47957 * ifcvt.c (merge_if_block): If we are merging a block with more than
47958 one successor with a block with no successors, remove any BARRIER
47959 after the second block.
47960
47961 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
47962
47963 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
47964
47965 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
47966
47967 PR target/59652
47968 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
47969 for 14-bit register offsets when INT14_OK_STRICT is false.
47970
47971 2014-01-07 Roland Stigge <stigge@antcom.de>
47972 Michael Meissner <meissner@linux.vnet.ibm.com>
47973
47974 PR 57386/target
47975 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
47976 Only check TFmode for SPE constants. Don't check TImode or TDmode.
47977
47978 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
47979
47980 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
47981 -mcpu.
47982
47983 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
47984
47985 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
47986 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
47987 rtx is const0_rtx or not.
47988
47989 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
47990
47991 PR target/58115
47992 * target-globals.c (save_target_globals): Remove this_fn_optab
47993 handling.
47994 * toplev.c: Include optabs.h.
47995 (target_reinit): Temporarily restore the global options if another
47996 set of options are in force.
47997
47998 2014-01-07 Jakub Jelinek <jakub@redhat.com>
47999
48000 PR rtl-optimization/58668
48001 * cfgcleanup.c (flow_find_cross_jump): Don't count
48002 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
48003 to determine what is counted.
48004 (flow_find_head_matching_sequence): Use active_insn_p to determine
48005 what is counted.
48006 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
48007 counting change.
48008 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
48009 determine what is counted.
48010
48011 PR tree-optimization/59643
48012 * tree-predcom.c (split_data_refs_to_components): If one dr is
48013 read and one write, determine_offset fails and the write isn't
48014 in the bad component, just put the read into the bad component.
48015
48016 2014-01-07 Mike Stump <mikestump@comcast.net>
48017 Jakub Jelinek <jakub@redhat.com>
48018
48019 PR pch/59436
48020 * tree-core.h (struct tree_optimization_option): Change optabs
48021 type from unsigned char * to void *.
48022 * optabs.c (init_tree_optimization_optabs): Adjust
48023 TREE_OPTIMIZATION_OPTABS initialization.
48024
48025 2014-01-06 Jakub Jelinek <jakub@redhat.com>
48026
48027 PR target/59644
48028 * config/i386/i386.h (struct machine_function): Add
48029 no_drap_save_restore field.
48030 * config/i386/i386.c (ix86_save_reg): Use
48031 !cfun->machine->no_drap_save_restore instead of
48032 crtl->stack_realign_needed.
48033 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
48034 this function clears frame_pointer_needed. Set
48035 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
48036 and DRAP reg is needed.
48037
48038 2014-01-06 Marek Polacek <polacek@redhat.com>
48039
48040 PR c/57773
48041 * doc/implement-c.texi: Mention that other integer types are
48042 permitted as bit-field types in strictly conforming mode.
48043
48044 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
48045
48046 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
48047 is newly allocated.
48048
48049 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
48050
48051 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
48052
48053 2014-01-06 Martin Jambor <mjambor@suse.cz>
48054
48055 PR ipa/59008
48056 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
48057 to int.
48058 * ipa-prop.c (ipa_print_node_params): Fix indentation.
48059
48060 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
48061
48062 PR debug/59350
48063 PR debug/59510
48064 * var-tracking.c (add_stores): Preserve the value of the source even if
48065 we don't record the store.
48066
48067 2014-01-06 Terry Guo <terry.guo@arm.com>
48068
48069 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
48070
48071 2014-01-05 Iain Sandoe <iain@codesourcery.com>
48072
48073 PR bootstrap/59541
48074 * config/darwin.c (darwin_function_section): Adjust return values to
48075 correspond to optimisation changes made in r206070.
48076
48077 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
48078
48079 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
48080 from prefetch_block tune setting.
48081 (nocona_cost): Correct size of prefetch block to 64.
48082
48083 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
48084
48085 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
48086 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
48087 used to save the static chain register in the computation of the offset
48088 from which the FP registers need to be restored.
48089
48090 2014-01-04 Jakub Jelinek <jakub@redhat.com>
48091
48092 PR tree-optimization/59519
48093 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
48094 ICE if get_current_def (current_new_name) is already non-NULL, as long
48095 as it is a phi result of some other phi in *new_exit_bb that has
48096 the same argument.
48097
48098 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
48099 or vmovdqu* for misaligned_operand.
48100 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
48101 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
48102 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
48103 aligned_mem for AVX512F masked aligned load and store builtins and for
48104 non-temporal moves.
48105
48106 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
48107
48108 PR tree-optimization/59651
48109 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
48110 Address range for negative step should be added by TYPE_SIZE_UNIT.
48111
48112 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
48113
48114 * config/m68k/m68k.c (handle_move_double): Handle pushes with
48115 overlapping registers also for registers other than the stack pointer.
48116
48117 2014-01-03 Marek Polacek <polacek@redhat.com>
48118
48119 PR other/59661
48120 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
48121 __builtin_FILE.
48122
48123 2014-01-03 Jakub Jelinek <jakub@redhat.com>
48124
48125 PR target/59625
48126 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
48127 asm goto as jump.
48128
48129 * config/i386/i386.md (MODE_SIZE): New mode attribute.
48130 (push splitter): Use <P:MODE_SIZE> instead of
48131 GET_MODE_SIZE (<P:MODE>mode).
48132 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
48133 (mov -1, reg peephole2): Likewise.
48134 * config/i386/sse.md (*mov<mode>_internal,
48135 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
48136 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
48137 *<code><mode>3, *andnot<mode>3<mask_name>,
48138 <mask_codefor><code><mode>3<mask_name>): Likewise.
48139 * config/i386/subst.md (mask_mode512bit_condition,
48140 sd_mask_mode512bit_condition): Likewise.
48141
48142 2014-01-02 Xinliang David Li <davidxl@google.com>
48143
48144 PR tree-optimization/59303
48145 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
48146 (dump_predicates): Better output format.
48147 (pred_equal_p): New function.
48148 (is_neq_relop_p): Ditto.
48149 (is_neq_zero_form_p): Ditto.
48150 (pred_expr_equal_p): Ditto.
48151 (pred_neg_p): Ditto.
48152 (simplify_pred): Ditto.
48153 (simplify_preds_2): Ditto.
48154 (simplify_preds_3): Ditto.
48155 (simplify_preds_4): Ditto.
48156 (simplify_preds): Ditto.
48157 (push_pred): Ditto.
48158 (push_to_worklist): Ditto.
48159 (get_pred_info_from_cmp): Ditto.
48160 (is_degenerated_phi): Ditto.
48161 (normalize_one_pred_1): Ditto.
48162 (normalize_one_pred): Ditto.
48163 (normalize_one_pred_chain): Ditto.
48164 (normalize_preds): Ditto.
48165 (normalize_cond_1): Remove function.
48166 (normalize_cond): Ditto.
48167 (is_gcond_subset_of): Ditto.
48168 (is_subset_of_any): Ditto.
48169 (is_or_set_subset_of): Ditto.
48170 (is_and_set_subset_of): Ditto.
48171 (is_norm_cond_subset_of): Ditto.
48172 (pred_chain_length_cmp): Ditto.
48173 (convert_control_dep_chain_into_preds): Type change.
48174 (find_predicates): Ditto.
48175 (find_def_preds): Ditto.
48176 (destroy_predicates_vecs): Ditto.
48177 (find_matching_predicates_in_rest_chains): Ditto.
48178 (use_pred_not_overlap_with_undef_path_pred): Ditto.
48179 (is_pred_expr_subset): Ditto.
48180 (is_pred_chain_subset_of): Ditto.
48181 (is_included_in): Ditto.
48182 (is_superset_of): Ditto.
48183
48184 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
48185
48186 Update copyright years.
48187
48188 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
48189
48190 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
48191 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
48192 config/arc/arc.md, config/arc/arc.opt,
48193 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
48194 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
48195 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
48196 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
48197 config/linux-protos.h, config/linux.c, config/winnt-c.c,
48198 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
48199 vtable-verify.c, vtable-verify.h: Use the standard form for the
48200 copyright notice.
48201
48202 2014-01-02 Tobias Burnus <burnus@net-b.de>
48203
48204 * gcc.c (process_command): Update copyright notice dates.
48205 * gcov-dump.c: Ditto.
48206 * gcov.c: Ditto.
48207 * doc/cpp.texi: Bump @copying's copyright year.
48208 * doc/cppinternals.texi: Ditto.
48209 * doc/gcc.texi: Ditto.
48210 * doc/gccint.texi: Ditto.
48211 * doc/gcov.texi: Ditto.
48212 * doc/install.texi: Ditto.
48213 * doc/invoke.texi: Ditto.
48214
48215 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
48216
48217 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
48218
48219 2014-01-01 Jakub Jelinek <jakub@redhat.com>
48220
48221 * config/i386/sse.md (*mov<mode>_internal): Guard
48222 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
48223
48224 PR rtl-optimization/59647
48225 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
48226 new_rtx into UNSIGNED_FLOAT rtxes.
48227 \f
48228 Copyright (C) 2014 Free Software Foundation, Inc.
48229
48230 Copying and distribution of this file, with or without modification,
48231 are permitted in any medium without royalty provided the copyright
48232 notice and this notice are preserved.